{"version":3,"sources":["../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/index.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/createClass.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/nls.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/jsx-runtime.js","../.yarn/cache/tslib-npm-2.3.1-0e21e18015-de17a98d46.zip/node_modules/tslib/tslib.es6.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/dom.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/inherits.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/typeof.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/createSuper.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/regenerator/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/lifecycle.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/range.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/common/colorRegistry.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/editorExtensions.js","../../../../../../src/generated/src/models/parameters.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/event.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/editorContextKeys.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/strings.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkey.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/get.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/tokenizationRegistry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/position.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../src/keyframes.ts","../../src/motion/AnimationStyles.ts","../../src/classNames/AnimationClassNames.ts","../../src/fonts/FluentFonts.ts","../../src/utilities/buildClassMap.ts","../../src/styles/CommonStyles.ts","../../src/dom/setSSR.ts","../../src/dom/getWindow.ts","../../src/setFocusVisibility.ts","../../src/styles/zIndexes.ts","../../src/styles/getFocusStyle.ts","../../src/styles/hiddenContentStyle.ts","../../src/styles/PulsingBeaconAnimationStyles.ts","../../src/memoize.ts","../../src/styles/getGlobalClassNames.ts","../../src/GlobalSettings.ts","../../src/customizations/Customizations.ts","../../src/effects/FluentDepths.ts","../../src/colors/DefaultPalette.ts","../../src/effects/DefaultEffects.ts","../../src/language.ts","../../src/fonts/createFontStyles.ts","../../src/dom/getDocument.ts","../../src/fonts/DefaultFontStyles.ts","../../src/localStorage.ts","../../src/sessionStorage.ts","../../src/merge.ts","../../src/utilities/makeSemanticColors.ts","../../src/spacing/DefaultSpacing.ts","../../src/createTheme.ts","../../src/mergeThemes.ts","../../src/styles/theme.ts","../../src/styles/GeneralStyles.ts","../../src/styles/getPlaceholderStyles.ts","../../src/warn/warn.ts","../../src/utilities/icons.ts","../../src/version.ts","../../src/index.ts","../.yarn/cache/tslib-npm-1.14.1-102499115e-dbe628ef87.zip/node_modules/tslib/tslib.es6.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/color.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/platform.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/common/themeService.js","../HelperFuncs.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/errors.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/async.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/types.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/arrays.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/codicons.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorCommon.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/selection.js","../../../../src/utilities/globals/DEV.ts","../../../../src/utilities/globals/fix-graphql.ts","../../../../src/utilities/globals/index.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/actions/common/actions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/config/editorOptions.js","../../src/components/Persona/Persona.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/uri.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/commands/common/commands.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/cancellation.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/indentationGuesser.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/intervalTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/textModelTokens.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/bracketPairs.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/length.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/beforeEditPositionMapper.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/smallImmutableSet.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/ast.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/tokenizer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/brackets.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/concat23Trees.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/nodeReader.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/impl/parser.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/bracketPairsImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairs/colorizedBracketPairsDecorationProvider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/textModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/browser.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/view/editorColorRegistry.js","../.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-5eef82fdda.zip/node_modules/prop-types/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/fastDomNode.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggest.js","../../src/Constants.ts","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/characterPair.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/electricCharacter.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/indentRules.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/onEnter.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/languageConfigurationRegistry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/network.js","../../src/utilities/color/consts.ts","../../../../../../src/generated/src/models/mappers.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/iterator.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/objects.js","../../src/components/Persona/PersonaConsts.tsx","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/configuration/common/configuration.js","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/kinds.mjs","../../src/utilities/positioning/positioning.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybinding.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/registry/common/platform.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/resources.js","../../../../src/utils/constants.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/touch.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/standaloneStrings.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/notification/common/notification.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/actions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/keyboardEvent.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/event.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/modelService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/keyCodes.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/path.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/map.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/extends.js","../../src/components/MessageBar/MessageBar.types.ts","../../src/common/DirectionalHint.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/editOperation.js","../../../out/lib/src/DynamicProto.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/markers/common/markers.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/commands/replaceCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/zoneWidget/zoneWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/peekView/peekView.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/severity.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/modeService.js","../../../../lib/util/utils.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/types.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/buffer.js","../../../src/core/networkStatus.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/filters.js","../../src/equality.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/languageConfiguration.js","../../src/components/DetailsList/DetailsList.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/languageSelector.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/languageFeatureRegistry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/mouseEvent.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/accessibility/common/accessibility.js","../../src/properties.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/opener/common/opener.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/components/Context.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/utils/batch.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/utils/Subscription.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/components/Provider.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/hooks/useReduxContext.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/hooks/useStore.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/hooks/useDispatch.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/hooks/useSelector.js","../.yarn/__virtual__/react-redux-virtual-fcf0d7f8b9/0/cache/react-redux-npm-7.2.6-134f5ed64d-0bf142ce0d.zip/node_modules/react-redux/es/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/decorators.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorMoveOperations.js","../../src/components/Image/Image.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/config/charWidthReader.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/config/configuration.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/common/iconRegistry.js","../../src/KeyCodes.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/widget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/textModelEvents.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/common/styler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/referencesModel.js","../@react-keycloak/web/context.ts","../@react-keycloak/web/provider.ts","../@react-keycloak/web/useKeycloak.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/progress/common/progress.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/core/keybindingCancellation.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/core/editorState.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/htmlContent.js","../../../../lib/policies/requestPolicy.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/log/common/log.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextView.js","../../../../src/utils/utils.common.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/nullMode.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorMoveCommands.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js","../EnvUtils.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaState.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/storage/common/storage.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/storage/common/storage.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/linkedList.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLineRenderer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/coreCommands.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorColumnSelection.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/indentation/indentUtils.js","../../src/selection/Selection.types.ts","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/lineTokens.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/range.js","../LoggingEnums.js","../../src/dateValues/dateValues.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarArrow.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/abstractScrollbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarState.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/horizontalScrollbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/verticalScrollbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollableElement.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/editorWorkerService.js","../../src/components/Button/BaseButton.classNames.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/globalMouseMoveMonitor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/splice.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/list.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/listWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeAction.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/extensions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/keybindings.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/wordCharacterClassifier.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/numbers.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedo.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/textModelSearch.js","../../src/components/Panel/Panel.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/common/quickInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/common/theme.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/iconLabels.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/editorBrowser.js","../../src/utilities/color/clamp.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/editor.api.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/functional.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/mime.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/sash/sash.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/snippet/snippetParser.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/tokensStore.js","../../../../src/utilities/common/objects.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/richEditBrackets.js","../../src/utilities/keytips/KeytipConstants.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/stringBuilder.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/clipboard/common/clipboardService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/token.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorWordOperations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/quickinput/common/quickInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/dnd.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/commands/surroundSelectionCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorTypeOperations.js","../../../src/models.ts","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/stopwatch.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/modesRegistry.js","../../src/Stylesheet.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/uint.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewLayout/lineDecorations.js","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/ast.mjs","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/commands/shiftCommand.js","../../src/components/ContextualMenu/ContextualMenu.types.ts","../.yarn/cache/resolve-pathname-npm-3.0.0-bab4d7e47c-6147241ba4.zip/node_modules/resolve-pathname/esm/resolve-pathname.js","../.yarn/cache/value-equal-npm-1.0.1-7811e93c9b-bb7ae1facc.zip/node_modules/value-equal/esm/value-equal.js","../.yarn/cache/history-npm-4.10.1-ee217563ae-addd84bc46.zip/node_modules/history/esm/history.js","../../src/getParent.ts","../../src/getVirtualParent.ts","../../src/isVirtualElement.ts","../.yarn/__virtual__/webpack-virtual-b88db290c3/0/cache/webpack-npm-4.44.2-eedc4b763e-3d42ee6af7.zip/node_modules/webpack/buildin/global.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/common/quickAccess.js","../../src/useConst.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/wordHelper.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/config/editorZoom.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/listPaging.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/table/tableWidget.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/toArray.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/tree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/indexTreeModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/treeIcons.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/abstractTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/objectTreeModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/objectTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/asyncDataTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/tree/dataTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/list/browser/listService.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../.yarn/cache/tiny-invariant-npm-1.2.0-024338c59c-e09a718a7c.zip/node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../lib/url.ts","../.yarn/cache/litegraph.js-npm-0.7.10-258df7a84e-080852107f.zip/node_modules/litegraph.js/build/litegraph.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/lazy.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeActionMenu.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/lightBulbWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeActionUi.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeActionModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeActionCommands.js","../../src/components/FocusZone/FocusZone.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/hash.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabels.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/common/standaloneThemeService.js","../../../../src/cache/inmemory/object-canon.ts","../../../src/errors/index.ts","../../src/EventGroup.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/process.js","../../src/trie.ts","../../src/cache.ts","../../src/context.ts","../../src/helpers.ts","../../src/entry.ts","../../src/dep.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/editorCommon.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/mouseCursor/mouseCursor.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../.yarn/__virtual__/react-i18next-virtual-30db554cd2/0/cache/react-i18next-npm-11.14.3-fa75bc7a1a-aaf2092a71.zip/node_modules/react-i18next/dist/es/utils.js","../../src/invariant.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/label/common/label.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/dialogs/common/dialogs.js","../../src/utilities/color/_rgbaOrHexString.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/dompurify/dompurify.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/markdownRenderer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/core/markdownRenderer.js","../../src/StyleOptionsState.ts","../../../../src/utilities/globals/maybe.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/bulkEditService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/message/messageController.js","../../../../lib/util/base64.browser.ts","../../../lib/serializer.ts","../../src/components/Icon/Icon.styles.ts","../../src/components/Spinner/Spinner.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/descriptors.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/consts.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostText.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/inlineCompletionToGhostText.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/inlineCompletionsModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/suggestWidgetInlineCompletionProvider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/utils.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextController.js","../../src/slot.ts","../../../../lib/util/constants.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/embeddedCodeEditorWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/serviceCollection.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/textResourceConfigurationService.js","../../src/getVendorSettings.ts","../../src/transforms/kebabRules.ts","../../src/transforms/prefixRules.ts","../../src/transforms/provideUnits.ts","../../src/transforms/rtlifyRules.ts","../../src/styleToClassName.ts","../../src/tokenizeWithParentheses.ts","../../../lib/httpHeaders.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js","../TelemetryPluginChain.js","../ProcessTelemetryContext.js","../.yarn/__virtual__/react-i18next-virtual-30db554cd2/0/cache/react-i18next-npm-11.14.3-fa75bc7a1a-aaf2092a71.zip/node_modules/react-i18next/dist/es/context.js","../../../../src/utilities/graphql/storeUtils.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/editStack.js","../.yarn/cache/process-npm-0.11.10-aeb3b641ae-bfcce49814.zip/node_modules/process/browser.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorColumns.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../src/components/Button/BaseButton.styles.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/scrollable.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/idGenerator.js","../../src/utilities/color/hsv2rgb.ts","../../src/utilities/color/rgb2hex.ts","../../src/components/Icon/ImageIcon.tsx","../../src/components/Button/SplitButton/SplitButton.classNames.ts","../../src/components/Button/BaseButton.tsx","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/diff/diff.js","../../src/customizations/CustomizerContext.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/config/commonEditorConfig.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/config/fontInfo.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/keybindingLabels.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/snippet/snippetController2.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/rangeMap.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/rowCache.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/list/listView.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/typeof.js","../.yarn/cache/i18next-http-backend-npm-1.3.1-ba93dfe1ec-4ee1d241f5.zip/node_modules/i18next-http-backend/esm/utils.js","../.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/lodash.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/extensions/common/extensions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/format/format.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensDto.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/getSemanticTokens.js","../../../../src/utilities/graphql/getFromAST.ts","../../../lib/queryCollectionFormat.ts","../../src/Helpers.ts","../.yarn/__virtual__/react-dom-virtual-9a6a86b618/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/index.js","../.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/canIUse.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/formattedTextRenderer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/extpath.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorDeleteOperations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/labels.js","../PerfManager.js","../DiagnosticLogger.js","../../../../src/metadata/ValidationMetadata.ts","../../../../src/validation-schema/ValidationSchemaToMetadataTransformer.ts","../../../../src/metadata/MetadataStorage.ts","../../../../src/validation/ValidationError.ts","../../../../src/validation/ValidationTypes.ts","../../../../src/validation/ValidationUtils.ts","../../../../src/utils/is-promise.util.ts","../../../../src/validation/ValidationExecutor.ts","../../../src/container.ts","../../../../src/utils/convert-to-array.util.ts","../../../../src/validation/Validator.ts","../../../src/index.ts","../../../../src/cache/inmemory/reactiveVars.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/view/overviewZoneManager.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkeys.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/defineProperty.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../src/components/Button/SplitButton/SplitButton.styles.ts","../.yarn/cache/moment-timezone-npm-0.5.34-e4fe2d01f6-12a1d3d52e.zip/node_modules/moment-timezone/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/markersDecorationService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/workspace/common/workspace.js","../../src/components/pickers/BasePicker.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/markerDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/editorDom.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewEventHandler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewPart.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/view/renderingContext.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/rangeUtil.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLine.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/mouseTarget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/mouseHandler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/pointerHandler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/dynamicViewOverlay.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/margin/margin.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaHandler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewLayer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewController.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewUserInputEvents.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewOverlays.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/decorations/decorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLines.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/core/rgba.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/minimapTokensColorTracker.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharSheet.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharRenderer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapPreBaked.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharRendererFactory.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimap.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/selections/selections.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewZones/viewZones.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/view/viewContext.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLinesViewportData.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/viewImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/oneCursor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorCollection.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/view/viewEvents.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelEventDispatcher.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewLayout/linesLayout.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLayout.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/splitLinesCollection.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/view/domLineBreaksComputer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditorWidget.js","../../src/utils.ts","../../src/diff.tsx","../../src/editor.tsx","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/navigator.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/history.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabelHover.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabel.js","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/jsutils/devAssert.mjs","../.yarn/cache/ts-invariant-npm-0.9.3-7a021097a2-593c096b8a.zip/node_modules/ts-invariant/process/index.js","../../../../src/react/parser/index.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/assert.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/splitview/splitview.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js","../../src/components/pickers/BasePicker.styles.ts","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestMemory.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/wordContextKey.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestAlternatives.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestCommitCharacters.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/wordDistance.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/completionModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestOvertypingCapturer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestWidgetStatus.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/resizable.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestWidgetDetails.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/files/common/files.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/getIconClasses.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestWidgetRenderer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/suggest/suggestController.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/peek/referencesTree.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/peek/referencesWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/peek/referencesController.js","../../../../src/utilities/common/canUse.ts","../../src/components/Label/Label.base.tsx","../../src/components/Label/Label.tsx","../../src/components/Label/Label.styles.ts","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/jsutils/inspect.mjs","../../../../src/utilities/globals/global.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codiconStyles.js","../../src/concatStyleSets.ts","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../src/utilities.ts","../../src/components/DocumentCard/DocumentCardTitle.styles.ts","../../src/components/DocumentCard/DocumentCardPreview.styles.ts","../../../src/IRange.ts","../../src/components/Link/Link.styles.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/iframe.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/textChange.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/color.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/controller/cursorAtomicMoveOperations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/textToHtmlTokenizer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/marshalling.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/format/formattingEdit.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/modelServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensProviderStyling.js","../CookieMgr.js","../Constants.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/replaceAllCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/search.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/replacePattern.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/checkbox/checkbox.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInputCheckboxes.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findOptionsWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findState.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/replaceInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/browser/contextScopedHistoryWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/browser/historyWidgetKeybindingHint.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/find/findController.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/typeof.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/inherits.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../.yarn/cache/i18next-npm-21.5.4-346b380995-d8834fef52.zip/node_modules/i18next/dist/esm/i18next.js","../../src/components/pickers/Suggestions/Suggestions.types.ts","../../src/components/Announced/Announced.base.tsx","../../src/components/Announced/Announced.ts","../../src/components/Announced/Announced.styles.ts","../../src/components/pickers/Suggestions/Suggestions.scss.ts","../../src/components/pickers/Suggestions/SuggestionsItem.tsx","../../src/components/pickers/Suggestions/Suggestions.tsx","../../src/components/pickers/Suggestions/Suggestions.styles.ts","../../src/components/pickers/Suggestions/SuggestionsController.ts","../../src/components/pickers/BasePicker.scss.ts","../../src/components/pickers/BasePicker.tsx","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../.yarn/cache/redux-npm-4.1.2-04cdbe7a08-6a839cee5b.zip/node_modules/redux/es/redux.js","../../src/utilities/color/getColorFromRGBA.ts","../../src/utilities/color/rgb2hsv.ts","../../src/Async.ts","../.yarn/cache/classnames-npm-2.3.1-f2ae0a8d3c-14db8889d5.zip/node_modules/classnames/index.js","../../src/utilities/color/cssColor.ts","../../src/utilities/color/hsl2rgb.ts","../../src/utilities/color/hsl2hsv.ts","../../src/utilities/color/getColorFromString.ts","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/components/Elements.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../@react-keycloak/core/index.ts","../../src/extractStyleParts.ts","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/construct.js","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/blockString.mjs","../../../../src/react/hooks/useApolloClient.ts","../../../../src/utilities/graphql/fragments.ts","../../src/findElementRecursive.ts","../../src/components/DocumentCard/DocumentCardLocation.styles.ts","../../src/components/DocumentCard/DocumentCardActivity.styles.ts","../../src/components/Button/ActionButton/ActionButton.styles.ts","../../../../src/credentials/Credential.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/collections.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/glob.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/clickLinkGesture.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/config/elementSizeObserver.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/editorAction.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/viewModel/prefixSumComputer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/bracketSelections.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/documentSymbols/outlineModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/editorNavigationQuickAccess.js","../../src/components/pickers/Suggestions/SuggestionsItem.styles.ts","../../../lib/operationSpec.ts","../../../lib/restError.ts","../../../../lib/util/xml.browser.ts","../../../../lib/policies/deserializationPolicy.ts","../../../../src/policies/BrowserPolicy.ts","../../../src/BrowserPolicyFactory.ts","../../../../lib/policies/msRestUserAgentPolicy.browser.ts","../../../../lib/policies/userAgentPolicy.ts","../../../lib/xhrHttpClient.ts","../../../lib/operationParameter.ts","../../../../lib/policies/exponentialRetryPolicy.ts","../../../../lib/policies/generateClientRequestIdPolicy.ts","../../../../lib/policies/redirectPolicy.ts","../../../../lib/policies/rpRegistrationPolicy.ts","../../../../lib/policies/signingPolicy.ts","../../../../lib/policies/systemErrorRetryPolicy.ts","../../../lib/webResource.ts","../../../../lib/policies/agentPolicy.browser.ts","../../../../lib/policies/proxyPolicy.browser.ts","../../../../lib/policies/throttlingRetryPolicy.ts","../../../../lib/credentials/azureIdentityTokenCredentialAdapter.ts","../../../lib/serviceClient.ts","../../../src/tokenCredential.ts","../../../../../src/generated/src/storageClientContext.ts","../../../../src/policies/RetryPolicy.ts","../../../../src/policies/KeepAlivePolicy.ts","../../../src/KeepAlivePolicyFactory.ts","../../../../src/policies/LoggingPolicy.ts","../../../src/LoggingPolicyFactory.ts","../../../src/Pipeline.ts","../../../src/RetryPolicyFactory.ts","../../../../src/policies/UniqueRequestIDPolicy.ts","../../../src/UniqueRequestIDPolicyFactory.ts","../../../src/StorageURL.ts","../../src/fontFace.ts","../../../../src/link/core/ApolloLink.ts","../../../../src/link/utils/createOperation.ts","../../../../src/link/utils/transformOperation.ts","../../../../src/link/utils/validateOperation.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/markerNavigationService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/severityIcon/common/severityIcon.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/gotoErrorWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/gotoError.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/uuid.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/workspaces/common/workspaces.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/snippet/snippetVariables.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/snippet/snippetSession.js","../../src/components/Icon/Icon.types.ts","../../src/components/Icon/Icon.base.tsx","../../src/components/Icon/Icon.tsx","../../src/components/Image/Image.base.tsx","../../src/components/Image/Image.styles.ts","../../src/components/Image/Image.tsx","../../src/components/Button/DefaultButton/DefaultButton.styles.ts","../../src/components/Button/ButtonThemes.ts","../../src/components/Button/DefaultButton/DefaultButton.tsx","../../src/setVersion.ts","../../src/hoist.ts","../../src/utilities/decorators/BaseDecorator.ts","../../src/appendFunction.ts","../../src/extendComponent.ts","../.yarn/cache/i18next-http-backend-npm-1.3.1-ba93dfe1ec-4ee1d241f5.zip/node_modules/i18next-http-backend/esm/getFetch.cjs","../../src/components/DocumentCard/DocumentCard.types.ts","../../src/common/TestImages.ts","../../src/WindowProvider.tsx","../../src/useOnEvent.ts","../.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip/node_modules/object-assign/index.js","../.yarn/cache/rematrix-npm-0.7.2-5ecac8461a-517537baa6.zip/node_modules/rematrix/dist/rematrix.es.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/components/Provider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/colorDetector.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/symbolNavigation.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToSymbol.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/colorPickerModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/colorPickerWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/colorHoverParticipant.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/hoverOperation.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/hoverTypes.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/getHover.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/markdownHoverParticipant.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/markerHoverParticipant.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/inlineCompletionsHoverParticipant.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/modesContentHover.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/modesGlyphHover.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/hover/hover.js","../.yarn/cache/path-to-regexp-npm-1.8.0-a1904f5c44-709f6f083c.zip/node_modules/path-to-regexp/index.js","../../src/rtl.ts","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/visitor.mjs","../../src/getId.ts","../../src/utilities/decorators/withResponsiveMode.tsx","../../src/hoistStatics.ts","../../src/setPortalAttribute.ts","../../src/warn/warnDeprecations.ts","../../src/components/Tooltip/TooltipHost.types.ts","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/marked/marked.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../.yarn/cache/pixon-component-core-npm-0.0.56-9198502e19-ba8d0eb0ef.zip/node_modules/pixon-component-core/dist/index.esm.js","../BaseTelemetryPlugin.js","../../src/components/Stack/StackItem/StackItem.styles.ts","../../src/components/Stack/StackItem/StackItem.tsx","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/jsutils/instanceOf.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/source.mjs","../../src/initializeComponentRef.ts","../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip/node_modules/react-is/index.js","../@react-keycloak/core/context.ts","../@react-keycloak/core/provider.tsx","../.yarn/cache/buffer-npm-4.9.2-9e40b5e87a-8801bc1ba0.zip/node_modules/buffer/index.js","../.yarn/cache/moment-npm-2.29.1-787d9fdafd-1e14d5f422.zip/node_modules/moment/moment.js","../.yarn/__virtual__/webpack-virtual-b88db290c3/0/cache/webpack-npm-4.44.2-eedc4b763e-3d42ee6af7.zip/node_modules/webpack/buildin/module.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/symbolIcons/symbolIcons.js","../.yarn/__virtual__/webpack-virtual-b88db290c3/0/cache/webpack-npm-4.44.2-eedc4b763e-3d42ee6af7.zip/node_modules/webpack/buildin/amd-options.js","../.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip/node_modules/react-is/index.js","../.yarn/cache/i18next-browser-languagedetector-npm-6.1.2-99032086d7-927719d2ad.zip/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../.yarn/cache/i18next-http-backend-npm-1.3.1-ba93dfe1ec-4ee1d241f5.zip/node_modules/i18next-http-backend/esm/index.js","../.yarn/cache/i18next-http-backend-npm-1.3.1-ba93dfe1ec-4ee1d241f5.zip/node_modules/i18next-http-backend/esm/request.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/classCallCheck.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/createClass.js","../.yarn/cache/react-fast-compare-npm-3.2.0-fbfa6627d9-8ef272c825.zip/node_modules/react-fast-compare/index.js","../.yarn/__virtual__/mini-create-react-context-virtual-6fc6eb87d4/0/cache/mini-create-react-context-npm-0.4.1-06f382591b-f8cb2c7738.zip/node_modules/mini-create-react-context/dist/esm/index.js","../../../../src/utilities/common/makeUniqueId.ts","../../../../src/react/hooks/useQuery.ts","../../src/array.ts","../../src/components/Icon/FontIcon.tsx","../../src/object.ts","../../src/utilities/keytips/KeytipManager.ts","../../src/warn/warnConditionallyRequiredProps.ts","../../src/warn/warnMutuallyExclusive.ts","../../src/slots.tsx","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/slicedToArray.js","../../src/components/Button/ActionButton/ActionButton.tsx","../.yarn/__virtual__/react-geosuggest-virtual-bb077b65bf/0/cache/react-geosuggest-npm-2.14.1-4c25dc4598-ce08966519.zip/node_modules/react-geosuggest/module/Geosuggest.esm.js","../.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-a3f527d22c.zip/node_modules/lodash.debounce/index.js","../../../lib/httpPipelineLogLevel.ts","../../../src/TelemetryPolicyFactory.ts","../../../../src/policies/TelemetryPolicy.ts","../.yarn/cache/events-npm-3.3.0-c280bc7e48-f6f487ad21.zip/node_modules/events/events.js","../../src/components/Pivot/PivotItem.tsx","../.yarn/cache/attr-accept-npm-2.2.2-b9cd0d8eac-496f724935.zip/node_modules/attr-accept/dist/es/index.js","../ts-clipboard.ts","../.yarn/__virtual__/react-data-grid-virtual-40bd3f0a5f/0/cache/react-data-grid-npm-6.1.0-918c40e47e-5fb09a7531.zip/node_modules/react-data-grid/index.js","../.yarn/cache/void-elements-npm-3.1.0-4f43780839-0390f81810.zip/node_modules/void-elements/index.js","../.yarn/cache/mime-types-npm-2.1.34-3cd0bb907c-67013de9e9.zip/node_modules/mime-types/index.js","../.yarn/cache/guid-typescript-npm-1.0.9-01fb89a1bf-829dd87866.zip/node_modules/guid-typescript/dist/guid.js","../.yarn/__virtual__/redux-devtools-extension-virtual-4ca8c2c164/0/cache/redux-devtools-extension-npm-2.13.9-438ea93ea1-603d48fd6a.zip/node_modules/redux-devtools-extension/index.js","../.yarn/__virtual__/redux-thunk-virtual-055fe7375d/0/cache/redux-thunk-npm-2.4.1-2ba08bf615-af5abb425f.zip/node_modules/redux-thunk/es/index.js","../.yarn/cache/keycloak-js-npm-15.0.2-94df7eb931-5034208844.zip/node_modules/keycloak-js/dist/keycloak.js","../.yarn/cache/@emotion-memoize-npm-0.7.5-e5e7e9eeca-83da8d4a76.zip/node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../.yarn/cache/@emotion-is-prop-valid-npm-1.1.1-ca8dc5a8e3-5816696dae.zip/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../.yarn/cache/@emotion-sheet-npm-1.1.0-40e9c90e06-a4b74e16a8.zip/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../.yarn/cache/@emotion-weak-memoize-npm-0.2.5-9f2e49e7c8-27d402b0c6.zip/node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../.yarn/cache/@emotion-cache-npm-11.6.0-c6785a46d1-3c72c50bfe.zip/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../.yarn/cache/@emotion-utils-npm-1.0.0-7f9809289c-3ce8048441.zip/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../.yarn/cache/@emotion-hash-npm-0.8.0-0104f4bbf3-4b35d88a97.zip/node_modules/@emotion/hash/dist/hash.browser.esm.js","../.yarn/cache/@emotion-unitless-npm-0.7.5-14e1171640-f976e5345b.zip/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../.yarn/cache/@emotion-serialize-npm-1.0.2-a692afdb82-ff84fbe09e.zip/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../.yarn/__virtual__/@emotion-react-virtual-ad579ae552/0/cache/@emotion-react-npm-11.7.0-a1c3b50c2a-8b50d61caa.zip/node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js","../.yarn/__virtual__/@emotion-styled-virtual-cbf5001ebc/0/cache/@emotion-styled-npm-11.6.0-497e1da808-612bbf114a.zip/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../.yarn/__virtual__/@emotion-styled-virtual-cbf5001ebc/0/cache/@emotion-styled-npm-11.6.0-497e1da808-612bbf114a.zip/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../src/presets.ts","../../src/userAgentData.ts","../../src/userAgent.ts","../../src/agent.ts","../../src/consts.ts","../../src/dom.ts","../../src/CssToMatrix.ts","../../src/PolyMap.ts","../../src/HashMap.ts","../../src/Link.ts","../../src/Result.ts","../../src/ListDiffer.ts","../../src/ChildrenDiffer.ts","../../src/EventEmitter.ts","../../src/DragScroll.ts","../../src/ClientStore.ts","../../src/Gesto.ts","../../src/styled.ts","../../src/react-css-styled/StyledElement.tsx","../../src/react-css-styled/styled.tsx","../../src/react-moveable/ables/AbleManager.ts","../../src/react-moveable/consts.ts","../../src/react-moveable/utils.tsx","../../src/react-moveable/ables/Pinchable.ts","../../src/react-moveable/gesto/CustomGesto.ts","../../src/react-moveable/groupUtils.ts","../../src/react-moveable/gesto/GestoUtils.ts","../../src/react-moveable/ables/snappable/utils.ts","../../src/react-moveable/ables/snappable/snap.ts","../../src/react-moveable/ables/snappable/innerBounds.ts","../../src/react-moveable/ables/snappable/bounds.ts","../../src/react-moveable/ables/snappable/render.tsx","../../src/react-moveable/ables/snappable/snapBounds.ts","../../src/react-moveable/ables/Snappable.tsx","../../src/react-moveable/ables/Draggable.tsx","../../src/react-moveable/renderDirections.tsx","../../src/react-moveable/ables/Rotatable.tsx","../../src/react-moveable/ables/Resizable.ts","../../src/react-moveable/ables/Scalable.ts","../../src/react-moveable/ables/Warpable.tsx","../../src/react-moveable/classNames.ts","../../src/react-moveable/ables/DragArea.tsx","../../src/react-moveable/ables/Origin.tsx","../../src/react-moveable/ables/Scrollable.ts","../../src/react-moveable/ables/Default.ts","../../src/react-moveable/ables/Padding.tsx","../../src/react-moveable/ables/roundable/borderRadius.tsx","../../src/react-moveable/ables/Clippable.tsx","../../src/react-moveable/ables/OriginDraggable.tsx","../../src/react-moveable/ables/Roundable.tsx","../../src/react-moveable/ables/BeforeRenderable.ts","../../src/react-moveable/ables/Renderable.ts","../../src/react-moveable/gesto/getAbleGesto.ts","../../src/react-moveable/EventManager.ts","../../src/react-moveable/MoveableManager.tsx","../../src/react-moveable/ables/Groupable.tsx","../../src/react-moveable/ables/Clickable.ts","../../src/react-moveable/ables/edgeDraggable.tsx","../../src/react-moveable/ables/IndividualGroupable.tsx","../../src/react-moveable/ables/consts.ts","../../src/react-moveable/MoveableGroup.tsx","../../src/react-moveable/MoveableIndividualGroup.tsx","../../src/react-moveable/InitialMoveable.tsx","../../src/react-moveable/Moveable.tsx","../../src/components/Persona/PersonaPresence/PersonaPresence.base.tsx","../../src/components/Persona/PersonaPresence/PersonaPresence.styles.ts","../../src/components/Persona/PersonaPresence/PersonaPresence.tsx","../../src/components/Persona/PersonaInitialsColor.ts","../../src/components/Persona/PersonaCoin/PersonaCoin.base.tsx","../../src/components/Persona/PersonaCoin/PersonaCoin.styles.ts","../../src/components/Persona/PersonaCoin/PersonaCoin.tsx","../../src/components/TextField/TextField.base.tsx","../../src/controlled.ts","../../src/components/TextField/TextField.styles.tsx","../../src/components/TextField/TextField.ts","../../../src/file.ts","../../../src/file-selector.ts","../.yarn/__virtual__/react-dropzone-virtual-8be53964f9/0/cache/react-dropzone-npm-11.4.2-28cc148b27-f8dc6af691.zip/node_modules/react-dropzone/dist/es/utils/index.js","../.yarn/__virtual__/react-dropzone-virtual-8be53964f9/0/cache/react-dropzone-npm-11.4.2-28cc148b27-f8dc6af691.zip/node_modules/react-dropzone/dist/es/index.js","../../../../../../src/generated/src/operations/blob.ts","../../../src/BlobURL.ts","../../../src/BlobDownloadResponse.browser.ts","../../../../src/policies/CredentialPolicy.ts","../../../../src/policies/AnonymousCredentialPolicy.ts","../../../../src/credentials/AnonymousCredential.ts","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-fb4b4c8f70.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/mergeStyles.ts","../../../../src/react/context/ApolloContext.ts","../../../../src/utilities/common/arrays.ts","../../src/css.ts","../../src/elementContains.ts","../../src/BaseComponent.ts","../../src/customizations/customizable.tsx","../../src/ie11Detector.ts","../../src/focus.ts","../../src/elementContainsAttribute.ts","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/cjs/react.production.min.js","../.yarn/__virtual__/react-dom-virtual-9a6a86b618/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom.production.min.js","../.yarn/cache/scheduler-npm-0.20.2-90beaecfba-c4b35cf967.zip/node_modules/scheduler/index.js","../.yarn/cache/scheduler-npm-0.20.2-90beaecfba-c4b35cf967.zip/node_modules/scheduler/cjs/scheduler.production.min.js","../.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-5eef82fdda.zip/node_modules/prop-types/factoryWithThrowingShims.js","../.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-5eef82fdda.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","../.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip/node_modules/react-is/cjs/react-is.production.min.js","../.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip/node_modules/react-is/cjs/react-is.production.min.js","../.yarn/cache/regenerator-runtime-npm-0.13.9-6d02340eec-65ed455fe5.zip/node_modules/regenerator-runtime/runtime.js","../.yarn/cache/react-npm-17.0.2-99ba37d931-b254cc17ce.zip/node_modules/react/cjs/react-jsx-runtime.production.min.js","../.yarn/cache/isarray-npm-0.0.1-92e37e0a70-49191f1425.zip/node_modules/isarray/index.js","../../src/usePrevious.ts","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/nonIterableRest.js","../.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip/node_modules/base64-js/index.js","../.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip/node_modules/ieee754/index.js","../.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip/node_modules/isarray/index.js","../.yarn/cache/moment-timezone-npm-0.5.34-e4fe2d01f6-12a1d3d52e.zip/node_modules/moment-timezone/moment-timezone.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/clipboard/clipboard.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions.js","../.yarn/__virtual__/webpack-virtual-b88db290c3/0/cache/webpack-npm-4.44.2-eedc4b763e-3d42ee6af7.zip/node_modules/webpack/buildin/harmony-module.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/format/formatActions.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/indentation/indentation.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/inlayHintsController.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/multicursor/multicursor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/transpose.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/extends.js","../.yarn/__virtual__/react-data-grid-virtual-40bd3f0a5f/0/cache/react-data-grid-npm-6.1.0-918c40e47e-5fb09a7531.zip/node_modules/react-data-grid/dist/react-data-grid.js","../.yarn/cache/@babel-runtime-npm-7.16.3-b53f079b37-ab8ac88709.zip/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../.yarn/cache/mime-db-npm-1.51.0-d5e42b45ad-613b1ac9d6.zip/node_modules/mime-db/index.js","../.yarn/cache/path-browserify-npm-0.0.1-bb8b2a97b1-ae8dcd45d0.zip/node_modules/path-browserify/index.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/components/inject.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/components/Element.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/utils/isEqual.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/components/PaymentRequestButtonElement.js","../.yarn/__virtual__/react-stripe-elements-virtual-cc372457fd/0/cache/react-stripe-elements-npm-6.1.2-30245ce320-142d314cef.zip/node_modules/react-stripe-elements/es/utils/shallowEqual.js","../.yarn/cache/js-sha256-npm-0.9.0-1aa718efaf-ffad54b337.zip/node_modules/js-sha256/src/sha256.js","../.yarn/cache/base64-js-npm-1.3.1-8625be908e-957b9ced0e.zip/node_modules/base64-js/index.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneBase.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/editor/common/editor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/openerService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/diffNavigator.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/worker/defaultWorkerFactory.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/diff/diffComputer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/linkComputer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/inplaceReplaceSupport.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/editorWorkerServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/webWorker.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCommon.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchLexer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/colorizer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationModels.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/abstractKeybindingService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingResolver.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/resolvedKeybindingItem.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/simpleServices.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/diffReview.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditorWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/widget/inlineDiffMargin.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/abstractCodeEditorService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/languagesRegistry.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/modes/supports/tokenization.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/common/themes.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneThemeServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/theme/browser/iconsStyleSheet.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextkey/browser/contextKeyService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/menu/menu.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextMenuHandler.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextMenuService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/layout/browser/layoutService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextViewService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/graph.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiationService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/markers/common/markerService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/actions/common/menuService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorationsServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/accessibility/browser/accessibilityService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/clipboard/browser/clipboardService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedoService.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/progressbar/progressbar.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/quickinput/browser/quickInputUtils.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/quickinput/browser/quickInputBox.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/comparers.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/quickinput/browser/quickInputList.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/parts/quickinput/browser/quickInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInput.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputServiceImpl.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCompile.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLanguages.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/foldingRanges.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/foldingModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/hiddenRangeModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/indentRangeProvider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/syntaxRangeProvider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/intializingRangeProvider.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/foldingDecorations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/folding/folding.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/common/commands/trimTrailingWhitespaceCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/copyLinesCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/moveLinesCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/sortLinesCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/errorMessage.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/browser/pickerQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/browser/commandsQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/commandsQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codelens/codelens.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codelens/codeLensCache.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codelens/codelensWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/codelens/codelensController.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/provideSignatureHelp.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHintsModel.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHintsWidget.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/comment/blockCommentCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/comment/lineCommentCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/comment/comment.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/base/common/fuzzyScorer.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/gotoSymbolQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/moveCaretCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/dnd/dragAndDropCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/dnd/dnd.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/gotoLineQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/links/getLinks.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/links/links.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/platform/quickinput/browser/helpQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/rename/renameInputField.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/rename/rename.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/wordSelections.js","../.yarn/cache/monaco-editor-npm-0.30.1-f255ef74d8-474b8b2f25.zip/node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect.js","../../src/mergeStyleSets.ts","../../src/useMergedRefs.ts","../../src/useAsync.ts","../../src/dom/on.ts","../../src/scroll.ts","../../src/TsLibShims.ts","../../../../src/link/core/execute.ts","../../../../src/utilities/observables/asyncMap.ts","../../../../src/utilities/common/errorHandling.ts","../../../../src/utilities/observables/iteration.ts","../../../../src/utilities/observables/subclassing.ts","../../../../src/utilities/observables/Concast.ts","../../../src/core/ObservableQuery.ts","../../../src/core/LocalState.ts","../../../src/core/QueryInfo.ts","../../../src/core/QueryManager.ts","../../../src/core/ApolloClient.ts","../.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip/node_modules/uuid/dist/esm-browser/rng.js","../.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip/node_modules/uuid/dist/esm-browser/regex.js","../.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip/node_modules/uuid/dist/esm-browser/stringify.js","../.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip/node_modules/uuid/dist/esm-browser/validate.js","../.yarn/cache/uuid-npm-8.3.2-eca0baba53-5575a8a75c.zip/node_modules/uuid/dist/esm-browser/v4.js","../../src/keyboard.ts","../../src/useFocusRects.ts","../../src/concatStyleSetsWithProps.ts","../../src/classNamesFunction.ts","../../src/DelayedRender.tsx","../../../../src/react/hooks/useMutation.ts","../../../../src/utilities/common/compact.ts","../.yarn/cache/zen-observable-ts-npm-1.2.3-2403c1a6ce-0548b555c6.zip/node_modules/zen-observable-ts/module.js","../../../../src/utilities/common/mergeDeep.ts","../../../../src/utilities/graphql/directives.ts","../../../../src/utilities/common/cloneDeep.ts","../../../../src/react/hooks/useLazyQuery.ts","../../src/useBoolean.ts","../../src/useId.ts","../../src/createMergedRef.ts","../../src/osDetector.ts","../../src/mobileDetector.ts","../../src/getPropsWithDefaults.ts","../../src/useTarget.ts","../../src/utilities/hooks/useResponsiveMode.tsx","../../src/portalContainsElement.ts","../../src/aria.ts","../../src/components/Popup/Popup.tsx","../../src/createComponent.tsx","../.yarn/__virtual__/react-i18next-virtual-30db554cd2/0/cache/react-i18next-npm-11.14.3-fa75bc7a1a-aaf2092a71.zip/node_modules/react-i18next/dist/es/useTranslation.js","../../src/components/Button/PrimaryButton/PrimaryButton.tsx","../../../../src/utils/get-global.util.ts","../../src/utilities/selectableOption/SelectableOption.types.ts","../../src/components/Button/CommandButton/CommandButton.tsx","../../src/useControllableValue.ts","../../src/utilities/selectableOption/SelectableOption.ts","../../../src/Aborter.ts","../../src/componentAs/composeComponentAs.tsx","../../src/initials.ts","../../src/renderFunction/composeRenderFunction.tsx","../../src/utilities/selection/SelectionZone.tsx","../../src/selection/Selection.ts","../../src/components/Autofill/Autofill.tsx","../../src/string.ts","../../src/useSetTimeout.ts","../ReactPlugin.js","../../../../src/link/core/concat.ts","../TelemetryHelpers.js","../ChannelController.js","../BaseCore.js","../EventsDiscardedReason.js","../NotificationManager.js","../AppInsightsCore.js","../RandomHelper.js","../CoreUtils.js","../applicationinsights-common.js","../DataSanitizer.js","../DataPointType.js","../TelemetryItemCreator.js","../EventData.js","../Event.js","../Trace.js","../MessageData.js","../MetricData.js","../DataPoint.js","../Metric.js","../PageViewData.js","../PageView.js","../PageViewPerformance.js","../PageViewPerfData.js","../StackFrame.js","../ExceptionDetails.js","../Exception.js","../SeverityLevel.js","../Enums.js","../ExceptionData.js","../StorageHelperFuncs.js","../DomHelperFuncs.js","../RequestResponseHeaders.js","../UrlHelperFuncs.js","../Util.js","../RemoteDependencyData.js","../PageViewManager.js","../PageVisitTimeManager.js","../PageViewPerformanceManager.js","../ApplicationInsights.js","../SendBuffer.js","../ContextTagKeys.js","../PartAExtensions.js","../Envelope.js","../Base.js","../Data.js","../EnvelopeCreator.js","../Serializer.js","../Sender.js","../Offline.js","../HashCodeScoreGenerator.js","../SamplingScoreGenerator.js","../Sample.js","../Session.js","../Application.js","../Device.js","../Internal.js","../User.js","../Location.js","../TelemetryTrace.js","../TelemetryContext.js","../PropertiesPlugin.js","../InstrumentHooks.js","../ajaxRecord.js","../TraceParent.js","../ajax.js","../ConnectionStringParser.js","../IConfig.js","../Initialization.js","../../src/components/GroupedList/GroupedList.types.ts","../../src/components/GroupedList/GroupSpacer.tsx","../../src/getNativeElementProps.ts","../../src/components/Check/Check.base.tsx","../../src/components/Check/Check.styles.ts","../../src/components/Check/Check.tsx","../../src/components/DetailsList/DetailsRow.styles.ts","../../src/components/DetailsList/DetailsHeader.styles.ts","../../src/components/DetailsList/DetailsRowCheck.styles.ts","../../src/components/DetailsList/DetailsRowCheck.tsx","../../src/components/DetailsList/DetailsHeader.types.ts","../../src/utilities/dragdrop/DragDropHelper.tsx","../../src/components/DetailsList/DetailsColumn.base.tsx","../../src/components/DetailsList/DetailsColumn.styles.ts","../../src/components/DetailsList/DetailsColumn.ts","../../src/components/DetailsList/DetailsHeader.base.tsx","../../src/components/DetailsList/DetailsHeader.ts","../../src/components/DetailsList/DetailsRowFields.tsx","../../src/components/DetailsList/DetailsRow.base.tsx","../../src/components/DetailsList/DetailsRow.ts","../../src/components/GroupedList/GroupedList.styles.ts","../../src/components/GroupedList/GroupHeader.styles.ts","../../src/components/GroupedList/GroupHeader.base.tsx","../../src/components/GroupedList/GroupHeader.ts","../../src/components/GroupedList/GroupShowAll.styles.ts","../../src/components/GroupedList/GroupShowAll.base.tsx","../../src/components/GroupedList/GroupShowAll.ts","../../src/components/GroupedList/GroupFooter.styles.ts","../../src/components/GroupedList/GroupFooter.base.tsx","../../src/components/GroupedList/GroupFooter.ts","../../src/components/List/List.types.ts","../../src/components/List/List.tsx","../../src/components/GroupedList/GroupedListSection.tsx","../../src/components/GroupedList/GroupedList.base.tsx","../../src/components/GroupedList/GroupedList.ts","../../src/dom/getRect.ts","../../src/utilities/decorators/withViewport.tsx","../../src/utilities/groupedList/GroupedListUtility.tsx","../../src/components/DetailsList/DetailsList.base.tsx","../../src/components/DetailsList/DetailsList.styles.ts","../../src/components/DetailsList/DetailsList.ts","../../src/dateFormatting/dateFormatting.defaults.ts","../../src/dateValues/timeConstants.ts","../../src/dateMath/dateMath.ts","../../src/dateGrid/getDateRangeTypeToUse.ts","../../src/dateGrid/isContiguous.ts","../../src/dateGrid/getBoundedDateRange.ts","../../src/dateGrid/isBeforeMinDate.ts","../../src/dateGrid/isAfterMaxDate.ts","../../src/dateGrid/isRestrictedDate.ts","../../src/components/CalendarDayGrid/CalendarMonthHeaderRow.tsx","../../src/dateGrid/findAvailableDate.ts","../../src/components/CalendarDayGrid/CalendarGridDayCell.tsx","../../src/components/CalendarDayGrid/CalendarGridRow.tsx","../../src/components/CalendarDayGrid/CalendarDayGrid.base.tsx","../../src/dateGrid/getDayGrid.ts","../../src/components/Calendar/Calendar.types.ts","../../src/components/CalendarDayGrid/CalendarDayGrid.styles.ts","../../src/components/CalendarDayGrid/CalendarDayGrid.tsx","../../src/components/Calendar/CalendarDay/CalendarDay.base.tsx","../../src/components/Calendar/CalendarDay/CalendarDay.tsx","../../src/components/Calendar/CalendarDay/CalendarDay.styles.ts","../../src/components/Calendar/CalendarPicker/CalendarPicker.styles.ts","../../src/components/Calendar/CalendarMonth/CalendarMonth.styles.ts","../../src/components/Calendar/defaults.ts","../../src/components/Calendar/CalendarYear/CalendarYear.base.tsx","../../src/components/Calendar/CalendarYear/CalendarYear.tsx","../../src/components/Calendar/CalendarYear/CalendarYear.styles.ts","../../src/components/Calendar/CalendarMonth/CalendarMonth.base.tsx","../../src/components/Calendar/CalendarMonth/CalendarMonth.tsx","../../src/components/Calendar/Calendar.base.tsx","../../src/components/Calendar/Calendar.styles.ts","../../src/components/Calendar/Calendar.tsx","../../src/components/DatePicker/defaults.ts","../../src/components/DatePicker/DatePicker.base.tsx","../../src/components/DatePicker/DatePicker.styles.ts","../../src/components/DatePicker/DatePicker.tsx","../../src/components/Stack/StackUtils.ts","../../src/components/Stack/Stack.styles.ts","../../src/components/Stack/Stack.tsx","../../src/components/Card/CardItem/CardItem.styles.ts","../../src/components/Card/CardItem/CardItem.ts","../../src/components/Card/CardItem/CardItem.view.tsx","../../src/components/Card/CardSection/CardSection.styles.ts","../../src/components/Card/CardSection/CardSection.ts","../../src/components/Card/CardSection/CardSection.view.tsx","../../src/components/Card/Card.view.tsx","../../src/components/Card/Card.styles.ts","../../src/components/Card/Card.ts","../../src/fabric-icons.ts","../../src/fabric-icons-0.ts","../../src/fabric-icons-1.ts","../../src/fabric-icons-2.ts","../../src/fabric-icons-3.ts","../../src/fabric-icons-4.ts","../../src/fabric-icons-5.ts","../../src/fabric-icons-6.ts","../../src/fabric-icons-7.ts","../../src/fabric-icons-8.ts","../../src/fabric-icons-9.ts","../../src/fabric-icons-10.ts","../../src/fabric-icons-11.ts","../../src/fabric-icons-12.ts","../../src/fabric-icons-13.ts","../../src/fabric-icons-14.ts","../../src/fabric-icons-15.ts","../../src/fabric-icons-16.ts","../../src/fabric-icons-17.ts","../../src/iconAliases.ts","../../src/utilities/contextualMenu/contextualMenuUtility.ts","../../src/components/ContextualMenu/ContextualMenuItem.base.tsx","../../src/components/Divider/VerticalDivider.classNames.ts","../../src/components/ContextualMenu/ContextualMenu.cnstyles.ts","../../src/components/ContextualMenu/ContextualMenu.classNames.ts","../../src/components/ContextualMenu/ContextualMenuItem.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.tsx","../../src/components/Divider/VerticalDivider.base.tsx","../../src/components/Divider/VerticalDivider.tsx","../../src/components/Divider/VerticalDivider.styles.ts","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.tsx","../../src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.tsx","../../src/utilities/MenuContext/MenuContext.ts","../../src/components/ContextualMenu/ContextualMenu.base.tsx","../../src/components/ContextualMenu/ContextualMenu.styles.ts","../../src/components/ContextualMenu/ContextualMenu.tsx","../../src/utilities/color/getFullColorString.ts","../../src/utilities/color/hsv2hex.ts","../../src/utilities/color/updateSV.ts","../../src/components/ColorPicker/ColorRectangle/ColorRectangle.base.tsx","../../src/components/ColorPicker/ColorRectangle/ColorRectangle.tsx","../../src/components/ColorPicker/ColorRectangle/ColorRectangle.styles.ts","../../src/components/ColorPicker/ColorSlider/ColorSlider.base.tsx","../../src/components/ColorPicker/ColorSlider/ColorSlider.styles.ts","../../src/components/ColorPicker/ColorSlider/ColorSlider.tsx","../../src/utilities/color/updateA.ts","../../src/utilities/color/updateT.ts","../../src/components/ColorPicker/ColorPicker.base.tsx","../../src/utilities/color/updateH.ts","../../src/utilities/color/correctHex.ts","../../src/utilities/color/correctRGB.ts","../../src/components/ColorPicker/ColorPicker.styles.ts","../../src/components/ColorPicker/ColorPicker.tsx","../../src/components/Fabric/Fabric.base.tsx","../../src/components/Fabric/Fabric.styles.ts","../../src/components/Fabric/Fabric.tsx","../../src/components/Dialog/DialogContent.types.ts","../../src/components/Modal/Modal.styles.ts","../../src/utilities/DraggableZone/DraggableZone.styles.ts","../../src/utilities/DraggableZone/DraggableZone.tsx","../../src/components/Modal/Modal.base.tsx","../../src/useUnmount.ts","../../src/components/Modal/Modal.ts","../../src/components/Dialog/DialogFooter.base.tsx","../../src/components/Dialog/DialogFooter.styles.ts","../../src/components/Dialog/DialogFooter.tsx","../../src/components/Dialog/DialogContent.base.tsx","../../src/components/Dialog/DialogContent.styles.ts","../../src/components/Dialog/DialogContent.tsx","../../src/components/Dialog/Dialog.base.tsx","../../src/components/Dialog/Dialog.styles.ts","../../src/components/Dialog/Dialog.tsx","../../../../src/link/http/serializeFetchParameter.ts","../../../../src/link/utils/throwServerError.ts","../../../../src/link/http/parseAndCheckHttpResponse.ts","../../../../src/link/http/checkFetcher.ts","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/printString.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/printer.mjs","../../../../src/link/http/selectHttpOptionsAndBody.ts","../../../../src/link/utils/fromError.ts","../../../../src/link/http/createHttpLink.ts","../../../../src/link/http/selectURI.ts","../../../../src/link/http/createSignalIfSupported.ts","../../../../src/link/http/rewriteURIForGET.ts","../../../../src/link/http/HttpLink.ts","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/jsutils/invariant.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/location.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/printLocation.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/error/GraphQLError.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/jsutils/isObjectLike.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/error/syntaxError.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/tokenKind.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/directiveLocation.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/characterClasses.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/lexer.mjs","../.yarn/cache/graphql-npm-16.0.1-7f178cf40c-e2fbddc78a.zip/node_modules/graphql/language/parser.mjs","../../../../src/cache/core/cache.ts","../../../../../src/cache/core/types/common.ts","../../../../src/utilities/common/maybeDeepFreeze.ts","../../../../src/cache/inmemory/helpers.ts","../../../../src/cache/inmemory/entityStore.ts","../../../../src/cache/inmemory/readFromStore.ts","../../../../src/cache/inmemory/key-extractor.ts","../../../../src/cache/inmemory/policies.ts","../../../../src/utilities/common/stringifyForDisplay.ts","../../../../src/cache/inmemory/writeToStore.ts","../../../../src/cache/inmemory/inMemoryCache.ts","../../src/utilities/ButtonGrid/ButtonGrid.base.tsx","../../src/utilities/ButtonGrid/ButtonGrid.tsx","../../src/utilities/ButtonGrid/ButtonGrid.styles.ts","../../src/utilities/ButtonGrid/ButtonGridCell.tsx","../../src/components/SwatchColorPicker/ColorPickerGridCell.base.tsx","../../src/components/SwatchColorPicker/ColorPickerGridCell.styles.ts","../../src/components/SwatchColorPicker/ColorPickerGridCell.tsx","../../src/components/SwatchColorPicker/SwatchColorPicker.base.tsx","../../src/components/SwatchColorPicker/SwatchColorPicker.styles.ts","../../src/components/SwatchColorPicker/SwatchColorPicker.tsx","../../src/components/OverflowSet/OverflowButton.tsx","../../src/components/OverflowSet/OverflowSet.base.tsx","../../src/components/OverflowSet/OverflowSet.styles.ts","../../src/components/OverflowSet/OverflowSet.ts","../../src/components/Button/CommandBarButton/CommandBarButton.styles.ts","../../src/components/Button/CommandBarButton/CommandBarButton.tsx","../../src/components/CommandBar/CommandBar.styles.ts","../../src/components/CommandBar/CommandBar.base.tsx","../../src/components/CommandBar/CommandBar.tsx","../../src/components/Tooltip/Tooltip.types.ts","../../src/components/Tooltip/Tooltip.base.tsx","../../src/components/Tooltip/Tooltip.tsx","../../src/components/Tooltip/Tooltip.styles.ts","../../src/components/Tooltip/TooltipHost.base.tsx","../../src/overflow.ts","../../src/components/Tooltip/TooltipHost.styles.ts","../../src/components/Tooltip/TooltipHost.ts","../../src/Rectangle.ts","../../src/utilities/positioning/positioning.ts","../../src/components/Callout/CalloutContent.base.tsx","../../src/components/Callout/CalloutContent.styles.ts","../../src/components/Callout/CalloutContent.tsx","../../src/components/Callout/Callout.tsx","../../src/useRefEffect.ts","../../src/utilities/useOverflow.ts","../../src/utilities/observeResize.ts","../../src/components/Pivot/Pivot.base.tsx","../../src/components/Pivot/Pivot.styles.ts","../../src/components/Pivot/Pivot.tsx","../../src/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.tsx","../../src/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.ts","../../src/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.tsx","../../src/components/ChoiceGroup/ChoiceGroup.base.tsx","../../src/components/ChoiceGroup/ChoiceGroup.styles.ts","../../src/components/ChoiceGroup/ChoiceGroup.tsx","../../../../src/react/context/ApolloProvider.tsx","../../src/components/Layer/Layer.notification.ts","../../src/components/Layer/Layer.base.tsx","../../src/setVirtualParent.ts","../../src/components/Layer/Layer.styles.ts","../../src/components/Layer/Layer.tsx","../../src/components/Dropdown/utilities/DropdownSizePosCache.ts","../../src/components/Dropdown/Dropdown.base.tsx","../../src/safeRequestAnimationFrame.ts","../../src/components/Dropdown/Dropdown.styles.ts","../../src/components/Dropdown/Dropdown.tsx","../../src/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.ts","../../src/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.tsx","../../src/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.ts","../../src/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.tsx","../../src/components/pickers/PeoplePicker/PeoplePicker.tsx","../../src/components/pickers/TagPicker/TagItem.styles.ts","../../src/components/pickers/TagPicker/TagItem.tsx","../../src/components/pickers/TagPicker/TagItemSuggestion.styles.ts","../../src/components/pickers/TagPicker/TagItemSuggestion.tsx","../../src/components/pickers/TagPicker/TagPicker.tsx","../../src/components/Slider/useSlider.ts","../../src/components/Slider/Slider.base.tsx","../../src/components/Slider/Slider.styles.ts","../../src/components/Slider/Slider.tsx","../../src/components/Spinner/Spinner.base.tsx","../../src/components/Spinner/Spinner.styles.tsx","../../src/components/Spinner/Spinner.tsx","../../src/components/MessageBar/MessageBar.base.tsx","../../src/components/MessageBar/MessageBar.styles.ts","../../src/components/MessageBar/MessageBar.tsx","../../src/utilities/keytips/KeytipUtils.ts","../../src/components/KeytipData/useKeytipData.ts","../../src/components/KeytipData/KeytipData.tsx","../../src/customizations/mergeSettings.ts","../../src/customizations/Customizer.tsx","../../src/customizations/mergeCustomizations.ts","../../src/components/Text/Text.ts","../../src/components/Text/Text.view.tsx","../../src/components/Text/Text.styles.ts","../../src/components/DocumentCard/DocumentCard.base.tsx","../../src/components/DocumentCard/DocumentCard.styles.ts","../../src/components/DocumentCard/DocumentCard.ts","../../src/components/DocumentCard/DocumentCardImage.base.tsx","../../src/components/DocumentCard/DocumentCardImage.styles.ts","../../src/components/DocumentCard/DocumentCardImage.ts","../../src/components/DocumentCard/DocumentCardActions.base.tsx","../../src/components/DocumentCard/DocumentCardActions.styles.ts","../../src/components/DocumentCard/DocumentCardActions.ts","../../src/components/Panel/Panel.base.tsx","../../src/components/Panel/Panel.styles.ts","../../src/components/Panel/Panel.ts","../../src/components/Overlay/Overlay.base.tsx","../../src/components/Overlay/Overlay.styles.ts","../../src/components/Overlay/Overlay.tsx","../../src/components/Checkbox/Checkbox.base.tsx","../../src/components/Checkbox/Checkbox.styles.ts","../../src/components/Checkbox/Checkbox.tsx","../../src/components/ResizeGroup/ResizeGroup.types.ts","../../src/components/ResizeGroup/ResizeGroup.base.tsx","../../src/components/ResizeGroup/ResizeGroup.tsx","../../src/components/DocumentCard/DocumentCardDetails.base.tsx","../../src/components/DocumentCard/DocumentCardDetails.styles.ts","../../src/components/DocumentCard/DocumentCardDetails.ts","../../src/components/Persona/Persona.base.tsx","../../src/components/Persona/Persona.styles.ts","../../src/components/Persona/Persona.tsx","../../src/components/Link/useLink.ts","../../src/components/Link/Link.base.tsx","../../src/components/Link/Link.tsx","../../src/components/ActivityItem/ActivityItem.classNames.ts","../../src/components/ActivityItem/ActivityItem.styles.ts","../../src/components/ActivityItem/ActivityItem.tsx","../../src/components/Separator/Separator.base.tsx","../../src/components/Separator/Separator.tsx","../../src/components/Separator/Separator.styles.ts","../../src/components/Breadcrumb/Breadcrumb.base.tsx","../../src/components/Breadcrumb/Breadcrumb.styles.ts","../../src/components/Breadcrumb/Breadcrumb.tsx","../../src/components/Nav/Nav.base.tsx","../../src/components/Nav/Nav.styles.ts","../../src/components/Nav/Nav.tsx","../../src/components/SearchBox/SearchBox.base.tsx","../../src/components/SearchBox/SearchBox.styles.tsx","../../src/components/SearchBox/SearchBox.tsx","../../src/components/ComboBox/ComboBox.tsx","../../src/components/ComboBox/ComboBox.styles.ts","../../src/components/ComboBox/ComboBox.classNames.ts","../../../../../../src/generated/src/operations/container.ts","../../../src/ContainerURL.ts","../../../../../../src/generated/src/operations/blockBlob.ts","../../../src/BlockBlobURL.ts","../../src/parse-tag.js","../../src/parse.js","../../src/stringify.js","../../src/index.js","../.yarn/__virtual__/react-i18next-virtual-30db554cd2/0/cache/react-i18next-npm-11.14.3-fa75bc7a1a-aaf2092a71.zip/node_modules/react-i18next/dist/es/Trans.js","../../../../src/utilities/common/filterInPlace.ts","../../../../src/utilities/graphql/transform.ts","../../src/customizations/useCustomizationSettings.ts","../../src/styled.tsx","../../src/components/Button/IconButton/IconButton.styles.ts","../../src/components/Button/IconButton/IconButton.tsx","../../src/components/DocumentCard/DocumentCardTitle.base.tsx","../../src/components/DocumentCard/DocumentCardTitle.ts","../../src/components/DocumentCard/DocumentCardLocation.base.tsx","../../src/components/DocumentCard/DocumentCardLocation.ts","../../src/components/FocusTrapZone/FocusTrapZone.tsx","../../src/modalize.ts","../../src/components/DocumentCard/DocumentCardActivity.base.tsx","../../src/components/DocumentCard/DocumentCardActivity.ts","../../src/components/TextField/MaskedTextField/inputMask.ts","../../src/components/TextField/MaskedTextField/MaskedTextField.tsx","../../src/components/Button/MessageBarButton/MessageBarButton.styles.ts","../../src/components/Button/MessageBarButton/MessageBarButton.tsx","../../src/components/DocumentCard/DocumentCardPreview.base.tsx","../../src/components/DocumentCard/DocumentCardPreview.ts","../../src/dom/raiseClick.ts","../../src/components/FocusZone/FocusZone.tsx","../../../../src/utils/Batch.ts","../../../src/highlevel.browser.ts"],"names":["module","exports","require","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_format","message","args","replace","match","rest","index","localize","data","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__extends","String","__","this","constructor","create","__assign","assign","t","s","n","arguments","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__read","o","m","ar","error","__spread","concat","__spreadArrays","il","k","a","j","jl","__spreadArray","to","from","pack","l","slice","clearNode","node","firstChild","remove","isInDOM","_a","isConnected","DomListener","type","handler","options","_node","_type","_handler","_options","addEventListener","removeEventListener","addDisposableListener","useCaptureOrOptions","_wrapAsStandardMouseEvent","StandardMouseEvent","addStandardDisposableListener","useCapture","wrapHandler","StandardKeyboardEvent","_wrapAsStandardKeyboardEvent","addStandardDisposableGenericMouseDownListner","addDisposableGenericMouseDownListner","platform","BrowserFeatures","pointerEvents","EventType","POINTER_DOWN","MOUSE_DOWN","addDisposableGenericMouseUpListner","POINTER_UP","MOUSE_UP","addDisposableNonBubblingMouseOutListener","toElement","relatedTarget","parentNode","addDisposableNonBubblingPointerOutListener","runAtThisOrScheduleAtNextAnimationFrame","scheduleAtNextAnimationFrame","_animationFrame","doRequestAnimationFrame","callback","self","requestAnimationFrame","msRequestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","setTimeout","Date","getTime","AnimationFrameQueueItem","runner","priority","_runner","_canceled","onUnexpectedError","NEXT_QUEUE","CURRENT_QUEUE","animFrameRequested","inAnimationFrameRunner","animationFrameRunner","sort","shift","execute","item","DEFAULT_EVENT_MERGER","lastEvent","currentEvent","TimeoutThrottledDomListener","eventMerger","minimumTimeMs","lastHandlerTime","timeout","_register","TimeoutTimer","invokeHandler","elapsedTime","cancel","setIfNotSet","Disposable","addDisposableThrottledListener","getComputedStyle","el","document","defaultView","getClientArea","element","Dimension","clientWidth","clientHeight","window","visualViewport","width","height","innerWidth","innerHeight","documentElement","Error","SizeUtils","parseFloat","cssPropertyName","jsPropertyName","computedStyle","getPropertyValue","getAttribute","convertToPixels","getDimension","obj","getTopLeftOffset","offsetParent","top","offsetTop","left","offsetLeft","scrollTop","isShadowRoot","direction","scrollLeft","getBorderLeftWidth","getBorderTopWidth","size","style","getDomNodePagePosition","domNode","bb","getBoundingClientRect","StandardWindow","scrollX","scrollY","getTotalWidth","margin","getMarginLeft","getMarginRight","offsetWidth","getContentWidth","border","getBorderRightWidth","padding","getPaddingLeft","getPaddingRight","getContentHeight","getBorderBottomWidth","getPaddingTop","getPaddingBottom","offsetHeight","getTotalHeight","getMarginTop","getMarginBottom","isAncestor","testChild","testAncestor","findParentWithClass","clazz","stopAtClazzOrNode","nodeType","ELEMENT_NODE","classList","contains","hasParentWithClass","host","mode","isInShadowDOM","getShadowRoot","getActiveElement","activeElement","shadowRoot","createStyleSheet","container","getElementsByTagName","createElement","media","appendChild","_sharedStyleSheet","getSharedStyleSheet","getDynamicStyleSheetRules","_b","sheet","rules","cssRules","createCSSRule","selector","cssText","insertRule","removeCSSRulesContainingSelector","ruleName","toDelete","rule","selectorText","deleteRule","isHTMLElement","HTMLElement","nodeName","CLICK","AUXCLICK","DBLCLICK","MOUSE_OVER","MOUSE_MOVE","MOUSE_OUT","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_WHEEL","POINTER_MOVE","CONTEXT_MENU","WHEEL","KEY_DOWN","KEY_PRESS","KEY_UP","LOAD","BEFORE_UNLOAD","UNLOAD","ABORT","ERROR","RESIZE","SCROLL","FULLSCREEN_CHANGE","WK_FULLSCREEN_CHANGE","SELECT","CHANGE","SUBMIT","RESET","FOCUS","FOCUS_IN","FOCUS_OUT","BLUR","INPUT","STORAGE","DRAG_START","DRAG","DRAG_ENTER","DRAG_LEAVE","DRAG_OVER","DROP","DRAG_END","ANIMATION_START","browser","ANIMATION_END","ANIMATION_ITERATION","EventHelper","stop","cancelBubble","preventDefault","returnValue","stopPropagation","saveParentsScrollTop","restoreParentsScrollTop","state","FocusTracker","_onDidFocus","Emitter","onDidFocus","event","_onDidBlur","onDidBlur","hasFocus","loosingFocus","onFocus","fire","onBlur","_refreshStateHandler","trackFocus","append","parent","children","prepend","child","insertBefore","reset","innerText","Namespace","SELECTOR_REGEX","_$","namespace","description","attrs","exec","tagName","HTML","createElementNS","id","className","trim","keys","forEach","name","test","setAttribute","$","show","elements","display","removeAttribute","hide","tag","computeScreenAwareSize","cssPx","screenPx","devicePixelRatio","Math","max","floor","windowOpenNoOpener","url","open","animate","fn","stepDisposable","toDisposable","dispose","asCSSUrl","uri","FileAccess","asBrowserUri","toString","asCSSPropertyValue","SVG","RemoteAuthorities","setPreferredWebSchema","location","href","ModifierKeyEmitter","_subscriptions","DisposableStore","_keyStatus","altKey","shiftKey","ctrlKey","metaKey","add","defaultPrevented","keyCode","repeat","lastKeyPressed","undefined","lastKeyReleased","buttons","resetKeyStatus","doResetKeyStatus","addMatchMediaChangeListener","query","mediaQueryList","matchMedia","addListener","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","getPrototypeOf","NewTarget","construct","_createForOfIteratorHelper","allowArrayLike","it","isArray","F","_e","err","normalCompletion","didErr","_e2","disposableTracker","trackDisposable","x","markAsDisposed","disposable","setParentOfDisposable","setParent","setParentOfDisposables","markAsSingleton","singleton","MultiDisposeError","errors","join","isDisposable","thing","arg","Iterable","is","combinedDisposable","disposables","once","_toDispose","Set","_isDisposed","clear","values","DISABLE_DISPOSED_WARNING","console","warn","stack","_store","None","freeze","MutableDisposable","_value","oldValue","ImmortalReference","object","Range","startLineNumber","startColumn","endLineNumber","endColumn","isEmpty","position","containsPosition","range","containsRange","strictContainsRange","plusRange","intersectRanges","other","equalsRange","getEndPosition","getStartPosition","collapseToStart","lineNumber","column","otherRange","min","resultStartLineNumber","resultStartColumn","resultEndLineNumber","resultEndColumn","otherStartLineNumber","otherStartColumn","otherEndLineNumber","otherEndColumn","Position","start","end","aStartLineNumber","bStartLineNumber","aStartColumn","bStartColumn","aEndLineNumber","bEndLineNumber","Extensions","ColorContribution","ColorRegistry","_onDidChangeSchema","onDidChangeSchema","colorSchema","properties","colorReferenceSchema","enum","enumDescriptions","colorsById","defaults","needsTransparency","deprecationMessage","colorContribution","propertySchema","format","defaultSnippets","theme","colorDesc","resolveColorValue","cat1","cat2","localeCompare","map","colorRegistry","registerColor","ifArg","thenArg","elseArg","foreground","dark","light","hc","nls","errorForeground","iconForeground","focusBorder","contrastBorder","activeContrastBorder","textLinkForeground","textLinkActiveForeground","textCodeBlockBackground","Color","black","widgetShadow","transparent","inputBackground","white","inputForeground","inputBorder","inputActiveOptionBorder","inputActiveOptionBackground","inputActiveOptionForeground","inputValidationInfoBackground","inputValidationInfoForeground","inputValidationInfoBorder","inputValidationWarningBackground","inputValidationWarningForeground","inputValidationWarningBorder","inputValidationErrorBackground","inputValidationErrorForeground","inputValidationErrorBorder","selectBackground","selectForeground","buttonForeground","buttonBackground","buttonHoverBackground","lighten","darken","badgeBackground","badgeForeground","scrollbarShadow","scrollbarSliderBackground","fromHex","scrollbarSliderHoverBackground","scrollbarSliderActiveBackground","progressBarBackground","editorErrorBackground","editorErrorForeground","editorErrorBorder","editorWarningBackground","editorWarningForeground","editorWarningBorder","editorInfoBackground","editorInfoForeground","editorInfoBorder","editorHintForeground","editorHintBorder","editorBackground","editorForeground","editorWidgetBackground","editorWidgetForeground","editorWidgetBorder","editorWidgetResizeBorder","quickInputBackground","quickInputForeground","quickInputTitleBackground","RGBA","pickerGroupForeground","pickerGroupBorder","keybindingLabelBackground","keybindingLabelForeground","keybindingLabelBorder","keybindingLabelBottomBorder","editorSelectionBackground","editorSelectionForeground","editorInactiveSelection","editorSelectionHighlight","lessProminent","editorSelectionHighlightBorder","editorFindMatch","editorFindMatchHighlight","editorFindRangeHighlight","editorFindMatchBorder","editorFindMatchHighlightBorder","editorFindRangeHighlightBorder","editorHoverHighlight","editorHoverBackground","editorHoverForeground","editorHoverBorder","editorHoverStatusBarBackground","editorActiveLinkForeground","blue","cyan","editorInlayHintForeground","editorInlayHintBackground","editorInlayHintTypeForeground","editorInlayHintTypeBackground","editorInlayHintParameterForeground","editorInlayHintParameterBackground","editorLightBulbForeground","editorLightBulbAutoFixForeground","defaultInsertColor","defaultRemoveColor","diffInserted","diffRemoved","diffInsertedOutline","diffRemovedOutline","diffBorder","diffDiagonalFill","listFocusBackground","listFocusForeground","listFocusOutline","listActiveSelectionBackground","listActiveSelectionForeground","listActiveSelectionIconForeground","listInactiveSelectionBackground","listInactiveSelectionForeground","listInactiveSelectionIconForeground","listInactiveFocusBackground","listInactiveFocusOutline","listHoverBackground","listHoverForeground","listDropBackground","listHighlightForeground","listFocusHighlightForeground","if","else","listFilterWidgetBackground","listFilterWidgetOutline","listFilterWidgetNoMatchesOutline","treeIndentGuidesStroke","tableColumnsBorder","_deprecatedQuickInputListFocusBackground","quickInputListFocusForeground","quickInputListFocusIconForeground","quickInputListFocusBackground","oneOf","menuBorder","menuForeground","menuBackground","menuSelectionForeground","menuSelectionBackground","menuSelectionBorder","menuSeparatorBackground","toolbarHoverBackground","snippetTabstopHighlightBackground","snippetTabstopHighlightBorder","snippetFinalTabstopHighlightBackground","snippetFinalTabstopHighlightBorder","overviewRulerFindMatchForeground","overviewRulerSelectionHighlightForeground","minimapFindMatch","minimapSelectionOccurrenceHighlight","minimapSelection","minimapError","minimapWarning","minimapBackground","minimapForegroundOpacity","minimapSliderBackground","minimapSliderHoverBackground","minimapSliderActiveBackground","problemsErrorIconForeground","problemsWarningIconForeground","problemsInfoIconForeground","colorValue","factor","colorValues","backgroundColorValue","transparency","background","getColor","transform","_c","color","defines","backgroundColor","isDarkerThan","getLighterColor","getDarkerColor","assertNever","executeTransform","workbenchColorsSchemaId","schemaRegistry","as","JSONExtensions","JSONContribution","registerSchema","getColorSchema","delayer","RunOnceScheduler","notifySchemaChanged","isScheduled","schedule","ownKeys","enumerableOnly","symbols","filter","sym","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","arrayWithHoles","_arr","_n","_d","_s","_i","unsupportedIterableToArray","nonIterableRest","EditorExtensionsRegistry","Command","opts","precondition","_kbOpts","kbOpts","_menuOpts","menuOpts","_description","_registerMenuItem","kbOptsArr","kbWhen","kbExpr","ContextKeyExpr","and","weight","when","primary","secondary","win","linux","mac","KeybindingsRegistry","registerKeybindingRule","CommandsRegistry","registerCommand","accessor","runCommand","MenuRegistry","appendMenuItem","menuId","group","command","title","icon","order","MultiCommand","_implementations","implementation","splice","logService","get","ILogService","trace","impl","ProxyCommand","EditorCommand","codeEditorService","ICodeEditorService","editor","getFocusedCodeEditor","getActiveCodeEditor","invokeWithinContext","editorAccessor","IContextKeyService","contextMatchesRules","withNullAsUndefined","runEditorCommand","controllerGetter","_callback","EditorAction","convertOptions","alias","reportTelemetry","run","ITelemetryService","publicLog2","withDefaults","MenuId","EditorContext","contextMenuOpts","MultiEditorAction","registerModelAndPositionCommand","resource","assertType","URI","isUri","isIPosition","model","IModelService","getModel","editorPosition","lift","ITextModelService","createModelReference","reference","textEditorModel","registerModelCommand","registerEditorCommand","editorCommand","EditorContributionRegistry","INSTANCE","registerEditorAction","ctor","action","registerMultiEditorAction","registerInstantiatedEditorAction","editorAction","registerEditorContribution","getEditorCommand","commandId","getEditorActions","getEditorContributions","getSomeEditorContributions","ids","getDiffEditorContributions","editorContributions","diffEditorContributions","editorActions","editorCommands","register","Registry","UndoCommand","MenubarEditMenu","comment","CommandPalette","RedoCommand","SelectAllCommand","MenubarSelectionMenu","Event","listener","thisArgs","didFire","snapshot","each","reduce","merge","initial","output","emitter","onFirstListenerAdd","onLastListenerRemove","debounce","subscription","delay","leading","leakWarningThreshold","handle","numDebouncedCalls","cur","clearTimeout","_output","latch","cache","equals","firstCall","shouldEmit","signal","any","events","split","isT","buffer","nextTick","_buffer","flush","onFirstListenerDidAdd","ChainableEvent","chain","fromNodeEventEmitter","eventName","on","removeListener","fromDOMEventEmitter","toPromise","EventProfiling","_listenerCount","_invocationCount","_elapsedOverall","_name","_idPool","listenerCount","_stopWatch","StopWatch","elapsed","info","toFixed","_disposed","_leakageMon","_perfMon","_profName","_event","_listeners","LinkedList","firstListener","onListenerDidAdd","removeMonitor","check","_deliveryQueue","PauseableEmitter","_isPaused","_eventQueue","_mergeFn","DebounceEmitter","_delay","_handle","pause","resume","EventBufferer","buffers","Relay","listening","inputEvent","inputEventListener","EditorContextKeys","editorSimpleInput","RawContextKey","editorTextFocus","focus","textInputFocus","readOnly","inDiffEditor","columnSelection","toNegated","hasNonEmptySelection","hasOnlyEmptySelection","hasMultipleSelections","hasSingleSelection","tabMovesFocus","tabDoesNotMoveFocus","isInWalkThroughSnippet","canUndo","canRedo","hoverVisible","inCompositeEditor","notInCompositeEditor","languageId","hasCompletionItemProvider","hasCodeActionsProvider","hasCodeLensProvider","hasDefinitionProvider","hasDeclarationProvider","hasImplementationProvider","hasTypeDefinitionProvider","hasHoverProvider","hasDocumentHighlightProvider","hasDocumentSymbolProvider","hasReferenceProvider","hasRenameProvider","hasSignatureHelpProvider","hasInlayHintsProvider","hasDocumentFormattingProvider","hasDocumentSelectionFormattingProvider","hasMultipleDocumentFormattingProvider","hasMultipleDocumentSelectionFormattingProvider","isFalsyOrWhitespace","str","_formatRegexp","idx","parseInt","isNaN","escape","html","escapeRegExpCharacters","haystack","needle","trimmed","ltrim","rtrim","needleLen","offset","substring","haystackLen","lastIndexOf","convertSimple2RegExpPattern","pattern","stripWildcards","createRegExp","searchString","isRegex","wholeWord","charAt","modifiers","global","matchCase","multiline","unicode","RegExp","regExpLeadsToEndlessLoop","regexp","lastIndex","regExpFlags","ignoreCase","splitLines","firstNonWhitespaceIndex","len","chCode","charCodeAt","getLeadingWhitespace","lastNonWhitespaceIndex","startIndex","compare","compareSubstring","aStart","aEnd","bStart","bEnd","codeA","codeB","aLen","bLen","compareIgnoreCase","compareSubstringIgnoreCase","toLowerCase","isLowerAsciiLetter","diff","code","isUpperAsciiLetter","equalsIgnoreCase","startsWithIgnoreCase","candidate","candidateLength","commonPrefixLength","commonSuffixLength","aLastIndex","bLastIndex","isHighSurrogate","charCode","isLowSurrogate","computeCodePoint","highSurrogate","lowSurrogate","getNextCodePoint","nextCharCode","getPrevCodePoint","prevCharCode","nextCharLength","graphemeBreakTree","GraphemeBreakTree","getInstance","initialOffset","initialCodePoint","graphemeBreakType","getGraphemeBreakType","nextCodePoint","nextGraphemeBreakType","breakBetweenGraphemeBreakType","prevCharLength","prevCodePoint","prevGraphemeBreakType","CONTAINS_RTL","containsRTL","CONTAINS_EMOJI","containsEmoji","IS_BASIC_ASCII","isBasicASCII","UNUSUAL_LINE_TERMINATORS","containsUnusualLineTerminators","containsFullWidthCharacter","isFullWidthCharacter","isEmojiImprecise","UTF8_BOM_CHARACTER","fromCharCode","startsWithUTF8BOM","containsUppercaseCharacter","ignoreEscapedChars","singleLetterHash","codePoint","breakTypeA","breakTypeB","_data","JSON","parse","nodeCount","nodeIndex","_INSTANCE","getLeftDeleteOffset","emojiOffset","getUTF16Length","isEmojiModifier","optionalZwjCodePoint","getOffsetBeforeLastEmojiComponent","_userAgent","userAgent","CONSTANT_VALUES","Map","set","isMacintosh","isLinux","isWindows","isWeb","ContextKeyDefinedExpr","ContextKeyEqualsExpr","ContextKeyRegexExpr","ContextKeyNotExpr","expr","ContextKeyAndExpr","ContextKeyOrExpr","serialized","strict","_deserializeOrExpression","pieces","_deserializeAndExpression","_deserializeOne","serializedOne","ContextKeyNotEqualsExpr","_deserializeValue","_deserializeRegexValue","ContextKeyInExpr","ContextKeyGreaterEqualsExpr","ContextKeyGreaterExpr","ContextKeySmallerEqualsExpr","ContextKeySmallerExpr","substr","serializedValue","caseIgnoreFlag","expressionsAreEqualWithConstantSubstitution","aExpr","substituteConstants","bExpr","cmp","ContextKeyFalseExpr","context","ContextKeyTrueExpr","negated","cmp1","constantValue","getValue","cmp2","trueValue","valueKey","ContextKeyNotInExpr","_actual","evaluate","actual","falseValue","withFloatOrStr","thisSource","otherSource","ContextKeyNotRegexExpr","eliminateConstantsInArray","newArr","newExpr","exprArr","serialize","negate","_expr","_normalizeArr","hasTrue","lastElement","secondToLastElement","isFinished","resultElement","LEFT","RIGHT","all","getTerminals","right","unshift","extraRedundantCheck","hasFalse","implies","defaultValue","metaOrHide","_defaultValue","_info","createKey","getContextKeyValue","createDecorator","SET_CONTEXT_COMMAND_ID","key1","key2","value1","value2","q","qTerm","notA","_getPrototypeOf","property","receiver","base","InlineCompletionTriggerKind","SignatureHelpTriggerKind","DocumentHighlightKind","SymbolKinds","TokenizationRegistryImpl","_map","_promises","_onDidChange","onDidChange","_colorMap","languages","changedLanguages","changedColorMap","language","support","supportPromise","registration","isDisposed","promise","colorMap","TokenMetadata","metadata","getForeground","fontStyle","getFontStyle","completionKindToCssClass","kind","codicon","iconRegistry","Codicon","symbolProperty","classNames","completionKindFromString","res","isLocationLink","isIRange","originSelectionRange","targetSelectionRange","byName","byKind","fromString","toCssClassName","inline","symbolName","InlayHintKind","FoldingRangeKind","Comment","Imports","Region","ReferenceProviderRegistry","LanguageFeatureRegistry","RenameProviderRegistry","CompletionProviderRegistry","InlineCompletionsProviderRegistry","SignatureHelpProviderRegistry","HoverProviderRegistry","DocumentSymbolProviderRegistry","DocumentHighlightProviderRegistry","LinkedEditingRangeProviderRegistry","DefinitionProviderRegistry","DeclarationProviderRegistry","ImplementationProviderRegistry","TypeDefinitionProviderRegistry","CodeLensProviderRegistry","InlayHintsProviderRegistry","CodeActionProviderRegistry","DocumentFormattingEditProviderRegistry","DocumentRangeFormattingEditProviderRegistry","OnTypeFormattingEditProviderRegistry","LinkProviderRegistry","ColorProviderRegistry","SelectionRangeRegistry","FoldingRangeProviderRegistry","DocumentSemanticTokensProviderRegistry","DocumentRangeSemanticTokensProviderRegistry","TokenizationRegistry","newLineNumber","newColumn","deltaLineNumber","deltaColumn","isBefore","isBeforeOrEqual","aLineNumber","bLineNumber","pos","_toConsumableArray","arrayLikeToArray","iterableToArray","keyframes","timeline","stylesheet","Stylesheet","rulesArray","prop","classNameFromKey","getClassName","cacheClassName","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","opacity","FADE_OUT","visibility","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","easeFunction1","easeFunction2","durationValue1","durationValue2","durationValue3","durationValue4","AnimationStyles","slideRightIn10","_createAnimation","slideRightIn20","slideRightIn40","slideRightIn400","slideLeftIn10","slideLeftIn20","slideLeftIn40","slideLeftIn400","slideUpIn10","slideUpIn20","slideDownIn10","slideDownIn20","slideRightOut10","slideRightOut20","slideRightOut40","slideRightOut400","slideLeftOut10","slideLeftOut20","slideLeftOut40","slideLeftOut400","slideUpOut10","slideUpOut20","slideDownOut10","slideDownOut20","scaleUpIn100","scaleDownIn100","scaleUpOut103","scaleDownOut98","fadeIn100","fadeIn200","fadeIn400","fadeIn500","fadeOut100","fadeOut200","fadeOut400","fadeOut500","rotate90deg","rotateN90deg","animationName","animationDuration","animationTimingFunction","animationFillMode","fromX","fromY","toX","toY","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","AnimationClassNames","styles","classes","styleName","mergeStyles","buildClassMap","Arabic","Cyrillic","EastEuropean","Greek","Hebrew","Thai","Vietnamese","WestEuropean","Selawik","Armenian","Georgian","ChineseSimplified","ChineseTraditional","Hindi","Japanese","Korean","size10","size12","size14","size16","size18","size20","size24","size28","size32","size42","size68","mini","xSmall","small","smallPlus","medium","mediumPlus","large","xLarge","xLargePlus","xxLarge","xxLargePlus","superLarge","mega","semilight","regular","semibold","bold","HighContrastSelector","HighContrastSelectorWhite","ScreenWidthMinSmall","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMaxSmall","ScreenWidthMaxMedium","ScreenWidthMinUhfMobile","getScreenSelector","getHighContrastNoAdjustStyle","forcedColorAdjust","MsHighContrastAdjust","_isSSR","_window","getWindow","rootElement","ownerDocument","ZIndexes","getFocusStyle","insetOrOptions","highContrastStyle","borderColor","outlineColor","isFocusedOnly","_getFocusStyleInternal","inset","palette","neutralSecondary","outline","selectors","content","bottom","zIndex","FocusStyle","focusClear","Nav","ScrollablePane","Coachmark","Layer","KeytipLayer","borderRadius","borderType","borderPosition","isBorderBottom","hiddenContentStyle","overflow","whiteSpace","_continuousPulseStepOne","beaconColorOne","innerDimension","borderWidth","_continuousPulseStepTwo","_continuousPulseStepFour","beaconColorTwo","outerDimension","_continuousPulseStepFive","PulsingBeaconAnimationStyles","continuousPulseAnimationDouble","continuousPulseAnimationSingle","createDefaultAnimation","delayLength","animationIterationCount","animationDelay","_initializedStylesheetResets","_resetCounter","_emptyObject","empty","_dictionary","_weakMap","WeakMap","resetMemoizations","memoizeFunction","cb","maxCacheSize","ignoreNullOrUndefinedResult","onReset","rootNode","cacheSize","localResetCounter","currentNode","_createNode","_normalizeArg","has","val","_getGlobalClassNames","disableGlobalClassNames","styleSheet","acc","getGlobalClassNames","_counter","globalSettings","_getGlobalSettings","setValue","callbacks","changeDescription","addChangeListener","__id__","_getCallbacks","removeChangeListener","globalObj","Depths","NO_CUSTOMIZATIONS","settings","scopedSettings","inCustomizerContext","_allSettings","GlobalSettings","_events","applySettings","Customizations","_raiseChange","applyScopedSettings","scopeName","getSettings","localSettings","localScopedSettings","globalScopedSettings","applyBatchedUpdates","suppressUpdate","_suppressUpdates","observe","onChange","unobserve","DefaultPalette","themeDarker","themeDark","themeDarkAlt","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","blackTranslucent40","neutralDark","neutralPrimary","neutralPrimaryAlt","neutralSecondaryAlt","neutralTertiary","neutralTertiaryAlt","neutralQuaternary","neutralQuaternaryAlt","neutralLight","neutralLighter","neutralLighterAlt","accent","whiteTranslucent40","yellowDark","yellow","yellowLight","orange","orangeLight","orangeLighter","redDark","red","magentaDark","magenta","magentaLight","purpleDark","purple","purpleLight","blueDark","blueMid","blueLight","tealDark","teal","tealLight","greenDark","green","greenLight","depth0","depth4","depth8","depth16","depth64","_language","DefaultEffects","elevation4","elevation8","elevation16","elevation64","roundedCorner2","roundedCorner4","roundedCorner6","defaultFontFamily","LanguageToFontMap","bg","cs","et","he","hi","hr","hu","ja","kk","ko","lt","lv","pl","ru","sk","th","tr","uk","vi","hy","ka","_createFont","fontFamily","MozOsxFontSmoothing","WebkitFontSmoothing","fontSize","fontWeight","getDocument","STORAGE_KEY","DefaultFontStyles","localeCode","fontFamilyWithFallback","lang","_getLocalizedFontFamily","tiny","createFontStyles","persistenceType","doc","savedLanguage","localStorage","getItem","sessionStorage","getLanguage","_registerFontFace","localFontName","localFontSrc","fontFace","src","fontDisplay","_registerFontFaceSet","baseUrl","cdnFolder","cdnFontName","urlBase","_merge","circularReferences","isCircularReference","makeSemanticColors","isInverted","depComments","dep","listTextColor","listText","menuItemBackgroundChecked","warningHighlight","warningText","messageText","successText","_fixDeprecatedSlots","getSemanticColors","primaryButtonBorder","errorText","messageLink","messageLinkHovered","infoIcon","errorIcon","blockingIcon","warningIcon","severeWarningIcon","successIcon","infoBackground","errorBackground","blockingBackground","warningBackground","severeWarningBackground","successBackground","bodyBackground","bodyFrameBackground","accentButtonText","primaryButtonText","primaryButtonTextHovered","primaryButtonTextPressed","inputForegroundChecked","listBackground","cardStandoutBackground","bodyTextChecked","buttonTextCheckedHovered","link","primaryButtonBackground","inputBackgroundChecked","inputIcon","inputFocusBorderAlt","menuIcon","menuHeader","accentButtonBackground","primaryButtonBackgroundPressed","inputBackgroundCheckedHovered","inputIconHovered","linkHovered","primaryButtonBackgroundHovered","inputPlaceholderBackgroundChecked","bodyBackgroundChecked","bodyFrameDivider","bodyDivider","variantBorder","buttonBackgroundCheckedHovered","buttonBackgroundPressed","listItemBackgroundChecked","listHeaderBackgroundPressed","menuItemBackgroundPressed","bodyBackgroundHovered","buttonBackgroundHovered","buttonBackgroundDisabled","buttonBorderDisabled","primaryButtonBackgroundDisabled","disabledBackground","listItemBackgroundHovered","listHeaderBackgroundHovered","menuItemBackgroundHovered","primaryButtonTextDisabled","disabledSubtext","listItemBackgroundCheckedHovered","disabledBodyText","variantBorderHovered","buttonTextDisabled","inputIconDisabled","disabledText","bodyText","actionLink","buttonText","inputBorderHovered","inputText","menuItemText","bodyStandoutBackground","defaultStateBackground","actionLinkHovered","buttonTextHovered","buttonTextChecked","buttonTextPressed","inputTextHovered","menuItemTextHovered","bodySubtext","smallInputBorder","inputPlaceholderText","buttonBorder","disabledBodySubtext","disabledBorder","buttonBackgroundChecked","menuDivider","cardShadow","cardShadowHovered","fontUrl","registerDefaultFontFaces","fabricConfig","FabricConfig","fontBaseUrl","_getFontBaseUrl","DefaultSpacing","s2","s1","l1","l2","createTheme","partialTheme","mergedTheme","semanticColors","effects","defaultFontStyle","fonts","mergeThemes","spacing","rtl","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","legacyTheme","loadTheme","getTheme","lines","fontName","font","propName","toUpperCase","_loadFonts","normalize","boxShadow","boxSizing","noWrap","textOverflow","getPlaceholderStyles","_iconSettings","__options","disableWarnings","warnOnMissingIcons","__remapped","subset","normalizeIconName","registerIcons","iconSubset","isRegistered","icons","iconName","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","_missingIcons","_missingIconsTimer","roundFloat","number","decimalPoints","decimal","pow","round","_rgbaBrand","HSLA","h","_hslaBrand","rgba","chroma","hsla","_hue2rgb","HSVA","_hsvaBrand","cmax","delta","hsva","abs","_hsla","toRGBA","_hsva","fromRGBA","_relativeLuminanceForComponent","another","getRelativeLuminance","_toString","Format","CSS","hex","parseHex","of","relative","isLighterThan","lum1","lum2","lightgrey","_toTwoDigitHex","_parseHexDigit","formatRGB","formatRGBA","formatHSL","formatHSLA","formatHex","formatHexA","compact","isOpaque","LANGUAGE_DEFAULT","_isWindows","_isMacintosh","_isLinux","_isNative","_isWeb","_isIOS","globals","nodeProcess","vscode","process","isElectronRenderer","versions","electron","navigator","env","rawNlsConfig","nlsConfig","resolved","availableLanguages","locale","_translationsConfigFile","maxTouchPoints","isNative","isIOS","setImmediate","bind","postMessage","importScripts","pending","vscodeSetImmediateId","lastId","myId","_promise","OS","_isLittleEndian","_isLittleEndianComputed","isLittleEndian","Uint8Array","view","Uint16Array","ThemeColor","ThemeIcon","IThemeService","themeColorFromId","getThemeTypeSelector","ColorScheme","DARK","HIGH_CONTRAST","isThemeColor","isThemeIcon","_regexFromString","CSSIcon","iconNameExpression","iconModifierExpression","modify","modifier","tildeIndex","isEqual","ti1","ti2","asThemeIcon","asClassNameArray","asClassName","asCSSSelector","ThemingContribution","themingRegistry","themingParticipants","onThemingParticipantAddedEmitter","participant","registerThemingParticipant","onColorThemeChange","Themable","themeService","getColorTheme","onDidColorThemeChange","onThemeChange","updateStyles","errorHandler","listeners","unexpectedErrorHandler","emit","isPromiseCanceledError","onUnexpectedExternalError","transformErrorForSerialization","$isError","stacktrace","canceledName","canceled","illegalArgument","illegalState","NotSupportedError","isThenable","createCancelablePromise","CancellationTokenSource","thenable","token","onCancellationRequested","onfinally","raceCancellation","race","Throttler","activePromise","queuedPromise","queuedPromiseFactory","promiseFactory","onComplete","queue","Delayer","defaultDelay","completionPromise","doResolve","doReject","task","cancelTimeout","ThrottledDelayer","throttler","trigger","millis","disposableTimeout","timer","first","promiseFactories","shouldStop","loop","factory","runWhenIdle","_token","IntervalTimer","clearInterval","interval","setInterval","timeoutToken","timeoutHandler","onTimeout","doRun","requestIdleCallback","cancelIdleCallback","now","didTimeout","timeRemaining","disposed","Promises","IdleValue","executor","_didRun","_executor","_error","settled","promises","firstError","withAsyncBody","bodyFn","array","isString","isObject","isNumber","isBoolean","isUndefined","isDefined","isUndefinedOrNull","condition","assertIsDefined","isFunction","validateConstraints","constraints","validateConstraint","constraint","getAllMethodNames","methods","proto","getOwnPropertyNames","getAllPropertyNames","createProxyObject","methodNames","invoke","createProxyMethod","method","methodName","_util","serviceIds","DI_TARGET","DI_DEPENDENCIES","getServiceDependencies","IInstantiationService","storeServiceDependency","optional","serviceId","serviceIdentifier","_assertThisInitialized","ReferenceError","tail","tail2","one","itemEquals","binarySearch","comparator","low","high","mid","comp","findFirstInSorted","quickSelect","nth","pivotValue","random","lower","higher","pivots","groupBy","currentGroup","coalesce","isFalsyOrEmpty","isNonEmptyArray","distinct","keyFn","seen","findLast","predicate","firstOrDefault","notFoundValue","flatten","arrayInsert","insertIndex","insertArr","before","after","pushToStart","pushToEnd","asArray","deleteCount","newItems","getActualStartIndex","startIdx","originalLength","newItemsLength","insertInto","ArrayQueue","items","firstIdx","lastIdx","endIdx","_registry","_icons","_onDidRegister","existing","registerCodicon","def","getCodiconAriaLabel","text","_match","codiconName","definition","iconNameSegment","cssIconIdRegex","fontCharacter","plus","gistNew","repoCreate","lightbulb","lightBulb","repo","repoDelete","gistFork","repoForked","gitPullRequest","gitPullRequestAbandoned","recordKeys","keyboard","tagAdd","tagRemove","person","personFollow","personOutline","personFilled","gitBranch","gitBranchCreate","gitBranchDelete","sourceControl","mirror","mirrorPublic","star","starAdd","starDelete","starEmpty","commentAdd","alert","warning","search","searchSave","logOut","signOut","logIn","signIn","eye","eyeUnwatch","eyeWatch","circleFilled","primitiveDot","closeDirty","debugBreakpoint","debugBreakpointDisabled","debugHint","primitiveSquare","edit","pencil","issueOpened","gistPrivate","gitForkPrivate","lock","mirrorPrivate","close","removeClose","repoSync","sync","clone","desktopDownload","beaker","microscope","vm","deviceDesktop","file","fileText","more","ellipsis","kebabHorizontal","mailReply","reply","organization","organizationFilled","organizationOutline","newFile","fileAdd","newFolder","fileDirectoryCreate","trash","trashcan","history","clock","folder","fileDirectory","symbolFolder","logoGithub","markGithub","github","terminal","repl","zap","symbolEvent","variable","symbolVariable","symbolArray","symbolModule","symbolPackage","symbolNamespace","symbolObject","symbolMethod","symbolFunction","symbolConstructor","symbolBoolean","symbolNull","symbolNumeric","symbolNumber","symbolStructure","symbolStruct","symbolParameter","symbolTypeParameter","symbolKey","symbolText","symbolReference","goToFile","symbolEnum","symbolValue","symbolRuler","symbolUnit","activateBreakpoints","archive","arrowBoth","arrowDown","arrowLeft","arrowRight","arrowSmallDown","arrowSmallLeft","arrowSmallRight","arrowSmallUp","arrowUp","bell","book","bookmark","debugBreakpointConditionalUnverified","debugBreakpointConditional","debugBreakpointConditionalDisabled","debugBreakpointDataUnverified","debugBreakpointData","debugBreakpointDataDisabled","debugBreakpointLogUnverified","debugBreakpointLog","debugBreakpointLogDisabled","briefcase","broadcast","bug","calendar","caseSensitive","checklist","chevronDown","dropDownButton","chevronLeft","chevronRight","chevronUp","chromeClose","chromeMaximize","chromeMinimize","chromeRestore","circleOutline","debugBreakpointUnverified","circleSlash","circuitBoard","clearAll","clippy","closeAll","cloudDownload","cloudUpload","collapseAll","colorMode","commentDiscussion","compareChanges","creditCard","dash","dashboard","database","debugContinue","debugDisconnect","debugPause","debugRestart","debugStart","debugStepInto","debugStepOut","debugStepOver","debugStop","debug","deviceCameraVideo","deviceCamera","deviceMobile","diffAdded","diffIgnored","diffModified","diffRenamed","discard","editorLayout","emptyWindow","exclude","extensions","eyeClosed","fileBinary","fileCode","fileMedia","filePdf","fileSubmodule","fileSymlinkDirectory","fileSymlinkFile","fileZip","files","flame","foldDown","foldUp","fold","folderActive","folderOpened","gear","gift","gistSecret","gist","gitCommit","gitCompare","gitMerge","githubAction","githubAlt","globe","grabber","graph","gripper","heart","home","horizontalRule","hubot","inbox","issueClosed","issueReopened","issues","italic","jersey","json","kebabVertical","law","lightbulbAutofix","linkExternal","listOrdered","listUnordered","liveShare","loading","mailRead","mail","markdown","megaphone","mention","milestone","mortarBoard","move","multipleWindows","mute","noNewline","note","octoface","openPreview","package_","paintcan","pin","play","plug","preserveCase","preview","project","pulse","question","quote","radioTower","reactions","references","refresh","regex","remoteExplorer","remote","replaceAll","repoClone","repoForcePush","repoPull","repoPush","report","requestChanges","rocket","rootFolderOpened","rootFolder","rss","ruby","saveAll","saveAs","save","screenFull","screenNormal","searchStop","server","settingsGear","shield","smiley","sortPrecedence","splitHorizontal","splitVertical","squirrel","starFull","starHalf","symbolClass","symbolColor","symbolConstant","symbolEnumMember","symbolField","symbolFile","symbolInterface","symbolKeyword","symbolMisc","symbolOperator","wrench","wrenchSubaction","symbolSnippet","tasklist","telescope","textSize","threeBars","thumbsdown","thumbsup","tools","triangleDown","triangleLeft","triangleRight","triangleUp","twitter","unfold","unlock","unmute","unverified","verified","vmActive","vmOutline","vmRunning","watch","whitespace","wordWrap","zoomIn","zoomOut","listFilter","listFlat","listSelection","selection","listTree","debugBreakpointFunctionUnverified","debugBreakpointFunction","debugBreakpointFunctionDisabled","debugStackframeActive","debugStackframeDot","debugStackframe","debugStackframeFocused","debugBreakpointUnsupported","symbolString","debugReverseContinue","debugStepBack","debugRestartFrame","callIncoming","callOutgoing","menu","expandAll","feedback","groupByRefType","ungroupByRefType","account","bellDot","debugConsole","library","runAll","syncIgnored","pinned","githubInverted","debugAlt","serverProcess","serverEnvironment","pass","stopCircle","playCircle","record","debugAltSmall","vmConnect","cloud","exportIcon","graphLeft","magnet","notebook","redo","checkAll","pinnedDirty","passFilled","circleLargeFilled","circleLargeOutline","combine","gather","table","variableGroup","typeHierarchy","typeHierarchySub","typeHierarchySuper","gitPullRequestCreate","runAbove","runBelow","notebookTemplate","debugRerun","workspaceTrusted","workspaceUntrusted","workspaceUnspecified","terminalCmd","terminalDebian","terminalLinux","terminalPowershell","terminalTmux","terminalUbuntu","terminalBash","arrowSwap","copy","personAdd","filterFilled","wand","debugLineByLine","inspect","layers","layersDot","layersActive","compass","compassDot","compassActive","azure","issueDraft","gitPullRequestClosed","gitPullRequestDraft","debugAll","debugCoverage","runErrors","folderLibrary","debugContinueSmall","beakerStop","graphLine","graphScatter","pieChart","bracket","bracketDot","bracketError","lockSmall","azureDevops","verifiedFilled","autoCloseAlways","autoCloseNever","autoCloseBeforeWhitespace","chr","CursorConfiguration","modelOptions","configuration","_cursorMoveConfigurationBrand","_languageId","layoutInfo","tabSize","indentSize","insertSpaces","stickyTabStops","lineHeight","pageSize","useTabStops","wordSeparators","emptySelectionClipboard","copyWithSyntaxHighlighting","multiCursorMergeOverlapping","multiCursorPaste","autoClosingBrackets","autoClosingQuotes","autoClosingDelete","autoClosingOvertype","autoSurround","autoIndent","surroundingPairs","_electricChars","shouldAutoCloseBefore","_getShouldAutoClose","autoClosingPairs","LanguageConfigurationRegistry","getAutoClosingPairs","_getSurroundingPairs","pair","electricChars","_getElectricCharacters","char","TextModel","normalizeIndentation","hasChanged","getElectricCharacters","autoCloseConfig","_getLanguageDefinedShouldAutoClose","autoCloseBeforeSet","getAutoCloseBeforeSet","getSurroundingPairs","SingleCursorState","selectionStart","selectionStartLeftoverVisibleColumns","leftoverVisibleColumns","_singleCursorStateBrand","_computeSelection","inSelectionMode","Selection","CursorContext","viewModel","coordinatesConverter","cursorConfig","_cursorContextBrand","PartialModelCursorState","modelState","viewState","PartialViewCursorState","CursorState","_cursorStateBrand","modelSelection","selectionStartLineNumber","selectionStartColumn","positionLineNumber","positionColumn","fromModelState","modelSelections","states","fromModelSelection","EditOperationResult","commands","_editOperationResultBrand","shouldPushStackElementBefore","shouldPushStackElementAfter","isQuote","ch","selectionsEqual","getDirection","sel","GLOBAL_KEY","Boolean","__DEV__","maybe","__param","paramIndex","decorator","isIMenuItem","debugName","_debugName","SimpleEditorContext","EditorContextCopy","EditorContextPeek","MenubarCopy","MenubarGoMenu","InlineCompletionsActions","IMenuService","_commands","_menuItems","_onDidChangeMenu","onDidChangeMenu","_commandPaletteChangeEvent","addCommands","single","didChange","appendMenuItems","changedIds","toRemove","list","_appendImplicitItems","alt","SubmenuItemAction","_menuService","_contextKeyService","submenu","createMenu","groups","getActions","actions","Separator","SubmenuAction","MenuItemAction","contextKeyService","_commandService","renderShortTitle","shortTitle","tooltip","enabled","checked","toggled","runArgs","shouldForwardArgs","executeCommand","ICommandService","MINIMAP_GUTTER_WIDTH","ConfigurationChangedEvent","_values","ValidatedEditorOptions","option","ComputeOptionsMemory","stableMinimapLayoutInput","stableFitMaxMinimapScale","stableFitRemainingWidth","BaseEditorOption","schema","ComputedEditorOption","deps","input","SimpleEditorOption","boolean","EditorBooleanOption","clampedInt","minimum","maximum","EditorIntOption","EditorFloatOption","validationFn","EditorStringOption","string","stringSet","allowedValues","EditorStringEnumOption","_allowedValues","EditorEnumOption","defaultStringValue","convert","_convert","TextEditorCursorStyle","EditorAccessibilitySupport","default","accessibilitySupport","EditorComments","insertSpace","ignoreEmptyLines","_input","EditorClassName","extraEditorClassName","EditorEmptySelectionClipboard","EditorFind","cursorMoveOnType","seedSearchStringFromSelection","autoFindInSelection","globalFindClipboard","addExtraSpaceOnTop","included","EditorFontLigatures","OFF","anyOf","ON","EditorFontInfo","fontInfo","EditorFontSize","EDITOR_FONT_DEFAULTS","clamp","EditorFontWeight","MINIMUM_VALUE","MAXIMUM_VALUE","errorMessage","SUGGESTION_VALUES","EditorGoToLocation","multiple","multipleDefinitions","multipleTypeDefinitions","multipleDeclarations","multipleImplementations","multipleReferences","alternativeDefinitionCommand","alternativeTypeDefinitionCommand","alternativeDeclarationCommand","alternativeImplementationCommand","alternativeReferenceCommand","jsonSubset","alternativeCommandOptions","EditorHover","sticky","above","EditorLayoutInfoComputer","computeLayout","memory","outerWidth","outerHeight","isDominatedByLongLines","viewLineCount","lineNumbersDigitCount","typicalHalfwidthCharacterWidth","maxDigitWidth","pixelRatio","typicalViewportLineCount","extraLinesBeyondLastLine","scrollBeyondLastLine","desiredRatio","minimapLineCount","minimap","renderMinimap","minimapLeft","minimapWidth","minimapHeightIsEditorHeight","minimapIsSampling","minimapScale","minimapLineHeight","minimapCanvasInnerWidth","minimapCanvasInnerHeight","minimapCanvasOuterWidth","minimapCanvasOuterHeight","couldUseMemory","side","showSlider","renderCharacters","maxColumn","scale","verticalScrollbarWidth","isViewportWrapping","minimapRenderCharacters","minimapMaxColumn","minimapSize","minimapSide","remainingWidth","baseCharHeight","minimapCharWidth","minimapWidthMultiplier","computeContainedMinimapLineCount","fitBecomesFill","maxMinimapScale","effectiveMinimapHeight","ceil","configuredMinimapScale","minimapMaxWidth","lineDecorationsWidth","wordWrapOverride2","wordWrapOverride1","wordWrapColumn","showGlyphMargin","showLineNumbers","renderType","lineNumbersMinChars","scrollbar","verticalScrollbarSize","verticalScrollbarHasArrows","verticalHasArrows","scrollbarArrowSize","arrowSize","horizontalScrollbarHeight","horizontalScrollbarSize","rawLineDecorationsWidth","folding","lineNumbersWidth","digitCount","glyphMarginWidth","glyphMarginLeft","lineNumbersLeft","decorationsLeft","contentLeft","isWordWrapMinified","wrappingColumn","minimapLayout","_computeMinimapLayout","contentWidth","viewportColumn","verticalArrowSize","decorationsWidth","overviewRuler","EditorLightbulb","EditorInlayHints","markdownDescription","EditorLineHeight","EditorMinimap","EditorPadding","EditorParameterHints","cycle","EditorPixelRatio","EditorQuickSuggestions","comments","strings","EditorRenderLineNumbersOption","renderFn","lineNumbers","filterValidationDecorations","renderValidationDecorations","EditorRulers","columnSchema","rulers","_element","_scrollbarVisibilityFromString","EditorScrollbar","vertical","horizontal","useShadows","horizontalHasArrows","horizontalSliderSize","verticalSliderSize","handleMouseWheel","alwaysConsumeMouseWheel","scrollByPage","InlineEditorSuggest","BracketPairColorization","EDITOR_MODEL_DEFAULTS","bracketPairColorizationOptions","GuideOptions","bracketPairs","bracketPairsHorizontal","highlightActiveBracketPair","indentation","highlightActiveIndentation","primitiveSet","EditorSuggest","insertMode","filterGraceful","snippetsPreventQuickSuggestions","localityBonus","shareSuggestSelections","showIcons","showStatusBar","previewMode","showInlineDetails","showMethods","showFunctions","showConstructors","showDeprecated","showFields","showVariables","showClasses","showStructs","showInterfaces","showModules","showProperties","showEvents","showOperators","showUnits","showValues","showConstants","showEnums","showEnumMembers","showKeywords","showWords","showColors","showFiles","showReferences","showFolders","showTypeParameters","showSnippets","showUsers","showIssues","SmartSelect","selectLeadingAndTrailingWhitespace","EditorTabFocusMode","tabFocusMode","EditorWrappingInfoComputer","letterSpacing","detectIndentation","trimAutoWhitespace","largeFileOptimizations","editorOptionsRegistry","EditorOptions","acceptSuggestionOnCommitCharacter","acceptSuggestionOnEnter","markdownEnumDescriptions","accessibilityPageSize","ariaLabel","automaticLayout","bracketPairColorization","bracketPairGuides","codeLens","codeLensFontFamily","codeLensFontSize","colorDecorators","contextmenu","cursorBlinking","cursorBlinkingStyle","cursorSmoothCaretAnimation","cursorStyle","Line","Block","Underline","LineThin","BlockOutline","UnderlineThin","cursorSurroundingLines","cursorSurroundingLinesStyle","cursorWidth","disableLayerHinting","disableMonospaceOptimizations","domReadOnly","dragAndDrop","fastScrollSensitivity","find","fixedOverflowWidgets","foldingStrategy","foldingHighlight","foldingImportsByDefault","unfoldOnClickAfterEndOfLine","fontLigatures2","formatOnPaste","formatOnType","glyphMargin","gotoLocation","hideCursorInOverviewRuler","hover","linkedEditing","links","matchBrackets","mouseStyle","mouseWheelScrollSensitivity","mouseWheelZoom","multiCursorModifier","occurrencesHighlight","overviewRulerBorder","overviewRulerLanes","parameterHints","peekWidgetDefaultFocus","definitionLinkOpensInPeek","quickSuggestions","quickSuggestionsDelay","renameOnType","markdownDeprecationMessage","renderControlCharacters","restricted","renderFinalNewline","renderLineHighlight","renderLineHighlightOnlyWhenFocus","renderWhitespace","revealHorizontalRightPadding","roundedSelection","scrollBeyondLastColumn","scrollPredominantAxis","selectionClipboard","selectionHighlight","selectOnLineNumbers","showFoldingControls","showUnused","inlayHints","snippetSuggestions","smartSelect","smoothScrolling","stopRenderingLineAfter","suggest","inlineSuggest","suggestFontSize","suggestLineHeight","suggestOnTriggerCharacters","suggestSelection","tabCompletion","tabIndex","unusualLineTerminators","useShadowDOM","USUAL_WORD_SEPARATORS","wordWrapBreakAfterCharacters","wordWrapBreakBeforeCharacters","wrappingIndent","wrappingStrategy","editorClassName","wrappingInfo","PersonaSize","PersonaPresence","PersonaInitialsColor","_schemePattern","_singleSlashStart","_doubleSlashStart","_validateUri","ret","_strict","scheme","authority","path","fragment","_schemeFix","_referenceResolution","_slash","_empty","_regexp","schemeOrData","uriToFsPath","change","Uri","skipEncoding","_asFormatted","fsPath","percentDecode","components","newPath","pathFragment","paths","_formatted","external","_fsPath","_sep","_pathSepMarker","$mid","encodeTable","encodeURIComponentFast","uriComponent","allowSlash","nativeEncodePos","encodeURIComponent","escaped","encodeURIComponentMinimal","keepDriveLetterCasing","encoder","userinfo","decodeURIComponentGraceful","decodeURIComponent","_rEncodedAsHex","_onDidRegisterCommand","onDidRegisterCommand","idOrCommand","actualHandler","removeFn","oldId","newId","getCommand","_defineProperty","CancellationToken","shortcutEvent","isCancellationToken","Cancelled","MutableToken","isCancellationRequested","_isCancelled","_emitter","_parentListener","SpacesDiffResult","spacesDiff","looksLikeAlignment","aLength","bLength","aSpacesCnt","aTabsCount","bSpacesCnt","bTabsCount","tabsDiff","guessIndentation","defaultTabSize","defaultInsertSpaces","linesCount","getLineCount","linesIndentedWithTabsCount","linesIndentedWithSpacesCount","previousLineText","previousLineIndentation","spacesDiffCount","tmp","currentLineLength","getLineLength","currentLineText","getLineContent","useCurrentLineText","currentLineHasContent","currentLineIndentation","currentLineSpacesCount","currentLineTabsCount","lenJ","getLineCharCode","currentSpacesDiff","tabSizeScore","possibleTabSize","possibleTabSizeScore","getNodeColor","setNodeColor","getNodeIsVisited","setNodeIsVisited","getNodeIsForValidation","setNodeIsForValidation","_setNodeStickiness","stickiness","setCollapseOnReplaceEdit","IntervalNode","maxEnd","ownerId","cachedVersionId","cachedAbsoluteStart","cachedAbsoluteEnd","versionId","collapseOnReplaceEdit","absoluteStart","absoluteEnd","SENTINEL","IntervalTree","root","requestNormalizeDelta","filterOwnerId","filterOutValidation","T","intervalStart","intervalEnd","nodeStart","nodeEnd","resultLen","setCachedOffsets","include","intervalSearch","collectNodesFromOwner","collectNodesPostOrder","rbTreeInsert","_normalizeDeltaIfNecessary","rbTreeDelete","initialNode","textLength","forceMoveMarkers","nodesOfInterest","searchForEditing","editDelta","recomputeMaxEnd","noOverlapReplace","nodeAcceptEdit","normalizeDelta","adjustMarkerBeforeColumn","markerOffset","markerStickToPreviousCharacter","checkOffset","moveSemantics","nodeStickiness","getNodeStickiness","startStickToPreviousCharacter","endStickToPreviousCharacter","deletingCnt","insertingCnt","commonLength","startDone","endDone","getCollapseOnReplaceEdit","newNode","z","zAbsoluteStart","zAbsoluteEnd","intervalCompare","treeInsert","recomputeMaxEndWalkToRoot","leftRotate","rightRotate","leftest","detach","resetSentinel","w","yWasRed","computeMaxEnd","leftMaxEnd","rightMaxEnd","TreeNode","piece","size_left","lf_left","righttest","calculateSize","calculateLF","lineFeedCnt","tree","rbDelete","recomputeTreeMetadata","newSizeLeft","newLFLeft","lf_delta","updateTreeMetadata","fixInsert","lineFeedCntDelta","AverageBufferSize","createUintArray","Uint32Array","LineStarts","lineStarts","cr","lf","crlf","createLineStartsFast","readonly","rLength","Piece","bufferIndex","StringBuffer","PieceTreeSnapshot","BOM","_pieces","_tree","_BOM","_index","iterate","getPieceContent","PieceTreeSearchCache","limit","_limit","_cache","nodePos","nodeStartOffset","nodeStartLineNumber","nodePosition","hasInvalidVal","entry","PieceTreeBase","chunks","eol","eolNormalized","_buffers","_lastChangeBufferPos","line","_lineCnt","_length","_EOL","_EOLLength","_EOLNormalized","lastNode","rbInsertRight","_searchCache","_lastVisitedLine","computeBufferMetadata","averageBufferSize","tempChunk","tempChunkLen","getNodeContent","newEOL","normalizeEOL","leftLen","getAccumulatedValue","lfCnt","originalOffset","out","getIndexOf","getOffsetAt","remainder","startPosition","nodeAt2","endPosition","getValueInRange2","getEOL","startOffset","offsetInBuffer","linesLength","currentLine","danglingCR","pieceLength","pieceStartLine","pieceEndLine","pieceStartOffset","getLineRawContent","matchingNode","targetOffset","_getCharCode","getLength","searcher","startCursor","endCursor","searchData","captureMatches","limitResultCount","searchText","startOffsetInBuffer","_wordSeparators","positionInBuffer","getLineFeedCnt","retStartColumn","retEndColumn","createFindMatch","searchRange","Searcher","findMatchesInNode","lineBreakCnt","nextLineStartOffset","_findMatchesInLine","deltaOffset","simpleSearch","searchStringLen","lastMatchIndex","isValidMatch","FindMatch","nodeAt","insertPosInBuffer","appendToNode","insertContentToNodeLeft","validate","nodesToDel","newRightPiece","shouldCheckCRLF","endWithCR","headOfRight","nodeCharCodeAt","newStart","startWithLF","tailOfLeft","previousPos","deleteNodeTail","newPieces","createNewPieces","tmpNode","deleteNodes","insertContentToNodeRight","rbInsertLeft","cnt","startNode","endNode","startSplitPosInBuffer","endSplitPosInBuffer","validateCRLFWithPrevNode","deleteNodeHead","validateCRLFWithNextNode","shrinkNode","prev","nPiece","adjustCarriageReturnFromNext","midStop","midStart","endOffset","previousCharOffset","cursor","nodes","lastChar","splitText","endIndex","endPos","newPiece","get2","prevAccumulatedValue","accumulatedValue","originalLineNumber","lineCnt","realLineCnt","expectedLineStartIndex","originalLFCnt","originalEndOffset","newEnd","newEndOffset","newLineFeedCnt","size_delta","newLength","originalStartOffset","originalStartPos","originalEndPos","oldLength","oldLFCnt","hitCRLF","prevStartOffset","oldLineFeedCnt","prevAccumualtedValue","offsetOfNode","newOffset","nextNode","fixCRLF","prevNewLength","prevNewLFCnt","leftRet","prevNode","PieceTreeTextBuffer","_onDidChangeContent","_mightContainNonBasicASCII","_mightContainRTL","_mightContainUnusualLineTerminators","_pieceTree","preserveBOM","createSnapshot","getPositionAt","lineEnding","_getEndOfLine","getValueInRange","fromLineNumber","toLineNumber","lineContent","fromOffset","toOffset","getValueLengthInRange","getLinesContent","setEOL","rawOperations","recordTrimAutoWhitespace","computeUndoEdits","mightContainRTL","mightContainUnusualLineTerminators","mightContainNonBasicASCII","canReduceOperations","operations","_isTracked","validatedRange","textMightContainNonBasicASCII","validText","eolCount","firstLineLength","lastLineLength","strEOL","countEOL","bufferEOL","sortIndex","identifier","rangeOffset","rangeLength","isAutoWhitespaceEdit","_sortOpsAscending","hasTouchingRanges","count","rangeEnd","nextRangeStart","_reduceOperations","reverseRanges","_getInverseEditRanges","newTrimAutoWhitespaceCandidates","reverseRange","currentLineContent","oldContent","reverseOperations","reverseRangeDeltaOffset","bufferText","reverseRangeOffset","textChange","TextChange","contentChanges","_doApplyEdits","trimAutoWhitespaceLineNumbers","prevContent","ApplyEditsResult","_toSingleEditOperation","firstEditRange","lastEditRange","entireEditRange","lastEndLineNumber","lastEndColumn","operation","_sortOpsDescending","insert","contentChangeRange","findMatchesLineByLine","prevOpEndLineNumber","prevOpEndColumn","prevOp","resultRange","lineCount","compareRangesUsingEnds","PieceTreeTextBufferFactory","_chunks","_bom","_cr","_lf","_crlf","_containsRTL","_containsUnusualLineTerminators","_isBasicASCII","_normalizeEOL","defaultEOL","totalEOLCount","totalCRCount","_getEOL","newLineStart","textBuffer","PieceTreeTextBufferBuilder","_hasPreviousChar","_previousChar","_tmpLineStarts","chunk","_acceptChunk1","allowEmptyStrings","_acceptChunk2","createLineStarts","_finish","lastChunk","newLineStarts","TokenizationStateStore","_beginState","_valid","_len","_invalidLineStartIndex","initialState","_setBeginState","_reset","lineIndex","insertCount","beginState","valid","arrays","_ensureLine","endState","_setValid","previousEndState","getBeginState","_invalidateLine","_isValid","deletingLinesCnt","insertingLinesCnt","_acceptDeleteRange","_acceptInsertText","_deleteLines","_insertLines","TextModelTokenization","_textModel","_languageIdCodec","_tokenizationStateStore","_tokenizationSupport","getLanguageId","_resetTokenizationState","clearTokens","onDidChangeContentFast","isFlush","changes","applyEdits","_beginBackgroundTokenization","onDidChangeAttached","onDidChangeLanguage","textModel","tokenizationSupport","isTooLargeForTokenization","getInitialState","initializeTokenization","isAttachedToEditor","_hasLinesToTokenize","_revalidateTokensNow","textModelLastLineNumber","builder","MultilineTokensBuilder","sw","_tokenizeOneInvalidLine","setTokens","tokens","_tokenizeViewport","_updateTokensUntilLine","firstInvalidLineNumber","invalidLineStartIndex","endLineIndex","lineStartState","safeTokenize","setEndState","nonWhitespaceColumn","getLineFirstNonWhitespaceColumn","fakeLines","newNonWhitespaceIndex","setFakeTokens","languageIdCodec","hasEOL","tokenize2","nullTokenize2","encodeLanguageId","LineTokens","convertToEndOffset","BracketInfo","nestingLevel","isInvalid","BracketPairWithMinIndentationInfo","openingBracketRange","closingBracketRange","minVisibleColumnIndentation","LengthObj","columnCount","toLength","lengthToObj","lengthAdd","lengthLessThan","length1","length2","lengthLessThanEqual","lengthGreaterThanEqual","positionToLength","lengthsToRange","lengthStart","lengthEnd","colCount","lineCount2","colCount2","TextEditInfo","BeforeEditPositionMapper","edits","documentLength","nextEditIdx","deltaOldToNewLineCount","deltaOldToNewColumnCount","deltaLineIdxInOld","TextEditInfoCache","adjustNextEdit","translateCurToOld","nextEdit","lineCount1","lengthDiffNonNegative","translateOldToCur","offsetObj","oldOffsetObj","nextEditEndOffsetInCur","endOffsetAfterObj","nextEditEndOffsetInCurObj","nextEditEndOffsetBeforeInCurObj","endOffsetBeforeObj","lineDelta","previousColumnDelta","columnDelta","emptyArr","SmallImmutableSet","additionalItems","keyProvider","getKey","newItem","merged","item1","item2","cached","identityKeyProvider","DenseKeyProvider","BaseAstNode","PairAstNode","openingBracket","closingBracket","missingOpeningBracketIds","openBracketIds","intersects","deepClone","computeMinIndentation","Number","MAX_SAFE_INTEGER","getEmpty","ListAstNode","listHeight","_missingOpeningBracketIds","cachedMinIndentation","throwIfImmutable","childCount","childrenLength","lastChild","getChild","mutable","toMutable","setChild","lastLength","canBeReused","unopenedBrackets","minIndentation","childOffset","item3","immutable","missingBracketIds","Immutable23ListAstNode","TwoThreeListAstNode","ImmutableArrayListAstNode","_item1","_item2","_item3","handleChildrenChanged","ArrayListAstNode","_children","emptyArray","ImmutableLeafAstNode","TextAstNode","_openedBracketIds","firstNonWsColumn","visibleColumn","CursorColumns","visibleColumnFromColumn","getOptions","BracketAstNode","lengthKey","cacheByLength","InvalidBracketAstNode","closingBrackets","openedBracketIds","Token","bracketId","bracketIds","astNode","TextBufferTokenizer","bracketTokens","reader","NonPeekableTextBufferTokenizer","_offset","didPeek","peeked","textBufferLineCount","textBufferLastLineLength","setPosition","read","lineIdx","lineCharOffset","lineTokens","lineTokenOffset","peekedToken","findTokenIndexAtOffset","getLineTokens","startLineIdx","startLineCharOffset","lengthHeuristic","tokenCount","getCount","peekedBracketToken","tokenMetadata","getMetadata","isOther","getTokenType","getEndOffset","brackets","getSingleLanguageBracketTokens","regExpGlobal","getToken","startLineCount","startColumnCount","endLineCount","endColumnCount","FastTokenizer","getRegExpStr","curLineCount","lastLineBreakOffset","lastTokenEndOffset","lastTokenEndLine","smallTextTokens0Line","smallTextTokens1Line","curOffset","BracketTokens","hasRegExp","_regExpGlobal","reverse","prepareBracketForRegExp","regExpStr","denseKeyProvider","getId","openingText","characterPair","getColorizedBrackets","openingBrackets","closingText","openingTextId","LanguageAgnosticBracketTokens","getLanguageConfiguration","languageIdToBracketTokens","newRegExpStr","createFromLanguage","singleLanguageBracketTokens","concat23TreesOfSameHeight","createImmutableLists","create23","heightDiff","node1","node2","nodeToAppend","nodeToAppendOfCorrectHeight","curNode","parents","makeLastElementMutable","unappendChild","appendChildOfSameHeight","makeFirstElementMutable","nodeToPrependOfCorrectHeight","unprependChild","prependChildOfSameHeight","NodeReader","lastOffset","nextNodes","offsets","idxs","lastOrUndefined","curNodeOffset","nextNodeAfterCurrent","nextChildIdx","getNextChildIdx","currentOffset","curIdx","parseDocument","tokenizer","oldNode","Parser","_itemsConstructed","_itemsFromCache","oldNodeReader","positionMapper","parseList","peek","parseChild","readNode","second","concat23Trees","maxCacheableLength","getDistanceToNextChange","cachedNode","readLongestNodeAt","getOffsetBeforeChange","skip","nextToken","BracketPairs","languageConfigurationService","onDidChangeEmitter","bracketsRequested","onDidChangeOptions","updateCache","didLanguageChange","getValueLength","isDocumentSupported","store","ActiveBracketPairsImpl","handleContentChanged","getBracketPairsInRange","getBracketsInRange","didChangeEmitter","onBackgroundTokenizationStateChanged","backgroundTokenizationState","wasUndefined","initialAstWithoutTokens","onDidChangeTokens","ranges","astWithTokens","parseDocumentFromTextBuffer","lengthOfString","previousAst","previousAstClone","collectBrackets","includeMinIndentation","startLength","endLength","CollectBracketPairsContext","collectBracketPairs","nodeOffsetStart","nodeOffsetEnd","level","nodeOffset","openingBracketEnd","ColorizedBracketPairsDecorationProvider","colorProvider","ColorProvider","colorizationOptions","bracketsInRange","inlineClassName","getInlineClassName","getDecorationsInRange","unexpectedClosingBracketClassName","getInlineClassNameOfLevel","collector","colors","editorBracketHighlightingForeground1","editorBracketHighlightingForeground2","editorBracketHighlightingForeground3","editorBracketHighlightingForeground4","editorBracketHighlightingForeground5","editorBracketHighlightingForeground6","addRule","editorBracketHighlightingUnexpectedBracketForeground","isTransparent","createTextBufferFactory","acceptChunk","finish","createTextBuffer","MODEL_ID","TextModelSnapshot","_source","_eos","resultCnt","resultLength","invalidFunc","BracketSearchCanceled","_searchCanceledBrand","stripBracketSearchCanceled","creationOptions","associatedResource","_undoRedoService","_modeService","_languageConfigurationService","_onWillDispose","onWillDispose","_onDidChangeDecorations","DidChangeDecorationsEmitter","affectedInjectedTextLines","handleBeforeFireDecorationsChangedEvent","onDidChangeDecorations","_onDidChangeLanguage","_onDidChangeLanguageConfiguration","onDidChangeLanguageConfiguration","_onDidChangeTokens","_onDidChangeOptions","_onDidChangeAttached","_onDidChangeContentOrInjectedText","onDidChangeContentOrInjectedText","_eventEmitter","DidChangeContentEmitter","_backgroundTokenizationState","_onBackgroundTokenizationStateChanged","fastEvent","rawContentChangedEvent","isForSimpleWidget","_associatedResource","_attachedEditorCount","_bufferDisposable","resolveOptions","bufferLineCount","bufferTextLength","_isTooLargeForTokenization","LARGE_FILE_SIZE_THRESHOLD","LARGE_FILE_LINE_COUNT_THRESHOLD","_isTooLargeForSyncing","MODEL_SYNC_LIMIT","_versionId","_alternativeVersionId","_initialUndoRedoSnapshot","_isDisposing","NULL_MODE_ID","_languageRegistryListener","affects","_instanceId","_lastDecorationId","_decorations","_decorationsTree","DecorationsTrees","_commandManager","EditStack","_isUndoing","_isRedoing","_trimAutoWhitespaceLines","_tokens","TokensStore","_tokens2","TokensStore2","_tokenization","_bracketPairColorizer","_decorationProvider","beginDeferredEmit","endDeferredEmit","contentChangedEvent","slowEvent","completed","newState","emptyDisposedTextBuffer","rawChange","InternalModelContentChangeEvent","_assertNotDisposed","_setValueFromTextBuffer","isUndoing","isRedoing","getVersionId","textBufferDisposable","oldFullModelRange","getFullModelRange","oldModelValueLength","getLineMaxColumn","_increaseVersionId","_emitContentChangedEvent","ModelRawContentChangedEvent","ModelRawFlush","_createContentChanged2","_onBeforeEOLChange","_onAfterEOLChange","ModelRawEOLChanged","ensureAllNodesHaveRanges","allDecorations","smallLineCharCount","longLineCharCount","lineLength","_newOpts","bracketColorizationOptions","newOpts","createChangeEvent","guessedIndentation","updateOptions","selections","matches","findMatches","resetMightContainUnusualLineTerminators","pushEditOperations","rawPosition","_validatePosition","rawOffset","newAlternativeVersionId","newInitialUndoRedoSnapshot","fullModelRange","fullModelValue","getBOM","rawRange","validateRange","getCharacterCountInRange","getLineLastNonWhitespaceColumn","initialStartLineNumber","initialStartColumn","initialEndLineNumber","initialEndColumn","validationType","charCodeBefore","_lineNumber","_column","_isValidPosition","charCodeBeforeStart","charCodeBeforeEnd","startInsideSurrogatePair","endInsideSurrogatePair","_range","_isValidRange","rawSearchScope","searchRanges","every","searchScope","d1","d2","matchMapper","uniqueSearchRanges","curr","areIntersecting","searchParams","SearchParams","parseSearchRequest","TextModelSearch","rawSearchStart","searchStart","validatePosition","findNextMatch","findPreviousMatch","pushStackElement","popStackElement","pushEOL","rawOperation","_validateEditOperation","beforeCursorState","editOperations","cursorStateComputer","_pushEditOperations","_validateEditOperations","incomingEdits","editsAreNearCursors","foundEditNearSel","editRange","selIsAbove","selIsBelow","trimLineNumber","maxLineColumn","allowTrimLine","editText","trimRange","pushEditOperation","resultingAlternativeVersionId","resultingSelection","rangeStart","newPosition","oldText","_applyUndoRedoEdits","oldPosition","oldEnd","newText","_overwriteAlternativeVersionId","oldLineCount","newLineCount","acceptEdit","acceptReplace","rawContentChanges","editingLinesCnt","changeLineCountDelta","currentEditStartLineNumber","firstEditLineNumber","lastInsertedLineNumber","decorationsWithInjectedTextInEditedRange","getInjectedTextInInterval","injectedTextInEditedRange","LineInjectedText","fromDecorations","injectedTextInEditedRangeQueue","editLineNumber","currentEditLineNumber","takeFromEndWhile","decorationsInCurrentLine","ModelRawLineChanged","spliceStartLineNumber","ModelRawLinesDeleted","spliceLineNumber","injectedTexts","newLines","takeWhile","ModelRawLinesInserted","reverseEdits","undo","lineChangeEvents","_getInjectedTextInLine","ModelInjectedTextChangedEvent","_changeDecorations","changeAccessor","addDecoration","_deltaDecorationsImpl","changeDecoration","newRange","_changeDecorationImpl","changeDecorationOptions","_changeDecorationOptionsImpl","_normalizeOptions","removeDecoration","deltaDecorations","oldDecorations","newDecorations","getDecorationRange","newStickiness","TRACKED_RANGE_OPTIONS","_validateRangeRelaxedNoAllocations","setOptions","decorationId","getNodeRange","getLinesDecorations","_startLineNumber","_endLineNumber","decorations","_getDecorationsInRange","getAll","getAllInjectedText","getAllDecorations","filterRange","getAllInInterval","getRangeAt","oldRange","recordLineAffectedByInjectedText","checkAffectedAndFire","nodeWasInOverviewRuler","nodeIsInOverviewRuler","nodeRange","oldDecorationsIds","oldDecorationsLen","oldDecorationIndex","newDecorationsLen","newDecorationIndex","internalDecorationId","newDecoration","backgroundTokenizationCompleted","minChangedLineNumber","maxChangedLineNumber","hasChange","lineHasChange","_emitModelTokensChangedEvent","tokenizationSupportChanged","semanticTokensApplied","handleTokenizationProgress","isComplete","hasCompleteSemanticTokens","changedRange","setPartial","tokenizeViewport","forceTokenization","isCheapToTokenize","_getLineTokens","lineText","syntacticTokens","getTokens","addSemanticTokens","oldLanguage","newLanguage","_position","tokenIndex","_findLanguageBoundaries","rbStartOffset","rbEndOffset","rightBiasedWord","getWordAtText","getWordDefinition","lbStartOffset","lbEndOffset","leftBiasedWord","wordAtPosition","getWordAtPosition","word","_bracket","bracketsSupport","textIsBracket","_findMatchingBracketUp","_matchBracket","modeBrackets","currentLanguageId","searchStartOffset","maxBracketLength","tokenEndOffset","ignoreBracketsInToken","getStandardTokenType","searchEndOffset","tokenStartOffset","getStartOffset","currentModeBrackets","_establishBracketSearchOffsets","bestResult","foundBracket","BracketsUtils","findNextBracketInRange","forwardRegex","foundBracketText","_matchFoundBracket","textIsOpenBracket","prevTokenIndex","prevModeBrackets","findPrevBracketInRange","reversedRegex","isOpen","continueSearchPredicate","matched","_findMatchingBracketDown","reversedBracketRegex","totalCallCount","searchPrevMatchingBracketInRange","hitText","isClose","prevSearchInToken","searchInToken","bracketRegex","searchNextMatchingBracketInRange","tokenLanguageId","_toFoundBracket","maxDuration","startTime","savedCounts","counts","resetCounts","searchInRange","computeIndentLevel","minLineNumber","maxLineNumber","foldingRules","offSide","up_aboveContentLineIndex","up_aboveContentLineIndent","up_belowContentLineIndex","up_belowContentLineIndent","up_resolveIndents","indent","_computeIndentLevel","down_aboveContentLineIndex","down_aboveContentLineIndent","down_belowContentLineIndex","down_belowContentLineIndent","down_resolveIndents","goUp","goDown","initialIndent","distance","upLineNumber","downLineNumber","upLineIndentLevel","currentIndent","_getIndentLevelForWhitespaceLine","downLineIndentLevel","activePosition","getBracketPairsInRangeWithMinIndentation","activeBracketPairRange","bracketsContainingActivePosition","bp","fromPositions","activeGuides","nextGuides","BracketPairGuidesClassNames","guides","guideVisibleColumn","getVisibleColumnFromPosition","renderHorizontalEndLineAtTheBottom","visibleStartColumn","visibleEndColumn","bracketPair","isActive","highlightActive","activeClassName","horizontalGuides","Disabled","includeInactive","Enabled","lastVisibleColumnCount","aboveContentLineIndex","aboveContentLineIndent","belowContentLineIndex","belowContentLineIndent","resultIndex","affinity","indentOfLine","spacesCnt","tabsCnt","_normalizeIndentationFromWhitespace","DEFAULT_CREATION_OPTIONS","IUndoRedoService","IModeService","ILanguageConfigurationService","isNodeInOverviewRuler","isNodeInjectedText","_decorationsTree0","_decorationsTree1","_injectedTextDecorationsTree","_intervalSearch","_ensureNodesHaveRanges","r0","r1","r2","showIfCollapsed","overviewRulerOnly","_search","_resolveNode","resolveNode","cleanClassName","DecorationOptions","darkColor","ModelDecorationOverviewRulerOptions","_resolvedColor","Center","_resolveColor","ModelDecorationMinimapOptions","ModelDecorationInjectedTextOptions","inlineClassNameAffectsLetterSpacing","ModelDecorationOptions","hoverMessage","glyphMarginHoverMessage","isWholeLine","glyphMarginClassName","linesDecorationsClassName","firstLineDecorationClassName","marginClassName","beforeContentClassName","afterContentClassName","EMPTY","createDynamic","handleBeforeFire","_affectedInjectedTextLines","_deferredCnt","_shouldFire","_affectsMinimap","_affectsOverviewRuler","affectsMinimap","affectsOverviewRuler","_fastEmitter","_slowEmitter","_deferredEvent","WindowManager","_zoomLevel","_lastZoomLevelChangeTime","_onDidChangeZoomLevel","onDidChangeZoomLevel","_zoomFactor","ctx","getContext","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getZoomLevel","getTimeSinceLastZoomLevelChanged","getZoomFactor","getPixelRatio","isFirefox","isWebKit","isChrome","isSafari","isWebkitWebView","isAndroid","isStandalone","editorLineHighlight","editorLineHighlightBorder","editorRangeHighlight","editorRangeHighlightBorder","editorSymbolHighlight","editorSymbolHighlightBorder","editorCursorForeground","editorCursorBackground","editorWhitespaces","editorIndentGuides","editorActiveIndentGuides","editorLineNumbers","deprecatedEditorActiveLineNumber","editorActiveLineNumber","editorRuler","editorCodeLensForeground","editorBracketMatchBackground","editorBracketMatchBorder","editorOverviewRulerBorder","editorOverviewRulerBackground","editorGutter","editorUnnecessaryCodeBorder","editorUnnecessaryCodeOpacity","ghostTextBorder","ghostTextForeground","rulerRangeDefault","overviewRulerRangeHighlight","overviewRulerError","overviewRulerWarning","overviewRulerInfo","editorBracketPairGuideBackground1","editorBracketPairGuideBackground2","editorBracketPairGuideBackground3","editorBracketPairGuideBackground4","editorBracketPairGuideBackground5","editorBracketPairGuideBackground6","editorBracketPairGuideActiveBackground1","editorBracketPairGuideActiveBackground2","editorBracketPairGuideActiveBackground3","editorBracketPairGuideActiveBackground4","editorBracketPairGuideActiveBackground5","editorBracketPairGuideActiveBackground6","gutter","rangeHighlight","rangeHighlightBorder","symbolHighlight","symbolHighlightBorder","invisibles","FastDomNode","_maxWidth","_width","_height","_top","_left","_bottom","_right","_fontFamily","_fontWeight","_fontSize","_fontFeatureSettings","_lineHeight","_letterSpacing","_className","_display","_visibility","_backgroundColor","_layerHint","_contain","_boxShadow","maxWidth","fontFeatureSettings","shouldHaveIt","toggle","layerHint","contain","removeChild","createFastDomNode","_snippetSuggestSupport","Context","Visible","DetailsVisible","MultipleSuggestions","MakesTextEdit","AcceptSuggestionsOnEnter","HasInsertAndReplaceRange","InsertMode","CanResolve","suggestWidgetStatusbarMenu","CompletionItem","completion","provider","score","FuzzyScore","Default","textLabel","labelLow","sortTextLow","sortText","filterTextLow","filterText","editStart","editInsertEnd","editReplaceEnd","spansMultipleLines","resolveCompletionItem","_resolveCache","_isResolved","sub","CompletionOptions","snippetSortOrder","kindFilter","providerFilter","getSnippetSuggestSupport","CompletionItemModel","needsClipboard","durations","provideSuggestionItems","triggerKind","defaultReplaceRange","defaultRange","setEndPosition","onCompletionList","suggestions","suggestion","tags","includes","insertTextRules","SnippetParser","guessNeedsClipboard","insertText","providerName","_debugDisplayName","elapsedProvider","duration","elapsedOverall","snippetCompletions","provideCompletionItems","modes","orderedGroups","providerGroup","lenBefore","getSuggestionComparator","entries","defaultComparator","_snippetComparators","snippetConfig","triggerCharacter","maxItemsToResolve","ref","incomplete","resolving","completions","_provider","onlyOnceSuggestions","showSimpleSuggestions","getContribution","triggerSuggest","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","strDefault","ObjClass","ObjProto","ObjAssign","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","CharacterPairSupport","config","_autoClosingPairs","StandardAutoClosingPairConditional","colorizedBracketPairs","_colorizedBracketPairs","filterValidBrackets","__electricCharacterSupport","docComment","_autoCloseBefore","autoCloseBefore","DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED","_surroundingPairs","autoClosingPair","getTokenCount","standardTokenType","isOK","BracketElectricCharacterSupport","richEditBrackets","_richEditBrackets","character","bracketText","textBeforeBracket","getActualLineContentBefore","matchOpenBracket","resetGlobalRegex","reg","IndentRulesSupport","indentationRules","_indentationRules","increaseIndentPattern","decreaseIndentPattern","indentNextLinePattern","unIndentedLinePattern","shouldIncrease","shouldDecrease","shouldIndentNextLine","shouldIgnore","OnEnterSupport","_brackets","openRegExp","_createOpenBracketRegExp","closeRegExp","_createCloseBracketRegExp","_regExpRules","onEnterRules","beforeEnterText","afterEnterText","beforeText","afterText","indentAction","IndentAction","IndentOutdent","Indent","_safeRegExp","LanguageConfigurationServiceChangeEvent","LanguageConfigurationService","configurationService","modeService","configurations","languageConfigKeys","customizedLanguageConfigKeys","onDidChangeConfiguration","globalConfigChanged","some","localConfigChanged","overrides","overrideLangName","validateLanguageId","languageConfig","validLanguageId","ResolvedLanguageConfiguration","customizedConfig","overrideIdentifier","validateBracketPairs","getCustomizedLanguageConfig","combineLanguageConfigurations","underlyingConfig","computeConfig","IConfigurationService","LanguageConfigurationChangeEvent","LanguageConfigurationRegistryImpl","_entries","ComposedLanguageConfiguration","getResolvedConfiguration","electricCharacter","electricCharacterSupport","_getElectricCharacterSupport","scopedLineTokens","createScopedLineTokens","onElectricCharacter","firstCharOffset","characterPairSupport","_getCharacterPairSupport","AutoClosingPairs","shouldAutoClosePair","ensureValidWordDefinition","wordDefinition","indentRulesSupport","languageID","getLanguageIdAtPosition","lastLineNumber","resultLineNumber","honorIntentialIndent","getIndentRulesSupport","precedingUnIgnoredLine","getPrecedingValidLine","precedingUnIgnoredLineContent","previousLine","previousLineIndentMetadata","getIndentMetadata","stopLine","virtualModel","indentConverter","richEditSupport","getInheritIndentForLine","inheritLine","enterResult","onEnter","removeText","shiftIndent","Outdent","unshiftIndent","appendText","scopedLineText","embeddedLanguage","getScopedLineTokens","beforeEnterResult","beforeEnterIndent","currentLineIndent","afterEnterAction","beforeEnter","afterEnter","afterEnterIndent","afterTypeText","beforeTypeText","oneLineAboveScopedLineTokens","getIndentationAtPosition","columnNumber","_resolved","_order","LanguageConfigurationContribution","_resolve","configs","wordPattern","_electricCharacter","_onEnterSupport","_handleComments","DEFAULT_WORD_REGEXP","RichEditBrackets","conf","commentRule","lineComment","lineCommentToken","blockComment","blockStart","blockEnd","blockCommentStartToken","blockCommentEndToken","registerSingleton","OverviewRulerLane","MinimapPosition","HorizontalGuidesState","TextModelResolvedOptions","_textModelResolvedOptionsBrand","_findMatchBrand","IndentGuide","horizontalLine","IndentGuideHorizontalLine","ValidAnnotatedEditOperation","_taggedTemplateLiteral","raw","Schemas","inMemory","internal","walkThrough","walkThroughSnippet","http","https","mailto","untitled","vscodeRemote","vscodeRemoteResource","userData","vscodeCustomEditor","vscodeNotebook","vscodeNotebookCell","vscodeNotebookCellMetadata","vscodeNotebookCellOutput","vscodeInteractive","vscodeInteractiveInput","vscodeSettings","vscodeWorkspaceTrust","vscodeTerminal","webviewPanel","vscodeWebview","extension","vscodeFileResource","_hosts","_ports","_connectionTokens","_preferredWebSchema","_delegate","port","connectionToken","FileAccessImpl","uriOrModule","moduleIdToUrl","toUri","rewrite","origin","FALLBACK_AUTHORITY","toUrl","MAX_COLOR_SATURATION","MAX_COLOR_HUE","MAX_COLOR_VALUE","MAX_COLOR_RGB","MAX_COLOR_ALPHA","MIN_HEX_LENGTH","MAX_HEX_LENGTH","MIN_RGBA_LENGTH","MAX_RGBA_LENGTH","HEX_REGEX","RGBA_REGEX","xmlName","serializedName","modelProperties","eTag","lastModified","errorCode","concatNested","iterable","iterables","reducer","initialValue","consume","atMost","POSITIVE_INFINITY","consumed","at","bt","ai","bi","an","bn","deepFreeze","_hasOwnProperty","isFrozen","cloneAndChange","changer","_cloneAndChange","changed","i2","mixin","destination","overwrite","oneKeys","otherKeys","getOrDefault","personaSize","personaPresenceSize","size8","size40","size48","size56","size72","size100","size120","size6","sizeBoolean","isSize8","isSize10","isSize16","isSize24","extraExtraSmall","isSize28","extraSmall","isSize32","isSize40","isSize48","isSize56","isSize72","isSize100","extraLarge","isSize120","sizeToPixels","presenceBoolean","presence","isAvailable","online","isAway","away","isBlocked","blocked","isBusy","busy","isDoNotDisturb","dnd","isOffline","offline","toValuesTree","conflictReporter","addToValueTree","settingsTreeRoot","segments","last","stringify","removeFromValueTree","valueTree","doRemoveFromValueTree","getConfigurationValue","settingPath","current","component","accessSetting","getConfigurationKeys","Configuration","getConfigurationProperties","getDefaultValues","valueTreeRoot","Kind","RectangleEdge","IKeybindingService","Assert","Types","originalFSPath","DataUri","ExtUri","_ignorePathCasing","uri1","uri2","ignoreFragment","strCompare","getComparisonKey","joinPath","basename","dirname","normalizedPath","newURI","extpath","extUri","basenameOrAuthority","normalizePath","resolvePath","META_DATA_LABEL","META_DATA_DESCRIPTION","META_DATA_SIZE","META_DATA_MIME","parseMetaData","dataUri","mime","Tap","Change","Start","End","Contextmenu","Gesture","dispatched","activeTouches","targets","ignoreTargets","_lastSetTapCountTime","DomUtils","onTouchStart","passive","onTouchEnd","onTouchMove","timestamp","targetTouches","touch","initialTarget","initialTimeStamp","initialPageX","pageX","initialPageY","pageY","rollingTimestamps","rollingPageX","rollingPageY","evt","newGestureEvent","dispatchEvent","activeTouchCount","changedTouches","holdTime","HOLD_DELAY","finalX","finalY","deltaT","deltaX","deltaY","dispatchTo","Node","inertia","createEvent","initEvent","tapCount","currentTime","setTapCount","CLEAR_TAP_COUNT_TIME","t1","vX","dirX","vY","dirY","delta_pos_x","delta_pos_y","stopped","SCROLL_FRICTION","translationX","translationY","isTouchDevice","memoize","AccessibilityHelpNLS","InspectTokensNLS","GoToLineNLS","QuickHelpNLS","QuickCommandNLS","QuickOutlineNLS","StandaloneCodeEditorNLS","ToggleHighContrastNLS","SimpleServicesNLS","noSelection","singleSelectionRange","singleSelection","multiSelectionRange","multiSelection","emergencyConfOn","openingDocs","readonlyDiffEditor","editableDiffEditor","readonlyEditor","editableEditor","changeConfigToOnMac","changeConfigToOnWinLinux","auto_on","auto_off","tabFocusModeOnMsg","tabFocusModeOnMsgNoKb","tabFocusModeOffMsg","tabFocusModeOffMsgNoKb","openDocMac","openDocWinLinux","outroMsg","showAccessibilityHelpAction","inspectTokensAction","gotoLineActionLabel","helpQuickAccessActionLabel","quickCommandActionLabel","quickCommandHelp","quickOutlineActionLabel","quickOutlineByCategoryActionLabel","editorViewAccessibleLabel","accessibilityHelpMessage","toggleHighContrast","bulkEditServiceSummary","INotificationService","BaseSeverity","NoOpNotification","Action","cssClass","actionCallback","_enabled","_id","_label","_cssClass","_actionCallback","_setLabel","_tooltip","_setTooltip","_setClass","class","_setEnabled","_checked","_setChecked","ActionRunner","_onBeforeRun","onBeforeRun","_onDidRun","onDidRun","runAction","ID","_actions","EmptySubmenuAction","ctrlKeyMod","metaKeyMod","_standardKeyboardEventBrand","browserEvent","KeyCodeUtils","EVENT_KEY_CODE_MAP","extractKeyCode","_asKeybinding","_computeKeybinding","_asRuntimeKeybinding","_computeRuntimeKeybinding","SimpleKeybinding","Viewport","_viewportBrand","OutputPosition","outputLineIndex","outputOffset","baseLineNumber","wrappedTextIndentLength","LineBreakData","breakOffsets","breakOffsetsVisibleColumn","injectionOffsets","injectionOptions","inputOffset","getOutputPositionOfOffsetInUnwrappedLine","offsetInUnwrappedLine","injectedText","getInjectedTextAtOffset","injectedTextIndex","outputPositionToOffsetInUnwrappedLine","totalInjectedTextLengthBefore","injectedTextStartOffsetInUnwrappedLine","injectedTextEndOffsetInUnwrappedLine","MinimapLinesRenderingData","ViewLineData","continuesWithWrappedLine","minColumn","startVisibleColumn","inlineDecorations","_viewLineDataBrand","ViewLineRenderingData","InlineDecoration","SingleLineInlineDecoration","ViewModelDecoration","_viewModelDecorationBrand","OverviewRulerDecorationsGroup","DomEmitter","stopEvent","shouldSynchronizeModel","isTooLargeForSyncing","KeyCodeStrMap","_keyCodeToStr","_strToKeyCode","uiMap","userSettingsUSMap","userSettingsGeneralMap","NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE","scanCodeIntToStr","scanCodeStrToInt","scanCodeLowerCaseStrToInt","IMMUTABLE_CODE_TO_KEY_CODE","IMMUTABLE_KEY_CODE_TO_CODE","KeyChord","firstPart","secondPart","seenKeyCode","seenScanCode","mapping","scanCode","scanCodeStr","keyCodeStr","eventKeyCode","vkey","usUserSettingsLabel","generalUserSettingsLabel","define","keyCodeToStr","strToKeyCode","toUserSettingsUS","toUserSettingsGeneral","fromUserSettings","toElectronAccelerator","CHAR_DOT","CHAR_FORWARD_SLASH","CHAR_BACKWARD_SLASH","CHAR_COLON","ErrorInvalidArgType","expected","determiner","msg","validateString","isPathSeparator","isPosixPathSeparator","isWindowsDeviceRoot","normalizeString","allowAboveRoot","separator","lastSegmentLength","lastSlash","dots","lastSlashIndex","sep","pathObject","dir","ext","win32","resolvedDevice","resolvedTail","resolvedAbsolute","rootEnd","device","isAbsolute","joined","needsReplace","slashCount","firstLen","fromOrig","toOrig","fromStart","fromEnd","fromLen","toStart","toEnd","toLen","lastCommonSep","fromCode","toNamespacedPath","resolvedPath","matchedSlash","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","delimiter","posix","trailingSeparator","hasRoot","ariaContainer","alertContainer","alertContainer2","statusContainer","statusContainer2","setARIAContainer","createAlertContainer","createStatusContainer","textContent","dom","insertMessage","status","StringIterator","_pos","ConfigKeysIterator","_caseSensitive","_from","_to","justSeps","PathIterator","_splitOnBackslash","UriIterator","_states","_stateIdx","_pathIterator","hasNext","TernarySearchTreeNode","updateHeight","heightLeft","heightRight","TernarySearchTree","_iter","_root","iter","segment","oldElement","bf","balanceFactor","rotateLeft","rotateRight","_getNode","_delete","superStr","_min","newChild","ignorePathCasing","ResourceMapEntry","ResourceMap","mapOrKeyFn","toKey","defaultToKey","clb","toStringTag","LinkedMap","_head","_tail","_size","_state","previous","addItemLast","addItemFirst","removeItem","callbackfn","newSize","currentSize","LRUCache","ratio","_ratio","checkTrim","trimOld","_extends","MessageBarType","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","EditOperation","Prototype","strFunction","DynClassName","UnknownValue","Obj","_objGetPrototypeOf","_dynamicNames","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","_forEachProp","func","getOwnProps","name_1","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","_getInstFunc","currentDynProtoProxy","instFunc","instFuncTable","canAddInst","objProto","visited","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","instFuncs_1","dynProtoProxy","_createDynamicPrototype","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_getBaseFuncs","setInstFuncs","MarkerSeverity","IMarkerData","_displayStrings","Warning","Info","fromSeverity","severity","Severity","Ignore","Hint","toSeverity","emptyString","makeKeyOptionalMessage","markerData","useMessage","makeKey","IMarkerService","ReplaceCommand","insertsAutoWhitespace","_text","addTrackedEditOperation","helper","srcRange","getInverseEditOperations","ReplaceCommandThatSelectsText","ReplaceCommandWithoutChangingPosition","ReplaceCommandWithOffsetCursorState","lineNumberDeltaOffset","columnDeltaOffset","_columnDeltaOffset","_lineNumberDeltaOffset","ReplaceCommandThatPreservesSelection","initialSelection","_initialSelection","_forceMoveMarkers","_selectionId","trackSelection","getTrackedSelection","defaultColor","defaultOptions","showArrow","showFrame","frameColor","arrowColor","keepEditorSelection","ViewZoneDelegate","afterLineNumber","afterColumn","heightInLines","onDomNodeTop","onComputedHeight","_onDomNodeTop","_onComputedHeight","OverlayWidgetDelegate","_domNode","Arrow","_editor","_ruleName","_IdGenerator","nextId","_color","_updateStyle","where","IdGenerator","PeekContext","ZoneWidget","_arrow","_overlayWidget","_resizeSash","_positionMarkerId","_viewZone","_disposables","_isShowing","objects","isAccessible","onDidLayoutChange","_getWidth","_getLeft","_onWidth","removeOverlayWidget","changeViewZones","removeZone","_fillContainer","_initSash","_applyStyles","borderTopColor","borderBottomColor","containerHeight","_decoratingElementsHeight","getLayoutInfo","_doLayout","layout","rangeOrPos","_showImpl","getOption","viewZoneDomNode","maxHeightInLines","arrowHeight","frameThickness","_onViewZoneTop","_onViewZoneHeight","addZone","addOverlayWidget","frameWidth","borderTopWidth","borderBottomWidth","setSelection","revealLine","isLastLine","revealLineInCenter","classToReplace","widthInPixel","heightInPixel","newHeightInLines","layoutZone","Sash","orientation","isResizeable","onDidStart","startY","onDidEnd","currentY","roundedLineDelta","_relayout","IPeekViewService","_widgets","widget","onDidClose","inPeekEditor","notInPeekEditor","PeekContextController","EmbeddedCodeEditorWidget","bindTo","getOuterEditor","getParentEditor","headerBackgroundColor","primaryHeadingColor","secondaryHeadingColor","PeekViewWidget","instantiationService","_onDidClose","_headElement","_primaryHeading","_secondaryHeading","_bodyElement","setCssClass","_fillHead","_fillBody","noCloseAction","titleElement","supportOnTitleClick","_onTitleClick","_fillTitleIcon","_metaHeading","actionsContainer","actionBarOptions","_getActionBarOptions","_actionbarWidget","ActionBar","actionViewItemProvider","createActionViewItem","primaryHeading","secondaryHeading","headHeight","bodyHeight","_doLayoutHead","_doLayoutBody","peekViewTitleBackground","peekViewTitleForeground","peekViewTitleInfoForeground","peekViewBorder","peekViewResultsBackground","peekViewResultsMatchForeground","peekViewResultsFileForeground","peekViewResultsSelectionBackground","peekViewResultsSelectionForeground","peekViewEditorBackground","peekViewEditorGutterBackground","peekViewResultsMatchHighlight","peekViewEditorMatchHighlight","peekViewEditorMatchHighlightBorder","_warning","fromValue","CodeActionKind","startsWith","part","mayIncludeActionsOfKind","providedKind","excludes","excludesAction","includeSourceActions","Source","filtersAction","actionKind","onlyIncludePreferredActions","isPreferred","Empty","QuickFix","Refactor","SourceOrganizeImports","SourceFixAll","CodeActionCommandArgs","preferred","getKindFromUser","getApplyFromUser","getPreferredUser","defaultAutoApply","defaultKind","textDecoder","hasBuffer","Buffer","VSBuffer","byteLength","TextDecoder","decode","isBuffer","byteOffset","readUInt16LE","writeUInt16LE","readUInt32BE","writeUInt32BE","readUInt8","writeUInt8","NetworkStatus","isNetworkRequestInFlight","networkStatus","or","wordToMatchAgainst","matchesPrefix","matchesContiguousSubString","_matchesSubString","isLower","isUpper","isWhitespace","isWordSeparator","isAlphanumeric","head","nextAnchor","camelCaseWord","_matchesCamelCase","nextUpperIndex","matchesCamelCase","upper","isCamelCasePattern","analysis","alpha","numeric","upperPercent","lowerPercent","alphaPercent","numericPercent","analyzeCamelCaseWord","isCamelCaseWord","isUpperCaseWord","matchesWords","contiguous","_matchesWords","nextWord","nextWordIndex","fuzzyContiguousFilter","fuzzySeparateFilter","fuzzyRegExpCache","matchesFuzzy","enableSeparateSubstringMatching","anyScore","lowPattern","patternPos","lowWord","wordPos","fuzzyScore","createMatches","_maxLen","initTable","row","initArr","maxLen","_minWordMatchPos","_maxWordMatchPos","_diag","_table","_arrows","isSeparatorAtPos","codePointAt","isWhitespaceAtPos","isUpperCaseAtPos","wordLow","patternLow","patternStart","wordStart","firstMatchCanBeWeak","patternLen","wordLen","fillMinWordPosArr","isPatternInWord","_fillInMaxWordMatchPos","hasStrongFirstMatch","minWordMatchPos","maxWordMatchPos","nextMaxWordMatchPos","MIN_SAFE_INTEGER","canComeDiag","_doScore","diagScore","canComeLeft","leftScore","canComeLeftLeft","leftLeftScore","backwardsDiagLength","maxMatchColumn","diagColumn","arrow","skippedCharsCount","newMatchStart","outFirstMatchStrong","isGapLocation","fuzzyScoreGracefulAggressive","aggressive","tries","movingPatternPos","newPattern","nextTypoPermutation","fuzzyScoreWithPermutations","swap1","swap2","isDefault","fnToStr","previousComparisons","equal","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","aCode","full","suffix","fromIndex","endsWith","nativeCodeSuffix","isDefinedKey","bSet","_standardAutoClosingPairConditionalBrand","_standardTokenMask","notIn","standardToken","autoClosingPairsOpenByStart","autoClosingPairsOpenByEnd","autoClosingPairsCloseByStart","autoClosingPairsCloseByEnd","autoClosingPairsCloseSingleChar","appendEntry","ColumnActionsMode","ConstrainMode","ColumnDragEndLocation","DetailsListLayoutMode","CheckboxVisibility","candidateUri","candidateLanguage","candidateIsSynchronized","hasAccessToAllModels","normalizedPattern","matchGlobPattern","isExclusive","exclusive","_clock","_score","_time","_lastCandidate","_updateScores","_orderedForEach","lastBucket","lastBucketScore","_compareByScoreAndTime","_hashes","pool","LanguageFeatureRequestDelays","hashVal","doHash","weakHash","_key","avg","_clamp","MovingAverage","update","leftButton","button","middleButton","rightButton","detail","posx","posy","clientX","clientY","iframeOffsets","IframeUtils","getPositionOfChildWindowRelativeToAncestorWindow","StandardWheelEvent","targetNode","srcElement","e1","e2","wheelDeltaY","VERTICAL_AXIS","axis","ev","deltaMode","DOM_DELTA_LINE","wheelDeltaX","HORIZONTAL_AXIS","wheelDelta","IAccessibilityService","CONTEXT_ACCESSIBILITY_MODE_ENABLED","toObjectMap","baseElementEvents","baseElementProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","buttonProperties","inputProperties","IOpenerService","NullOpenerService","_serviceBrand","registerOpener","registerValidator","registerExternalUriResolver","setDefaultExternalOpener","registerExternalOpener","resolveExternalUri","matchesScheme","ReactReduxContext","React","createContext","batch","createListenerCollection","notify","subscribe","isSubscribed","nullListeners","createSubscription","parentSub","unsubscribe","handleChangeWrapper","onStateChange","trySubscribe","addNestedSub","notifyNestedSubs","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","Provider","_ref","contextValue","useMemo","previousState","getState","useReduxContext","useContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","latestSubscriptionCallbackError","useRef","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","_target","fnKey","memoizeKey","CursorPosition","_cursorPositionBrand","MoveOperations","getLineMinColumn","getLineIndentColumn","AtomicTabMoveOperations","atomicPosition","leftPosition","leftPositionAtomicSoftTabs","noOfColumns","hasSelection","normalizedPos","normalizePosition","clipPositionColumn","clipRange","rightPosition","rightPositionAtomicSoftTabs","allowMoveOnEdgeLine","currentVisibleColumn","wasOnFirstPosition","wasOnLastPosition","wasAtEdgePosition","columnFromVisibleColumn2","allowMoveOnLastLine","down","allowMoveOnFirstLine","up","_isBlankLine","firstNonBlankColumn","lastColumn","ImageFit","ImageCoverStyle","ImageLoadState","CharWidthRequest","DomCharWidthReader","bareFontInfo","requests","_bareFontInfo","_requests","_container","_testElements","_createDomElements","_readFromDomElements","getMassagedFontFamily","regularDomNode","boldDomNode","italicDomNode","testElements","request","testElement","_render","fulfill","htmlString","testString","CSSBasedConfigurationCache","_keys","itemId","clearAllFontInfos","CSSBasedConfiguration","clearCache","_evictUntrustedReadingsTimeout","put","isTrusted","_evictUntrustedReadings","getValues","somethingRemoved","readConfig","_actualReadConfiguration","typicalFullwidthCharacterWidth","spaceWidth","FontInfo","zoomLevel","isMonospace","canUseHalfwidthRightwardsArrow","middotWidth","wsmiddotWidth","_writeToCache","monospace","typicalHalfwidthCharacter","createRequest","typicalFullwidthCharacter","space","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","rightwardsArrow","halfwidthRightwardsArrow","middot","monospaceTestChars","readCharWidths","referenceWidth","canTrustBrowserZoomLevel","isSimpleWidget","referenceDomElement","accessibilityService","_elementSizeObserver","ElementSizeObserver","dimension","_recomputeOptions","_validatedOptions","startObserving","onDidChangeScreenReaderOptimized","_getExtraEditorClassName","getWidth","getHeight","isScreenReaderOptimized","getAccessibilitySupport","readConfiguration","setFontFamily","setFontWeight","setFontSize","setFontFeatureSettings","setLineHeight","setLetterSpacing","extra","CommonEditorConfiguration","iconSchema","definitions","fontId","additionalProperties","iconReferenceSchema","Codicons","iconsById","iconFontsById","enumIndex","iconContribution","$ref","sorter","i1","contributions","registerIcon","getIconRegistry","onDidRegister","initialize","iconsSchemaId","getIconSchema","widgetClose","KeyCodes","backspace","tab","enter","ctrl","pauseBreak","capslock","pageUp","pageDown","del","zero","two","three","four","five","six","seven","eight","nine","Widget","ignoreTarget","changeType","lastOriginalOffset","decoration","_mergeChangeEvents","computeStyles","styleMap","attachStyler","widgetOrCallback","applyStyles","attachBadgeStyler","badgeBorder","attachListStyler","defaultListStyles","listFocusAndSelectionBackground","listFocusAndSelectionForeground","listSelectionOutline","listHoverOutline","listMatchesShadow","defaultMenuStyles","shadowColor","foregroundColor","selectionForegroundColor","selectionBackgroundColor","selectionBorderColor","separatorColor","attachMenuStyler","OneReference","isProviderFirst","_rangeCallback","defaultGenerator","getPreview","FilePreview","_modelReference","getWordUntilPosition","beforeRange","afterRange","inside","highlight","FileReferences","_previews","textModelResolverService","ReferencesModel","_onDidChangeReferenceRange","onDidChangeReferenceRange","_links","_title","providersFirst","_compareReferences","oneRef","groupCount","nearest","prefixLen","offsetDist","compareRangesUsingStarts","Progress","IEditorProgressService","IEditorCancellationTokens","ctxCancellableOperation","cts","EditorKeybindingCancellationTokenSource","_unregister","EditorState","flags","modelVersionId","getPosition","getSelection","getScrollLeft","getScrollTop","_equals","EditorStateCancellationTokenSource","_listener","onDidChangeCursorPosition","onDidChangeCursorSelection","onDidScrollChange","onDidChangeModel","onDidChangeModelContent","TextModelCancellationTokenSource","onDidChangeContent","StableEditorScrollState","_visiblePosition","_visiblePositionScrollDelta","_cursorPosition","visiblePositionScrollTop","getTopForPosition","setScrollTop","currentCursorPosition","getTopForLineNumber","visiblePosition","visiblePositionScrollDelta","visibleRanges","getVisibleRanges","MarkdownString","isTrustedOrOptions","supportThemeIcons","supportHtml","newlineStyle","escapeMarkdownSyntaxTokens","escapeIcons","g1","langId","isEmptyMarkdownString","oneOrMany","isMarkdownString","removeMarkdownEscapes","parseHrefAndDimensions","dimensions","splitted","parameters","heightFromParams","widthFromParams","widthIsFinite","isFinite","heightIsFinite","LogLevel","createServiceDecorator","DEFAULT_LOG_LEVEL","AbstractLogger","_onDidChangeLogLevel","ConsoleLogger","logLevel","setLevel","getLevel","Trace","log","Debug","LogService","logger","IContextViewService","IContextMenuService","escapeURLPath","urlParsed","NULL_STATE","nullTokenize","TokenizationResult","TokenizationResult2","CursorMove","CursorMoveCommands","cursors","useLogicalLine","translateDown","fromViewState","translateUp","_moveToLineStart","currentViewStateColumn","isFirstLineOfWrappedLine","currentViewStatelineNumber","_moveToLineStartByModel","_moveToLineStartByView","moveToBeginningOfLine","_moveToLineEnd","viewStatePosition","viewModelMaxColumn","isEndOfViewLine","modelStatePosition","modelMaxColumn","isEndLineOfWrappedLine","_moveToLineEndByModel","_moveToLineEndByView","moveToEndOfLine","moveToBeginningOfBuffer","moveToEndOfBuffer","_viewPosition","viewPosition","validateViewPosition","convertModelPositionToViewPosition","selectToLineNumber","selectToColumn","enteringLineNumber","selectToViewLineNumber","selectToViewColumn","endPositionOfSelectionStart","WordOperations","unit","_moveHalfLineLeft","_moveLeft","_moveHalfLineRight","_moveRight","_moveUpByViewLines","_moveUpByModelLines","_moveDownByViewLines","_moveDownByModelLines","moveToPrevBlankLine","moveToNextBlankLine","_moveToViewMinColumn","_moveToViewFirstNonWhitespaceColumn","_moveToViewCenterColumn","_moveToViewMaxColumn","_moveToViewLastNonWhitespaceColumn","visibleViewRange","getCompletelyVisibleViewRange","visibleModelRange","convertViewRangeToModelRange","modelLineNumber","_firstLineNumberInRange","modelColumn","_moveToModelPosition","_lastLineNumberInRange","findPositionInViewportIfOutside","newViewLineNumber","viewLineNumber","moveLeft","halfLine","moveRight","moveDown","moveUp","toViewLineNumber","toViewColumn","toModelLineNumber","toModelColumn","viewColumn","_moveToViewPosition","types","cursorMoveArg","select","by","RawDirection","Left","Right","Up","Down","PrevBlankLine","NextBlankLine","WrappedLineStart","WrappedLineFirstNonWhitespaceCharacter","WrappedLineColumnCenter","WrappedLineEnd","WrappedLineLastNonWhitespaceCharacter","ViewPortTop","ViewPortCenter","ViewPortBottom","ViewPortIfOutside","RawUnit","WrappedLine","Character","HalfLine","_coreKeybindings","_extensionKeybindings","_cachedMergedKeybindings","actualKb","KeybindingsRegistryImpl","bindToCurrentPlatform","createKeybinding","_registerDefaultKeybinding","keybinding","_mightProduceChar","commandArgs","weight1","weight2","_assertNoCtrlAlt","parts","extensionId","isBuiltinExtension","kb","strWindow","strJSON","strMsie","strTrident","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","_debugComposition","TextAreaState","selectionEnd","selectionStartPosition","selectionEndPosition","reason","textArea","setSelectionRange","_finishDeduceEditorPosition","str1","str2","anchor","deltaText","signum","lastLineFeedIndex","getSelectionStart","getSelectionEnd","currentState","couldBeEmojiInput","replacePrevCharCnt","replaceNextCharCnt","positionDelta","previousValue","previousSelectionStart","previousSelectionEnd","currentValue","currentSelectionStart","currentSelectionEnd","previousSuffix","currentSuffix","suffixLength","previousPrefix","currentPrefix","prefixLength","potentialEmojiInput","replacePreviousCharacters","PagedScreenReaderStrategy","linesPerPage","page","trimLongText","selectionStartPage","_getPageOfLine","selectionStartPageRange","_getRangeForPage","selectionEndPage","selectionEndPageRange","pretextRange","pretext","lastLine","lastLineMaxColumn","posttextRange","posttext","selectionRange1","selectionRange2","LIMIT_CHARS","StorageState","Storage","_onDidChangeStorage","onDidChangeStorage","flushDelayer","DEFAULT_FLUSH_DELAY","pendingDeletes","pendingInserts","whenFlushedCallbacks","registerListeners","onDidChangeItemsExternal","accept","deleted","Closed","fallbackValue","valueStr","flushPending","hasPending","updateRequest","delete","updateItems","WillSaveStateReason","InMemoryStorageDatabase","TARGET_KEY","IStorageService","AbstractStorageService","flushInterval","DEFAULT_FLUSH_INTERVAL","_onDidChangeValue","_onDidChangeTarget","_onWillSaveState","onWillSaveState","_workspaceKeyTargets","_globalKeyTargets","scope","getKeyTargets","getStorage","getBoolean","getNumber","withPausedEmitters","updateKeyTarget","keyTargets","loadKeyTargets","globalKeyTargets","workspaceKeyTargets","keysRaw","InMemoryStorageService","globalStorage","workspaceStorage","emitDidChangeValue","Undefined","_first","_last","_insert","atTheEnd","oldLast","oldFirst","didRemove","_remove","LinePart","_linePartBrand","LineRange","otherLineRange","RenderLineInput","useMonospaceOptimizations","fauxIndentLength","lineDecorations","fontLigatures","selectionsOnLine","LineDecoration","renderSpaceWidth","renderSpaceCharCode","otherSelections","equalsArr","sameSelection","DomPosition","partIndex","charIndex","CharacterMapping","partCount","_absoluteOffsets","partAbsoluteOffset","partData","charOffset","charOffsetToPartData","getPartIndex","getCharIndex","domPosition","partLength","partDataToCharOffset","searchEntry","midEntry","minEntry","maxEntry","minPartIndex","RenderLineOutput","characterMapping","containsForeignElements","_renderLineOutputBrand","renderViewLine","sb","appendASCIIString","beforeCount","afterCount","lineDecoration","setColumnInfo","fontIsMonospace","isOverflowing","lastCharacterMappingDefined","charOffsetInPart","partDisplacement","prevPartContentCnt","tokensLen","partEndIndex","partType","partRendersWhitespace","partRendersWhitespaceWithWidth","partIsEmptyAndHasPseudoAfter","isPseudoAfter","appendASCII","partContentCnt","_charIndex","_visibleColumn","charWidth","write1","producedCharacters","isControlCharacter","to4CharHex","_renderLine","transformAndRemoveOverflowing","onlyBoundary","onlyTrailing","generateLinePartForEachWhitespace","tokenType","tokenEndIndex","tokensLength","lineIsEmptyOrWhitespace","wasInWhitespace","currentSelectionIndex","currentSelection","tmpIndent","isInWhitespace","nextChCode","generateWhitespace","lastCharCode","_applyRenderWhitespace","_lineDecorations","LineDecorationsNormalizer","lineDecorationsLen","lineDecorationIndex","lastResultEndIndex","lastTokenEndIndex","_applyInlineDecorations","onlyAtSpaces","lastSpaceOffset","currTokenStart","piecesCount","pieceEndIndex","splitLargeTokens","lastLinePart","extractControlCharacters","ResolvedRenderLineInput","resolveRenderLineInput","RenderLineOutput2","renderViewLine2","createStringBuilder","build","padStart","EditorScroll_","RevealLine_","ColumnSelection","fromVisibleColumn","toVisibleColumn","reversed","isRTL","isLTR","visibleColumnFromColumn2","viewStates","fromVisualColumn","toVisualColumn","prevColumnSelectData","toViewVisualColumn","columnSelect","fromViewLineNumber","fromViewVisualColumn","maxVisualViewColumn","minViewLineNumber","maxViewLineNumber","lineMaxViewColumn","lineMaxVisualViewColumn","isPaged","CoreEditorCommand","_getViewModel","runCoreEditorCommand","scrollArg","revealCursor","Page","HalfPage","reveaLineArg","RawAtArgument","Top","Bottom","CoreNavigationCommands","EditorOrNativeTextInputCommand","addImplementation","focusedEditor","hasTextFocus","_runEditorCommand","runDOMCommand","activeEditor","BaseMoveToCommand","_inSelectionMode","setCursorStates","moveTo","getPrimaryCursorState","revealPrimaryCursor","MoveTo","MoveToSelect","ColumnSelectCommand","_getColumnSelectResult","getCursorColumnSelectData","setCursorColumnSelectData","isReal","revealTopMostCursor","revealBottomMostCursor","ColumnSelect","validatedPosition","validatedViewPosition","doColumnSelect","mouseColumn","CursorColumnSelectLeft","columnSelectLeft","CursorColumnSelectRight","columnSelectRight","ColumnSelectUpCommand","_isPaged","columnSelectUp","CursorColumnSelectUp","CursorColumnSelectPageUp","ColumnSelectDownCommand","columnSelectDown","CursorColumnSelectDown","CursorColumnSelectPageDown","CursorMoveImpl","CursorMove_","parsed","_runCursorMove","_move","getCursorStates","simpleMove","viewportMove","CursorMoveBasedCommand","_staticArgs","dynamicArgs","CursorLeft","CursorLeftSelect","CursorRight","CursorRightSelect","CursorUp","CursorUpSelect","CursorPageUp","CursorPageUpSelect","CursorDown","CursorDownSelect","CursorPageDown","CursorPageDownSelect","CreateCursor","wholeLine","newModelPosition","newViewPosition","LastCursorMoveToSelect","lastAddedCursorIndex","getLastAddedCursorIndex","newStates","HomeCommand","CursorHome","CursorHomeSelect","LineStartCommand","_exec","CursorLineStart","CursorLineStartSelect","EndCommand","CursorEnd","CursorEndSelect","LineEndCommand","CursorLineEnd","CursorLineEndSelect","TopCommand","CursorTop","CursorTopSelect","BottomCommand","CursorBottom","CursorBottomSelect","EditorScrollImpl","_runEditorScroll","desiredScrollTop","_computeDesiredScrollTop","desiredVisibleViewRange","getCompletelyVisibleViewRangeAtScrollTop","desiredTopModelLineNumber","getVerticalOffsetForLineNumber","noOfLines","deltaLines","EditorScroll","ScrollLineUp","ScrollPageUp","ScrollLineDown","ScrollPageDown","WordCommand","WordSelect","WordSelectDrag","LastCursorWordSelect","lastAddedState","LineCommand","LineSelect","LineSelectDrag","LastCursorLineCommand","LastCursorLineSelect","LastCursorLineSelectDrag","ExpandLineSelection","expandLineSelection","CancelSelection","cancelSelection","RemoveSecondaryCursors","CORE_WEIGHT","RevealLine","revealLineArg","lineNumberArg","revealAt","viewRange","convertModelRangeToViewRange","revealRange","SelectAll","execCommand","selectAll","SetSelection","CoreEditingCommands","columnSelectionCondition","registerColumnSelection","CoreEditingCommand","runCoreEditingCommand","LineBreakInsert","pushUndoStop","executeCommands","TypeOperations","lineBreakInsert","outdent","Tab","DeleteLeft","DeleteOperations","deleteLeft","getPrevEditOperationType","getCursorAutoClosedCharacters","setPrevEditOperationType","DeleteRight","deleteRight","Undo","hasModel","Redo","EditorHandlerCommand","handlerId","_handlerId","registerOverwritableCommand","getSpaceCnt","generateIndent","SelectionMode","SelectionDirection","SELECTION_CHANGE","createNamedContext","historyContext","Router","computeRootMatch","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","render","RouterContext","staticContext","HistoryContext","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cacheCount","generatePath","pathToRegexp","compilePath","pretty","Redirect","computedMatch","createLocation","prevLocation","locationsAreEqual","matchPath","exact","sensitive","cacheKey","pathCache","memo","Route","isEmptyChildren","addLeadingSlash","stripBasename","createURL","createPath","staticHandler","invariant","noop","Switch","withRouter","displayName","C","wrappedComponentRef","remainingProps","hoistStatics","useLocation","decoder","_lineTokensBrand","_tokensCount","slicedEquals","sliceFromTokenIndex","sliceTokenCount","decodeLanguageId","getClassNameFromMetadata","getInlineStyleFromMetadata","findIndexInTokensArray","SlicedLineTokens","insertTokens","nextOriginalTokenIdx","nextInsertTokenIdx","newTokens","nextOriginalTokenEndOffset","nextInsertToken","defaultMetadata","defaultTokenMetadata","lineTextLength","lastTokenIndex","desiredIndex","_startOffset","_endOffset","_deltaOffset","_firstTokenIndex","getInlineStyle","intersect","relativeComplement","LoggingSeverity","DayOfWeek","MonthOfYear","FirstWeekOfYear","DateRangeType","DAYS_IN_WEEK","ARROW_IMG_SIZE","ScrollbarArrow","_onActivate","onActivate","bgDomNode","bgWidth","bgHeight","classNamesArray","_mouseMoveMonitor","GlobalMouseMoveMonitor","onmousedown","_arrowMouseDown","_mousedownRepeatTimer","_mousedownScheduleRepeatTimer","cancelAndSet","startMonitoring","standardMouseMoveMerger","mouseMoveData","ScrollbarVisibilityController","visibleClassName","invisibleClassName","_visibleClassName","_invisibleClassName","_isVisible","_isNeeded","_rawShouldBeVisible","_shouldBeVisible","_revealTimer","_updateShouldBeVisible","rawShouldBeVisible","shouldBeVisible","_applyVisibilitySetting","ensureVisibility","isNeeded","setClassName","setShouldBeVisible","_reveal","_hide","withFadeAway","AbstractScrollbar","_lazyRender","lazyRender","_host","_scrollable","scrollable","_scrollByPage","_scrollbarState","scrollbarState","_visibilityController","extraScrollbarClassName","setIsNeeded","_shouldRender","setDomNode","_domNodeMouseDown","slider","setTop","setLeft","setWidth","setHeight","setLayerHinting","setContain","_sliderMouseDown","onclick","visibleSize","setVisibleSize","elementScrollSize","setScrollSize","elementScrollPosition","setScrollPosition","_renderDomNode","getRectangleLargeSize","getRectangleSmallSize","_updateSlider","getSliderSize","getArrowSize","getSliderPosition","_onMouseDown","domTop","getClientRects","sliderStart","sliderStop","mousePos","_sliderMousePosition","offsetX","offsetY","domNodePosition","_mouseDownRelativePosition","_setDesiredScrollPositionNow","getDesiredScrollPositionFromOffsetPaged","getDesiredScrollPositionFromOffset","onDragFinished","initialMousePosition","initialMouseOrthogonalPosition","_sliderOrthogonalMousePosition","initialScrollbarState","toggleClassName","mouseOrthogonalPosition","mouseOrthogonalDelta","getScrollPosition","mouseDelta","getDesiredScrollPositionFromDelta","onDragEnd","onDragStart","_desiredScrollPosition","desiredScrollPosition","writeScrollPosition","setScrollPositionNow","scrollbarSize","_updateScrollbarSize","setScrollbarSize","ScrollbarState","oppositeScrollbarSize","scrollSize","scrollPosition","_scrollbarSize","_oppositeScrollbarSize","_arrowSize","_visibleSize","_scrollSize","_scrollPosition","_computedAvailableSize","_computedIsNeeded","_computedSliderSize","_computedSliderRatio","_computedSliderPosition","_refreshComputedValues","iVisibleSize","iScrollSize","iScrollPosition","_computeValues","computedAvailableSize","computedIsNeeded","computedSliderSize","computedSliderRatio","computedSliderPosition","desiredSliderPosition","correctedOffset","computedRepresentableSize","scrollbarButtonLeftIcon","scrollbarButtonRightIcon","HorizontalScrollbar","scrollDimensions","getScrollDimensions","getCurrentScrollPosition","scrollWidth","arrowDelta","scrollbarDelta","_createArrow","onMouseWheel","_createSlider","sliderSize","sliderPosition","largeSize","smallSize","setBottom","_onElementScrollSize","_onElementScrollPosition","_onElementSize","updateScrollbarSize","setOppositeScrollbarSize","setVisibility","scrollbarButtonUpIcon","scrollbarButtonDownIcon","VerticalScrollbar","scrollHeight","setRight","MouseWheelClassifierItem","MouseWheelClassifier","_capacity","_memory","_front","_rear","remainingInfluence","iteration","influence","_computeScore","_isAlmostInt","AbstractScrollableElement","_onScroll","onScroll","_onWillScroll","flipAxes","consumeMouseWheelIfScrollbarIsNeeded","scrollYToX","mouseWheelSmoothScroll","listenOnDomNode","_onDidScroll","scrollbarHost","mouseWheelEvent","_onMouseWheel","_onDragStart","_onDragEnd","_verticalScrollbar","_horizontalScrollbar","_leftShadowDomNode","_topShadowDomNode","_topLeftShadowDomNode","_listenOnDomNode","_mouseWheelToDispose","_setListeningToMouseWheel","onmouseover","_onMouseOver","onnonbubblingmouseout","_onMouseOut","_hideTimeout","_isDragging","_mouseIsOver","_revealOnScroll","delegateMouseDown","setScrollDimensions","newClassName","newOptions","shouldListen","classifier","osZoomFactor","didScroll","shiftConvert","futureScrollPosition","getFutureScrollPosition","deltaScrollTop","deltaScrollLeft","desiredScrollLeft","validateScrollPosition","isPhysicalMouseWheel","setScrollPositionSmooth","consumeMouseWheel","onDidScroll","scrollState","enableTop","enableLeft","leftClassName","topClassName","topLeftClassName","beginReveal","_scheduleHide","beginHide","ScrollableElement","Scrollable","SmoothScrollableElement","reuseAnimation","DomScrollableElement","scrollTopChanged","scrollLeftChanged","scanDomNode","IEditorWorkerService","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","variantClassName","iconClassName","menuIconClassName","disabled","hasMenu","expanded","isSplit","isExpanded","rootChecked","rootExpanded","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","rootDisabled","rootHovered","labelHovered","iconHovered","descriptionHovered","menuIconHovered","rootFocused","rootPressed","iconPressed","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","flexContainer","textContainer","iconExpanded","iconChecked","iconDisabled","labelChecked","labelDisabled","menuIconChecked","menuIconDisabled","menuIconExpanded","descriptionChecked","descriptionDisabled","screenReaderText","_hooks","_mouseMoveEventMerger","_mouseMoveCallback","_onStopCallback","stopMonitoring","invokeStopCallback","isMonitoring","onStopCallback","initialElement","initialButtons","mouseMoveEventMerger","mouseMoveCallback","windowChain","getSameOriginWindowChain","mouseMove","listenTo","hasDifferentOriginAncestor","lastSameOriginAncestor","CombinedSpliceable","spliceables","ListError","user","TraitRenderer","trait","renderedElements","templateData","renderedElementIndex","findIndex","rendered","unrender","renderIndex","renderedElement","indexes","Trait","_trait","sortedIndexes","_onChange","hasTrait","renderer","_set","numericSort","sortedResult","toRender","disjunction","renderIndexes","SelectionTrait","setAriaSelected","TraitSpliceable","identityProvider","pastElementsWithTrait","elementsWithTrait","isInputElement","isMonacoEditor","parentElement","TypeLabelControllerState","KeyboardController","multipleSelectionDisposables","onKeyDown","onUpArrow","onDownArrow","onPageUpArrow","onPageDownArrow","onEscape","multipleSelectionSupport","onCtrlA","optionsUpdate","getFocus","focusPrevious","setAnchor","reveal","focusNext","focusPreviousPage","focusNextPage","DefaultKeyboardNavigationDelegate","TypeLabelController","keyboardNavigationLabelProvider","delegate","Idle","automaticKeyboardNavigation","triggered","previouslyFocused","enabledDisposables","enableKeyboardNavigation","enable","disable","onChar","mightProducePrintableCharacter","onClear","onInput","accessibilityProvider","getAriaLabel","Typing","getKeyboardNavigationLabel","labelStr","setFocus","DOMFocusController","onTab","focusedDomElement","domElement","tabIndexElement","querySelector","isSelectionSingleChangeEvent","isSelectionRangeChangeEvent","DefaultMultipleSelectionController","MouseController","_onPointer","onPointer","multipleSelectionController","mouseSupport","onMouseDown","onContextMenu","onMouseDblClick","onDoubleClick","addTarget","getHTMLElement","onMouseClick","onMouseMiddleClick","onTap","onViewPointer","domFocus","changeSelection","isSelectionChangeEvent","MouseEvent","isMouseRightClick","getAnchor","currentFocus","rangeSelection","contiguousRange","getContiguousRangeContaining","newSelection","DefaultStyleController","styleElement","selectorSuffix","listInactiveFocusForeground","defaultStyles","DefaultOptions","keyboardSupport","getDragURI","onDragOver","drop","PipelineRenderer","_templateId","renderers","renderTemplate","renderElement","disposeElement","disposeTemplate","AccessibiltyRenderer","templateId","ariaLevel","getAriaLevel","ListViewDragAndDrop","getSelectedElements","originalEvent","getDragLabel","targetElement","targetIndex","onDragLeave","List","virtualDelegate","eventBufferer","_ariaLabel","_onDidDispose","onDidDispose","role","getWidgetRole","baseRenderers","onDidChangeActiveDescendant","viewOptions","ListView","styleController","domId","spliceable","keyboardController","keyboardNavigationDelegate","typeLabelController","mouseController","createMouseController","onDidChangeFocus","_onFocusChange","onDidChangeSelection","_onSelectionChange","getWidgetAriaLabel","wrapEvent","toListEvent","didJustPressContextMenuKey","fromKeyDown","fromKeyUp","fromMouse","bufferEvents","rerender","contentHeight","preventScroll","findNextIndex","findPreviousIndex","lastPageIndex","indexAt","renderHeight","lastPageElement","currentlyFocusedElement","getFocusedElements","lastGoodPageIndex","previousScrollTop","elementHeight","firstPageIndex","indexAfter","firstPageElement","firstGoodPageIndex","focusNth","relativeTop","elementTop","viewItemBottom","scrollBottom","getActiveDescendantId","getElementDomId","codeActionCommandId","refactorCommandId","sourceActionCommandId","organizeImportsCommandId","fixAllCommandId","CodeActionItem","resolveCodeAction","ManagedCodeActionSet","documentation","allActions","codeActionsComparator","validActions","fix","diagnostics","emptyCodeActionsResponse","getCodeActions","rangeOrSelection","progress","codeActionContext","only","providers","providedCodeActionKinds","getCodeActionProviders","provideCodeActions","providedCodeActions","filteredActions","getDocumentation","newProviders","allDocumentation","currentBest","itemResolveCount","validatedRangeOrSelection","isISelection","liftSelection","codeActionSet","resolveCount","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","innerRef","navigate","onClick","ex","isModifiedEvent","forwardedRef","Link","isDuplicateNavigation","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","ctorOrDescriptor","supportsDelayedInstantiation","SyncDescriptor","getSingletonServiceDescriptors","chordPart","ChordKeybinding","createSimpleKeybinding","ctrlCmd","winCtrl","ResolvedKeybindingPart","kbLabel","kbAriaLabel","keyLabel","keyAriaLabel","ResolvedKeybinding","WordCharacterClassifier","CharacterClassifier","getMapForWordSeparators","computeFn","_val","ResourceEditStackSnapshot","UndoRedoGroup","_ID","UndoRedoSource","isMultilineRegexSource","canUseSimpleSearch","SearchData","rawMatches","LineFeedCounter","lineFeedsOffsets","lineFeedsOffsetsLen","textLen","_lineFeedsOffsets","_doFindMatchesMultiline","_doFindMatchesLineByLine","lfCounter","matchIndex","match0","lineFeedCountBeforeMatch","findLineFeedCountBeforeOffset","lineFeedCountInMatch","counter","_getMultilineMatchRange","_doFindNextMatchMultiline","_doFindNextMatchLineByLine","searchTextStart","_findFirstMatchInLine","fromColumn","_doFindPreviousMatchMultiline","_doFindPreviousMatchLineByLine","_findLastMatchInLine","matchStartIndex","matchLength","charBefore","firstCharInMatch","leftIsWordBounday","charAfter","lastCharInMatch","rightIsWordBounday","searchRegex","_searchRegex","_prevMatchStartIndex","_prevMatchLength","PanelType","IQuickInputService","iconStartMarker","iconsRegex","escapeIconsRegex","markdownEscapedIconsRegex","markdownEscapeEscapedIcons","stripIconsRegex","stripIcons","preWhitespace","postWhitespace","parseLabelWithIcons","firstIconIndex","iconOffsets","textWithoutIcons","appendChars","chars","iconsOffset","nextChar","currentIconStart","currentIconValue","doParseLabelWithIcons","matchesFuzzyIconAware","wordToMatchAgainstWithoutIconsTrimmed","leadingWhitespaceOffset","iconOffset","isCodeEditor","getEditorType","editorCommon","ICodeEditor","isDiffEditor","IDiffEditor","getCodeEditor","getModifiedEditor","globalAPI","getWorkerUrl","moduleId","pathPrefix","__webpack_public_path__","currentUrl","currentOrigin","hash","protocol","blob","Blob","URL","createObjectURL","desiredLanguageId","firstTokenIndex","ScopedLineTokens","lastCharOffset","_scopedLineTokensBrand","_lastTokenIndex","_lastCharOffset","_this","didCall","_f","previousKeys","nextKeys","triggerKeyDown","focusable","_onDidCancel","cancelHasListener","onDidCancel","_context","_orientation","_triggerKeys","keyDown","triggerKeys","actionRunner","_actionRunner","_actionIds","viewItems","focusedItem","animated","DOM","eventHandled","focusFirst","focusLast","BaseActionViewItem","trapsArrowNavigation","isTriggerKeyEvent","doTrigger","updateFocusedItem","focusTracker","actionsList","elem","setActionContext","actionViewItemElement","allowContextMenu","ActionViewItem","setFocusable","selectFirst","firstEnabled","isEnabled","updateFocus","preventLoopNavigation","focusOnlyEnabledItems","fromRight","actionViewItem","focusItem","blur","_action","getContainer","Mimes","binary","unknown","latex","registeredAssociations","nonUserRegisteredAssociations","userRegisteredAssociations","registerTextMime","association","warnOnOverwrite","associationItem","toTextMimeAssociationItem","userConfigured","filename","filepattern","firstline","filenameLowercase","extensionLowercase","filepatternLowercase","filepatternOnPath","clearTextMimes","onlyUserConfigured","guessMimeTypes","firstLine","configuredMime","guessMimeTypeByPath","registeredMime","firstlineMime","guessMimeTypeByFirstline","associations","filenameMatch","patternMatch","extensionMatch","handleActionChangeEvent","updateEnabled","updateChecked","updateClass","updateLabel","updateTooltip","newContext","enableDragging","draggable","dataTransfer","setData","DataTransfers","TEXT","TouchEventType","isMenu","preserveFocus","useEventAsContext","getAction","OrthogonalEdge","onDidChangeGlobalSize","onDidChangeHoverDelay","MouseEventFactory","GestureEventFactory","OrthogonalPointerEventFactory","onPointerMove","onPointerUp","layoutProvider","hoverDelay","hoverDelayer","_onDidEnablementChange","onDidEnablementChange","_onDidStart","_onDidReset","onDidReset","_onDidEnd","linkedSash","orthogonalStartSashDisposables","orthogonalStartDragHandleDisposables","orthogonalEndSashDisposables","orthogonalEndDragHandleDisposables","orthogonalEdge","onPointerStart","onMouseDoubleClick","onPointerDoublePress","onMouseEnter","onMouseLeave","onDoubleTap","hidden","orthogonalStartSash","orthogonalEndSash","_orthogonalStartSash","sash","_orthogonalStartDragHandle","_orthogonalEndSash","_orthogonalEndDragHandle","pointerEventFactory","isMultisashResize","__orthogonalSashEvent","orthogonalSash","getOrthogonalSash","__linkedSashEvent","iframes","startX","startEvent","currentX","updateStyle","verticalProvider","getVerticalSashLeft","getVerticalSashTop","getVerticalSashHeight","horizontalProvider","getHorizontalSashTop","getHorizontalSashLeft","getHorizontalSashWidth","fromLinkedSash","Scanner","isDigitCharacter","isVariableCharacter","Marker","Text","others","newChildren","_fixParent","TextmateSnippet","TransformableMarker","Placeholder","Choice","isFinalTabstop","marker","Transform","didMatch","_replace","FormatString","elseValue","shorthandName","ifValue","toLocaleUpperCase","toLocaleLowerCase","_toPascalCase","_toCamelCase","Variable","resolver","walk","visitor","_placeholders","placeholderInfo","found","placeholder","_scanner","insertFinalTabstop","enforceFinalTabstop","snippet","_parse","placeholderDefaultValues","incompletePlaceholders","placeholderCount","defaultValues","tokenText","_parseEscaped","_parseTabstopOrVariableName","_parseComplexPlaceholder","_parseComplexVariable","_parseAnything","_accept","_backTo","_parseTransform","choice","_parseChoiceElement","regexValue","regexOptions","_parseFormatString","complex","shorthand","_until","template","lastLineStart","getDefaultMetadata","topLevelLanguageId","EMPTY_LINE_TOKENS","MultilineTokens","SparseEncodedTokens","_tokenCount","_getDeltaLine","_getStartCharacter","_getEndCharacter","_getTokenCount","startChar","maxDeltaLine","endChar","deltaLine","midDeltaLine","LineTokens2","subarray","startDeltaLine","endDeltaLine","newTokenCount","hasDeletedTokens","firstDeltaLine","srcOffset","tokenDeltaLine","tokenStartCharacter","tokenEndCharacter","destOffset","aTokens","bTokens","destTokens","destFirstDeltaLine","horizontalShiftForFirstLineTokens","startCharacter","endCharacter","deletedLineCount","firstCharCode","isInsertingPreciselyOneWordCharacter","tokenLength","MultilineTokens2","getMaxDeltaLine","deltaRange","getRange","startLineIndex","removeTokens","_updateEndLineNumber","bDeltaLine","firstLineIndex","lastLineIndex","deletedLinesCount","tokenMaxDeltaLine","deletedBefore","acceptDeleteRange","acceptInsertText","toUint32Array","_isComplete","_firstRange","_lastRange","insertPosition","_findFirstPieceWithLine","aIndex","lastEndOffset","emitToken","bIndex","bStartCharacter","getStartCharacter","bEndCharacter","getEndCharacter","bMetadata","bMask","aMask","aMergeIndex","_lineTokens","rawLineTokens","checkEquality","_massageTokens","oldTokens","_deleteEnding","lastLineTokens","_deleteBeginning","_append","hasDifferentLanguageId","toChIndex","fromChIndex","tokensCount","dest","lastEnd","fromTokenIndex","fromTokenStartOffset","_otherTokens","myTokens","otherTokens","otherTokensCount","chIndex","isNonNullObject","RichEditBracket","_richEditBracketBrand","_openSet","_toSet","_closeSet","_richEditBracketsBrand","N","areOverlapping","aOpen","aClose","bOpen","bClose","mergeGroups","g2","newG","oldG","currentOpen","currentClose","groupFuzzyBrackets","currentIndex","collectSuperstrings","unique","lengthcmp","createBracketOrRegExp","getRegexForBracketPair","toReversedString","getReversedRegexForBracketPair","getRegexForBrackets","getReversedRegexForBrackets","insertWordBoundaries","regexStr","lastInput","lastOutput","stringBuilder","reversedText","matchOffset","absoluteMatchOffset","reversedSubstr","_findPrevBracketInText","findNextBracketInText","KeytipEvents","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","_utf16LE_TextDecoder","_utf16BE_TextDecoder","_platformTextDecoder","getUTF16LE_TextDecoder","getPlatformTextDecoder","decodeUTF16LE","hasTextDecoder","compatDecodeUTF16LE","capacity","StringBuilder","CompatStringBuilder","_completedStrings","_bufferLength","_flushBuffer","_buildBuffer","bufferString","remainingSpace","strLen","_piecesLen","IClipboardService","toUint8","_asciiMap","_createAsciiMap","asciiMap","CharacterSet","_tokenBrand","_tokenizationResultBrand","_tokenizationResult2Brand","wordType","nextCharClass","_doFindPreviousWordOnLine","chClass","_createWord","_findEndOfWord","_doFindNextWordOnLine","_findStartOfWord","wordNavigationType","prevWordOnLine","_findPreviousWordOnLine","rightRight","movedDown","nextWordOnLine","_findNextWordOnLine","lastNonWhitespace","whitespaceHeuristics","isAutoClosingPairDelete","autoClosedCharacters","_deleteWordLeftWhitespace","_deleteInsideWordWhitespace","_deleteInsideWordDetermineDeleteRange","lineContentLength","leftIndex","_charAtIsWhitespace","rightIndex","touchesWord","createRangeWithPosition","deleteWordAndAdjacentWhitespace","expandedToTheRight","toPosition","_moveWordPartLeft","firstNonWhitespace","_findFirstNonWhitespaceChar","_deleteWordRightWhitespace","_moveWordPartRight","prevWord","_createWordAtPosition","possiblePosition","WordPartOperations","candidates","enforceDefined","deleteWordLeft","_deleteWordPartLeft","deleteWordRight","_deleteWordPartRight","moveWordLeft","moveWordRight","QuickInputHideReason","ItemActivation","NO_KEY_MODS","RESOURCES","DOWNLOAD_URL","FILES","TERMINALS","DragAndDropData","StaticDND","CurrentDragAndDropData","SurroundSelectionCommand","charBeforeSelection","charAfterSelection","_charBeforeSelection","_charAfterSelection","inverseEditOperations","firstOperationRange","secondOperationRange","ShiftCommand","isUnshift","pasteOnNewLine","typeSelection","multicursorText","distributedPaste","_distributePasteToCursors","_distributedPaste","_simplePaste","expectedIndentAction","expectedEnterAction","getEnterAction","typeText","goodIndent","_goodIndentForLine","possibleTypeText","_replaceJumpToNextIndent","lineMaxColumn","prevEditOperationType","_compositionType","shouldPushStackElementBetween","keepPosition","_typeCommand","normalIndent","increasedIndent","actualIndentation","ir","getIndentForEnter","oldEndViewColumn","oldEndColumn","newLineContent","currentIndentation","getIndentActionForType","chIsQuote","autoClosedCharacter","lineAfter","potentialStartingBraces","potentialClosingBraces","isBeforeStartingBrace","isBeforeClosingBrace","positions","autoClosingPairCandidates","autoClosingPairCandidate","candidateIsMatch","subPairCandidates","subPairMatch","insertOpenCharacter","_findAutoClosingPairOpen","subAutoClosingPairClose","_findSubAutoClosingPairClose","isSubAutoClosingPairPresent","characterAfter","_isBeforeClosingBrace","autoClosingPairClose","TypeWithAutoClosingCommand","_shouldSurroundChar","isTypingAQuoteCharacter","selectionContainsOnlyWhitespace","selectedText","selectionText","closeCharacter","electricAction","findMatchingBracketUp","matchLine","matchLineIndentation","newIndentation","lineFirstNonBlankColumn","getTypingOperation","selectionsWhenCompositionStarted","selectionsArrEqual","currentChar","_isAutoClosingOvertype","_getAutoClosingPairClose","_runAutoClosingOpenCharType","isDoingComposition","_enter","_isAutoIndentType","autoIndentFails","_runAutoIndentType","_runAutoClosingOvertype","_isSurroundSelectionType","_runSurroundSelectionType","_isTypeInterceptorElectricChar","_typeInterceptorElectricChar","opType","openCharacter","_openCharacter","_closeCharacter","closeCharacterRange","enclosingRange","typedText","previousTypingOperation","typingOperation","isTypingOperation","normalizeOperationType","createMemoizer","Class","Wrapper","hasPerformanceNow","performance","highResolution","_highResolution","_startTime","_now","_stopTime","allSettings","patternProperties","applicationSettings","machineSettings","machineOverridableSettings","windowSettings","resourceSettings","resourceLanguageSettingsSchemaId","contributionRegistry","ConfigurationRegistry","overrideIdentifiers","_onDidSchemaChange","_onDidUpdateConfiguration","defaultLanguageConfigurationOverridesNode","configurationContributors","resourceLanguageSettingsSchema","allowTrailingCommas","allowComments","configurationProperties","excludedConfigurationProperties","registerConfigurations","doRegisterConfigurations","updateOverridePropertyPatternKey","validateAndRegisterProperties","extensionInfo","registerJSONConfiguration","propertyKeys","validateProperty","updatePropertyDefaultValue","OVERRIDE_PROPERTY_PATTERN","restrictedConfigurations","subNodes","allOf","updateSchema","overrideIdentifierProperty","resourceLanguagePropertiesSchema","getDefaultValue","overrideIdentifierFromKey","configurationRegistry","_objectWithoutPropertiesLoose","excluded","sourceKeys","ModesRegistry","_onDidChangeLanguages","onDidChangeLanguages","_languages","_dynamicLanguages","PLAINTEXT_MODE_ID","registerLanguage","aliases","mimetypes","InjectionMode","toUint32","_lineDecorationBrand","dec","minLineColumn","ORDER","typeCmp","_typeCompare","DecorationSegment","Stack","stopOffsets","maxStopOffset","nextStartOffset","_metadata","stopOffset","currentStartOffset","currentEndOffset","consumeLowerThan","OperationTypeNode","Location","startToken","endToken","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","kindValues","isNode","maybeNode","maybeKind","repeatCache","cachedStringRepeat","_opts","_selection","_useLastEditRangeForCursorEndPosition","_selectionStartColumnStaysPut","addEditOperation","startLine","endLine","shouldIndentEmptyLines","previousLineExtraSpaces","extraSpaces","indentationEndIndex","enterAction","desiredIndent","_addEditOperation","oneIndent","lastOp","contentStartVisibleColumn","prevIndentTabStop","prevRenderTabStop","nextIndentTabStop","nextRenderTabStop","ContextualMenuItemType","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","valueOf","valueEqual","bValue","stripLeadingSlash","prefix","hasBasename","stripTrailingSlash","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","go","revertPop","initialLocation","createHref","checkDOMListeners","pushState","prevIndex","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","getParent","allowVirtualParents","_virtual","getVirtualParent","DefaultQuickAccessFilterValue","Quickaccess","QuickAccessRegistry","defaultProvider","providerA","providerB","useConst","allowInWords","createWordRegExp","_defaultConfig","windowSize","timeBudget","textOffset","prevRegexIndex","regexIndex","thisMatch","_findRegexMatchEnclosingPosition","stopPos","EditorZoom","PagedRenderer","modelProvider","isResolved","renderPlaceholder","PagedAccessibilityProvider","fromPagedListOptions","PagedList","pagedRenderers","_model","TableListRenderer","columns","getColumnSize","TemplateId","renderedTemplates","rendererMap","rowContainer","cellContainers","cellTemplateData","cellContainer","cell","ColumnHeader","_onDidLayout","onDidLayout","minimumWidth","maximumWidth","onDidChangeWidthConstraints","Table","InstanceCount","cachedHeight","headers","views","splitview","SplitView","scrollbarVisibility","getSashOrthogonalSize","headerRowHeight","getViewSize","getTemplateId","columnLayoutDisposable","layoutColumn","_toArray","TreeMouseEventTarget","TreeError","WeakMapper","isFilterResult","getVisibleState","isCollapsibleStateUpdate","collapsible","IndexTreeModel","rootRef","_onDidChangeCollapseState","onDidChangeCollapseState","_onDidChangeRenderNodeCount","onDidChangeRenderNodeCount","_onDidSplice","onDidSplice","collapseByDefault","autoExpandSingleChildren","depth","visibleChildrenCount","visibleChildIndex","collapsed","renderNodeCount","visible","filterData","toInsert","diffIdentityProvider","spliceSmart","spliceSimple","identity","toInsertIterable","recurseLevels","diffDepth","getParentNodeWithListIndex","lastDiffIds","LcsDiff","getElements","ComputeDiff","quitEarly","locationPrefix","recurseSplice","fromOriginal","fromModified","lastStartO","lastStartM","originalStart","modifiedStart","modifiedLength","onDidCreateNode","onDidDeleteNode","listIndex","revealed","treeListElementsToInsert","nodesToInsertIterator","createTreeNode","lastHadChildren","visibleChildStartIndex","nodesToInsert","insertedVisibleChildrenCount","deletedNodes","deletedVisibleChildrenCount","visibleDeleteCount","_updateAncestorsRenderNodeCount","visit","currentlyHasChildren","setCollapsible","insertedNodes","refilter","getTreeNodeWithListIndex","hasTreeNode","getTreeNode","_setCollapseState","recursive","_setListNodeCollapseState","onlyVisibleChildIndex","_setNodeCollapseState","previousRenderNodeCount","updateNodeAfterCollapseChange","deep","updateNodeAfterFilterChange","treeElement","parentVisibility","treeListElements","_filterNode","childElements","childRevealed","childNodes","_updateNodeAfterCollapseChange","_updateNodeAfterFilterChange","resultStartLength","hasVisibleDescendants","indexTreeNode","treeItemExpandedIcon","treeFilterOnTypeOnIcon","treeFilterOnTypeOffIcon","treeFilterClearIcon","treeItemLoadingIcon","TreeElementsDragAndDropData","ElementsDragAndDropData","asTreeDragAndDropData","TreeNodeListDragAndDrop","autoExpandDisposable","didChangeAutoExpandNode","autoExpandNode","autoExpand","getNodeLocation","isCollapsed","setCollapsed","bubble","effect","parentRef","getParentNodeLocation","getNode","parentIndex","getListIndex","getListRenderCount","asListOptions","getSetSize","getPosInSet","isChecked","getRole","simpleKeyboardNavigation","RenderIndentGuides","ComposedTreeDelegate","hasDynamicHeight","setDynamicHeight","EventCollection","_elements","TreeRenderer","activeNodes","renderedNodes","DefaultIndent","hideTwistiesOfChildlessElements","shouldRenderIndentGuides","renderedIndentGuides","SetMap","activeIndentNodes","indentGuidesDisposable","onDidChangeNodeTwistieState","onDidChangeTwistieState","renderIndentGuides","_onDidChangeActiveNodes","twistie","contents","paddingLeft","renderTwistie","twistieRendered","disposableStore","guide","childElementCount","firstElementChild","TypeFilter","_filter","_totalCount","_matchCount","_pattern","_lowercasePattern","onWillRefilter","labels","filterOnType","TypeFilterController","_onDidChangeEmptyState","positionClassName","_onDidChangePattern","messageDomNode","labelDomNode","controls","_filterOnType","filterOnTypeDomNode","updateFilterOnTypeTitleAndIcon","onDidChangeFilterOnType","clearDomNode","cssSelector","keyboardNavigationEventFilter","onDidSpliceModel","onEventOrInput","onRawKeyDown","onClearClick","getRelativeTop","containerWidth","midContainerWidth","updatePosition","dropEffect","noMatches","totalCount","matchCount","asTreeMouseEvent","Unknown","Twistie","Element","dfs","getFirstViewElementWithTrait","_nodeSet","createNodeSet","__forceEvent","silent","that","nodeSet","deletedNodesIdSet","deletedNodesVisitor","insertedNodesMap","insertedNodesVisitor","insertedNode","TreeNodeListMouseController","onTwistie","expandOnlyOnTwistieClick","expandOnDoubleClick","TreeNodeList","focusTrait","selectionTrait","anchorTrait","additionalFocus","additionalSelection","fromAPI","AbstractTree","_onWillRefilter","_onDidUpdateOptions","treeDelegate","onDidChangeCollapseStateRelay","onDidChangeActiveNodes","getAnchorElement","createModel","onDidModelSplice","getNodes","onLeftArrow","onRightArrow","onSpace","typeFilterController","focusNavigationFilter","shouldAllowFocus","Always","isCollapsible","expandTo","parentLocation","parentListIndex","firstChildIndex","ObjectTreeModel","nodesByIdentity","getElementLocation","_setChildren","preserveCollapseState","insertedElements","insertedElementIds","tnode","MAX_VALUE","noCompress","incompressible","compress","childrenIterator","_decompress","decompress","wrapIdentityProvider","CompressedObjectTreeModel","compressionEnabled","compressedNode","compressedParentNode","decompressedElement","splicedElement","recompressedElement","parentChildren","compressedChildren","Infinity","rootChildren","decompressedRootChildren","recompressedRootChildren","setChildren","getCompressedNode","DefaultElementMapper","CompressedTreeNodeWrapper","unwrapper","mapList","nodeMapper","updateElementHeight","mapOptions","compressedNodeUnwrapper","otherNode","CompressibleObjectTreeModel","elementMapper","setCompressionEnabled","ObjectTree","CompressibleRenderer","_compressedTreeNodeProvider","compressedTreeNode","compressedTreeNodeProvider","getCompressedTreeNode","renderCompressedElements","disposeCompressedElements","twistieElement","asObjectTreeOptions","getCompressedNodeKeyboardNavigationLabel","CompressibleObjectTree","compressibleRenderers","createAsyncDataTreeNode","refreshPromise","stale","slow","collapsedByDefault","ancestor","descendant","AsyncDataTreeNodeWrapper","AsyncDataTreeRenderer","asTreeEvent","AsyncDataTreeElementsDragAndDropData","asAsyncDataTreeDragAndDropData","AsyncDataTreeNodeListDragAndDrop","additionalScrollHeight","AsyncDataTree","dataSource","subTreeRefreshPromises","refreshPromises","_onDidRender","_onDidChangeNodeSlowState","createTree","hasChildren","objectTreeDelegate","objectTreeRenderers","objectTreeOptions","viewStateContext","_updateChildren","getDataNode","refreshAndRenderNode","collapse","hasElement","expand","refreshNode","doRefreshSubTree","doRefreshNode","childrenToRefresh","slowTimeout","childrenPromise","doGetChildren","getChildren","processChildren","childrenElementsIterable","childrenElements","nodesToForget","childrenTreeNodesById","asyncDataTreeNode","childAsyncDataTreeNode","asTreeElement","CompressibleAsyncDataTreeNodeWrapper","CompressibleAsyncDataTreeRenderer","compressibleNodeMapperProvider","CompressibleAsyncDataTree","compressionDelegate","compressibleNodeMapper","els","asCompressibleObjectTreeOptions","isIncompressible","getUncompressedIds","oldSelection","oldFocus","didChangeSelection","didChangeFocus","filterResult","DataTree","IListService","ListService","_themeService","lists","_lastFocusedWidget","_hasCreatedStyleController","extraContextKeys","registeredList","RawWorkbenchListFocusContextKey","WorkbenchListSupportsMultiSelectContextKey","WorkbenchListFocusContextKey","not","InputFocusedContextKey","WorkbenchListHasSelectionOrFocus","WorkbenchListDoubleSelection","WorkbenchListMultiSelection","WorkbenchListSelectionNavigation","WorkbenchListAutomaticKeyboardNavigationKey","createScopedContextKeyService","createScoped","multiSelectModifierSettingKey","openModeSettingKey","horizontalScrollingKey","keyboardNavigationSettingKey","automaticKeyboardNavigationSettingKey","treeIndentKey","treeRenderIndentGuidesKey","listSmoothScrolling","mouseWheelScrollSensitivityKey","fastScrollSensitivityKey","treeExpandMode","useAltAsMultipleSelectionModifier","MultipleSelectionController","affectsConfiguration","toWorkbenchListOptions","keybindingService","WorkbenchList","listService","horizontalScrolling","workbenchListOptions","workbenchListOptionsDisposable","listSupportsMultiSelect","selectionNavigation","listHasSelectionOrFocus","listDoubleSelection","listMultiSelection","_useAltAsMultipleSelectionModifier","overrideStyles","bufferChangeEvents","ListResourceNavigator","_styler","WorkbenchPagedList","WorkbenchTable","TableResourceNavigator","ResourceNavigator","_onDidOpen","onDidOpen","KeyboardEvent","onSelectionFromKeyboard","openOnSingleClick","selectionKeyboardEvent","_open","getSelectedElement","sideBySide","editorOptions","revealIfVisible","TreeResourceNavigator","createKeyboardNavigationEventFilter","inChord","softDispatch","enterChord","WorkbenchObjectTree","workbenchTreeDataPreamble","treeOptions","getAutomaticKeyboardNavigation","internals","WorkbenchTreeInternals","WorkbenchCompressibleObjectTree","updateStyleOverrides","WorkbenchDataTree","WorkbenchAsyncDataTree","WorkbenchCompressibleAsyncDataTree","accessibilityOn","keyboardNavigation","hasSelectionOrFocus","hasDoubleSelection","hasMultiSelection","interestingContextKeys","updateKeyboardNavigation","onDidChangeContext","affectsSome","styler","ConfigurationExtensions","registerConfiguration","_inheritsLoose","LiteGraph","VERSION","CANVAS_GRID_SIZE","NODE_TITLE_HEIGHT","NODE_TITLE_TEXT_Y","NODE_SLOT_HEIGHT","NODE_WIDGET_HEIGHT","NODE_WIDTH","NODE_MIN_WIDTH","NODE_COLLAPSED_RADIUS","NODE_COLLAPSED_WIDTH","NODE_TITLE_COLOR","NODE_SELECTED_TITLE_COLOR","NODE_TEXT_SIZE","NODE_TEXT_COLOR","NODE_SUBTEXT_SIZE","NODE_DEFAULT_COLOR","NODE_DEFAULT_BGCOLOR","NODE_DEFAULT_BOXCOLOR","NODE_DEFAULT_SHAPE","NODE_BOX_OUTLINE_COLOR","DEFAULT_SHADOW_COLOR","DEFAULT_GROUP_FONT","WIDGET_BGCOLOR","WIDGET_OUTLINE_COLOR","WIDGET_TEXT_COLOR","WIDGET_SECONDARY_TEXT_COLOR","LINK_COLOR","EVENT_LINK_COLOR","CONNECTING_LINK_COLOR","MAX_NUMBER_OF_NODES","DEFAULT_POSITION","VALID_SHAPES","BOX_SHAPE","ROUND_SHAPE","CIRCLE_SHAPE","CARD_SHAPE","ARROW_SHAPE","OUTPUT","EVENT","ACTION","ALWAYS","ON_EVENT","NEVER","ON_TRIGGER","UP","DOWN","CENTER","STRAIGHT_LINK","LINEAR_LINK","SPLINE_LINK","NORMAL_TITLE","NO_TITLE","TRANSPARENT_TITLE","AUTOHIDE_TITLE","proxy","node_images_path","catch_exceptions","throw_errors","allow_scripts","registered_node_types","node_types_by_file_extension","Nodes","Globals","searchbox_extras","auto_sort_node_types","registerNodeType","base_class","classname","category","LGraphNode","_shape","onPropertyChange","supported_extensions","onNodeTypeRegistered","onNodeTypeReplaced","unregisterNodeType","wrapFunctionAsNode","param_types","return_type","names","getParameterNames","classobj","onExecute","getInputData","setOutputData","clearRegisteredTypes","addNodeMethod","createNode","properties_info","computeSize","getNodeType","getNodeTypesInCategory","getNodeTypesCategories","categories","skip_list","reloadNodes","folder_wildcard","script_files","docHeadObj","dynamicScript","cloneObject","isValidConnection","type_a","type_b","supported_types_a","supported_types_b","registerSearchboxExtra","node_type","fetchFile","on_complete","on_error","fetch","response","arrayBuffer","File","FileReader","onload","readAsArrayBuffer","readAsText","readAsBinaryString","LGraph","list_of_graphcanvas","configure","LLink","origin_id","origin_slot","target_id","target_slot","Float32Array","_ctor","LGraphGroup","DragAndScale","skip_events","max_scale","min_scale","onredraw","last_mouse","visible_area","bindEvents","LGraphCanvas","canvas","background_image","DEFAULT_BACKGROUND_IMAGE","ds","zoom_modify_alpha","title_text_font","inner_text_font","node_title_color","default_link_color","default_connection_color","input_off","input_on","output_off","output_on","highquality_render","use_gradients","editor_alpha","pause_rendering","clear_background","read_only","render_only_selected","live_mode","show_info","allow_dragcanvas","allow_dragnodes","allow_interaction","allow_searchbox","allow_reconnect_links","align_to_grid","drag_mode","dragging_rectangle","set_canvas_dirty_on_mouse_event","always_render_background","render_shadows","render_canvas_border","render_connections_shadows","render_connections_border","render_curved_connections","render_connection_arrows","render_collapsed_slots","render_execution_order","render_title_colored","render_link_tooltip","links_render_mode","mouse","graph_mouse","canvas_mouse","onSearchBox","onSearchBoxSelection","onMouse","onDrawBackground","onDrawForeground","onDrawOverlay","onDrawLinkTooltip","onNodeMoved","onSelectionChange","onConnectingChange","onBeforeChange","onAfterChange","connections_width","round_radius","current_node","node_widget","over_link_center","last_mouse_position","visible_links","viewport","attachCanvas","setCanvas","skip_render","startRendering","autoresize","hrtime","supported_types","getSupportedTypes","STATUS_STOPPED","STATUS_RUNNING","last_node_id","last_link_id","_version","_nodes","onRemoved","_nodes_by_id","_nodes_in_order","_nodes_executable","_groups","vars","globaltime","runningtime","fixedtime","fixedtime_lapse","elapsed_time","last_update_time","starttime","catch_errors","inputs","outputs","sendActionToCanvas","graphcanvas","detachCanvas","onPlayEvent","sendEventToAllNodes","execution_timer_id","on_frame","onBeforeStep","runStep","onAfterStep","onStopEvent","num","do_not_catch_errors","onExecuteStep","onAfterExecute","errors_in_execution","execution_time","updateExecutionOrder","computeExecutionOrder","only_onExecute","set_level","L","S","M","visited_links","remaining_links","_level","link_id","target_node","getNodeById","A","B","Ap","Bp","getAncestors","ancestors","getInputNode","arrange","col","max_size","setDirtyCanvas","getFixedTime","getElapsedTime","eventname","Subgraph","skip_compute_order","onAdded","alignToGrid","onNodeAdded","ignore_remove","beforeChange","slot","disconnectInput","disconnectOutput","selected_nodes","node_dragged","onNodeRemoved","afterChange","findNodesByClass","classObject","findNodesByType","findNodeByTitle","findNodesByTitle","getNodeOnPos","nodes_list","isPointInside","getGroupOnPos","checkNodeTypes","newnode","onAction","param","_input_nodes","GraphInput","onTrigger","addInput","onInputAdded","onInputsOutputsChange","setInputData","renameInput","old_name","onInputRenamed","changeInputType","onInputTypeChanged","removeInput","onInputRemoved","addOutput","onOutputAdded","getOutputData","renameOutput","onOutputRenamed","changeOutputType","onOutputTypeChanged","removeOutput","onOutputRemoved","triggerInput","setCallback","setTrigger","connectionChange","link_info","onConnectionChange","isLive","clearTriggeredSlots","_last_time","on_change","fg","removeLink","nodes_info","link2","groups_info","version","onSerialize","keep_old","link_data","n_info","last_serialization","has_errors","onConfigure","load","req","XMLHttpRequest","send","oEvent","onerror","onNodeTrace","connections","onPropertyChanged","onConnectionsChange","widgets","widgets_values","serialize_widgets","bgcolor","boxcolor","shape","getTitle","setProperty","prev_value","output_info","setOutputDataType","force_update","updateOutputData","getInputDataType","getInputDataByName","slot_name","findInputSlot","isInputConnected","getInputInfo","getInputLink","slot_info","getInputOrProperty","input_info","getOutputInfo","isOutputConnected","isAnyOutputConnected","getOutputNodes","_last_trigger_time","triggerSlot","target_connection","clearTriggeredSlot","setSize","onResize","addProperty","default_value","extra_info","addOutputs","addInputs","addConnection","rows","font_size","title_width","compute_text_size","input_width","output_width","text_width","slot_start_y","widgets_height","widgets_up","widgets_start_y","min_height","getPropertyInfo","widgets_info","onGetPropertyInfo","addWidget","addCustomWidget","custom_widget","getBounding","onBounding","skip_title","margin_top","isInsideRectangle","_collapsed_width","getSlotInPosition","link_pos","getConnectionPos","findOutputSlot","connect","onConnectInput","onNodeConnectionChange","is_input","slot_number","num_slots","MAX_CONSOLE","dirty_foreground","dirty_background","loadImage","img","Image","ready","captureInput","node_capturing_input","force","collapsable","localToScreen","node_colors","pale_blue","groupcolor","_bounding","bounding","deltax","deltay","ignore_nodes","recomputeInsideNodes","node_bounding","overlapBounding","_binded_mouse_callback","computeVisibleArea","startx","starty","endx","endy","rect","canvasx","canvasy","dragging","is_inside","ignore","onmouse","mouseDrag","eventType","wheel","changeDeltaScale","toCanvasContext","translate","convertOffsetToCanvas","convertCanvasToOffset","changeScale","zooming_center","center","new_center","delta_offset","link_type_colors","gradients","frame","last_draw_time","render_time","fps","selected_group","visible_nodes","node_over","connecting_node","highlighted_links","dragging_canvas","dirty_canvas","dirty_bgcanvas","dirty_area","node_in_panel","last_mouseclick","setGraph","skip_clear","_graph_stack","setDirty","getTopGraph","openSubgraph","checkPanels","closeSubgraph","subgraph_node","_subgraph_node","centerOnNode","selectNodes","getCurrentGraph","getElementById","unbindEvents","tabindex","bgcanvas","localName","webgl_enabled","enableWebGL","_mousemove_callback","processMouseMove","_mouseup_callback","processMouseUp","_doNothing","_doReturnTrue","_events_binded","getCanvasWindow","_mousedown_callback","processMouseDown","_mousewheel_callback","processMouseWheel","_touch_callback","touchHandler","_key_callback","processKey","_ondrop_callback","processDrop","getFileExtension","point","GL","enableWebGLCanvas","gl","webgl","bgctx","fgcanvas","parentWindow","is_rendering","renderFrame","draw","stopRendering","blockClick","block_click","adjustMouseEvent","ref_window","active_canvas","localX","localY","canvasX","canvasY","skip_action","is_double_click","last_click_position","closeAllContextMenus","which","clicking_canvas_bg","bringToFront","resizable","resizing_node","connecting_output","connecting_pos","connecting_slot","onOutputDblClick","onOutputClick","onInputDblClick","onInputClick","block_drag_node","processNodeWidgets","onDblClick","processNodeDblClicked","subgraph","skip_subgraph_button","processNodeSelected","showLinkMenu","selected_group_resizing","showSearchBox","processContextMenu","last_mouse_dragging","resize","mouseOver","redraw_on_mouse","onMouseMove","_highlight_input","isOverNodeBox","isOverNodeInput","slot_type","_highlight_input_slot","over_link","desired_size","min_size","click_time","diffx","diffy","deselectAllNodes","to_select","onMouseUp","title_height","slot_pos","block_default","copyToClipboard","pasteFromClipboard","deleteSelectedNodes","onKeyUp","stopImmediatePropagation","clipboard_info","selected_nodes_array","_relative_id","cloned","setItem","node_data","origin_node","onDropItem","checkDropItem","onDropFile","onDropData","readAsDataURL","nodetype","onShowNodePanel","showShowNodePanel","onNodeDblClicked","selectNode","onNodeSelected","add_to_current_selection","is_selected","onSelected","deselectNode","onDeselected","onNodeDeselected","block_delete","input_link","output_link","input_node","output_node","setZoom","convertEventToCanvasOffset","sendToBack","temp","computeVisibleNodes","force_canvas","force_bgcanvas","drawBackCanvas","drawFrontCanvas","start2D","restore","setTransform","area","beginPath","clip","clearRect","drawImage","onRender","renderInfo","drawNode","drawExecutionOrder","links_ontop","drawConnections","lineWidth","link_color","renderLink","lineTo","closePath","arc","PI","fill","fillStyle","strokeStyle","strokeRect","drawLinkTooltip","visible_rect","drawSubgraphPanel","finish2D","subnode","globalAlpha","roundRect","textAlign","fillText","drawButton","not_subgraph_input","input_node_type","tw","measureText","showSubgraphPropertiesDialog","hovercolor","textcolor","clicked","was_clicked","isAreaClicked","hold_click","bg_already_painted","onRenderBackground","imageSmoothingEnabled","mozImageSmoothingEnabled","_bg_img","createPattern","_pattern_img","fillRect","drawGroups","onBackgroundRender","shadowOffsetX","shadowOffsetY","shadowBlur","temp_vec2","low_quality","onDrawCollapsed","clip_area","drawNodeShape","render_text","out_slot","max_y","input_slot","output_slot","color_on","color_off","stroke","widgets_y","drawNodeWidgets","toToolTip","tmp_area","fgcolor","selected","mouse_over","title_mode","render_title","old_alpha","onDrawTitleBar","title_color","grad","createLinearGradient","addColorStop","box_size","onDrawTitleBox","onDrawTitleText","title_text_color","over","onDrawTitle","margin_area","link_bounding","tempA","tempB","sqrt","A_end_x","A_end_y","B_end_x","B_end_y","ContextMenu","parentMenu","current_submenu","eventClass","on_mouse_wheel","scroll_speed","minWidth","minHeight","innerHTML","addItem","closing_timer","root_document","fullscreenElement","body_rect","root_rect","CurveEditor","points","must_update","start_node","start_node_slot","start_node_slotpos","end_node_slotpos","start_slot","end_slot","start_dir","end_dir","skip_border","flow","num_sublines","dist","lineJoin","offsety","start_offset_x","start_offset_y","end_offset_x","end_offset_y","bezierCurveTo","start_x","start_y","end_x","end_y","computeConnectionPoint","posA","posB","posC","posD","angleA","angleB","atan2","rotate","p0","p1","p2","p3","c1","c2","c3","c4","posY","active_widget","H","show_text","outline_color","background_color","text_color","secondary_text_color","last_y","widget_width","off","nvalue","marker_nvalue","precision","widget_height","old_value","inner_value_change","values_list","text_values","onWidgetChanged","DEFAULT_GROUP_FONT_SIZE","adjustNodesSize","switchLiveMode","transition","onNodeSelectionChange","simulatedEvent","initMouseEvent","screenX","screenY","onGroupAdd","mouse_event","onMenuAdd","prev_menu","inner_onMenuAdded","base_category","base_category_regex","category_name","category_path","has_submenu","mouseEvent","contextMenu","first_event","getFirstEvent","onMenuCollapseAll","onMenuNodeEdit","showMenuNodeOptionalInputs","optional_inputs","onGetInputs","onMenuNodeInputs","showMenuNodeOptionalOutputs","optional_outputs","onGetOutputs","skip_repeated_outputs","onMenuNodeOutputs","inner_clicked","onShowMenuNodeProperties","getPropertyPrintableValue","decodeHTML","showEditPropertyValue","allow_html","onResizeNode","node_left","node_right","onShowPropertyEditor","dialog","inner","offsetx","modified","prompt_box","value_element","search_limit","search_box","timeout_close","refreshHelper","forward","nextSibling","previousSibling","scrollIntoView","behavior","addResult","inner_test_filter","filtered","help","dataset","unescape","layerY","maxHeight","input_html","createDialog","onclose","createPanel","header","closable","title_element","footer","addHTML","on_footer","addButton","addSeparator","str_value","propname","innerChange","elem_that","desc_value","SELECTED_NODE","panel","inner_refresh","onAddPropertyToPanel","onShowCustomPanelInfo","old_panel","panels","querySelectorAll","onMenuNodeCollapse","onMenuNodePin","onMenuNodeMode","onMenuNodeColors","onMenuNodeShapes","onMenuNodeRemove","removable","onMenuNodeToSubgraph","buildFromNodes","onMenuNodeClone","clonable","brown","getCanvasMenuOptions","getMenuOptions","getExtraMenuOptions","getNodeMenuOptions","onGetNodeMenuOptions","getGroupMenuOptions","menu_info","active_node","getSlotMenuOptions","_slot","locked","nameLocked","CanvasRenderingContext2D","radius","radius_low","top_left_radius","top_right_radius","bottom_left_radius","bottom_right_radius","quadraticCurveTo","compareObjects","colorToString","growBounding","isInsideBounding","hex2num","int1","int2","hex_alphabets","num2hex","triplet","inner_onclick","close_parent","ignore_item_callbacks","autoopen","onclick_callback","ignore_parent_menu","isCursorOverElement","event_name","initCustomEvent","__events","getTopMenu","extendClass","__lookupGetter__","__defineGetter__","__lookupSetter__","__defineSetter__","sampleCurve","pn","local_f","line_color","inactive","localpos","max_dist","getCloserPoint","curvepos","_nearest","is_edge_point","min_dist","closest","vec2","Time","_is_subgraph","onSubgraphTrigger","onSubgraphNewInput","onSubgraphRenamedInput","onSubgraphTypeChangeInput","onSubgraphRemovedInput","onSubgraphNewOutput","onSubgraphRenamedOutput","onSubgraphTypeChangeOutput","onSubgraphRemovedOutput","name_in_graph","name_widget","type_widget","value_widget","GraphOutput","ConstantNumber","ConstantBoolean","ConstantString","ConstantObject","_object","ConstantFile","ConstantData","ConstantArray","SetArray","ArrayElement","TableElement","ObjectProperty","ObjectKeys","SetObject","MergeObjects","_result","varname","LITEGRAPH","DownloadData","downloadAsFile","Watch","Cast","Console","Alert","NodeScript","_func","num_inputs","num_outputs","oldname","min_x","updateType","_url","GRAPH","GLOBALSCOPE","click","revokeObjectURL","compileCode","code_low","forbidden_words","LogEvent","TriggerEvent","only_on_change","Sequencer","render_box","FilterEvent","equal_to","has_property","property_equal_to","EventBranch","EventCounter","DelayEvent","_pending","TimerEvent","time","last_interval","DataStore","_last_value","must_resend","time_in_ms","dt","onStart","on_color","off_color","WidgetButton","WidgetToggle","WidgetNumber","old_y","_remainder","_precision","mouse_captured","WidgetCombo","WidgetKnob","WidgetSliderGUI","WidgetHSlider","WidgetProgress","WidgetText","fontsize","align","glowSize","decimals","WidgetPanel","bgcolorTop","bgcolorBottom","shadowSize","local_pos","pixels_threshold","markers_color","steps","center_x","center_y","angle","cos","sin","oldmouse","last_ctx","createGradient","lineargradient","GamepadInput","gamepad_index","threshold","_left_axis","_right_axis","_triggers","_previous_buttons","_current_buttons","gamepad","getGamepad","xbox","axes","hatmap","lb","rb","rt","back","ls","rs","mapping_array","getGamepads","webkitGetGamepads","mozGetGamepads","gamepads","xbox_mapping","hat","pressed","was_pressed","la","ra","Converter","Bypass","ToNumber","MathRange","MathRand","MathNoise","MathSpikes","_remaining_time","_blink_time","MathClamp","MathLerp","MathAbs","MathFloor","MathFrac","MathSmoothStep","MathScale","Gate","MathAverageFilter","_current","MathTendTo","MathOperation","MathCompare","MathCondition","OP","MathBranch","MathAccumulate","MathTrigonometry","bgImageUrl","MathFormula","formula","code_widget","Math3DVec2ToXY","Math3DXYToVec2","Math3DVec3ToXYZ","Math3DXYZToVec3","Math3DVec4ToXYZW","Math3DXYZWToVec4","_last_v","in_min","in_max","out_min","out_max","smooth","f_min","iterations","octaves","amp","seed","speed","total_amp","persistence","max_time","min_time","getCode","v1","v2","edge0","edge1","num_samples","avr","samples","old","V","inc","increment","amplitude","tan","asin","acos","atan","_func_code","Math3DMat4","R_in_degrees","mat4","_must_update","Math3DOperation","vec3","Math3DVec3Scale","Math3DVec3Length","Math3DVec3Normalize","Math3DVec3Lerp","Math3DVec3Dot","temp_quat","temp_mat4","temp_vec3","Q","R","DEG2RAD","quat","fromEuler","fromQuat","multiply","mul","div","dot","cross","glMatrix","Math3DQuaternion","Math3DRotation","fromValues","MathEulerToQuat","euler","use_yaw_pitch_roll","_degs","MathQuatToEuler","Math3DRotateVec3","vec","Math3DMultQuat","Math3DQuatSlerp","Math3DRemapRange","range_min","range_max","target_min","target_max","_clamped","setAxisAngle","toEuler","transformQuat","slerp","StringToTable","_str","_last_separator","Selector","Sequence","sequence","seq","current_sequence","GraphicsPlot","GraphicsImage","ColorPalette","colorA","colorB","colorC","colorD","ImageFrame","ImageFade","fade","ImageCrop","CanvasNode","autoclear","DrawImageNode","DrawRectangleNode","ImageVideo","use_proxy","ImageWebcam","filterFacingMode","facingMode","dirty","onWidget","videoWidth","videoHeight","showElement","createCanvas","_video_url","loadVideo","_video","onStop","muted","autoplay","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","playPause","paused","is_webcam_open","openStream","mediaDevices","getUserMedia","_waiting_confirmation","audio","video","streamReady","_webcam_stream","closeStream","tracks","getTracks","localMediaStream","srcObject","onloadedmetadata","LGraphTexture","image_preview_size","LGraphTexturePreview","flipY","LGraphTextureSave","generate_mipmaps","LGraphTextureOperation","pixelcode","uvcode","DEFAULT","has_error","LGraphTextureShader","u_value","u_color","pixel_shader","_uniforms","vec4","in_texture","texSize","LGraphTextureScaleOffset","LGraphTextureWarp","u_texture","u_textureB","u_factor","u_scale","u_offset","LGraphTextureToViewport","additive","antialiasing","disable_alpha","gamma","LGraphTextureCopy","LGraphTextureDownsample","LGraphTextureResize","LGraphTextureAverage","use_previous_frame","high_quality","u_mipmap_offset","_luminance","LGraphTextureMinMax","_max","_textures_chain","LGraphTextureTemporalSmooth","LGraphTextureLinearAvgSmooth","frames_interval","u_samples","u_isamples","LGraphImageToTexture","LGraphTextureLUT","intensity","texture","_shader","Shader","SCREEN_VERTEX_SHADER","LGraphTextureEncode","num_row_symbols","symbol_size","brightness","colorize","invert","u_row_simbols","u_simbol_size","u_res","LGraphTextureChannels","LGraphChannelsTexture","G","u_textureR","u_textureG","u_textureA","LGraphTextureColor","_tex_color","LGraphTextureGradient","texture_size","u_angle","u_colorA","u_colorB","LGraphTextureMix","size_from_biggest","u_textureMix","u_mix","LGraphTextureEdges","LGraphTextureDepthRange","only_depth","high_precision","u_distance","u_range","u_camera_planes","LGraphTextureLinearDepth","u_ires","LGraphTextureBlur","preserve_aspect","FXGlow","dirt_texture","dirt_factor","_textures","u_intensity","u_glow_texture","u_threshold","u_texel_size","LGraphTextureGlow","fx","LGraphTextureKuwaharaFilter","LGraphTextureXDoGFilter","sigma","epsilon","phi","LGraphTextureWebcam","texture_name","LGraphLensFX","LOW","LGraphTextureFromData","channels","LGraphTextureCurve","split_channels","_curve_texture","u_curve","_points","RGB","curve_editor","curve_offset","LGraphExposition","exposition","u_exposition","LGraphToneMapping","average_lum","lum_white","u_lumwhite2","u_igamma","u_average_lum","LGraphTexturePerlin","_texture","u_persistence","u_seed","u_viewport","LGraphTextureCanvas2D","default_code","use_html_canvas","_temp_texture","LGraphTextureMatte","key_color","slope","LGraphCubemapToTexture2D","yaw","loadTextureCallback","UNDEFINED","PASS_THROUGH","COPY","HIGH","REUSE","MODE_VALUES","reuse","getTexturesContainer","textures","loadTexture","Texture","fromURL","getTexture","tex","getTargetTexture","tex_type","UNSIGNED_BYTE","HIGH_PRECISION_FORMAT","LINEAR","getTextureType","ref_texture","getWhiteTexture","_white_texture","fromMemory","wrap","REPEAT","NEAREST","getNoiseTexture","_noise_texture","noise","fromDDSInMemory","_drop_texture","_last_tex","setParameter","TEXTURE_MAG_FILTER","fullpath","onResourceRenamed","new_name","_last_preview_tex","_canvas","tex_canvas","generateLowResTexturePreview","cloneCanvas","temp_tex","DEPTH_COMPONENT","_preview_temp_tex","minFilter","copyTo","_preview_canvas","toCanvas","getResources","replaceCode","allow_preview","getPreviewTexture","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_LINEAR","generateMipmap","texture_type","unbind","storeTexture","presets","_tex","texB","shader","_shader_code","final_pixel_code","UV_CODE","PIXEL_CODE","dumpErrorToConsole","drawTo","DEPTH_TEST","CULL_FACE","BLEND","mesh","Mesh","getScreenQuad","uniforms","registerPreset","onInspect","addCombo","getShader","uniformInfo","already","loc","samplers","tex_slot","in_tex","setUniform","_prev_viewport","blendFunc","SRC_ALPHA","ONE","ONE_MINUS_SRC_ALPHA","old_viewport","viewport_data","new_view","getViewport","aa_pixel_shader","uViewportSize","inverseVP","_gamma_shader","gamma_pixel_shader","toViewport","isPowerOfTwo","magFilter","TEXTURE_2D","releaseTemporary","getTemporary","updateAverage","onPreRenderExecute","u_samples_a","u_samples_b","FLOAT","_temp_pot2_texture","mipmap_offset","pixel","getPixels","HALF_FLOAT","HALF_FLOAT_OES","_temp_texture2","_shader_copy","pixel_shader_copy","_shader_avg","pixel_shader_avg","_temp_texture_out","shader_copy","shader_avg","gltexture","uploadImage","lut_tex","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","bindTexture","u_amount","symbols_tex","u_symbol_size","u_brightness","u_invert","u_colorize","texA","_channels","masks","u_mask","texR","texG","sqrDist","texMix","_shader_tex","MIX_TEX","_shader_factor","u_isize","half_float_ext","_shader_onlydepth","ONLY_DEPTH","planes","near_far_planes","LS","Renderer","_main_camera","DEPTH_STENCIL","max_iterations","_final_texture","aspect","camera_aspect","applyBlur","applyFX","output_texture","glow_texture","average_texture","texture_info","_cut_shader","cut_pixel_shader","currentDestination","blit","currentSource","texel_size","u_delta","scale_pixel_shader","final_texture","_dirt_final_shader","_final_shader","final_pixel_shader","USE_DIRT","_average_texture","_glow_texture","max_radius","_shaders","RADIUS","u_resolution","u_iResolution","_xdog_shader","xdog_pixel_shader","cvsWidth","cvsHeight","_video_texture","LUMINANCE","uploadData","updateCurve","curve_texture","curves","channel_line_colors","channel","globalCompositeOperation","exp_input","u_average_texture","_shader_texture","AVG_TEXTURE","u_octaves","u_amplitude","executeDraw","func_context","_ctx","clearColor","COLOR_BUFFER_BIT","u_key_color","u_slope","TEXTURE_CUBE_MAP","cubemapToTexture2D","SHADERNODES_COLOR","LGShaders","Shaders","GLSL_types_const","GLSL_types","GLSL_functions_desc","GLSL_functions","GLSL_functions_name","parseGLSLDescriptions","ALL_TYPES","registerShaderNode","getInputLinkID","getOutputLinkID","getShaderNodeVarName","valueToGLSL","varToTypeGLSL","input_type","output_type","convertVarToGLSLType","target_type","LGShaderContext","_functions","_codeparts","_uniform_value","addUniform","addFunction","addCode","hook","destinations","computeCodeBlocks","extra_uniforms","vertexout","fragmentout","propagateDestination","functions","blocks","computeShaderCode","vs_code","replaceCodeUsingContext","vs_template","fs_code","fs_template","computeShader","finalcode","_shader_error","updateShader","fillUniforms","ShaderContext","LGraphShaderGraph","output_node_type","intex","inputs_y","onDrawSubgraphBackground","LGraphShaderUniform","onGetCode","shader_destination","getOutputVarName","LGraphShaderAttribute","LGraphShaderSampler2D","texname","buffer_names","uvs","LGraphShaderConstant","updateWidgets","link_name","LGraphShaderVec2","varmodes","varmode","inlink","outlink","LGraphShaderVec3","LGraphShaderVec4","LGraphShaderFragColor","LGraphShaderOperation","inlinks","base_type","param_code","LGraphShaderFunc","func_desc","LGraphShaderSnippet","inlinkA","inlinkB","inA_type","inB_type","funcname","func_code","LGraphShaderRand","LGraphShaderNoise","NOISE_TYPES","intype","shader_functions","LGraphShaderTime","LGraphShaderDither","dither_func","dither_values","LGraphShaderRemap","minv","min_value","maxv","max_value","minv2","min_value2","maxv2","max_value2","index2","func_name","node_ctor","clearDestination","dest_name","inputNode","sampler","outnode","view_matrix","projection_matrix","viewprojection_matrix","model_matrix","global_uniforms","u_view","u_projection","u_viewprojection","u_model","generateGeometryId","LGraphPoints3D","num_points","generate_normals","SPHERE","normals","geometry","vertices","_old_obj","_last_radius","findRandomTriangle","areas","imin","imid","imax","LGraphPointsToInstances","autoupdate","matrices","first_time","LGraphGeometryTransform","_last_geometry_id","_last_version","_last_key","LGraphGeometryPolygon","sides","geometry_id","last_info","LGraphGeometryExtrude","top_cap","bottom_cap","_last_geo_version","LGraphGeometryEval","execute_every_frame","LGraphConnectPoints","max_connections","probability","my_version","LGraphToGeometry","last_mesh","LGraphGeometryToMesh","LGraphRenderMesh","primitive","TRIANGLES","LGraphGeometryPrimitive","subdivisions","LGraphRenderPoints","point_size","fixed_size","u_point_size","u_perspective","u_point_perspective","LGraphRender","onRequestCameraMatrices","RECTANGLE","CIRCLE","CUBE","HEMISPHERE","INSIDE_SPHERE","OBJECT","OBJECT_UNIFORMLY","OBJECT_INSIDE","_old_obj_version","updatePoints","generatePoints","polarToCartesian","generateSphericalNormals","generateSphere","generateHemisphere","generateInsideCircle","generateInsideSphere","generateFromObject","generateFromInsideObject","u","theta","cbrt","sinTheta","cosTheta","sinPhi","cosPhi","evenly","mesh_normals","indices","vertexBuffers","indexBuffers","triangles","num_triangles","total_area","P1","P2","P3","aL","bL","cL","sqrt_s","af","cf","aabb","getBoundingBox","octree","Octree","hit","testRay","ALL","NORMAL","VERTICAL","SPHERICAL","RANDOM","RANDOM_VERTICAL","geo","_geometry_id","updateInstances","FRONT","front","setTranslation","normal","typedArrayToArray","updateGeometry","old_vertices","multiplyVec3","normal_model","transpose","old_normals","gen_uvs","coords","_geo","extrudeGeometry","tempC","tempD","new_vertices","npos","x2","y2","z2","updateMesh","buffer_data","common_buffers","mesh_buffer","upload","DYNAMIC_DRAW","ELEMENT_ARRAY_BUFFER","ARRAY_BUFFER","addBuffer","updateBoundingBox","PRIMITIVE_VALUES","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLE_FAN","TRIANGLE_STRIP","shaders","vertex_shader_code","fragment_shader_code","USE_TEXTURE","depthMask","VALID","_mesh","cube","plane","xz","cylinder","sphere","lat","circle","slices","hemi","icosahedron","cone","USE_TEXTURED_POINTS","USE_POINTS","LGraphFXLens","aberration","distortion","pixel_data","LGraphFXBokeh","LGraphFXGeneric","LGraphFXVigneting","u_aberration","u_distortion","u_blur","blurred_tex","mask_tex","shape_tex","first_shader","_first_shader","_first_pixel_shader","second_shader","_second_shader","_second_vertex_shader","_second_pixel_shader","points_mesh","_points_mesh","_spacing","createPointsMesh","screen_mesh","min_light","u_texture_blur","u_texsize","u_shape","u_alpha","u_pointSize","u_itexsize","nwidth","nheight","ny","dx","dy","nx","vertices2D","pixel_shader_code","camera_planes","camera","_current_camera","near","far","u_noise","u_size","u_rand","u_value1","u_value2","pixel_shader_halftone","pixel_shader_pixelate","pixel_shader_lowpalette","pixel_shader_noise","pixel_shader_gamma","MIDI_COLOR","MIDIEvent","cmd","setup","fromJSON","raw_data","midiStatus","midiCommand","NOTEON","velocity","NOTEOFF","cmd_str","notes","note_to_index","D","E","toNoteString","octave","getPitch","computePitch","getCC","getCCValue","getPitchBend","computePitchBend","setCommandFromString","computeCommandFromString","KEYPRESSURE","CONTROLLERCHANGE","PROGRAMCHANGE","CHANNELPRESSURE","PITCHBEND","TIMETICK","skip_octave","NoteStringToPitch","pitch","toHexString","toJSON","object_class","commands_short","commands_reversed","MIDIInterface","on_ready","requestMIDIAccess","cc","input_ports","input_ports_info","output_ports","output_ports_info","onMIDISuccess","onMIDIFailure","LGMIDIIn","_last_midi_event","_current_midi_event","midi","_midi","_waiting","LGMIDIOut","getMIDIOutputs","LGMIDIShow","LGMIDIFilter","_learning","LGMIDIEvent","midi_event","gate","LGMIDICC","LGMIDIGenerator","notes_pitches","processScale","sequence_index","LGMIDITranspose","amount","LGMIDIQuantize","valid_notes","offset_notes","LGMIDIFromFile","_current_time","_playing","MidiParser","LGMIDIPlay","volume","AudioSynth","Synth","synth","instrument","createInstrument","LGMIDIKeys","num_octaves","start_octave","midiAccess","updatePorts","it_value","port_info","manufacturer","num_input_ports","num_output_ports","openInputPort","input_port","onmidimessage","updateState","on_message","parseMsg","sendMIDI","midi_data","output_port","onMIDIEvent","default_ports","_current_scale","loadMIDIFile","current_time","track","_last_pos","deltaTime","midi_cmd","num_keys","key_width","key_height","key_info","getKeyIndex","start_note","LGAudio","LGAudioSource","gain","playbackRate","_loading_audio","_audiobuffer","_audionodes","_last_sourcenode","getAudioContext","audionode","createGain","graphnode","loadSound","LGAudioMediaSource","_media_stream","LGAudioAnalyser","fftSize","minDecibels","maxDecibels","smoothingTimeConstant","createAnalyser","_freq_bin","_time_bin","LGAudioGain","LGAudioConvolver","impulse_src","createConvolver","LGAudioDynamicsCompressor","knee","reduction","attack","release","createDynamicsCompressor","LGAudioWaveShaper","createWaveShaper","LGAudioMixer","gain1","gain2","audionode1","audionode2","LGAudioADSR","LGAudioDelay","delayTime","createDelay","LGAudioBiquadFilter","frequency","detune","createBiquadFilter","LGAudioOscillatorNode","createOscillator","LGAudioVisualization","continuous","mark","_last_buffer","LGAudioBandSignal","band","LGAudioScript","default_function","createScriptProcessor","processCode","_bypass_function","onaudioprocess","LGAudioDestination","_audio_context","AudioContext","webkitAudioContext","onmessage","onended","oncomplete","audionodeA","audionodeB","disconnect","changeAllAudiosConnections","origin_audionode","getAudioNodeInOutputSlot","target_audionode","getAudioNodeInInputSlot","connection","connected","local_audionode","createAudioNodeWrapper","class_object","old_func","cached_audios","onProcessAudioURL","responseType","decodeAudioData","onError","playBuffer","stopAllSounds","onPause","pauseAllSounds","onUnpause","unpauseAllSounds","_dropped_url","started","suspend","createBufferSource","_request","abort","audiosource_node","createMediaStreamSource","bufferLength","frequencyBinCount","getByteFrequencyData","getByteTimeDomainData","onRemove","loadImpulse","_impulse_buffer","_loading_impulse","curve","setWaveShape","current_gate","cancelScheduledValues","setValueAtTime","linearRampToValueAtTime","binfreq","sampleRate","_freqs","_script","_old_code","audioProcessingEvent","inputBuffer","outputBuffer","numberOfChannels","inputData","getChannelData","outputData","sample","LGWebSocket","room","only_send_changes","_ws","_last_sent_data","_last_received_data","LGSillyClient","room_widget","setRoom","connectSocket","_server","SillyClient","readyState","WebSocket","OPEN","only_changes","onopen","room_name","is_connected","prev_data","is_equal","sendMessage","on_close","_final_url","Lazy","CodeActionAction","CodeActionMenu","_contextMenuService","_visible","_showingActions","_keybindingResolver","CodeActionKeybindingResolver","getKeybindings","codeActions","actionsToShow","includeDisabledActions","getDomNode","menuActions","getMenuActions","_toCoords","getResolver","showContextMenu","domForShadowRoot","onHide","autoSelectFirstItem","getKeyBinding","toCodeActionAction","onSelectCodeAction","_getAdditionalMenuItems","revealPosition","cursorCoords","getScrolledVisiblePosition","editorCoords","_keybindingProvider","allCodeActionBindings","codeActionCommands","resolvedKeybinding","fromUser","binding","bestKeybindingForCodeAction","reduceRight","LightBulbState","Hidden","Showing","widgetPosition","LightBulbWidget","_quickFixActionId","_preferredFixActionId","_keybindingService","_onClick","addContentWidget","editorModel","pad","monitor","_updateLightBulbTitleAndIcon","onDidUpdateKeybindings","removeContentWidget","atPosition","isFolded","effectiveLineNumber","preference","_posPref","layoutContentWidget","hasAutoFix","preferredKb","lookupKeybinding","getLabel","editorBackgroundColor","editorLightBulbForegroundColor","editorLightBulbAutoFixForegroundColor","_CodeActionUi_disposed","__classPrivateFieldSet","__classPrivateFieldGet","CodeActionUi","quickFixActionId","preferredFixActionId","_activeCodeActions","_codeActionWidget","createInstance","applyCodeAction","_lightBulbWidget","showCodeActionList","rawValue","validActionToApply","tryGetValidActionToApply","invalidAction","getInvalidActionThatWouldHaveBeenApplied","MessageController","showMessage","notAvailableMessage","isVisible","autoApply","_CodeActionModel_isDisposed","CodeActionsState","SUPPORTED_CODE_ACTIONS","CodeActionOracle","_markerService","_signalChange","_autoTriggerTimer","onMarkerChanged","_onMarkerChanges","_onCursorChange","_getRangeOfSelectionUnlessWhitespaceEnclosed","_createEventAndSignalChange","resources","markerRange","_getRangeOfMarker","Triggered","_cancellablePromise","emptyCodeActionSet","CodeActionModel","_progressService","_codeActionOracle","_onDidChangeState","onDidChangeState","_supportedCodeActions","_update","onDidChangeModelLanguage","supportedActions","showWhile","skipNotify","contextKeyForSupportedActions","argsSchema","QuickFixController","markerService","progressService","_instantiationService","_ui","QuickFixAction","Id","AutoFixAction","retrigger","_applyCodeAction","_trigger","closeMessage","triggerPosition","invokeFunction","bulkEditService","IBulkEditService","commandService","telemetryService","notificationService","codeActionTitle","codeActionKind","codeActionIsPreferred","ResourceEdit","asMessage","triggerCodeActionsForEditorSelection","controller","manualTriggerAtCurrentPosition","_accessor","CodeActionCommand","userArgs","RefactorAction","SourceAction","OrganizeImportsAction","FixAllAction","FocusZoneDirection","FocusZoneTabbableElements","none","inputOnly","numberHash","initialHashVal","stringHash","objectHash","booleanHash","bits","totalBits","mask","leftPad","bufferOrValue","bitsize","ArrayBuffer","StringSHA1","_h0","_h1","_h2","_h3","_h4","_buff","_buffDV","DataView","_buffLen","_totalLen","_leftoverHighSurrogate","_finished","buff","buffLen","leftoverHighSurrogate","_push","_step","_wrapUp","ml","setUint32","bigBlock32","_bigBlock32","getUint32","labelWithIconsRegex","renderLabelWithIcons","textStart","textStop","renderIcon","IStandaloneThemeService","stringifyCanon","stringifyCache","known","WeakSet","passes","keysByJSON","admit","isKnown","shallowCopy","original","lookupArray","sortedKeys","sorted","canonicalStringify","resetCanonicalStringify","canonical","ObjectCanon","isApolloError","graphQLErrors","clientErrors","networkError","extraInfo","generateErrorMessage","ApolloError","EventGroup","_uniqueId","_parent","_eventRecords","raise","eventArgs","bubbleEvent","retVal","_isElement","createEventObject","evObj","fireEvent","__events__","eventRecords","eventRecordList","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","onAll","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","safeProcess","sandboxProcess","arch","cwd","defaultMakeData","weakness","makeData","lookup","getChildTrie","isObjRef","weak","strong","Trie","defaultDispose","newest","oldest","older","newer","clean","toArray","collection","maybeUnsubscribe","entryOrDep","emptySetPool","assert","optionalMessage","valueGet","childValues","dirtyChildren","recomputing","Entry","mightBeDirty","rememberParent","recompute","forgetChildren","parentEntrySlot","withValue","recomputeNewValue","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","forget","dependOn","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","valueIs","removeDirtyChild","dc","EntryMethods","depsByKey","depend","entryMethodName","EditorType","MOUSE_CURSOR_TEXT_CSS_CLASS_NAME","_console","alreadyWarned","warnOnce","_len2","_key2","loadNamespaces","i18n","ns","isInitialized","initialized","hasLoadedNamespace","lng","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","bindI18n","backend","isLanguageChangingTo","hasResourceBundle","genericMessage","framesToPop","InvariantError","verbosityLevels","verbosityLevel","wrapConsoleMethod","ILabelService","IDialogService","_rgbaOrHexString","seal","fun","thisValue","Func","arr2","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","addToSet","lcElement","newObject","lookupGetter","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","ATTR_NAME","currentScript","hasAttribute","policyName","createHTML","html$$1","purify","createDOMPurify","DOMPurify","removed","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","createNodeIterator","createDocumentFragment","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","commonSvgAndHTMLElements","_forceRemove","outerHTML","_removeAttribute","attribute","getAttributeNode","_initDocument","leadingWhitespace","dirtyPayload","parseFromString","createDocument","createTextNode","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","attributes","_isNode","_executeHook","entryPoint","_sanitizeElements","allowedTags","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","sanitize","importedNode","returnNode","toStaticHTML","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","sanitizeRenderedMarkdown","renderedMarkdown","allowedSchemes","getSanitizerOptions","dompurify","MarkdownRenderer","_openerService","_onDidRenderAsync","onDidRenderAsync","markedOptions","signalInnerHTML","_uriMassage","uris","revive","_href","isDomUri","withInnerHTML","marked","image","hrefAsUri","paragraph","codeBlockRenderer","span","asyncRenderCallback","actionHandler","onAuxClick","sanitizer","renderMarkdown","_getRenderOptions","disposeables","languageAlias","getModeIdForLanguageName","triggerMode","getPromise","tokenization","_ttpTokenizer","tokenizeToString","applyFontInfoSlow","codeBlockFontFamily","fromUserGesture","allowContributedOpeners","allowCommands","setRTL","_rtl","getRTL","getStyleOptions","thunk","ResourceTextEdit","newUri","oldUri","isWorkspaceFileEdit","ResourceFileEdit","textEdit","oldResource","newResource","_messageWidget","_messageListeners","MESSAGE_VISIBLE","_editorListener","onDidAttemptReadOnlyEdit","_onDidAttemptReadOnlyEdit","bounds","MessageWidget","onDidBlurEditorText","fadeOut","MessageCommand","bindToContribution","allowEditorOverflow","suppressMouseDown","revealLinesInCenterIfOutsideViewport","anchorTop","anchorBottom","messageWidget","failValidation","mapper","payload","objectName","MS_ICON","getStyles","isPlaceholder","isImage","imageContainer","SpinnerSize","SpinnerType","staticArguments","inlineSuggestCommitId","GhostText","additionalReservedLineCount","lastPart","transformer","PositionOffsetTransformer","offsetEdits","getOffset","lineStartOffsetByLineIdx","GhostTextPart","BaseGhostTextWidgetModel","_expanded","inlineCompletionToGhostText","inlineCompletion","cursorPosition","previewSuffixLength","sourceLine","sourceIndentationLength","suggestionTouchesIndentation","suggestionAddedIndentationLength","replacedIndentation","rangeThatDoesNotReplaceIndentation","suggestionWithoutIndentationChange","valueToBeReplaced","cachingDiff","filteredChanges","previewStartInCompletionText","insertColumn","modifiedEnd","nonPreviewTextEnd","nonPreviewText","italicText","lastRequest","originalValue","newValue","getMaxCharCode","maxCharCode","getUniqueCharCode","characters","Int32Array","elements1","elements2","smartDiff","InlineCompletionsModel","completionSession","active","onDidExecuteCommand","handleUserInput","onDidType","session","isValid","onDidBlurEditorWidget","startSessionIfTriggered","ghostText","minReservedLineCount","setExpanded","scheduleAutomaticUpdate","Automatic","Explicit","ensureUpdateWithExplicitContext","InlineCompletionsSession","takeOwnership","commitCurrentCompletion","showNextInlineCompletion","showPreviousInlineCompletion","hasMultipleInlineCompletions","shouldUpdate","initialTriggerKind","updateOperation","updateSoon","currentlySelectedCompletionId","lastCompletionItem","currentCompletion","sourceInlineCompletion","sourceProvider","handleItemDidShow","sourceInlineCompletions","semanticId","fixAndGetIndexOfCurrentSelection","newIdx","currentCachedCompletion","toLiveInlineCompletion","provideInlineCompletions","selectedSuggestionInfo","UpdateOperation","commit","clearAndLeak","executeEdits","replaceMove","SynchronizedInlineCompletionsCache","completionsSource","decorationIds","CachedInlineCompletion","synchronizedRange","getDefaultRange","freeInlineCompletions","results","itemsByHash","minimizeInlineCompletion","valueToReplace","commonPrefixLen","remainingValueToReplace","commonSuffixLen","SuggestWidgetInlineCompletionProvider","suggestControllerPreselector","isSuggestWidgetVisible","isShiftKeyPressed","_isActive","_currentInlineCompletion","setInactiveDelayed","suggestController","SuggestController","registerSelector","suggestItems","normalizedItemToPreselect","findMaxBy","suggestItem","rangeToTest","inlineSuggestItem","suggestionToInlineCompletion","normalizedSuggestItem","isBoundToSuggestWidget","onDidTrigger","onDidShow","onDidHide","selectedItemAsInlineCompletion","newActive","newInlineCompletion","getInlineCompletion","shouldFire","getFocusedItem","stopForceRenderingAbove","forceRenderingAbove","toggleMode","additionalTextEdits","SnippetSession","adjustWhitespace","getOverwriteInfo","overwriteBefore","overwriteAfter","SuggestWidgetPreviewModel","suggestionInlineCompletionSource","updateCacheSoon","newGhostText","isSuggestionPreviewEnabled","suggestWidgetState","originalInlineCompletion","augmentedCompletion","finalCompletion","inlineCompletionPreviewLength","toGhostText","DelegatingModel","hasCachedGhostText","currentModelRef","cachedGhostText","targetModel","GhostTextModel","sharedCache","SharedInlineCompletionCache","suggestWidgetAdapterModel","inlineCompletionsModel","updateModel","setTargetModel","setActive","hoverRange","activeInlineCompletionsModel","commitCurrentSuggestion","showNext","showPrevious","ttPolicy","GhostTextWidget","partsWidget","DecorationsWidget","additionalLinesWidget","AdditionalLinesWidget","viewMoreContentWidget","viewZoneId","inlineTexts","additionalLines","addToAdditionalLines","textBufferLine","hiddenTextStartColumn","setParts","updateLines","renderViewMoreLines","firstLineText","remainingLinesLength","spacer","newline","ViewMoreLinesContentWidget","hiddenText","colorTheme","opaque","currentLinePrefix","hiddenTextDecorations","shouldUseInjectedText","contentText","renderSingleLineText","decorationType","service","keyPrefix","keyCounter","registerDecorationType","removeDecorationType","resolveDecorationOptions","lineStart","newLine","visibleColumnsByColumns","curCol","_viewZoneId","lineData","createEmpty","trustedhtml","renderLines","GhostTextController","triggeredExplicitly","activeController","updateModelController","suggestOptions","inlineSuggestOptions","ActiveGhostTextController","activeModel","shouldShowHoverAt","shouldShowHoverAtViewZone","triggerInlineCompletion","commitInlineCompletion","hideInlineCompletion","inlineSuggestionVisible","inlineSuggestionHasIndentation","inlineSuggestionHasIndentationLessThanTabSize","GhostTextContextKeys","inlineCompletionVisible","inlineCompletionSuggestsIndentation","inlineCompletionSuggestsIndentationLessThanTabSize","contextKeys","updateContextKeys","startsWithIndentation","startsWithIndentationLessThanTabSize","firstNonWsIdx","GhostTextCommand","commitInlineSuggestionAction","ShowNextInlineSuggestionAction","ShowPreviousInlineSuggestionAction","TriggerInlineSuggestionAction","currentContext","MISSING_VALUE","idCounter","globalKey","Slot","hasValue","slots","saved","noContext","parentEditor","getRawOptions","overflowWidgetsDomNode","getOverflowWidgetsDomNode","_parentEditor","_overwriteOptions","_onParentConfigurationChanged","CodeEditorWidget","ServiceCollection","instanceOrDescriptor","ITextResourceConfigurationService","ITextResourcePropertiesService","_vendorSettings","kebabRules","rulePairs","autoPrefixNames","prefixRules","vendorSettings","nav","isWebkit","isMoz","isOpera","isMs","getVendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","flipQuad","numberVal","negateNum","partStart","parens","TextAreaSyntethicEvents","CopyOptions","forceCopyWithSyntaxHighlighting","InMemoryClipboardMetadataManager","_lastState","lastCopiedValue","pastedText","TextAreaInput","_onFocus","_onBlur","_onKeyDown","_onKeyUp","_onCut","onCut","_onPaste","onPaste","_onType","onType","_onCompositionStart","onCompositionStart","_onCompositionUpdate","onCompositionUpdate","_onCompositionEnd","onCompositionEnd","_onSelectionChangeRequest","onSelectionChangeRequest","_textArea","TextAreaWrapper","_asyncTriggerCut","_asyncFocusGainWriteScreenReaderContent","writeScreenReaderContent","_textAreaState","_selectionChangeListener","_hasFocus","_isDoingComposition","_nextCommand","lastKeyDown","revealDeltaColumns","_setAndWriteTextAreaState","deduceAndroidCompositionInput","oldState","readFromTextArea","deduceComposition","typeInput","setIgnoreSelectionChangeTime","deduceInput","deduceInputFromTextAreaValue","_firePaste","_ensureClipboardGetsEditorSelection","ClipboardEventUtils","canUseTextData","getTextData","pastePlainText","hadFocus","_setHasFocus","previousSelectionChangeEventTime","delta1","delta2","getIgnoreSelectionChangeTime","resetSelectionChangeTime","newSelectionStart","newSelectionEnd","_newSelectionStartPosition","deduceEditorPosition","newSelectionStartPosition","deduceModelPosition","_newSelectionEndPosition","newSelectionEndPosition","refreshFocusState","newHasFocus","_installSelectionChangeListener","textAreaState","collapseSelection","writeToTextArea","getScreenReaderContent","dataToCopy","getDataToCopy","storedMetadata","isFromEmptySelection","setTextData","clipboardData","getData","rawmetadata","_ignoreSelectionChangeTime","selectionDirection","currentIsFocused","HighlightedLabel","supportIcons","highlights","didEverRender","escapeNewLines","extraClasses","total","_createProxyChain","plugins","itemCtx","startAt","srcPlugins","_objectSpread","i18nInstance","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","getI18n","initReactI18next","init","setDefaults","react","setI18n","makeReference","__ref","isReference","isDocumentNode","valueToObjectRepresentation","argObj","variables","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","fields","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","field","directivesObj","directives","directive","getStoreKeyName","KNOWN_DIRECTIVES","fieldName","filterKeys","completeFieldName","stringifiedArgs","setStringify","stringifyReplacer","argumentsObjectFromField","resultKeyNameFromField","getTypenameFromResult","selectionSet","fragmentMap","__typename","isField","typename","isInlineFragment","uriGetComparisonKey","SingleModelEditStackData","beforeVersionId","afterVersionId","beforeEOL","afterEOL","afterCursorState","textChanges","compressConsecutiveTextChanges","necessarySize","_writeSelectionsSize","writeSize","_writeSelections","write","alternativeVersionId","getAlternativeVersionId","getModelEOL","_readSelections","changeCount","SingleModelEditStackElement","deserialize","_applyUndo","_applyRedo","MultiModelEditStackElement","editStackElements","_isOpen","_editStackElementsArr","_editStackElementsMap","editStackElement","prepareUndoRedo","setModel","canAppend","heapSize","isEditStackElement","undoRedoService","getLastElement","removeElements","newElement","pushElement","_getOrCreateEditStackElement","_computeCursorState","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","argv","removeAllListeners","prependListener","prependOnceListener","chdir","umask","beforeVisibleColumn","beforeColumn","afterVisibleColumn","columnFromVisibleColumn","_unsupportedIterableToArray","minLen","noOutline","iconStyle","flexShrink","buttonHighContrastFocus","userSelect","textDecoration","flexWrap","justifyContent","alignItems","flexGrow","ScrollState","_scrollStateBrand","rawScrollLeft","rawScrollTop","useRawScrollPositions","inSmoothScrolling","widthChanged","scrollWidthChanged","heightChanged","scrollHeightChanged","oldWidth","oldScrollWidth","oldScrollLeft","oldHeight","oldScrollHeight","oldScrollTop","smoothScrollDuration","_scrollableBrand","_smoothScrollDuration","_scheduleAtNextAnimationFrame","_smoothScrolling","withScrollPosition","withScrollDimensions","_setState","acceptScrollDimensions","newSmoothScrolling","validTarget","SmoothScrollingOperation","animationFrameDisposable","_performSmoothScrolling","tick","isDone","createScrollEvent","SmoothScrollingUpdate","createEaseOutCubic","easeInCubic","_initAnimations","_initAnimation","viewportSize","stop1","stop2","cut","_tick","newScrollLeft","newScrollTop","_prefix","_lastId","hsv2rgb","rgb","hh","rgb2hex","_rgbToPaddedHex","imageProps","nativeProps","altText","hasName","imageNameProps","containerProps","css","primaryDisabled","splitButtonMenuButton","splitButtonMenuButtonExpanded","splitButtonMenuButtonDisabled","splitButtonMenuButtonChecked","splitButtonMenuFocused","splitButtonContainer","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonMenuIcon","splitButtonMenuIconDisabled","splitButtonFlexContainer","divider","splitButtonDivider","splitButtonDividerDisabled","COMPONENT_NAME","_buttonElement","_splitButtonContainer","_mergedRef","createMergedRef","_renderedVisibleMenu","_getMemoizedMenuButtonKeytipProps","keytipProps","_onRenderIcon","buttonProps","defaultRender","iconProps","Icon","_classNames","FontIcon","_onRenderTextContents","secondaryText","onRenderText","_onRenderText","onRenderDescription","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","ariaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","menuProps","persistMenu","menuHidden","MenuType","menuAs","ContextualMenu","labelElementId","directionalHint","shouldFocusOnContainer","_menuShouldFocusOnContainer","shouldFocusOnMount","_menuShouldFocusOnMount","_isSplitButton","onDismiss","_onDismissMenu","_dismissMenu","_openMenu","_onToggleMenu","_onSplitContainerFocusCapture","portalContainsElement","_onSplitButtonPrimaryClick","_processingTouch","_onMenuClick","_onMenuKeyDown","_onKeyPress","onKeyPress","_onMouseUp","_onSplitButtonContainerKeyDown","isUp","isDown","_isValidMenuOpenKey","onMenuClick","setFocusVisibility","forceUpdate","_onTouchStart","_handleTouchAndPointerEvent","nativeEvent","pointerType","initializeComponentRef","_async","Async","warnConditionallyRequiredProps","warnDeprecations","rootProps","ariaHidden","allowDisabledFocus","getClassNames","isPrimaryButtonDisabled","renderAsAnchor","resolvedAriaLabel","ariaDescribedBy","ariaLabelledBy","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","elementRef","_onRenderSplitButtonContent","_onRenderContent","_onPointerDown","prevState","onAfterMenuDismiss","dismissMenu","openMenu","Tag","onRenderIcon","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","keytipAttributes","doNotLayer","_shouldRenderMenu","Content","KeytipData","renderPersistedMenuHiddenOnMount","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","SplitButton","onFocusCapture","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","BaseButton","_lastTouchTimeoutId","menuTriggerKeyCode","defaultProps","baseClassName","DiffChange","StringDiffSequence","stringDiff","MyArray","sourceArray","sourceIndex","destinationArray","destinationIndex","DiffChangeHelper","m_changes","m_originalStart","m_modifiedStart","m_originalCount","m_modifiedCount","originalIndex","modifiedIndex","MarkNextChange","originalSequence","modifiedSequence","continueProcessingPredicate","ContinueProcessingPredicate","_originalSequence","_modifiedSequence","_getElements","originalStringElements","originalElementsOrHash","originalHasStrings","modifiedStringElements","modifiedElementsOrHash","modifiedHasStrings","_hasStrings","_originalStringElements","_originalElementsOrHash","_modifiedStringElements","_modifiedElementsOrHash","m_forwardHistory","m_reverseHistory","newIndex","ElementsAreEqual","_getStrictElement","index1","_ComputeDiff","originalEnd","quitEarlyArr","ComputeDiffRecursive","PrettifyChanges","midOriginalArr","midModifiedArr","ComputeRecursionPoint","midOriginal","midModified","leftChanges","rightChanges","ConcatenateChanges","diagonalForwardBase","diagonalForwardStart","diagonalForwardEnd","diagonalForwardOffset","diagonalReverseBase","diagonalReverseStart","diagonalReverseEnd","diagonalReverseOffset","forwardPoints","reversePoints","deltaIsEven","forwardChanges","reverseChanges","changeHelper","diagonalMin","diagonalMax","diagonalRelative","lastOriginalIndex","historyIndex","diagonal","AddModifiedElement","AddOriginalElement","getReverseChanges","originalStartPoint","modifiedStartPoint","lastForwardChange","getOriginalEnd","getModifiedEnd","getChanges","maxDifferences","numDiagonals","numDifferences","furthestOriginalIndex","furthestModifiedIndex","ClipDiagonalBound","tempOriginalIndex","WALKTRACE","matchLengthOfLongest","Copy2","originalStop","modifiedStop","checkOriginal","checkModified","OriginalElementsAreEqual","ModifiedElementsAreEqual","startStrictEqual","ElementsAreStrictEqual","mergedChangeArr","ChangesOverlap","prevChange","bestDelta","bestScore","_boundaryScore","aChange","bChange","matchedLength","aOriginalStart","bOriginalEnd","abOriginalLength","aModifiedStart","bModifiedEnd","abModifiedLength","_findBetterContiguousSequence","originalMatchStart","modifiedMatchStart","desiredLength","originalMax","modifiedMax","bestOriginalStart","bestModifiedStart","_contiguousSequenceScore","_OriginalIsBoundary","_ModifiedIsBoundary","_OriginalRegionIsBoundary","_ModifiedRegionIsBoundary","Copy","diagonalBaseIndex","diffEven","_isStringArray","hashes","getStrictElement","CustomizerContext","customizations","TabFocus","_tabFocus","_onDidChangeTabFocus","onDidChangeTabFocus","ComputedEditorOptions","RawEditorOptions","EditorConfiguration2","editorOption","_write","_read","compute","_deepEquals","somethingChanged","deepCloneAndMigrateOptions","filteredTypes","highlightActiveIndentGuide","migrateOptions","_onDidChangeFast","onDidChangeFast","_isDominatedByLongLines","_computeOptionsMemory","_viewLineCount","_lineNumbersDigitCount","_rawOptions","_readOptions","readOptions","validateOptions","oldOptions","_computeInternalOptions","changeEvent","checkEquals","partialEnv","_getEnvConfiguration","BareFontInfo","createFromValidatedSettings","getTabFocusMode","computeOptions","_newOptions","_subsetEquals","_digitCount","subsetValue","baseValue","editorConfigurationBaseNode","editorConfiguration","cachedEditorConfigurationKeys","getEditorConfigurationKeys","isEditorConfigurationKey","isDiffEditorConfigurationKey","GOLDEN_LINE_HEIGHT_RATIO","_bareFontInfoBrand","fallbackFontFamily","_wrapInQuotes","ignoreEditorZoom","_create","editorZoomLevelMultiplier","_editorStylingBrand","ModifierLabelProvider","windows","modifierLabels","keyLabelProvider","_simpleAsString","UILabelProvider","AriaLabelProvider","ElectronAcceleratorLabelProvider","_defaultOptions","undoStopBefore","undoStopAfter","clipboardText","overtypingCapturer","SnippetController2","_logService","_snippetListener","_modelVersionId","_inSnippet","InSnippetMode","_hasNextTabstop","HasNextTabstop","_hasPrevTabstop","HasPrevTabstop","_session","_doInsert","_logInfo","_updateState","hasPlaceholder","isAtLastPlaceholder","isSelectionWithinPlaceholders","isAtFirstPlaceholder","_handleChoice","_currentChoice","setSelections","getSelections","resetSelection","CommandCtor","_stylesheet","REUSE_STYLE_NODE","_global","_rules","_preservedRules","_rulesToInsert","_keyToClassName","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","cspSettings","classNameCache","_lastStyleElement","getClassNameCache","argsFromClassName","insertedRulesFromClassName","preserve","_getStyleElement","onInsertRule","getRules","includePreservedRules","resetKeys","_styleElement","_createStyleElement","nonce","nextElementSibling","placeholderStyleTag","_findPlaceholderStyleTag","groupIntersect","intersection","much","consolidate","previousGroup","RangeMap","middle","newCount","RowCache","getTemplateCache","getRenderer","releaseRow","removeFromParent","cachedRows","cachedRow","verticalScrollMode","setRowLineHeight","setRowHeight","supportDynamicHeights","getDragElements","transformOptimization","ExternalElementsDragAndDropData","NativeDragAndDropData","ListViewAccessibilityProvider","renderWidth","_scrollHeight","scrollableElementUpdateDisposable","scrollableElementWidthDelayer","splicing","dragOverAnimationStopDisposable","dragOverMouseY","canDrop","currentDragFeedbackDisposable","onDragLeaveTimeout","_onDidChangeContentHeight","_horizontalScrolling","rangeMap","lastRenderTop","lastRenderHeight","rowsContainer","scrollableElement","onTouchChange","toDragEvent","onDrop","measureItemWidth","updateScrollWidth","setSmoothScrollDuration","_splice","previousRenderRange","getRenderRange","deleteRange","removeRange","rowsToDispose","dragStartDisposable","previousRestRange","previousRenderedRestRange","previousUnrenderedRestRanges","inserted","lastDynamicHeightWidth","dropTarget","renderRange","renderedRestRange","updateRange","updateItemInDOM","removeRanges","removeItemFromDOM","unrenderedRestRanges","elementsRange","insertRanges","beforeElement","getNextToLastElement","insertItemInDOM","eventuallyUpdateScrollDimensions","_rerender","positionAt","renderTop","renderLeft","updateItemsInDOM","rangesToInsert","rangesToRemove","rangesToUpdate","alloc","eventuallyUpdateScrollWidth","paddingRight","toMouseEvent","toGestureEvent","toTouchEvent","getItemIndexFromEventTarget","effectAllowed","setDragImage","dragImage","currentDragData","setupDragAndDropScrollTopAnimation","f1","f2","currentDragFeedback","clearDragOverFeedback","dragData","teardownDragAndDropScrollTopAnimation","dragOverAnimationDisposable","viewTop","animateDragAndDropScrollTop","upperLimit","rawIndex","anchorElementIndex","anchorElementTopDelta","probeDynamicHeight","unrenderRanges","renderRanges","afterIndex","beforeRow","getDynamicHeight","lastRange","nextToLastItem","__esModule","hasXMLHttpRequest","makePromise","maybePromise","isPromise","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","isDate","nodeIsMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","arrayMap","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","eachFunc","baseFindIndex","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","mapToArray","overArg","replaceHolders","setToArray","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","pick","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","uid","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","allocUnsafe","getPrototype","objectCreate","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","Ctor","cloneArrayBuffer","dataView","cloneDataView","cloneTypedArray","cloneRegExp","symbol","initCloneByTag","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","getMapData","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseGt","baseHas","baseHasIn","baseIntersection","othLength","othIndex","caches","maxLength","baseInvoke","baseIsArguments","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","iteratees","orders","getIteratee","criteria","comparer","baseSortBy","objCriteria","othCriteria","ordersLength","compareAscending","compareMultiple","basePickBy","baseSet","basePullAll","basePullAt","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftLength","isUncurried","composeArgsRight","holdersIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","createCaseFirst","trailing","createCompounder","words","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","wrapper","getFuncName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","newHolders","createRecurry","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","createOver","arrayFunc","createPadding","charsLength","createRange","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","newData","setWrapToString","createRound","toInteger","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrLength","arrStacked","arrValue","otherFunc","isKeyable","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","oldArray","shortOut","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","remaining","rand","memoizeCapped","subString","difference","differenceBy","differenceWith","findLastIndex","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","union","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","interceptor","wrapperAt","countBy","forEachRight","invokeMap","keyBy","partition","sortBy","bindKey","WRAP_BIND_FLAG","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","defer","memoized","Cache","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","isError","isInteger","lte","iteratorToArray","isBinary","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","flowRight","methodOf","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","dividend","divisor","multiplier","multiplicand","subtract","minuend","subtrahend","castArray","cond","conforms","baseConforms","curry","curryRight","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","orderBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","take","takeRight","takeRightWhile","tap","throttle","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extend","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isElement","isEqualWith","isMatch","isMatchWith","isNil","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","noConflict","strLength","padEnd","radix","floating","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sum","sumBy","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","times","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","uniqueId","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","isRight","getView","iterLength","takeCount","iterIndex","wrapped","ExtensionIdentifier","_lower","alertFormattingEdits","getRealAndSyntheticDocumentFormattersOrdered","docFormatter","ordered","formatter","rangeFormatter","provideDocumentFormattingEdits","provideDocumentRangeFormattingEdits","FormattingConflicts","_selectors","formatDocumentRangesWithSelectedProvider","editorOrModel","rangeOrRanges","instaService","formatDocumentRangesWithProvider","workerService","areIntersectingOrTouching","computeEdits","getFormattingOptions","hasIntersectingEdit","mergedA","otherEdit","allEdits","rawEditsList","mergedRange","rawEdits","computeMoreMinimalEdits","minimalEdits","FormattingEdit","revealPositionInCenterIfOutsideViewport","undoEdits","formatDocumentWithSelectedProvider","formatDocumentWithProvider","getDocumentRangeFormattingEditsUntilResult","getDocumentFormattingEditsUntilResult","getOnTypeFormattingEdits","autoFormatTriggerCharacters","provideOnTypeFormattingEdits","resolverService","encodeSemanticTokensDto","semanticTokens","deltas","encodeSemanticTokensDtoSize","uint8Arr","b0","b1","b2","b3","reverseEndianness","toLittleEndianBuffer","isSemanticTokens","isSemanticTokensEdits","DocumentSemanticTokensResult","hasDocumentSemanticTokensProvider","getDocumentSemanticTokensProviders","getDocumentSemanticTokens","lastProvider","lastResultId","provideDocumentSemanticTokens","_getDocumentSemanticTokensProviderHighestGroup","DocumentRangeSemanticTokensResult","hasDocumentRangeSemanticTokensProvider","getDocumentRangeSemanticTokensProviders","getDocumentRangeSemanticTokens","provideDocumentRangeSemanticTokens","getLegend","resultId","releaseDocumentSemanticTokens","checkDocument","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getFragmentDefinition","fragmentDef","getMainDefinition","queryDoc","fragmentDefinition","defs","variableDefinitions","QueryCollectionFormat","globalThis","throwTypeError","tmpFunc","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","clipboard","writeText","queryCommandSupported","readText","PointerEvent","renderText","renderFormattedText","formattedText","_renderFormattedText","parseFormattedText","renderCodeSegments","StringStream","advance","treeNode","nodeChild","parseCodeSegments","actionViewItemIndex","stream","eos","isEscapedFormatType","formatTagType","textCurrent","newCurrent","supportCodeSegments","toPosixPath","osPath","toSlashes","isEqualOrParent","parentCandidate","beginsWith","sepOffset","isRootOrDriveLetter","pathNormalized","hasDriveLetter","char0","deleteSelection","rightOfPosition","autoClosingPairsOpen","afterCharacter","foundAutoClosingPair","_runAutoClosingPairDelete","getDeleteRange","lastIndentationColumn","toColumn","getPositionAfterDeleteLeft","lastCutRange","getBaseLabel","normalizeDriveLetter","_defaultPerfManager","PerfEvent","PerfManager","doPerfActiveKey","_sanitizeDiagnosticText","_logToConsole","_InternalLogMessage","DiagnosticLogger","propertyName","constraintCls","validationTypeOptions","validationOptions","always","metadatas","validation","ValidationMetadata","validationMetadatas","constraintMetadatas","addValidationSchema","validationMetadata","addValidationMetadata","addConstraintMetadata","groupByPropertyName","grouped","getTargetValidationMetadatas","targetConstructor","targetSchema","strictGroups","includeMetadataBecauseOfAlwaysOption","excludeMetadataBecauseOfStrictGroupsOption","originalMetadatas","uniqueInheritedMetadatas","inheritedMetadata","originalMetadata","getTargetValidatorConstraints","getMetadataStorage","classValidatorMetadataStorage","shouldDecorate","hasParent","parentPath","boldStart","boldEnd","propConstraintFailed","childError","CUSTOM_VALIDATION","NESTED_VALIDATION","PROMISE_VALIDATION","CONDITIONAL_VALIDATION","WHITELIST","IS_DEFINED","replaceMessageSpecialTokens","validationArguments","messageString","constraintToString","targetName","userContainer","userContainerOptions","validator","validatorOptions","awaitingPromises","ignoreAsyncValidations","metadataStorage","validationErrors","hasValidationMetaData","enableDebugMessages","targetMetadatas","groupedMetadatas","forbidUnknownValues","validationError","ValidationError","whitelist","definedMetadatas","ValidationTypes","resolvedValue","performValidations","notAllowedProperties","forbidNonWhitelisted","generateValidationError","stripEmptyErrors","customValidationMetadatas","nestedValidationMetadatas","conditionalValidationMetadatas","conditionalValidations","customValidations","mapContexts","skipUndefinedProperties","skipNullProperties","skipMissingProperties","nestedValidations","resultA","resultB","customConstraintMetadata","async","stopAtFirstError","validatedSubValues","validatedSubValue","asyncValidatedSubValues","asyncValidationIsFinishedPromise","flatValidatedValues","createValidationError","contexts","validatedValue","customConstraint","getConstraintType","customValidatorMetadata","dismissDefaultMessages","defaultMessage","ValidationUtils","objectOrSchemaName","objectOrValidationOptions","maybeValidatorOptions","coreValidate","validateOrReject","validateSync","defaultContainer","instances","someClass","getFromContainer","fallback","fallbackOnErrors","cacheSlot","cacheInfoMap","getCacheInfo","forgetCache","rv","recallCache","attachCache","makeVar","oldListeners","attach","onNextChange","broadcastWatches","ColorZone","colorId","_colorZoneBrand","OverviewRulerZone","_overviewRulerZoneBrand","_colorZone","colorZone","OverviewZoneManager","getVerticalOffsetForLine","_getVerticalOffsetForLine","_zones","_colorZonesInvalid","_domWidth","_domHeight","_outerHeight","_pixelRatio","_lastAssignedId","_color2Id","_id2Color","newZones","colorZonesInvalid","totalHeight","getCanvasHeight","heightRatio","halfMinimumHeight","allColorZones","zone","getColorZones","y1","ycenter","halfHeight","setColorZone","IsWindowsContext","IsFocusVisibleClassName","IsFocusHiddenClassName","_setPrototypeOf","customStyles","splitButtonDividerBaseStyles","splitButtonStyles","borderTopRightRadius","borderBottomRightRadius","borderRight","borderRightWidth","borderLeftWidth","borderLeft","verticalAlign","marginLeft","marginTop","marginRight","marginBottom","tz","jsonContributionRegistry","schemasById","unresolvedSchemaContent","IMarkerDecorationsService","IWorkspaceContextService","WorkspaceFolder","ValidationState","MarkerDecorationsContribution","_markerDecorationsService","PageCoordinates","_pageCoordinatesBrand","ClientCoordinates","_clientCoordinatesBrand","EditorPagePosition","_editorPagePositionBrand","createEditorPagePosition","editorViewDomNode","editorPos","EditorMouseEvent","_editorMouseEventBrand","EditorMouseEventFactory","_editorViewDomNode","merger","EditorPointerEventFactory","GlobalEditorMouseMoveMonitor","_globalMouseMoveMonitor","_keydownListener","toKeybinding","isModifierKey","ViewEventHandler","shouldRender","onConfigurationChanged","onCursorStateChanged","onDecorationsChanged","onFlushed","onFocusChanged","onLanguageConfigurationChanged","onLineMappingChanged","onLinesChanged","onLinesDeleted","onLinesInserted","onRevealRangeRequest","onScrollChanged","onTokensChanged","onThemeChanged","onTokensColorsChanged","onZonesChanged","ViewPart","addEventHandler","removeEventHandler","PartFingerprints","partId","stopAt","RenderingContext","viewLayout","viewportData","viewLines","_renderingContextBrand","_viewLines","includeNewLines","linesVisibleRangesForRange","visibleRangeForPosition","_restrictedRenderingContextBrand","_viewLayout","getScrollWidth","getScrollHeight","visibleRange","bigNumbersDelta","vInfo","getCurrentViewport","viewportWidth","viewportHeight","absoluteTop","getDecorationsInViewport","LineVisibleRanges","outsideRenderedLine","HorizontalRange","_horizontalRangeBrand","FloatHorizontalRange","_floatHorizontalRangeBrand","HorizontalPosition","originalLeft","VisibleRanges","RangeUtil","_handyReadyRange","selectNodeContents","startElement","endElement","_createRange","setStart","setEnd","_detachRange","clientRects","clientRectDeltaLeft","clientRect","_mergeAdjacentRanges","startChildIndex","endChildIndex","_createHorizontalRangesFromClientRects","_readClientRects","canUseFastRenderedViewLine","monospaceAssumptionsAreValid","DomReadingContext","_clientRectDeltaLeft","_clientRectDeltaLeftRead","ViewLineOptions","themeType","ViewLine","_isMaybeInvalid","_renderedViewLine","deltaTop","getViewLineRenderingData","actualInlineDecorations","renderLineInput","CLASS_NAME","renderedViewLine","FastRenderedViewLine","createRenderedLine","getWidthIsFast","toSlowRenderedLine","horizontalRanges","getVisibleRangesForRange","spanNode","getColumnOfNodeOffset","_characterMapping","_charWidth","_getCharPosition","expectedWidth","actualWidth","getAbsoluteOffset","spanNodeTextContentLength","spanIndex","getColumn","RenderedViewLine","_isWhitespaceOnly","_containsForeignElements","_cachedWidth","_pixelOffsetCache","myDomNode","_getReadingTarget","_readPixelOffset","_readVisibleRangesForRange","pixelOffset","_readRawVisibleRangesForRange","readingTarget","cachedPixelOffset","_actualReadPixelOffset","readHorizontalRanges","getDomPosition","expectedResult","startDomPosition","endDomPosition","WebKitRenderedViewLine","endPixelOffset","createWebKitRenderedLine","createNormalRenderedLine","HitTestResult","UnknownHitTestResult","hitTarget","ContentHitTestResult","createFromDOMInfo","getPositionFromDOMInfo","PointerHandlerLastRenderData","lastViewCursorsRenderData","lastTextareaPosition","MouseTarget","EditorRange","_typeToString","ElementPath","HitTestContext","viewHelper","lastRenderData","viewDomNode","_viewHelper","mouseVerticalOffset","getZoneAtCoord","isAfterLines","getLineNumberAtVerticalOffset","isInTopPadding","isInBottomPadding","_findAttribute","getLineWidth","getCurrentScrollTop","getCurrentScrollLeft","viewZoneWhitespace","getWhitespaceAtVerticalOffset","viewZoneMiddle","verticalOffset","positionBefore","positionAfter","HitTestRequest","targetPath","collect","mouseContentHorizontalOffset","getTextModelOptions","isInMarginArea","isInContentArea","MouseTargetFactory","_getMouseColumn","EMPTY_CONTENT_AFTER_LINES","createEmptyContentDataInLines","horizontalDistanceToText","isChildOfContentWidgets","isChildOfOverflowingContentWidgets","isChildOfOverlayWidgets","_createMouseTarget","domHitTestExecuted","hitTestResult","_doHitTest","createMouseTargetFromHitTestPosition","withTarget","resolvedRequest","_hitTestContentWidget","_hitTestOverlayWidget","_hitTestMinimap","_hitTestScrollbarSlider","_hitTestViewZone","_hitTestMargin","_hitTestViewCursor","_hitTestTextArea","_hitTestViewLines","_hitTestScrollbar","widgetId","findAttribute","mightBeForeignElement","cursorVerticalOffset","viewZoneData","mouseTargetType","isTextArea","getFullLineRangeAtCoord","isChildOfViewLines","isStrictChildOfViewLines","isChildOfMinimap","possibleLineNumber","isChildOfScrollableElement","columnHorizontalOffset","mouseCoordinates","toClientCoordinates","spanNodeClientRect","mouseIsOverSpanNode","rng","lineCenteredVerticalOffset","adjustedPageY","adjustedPage","_actualDoHitTestWithCaretRangeFromPoint","caretRangeFromPoint","elementFromPoint","TEXT_NODE","pixelCursor","charWidthReader","CharWidthReader","getCharWidth","shadowCaretRangeFromPoint","startContainer","parent1","parent2","parent3","hitResult","caretPositionFromPoint","offsetNode","parent1ClassName","parent2ClassName","tokenSpan","_doHitTestWithCaretRangeFromPoint","_doHitTestWithCaretPositionFromPoint","getInjectedTextAt","normalizedPosition","_snapToSoftTabBoundary","createMouseMoveEventMerger","mouseTargetFactory","targetIsWidget","mouseTargetIsWidget","MouseHandler","viewController","_mouseDownOperation","MouseDownOperation","testEventTarget","lastMouseLeaveTime","mouseEvents","_onContextMenu","onMouseMoveThrottled","_onMouseMove","MOUSE_MOVE_MINIMUM_TIME","_onMouseLeave","emitMouseWheel","setZoomLevel","capture","onHeightChanged","toPageCoordinates","createMouseTarget","getLastRenderData","elementsFromPoint","getMouseColumn","emitContextMenu","emitMouseMove","emitMouseLeave","emitMouseUp","targetIsContent","targetIsGutter","targetIsLineNumbers","targetIsViewZone","shouldHandle","focusTextArea","shouldSuppressMouseDownOnViewZone","shouldSuppressMouseDownOnWidget","emitMouseDown","_viewController","_onScrollTimeout","_mouseState","MouseDownState","_currentSelection","_lastMouseEvent","setModifiers","_findMousePosition","isDragAndDrop","emitMouseDrag","_dispatchMouse","targetType","setStartedOnLineNumbers","setStartButtons","trySetCount","_onMouseDownThenMove","emitMouseDropCanceled","emitMouseDrop","_stop","editorContent","_helpPositionJumpOverViewZone","aboveLineNumber","belowLineNumber","positionOutsideEditor","_getPositionOutsideEditor","dispatchMouse","startedOnLineNumbers","mouseDownCount","_altKey","_ctrlKey","_metaKey","_shiftKey","_leftButton","_middleButton","_startedOnLineNumbers","_lastMouseDownPosition","_lastMouseDownPositionEqualCount","_lastMouseDownCount","_lastSetMouseDownCountTime","setMouseDownCount","newMouseDownPosition","CLEAR_MOUSE_DOWN_COUNT_TIME","PointerEventHandler","linesContentDomNode","_lastPointerType","onPointerMoveThrottled","onPointerLeave","deltaScrollNow","TouchHandler","dispatchTextAreaEvent","PointerHandler","TouchEvent","getTargetAtClientPoint","DynamicViewOverlay","LineNumbersOverlay","_readConfig","_lastCursorModelPosition","_renderResult","_activeLineNumber","_renderLineNumbers","_renderCustomLineNumbers","_renderFinalNewline","_lineNumbersLeft","_lineNumbersWidth","primaryViewPosition","convertViewPositionToModelPosition","modelPosition","lineHeightClassName","visibleStartLineNumber","visibleEndLineNumber","common","renderLineNumber","_getLineRenderLineNumber","activeLineNumber","Margin","_canUseLayerHinting","_contentLeft","_glyphMarginLeft","_glyphMarginWidth","OUTER_CLASS_NAME","_glyphMarginBackgroundDomNode","adjustedScrollTop","VisibleTextAreaData","_visibleTextAreaBrand","canUseZeroSizeTextarea","TextAreaHandler","_primaryCursorPosition","_primaryCursorVisibleRange","_scrollLeft","_scrollTop","_setAccessibilityOptions","_contentWidth","_contentHeight","_fontInfo","_emptySelectionClipboard","_copyWithSyntaxHighlighting","_visibleTextArea","_selections","_modelSelections","_lastRenderPosition","_getAriaLabel","textAreaCover","simpleModel","textAreaInputHost","generateHTML","rawTextToCopy","getPlainTextToCopy","newLineCharacter","richText","getRichTextToCopy","_accessibilitySupport","textBefore","_getWordBeforePosition","_getCharacterBeforePosition","_getAndroidWordAtPosition","positionOffsetInWord","fromEditorSelection","_accessibilityPageSize","viewAnchorPosition","deduceModelPositionRelativeToViewPosition","_textAreaInput","emitKeyDown","emitKeyUp","paste","compositionType","visibleRangeForPositionRelativeToEditor","compositionStart","createFontString","metrics","compositionEnd","setHasFocus","goingLeft","goingRight","isFocused","activeDescendant","_renderInsideEditor","_renderAtTopLeft","renderedPosition","ta","tac","applyFontInfo","ViewController","userInputEvents","commandDelegate","startComposition","endComposition","selectionClipboardIsOn","_columnSelect","_hasMulticursorModifier","_lastCursorLineSelect","_createCursor","_lineSelectDrag","_lineSelect","_selectAll","_lastCursorLineSelectDrag","_lastCursorWordSelect","_wordSelectDrag","_wordSelect","_hasNonMulticursorModifier","_lastCursorMoveToSelect","_moveToSelect","_validateViewColumn","_convertViewToModelPosition","_usualArgs","ViewUserInputEvents","onMouseDrag","onMouseDrop","onMouseDropCanceled","_coordinatesConverter","_convertViewToModelMouseEvent","_convertViewToModelMouseTarget","convertViewToModelMouseTarget","ExternalMouseTarget","RenderedLinesCollection","createLine","_createLine","rendLineNumberStart","_lines","_rendLineNumberStart","deleteFromLineNumber","deleteToLineNumber","getStartLineNumber","getEndLineNumber","deleteCnt","deleteStartIndex","deleteAboveCount","changeFromLineNumber","changeToLineNumber","someoneNotified","changedLineNumber","onContentChanged","insertFromLineNumber","insertToLineNumber","insertCnt","beforeLines","afterLines","deletedLines","notifiedSomeone","VisibleLinesCollection","_createDomNode","_linesCollection","createVisibleLine","lineDomNode","getLine","inp","_get","ViewLayerRenderer","resCtx","relativeVerticalOffset","inContext","stopLineNumber","_finishRendering","_renderUntouchedLines","_insertLinesBefore","removeCnt","_removeLinesBefore","_insertLinesAfter","_removeLinesAfter","deltaLN","layoutLine","newLinesLen","removeCount","removeIndex","domNodeIsEmpty","newLinesHTML","wasNew","_ttPolicy","insertAdjacentHTML","currChild","invalidLinesHTML","wasInvalid","hugeDomNode","replaceChild","_sb","hadNewLine","renderLine","_finishRenderingNewLines","hadInvalidLine","_finishRenderingInvalidLines","ViewOverlays","_visibleLines","_dynamicOverlays","_isFocused","ViewOverlayLine","overlay","getVisibleLine","dynamicOverlay","prepareRender","onDidRender","_viewOverlaysRender","dynamicOverlays","_configuration","_renderedContent","ContentViewOverlays","MarginViewOverlays","Coordinate","_coordinateBrand","ViewContentWidgets","_viewDomNode","overflowingContentWidgetsDomNode","_widget","myWidget","setShouldRender","onBeforeRender","_fixedOverflowWidgets","_viewRange","_preference","_cachedDomNodeClientWidth","_cachedDomNodeClientHeight","_getMaxWidth","_renderData","setMaxWidth","_setPosition","validModelRange","validateModelRange","modelPositionIsVisible","topLeft","bottomLeft","aboveLineTop","heightAboveLine","underLineTop","aboveTop","fitsAbove","belowTop","fitsBelow","actualAboveLeft","actualBelowLeft","aboveLeft","belowLeft","MIN_LIMIT","MAX_LIMIT","absoluteLeft","absoluteAboveTop","absoluteBelowTop","_layoutHorizontalSegmentInPage","absoluteAboveLeft","absoluteBelowLeft","visibleRangesForRange","visibleRangesForLine","firstLineMinLeft","lastLineMinLeft","topForPosition","topForBottomLine","placement","_getTopAndBottomLeft","preferredDimensions","beforeRender","safeInvoke","_layoutBoxInPage","_layoutBoxInViewport","pref","coordinate","_prepareRenderWidgetAtExactPositionOverflowing","_prepareRenderWidget","afterRender","isRenderedUsingBorder","AbstractLineHighlightOverlay","_renderLineHighlight","_renderLineHighlightOnlyWhenFocus","_selectionIsEmpty","_focused","_cursorLineNumbers","renderSelections","cursorsLineNumbers","selectionIsEmpty","_readFromSelections","_shouldRenderThis","renderedLine","_renderOne","renderData","CurrentLineHighlightOverlay","_shouldRenderOther","CurrentLineMarginHighlightOverlay","_shouldRenderMargin","lineHighlight","lineHighlightBorder","DecorationsOverlay","_typicalHalfwidthCharacterWidth","decorationsLen","aClassName","bClassName","_renderWholeLineDecorations","_renderNormalDecorations","lenI","decorationOutput","prevClassName","prevShowIfCollapsed","prevRange","_renderNormalDecoration","linesVisibleRanges","lineVisibleRanges","singleVisibleRange","lenK","linesContent","overflowGuardDomNode","scrollbarOptions","getScrollable","scrollbarDomNode","_setLayout","onBrowserDesperateReveal","lookAtScrollTop","lookAtScrollLeft","newScrollPosition","deltaLeft","getOverviewRulerLayoutInfo","delegateVerticalScrollbarMouseDown","updateClassName","renderNow","scrollbarShadowColor","scrollbarSliderBackgroundColor","scrollbarSliderHoverBackgroundColor","scrollbarSliderActiveBackgroundColor","DecorationToRender","_decorationToRenderBrand","DedupOverlay","prevEndLineIndex","GlyphMarginOverlay","_glyphMargin","rLen","_getDecorations","IndentGuidesOverlay","_primaryPosition","_spaceWidth","_maxIndentLeft","_bracketPairGuideOptions","activeCursorPosition","indents","getGuidesByLine","leftOffset","bracketGuides","getBracketGuidesInRangeByLine","EnabledForActive","indentGuides","getLinesIndentGuides","activeIndentStartLineNumber","activeIndentEndLineNumber","activeIndentLevel","activeIndentInfo","getActiveIndentGuide","lineGuides","bracketGuidesInLine","bracketGuidesInLineQueue","indentGuidesInLine","indentLvl","indentGuide","transparentToUndefined","editorIndentGuidesColor","editorActiveIndentGuidesColor","bracketColor","guideColor","guideColorActive","effectiveGuideColor","effectiveGuideColorActive","LastRenderedData","_currentVisibleRange","currentVisibleRange","HorizontalRevealRangeRequest","startScrollTop","stopScrollTop","scrollType","HorizontalRevealSelectionsRequest","ViewLines","_linesContent","_textRangeRestingSpot","_isViewportWrapping","_revealHorizontalRightPadding","_cursorSurroundingLines","_cursorSurroundingLinesStyle","_viewLineOptions","_maxLineWidth","_asyncUpdateLineWidths","_updateLineWidthsSlow","_asyncCheckMonospaceFontAssumptions","_checkMonospaceFontAssumptions","_lastRenderedData","_horizontalRevealRequest","_onOptionsMaybeChanged","newViewLineOptions","onOptionsChanged","rendStartLineNumber","rendEndLineNumber","onSelectionChanged","_computeScrollTopToRevealRange","getFutureViewport","verticalType","revealHorizontal","setMaxLineWidth","viewLineDomNode","_getViewLineDomNode","_getLineNumberFor","originalEndLineNumber","getCurrentVisibleRange","visibleRangesLen","domReadingContext","nextLineModelLineNumber","_visibleRangesForLineRange","_updateLineWidths","fast","localMaxLineWidth","allWidthsComputed","visibleLine","_ensureMaxLineWidth","longestLineNumber","longestWidth","needsMonospaceFontCheck","onMonospaceAssumptionsInvalidated","setCurrentVisibleRange","horizontalRevealRequest","_computeScrollLeftToReveal","maxHorizontalOffset","_updateLineWidthsFast","iLineWidth","boxIsSingleRange","boxStartY","boxEndY","viewportStartY","viewportEndY","minScrollTop","boxMiddleY","_computeMinimumScrolling","viewportStartX","viewportEndX","boxStartX","boxEndX","HORIZONTAL_EXTRA_PX","viewportStart","viewportEnd","boxStart","boxEnd","revealAtStart","revealAtEnd","viewportLength","LinesDecorationsOverlay","_decorationsLeft","_decorationsWidth","lineOutput","MarginViewLineDecorationsOverlay","RGBA8","_rgba8Brand","MinimapTokensColorTracker","_updateColorMap","getColorMap","_colors","_backgroundIsLight","backgroundLuminosity","allCharCodes","MinimapCharRenderer","charData","_minimapCharRendererBrand","charDataNormal","soften","charDataLight","foregroundAlpha","backgroundAlpha","fontScale","useLighterFont","force1pxHeight","charHeight","destWidth","backgroundR","backgroundG","backgroundB","deltaR","deltaG","deltaB","destAlpha","sourceOffset","colorR","colorG","Uint8ClampedArray","charTable","decodeData","prebakedMiniMaps","MinimapCharRendererFactory","lastCreated","lastFontFamily","createFromSampleData","createSampleData","textBaseline","getImageData","_downsample","brightest","sourceY1","sourceY2","sourceX1","sourceX2","sy","sourceRow","yBalance","sx","xBalance","final","pixelsPerCharacter","resultOffset","_downsampleChar","adjust","MinimapOptions","tokensColorTracker","minimapOpts","minimapHeight","canvasInnerWidth","canvasInnerHeight","canvasOuterWidth","canvasOuterHeight","isSampling","editorHeight","charRenderer","defaultBackgroundColor","_getMinimapBackground","_getMinimapForegroundOpacity","themeColor","MinimapLayout","sliderNeeded","sliderTop","sliderHeight","viewportStartLineNumber","viewportEndLineNumber","viewportStartLineNumberVerticalOffset","viewportContainsWhitespaceGaps","realLineCount","previousLayout","maxMinimapSliderTop","minimapLinesFitting","logicalScrollHeight","maxLinesFitting","viewportLineCount","expectedViewportLineCount","extraLinesAtTheBottom","MinimapLine","INVALID","RenderData","renderedLayout","imageData","_imageData","_renderedLines","scrollEquals","MinimapBuffers","WIDTH","HEIGHT","_backgroundFillData","_createBackgroundFillData","createImageData","_lastUsedBuffer","backgroundA","MinimapSamplingState","samplingRatio","minimapLines","fromLineIndex","modelLineToMinimapLine","toLineIndex","sampledLineNumber","minimapLineStart","minimapLineEnd","changeStartIndex","changeEndIndex","insertedLineCount","oldSamplingState","halfRatio","oldMinimapLines","oldIndex","oldDeltaLineCount","oldMinimapLineNumber","_oldIndex","selectedViewLineNumber","Minimap","_minimapSelections","samplingState","_samplingState","_shouldCheckSampling","InnerMinimap","_recreateLineSampling","minimapLineRange","modelLineRangeToMinimapLineRange","invalidateMinimapColorCache","minimapCtx","whitespaceViewportData","wasSampling","needed","getViewLineData","getMinimapLinesRenderingData","decorationLineRangeToMinimapLineRange","modelStartLineNumber","modelEndLineNumber","minimapStartLineNumber","minimapEndLineNumber","_renderDecorations","_gestureInProgress","_lastRenderData","_selectionColor","_getMinimapDomNodeClassName","_shadow","_decorationsCanvas","_slider","_sliderHorizontal","_applyLayout","_mouseDownListener","internalOffsetY","revealLineNumber","initialPosY","_startSliderDragging","_sliderMouseMoveMonitor","_sliderMouseDownListener","_gestureDisposable","_sliderTouchStartListener","scrollDueToTouchEvent","_sliderTouchMoveListener","_sliderTouchEndListener","initialPosX","initialSliderState","handleMouseMove","getDesiredScrollTopFromDelta","getDesiredScrollTopFromTouchLocation","getBuffer","renderingCtx","getRealLineCount","setDisplay","renderDecorations","getMinimapDecorationsInViewport","characterWidth","canvasContext","highlightedLines","ContiguousLineMap","_renderSelectionLineHighlights","_renderDecorationsLineHighlights","lineOffsetMap","_renderSelectionsHighlights","_renderDecorationsHighlights","yy1","yy2","highlightColors","minimapOptions","Inline","decorationColor","highlightColor","renderDecorationOnLine","Gutter","renderDecoration","decorationRange","x1","getXOffsetForPosition","lineIndexToXOffset","prevx","linesEquals","_lastData","_getBuffer","_dirtyY1","_dirtyY2","lineInfo","defaultBackground","backgroundIsLight","renderMinimapLineHeight","innerLinePadding","renderBackground","renderedLines","dirtyY1","dirtyHeight","putImageData","lastTargetData","lastStartLineNumber","lastLines","lastLinesLength","targetData","maxDestPixel","dirtyPixel1","dirtyPixel2","copySourceStart","copySourceEnd","copyDestStart","copyDestEnd","dest_dy","source_dy","sourceStart","sourceEnd","destStart","destEnd","colorTracker","minimapCharRenderer","maxDx","tabsCharDelta","tokenColorId","tokenColor","insertSpacesCount","blockRenderChar","renderChar","sliderBackground","sliderHoverBackground","sliderActiveBackground","shadow","ViewOverlayWidgets","_verticalScrollbarWidth","_minimapWidth","_horizontalScrollbarHeight","_editorHeight","_editorWidth","widgetData","widgetHeight","unsetTop","_renderWidget","Settings","renderBorder","hideCursor","cursorColor","minimapEnabled","getDefaultBackground","domWidth","domHeight","canvasWidth","canvasHeight","_initLanes","canvasLeftOffset","laneCount","leftWidth","rightWidth","centerWidth","centerOffset","DecorationsOverviewRuler","_updateSettings","_tokensColorTrackerListener","_cursorPositions","newSettings","_settings","invalidateOverviewRulerColorCache","editorCtx","getAllOverviewRulerDecorations","minDecorationHeight","halfMinDecorationHeight","canvasCtx","decorationGroup","decorationGroupData","prevLane","prevY1","prevY2","lane","yCenter","cursorHeight","halfCursorHeight","cursorX","cursorW","setBackgroundColor","OverviewRuler","cssClassName","_zoneManager","setDOMWidth","setDOMHeight","setOuterHeight","setPixelRatio","getDOMWidth","getDOMHeight","getCanvasWidth","zones","setZones","getOuterHeight","colorZones","resolveColorZones","id2Color","getId2Color","_renderOneLane","currentColorId","currentFrom","currentTo","zoneColorId","zoneFrom","zoneTo","Rulers","_renderedRulers","_rulers","currentCount","desiredCount","rulerWidth","addCount","_ensureRulersCount","ruler","setBoxShadow","rulerColor","ScrollDecorationViewPart","_updateWidth","_shouldShow","_useShadows","newShouldShow","_updateShouldShow","HorizontalRangeWithStyle","startStyle","endStyle","LineVisibleRangesWithStyle","toStyledRange","toStyled","SelectionsOverlay","_previousFrameVisibleRangesWithStyle","_roundedSelection","previousFrame","previousFrameTop","previousFrameBottom","topLineNumber","bottomLineNumber","curLineRange","curLeft","curRight","prevLeft","prevRight","nextLeft","nextRight","_visibleRangesHaveGaps","_enrichVisibleRangesWithStyle","output2","visibleRangesHaveStyle","fullLineHeight","reducedLineHeight","firstLineNumber","innerCornerOutput","restOfSelectionOutput","_createSelectionPiece","SELECTION_CLASS_NAME","ROUNDED_PIECE_WIDTH","EDITOR_BACKGROUND_CLASS_NAME","SELECTION_TOP_RIGHT","SELECTION_BOTTOM_RIGHT","SELECTION_TOP_LEFT","SELECTION_BOTTOM_LEFT","thisFrameVisibleRangesWithStyle","visibleRangesWithStyle","_getVisibleRangesWithStyle","_actualRenderOneSelection","editorSelectionColor","editorInactiveSelectionColor","editorSelectionForegroundColor","ViewCursorRenderData","textContentClassName","ViewCursor","_cursorStyle","_lineCursorWidth","_lastRenderedContent","visibleRangeForCharacter","firstVisibleRangeForCharacter","_prepareRender","ViewCursors","_readOnly","_cursorBlinking","_cursorSmoothCaretAnimation","_isComposingInput","_primaryCursor","_secondaryCursors","_updateDomClassName","_startCursorBlinkAnimation","_cursorFlatBlinkInterval","_blinkingEnabled","_editorHasFocus","_updateBlinking","secondaryPositions","onCursorPositionChanged","addCnt","newCursor","_onCursorPositionChanged","blinkingStyle","_getCursorBlinking","isHidden","isSolid","_show","BLINK_INTERVAL","_getClassName","renderDataLen","primaryRenderData","secondaryRenderData","caret","caretBackground","opposite","ViewZones","marginDomNode","whitespaces","getWhitespaces","oldWhitespaces","hadAChange","changeWhitespace","whitespaceAccessor","_computeWhitespaceProps","isInHiddenArea","oldWhitespace","afterViewLineNumber","heightInPx","changeOneWhitespace","_safeCallOnComputedHeight","_recomputeWhitespacesProps","_heightInPixels","minWidthInPx","_minWidthInPixels","zoneAfterModelPosition","zoneBeforeModelPosition","validateModelPosition","validAfterLineNumber","getModelLineMaxColumn","zonesHaveChanged","_addZone","_removeZone","_layoutZone","arg1","safeInvoke1Arg","myZone","whitespaceId","insertWhitespace","_getZoneOrdinal","removeWhitespace","visibleWhitespaces","visibleZones","hasVisibleZone","visibleWhitespace","newTop","newHeight","newDisplay","_safeCallOnDomNodeTop","getScrolledTopFromAbsoluteTop","EditorTheme","ViewContext","eventHandler","addViewEventHandler","removeViewEventHandler","ViewportData","partialData","View","_renderAnimationFrame","_configPixelRatio","_viewParts","_textAreaHandler","_createTextAreaHandlerHelper","_getEditorClassName","_overflowGuardContainer","_scrollbar","_viewZones","decorationsOverviewRuler","scrollDecoration","contentViewOverlays","addDynamicOverlay","marginViewOverlays","_contentWidgets","_viewCursors","_overlayWidgets","overviewRulerData","_pointerHandler","_createPointerHandlerHelper","_renderNow","_flushAccumulatedAndRenderNow","focused","_scheduleRender","_onRenderScheduled","safeInvokeNoArg","_actualRender","viewPart","viewPartsToRender","_getViewPartsToRender","partialViewportData","getLinesViewportData","setViewport","centeredLineNumber","getWhitespaceViewportData","renderingContext","updatePixelRatio","updateLineWidths","mouseTarget","everything","forceShouldRender","setAriaOptions","newPreference","setWidgetPosition","removeWidget","layoutOverlayWidget","Cursor","_selTrackedRange","_trackSelection","_removeTrackedRange","_updateTrackedRange","_setTrackedRange","_getTrackedRange","_validateViewState","viewSelectionStart","validateViewRange","viewSelectionStart1","viewSelectionStart2","cacheInput","cacheOutput","sStartPosition","sEndPosition","validPosition","validSStartPosition","_validatePositionWithCache","validSEndPosition","CursorCollection","primaryCursor","secondaryCursors","killSecondaryCursors","startTrackingSelection","stopTrackingSelection","ensureValidState","readSelectionFromMarkers","asCursorState","setStates","fromModelSelections","_setSecondaryStates","secondaryStates","secondaryCursorsLength","secondaryStatesLength","createCnt","_addSecondaryCursor","_removeSecondaryCursor","_getAll","sortedCursors","sortedCursorIndex","nextSelection","winnerSortedCursorIndex","looserSortedCursorIndex","looserIndex","winnerIndex","looserSelection","winnerSelection","equalsSelection","resultingRange","looserSelectionIsLTR","winnerSelectionIsLTR","resultingSelectionIsLTR","resultingState","sortedCursor","ViewCompositionStartEvent","ViewCompositionEndEvent","ViewConfigurationChangedEvent","ViewCursorStateChangedEvent","ViewDecorationsChangedEvent","ViewFlushedEvent","ViewFocusChangedEvent","ViewLanguageConfigurationEvent","ViewLineMappingChangedEvent","ViewLinesChangedEvent","ViewLinesDeletedEvent","ViewLinesInsertedEvent","ViewRevealRangeRequestEvent","ViewScrollChangedEvent","ViewThemeChangedEvent","ViewTokensChangedEvent","ViewTokensColorsChangedEvent","ViewZonesChangedEvent","ViewModelEventDispatcher","_onEvent","onEvent","_eventHandlers","_viewEventQueue","_isConsumingViewEventQueue","_collector","_collectorCnt","_outgoingEvents","_addOutgoingEvent","_emitOutgoingEvents","isNoOp","ViewModelEventsCollector","outgoingEvents","viewEvents","outgoingEvent","_emitMany","beginEmitViewEvents","emitViewEvent","endEmitViewEvents","_consumeViewEventQueue","_doConsumeQueue","eventHandlers","handleEvents","ContentSizeChangedEvent","oldContentWidth","oldContentHeight","_oldContentWidth","_oldContentHeight","contentWidthChanged","contentHeightChanged","FocusChangedEvent","oldHasFocus","ScrollChangedEvent","_oldScrollWidth","_oldScrollLeft","_oldScrollHeight","_oldScrollTop","CursorStateChangedEvent","oldSelections","oldModelVersionId","reachedMaxCursorCount","_selectionsAreEqual","ReadOnlyEditAttemptEvent","CursorModelState","cursorState","AutoClosedAction","autoClosedCharactersDecorations","autoClosedEnclosingDecorations","_autoClosedCharactersDecorations","_autoClosedEnclosingDecorations","enclosingRanges","autoClosedActions","autoClosedAction","getAutoClosedCharactersRanges","CursorsController","_knownModelVersionId","_viewModel","_cursors","_isHandling","_selectionsWhenCompositionStarted","_columnSelectData","_autoClosedActions","_prevEditOperationType","updateContext","eventsCollector","getPrimaryCursor","MAX_CURSOR_COUNT","_validateAutoClosedActions","_emitStateChangedIfNecessary","columnSelectData","viewPositions","getViewPositions","_emitCursorRevealRange","getViewSelections","viewSelections","desiredSelections","revealPrimary","hadFlushEvent","containsEvent","_revealPrimaryCursor","selectionsFromMarkers","getTopMostViewPosition","getBottomMostViewPosition","autoClosedCharactersRanges","autoClosedEnclosingRanges","autoClosedCharactersDeltaDecorations","autoClosedEnclosingDeltaDecorations","opResult","CommandExecutor","_interpretCommandResult","_pushAutoClosedAction","newCursorState","emitOutgoingEvent","closeChar","autoClosingPairsCandidates","openChar","closeCharIndex","openCharIndex","autoClosingIndices","_findAutoClosingPairs","openCharInnerIndex","closeCharInnerIndex","undoEdit","cursorChangeReason","stopTrackingSelections","startTrackingSelections","getAllAutoClosedCharacters","_executeEdit","_executeEditOperation","compositionEndWithInterceptors","getAutoClosedCharacters","charLength","typeWithInterceptors","typeWithoutInterceptors","newSelections","selectionsBefore","trackedRanges","trackedRangesDirection","_innerExecuteCommands","_arrayIsEmpty","commandsData","_getEditOperations","loserCursorsMap","_getLoserCursorMap","filteredOperations","major","hadTrackedEditOperation","selectionsAfter","groupedInverseEditOperations","minorBasedSorter","minor","cursorSelections","computeCursorState","losingCursors","losingCursorIndex","losingCursor","_getEditOperationsFromCommand","majorIdentifier","operationMinor","editOperationBuilder","trackPreviousOnEmpty","getEditOperations","previousOp","currentOp","loserMajor","PendingChanges","_hasPending","_inserts","_changes","_removes","linesLayout","inserts","removes","_commitPendingChanges","EditorWhitespace","ordinal","prefixSum","LinesLayout","paddingTop","paddingBottom","INSTANCE_COUNT","_pendingChanges","_lastWhitespaceId","_prefixSumValidIndex","_minWidth","_lineCount","_paddingTop","_paddingBottom","_checkPendingChanges","newAfterLineNumber","_insertWhitespace","_changeOneWhitespace","_findWhitespaceIndex","_removeWhitespace","toChange","applyRemoveAndChange","mustCommit","findInsertionIndex","getWhitespacesAccumulatedHeight","getWhitespacesTotalHeight","lastWhitespaceBeforeLineNumber","_findLastWhitespaceBeforeLineNumber","firstWhitespaceAfterLineNumber","_findFirstWhitespaceAfterLineNumber","getWhitespaceAccumulatedHeightBeforeLineNumber","getLinesTotalHeight","midLineNumber","midLineNumberVerticalOffset","verticalOffset1","verticalOffset2","currentWhitespaceHeight","currentWhitespaceAfterLineNumber","getLineNumberAtOrAfterVerticalOffset","startLineNumberVerticalOffset","whitespaceIndex","getFirstWhitespaceIndexAfterLineNumber","whitespaceCount","getWhitespacesCount","getAfterLineNumberForWhitespaceIndex","getHeightForWhitespaceIndex","currentVerticalOffset","currentLineRelativeOffset","STEP_SIZE","linesOffsets","verticalCenter","endLineNumberVerticalOffset","completelyVisibleStartLineNumber","completelyVisibleEndLineNumber","minWhitespaceIndex","maxWhitespaceIndex","getVerticalOffsetForWhitespaceIndex","midWhitespaceIndex","midWhitespaceVerticalOffset","candidateIndex","getWhitespaceIndexAtOrAfterVerticallOffset","candidateTop","candidateHeight","getIdForWhitespaceIndex","EditorScrollDimensions","EditorScrollable","_onDidContentSizeChange","onDidContentSizeChange","_dimensions","oldDimensions","ViewLayout","_linesLayout","_configureSmoothScrollDuration","_updateHeight","setPadding","_getContentHeight","_getHorizontalScrollbarHeight","currentScrollPosition","maxLineWidth","extraHorizontalSpace","whitespaceMinWidth","getWhitespaceMinWidth","_computeContentWidth","firstLineNumberInViewport","scrollTopWithoutViewZones","onHeightMaybeChanged","visibleBox","CoordinatesConverter","expectedModelPosition","expectedModelRange","modelRange","getModelLineViewLineCount","getViewLineNumberOfModelPosition","LineNumberMapper","viewLineCounts","_counts","_validEndIndex","_modelToView","_viewToModel","viewLinesAbove","_invalidate","_ensureValid","modelLineIndex","PrefixSumIndexOfResult","SplitLinesCollection","editorId","domLineBreaksComputerFactory","monospaceLineBreaksComputerFactory","_editorId","_validModelVersionId","_domLineBreaksComputerFactory","_monospaceLineBreaksComputerFactory","_constructLines","hiddenAreasIds","resetHiddenAreas","previousLineBreaks","injectedTextDecorations","getInjectedTextDecorations","lineBreaksComputer","createLineBreaksComputer","injectedTextQueue","lineInjectedText","addRequest","linesBreaks","finalize","hiddenAreas","areaId","hiddenAreaStart","hiddenAreaEnd","hiddenAreaIdx","nextLineNumberToUpdateHiddenArea","createSplitLine","getViewLineCount","prefixSumComputer","decId","_ranges","currentRangeStart","currentRangeEnd","newRanges","_reduceRanges","oldRanges","hasDifference","hasVisibleLine","lineChanged","setVisible","newOutputLineCount","changeValue","setHiddenAreas","_modelColumn","newTabSize","equalFontInfo","equalWrappingStrategy","equalWrappingColumn","equalWrappingIndent","onlyWrappingColumnChanged","getLineBreakData","outputFromLineNumber","outputToLineNumber","removeValues","_toLineNumber","lineBreaks","totalOutputLineCount","insertLines","insertPrefixSumValues","outputLineCount","insertValues","lineBreakData","oldOutputLineCount","lineMappingChanged","changeFrom","changeTo","insertFrom","insertTo","deleteFrom","deleteTo","getTotalValue","_toValidViewLineNumber","getViewLineMinColumn","modelMinPosition","modelMaxPosition","viewStartPosition","viewEndPosition","ViewLineInfo","viewLineInfo","modelLineWrappedLineIdx","minViewColumn","getModelColumnOfViewPosition","maxViewColumn","getViewLineMaxColumn","viewStartLineNumber","viewEndLineNumber","startViewLine","getViewLineInfo","endViewLine","lastVisibleModelPos","getModelStartPositionOfViewLine","curModelLine","lastVisibleModelPos2","ViewLineInfoGroupedByModelRange","getModelEndPositionOfViewLine","activeViewPosition","modelActivePosition","resultPerViewLine","getViewLineInfosGroupedByModelRanges","modelRangeStartLineNumber","bracketGuidesPerModelLine","getLinesBracketGuides","isWrappedLineContinuation","getMinColumnOfViewLine","modelStart","modelEnd","resultRepeatCount","resultRepeatOption","modelStartLineIndex","modelEndLineIndex","reqStart","viewLineStartIndex","viewLineEndIndex","viewIndents","currIndex","blockAtIndex","getViewLineContent","getViewLineLength","startModelLineIndex","startRemainder","fromViewLineIndex","remainingViewLineCount","toViewLineIndex","getViewLinesData","computedModelColumn","validViewStart","validViewEnd","inputColumn","_modelLineNumber","inputLineNumber","lineIndexChanged","getViewPositionOfModelPosition","finalResult","finalResultLen","prevDecId","VisibleIdentitySplitLine","InvisibleIdentitySplitLine","_outputLineIndex","inflate","_fromOuputLineIndex","_toOutputLineIndex","globalStartIndex","outputColumn","_inputColumn","outputPosition","_outputColumn","_globalStartIndex","_needed","_deltaLineNumber","SplitLine","_lineBreakData","getInputOffsetOfOutputPosition","applyInjectedText","spaces","_getViewLineMinColumn","deltaStartIndex","withInserted","lineStartOffsetInUnwrappedLine","lineEndOffsetInUnwrappedLine","sliceAndInflate","getInputStartOffsetOfOutputLineIndex","getInputEndOffsetOfOutputLineIndex","fromOuputLineIndex","toOutputLineIndex","globalIndex","adjustedColumn","getOutputPositionOfInputOffset","baseViewLineNumber","normalizedOffsetInUnwrappedLine","normalizeOffsetAroundInjections","getInjectedText","_spaces","_makeSpaces","IdentityCoordinatesConverter","_validPosition","_validRange","IdentityLinesCollection","_newTabSize","_wrappingStrategy","_wrappingColumn","_wrappingIndent","previousLineBreakData","_minLineNumber","_maxLineNumber","ViewModelDecorations","linesCollection","_decorationsCache","_cachedModelDecorationsResolver","_cachedModelDecorationsResolverViewRange","_clearCachedModelDecorationsResolver","modelDecoration","cacheIsValid","_getDecorationsViewportData","viewportRange","modelDecorations","decorationsInViewport","decorationsInViewportLen","decorationOptions","viewModelDecoration","_getOrCreateViewModelDecoration","inlineDecoration","intersectedStartLineNumber","intersectedEndLineNumber","ViewModel","_eventDispatcher","_tokenizeViewportSoon","_updateConfigurationViewLineCount","_updateConfigurationViewLineCountNow","_viewportStartLine","_viewportStartLineTrackedRange","_viewportStartLineDelta","createCoordinatesConverter","_cursor","emitSingleViewEvent","_registerModelEvents","_onConfigurationChanged","setViewLineCount","linesViewportData","viewVisibleRange","modelVisibleRanges","_toModelVisibleRanges","modelVisibleRange","previousViewportStartModelPosition","previousViewportStartViewPosition","restorePreviousViewportStart","setWrappingSettings","viewPositionTop","shouldRecreate","updateConfiguration","hadOtherModelChange","hadModelLineChangeThatChangedLineMapping","textModelEvents","lineBreaksOffset","onModelFlushed","linesDeletedEvent","onModelLinesDeleted","insertedLineBreaks","linesInsertedEvent","onModelLinesInserted","changedLineBreakData","onModelLineChanged","linesChangedEvent","acceptVersionId","setMaxLineNumber","getAttachedEditorCount","onModelContentChanged","viewRanges","setTabSize","onModelDecorationsChanged","linesAround","startViewLineNumber","endViewLineNumber","getHiddenAreas","hiddenStartLineNumber","hiddenEndLineNumber","getLinesViewportDataAtScrollTop","compatViewState","saveState","firstViewLineNumber","firstPosition","firstPositionDeltaTop","_reduceRestoreStateCompatibility","viewportStartLineTop","getViewLinesIndentGuides","getViewLinesBracketGuides","getDecorationsViewportData","getTabSize","toInlineDecoration","getOverviewRulerDecorations","OverviewRulerDecorations","invalidateCachedColor","modelAnchor","modelRanges","forceCRLF","hasEmptyRange","hasNonEmptyRange","modelLineNumbers","prevModelLineNumber","_getColorMap","_getHTMLToCopy","tokenizeLineToHTML","_withViewEventsCollector","restoreState","_executeCursorEdit","setIsDoingComposition","_asMap","prevGroup","prevData","prevEndLineNumber","WrappingCharacterClassifier","BREAK_BEFORE","BREAK_AFTER","arrPool1","arrPool2","MonospaceLineBreaksComputerFactory","breakBeforeChars","breakAfterChars","previousBreakingData","columnsForFullWidthChar","createLineBreaks","createLineBreaksFromPreviousLineBreaks","firstLineBreakColumn","prevBreakingOffsets","prevBreakingOffsetsVisibleColumn","computeWrappedTextIndentLength","wrappedLineBreakColumn","breakingOffsets","breakingOffsetsVisibleColumn","breakingOffsetsCount","lastBreakingOffset","lastBreakingOffsetVisibleColumn","breakingColumn","prevLen","bestDistance","prevBreakOffset","prevBreakOffsetVisibleColumn","breakOffset","breakOffsetVisibleColumn","forcedBreakOffset","forcedBreakOffsetVisibleColumn","prevCharCodeClass","entireLineFits","charStartOffset","charCodeClass","computeCharWidth","canBreak","hitATabCharacter","prevCharWidth","remainingWidthOfNextLine","charCodeAtForcedBreakOffset","_lineText","tabCharacterWidth","numberOfAdditionalTabs","DOMLineBreaksComputerFactory","injectedTextsPerLine","createEmptyLineBreakWithPossiblyInjectedText","requestIdx","overallWidth","additionalIndent","additionalIndentSize","additionalIndentLength","containerDomNode","firstNonWhitespaceIndices","wrappedTextIndentLengths","renderLineContents","allCharOffsets","allVisibleColumns","indentWidth","renderLineContent","lineDomNodes","readLineBreaks","visibleColumns","curInjectedTexts","initialVisibleColumn","wrappingIndentLength","hangingOffset","charOffsets","spans","discoverBreaks","lowRects","highRects","readClientRect","midRects","EDITOR_ID","ModelData","hasRealView","listenersToRemove","onBeforeDetached","codeEditorWidgetOptions","_onDidChangeModelContent","_onDidChangeModelLanguage","_onDidChangeModelLanguageConfiguration","onDidChangeModelLanguageConfiguration","_onDidChangeModelOptions","onDidChangeModelOptions","_onDidChangeModelDecorations","onDidChangeModelDecorations","_onDidChangeConfiguration","_onDidChangeModel","_onDidChangeCursorPosition","_onDidChangeCursorSelection","_onDidLayoutChange","_editorTextFocus","BooleanEventEmitter","onDidFocusEditorText","onDidChangeToTrue","onDidChangeToFalse","_editorWidgetFocus","onDidFocusEditorWidget","_onWillType","onWillType","_onDidType","_onDidCompositionStart","onDidCompositionStart","_onDidCompositionEnd","onDidCompositionEnd","_onDidPaste","onDidPaste","_onMouseDrag","_onMouseDrop","_onMouseDropCanceled","_onDidScrollChange","_onDidChangeViewZones","onDidChangeViewZones","_onDidChangeHiddenAreas","onDidChangeHiddenAreas","_domElement","_overflowWidgetsDomNode","_decorationTypeKeysToIds","_decorationTypeSubtypes","_telemetryData","telemetryData","_createConfiguration","_notificationService","_codeEditorService","EditorContextKeysManager","EditorModeContext","createChild","_modelData","_contributions","_focusTracker","CodeEditorWidgetFocusTracker","contribution","internalAction","InternalEditorAction","addCodeEditor","removeCodeEditor","contributionId","_removeDecorationTypes","_postDetachModelCleanup","_detachModel","eolPreference","detachedModel","_attachModel","oldModelUrl","newModelUrl","subTypes","subType","_removeDecorationType","getVisibleRangesPlusViewportAboveBelow","_getVerticalOffsetForPosition","validatedModelRange","_revealLine","revealType","_sendRevealRange","_revealPosition","something","isSelection","isRange","_setSelectionImpl","_revealLines","revealVerticalInCenter","_revealRange","contributionsState","saveViewState","saveCursorState","codeEditorState","restoreCursorState","restoreViewState","reducedState","reduceRestoreState","_startComposition","_endComposition","replaceCharCnt","_paste","_cut","_triggerEditorCommand","_triggerCommand","endCursorState","changeDecorations","getLineDecorations","decorationTypeKey","createOverviewRuler","observeReferenceElement","getOffsetForColumn","forceRedraw","setIsDominatedByLongLines","onBeforeAttached","secondarySelections","_createView","viewUserInputEvents","removeAllDecorationsWithOwnerId","removeDomNode","modelData","_onDidChangeToTrue","_onDidChangeToFalse","_editorSimpleInput","_editorFocus","_textInputFocus","_editorTabMovesFocus","_editorReadonly","_inDiffEditor","_editorColumnSelection","_hasMultipleSelections","_hasNonEmptySelection","_canUndo","_canRedo","_updateFromConfig","_updateFromSelection","_updateFromFocus","_updateFromModel","hasWidgetFocus","_langId","_hasCompletionItemProvider","_hasCodeActionsProvider","_hasCodeLensProvider","_hasDefinitionProvider","_hasDeclarationProvider","_hasImplementationProvider","_hasTypeDefinitionProvider","_hasHoverProvider","_hasDocumentHighlightProvider","_hasDocumentSymbolProvider","_hasReferenceProvider","_hasRenameProvider","_hasSignatureHelpProvider","_hasInlayHintsProvider","_hasDocumentFormattingProvider","_hasDocumentSelectionFormattingProvider","_hasMultipleDocumentFormattingProvider","_hasMultipleDocumentSelectionFormattingProvider","_isInWalkThrough","_domFocusTracker","squigglyStart","squigglyEnd","getSquigglySVGData","dotdotdotStart","dotdotdotEnd","errorBorderColor","warningBorderColor","warningForeground","infoBorderColor","infoForeground","hintBorderColor","hintForeground","unnecessaryForeground","unnecessaryBorder","deprecatedForeground","MonacoEditor","DropdownMenu","_contextMenuProvider","contextMenuProvider","actionProvider","menuClassName","menuAsChild","_menuOptions","getActionsContext","menuOptions","getActionViewItem","getMenuClassName","anchorAlignment","_onDidChangeVisibility","onDidChangeVisibility","labelRenderer","GestureEventType","cleanupFn","boxContainer","DropdownMenuActionViewItem","menuActionsOrProvider","actionItem","isActionsArray","dropdownMenu","keybindingProvider","anchorAlignmentProvider","createAndFillInActionBarActions","primaryGroup","primaryMaxCount","shouldInlineSubmenu","useSeparatorsInPrimaryActions","useAlternativeActions","primaryBucket","secondaryBucket","isPrimaryAction","actionGroup","submenuInfo","newLen","submenuActions","fillInActions","asDisposable","MenuEntryActionViewItem","_wantsAltCommand","_itemClassDispose","_menuItemAction","_commandAction","_updateItemClass","alternativeKeyDown","keyStatus","updateAltState","wantsAltCommand","keybindingLabel","altTooltip","altKeybinding","altKeybindingLabel","altTitleSection","iconClasses","removeProperty","SubmenuEntryActionViewItem","contextMenuService","dropdownOptions","DropdownWithDefaultActionViewItem","submenuAction","_instaService","_storageService","defaultAction","_storageKey","defaultActionId","_defaultAction","_dropdown","lastAction","primaryContainer","dropdownContainer","rememberDefaultAction","ArrayNavigator","HistoryNavigator","_initialize","_history","_currentPosition","_navigator","_reduceToLimit","currentElement","defaultOpts","InputBox","contextViewProvider","_onDidHeightChange","onDidHeightChange","flexibleHeight","onfocus","onblur","flexibleMaxHeight","flexibleWidth","onAnchoredSelectionChange","anchorNode","updateScrollDimensions","showPlaceholderOnFocus","setPlaceHolder","setTooltip","oninput","onValueChange","ignoreGesture","updateMirror","actionbar","_hideMessage","_showMessage","placeHolder","horizontalPadding","cachedContentHeight","classForType","stylesForType","errorMsg","inputElement","hideMessage","alertText","showContextView","renderOptions","spanElement","formatContent","aria","hideContextView","borderStyle","previousHeight","HistoryInputBox","NLS_PLACEHOLDER_HISTORY_HINT","NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX","NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS","addSuffix","showHistoryHint","getHistory","suffixedPlaceholder","observer","MutationObserver","mutationList","mutation","attributeFilter","resetPlaceholder","historyHint","revertedPlaceholder","getCurrentValue","addToHistory","getNextValue","getPreviousValue","UpdatableHoverWidget","hoverDelegate","fadeInAnimation","markdownTooltip","_cancellationTokenSource","resolvedContent","markdownNotSupportedFallback","_hoverWidget","oldHoverWidget","hasContent","hoverOptions","showPointer","hoverPosition","skipFadeInAnimation","showHover","FastLabelNode","_textContent","IconLabel","customHovers","labelContainer","nameContainer","descriptionContainer","supportHighlights","nameNode","LabelWithHighlights","Label","supportDescriptionHighlights","descriptionNodeFactory","strikethrough","setupHover","descriptionTitle","setLabel","descriptionNode","descriptionMatches","htmlElement","previousCustomHover","hoverDisposable","hoverPreparation","hoverWidget","hideHover","disposeWidget","disposePreparation","onDidHideHover","triggerShowHover","mouseOverDomEmitter","toDispose","fromElement","targetElements","newTooltip","setupCustomHover","setupNativeHover","singleLabel","labelEscapeNewLines","labelStart","labelRange","splitMatches","devAssert","safeGlobal","needToRemove","NODE_ENV","DocumentType","operationName","Query","Mutation","Subscription","fragments","queries","mutations","subscriptions","State","Sizing","separatorBorder","ViewItem","_cachedVisibleSize","cachedVisibleSize","viewMinimumSize","viewMaximumSize","minimumSize","maximumSize","snap","layoutContext","layoutContainer","VerticalViewItem","HorizontalViewItem","Distribute","Split","Invisible","contentSize","proportions","sashItems","_onDidSashChange","onDidSashChange","_onDidSashReset","_startSnappingEnabled","_endSnappingEnabled","inverseAltBehavior","proportionalLayout","sashContainer","viewContainer","viewDescriptor","sizing","doAddView","saveProportions","startSnappingEnabled","updateSashEnablement","endSnappingEnabled","skipLayout","previousSize","lowPriorityIndexes","highPriorityIndexes","distributeEmptySpace","layoutViews","resetSashDragState","sashDragState","snapBefore","snapAfter","sizes","minDelta","NEGATIVE_INFINITY","maxDelta","viewItem","upIndexes","downIndexes","minDeltaUp","maxDeltaUp","maxDeltaDown","minDeltaDown","snapBeforeIndex","findFirstSnapIndex","snapAfterIndex","halfSize","limitDelta","newDelta","isLastSash","newSizes","viewItemIndex","newMinDelta","newMaxDelta","resizeIndex","relayout","Busy","flexibleViewItems","flexibleSize","viewSize","onChangeDisposable","onViewChange","containerDisposable","getSashPosition","sashEventMapper","onStartDisposable","onSashStart","onSashChange","onEnd","onEndDisposable","onSashEnd","onDidResetDisposable","sashItem","distributeViewSizes","overloadMinDelta","overloadMaxDelta","upItems","upSizes","downItems","downSizes","snapped","snapView","deltaUp","viewDelta","deltaDown","lowPriorityIndex","emptyDelta","updateScrollableElement","collapsesDown","expandsDown","reverseViews","collapsesUp","expandsUp","snappedBefore","snappedAfter","MoveWordCommand","_wordNavigationType","inPosition","outPosition","_moveTo","WordLeftCommand","WordRightCommand","CursorWordStartLeft","CursorWordEndLeft","CursorWordLeft","CursorWordStartLeftSelect","CursorWordEndLeftSelect","CursorWordLeftSelect","CursorWordAccessibilityLeft","CursorWordAccessibilityLeftSelect","CursorWordStartRight","CursorWordEndRight","CursorWordRight","CursorWordStartRightSelect","CursorWordEndRightSelect","CursorWordRightSelect","CursorWordAccessibilityRight","CursorWordAccessibilityRightSelect","DeleteWordCommand","_whitespaceHeuristics","DeleteWordLeftCommand","DeleteWordRightCommand","DeleteWordStartLeft","DeleteWordEndLeft","DeleteWordLeft","DeleteWordStartRight","DeleteWordEndRight","DeleteWordRight","DeleteInsideWord","deleteInsideWord","GlobalClassNames","itemsWrapper","inputClassName","placeholderStyles","disabledPlaceholderStyles","disabledOverlayColor","alignSelf","AuBankAccountElement","FpxBankElement","IdealBankElement","IbanElement","PaymentRequestButtonElement","CardCVCElement","CardCvcElement","CardExpiryElement","CardNumberElement","CardElement","Elements","injectStripe","StripeProvider","_Provider2","_interopRequireDefault","_inject2","_Elements2","_Element2","_PaymentRequestButtonElement2","impliedTokenType","impliedSourceType","impliedPaymentMethodType","Memory","topScore","preselect","NoMemory","LRUMemory","_seq","lineSuffix","indexPreselect","indexRecency","PrefixMemory","_trie","forStrings","findSubstr","SuggestMemoryService","_configService","_persistSoon","_saveState","SHUTDOWN","_withStrategy","memorize","_strategy","_strategyCtors","_storagePrefix","ISuggestMemoryService","WordContextKey","_ckAtEnd","AtEnd","_configListener","_selectionListener","checkForWordEnd","SuggestAlternatives","_ckOtherSuggestions","OtherSuggestions","_acceptNext","_ignore","acceptNext","_moveIndex","fwd","CommitCharacterController","_onItem","_active","acceptCharacters","commitCharacters","WordDistance","canComputeWordRanges","BracketSelectionRangeProvider","provideSelectionRanges","computeWordRanges","wordRanges","wordUntilPos","wordLines","bestWordRange","blockDistance","CompletionModel","lineContext","wordDistance","_snippetCompareFn","_compareCompletionItems","_items","_wordDistance","_refilterKind","_lineContext","_compareCompletionItemsSnippetsUp","_compareCompletionItemsSnippetsDown","leadingLineContent","characterCountDelta","_filteredItems","_ensureCachedState","_providerInfo","except","_stats","_createCachedState","labelLengths","scoreFn","pLabelLen","LineContext","auto","shy","leadingWord","tokenizeIfCheap","SuggestModel","_editorWorkerService","_clipboardService","_telemetryService","_configurationService","_quickSuggestDelay","_triggerCharacterListener","_triggerQuickSuggest","_completionDisposables","_onDidTrigger","_onDidSuggest","onDidSuggest","_telemetryGate","_updateTriggerCharacters","_updateQuickSuggest","_updateActiveSuggestSession","editorIsComposing","_refilterCompletionItems","supportsByTriggerCharacter","triggerCharacters","checkTriggerCharacter","allowQuickSuggestions","canShowSuggestOnTriggerCharacters","shouldAutoTrigger","supports","_completionModel","adopt","_requestToken","prevSelection","_doTriggerQuickSuggest","isInSnippet","canShowQuickSuggest","_onNewContext","onlyFrom","suggestCtx","_createSuggestFilter","itemKindFilter","itemKind","cmpFn","_reportDurationsTelemetry","inactiveProvider","allProvider","oldLineContext","completionModel","OvertypingCapturer","suggestModel","_lastOvertyped","selectionsLength","willOvertype","_maxSelectionLength","StatusBarViewItem","symbolPrintEnter","SuggestWidgetStatus","_menuDisposables","_leftActions","_rightActions","renderMenu","ResizableHTMLElement","_onDidWillResize","onDidWillResize","_onDidResize","onDidResize","_sashListener","_minSize","_maxSize","_eastSash","_westSash","_northSash","North","_southSash","South","east","west","north","south","_preferredSize","clearSashHoverState","canExpandCompletionItem","SuggestDetailsWidget","_onDidChangeContents","onDidChangeContents","_renderDisposeable","_borderWidth","_markdownRenderer","_body","_header","_close","_docs","_configureFont","fontSizePx","lineHeightPx","borderHeight","verticalPadding","explainMode","md","appendCodeblock","cappedDetail","renderedContents","clearContents","scrollDown","scrollUp","FileKind","SuggestDetailsOverlay","topLeftNow","sizeNow","_added","_resizable","enableSashes","_topLeft","updateTopLeft","_applyTopLeft","_userSize","_anchorBox","_placeAtAnchor","sessionEnded","anchorBox","alignAtTop","maxSize","bodyBox","defaultMinSize","defaultTop","eastPlacement","maxSizeTop","maxSizeBottom","fit","minSize","placements","getIconClasses","modelService","fileKind","ROOT_FOLDER","FOLDER","cssEscape","dotSegments","detectedModeId","modeId","getModeId","getModeIdByFilepathOrFirstLine","detectModeId","getAriaId","suggestMoreInfoIcon","_completionItemColor","ColorExtractor","_regexStrict","_regexRelaxed","ItemRenderer","_modelService","_onDidToggleDetails","onDidToggleDetails","colorspan","main","iconContainer","iconLabel","parametersLabel","qualifierLabel","detailsLabel","readMore","configureFont","labelOptions","extract","getFileIconTheme","hasFileIcons","labelClasses","FILE","detailClasses","hasFolderIcons","stripNewLines","editorSuggestWidgetBackground","editorSuggestWidgetBorder","editorSuggestWidgetForeground","editorSuggestWidgetSelectedForeground","editorSuggestWidgetSelectedIconForeground","editorSuggestWidgetSelectedBackground","editorSuggestWidgetHighlightForeground","editorSuggestWidgetHighlightFocusForeground","PersistedWidgetSize","_service","SuggestWidget","_isAuto","_ignoreFocusEvents","_forceRenderingAbove","_explainMode","_showTimeout","_onDidSelect","_onDidHide","_onDidShow","onDidSelect","_onDetailsKeydown","onDetailsKeyDown","_contentWidget","SuggestContentWidget","_persistedSize","ResizeState","persistedSize","persistHeight","persistWidth","lockPreference","_resize","itemHeight","defaultSize","unlockPreference","_messageElement","_listElement","toggleDetails","_details","applyIconStyle","_list","_isDetailsVisible","docs","_status","applyStatusBarStyle","_onThemeChange","_onListMouseDownOrTap","_onListSelection","_onListFocus","_onCursorSelectionChanged","_ctxSuggestWidgetVisible","SuggestContext","_ctxSuggestWidgetDetailsVisible","_ctxSuggestWidgetMultipleSuggestions","_onEditorMouseDown","_loadingTimeout","_select","_detailsBorderColor","focusBorderColor","_detailsFocusBorderColor","_currentSuggestionDetails","_focusedItem","showDetails","_cappedHeight","LOADING_MESSAGE","NO_SUGGESTIONS_MESSAGE","_layout","selectionIndex","isAuto","visibleCount","_setDetailsVisible","renderLoading","renderItem","_positionDetails","dim","minPersistedHeight","setPreference","preferredWidth","stats","fullHeight","statusBarHeight","editorBox","cursorBox","cursorBottom","maxHeightBelow","availableSpaceAbove","maxHeightAbove","capped","wanted","preferredSize","placeAtAnchor","_preferenceLocked","_hidden","_afterRender","matchHighlight","matchHighlightFocus","selectedForeground","selectedIconForeground","linkHover","codeBackground","LineSuffix","_marker","_memoryService","_lineSuffix","PriorityRegistry","ctxInsertMode","_insertSuggestion","commitCharacterController","ctxMakesTextEdit","ctxHasInsertAndReplace","ctxCanResolve","_overtypingCapturer","_alternatives","showTriggered","itemsOrderedByPriorityDesc","showSuggestions","hideWidget","acceptSuggestionsOnEnter","updateFromConfig","modelVersionNow","tasks","restoreRelativeVerticalPositionOfCursor","docListener","thisPosition","oldFlags","didType","typeListener","applied","TriggerSuggestAction","_alertCompletionItem","positionNow","makesTextEdit","keepAlternativeSuggestions","alternativeOverwriteConfig","selectNext","selectNextPage","selectLast","selectPrevious","selectPreviousPage","toggleExplainMode","toggleDetailsFocus","resetPersistedSize","prioritySelector","SuggestCommand","acceptSelectedSuggestion","isEqualTo","registerCommandAlias","cancelSuggestWidget","selectNextSuggestion","selectNextPageSuggestion","selectLastSuggestion","selectPrevSuggestion","selectPrevPageSuggestion","selectFirstSuggestion","toggleSuggestionDetails","toggleSuggestionFocus","triggerSuggestAndAcceptBest","acceptNextSuggestion","acceptPrevSuggestion","resetWidgetSize","DataSource","_resolverService","Delegate","FileReferencesRenderer","OneReferenceRenderer","StringRepresentationProvider","IdentityProvider","FileReferencesTemplate","_uriLabel","badge","CountBadge","getUriLabel","setCount","setTitleFormat","OneReferenceTemplate","AccessibilityProvider","ariaMessage","DecorationsManager","_decorationIgnoreSet","_callOnDispose","_callOnModelChange","_onModelChanged","removeDecorations","_addDecorations","_onDecorationChanged","newDecorationsActualIndex","oneReference","LayoutData","ReferencesTree","ReferenceWidget","_defaultTreeKeyboardSupport","layoutData","_textModelResolverService","_peekViewService","_disposeOnNewModel","_onDidSelectReference","onDidSelectReference","_dim","_applyTheme","addExclusiveWidget","_preview","_previewNotAvailableMessage","_previewModelReference","_splitView","peekView","revealRangeInCenterIfOutsideViewport","_getFocusedReference","containerElement","_messageContainer","_previewContainer","_treeContainer","addView","_revealReference","resizeView","newModel","_onNewModel","setTitle","_decorationsManager","focusOnReferenceTree","setInput","revealParent","_revealedReference","getInput","revealRangeInCenter","findMatchHighlightColor","referenceHighlightColor","referenceHighlightBorder","hcOutline","resultsBackground","resultsMatchForeground","resultsFileForeground","resultsSelectedBackground","resultsSelectedForeground","editorGutterBackground","ctxReferenceSearchVisible","ReferencesController","_editorService","_requestIdPool","_ignoreModelChangeEvent","_referenceSearchVisible","modelPromise","peekMode","closeWidget","_peekMode","storageKey","openReference","_gotoReference","requestId","setMetaTitle","nearestReference","focusOnPreviewEditor","isPreviewEditorFocused","currentPosition","nextOrPreviousReference","editorFocus","previewEditorFocus","revealReference","focusEditor","openCodeEditor","openedEditor","toggleWidget","withController","outerEditor","registerCommandAndKeybindingRule","changeFocusBetweenPreviewAndReferences","goToNextOrPreviousReference","lastFocusedList","canUseWeakMap","product","canUseWeakSet","canUseSymbol","classNamesFunction","RootType","required","styled","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","overflowWrap","formatValue","seenValues","previouslySeenValues","isJSONable","jsonValue","formatArray","getObjectTag","formatObject","formatObjectValue","formatRule","concatStyleSets","styleSets","subComponentStyles","mergedSet","workingSubcomponentStyles","currentSet","currentComponentStyles","subCompProp","mergedValue","mergedSubStyles","styleProps","styleFunctionOrObject","_arrayLikeToArray","DocumentCardTitleGlobalClassNames","showAsSecondaryTitle","DocumentCardPreviewGlobalClassNames","isFileList","borderBottom","previewIcon","fileList","listStyleType","li","fileListIcon","fileListLink","fileListOverflowText","isButton","isDisabled","isUnderlined","linkColor","linkInteractedColor","linkDisabledColor","hasDifferentOriginAncestorFlag","sameOriginWindowChainCache","getParentWindowIfSameOrigin","iframeElement","frameElement","childWindow","ancestorWindow","windowChainEl","boundingRect","escapeNewLine","_writeStringSize","_writeString","_readString","prevEdits","currEdits","TextChangeCompressor","_prevEdits","_currEdits","_resultLen","_prevLen","_prevDeltaOffset","_currLen","_currDeltaOffset","prevEdit","_getPrev","currEdit","_getCurr","_acceptCurr","_acceptPrev","_splitCurr","_splitPrev","mergePrev","mergeCurr","_removeNoOps","_rebaseCurr","_rebasePrev","prevDeltaOffset","currDeltaOffset","preText","postText","getColors","provideDocumentColors","colorInfo","getColorPresentations","provideColorPresentations","rawCIs","ci","presentations","prevTabStopPosition","prevTabStopVisibleColumn","whitespaceVisibleColumn","targetVisibleColumn","_tokenizeToString","viewLineTokens","useNbsp","prevIsSpace","partContent","tokenizationResult","countFormat","titleFormat","newEol","singleEdits","_edits","addUndoStops","_handleEolEdits","_isFullModelReplaceEdit","computeModelSha1","shaComputer","digest","_modelEventListeners","_languageSelection","_languageSelectionListener","_disposeLanguageSelection","languageSelection","setMode","DEFAULT_EOL","DisposedModelInfo","initialUndoRedoSnapshot","sharesUndoRedoStack","sha1","ModelServiceImpl","_resourcePropertiesService","_onModelAdded","onModelAdded","_onModelRemoved","onModelRemoved","_onModelModeChanged","onModelModeChanged","_modelCreationOptionsByLanguageAndResource","_models","_disposedModels","_disposedModelsHeapSize","_semanticStyling","SemanticStyling","_updateModelOptions","SemanticColoringFeature","_readModelOptions","oldOptionsByLanguageAndResource","modelId","getCreationOptions","_setModelOptionsForModel","disposedModelData","maxModelsHeapSize","disposedModels","disposedModel","_removeDisposedModel","restoreSnapshot","sha1IsEqual","past","matchesResource","future","setElementsValidFlag","_overwriteVersionId","_overwriteInitialUndoRedoSnapshot","_createModelData","setLanguage","getUriComparisonKey","maintainUndoRedoStack","_shouldRestoreUndoStack","_schemaShouldMaintainUndoRedoElements","maxMemory","MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK","getInitialUndoRedoSnapshot","_ensureDisposedModelsHeapSize","_insertDisposedModel","oldModeId","newModeId","parsedTabSize","parsedIndentSize","newDefaultEOL","currentOptions","SEMANTIC_HIGHLIGHTING_SETTING_ID","isSemanticColoringEnabled","setting","semanticHighlighting","semanticStyling","_watchers","ModelSemanticColoring","deregister","modelSemanticColoring","handleSettingOrThemeChange","getModels","_caches","SemanticTokensProviderStyling","SemanticTokensResponse","stylingProvider","_fetchDocumentSemanticTokens","_fetchDocumentSemanticTokensNow","FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY","_currentDocumentResponse","_currentDocumentRequestCancellationTokenSource","_documentProvidersChangeListeners","_setDocumentSemanticTokens","bindDocumentChangeListeners","cancellationTokenSource","pendingChanges","contentChangeListener","styling","setSemanticTokens","currentResponse","rescheduleIfNeeded","deltaLength","srcData","destData","srcLastStart","destLastStart","copyCount","_copy","toMultilineTokens2","singleChange","applyEdit","_legend","_hashTable","HashTable","_hasWarnedOverlappingTokens","tokenTypeIndex","tokenModifierSet","encodedLanguageId","tokenTypes","tokenModifiers","modifierSet","modifierIndex","tokenStyle","getTokenStyleMetadata","underline","tokensPerArea","lastStartCharacter","tokenStartIndex","smallTokenEndIndex","bigTokenEndIndex","areaLine","prevLineNumber","prevStartCharacter","prevEndCharacter","deltaCharacter","warnOverlappingSemanticTokens","HashTableEntry","_elementsCount","_currentLengthIndex","_currentLength","_SIZES","_growCount","_nullOutEntries","n1","n2","_hash2","_hashFunc","oldElements","oldNext","_add","strToGMTString","strToUTCString","strExpires","strEmpty","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_isMgrEnabled","cookieMgr","rootConfig","_extractParts","theValue","_formatDate","theDate","_formatCookieValue","_getCookieValue","_setCookieValue","cookieValue","FindDecorations","_overviewRulerApproximateDecorations","_findScopeDecorationIds","_rangeHighlightDecorationId","_highlightedDecorationId","_startPosition","_allDecorations","scopes","findScopeDecorationId","newStartPosition","setCurrentFindMatch","desiredRange","candidateOpts","_FIND_MATCH_DECORATION","_CURRENT_FIND_MATCH_DECORATION","_getDecorationIndex","nextMatch","newCurrentDecorationId","matchPosition","lineBeforeEnd","lineBeforeEndMaxColumn","_RANGE_HIGHLIGHT_DECORATION","findScopes","findMatchesOptions","newOverviewRulerApproximateDecorations","_FIND_MATCH_NO_OVERVIEW_DECORATION","approxPixelsPerLine","mergeLinesDelta","prevStartLineNumber","_FIND_MATCH_ONLY_OVERVIEW_DECORATION","newFindMatchesDecorations","findScope","_FIND_SCOPE_DECORATION","ReplaceAllCommand","editorSelection","replaceStrings","_editorSelection","_replaceStrings","_trackedEditorSelectionId","o1","o2","resultOps","buildReplaceStringWithCasePreserved","containsHyphens","validateSpecificSpecialCharacter","containsUnderscores","buildReplaceStringForSpecificSpecialCharacter","specialCharacter","splitPatternAtSpecialCharacter","splitMatchAtSpecialCharacter","replaceString","splitValue","StaticValueReplacePattern","staticValue","DynamicPiecesReplacePattern","ReplacePattern","_substitute","caseOps","lenOps","opIdx","ReplacePiece","ReplacePieceBuilder","_lastCharIndex","_currentStaticPiece","toCharIndex","_emitStatic","emitUnchanged","CONTEXT_FIND_WIDGET_VISIBLE","CONTEXT_FIND_INPUT_FOCUSED","CONTEXT_REPLACE_INPUT_FOCUSED","ToggleCaseSensitiveKeybinding","ToggleWholeWordKeybinding","ToggleRegexKeybinding","ToggleSearchScopeKeybinding","TogglePreserveCaseKeybinding","FIND_IDS","MATCHES_LIMIT","FindModelBoundToEditorModel","_startSearchingTimer","_updateDecorationsScheduler","research","setStartPosition","_ignoreModelContentChanged","onFindReplaceStateChange","_onStateChanged","isReplaceRevealed","moveCursor","newFindScope","getFindScopes","_findMatches","currentMatchesPosition","getCurrentMatchesPosition","matchAfterSelection","changeMatchInfo","_moveToNextMatch","matchesCount","_hasMatches","getFindScope","matchesPosition","isUsingLineStops","isRecursed","canNavigateBack","prevMatchRange","matchBeforePosition","_prevSearchPosition","_setCurrentFindMatch","_cannotFind","_getSearchRange","prevMatch","_moveToPrevMatch","nextMatchRange","matchAfterPosition","canNavigateForward","_nextSearchPosition","_getNextMatch","forceMove","emitStatic","emitMatchIndex","nextNextChCode","parseReplaceString","fromStaticValue","replacePattern","_getReplacePattern","buildReplaceString","_executeEditorCommand","_largeReplaceAll","_regularReplaceAll","mod","resultText","modelText","hasReplacementPatterns","Checkbox","actionClassName","notFocusable","onkeydown","keyboardEvent","newIsChecked","NLS_CASE_SENSITIVE_CHECKBOX_LABEL","NLS_WHOLE_WORD_CHECKBOX_LABEL","NLS_REGEX_CHECKBOX_LABEL","CaseSensitiveCheckbox","appendTitle","WholeWordsCheckbox","RegexCheckbox","FindOptionsWidget","_hideSoon","inputActiveOptionBorderColor","inputActiveOptionForegroundColor","inputActiveOptionBackgroundColor","_keybindingLabelFor","wholeWords","isRevealed","_revealTemporarily","actionId","inputStyles","effectiveOptionValue","override","widgetBackground","widgetForeground","widgetShadowColor","hcBorder","FindReplaceState","_onFindReplaceStateChange","_searchString","_replaceString","_isRevealed","_isReplaceRevealed","_isRegex","_isRegexOverride","_wholeWord","_wholeWordOverride","_matchCase","_matchCaseOverride","_preserveCase","_preserveCaseOverride","_searchScope","_matchesPosition","_matchesCount","_currentMatch","_loop","currentMatch","updateHistory","oldEffectiveIsRegex","oldEffectiveWholeWords","oldEffectiveMatchCase","oldEffectivePreserveCase","newSearchScope","existingSearchScope","isRegexOverride","wholeWordOverride","matchCaseOverride","preserveCaseOverride","canNavigateInLoop","NLS_DEFAULT_LABEL","FindInput","_showOptionButtons","fixFocusOnOptionClickEnabled","imeSessionInProgress","_onDidOptionChange","onDidOptionChange","_onInput","_onCaseSensitiveKeyDown","onCaseSensitiveKeyDown","_onRegexKeyDown","onRegexKeyDown","_lastHighlightFindOptions","appendCaseSensitiveLabel","appendWholeWordsLabel","appendRegexLabel","inputBox","viaKeyboard","onkeyup","checkBoxStyles","inputBoxStyles","NLS_PRESERVE_CASE_LABEL","PreserveCaseCheckbox","ReplaceInput","cachedOptionsWidth","_onPreserveCaseKeyDown","onPreserveCaseKeyDown","appendPreserveCaseLabel","newWidth","HistoryNavigationWidgetContext","HistoryNavigationForwardsEnablementContext","HistoryNavigationBackwardsEnablementContext","getContextScopedWidget","contextKey","createAndBindHistoryNavigationWidgetScopedContextKeyService","scopedContextKeyService","createWidgetScopedContextKeyService","bindContextScopedWidget","historyNavigationForwardsEnablement","historyNavigationBackwardsEnablement","ContextScopedFindInput","showFindOptions","historyNavigator","ContextScopedReplaceInput","showReplaceOptions","showHistoryKeybindingHint","getElectronAccelerator","showPreviousValue","showNextValue","findSelectionIcon","findCollapsedIcon","findExpandedIcon","findReplaceIcon","findReplaceAllIcon","findPreviousMatchIcon","findNextMatchIcon","NLS_FIND_INPUT_LABEL","NLS_FIND_INPUT_PLACEHOLDER","NLS_PREVIOUS_MATCH_BTN_LABEL","NLS_NEXT_MATCH_BTN_LABEL","NLS_TOGGLE_SELECTION_FIND_TITLE","NLS_CLOSE_BTN_LABEL","NLS_REPLACE_INPUT_LABEL","NLS_REPLACE_INPUT_PLACEHOLDER","NLS_REPLACE_BTN_LABEL","NLS_REPLACE_ALL_BTN_LABEL","NLS_TOGGLE_REPLACE_MODE_BTN_LABEL","NLS_MATCHES_COUNT_LIMIT_TITLE","NLS_MATCHES_LOCATION","NLS_NO_RESULTS","FIND_WIDGET_INITIAL_WIDTH","MAX_MATCHES_COUNT_WIDTH","ctrlEnterReplaceAllWarningPromptedKey","FindWidgetViewZone","stopPropagationForMultiLineUpwards","textarea","isMultiline","stopPropagationForMultiLineDownwards","FindWidget","codeEditor","storageService","_cachedHeight","_revealTimeouts","_codeEditor","_controller","_contextViewProvider","_ctrlEnterReplaceAllWarningPrompted","_isReplaceVisible","_ignoreChangeEvent","_updateHistoryDelayer","_buildDomNode","_updateButtons","_tryUpdateWidgetWidth","_findInput","updateAccessibilitySupport","_showViewZone","_removeViewZone","_updateToggleSelectionFindButton","getGlobalBufferTerm","globalBufferTerm","_findInputFocused","_findFocusTracker","_updateSearchScope","_replaceInputFocused","_replaceFocusTracker","_replaceInput","_layoutViewZone","_tryUpdateHeight","setRegex","setWholeWords","setCaseSensitive","setPreserveCase","_toggleSelectionFind","showRedOutline","_updateMatchesCount","_delayedUpdateHistory","_updateHistory","alertFn","setEnabled","_closeBtn","findInputIsNonEmpty","_prevBtn","_nextBtn","_replaceBtn","_replaceAllBtn","_toggleReplaceBtn","canReplace","isSelectionMultipleLine","adjustEditorScrollTop","startCoords","startLeft","startTop","leftOfFindWidget","endCoords","focusTheEditor","clearMessage","targetScrollTop","viewZone","_getHeight","adjustScroll","scrollAdjustment","editorWidth","collapsedFindWidget","reducedFindWidget","narrowFindWidget","_resized","findInputWidth","totalheight","highlightFindOptions","insertAtCursor","focusOnCaseSensitive","_sash","PART_WIDTH","getRegex","_onFindInputKeyDown","getWholeWords","getCaseSensitive","focusOnPreserve","_onFindInputMouseDown","SimpleButton","findPart","_onReplaceInputKeyDown","getPreserveCase","replacePart","replaceActionsContainer","originalWidth","currentWidth","setFocusInputOnOptionClick","addBackgroundColorRule","findMatchHighlightBorder","findMatchBorder","findRangeHighlightBorder","resizeBorderBackground","toolbarHoverBackgroundColor","focusOutline","SEARCH_STRING_MAX_LENGTH","getSelectionSearchString","seedSearchStringFromNonEmptySelection","getConfiguredWordAtPosition","CommonFindController","clipboardService","_findWidgetVisible","loadQueryState","shouldRestartFind","disposeModel","_start","forceRevealReplace","seedSearchStringFromGlobalClipboard","shouldFocus","shouldAnimate","updateSearchScope","saveQueryState","setGlobalBufferTerm","actualIsRegex","actualWholeWord","actualMatchCase","actualPreserveCase","stateChanges","selectionSearchString","currentSelections","moveToNextMatch","moveToPrevMatch","selectAllMatches","readFindText","writeFindText","FindController","_contextViewService","_findOptionsWidget","_super","_createFindWidget","focusReplaceInput","focusFindInput","ignoreWhenVisible","StartFindAction","StartFindWithSelectionAction","MatchFindAction","_run","NextMatchFindAction","PreviousMatchFindAction","SelectionMatchFindAction","setSearchString","NextSelectionMatchFindAction","PreviousSelectionMatchFindAction","StartFindReplaceAction","findInputFocused","isFindInputFocused","FindCommand","closeFindWidget","toggleCaseSensitive","toggleWholeWords","toggleRegex","toggleSearchScope","togglePreserveCase","consoleLogger","Logger","concreteLogger","bool","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","_cloned","rej","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","regexEscape","_entityMap","isIE10","ownKeys$1","_objectSpread$1","sham","Proxy","_isNativeReflectConstruct","deepFind","keySeparator","mix","joinedPath","ResourceStore","_EventEmitter","defaultNS","ignoreJSONStructure","addNamespaces","addResource","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","interpolation","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","na","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","fc","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","few","many","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","shouldUseIntlApi","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","clonedOptions","handleHasOptions","inheritedOptions","optionsString","formatters","doReduce","ownKeys$4","_objectSpread$4","Formatter","formats","NumberFormat","currency","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","initializedStoreOnce","changeLanguage","usedCallback","setLngProps","resolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","reloadResources","use","getFixedT","setDefaultNamespace","loadLanguages","SuggestionActionType","Root","DelayedRender","Announced","suggestionsItem","closeButton","suggestionsItemIsSuggested","itemButton","actionButton","buttonSelected","suggestionsTitle","suggestionsContainer","suggestionsNone","suggestionsSpinner","legacyStyles","suggestionModel","RenderSuggestion","onRemoveItem","isSelectedOverride","removeButtonAriaLabel","removeButtonIconProps","suggested","CommandButton","showRemoveButton","IconButton","StyledSuggestionsItem","suggestionsProps","_forceResolveButton","_searchForMoreButton","_selectedElement","_scrollContainer","tryHandleKeyDown","currentSuggestionIndex","isEventHandled","newSelectedActionType","currentSelectedAction","selectedActionType","suggestionLength","forceResolve","_refocusOnSuggestions","searchMore","_getAlertText","isLoading","isSearching","suggestionsAvailableAlertText","noResultsFoundText","_getMoreResults","onGetMoreResults","_forceResolve","createGenericItem","_shouldShowForceResolve","showForceResolve","_onClickTypedSuggestionsItem","onSuggestionClick","refocusSuggestions","_onRemoveTypedSuggestionsItem","onSuggestionRemove","scrollSelected","activeSelectedElement","forceResolveText","mostRecentlyUsedHeaderText","searchForMoreIcon","searchForMoreText","moreSuggestionsAvailable","loadingText","onRenderNoResultFound","searchingText","isMostRecentlyUsedVisible","resultsMaximumNumber","resultsFooterFull","resultsFooter","isResultsFooterVisible","suggestionsHeaderText","suggestionsClassName","suggestionsListId","forceResolveButtonSelected","searchForMoreButtonSelected","searchForMoreButton","forceResolveButton","suggestionsAvailable","noSuggestions","spinnerStyles","spinner","spinnerClassNameOrStyles","headerText","footerTitle","hasNoSuggestions","divProps","forceResolveId","searchForMoreId","componentRef","Spinner","noResults","_renderSuggestions","hasSuggestedAction","hasSuggestedActionSelected","executeSelectedAction","focusAboveSuggestions","focusBelowSuggestions","focusSearchForMoreButton","scrollTo","parentOffsetHeight","isBelow","onRenderSuggestion","removeSuggestionAriaLabel","suggestionsItemClassName","showRemoveButtons","suggestionsContainerAriaLabel","StyledTypedSuggestionsItem","selectedIndex","isSelected","actionButtonStyles","borderTop","actionButtonSelectedStyles","overflowY","overflowX","_isSuggestionModel","_ensureSuggestionModel","primaryText","updateSuggestions","newSuggestions","convertSuggestionsToSuggestionItems","currentSuggestion","nextSuggestion","setSelectedSuggestion","previousSuggestion","getSuggestions","getCurrentItem","getSuggestionAtIndex","hasSelectedSuggestion","removeSuggestion","createGenericSuggestion","itemToConvert","itemToAdd","deselectAllSuggestions","pickerText","inputFocused","inputDisabled","pickerInput","pickerItems","screenReaderOnly","basePickerProps","suggestionsType","suggestionElement","SuggestionOfProperType","_styledSuggestions","dismissSuggestions","selectItemFunction","addItemOnDismiss","suggestionStore","canAddItems","suggestedDisplayValue","addItemByIndex","currentPromise","suggestionsVisible","resetFocus","onInputChange","updateValue","onRemoveSuggestion","onInputFocus","setAllSelected","_userTriggeredSuggestions","inputProps","onInputBlur","elementContains","completeSuggestion","_completeGenericSuggestion","onBackspace","onSuggestionSelect","onItemChange","changedItem","_updateSelectedItems","suggestionsArray","suggestionsPromiseLike","completeSelection","processedItem","onItemSelected","processedItemObject","processedItemPromiseLike","resolvedProcessedItem","selectionRemoved","removeItems","itemsToRemove","_shouldFocusZoneEnterInnerZone","_onResolveSuggestions","updatedValue","onResolveSuggestions","updateSuggestionsList","onValidateInput","invalid","onEmptyInputFocus","selectedItems","defaultSelectedItems","_ariaMap","selectedSuggestionAlert","suggestionList","combobox","SuggestionsController","setItems","selectedIndices","newProps","resolveDelay","oldProps","currentSelectedIndex","getSelectedIndices","setIndexSelected","focusInput","forceComplete","selectionAriaLabel","selectionRole","comboLabel","renderCustomAlert","SelectionZone","selectionMode","renderItems","Autofill","spellCheck","onInputValueChange","getActiveDescendant","renderSuggestions","itemLimit","StyledTypedSuggestions","Callout","isBeakVisible","gapSpace","directionalHintForRTL","pickerCalloutProps","onRenderSuggestionsItem","suggestionsLoading","pickerSuggestionsProps","onRenderItem","newEl","itemValue","_getTextFromItem","emptyResolveSuggestions","onEmptyResolveSuggestions","_updateAndResolveValue","_getShowSuggestions","resolveNewValue","isValueSelected","cursorLocation","getSelectedCount","getSuggestionsAlert","suggestionAlertClassName","enableSelectedSuggestionAlert","selectedSuggestion","selectedSuggestionAlertText","alertClassName","suggestionRemovedText","removedItemText","itemName","_onSelectedItemsUpdated","getTextFromItem","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","preloadedState","enhancer","_ref2","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","previousStateForKey","nextStateForKey","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","applyMiddleware","middlewares","_dispatch","middlewareAPI","middleware","getColorFromRGBA","NaN","rgb2hsv","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_onErrorHandler","_noop","clearImmediate","cancelAnimationFrame","timeoutId","_logError","immediateId","intervalId","lastResult","waitMS","lastExecuteTime","userCall","waitLength","noOpFunction","markExecuted","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","hasOwn","argType","cssColor","easyColor","_rgba","_hex6","_hex3","hasAlpha","expectedPartCount","hsv","hsl2hsv","hsl2rgb","eComputedStyle","computedColor","_browserCompute","getColorFromString","inputColor","elementContextTypes","injectContextTypes","_react2","_propTypes2","_Provider","_objectWithoutProperties","getRegisteredElements","isRequired","addElementsLoadListener","registerElement","unregisterElement","_React$Component","handleRegisterElement","registeredElements","handleUnregisterElement","_this$props","stripe","getChildContext","addStripeLoadListener","Children","providerContextTypes","extractStyleParts","_processArgs","argsList","translatedArgs","_arrayWithHoles","_nonIterableRest","_iterableToArray","_construct","Parent","dedentBlockStringValue","rawString","commonIndent","_commonIndent","isFirstLine","isEmptyLine","getBlockStringIndentation","isBlank","printBlockString","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","useApolloClient","client","getFragmentQueryDocument","fragmentName","actualFragmentName","createFragmentMap","symTable","getFragmentFromSelection","findElementRecursive","matchFunction","DocumentCardLocationGlobalClassNames","IMAGE_SIZE","DocumentCardActivityGlobalClassNames","multiplePeople","activity","avatars","avatar","VERTICAL_PADDING","HORIZONTAL_PADDING","baseButtonStyles","ToggleTabFocusModeAction","setTabFocusMode","GLOBSTAR","PATH_REGEX","NO_PATH_REGEX","ALL_FORWARD_SLASHES","starsToRegExp","starCount","splitGlobAware","splitChar","inBraces","inBrackets","curVal","parseRegExp","regEx","previousSegmentWasGlobStar","braceVal","bracketVal","choices","braceRegExp","T1","T2","T3","T3_2","T4","T5","CACHE","FALSE","NULL","parsePattern","patternKey","trimForExclusions","parsedPattern","wrapRelativePattern","originalPattern","slashBase","backslashBase","basenames","patterns","allBasenames","trivia2","parsedPatterns","aggregateBasenameMatches","withBasenames","trivia3","trivia4and5","regExp","toRegExp","arg2","matchPathEnds","usingPosixSep","nativePath","nativePathEnd","targetPathEnd","testPath","hasSibling","isRelativePattern","resultPattern","parsedExpression","rp","expression","requiresSiblings","parseExpressionPattern","resultExpression","basenamePatterns","aggregate","aggregatedPatterns","hasModifier","ClickLinkMouseEvent","hasTriggerModifier","triggerModifier","hasSideBySideModifier","triggerSideBySideModifier","isNoneOrSingleMouseDown","ClickLinkKeyboardEvent","keyCodeIsTriggerKey","triggerKey","keyCodeIsSideBySideKey","triggerSideBySideKey","ClickLinkOptions","createOptions","ClickLinkGesture","_onMouseMoveOrRelevantKeyDown","onMouseMoveOrRelevantKeyDown","_onExecute","_onCancel","onCancel","_lastMouseMoveEvent","_hasTriggerKeyOnMouseDown","_lineNumberOnMouseDown","_onEditorMouseMove","_onEditorMouseUp","_onEditorKeyDown","_onEditorKeyUp","_resetHandler","currentLineNumber","changeCallback","resizeObserver","measureReferenceDomElementToken","measureReferenceDomElement","stopObserving","ResizeObserver","contentRect","callChangeCallback","observedWidth","observedHeight","_precondition","_prefixSumIndexOfResultBrand","PrefixSumComputer","prefixSumValidIndex","oldValues","oldPrefixSum","insertValuesLen","maxCount","_getPrefixSum","getTotalSum","bucket","_bracketsRightYield","_bracketsLeftYield","_maxRounds","findNextBracket","_maxDuration","findPrevBracket","closing","innerBracket","outerBracket","_addBracketLeading","aboveLine","TreeElement","candidateId","OutlineElement","OutlineGroup","OutlineModel","roots","getTopLevelSymbols","_flattenDocumentSymbols","promiseCnt","_requestDurations","findId","provideDocumentSymbols","_makeOutlineElement","newProvider","_compact","childInfo","overrideContainerLabel","containerName","selectionRange","_hash","AbstractEditorNavigationQuickAccessProvider","rangeHighlightDecorationId","picker","canAcceptInBackground","matchOnLabel","matchOnDescription","matchOnDetail","sortByLabel","pickerDisposable","doProvide","onDidActiveTextEditorControlChange","activeTextEditorControl","canProvideWithTextEditor","lastKnownEditorViewState","clearDecorations","provideWithTextEditor","provideWithoutTextEditor","deleteDecorations","overviewRulerDecorationId","rangeHighlightId","Full","SuggestionsItemGlobalClassNames","isSuggested","errorNS","xhr","responseHeaders","credential","castCredential","signRequest","nextPolicy","getDisplayName","rootStyle","globalSelectorRegExp","expandSelector","newSelector","currentSelector","extractSelector","__order","extractRules","selectorWithGlobals","replacementInfo","findGlobal","matchEndIndex","replacement","expandCommaSeparatedGlobals","separatedSelector","currentRules","expandedRules","propValue","expandQuads","getKeyForRules","hasProps","rulesForSelector","repeatString","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","rulesToInsert","applyRegistration","specificityMultiplier","processedRule","styleToClassName","passthrough","toLink","isTerminating","ApolloLink","leftLink","rightLink","starting","createOperation","transformedOperation","transformOperation","OPERATION_FIELDS","validateOperation","firstLink","nextLink","setOnError","MarkerCoordinate","MarkerList","resourceFilter","_dispoables","_markers","_nextIdx","_resourceFilter","updateMarker","severities","_compareMarker","oldIdx","_initIdx","IMarkerNavigationService","MarkerNavigationService","getMarkerList","SeverityIcon","errorIconForeground","errorCodiconSelector","warningIconForeground","warningCodiconSelector","infoIconForeground","infoCodiconSelector","onRelatedInformation","_labelService","_longestLineLength","_relatedDiagnostics","_messageBlock","_relatedBlock","related","relatedInformation","sourceAndCodeLength","lastLineElement","detailsElement","sourceElement","codeElement","_codeLink","relatedInformationNode","relatedResource","relatedMessage","severityLabel","MarkerNavigationWidget","_onDidSelectRelatedInformation","onDidSelectRelatedInformation","_severity","editorMarkerNavigationBackground","editorMarkerNavigationError","headerBackground","editorMarkerNavigationErrorHeader","editorMarkerNavigationWarning","editorMarkerNavigationWarningHeader","editorMarkerNavigationInfo","editorMarkerNavigationInfoHeader","headerBg","_parentContainer","TitleMenu","_icon","_message","markerIdx","markerCount","computeRequiredHeight","revealPositionNearTop","_heightInPixel","getHeightInLines","errorDefault","warningDefault","infoDefault","linkFg","activeLinkFg","MarkerController","_markerNavigationService","_sessionDispoables","_widgetVisible","CONTEXT_MARKERS_NAVIGATION_VISIBLE","_cleanUp","reusePosition","resetIndex","showStale","revealIfOpened","_getOrCreateModel","showAtMarker","multiFile","selectionRevealType","otherEditor","nagivate","MarkerNavigationAction","_multiFile","NextMarkerAction","LABEL","PrevMarkerAction","NextMarkerInFilesAction","PrevMarkerInFilesAction","MarkerCommand","_fillRandomValues","_hex","crypto","getRandomValues","WORKSPACE_EXTENSION","isSingleFolderWorkspaceIdentifier","singleFolderIdentifier","CompositeSnippetVariableResolver","_delegates","SelectionBasedVariableResolver","_selectionIdx","getLastOvertypedInfo","lineLeadingWhitespace","varLeadingWhitespace","whitespaceCommonLength","ModelBasedVariableResolver","noPrefix","ClipboardBasedVariableResolver","_readClipboardText","_selectionCount","_spread","CommentBasedVariableResolver","getComments","TimeBasedVariableResolver","_date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","dayNames","getDay","dayNamesShort","monthNames","monthNamesShort","WorkspaceBasedVariableResolver","_workspaceService","workspaceIdentifier","workspace","configPath","folders","toWorkspaceIdentifier","getWorkspace","_resolveWorkspaceName","_resoveWorkspacePath","folderpath","RandomBasedVariableResolver","generateUuid","getColorGraceful","OneSnippet","_snippet","_snippetLineLeadingWhitespace","_nestingLevel","_placeholderGroups","placeholders","compareByIndex","_placeholderGroupsIdx","_placeholderDecorations","placeholderOffset","placeholderLen","fullLen","_decor","inactiveFinal","_initDecorations","transformedValueLines","couldSkipThisPlaceholder","activePlaceholders","_hasPlaceholderBeenCollapsed","activeFinal","enclosingPlaceholders","enclosingPlaceholder","placeholdersWithEqualIndex","indexLastPlaceholder","nestedPlaceholder","_templateMerges","_snippets","_template","createEditsAndSnippets","snippets","oneSelection","allPossibleSelections","possibleSelections","computePossibleSelections","adjustIndentation","adjustNewlines","snippetTextString","prevChar","positionColumnBefore","positionColumnAfter","createWithDirection","workspaceService","modelBasedVariableResolver","readClipboardText","firstBeforeText","adjustSelection","firstAfterText","firstLineFirstNonWhitespace","indexedSelections","extensionBefore","extensionAfter","snippetSelection","snippetLineLeadingWhitespace","resolveVariables","IconType","_onImageLoadingStateChange","onLoadingStateChange","imageLoadError","imageErrorAs","iconType","iconContent","iconContentChildren","mergeImageProps","ImageType","accessibleName","finalIconContentChildren","SVG_REGEX","ImageBase","imageElement","onLoad","notLoaded","setLoadState","naturalWidth","naturalHeight","complete","onImageLoaded","onImageError","useLoadState","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","coverStyle","previousLoadState","cover","centerContain","centerCover","landscape","portrait","computeCoverStyle","useCoverStyle","isLoaded","isLandscape","isCenter","isCenterContain","isCenterCover","isContain","isCover","isNone","isNotImageFit","useMergedRefs","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","msMaxTouchPoints","fallbackObjectFitStyles","objectFit","defaultButtonStyles","primaryStyles","standardStyles","DefaultButton","customizable","packagesCache","_win","setVersion","packageName","packageVersion","packages","__packages__","REACT_LIFECYCLE_EXCLUSIONS","_updateComposedComponentRef","composedComponentInstance","_composedComponentInstance","_hoisted","exclusions","hoisted","hoistMethods","appendFunction","extendComponent","DocumentCardType","baseProductionCdnUrl","TestImages","choiceGroupBarUnselected","choiceGroupBarSelected","choiceGroupPieUnselected","choiceGroupPieSelected","documentPreview","documentPreviewTwo","documentPreviewThree","iconOne","iconPpt","personaFemale","personaMale","WindowContext","useWindow","useDocument","useOnEvent","callbackRef","actualElement","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","matrix","inverse","s0","s3","s4","s5","c5","c0","determinant","matrixA","matrixB","fma","fmb","perspective","rotateZ","rotateX","rotateY","scalar","scalarY","scaleX","scaleY","scaleZ","skew","angleX","angleY","thetaX","thetaY","skewX","skewY","distanceX","distanceY","translate3d","distanceZ","translateX","translateY","translateZ","ensureStripeShape","createSource","createToken","createPaymentMethod","handleCardPayment","apiKey","Stripe","_apiKey","_stripe","__cachedInstances","getOrCreateStripe","_meta","_stripe2","_didWarn","_didWakeUpListeners","apiKeyChanged","stripeInstanceChanged","_stripe3","_registerWrapper","ColorDetector","_localToDispose","_decorationsIds","_colorDatas","_colorDecoratorIds","_decorationsTypes","_isEnabled","onModelChanged","prevIsEnabled","removeAllDecorations","_timeoutTimer","_computePromise","deprecatedConfig","beginCompute","RECOMPUTE_TIME","colorInfos","updateDecorations","updateColorDecorators","colorDatas","colorData","newDecorationsTypes","subKey","ctxHasSymbols","ISymbolNavigationService","SymbolNavigationService","_currentModel","_currentIdx","_ignoreEditorChange","_ctxHasSymbols","_currentState","_currentMessage","refModel","editorState","seenUri","seenPosition","revealNext","editorService","onCodeEditorRemove","_onDidRemoveEditor","onCodeEditorAdd","_onDidAddEditor","listCodeEditors","getLocationLinks","registry","provide","getDefinitionsAtPosition","provideDefinition","getDeclarationsAtPosition","provideDeclaration","getImplementationsAtPosition","provideImplementation","getTypeDefinitionsAtPosition","provideTypeDefinition","getReferencesAtPosition","provideReferences","includeDeclaration","resultWithoutDeclaration","_sortedAndDeduped","rawLinks","modelLinks","_g","_h","_goToActionIds","registerGoToAction","SymbolNavigationAction","symbolNavService","_getLocationModel","referenceAt","altActionId","_getAlternativeCommand","altAction","referenceCount","muteMessage","_getNoResultFoundMessage","_onResult","_getGoToPreference","openInPeek","_openInPeek","firstReference","_openReference","openToSide","targetEditor","modelNow","DefinitionAction","goToDefinitionKb","GoToDefinitionAction","OpenDefinitionToSideAction","PeekDefinitionAction","DeclarationAction","GoToDeclarationAction","TypeDefinitionAction","GoToTypeDefinitionAction","PeekTypeDefinitionAction","ImplementationAction","GoToImplementationAction","PeekImplementationAction","ReferencesAction","GenericGoToLocationAction","_references","_gotoMultipleBehaviour","corePosition","noResultsMessage","control","GotoDefinitionAtPositionEditorContribution","toUnhook","toUnhookForKeyboard","linkDecorations","currentWordAtPosition","previousPromise","linkGesture","startFindDefinitionFromMouse","gotoDefinition","removeLinkDecorations","startFindDefinition","withKey","findDefinition","wordRange","previewValue","getPreviewValue","rangeToUse","getPreviewRangeBasedOnBrackets","MAX_SOURCE_PREVIEW_LINES","getPreviewRangeBasedOnIndentation","stripIndentationFromPreviewRange","previewRange","minIndent","endIndent","startIndent","ignoreFirstEmpty","currentBracket","lastBracket","nextLineNumber","nextColumn","canPeek","isInPeekEditor","activeLinkForeground","HoverWidget","contentsDomNode","HoverAction","actionOptions","actionContainer","iconClass","ColorPickerModel","availableColorPresentations","presentationIndex","_onColorFlushed","onColorFlushed","_onDidChangeColor","onDidChangeColor","_onDidChangePresentation","onDidChangePresentation","originalColor","_colorPresentations","colorPresentations","presentation","flushColor","originalText","ColorPickerHeader","pickedColorNode","colorBox","selectNextColorPresentation","isLighter","ColorPickerBody","saturationBox","SaturationBox","onDidSaturationValueChange","opacityStrip","OpacityStrip","onDidOpacityChange","hueStrip","HueStrip","onDidHueChange","onDidChangePosition","mouseUpListener","paintSelection","paint","saturatedColor","whiteGradient","blackGradient","Strip","updateSliderPosition","onDidChangeTop","ColorPickerWidget","ColorHover","owner","forceShowAtRange","ColorHoverParticipant","_hover","colorDetector","getColorData","_createColorHover","colorHover","guessColorPresentation","hoverParts","statusBar","updateEditorModel","textEdits","trackedRange","updateColorPresentations","setColorPicker","HoverOperation","computer","success","hoverTime","_computer","_hoverTime","_firstWaitScheduler","_triggerAsyncComputation","_secondWaitScheduler","_triggerSyncComputation","_loadingMessageScheduler","_showLoadingMessage","_asyncComputationPromise","_asyncComputationPromiseDone","_completeCallback","_errorCallback","_progressCallback","_secondWaitTime","computeAsync","asyncResult","_withAsyncResult","_onError","computeSync","onResult","_onComplete","getResult","_onProgress","getResultWithLoadingMessage","_firstWaitTime","_loadingMessageTime","HoverRangeAnchor","lastAnchor","showAtPosition","HoverForeignElementAnchor","getHover","provideHover","hasRange","hasHtmlContent","MarkdownHover","MarkdownHoverParticipant","maxTokenizationLineLength","hovers","hoverPart","markdownHoverElement","hoverContentsElement","onContentsChanged","MarkerHover","markerCodeActionTrigger","MarkerHoverParticipant","recentMarkerCodeActionsInfo","getMarker","renderMarkerHover","markerHoverForStatusbar","renderMarkerStatusbar","markerHover","hoverElement","markerElement","messageElement","sourceAndCodeElement","codeLink","relatedInfoContainer","addAction","quickfixPlaceholderElement","hasCodeActions","updatePlaceholderDisposable","codeActionsPromise","showing","elementPosition","showCodeActions","cancellationToken","InlineCompletionsHover","InlineCompletionsHoverParticipant","renderScreenReaderText","previousAction","nextAction","hasMultipleSuggestions","hasMore","inlineSuggestionAvailable","replaceChildren","renderForScreenReader","EditorHoverStatusBar","_hasContent","actionsElement","ModesContentComputer","_participants","_anchor","_getLineDecorations","_computeAsync","allResults","isFromSynchronousComputation","createLoadingMessage","loadingMessage","ModesContentHoverWidget","_hoverVisibleKey","_stoleFocus","_renderDisposable","_updateFont","_showAtPosition","_showAtRange","_messages","_lastAnchor","_highlightDecorations","_isChangingDecorations","_shouldFocus","_colorPicker","_preferAbove","_hoverOperation","_withResult","setHoverTime","_renderMessages","anchorCandidates","suggestHoverAnchor","_shouldShowAt","showAtRange","_startShowingAt","preferAbove","getElementsByClassName","clearResult","canAdoptVisibleHover","filteredMessages","isValidForHoverAnchor","messages","renderColumn","highlightRange","participantHoverParts","renderHoverParts","hasChildNodes","_showAt","_updateContents","_DECORATION_OPTIONS","MarginComputer","toHoverMessage","ModesGlyphHoverWidget","openerService","_renderDisposeables","_lastLineNumber","topForLineNumber","editorScrollTop","setLineNumber","ModesHoverController","_toUnhook","_isMouseDown","_hoverClicked","_glyphWidget","_hookEvents","_didChangeConfigurationHandler","_unhookEvents","hideWidgetsEventHandler","_hideWidgets","hoverOpts","_isHoverEnabled","_isHoverSticky","_onModelDecorationsChanged","_onEditorScrollChanged","isColorPickerVisible","_getOrCreateContentWidget","maybeShowAt","startShowingAt","startShowingAtRange","ShowHoverAction","showContentHover","ShowDefinitionPreviewHoverAction","startFindDefinitionFromCursor","editorHoverHighlightColor","hoverBackground","hoverBorder","hoverForeground","actionsBackground","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encode","attachKeys","re","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","_isRTL","RTL_LOCAL_STORAGE_KEY","savedRTL","persistSetting","getRTLSafeKeyCode","BREAK","visitorKeys","enterLeaveMap","getEnterLeaveForKind","inArray","newRoot","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","_node$kind","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","leave","kindVisitor","resetIds","ResponsiveMode","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","withResponsiveMode","ComposedComponent","resultClass","_onResize","responsiveMode","getResponsiveMode","currentWindow","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","TooltipOverflowMode","__marked_exports","amd","_createForOfIteratorHelperLoose","defaults$5","getDefaults$1","breaks","gfm","headerIds","headerPrefix","langPrefix","mangle","pedantic","smartLists","smartypants","walkTokens","xhtml","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","unescape$1","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","domain","resolveUrl","rtrim$1","relativeBase","suffLen","currChar","helpers","prot","tableRow","cells","defaults$4","splitCells","_escape","findClosingBracket","outputLink","cap","lexer","inLink","inlineTokens","Tokenizer_1","Tokenizer","_proto","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentCodeCompensation","heading","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","itemContents","bull","isordered","loose","itemRegex","trimLeft","nextBulletRegex","trimRight","pre","lheading","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","_escapes","reflink","nolink","emStrong","maskedSrc","lDelim","punctuation","rDelim","lLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","autolink","prevCapZero","_backpedal","inlineText","noopTest","merge$1","block$1","_paragraph","bullet","listItemStart","_tag","_comment","inline$1","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","endAst","endUnd","em","_extended_email","Tokenizer$1","defaults$3","Lexer_1","Lexer","inlineQueue","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","startInline","defaults$2","cleanUrl","escape$1","Renderer_1","_code","infostring","_html","slugger","slug","listitem","checkbox","tablerow","tablecell","TextRenderer_1","TextRenderer","Slugger_1","Slugger","getNextSafeSlug","originalSlug","isDryRun","occurenceAccumulator","dryrun","Renderer$1","TextRenderer$1","Slugger$1","defaults$1","Parser_1","textRenderer","parseInline","l3","itemBody","parser","checkSanitizeDeprecation","hasExtensions","childTokens","prevRenderer","_loop2","prevTokenizer","_loop3","_step2","_iterator2","_step3","_iterator3","_step4","_iterator4","_cell","_iterator","objectWithoutPropertiesLoose","sourceSymbolKeys","DisplayType","PixonOAuthGrantType","PixonOAuthCredentialsDeliveryMethod","BaseTelemetryPlugin","alignMap","grow","shrink","disableShrink","verticalFill","instanceOf","locationOffset","isSource","_onMount","_onUpdate","_onUnmount","_setComponentRef","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","buf","readUInt16BE","foundIndex","hexWrite","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","toHex","bytes","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt32LE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt16BE","writeUInt32LE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","createUTC","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","parsedParts","isNowValid","invalidWeekday","bigHour","createInvalid","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_l","_tzm","_isUTC","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","ss","mm","dd","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchShortOffset","matchTimestamp","matchWord","addRegexToken","strictRegex","getParseRegexForToken","unescapeFormat","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","GG","W","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configFromObject","dayOrDate","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","positiveMomentsDifference","isAfter","createAdder","period","isAdding","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","toISOString","keepOffset","toDate","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","webpackPolyfill","SYMBOL_ICON_ARRAY_FOREGROUND","SYMBOL_ICON_BOOLEAN_FOREGROUND","SYMBOL_ICON_CLASS_FOREGROUND","SYMBOL_ICON_COLOR_FOREGROUND","SYMBOL_ICON_CONSTANT_FOREGROUND","SYMBOL_ICON_CONSTRUCTOR_FOREGROUND","SYMBOL_ICON_ENUMERATOR_FOREGROUND","SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND","SYMBOL_ICON_EVENT_FOREGROUND","SYMBOL_ICON_FIELD_FOREGROUND","SYMBOL_ICON_FILE_FOREGROUND","SYMBOL_ICON_FOLDER_FOREGROUND","SYMBOL_ICON_FUNCTION_FOREGROUND","SYMBOL_ICON_INTERFACE_FOREGROUND","SYMBOL_ICON_KEY_FOREGROUND","SYMBOL_ICON_KEYWORD_FOREGROUND","SYMBOL_ICON_METHOD_FOREGROUND","SYMBOL_ICON_MODULE_FOREGROUND","SYMBOL_ICON_NAMESPACE_FOREGROUND","SYMBOL_ICON_NULL_FOREGROUND","SYMBOL_ICON_NUMBER_FOREGROUND","SYMBOL_ICON_OBJECT_FOREGROUND","SYMBOL_ICON_OPERATOR_FOREGROUND","SYMBOL_ICON_PACKAGE_FOREGROUND","SYMBOL_ICON_PROPERTY_FOREGROUND","SYMBOL_ICON_REFERENCE_FOREGROUND","SYMBOL_ICON_SNIPPET_FOREGROUND","SYMBOL_ICON_STRING_FOREGROUND","SYMBOL_ICON_STRUCT_FOREGROUND","SYMBOL_ICON_TEXT_FOREGROUND","SYMBOL_ICON_TYPEPARAMETER_FOREGROUND","SYMBOL_ICON_UNIT_FOREGROUND","SYMBOL_ICON_VARIABLE_FOREGROUND","symbolIconArrayColor","symbolIconBooleanColor","symbolIconClassColor","symbolIconMethodColor","symbolIconColorColor","symbolIconConstantColor","symbolIconConstructorColor","symbolIconEnumeratorColor","symbolIconEnumeratorMemberColor","symbolIconEventColor","symbolIconFieldColor","symbolIconFileColor","symbolIconFolderColor","symbolIconFunctionColor","symbolIconInterfaceColor","symbolIconKeyColor","symbolIconKeywordColor","symbolIconModuleColor","outlineNamespaceColor","symbolIconNullColor","symbolIconNumberColor","symbolIconObjectColor","symbolIconOperatorColor","symbolIconPackageColor","symbolIconPropertyColor","symbolIconReferenceColor","symbolIconSnippetColor","symbolIconStringColor","symbolIconStructColor","symbolIconTextColor","symbolIconTypeParameterColor","symbolIconUnitColor","symbolIconVariableColor","__webpack_amd_options__","fieldContentRegExp","serializeCookie","maxAge","expires","toUTCString","httpOnly","secure","sameSite","cookie","cookieOptions","nameEQ","ca","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","loadPath","addPath","allowMultiLoading","parsePayload","reloadInterval","customHeaders","queryStringParams","crossDomain","withCredentials","overrideMimeType","requestOptions","credentials","Backend","allOptions","_readAny","loadUrlLanguages","loadUrlNamespaces","resolvedLoadPath","loadUrl","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","ActiveXObject","fetchNode","addQueryString","queryString","paramName","statusText","requestWithFetch","setRequestHeader","onreadystatechange","responseText","requestWithXmlHttpRequest","hasElementType","hasMap","hasSet","hasArrayBuffer","$$typeof","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","componentWillReceiveProps","nextProps","PropTypes","Consumer","_Component2","observedBits","_proto2","prefixCounts","makeUniqueId","useQuery","watchQueryOptions","createWatchQueryOptions","obsQuery","renderPromises","getSSRObservable","watchQuery","registerSSRObservable","ssr","getCurrentResult","addQueryPromise","fetchData","setObsQuery","onCompleted","setResult","previousData","nextResult","previousResult","onNext","resetLastResults","disableNetworkFetches","partialRefetch","fetchPolicy","refetch","obsQueryFields","fetchMore","updateQuery","startPolling","stopPolling","subscribeToMore","called","toMatrix","addElementAtIndex","arraysEqual","getIconContent","finalChildren","shallowCompare","filteredAssign","isAllowed","sourceObject","keytips","persistedKeytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","_instance","persisted","addParentOverflow","keySequences","uniqueKeytip","_getUniqueKtp","uniqueID","keytip","newKeytipProps","oldKeyTip","unregister","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","overflowSetSequence","menuExecute","overflowButtonSequences","keytipSequences","KeytipManager","componentName","requiredProps","conditionalPropName","warnMutuallyExclusive","exclusiveMap","withSlots","slotType","isSlot","createFactory","DefaultComponent","defaultProp","componentProps","userProps","userSlotOptions","flattenedUserProps","slotProps","transformedProps","_translateShorthand","finalProps","allProps","_constructFinalProps","UserComponent","defaultFactory","getSlots","mixedProps","_renderSlot","_defaultStyles","ComponentType","slotOptions","iterableToArrayLimit","ActionButton","autoActivateFirstSuggest","fixtures","getSuggestLabel","highlightMatch","ignoreEnter","ignoreTab","maxFixtures","minLength","queryDelay","skipSuggest","inputType","filterInputAttributes","isDataAttribute","Input","onInputKeyDown","onPrev","doNotSubmitOnEnter","onSelect","shouldRenderLabel","Fragment","htmlFor","isSuggestsHidden","activeSuggest","placeId","listId","autoComplete","PureComponent","default_1","makeBold","formatMatchedText","userInput","matchedSubstrings","boldPart","post","scrollIfNeeded","overTop","overBottom","suggestItemClassName","renderSuggestItem","isHighlightMatch","onMouseOut","default_1$1","suggests","onSuggestNoResults","suggestsClassName","hiddenClassName","suggestItemStyle","suggestItemActiveClassName","onSuggestMouseDown","onSuggestMouseOut","onSuggestSelect","default_1$2","googleMaps","autocompleteService","placesService","sessionToken","geocoder","ignoreBlur","onAfterInputChange","hideSuggests","selectSuggest","searchSuggests","google","maps","places","AutocompleteService","PlacesService","AutocompleteSessionToken","Geocoder","showSuggests","activateSuggest","inputLength","updateSuggests","country","componentRestrictions","getPlacePredictions","suggestsGoogle","fixturesSearched","fixture","isFixture","matched_substrings","place_id","updateActiveSuggest","onUpdateSuggests","newSuggest","listedSuggest","suggestsCount","newActiveSuggest","onActivateSuggest","suggestToSelect","geocodeSuggest","suggestToGeocode","placeDetailFields","getDetails","PlacesServiceStatus","OK","gmaps","location_1","address","geocode","GeocoderStatus","location_2","suggestionsList","suggestsHiddenClassName","reTrim","HttpPipelineLogLevel","ReflectOwnKeys","ReflectApply","NumberIsNaN","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","er","originalListener","rawListeners","eventNames","linkText","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","Clipboard","db","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","charsets","contentType","exts","populateMaps","Guid","guid","isGuid","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","devToolsEnhancer","__REDUX_DEVTOOLS_EXTENSION__","createThunkMiddleware","extraArgument","withExtraArgument","sha256_imported","base64js_imported","loggedPromiseDeprecation","logPromiseDeprecation","Keycloak","adapter","callbackStorage","kc","refreshQueue","loginIframe","callbackList","scripts","iframeVersion","useNonce","logInfo","createLogger","logWarn","generateRandomData","msCrypto","generateCodeVerifier","generateRandomString","alphabet","randomData","generatePkceChallenge","pkceMethod","codeVerifier","hashBytes","getRealmUrl","authServerUrl","realm","getOrigin","hostname","processCallback","oauth","timeLocal","onActionUpdate","errorData","error_description","onAuthError","setError","setSuccess","access_token","id_token","authSuccess","endpoints","clientId","redirectUri","pkceCodeVerifier","tokenResponse","scheduleCheckIframe","accessToken","refreshToken","idToken","fulfillPromise","setToken","tokenParsed","storedNonce","refreshTokenParsed","idTokenParsed","clearToken","onAuthSuccess","loadConfig","configUrl","createPromise","setupOidcEndoints","oidcConfiguration","authorize","authorization_endpoint","token_endpoint","logout","end_session_endpoint","checkSessionIframe","check_session_iframe","userinfo_endpoint","thirdPartyCookiesIframe","fileLoaded","oidcProvider","oidcProviderConfigUrl","responseURL","tokenTimeoutHandle","decodeToken","sessionId","session_state","authenticated","subject","realmAccess","realm_access","resourceAccess","resource_access","timeSkew","iat","onTokenExpired","expiresIn","atob","createUUID","hexDigits","parseCallback","parseCallbackUrl","oauthState","supportedParams","newUrl","queryIndex","fragmentIndex","responseMode","parseCallbackParams","paramsString","oauthParams","applyTimeoutToPromise","timeoutHandle","timeoutPromise","setupCheckLoginIframe","iframe","authUrl","iframeOrigin","messageCallback","contentWindow","checkLoginIframe","unchanged","check3pCookiesSupported","silentCheckSsoRedirectUri","silentCheckSsoFallback","messageReceiveTimeout","loadAdapter","login","createLoginUrl","createLogoutUrl","createRegisterUrl","accountManagement","accountUrl","createAccountUrl","encodeHash","cordovaOpenWindowWrapper","loginUrl","cordova","InAppBrowser","shallowCloneCordovaOptions","userOptions","cordovaOptions","optionName","formatCordovaOptions","createCordovaOptions","closed","closeBrowser","logoutUrl","registerUrl","universalLinks","browsertab","openUrl","initOptions","createCallbackStorage","Cordova","checkLoginIframeInterval","loginRequired","enableLogging","initPromise","onReady","configPromise","doLogin","checkSsoSilently","ifrm","processInit","updateToken","domReady","checkReadyState","callbackState","loginHint","idpHint","hasRealmRole","access","roles","hasResourceRole","loadUserProfile","profile","loadUserInfo","userInfo","isTokenExpired","minValidity","onAuthRefreshSuccess","onAuthRefreshError","onAuthLogout","LocalStorage","clearExpired","CookieStorage","getCookie","setCookie","cookieExpiration","exp","expirationDate","reactPropsRegex","isPropValid","StyleSheet","_insertTag","insertionPoint","isSpeedy","speedy","ctr","hydrate","createStyleElement","styleSheets","ownerNode","sheetForTag","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","indexof","charat","begin","strlen","sizeof","return","dealloc","delimit","escaping","commenter","rulesets","pseudo","declarations","atrule","scanning","ampersand","declaration","ruleset","rulesheet","identifierWithPointTracking","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","createCache","ssrStyles","stylisPlugins","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","shouldCache","registered","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","murmur2","unitlessKeys","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flex","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","processStyleValue","unitless","handleInterpolation","mergedProps","__emotion_styles","anim","interpolated","createStringFromObject","previousCursor","labelPattern","serializeStyles","stringMode","identifierName","hashString","EmotionCacheContext","withEmotionCache","ThemeContext","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","Noop","createStyled","targetClassName","__emotion_real","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","classInterpolations","finalShouldForwardProp","ele","possiblyStyleElement","withComponent","nextTag","nextOptions","newStyled","execRegExp","hasUserAgentData","userAgentData","brands","convertVersion","findPreset","userPreset","preset","versionTest","findVersion","findPresetBrand","brandInfo","brand","findBrand","BROWSER_PRESETS","CHROMIUM_PRESETS","versionAlias","WEBKIT_PRESETS","WEBVIEW_PRESETS","OS_PRESETS","parseUserAgentData","osData","isMobile","firstBrand","majorVersion","webkit","webkitVersion","chromium","chromiumVersion","webview","os","chromiumBrand","webkitBrand","platform_1","browserBrand","isHints","parseUserAgent","nextAgent","agent","getUserAgent","browserPreset","browserVersion","osPreset","osVersion","chromiumPreset","webkitPreset","prefixNames","refs","OPEN_CLOSED_CHARACTERS","TINY_NUM","DEFAULT_UNIT_PRESETS","findIgnore","texts","findOpen","findClose","otherText","splitOptions","isSeparateFirst","isSeparateOnlyOpenClose","openClosedText","tempValues","resetTemp","isEqualSeparator","splitSpace","splitComma","splitBracket","splitUnit","defaultIndex","defalutValue","getKeys","convertUnitSize","sizeFunction","checkBoundSize","targetSize","compareSize","isMax","calculateBoundSize","keepRatio","between","average","nums","getRad","distX","distY","rad","getShapeDirection","getCenterPoint","pos1Rad","pos2Rad","getDist","throttleArray","hasClass","addEvent","removeEvent","inverseMatrix","iv","ignoreDimension","newMatrix","createIdentityMatrix","identityIndex","targetStartIndex","convertPositionMatrix","convertDimension","multiplies","matrixes","matrix2","nextPos","minus","convertMatrixtoCSS","calculate","rotateX3d","rotateY3d","rotateZ3d","createRotateMatrix","scale3d","matrix3d","matrix1","createScaleMatrix","createOriginMatrix","createWarpMatrix","pos0","pos3","nextPos0","nextPos1","nextPos2","nextPos3","y0","y3","v0","v3","parseMat","toMat","matrixInfos","matrixFunction","functionValue","functionName","posX","unitValue","SUPPORT_MAP","prevLink","getIndex","caculateOrdered","fromLinks","toLinks","fixed","fromLink","orderChanged","pureChanged","fromBefore","toBefore","prevList","findKeyCallback","mapClass","added","maintained","prevKeys","prevKeyMap","keyMap","changedBeforeAdded","removedMap","addedCount","removedCount","prevListIndex","childrenCount","tslib_1","getAreaSize","nextPoint","fitPoints","getMinMaxs","minX","minY","maxX","maxY","ratioX","ratioY","xs","ys","isInside","excludeLine","xLine","yLine","xLinearConstants","getLinearConstants","yLinearConstants","convertLines","intersectionXPoints","intersectionYPoints","linearConstants","xPoints","getPointsOnLines","getIntersectionPointsByConstants","yPoints","point1","point2","a_1","linearConstants1","linearConstants2","isZeroA","a1","a2","isZeroB","minMaxs","minMax","getOverlapSize","points1","points2","targetPoints1","targetPoints2","lines1","lines2","linearConstantss1","line1","linearConstantss2","line2","overlapInfos","linePointInfos","isNext_1","overlapPoints","pointMap","getOverlapPoints","isStop","_addEvent","getDefaultScrollPosition","dragStart","drag","startRect","startPos","nowTime","distTime","throttleTime","prevPos","dragEnd","getRotatiion","touches","getEventClients","clients","getClient","getClients","prevClients","startClients","originalClientX","originalClientY","prevX","prevY","getAverageClient","sumClient","movement","addClients","getAngle","getRotation","getPositions","getMovement","currentClient","prevClient","getDistance","getScale","INPUT_TAGNAMES","pinchOutside","preventRightClick","checkInput","isTouch","isDragStart","hasInput","hasContentEditable","activeTagName","ClientStore","datas","isDouble","doubleFlag","isMultiTouch","isScroll","isDrag","isClick","checkWindowBlur","pinchThreshold","passive_1","getCurrentStore","clientStores","isDragging","isFlag","isPinchFlag","isDoubleFlag","isPinching","scrollBy","isCallDrag","onDrag","nextClients","moveClients","triggerDragStart","setEventDatas","currentDatas","getEventDatas","onPinchStart","onPinch","rotation","onPinchEnd","isPinch","initDrag","isAdd","injectStyle","trimmedSelector","subSelector","trimmedSubSelector","replaceStyle","injectClassName","injectCount","inject","firstMount","injectElement","destroy","portalContainer","cspNonce","cssId","injector","portalAttributes","getElement","cssStyled","makeAble","able","getSVGCursor","IS_WEBKIT","getAgent","IS_WEBKIT605","navi","PREFIX","MOVEABLE_CSS","degree","degree45","defaultCursor","getCursorCSS","NEARBY_POS","MIN_SCALE","MAX_NUM","MIN_NUM","DIRECTIONS","DIRECTION_INDEXES","nw","ne","se","DIRECTION_ROTATIONS","MOVEABLE_METHODS","getAbsoluteMatrix","getBeforeTransformOrigin","getTransformOrigin","isHorizontal","getSVGViewBox","viewBox","measureSVGSize","transformOrigin","getOffsetInfo","lastParent","isParent","isEnd","isStatic","getOffsetPosInfo","isFixed","containerClientRect","isSVG","hasOffset","targetOrigin","bbox","getSVGGraphicsOffset","getBodyOffset","bodyStyle","bodyPosition","convert3DMatrixes","getMatrixStackInfo","checkContainer","requestEnd","is3d","offsetContainer","convertCSStoMatrix","targetMatrix","offsetPos","getSVGMatrix","isOffsetEnd","parentClientLeft","parentClientTop","targetTransformOrigin","calculateElementInfo","rootContainer","isAbsolute3d","allResult","getSize","prevTargetMatrix","rootMatrixes","isRoot3d","isNext3d","isSVGGraphicElement","allMatrix","rootMatrix","beforeMatrix","offsetMatrix","originalRootContainer","endContainer","offsetInfo","targetInfo","rectLeft","rectTop","rectWidth","rectHeight","mat","calculateRect","prevTop","prevWidth","prevHeight","posOrigin","calculatePosition","prevOrigin","rectOrigin","inverseBeforeMatrix","distLeft","distTop","getSVGOffset","isMatrix3d","targetTransform","makeMatrixCSS","calculateMatrixStack","calculateMoveablePosition","rotationPosition","getRotationRad","pos4","baseVal","viewBoxWidth","viewBoxHeight","preserveAspectRatio","meetOrSlice","svgOrigin","xAlign","yAlign","scaleDimension","scaleMatrix","calculatePoses","getRect","poses","posesX","posesY","x3","x4","y4","originX","originY","getDistSize","getDiagonalSize","getLineStyle","getControlTransform","isOffset","isBoxSizing","getTargetInfo","moveableElement","parentContainer","beforeDirection","beforeOrigin","targetClientRect","clientLeft","clientTop","moveableClientRect","beforePosition","originMatrix","getClientRect","originalBeforeOrigin","isExtends","direciton","getAbsolutePoses","getAbsolutePosesByState","fillParams","moveable","nextParams","currentTarget","fillEndParams","triggerEvent","isManager","pseudoElt","filterAbles","ables","triggerAblesSimultaneously","enabledAbles","ableGroups","maxOffset","calculateInversePosition","convertDragDist","calculatePadding","convertCSSSize","isRelative","getTinyDist","directionCondition","invertObject","nextObj","getRefTarget","isSelector","getRefTargets","isArrayFormat","getDragDistByState","calculateMatrixDist","onPinchGroupStart","onPinchGroup","onPinchGroupEnd","pinchStart","originalDatas","pinchable","controlEventName","pinchAbles","ableEvent","parentRotate","pinch","pinchScale","parentDistance","pinchEnd","pinchGroupStart","pinchGroup","pinchGroupEnd","setCustomDrag","isConvert","draggableDatas","parentEvent","parentGesto","fillChildEvents","groupableDatas","childDatas","triggerChildGesto","isStart","moveables","childs","childMoveable","childEvent","CustomGesto","parentFlag","triggerChildAbles","eachEvent","calculatePointerDist","getDragDist","setDragStart","resolveTransformEvent","nextTransforms","nextTransformAppendedIndexes","beforeFunctionTexts","beforeFunctionTexts2","targetFunctionText","afterFunctionTexts","afterFunctionTexts2","beforeFunctions","beforeFunctions2","targetFunctions","afterFunctions","afterFunctions2","beforeFunctionMatrix","beforeFunctionMatrix2","afterFunctionMatrix","afterFunctionMatrix2","allFunctionMatrix","targetFunctionMatrix","targetFunction","getTransform","matFunctionName","convertTransformFormat","getTransformDist","getBeforeDragDist","getTransfromMatrix","fromTranslation","beforeTransform","afterTransform","beforeTransform2","afterTransform2","targetAllTransform","nextTargetMatrix","res1","startDragBeforeDist","startDragDist","getPosIndexesByDirection","getPosesByDirection","getPosByDirection","nextPoses","getNextMatrix","fillTransformStartEvent","setTransformIndex","setDefaultTransformIndex","fillOriginalTransform","fillTransformEvent","nextTransform","Draggable","getTranslateDist","fixedDirection","fixedPosition","groupable","nextMatrix","getNextTransformMatrix","groupLeft","groupTop","getDirectionOffset","getOriginDirection","getResizeDist","nextOrigin","prevSize","calculateTransformOrigin","fixedPos","getAbsolutePosition","VERTICAL_NAMES","HORIZONTAL_NAMES","VERTICAL_NAMES_MAP","HORIZONTAL_NAMES_MAP","hasGuidelines","ableName","snappable","innerBounds","verticalGuidelines","horizontalGuidelines","snapGridWidth","snapGridHeight","guidelines","enableSnap","getSnapDirections","snapDirections","splitSnapDirectionPoses","snapPoses","nextSnapPoses","nextSnapDirections","mapSnapDirectionPoses","horizontalNames","verticalNames","getDefaultGuidelines","snapOffset","snapOffsetLeft","snapOffsetTop","snapOffsetBottom","snapWidth","snapHeight","getSnapElementRects","containerRect","clientPos","calculateContainerPos","containerLeft","containerTop","elementLeft","elementRight","elementBottom","getElementGuidelines","elementGuidelines","prevValues","snapRect","nextElementGuidelines","listdiff","nextValues","elementSnapDirections","nextGuidelines","topValue","leftValue","rightValue","bottomValue","centerValue","middleValue","elementRect","getTotalGuidelines","containerClientHeight","containerClientWidth","totalGuidelines","targetRect","snapThreshold","elementRects","gapGuidelines","mainNames","sideNames","targetEnd","targetCenter","targetStart2","targetEnd2","nextElementRects","snapRect1","snapRect2","rect1","rect2","rect1Start","rect1End","rect2Start","rect2End","gap","gapRects","getGapGuidelines","getGridGuidelines","checkMoveableSnapPoses","customSnapThreshold","selectValue","checkSnapPoses","checkSnap","checkSnaps","getNearestSnapGuidelineInfo","snapInfo","isSnap","guideline","posInfo","guidelineInfo","posInfos","posType","snapPosInfos","targetPoses","guidelineInfos","targetPos","snapPosInfo","checkSnapBoundPriority","aDist","bDist","getNearOffsetInfo","aSign","bSign","aOffset","bOffset","isBound","isStartLine","cx","cy","hitTestLine","isSameStartLine","centerSign","checkInnerBoundDot","checkLineBoundCollision","dot1","dot2","boundDot1","boundLine","boundDot2","dy1","dx1","dy2","isRender","getInnerBoundInfo","isAllBound","isVerticalBound","isHorizontalBound","leftLine","topLine","rightLine","bottomLine","isHorizontalStart","isVerticalStart","topBoundInfo","bottomBoundInfo","leftBoundInfo","rightBoundInfo","isAllVerticalBound","isAllHorizontalBound","horizontalOffset","checkInnerBound","sizeOffset","getInnerBoundDragInfo","getCheckInnerBoundLines","innerBoundInfo","widthOffsetInfo","heightOffsetInfo","absoluteOrigin","getInverseDragDist","lineDirections","getCheckSnapLineDirections","dir1","dir2","isBoundRotate","relativePoses","checkRotateInnerBounds","prevPoses","relativeLeft","relativeRight","relativeBottom","dotInfos","lineRad","solveReverseLine","lineDist","getDistPointLine","dotDist","dotRad","distRad","nextRad","checkBoundPoses","verticalPoses","horizontalPoses","nextBounds","checkBounds","getBounds","externalBounds","snapOffsetRight","isCSS","startBoundPos","isVertical","endBoundPos","minPos","maxPos","boundInfos","boundRect","checkRotateBounds","boundPos","relativeRad1","boundRotate","relativeRad2","renderInnerGuideline","scaleType","renderGuideline","renderSnapPoses","renderPos","posValue","sizeValue","renderGuidelines","isDisplayInnerSnapDigit","renderDigitLine","lineType","sizeName","absGap","snapSize","isDisplaySnapDigit","snapDistFormat","renderDashedGuidelines","otherIndex","groupKeys","groupKey","keyIndex","elementRect1","elementRect2","groupByElementGuidelines","sidePos","prevRect","nextRect","size1","size2","renderPos1","renderPos2","solveNextOffset","solveEquation","isOutside","dist1","dist2","getSnapBound","boundInfo","checkSnapBoundsDrag","throttleDragRotate","isRequest","boundPoses","checkMoveableSnapBounds","verticalSnapBoundInfo","horizontalSnapBoundInfo","verticalInnerBoundInfo","horizontalInnerBoundInfo","isVerticalSnap","isHorizontalSnap","adjustPoses","adjustPos","prevDistY","checkThrottleDragRotate","horizontalBoundInfos","verticalBoundInfos","horizontalSnapInfo","verticalSnapInfo","horizontalDist","verticalDist","snapIndex","checkSnapBounds","guideines","getSnapBoundInfo","directions","startDirection","endDirection","otherStartPos","otherEndPos","snapBoundInfo","endX","endY","isBottom","verticalInfo","horizontalInfo","checkBoundKeepRatio","horizontalBoundInfo","verticalBoundInfo","verticalGuideline","horizontalGuideline","horizontalPos","verticalPos","checkSnapKeepRatio","getSnapBoundOffset","checkSnapBoundsKeepRatio","otherHorizontalOffset","isOtherHorizontalBound","isOtherHorizontalSnap","otherVerticalOffset","isOtherVerticalBound","isOtherVerticalSnap","snapLine","rad180","isHorizontalLine","isVerticalLine","checkSnapRightLine","snapStart","snapContainer","snapContainerTarget","snapContainerRect","offset1","offset2","getNextFixedPoses","getPosByReverseDirection","getSizeOffsetInfo","getCheckSnapDirections","checkSizeDist","getNextPoses","widthOffset","heightOffset","isWidthBound","isHeightBound","nextWidthOffset","nextHeightOffset","widthDist","heightDist","isCheckVertical","otherDirection","isCheckHorizontal","otherPos","deg","nextOtherPos","isHeightOutside","isWidthOutside","checkMaxBounds","snapPos","recheckSizeByTwoDirection","checkSnapRotate","checkSnapScale","sizeDist","getSnapGuidelines","addBoundGuidelines","verticalSnapPoses","horizontalSnapPoses","boundMap","checkInnerBoundPoses","verticalInnerBoundPoses","horizontalInnerBoundPoses","innerPos","snapGap","snapDigit","onSnap","targetTop","targetLeft","snapRenderInfo","minLeft","minTop","externalPoses","snapInfos","hasExternalPoses","externalRect","snapDirection","alignPoses","getSnapInfosByDirection","verticalPosInfos","horizontalPosInfos","allGuidelines","gaps","targetSideStart","targetSideEnd","sideStartPos","sideEndPos","sideCenterPos","renderGapGuidelines","dragControlCondition","rotatableDragControlCondtion","dragControlStart","dragControl","dragControlEnd","dragGroupStart","dragGroup","dragGroupEnd","dragGroupControlStart","dragGroupControl","dragGroupControlEnd","throttleDrag","startDragRotate","edgeDraggable","onDragGroupStart","onDragGroup","onDragGroupEnd","dragInfo","startCheckSnapDrag","prevDist","prevBeforeDist","startValue","distOffset","parentMoveable","dragRotateRad","ry","beforeTranslate","beforeDist","beforeDelta","dragAfter","passDelta","isControl","requestStart","renderDirectionControls","defaultDirections","additionalClassName","renderPoses","radRotation","directionMap","renderDirections","degRotation","directionRotation","renderAllDirections","renderDiagonalDirections","setRotateStartInfo","startAbsoluteOrigin","getParentDeg","prevDeg","getDeg","prevSnapDeg","startDeg","prevLoop","absolutePrevSnapDeg","absoluteDeg","moveableRect","getRotateInfo","rotationTarget","canPinch","rotatable","throttleRotate","onRotateStart","onRotate","onRotateEnd","onRotateGroupStart","onRotateGroup","onRotateGroupEnd","radPoses","isReverse","getRotationPositions","jsxs","externalRotate","rotatation","groupDelta","beforeInfo","afterInfo","absoluteInfo","isRotate","targetDirection","getTransformDirection","absoluteStartDeg","parentDist","beforeRotate","absoluteDelta","absoluteDist","absoluteRotate","_j","inverseDist","rotateDist","getRotateDist","inverseDelta","dragGroupControlCondition","parentLeft","parentTop","parentBeforeOrigin","childClient","rotateMatrix","distRotate","startRotation","ableGroup","throttleResize","onResizeStart","onResizeEnd","onResizeGroupStart","onResizeGroup","onResizeGroupEnd","edge","parentDirection","getCSSSize","isParentElement","containerStyle","setRatio","setFixedDirection","startWidth","startHeight","setMin","setMax","setOrigin","parentScale","parentKeepRatio","dragClient","isResize","isWidth","startOffsetWidth","startOffsetHeight","sizeDirection","distWidth","distHeight","standardRad","signSize","startWidthSize","startHeightSize","distSize","ratioRad","nextDirection","nextWidth","nextHeight","snapDist","checkSnapResize","isNoSnap","dragControlAfter","errorWidth","errorHeight","isErrorWidth","isErrorHeight","originalEvents","originalX","originalY","setDist","scalable","throttleScale","onScaleStart","onScale","onScaleEnd","onScaleGroupStart","onScaleGroup","onScaleGroupEnd","scaleWidth","scaleHeight","isScale","scaleXRatio","scaleYRatio","dragDist","distScaleWidth","distScaleHeight","dragRad","stateDirection","scaleDist","getScaleDist","moveableScale","getMiddleLinePos","getTriangleRad","rad1","warpable","onWarpStart","onWarp","onWarpEnd","linePosFrom1","linePosFrom2","linePosFrom3","linePosFrom4","linePosTo1","linePosTo2","linePosTo3","linePosTo4","targetInverseMatrix","prevMatrix","isWarp","posIndexes","absolutePoses","selectedPoses","nearByPoses","poses1","rad2","poses2","pi","isValidPos","totalMatrix","AREA_PIECES","AREA_PIECE","AVOID","restoreStyle","removeClass","renderPieces","dragArea","passDragArea","onClickGroup","areaElement","rects","addClass","enableNativeEvent","scrollContainer","scrollThreshold","onScrollGroup","dragScroll","scrollContainerElement","gestoName","checkScroll","dragGroupContro","dragGroupControEnd","dragTarget","hideDefaultLines","paddingDirections","RADIUS_DIRECTIONS","calculateRatio","sumSize","sumRatio","HORIZONTAL_RADIUS_ORDER","VERTICAL_RADIUS_ORDER","HORIZONTAL_RADIUS_DIRECTIONS","VERTICAL_RADIUS_DIRECTIONS","getRadiusStyles","controlPoses","clipStyles","raws","rawPos","getRadiusRange","horizontalRange","verticalRange","clipPose","getRadiusValues","minCounts","splitIndex","splitLength","horizontalValues","verticalValues","nwValue","neValue","wnValue","_k","_m","enValue","horizontalRawPoses","seValue","swValue","verticalRawPoses","esValue","wsValue","nextHorizontalPoses","nextVerticalPoses","removeRadiusPos","radiuslIndex","addRadiusPos","horizontalIndex","verticalIndex","radiusX","radiusY","startVerticalIndex","splitRadiusPoses","horizontals","verticals","CLIP_DIRECTIONS","CLIP_RECT_DIRECTIONS","getClipStyles","clipRelative","clipType","clipPoses","isRect","isCircle","subWidth","subHeight","getRectPoses","dirx","diry","getClipPath","clipText","clipPath","clipPrefix","splitter","xPos","yPos","radiusX_1","radiusY_1","xRadius","yRadius","centerPos_1","roundIndex","rectLength","radiusValues","_o","_p","nextBottom","radiusPoses","clippable","defaultClipPath","customClipPath","clipArea","dragWithClip","clipTargetBounds","clipVerticalGuidelines","clipHorizontalGuidelines","clipSnapThreshold","onClipStart","onClip","onClipEnd","clipPathState","snapBoundInfos","calculatedPos","isInset","isPolygon","linePoses_1","clipLeft","clipTop","ellipseClipPath","areaPoses","allWidth","allHeight","allLeft_1","allTop_1","directionType","snapPos1","snapPos2","inputTarget","clipStyle","draggableData","isLine","isArea","isDragWithTarget","isAll","dists","verticalDirection_1","horizontalDirection_1","controlDir","controlPose","dirDir","dirHorizontal","dirVertical","moveControlPos","guidePoses","isEllipse","guideRect","rx","guideXPoses","guideYPoses","rectPoses","rectDists_1","boundDelta","snapOffsetY","snapOffsetX","nextClipStyles","clipEventType","isClipStart","removeClipPath","addClipPath","originDraggable","originRelative","onDragOriginStart","onDragOrigin","onDragOriginEnd","distOrigin","dragDelta","getBorderRadius","triggerRoundEvent","roundable","roundRelative","minRoundControls","maxRoundControls","roundClickable","onRoundStart","onRound","onRoundEnd","borderRadiusState","verticalCount","horizontalCount","isDisplay","controlIndex","selectedControlPose","selectedVertical","selectedHorizontal","pose","poseDist","horizontalsLength","verticalsLength","addBorderRadius","onBeforeRenderStart","onBeforeRenderEnd","onBeforeRenderGroupStart","onBeforeRenderGroup","onBeforeRenderGroupEnd","cssMatrix","resetTransform","fillDragStartParams","fillDragParams","onRenderStart","onRenderEnd","onRenderGroupStart","onRenderGroup","onRenderGroupEnd","triggerAble","ableType","eventOperation","eventAffix","requestInstant","conditionName","isFirstStart","BeforeRenderable","requestAble_1","nextDatas","isForceEnd","getTargetAbleGesto","moveableTarget","controlBox","startFunc","eventTarget","getAbleGesto","conditionFunctions","gesto","setAbles","disableNativeEvent","parentPosition","propsTarget","ControlBoxElement","stateTarget","groupTargets","ableAttributes","onPreventClick","wrapperMoveable","manager","isMoveableElement","hitTest","totalSize","updateRect","isSetState","isTargetChanged","prevTarget","prevDragArea","useDragArea","updateNativeEvents","eventKeys","hasAbles","EventManager","updateEvent","controlBoxElement","hasTargetAble","targetAbles","hasControlAble","controlAbles","isUnset","targetGesto","controlGesto","updateTarget","statePos","getManager","getAbsoluteRotation","requsetAble","ableRequester","isInstant","requester","requestAble","updateRenderPoses","stateLeft","stateTop","checkUpdate","stateContainer","useCSS","customStyleMap","unsetAbles","updateAbles","getEnabledAbles","renderAbles","groupByMap","updateCheckInput","_renderLines","MoveableManager","customStyledMap","defaultGroupRotate","defaultGroupOrigin","containsTarget","isTarget","parentTarget","endEvent","getDraggableEvent","individualGroupable","MOVEABLE_ABLES","MOVEABLE_EVENTS_PROPS_MAP","MOVEABLE_PROPS_MAP","MOVEABLE_EVENTS_MAP","getMaxPos","getMinPos","nextTarget","isContainerChanged","differ","moveablePoses","groupWidth","groupHeight","fixedRotation","rad_1","a1_1","a2_1","b1MinMax_1","b2MinMax_1","rotatePoses","changedWidth","getGroupRect","MoveableGroup","duplicate","InitialMoveable","cssMap","prefixCSS","Groupable","IndividualGroupable","DragArea","moveableContructor","userAbles","refTargets","elementTargets","selectorMap","getElementTargets","isGroup","defaultStyled","updateRefs","isReset","nextSelectorMap","Moveable","PersonaPresenceBase","coinSize","isOutOfOffice","presenceTitle","presenceColors","mergedRootRef","presenceHeightWidth","presenceMaxSize","coinSizeWithPresenceIconStyle","presenceFontMaxSize","coinSizeWithPresenceStyle","presenceIcon","determineIcon","oofIcon","makeOpenCircleIconStyle","makeBeforeBorderStyle","borderSize","makeSizeStyle","presenceColorAvailable","available","presenceColorAway","presenceColorBusy","presenceColorDnd","presenceColorOffline","presenceColorOof","oof","presenceColorBackground","isOpenCirclePresence","backgroundClip","COLOR_SWATCHES_LOOKUP","lightBlue","darkBlue","darkGreen","lightPink","pink","lightRed","darkRed","violet","gold","burgundy","warmGray","rust","coolGray","COLOR_SWATCHES_NUM_ENTRIES","getPersonaInitialsColor","initialsColor","personaInitialsColor","lightGreen","gray","personaInitialsColorToHexCode","hashCode","iLen","getInitialsColorFromName","getInitialsStyles","initialsTextColor","showUnknownPersonaCoin","DEFAULT_PROPS","imageAlt","PersonaCoinBase","propsWithoutDefaults","getPropsWithDefaults","onPhotoLoadingStateChange","imageUrl","imageLoadState","setImageLoadstate","useImageLoadState","renderCoin","coinProps","onRenderCoin","onRenderPersonaCoin","onRenderInitials","showInitialsUntilImageLoads","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","coin","imageArea","initials","size10WithoutPresenceIcon","imageShouldFadeIn","imageShouldStartVisible","imageInitials","allowPhoneInitials","PersonaCoin","__browserNeedsRevealButton","_textElement","validateOnFocusIn","_validate","validateOnFocusOut","_onRenderLabel","labelStyles","_onRevealButtonClick","isRevealingPassword","_onInputChange","_getValue","_lastChangeValue","_isControlled","uncontrolledValue","_fallbackId","_warnControlledUsage","_delayedValidate","deferredValidationTime","_lastValidation","_adjustInputHeight","validateOnLoad","getSnapshotBeforeUpdate","prevValue","_shouldValidateAllChanges","borderless","underlined","autoAdjustHeight","canRevealPassword","revealPasswordAriaLabel","onRenderPrefix","_onRenderPrefix","onRenderSuffix","_onRenderSuffix","onRenderLabel","_errorMessage","hasRevealButton","isEdge","_browserNeedsRevealButton","hasLabel","hasErrorMessage","hasIcon","fieldGroup","_renderTextArea","_renderInput","revealButton","revealSpan","revealIcon","_isDescriptionAvailable","_renderErrorMessage","setSelectionStart","setSelectionEnd","_hasWarnedNullValue","valueProp","textAreaProps","updatedInputProps","onRenderInput","_latestValidateValue","onGetErrorMessage","_notifyAfterValidate","onNotifyValidationResult","textField","globalClassNames","unresizable","getLabelStyles","TextField","fieldPrefixSuffix","flexDirection","_iterableToArrayLimit","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","allFilesAccepted","maxFiles","accepted","sizeMatch","isPropagationStopped","isEvtWithFiles","onDocumentDragOver","isIe","isIeOrEdge","composeEventHandlers","fns","_excluded","_excluded2","_excluded3","_excluded4","_arrayWithoutHoles","_nonIterableSpread","Dropzone","_useDropzone","useDropzone","useImperativeHandle","getFilesFromEvent","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","oneOfType","arrayOf","onFileDialogCancel","onDragEnter","onDropAccepted","onDropRejected","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","inputRef","_useReducer","_useReducer2","openFileDialog","useCallback","onWindowFocus","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","dragTargetsRef","onDocumentDrop","onDragEnterCb","persist","onDragOverCb","hasFiles","onDragLeaveCb","targetIdx","onDropCb","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onInputElementClick","getInputProps","_ref3","_ref3$refKey","fileCount","bodyMapper","mergeCss","styleArgs","getApolloContext","isContained","nextParent","_makeSafe","_makeAllSafe","BaseComponent","_updateComponentRef","__disposables","__className","__async","_resolveRef","refName","__resolves","currentProps","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","_skipComponentRefResolution","classMethod","prototypeMethod","nullRender","concatStyles","_styleCache","_onSettingChanged","mergedStyles","isIE11","getFirstFocusable","includeElementsInFocusZones","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","allowFocusRoot","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","lastElementChild","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","childMatchParentMatch","siblingMatch","suppressChildTraversal","visibilityAttribute","checkTabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","doesElementContainFocus","currentActiveElement","shouldWrapFocus","noWrapDataAttribute","elementMatch","elementContainsAttribute","targetToFocusOnNextRepaint","getFocusableByIndexPath","nextChild","getElementIndexPath","StrictMode","Profiler","Suspense","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","isPureReactComponent","I","__self","__source","J","_owner","O","K","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createRef","isValidElement","lazy","_payload","_init","useState","aa","ba","da","ea","fa","ha","ia","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","xlinkHref","sa","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","mb","ob","MSApp","execUnsafeLocalFunction","pb","nodeValue","qb","gridArea","lineClamp","tb","ub","menuitem","embed","keygen","meta","wbr","vb","wb","xb","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","sibling","bc","ec","gc","ic","jc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","td","ud","vd","Ad","getModifierState","zd","movementX","movementY","Bd","Dd","Fd","Hd","pseudoElement","Jd","Ld","Md","Esc","Spacebar","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Yd","deltaZ","Zd","$d","ae","be","ce","de","ee","fe","ge","ie","le","email","password","tel","me","oe","pe","qe","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","df","Nb","ef","ff","gf","hf","je","ke","jf","kf","mf","autoFocus","nf","__html","pf","qf","rf","sf","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","yg","zg","eventTime","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ji","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","ek","removeAllRanges","addRange","onCommitFiberRoot","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","objectOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","jsx","usePrevious","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","moment","cachedGuess","countries","guesses","logError","momentVersion","charCodeToInt","unpackBase60","whole","fractional","arrayToInt","mapIndices","unpack","untils","intToUntil","abbrs","population","Zone","packedString","Country","country_name","zone_names","OffsetAt","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","sortZoneScores","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","timeZone","normalizeName","zoneScore","startYear","userOffsets","zoneScores","getZone","scoreOffsetAt","packed","normalized","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","with_offset","abbrWrap","_z","resetZoneWrap","defaultZone","setDefault","CONTEXT_ACCESSIBILITY_WIDGET_VISIBLE","AccessibilityHelpController","AccessibilityHelpWidget","_isVisibleKey","_contentDomNode","_buildContent","accessibilityHelpUrl","noKbMsg","charactersSelected","getSelectionLabel","turnOnMessage","_descriptionForCommand","ShowAccessibilityHelpAction","AccessibilityHelpCommand","SelectionAnchorSet","SelectionAnchorController","selectionAnchorSetContextKey","modelChangeListener","previousDecorations","newDecorationId","anchorPosition","cancelSelectionAnchor","SetSelectionAnchor","setSelectionAnchor","GoToSelectionAnchor","goToSelectionAnchor","SelectFromAnchorToCursor","selectFromAnchorToCursor","CancelSelectionAnchor","overviewRulerBracketMatchForeground","JumpToBracketAction","BracketMatchingController","jumpToBracket","SelectToBracketAction","selectBrackets","selectToBracket","BracketsData","_lastBracketsData","_lastVersionId","_updateBracketsSoon","_updateBrackets","_matchBrackets","matchBracket","newCursorPosition","enclosingBrackets","findEnclosingBrackets","nextBracket","selectFrom","selectTo","_recomputeBrackets","bracketData","positionsLen","newDataLen","previousIndex","previousLen","_DECORATION_OPTIONS_WITH_OVERVIEW_RULER","_DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER","bracketMatchBackground","bracketMatchBorder","CLIPBOARD_CONTEXT_MENU_GROUP","supportsCut","supportsCopy","supportsPaste","CutAction","CopyAction","PasteAction","ExecCommandCopyWithSyntaxHighlightingAction","registerExecCommandImpl","browserCommand","hoverController","originalModule","ContextMenuController","_contextMenuIsBeingShownCount","getContextViewElement","hasSelectionAtPosition","_getMenuActions","_doShowContextMenu","addedItems","subActions","oldHoverSetting","_keybindingFor","customActionViewItem","wasCancelled","ShowContextMenu","thisLen","StackElement","CursorUndoRedoController","_isCursorUndoRedo","_undoStack","_redoStack","_applyState","stackElement","CursorUndo","cursorUndo","CursorRedo","cursorRedo","getDocumentSymbols","flat","asListOfDocumentSymbols","EditorFontZoomIn","EditorFontZoomOut","EditorFontZoomReset","FormatOnType","_workerService","_callOnModel","triggerChars","FormatOnPaste","FormatDocumentAction","FormatSelectionAction","IPadShowKeyboard","shouldHaveWidget","ShowKeyboardWidget","getReindentEditOperations","inheritedIndent","getIndentationRules","globalIndent","indentEdits","adjustedLineContent","oldIndentation","idealIndentForNextLine","IndentationToSpacesAction","modelOpts","IndentationToSpacesCommand","IndentationToTabsAction","IndentationToTabsCommand","ChangeIndentationSizeAction","quickInputService","creationOpts","picks","autoFocusIndex","activeItem","IndentUsingTabs","IndentUsingSpaces","DetectIndentation","ReindentLinesAction","ReindentSelectedLinesAction","AutoIndentOnPasteCommand","selectionIsSet","AutoIndentOnPaste","callOnDispose","callOnModel","shouldIgnoreLine","indentOfFirstLine","getGoodIndentForLine","newSpaceCnt","indentUtils","newIndent","indentMetadata","indentOfSecondLine","newSpaceCntOfSecondLine","oldSpaceCntOfSecondLine","spaceCntOffset","originalIndent","newSpacesCnt","firstNonWhitespaceTokenIndex","getIndentationEditOperations","tabsToSpaces","spacesRegExp","originalIndentationRange","originalIndentation","selectionId","RequestMap","getInlayHints","provideInlayHints","hint","InlayHintsCache","InlayHintsController","_decorationOwnerId","_decorationOwnerIdPool","_sessionDisposables","_getInlayHintsDelays","_removeAllDecorations","_updateHintsDecorators","scheduler","_getHintsRanges","providerListener","onDidChangeInlayHints","extendedRange","hints","_getLayoutInfo","newDecorationsTypeIds","newDecorationsData","fontFamilyVar","getContainerDomNode","whitespaceBefore","whitespaceAfter","marginBefore","marginAfter","contentOptions","fixSpace","Parameter","Type","beforeInjectedText","affectsLetterSpacing","usesWordRange","afterInjectedText","wordToRange","decorationIdsToUpdate","decorationTypeId","newDecorationIds","editorFontSize","InspectTokensController","standaloneColorService","InspectTokensWidget","InspectTokens","launch","tokenize","getSafeTokenizationSupport","_compute","_getTokensAtLine","token1Index","tokens1","token2Index","tokens2","renderTokenText","_decodeMetadata","_tokenTypeToString","_fontStyleToString","getBackground","stateBeforeLine","_getStateBeforeLine","tokenizationResult1","tokenizationResult2","startState","CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE","DECORATION_CLASS_NAME","LinkedEditingContribution","_debounceDuration","_visibleContextKey","_currentDecorations","_languageWordPattern","_currentWordPattern","_rangeUpdateTriggerPromise","_rangeSyncTriggerPromise","_currentRequest","_currentRequestPosition","_currentRequestModelVersion","reinitialize","clearRanges","rangeUpdateScheduler","triggerRangeUpdate","updateRanges","rangeSyncScheduler","referenceRange","_syncRanges","referenceValue","mirrorRange","rangeStartColumn","rangeEndColumn","popUndoStop","getLinkedEditingRanges","foundReferenceRange","DECORATION","LinkedEditingAction","LinkedEditingCommand","orderedByScore","provideLinkedEditingRanges","editorLinkedEditingBackground","editorLinkedEditingBackgroundColor","announceCursorChange","previousCursorState","cursorDiff","pcs","cursorPositions","InsertCursorAbove","logicalLine","addCursorUp","InsertCursorBelow","addCursorDown","InsertCursorAtEndOfEachLineSelected","currentLineMaxColumn","getCursorsForSelection","InsertCursorAtEndOfLineSelected","InsertCursorAtTopOfLineSelected","MultiCursorSessionResult","revealScrollType","MultiCursorSession","findController","isDisconnectedFromFindController","allSelections","lastAddedSelection","previousMatch","_getPreviousMatch","findState","MultiCursorSelectionController","_sessionDispose","_ignoreSelectionChange","_endSession","_setSelections","modelRangesContainSameText","resultingSelections","_expandEmptyToWord","_beginSessionIfNeeded","_applySessionResult","addSelectionToNextFindMatch","addSelectionToPreviousFindMatch","moveSelectionToNextFindMatch","moveSelectionToPreviousFindMatch","inSelection","MultiCursorSelectionControllerAction","multiCursorController","AddSelectionToNextFindMatchAction","AddSelectionToPreviousFindMatchAction","MoveSelectionToNextFindMatchAction","MoveSelectionToPreviousFindMatchAction","SelectHighlightsAction","CompatChangeAll","SelectionHighlighterState","SelectionHighlighter","_createState","softEquals","hasFindOccurrences","allMatches","_SELECTION_HIGHLIGHT","_SELECTION_HIGHLIGHT_OVERVIEW","getSession","findStateSearchString","mySearchString","StandaloneReferencesController","ToggleHighContrast","_originalThemeName","standaloneThemeService","setTheme","themeName","TransposeLettersAction","middlePosition","beginPosition","leftChar","rightChar","replaceRange","ignoreUnusualLineTerminators","writeIgnoreState","setModelProperty","readIgnoreState","getModelProperty","UnusualLineTerminatorsDetector","_dialogService","_checkForUnusualLineTerminators","removeUnusualLineTerminators","primaryButton","secondaryButton","confirmed","ViewportSemanticTokensContribution","_tokenizeViewportNow","_outstandingRequests","_cancelAll","_requestRange","hasSomeSemanticTokens","requestVersionId","getSemanticTokensProviderStyling","setPartialSemanticTokens","_removeOutstandingRequest","editorWordHighlight","editorWordHighlightStrong","editorWordHighlightBorder","editorWordHighlightStrongBorder","overviewRulerWordHighlightForeground","overviewRulerWordHighlightStrongForeground","ctxHasWordHighlights","getOccurrencesAtPosition","provideDocumentHighlights","OccurenceAtPositionRequest","_wordRange","_getCurrentWordRange","currentWordRange","requestIsValid","SemanticOccurenceAtPositionRequest","TextualOccurenceAtPositionRequest","currentSelectionIsEmpty","WordHighlighter","workerRequestTokenId","workerRequestCompleted","workerRequestValue","lastCursorPositionChangeTime","renderDecorationsTimer","_hasWordHighlights","_ignorePositionChangeEvent","_onPositionChanged","_stopAll","_decorationIds","workerRequest","_getSortedHighlights","_getWord","_removeDecorations","workerRequestIsValid","_beginRenderDecorations","myRequestId","minimumRenderTime","_getDecorationOptions","hasDecorations","Write","_WRITE_OPTIONS","_TEXT_OPTIONS","_REGULAR_OPTIONS","WordHighlighterContribution","wordHighlighter","createWordHighlighterIfPossible","moveNext","moveBack","WordHighlightNavigationAction","_isNext","NextWordHighlightAction","PrevWordHighlightAction","TriggerWordHighlightAction","wordHighlight","wordHighlightStrong","selectionHighlightBorder","wordHighlightBorder","wordHighlightStrongBorder","DeleteWordPartLeft","deleteWordPartLeft","DeleteWordPartRight","deleteWordPartRight","WordPartLeftCommand","moveWordPartLeft","CursorWordPartLeft","CursorWordPartLeftSelect","WordPartRightCommand","moveWordPartRight","CursorWordPartRight","CursorWordPartRightSelect","isImmutableMap","getMixedTypeValueRetriever","isImmutableCollection","isEmptyObject","isEmptyArray","isColumnsImmutable","Immutable","isIterable","isList","spliceColumn","canEdit","editable","frozen","btoa","sourceRoot","contentDocument","sourceMap","insertAt","rel","convertToAbsoluteUrls","DEBUG","HeaderRowType","EventTypes","CellNavigationMode","DragItemTypes","CellExpand","UpdateActions","CELL_UPDATE","COLUMN_FILL","COPY_PASTE","CELL_DRAG","Column","DOWN_TRIANGLE","RIGHT_TRIANGLE","filterable","hmr","locals","colOverscanStartIdx","colOverscanEndIdx","colVisibleStartIdx","colVisibleEndIdx","isScrolling","isOver","expandedRows","CheckboxEditor","EditorBase","SimpleTextEditor","rowKey","onCellClick","onCellMouseDown","onCellMouseEnter","onCellContextMenu","onCellDoubleClick","onRowExpandToggle","onDeleteSubRow","onAddSubRow","onColumnEvent","onCellExpand","getCellActions","setInputRef","onCellChange","rowIdx","dependentValues","handleChange","isRowSelected","LOOP_OVER_ROW","CHANGE_ROW","NONE","SCROLL_TO_COLUMN","SELECT_END","SELECT_UPDATE","SELECT_START","SELECT_CELL","FILTER","HEADER","totalWidth","minColumnWidth","totalColumnWidth","recalculate","resizeColumn","sameColumn","sameColumns","resizing","headerCell","getWidthFromMouseEvent","webkitTransform","rowType","cellClass","headerCellRef","getStyle","getCell","draggableHeaderCell","onHeaderDrop","ASC","DESC","sortDirection","sortDescendingFirst","onSort","columnKey","headerRenderer","getSortByText","DEFINE_SORT","cellMetaData","overRowIdx","cellRenderer","lastFrozenColumnIndex","getRowHeight","getCellValue","rowData","expandableOptions","getExpandableOptions","subRowDetails","canExpand","treeDepth","setScrollLeft","getCells","getKnownDivProps","setRowRef","handleDragEnter","handleDragOver","handleDrop","isRowHovered","isCellValueChanging","isLockChanging","expandArgs","getRowMetaData","getRowData","editing","isEditorEnabled","isLastColumn","getUpdateCellClass","selectedColumn","rowId","createColumEventCallBack","createCellEventCallBack","createEventDTO","getFormatter","getFormatterDependencies","cellHeight","siblingIndex","numberSiblings","isDeleteSubRowEnabled","cellControls","removeScroll","isFirst","getCellClass","renderCellContent","getEvents","setCellRef","wasPreviouslySelected","handleDragStart","canExitGrid","cellNavigationMode","rowsCount","selectedPosition","selectedRangeIsSingleCell","bottomRight","getNextSelectedCellPosition","isSelectedCellEditable","getSelectedCellValue","getSelectedColumn","getSelectedRangeDimensions","getSelectedDimensions","getSelectedRow","getRowTop","rowGetter","rowHeight","FROZEN_CELL_MASK","CELL_MASK","selectedRange","anyColFrozen","enableCellSelect","onCheckCellIsEditable","changeRowOrColumn","EDITOR_CONTAINER","isKeyPrintable","isCtrlKeyHeldDown","Backspace","Enter","Ctrl","PauseBreak","CapsLock","Escape","PageUp","PageDown","Home","LeftArrow","UpArrow","RightArrow","DownArrow","Insert","Delete","LeftWindowKey","RightWindowKey","SelectKey","NumPad0","NumPad1","NumPad2","NumPad3","NumPad4","NumPad5","NumPad6","NumPad7","NumPad8","NumPad9","Multiply","Add","Subtract","DecimalPoint","Divide","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F12","NumLock","ScrollLock","SemiColon","EqualSign","Comma","Dash","Period","ForwardSlash","GraveAccent","OpenBracket","BackSlash","CloseBracket","SingleQuote","Row","Cell","HeaderCell","RowComparer","EmptyChildRow","editors","shapes","_constants","_helpers","eventBus","grid","_mounted","gridWidth","columnMetrics","createColumnMetrics","setupGridColumns","getColumnMetricsType","onColumnResize","_keysDown","onGridKeyDown","onGridKeyUp","onRowClick","selectCell","selectStart","selectUpdate","selectEnd","onRowDoubleClick","openCellEditor","canFilter","onClearFilters","onDragHandleDoubleClick","onGridRowsUpdated","onRowUpdated","updated","cellKey","fromRow","toRow","fromRowId","toRowId","rowIds","fromRowData","sortColumn","onGridSort","rowSelection","selectBy","lastRowIdxUiSelected","isSingleKeyDown","isSelectedKey","onRowsSelected","selectAllCheckbox","onRowsDeselected","useNewRowSelection","enableShiftSelect","handleShiftSelect","handleNewRowSelect","enableRowSelect","selectedRows","onRowSelect","HTMLInputElement","getHeaderRows","onFilterChange","onAddFilter","headerFiltersHeight","_cachedColumns","_cachedComputedColumns","rowActionsCell","showCheckbox","selectAllRenderer","handleCheckboxChange","handleRowSelect","toolbar","onToggleFilter","numberOfRows","columnFilters","scrollOffset","EventBus","metricsUpdated","cellRangeSelection","onWindowMouseUp","columnEquality","renderToolbar","setGridRef","setBaseGridRef","headerRows","getSelectedRows","getRowSelectionProps","rowOffsetHeight","getRowOffsetHeight","handleSort","onViewportKeydown","onViewportKeyup","rowScrollTimeout","scrollToRowIndex","overScan","enableCellAutoFocus","onCellCopyPaste","onCellSelected","onCellDeSelected","onCellRangeSelectionStarted","onCellRangeSelectionUpdated","onCellRangeSelectionCompleted","onCommit","editorPortalTarget","filterRenderer","sortable","dragable","onFilter","onCellsDragged","enableDragAndDrop","getValidFilterValues","rowGroupRenderer","onBeforeEdit","colsStart","colsEnd","rowsStart","rowsEnd","addIsDeprecated","isDeprecated","areFrozenColumnsScrolledLeft","viewPortContainer","emptyView","getScroll","emptyRowsView","setHeaderRef","setViewportContainerRef","setViewportRef","rowRenderer","onRows","getSubRowDetails","RowsContainer","setEmptyViewRef","getColumnPosition","filterRow","getColumnMetrics","getCombinedHeaderHeights","setFilterRowRef","onColumnResizeEnd","onHeaderClick","FILTERABLE","SORTABLE","getHeaderCellType","getSortableHeaderCell","getFilterableHeaderCell","getHeaderRenderer","headerCellRenderer","cleanUp","filterTerm","renderInput","CHECKBOX","getGridState","updateScroll","resetScrollStateTimeoutId","clearScrollTimer","resetScrollStateAfterDelayCallback","resetScrollStateAfterDelay","getNextScrollState","getScrollDirection","getVisibleBoundaries","rowVisibleStartIdx","rowVisibleEndIdx","getRowOverscanStartIdx","getRowOverscanEndIdx","findLastFrozenColumnIndex","getNonFrozenVisibleColStartIdx","getNonFrozenRenderedColumnCount","getDOMNodeOffsetWidth","rowOverscanStartIdx","rowOverscanEndIdx","getColOverscanStartIdx","getColOverscanEndIdx","scrollDirection","setCanvasRef","prevScrollLeft","prevScrollTop","scrollingTimeout","_currentRowsRange","_scroll","getClientScrollTopOffset","getColumnScrollPosition","scrollToColumn","interactionMasks","getRowByRef","getDecoratedComponentInstance","__metaData","getRowRenderer","renderGroupRow","renderCustomRowRenderer","unsubscribeScrollToColumn","scrollToRow","renderBaseRow","rowRef","getRows","renderRow","onMouseOver","InteractionMasks","setInteractionMasksRef","onHitBottomBoundary","onHitBottomCanvas","onHitTopBoundary","onHitTopCanvas","onHitLeftBoundary","onHitLeftCanvas","onHitRightBoundary","onHitRightCanvas","getRowColumns","isMenuOpen","isActionMenu","onHideMenu","onToggleMenu","onActionButtonBlur","onActionIconClick","onGetMenuOptions","allowAddChildRow","shouldExpand","columnGroupName","onRowExpandClick","columnGroupDisplayName","float","hideColumnName","subscribers","copiedPosition","draggedPosition","firstEditorKeyPress","selectionMask","scrollingElement","copyMask","setMaskScollLeft","onPressKeyWithCtrl","onPressEscape","onPressTab","isKeyboardNavigationEvent","changeCellFromEvent","openEditor","getEditorPosition","copyPasteEnabled","handleCopy","handlePaste","selectLastCell","selectFirstCell","closeEditor","handleCancelCopy","isCellWithinBounds","startCell","cursorCell","createSingleCellSelectedRange","isGridSelected","setSelectionMaskRef","isDragEnabled","handleDragEnd","unsubscribeSelectCell","unsubscribeSelectStart","onSelectCellRangeStarted","unsubscribeSelectUpdate","onSelectCellRangeUpdated","unsubscribeSelectEnd","onSelectCellRangeEnded","unsubscribeDragEnter","isFocusedOnBody","getKeyNavActionFromEvent","ArrowDown","getNext","isCellAtBoundary","onHitBoundary","ArrowUp","ArrowRight","ArrowLeft","changeCellFromKeyAction","changeSelectedRangeFromArrowKeyAction","getNextSelectedCellPositionForKeyNavAction","checkIsAtGridBoundary","setCopyMaskRef","renderSingleCellSelectView","renderCellRangeSelectView","onCommitCancel","checkAndCall","isKeyExplicitlyHandled","setEditorRef","getInitialValue","commitCancel","rowMetaData","onOverrideKeyDown","editorIsSelectOpen","editorHasResults","isCaretAtBeginningOfInput","isCaretAtEndOfInput","getEditor","hasResults","isSelectOpen","isNewValueValid","changeCommitted","changeCanceled","createTextRange","moveStart","setTextInputFocus","disableContainerStyles","onClickOutside","getContainerClass","handleRightClick","createEditor","renderStatusIcon","isClickedInside","handleDocumentClick","onClickCapture","handleClick","SCROLL_DIRECTION","OVERSCAN_ROWS","parentRowId","expandColumnKey","SimpleCellFormatter","GridPropHelpers","fakeCellMetaData","dragged","copied","normalizeArray","trailingSlash","samePartsLength","outputParts","_react","_Elements","WrappedComponent","_class","_temp","componentOptions","_componentOptions$wit","withRef","parseElementOrData","elementOrOptions","_frame","_componentName","findElement","filterBy","specifiedType","filteredElements","matchingElements","requireElement","wrappedCreateToken","tokenTypeOrOptions","_tokenType","wrappedCreateSource","wrappedCreatePaymentMethod","paymentMethodType","elementOrData","maybeData","elementOrDataResult","wrappedHandleCardX","clientSecret","_element2","stripeProps","getWrappedInstance","wrappedInstance","handleCardSetup","_isEqual2","_extractOptions","capitalized","hocOptions","handleRef","_setupEventListeners","mount","_props2","PLAIN_OBJECT_STR","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","_shallowEqual2","paymentRequest","_props3","canMakePayment","keysA","keysB","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","algorithm","nodeMethod","createHash","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h2","h3","h4","h5","h6","h7","hBytes","finalized","hashed","oKeyPad","iKeyPad","notString","lastByteIndex","maj","innerHash","sha256","sha224","hmac","AccessibilitySupport","CompletionItemInsertTextRule","CompletionItemKind","CompletionItemTag","CompletionTriggerKind","ContentWidgetPositionPreference","CursorChangeReason","DefaultEndOfLine","EditorAutoIndentStrategy","EditorOption","EndOfLinePreference","EndOfLineSequence","KeyCode","MarkerTag","MouseTargetType","OverlayWidgetPositionPreference","RenderLineNumbersType","RenderMinimap","ScrollType","ScrollbarVisibility","SymbolKind","SymbolTag","TextEditorCursorBlinkingStyle","TrackedRangeStickiness","WrappingIndent","KeyMod","createMonacoBaseAPI","standaloneEnums","CtrlCmd","WinCtrl","EditorOpenContext","CommandOpener","EditorOpener","USER","API","OpenerService","_openers","_validators","_resolvers","_resolvedUriTargets","_externalOpeners","_defaultExternalOpener","openExternal","_doOpenExternal","opener","externalOpener","targetURI","validationTarget","shouldOpen","externalUri","preferredOpenerId","sourceUri","followsCaret","ignoreCharChanges","alwaysRevealFirst","DiffNavigator","_onDidUpdate","nextIdx","ignoreSelectionChange","revealFirst","onDidUpdateDiff","_onDiffUpdated","getLineChanges","lineChanges","lineChange","charChanges","charChange","rhs","modifiedStartLineNumber","modifiedStartColumn","modifiedEndLineNumber","modifiedEndColumn","canNavigate","INITIALIZE","webWorkerWarningLogged","logOnceWebWorkerWarning","RequestMessage","vsWorker","ReplyMessage","SubscribeEventMessage","EventMessage","UnsubscribeEventMessage","SimpleWorkerProtocol","_workerId","_lastSentReq","_pendingReplies","_pendingEmitters","_pendingEvents","workerId","_send","_handleMessage","_handleReplyMessage","_handleRequestMessage","_handleSubscribeEventMessage","_handleEventMessage","_handleUnsubscribeEventMessage","replyMessage","requestMessage","handleMessage","handleEvent","transfer","SimpleWorkerClient","workerFactory","lazyProxyReject","_worker","_protocol","propertyIsDynamicEvent","propertyIsEvent","setWorkerId","loaderConfiguration","getConfig","requirejs","hostMethods","_onModuleLoaded","proxyMethodRequest","proxyListen","_lazyProxy","availableMethods","createProxyDynamicEvent","createScriptURL","WebWorker","onMessageCallback","onErrorCallback","workerOrPromise","MonacoEnvironment","getWorker","workerUrl","Worker","worker","onmessageerror","terminate","DefaultWorkerFactory","_webWorkerFailedBeforeError","LAST_WORKER_ID","computeDiff","LineSequence","startColumns","endColumns","getFirstNonBlankColumn","getLastNonBlankColumn","_startColumns","_endColumns","shouldIgnoreTrimWhitespace","charCodes","CharSequence","_charCodes","_lineNumbers","_columns","CharChange","originalStartLineNumber","originalStartColumn","originalEndColumn","diffChange","originalCharSequence","modifiedCharSequence","getStartColumn","getEndColumn","LineChange","originalLineSequence","modifiedLineSequence","continueCharDiff","shouldComputeCharChanges","shouldPostProcessCharChanges","createCharSequence","rawChanges","currChange","originalMatchingLength","modifiedMatchingLength","postProcessCharChanges","createFromDiffChange","DiffComputer","originalLines","modifiedLines","shouldMakePrettyDiff","continueLineDiff","createContinueProcessingPredicate","maxComputationTime","diffResult","createFromDiffResult","originalLineIndex","modifiedLineIndex","nextChange","originalLine","modifiedLine","_pushTrimWhitespaceCharChange","originalMaxColumn","modifiedMaxColumn","modifiedLineNumber","_mergeTrimWhitespaceCharChange","txt","maximumRuntime","MirrorTextModel","_uri","_eol","_lineStarts","_cachedTextValue","eolLength","lineStartValues","_setLineText","newLengths","Uint8Matrix","cols","StateMachine","edges","maxState","_maxCharCode","_stateMachine","getStateMachine","_classifier","getClassifier","FORCE_TERMINATION_CHARACTERS","LinkComputer","linkBeginIndex","linkEndIndex","lastIncludedCharIndex","charCodeBeforeLink","lastCharCodeInLink","stateMachine","linkBeginChCode","hasOpenParens","hasOpenSquareBracket","inSquareBrackets","hasOpenCurlyBracket","resetStateMachine","_createLink","computeLinks","BasicInplaceReplace","_defaultValueSet","range1","text1","range2","text2","doNavigateValueSet","numberResult","numberReplace","textReplace","valueSetsReplace","valueSets","valueSetReplace","valueSet","MirrorModel","getText","wordAtText","wordenize","_wordenize","wordRangesIdx","_validateRange","resultLines","_ensureLineStarts","getPrefixSum","maxCharacter","BaseMirrorModel","EditorSimpleWorker","foreignModuleFactory","_foreignModuleFactory","_foreignModule","EOL","strURL","onEvents","originalUrl","modifiedUrl","ignoreTrimWhitespace","_getModel","diffComputer","identical","_modelsAreIdentical","originalLineCount","modelUrl","lastEol","_diffLimit","newEdit","modelUrls","wordDef","wordDefFlags","wordDefRegExp","_suggestionsLimit","getLineWords","navigateValueSet","createData","foreignHostMethods","fhr","getMirrorModels","_getModels","monaco","STOP_WORKER_DELTA_TIME_MS","canSyncModel","EditorWorkerServiceImpl","_workerManager","WorkerManager","provideLinks","withWorker","WordBasedCompletionItemProvider","workerManager","wordBasedSuggestions","models","wordBasedSuggestionsMode","textualSuggest","_editorWorkerClient","_lastWorkerUsedTime","_checkStopIdleWorker","_checkStopEmptyWorker","EditorWorkerClient","EditorModelManager","keepIdleModels","_syncedModels","_syncedModelsLastUsedTime","_proxy","_checkStopModelSync","STOP_SYNC_MODEL_DELTA_TIME_MS","forceLargeModels","resourceStr","_beginModelSync","_stopModelSync","acceptNewModel","acceptModelChanged","acceptRemovedModel","SynchronousWorkerClient","_proxyObj","EditorWorkerHost","workerClient","_workerClient","_keepIdleModels","_workerFactory","_modelManager","_getOrCreateWorker","getProxyObject","_getProxy","_getOrCreateModelManager","ensureSyncedResources","_withSyncedResources","MonacoWebWorkerImpl","_foreignModuleId","_foreignModuleCreateData","_foreignModuleHost","_foreignProxy","loadForeignModule","foreignMethods","fmr","foreignProxy","foreignMethod","_getForeignProxy","getProxy","isFuzzyAction","isFuzzyActionArr","isIAction","fixCase","createError","substituteMatches","stateMatches","dollar","ofs","findRules","inState","MonarchStackElementFactory","maxCacheDepth","_maxCacheDepth","MonarchStackElement","stackElementId","getStackElementId","EmbeddedModeData","MonarchLineStateFactory","embeddedModeData","MonarchLineState","MonarchClassicTokensCollector","_lastTokenType","_lastTokenLanguage","embeddedModeLine","offsetDelta","nestedModeId","embeddedModeState","nestedModeTokenizationSupport","enterMode","nestedResult","MonarchModernTokensCollector","_prependTokens","_currentLanguageId","_lastTokenMetadata","cLen","MonarchTokenizer","_standaloneThemeService","_lexer","_embeddedModes","embeddedLoaded","emitting","_tokenizationRegistryListener","isOneOfMyEmbeddedModes","nestedModeStatus","getLoadStatus","tokenizationSupportPromise","rootState","lineState","tokensCollector","endLineState","_tokenize","tokenTheme","_nestedTokenize","_myTokenize","monarchCommon","popOffset","hasEmbeddedPopRule","nextEmbedded","regexSource","matchOnlyAtLineStart","_findLeavingNestedModeOffset","nestedEndState","nestedModeTokenize","nestedModeLine","restOfTheLine","lineWithoutLF","lineWithoutLFLength","includeLF","groupMatching","forceEvaluation","stackLen0","groupLen0","enteringEmbeddedMode","groupEntry","restOfLine","defaultToken","tokenSubst","switchTo","_safeRuleName","maxStack","popall","computeNewStateForEmbeddedMode","enteringEmbeddedModeId","_getNestedEmbeddedModeData","totalLen","findBracket","tokenPostfix","mimetypeOrModeId","_locateMode","isRegisteredMode","bracketType","Colorizer","_fakeColorize","_colorize","renderResult","inflatedTokens","colorizeLine","tokenizeResult","_actualColorize","ConfigurationModel","_contents","_overrides","overrideConfigurations","checkAndFreeze","section","overrideConfigurationModel","createOverrideConfigurationModel","mergeContents","otherOverride","identifiers","overrideContents","getContentsForOverrideIdentifer","contentsForKey","overrideContentsForKey","addKey","removeKey","DefaultConfigurationModel","_defaultConfiguration","_localUserConfiguration","_remoteUserConfiguration","_workspaceConfiguration","_folderConfigurations","_memoryConfiguration","_memoryConfigurationByResource","_freeze","_workspaceConsolidatedConfiguration","_foldersConsolidatedConfigurations","_userConfiguration","getConsolidateConfigurationModel","memoryConfiguration","removeValue","configurationModel","getConsolidatedConfigurationModelForResource","consolidateConfiguration","getWorkspaceConsolidatedConfiguration","getFolder","getFolderConsolidatedConfiguration","memoryConfigurationForResource","userConfiguration","folderConsolidatedConfiguration","workspaceConsolidateConfiguration","folderConfiguration","defaultConfiguration","parseConfigurationModel","workspaceConfiguration","ConfigurationChangeEvent","currentConfiguraiton","currentWorkspace","_previousConfiguration","keysSet","affectedKeys","affectedKeysTree","doesAffectedKeysTreeContains","previousConfiguration","requestedTree","HIGH_FREQ_COMMANDS","AbstractKeybindingService","_onDidUpdateKeybindings","_currentChord","_currentChordChecker","_currentChordStatusMessage","_ignoreSingleModifiers","KeybindingModifierSet","_currentSingleModifier","_currentSingleModifierClearTimeout","_logging","_getResolver","lookupPrimaryKeybinding","resolveKeyboardEvent","isChord","getDispatchParts","currentChord","keypress","keypressLabel","chordEnterTime","_documentHasFocus","_leaveChordMode","_doDispatch","getSingleModifierDispatchParts","singleModifier","_log","getParts","isSingleModiferChord","shouldPreventDefault","dispatchKeyname","resolveResult","_enterChordMode","hideAfter","KeybindingResolver","defaultKeybindings","_defaultKeybindings","_defaultBoundCommands","_lookupMap","_keybindings","keypressParts","_addKeyPress","conflicts","_addToLookupMap","conflict","conflictIsChord","itemIsChord","whenIsEntirelyIncluded","_removeFromLookupMap","lookupMap","_findCommand","printWhenExplanation","printSourceExplanation","leaveChord","defaultKb","keypressFirstPart","keypressChordPart","rawOverrides","_isTargetedForRemoval","ResolvedKeybindingItem","_resolvedKeybindingItemBrand","removeElementsAfterNulls","USLayoutResolvedKeybinding","_os","isDuplicateModifierCase","_keyCodeToUILabel","getDispatchStr","immutableKeyCode","_scanCodeToKeyCode","_resolveSimpleUserBinding","_parts","toLabel","_getLabel","_getElectronAccelerator","_getPart","_getDispatchPart","_getSingleModifierDispatchPart","SimpleModel","SimpleEditorModelResolverService","codeEditorCallback","diffEditorCallback","findModel","diffEditor","getOriginalEditor","SimpleEditorProgressService","NULL_PROGRESS_RUNNER","worked","SimpleDialogService","confirmation","doConfirm","checkboxChecked","SimpleNotificationService","notification","NO_OP","StandaloneCommandService","_onWillExecuteCommand","_onDidExecuteCommand","StandaloneKeybindingService","_cachedResolver","_dynamicKeybindings","keyEvent","_singleModifierDispatch","_keybinding","updateResolver","_toNormalizedKeybindingItems","getDefaultKeybindings","resolvedKeybindings","resolveUserBinding","toChord","isConfigurationOverrides","SimpleConfigurationService","toData","changedKeys","configurationChangeEvent","sourceConfig","SimpleResourceConfigurationService","arg3","Pos","SimpleResourcePropertiesService","StandaloneTelemetryService","publicLog","SimpleWorkspaceContextService","SCHEME","updateConfigurationService","toUpdate","updateValues","SimpleBulkEditService","totalEdits","totalFiles","ariaSummary","SimpleUriLabelService","SimpleLayoutService","_dimension","DiffEntry","originalLineStart","originalLineEnd","modifiedLineStart","modifiedLineEnd","Diff","diffReviewInsertIcon","diffReviewRemoveIcon","diffReviewCloseIcon","DiffReview","_diffEditor","actionBarContainer","_actionBar","_content","_diffs","_goToRow","_getNextRow","_getPrevRow","_currentDiff","_findDiffIndex","doLayout","jumpToLineNumber","_getCurrentFocusedRow","_getFirstRow","originalModel","modifiedModel","_mergeAdjacent","originalOptions","modifiedOptions","originalModelOpts","modifiedModelOpts","diffIndex","minOriginalLine","maxOriginalLine","minModifiedLine","maxModifiedLine","diffEntry","originalChangedLinesCnt","modifiedChangedLinesCnt","getAriaLines","originalChangedLinesCntAria","modifiedChangedLinesCntAria","modLine","_renderSection","modifiedLineCount","diffsLength","originalEqualAbove","modifiedEqualAbove","minOriginal","minModified","prevLineChange","originalEqualBelow","modifiedEqualBelow","maxOriginal","maxModified","nextLineChange","toOriginal","toModified","thisDiff","currLast","thisFirst","getType","rowClassName","lineNumbersExtraClassName","spacerIcon","originalLayoutInfo","originalLineNumbersWidth","modifiedLayoutInfo","modifiedLineNumbersWidth","spacerCodicon","DiffReviewNext","findFocusedDiffEditor","diffReviewNext","DiffReviewPrev","diffReviewPrev","diffEditors","listDiffEditors","activeCodeEditor","InlineDiffMargin","_marginDomNode","_diffActions","lineFeed","isDeletion","deletedText","currentLineNumberOffset","copyLineAction","eof","getEndOfLineSequence","_updateLightBulbPosition","lineNumberOffset","VisualEditorState","_inlineDiffMargins","_zonesMap","allViewZones","viewChangeAccessor","zoneId","restoreScrollState","overviewZones","DIFF_EDITOR_ID","diffInsertIcon","diffRemoveIcon","DiffEditorWidget","editorWorkerService","_editorProgressService","_onDidUpdateDiff","_lastOriginalWarning","_lastModifiedWarning","_updatingDiffProgress","validateDiffEditorOptions","enableSplitViewResizing","renderSideBySide","maxFileSize","renderIndicators","originalEditable","diffCodeLens","renderOverviewRuler","diffWordWrap","isInEmbeddedEditor","_updateDecorationsRunner","_updateDecorations","_containerDomElement","_overviewViewportDomElement","_overviewDomElement","_modifiedEditor","_originalDomNode","_modifiedDomNode","_beginUpdateDecorationsTimeout","_currentlyChangingViewZones","_diffComputationToken","_originalEditorState","_modifiedEditorState","_isHandlingScrollEvent","_onDidContainerSizeChanged","_diffComputationResult","_originalEditor","_createLeftHandSideEditor","originalEditor","_createRightHandSideEditor","modifiedEditor","_originalOverviewRuler","_modifiedOverviewRuler","_reviewPane","_setStrategy","DiffEditorWidgetSideBySide","_createDataSource","DiffEditorWidgetInline","applyColors","addDiffEditor","_layoutOverviewRulers","_createInnerEditor","_adjustOptionsForLeftHandSide","_layoutOverviewViewport","_onViewZonesChanged","_beginUpdateDecorationsSoon","isInDiffLeftEditorKey","ONE_OVERVIEW_WIDTH","_adjustOptionsForRightHandSide","isInDiffRightEditorKey","editorWidgetOptions","removeDiffEditor","_cleanViewZonesAndDecorations","beginUpdateDecorations","beginUpdateDecorationsSoon","_beginUpdateDecorations","setEnableSplitViewResizing","_recreateOverviewRulers","revealLineInCenterIfOutsideViewport","revealLineNearTop","revealPositionInCenter","revealLines","revealLinesInCenter","revealLinesNearTop","revealRangeNearTop","revealRangeNearTopIfOutsideViewport","revealRangeAtTop","getSupportedActions","diffEditorState","reviewHeight","_getReviewHeight","freeSpace","ENTIRE_DIFF_OVERVIEW_WIDTH","setLayout","UPDATE_DIFF_DECORATIONS_DELAY","currentOriginalModel","currentModifiedModel","currentToken","diffLimit","canSyncModelForDiff","foreignOriginal","getForeignViewZones","foreignModified","diffDecorations","getEditorsDiffDecorations","_adjustOptionsForSubEditor","originalAriaLabel","modifiedAriaLabel","splitPoint","_computeOverviewViewport","computedRatio","relayoutEditors","newStrategy","startLineNumberExtractor","midEnd","_getLineChangeAtOrBeforeLineNumber","originalEquivalentLineNumber","modifiedEquivalentLineNumber","lineChangeOriginalLength","lineChangeModifiedLength","equivalentLineNumber","_getEquivalentLineForOriginalLineNumber","_getEquivalentLineForModifiedLineNumber","DiffEditorWidgetStyle","_dataSource","_insertColor","_removeColor","newInsertColor","newRemoveColor","hasChanges","originalWhitespaces","modifiedWhitespaces","_getViewZones","originalDecorations","_getOriginalEditorDecorations","modifiedDecorations","_getModifiedEditorDecorations","ForeignViewZonesIterator","ViewZonesComputer","_lineChanges","_originalForeignVZ","_modifiedForeignVZ","originalLineHeight","modifiedLineHeight","originalHasWrapping","modifiedHasWrapping","hasWrapping","originalCoordinatesConverter","modifiedCoordinatesConverter","originalEndEquivalentLineNumber","modifiedEndEquivalentLineNumber","sortMyViewZones","addAndCombineIfPossible","lastItem","modifiedForeignVZ","originalForeignVZ","lastOriginalLineNumber","lastModifiedLineNumber","_getViewLineCount","stepOriginal","stepModified","originalViewLineCount","modifiedViewLineCount","viewZoneLineNumber","_createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion","isChangeOrInsert","_produceOriginalFromDiff","isChangeOrDelete","_produceModifiedFromDiff","stepOriginalIndex","stepModifiedIndex","originalDelta","modifiedDelta","shouldNotShrink","_ensureDomNodes","getViewRange","createFakeLinesDiv","createDecoration","DECORATIONS","charDelete","charDeleteWholeLine","charInsert","charInsertWholeLine","lineInsert","lineInsertWithSign","lineDelete","lineDeleteWithSign","lineDeleteMargin","_disableSash","_sashRatio","_sashPosition","_startSashPosition","_onSashDragStart","_onSashDrag","_onSashDragEnd","_onSashReset","newDisableSash","sashRatio","sashPosition","midPoint","MINIMUM_EDITOR_WIDTH","SideBySideViewZonesComputer","getViewZones","overviewZoneColor","originalViewModel","modifiedViewModel","InlineViewZonesComputer","_originalModel","_renderIndicators","_pendingLineChange","_pendingViewZones","_lineBreaksComputer","_finalize","modifiedEditorOptions","lineBreakIndex","hasCharChanges","maxCharsPerLine","renderedLineCount","actualDecorations","lastBreakOffset","viewLineContent","_renderOriginalLine","extractWrapped","marginDomNode2","marginElement","validateBooleanOption","validateStringSetOption","addedOutline","removedOutline","diffDiagonalFillColor","AbstractCodeEditorService","_onCodeEditorAdd","_onCodeEditorRemove","_onDiffEditorAdd","_onDiffEditorRemove","_onDecorationTypeRegistered","_modelProperties","_codeEditors","_diffEditors","editorWithWidgetFocus","RefCountedStyleSheet","_styleSheet","_refCount","_removeEditorStyleSheets","GlobalStyleSheet","CodeEditorServiceImpl","_decorationOptionProviders","_editorStyleSheets","_globalStyleSheet","_getOrCreateGlobalStyleSheet","refCountedStyleSheet","parentTypeKey","_getOrCreateStyleSheet","providerArgs","DecorationSubTypeOptionsProvider","DecorationTypeOptionsProvider","refCount","_parentTypeKey","_beforeContentRules","DecorationCSSRules","_afterContentRules","unref","createCSSRules","createInlineCSSRules","hasLetterSpacing","inlineData","beforeInlineData","afterInlineData","rangeBehavior","lightOverviewRulerColor","overviewRulerColor","darkOverviewRulerColor","overviewRulerLane","_CSS_MAP","outlineStyle","outlineWidth","borderSpacing","gutterIconPath","gutterIconSize","contentIconPath","ruleType","_ruleType","_providerArgs","_usesThemeColors","_hasLetterSpacing","CSSNameHelper","_unThemedSelector","getSelector","_buildCSS","_themeListener","_removeCSS","unthemedCSS","lightCSS","darkCSS","getCSSTextForModelDecorationClassName","getCSSTextForModelDecorationInlineClassName","getCSSTextForModelDecorationGlyphMarginClassName","getCSSTextForModelDecorationContentClassName","removeRulesContainingSelector","cssTextArr","collectCSSText","collectBorderSettingsCSSText","resolveValue","parentKey","StandaloneCodeEditorServiceImpl","_checkContextKey","_editorIsOpen","_activeCodeEditor","hasCodeEditor","doOpenEditor","LAST_GENERATED_COMMAND_ID","ariaDomNodeCreated","StandaloneCodeEditor","_standaloneKeybindingService","createAriaDomNode","ariaContainerElement","whenExpression","addDynamicKeybinding","_descriptor","keybindings","keybindingsWhen","keybindingContext","contextMenuGroupId","contextMenuOrder","menuItem","setActiveCodeEditor","StandaloneEditor","contextViewService","themeDomRegistration","registerEditorContainer","autoDetectHighContrast","setAutoDetectHighContrast","createTextModel","_ownsModel","setContainer","StandaloneDiffEditor","editorProgressService","addCommand","createContextKey","firstLF","doCreateModel","createByFilepathOrFirstLine","LanguageIdCodec","_languageIdToLanguage","_languageToLanguageId","_nextLanguageId","LanguagesRegistry","useModesRegistry","instanceCount","_warnOnOverwrite","_mimeTypesMap","_nameMap","_lowercaseNameMap","_initializeFromRegistry","getLanguages","_registerLanguages","_registerLanguage","mimetype","registerOverrideIdentifiers","filenames","configurationFiles","_mergeLanguage","primaryMime","filenamePatterns","filenamePattern","firstLineRegexStr","firstLineRegex","langAliases","langAlias","containsAliases","bestName","languageNameLower","commaSeparatedMimetypesOrCommaSeparatedIds","mimeTypeOrId","mimeTypes","extractModeIds","LanguageSelection","onLanguagesMaybeChanged","_selector","_evaluate","ModeServiceImpl","_onDidEncounterLanguage","onDidEncounterLanguage","_onLanguagesMaybeChanged","_encounteredLanguages","getModeIdForLanguageNameLowercase","modeIds","getModeIdsFromFilepathOrFirstLine","_createModeAndGetLanguageIdentifier","_getOrCreateMode","ParsedTokenThemeRule","_parsedThemeRuleBrand","colorRegExp","ColorMap","_lastColorId","_id2color","_color2id","TokenTheme","STANDARD_TOKEN_TYPE_REGEXP","toStandardTokenType","customTokenColors","createFromParsedTokenTheme","parseTokenTheme","parsedThemeRules","strcmp","defaultForeground","incomingDefaults","foregroundColorId","backgroundColorId","ThemeTrieElementRule","ThemeTrieElement","resolveParsedTokenThemeRules","_themeTrieElementRuleBrand","_fontStyle","_foreground","_background","mainRule","_themeTrieElementBrand","_mainRule","dotIndex","acceptOverwrite","vs","inherit","vs_dark","hc_black","VS_THEME_NAME","VS_DARK_THEME_NAME","HC_BLACK_THEME_NAME","ThemingExtensions","StandaloneTheme","standaloneThemeData","themeData","isBuiltinTheme","defaultColors","_tokenTheme","baseData","getBuiltinRules","useDefault","getDefault","resolveDefaultColor","LIGHT","encodedTokensColors","createFromRawTokenTheme","modelLanguage","builtinTheme","newBuiltInTheme","StandaloneThemeServiceImpl","_onColorThemeChange","_environment","_autoDetectHighContrast","_knownThemes","iconsStyleSheet","onDidChangeEmmiter","getCSS","usedFontIds","formatIconRule","fontContribution","getIconFont","getIcons","getIconsStyleSheet","_codiconCSS","_themeCSS","_allCSS","_globalStyleElement","_styleElements","_colorMapOverride","_updateCSS","_updateActualTheme","_registerShadowDomContainer","_registerRegularEditorContainer","notifyBaseUpdated","colorMapOverride","_updateThemeOrColorMap","_desiredTheme","hasRule","ruleCollector","getThemingParticipants","generateTokensCSSForColorMap","setColorMap","hidesExplorerArrows","KEYBINDING_CONTEXT_ATTR","NullContext","ConfigAwareContextValuesContainer","forConfigKeys","ArrayContextKeyChangeEvent","configKey","cachedItems","findSuperstr","deleteSuperstr","_keyPrefix","configValue","ContextKey","setContext","removeContext","SimpleContextKeyChangeEvent","CompositeContextKeyChangeEvent","AbstractContextKeyService","myContextId","_onDidChangeContext","_myContextId","ScopedContextKeyService","getContextValuesContainer","myContext","findContextAttr","ContextKeyService","_contexts","_lastContextId","contextId","parentContextId","createChildContext","_parentChangeListener","_updateParentChangeListener","disposeContext","LayoutAnchorMode","layoutAfterAnchorBoundary","ALIGN","layoutBeforeAnchorBoundary","ContextView","toDisposeOnClean","toDisposeOnSetContainer","shadowRootHostElement","useFixedPosition","attachShadow","SHADOW_ROOT_CSS","BUBBLE_UP_EVENTS","onDOMEvent","BUBBLE_DOWN_EVENTS","canRelayout","around","viewSizeWidth","viewSizeHeight","anchorAxisAlignment","verticalAnchor","pageYOffset","horizontalAnchor","containerPosition","onCapture","Direction","MENU_MNEMONIC_REGEX","MENU_ESCAPED_MNEMONIC_REGEX","menuSelectionIcon","menuSubmenuIcon","menuElement","doGetActionViewItem","parentData","menuDisposables","initializeStyleSheet","enableMnemonics","mnemonics","SubmenuMenuActionViewItem","focusItemByElement","lastFocusedItem","setFocusedItem","scrollElement","submenuIds","MenuSeparatorActionViewItem","updatePositionInSet","MENU_WIDGET_CSS","globalStyleSheet","fgColor","bgColor","BaseMenuActionViewItem","menuActionViewItem","mnemonic","getMnemonic","actionViewItems","menuItemOptions","runOnceToEnableMouseUp","applyStyle","cleanLabel","mnemonicInText","cleanMnemonic","escMatch","replaceDoubleEscapes","menuStyle","submenuOptions","mysubmenu","submenuDisposables","expandDirection","showScheduler","cleanupExistingSubmenu","createSubmenu","hideScheduler","updateAriaExpanded","submenuIndicator","submenuContainer","windowDimensions","selectFirstItem","computedStyles","entryBox","entryBoxUpdated","calculateSubmenuMenuLayout","ContextMenuHandler","focusToReturn","blockMouse","shadowRootElement","onActionRun","onDidActionRun","didCancel","ContextMenuService","contextMenuHandler","ILayoutService","ContextViewService","layoutService","currentViewDisposable","contextView","getViewElement","incoming","outgoing","Graph","_hashFn","fromNode","lookupOrInsertNode","toNode","_findCycle","CyclicDependencyError","findCycleSlow","InstantiationService","_activeInstantiations","_services","_trace","traceInvocation","_done","isOptional","_getOrCreateServiceInstance","traceCreation","_createInstance","serviceDependencies","serviceArgs","dependency","firstServiceArgPos","_setServiceInstance","instanceOrDesc","_getServiceInstanceOrDescriptor","_safeCreateAndCacheServiceInstance","branch","_createAndCacheServiceInstance","cycleCount","insertEdge","_createServiceInstanceWithOwner","removeNode","_createServiceInstance","_supportsDelayedInstantiation","idle","_dep","dur","_totals","causedCreation","printChild","_None","DoubleResourceMap","_byResource","_byOwner","ownerMap","resourceMap","removedA","removedB","MarkerStats","infos","warnings","unknowns","_subscription","oldStats","_substract","newStats","_resourceStats","MarkerService","_onMarkerChanged","changeOne","markers","_toMarker","MenuService","emitEventsForSubmenuChanges","eventDebounceDelay","_menuGroups","_contextKeys","_build","rebuildMenuSoon","contextKeyListener","fireChangeSoon","menuItems","getMenuItems","_compareMenuItems","groupName","_collectContextKeys","_fillInKbExprKeys","toggledExpression","activeActions","aGroup","bGroup","aPrio","bPrio","_compareTitles","aStr","bStr","MarkerDecorations","_markersData","oldIds","MarkerDecorationsService","_onDidChangeMarker","_markerDecorations","_handleMarkerChange","markerDecorations","changedResources","newModelDecorations","_createDecorationRange","_createDecorationOption","rawMarker","_hasMarkerTag","AccessibilityService","_onDidChangeScreenReaderOptimized","_accessibilityModeEnabledContext","updateContextKey","BrowserClipboardService","mapTextToType","findText","getResourceLabel","stackElementCounter","ResourceStackElement","resourceLabel","strResource","groupId","groupOrder","sourceId","sourceOrder","confirmBeforeUndo","resourceLabels","strResources","ResourceReasonPair","RemovedResources","externalRemoval","noParallelUniverses","WorkspaceStackElement","removedResources","invalidatedResources","ResourceEditStack","_past","_future","removeResource","setValid","_setElementValidFlag","futureElement","snapshotLength","snapshotIndex","removePastAfter","removeFutureBefore","individualMap","EditStackSnapshot","editStacks","_versionIds","missingEditStack","UndoRedoService","_editStacks","_uriComparisonKeyComputers","uriComparisonKeyComputer","_pushElement","nextOrder","editStack","hasFutureElements","closestPastElement","getClosestPastElement","ignoreResources","individualArr","splitPastWorkspaceElement","splitFutureWorkspaceElement","hasPastElements","matchedElement","matchedStrResource","resourceOrSource","_findClosestUndoElementWithSource","editStackSnapshot","cleanup","continuation","releaseLocks","_acquireLocks","affectedEditStacks","canSplit","_splitPastWorkspaceElement","WorkspaceVerificationError","_undo","checkInvalidatedResources","_tryToSplitAndUndo","createMessage","cannotUndoDueToResources","cannotLockDueToResources","undoConfirmed","_getAffectedEditStacks","verificationError","_checkWorkspaceUndo","_confirmAndExecuteWorkspaceUndo","pastElement","secondPastElement","getSecondClosestPastElement","_isPartOfUndoGroup","cancelId","verificationError1","_invokeWorkspacePrepare","verificationError2","moveBackward","_safeInvokeWithLocks","_continueUndoInGroup","_invokeResourcePrepare","flushAllElements","_findClosestUndoElementInGroup","shouldPromptForConfirmation","_confirmAndContinueUndo","_workspaceUndo","_resourceUndo","getClosestFutureElement","_findClosestRedoElementWithSource","_splitFutureWorkspaceElement","_redo","_tryToSplitAndRedo","cannotRedoDueToResources","_checkWorkspaceRedo","_executeWorkspaceRedo","moveForward","_continueRedoInGroup","_findClosestRedoElementInGroup","_workspaceRedo","_resourceRedo","_onDidClick","buttonSecondaryForeground","buttonSecondaryBackground","buttonSecondaryHoverBackground","setHoverBackground","CSS_DONE","CSS_ACTIVE","CSS_INFINITE","CSS_DISCRETE","ProgressBar","workedVal","showDelayedScheduler","bit","totalWork","doDone","delayed","iconPathToClass","iconClassGenerator","getIconClass","iconPath","QuickInputBox","isSelectionAtEnd","setAriaLabel","KeybindingLabel","keyElements","labelBackground","labelForeground","labelBorder","labelBottomBorder","labelShadow","keybindingLabelShadow","areSame","renderPart","renderUnboundKeybindings","renderUnbound","renderKey","createKeyElement","extraClass","keyElement","intlFileNameCollatorBaseNumeric","collator","Collator","sensitivity","collatorIsNumeric","compareAnything","lookFor","elementAName","elementBName","prefixCompare","elementAPrefixMatch","elementBPrefixMatch","compareByPrefix","elementASuffixMatch","compareFileNames","ListElement","_onChecked","onChecked","ListElementRenderer","toDisposeElement","toDisposeTemplate","row1","row2","keybindingContainer","detailContainer","actionBar","labelHighlights","descriptionHighlights","detailHighlights","saneDescription","saneLabel","saneDetail","cssClasses","alwaysVisible","fireButtonTriggered","QuickInputListFocus","ListElementDelegate","QuickInputList","inputElements","elementsToIndexes","matchOnMeta","_onChangedAllVisibleChecked","onChangedAllVisibleChecked","_onChangedCheckedCount","onChangedCheckedCount","_onChangedVisibleCount","onChangedVisibleCount","_onChangedCheckedElements","onChangedCheckedElements","_onButtonTriggered","onButtonTriggered","_onLeave","onLeave","_fireCheckedEvents","elementDisposables","QuickInputAccessibilityProvider","createList","toggleCheckbox","focus1","focus2","allVisibleChecked","whenNoneVisible","fireCheckedEvents","saneMeta","saneAriaLabel","Next","First","Previous","Last","Second","NextPage","PreviousPage","currentSeparator","metaHighlights","alwaysShow","shownElements","normalizedSearchValue","elementA","elementB","labelHighlightsA","labelHighlightsB","compareEntries","getAllVisibleChecked","allChecked","getCheckedCount","getCheckedElements","backButton","QuickInput","_busy","_ignoreFocusOut","_buttons","noValidationMessage","noPromptMessage","buttonsUpdated","onDidTriggerButtonEmitter","onDidHideEmitter","onDisposeEmitter","visibleDisposables","_steps","_totalSteps","totalSteps","_contextKey","ignoreFocusOut","_validationMessage","validationMessage","onDidTriggerButton","_lastValidationMessage","_lastSeverity","Other","getDescription","description1","description2","busyDelay","progressBar","infinite","leftActionBar","leftButtons","rightActionBar","rightButtons","setContextKey","showMessageDecoration","getSteps","showDecoration","QuickPick","onDidChangeValueEmitter","onWillAcceptEmitter","onDidAcceptEmitter","onDidCustomEmitter","itemsUpdated","_canSelectMany","_canAcceptInBackground","_matchOnDescription","_matchOnDetail","_matchOnLabel","_sortByLabel","_autoFocusOnList","_keepScrollPosition","_itemActivation","FIRST","_activeItems","activeItemsUpdated","activeItemsToConfirm","onDidChangeActiveEmitter","_selectedItems","selectedItemsUpdated","selectedItemsToConfirm","onDidChangeSelectionEmitter","onDidTriggerItemButtonEmitter","valueSelectionUpdated","_ok","_customButton","filterValue","onDidChangeValue","onWillAccept","onDidAccept","onDidChangeActive","onDidTriggerItemButton","_quickNavigate","quickNavigate","_placeholder","canSelectMany","autoFocusOnList","keepScrollPosition","itemActivation","activeItems","keyMods","valueSelection","_valueSelection","showCustomButton","_customButtonLabel","_customButtonHover","showOkButton","_hideInput","hideInput","trySelectFirst","clearFocus","handleAccept","onDidCustom","focusedItems","setSelectedElements","checkedItems","registerQuickNavigation","inBackground","veto","scrollTopBefore","visibilities","_hideCheckAll","checkBox","customButton","setVisibilities","DEFAULT_ARIA_LABEL","setElements","getVisibleCount","LAST","setFocusedElements","setCheckedElements","customLabel","customHover","setComboboxAccessibility","QuickInputController","comboboxAccessibility","onShowEmitter","onShow","onHideEmitter","idPrefix","registerKeyModsListeners","titleBar","headerContainer","setAllVisibleChecked","extraContainer","filterContainer","visibleCountContainer","countContainer","okContainer","onDidClick","customButtonContainer","getUI","previousFocusElement","Blur","isDisplayed","stops","onKeyMods","createQuickPick","keepScrollPositionBefore","canPickMany","ignoreFocusLost","_activeItem","picked","oldController","didHide","backKeybindingLabel","updateLayout","focusChanged","returnFocus","titleBarOffset","MAX_WIDTH","countBadge","newStyles","QuickAccessController","mapProviderToDescriptor","lastAcceptedPickerValues","visibleQuickAccess","doShowOrPick","getOrInstantiateProvider","visibleDescriptor","preserveValue","adjustValueSelection","newValueCandidateWithoutPrefix","defaultFilterValue","quickNavigateConfiguration","pickPromise","pickResolve","registerPickerListeners","providerDescriptor","getQuickAccessProvider","QuickInputService","createController","_quickAccess","resetContextKeys","EditorScopedQuickInputServiceImpl","QuickInputEditorContribution","StandaloneQuickInputServiceImpl","mapEditorToService","newQuickInputService","activeService","quickAccess","QuickInputEditorWidget","StaticServices","_serviceCollection","LazyStaticService","_serviceId","_factory","_all","configurationServiceImpl","resourceConfigurationService","resourcePropertiesService","contextService","labelService","dialogService","markerDecorationsService","DynamicStandaloneServices","ensure","withAllStandaloneServices","simpleEditorModelResolverService","setEditor","onDidCreateEditor","createDiffEditor","createDiffNavigator","setModelLanguage","setModelMarkers","getModelMarkers","onDidChangeMarkers","onDidCreateModel","onWillDisposeModel","createWebWorker","actualCreateWebWorker","colorizeElement","colorizeModelLine","defineTheme","remeasureFonts","defValue","arrayToHash","createKeywordMatcher","caseInsensitive","compileRegExp","hadExpansion","createGuard","tkey","scrut","oppat","tester","pat","elemType","isArrayOf","inWords","patx","patexp","scrutinee","selectScrutinee","compileAction","newAction","stateNames","usesEmbedded","cases","_case","Rule","sregex","act","getEncodedLanguageId","onLanguage","encounteredLanguageId","setLanguageConfiguration","EncodedTokenizationSupport2Adapter","TokenizationSupport2Adapter","adaptTokenize","tokenizeEncoded","previousStartIndex","actualResult","_toBinaryTokens","_toClassicTokens","setColorMapOverride","setTokensProvider","isEncodedTokensProvider","registerPromise","setMonarchTokensProvider","languageDef","createTokenizationSupport","noThrow","lexerMin","addRules","newrules","newrule","setAction","rule1","matchOnlyAtStart","registerReferenceProvider","registerRenameProvider","registerSignatureHelpProvider","registerHoverProvider","registerDocumentSymbolProvider","registerDocumentHighlightProvider","registerLinkedEditingRangeProvider","registerDefinitionProvider","registerImplementationProvider","registerTypeDefinitionProvider","registerCodeLensProvider","registerCodeActionProvider","registerDocumentFormattingEditProvider","registerDocumentRangeFormattingEditProvider","registerOnTypeFormattingEditProvider","registerLinkProvider","registerCompletionItemProvider","registerColorProvider","registerFoldingRangeProvider","registerDeclarationProvider","registerSelectionRangeProvider","registerDocumentSemanticTokensProvider","registerDocumentRangeSemanticTokensProvider","registerInlineCompletionsProvider","registerInlayHintsProvider","setFormatterSelector","api","ignoreDuplicateModules","MAX_LINE_NUMBER","MASK_INDENT","FoldingRegions","startIndexes","endIndexes","_startIndexes","_endIndexes","_collapseStates","_types","_parentsComputed","parentIndexes","isInsideLast","arrayIndex","FoldingRegion","ensureParentIndices","getParentIndex","FoldingModel","decorationProvider","_updateEventEmitter","_regions","_editorDecorationIds","_isInitialized","toggledRegions","regionIndex","processed","dirtyRegionEndLine","lastHiddenLine","updateDecorationsUntil","getDecorationOption","editorDecorationId","newCollapseState","collapseStateChanged","newRegions","blockedLineNumers","newEditorDecorations","blockedLineNumber","initRange","nextCollapsed","collapsedIndex","decRange","collapsedStartLineNumber","collapsedRanges","toToogle","region","getRegionAtLine","toggleCollapseState","findRange","toRegion","levelStack","containedBy","setCollapseStateLevelsDown","foldingModel","doCollapse","levels","toToggle","regionsInside","getRegionsInside","setCollapseStateLevelsUp","regions","getAllRegionsAtLine","setCollapseStateForRest","blockedLineNumbers","filteredRegions","filteredRegion","setCollapseStateForMatchingLines","setCollapseStateForType","HiddenRangeModel","_foldingModel","_foldingModelListener","updateHiddenRanges","_hiddenRanges","updateHiddenAreas","newHiddenAreas","lastCollapsedStart","lastCollapsedEnd","applyHiddenRanges","hiddenRanges","adjustLine","adjustedStartLine","adjustedEndLine","MAX_FOLDING_REGIONS_FOR_INDENT_LIMIT","IndentRangeProvider","cancelationToken","getFoldingRules","foldingRangesLimit","RangesCollector","previousRegions","endAbove","insertFirst","toIndentRanges","computeRanges","_indentOccurrences","_foldingRangesLimit","maxIndent","foldingContext","ID_SYNTAX_PROVIDER","SyntaxRangeProvider","handleFoldingRangesChange","rangeData","provideFoldingRanges","nLines","rank","collectSyntaxRanges","sanitizeRanges","_nestingLevels","_nestingLevelCounts","maxLevel","ID_INIT_PROVIDER","InitializingRangeProvider","initialRanges","timeoutTime","foldingRangeData","foldingExpandedIcon","foldingCollapsedIcon","FoldingDecorationProvider","autoHideFoldingControls","showFoldingHighlights","HIDDEN_RANGE_DECORATION","COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION","COLLAPSED_VISUAL_DECORATION","EXPANDED_AUTO_HIDE_VISUAL_DECORATION","EXPANDED_VISUAL_DECORATION","CONTEXT_FOLDING_ENABLED","FoldingController","localToDispose","_useFoldingProviders","_unfoldOnClickAfterEndOfLine","_restoringViewState","_currentModelHasFoldedImports","_foldingImportsByDefault","hiddenRangeModel","rangeProvider","foldingRegionPromise","foldingStateMemento","foldingModelPromise","updateScheduler","cursorChangedScheduler","mouseDownInfo","foldingDecorationProvider","foldingEnabled","onFoldingStrategyChanged","collapsedRegions","getMemento","foldedImports","applyMemento","getFoldingModel","onHiddenRangesChanges","onEditorMouseDown","onEditorMouseUp","foldingProviders","getRangeProvider","foldingRanges","setCollapsedAllOfType","selectionLineNumbers","adjustSelections","hasRanges","iconClicked","offsetLeftInGutter","toMaybeToggle","otherRegion","FoldingAction","foldingController","selectionLines","getSelectedLines","foldingArgumentsConstraint","foldingArgs","UnfoldAction","_foldingController","getLineNumbers","UnFoldRecursivelyAction","_args","FoldAction","setCollapseStateUp","ToggleFoldAction","FoldRecursivelyAction","selectedLines","FoldAllBlockCommentsAction","hasTypes","FoldAllRegionsAction","UnfoldAllRegionsAction","FoldAllRegionsExceptAction","UnfoldAllRegionsExceptAction","FoldAllAction","UnfoldAllAction","FoldLevelAction","ID_PREFIX","foldLevel","containsLine","setCollapseStateAtLevel","getFoldingLevel","GotoParentFoldAction","foldingRegion","parentFoldingIdx","getParentFoldLine","GotoPreviousFoldAction","expectedParentIndex","getPreviousFoldLine","GotoNextFoldAction","getNextFoldLine","foldBackgroundBackground","editorFoldForeground","foldBackground","editorFoldColor","TrimTrailingWhitespaceCommand","cursorIndex","cursorLen","minEditColumn","trimTrailingWhitespace","CopyLinesCommand","isCopyingDown","_isCopyingDown","_selectionDirection","_startLineNumberDelta","_endLineNumberDelta","sourceLines","sourceText","MoveLinesCommand","isMovingDown","_isMovingDown","_autoIndent","_moveEndLineSelectionShrink","modelLineCount","_moveEndPositionDown","buildIndentConverter","otherLineNumber","movingLineNumber","movingLineText","insertingText","shouldAutoIndent","movingLineMatchResult","matchEnterRule","indentOfMovingLine","matchEnterRuleMovingDown","getIndentEditsOfMovingBlock","newIndentatOfMovingBlock","oldSpaceCnt","oldIndent","enterPrefix","indentMetadataOfMovelingLine","futureAboveLineNumber","futureAboveLineText","parseEnterResult","validPrecedingLine","oneLineAbove","languageAtSelectionStart","SortLinesCommand","descending","getSortData","sortLines","_COLLATOR","linesToSort","getCollator","AbstractCopyLinesAction","CopyLinesUpAction","CopyLinesDownAction","DuplicateSelectionAction","insertSelection","AbstractMoveLinesAction","MoveLinesUpAction","MoveLinesDownAction","AbstractSortLinesAction","canRun","SortLinesAscendingAction","SortLinesDescendingAction","DeleteDuplicateLinesAction","linesDeleted","uniqueLines","selectionToReplace","adjustedSelectionStart","finalSelection","TrimTrailingWhitespaceAction","DeleteLinesAction","_getLinesToRemove","mergedOperations","previousOperation","IndentLinesAction","OutdentLinesAction","InsertLineBeforeAction","lineInsertBefore","InsertLineAfterAction","lineInsertAfter","AbstractDeleteAllToBoundaryAction","rangesToDelete","_getRangesToDelete","effectiveRanges","nextRange","_getEndCursorState","DeleteAllLeftAction","endPrimaryCursor","newStartLine","deleteFromLine","deleteFromColumn","DeleteAllRightAction","JoinLinesAction","reducedSelections","lastSelection","lineOffset","selectionEndPositionOffset","trimmedLinesContent","firstNonWhitespaceIdx","lineTextWithoutIndent","resultSelection","TransposeAction","AbstractCaseAction","_modifyText","UpperCaseAction","LowerCaseAction","BackwardsCompatibleRegExp","_flags","_evaluated","TitleCaseAction","titleBoundary","SnakeCaseAction","caseBoundary","singleLetters","exceptionToErrorMessage","verbose","detectSystemErrorMessage","stackToString","errno","syscall","toErrorMessage","TriggerAction","isPicksWithActive","isFastAndSlowPicks","additionalPicks","PickerQuickAccessProvider","picksCts","picksDisposable","updatePickerItems","picksDisposables","picksToken","picksFilter","providedPicks","_getPicks","applyPicks","skipEmpty","noResultsPick","fastPicksApplied","slowPicksApplied","FAST_PICKS_RACE_DELAY","awaitedAdditionalPicks","activePick","additionalActivePick","fallbackActivePick","fallbackActivePickCandidate","awaitedPicks","buttonIndex","NO_ACTION","CLOSE_PICKER","REFRESH_PICKER","REMOVE_ITEM","AbstractCommandsQuickAccessProvider","commandsHistory","CommandsHistory","getCommandPicks","allCommandPicks","filteredCommandPicks","commandPick","WORD_FILTER","aliasHighlights","commandAlias","showAlias","mapLabelToCommand","existingCommandForLabel","commandPickA","commandPickB","commandACounter","commandBCounter","commandPicks","configuredCommandsHistoryLength","getConfiguredCommandHistoryLength","serializedCache","PREF_KEY_CACHE","usesLRU","PREF_KEY_COUNTER","configuredCommandHistoryLength","workbench","commandPalette","DEFAULT_COMMANDS_HISTORY_LENGTH","AbstractEditorCommandsQuickAccessProvider","editorCommandPicks","StandaloneCommandsQuickAccessProvider","getCodeEditorCommandPicks","registerQuickAccessProvider","helpEntries","needsEditor","GotoLineAction","CodeLensModel","lenses","getCodeLensModel","providerRanks","provideCodeLenses","resolveCodeLens","ICodeLensCache","CacheItem","CodeLensCache","_fakeProvider","_deserialize","_serialize","copyItems","copyModel","CodeLensViewZone","onHeight","_onHeight","_lastHeight","CodeLensContentWidget","_isEmpty","hasSymbol","_widgetPosition","CodeLensHelper","_addDecorationsCallbacks","resultingDecorations","CodeLensWidget","viewZoneChangeAccessor","updateCallback","codeLensData","_createContentWidgetIfNecessary","withCommands","codeLensForeground","CodeLensContribution","_codeLensCache","_lenses","_getCodeLensModelDelays","_oldCodeLensModels","_resolveCodeLensesDelays","_resolveCodeLensesScheduler","_resolveCodeLensesInViewport","_onModelChange","_updateLensStyle","_styleClassName","_localDispose","_currentCodeLensModel","codeLensHeight","editorFontInfo","fontFeaturesVar","newStyle","_getCodeLensModelPromise","_resolveCodeLensesPromise","cachedLenses","_renderCodeLensSymbols","newDelay","_resolveCodeLensesInViewportSoon","decorationsAccessor","viewZonesAccessor","lastLensLineNumber","getLineNumber","_disposeAllLenses","cachedLensesNow","decChangeAccessor","lastGroup","viewZoneAccessor","codeLensIndex","groupsIndex","symbolsLineNumber","codeLensLineNumber","updateCodeLensSymbols","toResolve","computeIfNecessary","resolvePromise","resolvedSymbols","updateCommands","codelensController","getLenses","getItems","MultipleSignatures","provideSignatureHelp","Invoke","isRetrigger","ParameterHintState","Pending","previouslyActiveHints","Active","ParameterHintsModel","DEFAULT_DELAY","_onChangedHints","onChangedHints","triggerOnType","_pendingTriggers","_lastSignatureHelpResult","retriggerChars","triggerId","throttledDelayer","onEditorConfigurationChange","onCursorChange","onModelContentChange","signatures","activeSignature","updateActiveSignature","activeSignatureHelp","getLastActiveHints","mergeTriggerContexts","triggerContext","isTriggered","signatureHelpTriggerCharacters","signatureHelpRetriggerCharacters","lastCharIndex","triggerCharCode","TriggerCharacter","ContentChange","parameterHintsNextIcon","parameterHintsPreviousIcon","ParameterHintsWidget","renderDisposeables","announcedLabel","markdownRenderer","keyVisible","keyMultipleSignatures","newParameterHints","overloads","signature","domNodes","updateFont","updateMaxHeight","createParameterHintDOMNodes","hasParameters","activeParameterIndex","activeParameter","renderParameters","renderMarkdownDocs","hasDocs","labelToAnnounce","getParameterLabelOffsets","beforeSpan","paramSpan","afterSpan","paramIdx","editorHoverWidgetHighlightForeground","parameterHighlightColor","ParameterHintsController","TriggerParameterHintsAction","ParameterHintsCommand","BlockCommentCommand","_insertSpace","_usedEndToken","startLineText","endLineText","startTokenIndex","endTokenIndex","startLineAfterStartToken","endLineBeforeEndToken","_createRemoveBlockCommentOperations","_createAddBlockCommentOperations","_createOperationsForBlockComment","startTokenEditOperation","endTokenEditOperation","needleLength","LineCommentCommand","ignoreFirstLine","_tabSize","_deltaColumn","_ignoreEmptyLines","_ignoreFirstLine","shouldRemoveComments","_createRemoveLineCommentsOperations","_normalizeInsertionPoint","_createAddLineCommentsOperations","startTokenAllowedBeforeColumn","_attemptRemoveBlockComment","_gatherPreflightData","supported","_executeLineComments","_executeBlockComment","afterCommentStr","commentStrOffset","commentStr","commentStrLength","onlyWhitespaceLines","lineContentStartOffset","_haystackHasNeedleAtOffset","commentStrEndOffset","_gatherPreflightCommentStrings","_analyzeLines","isTab","columnSize","minVisibleColumn","nextVisibleColumn","CommentLineAction","commentsOptions","ToggleCommentLineAction","AddLineCommentAction","RemoveLineCommentAction","BlockCommentAction","NO_SCORE2","scoreFuzzy2","preparedQuery","doScoreFuzzy2Multiple","doScoreFuzzy2Single","totalScore","totalMatches","normalizeMatches","originalLowercase","createFuzzyMatches","sortedMatches","matchA","matchB","normalizedMatches","matchOverlaps","queryExpectsExactMatch","prepareQuery","normalizeQuery","normalizedLowercase","containsPathSeparator","expectExactMatch","originalSplit","originalPiece","expectExactMatchPiece","pathNormalizedPiece","normalizedPiece","normalizedLowercasePiece","expectContiguousMatch","pieceToQuery","AbstractGotoSymbolQuickAccessProvider","provideLabelPick","doProvideWithEditorSymbols","doProvideWithoutEditorSymbols","waitForLanguageSymbolRegistry","symbolProviderRegistryPromise","symbolProviderRegistryPromiseResolve","symbolProviderListener","forceSideBySide","symbolsPromise","doGetSymbolPicks","ignoreFirstActiveEvent","addDecorations","filterBySymbolKind","SCOPE_PREFIX","filterPos","symbolQuery","containerQuery","filteredSymbolPicks","symbolLabel","symbolLabelWithIcon","symbolLabelIconOffset","containerLabel","extraContainerLabel","symbolScore","symbolMatches","containerScore","containerMatches","skipContainerQuery","deprecated","openSideBySideDirection","sortedFilteredSymbolPicks","symbolA","symbolB","compareByKindAndScore","compareByScore","symbolPicks","updateLastSeparatorLabel","lastSeparator","lastSymbolKind","lastSymbolKindCounter","NLS_SYMBOL_KIND_CACHE","FALLBACK_NLS_SYMBOL_KIND","symbolPick","kindA","kindB","PREFIX_BY_CATEGORY","StandaloneGotoSymbolQuickAccessProvider","MoveCaretCommand","isMovingLeft","_isMovingLeft","rangeBefore","rangeAfter","MoveCaretAction","MoveCaretLeftAction","MoveCaretRightAction","DragAndDropCommand","targetPosition","targetSelection","DragAndDropController","_onEditorMouseDrag","_onEditorMouseDrop","_onEditorMouseDropCanceled","onEditorKeyDown","onEditorKeyUp","onEditorBlur","_dndDecorationIds","_mouseDown","_modifierPressed","_dragSelection","_removeDecoration","TRIGGER_KEY_VALUE","showAt","_hitContent","_hitMargin","primarySelection","AbstractGotoLineQuickAccessProvider","isValidLineNumber","toRange","updatePickerAndEditor","parsePosition","getPickLabel","isValidColumn","positionCandidate","StandaloneGotoLineQuickAccessProvider","InPlaceReplaceCommand","originalSelection","_editRange","_originalSelection","InPlaceReplaceController","currentRequest","modelURI","canNavigateValueSet","decorationRemover","InPlaceReplaceUp","InPlaceReplaceDown","_link","resolveLink","LinksList","tuples","newLinks","_union","oldLinks","oldLen","oldLink","newLink","getLinks","general","LinkOccurrence","useMetaKey","_getOptions","executeCmd","nativeLabel","nativeLabelText","appendMarkdown","getHoverMessage","LinkDetector","clickLinkGesture","cleanUpActiveLinkDecoration","computePromise","activeLinksList","currentOccurrences","activeLinkDecorationId","occurance","occurrence","getLinkOccurrence","activate","deactivate","openLinkOccurrence","modelUri","parsedUri","relativePath","messageOrError","currentOccurrence","OpenLinkAction","linkDetector","HelpQuickAccessProvider","getQuickAccessProviders","editorProviders","globalProviders","helpEntry","CONTEXT_RENAME_INPUT_VISIBLE","RenameInputField","_acceptKeybindings","_updateStyles","cancelInput","wantsPreview","_currentAcceptInput","_currentCancelInput","supportPreview","disposeOnDone","newName","RenameSkeleton","_providerRenameIdx","_providers","rejects","resolveRenameLocation","rejectReason","_provideRenameEdits","provideRenameEdits","rename","skeleton","RenameController","_bulkEditService","_dispoableStore","_cts","_renameInputField","hasProvider","resolveLocationOperation","hasPreviewHandler","inputFieldResult","renameOperation","renameResult","showPreview","quotableLabel","acceptInput","RenameAction","RenameCommand","acceptRenameInput","cancelRenameInput","WordSelectionRangeProvider","_addInWordRanges","_addWordRanges","_addWhitespaceLine","lastCh","SelectionRanges","mov","SmartSelectController","_ignoreSelection","AbstractSmartSelect","_forward","GrowSelectionAction","ShrinkSelectionAction","work","allRawRanges","allProviderRanges","oneProviderRanges","oneRawRanges","oneRanges","oneRangesWithTrivia","rangeNoWhitespace","rangeFull","mergeStyleSets","mergeCssSets","classNameSet","concatenatedStyleSet","registrations","styleSetArea","mergedCallback","useAsync","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","scrollableParent","findScrollableParent","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","startingElement","__assignFn","asyncMap","mapFn","catchFn","activeCallbackCount","promiseQueue","makeCallback","examiner","both","graphQLResultHasError","iterateObserversSafely","argument","observersWithMethod","obs","fixObservableSubclass","subclass","canUse","isPromiseLike","addObserver","removeObserver","latest","deliverLastMessage","nextOrError","quietly","warnedAboutUpdateQuery","queryManager","queryInfo","subObserver","_observer","defaultSubscriptionObserverErrorCallback","reobserve","tearDownQuery","isTornDown","queryId","generateQueryId","opDef","queryName","initialFetchPolicy","removeQuery","saveAsLastResult","getLastResult","hasForcedResolvers","getDiff","returnPartialData","logMissingFieldErrors","missing","updateLastResult","isDifferentFromLastResult","newResult","getLast","variablesMustMatch","getLastError","resetQueryStoreErrors","resetErrors","reobserveOptions","pollInterval","resetLastWrite","fetchMoreOptions","combinedOptions","qid","notifyOnNetworkStatusChange","fetchQuery","fetchMoreResult","writeQuery","stopQuery","startGraphQLSubscription","subscriptionData","setVariables","optimistic","broadcastQueries","updatePolling","newNetworkStatus","setObservableQuery","fetchQueryObservable","ssrMode","pollingInfo","maybeFetch","poll","assumeImmutableResults","useDisposableConcast","oldVariables","concast","reportResult","reportError","errorResult","hasObservers","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","mergeDeep","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","prepareContext","getCacheKey","identify","addExportedVariables","buildRootValueFromCache","shouldForceResolvers","forceResolvers","rootValue","mainDefinition","definitionOperation","defaultOperationType","execContext","exportedVariables","resolveSelectionSet","resultsToMerge","resolveField","fieldResult","typeCondition","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","resolveSubSelectedArray","destructiveMethodCounts","wrapDestructiveCacheMethod","cancelNotifyTimeout","lastRequestId","observableQuery","lastDiff","getDiffOptions","updateWatch","oq","updateLastDiff","canonizeResults","setDiff","oldDiff","notifyTimeout","oqListener","fromOptimisticTransaction","shouldNotify","QueryInfo","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","shouldWriteResult","errorPolicy","performTransaction","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","queryDeduplication","onBroadcast","clientAwareness","localState","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","stopQueryNoBroadcast","cancelPendingFetches","mutate","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","keepRootFields","mutationStoreValue","stopQueryInStore","queryNamesAndDocs","legacyQueryOptions","nextFetchPolicy","includedQueriesById","oldNetworkStatus","hasSuggestedDevtools","mergeOptions","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","__APOLLO_CLIENT__","typeDefs","clientAwarenessName","clientAwarenessVersion","HttpLink","resetStore","reFetchObservableQueries","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","devToolsHookCb","getQueryStore","dataWithOptimisticResults","readQuery","readFragment","writeFragment","__actionHookForDevTools","__requestRaw","clearStore","discardWatches","onResetStore","onClearStore","includeStandby","getObservableQueries","serializedState","setLocalStateFragmentMatcher","setLink","rnds8","uuid","REGEX","byteToHex","v4","rnds","DirectionalKeyCodes","mountCounters","setMountCounters","currValue","useFocusRects","disableFocusRects","FocusRects","concatStyleSetsWithProps","allStyles","_memoizedClassNames","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","useStaticStyles","__noStyleOverride__","disableCaching","_traverseMap","enableClassNameCacheFullWarning","_traverseEdge","_normalizeValue","__cachedInputs__","isRendered","_timeoutId","useMutation","mutationId","executeOptions","baseOptions","ignoreResults","clientOptions","hasSymbols","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","Observable","isObservable","hostReportError","enqueue","cleanupSubscription","_cleanup","closeSubscription","_queue","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscriber","_proto3","hasSeed","startNext","completeIfDone","mergeDeepArray","DeepMerger","defaultReconciler","reconciler","pastCopies","sourceKey","targetValue","shallowCopyForMerge","shouldInclude","isInclusionDirective","directiveArguments","directiveName","ifArgument","getInclusionDirectives","evaledValue","hasDirectives","getDirectiveNames","hasClientExports","cloneDeepHelper","EAGER_METHODS","useLazyQuery","resolves","execution","setExecution","resolve1","useBoolean","setTrue","setFalse","useId","providedId","createResolver","newRefs","isMacResult","isMac","useTarget","hostElement","previousTargetProp","targetRef","targetWindow","currentDoc","useResponsiveMode","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","newResponsiveMode","mergeAriaAttributeValues","mergedAttribute","ariaAttributes","defaultFocusRestorer","originalElement","containsFocus","findSiblingNodes","Popup","shouldRestoreFocus","isModalOrPanel","targetDocument","popupPortalNode","popupAncestorNode","currNode","findAncestorNode","useHideSiblingNodes","onRestoreFocus","originalFocusedElement","documentContainsFocus","useRestoreFocus","needsVerticalScrollBar","needsVerticalScrollBarState","setNeedsVerticalScrollBar","rootHeight","firstChildHeight","useScrollbarAsync","createComponent","ResultComponent","DefaultFields","_getCustomizations","stateReducer","_resolveTokens","_resolveStyles","viewProps","statics","allTokens","currentTokens","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","boundReset","isInitial","PrimaryButton","SelectableOptionMenuItemType","useControllableValue","controlledValue","defaultUncontrolledValue","isControlled","valueRef","onChangeRef","setValueOrCallOnChange","getAllSelectedOptions","selectedOptions","componentAsMemoizer","Outer","Inner","innerMemoizer","innerProps","outerProps","composeComponentAs","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitials","isRtl","cleanupDisplayName","splits","getInitialsLatin","memoizer","composeRenderFunction","SELECTION_INDEX_ATTRIBUTE_NAME","SELECTION_TOGGLE_ATTRIBUTE_NAME","SELECTION_INVOKE_ATTRIBUTE_NAME","SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME","ignoreNextFocus","_handleNextFocus","isModal","_onMouseDownCapture","_hasAttribute","isToggleModifierPressed","_isCtrlPressed","_isMetaPressed","_getSelectionMode","_shouldHandleFocus","isToggle","itemRoot","_findItemRoot","_getItemIndex","isIndexSelected","enterModalOnTouch","_isTouch","setModal","_setIsTouch","isSelectedOnFocus","_onItemSurfaceClick","_updateModifiers","_isSelectionDisabled","_shouldAutoSelect","_isShiftPressed","_onInvokeMouseDown","disableAutoSelectOnInputElements","_onTouchStartCapture","enableTouchInvocationTarget","isSelectionDisabled","_onToggleAllClick","_onToggleClick","_onInvokeClick","onItemContextMenu","_onDoubleClick","onItemInvoked","_isInputElement","_onKeyDownCapture","isSelectAllKey","isClearSelectionKey","isAllSelected","_findScrollParentAndTryClearOnEmptyClick","onKeyDownCapture","onMouseDownCapture","previousProps","toggleAllSelected","setChangeEvents","toggleIndexSelected","_isTabPressed","selectToIndex","_clearAndSelectIndex","scrollParent","_tryClearOnEmptyClick","selectionPreservedOnEmptyClick","_isNonHandledClick","indexValue","handleFocus","_shouldHandleFocusTimeoutId","_isTouchTimeoutId","canSelectItem","_getKey","defaultGetKey","_changeEventSuppressionCount","_exemptedCount","_anchoredIndex","_unselectableCount","_onSelectionChanged","_canSelectItem","_isModal","suppressChange","_hasChanged","_change","shouldClear","newKeyToIndexMap","newUnselectableIndices","hasSelectionChanged","_setAllSelected","newExemptedIndicies","newExemptedCount","indexProperty","_exemptedIndices","exemptKey","_isAllSelected","_keyToIndexMap","_unselectableIndices","_updateCount","_selectedIndices","isRangeSelected","selectableCount","isKeySelected","setKeySelected","shouldAnchor","isExempt","selectToKey","clearSelection","anchorIndex","toggleKeySelected","toggleRangeSelected","preserveModalState","SELECTION_BACKWARD","_inputElement","_autoFillEnabled","isComposing","_updateValue","_getCurrentInputValue","inputValue","_tryEnableAutofill","enableAutofillOnKeyPress","_onInputChanged","nativeEventComposing","_onChanged","composing","defaultVisibleValue","updateValueInWillReceiveProps","updatedInputValue","_getControlledValue","_1","shouldSelectFullInputValueInComponentDidUpdate","differenceIndex","_doesTextStartWith","shouldSelectFullRange","autoCapitalize","_getDisplayValue","inel","isComposed","displayValue","startWith","FORMAT_ARGS_REGEX","FORMAT_REGEX","replaceFunc","useSetTimeout","timeoutIds","ReactPlugin","ChannelControllerPriority","_createPerfManager","core","notificationMgr","UInt32Mask","MaxUInt32","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","_canUseCookies","strVisibilityChangeEvt","strPageHide","_cookieMgrs","GuidRegex","EventData","MetricData","DataPointType","StackFrame","ExceptionDetails","_stringify","convertToString","_formatMessage","theEvent","errorType","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","_getErrorType","stackDetails","SeverityLevel","StorageType","DistributedTracingModes","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","_getVerifiedStorageObject","storageType","_getSessionStorageObject","_htmlAnchorIdx","_htmlAnchorElement","_internalEndpoints","_dispatchEvent","evnt","_aiNameFunc","baseName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","Base","strTrue","_setValueIf","_extractPropsAndMeasurements","measurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","telemetryItem","EnvelopeCreatorInit","HashCodeScoreGenerator","EnvelopeTypeCreator","Session","Application","Device","Internal","_validateUserInput","strExt","strTags","_removeEmpty","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","_getOwner","checkPrototype","aiHook","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","XHRMonitoringState","ajaxData","AJAX_MONITOR_PREFIX","strFetch","_markCount","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","msgId","isUserAct","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","_internalSdkSrc","_ignoreUpdateSnippetProperties","CollapseAllVisibility","nativeElementMap","ol","colGroup","CheckBase","useFastIcons","IconComponent","CheckGlobalClassNames","checkHost","Check","checkBoxHeight","sharedCircleCheck","DetailsRowGlobalClassNames","cellAnimation","cellCheck","cellMeasurer","listCellFirstChild","isContentUnselectable","isCheckVisible","isRowHeader","DEFAULT_CELL_STYLE_PROPS","cellLeftPadding","cellRightPadding","cellExtraRightPadding","DEFAULT_ROW_HEIGHTS","compactRowHeight","rowVerticalPadding","compactRowVerticalPadding","tooltipHost","cellIsCheck","collapseButton","isSelectAllHidden","isResizingColumn","cellSizer","isResizing","dropHintCircleStyle","dropHintCaretStyle","dropHintLineStyle","cellTitle","cellName","filterChevron","gripperBarVertical","checkTooltip","cellStyleProps","isHeader","FastCheck","_defaultCheckboxRender","checkboxProps","_fastDefaultCheckboxRender","SelectAllVisibility","DetailsRowCheck","canSelect","anySelected","onRenderDetailsCheckbox","defaultCheckboxRender","onRenderCheckbox","detailsCheckboxProps","excludedPropNames","allowedPropNames","getNativeElementProps","checkRole","_dragEnterCounts","_activeTargets","_initialized","dragDropOptions","_onDocumentMouseUp","isDraggable","isDroppable","activeTarget","eventMap","dragDropTarget","_isDraggable","_isDroppable","isHandled","_dragData","_isChild","childElement","canDrag","dragContext","isIconOnly","accessibleLabel","_onRenderFilterIcon","columnProps","_onRenderColumnHeaderTooltip","tooltipHostProps","hostClassName","_onColumnClick","onColumnClick","columnActionsMode","itemIndex","_updateHeaderDragInfo","borderWhileDragging","noBorderWhileDragging","setDraggedItemIndex","updateDragInfo","_onColumnContextMenu","onColumnContextMenu","_onRootMouseDown","columnIndex","parentId","onRenderColumnHeaderTooltip","headerClassName","isActionable","isIconVisible","isSorted","isGrouped","isFiltered","isPadded","transitionDurationDrag","transitionDurationDrop","onRenderFilterIcon","onRenderHeader","hasInnerButton","accNameDescription","_hasAccessibleLabel","isSortedDescending","calculatedWidth","gripperBarVerticalStyle","cellTooltip","setAriaDescribedBy","hasDropdown","nearIcon","sortIcon","_renderAccessibleLabel","dragDropHelper","_addDragDropHandling","isDropped","borderAfterDropping","noBorderAfterDropping","TRANSITION_DURATION_DROP","_dragDropSubscription","_getColumnDragDropOptions","updateDropState","filterAriaLabel","sortAscendingAriaLabel","sortDescendingAriaLabel","groupAriaLabel","DetailsColumn","iconForegroundColor","headerForegroundColor","dropdownChevronForegroundColor","resizerColor","nearIconStyle","borderAfterDragOrDrop","alignContent","NO_COLUMNS","_rootElement","_rootComponent","_draggedColumnIndex","_dropHintDetails","_updateDroppingState","_resetDropHints","_onDragOver","_computeDropHintToBeShown","_onDrop","columnReorderProps","_getColumnReorderProps","_currentDropHintIndex","isValidDrop","_isValidCurrentDropHintIndex","_onDropIndexInfo","onColumnDrop","dragDropDetails","draggedIndex","handleColumnReorder","_updateDragInfo","_isCheckboxColumnHidden","_getDropHintPositions","onColumnDragStart","onColumnDragEnd","columnDragEndLocation","_isEventOnHeader","dropLocation","prevRef","prevMid","frozenColumnCountFromStart","frozenColumnCountFromEnd","dropHintElement","newMid","dropHintElementRef","eventXRelativePosition","currentDropHintIndex","_liesBetween","lastValidColumn","indexToUpdate","_isBefore","_isAfter","middleIndex","_updateDropHintElement","_renderColumnSizer","columnResizeDetails","isResizable","_stopPropagation","_onSizerBlur","cellSizerStart","cellSizerEnd","cellIsResizing","_onSizerDoubleClick","_onSelectAllClicked","columnIndexAttr","columnMinWidth","_onRootMouseMove","isSizing","_onRootKeyDown","onColumnResized","_onSizerMouseMove","onColumnIsSizingChanged","_onSizerMouseUp","_onToggleCollapseAll","onToggleCollapseAll","newCollapsed","isAllCollapsed","_dragDropHelper","minimumPixelsForDrag","_subscriptionObject","_getHeaderDragDropOptions","previousColumns","ariaLabelForToggleAllGroupsButton","ariaLabelForSelectAllCheckbox","selectAllVisibility","ariaLabelForSelectionColumn","groupNestingDepth","checkboxVisibility","isCheckboxHidden","isCheckboxAlwaysVisible","FocusZone","collapseAllVisibility","cellIsGroupExpander","_renderDropHint","_renderColumnDivider","sizingOverlay","columnReorderOptions","displayProperty","onRenderDivider","dropHintIndex","dropHintStyle","onColumnAutoResized","DetailsHeader","cellSizerFadeInStyles","cellStyles","cellWrapperPadded","cellIsActionable","cellIsEmpty","columnStartIndex","rowClassNames","onRenderItemColumn","getCellValueKey","cellsByColumn","enableUpdateAnimations","rowHeaderId","cellValueKeysRef","cellValueKeys","getValueKey","cellContentsRender","getCellText","previousValueKey","cellValueKey","showAnimation","cellPadded","cellUnpadded","_cellMeasurer","_focusZone","selectionState","getSelectionState","isDropping","dragDropEvents","_droppingClassNames","columnMeasureInfo","onDidMount","_getRowDragDropOptions","_onDidMountCalled","onMeasureDone","onWillUnmount","useReducedRowRenderer","newSelectionState","flatIndexOffset","onRenderCheck","_onRenderCheck","rowWidth","getRowAriaLabel","getRowAriaDescription","getRowAriaDescribedBy","checkButtonAriaLabel","checkboxCellClassName","rowFieldsAs","RowFields","focusZoneProps","isSelectionModal","droppingClassName","ariaRowDescription","ariaSelected","ariaPositionInSet","ariaSetSize","focusZoneDirection","_rowClassNames","rowFields","_ariaRowDescriptionId","checkCell","checkCover","measureCell","forceIntoFirstElement","DetailsRow","focusedLinkColor","defaultHeaderText","defaultMetaText","defaultHoverHeaderText","defaultHoverMetaText","defaultHoverBackground","selectedHeaderText","selectedMetaText","selectedBackground","selectedHoverHeaderText","selectedHoverMetaText","selectedHoverBackground","focusHeaderText","focusMetaText","focusBackground","focusHoverBackground","selectedStyles","cannotSelectStyles","rootCompactStyles","cellCompactStyles","defaultCellStyles","wordBreak","listCell","beziers","dropIcon","iconTag","_toggleCollapse","onToggleCollapse","isGroupLoading","newLoadingVisible","isLoadingVisible","onGroupHeaderKeyUp","_onToggleSelectGroupClick","onToggleSelectGroup","_onHeaderClick","onGroupHeaderClick","_onRenderTitle","ariaColSpan","headerCount","hasMoreData","groupLevel","onRenderTitle","onRenderGroupHeaderCheckbox","isCollapsedGroupSelectVisible","expandButtonProps","expandButtonIcon","selectAllButtonProps","ariaPosInSet","ariaRowIndex","canSelectGroup","isSelectionCheckVisible","currentlySelected","groupHeaderContainer","expandIsCollapsed","GroupHeader","finalRowHeight","checkExpandResetStyles","transitionDelay","GroupShowAll","showAllLinkText","onToggleSummarize","memoizedOnClick","GroupFooter","footerText","ScrollToMode","SPACER_KEY_PREFIX","EMPTY_RECT","_measurePageRect","_measureSurfaceRect","_measureScrollRect","_surface","_pageRefs","_getDerivedStateFromProps","renderCount","_resetRequiredWindows","_requiredRect","_measureVersion","_invalidatePageCache","_updatePages","_onRenderRoot","surfaceElement","_onRenderSurface","surfaceRef","pageElements","_onRenderPage","pageProps","onRenderCell","cellRole","itemKey","ignoreScrollingState","pages","_estimatedPageHeight","_totalEstimates","_requiredWindowsAhead","_requiredWindowsBehind","_onAsyncScroll","_onAsyncIdle","_onAsyncResize","_onScrollingDone","_cachedPageHeights","_focusedIndex","_pageCache","scrollToIndex","measureItem","scrollToMode","_getRenderCount","allowedRect","_allowedRect","itemsPerPage","pageSpecification","_getPageSpecification","pageHeight","itemCount","_scrollElement","scrollRect","scrollWindow","itemPositionWithinPage","itemIndexInPage","getStartItemIndexInView","isSpacer","totalRowHeight","finalState","pagesVersion","getPageHeight","_updatePageMeasurements","_materializedRect","_hasCompletedFirstRender","onPagesUpdated","oldPages","newPages","oldPage","newPage","_updateRenderRects","getTotalListHeight","_surfaceRect","onRenderSurface","onRenderRoot","_renderPage","finalOnRenderSurface","_shouldVirtualize","onShouldVirtualize","cachedPage","usePageCache","pageElement","pageStyle","_getPageStyle","newRef","getPageStyle","indexString","innerRect","outerRect","renderedWindowsAhead","renderedWindowsBehind","requiredWindowsAhead","requiredWindowsBehind","windowsAhead","windowsBehind","newListState","_buildPages","oldListPages","_notifyPageChanges","onPageAdded","onPageRemoved","renderedIndexes","_onPageAdded","_onPageRemoved","_measurePage","hasChangedHeight","measureVersion","newClientRect","materializedRect","pageTop","currentSpacer","focusedIndex","shouldVirtualize","isFirstRender","pageData","newRect","pageBottom","isPageRendered","isPageInAllowedRange","isPageInRequiredRange","itemsInPage","_createPage","_visibleRect","visibleRect","getPageSpecification","_getItemCountForPage","_getPageHeight","visibileRect","getItemCountForPage","pageKey","surfaceRect","visibleTop","_expandRect","pagesBefore","pagesAfter","_subGroupRefs","_droppingClassName","_onRenderGroupHeader","_onRenderGroupShowAll","_onRenderGroupFooter","_renderSubGroup","subGroup","subGroupIndex","eventsToRegister","getGroupItemLimit","groupProps","headerProps","showAllProps","footerProps","listProps","onRenderGroupHeader","onRenderGroupShowAll","onRenderGroupFooter","nestingDepth","showEmptyGroups","GroupedListSection","_getGroupKey","groupIndex","_getGroupDragDropOptions","newIsDropping","groupedListClassNames","isShowAllVisible","isShowingAll","hasNestedGroups","dividerProps","ariaControlsProps","groupedListId","groupHeaderProps","groupShowAllProps","groupFooterProps","canDragGroups","_getDroppingClassName","_returnOne","_onRenderGroup","forceListUpdate","subGroupCount","pageRefs","_onRenderGroupCell","groupIsDropping","ROW_HEIGHT","COMPACT_ROW_HEIGHT","_renderGroup","_onToggleSelectGroup","_onToggleCollapse","_onToggleSummarize","_getGroupNestingDepth","finalListProps","onRenderShowAll","onRenderFooter","_getDefaultGroupItemLimit","_getGroupItemLimit","_getGroupHeight","getGroupHeight","pageGroup","_updateIsSomeGroupExpanded","_isInnerZoneKeystroke","_isSomeGroupExpanded","_computeIsSomeGroupExpanded","listVersion","shouldForceUpdates","isAllGroupsCollapsed","_setGroupsCollapsedState","rootListProps","shouldEnterInnerZone","_forceListUpdates","toggleCollapseAll","allCollapsed","groupsInLevel","onGroupExpandStateChanged","newIsSomeGroupExpanded","isHeaderVisible","GroupedList","withViewport","_registerResizeObserver","_viewportResizeObserver","_unregisterResizeObserver","_updateViewport","withForceUpdate","viewportElement","_resizeAttempts","delayFirstMeasure","disableResizeObserver","skipViewportMeasures","_isResizeObserverAvailable","previousSkipViewportMeasures","newViewport","BaseDecorator","MIN_COLUMN_WIDTH","ariaLabelForListHeader","constrainMode","isPlaceholderData","layoutMode","onColumnHeaderClick","onColumnHeaderContextMenu","selectionZoneProps","ariaLabelForGrid","rowElementEventMap","shouldApplyApplicationRole","adjustedColumns","isSomeGroupExpanded","listRef","focusZoneRef","groupedListRef","headerRef","onRowDidMount","onRowWillUnmount","disableSelectionZone","onActiveRowChanged","onRenderMissingItem","checkButtonGroupAriaLabel","enterModalSelectionOnTouch","onRenderDefaultRow","selectionZoneRef","defaultRole","getGroupNestingDepth","groupedDetailsListIndexMap","indexMap","rowCount","numGroupHeaders","numOfGroupHeadersBeforeItem","totalRowCount","useGroupedDetailsListIndexMap","additionalListProps","defaultOnRenderDetailsHeader","detailsHeaderProps","defaultOnRenderDetailsFooter","propsOnRenderDetailsHeader","onRenderDetailsHeader","propsOnRenderDetailsFooter","onRenderDetailsFooter","detailsFooterProps","columnReorderOnDragEnd","finalDropLocation","outside","surface","remainingGroups","fixedColumns","isHorizontalConstrained","horizontalConstrained","onRenderDetailsGroupFooter","finalOnRenderDetailsGroupFooter","onRenderDetailsGroupHeader","finalOnRenderDetailsGroupHeader","ariaRowCount","finalGroupProps","sumColumnWidths","finalOnRenderRow","onRenderRow","rowProps","onRenderListCell","isRightArrow","focusZoneInnerProps","focusZone","onActiveElementChanged","shouldRaiseClicksOnEnter","onHeaderKeyDown","onContentKeyDown","headerWrapper","contentWrapper","_groupedList","_selectionZone","_onRenderRow","setKey","newViewportWidth","oldViewportWidth","shouldResetSelection","_initialFocusedIndex","initialFocusedIndex","focusedItemIndex","_adjustColumns","_onGroupExpandStateChanged","_onColumnIsSizingChanged","_onRowDidMount","_getItemKey","_activeRows","_setFocusToRowIfPending","_onRowWillUnmount","_onColumnResized","resizingColumn","resizingColumnIndex","newCalculatedWidth","_rememberCalculatedWidth","_onColumnAutoResized","_onActiveRowChanged","onActiveItemChanged","_columnOverrides","lastWidth","_getAdjustedColumns","focusIndex","_setFocusToRow","_notifyColumnsResized","onDidUpdate","newColumns","lastSelectionMode","canResizeColumns","sortedColumnKey","groupedColumnKey","firstItem","isCollapsable","clickable","buildColumns","_getFixedColumns","_getJustifiedColumns","_getColumnOverride","flexMargin","sumProportionalWidth","getPaddedWidth","rowCheckWidth","groupExpandWidth","widthFraction","fullWidth","shrinkWidth","availableWidth","baseColumn","overflowWidth","isLast","spaceLeft","justified","onHover","DetailsListBase","paddingOnly","DetailsList","WebkitOverflowScrolling","DEFAULT_DATE_FORMATTING","formatDay","formatMonth","formatYear","formatMonthDayYear","formatMonthYear","DEFAULT_CALENDAR_STRINGS","shortMonths","shortDays","goToToday","weekNumberFormatString","prevMonthAriaLabel","nextMonthAriaLabel","prevYearAriaLabel","nextYearAriaLabel","prevYearRangeAriaLabel","nextYearRangeAriaLabel","closeButtonAriaLabel","selectedDateFormatString","todayDateFormatString","monthPickerHeaderAriaLabel","yearPickerHeaderAriaLabel","dayMarkedAriaLabel","TimeConstants","addDays","setDate","addWeeks","addMonths","newMonth","addYears","getMonthStart","getMonthEnd","compareDates","date1","date2","compareDatePart","getDatePartHashValue","getDateRangeArray","dateRangeType","workWeekDays","daysToSelectInDayView","startDate","datesArray","endDate","Monday","Tuesday","Wednesday","Thursday","Friday","Day","getDatePart","Week","WorkWeek","daysOffset","getStartDateOfWeek","Month","nextDate","isInDateRangeArray","dateRange","getWeekNumbersInMonth","weeksInMonth","firstWeekOfYear","navigatedDate","selectedYear","selectedMonth","fistDayOfMonth","endOfFirstWeek","dateWeekDay","Sunday","adjustWeekDay","endOfWeekRange","weeksArray","getWeekNumber","FirstFullWeek","getWeekOfYearFullDays","FirstFourDayWeek","getDayOfYear","num3","getFirstDayWeekOfYear","numberOfFullDays","December","num2","daysUntilDate","isSingleWeek","daySet","amountOfNoNeighbors","minDate","maxDate","boundedDateRange","restrictedDates","showWeekNumbers","allFocusable","weeksToShow","dayLabels","firstOfMonthIndex","originalDate","firstOfMonthIndexOffset","dayCell","weekDayLabelCell","targetDate","initialDate","restrictedDateOptions","availableDate","dateTimeFormatter","activeDescendantId","navigatedDayRef","calculateRoundedStyles","dayIndex","weekIndex","weekCorners","customDayCellRef","onSelectDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","cornerStyle","isNavigatedDate","isMarked","daySelected","isInBounds","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","setRef","dayInfos","dayRefs","dayRef","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","findAvailableDateOptions","dayToCompare","navigateMonthEdge","dayButton","isToday","dayIsToday","dayMarker","ariaRole","weekNumbers","titleString","weekNumberCell","useWeeks","getSetRefCallback","weeksGrid","selectedDate","today","markedDays","todaysDate","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","selectedDates","shouldGetWeeks","dayInfo","markedDay","firstVisibleDay","lastVisibleDay","getMarkedDays","daysRef","dayKey","useDayRefs","restrictedDatesOptions","animateBackwards","previousNavigatedDate","useAnimateBackwards","below","roundedTopRight","roundedBottomLeft","roundedBottomRight","calculateBorderStyles","datesAbove","datesBelow","datesRight","datesLeft","isInSameHoverRange","date1Selected","date2Selected","initialWeeks","weekCornersStyled","useWeekCornerStyles","getWeekCornerStyles","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","partialWeekProps","dateRangeHoverType","sortedWWDays","isContiguous","currentWeek","weekDay","dayInfosInRange","firstTransitionWeek","lastTransitionWeek","AnimationDirection","hoverStyle","pressedStyle","dayIsTodayStyle","daySelectedStyle","transitionRowDisappearance","CalendarDayGrid","rowAnimationStyle","Horizontal","firstTransitionRowAnimationStyle","lastTransitionRowAnimationStyle","disabledStyle","borderCollapse","tableLayout","weekRow","borderTopLeftRadius","borderBottomLeftRadius","dayGrid","onHeaderSelect","showSixWeeksByDefault","monthAndYearId","headerIsClickable","monthAndYear","HeaderButtonComponentType","headerAriaLabel","navigationIcons","showCloseButton","onSelectNextMonth","onSelectPrevMonth","leftNavigationIcon","leftNavigation","rightNavigationIcon","rightNavigation","closeNavigationIcon","closeIcon","prevMonthInBounds","nextMonthInBounds","monthComponents","headerIconButton","CalendarDay","hasHeaderClickCallback","highlightCurrent","highlightSelected","animationStyle","headerAnimationStyle","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","defaultCalendarStrings","defaultCalendarNavigationIcons","CELL_COUNT","DefaultCalendarYearStrings","prevRangeAriaLabel","nextRangeAriaLabel","highlightCurrentYear","highlightSelectedYear","onSelectYear","onRenderYear","buttonRef","CalendarYearNavDirection","fromYear","toYear","minYear","maxYear","selectedCellRef","currentCellRef","renderCell","yearToRender","gridAriaLabel","cellRow","onSelectPrev","onSelectNext","newRangeOffset","ariaLabelString","onNavigate","isLeftNavigation","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","NavigationDirection","navigatedYear","rangeYear","previousFromYear","useYearRangeState","onNavNext","onNavPrevious","gridRef","CalendarYear","yearPickerHidden","navigatedMonthRef","calendarYearRef","focusOnUpdate","useFocusLogic","focusOnNextUpdate","isYearPickerVisible","setIsYearPickerVisible","currentYear","previousYear","highlightCurrentMonth","highlightSelectedMonth","selectMonthCallback","onSelectMonth","onSelectNextYear","onSelectPrevYear","dateFormatter","isPrevYearInBounds","isNextYearInBounds","getYearEnd","yearToString","yearFormattingDate","yearRangeToString","yearRange","yearRangeToNextDecadeLabel","yearRangeToPrevDecadeLabel","getYearStrings","yearStrings","newNavigationDate","rowIndexes","yearString","rowNum","monthsForRow","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isCurrentMonth","CalendarMonth","defaultWorkWeekDays","isMonthPickerVisible","isDayPickerVisible","showMonthPickerAsOverlay","showGoToToday","FirstDay","CalendarBase","setSelectedDate","navigatedDay","setNavigatedDay","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","selectedDateRangeArray","useDateState","onDateSelected","navigateDay","navigateMonth","getShowMonthPickerAsOverlay","setIsMonthPickerVisible","setIsDayPickerVisible","useVisibilityState","toggleDayMonthPickerVisibility","dayPicker","monthPicker","renderGoToTodayButton","goTodayEnabled","goTodayButton","onGotoToday","onButtonKeyDown","calendarDayProps","calendarMonthProps","monthPickerOnly","overlaidWithButton","overlayedWithButton","todayDateString","selectedDateString","selectionAndTodayString","liveRegion","focusOnNavigatedDay","monthPickerWrapper","Calendar","defaultDatePickerStrings","isRequiredErrorMessage","invalidInputErrorMessage","isResetStatusMessage","allowTextInput","formatDate","toDateString","parseDateFromString","dateStr","initialPickerDate","pickerAriaLabel","DatePickerBase","calendarProps","calloutProps","textFieldProps","CalendarType","disableAutoFocus","calloutId","datePickerDiv","textFieldRef","preventFocusOpeningPicker","preventNextFocusOpeningPicker","isCalendarShown","setIsCalendarShown","useCalendarVisibility","setSelectedDateState","formattedDate","setFormattedDate","newDate","useSelectedDate","setErrorMessage","statusMessage","setStatusMessage","isDateOutOfBounds","isOutOfBoundsErrorMessage","useErrorMessage","validateTextInput","showDatePickerPopup","dismissDatePickerPopup","newlySelectedDate","calendarDismissed","handleEscKey","isDatePickerShown","textFieldId","openOnClick","readOnlyTextField","readOnlyPlaceholder","callout","onPositioned","setInitialFocus","FocusTrapZone","isClickableOutsideFocusTrap","disableFirstFocus","withLabel","withoutLabel","DatePicker","DatePickerIcon","TEXTFIELD_HEIGHT","factoryOptions","getNativeProps","_getThemedSpacing","nameMap","StackItem","stackChildren","defaultItemProps","Slots","horizontalAlign","childrenGap","rowGap","columnGap","horizontalMargin","verticalMargin","childStyles","commonSelectors","parsePadding","baseTokens","filledTokens","CardItem","CardSection","_isReactElement","childrenMargin","highContrastBoxShadow","horizontalTokens","clickableTokens","borderFocused","boxShadowFocused","boxShadowHovered","highContrastBoxShadowHovered","Card","cardChildren","isItem","isSection","_isCardSection","firstMargin","lastMargin","resolvedTokens","childRest","highContrastBoxShadowFocused","Section","initializeIcons","speak","GlobalNavButton","ChevronDown","ChevronUp","Edit","Cancel","More","Mail","Filter","Search","Share","BlockedSite","FavoriteStar","FavoriteStarFill","CheckMark","ChevronLeft","ChevronRight","Megaphone","Flag","Pinned","Clear","Download","Upload","Folder","Sort","AlignRight","AlignLeft","AddFriend","SortLines","CircleRing","Heart","HeartFill","Tiles","Embed","Glimmer","Ascending","Descending","SortUp","SortDown","SyncToPC","LargeGrid","SkypeCheck","SkypeClock","SkypeMinus","ClearFilter","Flow","StatusCircleCheckmark","MoreVertical","getIsChecked","canCheck","hasSubmenu","subMenuProps","isItemDisabled","getMenuItemAriaRole","renderItemIcon","onCheckmarkClick","isItemChecked","checkmarkIcon","submenuIconProps","subMenuIcon","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissAll","renderContent","onRenderContent","_renderLayout","linkContentMenu","linkContent","renderCheckMarkIcon","renderItemName","renderSecondaryText","renderSubMenuIcon","defaultRenders","CONTEXTUAL_MENU_ITEM_HEIGHT","MediumScreenSelector","getItemHighContrastStyles","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","anchorLink","textRendering","wordSpacing","textTransform","textIndent","textShadow","iconColor","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","splitMenu","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","splitPrimary","flexBasis","splitContainer","getItemStyles","ContextualMenuItem","_onItemMouseEnter","onItemMouseEnter","_onItemClick","onItemClickBase","_onItemMouseLeave","onItemMouseLeave","_onItemKeyDown","onItemKeyDown","_onItemMouseMove","onItemMouseMove","_getSubmenuTarget","onItemClick","_renderAriaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","hasIcons","contextualMenuItemAs","ChildrenRenderer","expandedMenuItemKey","anchorRel","itemHasSubmenu","itemProps","ariaDescribedByIds","additionalItemProperties","VerticalDividerBase","deprecatedGetClassNames","VerticalDivider","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","executeItemClick","splitButton","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","getDividerClassNames","onItemMouseDown","_btn","buttonNativeProperties","itemRole","itemButtonProperties","MenuContext","getContextualMenuItemClassNames","beakWidth","getSubmenuItems","_getMenuItemStylesFunction","useSubMenuState","dismiss","setExpandedMenuItemKey","setSubmenuTarget","expandedByMouseClick","setExpandedByMouseClick","subMenuId","closeSubMenu","openedByMouseClick","submenuItemKey","onSubMenuDismiss","isMountedRef","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","isSubMenu","useKeyHandlers","checkForNoWrap","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldHandleKeyDown","submenuCloseKey","shouldCloseSubMenu","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","elementToFocus","openKey","ContextualMenuBase","asyncTracker","tryFocusPreviousActiveElement","previousActiveElement","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","onMenuDismissed","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","onMenuKeyDown","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","shouldDismiss","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","renderMenuItem","itemType","Divider","Header","indexIncrease","customOnRenderListLength","itemClassNames","renderedItems","getItemClassNames","subMenuIconClassName","itemStyleProps","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","renderSectionItem","renderNormalItem","sectionItem","sectionProps","headerContextualMenuItem","ariaLabelledby","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","commonProps","divHtmlProperties","alignTargetEdge","coverTarget","useTargetWidth","useTargetAsMinWidth","directionalHintFixed","onRenderSubMenu","onDefaultRenderSubMenu","onRenderMenuList","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextMenuStyle","adjustedFocusZoneProps","handleTabKey","isCircularNavigation","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","targetWidth","menuContext","renderFocusZone","defaultMenuItemRenderer","shouldUpdateWhenHidden","isopen","LocalContextualMenu","getFullColorString","hsv2hex","updateSV","_isAdjustingSaturation","_updateColor","_disposeListeners","newColor","prevColor","rectSize","sPercentage","vPercentage","_getNewColor","ariaValueFormat","valueText","thumb","oldColor","ColorRectangle","maxValue","_maxValue","currentPercentage","thumbColor","overlayStyle","isAlpha","minValue","overlayColor","sliderOverlay","sliderThumb","hueStyle","alphaStyle","backgroundImage","ColorSlider","useAlphaBackground","updateA","updateT","allColorComponents","errorKeys","_onSVChanged","_onHChanged","updateH","_onATChanged","alphaType","editingColor","isHex","isTransparency","correctRGB","hexLabel","redLabel","greenLabel","blueLabel","alphaLabel","alphaSliderHidden","hue","_getColorFromProps","_textChangeHandlers","_onTextChange","defaultStrings","ColorPickerBase","_textLabels","_strings","alphaAriaLabel","transparencyAriaLabel","textLabels","tooltipProps","useTransparency","colorComponents","atValue","atLabel","selectedColorAriaParts","rootAriaLabelFormat","svAriaLabel","svAriaDescription","svAriaValueFormat","colorRectangle","flexSlider","hueAriaLabel","flexPreviewBox","colorSquare","cellPadding","cellSpacing","tableHeader","tableHexCell","tableAlphaCell","tooltipContent","_getTooltipValue","TooltipHost","errorKey","hexError","alphaError","transparencyError","redError","greenError","blueError","ColorPicker","getFabricTheme","FabricBase","applyTheme","applyThemeToBody","bodyThemed","useApplyThemeToBody","contextDir","pageDir","componentDir","rootDir","needsTheme","renderedContent","Customizer","useRenderedContent","inheritFont","Fabric","DialogType","scrollableContent","layer","touchAction","eventMapping","_currentEventType","_onDragStop","_onTouchEnd","handleSelector","_matchesSelector","preventDragSelector","_touchId","_getTouchId","_getControlPosition","_createDragDataFromPosition","lastPosition","_onDrag","updatedData","_createUpdatedDragData","updatedPosition","onDragChange","baseDragData","statePosition","touchObj","_getActiveTouch","eventToGetOffset","_findTouchInTouchList","matchesSelectorFn","webkitMatchesSelector","msMatchesSelector","touchList","ZERO","isDarkOverlay","containerClassName","ModalBase","allowTouchBodyScroll","scrollableContentClassName","elementToFocusOnDismiss","firstFocusableSelector","forceFocusInsideTrap","ignoreExternalFocusing","isBlocking","isAlert","layerProps","titleAriaId","subtitleAriaId","topOffsetFixed","onLayerDidMount","isModeless","dragOptions","onDismissed","enableAriaHiddenSiblings","focusTrapZone","focusTrapZoneElm","mergedRef","modalResponsiveMode","focusTrapZoneId","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","modalRectangleTop","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","internalState","onModalCloseTimer","lastSetCoordinates","keepInBounds","isAlertRole","layerClassName","hasBeenOpened","windowInnerHeight","isDefaultDragHandle","dragHandleSelector","mergedLayerProps","eventBubblingEnabled","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","minPosition","maxPosition","getClampedAxis","handleModalClose","isInKeyboardMoveMode","disposeOnKeyUp","handleDrag","handleDragStop","handleKeyUp","registerForKeyUp","unmountRef","modalContent","focusPreviouslyFocusedInnerElement","disposeOnKeyDown","keyboardMoveIconContainer","keyboardMoveIconProps","keyboardMoveIcon","moveMenuItemText","handleKeyDown","handledEvent","getMoveDelta","closeMenuItemText","Overlay","isDarkThemed","Modal","actionsRight","_renderChildrenAsActions","DialogFooter","DialogFooterType","titleId","subTextContent","subTextId","subText","titleProps","draggableHeaderClassName","isLargeHeader","largeHeader","groupings","_groupChildren","topButton","topButtonsProps","innerContent","footers","DialogContentBase","contentLgHeader","headerLg","DialogContent","DefaultModalProps","DefaultDialogContentProps","_getSubTextId","ariaDescribedById","modalProps","dialogContentProps","_defaultSubTextId","_getTitleTextId","ariaLabelledById","_defaultTitleTextId","dialogDraggableClassName","contentClassName","mergedModalProps","dialogDefaultMinWidth","dialogDefaultMaxWidth","DialogBase","Dialog","parseError","throwServerError","statusCode","escapedRegExp","escapedReplacer","escapeSequences","print","ast","printDocASTReducer","varDefs","argsLine","operationTypes","interfaces","hasMultilineItems","repeatable","locations","maybeArray","_maybeArray$filter$jo","maybeString","_maybeArray$some","fallbackHttpConfig","includeQuery","includeExtensions","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","headersToLowerCase","fromError","errorValue","backupFetch","linkOptions","preferredFetch","useGETForQueries","includeUnusedVariables","fetcher","linkConfig","fetchOptions","chosenURI","fallbackURI","selectURI","clientAwarenessHeaders","contextHeaders","contextConfig","AbortController","createSignalIfSupported","queryParams","addQueryParam","serializedVariables","serializedExtensions","preFragment","fragmentStart","queryParamsPrefix","rewriteURIForGET","LineRegExp","getLocation","matchAll","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","GraphQLError","originalError","_this$nodes","_nodeLocations$","undefinedIfEmpty","nodeLocations","originalExtensions","captureStackTrace","formattedError","syntaxError","TokenKind","DirectiveLocation","isDigit","isLetter","isNameStart","isNameContinue","startOfFileToken","SOF","lookahead","EOF","readNextToken","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","fromCodePoint","bodyLength","readComment","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","INT","chunkStart","STRING","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","readHexDigit","read16BitHexCode","trailingCode","BLOCK_STRING","NAME","sourceObj","expectToken","DOCUMENT","parseDefinition","parseOperationDefinition","hasDescription","peekDescription","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseFragmentDefinition","parseTypeSystemExtension","unexpected","OPERATION_DEFINITION","QUERY","parseSelectionSet","parseOperationType","parseName","parseVariableDefinitions","parseDirectives","operationToken","MUTATION","SUBSCRIPTION","optionalMany","parseVariableDefinition","VARIABLE_DEFINITION","parseVariable","parseTypeReference","expectOptionalToken","parseConstValueLiteral","parseConstDirectives","VARIABLE","SELECTION_SET","parseSelection","parseFragment","parseField","nameOrAlias","FIELD","parseArguments","isConst","parseConstArgument","parseArgument","ARGUMENT","parseValueLiteral","hasTypeCondition","expectOptionalKeyword","FRAGMENT_SPREAD","parseFragmentName","INLINE_FRAGMENT","parseNamedType","_this$_options","expectKeyword","allowLegacyFragmentVariables","FRAGMENT_DEFINITION","parseObject","parseStringLiteral","BOOLEAN","ENUM","varName","LIST","parseObjectField","OBJECT_FIELD","parseDirective","DIRECTIVE","innerType","LIST_TYPE","NON_NULL_TYPE","NAMED_TYPE","parseDescription","parseOperationTypeDefinition","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","parseImplementsInterfaces","parseFieldsDefinition","OBJECT_TYPE_DEFINITION","delimitedMany","parseFieldDefinition","parseArgumentDefs","FIELD_DEFINITION","parseInputValueDef","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","parseUnionMemberTypes","UNION_TYPE_DEFINITION","parseEnumValuesDefinition","ENUM_TYPE_DEFINITION","parseEnumValueDefinition","parseEnumValueName","ENUM_VALUE_DEFINITION","getTokenDesc","parseInputFieldsDefinition","INPUT_OBJECT_TYPE_DEFINITION","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","parseDirectiveLocations","DIRECTIVE_DEFINITION","parseDirectiveLocation","_this$_options2","noLocation","getTokenKindDesc","atToken","openKind","parseFn","closeKind","delimiterKind","isPunctuatorTokenKind","getFragmentDoc","updateResult","optimisticId","recordOptimisticTransaction","transaction","transformDocument","transformForLink","rootId","dataId","updateFragment","workSet","shallowFreeze","maybeDeepFreeze","defaultDataIdFromObject","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","storeValueIsStoreObject","DELETE","delModifier","INVALIDATE","policies","rootIds","getFieldValue","objectOrReference","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","storeObject","rootTypenamesById","dependOnExistence","storeObjectReconciler","caching","__exists","hasKeyArgs","readField","fieldNameOrOptions","fieldValue","storage","getStoreFieldName","evict","evicted","extraRootIds","getRootIdSet","__META","retain","findChildRefIds","idsToRemove","makeCacheKey","keyMaker","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","EntityStore","stump","storageTrie","addLayer","layerId","replay","removeLayer","ownStoreObject","parentStoreObject","fromParent","existingObject","incomingObject","existingValue","incomingValue","execSelectionSetKeyArgs","knownResults","canon","executeSelectionSet","peekArgs","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","keyArgs","varString","executeSubSelectedArray","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","execResult","MissingFieldError","firstMissing","isFresh","handleMissing","rootIdsByTypename","fragmentMatches","childResult","getTypenameFromStoreObject","assertSelectionSetForIdValue","specifierInfoCache","lookupSpecifierInfo","spec","keyFieldsFnFromSpecifier","specifier","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extractKeyPath","extractKey","keyArgsFnFromSpecifier","keyArgsFn","collected","keyPath","firstKey","firstChar","variableName","varKeyPath","directiveArgs","extractor","getSpecifierPaths","toMerge","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","mergeTrueFn","mergeObjects","mergeFalseFn","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","possibleTypes","addPossibleTypes","addTypePolicies","partialContext","ROOT_QUERY","normalizeReadFieldOptions","policy","getTypePolicy","specifierOrId","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","supertype","getSupertypeSet","subtype","supertypes","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","needToCheckFuzzySubtypes","checkingFuzzySubtypes","fuzzyString","fieldSpec","specifierOrString","makeFieldFunctionOptions","getReadFunction","getMergeFunction","parentTypename","childTypename","runMergeFunction","makeMergeObjectsFunction","readFieldArgs","argc","undefId","stringifyForDisplay","eType","iType","getContextFlavor","clientOnly","flavored","flavors","writeToStore","operationDefinition","written","incomingById","processSelectionSet","mergeTree","fieldNodeSet","entityRef","applyMerges","childTree","existingRef","incomingObj","parentType","typeDotName","childTypenames","warnAboutDataLoss","flattenFields","resultFieldKey","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","dataRef","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","inheritedContext","visitedNode","getStorageArgs","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","leftTree","watches","typenameDocumentCache","txCount","normalizeConfig","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","broadcastWatch","immediate","removeOptimistic","idToRemove","newOptimisticData","perform","alreadyDirty","onWatchUpdated","ButtonGridBase","positionInSet","doNotContainWithinFocusZone","htmlProps","rowsOfItems","rowIndex","cellIndex","tableCell","shouldFocusCircularNavigate","focusedContainer","ButtonGrid","defaultId","cellDisabledStyle","cellIsSelectedStyle","handleMouseEnter","handleMouseLeave","currentColor","getColorPickerGridCellButtonClassNames","cellHighContrastFocus","ColorPickerGridCell","onWheel","isWhite","colorOption","svgClassName","colorCell","buttonBorderHovered","buttonBorderChecked","buttonBorderCheckedHovered","buttonBorderIsWhite","calculatedBorderWidth","outlineOffset","SwatchColorPickerBase","isNavigationIdle","cellFocused","navigationIdleTimeoutId","navigationIdleDelay","colorCells","cellShape","cellMargin","defaultSelectedId","focusOnHover","mouseLeaveParentSelector","onColorChanged","onCellHovered","onCellFocused","getColorGridCellStyles","cellWidth","cellBorderWidth","itemsWithIndex","mergedOnChange","newSelectedId","selectedId","setSelectedId","gridStyles","onSwatchColorPickerBlur","parentSelector","onGridCellHovered","onGridCellFocused","setNavigationTimeout","renderOption","SwatchColorPicker","registerPersistedKeytips","keytipsToRegister","keytipManager","registeredPersistedKeytips","unregisterPersistedKeytips","overflowItems","itemSubMenuProvider","onRenderOverflowButton","getSubMenuForItem","newKeytipsToRegister","newOverflowItems","overflowItem","persistedKeytip","hasDynamicChildren","hasOverflowSubMenu","newOverflowItem","modifiedOverflowItems","prevPersistedKeytips","OverflowSetBase","divContainer","focusSucceeded","focusElement","overflowSide","showOverflow","overflowButton","overflowItemStyle","OverflowSet","focusInset","focusColor","baseSplitButtonStyles","commandButtonStyles","CommandBarButton","getCommandButtonStyles","rootStyles","restCustomStyles","_overflowSet","_resizeGroup","_onRenderData","primaryGroupAriaLabel","farItemsGroupAriaLabel","hasSecondSet","farItems","primarySet","primaryItems","_onRenderItem","_onRenderOverflowButton","secondarySet","itemText","commandButtonProps","buttonStyles","iconOnly","_onButtonClick","_commandButton","ButtonAs","buttonAs","CommandBarButtonAs","commandBarButtonAs","overflowButtonProps","combinedOverflowItems","overflowProps","OverflowButtonType","overflowButtonAs","_onReduceData","shiftOnReduce","onDataReduced","movedItem","renderedInOverflow","_computeCacheKey","_onGrowData","onDataGrown","minimumOverflowItems","dataDidRender","onReduceData","onGrowData","resizeGroupAs","ResizeGroupAs","ResizeGroup","commandBarData","onRenderData","overflowSet","remeasure","CommandBar","TooltipDelay","Tooltip","tooltipGapSpace","_tooltipHost","_defaultTooltipId","_toggleTooltip","_hideTooltip","_getTargetElement","overflowMode","Self","_onTooltipFocus","_ignoreNextFocusEvent","_onTooltipMouseEnter","_onTooltipBlur","TooltipHostBase","_currentVisibleTooltip","overflowElement","hasHorizontalOverflow","hasVerticalOverflow","_clearDismissTimer","_clearOpenTimer","isAriaPlaceholderRendered","_getDelayTime","_openTimerId","_onTooltipMouseLeave","closeDelay","_dismissTimerId","_onTooltipKeyDown","isTooltipVisible","onTooltipToggle","tooltipId","isContentPresent","showTooltip","onBlurCapture","ariaPlaceholder","_createPositionData","targetEdge","alignmentEdge","DirectionalDictionary","_isRectangleWithinBounds","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","_setEdgeValue","_getCenterValue","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","maintainSize","returnRect","_alignEdges","_isEdgeInBounds","_getOutOfBoundsDegree","_adjustFitWithinBounds","positionData","elementEstimate","elementRectangle","oobDegree","currentEstimate","currentEdge","currentAlignment","bestEdge","bestAlignment","currentOOBDegree","_estimatePosition","_flipToFit","fixedEdge","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_alignOutOfBoundsEdges","outOfBoundsEdges","preserveEdge","edgeAttempt","forcedInBounds","_centerEdgeToPoint","elementToPosition","estimatedElementPosition","Rectangle","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","_calculateActualBeakWidthInPixels","_getPositionData","previousPositions","positionInformation","getClosestEdge","boundingCenter","_positionElementWithinBounds","_finalizeBeakPosition","positionedBeak","showBeak","targetRectangle","closestEdge","hideBeak","_positionBeak","beakTargetPoint","elementBounds","beakPosition","_getRectangleFromElement","_getRectangleFromIRect","_positionElementRelative","rectOrPoint","_getTargetRect","_getAlignmentData","positionedElement","_finalizePositionData","doNotFinalizeReturnEdge","finalizedElement","forceWithinBounds","_finalizeElementPosition","_positionCallout","positionProps","finalizedBeakPosition","positionCard","_positionCard","ANIMATIONS","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","preventDismissOnLostFocus","preventDismissOnScroll","preventDismissOnResize","minPagePadding","usePositions","calloutElement","setPositions","positionAttempts","previousTarget","finalHeight","calloutMaxHeight","prevElementPositions","newElementPosition","dupeCalloutElement","newPositions","positionCallout","comparePositions","CalloutContentBase","calloutWidth","calloutMaxWidth","calloutMinWidth","hideOverflow","onLayerMounted","setCalloutElement","calloutCallback","calloutEl","targetWindowResized","setTargetWindowResized","cachedBounds","currentBounds","getWindowSegments","_getBoundsFromTargetWindow","getBoundsFromTargetWindow","useBounds","setMaxHeight","topBounds","bottomBounds","useMaxHeight","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","disposablesPromise","useDismissHandlers","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","hasPositions","useAutoFocus","overflowYHidden","beakVisible","overflowStyle","visibilityStyle","beak","getBeakPosition","beakCurtain","calloutMain","beakPositionStyle","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","CalloutContent","useRefEffect","refCallback","createRefCallback","onOverflowItemsChanged","pinnedIndex","updateOverflowRef","containerWidthRef","containerRef","cleanupObserver","menuButtonRef","menuButton","minContainerWidth","extraWidth","itemOffsetEnd","setOverflowIndex","prevOverflowIndex","overflowIndex","pivotId","keyToIndexMapping","keyToTabIdMapping","pivotItemProps","getTabId","PivotItem","PivotBase","overflowMenuButtonComponentRef","selectedKey","defaultSelectedKey","setSelectedKey","linkSize","linkFormat","overflowBehavior","overflowAriaLabel","nameProps","linkCollection","renderLinkContent","itemIcon","renderPivotLink","renderLinkCollection","renderPivotLinkSelectedKey","headerButtonProps","onRenderItemLink","tabId","contentString","linkIsSelected","onLinkClick","updateSelectedItem","renderedSelectedKey","getSelectedKey","renderedSelectedIndex","overflowMenuProps","overflowMenuButtonRef","overflowMenuButton","alwaysRender","headersOnly","selectedTabId","itemContainer","renderPivotItem","rootIsLarge","rootIsTabs","linkInMenu","isLinkInOverflowMenu","Pivot","imageSize","imageSrc","hasImage","imageIsLarge","defaultOnRenderLabel","labelId","defaultOnRenderField","selectedImageSrc","innerField","imageWrapper","selectedImageWrapper","iconWrapper","labelWrapper","onRenderField","choiceFieldWrapper","choiceFieldTransitionDuration","choiceFieldTransitionTiming","getChoiceGroupFocusStyle","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","transitionProperty","transitionDuration","transitionTimingFunction","ChoiceGroupOption","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","choiceFieldSize","radioButtonSpacing","labelWrapperLineHeight","getOptionId","keyChecked","optionToFocus","ChoiceGroupBase","optionsContainIconOrImage","setKeyChecked","keyFocused","setKeyFocused","mergedRootRefs","checkedOption","onOptionChange","onRadioFocus","ChoiceGroup","ApolloContext","_defaultHostSelector","_layersByHostId","filteredEventProps","LayerBase","layerRef","needRaiseLayerMount","setNeedRaiseLayerMount","hostId","onLayerWillUnmount","isNotHost","getHost","defaultHostSelector","removeLayerElement","createLayerElement","virtualChild","virtualParent","oldParent","setVirtualParent","registerLayer","unregisterLayer","getFilteredEvents","onFilterEvent","BUBBLING_PHASE","rootNoHost","displayOnlyOptionsCache","_displayOnlyOptionsCache","_cachedOptions","DropdownBase","selectedKeyPropToUse","defaultSelectedKeys","selectedKeys","multiSelect","setSelectedIndices","didOptionsChange","oldSelectedKeyProp","getAllSelectedIndices","getSelectedIndex","searchKey","getSelectedIndexes","useSelectedItemsState","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","activeTimeouts","onChanged","changedOpt","_getPlaceholder","_getTitle","multiSelectDelimiter","_onRenderPlaceholder","_onRenderContainer","panelProps","dropdownWidth","isSmall","panelStyles","Panel","isLightDismiss","_onDismiss","hasCloseButton","_renderFocusableList","_onPositioned","_onRenderCaretDown","caretDown","_onRenderList","renderedList","emptyQueue","newGroup","placeRenderedOptionIntoQueue","_renderSeparator","_renderHeader","_renderOption","onRenderOption","_onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","multiSelectItemStyles","multiSelectItem","_listId","_onMouseItemLeave","_onRenderItemLabel","optionSetSize","dropdownOptionText","_hasBeenPositioned","calloutRenderEdge","setSelectedIndex","_isScrollIdle","_scrollIdleTimeoutId","_shouldIgnoreMouseEvent","_onDropdownBlur","_isDisabled","_onDropdownKeyDown","_lastKeyDownWasAltOrMeta","_isAltOrMeta","containsExpandCollapseModifier","_onDropdownKeyUp","_shouldHandleKeyUp","_onZoneKeyDown","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_optionId","_gotMouseMove","propStyles","onRenderContainer","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","errorMessageId","ariaActiveDescendant","hasError","isRenderingPlaceholder","panelClassName","calloutClassName","dropdown","caretDownWrapper","shouldOpenOnFocus","notifyOnReselect","newIndexes","_copyArray","newArray","stepValue","stepCounter","onRenderList","dropdownItemsWrapper","dropdownItems","dropdownDivider","dropdownItemHeader","openOnKeyboardFocus","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","MinimumScreenSelector","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","borderColorError","dropdownItemStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","contentInner","itemContent","removeButton","PeoplePickerItem","personaStyles","persona","personaCoinStyles","personaCoin","Persona","personaPrimaryTextStyles","personaCoinInitialsStyles","personaWrapper","PeoplePickerItemSuggestion","personaProps","showSecondaryText","showOverflowTooltip","textSelectorsStyles","BasePicker","currentValidationState","personaToConvert","NormalPeoplePicker","TagItem","enableTagFocusInDisabledPicker","disabledAttrs","suggestionTextOverflow","TagItemSuggestion","TagPicker","getSlotStyleFn","sty","getPercent","sliderMin","sliderMax","showValue","snapToStep","valueFormat","originFromZero","ranged","sliderLine","latestLowerValue","unclampedValue","lowerValue","defaultLowerValue","latestValue","unclampedLowerValue","setLowerValue","onKeyDownTimer","isAdjustingLowerValue","showTransitions","isBetweenSteps","clearOnKeyDownTimer","setOnKeyDownTimer","getAriaValueText","valueProps","ariaValueText","newUnroundedValue","numDec","roundedValue","verticalProp","calculateCurrentSteps","currentSteps","sliderPositionRect","stepLength","onMouseMoveOrTouchMove","suppressEventCancelation","newCurrentValue","onMouseDownOrTouchStart","onMouseUpOrTouchEnd","disposeListeners","lowerValueThumbRef","thumbRef","getPositionStyles","getTrackStyles","originValue","valuePercent","lowerValuePercent","originPercentOfLine","activeSectionWidth","topSectionWidth","bottomSectionWidth","labelProps","titleLabel","valueLabelProps","valueLabel","lowerValueLabelProps","zeroTickProps","zeroTick","trackActiveProps","lineContainer","activeSection","trackTopInactiveProps","inactiveSection","trackBottomInactiveProps","sliderProps","sliderBoxProps","slideBox","onFocusProp","thumbProps","lowerValueThumbProps","sliderBox","lowerValueLabel","lowerValueThumb","activeTrack","topInactiveTrack","bottomInactiveTrack","SliderBase","Slider","titleLabelClassName","pressedActiveSectionColor","hoveredActiveSectionColor","hoveredPressedinactiveSectionColor","restActiveSectionColor","restInactiveSectionColor","disabledActiveSectionColor","disabledInactiveSectionColor","thumbBackgroundColor","thumbBorderColor","thumbDisabledBorderColor","slideBoxActiveSectionStyles","slideBoxInactiveSectionStyles","slideHoverSectionStyles","slideBoxActiveThumbStyles","slideBoxActiveZeroTickStyles","ariaLive","labelPosition","styleSize","spinAnimation","ICON_MAP","severeWarning","messageBarType","MessageBarBase","expandSingleLine","toggleExpandSingleLine","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandIconProps","regionProps","actionsDiv","dismissButton","dismissal","dismissSingleLine","singleline","dismissalSingleLine","expandingSingleLine","actionsSingleline","highContrastBackgroundColor","MessageBar","SmallScreenSelector","dismissalAndExpandIconStyle","dismissalAndExpandStyle","sequencesToID","keySequence","useKeytipData","prevOptions","nativeKeytipProps","keytipId","describedByPrepend","describedby","getAriaDescribedBy","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","mergeOverflows","getKeytipData","mergeSettings","oldSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","_scopedSettingsMergeWith","_onCustomizationChange","contextTransform","parentContext","mergeCustomizations","_getValueUnitGap","numericalPart","numericalValue","numericalString","paddingValues","padding1","padding2","StackStatics","splitGap","calculatedGap","parseGap","nowrap","variant","variantObject","mozOsxFontSmoothing","webkitFontSmoothing","_onAction","onClickHref","onClickTarget","accentColor","actionable","rootActionable","rootCompact","DocumentCard","_onImageLoad","imageHasLoaded","_renderCornerIcon","_renderCenterIcon","centeredIconWrapper","centeredIcon","cornerIcon","centeredIconSize","cornerIconSize","DocumentCardImage","viewsIcon","DocumentCardActions","ACTION_SIZE","PanelVisibilityState","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","_allowScrollOnPanel","_allowTouchBodyScroll","_scrollableContent","_onRenderNavigation","_onRenderNavigationContent","navigation","_onRenderHeader","iconButtonStyles","_headerTextId","_onPanelClick","headerTextId","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","isFooterSticky","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","shouldListenOnOuterClick","previousShouldListenOnOuterClick","focusTrapZoneProps","isFooterAtBottom","isHiddenOnDismiss","overlayProps","popupProps","customWidth","onLightDismissClick","onRenderBody","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","hiddenPanel","onOuterClick","smallFixedFar","smallFluid","largeFixed","panelWidth","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","sharedPaddingStyles","isCustomPanel","hyphens","isDark","rootDark","CheckboxBase","checkmarkIconProps","boxSide","setIsChecked","indeterminate","defaultIndeterminate","isIndeterminate","setIsIndeterminate","checkBoxRef","useComponentRef","isUsingCustomLabelRender","defaultLabelRenderer","ariaChecked","mergedInputProps","checkmark","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","checkmarkFontColor","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","checkboxBorderIndeterminateHoveredColor","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","ResizeGroupDirection","measurementCache","measurementsCache","getCachedMeasurement","addMeasurementToCache","measurement","getMeasurementCache","_containerDimension","_measurementCache","_getMeasuredDimension","measuredData","getElementToMeasureDimension","cachedDimension","measuredDimension","_shrinkContentsUntilTheyFit","dataToMeasure","nextMeasuredData","renderedData","resizeDirection","getNextState","newContainerDimension","newDimension","fullDimensionData","measureContainer","_updateContainerDimension","_growDataUntilItDoesNotFit","shouldRenderDataForMeasurement","getInitialResizeGroupState","MeasuredContext","isMeasured","hiddenDivStyles","hiddenParentStyles","resizeDataReducer","useResizingBehavior","nextResizeGroupStateProvider","initialHiddenDiv","updateHiddenDiv","hasRenderedContent","initialStateData","resizeData","dispatchResizeDataAction","stateRef","useResizeState","updateResizeState","containerDimension","refToMeasure","dataNeedsMeasuring","isInitialMeasure","measuredContextValue","ResizeGroupBase","DocumentCardDetails","PersonaBase","elementClassNames","renderFunction","defaultRenderFunction","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","tertiaryText","onInternalRenderOptionalText","optionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","providedCoinProps","personaCoinProps","personaDetails","doNotDisturb","showSecondaryTextDefaultHeight","sharedTextStyles","restProps","LinkBase","rootType","activityPersonas","isCompact","isCompactRoot","pulsingBeacon","personaContainer","isCompactPersonaContainer","activityPersona","isCompactPersona","doublePersona","activityTypeIcon","isCompactIcon","activityContent","isCompactContent","activityText","commentText","isCompactTimeStamp","DEFAULT_PERSONA_SIZE","COMPACT_PERSONA_SIZE","DEFAULT_ICON_SIZE","COMPACT_ICON_SIZE","fadeIn","slideIn","animateBeaconSignal","continuousPulseAnimation","slideInAnimation","ActivityItemStyles","_onRenderPersonaArray","activityIcon","_onRenderActivityDescription","_getClassNames","activityDescription","activityDescriptionText","_onRenderComments","_onRenderTimeStamp","personaElement","onRenderActivityDescription","onRenderComments","onRenderTimeStamp","SeparatorBase","alignStart","alignCenter","alignEnd","nullFunction","nonActionableItemProps","renderedOverflowItems","maxDisplayedItems","_onRenderBreadcrumb","dividerAs","DividerType","onRenderOverflowIcon","contextualItems","_onBreadcrumbClicked","lastItemIndex","hasOverflowItems","itemElements","listItem","chevron","OverflowButton","isCurrentItem","additionalProps","itemLink","_validateProps","breadcrumbData","SingleLineTextStyle","Breadcrumb","itemBackgroundHoveredColor","itemBackgroundPressedColor","itemTextColor","itemTextFontWeight","itemTextHoveredOrPressedColor","itemLastChildTextColor","itemLastChildTextFontWeight","chevronButtonColor","overflowButtonColor","lastChildItemStyles","itemStateSelectors","commonItemStyles","_urlResolver","compositeLink","chevronButton","chevronIcon","navItem","navItems","groupContent","_onRenderLink","_renderGroupHeader","_isGroupExpanded","isCollapsing","_onGroupHeaderClicked","_renderLinks","expandButtonAriaLabel","collapseAriaLabel","expandAriaLabel","isGroupCollapsed","isLinkExpandStateChanged","initialSelectedKey","isOnTop","groupElements","_renderNavLink","linkIndex","isLinkWithIcon","isSelectedLink","_isLinkSelected","isButtonEntry","forceAnchor","leftPadding","LinkAs","linkAs","onRenderLink","_onNavButtonLinkClicked","_onNavAnchorLinkClicked","_renderCompositeLink","isLink","finalExpandBtnAriaLabel","_onLinkExpandClicked","_renderLink","linkElements","_toggleCollapsed","onLinkExpandClick","_preventBounce","newGroupCollapsed","navHeight","leftPaddingExpanded","rightPadding","iconButtonProps","defaultClearButtonProps","SearchBoxBase","labelText","clearButtonProps","disableAnimation","showIcon","customOnClear","customOnBlur","customOnEscape","customOnSearch","customOnKeyDown","uncastValue","rootElementRef","inputElementRef","customOnClearClick","clearButton","SearchBox","inputIconAlt","inputIconAltHovered","inputBorderDisabled","inputBackgroundHovered","inputBackgroundDisabled","SearchDirection","HoverStatus","getDisabledStyles","listOptionHighContrastStyles","inputHighContrastStyles","getOptionStyles","customStylesForAllOptions","customOptionStylesForCurrentOption","isPending","textHoveredColor","textSelectedColor","textDisabledColor","backgroundHoveredColor","backgroundPressedColor","optionStyles","optionText","optionTextWrapper","getCaretDownButtonStyles","buttonTextColor","buttonTextHoveredCheckedColor","buttonBackgroundHoveredColor","buttonBackgroundCheckedColor","buttonBackgroundCheckedHoveredColor","buttonHighContrastStyles","comboBoxOptionWidth","textColor","borderHoveredColor","borderPressedColor","borderFocusedColor","erroredColor","headerTextColor","dividerBorderColor","placeholderHighContrastStyles","placeholderStylesHovered","ComboBoxRootHighContrastFocused","focusBorderStyles","rootError","rootDisallowFreeForm","optionsContainerWrapper","optionsContainer","allowFreeForm","getComboBoxOptionClassNames","ComboBoxOptionWrapper","allowFreeform","buttonIconProps","useOptionsState","buildSelectedKeys","buildDefaultSelectedKeys","setCurrentOptions","setSuggestedDisplayValue","ComboBox","_autofill","_comboBoxWrapper","_comboBoxMenu","useFocusAsync","focusState","_onUpdateValueInAutofillWillReceiveProps","comboBox","visibleValue","normalizeToString","_currentVisibleValue","_renderComboBoxWrapper","multiselectAccessibleText","isButtonAriaHidden","placeholderProp","autofill","_onInputKeyDown","_onInputKeyUp","_onAutofillClick","_getAriaAutoCompleteValue","_getAriaActiveDescendantValue","_onShouldSelectFullInputValueInAutofillComponentDidUpdate","preventValueSelection","_getCaretButtonStyles","_onComboBoxClick","_getVisibleValue","currentPendingValueValidIndex","currentPendingValue","currentPendingIndexValid","indexWithinBounds","_getPendingString","_getMultiselectDisplayString","_getFirstSelectedIndex","getPreviewText","_handleInputWhenDisabled","_processInputChangeWithFreeform","_processInputChangeWithoutFreeform","_onResolveOptions","onResolveOptions","_currentPromise","newOptionsFromPromise","isBlurFromComboBoxTitle","isBlurFromComboBoxMenu","isBlurFromComboBoxMenuAncestor","_submitPendingValue","dropdownMaxWidth","onRenderUpperContent","_onRenderUpperContent","onRenderLowerContent","_onRenderLowerContent","useComboBoxAsMenuWidth","comboBoxMenuWidth","_onLayerMounted","_onCalloutMouseDown","_onCalloutLayerMounted","_scrollIntoView","onRenderLabelProps","_onRenderOptionContent","_isOptionSelected","_isOptionChecked","_isOptionIndeterminate","_getCurrentOptionStyles","optionClassNames","onRenderCheckboxLabel","_onOptionMouseEnter","_onOptionMouseMove","_onOptionMouseLeave","onMenuDismiss","_setOpenStateAndFocusOnClose","_resetSelectedIndex","_onAfterClearPendingInfo","_processingClearPendingInfo","currentPendingValueValidIndexOnHover","_getPendingSelectedIndex","_setPendingInfoFromIndexAndDirection","backward","directionToSearch","onMenuOpen","_focusInputAfterClose","_notifyPendingValueChanged","comboBoxWrapper","displayValues","newCurrentPendingValueValidIndex","isNormalOption","_setPendingInfo","originalUpdatedValue","newSuggestedDisplayValue","_autoCompleteTimeout","_setPendingInfoFromIndex","_getNextSelectableIndex","searchDirection","isSelectableOption","_setSelectedIndex","submitPendingValueEvent","onPendingValueChanged","initialIndices","changedOptions","currentOption","selectAllOption","selectAllState","_isSelectAllChecked","_hasPendingValue","_clearPendingInfo","pendingOptionText","newOption","_isOptionHighlighted","testIndices","selectAllIndex","compareSelectedIndices","selectableOptions","includeCurrentPendingValue","onScrollToItem","scrollSelectedToTop","alignToTop","indexUpdate","newPendingIndex","newPendingValue","focusInputAfterClose","customCaretDownButtonStyles","customStylesForCurrentOption","_isPendingOption","descendantText","ComboBoxInternal","useAriaLabelAsText","responses","attrRE","voidElement","tagMatch","tagRE","whitespaceRE","inComponent","isComment","parseTag","rootEl","checkLength","getAsArray","nodesToString","stringNode","childrenArray","keepArray","childIndex","childPropsCount","shouldKeepChild","childChildren","i18nIsDynamicList","renderNodes","targetString","combinedTOpts","emptyChildrenButNeedsHandling","renderInner","rootReactNode","mappedChildren","mapAST","hasValidReactChildren","pushTranslatedJSX","isVoid","dummy","reactNode","reactNodes","translationContent","newTarget","mergeProps","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","_inner","_inner3","_inner4","wrapTextNodes","Trans","i18nKey","_ref$tOptions","tOptions","tFromProps","reactI18nextOptions","hashTransKey","interpolationOverride","useAsParent","defaultTransParent","filterInPlace","TYPENAME_FIELD","nullIfDocIsEmpty","getDirectiveMatcher","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","getAllFragmentSpreadsFromSelectionSet","frag","argMatcher","aConfig","getArgumentMatcher","varDef","argConfig","removeArgumentsFromDocument","fs","removeFragmentSpreadFromDocument","addTypenameToDocument","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","allFragments","buildQueryFromSelectionSet","removeClientSetsFromDocument","useCustomizationSettings","useForceUpdate","baseStyles","getProps","pure","Wrapped","customizedStyles","concatenatedStyles","pureComponent","_titleElement","_truncateTitle","_needMeasurement","_truncateWhenInAnimation","originalTitle","_clientWidth","overFlowRate","truncatedLength","truncatedTitleFirstPiece","truncatedTitleSecondPiece","_shrinkTitle","shouldTruncate","_updateTruncation","_timerId","DocumentCardTitle","locationHref","DocumentCardLocation","firstBumper","lastBumper","previouslyFocusedElementOutsideTrapZone","previouslyFocusedElementInTrapZone","disposeFocusHandler","disposeClickHandler","unmodalize","currentDisabledValue","firstFocusableTarget","bumperProps","focusSelector","firstFocusableChild","onBumperFocus","isFirstBumper","currentBumper","nextFocusable","onRootBlurCapture","onRootFocusCapture","returnFocusToInitiator","focusStack","forceFocusInTrap","focusedElement","forceClickInTrap","clickedElement","updateEventHandlers","parentRoot","newForceFocusInsideTrap","newDisabled","affectedNodes","modalize","previouslyFocusedElement","unmountFunction","people","_renderAvatars","_getNameString","_renderAvatar","profileImageSrc","nameString","DocumentCardActivity","DEFAULT_MASK_FORMAT_CHARS","parseMask","formatChars","maskCharData","escapedChars","maskChar","maskFormat","displayIndex","getMaskDisplay","maskDisplay","lastDisplayIndex","getRightFormatIndex","clearRange","selectionCount","insertString","newString","stringIndex","isStringInserted","MaskedTextField","moveCursorOnMouseUp","changeSelectionData","maskCursorPosition","setMaskCursorPosition","setDisplayValue","valueIndex","charDataIndex","testVal","handleBlur","handleMouseDown","handleMouseUp","handleInputChange","cursorPos","charsSelected","charCount","pastedString","isDel","clearNext","clearPrev","getLeftFormatIndex","enteredString","selectCount","MessageBarButton","_renderPreviewList","previewImages","getOverflowDocumentCountText","maxDisplayCount","overflowDocumentCount","overflowText","fileListItems","fileIndex","iconSrc","linkProps","_renderPreviewImage","previewImage","previewIconProps","previewIconContainerClass","previewImageSrc","DocumentCardPreview","raiseClick","createNewEvent","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","_portalContainsElement","newActiveElement","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","maybeElementToFocus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","_setParkedFocus","_setActiveElement","isInnerZoneKeystroke","pagingSupportDisabled","_getDocument","_isInnerZone","innerZone","_getFirstInnerZone","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","_preventDefaultWhenHandled","_moveFocusLeft","_moveFocusRight","_moveFocusUp","_moveFocusDown","_moveFocusPaging","allowTabKey","_isElementInput","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","_isContentEditableElement","_shouldInputLoseFocus","_shouldRaiseClicksOnEnter","_getHorizontalDistanceFromCenter","isForward","activeRect","leftAlignment","_focusAlignment","targetRectTop","activeRectBottom","targetRectBottom","activeRectTop","shouldRaiseClicksFallback","shouldRaiseClicks","shouldRaiseClicksOnSpace","getOuterZones","_windowElement","defaultActiveElement","preventFocusRestoration","_lastIndexPath","_defaultFocusElement","_evaluateFocusBeforeRender","ownerZoneElement","_getOwnerZone","ownerZone","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","isParked","_isParked","_parkedTabIndex","preventDefaultWhenHandled","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","elementDistance","shouldWrap","targetBottom","pagesize","isReadonly","shouldInputLoseFocusOnArrowKey"],"mappings":"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MA,WAYA,cACA,QACA,iBAIA,OAHA,YACA,oBAEA,EAQA,gBACA,KACA,eACA,eACA,iBAWA,gBACA,SACA,eACA,WACA,SACA,SAEA,SAEA,IADA,UACA,gBACA,cACA,SAEA,IAEA,UAGA,SAgCA,gBACA,kBACA,iBAOA,cACA,6BAKA,cACA,8BAKA,cACA,8BAOA,cAEA,0BAOA,cAEA,0BAOA,cAEA,2BAcA,cACA,SACA,kBACA,gBAIA,OAHA,eACA,SAEA,GAEA,0BACA,yBACA,sBACA,uBACA,yBACA,yBACA,+DACA,KAWA,kBACA,eACA,IACA,oBACA,UACA,2BAFA,MAQA,WAYA,kBACA,eACA,OACA,IACA,mDACA,oBACA,SAIA,UAGA,SAUA,kBACA,eACA,OACA,eACA,IACA,oBACA,SACA,uBAIA,UAGA,SAUA,kBACA,IAEA,EAFA,WACA,IAGA,uBACA,mBAEA,CACA,qBACA,IAEA,SAEA,UACA,SACA,iBAEA,IAEA,SAKA,cACA,0BACA,EAEA,2BAEA,wDACA,GACA,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAQA,cACA,eACA,4BACA,4CAEA,SACA,eACA,kBACA,UAGA,KAEA,IADA,eACA,YACA,qBACA,aAIA,SAYA,oBACA,KACA,IACA,OACA,cACA,iBASA,OAPA,IACA,SAEA,IACA,SAEA,UACA,EAEA,UAKA,SAkBA,aACA,WACA,aACA,SAEA,iBAKA,cACA,YACA,OAEA,GAYA,sBACA,QAQA,OAPA,KACA,UACA,wBACA,IACA,SAGA,EAQA,kBACA,MAaA,OAZA,IACA,SACA,OAEA,YACA,QAKA,YAEA,EAEA,cACA,SAEA,cACA,UAEA,cACA,mBAkBA,kBACA,4BACA,kBACA,SACA,WACA,KACA,kBAEA,QAMA,EALA,WAEA,gBACA,0BAKA,kBACA,eAEA,KAEA,kBACA,eACA,YACA,YAKA,SAtBA,OA4BA,eACA,KAGA,SAOA,cACA,OACA,WACA,WACA,GACA,mBACA,WAcA,cAMA,OAHA,IACA,wCAEA,I,sVC5kBaw0D,EAAe,IA1B5B,WACI,aAAc,oBACVx+D,KAAKy+D,UAAY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,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,CAAC,GAAI,EAAG,GAAe,OAAQ,GAAe,IAAK,GAAI,OAAQA,EAAOA,GACtE,C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vG,KAAKs9J,QAAU38J,EAAE28J,OAAS,EAG1Bt9J,KAAKs9J,QAAU38J,EAAE28J,OAIrBt9J,KAAKs9J,QAAU38J,EAAE28J,OAAS,GAId,IAAhBt9J,KAAKu9J,QAAgC,IAAhBv9J,KAAKs9J,QAAgB38J,EAAEquL,aAC5ChvL,KAAKu9J,OAAS58J,EAAEquL,WAAa,MAjE7C,kDAqEI,WACQhvL,KAAKwjK,cACLxjK,KAAKwjK,aAAavvJ,mBAvE9B,6BA0EI,WACQjU,KAAKwjK,cACLxjK,KAAKwjK,aAAarvJ,sBA5E9B,M,6BC7CA,wFAMa86K,EAAwBviJ,YAAgB,wBACxCwiJ,EAAqC,IAAIpyJ,IAAc,4BAA4B,I,6BCPhG,kxBAAMqyJ,EAAc,W,IAAC,sDAGnB,IAFA,IAAM/sL,EAAiC,GAEpB,MAAAomE,EAAA,eAGjB,IAHG,IAAMv/D,EAAI,KACPyN,EAAOjX,MAAM+b,QAAQvS,GAAQA,EAAO7K,OAAOsY,KAAKzN,GAEpC,MAAAyN,EAAA,eAAM,CAAnB,IAAMpY,EAAG,KACZ8D,EAAO9D,GAAO,EAIlB,OAAO8D,GAQIgtL,EAAoBD,EAAY,CAC3C,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAQWE,EAAwBF,EAAY,CAC/C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAQWG,EAAwBH,EAAYE,EAAuBD,GAO3DG,EAAkBJ,EAAYG,EAAuB,CAChE,SAQWE,EAAkBL,EAAYG,EAAuB,CAChE,SACA,OACA,QACA,UACA,MACA,UAQWG,EAAkBN,EAAYK,EAAiB,CAC1D,WAQWE,EAAeP,EAAYG,EAAuB,CAC7D,UAQWK,EAAeR,EAAYG,EAAuB,CAC7D,UAQWM,EAAmBT,EAAYG,EAAuB,CACjE,WACA,OACA,WACA,QACA,MACA,SACA,SAQWO,EAAmBV,EAAYG,EAAuB,CACjE,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UAQWQ,EAAkBX,EAAYU,EAAkB,CAC3D,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAQW,EAAqB,EAAY,EAAkB,CAC9D,iBACA,OACA,UACA,OACA,YACA,YACA,cACA,WACA,WACA,OACA,SAQW,EAAmB,EAAY,EAAkB,CAC5D,OACA,WACA,aAGW,EAAmB,EAAY,EAAuB,CACjE,WACA,UAQW,EAAkB,EAAY,EAAuB,CAChE,cACA,gBAQW,EAAe,EAOf,EAAe,EAAY,EAAuB,CAC7D,UACA,UAQW,EAAe,EAAY,EAAuB,CAC7D,UACA,UACA,UACA,UAGW,EAAqB,EAAY,EAAuB,CACnE,SAGW,EAAgB,EAAY,EAAuB,CAC9D,SAQW,EAAiB,EAAY,EAAuB,CAC/D,gBACA,SACA,UACA,UACA,SACA,aACA,WAQW,EAAmB,EAAY,EAAuB,CACjE,QACA,kBACA,sBACA,oBACA,MACA,SACA,aACA,iBACA,UACA,MACA,SACA,UAQW,EAAgB,EAAY,EAAuB,CAC9D,MACA,cACA,SACA,MACA,SACA,SACA,UAaW,EAAgB,EAiBvB,SAAU,EAEd,EACA,EACA,GAaE,IALF,IAAM,EAAU,MAAM,QAAQ,GAExB,EAA8B,GAGlB,MAFL,OAAO,KAAK,GAEP,eAAM,CAAnB,IAAM,EAAG,QAER,GAAY,EAA4C,IACzD,GAAY,EAA8B,QAAQ,IAAQ,GAClC,IAAzB,EAAI,QAAQ,UACa,IAAzB,EAAI,QAAQ,WAEQ,IAA0D,KAApB,OAAjB,QAAiB,IAAjB,OAAiB,EAAjB,EAAmB,QAAQ,MAEpE,EAAO,GAAO,EAAO,IAIzB,OAAO,I,wLCnbLtuL,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAOzD6tL,EAAiBrjJ,YAAgB,iBACjCsjJ,EAAoB5xL,OAAO2f,OAAO,CAC3CkyK,mBAAep2K,EACfq2K,eAF2C,WAExB,OAAOlmL,IAAW8T,MACrCqyK,kBAH2C,WAGrB,OAAOnmL,IAAW8T,MACxCsyK,4BAJ2C,WAIX,OAAOpmL,IAAW8T,MAClDuyK,yBAL2C,aAM3CC,uBAN2C,WAMhB,OAAOtmL,IAAW8T,MAC7C/F,KAP2C,WAQvC,OAAOxW,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,wGAAsB,GAAtB,4CAE3CuwL,mBAV2C,SAUxBj4K,GACf,OAAO/W,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,uGAAsB,CAAE46D,SAAUtiD,EAAKF,QAAjB,eAAtB,8CAGxC,SAASo4K,EAAc5yL,EAAQynG,GAClC,OAAI1wE,IAAIC,MAAMh3B,GACHwlC,YAAiBxlC,EAAOynG,OAAQA,GAGhChiE,YAAqBzlC,EAAQynG,EAAS,O,uJCpC1CorF,G,MAAiCC,IAAMC,cAAc,OCIhE,IAAIC,EAJJ,SAA0BnpL,GACxBA,KCEF,SAASopL,IACP,IAAID,EDOGA,ECNHzvH,EAAQ,KACR+2F,EAAO,KACX,MAAO,CACL36I,MAAO,WACL4jD,EAAQ,KACR+2F,EAAO,MAET44B,OAAQ,WACNF,GAAM,WAGJ,IAFA,IAAIp5J,EAAW2pC,EAER3pC,GACLA,EAAS/vB,WACT+vB,EAAWA,EAASt1B,SAI1BuwB,IAAK,WAIH,IAHA,IAAIgsC,EAAY,GACZjnC,EAAW2pC,EAER3pC,GACLinC,EAAUl7D,KAAKi0B,GACfA,EAAWA,EAASt1B,KAGtB,OAAOu8D,GAETsyH,UAAW,SAAmBtpL,GAC5B,IAAIupL,GAAe,EACfx5J,EAAW0gI,EAAO,CACpBzwJ,SAAUA,EACVvF,KAAM,KACN+3G,KAAMi+C,GASR,OANI1gI,EAASyiF,KACXziF,EAASyiF,KAAK/3G,KAAOs1B,EAErB2pC,EAAQ3pC,EAGH,WACAw5J,GAA0B,OAAV7vH,IACrB6vH,GAAe,EAEXx5J,EAASt1B,KACXs1B,EAASt1B,KAAK+3G,KAAOziF,EAASyiF,KAE9Bi+C,EAAO1gI,EAASyiF,KAGdziF,EAASyiF,KACXziF,EAASyiF,KAAK/3G,KAAOs1B,EAASt1B,KAE9Bi/D,EAAQ3pC,EAASt1B,SAO3B,IAAI+uL,EAAgB,CAClBH,OAAQ,aACRr+J,IAAK,WACH,MAAO,KAGJ,SAASy+J,EAAmBn5D,EAAOo5D,GACxC,IAAIC,EACA3yH,EAAYwyH,EAWhB,SAASI,IACHh5J,EAAai5J,eACfj5J,EAAai5J,gBAQjB,SAASC,IACFH,IACHA,EAAcD,EAAYA,EAAUK,aAAaH,GAAuBt5D,EAAMg5D,UAAUM,GACxF5yH,EAAYoyH,KAahB,IAAIx4J,EAAe,CACjBm5J,aApCF,SAAsBh6J,GAEpB,OADA+5J,IACO9yH,EAAUsyH,UAAUv5J,IAmC3Bi6J,iBAhCF,WACEhzH,EAAUqyH,UAgCVO,oBAAqBA,EACrBL,aAxBF,WACE,OAAO9lG,QAAQkmG,IAwBfG,aAAcA,EACdG,eAfF,WACMN,IACFA,IACAA,OAAcv3K,EACd4kD,EAAUlhD,QACVkhD,EAAYwyH,IAWdU,aAAc,WACZ,OAAOlzH,IAGX,OAAOpmC,ECnHF,IAAIu5J,EAA8C,qBAAXjnL,QAAqD,qBAApBA,OAAOP,UAAqE,qBAAlCO,OAAOP,SAASsF,cAAgCmiL,kBAAkBC,YC2C5KC,MA9Cf,SAAkBC,GAChB,IAAIj6D,EAAQi6D,EAAKj6D,MACbnuF,EAAUooJ,EAAKpoJ,QACfr0B,EAAWy8K,EAAKz8K,SAChB08K,EAAeC,mBAAQ,WACzB,IAAI75J,EAAe64J,EAAmBn5D,GAEtC,OADA1/F,EAAai5J,cAAgBj5J,EAAao5J,iBACnC,CACL15D,MAAOA,EACP1/F,aAAcA,KAEf,CAAC0/F,IACAo6D,EAAgBD,mBAAQ,WAC1B,OAAOn6D,EAAMq6D,aACZ,CAACr6D,IACJ65D,GAA0B,WACxB,IAAIv5J,EAAe45J,EAAa55J,aAOhC,OANAA,EAAak5J,eAETY,IAAkBp6D,EAAMq6D,YAC1B/5J,EAAao5J,mBAGR,WACLp5J,EAAaq5J,iBACbr5J,EAAai5J,cAAgB,QAE9B,CAACW,EAAcE,IAClB,IAAIlzC,EAAUr1G,GAAW6mJ,EACzB,OAAoBC,IAAMhhL,cAAcuvI,EAAQ8yC,SAAU,CACxD/vL,MAAOiwL,GACN18K,I,2BClBE,SAAS88K,IAOd,OANmBC,qBAAW7B,GCVzB,SAAS8B,EAAgB3oJ,QACd,IAAZA,IACFA,EAAU6mJ,GAGZ,IAAI4B,EAAkBzoJ,IAAY6mJ,EAAoB+B,EAAyB,WAC7E,OAAOF,qBAAW1oJ,IAEpB,OAAO,WAIL,OAHuByoJ,IACMt6D,OAqB1B,IAAI06D,EAAwBF,IChC5B,SAASG,EAAmB9oJ,QACjB,IAAZA,IACFA,EAAU6mJ,GAGZ,IAAIgC,EAAW7oJ,IAAY6mJ,EAAoBkC,EAAkBJ,EAAgB3oJ,GACjF,OAAO,WAEL,OADY6oJ,IACCG,UAyBV,IAAIC,EAA2BH,ICpClCI,EAAc,SAAqB5uL,EAAG5E,GACxC,OAAO4E,IAAM5E,GA0FR,SAASyzL,EAAmBnpJ,QACjB,IAAZA,IACFA,EAAU6mJ,GAGZ,IAAI4B,EAAkBzoJ,IAAY6mJ,EAAoB+B,EAAyB,WAC7E,OAAOF,qBAAW1oJ,IAEpB,OAAO,SAAqBv5B,EAAU2iL,QACjB,IAAfA,IACFA,EAAaF,GAiBf,IAAIG,EAAmBZ,IAInBa,EAtHR,SAA6C7iL,EAAU2iL,EAAYj7D,EAAOo7D,GACxE,IAaID,EAVAE,EAHcC,sBAAW,SAAU/yL,GACrC,OAAOA,EAAI,IACV,GAC2B,GAE1B+3B,EAAe65J,mBAAQ,WACzB,OAAOhB,EAAmBn5D,EAAOo7D,KAChC,CAACp7D,EAAOo7D,IACPG,EAAkCC,mBAClCC,EAAiBD,mBACjBE,EAAmBF,mBACnBG,EAAsBH,mBACtBI,EAAa57D,EAAMq6D,WAGvB,IACE,GAAI/hL,IAAamjL,EAAe/6B,SAAWk7B,IAAeF,EAAiBh7B,SAAW66B,EAAgC76B,QAAS,CAC7H,IAAIm7B,EAAmBvjL,EAASsjL,GAK9BT,OAHkCr5K,IAAhC65K,EAAoBj7B,SAA0Bu6B,EAAWY,EAAkBF,EAAoBj7B,SAGjFi7B,EAAoBj7B,QAFpBm7B,OAKlBV,EAAgBQ,EAAoBj7B,QAEtC,MAAO98I,GAKP,MAJI23K,EAAgC76B,UAClC98I,EAAI/c,SAAW,4DAA8D00L,EAAgC76B,QAAQ76I,MAAQ,QAGzHjC,EA4CR,OAzCAi2K,GAA0B,WACxB4B,EAAe/6B,QAAUpoJ,EACzBojL,EAAiBh7B,QAAUk7B,EAC3BD,EAAoBj7B,QAAUy6B,EAC9BI,EAAgC76B,aAAU5+I,KAE5C+3K,GAA0B,WACxB,SAASiC,IACP,IACE,IAAIC,EAAgB/7D,EAAMq6D,WAE1B,GAAI0B,IAAkBL,EAAiBh7B,QACrC,OAGF,IAAIs7B,EAAoBP,EAAe/6B,QAAQq7B,GAE/C,GAAId,EAAWe,EAAmBL,EAAoBj7B,SACpD,OAGFi7B,EAAoBj7B,QAAUs7B,EAC9BN,EAAiBh7B,QAAUq7B,EAC3B,MAAOn4K,GAKP23K,EAAgC76B,QAAU98I,EAG5Cy3K,IAMF,OAHA/6J,EAAai5J,cAAgBuC,EAC7Bx7J,EAAak5J,eACbsC,IACO,WACL,OAAOx7J,EAAaq5J,oBAErB,CAAC35D,EAAO1/F,IACJ66J,EAyCec,CAAoC3jL,EAAU2iL,EAHtDC,EAAiBl7D,MACZk7D,EAAiB56J,cAIlC,OADA47J,wBAAcf,GACPA,GA2BJ,IPtJiCgB,EOsJ7BC,EAA2BpB,I,SPtJEmB,EQF/BtD,0BRGAA,EAAQsD,G,6BSRV,SAASr1B,EAAQu1B,EAAS91L,EAAKN,GAClC,IAAIq2L,EAAQ,KACRp8K,EAAK,KAYT,GAXgC,oBAArBja,EAAWgE,OAClBqyL,EAAQ,QAEU,KADlBp8K,EAAKja,EAAWgE,OACTjE,QACH2f,QAAQC,KAAK,kEAGc,oBAAnB3f,EAAWy0B,MACvB4hK,EAAQ,MACRp8K,EAAKja,EAAWy0B,MAEfxa,EACD,MAAM,IAAI/M,MAAM,iBAEpB,IAAMopL,EAAa,YAAH,OAAeh2L,GAC/BN,EAAWq2L,GAAS,WAChB,IAAKr0L,KAAKL,eAAe20L,GAAa,4BADTz1L,EACS,yBADTA,EACS,gBAClCT,OAAOC,eAAe2B,KAAMs0L,EAAY,CACpCp2L,cAAc,EACdD,YAAY,EACZE,UAAU,EACV6D,MAAOiW,EAAGxX,MAAMT,KAAMnB,KAG9B,OAAOmB,KAAKs0L,IA3BpB,mC,0HCSaC,EACT,WAAYh1K,EAAYC,EAAQspE,GAAwB,oBACpD9oF,KAAKw0L,0BAAuB36K,EAC5B7Z,KAAKuf,WAAaA,EAClBvf,KAAKwf,OAASA,EACdxf,KAAK8oF,uBAAyBA,GAGzB2rG,EAAb,iGACI,SAAoB3/J,EAAOnW,GACvB,GAAIA,EAASa,OAASsV,EAAM4/J,iBAAiB/1K,EAASY,YAClD,OAAOZ,EAASg5C,WAAM99C,GAAY4/E,IAAuB3kE,EAAM01E,eAAe7rF,EAASY,YAAaZ,EAASa,OAAS,IAErH,GAAIb,EAASY,WAAa,EAAG,CAC9B,IAAM4yB,EAAgBxzB,EAASY,WAAa,EAC5C,OAAO,IAAIY,IAASgyB,EAAerd,EAAMgsG,iBAAiB3uF,IAG1D,OAAOxzB,IAVnB,wCAaI,SAAkCmW,EAAOnW,EAAUynE,GAC/C,GAAIznE,EAASa,QAAUsV,EAAM6/J,oBAAoBh2K,EAASY,YAAa,CACnE,IAAMmmJ,EAAY5wI,EAAM4/J,iBAAiB/1K,EAASY,YAC5Cq+F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAC5CunH,EAAc8tD,IAAwBC,eAAej3E,EAAaj/F,EAASa,OAAS,EAAG4mE,EAAS,GACtG,IAAqB,IAAjB0gD,GAAsBA,EAAc,GAAK4+B,EACzC,OAAO,IAAIvlJ,IAASxB,EAASY,WAAYunH,EAAc,GAG/D,OAAO9mI,KAAK80L,aAAahgK,EAAOnW,KAtBxC,kBAwBI,SAAYumI,EAAQpwH,EAAOnW,GACvB,IAAMg0B,EAAMuyG,EAAO3+D,eACbkuG,EAAeM,2BAA2BjgK,EAAOnW,EAAUumI,EAAO9+D,SAClEquG,EAAeK,aAAahgK,EAAOnW,GACzC,OAAO,IAAI41K,EAAe5hJ,EAAIpzB,WAAYozB,EAAInzB,OAAQ,KA5B9D,sBAkCI,SAAgB0lI,EAAQpwH,EAAO0lF,EAAQvxB,EAAiB+rG,GACpD,IAAIz1K,EAAYC,EAChB,GAAIg7F,EAAOy6E,iBAAmBhsG,EAG1B1pE,EAAai7F,EAAOr7B,UAAU7gE,gBAC9BkB,EAASg7F,EAAOr7B,UAAU5gE,gBAEzB,CAGD,IAAMo0B,EAAM6nE,EAAO77F,SAASg5C,WAAM99C,IAAam7K,EAAc,IAGvDE,EAAgBpgK,EAAMqgK,kBAAkBV,EAAeW,mBAAmBziJ,EAAK7d,GAAQ,GACvFp1B,EAAI+0L,EAAexoL,KAAKi5I,EAAQpwH,EAAOogK,GAC7C31K,EAAa7f,EAAE6f,WACfC,EAAS9f,EAAE8f,OAEf,OAAOg7F,EAAOnhC,KAAK4P,EAAiB1pE,EAAYC,EAAQ,KArDhE,gCA0DI,SAA0Bb,EAAUmW,GAChC,OAAO,IAAI3U,IAASxB,EAASY,WAAYk1K,EAAeY,UAAU12K,EAASa,OAAQsV,EAAM4/J,iBAAiB/1K,EAASY,YAAauV,EAAMgsG,iBAAiBniH,EAASY,gBA3DxK,uBA6DI,SAAiBvd,EAAO0d,EAAK/H,GACzB,OAAI3V,EAAQ0d,EACDA,EAEP1d,EAAQ2V,EACDA,EAEJ3V,IApEf,2BAsEI,SAAqB8yB,EAAOvV,EAAYC,GAQpC,OAPIA,EAASsV,EAAMgsG,iBAAiBvhH,GAChCC,GAAkBi6E,IAAuB3kE,EAAM01E,eAAejrF,GAAaC,EAAS,GAE/ED,EAAauV,EAAMg1E,iBACxBvqF,GAA0B,EAC1BC,EAASsV,EAAM4/J,iBAAiBn1K,IAE7B,IAAIY,IAASZ,EAAYC,KA9ExC,yCAgFI,SAAmCsV,EAAOvV,EAAYC,EAAQ4mE,EAASC,GACnE,GAAI7mE,EAASsV,EAAM6/J,oBAAoBp1K,GAAa,CAChD,IAAMq+F,EAAc9oF,EAAM01E,eAAejrF,GACnCunH,EAAc8tD,IAAwBC,eAAej3E,EAAap+F,EAAS,EAAG4mE,EAAS,GAC7F,IAAqB,IAAjB0gD,EACA,OAAO,IAAI3mH,IAASZ,EAAYunH,EAAc,GAGtD,OAAO9mI,KAAKs1L,cAAcxgK,EAAOvV,EAAYC,KAxFrD,mBA0FI,SAAa0lI,EAAQpwH,EAAOnW,GACxB,IAAMg0B,EAAMuyG,EAAO3+D,eACbkuG,EAAec,4BAA4BzgK,EAAOnW,EAASY,WAAYZ,EAASa,OAAQ0lI,EAAO9+D,QAAS8+D,EAAO7+D,YAC/GouG,EAAea,cAAcxgK,EAAOnW,EAASY,WAAYZ,EAASa,QACxE,OAAO,IAAI+0K,EAAe5hJ,EAAIpzB,WAAYozB,EAAInzB,OAAQ,KA9F9D,uBAgGI,SAAiB0lI,EAAQpwH,EAAO0lF,EAAQvxB,EAAiB+rG,GACrD,IAAIz1K,EAAYC,EAChB,GAAIg7F,EAAOy6E,iBAAmBhsG,EAE1B1pE,EAAai7F,EAAOr7B,UAAU3gE,cAC9BgB,EAASg7F,EAAOr7B,UAAU1gE,cAEzB,CACD,IAAMk0B,EAAM6nE,EAAO77F,SAASg5C,WAAM99C,EAAWm7K,EAAc,GACrDE,EAAgBpgK,EAAMqgK,kBAAkBV,EAAeW,mBAAmBziJ,EAAK7d,GAAQ,GACvF3zB,EAAIszL,EAAe1oJ,MAAMm5G,EAAQpwH,EAAOogK,GAC9C31K,EAAape,EAAEoe,WACfC,EAASre,EAAEqe,OAEf,OAAOg7F,EAAOnhC,KAAK4P,EAAiB1pE,EAAYC,EAAQ,KA9GhE,sBAgHI,SAAgB0lI,EAAQpwH,EAAOvV,EAAYC,EAAQspE,EAAwB32C,EAAeqjJ,GACtF,IAAMC,EAAuBpmE,IAAcC,wBAAwBx6F,EAAM01E,eAAejrF,GAAaC,EAAQ0lI,EAAO9+D,SAAW0C,EACzHi5B,EAAYjtF,EAAMg1E,eAClB4rF,EAAqC,IAAfn2K,GAA+B,IAAXC,EAC1Cm2K,EAAqBp2K,IAAewiG,GAAaviG,IAAWsV,EAAMgsG,iBAAiBvhH,GACnFq2K,EAAqBzjJ,EAAgB5yB,EAAam2K,EAAqBC,EA6B7E,OA5BAp2K,EAAa4yB,GACI,GACb5yB,EAAa,EAETC,EADAg2K,EACS1gK,EAAM4/J,iBAAiBn1K,GAGvB7H,KAAKgI,IAAIoV,EAAMgsG,iBAAiBvhH,GAAaC,IAGrDD,EAAawiG,GAClBxiG,EAAawiG,EAETviG,EADAg2K,EACS1gK,EAAMgsG,iBAAiBvhH,GAGvB7H,KAAKgI,IAAIoV,EAAMgsG,iBAAiBvhH,GAAaC,IAI1DA,EAAS6vG,IAAcwmE,yBAAyB3wC,EAAQpwH,EAAOvV,EAAYk2K,GAG3E3sG,EADA8sG,EACyB,EAGAH,EAAuBpmE,IAAcC,wBAAwBx6F,EAAM01E,eAAejrF,GAAaC,EAAQ0lI,EAAO9+D,SAEpI,IAAImuG,EAAeh1K,EAAYC,EAAQspE,KAlJtD,kBAoJI,SAAYo8D,EAAQpwH,EAAOvV,EAAYC,EAAQspE,EAAwB62B,EAAOm2E,GAC1E,OAAO91L,KAAKq6F,SAAS6qD,EAAQpwH,EAAOvV,EAAYC,EAAQspE,EAAwBvpE,EAAaogG,EAAOm2E,KArJ5G,sBAuJI,SAAgB5wC,EAAQpwH,EAAO0lF,EAAQvxB,EAAiB4gB,GACpD,IAAItqF,EAAYC,EACZg7F,EAAOy6E,iBAAmBhsG,GAE1B1pE,EAAai7F,EAAOr7B,UAAU3gE,cAC9BgB,EAASg7F,EAAOr7B,UAAU1gE,YAG1Bc,EAAai7F,EAAO77F,SAASY,WAC7BC,EAASg7F,EAAO77F,SAASa,QAE7B,IAAIre,EAAIszL,EAAesB,KAAK7wC,EAAQpwH,EAAOvV,EAAYC,EAAQg7F,EAAO1xB,uBAAwB+gB,GAAY,GAC1G,OAAO2Q,EAAOnhC,KAAK4P,EAAiB9nF,EAAEoe,WAAYpe,EAAEqe,OAAQre,EAAE2nF,0BAnKtE,2BAqKI,SAAqBo8D,EAAQpwH,EAAO0lF,GAChC,IAAIr7B,EAAYq7B,EAAOr7B,UACnByJ,EAAiB6rG,EAAesB,KAAK7wC,EAAQpwH,EAAOqqD,EAAU4K,yBAA0B5K,EAAU6K,qBAAsBwwB,EAAO3xB,qCAAsC,GAAG,GACxKlqE,EAAW81K,EAAesB,KAAK7wC,EAAQpwH,EAAOqqD,EAAU8K,mBAAoB9K,EAAU+K,eAAgBswB,EAAO1xB,uBAAwB,GAAG,GAC5I,OAAO,IAAIH,IAAkB,IAAItqE,IAAMuqE,EAAerpE,WAAYqpE,EAAeppE,OAAQopE,EAAerpE,WAAYqpE,EAAeppE,QAASopE,EAAeE,uBAAwB,IAAI3oE,IAASxB,EAASY,WAAYZ,EAASa,QAASb,EAASmqE,0BAzKxP,gBA2KI,SAAUo8D,EAAQpwH,EAAOvV,EAAYC,EAAQspE,EAAwB62B,EAAOq2E,GACxE,OAAOh2L,KAAKq6F,SAAS6qD,EAAQpwH,EAAOvV,EAAYC,EAAQspE,EAAwBvpE,EAAaogG,EAAOq2E,KA5K5G,oBA8KI,SAAc9wC,EAAQpwH,EAAO0lF,EAAQvxB,EAAiB4gB,GAClD,IAAItqF,EAAYC,EACZg7F,EAAOy6E,iBAAmBhsG,GAE1B1pE,EAAai7F,EAAOr7B,UAAU7gE,gBAC9BkB,EAASg7F,EAAOr7B,UAAU5gE,cAG1BgB,EAAai7F,EAAO77F,SAASY,WAC7BC,EAASg7F,EAAO77F,SAASa,QAE7B,IAAIre,EAAIszL,EAAewB,GAAG/wC,EAAQpwH,EAAOvV,EAAYC,EAAQg7F,EAAO1xB,uBAAwB+gB,GAAY,GACxG,OAAO2Q,EAAOnhC,KAAK4P,EAAiB9nF,EAAEoe,WAAYpe,EAAEqe,OAAQre,EAAE2nF,0BA1LtE,yBA4LI,SAAmBo8D,EAAQpwH,EAAO0lF,GAC9B,IAAIr7B,EAAYq7B,EAAOr7B,UACnByJ,EAAiB6rG,EAAewB,GAAG/wC,EAAQpwH,EAAOqqD,EAAU4K,yBAA0B5K,EAAU6K,qBAAsBwwB,EAAO3xB,qCAAsC,GAAG,GACtKlqE,EAAW81K,EAAewB,GAAG/wC,EAAQpwH,EAAOqqD,EAAU8K,mBAAoB9K,EAAU+K,eAAgBswB,EAAO1xB,uBAAwB,GAAG,GAC1I,OAAO,IAAIH,IAAkB,IAAItqE,IAAMuqE,EAAerpE,WAAYqpE,EAAeppE,OAAQopE,EAAerpE,WAAYqpE,EAAeppE,QAASopE,EAAeE,uBAAwB,IAAI3oE,IAASxB,EAASY,WAAYZ,EAASa,QAASb,EAASmqE,0BAhMxP,0BAkMI,SAAoBh0D,EAAOvV,GACvB,OAA0D,IAAtDuV,EAAMgzF,gCAAgCvoG,KAnMlD,iCAyMI,SAA2B2lI,EAAQpwH,EAAO0lF,EAAQvxB,GAG9C,IAFA,IAAI1pE,EAAai7F,EAAO77F,SAASY,WAE1BA,EAAa,GAAKvf,KAAKk2L,aAAaphK,EAAOvV,IAC9CA,IAGJ,KAAOA,EAAa,IAAMvf,KAAKk2L,aAAaphK,EAAOvV,IAC/CA,IAEJ,OAAOi7F,EAAOnhC,KAAK4P,EAAiB1pE,EAAYuV,EAAM4/J,iBAAiBn1K,GAAa,KAnN5F,iCAqNI,SAA2B2lI,EAAQpwH,EAAO0lF,EAAQvxB,GAI9C,IAHA,IAAM84B,EAAYjtF,EAAMg1E,eACpBvqF,EAAai7F,EAAO77F,SAASY,WAE1BA,EAAawiG,GAAa/hH,KAAKk2L,aAAaphK,EAAOvV,IACtDA,IAGJ,KAAOA,EAAawiG,IAAc/hH,KAAKk2L,aAAaphK,EAAOvV,IACvDA,IAEJ,OAAOi7F,EAAOnhC,KAAK4P,EAAiB1pE,EAAYuV,EAAM4/J,iBAAiBn1K,GAAa,KAhO5F,mCAkOI,SAA6B2lI,EAAQpwH,EAAO0lF,EAAQvxB,GAChD,IAGIzpE,EAHAD,EAAai7F,EAAO77F,SAASY,WAC7BmmJ,EAAY5wI,EAAM4/J,iBAAiBn1K,GACnC42K,EAAsBrhK,EAAMgzF,gCAAgCvoG,IAAemmJ,EAS/E,OALIlmJ,EAFuBg7F,EAAO77F,SAASa,SACd22K,EAChBzwB,EAGAywB,EAEN37E,EAAOnhC,KAAK4P,EAAiB1pE,EAAYC,EAAQ,KA9OhE,6BAgPI,SAAuB0lI,EAAQpwH,EAAO0lF,EAAQvxB,EAAiBsK,GAC3D,IAAIh0E,EAAai7F,EAAO77F,SAASY,WAC7Bk2E,EAAY3gE,EAAMgsG,iBAAiBvhH,GACvC,OAAOi7F,EAAOnhC,KAAK4P,EAAiB1pE,EAAYk2E,EAAWlC,EAAS,WAA0CkC,EAAY,KAnPlI,qCAqPI,SAA+ByvD,EAAQpwH,EAAO0lF,EAAQvxB,GAClD,OAAOuxB,EAAOnhC,KAAK4P,EAAiB,EAAG,EAAG,KAtPlD,+BAwPI,SAAyBi8D,EAAQpwH,EAAO0lF,EAAQvxB,GAC5C,IAAIqiE,EAAiBx2H,EAAMg1E,eACvBssF,EAAathK,EAAMgsG,iBAAiBwqB,GACxC,OAAO9wC,EAAOnhC,KAAK4P,EAAiBqiE,EAAgB8qC,EAAY,OA3PxE,M,6BCkEA,IAAYC,EA4CAC,EAeAC,EA/DZ,sGAIA,SAAYF,GAIV,uBAOA,yBAMA,qBAMA,mBAOA,iCAOA,qCArCF,CAAYA,MAAQ,KA4CpB,SAAYC,GAIV,6BAKA,2BATF,CAAYA,MAAe,KAe3B,SAAYC,GAIV,6BAKA,uBAKA,qBAKA,iCAnBF,CAAYA,MAAc,M,gMCxIbC,EAAb,WACI,WAAY3wG,EAAK1gF,GAAM,oBACnBnF,KAAK6lF,IAAMA,EACX7lF,KAAKmF,KAAOA,EACZnF,KAAK6K,MAAQ,EAJrB,2CAMI,SAAQA,GACJ7K,KAAK6K,MAAQA,MAPrB,KAUM4rL,E,WACF,WAAYC,EAAcC,GAAU,oBAChC32L,KAAK42L,cAAgBF,EACrB12L,KAAK62L,UAAYF,EACjB32L,KAAK82L,WAAa,KAClB92L,KAAK+2L,cAAgB,K,wCAEzB,WAEI/2L,KAAKg3L,qBAEL5sL,SAAS5H,KAAKoN,YAAY5P,KAAK82L,YAE/B92L,KAAKi3L,uBAEL7sL,SAAS5H,KAAKs8I,YAAY9+I,KAAK82L,YAC/B92L,KAAK82L,WAAa,KAClB92L,KAAK+2L,cAAgB,O,gCAEzB,WACI,IAAM3sI,EAAapqD,KAAK42L,cAAcM,sBAAsBn9C,IAAW9nD,IAAqB7nC,WAAa,MACnG56C,EAAYpF,SAASsF,cAAc,OACzCF,EAAU9C,MAAMiS,SAAW,WAC3BnP,EAAU9C,MAAMX,IAAM,WACtByD,EAAU9C,MAAM7B,MAAQ,UACxB,IAAMssL,EAAiB/sL,SAASsF,cAAc,OAC9CynL,EAAezqL,MAAM09C,WAAaA,EAClC+sI,EAAezqL,MAAM89C,WAAaxqD,KAAK42L,cAAcpsI,WACrD2sI,EAAezqL,MAAM69C,SAAWvqD,KAAK42L,cAAcrsI,SAAW,KAC9D4sI,EAAezqL,MAAM+xI,oBAAsBz+I,KAAK42L,cAAcn4C,oBAC9D04C,EAAezqL,MAAM85E,WAAaxmF,KAAK42L,cAAcpwG,WAAa,KAClE2wG,EAAezqL,MAAM0xF,cAAgBp+F,KAAK42L,cAAcx4F,cAAgB,KACxE5uF,EAAUI,YAAYunL,GACtB,IAAMC,EAAchtL,SAASsF,cAAc,OAC3C0nL,EAAY1qL,MAAM09C,WAAaA,EAC/BgtI,EAAY1qL,MAAM89C,WAAa,OAC/B4sI,EAAY1qL,MAAM69C,SAAWvqD,KAAK42L,cAAcrsI,SAAW,KAC3D6sI,EAAY1qL,MAAM+xI,oBAAsBz+I,KAAK42L,cAAcn4C,oBAC3D24C,EAAY1qL,MAAM85E,WAAaxmF,KAAK42L,cAAcpwG,WAAa,KAC/D4wG,EAAY1qL,MAAM0xF,cAAgBp+F,KAAK42L,cAAcx4F,cAAgB,KACrE5uF,EAAUI,YAAYwnL,GACtB,IAAMC,EAAgBjtL,SAASsF,cAAc,OAC7C2nL,EAAc3qL,MAAM09C,WAAaA,EACjCitI,EAAc3qL,MAAM89C,WAAaxqD,KAAK42L,cAAcpsI,WACpD6sI,EAAc3qL,MAAM69C,SAAWvqD,KAAK42L,cAAcrsI,SAAW,KAC7D8sI,EAAc3qL,MAAM+xI,oBAAsBz+I,KAAK42L,cAAcn4C,oBAC7D44C,EAAc3qL,MAAM85E,WAAaxmF,KAAK42L,cAAcpwG,WAAa,KACjE6wG,EAAc3qL,MAAM0xF,cAAgBp+F,KAAK42L,cAAcx4F,cAAgB,KACvEi5F,EAAc3qL,MAAMoiC,UAAY,SAChCt/B,EAAUI,YAAYynL,GACtB,IA/BiB,EA+BXC,EAAe,GA/BJ,cAgCKt3L,KAAK62L,WAhCV,IAgCjB,2BAAsC,KAA3BU,EAA2B,QAC9BjiL,OAAM,EACW,IAAjBiiL,EAAQpyL,OACRmQ,EAAS6hL,GAEQ,IAAjBI,EAAQpyL,OACRmQ,EAAS8hL,GAEQ,IAAjBG,EAAQpyL,OACRmQ,EAAS+hL,GAEb/hL,EAAO1F,YAAYxF,SAASsF,cAAc,OAC1C,IAAM8nL,EAAcptL,SAASsF,cAAc,QAC3C+mL,EAAmBgB,QAAQD,EAAaD,GACxCjiL,EAAO1F,YAAY4nL,GACnBF,EAAa/zL,KAAKi0L,IA/CL,8BAiDjBx3L,KAAK82L,WAAatnL,EAClBxP,KAAK+2L,cAAgBO,I,kCAoBzB,WACI,IAAK,IAAIx5L,EAAI,EAAG+jC,EAAM7hC,KAAK62L,UAAU94L,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACvD,IAAMy5L,EAAUv3L,KAAK62L,UAAU/4L,GACzB05L,EAAcx3L,KAAK+2L,cAAcj5L,GACvCy5L,EAAQG,QAAQF,EAAYlqL,YAAc,S,sBAtBlD,SAAekqL,EAAaD,GACxB,GAAoB,MAAhBA,EAAQ1xG,IAAa,CAGrB,IAFA,IAAI8xG,EAAa,OAER75L,EAAI,EAAGA,EAAI,EAAGA,IACnB65L,GAAcA,EAElBH,EAAY5hL,UAAY+hL,MAEvB,CAGD,IAFA,IAAIC,EAAaL,EAAQ1xG,IAEhB/nF,EAAI,EAAGA,EAAI,EAAGA,IACnB85L,GAAcA,EAElBJ,EAAY/qB,YAAcmrB,O,oCCzFhCC,E,WACF,aAAc,oBACV73L,KAAK83L,MAAQ15L,OAAO8B,OAAO,MAC3BF,KAAKyuF,QAAUrwF,OAAO8B,OAAO,M,uCAEjC,SAAI+I,GACA,IAAM8uL,EAAS9uL,EAAKsqH,QACpB,QAASvzH,KAAKyuF,QAAQspG,K,iBAE1B,SAAI9uL,GACA,IAAM8uL,EAAS9uL,EAAKsqH,QACpB,OAAOvzH,KAAKyuF,QAAQspG,K,iBAExB,SAAI9uL,EAAMjH,GACN,IAAM+1L,EAAS9uL,EAAKsqH,QACpBvzH,KAAK83L,MAAMC,GAAU9uL,EACrBjJ,KAAKyuF,QAAQspG,GAAU/1L,I,oBAE3B,SAAOiH,GACH,IAAM8uL,EAAS9uL,EAAKsqH,eACbvzH,KAAK83L,MAAMC,UACX/3L,KAAKyuF,QAAQspG,K,uBAExB,WAAY,WACR,OAAO35L,OAAOsY,KAAK1W,KAAK83L,OAAO11K,KAAI,SAAA7L,GAAE,OAAI,EAAKk4E,QAAQl4E,U,KAGvD,SAASyhL,IACZC,EAAsBtiK,SAASuiK,a,IAE7BD,E,kDACF,aAAc,kCACV,gBACKnqJ,aAAe,EAAKpkC,UAAU,IAAI+K,KACvC,EAAKs5B,YAAc,EAAKD,aAAan5B,MACrC,EAAKo+F,OAAS,IAAI8kF,EAClB,EAAKM,gCAAkC,EAL7B,E,2CAOd,YACiD,IAAzCn4L,KAAKm4L,iCACLv/J,aAAa54B,KAAKm4L,gCAClBn4L,KAAKm4L,gCAAkC,GAE3C,kE,wBAEJ,WACIn4L,KAAK+yG,OAAS,IAAI8kF,EAClB73L,KAAK8tC,aAAa74B,S,2BAEtB,SAAchM,EAAMjH,GAAO,WACvBhC,KAAK+yG,OAAOqlF,IAAInvL,EAAMjH,GACjBA,EAAMq2L,YAAsD,IAAzCr4L,KAAKm4L,iCAEzBn4L,KAAKm4L,+BAAiCnwL,YAAW,WAC7C,EAAKmwL,gCAAkC,EACvC,EAAKG,4BACN,Q,qCAGX,WACI,IADsB,EAChB96K,EAASxd,KAAK+yG,OAAOwlF,YACvBC,GAAmB,EAFD,cAGHh7K,GAHG,IAGtB,2BAA2B,KAAhBvU,EAAgB,QAClBA,EAAKovL,YACNG,GAAmB,EACnBx4L,KAAK+yG,OAAOjuG,OAAOmE,KANL,8BASlBuvL,GACAx4L,KAAK8tC,aAAa74B,S,+BAG1B,SAAkByhL,GACd,IAAK12L,KAAK+yG,OAAOzwD,IAAIo0I,GAAe,CAChC,IAAI+B,EAAaR,EAAsBS,yBAAyBhC,IAC5D+B,EAAWxkG,gCAAkC,GAAKwkG,EAAWE,gCAAkC,GAAKF,EAAWG,YAAc,GAAKH,EAAWvkG,eAAiB,KAE9JukG,EAAa,IAAII,IAAS,CACtBC,UAAWnlL,MACXwgF,WAAYxgF,MACZy2C,WAAYquI,EAAWruI,WACvBI,WAAYiuI,EAAWjuI,WACvBD,SAAUkuI,EAAWluI,SACrBk0F,oBAAqBg6C,EAAWh6C,oBAChCj4D,WAAYiyG,EAAWjyG,WACvB4X,cAAeq6F,EAAWr6F,cAC1B26F,YAAaN,EAAWM,YACxB9kG,+BAAgCv8E,KAAKC,IAAI8gL,EAAWxkG,+BAAgC,GACpF0kG,+BAAgCjhL,KAAKC,IAAI8gL,EAAWE,+BAAgC,GACpFK,+BAAgCP,EAAWO,+BAC3CJ,WAAYlhL,KAAKC,IAAI8gL,EAAWG,WAAY,GAC5CK,YAAavhL,KAAKC,IAAI8gL,EAAWQ,YAAa,GAC9CC,cAAexhL,KAAKC,IAAI8gL,EAAWS,cAAe,GAClDhlG,cAAex8E,KAAKC,IAAI8gL,EAAWvkG,cAAe,KACnD,IAEPl0F,KAAKm5L,cAAczC,EAAc+B,GAErC,OAAOz4L,KAAK+yG,OAAOtgF,IAAIikK,M,4BAE3B,SAAqB7wG,EAAK1gF,EAAM0mC,EAAKutJ,GACjC,IAAMh3L,EAAS,IAAIo0L,EAAiB3wG,EAAK1gF,GAKzC,OAJA0mC,EAAItoC,KAAKnB,GACLg3L,GACAA,EAAU71L,KAAKnB,GAEZA,I,sCAEX,SAAgCs0L,GAyB5B,IAxBA,IAAM7qJ,EAAM,GACNutJ,EAAY,GACZC,EAA4Br5L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GAC1EG,EAA4Bv5L,KAAKs5L,cAAc,SAAU,EAAiBztJ,EAAK,MAC/E2tJ,EAAQx5L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACtDK,EAASz5L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDM,EAAS15L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDO,EAAS35L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDQ,EAAS55L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDS,EAAS75L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDU,EAAS95L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDW,EAAS/5L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDY,EAASh6L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDa,EAASj6L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GACvDc,EAASl6L,KAAKs5L,cAAc,IAAK,EAAiBztJ,EAAKutJ,GAEvDe,EAAkBn6L,KAAKs5L,cAAc,SAAK,EAAiBztJ,EAAKutJ,GAChEgB,EAA2Bp6L,KAAKs5L,cAAc,SAAK,EAAiBztJ,EAAK,MAEzEwuJ,EAASr6L,KAAKs5L,cAAc,OAAK,EAAiBztJ,EAAKutJ,GAEvDF,EAAgBl5L,KAAKs5L,cAAcx5L,OAAOkmC,aAAa,OAAS,EAAiB6F,EAAK,MAEtFyuJ,EAAqB,WAClBx8L,EAAI,EAAG+jC,EAAMy4J,EAAmBv8L,OAAQD,EAAI+jC,EAAK/jC,IACtDkC,KAAKs5L,cAAcgB,EAAmBv5J,OAAOjjC,GAAI,EAAiB+tC,EAAKutJ,GACvEp5L,KAAKs5L,cAAcgB,EAAmBv5J,OAAOjjC,GAAI,EAAgB+tC,EAAKutJ,GACtEp5L,KAAKs5L,cAAcgB,EAAmBv5J,OAAOjjC,GAAI,EAAc+tC,EAAKutJ,IDpCzE,SAAwB1C,EAAcC,GAC1B,IAAIF,EAAmBC,EAAcC,GAC7C/lE,OCoCH2pE,CAAe7D,EAAc7qJ,GAI7B,IAHA,IAAMqoD,EAAgBx8E,KAAKC,IAAI8hL,EAAO5uL,MAAO6uL,EAAO7uL,MAAO8uL,EAAO9uL,MAAO+uL,EAAO/uL,MAAOgvL,EAAOhvL,MAAOivL,EAAOjvL,MAAOkvL,EAAOlvL,MAAOmvL,EAAOnvL,MAAOovL,EAAOpvL,MAAOqvL,EAAOrvL,OAChKkuL,EAAerC,EAAaj4C,sBAAwB/sD,IAAoBC,IACtE6oG,EAAiBpB,EAAU,GAAGvuL,MAC3B/M,EAAI,EAAG+jC,EAAMu3J,EAAUr7L,OAAQg7L,GAAej7L,EAAI+jC,EAAK/jC,IAAK,CACjE,IAAMmlC,EAAOu3J,EAAiBpB,EAAUt7L,GAAG+M,MAC3C,GAAIo4B,GAAQ,MAASA,EAAO,KAAO,CAC/B81J,GAAc,EACd,OAGR,IAAIC,GAAiC,EACjCD,GAAeqB,EAAyBvvL,QAAU2vL,IAElDxB,GAAiC,GAEjCoB,EAAyBvvL,MAAQsvL,EAAgBtvL,QAEjDmuL,GAAiC,GAGrC,IAAMyB,EAA4B9mL,MAA6C,IAC/E,OAAO,IAAIklL,IAAS,CAChBC,UAAWnlL,MACXwgF,WAAYxgF,MACZy2C,WAAYssI,EAAatsI,WACzBI,WAAYksI,EAAalsI,WACzBD,SAAUmsI,EAAansI,SACvBk0F,oBAAqBi4C,EAAaj4C,oBAClCj4D,WAAYkwG,EAAalwG,WACzB4X,cAAes4F,EAAat4F,cAC5B26F,YAAaA,EACb9kG,+BAAgColG,EAA0BxuL,MAC1D8tL,+BAAgCY,EAA0B1uL,MAC1DmuL,+BAAgCA,EAChCJ,WAAYY,EAAM3uL,MAClBouL,YAAaoB,EAAOxvL,MACpBquL,cAAeA,EAAcruL,MAC7BqpF,cAAeA,GAChBumG,O,GAnJyBzwL,KAsJpCiuL,EAAsBtiK,SAAW,IAAIsiK,EAC9B,IAAMp/B,EAAb,kDACI,WAAY6hC,EAAgBr1L,GAA2D,MAAlDs1L,EAAkD,uDAA5B,KAAMC,EAAsB,mEACnF,cAAMF,EAAgBr1L,IACjBu1L,qBAAuBA,EAC5B,EAAKC,qBAAuB,EAAKnxL,UAAU,IAAIoxL,IAAoBH,EAAqBt1L,EAAQ01L,WAAW,kBAAM,EAAKC,wBACtH,EAAKtxL,UAAUuuL,EAAsBtiK,SAASoY,aAAY,kBAAM,EAAKitJ,wBACjE,EAAKC,kBAAkBxoK,IAAI,KAC3B,EAAKooK,qBAAqBK,iBAE9B,EAAKxxL,UAAUiK,KAA6B,SAAA/Q,GAAC,OAAI,EAAKo4L,wBACtD,EAAKtxL,UAAU,EAAKkxL,qBAAqBO,kCAAiC,kBAAM,EAAKH,wBACrF,EAAKA,oBAV8E,EAD3F,2DA6BI,SAAwBD,GACpB/6L,KAAK66L,qBAAqBj2I,QAAQm2I,KA9B1C,8BAgCI,WACI/6L,KAAKg7L,sBAjCb,kCAkDI,WACI,MAAO,CACH/pG,qBAAsB4nE,EAAcuiC,2BACpCxnG,WAAY5zF,KAAK66L,qBAAqBQ,WACtCxnG,YAAa7zF,KAAK66L,qBAAqBS,YACvC10G,wBAAyBjzE,KAAoBA,IAC7CwgF,WAAYxgF,MACZmlL,UAAWnlL,MACXg9E,qBAAuB3wF,KAAK46L,qBAAqBW,0BAC3C,EACAv7L,KAAK46L,qBAAqBY,6BA5D5C,+BA+DI,SAAkB9E,GACd,OAAOuB,EAAsBtiK,SAAS8lK,kBAAkB/E,MAhEhE,gCAaI,SAAyB9pL,EAASmlF,GAC9BnlF,EAAQF,MAAM09C,WAAa2nC,EAASmlG,sBAAsBvjL,IAAmBs+E,IAAqB7nC,WAAa,MAC/Gx9C,EAAQF,MAAM89C,WAAaunC,EAASvnC,WACpC59C,EAAQF,MAAM69C,SAAWwnC,EAASxnC,SAAW,KAC7C39C,EAAQF,MAAM+xI,oBAAsB1sD,EAAS0sD,oBAC7C7xI,EAAQF,MAAM85E,WAAauL,EAASvL,WAAa,KACjD55E,EAAQF,MAAM0xF,cAAgBrM,EAASqM,cAAgB,OAnB/D,2BAqBI,SAAqBxxF,EAASmlF,GAC1BnlF,EAAQ8uL,cAAc3pG,EAASmlG,sBAAsBvjL,IAAmBs+E,IAAqB7nC,WAAa,OAC1Gx9C,EAAQ+uL,cAAc5pG,EAASvnC,YAC/B59C,EAAQgvL,YAAY7pG,EAASxnC,UAC7B39C,EAAQivL,uBAAuB9pG,EAAS0sD,qBACxC7xI,EAAQkvL,cAAc/pG,EAASvL,YAC/B55E,EAAQmvL,iBAAiBhqG,EAASqM,iBA3B1C,sCAmCI,WACI,IAAI49F,EAAQ,GAYZ,OAXKroL,KAAqBA,MAEtBqoL,GAAS,mBAETroL,MAEAqoL,GAAS,sBAETz1L,MACAy1L,GAAS,QAENA,MAhDf,GAAmCC,M,oNCzF7B9sJ,EAAe,I,WAxFjB,aAAc,oBACVnvC,KAAK8tC,aAAe,IAAIr5B,IACxBzU,KAAK+tC,YAAc/tC,KAAK8tC,aAAan5B,MACrC3U,KAAKk8L,WAAa,CACdC,YAAa,CACTlmI,MAAO,CACH9wD,KAAM,SACN+b,WAAY,CACRk7K,OAAQ,CAAEj3L,KAAM,SAAU8Q,YAAa/W,YAAS,uBAAwB,mFACxEuqE,cAAe,CAAEtkE,KAAM,SAAU8Q,YAAa/W,YAAS,8BAA+B,6DAE1Fm9L,sBAAsB,EACtBx6K,gBAAiB,CAAC,CAAErf,KAAM,CAAEinE,cAAe,gBAGnDtkE,KAAM,SACN+b,WAAY,IAEhBlhB,KAAKs8L,oBAAsB,CAAEn3L,KAAM,SAAUs7B,QAAS,IAAF,OAAM87J,IAAiBx/H,mBAAvB,KAA8C37C,KAAM,GAAIC,iBAAkB,IAC9HrhB,KAAKw8L,UAAY,GACjBx8L,KAAKy8L,cAAgB,G,gDAEzB,SAAalmL,EAAIgL,EAAUtL,EAAawL,GACpC,IAAMsnD,EAAW/oE,KAAKw8L,UAAUjmL,GAChC,GAAIwyD,EAAU,CACV,GAAI9yD,IAAgB8yD,EAAS9yD,YAAa,CACtC8yD,EAAS9yD,YAAcA,EACvBjW,KAAKk8L,WAAWh7K,WAAW3K,GAAIyiF,oBAA/B,UAAwD/iF,EAAxD,cAAyEM,EAAzE,KACA,IAAMmmL,EAAY18L,KAAKs8L,oBAAL,KAA8B17L,QAAQ2V,IACrC,IAAfmmL,IACA18L,KAAKs8L,oBAAoBj7K,iBAAiBq7K,GAAazmL,GAE3DjW,KAAK8tC,aAAa74B,OAEtB,OAAO8zD,EAEX,IAAI4zH,EAAmB,CAAEpmL,KAAIN,cAAasL,WAAUE,sBACpDzhB,KAAKw8L,UAAUjmL,GAAMomL,EACrB,IAAIh7K,EAAiB,CAAEi7K,KAAM,uBAW7B,OAVIn7K,IACAE,EAAeF,mBAAqBA,GAEpCxL,IACA0L,EAAeq3E,oBAAf,UAAwC/iF,EAAxC,eAA0DM,EAA1D,MAEJvW,KAAKk8L,WAAWh7K,WAAW3K,GAAMoL,EACjC3hB,KAAKs8L,oBAAL,KAA8B/4L,KAAKgT,GACnCvW,KAAKs8L,oBAAoBj7K,iBAAiB9d,KAAK0S,GAAe,IAC9DjW,KAAK8tC,aAAa74B,OACX,CAAEsB,Q,sBAEb,WAAW,WACP,OAAOnY,OAAOsY,KAAK1W,KAAKw8L,WAAWp6K,KAAI,SAAA7L,GAAE,OAAI,EAAKimL,UAAUjmL,Q,qBAEhE,SAAQA,GACJ,OAAOvW,KAAKw8L,UAAUjmL,K,2BAE1B,WACI,OAAOvW,KAAKk8L,a,yBAEhB,SAAY3lL,GACR,OAAOvW,KAAKy8L,cAAclmL,K,sBAE9B,WAAW,WACDsmL,EAAS,SAACC,EAAIjoC,GAChB,OAAOioC,EAAGvmL,GAAG4L,cAAc0yI,EAAGt+I,KAE5B+4B,EAAa,SAACxxC,GAChB,KAAOs+D,IAAUQ,YAAY9+D,EAAEyjB,WAC3BzjB,EAAI,EAAK0+L,UAAU1+L,EAAEyjB,SAAShL,IAElC,gCAA0BzY,EAAIA,EAAEyY,GAAK,KAErC8e,EAAY,GAChBA,EAAU9xB,KAAV,uGACA8xB,EAAU9xB,KAAV,+HACA,IAbO,EAaDw5L,EAAgB3+L,OAAOsY,KAAK1W,KAAKw8L,WAAWp6K,KAAI,SAAA9jB,GAAG,OAAI,EAAKk+L,UAAUl+L,MAbrE,cAcSy+L,EAAc/tK,QAAO,SAAAlxB,GAAC,QAAMA,EAAEmY,eAAanN,KAAK+zL,IAdzD,IAcP,2BAAyE,KAA9D/+L,EAA8D,QACrEu3B,EAAU9xB,KAAV,qBAA6B+rC,EAAWxxC,GAAxC,kBAAoDA,EAAEyY,GAAtD,YAA4D6lD,IAAUQ,YAAY9+D,EAAEyjB,UAAYzjB,EAAEyjB,SAAShL,GAAKzY,EAAEyY,GAAlH,YAAwHzY,EAAEmY,aAAe,GAAzI,OAfG,8BAiBPof,EAAU9xB,KAAV,sDACA8xB,EAAU9xB,KAAV,uDAlBO,oBAmBSw5L,EAAc/tK,QAAO,SAAAlxB,GAAC,OAAKs+D,IAAUQ,YAAY9+D,EAAEyjB,aAAWzY,KAAK+zL,IAnB5E,IAmBP,2BAA4F,KAAjF/+L,EAAiF,QACxFu3B,EAAU9xB,KAAV,qBAA6B+rC,EAAWxxC,GAAxC,kBAAoDA,EAAEyY,GAAtD,OApBG,8BAsBP,OAAO8e,EAAU1Y,KAAK,U,MAKvB,SAASqgL,EAAazmL,EAAIgL,EAAUtL,EAAawL,GACpD,OAAO0tB,EAAa6tJ,aAAazmL,EAAIgL,EAAUtL,EAAawL,GAEzD,SAASw7K,IACZ,OAAO9tJ,EALX5oC,IAAkBiT,IA5FI,2BA4F6B21B,GAOnD,WAAsB,oBACCotJ,IAAsB1wJ,KADvB,IAClB,2BAA8C,KAAnC3Z,EAAmC,QAC1Cid,EAAa6tJ,aAAa9qK,EAAK3b,GAAI2b,EAAKo3C,WAAYp3C,EAAKjc,cAF3C,8BAIlBsmL,IAAsBW,eAAc,SAAAhrK,GAAI,OAAIid,EAAa6tJ,aAAa9qK,EAAK3b,GAAI2b,EAAKo3C,WAAYp3C,EAAKjc,gBAEzGknL,GACO,IAAMC,EAAgB,yBACzBlvK,EAAiB3nB,IAAkB4nB,GAAGC,IAAeC,kBACzDH,EAAeI,eAAe8uK,EAAejuJ,EAAakuJ,iBAC1D,IAAM7uK,EAAU,IAAIC,KAAiB,kBAAMP,EAAeQ,oBAAoB0uK,KAAgB,KAC9FjuJ,EAAapB,aAAY,WAChBvf,EAAQG,eACTH,EAAQI,cAKT,IAAM0uK,EAAcN,EAAa,eAAgBT,IAAiBtvH,MAAO/tE,YAAS,cAAe,2C,8BCnIxG,kCAMO,IAAMq+L,EAAW,CACtBC,UAAW,EACXC,IAAK,EACLC,MAAO,GACP30L,MAAO,GACP40L,KAAM,GACN5wG,IAAK,GACL6wG,WAAY,GACZC,SAAU,GACVl+J,OAAQ,GACR65J,MAAO,GACPsE,OAAQ,GACRC,SAAU,GACV19K,IAAK,GACLu3D,KAAM,GACN3rE,KAAM,GACNgqL,GAAI,GACJlqJ,MAAO,GACPgqJ,KAAM,GACNv0E,OAAQ,GACRw8E,IAAK,GACLC,KAAM,GACNt4H,IAAK,GACLu4H,IAAK,GACLC,MAAO,GACPC,KAAM,GACNC,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,MAAO,GACPC,KAAM,GACN,MAAO,GACP,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,WAAY,GACZ,YAAa,GACb,OAAQ,GAER,YAAa,GACb,WAAY,GACZ,WAAY,GACZ,aAAc,GACd,YAAa,IACb,YAAa,IACb,WAAY,IACZ,aAAc,IACd,aAAc,IACd,YAAa,IAEb,SAAU,IACV,IAAK,IACL,SAAU,IACV,aAAc,IACd,OAAQ,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,QAAS,IACT,WAAY,IACZ,UAAW,IACX,UAAW,IACX,MAAO,IACP,KAAM,IACN,OAAQ,IACR,aAAc,IACd,YAAa,IACb,YAAa,IACb,UAAW,IACX,aAAc,IACd,YAAa,M,+HCnGFC,EAAb,6JACI,SAAQ9xL,EAAS4qB,GACbx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAcz7J,OAAO,SAACtQ,GAAD,OAAO62B,EAAS,IAAIzxB,IAAmBpF,UAFtH,yBAII,SAAYiM,EAAS4qB,GACjBx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAc9lK,YAAY,SAACjG,GAAD,OAAO62B,EAAS,IAAIzxB,IAAmBpF,UAL3H,yBAOI,SAAYiM,EAAS4qB,GACjBx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAct7J,YAAY,SAACzQ,GAAD,OAAO62B,EAAS,IAAIzxB,IAAmBpF,UAR3H,mCAUI,SAAsBiM,EAAS4qB,GAC3Bx3B,KAAK0J,UAAUgjK,2CAA6C9/J,GAAS,SAACjM,GAAD,OAAO62B,EAAS,IAAIzxB,IAAmBpF,UAXpH,uBAaI,SAAUiM,EAAS4qB,GACfx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAc76J,UAAU,SAAClR,GAAD,OAAO62B,EAAS,IAAIrxB,IAAsBxF,UAd5H,qBAgBI,SAAQiM,EAAS4qB,GACbx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAc36J,QAAQ,SAACpR,GAAD,OAAO62B,EAAS,IAAIrxB,IAAsBxF,UAjB1H,qBAmBI,SAAQiM,EAAS4qB,GACbx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAcz5J,MAAOukB,MApB/E,oBAsBI,SAAO5qB,EAAS4qB,GACZx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAc15J,KAAMwkB,MAvB9E,qBAyBI,SAAQ5qB,EAAS4qB,GACbx3B,KAAK0J,UAAUgjK,wBAA0B9/J,EAAS8/J,YAAc75J,MAAO2kB,MA1B/E,2BA4BI,SAAc5qB,GACVyuJ,IAAQsjC,aAAa/xL,OA7B7B,G,MAA4B5C,I,wWCDfk3H,EACT,aAAc,oBACVlhI,KAAK4+L,WAAa,GAOb12D,EAAb,WACI,WAAYn8B,EAASxsF,EAAYC,EAAQna,EAAS8sB,GAAO,oBACrDnyB,KAAK+rG,QAAUA,EACf/rG,KAAKuf,WAAaA,EAClBvf,KAAKwf,OAASA,EACdxf,KAAKqF,QAAUA,EACfrF,KAAKmyB,MAAQA,EANrB,0DAQI,SAAyBi7G,EAAUvE,GAC/B,IAAKA,GAA0C,IAAzBA,EAAc9qI,OAChC,OAAOqvI,EAEX,IAJ8C,EAI1ChrI,EAAS,GACTy8L,EAAqB,EALqB,cAMnBh2D,GANmB,IAM9C,2BAA0C,KAA/Bm8B,EAA+B,QACtC5iK,GAAUgrI,EAAS/sG,UAAUw+J,EAAoB75B,EAAaxlJ,OAAS,GACvEq/K,EAAqB75B,EAAaxlJ,OAAS,EAC3Cpd,GAAU4iK,EAAa3/J,QAAQ65C,SATW,8BAY9C,OADA98C,GAAUgrI,EAAS/sG,UAAUw+J,KAnBrC,6BAsBI,SAAuB/zD,GACnB,IADgC,EAC1B1oI,EAAS,GADiB,cAEP0oI,GAFO,IAEhC,2BAAsC,KAA3Bg0D,EAA2B,QAC9BA,EAAWz5L,QAAQsiE,QAAUm3H,EAAWz5L,QAAQsiE,OAAOzoB,QAAQnhD,OAAS,GACxEqE,EAAOmB,KAAK,IAAI2kI,EAAiB42D,EAAW/yF,QAAS+yF,EAAWjgL,MAAMP,gBAAiBwgL,EAAWjgL,MAAMN,YAAaugL,EAAWz5L,QAAQsiE,OAAQ,IAEhJm3H,EAAWz5L,QAAQuiE,OAASk3H,EAAWz5L,QAAQuiE,MAAM1oB,QAAQnhD,OAAS,GACtEqE,EAAOmB,KAAK,IAAI2kI,EAAiB42D,EAAW/yF,QAAS+yF,EAAWjgL,MAAML,cAAesgL,EAAWjgL,MAAMJ,UAAWqgL,EAAWz5L,QAAQuiE,MAAO,KAPnH,8BAmBhC,OATAxlE,EAAO0G,MAAK,SAAC5E,EAAG5E,GACZ,OAAI4E,EAAEqb,aAAejgB,EAAEigB,WACfrb,EAAEsb,SAAWlgB,EAAEkgB,OACRtb,EAAEiuB,MAAQ7yB,EAAE6yB,MAEhBjuB,EAAEsb,OAASlgB,EAAEkgB,OAEjBtb,EAAEqb,WAAajgB,EAAEigB,cAErBnd,MAzCf,KAgDaqmI,EACT,WAAYlpH,EAAYouK,EAAQ3oB,GAAc,oBAC1ChlK,KAAK4+L,WAAa,EAClB5+L,KAAKuf,WAAaA,EAClBvf,KAAK2tL,OAASA,EACd3tL,KAAKglK,aAAeA,GAOfr8B,EACT,WAAYjrB,EAAgBC,GAAc,oBACtC39G,KAAK4+L,WAAa,EAClB5+L,KAAK09G,eAAiBA,EACtB19G,KAAK29G,aAAeA,GAOfqrB,EACT,WAAYtrB,EAAgBC,EAAcgwE,EAAQ9kD,GAAe,oBAC7D7oI,KAAK4+L,WAAa,EAClB5+L,KAAK6oI,cAAgBA,EACrB7oI,KAAK09G,eAAiBA,EACtB19G,KAAK29G,aAAeA,EACpB39G,KAAK2tL,OAASA,GAOTrsD,EACT,aAAc,oBACVthI,KAAK4+L,WAAa,GAOb39D,EAAb,WACI,WAAYhb,EAAS9Z,EAAWo0B,EAAWC,GAAW,oBAClDxgI,KAAKimH,QAAUA,EACfjmH,KAAKmsG,UAAYA,EACjBnsG,KAAKugI,UAAYA,EACjBvgI,KAAKwgI,UAAYA,EACjBxgI,KAAK4mI,mBAAqB,KANlC,iDAQI,SAAczhI,GACV,IAAK,IAAIrH,EAAI,EAAG+jC,EAAM7hC,KAAKimH,QAAQloH,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAErD,GADekC,KAAKimH,QAAQnoH,GACjB8gM,aAAez5L,EACtB,OAAO,EAGf,OAAO,KAff,oBAiBI,SAAajB,EAAG5E,GAKZ,OAAO,IAAI2hI,EAJK,GAAGn9H,OAAOI,EAAE+hH,SAASniH,OAAOxE,EAAE2mH,SAC5B3mH,EAAE6sG,UACDjoG,EAAEq8H,WAAajhI,EAAEihI,UACjBr8H,EAAEs8H,WAAalhI,EAAEkhI,eArB5C,KA6Ba6I,EACT,WAAYpjB,GAAS,oBACjBjmH,KAAKimH,QAAUA,GAMVma,EAAb,WACI,WAAY7C,EAAwBuC,GAAqB,oBACrD9/H,KAAKu9H,uBAAyBA,EAC9Bv9H,KAAK8/H,oBAAsBA,EAHnC,yCAKI,SAAM5gH,GACF,IAAMq+G,EAAyB0D,EAA4BnpG,MAAM93B,KAAKu9H,uBAAwBr+G,EAAMq+G,wBAC9FuC,EAAsBM,EAAgC2+D,mBAAmB/+L,KAAK8/H,oBAAqB5gH,EAAM4gH,qBAC/G,OAAO,IAAIM,EAAgC7C,EAAwBuC,MAR3E,iCAUI,SAA0B57H,EAAG5E,GAOzB,MAAO,CACH2mH,QAPY,GAAGniH,OAAOI,EAAE+hH,SAASniH,OAAOxE,EAAE2mH,SAQ1CzS,IAPQl0G,EAAEk0G,IAQVrH,UAPc7sG,EAAE6sG,UAQhBo0B,UAPer8H,EAAEq8H,WAAajhI,EAAEihI,UAQhCC,UAPet8H,EAAEs8H,WAAalhI,EAAEkhI,UAQhCxa,QAPa9hH,EAAE8hH,SAAW1mH,EAAE0mH,aAhBxC,M,6BCnJA,sLAKO,SAASg5E,EAAcl9K,EAAOm9K,GACjC,IAAMhlJ,EAAS77C,OAAO8B,OAAO,MAC7B,IAAK,IAAI5B,KAAO2gM,EAAU,CACtB,IAAMj9L,EAAQi9L,EAAS3gM,GACnB0D,IACAi4C,EAAO37C,GAAO0jB,aAAkBhgB,EAAO8f,IAG/C,OAAOm4B,EAEJ,SAASilJ,EAAa/gI,EAAc8gI,EAAUE,GACjD,SAASC,IACL,IAAMnlJ,EAAS+kJ,EAAc7gI,EAAaC,gBAAiB6gI,GAC3B,oBAArBE,EACPA,EAAiBllJ,GAGjBklJ,EAAiBzyL,MAAMutC,GAI/B,OADAmlJ,IACOjhI,EAAaE,sBAAsB+gI,GAEvC,SAASC,EAAkBriB,EAAQ7+G,EAAczxD,GACpD,OAAOwyL,EAAa/gI,EAAc,CAC9Bj5C,iBAA4B,OAAVxY,QAA4B,IAAVA,OAAmB,EAASA,EAAMwY,kBAAoBA,IAC1FC,iBAA4B,OAAVzY,QAA4B,IAAVA,OAAmB,EAASA,EAAMyY,kBAAoBA,IAC1Fm6K,YAAap8K,KACd85J,GAEA,SAASuiB,EAAiBviB,EAAQ7+G,EAAcgrF,GACnD,OAAO+1C,EAAa/gI,EAAc//D,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIo/L,GAAqBr2C,GAAa,IAAM6zB,GAEvG,IAAMwiB,EAAoB,CAC7B/1K,yBACAC,yBACAC,sBACAC,mCACAC,mCACAC,uCACA21K,gCAAiC71K,KACjC81K,gCAAiC71K,KACjCE,qCACAE,yCACAD,qCACAE,iCACAC,8BACAC,yBACAC,yBACAC,wBACAq1K,qBAAsBx8K,IACtBy8K,iBAAkBz8K,IAClBwH,gCACAC,6BACAC,sCACAg1K,kBAAmBp8K,KACnBqH,4BACAC,yBAES+0K,EAAoB,CAC7BC,YAAat8K,KACbg7B,YAAapzB,KACb20K,gBAAiB10K,KACjBqC,gBAAiBpC,KACjB00K,yBAA0Bz0K,KAC1B00K,yBAA0Bz0K,KAC1B00K,qBAAsBz0K,KACtB00K,eAAgBz0K,MAEb,SAAS00K,EAAiBrjB,EAAQ7+G,EAAczxD,GACnD,OAAOwyL,EAAa/gI,EAAc//D,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAI0/L,GAAoBpzL,GAAQswK,K,6PCvE9Fz7K,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAYzDo+L,EAAb,WACI,WAAYC,EAAiBjrL,EAAQy5C,EAAMyxI,GAAgB,oBACvDxgM,KAAKugM,gBAAkBA,EACvBvgM,KAAKsV,OAASA,EACdtV,KAAK+uD,KAAOA,EACZ/uD,KAAKwgM,eAAiBA,EACtBxgM,KAAKuW,GAAKkqL,IAAiB5nB,SANnC,qCAQI,WACI,OAAO74K,KAAK+uD,KAAKz2C,MATzB,iBAWI,WACI,IAAItT,EAAIgL,EACR,OAAqG,QAA7FA,EAA4B,QAAtBhL,EAAKhF,KAAKgkI,cAA2B,IAAPh/H,EAAgBA,EAAKhF,KAAK+uD,KAAKnf,4BAAyC,IAAP5/B,EAAgBA,EAAKhQ,KAAK+uD,KAAKlwC,OAbpJ,IAeI,SAAU7c,GACNhC,KAAKgkI,OAAShiI,EACdhC,KAAKwgM,eAAexgM,QAjB5B,uBAmBI,WACI,IAAIgF,EACEk1E,EAAkD,QAAvCl1E,EAAKhF,KAAKsV,OAAOorL,WAAW1gM,aAA0B,IAAPgF,OAAgB,EAASA,EAAGk1E,QAAQl6E,KAAK6e,OACzG,OAAKq7D,EAIMh7E,YAAS,CAAEZ,IAAK,4BAA6B44B,QAAS,CAAC,sGAAwG,+CAAgD8iI,YAASh6J,KAAKsY,KAAMtY,KAAK6e,MAAMP,gBAAiBte,KAAK6e,MAAMN,YAAa27D,EAAQl4E,OAH/R9C,YAAS,oBAAqB,0CAA2C86J,YAASh6J,KAAKsY,KAAMtY,KAAK6e,MAAMP,gBAAiBte,KAAK6e,MAAMN,iBAvBvJ,KA8BaoiL,EAAb,WACI,WAAYC,GAAiB,oBACzB5gM,KAAK4gM,gBAAkBA,EAF/B,2CAII,WACI5gM,KAAK4gM,gBAAgBxoL,YAL7B,qBAOI,SAAQyG,GAAc,IAAPte,EAAO,uDAAH,EACTu0B,EAAQ90B,KAAK4gM,gBAAgBxiL,OAAOkX,gBAC1C,GAAKR,EAAL,CAGA,IAAQxW,EAA2DO,EAA3DP,gBAAiBC,EAA0CM,EAA1CN,YAAaC,EAA6BK,EAA7BL,cAAeC,EAAcI,EAAdJ,UAC/C8vH,EAAOz5G,EAAM+rK,qBAAqB,CAAEthL,WAAYjB,EAAiBkB,OAAQjB,EAAche,IACvFugM,EAAc,IAAIziL,IAAMC,EAAiBiwH,EAAKhwH,YAAaD,EAAiBC,GAC5EwiL,EAAa,IAAI1iL,IAAMG,EAAeC,EAAWD,EAAe,YAChEmpD,EAAS7yC,EAAM2oF,gBAAgBqjF,GAAahiM,QAAQ,OAAQ,IAC5DkiM,EAASlsK,EAAM2oF,gBAAgB5+F,GAC/B+oD,EAAQ9yC,EAAM2oF,gBAAgBsjF,GAAYjiM,QAAQ,OAAQ,IAChE,MAAO,CACHkD,MAAO2lE,EAASq5H,EAASp5H,EACzBq5H,UAAW,CAAE7gL,MAAOunD,EAAO5pE,OAAQsiB,IAAKsnD,EAAO5pE,OAASijM,EAAOjjM,cArB3E,KAyBamjM,EAAb,WACI,WAAY5rL,EAAQgD,GAAK,oBACrBtY,KAAKsV,OAASA,EACdtV,KAAKsY,IAAMA,EACXtY,KAAKuV,SAAW,GAChBvV,KAAKmhM,UAAY,IAAInyB,IAL7B,2CAOI,WACI52J,YAAQpY,KAAKmhM,UAAU3jL,UACvBxd,KAAKmhM,UAAU5jL,UATvB,wBAWI,SAAW9H,GACP,OAAOzV,KAAKmhM,UAAU1uK,IAAIhd,EAAM6C,OAZxC,uBAcI,WACI,IAAMupB,EAAM7hC,KAAKuV,SAASxX,OAC1B,OAAY,IAAR8jC,EACO3iC,YAAS,wBAAyB,iCAAkC86J,YAASh6J,KAAKsY,KAAMtY,KAAKsY,IAAI8tF,QAGjGlnG,YAAS,wBAAyB,oCAAqC2iC,EAAKm4H,YAASh6J,KAAKsY,KAAMtY,KAAKsY,IAAI8tF,UApB5H,qBAuBI,SAAQg7F,GACJ,OAAO7/L,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,6FACP,IAAxBA,KAAKmhM,UAAU10L,KADgB,yCAExBzM,MAFwB,qBAIjBA,KAAKuV,UAJY,4DAI1BE,EAJ0B,SAK3BzV,KAAKmhM,UAAU7+I,IAAI7sC,EAAM6C,KALE,sDASf,OATe,mBAST8oL,EAAyBhsK,qBAAqB3f,EAAM6C,KAT3C,QASrBirI,EATqB,OAU3BvjJ,KAAKmhM,UAAU35J,IAAI/xB,EAAM6C,IAAK,IAAIqoL,EAAYp9C,IAVnB,kDAa3B/6I,YAAkB,EAAD,IAbU,sHAAA/F,IAAA,8CAgB5BzC,MAhB4B,2EAxB/C,KA4CaqhM,EAAb,WACI,WAAY9/F,EAAOtvE,GAAO,+BACtBjyB,KAAKqtF,OAAS,GACdrtF,KAAKy6E,WAAa,GAClBz6E,KAAKshM,2BAA6B,IAAI7sL,IACtCzU,KAAKuhM,0BAA4BvhM,KAAKshM,2BAA2B3sL,MACjE3U,KAAKwhM,OAASjgG,EACdvhG,KAAKyhM,OAASxvK,EAEd,IAEIwmI,EAFGipC,EAAP,YAAyBngG,EAAzB,MACAA,EAAMz4F,KAAKu4L,EAAgBM,oBATL,oBAWLpgG,GAXK,IAWtB,2BAAwB,KAAfxyC,EAAe,QAOpB,GANK0pG,GAAY4B,IAAOj9F,QAAQq7F,EAAQngJ,IAAKy2C,EAAKz2C,KAAK,KAEnDmgJ,EAAU,IAAIyoC,EAAelhM,KAAM+uD,EAAKz2C,KACxCtY,KAAKqtF,OAAO9pF,KAAKk1J,IAGW,IAA5BA,EAAQljJ,SAASxX,QAA4G,IAA5FsjM,EAAgBM,mBAAmB5yI,EAAM0pG,EAAQljJ,SAASkjJ,EAAQljJ,SAASxX,OAAS,IAAW,CAChI,IAAM6jM,EAAS,IAAItB,EAAaoB,IAAmB3yI,EAAM0pG,EAAS1pG,GAAM,SAAAw0F,GAAG,OAAI,EAAK+9C,2BAA2BrsL,KAAKsuI,MACpHvjJ,KAAKy6E,WAAWl3E,KAAKq+L,GACrBnpC,EAAQljJ,SAAShS,KAAKq+L,KArBR,+BAD9B,2CA0BI,WACIxpL,YAAQpY,KAAKqtF,QACbrtF,KAAKshM,2BAA2BlpL,UAChCpY,KAAKqtF,OAAOtvF,OAAS,IA7B7B,mBA+BI,WACI,OAAO,IAAIsjM,EAAgBrhM,KAAKwhM,OAAQxhM,KAAKyhM,UAhCrD,iBAkCI,WACI,OAAOzhM,KAAKyhM,SAnCpB,mBAqCI,WACI,OAA8B,IAAvBzhM,KAAKqtF,OAAOtvF,SAtC3B,uBAwCI,WACI,OAAIiC,KAAK0e,QACExf,YAAS,gBAAiB,oBAED,IAA3Bc,KAAKy6E,WAAW18E,OACdmB,YAAS,gBAAiB,wBAAyBc,KAAKy6E,WAAW,GAAGniE,IAAI8tF,QAErD,IAAvBpmG,KAAKqtF,OAAOtvF,OACVmB,YAAS,iBAAkB,2BAA4Bc,KAAKy6E,WAAW18E,OAAQiC,KAAKqtF,OAAO,GAAG/0E,IAAI8tF,QAGlGlnG,YAAS,iBAAkB,iCAAkCc,KAAKy6E,WAAW18E,OAAQiC,KAAKqtF,OAAOtvF,UAnDpH,qCAsDI,SAAwBs3B,EAAWnzB,GAC/B,IAAMoT,EAAW+f,EAAX/f,OACFkqB,EAAMlqB,EAAOC,SAAS3U,QAAQy0B,GAC9Bk4F,EAAaj4G,EAAOC,SAASxX,OAC7B8jM,EAAavsL,EAAOA,OAAO+3E,OAAOtvF,OACtC,OAAmB,IAAf8jM,GAAoB3/L,GAAQs9B,EAAM,EAAI+tF,IAAerrH,GAAQs9B,EAAM,GAG/DA,EADAt9B,GACOs9B,EAAM,GAAK+tF,GAGX/tF,EAAM+tF,EAAa,GAAKA,EAE5Bj4G,EAAOC,SAASiqB,KAE3BA,EAAMlqB,EAAOA,OAAO+3E,OAAOzsF,QAAQ0U,GAC/BpT,GACAs9B,GAAOA,EAAM,GAAKqiK,EACXvsL,EAAOA,OAAO+3E,OAAO7tD,GAAKjqB,SAAS,KAG1CiqB,GAAOA,EAAMqiK,EAAa,GAAKA,EACxBvsL,EAAOA,OAAO+3E,OAAO7tD,GAAKjqB,SAASD,EAAOA,OAAO+3E,OAAO7tD,GAAKjqB,SAASxX,OAAS,OA5ElG,8BA+EI,SAAiB02B,EAAU9V,GACvB,IAAMmjL,EAAU9hM,KAAKy6E,WAAWr4D,KAAI,SAACmhI,EAAK/jH,GACtC,MAAO,CACHA,MACAuiK,UAAWtoG,IAA2B8pD,EAAIjrI,IAAIG,WAAYgc,EAAShc,YACnEupL,WAAwE,IAA5DtqL,KAAKmgD,IAAI0rF,EAAI1kI,MAAMP,gBAAkBK,EAASY,YAAoB7H,KAAKmgD,IAAI0rF,EAAI1kI,MAAMN,YAAcI,EAASa,YAE7H1W,MAAK,SAAC5E,EAAG5E,GACR,OAAI4E,EAAE69L,UAAYziM,EAAEyiM,WACR,EAEH79L,EAAE69L,UAAYziM,EAAEyiM,UACd,EAEF79L,EAAE89L,WAAa1iM,EAAE0iM,YACd,EAEH99L,EAAE89L,WAAa1iM,EAAE0iM,WACf,EAGA,KAEZ,GACH,GAAIF,EACA,OAAO9hM,KAAKy6E,WAAWqnH,EAAQtiK,OAxG3C,yBA4GI,SAAY/K,EAAU9V,GAAU,oBACV3e,KAAKy6E,YADK,IAC5B,2BAAmC,KAAxB8oE,EAAwB,QAC/B,GAAIA,EAAIjrI,IAAIG,aAAegc,EAAShc,YAC5B4F,IAAMO,iBAAiB2kI,EAAI1kI,MAAOF,GAClC,OAAO4kI,GAJS,iCA5GpC,4BAsHI,WAAiB,oBACKvjJ,KAAKy6E,YADV,IACb,2BAAmC,KAAxB8oE,EAAwB,QAC/B,GAAIA,EAAIg9C,gBACJ,OAAOh9C,GAHF,8BAMb,OAAOvjJ,KAAKy6E,WAAW,MA5H/B,iCA8HI,SAA0Bv2E,EAAG5E,GACzB,OAAO+6J,IAAOl4H,QAAQj+B,EAAEoU,IAAKhZ,EAAEgZ,MAAQ+F,IAAM4jL,yBAAyB/9L,EAAE2a,MAAOvf,EAAEuf,WA/HzF,M,8GCtHa,EAA0B,8BCC1B,GDCkC,EAAwB,SCDlC,6BAAmB,I,OCAlD,SAAU,IACZ,IAAI,EAAM,qBAAW,GAErB,IAAG,EACC,MAAE,IAAI,MACR,sEAIF,IAAG,EAAI,WACP,MAAM,IAAI,MAAM,6DAGV,MAA4B,EAAlB,WAClB,MAAO,CACL,YAFkC,EAAL,YAG7B,SAAU,K,2HCnBDqjL,EAAb,WACI,WAAYz6L,GAAU,oBAClBzH,KAAKyH,SAAWA,EAFxB,0CAII,SAAOwB,GACHjJ,KAAKie,OAAShV,EACdjJ,KAAKyH,SAASzH,KAAKie,YAN3B,KASAikL,EAASpkL,KAAO1f,OAAO2f,OAAO,CAAEo9D,OAAF,eACvB,IAAMgnH,EAAyBz1J,YAAgB,0B,8SCAhD01J,EAA4B11J,YAAgB,wBAC5C21J,EAA0B,IAAIvlK,IAAc,wBAAwB,EAAO59B,YAAS,uBAAwB,iFAClH8vJ,YAAkBozC,EAAD,WACb,aAAc,oBACVpiM,KAAKq/H,QAAU,IAAI59E,QAFV,uCAIb,SAAIxuB,EAAQqvK,GACR,IASIp6F,EATA/oG,EAAOa,KAAKq/H,QAAQ5sG,IAAIQ,GAY5B,OAXK9zB,IACDA,EAAO8zB,EAAOG,qBAAoB,SAAA1B,GAG9B,MAAO,CAAEpzB,IAFG+jM,EAAwB/kB,OAAO5rJ,EAASe,IAAIa,MAE1C8zF,OADC,IAAI7rF,QAGvBv7B,KAAKq/H,QAAQ73F,IAAIvU,EAAQ9zB,IAG7BA,EAAKb,IAAIkpC,KAAI,GACb0gE,EAAW/oG,EAAKioH,OAAO7jH,KAAK++L,GACrB,WAECp6F,IACAA,IACA/oG,EAAKb,IAAIkpC,KAAKroC,EAAKioH,OAAO1oG,WAC1BwpF,OAAWruF,MAtBV,oBA0Bb,SAAOoZ,GACH,IAAM9zB,EAAOa,KAAKq/H,QAAQ5sG,IAAIQ,GAC9B,GAAK9zB,EAAL,CAIA,IAAMmjM,EAAMnjM,EAAKioH,OAAO9jH,MACpBg/L,IACAA,EAAIx4L,SACJ3K,EAAKb,IAAIkpC,KAAKroC,EAAKioH,OAAO1oG,iBAnCrB,MAsCd,GACI,IAAM6jL,EAAb,kDACI,WAAYtvK,EAAQ3d,GAAQ,kCACxB,cAAMA,IACD2d,OAASA,EACd,EAAKuvK,YAAcvvK,EAAOG,qBAAoB,SAAA1B,GAAQ,OAAIA,EAASe,IAAI2vK,GAA2B5oL,IAAIyZ,EAA5C,mBAHlC,EADhC,2CAMI,WACIjzB,KAAKwiM,cACL,oEARR,GAA6DhjI,KAW7DhqC,YAAsB,sDAClB,aAAc,uCACJ,CACFjf,GAAI,yBACJ8Z,OAAQ,CACJU,OAAQ,IACRE,QAAS,GAEbd,aAAckyK,IARJ,oDAWlB,SAAiB3wK,EAAUuB,GACvBvB,EAASe,IAAI2vK,GAA2Bt4L,OAAOmpB,OAZjC,EAAI,CAAcH,OCtDjC,IAAM2vK,EAAb,WACI,WAAYxvK,EAAQyvK,GAEhB,GAFuB,oBACvB1iM,KAAK0iM,MAAQA,EACwB,KAAnB,EAAb1iM,KAAK0iM,OAA8B,CACpC,IAAM5tK,EAAQ7B,EAAO+B,WACrBh1B,KAAK2iM,eAAiB7tK,EAAQ2kE,IAAe,UAAW3kE,EAAMxc,IAAIG,WAAYqc,EAAM2rG,gBAAkB,UAGtGzgI,KAAK2iM,eAAiB,KAEc,KAAtB,EAAb3iM,KAAK0iM,OACN1iM,KAAK2e,SAAWsU,EAAO2vK,cAGvB5iM,KAAK2e,SAAW,KAEqB,KAAvB,EAAb3e,KAAK0iM,OACN1iM,KAAKm/E,UAAYlsD,EAAO4vK,eAGxB7iM,KAAKm/E,UAAY,KAEiB,KAApB,EAAbn/E,KAAK0iM,QACN1iM,KAAKsM,WAAa2mB,EAAO6vK,gBACzB9iM,KAAKmM,UAAY8mB,EAAO8vK,iBAGxB/iM,KAAKsM,YAAc,EACnBtM,KAAKmM,WAAa,GA5B9B,2CA+BI,SAAQ+S,GACJ,KAAMA,aAAiBujL,GACnB,OAAO,EAEX,IAAMnuL,EAAQ4K,EACd,OAAIlf,KAAK2iM,iBAAmBruL,EAAMquL,iBAG9B3iM,KAAKsM,aAAegI,EAAMhI,YAActM,KAAKmM,YAAcmI,EAAMnI,eAGhEnM,KAAK2e,UAAYrK,EAAMqK,UAAY3e,KAAK2e,WAAarK,EAAMqK,UAAY3e,KAAK2e,UAAYrK,EAAMqK,WAAa3e,KAAK2e,SAASqa,OAAO1kB,EAAMqK,eAGtI3e,KAAKm/E,WAAa7qE,EAAM6qE,WAAan/E,KAAKm/E,YAAc7qE,EAAM6qE,WAAan/E,KAAKm/E,WAAa7qE,EAAM6qE,YAAcn/E,KAAKm/E,UAAUhgE,YAAY7K,EAAM6qE,gBA7C/J,sBAkDI,SAASlsD,GACL,OAAOjzB,KAAKgjM,QAAQ,IAAIP,EAAYxvK,EAAQjzB,KAAK0iM,YAnDzD,KA2DaO,EAAb,kDACI,WAAYhwK,EAAQyvK,EAAO7jL,EAAOvJ,GAAQ,kCACtC,cAAM2d,EAAQ3d,IACT4tL,UAAY,IAAIhqL,IACT,EAARwpL,GACA,EAAKQ,UAAU1pL,IAAIyZ,EAAOkwK,2BAA0B,SAAAxiM,GAC3Cke,GAAUR,IAAMO,iBAAiBC,EAAOle,EAAEge,WAC3C,EAAK7U,aAIL,EAAR44L,GACA,EAAKQ,UAAU1pL,IAAIyZ,EAAOmwK,4BAA2B,SAAAziM,GAC5Cke,GAAUR,IAAMS,cAAcD,EAAOle,EAAEw+E,YACxC,EAAKr1E,aAIL,EAAR44L,GACA,EAAKQ,UAAU1pL,IAAIyZ,EAAOowK,mBAAkB,SAAAzgM,GAAC,OAAI,EAAKkH,aAE9C,EAAR44L,IACA,EAAKQ,UAAU1pL,IAAIyZ,EAAOqwK,kBAAiB,SAAA1gM,GAAC,OAAI,EAAKkH,aACrD,EAAKo5L,UAAU1pL,IAAIyZ,EAAOswK,yBAAwB,SAAA3gM,GAAC,OAAI,EAAKkH,cAtB1B,EAD9C,2CA0BI,WACI9J,KAAKkjM,UAAU9qL,UACf,oEA5BR,GAAwDmqL,GAkC3CiB,EAAb,kDACI,WAAY1uK,EAAOxf,GAAQ,kCACvB,cAAMA,IACD4tL,UAAYpuK,EAAM2uK,oBAAmB,kBAAM,EAAK35L,YAF9B,EAD/B,2CAKI,WACI9J,KAAKkjM,UAAU9qL,UACf,oEAPR,GAAsDonD,KAUzCkkI,EAAb,WACI,WAAYC,EAAkBC,EAA6BC,GAAiB,oBACxE7jM,KAAK2jM,iBAAmBA,EACxB3jM,KAAK4jM,4BAA8BA,EACnC5jM,KAAK6jM,gBAAkBA,EAJ/B,2CAmBI,SAAQ5wK,GACJ,GAAIjzB,KAAK2jM,iBAAkB,CACvB,IAAMG,EAA2B7wK,EAAO8wK,kBAAkB/jM,KAAK2jM,iBAAiBpkL,WAAYvf,KAAK2jM,iBAAiBnkL,QAClHyT,EAAO+wK,aAAaF,EAA2B9jM,KAAK4jM,gCAtBhE,qDAyBI,SAAwC3wK,GACpC,IAAMgxK,EAAwBhxK,EAAO2vK,cACrC,GAAK5iM,KAAK6jM,iBAAoBI,EAA9B,CAGA,IAAM7jK,EAASnN,EAAOixK,oBAAoBD,EAAsB1kL,YAAc0T,EAAOixK,oBAAoBlkM,KAAK6jM,gBAAgBtkL,YAC9H0T,EAAO+wK,aAAa/wK,EAAO8vK,eAAiB3iK,OA/BpD,sBAMI,SAAenN,GACX,IAAIkxK,EAAkB,KAClBC,EAA6B,EACjC,GAA8B,IAA1BnxK,EAAO8vK,eAAsB,CAC7B,IAAMsB,EAAgBpxK,EAAOqxK,mBAC7B,GAAID,EAActmM,OAAS,EAAG,CAC1BomM,EAAkBE,EAAc,GAAGhlL,mBACnC,IAAMykL,EAA2B7wK,EAAO8wK,kBAAkBI,EAAgB5kL,WAAY4kL,EAAgB3kL,QACtG4kL,EAA6BnxK,EAAO8vK,eAAiBe,GAG7D,OAAO,IAAIJ,EAAwBS,EAAiBC,EAA4BnxK,EAAO2vK,mBAjB/F,M,0OC1Ga2B,EAAb,WACI,aAAoD,IAC5Cv/L,EAAIgL,EAAIwd,EADJxrB,EAAwC,uDAAhC,GAAIwiM,EAA4B,wDAGhD,GAHgD,oBAEhDxkM,KAAKgC,MAAQA,EACa,kBAAfhC,KAAKgC,MACZ,MAAMm9D,YAAgB,SAEQ,mBAAvBqlI,GACPxkM,KAAKq4L,UAAYmM,EACjBxkM,KAAKykM,mBAAoB,EACzBzkM,KAAK0kM,aAAc,IAGnB1kM,KAAKq4L,UAAoD,QAAvCrzL,EAAKw/L,EAAmBnM,iBAA8B,IAAPrzL,EAAgBA,OAAK6U,EACtF7Z,KAAKykM,kBAAoE,QAA/Cz0L,EAAKw0L,EAAmBC,yBAAsC,IAAPz0L,GAAgBA,EACjGhQ,KAAK0kM,YAAwD,QAAzCl3K,EAAKg3K,EAAmBE,mBAAgC,IAAPl3K,GAAgBA,GAfjG,8CAkBI,SAAWxrB,GAAyC,IAAlC2iM,EAAkC,uDAAnB,EAK7B,OAJA3kM,KAAKgC,OAAS4iM,EAA2B5kM,KAAKykM,kBAAoBI,YAAY7iM,GAASA,GAClFlD,QAAQ,aAAa,SAACsqE,EAAQ07H,GAAT,MAAgB,SAASnrL,OAAOmrL,EAAG/mM,WACxDe,QAAQ,OAAQ,OAChBA,QAAQ,MAAwB,IAAjB6lM,EAAiC,OAAS,QACvD3kM,OAvBf,4BAyBI,SAAegC,GAEX,OADAhC,KAAKgC,OAASA,EACPhC,OA3Bf,6BA6BI,SAAgB+kM,EAAQ7hK,GAMpB,OALAljC,KAAKgC,OAAS,QACdhC,KAAKgC,OAAS+iM,EACd/kM,KAAKgC,OAAS,KACdhC,KAAKgC,OAASkhC,EACdljC,KAAKgC,OAAS,UACPhC,SAnCf,KAsCO,SAASglM,EAAsBC,GAClC,OAAIC,EAAiBD,IACTA,EAAUjjM,OAEbvC,MAAM+b,QAAQypL,IACZA,EAAU7gE,MAAM4gE,GAMxB,SAASE,EAAiBroL,GAC7B,OAAIA,aAAiB0nL,MAGZ1nL,GAA0B,kBAAVA,KACS,kBAAhBA,EAAM7a,QACe,mBAApB6a,EAAMw7K,gBAA+Cx+K,IAApBgD,EAAMw7K,aACX,mBAA5Bx7K,EAAM4nL,wBAA+D5qL,IAA5BgD,EAAM4nL,oBAI/D,SAASG,EAA2Bz7H,GAEvC,OAAOA,EAAKrqE,QAAQ,uBAAwB,QAEzC,SAASqmM,EAAsBh8H,GAClC,OAAKA,EAGEA,EAAKrqE,QAAQ,4BAA6B,MAFtCqqE,EAIR,SAASi8H,EAAuBrsL,GACnC,IAAMssL,EAAa,GACbC,EAAWvsL,EAAKugB,MAAM,KAAKlX,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmW,UAC5CsC,EAAOusL,EAAS,GAChB,IAAMC,EAAaD,EAAS,GAC5B,GAAIC,EAAY,CACZ,IAAMC,EAAmB,eAAervL,KAAKovL,GACvCE,EAAkB,cAActvL,KAAKovL,GACrCz6L,EAAS06L,EAAmBA,EAAiB,GAAK,GAClD36L,EAAQ46L,EAAkBA,EAAgB,GAAK,GAC/CC,EAAgBC,SAASlmK,SAAS50B,IAClC+6L,EAAiBD,SAASlmK,SAAS30B,IACrC46L,GACAL,EAAW9hM,KAAX,iBAA0BsH,EAA1B,MAEA+6L,GACAP,EAAW9hM,KAAX,kBAA2BuH,EAA3B,MAGR,MAAO,CAAEiO,OAAMssL,gB,6BC/FnB,iFAmBA,aACI,SAAF,EACW,EACA,GADA,mBACA,gBAuBX,OAbO,sBAAP,SAAiB,GACX,OAAG,KAAK,SAAS,UAAU,IASxB,EAAF,cAAP,SAAW,EAAgC,GACrC,KAAC,SAAS,IAAI,EAAU,IAEhC,EA1BA,GAmDA,aACE,WAAoB,kBA0BtB,OAnBS,sBAAP,SAAiB,GACf,QACI,KAAK,SACP,IAAa,IAAqB,KAClC,GAAY,KAAK,QAAQ,iBAUtB,gBAAP,SAAW,EAAgC,GACrC,KAAK,SAAW,KAAK,UAAU,IACjC,KAAK,QAAQ,IAAI,EAAU,IAGjC,EA3BA,I,yKClEWQ,E,oDADEnzK,EAAcozK,YAAuB,eAElD,SAAWD,GACPA,EAASA,EAAQ,MAAY,GAAK,QAClCA,EAASA,EAAQ,MAAY,GAAK,QAClCA,EAASA,EAAQ,KAAW,GAAK,OACjCA,EAASA,EAAQ,QAAc,GAAK,UACpCA,EAASA,EAAQ,MAAY,GAAK,QAClCA,EAASA,EAAQ,SAAe,GAAK,WACrCA,EAASA,EAAQ,IAAU,GAAK,MAPpC,CAQGA,IAAaA,EAAW,KACpB,IAAME,EAAoBF,EAASvwB,KAC7B0wB,EAAb,kDACI,aAAc,kCACV,eAASxlM,YACJg5H,MAAQusE,EACb,EAAKE,qBAAuB,EAAKv8L,UAAU,IAAI+K,KAHrC,EADlB,4CAMI,SAAS+kH,GACDx5H,KAAKw5H,QAAUA,IACfx5H,KAAKw5H,MAAQA,EACbx5H,KAAKimM,qBAAqBhxL,KAAKjV,KAAKw5H,UAThD,sBAYI,WACI,OAAOx5H,KAAKw5H,UAbpB,GAAoCxvH,KAgBvBk8L,EAAb,kDACI,aAA0C,MAA9BC,EAA8B,uDAAnBJ,EAAmB,4BACtC,gBACKK,SAASD,GAFwB,EAD9C,yCAKI,SAAMvnM,GACF,GAAIoB,KAAKqmM,YAAcR,EAASS,MAAO,8BADzBznM,EACyB,iCADzBA,EACyB,mBACnC,EAAA6e,SAAQ6oL,IAAR,SAAY,UAAW,cAAe3nM,GAAtC,OAAkDC,OAP9D,mBAUI,SAAMD,GACF,GAAIoB,KAAKqmM,YAAcR,EAASW,MAAO,8BADzB3nM,EACyB,iCADzBA,EACyB,mBACnC,EAAA6e,SAAQ6oL,IAAR,SAAY,UAAW,gCAAiC3nM,GAAxD,OAAoEC,OAZhF,kBAeI,SAAKD,GACD,GAAIoB,KAAKqmM,YAAcR,EAASvwB,KAAM,8BADzBz2K,EACyB,iCADzBA,EACyB,mBAClC,EAAA6e,SAAQ6oL,IAAR,SAAY,UAAW,cAAe3nM,GAAtC,OAAkDC,OAjB9D,mBAoBI,SAAMD,GACF,GAAIoB,KAAKqmM,YAAcR,EAAS36L,MAAO,8BADzBrM,EACyB,iCADzBA,EACyB,mBACnC,EAAA6e,SAAQ6oL,IAAR,SAAY,UAAW,cAAe3nM,GAAtC,OAAkDC,OAtB9D,qBAyBI,gBAzBJ,GAAmCmnM,GA6BtBS,EAAb,kDACI,WAAYC,GAAQ,kCAChB,gBACKA,OAASA,EACd,EAAKh9L,UAAUg9L,GAHC,EADxB,4CAMI,WACI,OAAO1mM,KAAK0mM,OAAOL,aAP3B,mBASI,SAAMznM,GAAkB,6BAANC,EAAM,iCAANA,EAAM,mBACpB,EAAAmB,KAAK0mM,QAAO/zK,MAAZ,SAAkB/zB,GAAlB,OAA8BC,MAVtC,mBAYI,SAAMD,GAAkB,6BAANC,EAAM,iCAANA,EAAM,mBACpB,EAAAmB,KAAK0mM,QAAOzxH,MAAZ,SAAkBr2E,GAAlB,OAA8BC,MAbtC,kBAeI,SAAKD,GAAkB,6BAANC,EAAM,iCAANA,EAAM,mBACnB,EAAAmB,KAAK0mM,QAAO3rK,KAAZ,SAAiBn8B,GAAjB,OAA6BC,MAhBrC,mBAkBI,SAAMD,GAAkB,6BAANC,EAAM,iCAANA,EAAM,mBACpB,EAAAmB,KAAK0mM,QAAO9iM,MAAZ,SAAkBhF,GAAlB,OAA8BC,QAnBtC,GAAgCmL,M,6BC5DhC,gFAKa28L,EAAsBj6J,YAAgB,sBACtCk6J,EAAsBl6J,YAAgB,uB,4ZCkD7C,SAAUm6J,EAAc/uL,GAC1B,IAAIgvL,EAAY,IAAWpgK,MAAM5uB,GAE/B,EAAO,EAAU,UAMrB,OALEytF,EAAK,GAAQ,IAEb,EAaK,mBAbO,GAcX,QAAQ,OAAQ,KAChB,QAAQ,KAAM,OACd,QAAQ,MAAO,OACf,QAAQ,OAAQ,KAhBnB,EAAU,QAAQ,GAEX,EAAU,WA0Bb,SAAU,EAAgB,EAAa,GAC3C,IAAM,EAAY,IAAW,MAAM,GAE/B,EAAO,EAAU,UAIrB,OAHA,EAAO,EAAQ,EAAK,SAAS,KAAO,GAAG,EAAO,EAAY,EAAI,IAAI,EAAU,EAC5E,EAAU,QAAQ,GAEX,EAAU,WAab,SAAU,EAAgB,EAAa,EAAc,GACzD,IAAM,EAAY,IAAW,MAAM,GAEnC,OADA,EAAU,kBAAkB,EAAM,GAC3B,EAAU,WAWb,SAAU,EAAgB,EAAa,GAE3C,OADkB,IAAW,MAAM,GAClB,uBAAuB,GAWpC,SAAU,EAAW,EAAa,GACtC,IAAM,EAAY,IAAW,MAAM,GAEjC,OADF,EAAU,QAAQ,GACX,EAAU,WAsBb,SAAU,EAAa,GAEzB,OADgB,IAAW,MAAM,GAClB,YAuEb,SAAU,EAAqB,EAAY,sBAE/C,IAAM,EAAa,EAAK,cAEtB,OAAK,EACH,EAAW,UAAU,EAAG,EAAW,OAAS,GAA5C,QACA,EAAW,UAAU,EAAG,EAAW,OAAS,GAAK,IAgCjD,SAAU,EAAgB,EAAuB,GASjD,EAAc,OAFoB,KAGhC,EAAY,EAAc,MAAM,EAHA,KAKpC,IAlCyB,EAkCrB,EACJ,EA+CE,SACJ,EACA,EACA,uBAEA,GAAI,OAAO,UAAU,SACnB,OAAO,EAAc,SAAS,EAAc,GAI9C,OADA,EAAY,GAAa,IACrB,EAAc,OAAS,EAClB,IAEP,GAA8B,EAAc,QACzB,EAAU,SAC3B,GAAa,EAAU,OAAO,EAAe,EAAU,SAElD,EAAU,MAAM,EAAG,GAAgB,GA/D1C,CAAS,EAAW,WAZQ,GAY4B,EAAc,OAAQ,KAC9E,OArCyB,EAqCP,EApCZ,IAAyB,EAAO,KAAK,GAAS,SAAS,UAA9C,KAAK,GA+ClB,SAAgB,EAAM,EAAkB,EAA2B,G,uEACvE,SAAO,IAAI,SAAQ,SAAC,EAAS,GAC3B,IAAI,EAEE,EAAe,gBACH,IAAZ,GACF,aAAa,GAEf,EAAO,IAUT,EAAU,YAPa,gBACL,IAAZ,GACF,EAAQ,oBAAoB,QAAS,GAEvC,MAGmC,QACrB,IAAZ,GACF,EAAQ,iBAAiB,QAAS,aA2ClC,SAAU,EAAO,EAAc,GACnC,OAAO,EAAK,sBAAwB,EAAK,uB,0NC/V9BwhG,EAAa,I,qFAPtB,WACI,OAAO/mM,O,oBAEX,SAAOkf,GACH,OAAQlf,OAASkf,M,MAIZs/G,EAAe,qBACrB,SAASwoE,EAAa9oK,EAAY1E,EAAQllB,EAAOsjG,GACpD,OAAO,IAAIqvF,IAAmB,CAAC,IAAIn3E,IAAMlY,EAAa,GAAI15E,IAAc5pB,GAErE,SAAS+zG,EAAcnqF,EAAY1E,EAAQllB,EAAOsjG,GACrD,IAAIwP,EAAS,IAAI5V,YAAY,GAO7B,OANA4V,EAAO,GAAKxP,EACZwP,EAAO,IACA,MADOlpF,GAAc,EAIrB,GAA6B,MAAiC,EAC9D,IAAIgpK,IAAoB9/E,EAAkB,OAAV9yG,EAAiByyL,EAAazyL,K,qGCub9D6yL,E,gEAvcEC,EAAb,kGACI,SAAqBh+G,EAAWi+G,EAASC,GAErC,IADA,IAAIllM,EAAS,GAAI8qG,EAAY,EACpBpvG,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAO8qG,KAAe,IAAItjB,IAAY4wB,EAAO/wB,WAAY+wB,EAAO9wB,WAE5DtnF,EAAO8qG,KADPo6F,EACsB19G,IAAYO,eAAesqG,IAAe8S,cAAcn+G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,aAGxGG,IAAY49G,cAAc/S,IAAe8S,cAAcn+G,EAAUE,aAAcF,EAAWoxB,EAAO9wB,YAG/H,OAAOtnF,IAbf,yBAeI,SAAmBgnF,EAAWi+G,EAASC,GAEnC,IADA,IAAIllM,EAAS,GAAI8qG,EAAY,EACpBpvG,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAO8qG,KAAe,IAAItjB,IAAY4wB,EAAO/wB,WAAY+wB,EAAO9wB,WAE5DtnF,EAAO8qG,KADPo6F,EACsB19G,IAAYO,eAAesqG,IAAegT,YAAYr+G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,aAGtGG,IAAY49G,cAAc/S,IAAegT,YAAYr+G,EAAUE,aAAcF,EAAWoxB,EAAO9wB,YAG7H,OAAOtnF,IA3Bf,mCA6BI,SAA6BgnF,EAAWi+G,EAASp+G,GAE7C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAKkC,KAAK0nM,iBAAiBt+G,EAAWoxB,EAAQvxB,GAEzD,OAAO7mF,IAnCf,8BAqCI,SAAwBgnF,EAAWoxB,EAAQvxB,GACvC,IAAM0+G,EAAyBntF,EAAO9wB,UAAU/qE,SAASa,OAEnDooL,EAA2BD,IADDntF,EAAO/wB,WAAW9qE,SAASa,OAErDqoL,EAA6BrtF,EAAO9wB,UAAU/qE,SAASY,WACvD42K,EAAsB/sG,EAAU0+B,gCAAgC+/E,GAEtE,OAAKD,GADyBD,IAA2BxR,EAK9Cn2L,KAAK8nM,wBAAwB1+G,EAAWoxB,EAAQvxB,GAHhDjpF,KAAK+nM,uBAAuB3+G,EAAWoxB,EAAQvxB,KA7ClE,oCAmDI,SAA8BG,EAAWoxB,EAAQvxB,GAC7C,OAAOW,IAAY49G,cAAc/S,IAAeuT,sBAAsB5+G,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,MApDnI,qCAsDI,SAA+BG,EAAWoxB,EAAQvxB,GAC9C,OAAOW,IAAYO,eAAesqG,IAAeuT,sBAAsB5+G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,MAvD3I,6BAyDI,SAAuBG,EAAWi+G,EAASp+G,EAAiBsK,GAExD,IADA,IAAInxF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAKkC,KAAKioM,eAAe7+G,EAAWoxB,EAAQvxB,EAAiBsK,GAExE,OAAOnxF,IA/Df,4BAiEI,SAAsBgnF,EAAWoxB,EAAQvxB,EAAiBsK,GACtD,IAAM20G,EAAoB1tF,EAAO9wB,UAAU/qE,SACrCwpL,EAAqB/+G,EAAU03C,iBAAiBonE,EAAkB3oL,YAClE6oL,EAAkBF,EAAkB1oL,SAAW2oL,EAC/CE,EAAqB7tF,EAAO/wB,WAAW9qE,SACvC2pL,EAAiBl/G,EAAUt0D,MAAMgsG,iBAAiBunE,EAAmB9oL,YACrEgpL,EAAyBJ,EAAqBD,EAAkB1oL,SAAW8oL,EAAiBD,EAAmB7oL,OACrH,OAAI4oL,GAAmBG,EACZvoM,KAAKwoM,sBAAsBp/G,EAAWoxB,EAAQvxB,EAAiBsK,GAG/DvzF,KAAKyoM,qBAAqBr/G,EAAWoxB,EAAQvxB,EAAiBsK,KA5EjF,kCA+EI,SAA4BnK,EAAWoxB,EAAQvxB,EAAiBsK,GAC5D,OAAO3J,IAAY49G,cAAc/S,IAAeiU,gBAAgBt/G,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiBsK,MAhF9I,mCAkFI,SAA6BnK,EAAWoxB,EAAQvxB,EAAiBsK,GAC7D,OAAO3J,IAAYO,eAAesqG,IAAeiU,gBAAgBt/G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,EAAiBsK,MAnFtJ,iCAqFI,SAA2BnK,EAAWi+G,GAElC,IADA,IAAIjlM,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBwgB,EAAkBk8F,EAAO/wB,WAAWtK,UAAU7gE,gBAC9CyjG,EAAY34B,EAAUt0D,MAAMg1E,eAC9BtrF,EAAgBg8F,EAAO/wB,WAAWtK,UAAU3gE,cAC5CC,OAAS,EACTD,IAAkBujG,EAClBtjG,EAAY2qE,EAAUt0D,MAAMgsG,iBAAiB/e,IAG7CvjG,IACAC,EAAY,GAEhBrc,EAAOtE,GAAK8rF,IAAYO,eAAe,IAAIxB,IAAkB,IAAItqE,IAAMC,EAAiB,EAAGA,EAAiB,GAAI,EAAG,IAAI6B,IAAS3B,EAAeC,GAAY,IAE/J,OAAOrc,IAtGf,qCAwGI,SAA+BgnF,EAAWi+G,EAASp+G,GAE/C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAYO,eAAesqG,IAAekU,wBAAwBv/G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,IAE9I,OAAO7mF,IA9Gf,+BAgHI,SAAyBgnF,EAAWi+G,EAASp+G,GAEzC,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAYO,eAAesqG,IAAemU,kBAAkBx/G,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,IAExI,OAAO7mF,IAtHf,uBAwHI,SAAiBgnF,EAAWoxB,GACxB,IAAMuH,EAAY34B,EAAUt0D,MAAMg1E,eAC5BrU,EAAYrM,EAAUt0D,MAAMgsG,iBAAiB/e,GACnD,OAAOn4B,IAAYO,eAAe,IAAIxB,IAAkB,IAAItqE,IAAM,EAAG,EAAG,EAAG,GAAI,EAAG,IAAI8B,IAAS4hG,EAAWtsB,GAAY,MA3H9H,kBA6HI,SAAYrM,EAAWoxB,EAAQvxB,EAAiBykD,EAAWm7D,GACvD,IAAMlqL,EAAWyqE,EAAUt0D,MAAMowG,iBAAiBwI,GAC5Co7D,EAAgBD,EAChBz/G,EAAUC,qBAAqB0/G,qBAAqB,IAAI5oL,IAAS0oL,EAActpL,WAAYspL,EAAcrpL,QAASb,GAClHyqE,EAAUC,qBAAqB2/G,mCAAmCrqL,GACxE,IAAKsqE,IAAoBuxB,EAAO/wB,WAAWwrG,eAAgB,CAEvD,IAAMlzE,EAAY34B,EAAUt0D,MAAMg1E,eAC9Bm/F,EAAqBtqL,EAASY,WAAa,EAC3C2pL,EAAiB,EAKrB,OAJID,EAAqBlnF,IACrBknF,EAAqBlnF,EACrBmnF,EAAiB9/G,EAAUt0D,MAAMgsG,iBAAiBmoE,IAE/Cr/G,IAAYO,eAAe,IAAIxB,IAAkB,IAAItqE,IAAMM,EAASY,WAAY,EAAG0pL,EAAoBC,GAAiB,EAAG,IAAI/oL,IAAS8oL,EAAoBC,GAAiB,IAGxL,IAAMC,EAAqB3uF,EAAO/wB,WAAWb,eAAevpE,mBAAmBE,WAC/E,GAAIZ,EAASY,WAAa4pL,EACtB,OAAOv/G,IAAY49G,cAAchtF,EAAO9wB,UAAUrQ,KAAKmhC,EAAO/wB,WAAWwrG,eAAgB6T,EAAavpL,WAAY,EAAG,IAEpH,GAAIZ,EAASY,WAAa4pL,EAAoB,CAC/C,IAAMpnF,EAAY34B,EAAU0gB,eACxBs/F,EAAyBN,EAAavpL,WAAa,EACnD8pL,EAAqB,EAKzB,OAJID,EAAyBrnF,IACzBqnF,EAAyBrnF,EACzBsnF,EAAqBjgH,EAAU03C,iBAAiBsoE,IAE7Cx/G,IAAY49G,cAAchtF,EAAO9wB,UAAUrQ,KAAKmhC,EAAO/wB,WAAWwrG,eAAgBmU,EAAwBC,EAAoB,IAGrI,IAAMC,EAA8B9uF,EAAO/wB,WAAWb,eAAexpE,iBACrE,OAAOwqE,IAAYO,eAAeqwB,EAAO/wB,WAAWpQ,KAAKmhC,EAAO/wB,WAAWwrG,eAAgBqU,EAA4B/pL,WAAY+pL,EAA4B9pL,OAAQ,MA9JnL,kBAiKI,SAAY4pE,EAAWoxB,EAAQvxB,EAAiBykD,GAC5C,IAAM/uH,EAAWyqE,EAAUt0D,MAAMowG,iBAAiBwI,GAClD,OAAO9jD,IAAYO,eAAeo/G,IAAeh7D,KAAKnlD,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,EAAiBtqE,MAnK3I,6BAqKI,SAAuByqE,EAAWoxB,GAC9B,IAAKA,EAAO/wB,WAAWwrG,eACnB,OAAO,IAAIrrG,IAAY4wB,EAAO/wB,WAAY+wB,EAAO9wB,WAErD,IAAMnqE,EAAai7F,EAAO9wB,UAAU/qE,SAASY,WACvCC,EAASg7F,EAAO9wB,UAAU/qE,SAASa,OACzC,OAAOoqE,IAAY49G,cAAc,IAAI7+G,IAAkB,IAAItqE,IAAMkB,EAAYC,EAAQD,EAAYC,GAAS,EAAG,IAAIW,IAASZ,EAAYC,GAAS,MA3KvJ,oBA6KI,SAAc4pE,EAAWoxB,EAAQvxB,EAAiBykD,EAAWm7D,GACzD,IAAMlqL,EAAWyqE,EAAUt0D,MAAMowG,iBAAiBwI,GAC5Co7D,EAAgBD,EAChBz/G,EAAUC,qBAAqB0/G,qBAAqB,IAAI5oL,IAAS0oL,EAActpL,WAAYspL,EAAcrpL,QAASb,GAClHyqE,EAAUC,qBAAqB2/G,mCAAmCrqL,GACxE,OAAOirE,IAAY49G,cAAchtF,EAAO9wB,UAAUrQ,KAAK4P,EAAiB6/G,EAAavpL,WAAYupL,EAAatpL,OAAQ,MAlL9H,wBAoLI,SAAkB4pE,EAAWi+G,EAASh7L,EAAW48E,EAAiBjnF,EAAOwnM,GACrE,OAAQn9L,GACJ,KAAK,EACD,OAAa,IAATm9L,EAEOxpM,KAAKypM,kBAAkBrgH,EAAWi+G,EAASp+G,GAI3CjpF,KAAK0pM,UAAUtgH,EAAWi+G,EAASp+G,EAAiBjnF,GAGnE,KAAK,EACD,OAAa,IAATwnM,EAEOxpM,KAAK2pM,mBAAmBvgH,EAAWi+G,EAASp+G,GAI5CjpF,KAAK4pM,WAAWxgH,EAAWi+G,EAASp+G,EAAiBjnF,GAGpE,KAAK,EACD,OAAa,IAATwnM,EAEOxpM,KAAK6pM,mBAAmBzgH,EAAWi+G,EAASp+G,EAAiBjnF,GAI7DhC,KAAK8pM,oBAAoB1gH,EAAWi+G,EAASp+G,EAAiBjnF,GAG7E,KAAK,EACD,OAAa,IAATwnM,EAEOxpM,KAAK+pM,qBAAqB3gH,EAAWi+G,EAASp+G,EAAiBjnF,GAI/DhC,KAAKgqM,sBAAsB5gH,EAAWi+G,EAASp+G,EAAiBjnF,GAG/E,KAAK,EACD,OAAa,IAATwnM,EACOnC,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAY49G,cAAc/S,IAAewV,oBAAoB7gH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,OAGxIo+G,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAYO,eAAesqG,IAAewV,oBAAoB7gH,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,OAG/J,KAAK,EACD,OAAa,IAATugH,EACOnC,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAY49G,cAAc/S,IAAeyV,oBAAoB9gH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,OAGxIo+G,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAYO,eAAesqG,IAAeyV,oBAAoB9gH,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,OAG/J,KAAK,EAED,OAAOjpF,KAAKmqM,qBAAqB/gH,EAAWi+G,EAASp+G,GAEzD,KAAK,EAED,OAAOjpF,KAAKoqM,oCAAoChhH,EAAWi+G,EAASp+G,GAExE,KAAK,EAED,OAAOjpF,KAAKqqM,wBAAwBjhH,EAAWi+G,EAASp+G,GAE5D,KAAK,EAED,OAAOjpF,KAAKsqM,qBAAqBlhH,EAAWi+G,EAASp+G,GAEzD,KAAK,GAED,OAAOjpF,KAAKuqM,mCAAmCnhH,EAAWi+G,EAASp+G,GAEvE,QACI,OAAO,QAnQvB,0BAsQI,SAAoBG,EAAWi+G,EAASh7L,EAAW48E,EAAiBjnF,GAChE,IAAMwoM,EAAmBphH,EAAUqhH,gCAC7BC,EAAoBthH,EAAUC,qBAAqBshH,6BAA6BH,GACtF,OAAQn+L,GACJ,KAAK,GAED,IAAMu+L,EAAkB5qM,KAAK6qM,wBAAwBzhH,EAAUt0D,MAAO41K,EAAmB1oM,GACnF8oM,EAAc1hH,EAAUt0D,MAAMgzF,gCAAgC8iF,GACpE,MAAO,CAAC5qM,KAAK+qM,qBAAqB3hH,EAAWi+G,EAAQ,GAAIp+G,EAAiB2hH,EAAiBE,IAE/F,KAAK,GAED,IAAMF,EAAkB5qM,KAAKgrM,uBAAuB5hH,EAAUt0D,MAAO41K,EAAmB1oM,GAClF8oM,EAAc1hH,EAAUt0D,MAAMgzF,gCAAgC8iF,GACpE,MAAO,CAAC5qM,KAAK+qM,qBAAqB3hH,EAAWi+G,EAAQ,GAAIp+G,EAAiB2hH,EAAiBE,IAE/F,KAAK,GAED,IAAMF,EAAkBlzL,KAAKq/C,OAAO2zI,EAAkBpsL,gBAAkBosL,EAAkBlsL,eAAiB,GACrGssL,EAAc1hH,EAAUt0D,MAAMgzF,gCAAgC8iF,GACpE,MAAO,CAAC5qM,KAAK+qM,qBAAqB3hH,EAAWi+G,EAAQ,GAAIp+G,EAAiB2hH,EAAiBE,IAE/F,KAAK,GAGD,IADA,IAAI1oM,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAKkC,KAAKirM,gCAAgC7hH,EAAWoxB,EAAQgwF,EAAkBvhH,GAE1F,OAAO7mF,EAEX,QACI,OAAO,QAtSvB,6CAySI,SAAuCgnF,EAAWoxB,EAAQgwF,EAAkBvhH,GACxE,IAMQiiH,EANJC,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC/C,GAAIirL,EAAiBlsL,iBAAmB6sL,GAAkBA,GAAkBX,EAAiBhsL,cAAgB,EAEzG,OAAO,IAAIorE,IAAY4wB,EAAO/wB,WAAY+wB,EAAO9wB,WAK7CwhH,EADAC,EAAiBX,EAAiBhsL,cAAgB,EAC9BgsL,EAAiBhsL,cAAgB,EAEhD2sL,EAAiBX,EAAiBlsL,gBACnBksL,EAAiBlsL,gBAGjB6sL,EAExB,IAAMxsL,EAAW81K,IAAep6F,SAASjR,EAAUE,aAAcF,EAAW+hH,EAAgB3wF,EAAO9wB,UAAU/qE,SAASa,OAAQg7F,EAAO9wB,UAAUZ,uBAAwBoiH,GAAmB,GAC1L,OAAOthH,IAAY49G,cAAchtF,EAAO9wB,UAAUrQ,KAAK4P,EAAiBtqE,EAASY,WAAYZ,EAASa,OAAQb,EAASmqE,2BA3TnI,qCAiUI,SAA+Bh0D,EAAOjW,EAAO8gG,GACzC,IAAIrhG,EAAkBO,EAAMP,gBAK5B,OAJIO,EAAMN,cAAgBuW,EAAM4/J,iBAAiBp2K,IAE7CA,IAEG5G,KAAKgI,IAAIb,EAAML,cAAeF,EAAkBqhG,EAAQ,KAvUvE,oCA4UI,SAA8B7qF,EAAOjW,EAAO8gG,GACxC,IAAIrhG,EAAkBO,EAAMP,gBAK5B,OAJIO,EAAMN,cAAgBuW,EAAM4/J,iBAAiBp2K,IAE7CA,IAEG5G,KAAKC,IAAI2G,EAAiBO,EAAML,cAAgBmhG,EAAQ,KAlVvE,uBAoVI,SAAiBv2B,EAAWi+G,EAASp+G,EAAiB+rG,GAClD,OAAOqS,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAY49G,cAAc/S,IAAe2W,SAAShiH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiB+rG,SArV7J,+BAuVI,SAAyB5rG,EAAWi+G,EAASp+G,GAEzC,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3C8rL,EAAW3zL,KAAKq/C,MAAMqyB,EAAUohB,eAAe2gG,GAAgBptM,OAAS,GAC9EqE,EAAOtE,GAAK8rF,IAAY49G,cAAc/S,IAAe2W,SAAShiH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiBoiH,IAExI,OAAOjpM,IA/Vf,wBAiWI,SAAkBgnF,EAAWi+G,EAASp+G,EAAiB+rG,GACnD,OAAOqS,EAAQjlL,KAAI,SAAAo4F,GAAM,OAAI5wB,IAAY49G,cAAc/S,IAAe6W,UAAUliH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiB+rG,SAlW9J,gCAoWI,SAA0B5rG,EAAWi+G,EAASp+G,GAE1C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3C8rL,EAAW3zL,KAAKq/C,MAAMqyB,EAAUohB,eAAe2gG,GAAgBptM,OAAS,GAC9EqE,EAAOtE,GAAK8rF,IAAY49G,cAAc/S,IAAe6W,UAAUliH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiBoiH,IAEzI,OAAOjpM,IA5Wf,kCA8WI,SAA4BgnF,EAAWi+G,EAASp+G,EAAiB4gB,GAE7D,IADA,IAAIznG,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAY49G,cAAc/S,IAAe8W,SAASniH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiB4gB,IAExI,OAAOznG,IApXf,mCAsXI,SAA6BgnF,EAAWi+G,EAASp+G,EAAiB4gB,GAE9D,IADA,IAAIznG,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAYO,eAAesqG,IAAe8W,SAASniH,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,EAAiB4gB,IAEhJ,OAAOznG,IA5Xf,gCA8XI,SAA0BgnF,EAAWi+G,EAASp+G,EAAiB4gB,GAE3D,IADA,IAAIznG,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAY49G,cAAc/S,IAAe+W,OAAOpiH,EAAUE,aAAcF,EAAWoxB,EAAO9wB,UAAWT,EAAiB4gB,IAEtI,OAAOznG,IApYf,iCAsYI,SAA2BgnF,EAAWi+G,EAASp+G,EAAiB4gB,GAE5D,IADA,IAAIznG,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACvBsE,EAAOtE,GAAK8rF,IAAYO,eAAesqG,IAAe+W,OAAOpiH,EAAUE,aAAcF,EAAUt0D,MAAO0lF,EAAO/wB,WAAYR,EAAiB4gB,IAE9I,OAAOznG,IA5Yf,iCA8YI,SAA2BgnF,EAAWoxB,EAAQvxB,EAAiBwiH,EAAkBC,GAC7E,OAAO9hH,IAAY49G,cAAchtF,EAAO9wB,UAAUrQ,KAAK4P,EAAiBwiH,EAAkBC,EAAc,MA/YhH,kCAiZI,SAA4BtiH,EAAWoxB,EAAQvxB,EAAiB0iH,EAAmBC,GAC/E,OAAOhiH,IAAYO,eAAeqwB,EAAO/wB,WAAWpQ,KAAK4P,EAAiB0iH,EAAmBC,EAAe,MAlZpH,kCAoZI,SAA4BxiH,EAAWi+G,EAASp+G,GAE5C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3CssL,EAAaziH,EAAUsrG,iBAAiByW,GAC9C/oM,EAAOtE,GAAKkC,KAAK8rM,oBAAoB1iH,EAAWoxB,EAAQvxB,EAAiBkiH,EAAgBU,GAE7F,OAAOzpM,IA5Zf,iDA8ZI,SAA2CgnF,EAAWi+G,EAASp+G,GAE3D,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3CssL,EAAaziH,EAAU0+B,gCAAgCqjF,GAC7D/oM,EAAOtE,GAAKkC,KAAK8rM,oBAAoB1iH,EAAWoxB,EAAQvxB,EAAiBkiH,EAAgBU,GAE7F,OAAOzpM,IAtaf,qCAwaI,SAA+BgnF,EAAWi+G,EAASp+G,GAE/C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3CssL,EAAan0L,KAAKq/C,OAAOqyB,EAAU03C,iBAAiBqqE,GAAkB/hH,EAAUsrG,iBAAiByW,IAAmB,GAC1H/oM,EAAOtE,GAAKkC,KAAK8rM,oBAAoB1iH,EAAWoxB,EAAQvxB,EAAiBkiH,EAAgBU,GAE7F,OAAOzpM,IAhbf,kCAkbI,SAA4BgnF,EAAWi+G,EAASp+G,GAE5C,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3CssL,EAAaziH,EAAU03C,iBAAiBqqE,GAC9C/oM,EAAOtE,GAAKkC,KAAK8rM,oBAAoB1iH,EAAWoxB,EAAQvxB,EAAiBkiH,EAAgBU,GAE7F,OAAOzpM,IA1bf,gDA4bI,SAA0CgnF,EAAWi+G,EAASp+G,GAE1D,IADA,IAAI7mF,EAAS,GACJtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjBqtM,EAAiB3wF,EAAO9wB,UAAU/qE,SAASY,WAC3CssL,EAAaziH,EAAU85C,+BAA+BioE,GAC5D/oM,EAAOtE,GAAKkC,KAAK8rM,oBAAoB1iH,EAAWoxB,EAAQvxB,EAAiBkiH,EAAgBU,GAE7F,OAAOzpM,MApcf,MAwcA,SAAW+kM,GAoBPA,EAAWlxL,YAAc,CACrBA,YAAa,gDACbpX,KAAM,CACF,CACI+X,KAAM,8BACNX,YAAa,s0BAebguD,WAvCa,SAAUnnD,GAC/B,IAAKivL,IAAejvL,GAChB,OAAO,EAEX,IAAIkvL,EAAgBlvL,EACpB,QAAKivL,IAAeC,EAAc1nM,SAG7BynM,IAAkBC,EAAcC,UAAYF,IAAgBC,EAAcC,cAG1EF,IAAkBC,EAAcE,MAAQH,IAAeC,EAAcE,SAGrEH,IAAkBC,EAAchqM,SAAW+pM,IAAeC,EAAchqM,WA0BrEitF,OAAQ,CACJ,KAAQ,SACR,SAAY,CAAC,MACb,WAAc,CACV,GAAM,CACF,KAAQ,SACR,KAAQ,CAAC,OAAQ,QAAS,KAAM,OAAQ,gBAAiB,gBAAiB,mBAAoB,iBAAkB,0BAA2B,yCAA0C,wCAAyC,cAAe,iBAAkB,iBAAkB,sBAErR,GAAM,CACF,KAAQ,SACR,KAAQ,CAAC,OAAQ,cAAe,YAAa,aAEjD,MAAS,CACL,KAAQ,SACR,QAAW,GAEf,OAAU,CACN,KAAQ,UACR,SAAW,QAUnCk4G,EAAWgF,aAAe,CACtBC,KAAM,OACNC,MAAO,QACPC,GAAI,KACJC,KAAM,OACNC,cAAe,gBACfC,cAAe,gBACfC,iBAAkB,mBAClBC,uCAAwC,yCACxCC,wBAAyB,0BACzBC,eAAgB,iBAChBC,sCAAuC,wCACvCC,YAAa,cACbC,eAAgB,iBAChBC,eAAgB,iBAChBC,kBAAmB,qBAKvB/F,EAAWgG,QAAU,CACjBxtG,KAAM,OACNytG,YAAa,cACbC,UAAW,YACXC,SAAU,YAgFdnG,EAAWzgK,MA9EX,SAAe7nC,GACX,IAAKA,EAAKyF,GAEN,OAAO,KAEX,IAAI+H,EACJ,OAAQxN,EAAKyF,IACT,KAAK6iM,EAAWgF,aAAaC,KACzB//L,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaE,MACzBhgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaG,GACzBjgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaI,KACzBlgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaK,cACzBngM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaM,cACzBpgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaO,iBACzBrgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaQ,uCACzBtgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaS,wBACzBvgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaU,eACzBxgM,EAAY,EACZ,MACJ,KAAK86L,EAAWgF,aAAaW,sCACzBzgM,EAAY,GACZ,MACJ,KAAK86L,EAAWgF,aAAaY,YACzB1gM,EAAY,GACZ,MACJ,KAAK86L,EAAWgF,aAAac,eACzB5gM,EAAY,GACZ,MACJ,KAAK86L,EAAWgF,aAAaa,eACzB3gM,EAAY,GACZ,MACJ,KAAK86L,EAAWgF,aAAae,kBACzB7gM,EAAY,GACZ,MACJ,QAEI,OAAO,KAEf,IAAIm9L,EAAO,EACX,OAAQ3qM,EAAKqtM,IACT,KAAK/E,EAAWgG,QAAQxtG,KACpB6pG,EAAO,EACP,MACJ,KAAKrC,EAAWgG,QAAQC,YACpB5D,EAAO,EACP,MACJ,KAAKrC,EAAWgG,QAAQE,UACpB7D,EAAO,EACP,MACJ,KAAKrC,EAAWgG,QAAQG,SACpB9D,EAAO,EAGf,MAAO,CACHn9L,UAAWA,EACXm9L,KAAMA,EACNyC,SAAWptM,EAAKotM,OAChBjqM,MAAQnD,EAAKmD,OAAS,IA1KlC,CA8KGmlM,IAAeA,EAAa,M,6BChoB/B,8CAKahyK,EAAoBuX,YAAgB,qB,kHC0GpCpb,EAAsB,I,WAtG/B,aAAc,oBACVtxB,KAAKutM,iBAAmB,GACxBvtM,KAAKwtM,sBAAwB,GAC7BxtM,KAAKytM,yBAA2B,K,0DAuBpC,SAAuB98L,GACnB,IAAM+8L,EAAWC,EAAwBC,sBAAsBj9L,GAC/D,GAAI+8L,GAAYA,EAASz8K,QAAS,CAC9B,IAAMq4B,EAAKukJ,YAAiBH,EAASz8K,QAAS2qC,KAC1CtS,GACAtpD,KAAK8tM,2BAA2BxkJ,EAAI34C,EAAK4F,GAAI5F,EAAK9R,KAAM8R,EAAKogB,OAAQ,EAAGpgB,EAAKqgB,MAGrF,GAAI08K,GAAYjuM,MAAM+b,QAAQkyL,EAASx8K,WACnC,IAAK,IAAIpzB,EAAI,EAAG+jC,EAAM6rK,EAASx8K,UAAUnzB,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC3D,IAAMmG,EAAIypM,EAASx8K,UAAUpzB,GACvBwrD,EAAKukJ,YAAiB5pM,EAAG23D,KAC3BtS,GACAtpD,KAAK8tM,2BAA2BxkJ,EAAI34C,EAAK4F,GAAI5F,EAAK9R,KAAM8R,EAAKogB,QAASjzB,EAAI,EAAG6S,EAAKqgB,S,8CAKlG,SAAiC/vB,GAC7BjB,KAAKuxB,uBAAuBtwB,GAC5BuwB,IAAiBC,gBAAgBxwB,K,8BAyBrC,SAAiB8sM,EAAY33K,GACrB23K,EAAWz0L,SAAWy0L,EAAW30L,SAAW20L,EAAWx0L,SACnDo0L,EAAwBK,kBAAkBD,EAAWr0L,UACrDgE,QAAQC,KAAK,gFAAiFowL,EAAY,QAAS33K,K,wCAI/H,SAA2B23K,EAAY33K,EAAW63K,EAAaC,EAASC,EAASn9K,GAClE,IAAP4qC,KACA57D,KAAKouM,iBAAiBL,EAAWM,MAAM,GAAIj4K,GAE/Cp2B,KAAKutM,iBAAiBhqM,KAAK,CACvBwqM,WAAYA,EAAWM,MACvBr8K,QAASoE,EACT63K,YAAaA,EACbj9K,KAAMA,EACNk9K,QAASA,EACTC,QAASA,EACTG,YAAa,KACbC,oBAAoB,IAExBvuM,KAAKytM,yBAA2B,O,mCAEpC,WAKI,OAJKztM,KAAKytM,2BACNztM,KAAKytM,yBAA2B,GAAG3pM,OAAO9D,KAAKutM,kBAAkBzpM,OAAO9D,KAAKwtM,uBAC7ExtM,KAAKytM,yBAAyB3kM,KAAK+zL,IAEhC78L,KAAKytM,yBAAyB/oM,MAAM,M,oCA3F/C,SAA6B8pM,GACzB,GAAW,IAAP5yI,KACA,GAAI4yI,GAAMA,EAAGr9K,IACT,OAAOq9K,EAAGr9K,SAGb,GAAW,IAAPyqC,KACL,GAAI4yI,GAAMA,EAAGn9K,IACT,OAAOm9K,EAAGn9K,SAId,GAAIm9K,GAAMA,EAAGp9K,MACT,OAAOo9K,EAAGp9K,MAGlB,OAAOo9K,I,+BAwBX,SAAyB90L,GACrB,OAAIA,GAAW,IAAmBA,GAAW,KAGzCA,GAAW,IAAiBA,GAAW,KAGvB,KAAZA,GACW,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,MAAZA,GACY,MAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,GACY,KAAZA,Q,MAuCf,SAASmjL,EAAO34L,EAAG5E,GACf,OAAI4E,EAAEgqM,UAAY5uM,EAAE4uM,QACThqM,EAAEgqM,QAAU5uM,EAAE4uM,QAErBhqM,EAAE8tB,QAAU1yB,EAAE0yB,SACN,EAER9tB,EAAE8tB,QAAU1yB,EAAE0yB,QACP,EAEJ9tB,EAAEiqM,QAAU7uM,EAAE6uM,QAXzBp3K,IAASvd,IAFQ,+BAEoB8X,I,syBCzGjCm9K,EAAY,SAOZC,EAAU,OAIVC,EAAU,OACVC,EAAa,WACbC,EAAa,KACbC,EAAqB,KACrBC,GAAe,EACfC,EAAqB,KACrBC,EAAoB,KACxB,SAASC,EAAaj7B,EAAU7mI,GAC9B,IAAF,KACE,GAAF,GACI,IAEE,KADA,EAAN,QACA,CACQ,IAAR,SACA,IACU,EAAV,SAIA,UAGI,IAAJ,EACM,IACE,IAAR,QACQ,GAAR,kBAEA,WAKE,OAAF,EAaA,cACE,IAAF,gBACE,OAAF,QACA,KAGA,WAEA,OAEA,KASA,aACE,OAAF,qCAOA,aACE,OAAF,IACA,OAGA,KASA,aACE,OAAF,yCAOA,aACE,OAAF,IACA,SAEA,EA5GkB,YAqHlB,aACE,OAAF,2CAOA,aACE,OAAF,IACA,UAEA,EAhImB,aAiJnB,aACE,OARF,uCASA,QAEA,EApJiB,WA2JjB,cACE,GAAF,MACI,IAAJ,sBACI,GAAJ,EACM,OAAN,EAGE,cAAF,yBACA,SAEA,EApKkB,YAyKlB,aACE,cAAF,cACA,QAEA,EA5KiB,WAmLjB,aACE,OAAF,EAnLqB,eA4LrB,aACE,OAAF,8CAOA,aACE,OAAF,IACA,WAEA,KAOA,aACE,OAAF,EA9MgB,UAqNhB,aACE,OAAF,EArNkB,YA0NlB,aAEE,IAAF,MACE,SAAF,gBA5NqB,gBA6NrB,UAOA,aACE,IAAF,MACE,GAAF,gCAGI,IAAJ,IADI,EAAJ,cACA,kBACI,EAAJ,mCAEE,OAAF,EAKA,cAEE,QADF,QAAI,EAAJ,OACA,GACI,IAAJ,UACI,EAAJ,qCAEE,IAAF,wBACE,GAAF,iBACI,OAAJ,wBAEA,qBACI,IAAJ,0BACI,GAAJ,EACM,OAAN,IAGE,OAAF,KAKA,cACE,IAAF,+BACA,KAOE,MANF,qBACI,EAAJ,uEAEA,MACI,EAAJ,kBAEA,IAcA,aAIE,OAHF,WACI,EAAJ,8BAEA,EAOA,cACE,IAAF,KACE,IAEE,IADJ,WAEI,IAAJ,eACA,UACM,EAAN,kBAGA,UAGE,OAAF,EAEA,aAOE,OANF,WACI,OAAJ,4BACA,MACM,EAAN,8CAGA,EAMA,aACE,IAAF,KACE,IAEE,IADJ,oBAGA,UAGE,OAAF,I,6KC3Va+hK,GAAoB,EACpBC,EAAb,WACI,WAAYptM,EAAO4mF,EAAgBymH,EAAcC,EAAwBC,GAAsB,oBAC3FvvM,KAAKgC,MAAQA,EACbhC,KAAK4oF,eAAiBA,EACtB5oF,KAAKqvM,aAAeA,EACpBrvM,KAAKsvM,uBAAyBA,EAC9BtvM,KAAKuvM,qBAAuBA,EANpC,4CAQI,WACI,MAAO,MAAQvvM,KAAKgC,MAAQ,sBAAwBhC,KAAK4oF,eAAiB,mBAAqB5oF,KAAKqvM,aAAe,MAT3H,+BAcI,WACI,OAAO,IAAID,EAAcpvM,KAAKgC,MAAOhC,KAAKgC,MAAMjE,OAAQiC,KAAKgC,MAAMjE,OAAQ,KAAM,QAfzF,6BAiBI,SAAgByxM,EAAQC,EAAUxD,GAC1BkD,GACAzxL,QAAQ6oL,IAAI,mBAAqBiJ,EAAS,KAAOxvM,KAAKyY,YAE1Dg3L,EAASzsJ,SAASwsJ,EAAQxvM,KAAKgC,OAC3BiqM,GACAwD,EAASC,kBAAkBF,EAAQxvM,KAAK4oF,eAAgB5oF,KAAKqvM,gBAvBzE,kCA0BI,SAAqBjvK,GACjB,GAAIA,GAAUpgC,KAAK4oF,eAAgB,CAC/B,IAAMtpD,EAAMt/B,KAAKgC,MAAMq+B,UAAUD,EAAQpgC,KAAK4oF,gBAC9C,OAAO5oF,KAAK2vM,4BAA4B3vM,KAAKsvM,uBAAwBhwK,GAAM,GAE/E,GAAIc,GAAUpgC,KAAKqvM,aAAc,CAC7B,IAAM/vK,EAAMt/B,KAAKgC,MAAMq+B,UAAUrgC,KAAKqvM,aAAcjvK,GACpD,OAAOpgC,KAAK2vM,4BAA4B3vM,KAAKuvM,qBAAsBjwK,EAAK,GAE5E,IAAMswK,EAAO5vM,KAAKgC,MAAMq+B,UAAUrgC,KAAK4oF,eAAgBxoD,GACvD,IAAiD,IAA7CwvK,EAAKhvM,QAAQd,OAAOkmC,aAAa,OACjC,OAAOhmC,KAAK2vM,4BAA4B3vM,KAAKsvM,uBAAwBM,EAAM,GAE/E,IAAMC,EAAO7vM,KAAKgC,MAAMq+B,UAAUD,EAAQpgC,KAAKqvM,cAC/C,OAAOrvM,KAAK2vM,4BAA4B3vM,KAAKuvM,qBAAsBM,GAAO,KAxClF,yCA0CI,SAA4BC,EAAQC,EAAWC,GAG3C,IAFA,IAAIp/F,EAAc,EACdq/F,GAAqB,GACwD,KAAzEA,EAAoBF,EAAUnvM,QAAQ,KAAMqvM,EAAoB,KACpEr/F,IAEJ,MAAO,CAACk/F,EAAQE,EAASD,EAAUhyM,OAAQ6yG,MAhDnD,+BAWI,SAAwB6+F,GACpB,OAAO,IAAIL,EAAcK,EAASxlK,WAAYwlK,EAASS,oBAAqBT,EAASU,kBAAmB,KAAM,QAZtH,0BAkDI,SAAoBhnI,GAChB,OAAO,IAAIimI,EAAcjmI,EAAM,EAAGA,EAAKprE,OAAQ,KAAM,QAnD7D,yBAqDI,SAAmBo0L,EAAeie,EAAcC,GAC5C,IAAKle,EAED,MAAO,CACHhpH,KAAM,GACNmnI,mBAAoB,EACpBC,mBAAoB,EACpBC,cAAe,GAGnBrB,IACAzxL,QAAQ6oL,IAAI,uCACZ7oL,QAAQ6oL,IAAI,mBAAqBpU,EAAc15K,YAC/CiF,QAAQ6oL,IAAI,kBAAoB6J,EAAa33L,aAEjD,IAAIg4L,EAAgBte,EAAcnwL,MAC9B0uM,EAAyBve,EAAcvpG,eACvC+nH,EAAuBxe,EAAckd,aACrCuB,EAAeR,EAAapuM,MAC5B6uM,EAAwBT,EAAaxnH,eACrCkoH,EAAsBV,EAAaf,aAEjC0B,EAAiBN,EAAcpwK,UAAUswK,GACzCK,EAAgBJ,EAAavwK,UAAUywK,GACvCG,EAAex3G,IAA2Bs3G,EAAgBC,GAChEJ,EAAeA,EAAavwK,UAAU,EAAGuwK,EAAa7yM,OAASkzM,GAE/D,IAAMC,GADNT,EAAgBA,EAAcpwK,UAAU,EAAGowK,EAAc1yM,OAASkzM,IAC7B5wK,UAAU,EAAGqwK,GAC5CS,EAAgBP,EAAavwK,UAAU,EAAGwwK,GAC1CO,EAAe33G,IAA2By3G,EAAgBC,GAWhE,GAVAP,EAAeA,EAAavwK,UAAU+wK,GACtCX,EAAgBA,EAAcpwK,UAAU+wK,GACxCP,GAAyBO,EACzBV,GAA0BU,EAC1BN,GAAuBM,EACvBT,GAAwBS,EACpBjC,IACAzxL,QAAQ6oL,IAAI,kCAAoCkK,EAAgB,sBAAwBC,EAAyB,mBAAqBC,GACtIjzL,QAAQ6oL,IAAI,iCAAmCqK,EAAe,sBAAwBC,EAAwB,mBAAqBC,IAEnIT,GAAqBQ,IAA0BC,GAAuBL,EAAc1yM,OAAS,EAAG,CAIhG,IAAIszM,EAAsB,KAe1B,GAdIR,IAA0BD,EAAa7yM,OAEnC6yM,EAAalwB,WAAW+vB,KAExBY,EAAsBT,EAAavwK,UAAUowK,EAAc1yM,SAK3D6yM,EAAapmB,SAASimB,KAEtBY,EAAsBT,EAAavwK,UAAU,EAAGuwK,EAAa7yM,OAAS0yM,EAAc1yM,SAGhE,OAAxBszM,GAAgCA,EAAoBtzM,OAAS,IASzD,SAAS8Y,KAAKw6L,IAAwB53G,IAAsB43G,IAC5D,MAAO,CACHloI,KAAMkoI,EACNf,mBAAoB,EACpBC,mBAAoB,EACpBC,cAAe,GAK/B,GAAIK,IAA0BC,EAAqB,CAG/C,GAAIL,IAAkBG,GACY,IAA3BF,GACAC,IAAyBF,EAAc1yM,QACvC8yM,IAA0BD,EAAa7yM,SACP,IAAhC6yM,EAAahwM,QAAQ,OACpB64F,IAAmCm3G,GACnC,MAAO,CACHznI,KAAM,GACNmnI,mBAAoB,EACpBC,mBAAoB,EACpBC,cAAe,GAK3B,IAAMc,EAA6BJ,EAAenzM,OAASqzM,EAI3D,OAHIjC,GACAzxL,QAAQ6oL,IAAI,qBAAuB2K,EAAenzM,OAASqzM,GAAgB,UAExE,CACHjoI,KAAMynI,EACNN,mBAAoBgB,EACpBf,mBAAoB,EACpBC,cAAe,GAKvB,MAAO,CACHrnI,KAAMynI,EACNN,mBAH8BK,EAAuBD,EAIrDH,mBAAoB,EACpBC,cAAe,KAtK3B,2CAyKI,SAAqCre,EAAeie,GAChD,IAAKje,EAED,MAAO,CACHhpH,KAAM,GACNmnI,mBAAoB,EACpBC,mBAAoB,EACpBC,cAAe,GAQvB,GALIrB,IACAzxL,QAAQ6oL,IAAI,yDACZ7oL,QAAQ6oL,IAAI,mBAAqBpU,EAAc15K,YAC/CiF,QAAQ6oL,IAAI,kBAAoB6J,EAAa33L,aAE7C05K,EAAcnwL,QAAUouM,EAAapuM,MACrC,MAAO,CACHmnE,KAAM,GACNmnI,mBAAoB,EACpBC,mBAAoB,EACpBC,cAAeJ,EAAaf,aAAeld,EAAckd,cAGjE,IAAM+B,EAAe15L,KAAKgI,IAAI+5E,IAA2B04F,EAAcnwL,MAAOouM,EAAapuM,OAAQmwL,EAAckd,cAC3G4B,EAAev5L,KAAKgI,IAAI+5E,IAA2B04F,EAAcnwL,MAAOouM,EAAapuM,OAAQmwL,EAAcnwL,MAAMjE,OAASo0L,EAAckd,cACxIoB,EAAgBte,EAAcnwL,MAAMq+B,UAAU+wK,EAAcjf,EAAcnwL,MAAMjE,OAASkzM,GACzFL,EAAeR,EAAapuM,MAAMq+B,UAAU+wK,EAAchB,EAAapuM,MAAMjE,OAASkzM,GACtFP,EAAyBve,EAAcvpG,eAAiBwoH,EACxDT,EAAuBxe,EAAckd,aAAe+B,EACpDP,EAAwBT,EAAaxnH,eAAiBwoH,EACtDN,EAAsBV,EAAaf,aAAe+B,EAKxD,OAJIjC,IACAzxL,QAAQ6oL,IAAI,kCAAoCkK,EAAgB,sBAAwBC,EAAyB,mBAAqBC,GACtIjzL,QAAQ6oL,IAAI,iCAAmCqK,EAAe,sBAAwBC,EAAwB,mBAAqBC,IAEhI,CACH3nI,KAAMynI,EACNN,mBAAoBK,EACpBJ,mBAAoBE,EAAc1yM,OAAS4yM,EAC3CH,cAAeM,EAAsBF,EAAa7yM,YAhN9D,KAoNAqxM,EAAct3D,MAAQ,IAAIs3D,EAAc,GAAI,EAAG,EAAG,KAAM,MACjD,IAAMmC,EAAb,mGACI,SAAsBhyL,EAAYiyL,GAC9B,OAAO95L,KAAKE,OAAO2H,EAAa,GAAKiyL,KAF7C,8BAII,SAAwBC,EAAMD,GAC1B,IAAMpxK,EAASqxK,EAAOD,EAChBlzL,EAAkB8hB,EAAS,EAC3B5hB,EAAgB4hB,EAASoxK,EAC/B,OAAO,IAAInzL,IAAMC,EAAiB,EAAGE,EAAgB,EAAG,KARhE,iCAUI,SAA2B2zK,EAAer9J,EAAOqqD,EAAWqyH,EAAcE,GACtE,IAUIvoI,EAVEwoI,EAAqBJ,EAA0BK,eAAezyH,EAAU7gE,gBAAiBkzL,GACzFK,EAA0BN,EAA0BO,iBAAiBH,EAAoBH,GACzFO,EAAmBR,EAA0BK,eAAezyH,EAAU3gE,cAAegzL,GACrFQ,EAAwBT,EAA0BO,iBAAiBC,EAAkBP,GACrFS,EAAeJ,EAAwB5yL,gBAAgB,IAAIZ,IAAM,EAAG,EAAG8gE,EAAU7gE,gBAAiB6gE,EAAU5gE,cAC9G2zL,EAAUp9K,EAAM2oF,gBAAgBw0F,EAAc,GAC5CE,EAAWr9K,EAAMg1E,eACjBsoG,EAAoBt9K,EAAMgsG,iBAAiBqxE,GAC3CE,EAAgBL,EAAsB/yL,gBAAgB,IAAIZ,IAAM8gE,EAAU3gE,cAAe2gE,EAAU1gE,UAAW0zL,EAAUC,IAC1HE,EAAWx9K,EAAM2oF,gBAAgB40F,EAAe,GAEpD,GAAIV,IAAuBI,GAAoBJ,EAAqB,IAAMI,EAEtE5oI,EAAOr0C,EAAM2oF,gBAAgBt+B,EAAW,OAEvC,CACD,IAAMozH,EAAkBV,EAAwB5yL,gBAAgBkgE,GAC1DqzH,EAAkBR,EAAsB/yL,gBAAgBkgE,GAC9DhW,EAAQr0C,EAAM2oF,gBAAgB80F,EAAiB,GACzCzyM,OAAOkmC,aAAa,MACpBlR,EAAM2oF,gBAAgB+0F,EAAiB,GAIjD,GAAId,EAAc,CACd,IAAMe,EAAc,IAChBP,EAAQn0M,OAAS00M,IACjBP,EAAUA,EAAQ7xK,UAAU6xK,EAAQn0M,OAAS00M,EAAaP,EAAQn0M,SAElEu0M,EAASv0M,OAAS00M,IAClBH,EAAWA,EAASjyK,UAAU,EAAGoyK,IAEjCtpI,EAAKprE,OAAS,MACdorE,EAAOA,EAAK9oC,UAAU,EAAGoyK,GAAe3yM,OAAOkmC,aAAa,MAAQmjC,EAAK9oC,UAAU8oC,EAAKprE,OAAS00M,EAAatpI,EAAKprE,SAG3H,OAAO,IAAIqxM,EAAc8C,EAAU/oI,EAAOmpI,EAAUJ,EAAQn0M,OAAQm0M,EAAQn0M,OAASorE,EAAKprE,OAAQ,IAAIoiB,IAASg/D,EAAU7gE,gBAAiB6gE,EAAU5gE,aAAc,IAAI4B,IAASg/D,EAAU3gE,cAAe2gE,EAAU1gE,gBA/C1N,M,uIC5MIi0L,E,6FAbAnxM,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,aAQtE,SAAWwwM,GACPA,EAAaA,EAAY,KAAW,GAAK,OACzCA,EAAaA,EAAY,YAAkB,GAAK,cAChDA,EAAaA,EAAY,OAAa,GAAK,SAH/C,CAIGA,IAAiBA,EAAe,KAC5B,IAAMC,EAAb,kDACI,WAAYp+H,GAAyC,MAA/BlvE,EAA+B,uDAArBjH,OAAO8B,OAAO,MAAO,4BACjD,gBACKq0E,SAAWA,EAChB,EAAKlvE,QAAUA,EACf,EAAKutM,oBAAsB,EAAKlpM,UAAU,IAAI+K,KAC9C,EAAKo+L,mBAAqB,EAAKD,oBAAoBj+L,MACnD,EAAKL,MAAQo+L,EAAa50L,KAC1B,EAAKib,MAAQ,IAAIwO,IACjB,EAAKurK,aAAe,IAAIjyI,IAAiB8xI,EAAQI,qBACjD,EAAKC,eAAiB,IAAI31L,IAC1B,EAAK41L,eAAiB,IAAI1rK,IAC1B,EAAK2rK,qBAAuB,GAC5B,EAAKC,oBAZ4C,EADzD,qDAeI,WAAoB,WAChBnzM,KAAK0J,UAAU1J,KAAKu0E,SAAS6+H,0BAAyB,SAAAzyM,GAAC,OAAI,EAAKyyM,yBAAyBzyM,SAhBjG,sCAkBI,SAAyBA,GAAG,IACpBqE,EAAIgL,EADgB,OAKH,QAApBhL,EAAKrE,EAAEi0J,eAA4B,IAAP5vJ,GAAyBA,EAAG2R,SAAQ,SAAC3U,EAAO1D,GAAR,OAAgB,EAAK+0M,OAAO/0M,EAAK0D,MAC7E,QAApBgO,EAAKrP,EAAE2yM,eAA4B,IAAPtjM,GAAyBA,EAAG2G,SAAQ,SAAArY,GAAG,OAAI,EAAK+0M,OAAO/0M,OAAKub,QAxBjG,oBA0BI,SAAOvb,EAAK0D,GACR,GAAIhC,KAAKsU,QAAUo+L,EAAaa,OAAhC,CAGA,IAAI3+C,GAAU,EAEd,GAAIlxF,YAAkB1hE,GAClB4yJ,EAAU50J,KAAK+4B,MAAL,OAAkBz6B,QAIP0B,KAAK+4B,MAAMtG,IAAIn0B,KACf0D,IACjBhC,KAAK+4B,MAAMyO,IAAIlpC,EAAK0D,GACpB4yJ,GAAU,GAIdA,GACA50J,KAAK4yM,oBAAoB39L,KAAK3W,MA7C1C,iBAgDI,SAAIA,EAAKk1M,GACL,IAAMxxM,EAAQhC,KAAK+4B,MAAMtG,IAAIn0B,GAC7B,OAAIolE,YAAkB1hE,GACXwxM,EAEJxxM,IArDf,wBAuDI,SAAW1D,EAAKk1M,GACZ,IAAMxxM,EAAQhC,KAAKyyB,IAAIn0B,GACvB,OAAIolE,YAAkB1hE,GACXwxM,EAEM,SAAVxxM,IA5Df,uBA8DI,SAAU1D,EAAKk1M,GACX,IAAMxxM,EAAQhC,KAAKyyB,IAAIn0B,GACvB,OAAIolE,YAAkB1hE,GACXwxM,EAEJ/zK,SAASz9B,EAAO,MAnE/B,iBAqEI,SAAI1D,EAAK0D,GACL,OAAOT,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,8FAC/BA,KAAKsU,QAAUo+L,EAAaa,OADG,qDAK/B7vI,YAAkB1hE,GALa,yCAMxBhC,KAAA,OAAY1B,IANY,UAS7Bm1M,EAAW3zM,OAAOkC,GAEHhC,KAAK+4B,MAAMtG,IAAIn0B,KACfm1M,EAZc,wDAgBnCzzM,KAAK+4B,MAAMyO,IAAIlpC,EAAKm1M,GACpBzzM,KAAKizM,eAAezrK,IAAIlpC,EAAKm1M,GAC7BzzM,KAAKgzM,eAAL,OAA2B10M,GAE3B0B,KAAK4yM,oBAAoB39L,KAAK3W,GApBK,kBAsB5B0B,KAAK8yM,aAAa/xI,SAAQ,kBAAM,EAAK2yI,mBAtBT,mDAtE/C,oBA+FI,SAAOp1M,GACH,OAAOiD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,4FAC/BA,KAAKsU,QAAUo+L,EAAaa,OADG,oDAKhBvzM,KAAK+4B,MAAL,OAAkBz6B,GALF,wDAS9B0B,KAAKgzM,eAAe1wJ,IAAIhkD,IACzB0B,KAAKgzM,eAAex5L,IAAIlb,GAE5B0B,KAAKizM,eAAL,OAA2B30M,GAE3B0B,KAAK4yM,oBAAoB39L,KAAK3W,GAdK,kBAgB5B0B,KAAK8yM,aAAa/xI,SAAQ,kBAAM,EAAK2yI,mBAhBT,kDAhG/C,sBAmHI,WACI,OAAO1zM,KAAKizM,eAAexmM,KAAO,GAAKzM,KAAKgzM,eAAevmM,KAAO,IApH1E,0BAsHI,WACI,OAAOlL,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,8FAC9BA,KAAK2zM,WADyB,wDAK7BC,EAAgB,CAAEpyF,OAAQxhH,KAAKizM,eAAgBY,OAAQ7zM,KAAKgzM,gBAElEhzM,KAAKgzM,eAAiB,IAAI31L,IAC1Brd,KAAKizM,eAAiB,IAAI1rK,IARS,kBAW5BvnC,KAAKu0E,SAASu/H,YAAYF,GAA1B,SAAiD,WACpD,IAAI5uM,EACJ,IAAK,EAAK2uM,WACN,KAAO,EAAKT,qBAAqBn1M,QACc,QAA1CiH,EAAK,EAAKkuM,qBAAqB5vM,aAA0B,IAAP0B,GAAyBA,QAfrD,kDAvH/C,qBA4II,WACIhF,KAAK8yM,aAAa16L,UAClB,oEA9IR,GAA6BpO,KAiJ7B2oM,EAAQI,oBAAsB,IACvB,IClKIgB,EDkKEC,EAAb,WACI,aAAc,oBACVh0M,KAAKozM,yBAA2B77K,IAAMzZ,KACtC9d,KAAKwoE,MAAQ,IAAIjhC,IAHzB,+CAKI,SAAYgwJ,GACR,OAAOh2L,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,yFAC/Bu3L,EAAQ/1E,QACR+1E,EAAQ/1E,OAAO7qG,SAAQ,SAAC3U,EAAO1D,GAAR,OAAgB,EAAKkqE,MAAMhhC,IAAIlpC,EAAK0D,MAE3Du1L,EAAO,QACPA,EAAO,OAAQ5gL,SAAQ,SAAArY,GAAG,OAAI,EAAKkqE,MAAL,OAAkBlqE,MALjB,+CAN/C,K,QCpKM21M,EAAa,2BACNC,EAAkBxnK,YAAgB,mBAE/C,SAAWqnK,GAIPA,EAAoBA,EAAmB,KAAW,GAAK,OAIvDA,EAAoBA,EAAmB,SAAe,GAAK,WAR/D,CASGA,IAAwBA,EAAsB,KAC1C,IAAMI,EAAb,kDACI,aAAwF,MAA5E9uM,EAA4E,uDAAlE,CAAE+uM,cAAeD,EAAuBE,wBAA0B,4BACpF,gBACKhvM,QAAUA,EACf,EAAKivM,kBAAoB,EAAK5qM,UAAU,IAAImyB,KAC5C,EAAK04K,mBAAqB,EAAK7qM,UAAU,IAAImyB,KAC7C,EAAK24K,iBAAmB,EAAK9qM,UAAU,IAAI+K,KAC3C,EAAKggM,gBAAkB,EAAKD,iBAAiB7/L,MAC7C,EAAK+/L,0BAAuB76L,EAC5B,EAAK86L,uBAAoB96L,EAR2D,EAD5F,sDAWI,SAAmB+6L,EAAOt2M,GAElBA,IAAQ21M,GAEM,IAAVW,EACA50M,KAAK20M,uBAAoB96L,EAEV,IAAV+6L,IACL50M,KAAK00M,0BAAuB76L,GAGhC7Z,KAAKu0M,mBAAmBt/L,KAAK,CAAE2/L,WAI/B50M,KAAKs0M,kBAAkBr/L,KAAK,CAAE2/L,QAAOt2M,MAAKV,OAAQoC,KAAK60M,cAAcD,GAAOt2M,OA1BxF,iBA6BI,SAAIA,EAAKs2M,EAAOpB,GACZ,IAAIxuM,EACJ,OAAyC,QAAjCA,EAAKhF,KAAK80M,WAAWF,UAA2B,IAAP5vM,OAAgB,EAASA,EAAGytB,IAAIn0B,EAAKk1M,KA/B9F,wBAiCI,SAAWl1M,EAAKs2M,EAAOpB,GACnB,IAAIxuM,EACJ,OAAyC,QAAjCA,EAAKhF,KAAK80M,WAAWF,UAA2B,IAAP5vM,OAAgB,EAASA,EAAG+vM,WAAWz2M,EAAKk1M,KAnCrG,uBAqCI,SAAUl1M,EAAKs2M,EAAOpB,GAClB,IAAIxuM,EACJ,OAAyC,QAAjCA,EAAKhF,KAAK80M,WAAWF,UAA2B,IAAP5vM,OAAgB,EAASA,EAAGgwM,UAAU12M,EAAKk1M,KAvCpG,mBAyCI,SAAMl1M,EAAK0D,EAAO4yM,EAAOh3M,GAAQ,WAEzB8lE,YAAkB1hE,GAClBhC,KAAK8E,OAAOxG,EAAKs2M,GAIrB50M,KAAKi1M,oBAAmB,WACpB,IAAIjwM,EAEJ,EAAKkwM,gBAAgB52M,EAAKs2M,EAAOh3M,GAEC,QAAjCoH,EAAK,EAAK8vM,WAAWF,UAA2B,IAAP5vM,GAAyBA,EAAGwiC,IAAIlpC,EAAK0D,QArD3F,oBAwDI,SAAO1D,EAAKs2M,GAAO,WAEf50M,KAAKi1M,oBAAmB,WACpB,IAAIjwM,EAEJ,EAAKkwM,gBAAgB52M,EAAKs2M,OAAO/6L,GAEC,QAAjC7U,EAAK,EAAK8vM,WAAWF,UAA2B,IAAP5vM,GAAyBA,EAAE,OAAQ1G,QA/DzF,gCAkEI,SAAmB2Z,GAEfjY,KAAKs0M,kBAAkBl4K,QACvBp8B,KAAKu0M,mBAAmBn4K,QACxB,IACInkB,IADJ,QAKIjY,KAAKs0M,kBAAkBj4K,SACvBr8B,KAAKu0M,mBAAmBl4K,YA5EpC,6BA+EI,SAAgB/9B,EAAKs2M,EAAOh3M,GACxB,IAAIoH,EAAIgL,EAEFmlM,EAAan1M,KAAK60M,cAAcD,GAChB,kBAAXh3M,EACHu3M,EAAW72M,KAASV,IACpBu3M,EAAW72M,GAAOV,EACgB,QAAjCoH,EAAKhF,KAAK80M,WAAWF,UAA2B,IAAP5vM,GAAyBA,EAAGwiC,IAAIysK,EAAYxtK,KAAK0xH,UAAUg9C,KAK1E,kBAApBA,EAAW72M,YACX62M,EAAW72M,GACgB,QAAjC0R,EAAKhQ,KAAK80M,WAAWF,UAA2B,IAAP5kM,GAAyBA,EAAGw3B,IAAIysK,EAAYxtK,KAAK0xH,UAAUg9C,OA7FrH,+BAiGI,WAII,OAHKn1M,KAAK00M,uBACN10M,KAAK00M,qBAAuB10M,KAAKo1M,eAAe,IAE7Cp1M,KAAK00M,uBArGpB,4BAuGI,WAII,OAHK10M,KAAK20M,oBACN30M,KAAK20M,kBAAoB30M,KAAKo1M,eAAe,IAE1Cp1M,KAAK20M,oBA3GpB,2BA6GI,SAAcC,GACV,OAAiB,IAAVA,EAA2B50M,KAAKq1M,iBAAmBr1M,KAAKs1M,sBA9GvE,4BAgHI,SAAeV,GACX,IAAMW,EAAUv1M,KAAKyyB,IAAIwhL,EAAYW,GACrC,GAAIW,EACA,IACI,OAAO9uK,KAAKC,MAAM6uK,GAEtB,MAAO3xM,IAIX,OAAOxF,OAAO8B,OAAO,UA1H7B,GAA4C8J,KA6H5CmqM,EAAuBE,uBAAyB,IACzC,IAAMmB,EAAb,kDACI,aAAc,kCACV,gBACKC,cAAgB,EAAK/rM,UAAU,IAAIipM,EAAQ,IAAIqB,IACpD,EAAK0B,iBAAmB,EAAKhsM,UAAU,IAAIipM,EAAQ,IAAIqB,IACvD,EAAKtqM,UAAU,EAAKgsM,iBAAiB7C,oBAAmB,SAAAv0M,GAAG,OAAI,EAAKq3M,mBAAmB,EAAmBr3M,OAC1G,EAAKoL,UAAU,EAAK+rM,cAAc5C,oBAAmB,SAAAv0M,GAAG,OAAI,EAAKq3M,mBAAmB,EAAgBr3M,OAL1F,EADlB,8CAQI,SAAWs2M,GACP,OAAiB,IAAVA,EAA2B50M,KAAKy1M,cAAgBz1M,KAAK01M,qBATpE,GAA4CvB,I,kGC5ItC12C,EACF,WAAYlzJ,GAAS,oBACjBvK,KAAKuK,QAAUA,EACfvK,KAAKkC,KAAOu7J,EAAKm4C,UACjB51M,KAAKi6G,KAAOwjD,EAAKm4C,WAGzBn4C,EAAKm4C,UAAY,IAAIn4C,OAAK5jJ,GACnB,IAAM0hB,EAAb,YACI,aAAc,oBACVv7B,KAAK61M,OAASp4C,EAAKm4C,UACnB51M,KAAK81M,MAAQr4C,EAAKm4C,UAClB51M,KAAKyvK,MAAQ,EAJrB,sCAMI,WACI,OAAOzvK,KAAKyvK,QAPpB,qBASI,WACI,OAAOzvK,KAAK61M,SAAWp4C,EAAKm4C,YAVpC,mBAYI,WAEI,IADA,IAAIhxM,EAAO5E,KAAK61M,OACTjxM,IAAS64J,EAAKm4C,WAAW,CAC5B,IAAM1zM,EAAO0C,EAAK1C,KAClB0C,EAAKq1G,KAAOwjD,EAAKm4C,UACjBhxM,EAAK1C,KAAOu7J,EAAKm4C,UACjBhxM,EAAO1C,EAEXlC,KAAK61M,OAASp4C,EAAKm4C,UACnB51M,KAAK81M,MAAQr4C,EAAKm4C,UAClB51M,KAAKyvK,MAAQ,IAtBrB,qBAwBI,SAAQllK,GACJ,OAAOvK,KAAK+1M,QAAQxrM,GAAS,KAzBrC,kBA2BI,SAAKA,GACD,OAAOvK,KAAK+1M,QAAQxrM,GAAS,KA5BrC,qBA8BI,SAAQA,EAASyrM,GAAU,WACjB5mG,EAAU,IAAIquD,EAAKlzJ,GACzB,GAAIvK,KAAK61M,SAAWp4C,EAAKm4C,UACrB51M,KAAK61M,OAASzmG,EACdpvG,KAAK81M,MAAQ1mG,OAEZ,GAAI4mG,EAAU,CAEf,IAAMC,EAAUj2M,KAAK81M,MACrB91M,KAAK81M,MAAQ1mG,EACbA,EAAQ6K,KAAOg8F,EACfA,EAAQ/zM,KAAOktG,MAEd,CAED,IAAM8mG,EAAWl2M,KAAK61M,OACtB71M,KAAK61M,OAASzmG,EACdA,EAAQltG,KAAOg0M,EACfA,EAASj8F,KAAO7K,EAEpBpvG,KAAKyvK,OAAS,EACd,IAAI0mC,GAAY,EAChB,OAAO,WACEA,IACDA,GAAY,EACZ,EAAKC,QAAQhnG,OAvD7B,mBA2DI,WACI,GAAIpvG,KAAK61M,SAAWp4C,EAAKm4C,UAAzB,CAII,IAAMpmK,EAAMxvC,KAAK61M,OAAOtrM,QAExB,OADAvK,KAAKo2M,QAAQp2M,KAAK61M,QACXrmK,KAlEnB,iBAqEI,WACI,GAAIxvC,KAAK81M,QAAUr4C,EAAKm4C,UAAxB,CAII,IAAMpmK,EAAMxvC,KAAK81M,MAAMvrM,QAEvB,OADAvK,KAAKo2M,QAAQp2M,KAAK81M,OACXtmK,KA5EnB,qBA+EI,SAAQ5qC,GACJ,GAAIA,EAAKq1G,OAASwjD,EAAKm4C,WAAahxM,EAAK1C,OAASu7J,EAAKm4C,UAAW,CAE9D,IAAM9F,EAASlrM,EAAKq1G,KACpB61F,EAAO5tM,KAAO0C,EAAK1C,KACnB0C,EAAK1C,KAAK+3G,KAAO61F,OAEZlrM,EAAKq1G,OAASwjD,EAAKm4C,WAAahxM,EAAK1C,OAASu7J,EAAKm4C,WAExD51M,KAAK61M,OAASp4C,EAAKm4C,UACnB51M,KAAK81M,MAAQr4C,EAAKm4C,WAEbhxM,EAAK1C,OAASu7J,EAAKm4C,WAExB51M,KAAK81M,MAAQ91M,KAAK81M,MAAM77F,KACxBj6G,KAAK81M,MAAM5zM,KAAOu7J,EAAKm4C,WAElBhxM,EAAKq1G,OAASwjD,EAAKm4C,YAExB51M,KAAK61M,OAAS71M,KAAK61M,OAAO3zM,KAC1BlC,KAAK61M,OAAO57F,KAAOwjD,EAAKm4C,WAG5B51M,KAAKyvK,OAAS,IAtGtB,uBAwGI,oFACQ7qK,EAAO5E,KAAK61M,OADpB,UAEWjxM,IAAS64J,EAAKm4C,UAFzB,gBAGQ,OAHR,SAGchxM,EAAK2F,QAHnB,OAIQ3F,EAAOA,EAAK1C,KAJpB,iEAxGJ,GAwGMgB,OAAOC,W,0PC7GPkzM,E,WACF,WAAYz7F,EAAUz1G,EAAMypC,GAAU,oBAClC5uC,KAAKs2M,oBAAiBz8L,EACtB7Z,KAAK46G,SAAWA,EAChB56G,KAAKmF,KAAOA,EACZnF,KAAK4uC,SAAWA,E,gDAEpB,WACI,SAAwB,EAAhB5uC,KAAK4uC,Y,2BAEjB,WACI,SAAwB,EAAhB5uC,KAAK4uC,c,KAGR2nK,EAAb,WACI,WAAYr0K,EAAY04E,GAAU,oBAC9B56G,KAAK01G,YAAcxzE,EACnBliC,KAAKs6G,UAAYM,EAHzB,0CAKI,SAAO47F,GACH,OAAOx2M,KAAK01G,cAAgB8gG,EAAe9gG,aACpC11G,KAAKs6G,YAAck8F,EAAel8F,cAPjD,KAUam8F,EAAb,WACI,WAAYC,EAA2B1d,EAAgCp7E,EAAa6nD,EAA0BhgI,EAAcJ,EAAasxK,EAAkB5lF,EAAY6lF,EAAiBxwH,EAASu/E,EAAoBizB,EAAYK,EAAaC,EAAex1F,EAAwBd,EAAkBL,EAAyBs0G,EAAeC,GAAkB,oBAC7V92M,KAAK02M,0BAA4BA,EACjC12M,KAAKg5L,+BAAiCA,EACtCh5L,KAAK49G,YAAcA,EACnB59G,KAAKylK,yBAA2BA,EAChCzlK,KAAKylC,aAAeA,EACpBzlC,KAAKqlC,YAAcA,EACnBrlC,KAAK22M,iBAAmBA,EACxB32M,KAAK+wH,WAAaA,EAClB/wH,KAAK42M,gBAAkBA,EAAgB9tM,KAAKiuM,IAAe50K,SAC3DniC,KAAKomF,QAAUA,EACfpmF,KAAK2lK,mBAAqBA,EAC1B3lK,KAAK44L,WAAaA,EAClB54L,KAAK0jG,uBAAyBA,EAC9B1jG,KAAK4iG,iBAAyC,QAArBA,EACnB,EACqB,aAArBA,EACI,EACqB,cAArBA,EACI,EACqB,aAArBA,EACI,EACA,EAClB5iG,KAAKuiG,wBAA0BA,EAC/BviG,KAAK62M,cAAgBA,EACrB72M,KAAK82M,iBAAmBA,GAAoBA,EAAiBhuM,MAAK,SAAC5E,EAAG5E,GAAJ,OAAU4E,EAAEwxG,YAAcp2G,EAAEo2G,aAAe,EAAI,KAC5Fh+F,KAAKmgD,IAAIqhI,EAAgBN,GAC3BlhL,KAAKmgD,IAAIohI,EAAcL,IAEtC54L,KAAKg3M,iBAAmB9d,EACxBl5L,KAAKi3M,oBAAsB,QAG3Bj3M,KAAKg3M,iBAAmB/d,EACxBj5L,KAAKi3M,oBAAsB,KAnCvC,iDAsCI,SAAcC,GACV,GAA8B,OAA1Bl3M,KAAK82M,iBACL,OAA2B,OAApBI,EAEX,GAAwB,OAApBA,EACA,OAAO,EAEX,GAAIA,EAAgBn5M,SAAWiC,KAAK82M,iBAAiB/4M,OACjD,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAK82M,iBAAiB/4M,OAAQD,IAC9C,IAAKkC,KAAK82M,iBAAiBh5M,GAAGk7B,OAAOk+K,EAAgBp5M,IACjD,OAAO,EAGf,OAAO,IArDf,oBAuDI,SAAOohB,GACH,OAAQlf,KAAK02M,4BAA8Bx3L,EAAMw3L,2BAC1C12M,KAAKg5L,iCAAmC95K,EAAM85K,gCAC9Ch5L,KAAK49G,cAAgB1+F,EAAM0+F,aAC3B59G,KAAKylK,2BAA6BvmJ,EAAMumJ,0BACxCzlK,KAAKylC,eAAiBvmB,EAAMumB,cAC5BzlC,KAAKqlC,cAAgBnmB,EAAMmmB,aAC3BrlC,KAAK22M,mBAAqBz3L,EAAMy3L,kBAChC32M,KAAKomF,UAAYlnE,EAAMknE,SACvBpmF,KAAK2lK,qBAAuBzmJ,EAAMymJ,oBAClC3lK,KAAK44L,aAAe15K,EAAM05K,YAC1B54L,KAAKg3M,mBAAqB93L,EAAM83L,kBAChCh3M,KAAKi3M,sBAAwB/3L,EAAM+3L,qBACnCj3M,KAAK0jG,yBAA2BxkF,EAAMwkF,wBACtC1jG,KAAK4iG,mBAAqB1jF,EAAM0jF,kBAChC5iG,KAAKuiG,0BAA4BrjF,EAAMqjF,yBACvCviG,KAAK62M,gBAAkB33L,EAAM23L,eAC7BE,IAAeI,UAAUn3M,KAAK42M,gBAAiB13L,EAAM03L,kBACrD52M,KAAK+wH,WAAW/3F,OAAO9Z,EAAM6xG,aAC7B/wH,KAAKo3M,cAAcl4L,EAAM43L,sBA1ExC,KA6EaO,EACT,WAAYC,EAAWC,GAAW,oBAC9Bv3M,KAAKs3M,UAAYA,EACjBt3M,KAAKu3M,UAAYA,GAMZC,EAAb,WACI,WAAYz5M,EAAQ05M,GAAW,oBAC3Bz3M,KAAKjC,OAASA,EACdiC,KAAKwmC,MAAQ,IAAIgrE,YAAYxxG,KAAKjC,QAClCiC,KAAK03M,iBAAmB,IAAIlmG,YAAYxxG,KAAKjC,QAJrD,iDAYI,SAAcyhB,EAAQ83L,EAAWC,EAAWI,GACxC,IAAMC,GAAaN,GAAa,GACzBC,GAAa,KAAgC,EACpDv3M,KAAKwmC,MAAMhnB,EAAS,GAAKo4L,EACzB53M,KAAK03M,iBAAiBl4L,EAAS,GAAKm4L,EAAqBJ,IAhBjE,+BAkBI,SAAkB/3L,GACd,OAAqC,IAAjCxf,KAAK03M,iBAAiB35M,OAEf,EAEJiC,KAAK03M,iBAAiBl4L,EAAS,KAvB9C,kCAyBI,SAAqBq4L,GACjB,OAAoB,IAAhB73M,KAAKjC,OACE,EAEP85M,EAAa,EACN73M,KAAKwmC,MAAM,GAElBqxK,GAAc73M,KAAKjC,OACZiC,KAAKwmC,MAAMxmC,KAAKjC,OAAS,GAE7BiC,KAAKwmC,MAAMqxK,KAnC1B,4BAqCI,SAAer4L,GACX,IAAMo4L,EAAW53M,KAAK83M,qBAAqBt4L,EAAS,GAC9C83L,EAAYE,EAAiBO,aAAaH,GAC1CL,EAAYC,EAAiBQ,aAAaJ,GAChD,OAAO,IAAIP,EAAYC,EAAWC,KAzC1C,uBA2CI,SAAUU,EAAaC,GAEnB,OADmBl4M,KAAKm4M,qBAAqBF,EAAYX,UAAWY,EAAYD,EAAYV,WACxE,IA7C5B,kCA+CI,SAAqBD,EAAWY,EAAYX,GACxC,GAAoB,IAAhBv3M,KAAKjC,OACL,OAAO,EAMX,IAJA,IAAIq6M,GAAgBd,GAAa,GAC1BC,GAAa,KAAgC,EAChD73L,EAAM,EACN/H,EAAM3X,KAAKjC,OAAS,EACjB2hB,EAAM,EAAI/H,GAAK,CAClB,IAAIsuD,EAAQvmD,EAAM/H,IAAS,EACvB0gM,EAAWr4M,KAAKwmC,MAAMy/B,GAC1B,GAAIoyI,IAAaD,EACb,OAAOnyI,EAEFoyI,EAAWD,EAChBzgM,EAAMsuD,EAGNvmD,EAAMumD,EAGd,GAAIvmD,IAAQ/H,EACR,OAAO+H,EAEX,IAAI44L,EAAWt4M,KAAKwmC,MAAM9mB,GACtB64L,EAAWv4M,KAAKwmC,MAAM7uB,GAC1B,GAAI2gM,IAAaF,EACb,OAAO14L,EAEX,GAAI64L,IAAaH,EACb,OAAOzgM,EAEX,IAAI6gM,EAAehB,EAAiBO,aAAaO,GAajD,OAFuBf,EAVJC,EAAiBQ,aAAaM,KAG7CE,IAFehB,EAAiBO,aAAaQ,GAI9BL,EAGAV,EAAiBQ,aAAaO,IAGXhB,EAE3B73L,EAEJ/H,KA/Ff,2BAMI,SAAoBigM,GAChB,OAAmB,WAAXA,KAAiD,KAPjE,0BASI,SAAoBA,GAChB,OAAmB,MAAXA,KAA4C,MAV5D,KAkGaa,EACT,WAAYC,EAAkBrzK,EAAaszK,GAAyB,oBAChE34M,KAAK44M,4BAAyB/+L,EAC9B7Z,KAAK04M,iBAAmBA,EACxB14M,KAAKqlC,YAAcA,EACnBrlC,KAAK24M,wBAA0BA,GAGhC,SAASE,EAAezpH,EAAO0pH,GAClC,GAAiC,IAA7B1pH,EAAMwuB,YAAY7/G,OAAc,CAChC,GAAIqxF,EAAMwnH,gBAAgB74M,OAAS,EAAG,CAElC+6M,EAAGC,kBAAH,UACA,IAHkC,EAG9BC,EAAc,EACdC,EAAa,EACbN,EAA0B,EALI,cAMLvpH,EAAMwnH,iBAND,IAMlC,2BAAoD,KAAzCsC,EAAyC,QACpB,IAAxBA,EAAe/zM,MAAmD,IAAxB+zM,EAAe/zM,OACzD2zM,EAAGC,kBAAH,iBACAD,EAAGC,kBAAkBG,EAAe1iM,WACpCsiM,EAAGC,kBAAH,aAC4B,IAAxBG,EAAe/zM,OACfwzM,GAA2B,EAC3BK,KAEwB,IAAxBE,EAAe/zM,OACfwzM,GAA2B,EAC3BM,OAjBsB,8BAqBlCH,EAAGC,kBAAH,WACA,IAAML,EAAmB,IAAIlB,EAAiB,EAAGwB,EAAcC,GAE/D,OADAP,EAAiBS,cAAc,EAAGH,EAAa,EAAG,GAC3C,IAAIP,EAAiBC,GAAkB,EAAOC,GAIzD,OADAG,EAAGC,kBAAkB,8BACd,IAAIN,EAAiB,IAAIjB,EAAiB,EAAG,IAAI,EAAO,GAEnE,OA4aJ,SAAqBpoH,EAAO0pH,GACxB,IAAMM,EAAkBhqH,EAAMgqH,gBACxBpgB,EAAiC5pG,EAAM4pG,+BACvC2f,EAA0BvpH,EAAMupH,wBAChC/6F,EAAcxuB,EAAMwuB,YACpB/7E,EAAMutD,EAAMvtD,IACZw3K,EAAgBjqH,EAAMiqH,cACtBhL,EAAQj/G,EAAMi/G,MACdsI,EAAmBvnH,EAAMunH,iBACzBvwH,EAAUgJ,EAAMhJ,QAChBu/E,EAAqBv2E,EAAMu2E,mBAC3BtgI,EAAc+pD,EAAM/pD,YACpBuzJ,EAAaxpG,EAAMwpG,WACnBqe,EAAsB7nH,EAAM6nH,oBAC5Br0G,EAAmBxT,EAAMwT,iBACzBL,EAA0BnT,EAAMmT,wBAChCm2G,EAAmB,IAAIlB,EAAiB31K,EAAM,EAAGwsK,EAAMtwM,QACzDu7M,GAA8B,EAC9B/B,EAAY,EACZnoF,EAAgBu2C,EAChB4zC,EAAmB,EACnBC,EAAmB,EACnBC,EAAqB,EACrB9B,EAAqB,EACrBtyK,EACAyzK,EAAGC,kBAAkB,oBAGrBD,EAAGC,kBAAkB,UAEzB,IAAK,IAAIzB,EAAY,EAAGoC,EAAYrL,EAAMtwM,OAAQu5M,EAAYoC,EAAWpC,IAAa,CAClFK,GAAsB8B,EACtB,IAAM94B,EAAO0tB,EAAMiJ,GACbqC,EAAeh5B,EAAK/lE,SACpBg/F,EAAWj5B,EAAKx7K,KAChB00M,EAA8C,IAArBj3G,GAAqC+9E,EAAKgD,eACnEm2B,EAAiCD,IAA0BT,IAAiC,SAAbQ,IAA4CjB,GAC3HoB,EAAgCxC,IAAcoC,GAAgBh5B,EAAKq5B,gBAKzE,GAJAT,EAAmB,EACnBT,EAAGC,kBAAkB,iBACrBD,EAAGC,kBAAkBe,EAAiC,OAASF,GAC/Dd,EAAGmB,YAAY,IACXJ,EAAuB,CAKnB,IAJJ,IAAIK,EAAiB,EAEbC,EAAa5C,EACb6C,EAAiBhrF,EACd+qF,EAAaR,EAAcQ,IAAc,CAC5C,IACME,EAAsF,GAA5D,IADfz8F,EAAY77E,WAAWo4K,GACO/zH,EAAWg0H,EAAiBh0H,EAAY,GACvF8zH,GAAkBG,EACdF,GAAcxD,IACdyD,GAAkBC,GAU9B,IANIP,IACAhB,EAAGC,kBAAkB,kBACrBD,EAAGC,kBAAkBj5M,OAAO84L,EAAashB,IACzCpB,EAAGC,kBAAkB,QAEzBD,EAAGmB,YAAY,IACR1C,EAAYoC,EAAcpC,IAAa,CAC1CmB,EAAiBS,cAAc5B,EAAY,EAAGD,EAAYkC,EAAkBD,EAAkB5B,GAC9F6B,EAAmB,EACnB,IACIa,OAAS,EACb,GAAiB,IAFAz8F,EAAY77E,WAAWw1K,GAEV,CAC1B8C,EAAaj0H,EAAWgpC,EAAgBhpC,EAAY,GAC/C4yG,GAAkCqhB,EAAY,EAC/CvB,EAAGwB,OAAO,MAGVxB,EAAGwB,OAAO,OAEd,IAAK,IAAI9gB,EAAQ,EAAGA,GAAS6gB,EAAW7gB,IACpCsf,EAAGwB,OAAO,UAIdD,EAAY,EACZvB,EAAGwB,OAAOrD,GAEdsC,GAAoBc,EAChB9C,GAAaZ,IACbvnF,GAAiBirF,GAGzBZ,EAAqBS,MAEpB,CACD,IAAIA,EAAiB,EAErB,IADApB,EAAGmB,YAAY,IACR1C,EAAYoC,EAAcpC,IAAa,CAC1CmB,EAAiBS,cAAc5B,EAAY,EAAGD,EAAYkC,EAAkBD,EAAkB5B,GAC9F6B,EAAmB,EACnB,IAAM31K,EAAW+5E,EAAY77E,WAAWw1K,GACpCgD,EAAqB,EACrBF,EAAY,EAChB,OAAQx2K,GACJ,KAAK,EAEDw2K,EADAE,EAAsBn0H,EAAWgpC,EAAgBhpC,EAEjD,IAAK,IAAIozG,EAAQ,EAAGA,GAAS+gB,EAAoB/gB,IAC7Csf,EAAGwB,OAAO,KAEd,MACJ,KAAK,GACDxB,EAAGwB,OAAO,KACV,MACJ,KAAK,GACDxB,EAAGC,kBAAkB,QACrB,MACJ,KAAK,GACDD,EAAGC,kBAAkB,QACrB,MACJ,KAAK,GACDD,EAAGC,kBAAkB,SACrB,MACJ,KAAK,EACGx2G,EAEAu2G,EAAGwB,OAAO,MAGVxB,EAAGC,kBAAkB,SAEzB,MACJ,KAAK,MACL,KAAK,KACL,KAAK,KACL,KAAK,IACDD,EAAGwB,OAAO,OACV,MACJ,QACQ7gH,IAA6B51D,IAC7Bw2K,IAGA93G,GAA2B1+D,EAAW,GACtCi1K,EAAGwB,OAAO,KAAOz2K,GAEZ0+D,GAAwC,MAAb1+D,EAEhCi1K,EAAGwB,OAAO,MAEL/3G,GAA2Bi4G,EAAmB32K,IACnDi1K,EAAGC,kBAAkB,OACrBD,EAAGC,kBAAkB0B,EAAW52K,IAChCi1K,EAAGC,kBAAkB,KACrBwB,EAAqB,GAGrBzB,EAAGwB,OAAOz2K,GAGtB01K,GAAoBgB,EACpBL,GAAkBK,EACdhD,GAAaZ,IACbvnF,GAAiBirF,GAGzBZ,EAAqBS,EAErBH,EACAP,IAGAA,EAAmB,EAEnBjC,GAAa11K,IAAQy3K,GAA+B34B,EAAKq5B,kBACzDV,GAA8B,EAC9BZ,EAAiBS,cAAc5B,EAAY,EAAGD,EAAWiC,EAAkB5B,IAE/EmB,EAAGC,kBAAkB,WAEpBO,GAGDZ,EAAiBS,cAAct3K,EAAM,EAAGwsK,EAAMtwM,OAAS,EAAGw7M,EAAkB5B,GAE5E0B,GACAP,EAAGC,kBAAkB,yBAGzB,OADAD,EAAGC,kBAAkB,WACd,IAAIN,EAAiBC,EAAkBrzK,EAAaszK,GArmBpD+B,CAmCX,SAAgCtrH,GAC5B,IACIiqH,EACAx3K,EAFE+7E,EAAcxuB,EAAMwuB,aAGY,IAAlCxuB,EAAMsU,wBAAiCtU,EAAMsU,uBAAyBka,EAAY7/G,QAClFs7M,GAAgB,EAChBx3K,EAAMutD,EAAMsU,yBAGZ21G,GAAgB,EAChBx3K,EAAM+7E,EAAY7/G,QAEtB,IAAIqpH,EAqCR,SAAuCA,EAAQuvF,EAAkB90K,GAC7D,IAAIz/B,EAAS,GAAI8qG,EAAY,EAEzBypG,EAAmB,IACnBv0M,EAAO8qG,KAAe,IAAImpG,EAASM,EAAkB,GAAI,IAE7D,IAAK,IAAIhpE,EAAa,EAAG+rE,EAAYtyF,EAAOoK,WAAYmc,EAAa+rE,EAAW/rE,IAAc,CAC1F,IAAM/yB,EAAWwM,EAAO0K,aAAa6b,GACrC,KAAI/yB,GAAY+7F,GAAhB,CAIA,IAAMxxM,EAAOiiH,EAAO9zE,aAAaq6F,GACjC,GAAI/yB,GAAY/4E,EAAK,CACjBz/B,EAAO8qG,KAAe,IAAImpG,EAASx0K,EAAK18B,EAAM,GAC9C,MAEJ/C,EAAO8qG,KAAe,IAAImpG,EAASz7F,EAAUz1G,EAAM,IAEvD,OAAO/C,EAxDMu4M,CAA8BvrH,EAAM2hC,WAAY3hC,EAAMunH,iBAAkB90K,IACtD,IAA3ButD,EAAMwT,kBACqB,IAA3BxT,EAAMwT,kBACsB,IAA3BxT,EAAMwT,kBAA4CxT,EAAM0nH,kBAC9B,IAA3B1nH,EAAMwT,oBACNwkB,EAgLR,SAAgCh4B,EAAOwuB,EAAa/7E,EAAKulF,GACrD,IAgBInlF,EAhBEwjI,EAA2Br2E,EAAMq2E,yBACjCkxC,EAAmBvnH,EAAMunH,iBACzBvwH,EAAUgJ,EAAMhJ,QAChBu/E,EAAqBv2E,EAAMu2E,mBAC3B+wC,EAA4BtnH,EAAMsnH,0BAClCx0E,EAAa9yC,EAAM0nH,iBACnB8D,EAA2C,IAA3BxrH,EAAMwT,iBACtBi4G,EAA2C,IAA3BzrH,EAAMwT,iBACtBk4G,EAAqC1rH,EAAM4nH,mBAAqB5nH,EAAMwpG,WACxEx2L,EAAS,GAAI8qG,EAAY,EACzBygC,EAAa,EACbotE,EAAY3zF,EAAOumB,GAAYxoI,KAC/B61M,EAAgB5zF,EAAOumB,GAAY/yB,SACjCqgG,EAAe7zF,EAAOrpH,OACxBm9M,GAA0B,EAC1Bt5K,EAA0B63D,IAAgCmkB,IAE7B,IAA7Bh8E,GACAs5K,GAA0B,EAC1Bt5K,EAA0BC,EAC1BI,EAAyBJ,GAGzBI,EAAyBw3D,IAA+BmkB,GAM5D,IAJA,IAAIu9F,GAAkB,EAClBC,EAAwB,EACxBC,EAAmBn5E,GAAcA,EAAWk5E,GAC5CE,EAAY31C,EAAqBv/E,EAC5BmxH,EAAYZ,EAAkBY,EAAY11K,EAAK01K,IAAa,CACjE,IAAMz1K,EAAS87E,EAAY77E,WAAWw1K,GAClC8D,GAAoB9D,GAAa8D,EAAiB/gG,YAClD8gG,IACAC,EAAmBn5E,GAAcA,EAAWk5E,IAEhD,IAAIG,OAAc,EAClB,GAAIhE,EAAY31K,GAA2B21K,EAAYt1K,EAEnDs5K,GAAiB,OAEhB,GAAe,IAAXz5K,EAELy5K,GAAiB,OAEhB,GAAe,KAAXz5K,EAEL,GAAI84K,EAEA,GAAIO,EACAI,GAAiB,MAEhB,CACD,IAAMC,EAAcjE,EAAY,EAAI11K,EAAM+7E,EAAY77E,WAAWw1K,EAAY,GAAK,EAClFgE,EAAiC,KAAfC,GAAgD,IAAfA,OAIvDD,GAAiB,OAIrBA,GAAiB,EAUrB,GAPIA,GAAkBr5E,IAClBq5E,IAAmBF,GAAoBA,EAAiB3lG,aAAe6hG,GAAa8D,EAAiB/gG,UAAYi9F,GAGjHgE,GAAkBV,IAClBU,EAAiBL,GAA2B3D,EAAYt1K,GAExDk5K,GAEA,IAAKI,IAAoB7E,GAA6B4E,GAAal1H,EAAU,CAEzE,GAAI00H,EAEA,IADA,IACSh9M,GADaovG,EAAY,EAAI9qG,EAAO8qG,EAAY,GAAG0N,SAAW+7F,GAC3C,EAAG74M,GAAKy5M,EAAWz5M,IAC3CsE,EAAO8qG,KAAe,IAAImpG,EAASv4M,EAAG,OAAQ,QAIlDsE,EAAO8qG,KAAe,IAAImpG,EAASkB,EAAW,OAAQ,GAE1D+D,GAAwBl1H,QAKxBmxH,IAAcyD,GAAkBO,GAAkBhE,EAAYZ,KAC9Dv0M,EAAO8qG,KAAe,IAAImpG,EAASkB,EAAWwD,EAAW,GACzDO,GAAwBl1H,GAahC,IAVe,IAAXtkD,EACAw5K,EAAYl1H,EAEPqT,IAA6B33D,GAClCw5K,GAAa,EAGbA,IAEJH,EAAkBI,EACXhE,IAAcyD,KACjBrtE,EACiBstE,GACbF,EAAY3zF,EAAOumB,GAAYxoI,KAC/B61M,EAAgB5zF,EAAOumB,GAAY/yB,SAO/C,IAAI6gG,GAAqB,EACzB,GAAIN,EAEA,GAAI11C,GAA4Bm1C,EAAc,CAC1C,IAAIc,EAAgB75K,EAAM,EAAI+7E,EAAY77E,WAAWF,EAAM,GAAK,EAC5DwC,EAAgBxC,EAAM,EAAI+7E,EAAY77E,WAAWF,EAAM,GAAK,EAClB,KAAjB65K,GAAqD,KAAjBr3K,GAAoD,IAAjBA,IAEhGo3K,GAAqB,QAIzBA,GAAqB,EAG7B,GAAIA,EACA,GAAIX,EAEA,IADA,IACSh9M,GADaovG,EAAY,EAAI9qG,EAAO8qG,EAAY,GAAG0N,SAAW+7F,GAC3C,EAAG74M,GAAK+jC,EAAK/jC,IACrCsE,EAAO8qG,KAAe,IAAImpG,EAASv4M,EAAG,OAAQ,QAIlDsE,EAAO8qG,KAAe,IAAImpG,EAASx0K,EAAK,OAAQ,QAIpDz/B,EAAO8qG,KAAe,IAAImpG,EAASx0K,EAAKk5K,EAAW,GAEvD,OAAO34M,EAjUMu5M,CAAuBvsH,EAAOwuB,EAAa/7E,EAAKulF,IAE7D,IAAIuxF,EAA0B,EAC9B,GAAIvpH,EAAMwnH,gBAAgB74M,OAAS,EAAG,CAClC,IAAK,IAAID,EAAI,EAAG+jC,EAAMutD,EAAMwnH,gBAAgB74M,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC9D,IAAMo7M,EAAiB9pH,EAAMwnH,gBAAgB94M,GACjB,IAAxBo7M,EAAe/zM,MAIc,IAAxB+zM,EAAe/zM,KAFpBwzM,GAA2B,EAKE,IAAxBO,EAAe/zM,OACpBwzM,GAA2B,GAGnCvxF,EAsTR,SAAiCxJ,EAAa/7E,EAAKulF,EAAQw0F,GACvDA,EAAiB9yM,KAAKiuM,IAAe50K,SAKrC,IAJA,IAAMy0K,EAAkBiF,IAA0B5mJ,UAAU2oD,EAAag+F,GACnEE,EAAqBlF,EAAgB74M,OACvCg+M,EAAsB,EACtB35M,EAAS,GAAI8qG,EAAY,EAAG8uG,EAAqB,EAC5CruE,EAAa,EAAG9rG,EAAMulF,EAAOrpH,OAAQ4vI,EAAa9rG,EAAK8rG,IAAc,CAK1E,IAJA,IAAMjuE,EAAQ0nD,EAAOumB,GACfqtE,EAAgBt7I,EAAMk7C,SACtBmgG,EAAYr7I,EAAMv6D,KAClBusH,EAAgBhyD,EAAM9wB,SACrBmtK,EAAsBD,GAAsBlF,EAAgBmF,GAAqBrmG,YAAcslG,GAAe,CACjH,IAAM9B,EAAiBtC,EAAgBmF,GAKvC,GAJI7C,EAAexjG,YAAcsmG,IAC7BA,EAAqB9C,EAAexjG,YACpCtzG,EAAO8qG,KAAe,IAAImpG,EAAS2F,EAAoBjB,EAAWrpF,MAElEwnF,EAAe5+F,UAAY,GAAK0gG,GAM/B,CAEDgB,EAAqBhB,EACrB54M,EAAO8qG,KAAe,IAAImpG,EAAS2F,EAAoBjB,EAAY,IAAM7B,EAAe1iM,UAAWk7G,EAAgBwnF,EAAetqK,UAClI,MARAotK,EAAqB9C,EAAe5+F,UAAY,EAChDl4G,EAAO8qG,KAAe,IAAImpG,EAAS2F,EAAoBjB,EAAY,IAAM7B,EAAe1iM,UAAWk7G,EAAgBwnF,EAAetqK,UAClImtK,IASJf,EAAgBgB,IAChBA,EAAqBhB,EACrB54M,EAAO8qG,KAAe,IAAImpG,EAAS2F,EAAoBjB,EAAWrpF,IAG1E,IAAMuqF,EAAoB70F,EAAOA,EAAOrpH,OAAS,GAAG68G,SACpD,GAAImhG,EAAsBD,GAAsBlF,EAAgBmF,GAAqBrmG,cAAgBumG,EACjG,KAAOF,EAAsBD,GAAsBlF,EAAgBmF,GAAqBrmG,cAAgBumG,GAAmB,CACvH,IAAM/C,EAAiBtC,EAAgBmF,GACvC35M,EAAO8qG,KAAe,IAAImpG,EAAS2F,EAAoB9C,EAAe1iM,UAAW0iM,EAAetqK,UAChGmtK,IAGR,OAAO35M,EAjWM85M,CAAwBt+F,EAAa/7E,EAAKulF,EAAQh4B,EAAMwnH,iBAEhExnH,EAAM/pD,cAEP+hF,EAqCR,SAA0BxJ,EAAawJ,EAAQ+0F,GAC3C,IAAIF,EAAoB,EACpB75M,EAAS,GAAI8qG,EAAY,EAC7B,GAAIivG,EAEA,IAAK,IAAIr+M,EAAI,EAAG+jC,EAAMulF,EAAOrpH,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC/C,IAAM4hE,EAAQ0nD,EAAOtpH,GACfk9M,EAAgBt7I,EAAMk7C,SAC5B,GAAIqhG,EAAoB,GAAqBjB,EAAe,CAKxD,IAJA,IAAMD,EAAYr7I,EAAMv6D,KAClBusH,EAAgBhyD,EAAM9wB,SACxBwtK,GAAmB,EACnBC,EAAiBJ,EACZ93M,EAAI83M,EAAmB93M,EAAI62M,EAAe72M,IACb,KAA9By5G,EAAY77E,WAAW59B,KACvBi4M,EAAkBj4M,IAEG,IAArBi4M,GAA0Bj4M,EAAIk4M,GAAkB,KAEhDj6M,EAAO8qG,KAAe,IAAImpG,EAAS+F,EAAkB,EAAGrB,EAAWrpF,GACnE2qF,EAAiBD,EAAkB,EACnCA,GAAmB,GAGvBC,IAAmBrB,IACnB54M,EAAO8qG,KAAe,IAAImpG,EAAS2E,EAAeD,EAAWrpF,SAIjEtvH,EAAO8qG,KAAextC,EAE1Bu8I,EAAoBjB,OAKxB,IAAK,IAAIl9M,EAAI,EAAG+jC,EAAMulF,EAAOrpH,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC/C,IAAM4hE,EAAQ0nD,EAAOtpH,GACfk9M,EAAgBt7I,EAAMk7C,SACxB33E,EAAQ+3K,EAAgBiB,EAC5B,GAAIh5K,EAAO,GAAoB,CAI3B,IAHA,IAAM83K,EAAYr7I,EAAMv6D,KAClBusH,EAAgBhyD,EAAM9wB,SACtB0tK,EAAc5kM,KAAK++E,KAAKxzD,EAAO,IAC5B9+B,EAAI,EAAGA,EAAIm4M,EAAan4M,IAAK,CAClC,IAAIo4M,EAAgBN,EAAyB,GAAJ93M,EACzC/B,EAAO8qG,KAAe,IAAImpG,EAASkG,EAAexB,EAAWrpF,GAEjEtvH,EAAO8qG,KAAe,IAAImpG,EAAS2E,EAAeD,EAAWrpF,QAG7DtvH,EAAO8qG,KAAextC,EAE1Bu8I,EAAoBjB,EAG5B,OAAO54M,EA7FMo6M,CAAiB5+F,EAAawJ,GAASh4B,EAAM3pD,cAAgB2pD,EAAMynH,gBAE5EznH,EAAMmT,0BAA4BnT,EAAM3pD,eACxC2hF,EAyHR,SAAkCxJ,EAAawJ,GAC3C,IADmD,EAC/ChlH,EAAS,GACTq6M,EAAe,IAAIpG,EAAS,EAAG,GAAI,GACnCwB,EAAa,EAHkC,cAI/BzwF,GAJ+B,IAInD,2BAA4B,CAExB,IAFwB,IAAjB1nD,EAAiB,QAClBs7I,EAAgBt7I,EAAMk7C,SACrBi9F,EAAamD,EAAenD,IAAc,CAEzC2C,EADa58F,EAAY77E,WAAW81K,MAEhCA,EAAa4E,EAAa7hG,WAE1B6hG,EAAe,IAAIpG,EAASwB,EAAYn4I,EAAMv6D,KAAMu6D,EAAM9wB,UAC1DxsC,EAAOmB,KAAKk5M,IAEhBA,EAAe,IAAIpG,EAASwB,EAAa,EAAG,aAAcn4I,EAAM9wB,UAChExsC,EAAOmB,KAAKk5M,IAGhB5E,EAAa4E,EAAa7hG,WAE1B6hG,EAAe,IAAIpG,EAAS2E,EAAet7I,EAAMv6D,KAAMu6D,EAAM9wB,UAC7DxsC,EAAOmB,KAAKk5M,KArB+B,8BAwBnD,OAAOr6M,EAjJMs6M,CAAyB9+F,EAAawJ,IAEnD,OAAO,IAAIu1F,EAAwBvtH,EAAMsnH,0BAA2BtnH,EAAM4pG,+BAAgCp7E,EAAa/7E,EAAKw3K,EAAejyF,EAAQuxF,EAAyBvpH,EAAMunH,iBAAkBvnH,EAAMhJ,QAASgJ,EAAMu2E,mBAAoBv2E,EAAM/pD,YAAa+pD,EAAMwpG,WAAYxpG,EAAM6nH,oBAAqB7nH,EAAMwT,iBAAkBxT,EAAMmT,yBA9ExTq6G,CAAuBxtH,GAAQ0pH,GAE/C,IAAM+D,EACT,WAAYnE,EAAkB94K,EAAMyF,EAAaszK,GAAyB,oBACtE34M,KAAK04M,iBAAmBA,EACxB14M,KAAK4/B,KAAOA,EACZ5/B,KAAKqlC,YAAcA,EACnBrlC,KAAK24M,wBAA0BA,GAGhC,SAASmE,EAAgB1tH,GAC5B,IAAI0pH,EAAKiE,YAAoB,KACzB9nG,EAAM4jG,EAAezpH,EAAO0pH,GAChC,OAAO,IAAI+D,EAAkB5nG,EAAIyjG,iBAAkBI,EAAGkE,QAAS/nG,EAAI5vE,YAAa4vE,EAAI0jG,yB,IAElFgE,EACF,WAAYvD,EAAiBpgB,EAAgCp7E,EAAa/7E,EAAKw3K,EAAehL,EAAOsK,EAAyBhC,EAAkBvwH,EAASu/E,EAAoBtgI,EAAauzJ,EAAYqe,EAAqBr0G,EAAkBL,GAAyB,oBAClQviG,KAAKo5M,gBAAkBA,EACvBp5M,KAAKg5L,+BAAiCA,EACtCh5L,KAAK49G,YAAcA,EACnB59G,KAAK6hC,IAAMA,EACX7hC,KAAKq5M,cAAgBA,EACrBr5M,KAAKquM,MAAQA,EACbruM,KAAK24M,wBAA0BA,EAC/B34M,KAAK22M,iBAAmBA,EACxB32M,KAAKomF,QAAUA,EACfpmF,KAAK2lK,mBAAqBA,EAC1B3lK,KAAKqlC,YAAcA,EACnBrlC,KAAK44L,WAAaA,EAClB54L,KAAKi3M,oBAAsBA,EAC3Bj3M,KAAK4iG,iBAAmBA,EACxB5iG,KAAKuiG,wBAA0BA,GAyIvC,SAASi4G,EAAmB32K,GACxB,OAAIA,EAAW,GACU,IAAbA,EAEK,MAAbA,IAICA,GAAY,MAAUA,GAAY,MAC/BA,GAAY,MAAUA,GAAY,MAClCA,GAAY,MAAUA,GAAY,MACtB,OAAbA,GAobX,SAAS42K,EAAWl6M,GAChB,OAAOA,EAAEkY,SAAS,IAAIs8C,cAAckoJ,SAAS,EAAG,O,+RCx0BzCC,EACAA,EAwHAC,EACAA,E,2GClJEC,EAAb,iGACI,SAAoBl4D,EAAQpwH,EAAO4oF,EAAgB2/F,EAAmB1/F,EAAc2/F,GAOhF,IANA,IAAIv7F,EAAYrqG,KAAKmgD,IAAI8lD,EAAeD,GAAkB,EACtD6/F,EAAY7/F,EAAiBC,EAC7B6/F,EAASH,EAAoBC,EAC7BG,EAASJ,EAAoBC,EAC7Bl7M,EAAS,GAEJtE,EAAI,EAAGA,EAAIikH,EAAWjkH,IAAK,CAChC,IAAIyhB,EAAam+F,GAAkB6/F,GAAYz/M,EAAIA,GAC/CygB,EAAc8wG,IAAcwmE,yBAAyB3wC,EAAQpwH,EAAOvV,EAAY89L,GAChF5+L,EAAY4wG,IAAcwmE,yBAAyB3wC,EAAQpwH,EAAOvV,EAAY+9L,GAC9EppE,EAAqB7kB,IAAcquF,yBAAyBx4D,EAAQpwH,EAAO,IAAI3U,IAASZ,EAAYhB,IACpG41H,EAAmB9kB,IAAcquF,yBAAyBx4D,EAAQpwH,EAAO,IAAI3U,IAASZ,EAAYd,IAEtG,GAAIg/L,EAAO,CACP,GAAIvpE,EAAqBopE,EACrB,SAEJ,GAAInpE,EAAmBkpE,EACnB,SAGR,GAAIG,EAAO,CACP,GAAIrpE,EAAmBkpE,EACnB,SAEJ,GAAInpE,EAAqBopE,EACrB,SAGRl7M,EAAOmB,KAAK,IAAIolF,IAAkB,IAAItqE,IAAMkB,EAAYhB,EAAagB,EAAYhB,GAAc,EAAG,IAAI4B,IAASZ,EAAYd,GAAY,IAE3I,GAAsB,IAAlBrc,EAAOrE,OAEP,IAAK,IAAID,EAAI,EAAGA,EAAIikH,EAAWjkH,IAAK,CAChC,IAAMyhB,EAAam+F,GAAkB6/F,GAAYz/M,EAAIA,GAC/C23F,EAAY3gE,EAAMgsG,iBAAiBvhH,GACzCnd,EAAOmB,KAAK,IAAIolF,IAAkB,IAAItqE,IAAMkB,EAAYk2E,EAAWl2E,EAAYk2E,GAAY,EAAG,IAAIt1E,IAASZ,EAAYk2E,GAAY,IAG3I,MAAO,CACHkoH,WAAYv7M,EACZm7M,SAAUA,EACV7/F,eAAgBA,EAChBkgG,iBAAkBP,EAClB1/F,aAAcA,EACdkgG,eAAgBP,KA/C5B,8BAkDI,SAAwBp4D,EAAQpwH,EAAOgpL,GACnC,IAAIC,EAAqBD,EAAqBC,mBAI9C,OAHIA,EAAqB,GACrBA,IAEGX,EAAgBY,aAAa94D,EAAQpwH,EAAOgpL,EAAqBG,mBAAoBH,EAAqBI,qBAAsBJ,EAAqBrS,iBAAkBsS,KAvDtL,+BAyDI,SAAyB74D,EAAQpwH,EAAOgpL,GAIpC,IAHA,IAAIK,EAAsB,EACpBC,EAAoB1mM,KAAKgI,IAAIo+L,EAAqBG,mBAAoBH,EAAqBrS,kBAC3F4S,EAAoB3mM,KAAKC,IAAImmM,EAAqBG,mBAAoBH,EAAqBrS,kBACxFlsL,EAAa6+L,EAAmB7+L,GAAc8+L,EAAmB9+L,IAAc,CACpF,IAAM++L,EAAoBxpL,EAAMgsG,iBAAiBvhH,GAC3Cg/L,EAA0BlvF,IAAcquF,yBAAyBx4D,EAAQpwH,EAAO,IAAI3U,IAASZ,EAAY++L,IAC/GH,EAAsBzmM,KAAKC,IAAIwmM,EAAqBI,GAExD,IAAIR,EAAqBD,EAAqBC,mBAI9C,OAHIA,EAAqBI,GACrBJ,IAEG/9M,KAAKg+M,aAAa94D,EAAQpwH,EAAOgpL,EAAqBG,mBAAoBH,EAAqBI,qBAAsBJ,EAAqBrS,iBAAkBsS,KAtE3K,4BAwEI,SAAsB74D,EAAQpwH,EAAOgpL,EAAsBU,GACvD,IAAM30G,EAAa20G,EAAUt5D,EAAOz+D,SAAW,EACzCglH,EAAmB/zL,KAAKC,IAAI,EAAGmmM,EAAqBrS,iBAAmB5hG,GAC7E,OAAO7pG,KAAKg+M,aAAa94D,EAAQpwH,EAAOgpL,EAAqBG,mBAAoBH,EAAqBI,qBAAsBzS,EAAkBqS,EAAqBC,sBA3E3K,8BA6EI,SAAwB74D,EAAQpwH,EAAOgpL,EAAsBU,GACzD,IAAM30G,EAAa20G,EAAUt5D,EAAOz+D,SAAW,EACzCglH,EAAmB/zL,KAAKgI,IAAIoV,EAAMg1E,eAAgBg0G,EAAqBrS,iBAAmB5hG,GAChG,OAAO7pG,KAAKg+M,aAAa94D,EAAQpwH,EAAOgpL,EAAqBG,mBAAoBH,EAAqBI,qBAAsBzS,EAAkBqS,EAAqBC,wBAhF3K,K,oDDcaU,EAAb,sKACI,SAAiB/sL,EAAUuB,EAAQp0B,GAC/B,IAAMuqF,EAAYn2D,EAAOyrL,gBACpBt1H,GAILppF,KAAK2+M,qBAAqBv1H,EAAWvqF,GAAQ,QAPrD,GAAuCi0B,MAW5BoqL,EAuHRA,IAAkBA,EAAgB,KAnGnBjnM,YAAc,CACxBA,YAAa,uCACbpX,KAAM,CACF,CACI+X,KAAM,gCACNX,YAAa,+eAYbguD,WApCe,SAAUnnD,GACjC,IAAKivL,IAAejvL,GAChB,OAAO,EAEX,IAAM8hM,EAAY9hM,EAClB,QAAKivL,IAAe6S,EAAUt6M,QAGzBynM,IAAkB6S,EAAU1S,MAAQH,IAAe6S,EAAU1S,SAG7DH,IAAkB6S,EAAU58M,SAAW+pM,IAAe6S,EAAU58M,YAGhE+pM,IAAkB6S,EAAUC,gBAAkB9S,IAAgB6S,EAAUC,gBAuBrE5vH,OAAQ,CACJ,KAAQ,SACR,SAAY,CAAC,MACb,WAAc,CACV,GAAM,CACF,KAAQ,SACR,KAAQ,CAAC,KAAM,SAEnB,GAAM,CACF,KAAQ,SACR,KAAQ,CAAC,OAAQ,cAAe,OAAQ,aAE5C,MAAS,CACL,KAAQ,SACR,QAAW,GAEf,aAAgB,CACZ,KAAQ,gBAUhCiuH,EAAc/Q,aAAe,CACzBG,GAAI,KACJC,KAAM,QAKV2Q,EAAc/P,QAAU,CACpBxtG,KAAM,OACNytG,YAAa,cACb0R,KAAM,OACNC,SAAU,YA0Cd7B,EAAcx2K,MAxCd,SAAe7nC,GACX,IAAIwN,EAYAm9L,EAXJ,OAAQ3qM,EAAKyF,IACT,KAAK44M,EAAc/Q,aAAaG,GAC5BjgM,EAAY,EACZ,MACJ,KAAK6wM,EAAc/Q,aAAaI,KAC5BlgM,EAAY,EACZ,MACJ,QAEI,OAAO,KAGf,OAAQxN,EAAKqtM,IACT,KAAKgR,EAAc/P,QAAQxtG,KACvB6pG,EAAO,EACP,MACJ,KAAK0T,EAAc/P,QAAQC,YACvB5D,EAAO,EACP,MACJ,KAAK0T,EAAc/P,QAAQ2R,KACvBtV,EAAO,EACP,MACJ,KAAK0T,EAAc/P,QAAQ4R,SACvBvV,EAAO,EACP,MACJ,QACIA,EAAO,EAIf,MAAO,CACHn9L,UAAWA,EACXm9L,KAAMA,EACNxnM,MALU0V,KAAKE,MAAM/Y,EAAKmD,OAAS,GAMnC68M,eALmBhgN,EAAKggN,aAMxB5S,SAAWptM,EAAKotM,UAMjBkR,EAmDRA,IAAgBA,EAAc,KArCjBlnM,YAAc,CACtBA,YAAa,sDACbpX,KAAM,CACF,CACI+X,KAAM,8BACNX,YAAa,oRAObguD,WAzBa,SAAUnnD,GAC/B,IAAKivL,IAAejvL,GAChB,OAAO,EAEX,IAAMkiM,EAAeliM,EACrB,SAAKivL,IAAeiT,EAAaz/L,cAAgBwsL,IAAeiT,EAAaz/L,iBAGxEwsL,IAAkBiT,EAAahrD,MAAQ+3C,IAAeiT,EAAahrD,MAkBhE/kE,OAAQ,CACJ,KAAQ,SACR,SAAY,CAAC,cACb,WAAc,CACV,WAAc,CACV,KAAQ,CAAC,SAAU,WAEvB,GAAM,CACF,KAAQ,SACR,KAAQ,CAAC,MAAO,SAAU,gBAUlDkuH,EAAY8B,cAAgB,CACxBC,IAAK,MACLnoE,OAAQ,SACRooE,OAAQ,U,IA2CLC,EAxCLC,E,WACF,WAAYzhN,GAAQ,+BAEhBA,EAAO0hN,kBAAkB,IAAO,eAAe,SAAC5tL,EAAU7yB,GAEtD,IAAM0gN,EAAgB7tL,EAASe,IAAIO,KAAoBE,uBACvD,SAAIqsL,IAAiBA,EAAcC,iBACxB,EAAKC,kBAAkB/tL,EAAU6tL,EAAe1gN,MAK/DjB,EAAO0hN,kBAAkB,IAAM,8BAA8B,SAAC5tL,EAAU7yB,GAEpE,IAAMwQ,EAAgBjF,SAASiF,cAC/B,SAAIA,GAAiB,CAAC,QAAS,YAAYzO,QAAQyO,EAAc+G,QAAQ2sB,gBAAkB,KACvF,EAAK28K,iBACE,MAKf9hN,EAAO0hN,kBAAkB,EAAG,eAAe,SAAC5tL,EAAU7yB,GAElD,IAAM8gN,EAAejuL,EAASe,IAAIO,KAAoBG,sBACtD,QAAIwsL,IACAA,EAAa3iL,QACN,EAAKyiL,kBAAkB/tL,EAAUiuL,EAAc9gN,O,qDAKlE,SAAkB6yB,EAAUuB,EAAQp0B,GAChC,IAAMuD,EAASpC,KAAKyzB,iBAAiB/B,EAAUuB,EAAQp0B,GACvD,OAAIuD,IAGG,M,MAIf,SAAWg9M,GAAwB,IACzBQ,EADyB,kDAE3B,WAAY1vL,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAFS,wDAM3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDi4K,IAAmB2Y,OAAO32H,EAAWA,EAAU42H,wBAAyBhgN,KAAK6/M,iBAAkBhhN,EAAK8f,SAAU9f,EAAKiqM,gBAEvH1/G,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAXpB,GACCsvL,GAahCW,EAAuBc,OAAS1qL,YAAsB,IAAIoqL,EAAkB,CACxErpM,GAAI,UACJ0yE,iBAAiB,EACjB94D,kBAActW,KAElBulM,EAAuBe,aAAe3qL,YAAsB,IAAIoqL,EAAkB,CAC9ErpM,GAAI,gBACJ0yE,iBAAiB,EACjB94D,kBAActW,KAtBa,IAwBzBumM,EAxByB,0KAyB3B,SAAqBh3H,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChB,IAAMjjI,EAASpC,KAAKqgN,uBAAuBj3H,EAAWA,EAAU42H,wBAAyB52H,EAAUk3H,4BAA6BzhN,GAChIuqF,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB/sB,EAAOu7M,WAAWv7L,KAAI,SAACsnE,GAAD,OAAeE,IAAY49G,cAAc99G,OACxHN,EAAUm3H,0BAA0B,CAChCC,QAAQ,EACRvC,mBAAoB77M,EAAOs7G,eAC3BwgG,qBAAsB97M,EAAOw7M,iBAC7BnS,iBAAkBrpM,EAAOu7G,aACzBogG,mBAAoB37M,EAAOy7M,iBAE3Bz7M,EAAOm7M,SACPn0H,EAAUq3H,oBAAoB5hN,EAAKswB,QAGnCi6D,EAAUs3H,uBAAuB7hN,EAAKswB,YAxCnB,GAwBGsvL,GAoBlCW,EAAuBuB,aAAenrL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,eACJ4Z,kBAActW,IAJkC,0DAOxD,SAAuBuvE,EAAWn4D,EAAS6sL,EAAsBj/M,GAE7D,IAAM+hN,EAAoBx3H,EAAUt0D,MAAMowG,iBAAiBrmI,EAAK8f,UAC1DkiM,EAAwBz3H,EAAUC,qBAAqB0/G,qBAAqB,IAAI5oL,IAASthB,EAAKiqM,aAAavpL,WAAY1gB,EAAKiqM,aAAatpL,QAASohM,GACpJ3C,EAAqBp/M,EAAKiiN,eAAiBhD,EAAqBG,mBAAqB4C,EAAsBthM,WAC3G2+L,EAAuBr/M,EAAKiiN,eAAiBhD,EAAqBI,qBAAuBr/M,EAAKkiN,YAAc,EAChH,OAAO3D,EAAgBY,aAAa50H,EAAUE,aAAcF,EAAW60H,EAAoBC,EAAsB2C,EAAsBthM,WAAY1gB,EAAKkiN,YAAc,OAblH,EAAI,CAAcX,KAgB9EhB,EAAuB4B,uBAAyBxrL,YAAsB,sDAClE,aAAc,uCACJ,CACFjf,GAAI,yBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OApSA,EAqSAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,MAToC,0DAalE,SAAuBm4D,EAAWn4D,EAAS6sL,EAAsBj/M,GAC7D,OAAOu+M,EAAgB6D,iBAAiB73H,EAAUE,aAAcF,EAAW00H,OAdb,EAAI,CAAcsC,KAiBxFhB,EAAuB8B,wBAA0B1rL,YAAsB,sDACnE,aAAc,uCACJ,CACFjf,GAAI,0BACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OArTA,EAsTAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,MATqC,0DAanE,SAAuBm4D,EAAWn4D,EAAS6sL,EAAsBj/M,GAC7D,OAAOu+M,EAAgB+D,kBAAkB/3H,EAAUE,aAAcF,EAAW00H,OAdb,EAAI,CAAcsC,KA7E1D,IA8FzBgB,EA9FyB,kDA+F3B,WAAYlxL,GAAM,kCACd,cAAMA,IACDmxL,SAAWnxL,EAAKsuL,QAFP,EA/FS,0DAmG3B,SAAuBp1H,EAAWn4D,EAAS6sL,EAAsBj/M,GAC7D,OAAOu+M,EAAgBkE,eAAel4H,EAAUE,aAAcF,EAAW00H,EAAsB99M,KAAKqhN,cApG7E,GA8FKjB,GASpChB,EAAuBmC,qBAAuB/rL,YAAsB,IAAI4rL,EAAsB,CAC1F5C,SAAS,EACTjoM,GAAI,uBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9UQ,EA+URH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,OAG1BmuL,EAAuBoC,yBAA2BhsL,YAAsB,IAAI4rL,EAAsB,CAC9F5C,SAAS,EACTjoM,GAAI,2BACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAzVQ,EA0VRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,OA1HK,IA6HzBwwL,EA7HyB,kDA8H3B,WAAYvxL,GAAM,kCACd,cAAMA,IACDmxL,SAAWnxL,EAAKsuL,QAFP,EA9HS,0DAkI3B,SAAuBp1H,EAAWn4D,EAAS6sL,EAAsBj/M,GAC7D,OAAOu+M,EAAgBsE,iBAAiBt4H,EAAUE,aAAcF,EAAW00H,EAAsB99M,KAAKqhN,cAnI/E,GA6HOjB,GAStChB,EAAuBuC,uBAAyBnsL,YAAsB,IAAIisL,EAAwB,CAC9FjD,SAAS,EACTjoM,GAAI,yBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7WQ,EA8WRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,OAG1BmuL,EAAuBwC,2BAA6BpsL,YAAsB,IAAIisL,EAAwB,CAClGjD,SAAS,EACTjoM,GAAI,6BACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAxXQ,EAyXRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTG,MAAO,CAAEH,QAAS,OAzJK,IA4JzB4wL,EA5JyB,kDA6J3B,aAAc,uCACJ,CACFtrM,GAAI,aACJ4Z,kBAActW,EACd5D,YAAa6rM,IAAY7rM,cAjKN,wDAoK3B,SAAqBmzE,EAAWvqF,GAC5B,IAAMkjN,EAASD,IAAYp7K,MAAM7nC,GAC5BkjN,GAIL/hN,KAAKgiN,eAAe54H,EAAWvqF,EAAKswB,OAAQ4yL,KA1KrB,4BA4K3B,SAAe34H,EAAWj6D,EAAQtwB,GAC9BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgB3wL,EAAQ,EAAkB0yL,EAAeI,MAAM74H,EAAWA,EAAU84H,kBAAmBrjN,IACjHuqF,EAAU62H,oBAAoB9wL,GAAQ,MA/Kf,oBAiL3B,SAAai6D,EAAWi+G,EAASxoM,GAC7B,IAAMoqF,EAAkBpqF,EAAKotM,OACvBjqM,EAAQnD,EAAKmD,MACnB,OAAQnD,EAAKwN,WACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACD,OAAO+6L,IAAmB+a,WAAW/4H,EAAWi+G,EAASxoM,EAAKwN,UAAW48E,EAAiBjnF,EAAOnD,EAAK2qM,MAC1G,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACD,OAAOpC,IAAmBgb,aAAah5H,EAAWi+G,EAASxoM,EAAKwN,UAAW48E,EAAiBjnF,GAChG,QACI,OAAO,UAvMQ,GA4JFy8M,GA+C7BW,EAAuByC,eAAiBA,EACxCzC,EAAuBjY,WAAa3xK,YAAsB,IAAIqsL,GA5M/B,IA6MzBQ,EA7MyB,kDA8M3B,WAAYnyL,GAAM,kCACd,cAAMA,IACDoyL,YAAcpyL,EAAKrxB,KAFV,EA9MS,wDAkN3B,SAAqBuqF,EAAWm5H,GAC5B,IAAI1jN,EAAOmB,KAAKsiN,aACgB,IAA5BtiN,KAAKsiN,YAAYtgN,QAEjBnD,EAAO,CACHwN,UAAWrM,KAAKsiN,YAAYj2M,UAC5Bm9L,KAAMxpM,KAAKsiN,YAAY9Y,KACvByC,OAAQjsM,KAAKsiN,YAAYrW,OACzBjqM,MAAOonF,EAAUE,aAAa7C,WAGtC2C,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgByC,EAAYpzL,OAAQ,EAAkBi4K,IAAmB+a,WAAW/4H,EAAWA,EAAU84H,kBAAmBrjN,EAAKwN,UAAWxN,EAAKotM,OAAQptM,EAAKmD,MAAOnD,EAAK2qM,OACpLpgH,EAAU62H,oBAAoBsC,EAAYpzL,QAAQ,OA/N3B,GA6MMsvL,GAqBrCW,EAAuBoD,WAAahtL,YAAsB,IAAI6sL,EAAuB,CACjFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,aACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9cQ,EA+cRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAoBC,UAAW,CAAC,UAGxDkuL,EAAuBqD,iBAAmBjtL,YAAsB,IAAI6sL,EAAuB,CACvFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,mBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9dQ,EA+dRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,SAGjBmuL,EAAuBsD,YAAcltL,YAAsB,IAAI6sL,EAAuB,CAClFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,cACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7eQ,EA8eRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAqBC,UAAW,CAAC,UAGzDkuL,EAAuBuD,kBAAoBntL,YAAsB,IAAI6sL,EAAuB,CACxFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,oBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7fQ,EA8fRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,SAGjBmuL,EAAuBwD,SAAWptL,YAAsB,IAAI6sL,EAAuB,CAC/ExjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,WACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA5gBQ,EA6gBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAkBC,UAAW,CAAC,UAGtDkuL,EAAuByD,eAAiBrtL,YAAsB,IAAI6sL,EAAuB,CACrFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,iBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA5hBQ,EA6hBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTC,UAAW,CAAC,MACZG,IAAK,CAAEJ,QAAS,MAChBG,MAAO,CAAEH,QAAS,UAG1BmuL,EAAuB0D,aAAettL,YAAsB,IAAI6sL,EAAuB,CACnFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,OAAQ,GAEZuU,GAAI,eACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9iBQ,EA+iBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,OAGjBmuL,EAAuB2D,mBAAqBvtL,YAAsB,IAAI6sL,EAAuB,CACzFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,OAAQ,GAEZuU,GAAI,qBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7jBQ,EA8jBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,SAGjBmuL,EAAuB4D,WAAaxtL,YAAsB,IAAI6sL,EAAuB,CACjFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,aACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA5kBQ,EA6kBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAoBC,UAAW,CAAC,UAGxDkuL,EAAuB6D,iBAAmBztL,YAAsB,IAAI6sL,EAAuB,CACvFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,MAAO,GAEXuU,GAAI,mBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA5lBQ,EA6lBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTC,UAAW,CAAC,MACZG,IAAK,CAAEJ,QAAS,MAChBG,MAAO,CAAEH,QAAS,UAG1BmuL,EAAuB8D,eAAiB1tL,YAAsB,IAAI6sL,EAAuB,CACrFxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,OAAQ,GAEZuU,GAAI,iBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9mBQ,EA+mBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,OAGjBmuL,EAAuB+D,qBAAuB3tL,YAAsB,IAAI6sL,EAAuB,CAC3FxjN,KAAM,CACFwN,UAAW,EACXm9L,KAAM,EACNyC,QAAQ,EACRjqM,OAAQ,GAEZuU,GAAI,uBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7nBQ,EA8nBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,SAGjBmuL,EAAuBgE,aAAe5tL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,eACJ4Z,kBAActW,IAJkC,wDAOxD,SAAqBuvE,EAAWvqF,GAC5B,IAAIohI,EAEAA,EADAphI,EAAKwkN,UACMjc,IAAmBxzF,KAAKxqB,EAAWA,EAAU42H,yBAAyB,EAAOnhN,EAAK8f,SAAU9f,EAAKiqM,cAGjG1B,IAAmB2Y,OAAO32H,EAAWA,EAAU42H,yBAAyB,EAAOnhN,EAAK8f,SAAU9f,EAAKiqM,cAElH,IAAMz+G,EAASjB,EAAU84H,kBAEzB,GAAI73H,EAAOtsF,OAAS,EAGhB,IAFA,IAAMulN,EAAoBrjF,EAASx2C,WAAaw2C,EAASx2C,WAAW9qE,SAAW,KACzE4kM,EAAmBtjF,EAASv2C,UAAYu2C,EAASv2C,UAAU/qE,SAAW,KACnE7gB,EAAI,EAAG+jC,EAAMwoD,EAAOtsF,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC/C,IAAMwW,EAAQ+1E,EAAOvsF,GACrB,KAAIwlN,GAAqBhvM,EAAMm1E,WAAWtK,UAAUvgE,iBAAiB0kM,OAGjEC,GAAoBjvM,EAAMo1E,UAAUvK,UAAUvgE,iBAAiB2kM,IAOnE,OAHAl5H,EAAO93D,OAAOz0B,EAAG,GACjBsrF,EAAUt0D,MAAMuwG,wBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBk7D,GAKjEA,EAAO9mF,KAAK08H,GACZ72C,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBk7D,OAtCL,EAAI,CAAco0H,KAyC9EW,EAAuBoE,uBAAyBhuL,YAAsB,sDAClE,aAAc,uCACJ,CACFjf,GAAI,0BACJ4Z,kBAActW,IAJ4C,wDAOlE,SAAqBuvE,EAAWvqF,GAC5B,IAAM4kN,EAAuBr6H,EAAUs6H,0BACjCr5H,EAASjB,EAAU84H,kBACnByB,EAAYt5H,EAAO3lF,MAAM,GAC/Bi/M,EAAUF,GAAwBrc,IAAmB2Y,OAAO32H,EAAWiB,EAAOo5H,IAAuB,EAAM5kN,EAAK8f,SAAU9f,EAAKiqM,cAC/H1/G,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBw0L,OAbK,EAAI,CAAclF,KAzczD,IAydzBmF,EAzdyB,kDA0d3B,WAAY1zL,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EA1dS,wDA8d3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBi4K,IAAmBY,sBAAsB5+G,EAAWA,EAAU84H,kBAAmBliN,KAAK6/M,mBAC/Iz2H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAjepB,GAydLsvL,GAW1BW,EAAuByE,WAAaruL,YAAsB,IAAIouL,EAAY,CACtE36H,iBAAiB,EACjB1yE,GAAI,aACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA3sBQ,EA4sBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAeC,UAAW,CAAC,WAGnDkuL,EAAuB0E,iBAAmBtuL,YAAsB,IAAIouL,EAAY,CAC5E36H,iBAAiB,EACjB1yE,GAAI,mBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAttBQ,EAutBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,KAAkCC,UAAW,CAAC,WAvfvC,IA0fzB6yL,EA1fyB,kDA2f3B,WAAY7zL,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EA3fS,wDA+f3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBnvB,KAAKgkN,MAAM56H,EAAU84H,oBAC9E94H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,KAlgBpB,mBAogB3B,SAAMk4K,GAEF,IADA,IAAMjlM,EAAS,GACNtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjByhB,EAAai7F,EAAO/wB,WAAW9qE,SAASY,WAC9Cnd,EAAOtE,GAAK8rF,IAAYO,eAAeqwB,EAAO/wB,WAAWpQ,KAAKr5E,KAAK6/M,iBAAkBtgM,EAAY,EAAG,IAExG,OAAOnd,MA3gBgB,GA0fAq8M,GAoB/BW,EAAuB6E,gBAAkBzuL,YAAsB,IAAIuuL,EAAiB,CAChF96H,iBAAiB,EACjB1yE,GAAI,kBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OArvBQ,EAsvBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTI,IAAK,CAAEJ,QAAS,SAGxBmuL,EAAuB8E,sBAAwB1uL,YAAsB,IAAIuuL,EAAiB,CACtF96H,iBAAiB,EACjB1yE,GAAI,wBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAhwBQ,EAiwBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTI,IAAK,CAAEJ,QAAS,UAjiBO,IAoiBzBkzL,EApiByB,kDAqiB3B,WAAYj0L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAriBS,wDAyiB3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBi4K,IAAmBsB,gBAAgBt/G,EAAWA,EAAU84H,kBAAmBliN,KAAK6/M,iBAAkBhhN,EAAK00F,SAAU,IAC1KnK,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OA5iBpB,GAoiBNsvL,GAWzBW,EAAuBgF,UAAY5uL,YAAsB,IAAI2uL,EAAW,CACpEl7H,iBAAiB,EACjB1yE,GAAI,YACJ4Z,kBAActW,EACdwW,OAAQ,CACJxxB,KAAM,CAAE00F,QAAQ,GAChBxiE,OAvxBQ,EAwxBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAcC,UAAW,CAAC,QAE9Cjb,YAAa,CACTA,YAAa,YACbpX,KAAM,CAAC,CACC+X,KAAM,OACNq4E,OAAQ,CACJ9pF,KAAM,SACN+b,WAAY,CACR,OAAU,CACNjL,YAAa6M,IAAa,aAAc,oDACxC3d,KAAM,UACNurF,SAAS,WAOrC0uH,EAAuBiF,gBAAkB7uL,YAAsB,IAAI2uL,EAAW,CAC1El7H,iBAAiB,EACjB1yE,GAAI,kBACJ4Z,kBAActW,EACdwW,OAAQ,CACJxxB,KAAM,CAAE00F,QAAQ,GAChBxiE,OAnzBQ,EAozBRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,KAAiCC,UAAW,CAAC,QAEjEjb,YAAa,CACTA,YAAa,gBACbpX,KAAM,CAAC,CACC+X,KAAM,OACNq4E,OAAQ,CACJ9pF,KAAM,SACN+b,WAAY,CACR,OAAU,CACNjL,YAAa6M,IAAa,aAAc,oDACxC3d,KAAM,UACNurF,SAAS,WAhmBN,IAumBzB4zH,EAvmByB,kDAwmB3B,WAAYp0L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAxmBS,wDA4mB3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBnvB,KAAKgkN,MAAM56H,EAAWA,EAAU84H,oBACzF94H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,KA/mBpB,mBAinB3B,SAAMi6D,EAAWi+G,GAEb,IADA,IAAMjlM,EAAS,GACNtE,EAAI,EAAG+jC,EAAMwlK,EAAQtpM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM08G,EAAS6sF,EAAQvpM,GACjByhB,EAAai7F,EAAO/wB,WAAW9qE,SAASY,WACxCk2E,EAAYrM,EAAUt0D,MAAMgsG,iBAAiBvhH,GACnDnd,EAAOtE,GAAK8rF,IAAYO,eAAeqwB,EAAO/wB,WAAWpQ,KAAKr5E,KAAK6/M,iBAAkBtgM,EAAYk2E,EAAW,IAEhH,OAAOrzF,MAznBgB,GAumBFq8M,GAqB7BW,EAAuBmF,cAAgB/uL,YAAsB,IAAI8uL,EAAe,CAC5Er7H,iBAAiB,EACjB1yE,GAAI,gBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAn2BQ,EAo2BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTI,IAAK,CAAEJ,QAAS,SAGxBmuL,EAAuBoF,oBAAsBhvL,YAAsB,IAAI8uL,EAAe,CAClFr7H,iBAAiB,EACjB1yE,GAAI,sBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA92BQ,EA+2BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTI,IAAK,CAAEJ,QAAS,UA/oBO,IAkpBzBwzL,EAlpByB,kDAmpB3B,WAAYv0L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAnpBS,wDAupB3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBi4K,IAAmBuB,wBAAwBv/G,EAAWA,EAAU84H,kBAAmBliN,KAAK6/M,mBACjJz2H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OA1pBpB,GAkpBNsvL,GAWzBW,EAAuBsF,UAAYlvL,YAAsB,IAAIivL,EAAW,CACpEx7H,iBAAiB,EACjB1yE,GAAI,YACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAp4BQ,EAq4BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,UAGxBmuL,EAAuBuF,gBAAkBnvL,YAAsB,IAAIivL,EAAW,CAC1Ex7H,iBAAiB,EACjB1yE,GAAI,kBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA/4BQ,EAg5BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,UAhrBO,IAmrBzB2zL,EAnrByB,kDAorB3B,WAAY10L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAprBS,wDAwrB3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBi4K,IAAmBwB,kBAAkBx/G,EAAWA,EAAU84H,kBAAmBliN,KAAK6/M,mBAC3Iz2H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OA3rBpB,GAmrBHsvL,GAW5BW,EAAuByF,aAAervL,YAAsB,IAAIovL,EAAc,CAC1E37H,iBAAiB,EACjB1yE,GAAI,eACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAr6BQ,EAs6BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,UAGxBmuL,EAAuB0F,mBAAqBtvL,YAAsB,IAAIovL,EAAc,CAChF37H,iBAAiB,EACjB1yE,GAAI,qBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAh7BQ,EAi7BRH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,UAjtBO,IAotBzB8zL,EAptByB,kDAqtB3B,aAAc,uCACJ,CACFxuM,GAAI,eACJ4Z,kBAActW,EACd5D,YAAainM,EAAcjnM,cAztBR,wDA4tB3B,SAAqBmzE,EAAWvqF,GAC5B,IAAMkjN,EAAS7E,EAAcx2K,MAAM7nC,GAC9BkjN,GAIL/hN,KAAKglN,iBAAiB57H,EAAWvqF,EAAKswB,OAAQ4yL,KAluBvB,8BAouB3B,SAAiB34H,EAAWj6D,EAAQtwB,GAChC,IAAMomN,EAAmBjlN,KAAKklN,yBAAyB97H,EAAWvqF,GAClE,GAAIA,EAAKggN,aAAc,CAEnB,IAAMsG,EAA0B/7H,EAAUg8H,yCAAyCH,GACnF77H,EAAU02H,gBAAgB3wL,EAAQ,EAAkB,CAChDi4K,IAAmB6D,gCAAgC7hH,EAAWA,EAAU42H,wBAAyBmF,EAAyBtmN,EAAKotM,UAGvI7iH,EAAU46G,aAAaihB,EAAkB,KA7uBlB,sCA+uB3B,SAAyB77H,EAAWvqF,GAChC,GAAkB,IAAdA,EAAK2qM,KAAuB,CAE5B,IAEI6b,EAFE7a,EAAmBphH,EAAUqhH,gCAC7BC,EAAoBthH,EAAUC,qBAAqBshH,6BAA6BH,GAIlF6a,EAFmB,IAAnBxmN,EAAKwN,UAEuBqL,KAAKC,IAAI,EAAG+yL,EAAkBpsL,gBAAkBzf,EAAKmD,OAIrD0V,KAAKgI,IAAI0pE,EAAUt0D,MAAMg1E,eAAgB4gG,EAAkBpsL,gBAAkBzf,EAAKmD,OAElH,IAAM8mM,EAAe1/G,EAAUC,qBAAqB2/G,mCAAmC,IAAI7oL,IAASklM,EAA2B,IAC/H,OAAOj8H,EAAUk8H,+BAA+Bxc,EAAavpL,YAEjE,IAAIgmM,EAEAA,EADc,IAAd1mN,EAAK2qM,KACOpgH,EAAUE,aAAa7C,SAAW5nF,EAAKmD,MAEhC,IAAdnD,EAAK2qM,KACE9xL,KAAKq/C,MAAMqyB,EAAUE,aAAa7C,SAAW,GAAK5nF,EAAKmD,MAGvDnD,EAAKmD,MAErB,IAAMwjN,GAAiC,IAAnB3mN,EAAKwN,WAA4B,EAAI,GAAKk5M,EAC9D,OAAOn8H,EAAU25G,eAAiByiB,EAAap8H,EAAUE,aAAa9C,eA3wB/C,GAotBAi4H,GA0D/BW,EAAuB2F,iBAAmBA,EAC1C3F,EAAuBqG,aAAejwL,YAAsB,IAAIuvL,GAChE3F,EAAuBsG,aAAelwL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,eACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAx/BA,EAy/BAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,QAT4B,wDAaxD,SAAqBm4D,EAAWvqF,GAC5BugN,EAAuBqG,aAAaT,iBAAiB57H,EAAWvqF,EAAKswB,OAAQ,CACzE9iB,UAAW,EACXm9L,KAAM,EACNxnM,MAAO,EACP68M,cAAc,EACd5S,QAAQ,QAnBwC,EAAI,CAAcwS,KAuB9EW,EAAuBuG,aAAenwL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,eACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA/gCA,EAghCAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTE,IAAK,CAAEF,QAAS,KAChBG,MAAO,CAAEH,QAAS,QAV0B,wDAcxD,SAAqBm4D,EAAWvqF,GAC5BugN,EAAuBqG,aAAaT,iBAAiB57H,EAAWvqF,EAAKswB,OAAQ,CACzE9iB,UAAW,EACXm9L,KAAM,EACNxnM,MAAO,EACP68M,cAAc,EACd5S,QAAQ,QApBwC,EAAI,CAAcwS,KAwB9EW,EAAuBwG,eAAiBpwL,YAAsB,sDAC1D,aAAc,uCACJ,CACFjf,GAAI,iBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAviCA,EAwiCAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTI,IAAK,CAAEJ,QAAS,QAT8B,wDAa1D,SAAqBm4D,EAAWvqF,GAC5BugN,EAAuBqG,aAAaT,iBAAiB57H,EAAWvqF,EAAKswB,OAAQ,CACzE9iB,UAAW,EACXm9L,KAAM,EACNxnM,MAAO,EACP68M,cAAc,EACd5S,QAAQ,QAnB0C,EAAI,CAAcwS,KAuBhFW,EAAuByG,eAAiBrwL,YAAsB,sDAC1D,aAAc,uCACJ,CACFjf,GAAI,iBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA9jCA,EA+jCAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,KACTE,IAAK,CAAEF,QAAS,KAChBG,MAAO,CAAEH,QAAS,QAV4B,wDAc1D,SAAqBm4D,EAAWvqF,GAC5BugN,EAAuBqG,aAAaT,iBAAiB57H,EAAWvqF,EAAKswB,OAAQ,CACzE9iB,UAAW,EACXm9L,KAAM,EACNxnM,MAAO,EACP68M,cAAc,EACd5S,QAAQ,QApB0C,EAAI,CAAcwS,KAt1BjD,IA82BzBqH,EA92ByB,kDA+2B3B,WAAY51L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EA/2BS,wDAm3B3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDi4K,IAAmB74D,KAAKnlD,EAAWA,EAAU42H,wBAAyBhgN,KAAK6/M,iBAAkBhhN,EAAK8f,YAEtGyqE,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAx3BpB,GA82BLsvL,GAa1BW,EAAuB2G,WAAavwL,YAAsB,IAAIswL,EAAY,CACtE78H,iBAAiB,EACjB1yE,GAAI,cACJ4Z,kBAActW,KAElBulM,EAAuB4G,eAAiBxwL,YAAsB,IAAIswL,EAAY,CAC1E78H,iBAAiB,EACjB1yE,GAAI,kBACJ4Z,kBAActW,KAElBulM,EAAuB6G,qBAAuBzwL,YAAsB,sDAChE,aAAc,uCACJ,CACFjf,GAAI,uBACJ4Z,kBAActW,IAJ0C,wDAOhE,SAAqBuvE,EAAWvqF,GAC5B,IAAM4kN,EAAuBr6H,EAAUs6H,0BACjCr5H,EAASjB,EAAU84H,kBACnByB,EAAYt5H,EAAO3lF,MAAM,GACzBwhN,EAAiB77H,EAAOo5H,GAC9BE,EAAUF,GAAwBrc,IAAmB74D,KAAKnlD,EAAW88H,EAAgBA,EAAez8H,WAAWwrG,eAAgBp2L,EAAK8f,UACpIyqE,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBw0L,OAdG,EAAI,CAAclF,KAr4BvD,IAs5BzB0H,EAt5ByB,kDAu5B3B,WAAYj2L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EAv5BS,wDA25B3B,SAAqBG,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDi4K,IAAmBxzF,KAAKxqB,EAAWA,EAAU42H,wBAAyBhgN,KAAK6/M,iBAAkBhhN,EAAK8f,SAAU9f,EAAKiqM,gBAErH1/G,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAh6BpB,GAs5BLsvL,GAa1BW,EAAuBgH,WAAa5wL,YAAsB,IAAI2wL,EAAY,CACtEl9H,iBAAiB,EACjB1yE,GAAI,cACJ4Z,kBAActW,KAElBulM,EAAuBiH,eAAiB7wL,YAAsB,IAAI2wL,EAAY,CAC1El9H,iBAAiB,EACjB1yE,GAAI,kBACJ4Z,kBAActW,KA36Ba,IA66BzBysM,EA76ByB,kDA86B3B,WAAYp2L,GAAM,kCACd,cAAMA,IACD2vL,iBAAmB3vL,EAAK+4D,gBAFf,EA96BS,wDAk7B3B,SAAqBG,EAAWvqF,GAC5B,IAAM4kN,EAAuBr6H,EAAUs6H,0BACjCr5H,EAASjB,EAAU84H,kBACnByB,EAAYt5H,EAAO3lF,MAAM,GAC/Bi/M,EAAUF,GAAwBrc,IAAmBxzF,KAAKxqB,EAAWiB,EAAOo5H,GAAuBzjN,KAAK6/M,iBAAkBhhN,EAAK8f,SAAU9f,EAAKiqM,cAC9I1/G,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBw0L,OAx7BlC,GA66BKlF,GAcpCW,EAAuBmH,qBAAuB/wL,YAAsB,IAAI8wL,EAAsB,CAC1Fr9H,iBAAiB,EACjB1yE,GAAI,uBACJ4Z,kBAActW,KAElBulM,EAAuBoH,yBAA2BhxL,YAAsB,IAAI8wL,EAAsB,CAC9Fr9H,iBAAiB,EACjB1yE,GAAI,2BACJ4Z,kBAActW,KAElBulM,EAAuBqH,oBAAsBjxL,YAAsB,sDAC/D,aAAc,uCACJ,CACFjf,GAAI,sBACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OA7qCA,EA8qCAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,QAR0C,wDAY/D,SAAqBm4D,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkBi4K,IAAmBsf,oBAAoBt9H,EAAWA,EAAU84H,oBACrH94H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAfgB,EAAI,CAAcsvL,KAkBrFW,EAAuBuH,gBAAkBnxL,YAAsB,sDAC3D,aAAc,uCACJ,CACFjf,GAAI,kBACJ4Z,aAAcyM,IAAkBU,qBAChCjN,OAAQ,CACJU,OA/rCA,EAgsCAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTC,UAAW,CAAC,SATmC,wDAa3D,SAAqBk4D,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDi4K,IAAmBwf,gBAAgBx9H,EAAWA,EAAU42H,2BAE5D52H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,OAlBY,EAAI,CAAcsvL,KAqBjFW,EAAuByH,uBAAyBrxL,YAAsB,sDAClE,aAAc,uCACJ,CACFjf,GAAI,yBACJ4Z,aAAcyM,IAAkBY,sBAChCnN,OAAQ,CACJU,OAAQ+1L,EACRl2L,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTC,UAAW,CAAC,SAT0C,wDAalE,SAAqBk4D,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDi6D,EAAU42H,0BAEd52H,EAAU62H,oBAAoBphN,EAAKswB,QAAQ,GAC3Cy9I,YAAO9pJ,IAAa,gBAAiB,kCAnByB,EAAI,CAAc27L,KAsBxFW,EAAuB2H,WAAavxL,YAAsB,sDACtD,aAAc,uCACJ,CACFjf,GAAI,aACJ4Z,kBAActW,EACd5D,YAAaknM,EAAYlnM,cALqB,wDAQtD,SAAqBmzE,EAAWvqF,GAC5B,IAAMmoN,EAAgBnoN,EAChBooN,EAAgBD,EAAcznM,YAAc,EAC9CA,EAAsC,kBAAlB0nM,EAA8BA,EAAgB,EAAMxnL,SAASwnL,GAAiB,EAClG1nM,EAAa,IACbA,EAAa,GAEjB,IAAMwiG,EAAY34B,EAAUt0D,MAAMg1E,eAC9BvqF,EAAawiG,IACbxiG,EAAawiG,GAEjB,IAAMljG,EAAQ,IAAIR,IAAMkB,EAAY,EAAGA,EAAY6pE,EAAUt0D,MAAMgsG,iBAAiBvhH,IAChF2nM,EAAW,EACf,GAAIF,EAAchzD,GACd,OAAQgzD,EAAchzD,IAClB,KAAKmpD,EAAY8B,cAAcC,IAC3BgI,EAAW,EACX,MACJ,KAAK/J,EAAY8B,cAAcloE,OAC3BmwE,EAAW,EACX,MACJ,KAAK/J,EAAY8B,cAAcE,OAC3B+H,EAAW,EAMvB,IAAMC,EAAY/9H,EAAUC,qBAAqB+9H,6BAA6BvoM,GAC9EuqE,EAAUi+H,YAAYxoN,EAAKswB,QAAQ,EAAOg4L,EAAWD,EAAU,OArCb,EAAI,CAAczI,KAwC5EW,EAAuBkI,UAAY,sDAC/B,aAAc,uCACJjwL,KAFqB,iDAI/B,WACQuiH,MACAxvI,SAASiF,cAAc2tB,QACvB5yB,SAASiF,cAAc48L,UAE3B7hM,SAASm9M,YAAY,eATM,8BAW/B,SAAiB71L,EAAUuB,EAAQp0B,GAC/B,IAAMuqF,EAAYn2D,EAAOyrL,gBACpBt1H,GAILppF,KAAK2+M,qBAAqBv1H,EAAWvqF,KAjBV,kCAmB/B,SAAqBuqF,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgB,WAAY,EAAkB,CACpD1Y,IAAmBogB,UAAUp+H,EAAWA,EAAU42H,+BAtB3B,EAAI,CAAcX,IA0BrDD,EAAuBqI,aAAejyL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,eACJ4Z,kBAActW,IAJkC,wDAOxD,SAAqBuvE,EAAWvqF,GAC5BuqF,EAAUt0D,MAAMuwG,mBAChBj8C,EAAU02H,gBAAgBjhN,EAAKswB,OAAQ,EAAkB,CACrDy6D,IAAYU,mBAAmBzrF,EAAKsgF,iBAVY,EAAI,CAAcs/H,KApkClF,CAklCGW,IAA2BA,EAAyB,KACvD,IAmBWsI,EAnBLC,EAA2B92L,IAAeC,IAAI8L,IAAkBK,eAAgBL,IAAkBQ,iBACxG,SAASwqL,EAAwBrxM,EAAIw3L,GACjCz8K,IAAoBC,uBAAuB,CACvChb,GAAIA,EACJ0a,QAAS88K,EACT/8K,KAAM22L,EACN52L,OAAQ+1L,IAShB,SAASr1L,EAAgBO,GAErB,OADAA,EAAQ8E,WACD9E,EARX41L,EAAwBxI,EAAuB4B,uBAAuBzqM,GAAI,MAC1EqxM,EAAwBxI,EAAuB8B,wBAAwB3qM,GAAI,MAC3EqxM,EAAwBxI,EAAuBmC,qBAAqBhrM,GAAI,MACxEqxM,EAAwBxI,EAAuBoC,yBAAyBjrM,GAAI,MAC5EqxM,EAAwBxI,EAAuBuC,uBAAuBprM,GAAI,MAC1EqxM,EAAwBxI,EAAuBwC,2BAA2BrrM,GAAI,MAM9E,SAAWmxM,GAAqB,IACtBG,EADsB,sKAExB,SAAiBn2L,EAAUuB,EAAQp0B,GAC/B,IAAMuqF,EAAYn2D,EAAOyrL,gBACpBt1H,GAILppF,KAAK8nN,sBAAsB70L,EAAQm2D,EAAWvqF,GAAQ,QARlC,GACKi0B,KAUjC40L,EAAoBG,mBAAqBA,EACzCH,EAAoBK,gBAAkBvyL,YAAsB,sDACxD,aAAc,uCACJ,CACFjf,GAAI,kBACJ4Z,aAAcyM,IAAkBz+B,SAChCkyB,OAAQ,CACJU,OA31CA,EA41CAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTI,IAAK,CAAEJ,QAAS,QAT4B,yDAaxD,SAAsBgC,EAAQm2D,EAAWvqF,GACrCo0B,EAAO+0L,eACP/0L,EAAOg1L,gBAAgBjoN,KAAKuW,GAAI2xM,IAAeC,gBAAgB/+H,EAAUE,aAAcF,EAAUt0D,MAAOs0D,EAAU84H,kBAAkB9/L,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmpF,WAAWtK,mBAftG,EAAI,CAAc0oI,KAkB9EH,EAAoBh7D,QAAUl3H,YAAsB,sDAChD,aAAc,uCACJ,CACFjf,GAAI,UACJ4Z,aAAcyM,IAAkBz+B,SAChCkyB,OAAQ,CACJU,OA72CA,EA82CAH,OAAQC,IAAeC,IAAI8L,IAAkBG,gBAAiBH,IAAkBe,qBAChF1M,QAAS,QAR2B,yDAYhD,SAAsBgC,EAAQm2D,EAAWvqF,GACrCo0B,EAAO+0L,eACP/0L,EAAOg1L,gBAAgBjoN,KAAKuW,GAAI2xM,IAAeE,QAAQh/H,EAAUE,aAAcF,EAAUt0D,MAAOs0D,EAAU84H,kBAAkB9/L,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmpF,WAAWtK,eAClJlsD,EAAO+0L,mBAfqC,EAAI,CAAcH,KAkBtEH,EAAoBW,IAAM7yL,YAAsB,sDAC5C,aAAc,uCACJ,CACFjf,GAAI,MACJ4Z,aAAcyM,IAAkBz+B,SAChCkyB,OAAQ,CACJU,OA/3CA,EAg4CAH,OAAQC,IAAeC,IAAI8L,IAAkBG,gBAAiBH,IAAkBe,qBAChF1M,QAAS,KARuB,yDAY5C,SAAsBgC,EAAQm2D,EAAWvqF,GACrCo0B,EAAO+0L,eACP/0L,EAAOg1L,gBAAgBjoN,KAAKuW,GAAI2xM,IAAezqB,IAAIr0G,EAAUE,aAAcF,EAAUt0D,MAAOs0D,EAAU84H,kBAAkB9/L,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmpF,WAAWtK,eAC9IlsD,EAAO+0L,mBAfiC,EAAI,CAAcH,KAkBlEH,EAAoBY,WAAa9yL,YAAsB,sDACnD,aAAc,uCACJ,CACFjf,GAAI,aACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAj5CA,EAk5CAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,EACTC,UAAW,CAAC,MACZG,IAAK,CAAEJ,QAAS,EAAmBC,UAAW,CAAC,KAAsC,IAAmC,SAVjF,yDAcnD,SAAsB+B,EAAQm2D,EAAWvqF,GACrC,MAAiD0pN,IAAiBC,WAAWp/H,EAAUq/H,2BAA4Br/H,EAAUE,aAAcF,EAAUt0D,MAAOs0D,EAAU84H,kBAAkB9/L,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmpF,WAAWtK,aAAYiK,EAAUs/H,iCAApO,mBAAOh+H,EAAP,KAAqCF,EAArC,KACIE,GACAz3D,EAAO+0L,eAEX/0L,EAAOg1L,gBAAgBjoN,KAAKuW,GAAIi0E,GAChCpB,EAAUu/H,yBAAyB,OApBY,EAAI,CAAcd,KAuBzEH,EAAoBkB,YAAcpzL,YAAsB,sDACpD,aAAc,uCACJ,CACFjf,GAAI,cACJ4Z,kBAActW,EACdwW,OAAQ,CACJU,OAx6CA,EAy6CAH,OAAQgM,IAAkBK,eAC1BhM,QAAS,GACTI,IAAK,CAAEJ,QAAS,GAAiBC,UAAW,CAAC,IAAmC,SATxC,yDAapD,SAAsB+B,EAAQm2D,EAAWvqF,GACrC,MAAiD0pN,IAAiBM,YAAYz/H,EAAUq/H,2BAA4Br/H,EAAUE,aAAcF,EAAUt0D,MAAOs0D,EAAU84H,kBAAkB9/L,KAAI,SAAA9hB,GAAC,OAAIA,EAAEmpF,WAAWtK,cAA/M,mBAAOuL,EAAP,KAAqCF,EAArC,KACIE,GACAz3D,EAAO+0L,eAEX/0L,EAAOg1L,gBAAgBjoN,KAAKuW,GAAIi0E,GAChCpB,EAAUu/H,yBAAyB,OAnBa,EAAI,CAAcd,KAsB1EH,EAAoBoB,KAAO,sDACvB,aAAc,uCACJ9xL,KAFa,iDAIvB,WACI5sB,SAASm9M,YAAY,UALF,8BAOvB,SAAiB71L,EAAUuB,EAAQp0B,GAC/B,GAAKo0B,EAAO81L,aAAsD,IAAxC91L,EAAO+nJ,UAAU,IAG3C,OAAO/nJ,EAAO+B,WAAWk0G,WAXN,EAAI,CAAcm2E,IAc7CqI,EAAoBsB,KAAO,sDACvB,aAAc,uCACJ5xL,KAFa,iDAIvB,WACIhtB,SAASm9M,YAAY,UALF,8BAOvB,SAAiB71L,EAAUuB,EAAQp0B,GAC/B,GAAKo0B,EAAO81L,aAAsD,IAAxC91L,EAAO+nJ,UAAU,IAG3C,OAAO/nJ,EAAO+B,WAAW8sD,WAXN,EAAI,CAAcu9H,IA7HjD,CA2IGqI,IAAwBA,EAAsB,K,IAI3CuB,E,kDACF,WAAY1yM,EAAI2yM,EAAWjzM,GAAa,kCACpC,cAAM,CACFM,GAAIA,EACJ4Z,kBAActW,EACd5D,YAAaA,KAEZkzM,WAAaD,EANkB,E,8CAQxC,SAAWx3L,EAAU7yB,GACjB,IAAMo0B,EAASvB,EAASe,IAAIO,KAAoBE,uBAC3CD,GAGLA,EAAO8tC,QAAQ,WAAY/gE,KAAKmpN,WAAYtqN,O,GAdjBoxB,KAiBnC,SAASm5L,EAA4BF,EAAWjzM,GAC5Cwb,EAAgB,IAAIw3L,EAAqB,WAAaC,EAAWA,IACjEz3L,EAAgB,IAAIw3L,EAAqBC,EAAWA,EAAWjzM,IAEnEmzM,EAA4B,OAAmB,CAC3CnzM,YAAa,OACbpX,KAAM,CAAC,CACC+X,KAAM,OACNq4E,OAAQ,CACJ,KAAQ,SACR,SAAY,CAAC,QACb,WAAc,CACV,KAAQ,CACJ,KAAQ,gBAMhCm6H,EAA4B,uBAC5BA,EAA4B,mBAC5BA,EAA4B,oBAC5BA,EAA4B,kBAC5BA,EAA4B,SAC5BA,EAA4B,Q,6BEjhDrB,SAASC,EAAY/pL,EAAK8mD,GAE7B,IADA,IAAIgvD,EAAY,EACPt3I,EAAI,EAAGA,EAAIwhC,EAAIvhC,OAAQD,IACN,OAAlBwhC,EAAIyB,OAAOjjC,GACXs3I,GAAahvD,EAGbgvD,IAGR,OAAOA,EAEJ,SAASk0E,EAAel0E,EAAWhvD,EAASE,GAC/C8uD,EAAYA,EAAY,EAAI,EAAIA,EAChC,IAAIhzI,EAAS,GACb,IAAKkkF,EAAc,CACf,IAAI+uD,EAAU39H,KAAKE,MAAMw9H,EAAYhvD,GACrCgvD,GAAwBhvD,EACxB,IAAK,IAAItoF,EAAI,EAAGA,EAAIu3I,EAASv3I,IACzBsE,GAAU,KAGlB,IAAK,IAAItE,EAAI,EAAGA,EAAIs3I,EAAWt3I,IAC3BsE,GAAU,IAEd,OAAOA,EA7BX,qE,6BCOA,oEAAO,IAKKmnN,EA4DAC,EAjECC,EAAmB,UAKhC,SAAYF,GACV,mBACA,uBACA,2BAHF,CAAYA,MAAa,KA4DzB,SAAYC,GACV,+BACA,2BAFF,CAAYA,MAAkB,M,4aCrExBE,EAAqB,SAAA9yM,G,IACnBgzB,EAAU+mJ,c,OAChB/mJ,gBAEA,GCLI+/K,EAA+BD,EAArC,kBCAM9/K,EAAwB8/K,EAA9B,UCQME,c,WAKJ,G,2BACE,UAEA,MAAa,CACX9wM,SAAUjb,UAAcib,U,EAQ1B,c,EACA,sBAEKjb,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAAib,GAC/B,EAAJ,W,EACE,SAAc,CAAEA,a,EAEhB,uB,qBAxBD+wM,iBAAP,Y,MACS,CAAEtkH,KAAF,IAAaztF,IAAb,IAAuBgyM,OAAvB,GAAmCC,QAAsB,MAAbC,I,2BA6BrDC,6B,KACE,cAEIjqN,KAAJ,kB,KACE,SAAc,CAAE8Y,SAAU9Y,KAAKkqN,oB,EAInCC,gCACMnqN,KAAJ,W,KACE,W,KACA,c,KACA,wB,EAIJoqN,kB,OAEI,kBAACC,EAAD,UACEroN,MAAO,CACL2sE,QAAS3uE,KAAKnC,MADT,QAELib,SAAU9Y,KAAKsU,MAFV,SAGLvV,MAAO6qN,mBAAwB5pN,KAAKsU,MAAMwE,SAHrC,UAILwxM,cAAetqN,KAAKnC,MAAMysN,gBAG5B,kBAACC,EAAD,UACEh1M,SAAUvV,KAAKnC,MAAM0X,UADvB,KAEEvT,MAAOhC,KAAKnC,MAAM8wE,Y,EA3DtBi7I,CAAel5B,IAAM85B,WCAA95B,IAAM85B,U,ICR3BC,c,8FACJR,6BACMjqN,KAAKnC,MAAT,SAAwBmC,KAAKnC,MAAM6sN,QAAQ9qN,KAAKI,KAAMA,O,EAGxD2qN,+BACM3qN,KAAKnC,MAAT,UAAyBmC,KAAKnC,MAAM+sN,SAAShrN,KAAKI,KAAMA,KAAM6qN,I,EAGhEV,gCACMnqN,KAAKnC,MAAT,WAA0BmC,KAAKnC,MAAMitN,UAAUlrN,KAAKI,KAAMA,O,EAG5DoqN,kB,OACE,M,EAdEK,CAAkB/5B,IAAM85B,WCA9B,IAAMzxL,EAAN,GAEIgyL,EAAJ,EAkBA,SAASC,EAAazlH,EAAtB,G,YAA+C,IAAzBA,MAAO,UAAkB,IAAbukH,MAAS,IAClCvkH,UAjBT,SAAqBA,G,GACfxsE,EAAJ,GAAiB,OAAOA,EAAP,G,IAEXp3B,EAAYspN,YAAlB,G,OAEIF,EARN,MASIhyL,OACAgyL,KAGF,EAO6BG,CAAA,EAAAA,CAAA,EAA0B,CAAEC,QAAQ,ICXnE,SAASC,EAAS,G,IAAEC,EAAmC,EAAnCA,cAAe/mN,EAAoB,EAApBA,G,IAAIf,YAAgB,S,OAEnD,kBAAC8mN,EAAD,eACG,SAAAzgL,GACC,mB,IAEQ+kC,EAA2B/kC,EAHzB,QAGO0gL,EAAkB1gL,EAHzB,cAKJ+6B,EAASphE,EAAOorE,EAAH,KAAkBA,EAArC,QACM71D,EAAWwyM,YACfD,EACkB,kBAAP/mN,EACL0mN,EAAa1mN,EAAI+mN,EADnB,0BAIIrB,SAAUgB,EAAa1mN,EAAD,SAAc+mN,EAAd,UAZtB,G,OAmBV,GACE1mJ,KACA,MAIA,qBACE+lJ,QAAS,WACP/lJ,MAEFimJ,SAAU,c,IACFW,EAAeD,YAAeT,EAApC,IAEGW,YAAkBD,EAAc,OAAf,IAAe,CAAf,MAEhBjtN,IAAKitN,EAAajtN,QAGpBqmE,MAGJrgE,GAAIA,OCrDhB,IAAMy0B,EAAN,GAEIgyL,EAAJ,EAuBA,SAASU,EAAUzB,EAAU3kN,QAAc,IAAdA,MAAU,KACd,kBAAZA,GAAwB5F,cAAnC,MACE4F,EAAU,CAAEkgG,KAAMlgG,I,MAFqB,EAKjCkgG,EALiC,O,IAAA,MAK3BmmH,OAL2B,S,IAAA,OAKZrjL,OALY,S,IAAA,UAKIsjL,OALJ,S,MAO3B,GAAG7nN,OAAjB,GAEO,QAAa,c,IACbyhG,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAOgrC,E,MAhCxB,c,IACQq7E,EAAW,GAAGvmN,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACMwmN,EAAY9yL,OAAoBA,KAAtC,I,GAEI8yL,EAAJ,GAAqB,OAAOA,EAAP,G,IAEfn1M,EAAN,GAEMtU,EAAS,CAAEm/B,OADF0pL,IAAa1lH,EAAM7uF,EAAlC,GACyBA,Q,OAErBq0M,EAbN,MAcIc,OACAd,KAGF,EAmB2BG,CAAY3lH,EAAM,CACzCllF,IADyC,EAEzCgoB,OAFyC,EAGzCsjL,cAHMpqL,EAJ6B,SAIrB7qB,EAJqB,OAS/B3X,EAAQwiC,OAAd,G,IAEA,EAAY,OAAO,K,IAEZzpB,EAAkB/Y,EAbY,GAatBye,EAAUze,EAbY,SAc/BgrN,EAAUC,IAAhB,E,OAEI0B,IAAJ,EAA8B,KAEvB,CACLnmH,KADK,EAELztF,IAAKytF,cAAgBztF,EAAhBytF,IAFA,EAGLwkH,QAHK,EAILD,OAAQpzM,EAAA,QAAY,gB,OAClBo1M,EAAKxtN,EAALwtN,MAAiBtuM,EAAjBsuM,GACA,IAFM,OAtBZ,M,ICPIC,c,sFACJ3B,kB,kBAEI,kBAACC,EAAD,eACG,YACC,mB,IAEMvxM,EAAW,kBAAuB8wB,EAAxC,SACM7qC,EAAQ,sBACV,QADU,cAEV,aACA0sN,EAAU3yM,EAAD,SAAoB,EAD7B,OAEA8wB,EAJJ,MAMM/rC,EAAQ,OAAH,IAAG,CAAH,MAAiBib,SAAjB,EAA2B/Z,U,EAEA,EAZ5B,MAYJwW,EAZI,WAYMmjJ,EAZN,YAYiB0xD,EAZjB,S,OAgBN3qN,kBAxCd,SAAyB8V,G,OACvB,IAAOm7K,sBAuCgCs7B,CAA/B,KACEz2M,QAIA,kBAAC80M,EAAD,UAAwBroN,MAAOnE,GAC5BA,QACG0X,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMNmjJ,EACAg4B,oBADS,GAET05B,EACAA,EADM,GATXvsN,KAYuB,oBAAb0X,EAGLA,EAHF,GAdR,U,EAxBJw2M,CAAcr7B,IAAM85B,WCrB1B,SAASyB,EAAgB1mH,G,MAChBA,oBAAgC,IAAvC,EAYF,SAAS2mH,EAAclyD,EAAUlhJ,G,IAC/B,EAAe,OAAOA,E,IAEhBw0B,EAAO2+K,EAAb,G,OAEA,IAAInzM,sBAA8CA,E,eAElD,GAEEkxM,SAAUlxM,kBAAyBw0B,EAAzBx0B,UAId,SAASqzM,EAAUrzM,G,MACU,kBAAbA,EAAwBA,EAAWszM,YAAjD,GAGF,SAASC,EAAcznJ,G,OACd,WACL0nJ,iBAIJ,SAASC,KAQkB77B,IAAM85B,U,ICzC3BgC,c,sFACJpC,kB,kBAEI,kBAACC,EAAD,eACG,SAAAzgL,GACC,mB,IAIA,EALU,EAGJ9wB,EAAW,kBAAuB8wB,EAAxC,S,OAQA8mJ,qBAAuB,QAAvBA,UAA4C,SAAAj7K,G,GACtC1W,SAAiB2xL,mBAArB,GAAkD,CAChDnmL,I,IAEMg7F,EAAO9vF,cAAoBA,QAAjC,KAEA1W,EAAQwmG,EACJkmH,EAAU3yM,EAAD,wBAAyBrD,EAAzB,OAAsC8vF,UAC/C37D,EAFJ7qC,UAMGA,EACH,mBAA4B,CAAE+Z,SAAF,EAAYuyM,cAAetsN,IAD3D,S,EA3BJytN,CAAe97B,IAAM85B,WCD3B,SAASiC,EAAWjC,G,IACZkC,EAAc,eAAclC,eAAyBA,EAA1C,MAAjB,IACMmC,EAAI,SAAA9uN,G,IACA+uN,EAA2C/uN,EADlC,oBACegvN,EADf,uC,OAIf,kBAACxC,EAAD,eACG,SAAAzgL,G,OACC,mBAKE,wCAGE25G,IAAKqpE,S,OAQjBD,gBACAA,qBAYOG,IAAaH,EAApB,GCxCF,IAAMr6B,EAAa5B,IAAnB,WAaO,SAASq8B,I,OAQPz6B,KAAP,W,yFCvBW/pE,EAAb,WACI,WAAYnB,EAAQj+C,EAAM6jJ,GAAS,oBAC/BhtN,KAAKitN,sBAAmBpzM,EACxB7Z,KAAKq/H,QAAUjY,EACfpnH,KAAKktN,aAAgBltN,KAAKq/H,QAAQthI,SAAW,EAC7CiC,KAAKq2K,MAAQltG,EACbnpE,KAAKylH,iBAAmBunG,EANhC,0CAeI,SAAO9tM,GACH,OAAIA,aAAiBqpG,GACVvoH,KAAKmtN,aAAajuM,EAAO,EAAGlf,KAAKktN,gBAjBpD,0BAqBI,SAAahuM,EAAOkuM,EAAqBC,GACrC,GAAIrtN,KAAKq2K,QAAUn3J,EAAMm3J,MACrB,OAAO,EAEX,GAAIr2K,KAAKktN,eAAiBhuM,EAAMguM,aAC5B,OAAO,EAIX,IAFA,IAAM3oN,EAAQ6oN,GAAuB,EAC/B9oN,EAAKC,GAAQ8oN,GAAmB,GAC7BvvN,EAAIyG,EAAMzG,EAAIwG,EAAIxG,IACvB,GAAIkC,KAAKq/H,QAAQvhI,KAAOohB,EAAMmgH,QAAQvhI,GAClC,OAAO,EAGf,OAAO,IAnCf,4BAqCI,WACI,OAAOkC,KAAKq2K,QAtCpB,sBAwCI,WACI,OAAOr2K,KAAKktN,eAzCpB,4BA2CI,SAAev/E,GACX,OAAIA,EAAa,EACN3tI,KAAKq/H,QAASsO,EAAa,GAAM,GAErC,IA/Cf,yBAiDI,SAAYA,GAER,OADiB3tI,KAAKq/H,QAA4B,GAAnBsO,GAAc,MAlDrD,2BAqDI,SAAcA,GACV,IAAM/+F,EAAW5uC,KAAKq/H,QAA4B,GAAnBsO,GAAc,IACvCzvG,EAAayQ,IAAci3E,cAAch3E,GAC/C,OAAO5uC,KAAKylH,iBAAiB6nG,iBAAiBpvL,KAxDtD,kCA0DI,SAAqByvG,GACjB,IAAM/+F,EAAW5uC,KAAKq/H,QAA4B,GAAnBsO,GAAc,IAC7C,OAAOh/F,IAAckjF,aAAajjF,KA5D1C,2BA8DI,SAAc++F,GACV,IAAM/+F,EAAW5uC,KAAKq/H,QAA4B,GAAnBsO,GAAc,IAC7C,OAAOh/F,IAAcE,cAAcD,KAhE3C,0BAkEI,SAAa++F,GACT,IAAM/+F,EAAW5uC,KAAKq/H,QAA4B,GAAnBsO,GAAc,IAC7C,OAAOh/F,IAAc4+K,yBAAyB3+K,KApEtD,4BAsEI,SAAe++F,EAAYj/F,GACvB,IAAME,EAAW5uC,KAAKq/H,QAA4B,GAAnBsO,GAAc,IAC7C,OAAOh/F,IAAc6+K,2BAA2B5+K,EAAUF,KAxElE,0BA0EI,SAAai/F,GACT,OAAO3tI,KAAKq/H,QAAQsO,GAAc,KA3E1C,oCAkFI,SAAuBvtG,GACnB,OAAOmoF,EAAWklG,uBAAuBztN,KAAKq/H,QAASj/F,KAnF/D,qBAqFI,WACI,OAAOpgC,OAtFf,6BAwFI,SAAgB01G,EAAa4E,EAAW1C,GACpC,OAAO,IAAI81G,EAAiB1tN,KAAM01G,EAAa4E,EAAW1C,KAzFlE,0BA4HI,SAAa+1G,GACT,GAA4B,IAAxBA,EAAa5vN,OACb,OAAOiC,KAOX,IALA,IAAI4tN,EAAuB,EACvBC,EAAqB,EACrB1kJ,EAAO,GACL2kJ,EAAY,IAAIruN,MAClB87G,EAAoB,IACX,CACT,IAAIwyG,EAA6BH,EAAuB5tN,KAAKktN,aAAeltN,KAAKq/H,QAAQuuF,GAAwB,IAAM,EACnHI,EAAkBH,EAAqBF,EAAa5vN,OAAS4vN,EAAaE,GAAsB,KACpG,IAAoC,IAAhCE,IAA0D,OAApBC,GAA4BD,GAA8BC,EAAgB5tL,QAAS,CAEzH+oC,GAAQnpE,KAAKq2K,MAAMh2I,UAAUk7E,EAAmBwyG,GAChD,IAAMn/K,EAAW5uC,KAAKq/H,QAAsC,GAA7BuuF,GAAwB,IACvDE,EAAUvqN,KAAK4lE,EAAKprE,OAAQ6wC,GAC5Bg/K,IACAryG,EAAoBwyG,MAEnB,KAAIC,EAaL,MAZA,GAAIA,EAAgB5tL,OAASm7E,EAAmB,CAE5CpyC,GAAQnpE,KAAKq2K,MAAMh2I,UAAUk7E,EAAmByyG,EAAgB5tL,QAChE,IAAMwO,EAAW5uC,KAAKq/H,QAAsC,GAA7BuuF,GAAwB,IACvDE,EAAUvqN,KAAK4lE,EAAKprE,OAAQ6wC,GAC5B2sE,EAAoByyG,EAAgB5tL,OAExC+oC,GAAQ6kJ,EAAgB7kJ,KACxB2kJ,EAAUvqN,KAAK4lE,EAAKprE,OAAQiwN,EAAgBt8F,eAC5Cm8F,KAMR,OAAO,IAAItlG,EAAW,IAAI/W,YAAYs8G,GAAY3kJ,EAAMnpE,KAAKylH,qBAhKrE,0BAQI,SAAmB7H,EAAaovG,GAC5B,IAAMiB,EAAkB1lG,EAAW2lG,qBAC7B9mG,EAAS,IAAI5V,YAAY,GAG/B,OAFA4V,EAAO,GAAKxJ,EAAY7/G,OACxBqpH,EAAO,GAAK6mG,EACL,IAAI1lG,EAAWnB,EAAQxJ,EAAaovG,KAbnD,gCA2FI,SAA0B5lG,EAAQ+mG,GAG9B,IAFA,IACMC,GADchnG,EAAOrpH,SAAW,GACF,EAC3B4vI,EAAa,EAAGA,EAAaygF,EAAgBzgF,IAClDvmB,EAAOumB,GAAc,GAAKvmB,EAAQumB,EAAa,GAAM,GAEzDvmB,EAAOgnG,GAAkB,GAAKD,IAjGtC,oCAmGI,SAA8B/mG,EAAQinG,GAClC,GAAIjnG,EAAOrpH,QAAU,EACjB,OAAO,EAIX,IAFA,IAAIgoE,EAAM,EACNC,GAAQohD,EAAOrpH,SAAW,GAAK,EAC5BgoE,EAAMC,GAAM,CACf,IAAMC,EAAMF,EAAMruD,KAAKE,OAAOouD,EAAOD,GAAO,GACtCu0C,EAAY8M,EAAQnhD,GAAO,GACjC,GAAIq0C,IAAc+zG,EACd,OAAOpoJ,EAAM,EAERq0C,EAAY+zG,EACjBtoJ,EAAME,EAAM,EAEPq0C,EAAY+zG,IACjBroJ,EAAOC,GAGf,OAAOF,MAtHf,KAmKAwiD,EAAW2lG,qBAAuB,SAG3B,IAAMR,EAAb,WACI,WAAYv+L,EAAQumF,EAAa4E,EAAW1C,GAAa,oBACrD53G,KAAKs7H,QAAUnsG,EACfnvB,KAAKsuN,aAAe54G,EACpB11G,KAAKuuN,WAAaj0G,EAClBt6G,KAAKwuN,aAAe52G,EACpB53G,KAAKyuN,iBAAmBt/L,EAAO+hG,uBAAuBxb,GACtD11G,KAAKktN,aAAe,EACpB,IAAK,IAAIpvN,EAAIkC,KAAKyuN,iBAAkB5sL,EAAM1S,EAAOqiG,WAAY1zH,EAAI+jC,EAAK/jC,IAAK,CAEvE,GADyBqxB,EAAOmgH,eAAexxI,IACvBw8G,EACpB,MAEJt6G,KAAKktN,gBAbjB,0CAgBI,SAAOhuM,GACH,OAAIA,aAAiBwuM,IACT1tN,KAAKsuN,eAAiBpvM,EAAMovM,cAC7BtuN,KAAKuuN,aAAervM,EAAMqvM,YAC1BvuN,KAAKwuN,eAAiBtvM,EAAMsvM,cAC5BxuN,KAAKs7H,QAAQ6xF,aAAajuM,EAAMo8G,QAASt7H,KAAKyuN,iBAAkBzuN,KAAKktN,iBArBxF,sBAyBI,WACI,OAAOltN,KAAKktN,eA1BpB,2BA4BI,SAAcv/E,GACV,OAAO3tI,KAAKs7H,QAAQzsF,cAAc7uC,KAAKyuN,iBAAmB9gF,KA7BlE,0BA+BI,SAAaA,GACT,IAAMsB,EAAiBjvI,KAAKs7H,QAAQxJ,aAAa9xH,KAAKyuN,iBAAmB9gF,GACzE,OAAOj2H,KAAKgI,IAAI1f,KAAKuuN,WAAYt/E,GAAkBjvI,KAAKsuN,aAAetuN,KAAKwuN,eAjCpF,0BAmCI,SAAa7gF,GACT,OAAO3tI,KAAKs7H,QAAQhoF,aAAatzC,KAAKyuN,iBAAmB9gF,KApCjE,4BAsCI,SAAeA,EAAYj/F,GACvB,OAAO1uC,KAAKs7H,QAAQozF,eAAe1uN,KAAKyuN,iBAAmB9gF,EAAYj/F,KAvC/E,oCAyCI,SAAuBtO,GACnB,OAAOpgC,KAAKs7H,QAAQpK,uBAAuB9wF,EAASpgC,KAAKsuN,aAAetuN,KAAKwuN,cAAgBxuN,KAAKyuN,qBA1C1G,M,6BCvKO,IAAIpwM,EAJX,kCAKA,SAAWA,GAKP,SAASswM,EAAUhpJ,EAAKzmD,GACpB,GAAIymD,EAAIvlD,OAASlB,EAAMmB,KAAOnB,EAAMkB,OAASulD,EAAItlD,IAC7C,MAAO,CAAED,MAAO,EAAGC,IAAK,GAE5B,IAAMD,EAAQ1I,KAAKC,IAAIguD,EAAIvlD,MAAOlB,EAAMkB,OAClCC,EAAM3I,KAAKgI,IAAIimD,EAAItlD,IAAKnB,EAAMmB,KACpC,OAAIA,EAAMD,GAAS,EACR,CAAEA,MAAO,EAAGC,IAAK,GAErB,CAAED,QAAOC,OAGpB,SAAS3B,EAAQG,GACb,OAAOA,EAAMwB,IAAMxB,EAAMuB,OAAS,EAFtC/B,EAAMswM,UAAYA,EAIlBtwM,EAAMK,QAAUA,EAIhBL,EAAMuuG,WAHN,SAAoBjnD,EAAKzmD,GACrB,OAAQR,EAAQiwM,EAAUhpJ,EAAKzmD,KAenCb,EAAMuwM,mBAZN,SAA4BjpJ,EAAKzmD,GAC7B,IAAM9c,EAAS,GACT++D,EAAQ,CAAE/gD,MAAOulD,EAAIvlD,MAAOC,IAAK3I,KAAKgI,IAAIR,EAAMkB,MAAOulD,EAAItlD,MAC3Dw2G,EAAS,CAAEz2G,MAAO1I,KAAKC,IAAIuH,EAAMmB,IAAKslD,EAAIvlD,OAAQC,IAAKslD,EAAItlD,KAOjE,OANK3B,EAAQyiD,IACT/+D,EAAOmB,KAAK49D,GAEXziD,EAAQm4G,IACTz0H,EAAOmB,KAAKszH,GAETz0H,GAnCf,CAsCGic,IAAUA,EAAQ,M,6BCzCrB,M,oEACA,SAAWwwM,GAIT,EAAF,yBAIE,EAAF,uBARA,CASA,WAIA,OAEE,kCAAF,EACE,8BAAF,EACE,gCAAF,EACE,+BAAF,EACE,iCAAF,EACE,qCAAF,EACE,uCAAF,EACE,yBAAF,EACE,2BAAF,EACE,4BAAF,EACE,YAAF,GACE,2BAAF,GACE,8BAAF,GACE,uBAAF,GACE,qBAAF,GACE,sBAAF,GACE,qBAAF,GACE,sBAAF,GACE,sCAAF,GACE,oCAAF,GACE,4BAAF,GACE,uBAAF,GACE,YAAF,GACE,0BAAF,GACE,kCAAF,GACE,6BAAF,GACE,QAAF,GACE,yBAAF,GACE,qBAAF,GACE,sBAAF,GACE,qBAAF,GACE,iBAAF,GACE,gBAAF,GACE,2BAAF,GACE,iBAAF,GACE,qBAAF,GACE,kBAAF,GACE,cAAF,GACE,kBAAF,GACE,iBAAF,GACE,mBAAF,GACE,yBAAF,GACE,6BAAF,GACE,uBAAF,GACE,4BAAF,GACE,qBAAF,GACE,yBAAF,GACE,oBAAF,GAEE,sBAAF,GACE,qCAAF,GACE,0BAAF,GACE,uBAAF,GACE,mBAAF,GACE,mBAAF,GACE,eAAF,GACE,qBAAF,GACE,iBAAF,GACE,YAAF,GACE,qBAAF,GACE,qBAAF,GACE,gCAAF,GACE,mBAAF,GACE,wBAAF,GACE,uBAAF,GACE,2BAAF,GACE,2BAAF,GACE,WAAF,GACE,yBAAF,GACE,mBAAF,GACE,UAAF,GACE,aAAF,GACE,kCAAF,GACE,0BAAF,GACE,gBAAF,GACE,sBAAF,GACE,yBAAF,GACE,0BAAF,IACE,uBAAF,IACE,mBAAF,IACE,2BAAF,IACE,wCAAF,IACE,0BAAF,M,6BChGA,IAAYC,EAcAC,EAmBAC,EAUAC,EA/CZ,0KAIA,SAAYH,GACV,uBACA,uBACA,yBACA,6BACA,2BACA,uBACA,2BAPF,CAAYA,MAAS,KAcrB,SAAYC,GACV,yBACA,2BACA,qBACA,qBACA,iBACA,mBACA,mBACA,uBACA,6BACA,yBACA,4BACA,4BAZF,CAAYA,MAAW,KAmBvB,SAAYC,GACV,2BACA,qCACA,2CAHF,CAAYA,MAAe,KAU3B,SAAYC,GACV,iBACA,mBACA,qBACA,2BAJF,CAAYA,MAAa,KAOlB,IAAMC,EAAe,G,sPC5CfC,EAAiB,GACjBC,EAAb,kDACI,WAAYl/L,GAAM,oCACd,gBACKm/L,YAAcn/L,EAAKo/L,WACxB,EAAKC,UAAYnlN,SAASsF,cAAc,OACxC,EAAK6/M,UAAU/4M,UAAY,mBAC3B,EAAK+4M,UAAU7iN,MAAMiS,SAAW,WAChC,EAAK4wM,UAAU7iN,MAAM7B,MAAQqlB,EAAKs/L,QAAU,KAC5C,EAAKD,UAAU7iN,MAAM5B,OAASolB,EAAKu/L,SAAW,KACtB,qBAAbv/L,EAAKnkB,MACZ,EAAKwjN,UAAU7iN,MAAMX,IAAM,OAEN,qBAAdmkB,EAAKjkB,OACZ,EAAKsjN,UAAU7iN,MAAMT,KAAO,OAEL,qBAAhBikB,EAAKivB,SACZ,EAAKowK,UAAU7iN,MAAMyyC,OAAS,OAER,qBAAfjvB,EAAK6b,QACZ,EAAKwjL,UAAU7iN,MAAMq/B,MAAQ,OAEjC,EAAKn/B,QAAUxC,SAASsF,cAAc,OACtC,EAAK9C,QAAQ4J,UAAY0Z,EAAK1Z,WAC9B,IAAK5J,QAAQiC,WAAU2K,IAAvB,oBAA8B0W,EAAKgC,KAAKw9L,kBACxC,EAAK9iN,QAAQF,MAAMiS,SAAW,WAC9B,EAAK/R,QAAQF,MAAM7B,MAAQskN,OAC3B,EAAKviN,QAAQF,MAAM5B,OAASqkN,OACJ,qBAAbj/L,EAAKnkB,MACZ,EAAKa,QAAQF,MAAMX,IAAMmkB,EAAKnkB,IAAM,MAEf,qBAAdmkB,EAAKjkB,OACZ,EAAKW,QAAQF,MAAMT,KAAOikB,EAAKjkB,KAAO,MAEf,qBAAhBikB,EAAKivB,SACZ,EAAKvyC,QAAQF,MAAMyyC,OAASjvB,EAAKivB,OAAS,MAEpB,qBAAfjvB,EAAK6b,QACZ,EAAKn/B,QAAQF,MAAMq/B,MAAQ7b,EAAK6b,MAAQ,MAE5C,EAAK4jL,kBAAoB,EAAKjmN,UAAU,IAAIkmN,KAC5C,EAAKC,YAAY,EAAKN,WAAW,SAAC5uN,GAAD,OAAO,EAAKmvN,gBAAgBnvN,MAC7D,EAAKkvN,YAAY,EAAKjjN,SAAS,SAACjM,GAAD,OAAO,EAAKmvN,gBAAgBnvN,MAC3D,EAAKovN,sBAAwB,EAAKrmN,UAAU,IAAIg4D,KAChD,EAAKsuJ,8BAAgC,EAAKtmN,UAAU,IAAIC,KA1C1C,EADtB,mDA6CI,SAAgBhJ,GAAG,WAIfX,KAAKqvN,cACLrvN,KAAK+vN,sBAAsBjmN,SAC3B9J,KAAKgwN,8BAA8BC,cALV,WACrB,EAAKF,sBAAsBE,cAAa,kBAAM,EAAKZ,gBAAe,IAAO,MAIX,KAClErvN,KAAK2vN,kBAAkBO,gBAAgBvvN,EAAE/C,OAAQ+C,EAAEoZ,QAASo2M,KAAyB,SAACC,OAEnF,WACC,EAAKL,sBAAsBjmN,SAC3B,EAAKkmN,8BAA8BlmN,YAEvCnJ,EAAEsT,qBA1DV,GAAoCyqL,K,QCLvB2xB,EAAb,kDACI,WAAYp8K,EAAYq8K,EAAkBC,GAAoB,kCAC1D,gBACKpyE,YAAclqG,EACnB,EAAKu8K,kBAAoBF,EACzB,EAAKG,oBAAsBF,EAC3B,EAAK/3C,SAAW,KAChB,EAAKk4C,YAAa,EAClB,EAAKC,WAAY,EACjB,EAAKC,qBAAsB,EAC3B,EAAKC,kBAAmB,EACxB,EAAKC,aAAe,EAAKpnN,UAAU,IAAIC,KAVmB,EADlE,iDAaI,SAAcsqC,GACNj0C,KAAKm+I,cAAgBlqG,IACrBj0C,KAAKm+I,YAAclqG,EACnBj0C,KAAK+wN,4BAhBjB,gCAoBI,SAAmBC,GACfhxN,KAAK4wN,oBAAsBI,EAC3BhxN,KAAK+wN,2BAtBb,qCAwBI,WACI,OAAyB,IAArB/wN,KAAKm+I,cAGgB,IAArBn+I,KAAKm+I,aAGFn+I,KAAK4wN,uBA/BpB,oCAiCI,WACI,IAAMK,EAAkBjxN,KAAKkxN,0BACzBlxN,KAAK6wN,mBAAqBI,IAC1BjxN,KAAK6wN,iBAAmBI,EACxBjxN,KAAKmxN,sBArCjB,yBAwCI,SAAYC,GACJpxN,KAAK2wN,YAAcS,IACnBpxN,KAAK2wN,UAAYS,EACjBpxN,KAAKmxN,sBA3CjB,wBA8CI,SAAWvkN,GACP5M,KAAKw4K,SAAW5rK,EAChB5M,KAAKw4K,SAAS64C,aAAarxN,KAAKywN,qBAEhCzwN,KAAKsxN,oBAAmB,KAlDhC,8BAoDI,WACStxN,KAAK2wN,UAKN3wN,KAAK6wN,iBACL7wN,KAAKuxN,UAGLvxN,KAAKwxN,OAAM,GAPXxxN,KAAKwxN,OAAM,KAvDvB,qBAiEI,WAAU,WACFxxN,KAAK0wN,aAGT1wN,KAAK0wN,YAAa,EAElB1wN,KAAK8wN,aAAa/mN,aAAY,WACtB,EAAKyuK,UACL,EAAKA,SAAS64C,aAAa,EAAKb,qBAErC,MA3EX,mBA6EI,SAAMiB,GACFzxN,KAAK8wN,aAAahnN,SACb9J,KAAK0wN,aAGV1wN,KAAK0wN,YAAa,EACd1wN,KAAKw4K,UACLx4K,KAAKw4K,SAAS64C,aAAarxN,KAAKywN,qBAAuBgB,EAAe,QAAU,UApF5F,GAAmDznN,K,QCStC0nN,EAAb,kDACI,WAAYxhM,GAAM,kCACd,gBACKyhM,YAAczhM,EAAK0hM,WACxB,EAAKC,MAAQ3hM,EAAKlhB,KAClB,EAAK8iN,YAAc5hM,EAAK6hM,WACxB,EAAKC,cAAgB9hM,EAAK2qE,aAC1B,EAAKo3H,gBAAkB/hM,EAAKgiM,eAC5B,EAAKC,sBAAwB,EAAKzoN,UAAU,IAAI2mN,EAA8BngM,EAAK+jB,WAAY,qBAAuB/jB,EAAKkiM,wBAAyB,uBAAyBliM,EAAKkiM,0BAClL,EAAKD,sBAAsBE,YAAY,EAAKJ,gBAAgBb,YAC5D,EAAKzB,kBAAoB,EAAKjmN,UAAU,IAAIkmN,KAC5C,EAAK0C,eAAgB,EACrB,EAAK1lN,QAAUmyI,YAAkB30I,SAASsF,cAAc,QACxD,EAAK9C,QAAQkK,aAAa,OAAQ,gBAClC,EAAKlK,QAAQkK,aAAa,cAAe,QACzC,EAAKq7M,sBAAsBI,WAAW,EAAK3lN,SAC3C,EAAKA,QAAQ+jH,YAAY,YACzB,EAAKk/F,YAAY,EAAKjjN,QAAQA,SAAS,SAACjM,GAAD,OAAO,EAAK6xN,kBAAkB7xN,MAhBvD,EADtB,gDAuBI,SAAauvB,GACT,IAAMs4J,EAAQxoL,KAAK0J,UAAU,IAAI0lN,EAAel/L,IAChDlwB,KAAK4M,QAAQA,QAAQgD,YAAY44K,EAAM+mC,WACvCvvN,KAAK4M,QAAQA,QAAQgD,YAAY44K,EAAM57K,WA1B/C,2BA+BI,SAAcb,EAAKE,EAAMpB,EAAOC,GAAQ,WACpC9K,KAAKyyN,OAAS1zE,YAAkB30I,SAASsF,cAAc,QACvD1P,KAAKyyN,OAAOpB,aAAa,UACzBrxN,KAAKyyN,OAAO9hG,YAAY,YACxB3wH,KAAKyyN,OAAOC,OAAO3mN,GACnB/L,KAAKyyN,OAAOE,QAAQ1mN,GACC,kBAAVpB,GACP7K,KAAKyyN,OAAOG,SAAS/nN,GAEH,kBAAXC,GACP9K,KAAKyyN,OAAOI,UAAU/nN,GAE1B9K,KAAKyyN,OAAOK,iBAAgB,GAC5B9yN,KAAKyyN,OAAOM,WAAW,UACvB/yN,KAAK4M,QAAQA,QAAQgD,YAAY5P,KAAKyyN,OAAO7lN,SAC7C5M,KAAK6vN,YAAY7vN,KAAKyyN,OAAO7lN,SAAS,SAACjM,GAC/BA,EAAE4sL,aACF5sL,EAAEsT,iBACF,EAAK++M,iBAAiBryN,GAAG,mBAGjCX,KAAKizN,QAAQjzN,KAAKyyN,OAAO7lN,SAAS,SAAAjM,GAC1BA,EAAE4sL,YACF5sL,EAAEwT,uBAtDlB,4BA2DI,SAAe++M,GAQX,OAPIlzN,KAAKiyN,gBAAgBkB,eAAeD,KACpClzN,KAAKmyN,sBAAsBE,YAAYryN,KAAKiyN,gBAAgBb,YAC5DpxN,KAAKsyN,eAAgB,EAChBtyN,KAAK2xN,aACN3xN,KAAKoqN,UAGNpqN,KAAKsyN,gBAnEpB,kCAqEI,SAAqBc,GAQjB,OAPIpzN,KAAKiyN,gBAAgBoB,cAAcD,KACnCpzN,KAAKmyN,sBAAsBE,YAAYryN,KAAKiyN,gBAAgBb,YAC5DpxN,KAAKsyN,eAAgB,EAChBtyN,KAAK2xN,aACN3xN,KAAKoqN,UAGNpqN,KAAKsyN,gBA7EpB,sCA+EI,SAAyBgB,GAQrB,OAPItzN,KAAKiyN,gBAAgBsB,kBAAkBD,KACvCtzN,KAAKmyN,sBAAsBE,YAAYryN,KAAKiyN,gBAAgBb,YAC5DpxN,KAAKsyN,eAAgB,EAChBtyN,KAAK2xN,aACN3xN,KAAKoqN,UAGNpqN,KAAKsyN,gBAvFpB,yBA0FI,WACItyN,KAAKmyN,sBAAsBb,oBAAmB,KA3FtD,uBA6FI,WACItxN,KAAKmyN,sBAAsBb,oBAAmB,KA9FtD,oBAgGI,WACStxN,KAAKsyN,gBAGVtyN,KAAKsyN,eAAgB,EACrBtyN,KAAKwzN,eAAexzN,KAAKiyN,gBAAgBwB,wBAAyBzzN,KAAKiyN,gBAAgByB,yBACvF1zN,KAAK2zN,cAAc3zN,KAAKiyN,gBAAgB2B,gBAAiB5zN,KAAKiyN,gBAAgB4B,eAAiB7zN,KAAKiyN,gBAAgB6B,wBAtG5H,+BAyGI,SAAkBnzN,GACVA,EAAE/C,SAAWoC,KAAK4M,QAAQA,SAG9B5M,KAAK+zN,aAAapzN,KA7G1B,+BA+GI,SAAkBA,GACd,IAAMqzN,EAASh0N,KAAK4M,QAAQA,QAAQqnN,iBAAiB,GAAGloN,IAClDmoN,EAAcF,EAASh0N,KAAKiyN,gBAAgB6B,oBAC5CK,EAAaH,EAASh0N,KAAKiyN,gBAAgB6B,oBAAsB9zN,KAAKiyN,gBAAgB2B,gBACtFQ,EAAWp0N,KAAKq0N,qBAAqB1zN,GACvCuzN,GAAeE,GAAYA,GAAYD,EAEnCxzN,EAAE4sL,aACF5sL,EAAEsT,iBACFjU,KAAKgzN,iBAAiBryN,GAAG,gBAK7BX,KAAK+zN,aAAapzN,KA7H9B,0BAgII,SAAaA,GACT,IAAI2zN,EACAC,EACJ,GAAI5zN,EAAE/C,SAAWoC,KAAK4M,QAAQA,SAA6C,kBAA3BjM,EAAE6iK,aAAa8wD,SAA0D,kBAA3B3zN,EAAE6iK,aAAa+wD,QACzGD,EAAU3zN,EAAE6iK,aAAa8wD,QACzBC,EAAU5zN,EAAE6iK,aAAa+wD,YAExB,CACD,IAAMC,EAAkB9nD,yBAA2B1sK,KAAK4M,QAAQA,SAChE0nN,EAAU3zN,EAAEitL,KAAO4mC,EAAgBvoN,KACnCsoN,EAAU5zN,EAAEktL,KAAO2mC,EAAgBzoN,IAEvC,IAAMq0B,EAASpgC,KAAKy0N,2BAA2BH,EAASC,GACxDv0N,KAAK00N,6BAA6B10N,KAAKgyN,cACjChyN,KAAKiyN,gBAAgB0C,wCAAwCv0L,GAC7DpgC,KAAKiyN,gBAAgB2C,mCAAmCx0L,IAC1Dz/B,EAAE4sL,aACF5sL,EAAEsT,iBACFjU,KAAKgzN,iBAAiBryN,GAAG,kBAlJrC,8BAqJI,SAAiBA,EAAGk0N,GAAgB,WAC1BC,EAAuB90N,KAAKq0N,qBAAqB1zN,GACjDo0N,EAAiC/0N,KAAKg1N,+BAA+Br0N,GACrEs0N,EAAwBj1N,KAAKiyN,gBAAgB5kJ,QACnDrtE,KAAKyyN,OAAOyC,gBAAgB,UAAU,GACtCl1N,KAAK2vN,kBAAkBO,gBAAgBvvN,EAAE/C,OAAQ+C,EAAEoZ,QAASo2M,KAAyB,SAACC,GAClF,IAAM+E,EAA0B,EAAKH,+BAA+B5E,GAC9DgF,EAAuB19M,KAAKmgD,IAAIs9J,EAA0BJ,GAChE,GAAIxuN,KAAsB6uN,EA9JJ,IAgKlB,EAAKV,6BAA6BO,EAAsBI,yBAF5D,CAKA,IACMC,EADgB,EAAKjB,qBAAqBjE,GACb0E,EACnC,EAAKJ,6BAA6BO,EAAsBM,kCAAkCD,QAC3F,WACC,EAAK7C,OAAOyC,gBAAgB,UAAU,GACtC,EAAKrD,MAAM2D,YACXX,OAEJ70N,KAAK6xN,MAAM4D,gBA1KnB,0CA4KI,SAA6BC,GACzB,IAAMC,EAAwB,GAC9B31N,KAAK41N,oBAAoBD,EAAuBD,GAChD11N,KAAK8xN,YAAY+D,qBAAqBF,KA/K9C,iCAiLI,SAAoBG,GAChB91N,KAAK+1N,qBAAqBD,GAC1B91N,KAAKiyN,gBAAgB+D,iBAAiBF,GACtC91N,KAAKsyN,eAAgB,EAChBtyN,KAAK2xN,aACN3xN,KAAKoqN,WAtLjB,sBAyLI,WACI,OAAOpqN,KAAKiyN,gBAAgBb,eA1LpC,GAAuC1yB,KCP1Bu3B,EAAb,WACI,WAAYx+H,EAAWq+H,EAAeI,EAAuBhD,EAAaiD,EAAYC,GAAgB,oBAClGp2N,KAAKq2N,eAAiB3+M,KAAKq/C,MAAM++J,GACjC91N,KAAKs2N,uBAAyB5+M,KAAKq/C,MAAMm/J,GACzCl2N,KAAKu2N,WAAa7+M,KAAKq/C,MAAM0gC,GAC7Bz3F,KAAKw2N,aAAetD,EACpBlzN,KAAKy2N,YAAcN,EACnBn2N,KAAK02N,gBAAkBN,EACvBp2N,KAAK22N,uBAAyB,EAC9B32N,KAAK42N,mBAAoB,EACzB52N,KAAK62N,oBAAsB,EAC3B72N,KAAK82N,qBAAuB,EAC5B92N,KAAK+2N,wBAA0B,EAC/B/2N,KAAKg3N,yBAbb,yCAeI,WACI,OAAO,IAAIf,EAAej2N,KAAKu2N,WAAYv2N,KAAKq2N,eAAgBr2N,KAAKs2N,uBAAwBt2N,KAAKw2N,aAAcx2N,KAAKy2N,YAAaz2N,KAAK02N,mBAhB/I,4BAkBI,SAAexD,GACX,IAAM+D,EAAev/M,KAAKq/C,MAAMm8J,GAChC,OAAIlzN,KAAKw2N,eAAiBS,IACtBj3N,KAAKw2N,aAAeS,EACpBj3N,KAAKg3N,0BACE,KAvBnB,2BA2BI,SAAcb,GACV,IAAMe,EAAcx/M,KAAKq/C,MAAMo/J,GAC/B,OAAIn2N,KAAKy2N,cAAgBS,IACrBl3N,KAAKy2N,YAAcS,EACnBl3N,KAAKg3N,0BACE,KAhCnB,+BAoCI,SAAkBZ,GACd,IAAMe,EAAkBz/M,KAAKq/C,MAAMq/J,GACnC,OAAIp2N,KAAK02N,kBAAoBS,IACzBn3N,KAAK02N,gBAAkBS,EACvBn3N,KAAKg3N,0BACE,KAzCnB,8BA6CI,SAAiBlB,GACb91N,KAAKq2N,eAAiB3+M,KAAKq/C,MAAM++J,KA9CzC,sCAgDI,SAAyBI,GACrBl2N,KAAKs2N,uBAAyB5+M,KAAKq/C,MAAMm/J,KAjDjD,oCA+EI,WACI,IAAM/0N,EAAI80N,EAAemB,eAAep3N,KAAKs2N,uBAAwBt2N,KAAKu2N,WAAYv2N,KAAKw2N,aAAcx2N,KAAKy2N,YAAaz2N,KAAK02N,iBAChI12N,KAAK22N,uBAAyBx1N,EAAEk2N,sBAChCr3N,KAAK42N,kBAAoBz1N,EAAEm2N,iBAC3Bt3N,KAAK62N,oBAAsB11N,EAAEo2N,mBAC7Bv3N,KAAK82N,qBAAuB31N,EAAEq2N,oBAC9Bx3N,KAAK+2N,wBAA0B51N,EAAEs2N,yBArFzC,0BAuFI,WACI,OAAOz3N,KAAKu2N,aAxFpB,+BA0FI,WACI,OAAOv2N,KAAK02N,kBA3FpB,mCA6FI,WACI,OAAO12N,KAAK22N,yBA9FpB,mCAgGI,WACI,OAAO32N,KAAKq2N,iBAjGpB,sBAmGI,WACI,OAAOr2N,KAAK42N,oBApGpB,2BAsGI,WACI,OAAO52N,KAAK62N,sBAvGpB,+BAyGI,WACI,OAAO72N,KAAK+2N,0BA1GpB,gDAgHI,SAAmC32L,GAC/B,IAAKpgC,KAAK42N,kBAEN,OAAO,EAEX,IAAMc,EAAwBt3L,EAASpgC,KAAKu2N,WAAav2N,KAAK62N,oBAAsB,EACpF,OAAOn/M,KAAKq/C,MAAM2gK,EAAwB13N,KAAK82N,wBAtHvD,qDA8HI,SAAwC12L,GACpC,IAAKpgC,KAAK42N,kBAEN,OAAO,EAEX,IAAMe,EAAkBv3L,EAASpgC,KAAKu2N,WAClCZ,EAAwB31N,KAAK02N,gBAOjC,OANIiB,EAAkB33N,KAAK+2N,wBACvBpB,GAAyB31N,KAAKw2N,aAG9Bb,GAAyB31N,KAAKw2N,aAE3Bb,IA3If,+CAgJI,SAAkCh+J,GAC9B,IAAK33D,KAAK42N,kBAEN,OAAO,EAEX,IAAMc,EAAwB13N,KAAK+2N,wBAA0Bp/J,EAC7D,OAAOjgD,KAAKq/C,MAAM2gK,EAAwB13N,KAAK82N,yBAtJvD,6BAmDI,SAAsBZ,EAAuBz+H,EAAWy7H,EAAaiD,EAAYC,GAC7E,IAAMiB,EAAwB3/M,KAAKC,IAAI,EAAGu7M,EAAcgD,GAClD0B,EAA4BlgN,KAAKC,IAAI,EAAG0/M,EAAwB,EAAI5/H,GACpE6/H,EAAoBnB,EAAa,GAAKA,EAAajD,EACzD,IAAKoE,EAED,MAAO,CACHD,sBAAuB3/M,KAAKq/C,MAAMsgK,GAClCC,iBAAkBA,EAClBC,mBAAoB7/M,KAAKq/C,MAAM6gK,GAC/BJ,oBAAqB,EACrBC,uBAAwB,GAIhC,IAAMF,EAAqB7/M,KAAKq/C,MAAMr/C,KAAKC,IAnEvB,GAmEgDD,KAAKE,MAAMs7M,EAAc0E,EAA4BzB,KAGnHqB,GAAuBI,EAA4BL,IAAuBpB,EAAajD,GACvFuE,EAA0BrB,EAAiBoB,EACjD,MAAO,CACHH,sBAAuB3/M,KAAKq/C,MAAMsgK,GAClCC,iBAAkBA,EAClBC,mBAAoB7/M,KAAKq/C,MAAMwgK,GAC/BC,oBAAqBA,EACrBC,uBAAwB//M,KAAKq/C,MAAM0gK,QA5E/C,K,QCCMI,EAA0B7uJ,YAAgB,wBAAyB55B,IAAQ2uC,cAC3E+5I,EAA2B9uJ,YAAgB,yBAA0B55B,IAAQ4uC,eACtE+5I,EAAb,kDACI,WAAYhG,EAAY1sN,EAAS2J,GAAM,0BACnC,IAAMgpN,EAAmBjG,EAAWkG,sBAC9B7B,EAAiBrE,EAAWmG,2BAUlC,GATA,cAAM,CACFtG,WAAYvsN,EAAQusN,WACpB5iN,KAAMA,EACNkjN,eAAgB,IAAI+D,EAAgB5wN,EAAQm1F,oBAAsBn1F,EAAQoyF,UAAY,EAA4B,IAAvBpyF,EAAQi1F,WAAgC,EAAIj1F,EAAQsyF,wBAAgD,IAArBtyF,EAAQg1F,SAA8B,EAAIh1F,EAAQgyF,sBAAwB2gI,EAAiBntN,MAAOmtN,EAAiBG,YAAa/B,EAAe9pN,YACzT2nC,WAAY5uC,EAAQi1F,WACpB83H,wBAAyB,aACzBL,WAAYA,EACZl3H,aAAcx1F,EAAQw1F,eAEtBx1F,EAAQm1F,oBAAqB,CAC7B,IAAM49H,GAAc/yN,EAAQoyF,UAAY03H,GAAkB,EACpDkJ,GAAkBhzN,EAAQsyF,wBAA0Bw3H,GAAkB,EAC5E,EAAKmJ,aAAa,CACd9hN,UAAW,OACX0b,KAAM2lM,EACN9rN,IAAKssN,EACLpsN,KAAMmsN,EACNj5K,YAAQtlC,EACRkyB,WAAOlyB,EACP21M,QAASnqN,EAAQoyF,UACjBg4H,SAAUpqN,EAAQsyF,wBAClB23H,WAAY,kBAAM,EAAKuC,MAAM0G,aAAa,IAAIpqC,IAAmB,KAAM,EAAG,OAE9E,EAAKmqC,aAAa,CACd9hN,UAAW,OACX0b,KAAM4lM,EACN/rN,IAAKssN,EACLpsN,UAAM4N,EACNslC,YAAQtlC,EACRkyB,MAAOqsL,EACP5I,QAASnqN,EAAQoyF,UACjBg4H,SAAUpqN,EAAQsyF,wBAClB23H,WAAY,kBAAM,EAAKuC,MAAM0G,aAAa,IAAIpqC,IAAmB,MAAO,EAAG,OAnChD,OAsCnC,EAAKqqC,cAAc9gN,KAAKE,OAAOvS,EAAQsyF,wBAA0BtyF,EAAQo1F,sBAAwB,GAAI,OAAG5gF,EAAWxU,EAAQo1F,sBAtCxF,EAD3C,iDAyCI,SAAcg+H,EAAYC,GACtB14N,KAAKyyN,OAAOG,SAAS6F,GACrBz4N,KAAKyyN,OAAOE,QAAQ+F,KA3C5B,4BA6CI,SAAeC,EAAWC,GACtB54N,KAAK4M,QAAQgmN,SAAS+F,GACtB34N,KAAK4M,QAAQimN,UAAU+F,GACvB54N,KAAK4M,QAAQ+lN,QAAQ,GACrB3yN,KAAK4M,QAAQisN,UAAU,KAjD/B,yBAmDI,SAAYl4N,GAIR,OAHAX,KAAKsyN,cAAgBtyN,KAAK84N,qBAAqBn4N,EAAEw3N,cAAgBn4N,KAAKsyN,cACtEtyN,KAAKsyN,cAAgBtyN,KAAK+4N,yBAAyBp4N,EAAE2L,aAAetM,KAAKsyN,cACzEtyN,KAAKsyN,cAAgBtyN,KAAKg5N,eAAer4N,EAAEkK,QAAU7K,KAAKsyN,cACnDtyN,KAAKsyN,gBAvDpB,wCAyDI,SAA2BgC,EAASC,GAChC,OAAOD,IA1Df,kCA4DI,SAAqB3zN,GACjB,OAAOA,EAAEitL,OA7DjB,4CA+DI,SAA+BjtL,GAC3B,OAAOA,EAAEktL,OAhEjB,kCAkEI,SAAqBphL,GACjBzM,KAAKyyN,OAAOI,UAAUpmN,KAnE9B,iCAqEI,SAAoB7O,EAAQw4N,GACxBx4N,EAAO0O,WAAa8pN,IAtE5B,2BAwEI,SAAc/wN,GACVrF,KAAKi5N,oBAA2C,IAAvB5zN,EAAQi1F,WAAgC,EAAIj1F,EAAQsyF,yBAC7E33F,KAAKiyN,gBAAgBiH,yBAA8C,IAArB7zN,EAAQg1F,SAA8B,EAAIh1F,EAAQgyF,uBAChGr3F,KAAKmyN,sBAAsBgH,cAAc9zN,EAAQi1F,YACjDt6F,KAAKgyN,cAAgB3sN,EAAQw1F,iBA5ErC,GAAyC62H,GCFnC0H,EAAwBpwJ,YAAgB,sBAAuB55B,IAAQ6uC,YACvEo7I,EAA0BrwJ,YAAgB,wBAAyB55B,IAAQ0uC,cACpEw7I,EAAb,kDACI,WAAYvH,EAAY1sN,EAAS2J,GAAM,0BACnC,IAAMgpN,EAAmBjG,EAAWkG,sBAC9B7B,EAAiBrE,EAAWmG,2BAYlC,GAXA,cAAM,CACFtG,WAAYvsN,EAAQusN,WACpB5iN,KAAMA,EACNkjN,eAAgB,IAAI+D,EAAgB5wN,EAAQkyF,kBAAoBlyF,EAAQoyF,UAAY,EAA0B,IAArBpyF,EAAQg1F,SAA8B,EAAIh1F,EAAQgyF,sBAE3I,EAAG2gI,EAAiBltN,OAAQktN,EAAiBuB,aAAcnD,EAAejqN,WAC1E8nC,WAAY5uC,EAAQg1F,SACpB+3H,wBAAyB,WACzBL,WAAYA,EACZl3H,aAAcx1F,EAAQw1F,eAEtBx1F,EAAQkyF,kBAAmB,CAC3B,IAAM6gI,GAAc/yN,EAAQoyF,UAAY03H,GAAkB,EACpDkJ,GAAkBhzN,EAAQgyF,sBAAwB83H,GAAkB,EAC1E,EAAKmJ,aAAa,CACd9hN,UAAW,OACX0b,KAAMknM,EACNrtN,IAAKqsN,EACLnsN,KAAMosN,EACNl5K,YAAQtlC,EACRkyB,WAAOlyB,EACP21M,QAASnqN,EAAQgyF,sBACjBo4H,SAAUpqN,EAAQoyF,UAClB63H,WAAY,kBAAM,EAAKuC,MAAM0G,aAAa,IAAIpqC,IAAmB,KAAM,EAAG,OAE9E,EAAKmqC,aAAa,CACd9hN,UAAW,OACX0b,KAAMmnM,EACNttN,SAAK8N,EACL5N,KAAMosN,EACNl5K,OAAQi5K,EACRrsL,WAAOlyB,EACP21M,QAASnqN,EAAQgyF,sBACjBo4H,SAAUpqN,EAAQoyF,UAClB63H,WAAY,kBAAM,EAAKuC,MAAM0G,aAAa,IAAIpqC,IAAmB,KAAM,GAAI,OArChD,OAwCnC,EAAKqqC,cAAc,EAAG9gN,KAAKE,OAAOvS,EAAQgyF,sBAAwBhyF,EAAQq1F,oBAAsB,GAAIr1F,EAAQq1F,wBAAoB7gF,GAxC7F,EAD3C,iDA2CI,SAAc4+M,EAAYC,GACtB14N,KAAKyyN,OAAOI,UAAU4F,GACtBz4N,KAAKyyN,OAAOC,OAAOgG,KA7C3B,4BA+CI,SAAeC,EAAWC,GACtB54N,KAAK4M,QAAQgmN,SAASgG,GACtB54N,KAAK4M,QAAQimN,UAAU8F,GACvB34N,KAAK4M,QAAQ4sN,SAAS,GACtBx5N,KAAK4M,QAAQ8lN,OAAO,KAnD5B,yBAqDI,SAAY/xN,GAIR,OAHAX,KAAKsyN,cAAgBtyN,KAAK84N,qBAAqBn4N,EAAE44N,eAAiBv5N,KAAKsyN,cACvEtyN,KAAKsyN,cAAgBtyN,KAAK+4N,yBAAyBp4N,EAAEwL,YAAcnM,KAAKsyN,cACxEtyN,KAAKsyN,cAAgBtyN,KAAKg5N,eAAer4N,EAAEmK,SAAW9K,KAAKsyN,cACpDtyN,KAAKsyN,gBAzDpB,wCA2DI,SAA2BgC,EAASC,GAChC,OAAOA,IA5Df,kCA8DI,SAAqB5zN,GACjB,OAAOA,EAAEktL,OA/DjB,4CAiEI,SAA+BltL,GAC3B,OAAOA,EAAEitL,OAlEjB,kCAoEI,SAAqBnhL,GACjBzM,KAAKyyN,OAAOG,SAASnmN,KArE7B,iCAuEI,SAAoB7O,EAAQw4N,GACxBx4N,EAAOuO,UAAYiqN,IAxE3B,2BA0EI,SAAc/wN,GACVrF,KAAKi5N,oBAAyC,IAArB5zN,EAAQg1F,SAA8B,EAAIh1F,EAAQgyF,uBAE3Er3F,KAAKiyN,gBAAgBiH,yBAAyB,GAC9Cl5N,KAAKmyN,sBAAsBgH,cAAc9zN,EAAQg1F,UACjDr6F,KAAKgyN,cAAgB3sN,EAAQw1F,iBA/ErC,GAAuC62H,G,iBCSjC+H,G,OACF,WAAYz9D,EAAWsB,EAAQC,GAAQ,oBACnCv9J,KAAKg8J,UAAYA,EACjBh8J,KAAKs9J,OAASA,EACdt9J,KAAKu9J,OAASA,EACdv9J,KAAK8/I,MAAQ,IAGR45E,EAAb,WACI,aAAc,oBACV15N,KAAK25N,UAAY,EACjB35N,KAAK45N,QAAU,GACf55N,KAAK65N,QAAU,EACf75N,KAAK85N,OAAS,EALtB,wDAOI,WACI,IAAqB,IAAjB95N,KAAK65N,SAAiC,IAAhB75N,KAAK85N,MAE3B,OAAO,EAOX,IAJA,IAAIC,EAAqB,EACrBj6E,EAAQ,EACRk6E,EAAY,EACZ/6N,EAAQe,KAAK85N,QACd,CACC,IAAMG,EAAah7N,IAAUe,KAAK65N,OAASE,EAAqBriN,KAAKo/C,IAAI,GAAIkjK,GAG7E,GAFAD,GAAsBE,EACtBn6E,GAAS9/I,KAAK45N,QAAQ36N,GAAO6gJ,MAAQm6E,EACjCh7N,IAAUe,KAAK65N,OACf,MAEJ56N,GAASe,KAAK25N,UAAY16N,EAAQ,GAAKe,KAAK25N,UAC5CK,IAEJ,OAAQl6E,GAAS,KA3BzB,oBA6BI,SAAOkc,EAAWsB,EAAQC,GACtB,IAAMt0J,EAAO,IAAIwwN,EAAyBz9D,EAAWsB,EAAQC,GAC7Dt0J,EAAK62I,MAAQ9/I,KAAKk6N,cAAcjxN,IACX,IAAjBjJ,KAAK65N,SAAiC,IAAhB75N,KAAK85N,OAC3B95N,KAAK45N,QAAQ,GAAK3wN,EAClBjJ,KAAK65N,OAAS,EACd75N,KAAK85N,MAAQ,IAGb95N,KAAK85N,OAAS95N,KAAK85N,MAAQ,GAAK95N,KAAK25N,UACjC35N,KAAK85N,QAAU95N,KAAK65N,SAEpB75N,KAAK65N,QAAU75N,KAAK65N,OAAS,GAAK75N,KAAK25N,WAE3C35N,KAAK45N,QAAQ55N,KAAK85N,OAAS7wN,KA3CvC,2BAmDI,SAAcA,GACV,GAAIyO,KAAKmgD,IAAI5uD,EAAKq0J,QAAU,GAAK5lJ,KAAKmgD,IAAI5uD,EAAKs0J,QAAU,EAErD,OAAO,EAEX,IAAIzd,EAAQ,IACmB,IAAjB9/I,KAAK65N,SAAiC,IAAhB75N,KAAK85N,OAAsB95N,KAAK45N,QAAQ55N,KAAK85N,OAgBjF,OAJK95N,KAAKm6N,aAAalxN,EAAKq0J,SAAYt9J,KAAKm6N,aAAalxN,EAAKs0J,UAE3Dzd,GAAS,KAENpoI,KAAKgI,IAAIhI,KAAKC,IAAImoI,EAAO,GAAI,KAzE5C,0BA2EI,SAAa99I,GAET,OADc0V,KAAKmgD,IAAIngD,KAAKq/C,MAAM/0D,GAASA,GAC3B,QA7ExB,KAgFA03N,EAAqB/jM,SAAW,IAAI+jM,EAC7B,IAAMU,EAAb,kDACI,WAAY7vN,EAASlF,EAAS0sN,GAAY,2BACtC,gBACKsI,UAAY,EAAK3wN,UAAU,IAAI+K,KACpC,EAAK6lN,SAAW,EAAKD,UAAU1lN,MAC/B,EAAK4lN,cAAgB,EAAK7wN,UAAU,IAAI+K,KACxClK,EAAQmC,MAAMuzC,SAAW,SACzB,EAAKx6C,SAyWb,SAAwByqB,GACpB,IAAM9tB,EAAS,CACXwvN,WAAwC,qBAApB1hM,EAAK0hM,YAA6B1hM,EAAK0hM,WAC3Dp7M,UAAsC,qBAAnB0Z,EAAK1Z,UAA4B0Z,EAAK1Z,UAAY,GACrE+jF,WAAwC,qBAApBrqE,EAAKqqE,YAA6BrqE,EAAKqqE,WAC3DI,iBAAoD,qBAA1BzqE,EAAKyqE,kBAAmCzqE,EAAKyqE,iBACvE6/H,SAAoC,qBAAlBtqM,EAAKsqM,UAA2BtqM,EAAKsqM,SACvDC,qCAA4F,qBAA9CvqM,EAAKuqM,sCAAuDvqM,EAAKuqM,qCAC/G7/H,wBAAkE,qBAAjC1qE,EAAK0qE,yBAA0C1qE,EAAK0qE,wBACrF8/H,WAAwC,qBAApBxqM,EAAKwqM,YAA6BxqM,EAAKwqM,WAC3Dh5H,4BAA0E,qBAArCxxE,EAAKwxE,4BAA8CxxE,EAAKwxE,4BAA8B,EAC3HlB,sBAA8D,qBAA/BtwE,EAAKswE,sBAAwCtwE,EAAKswE,sBAAwB,EACzGwC,sBAA8D,qBAA/B9yE,EAAK8yE,uBAAwC9yE,EAAK8yE,sBACjF23H,uBAAgE,qBAAhCzqM,EAAKyqM,wBAAyCzqM,EAAKyqM,uBACnFljI,UAAsC,qBAAnBvnE,EAAKunE,UAA4BvnE,EAAKunE,UAAY,GACrEmjI,gBAAkD,qBAAzB1qM,EAAK0qM,gBAAkC1qM,EAAK0qM,gBAAkB,KACvFtgI,WAAwC,qBAApBpqE,EAAKoqE,WAA6BpqE,EAAKoqE,WAAa,EACxE3C,wBAAkE,qBAAjCznE,EAAKynE,wBAA0CznE,EAAKynE,wBAA0B,GAC/G8C,qBAA4D,qBAA9BvqE,EAAKuqE,qBAAuCvqE,EAAKuqE,qBAAuB,EACtGD,oBAA0D,qBAA7BtqE,EAAKsqE,qBAAsCtqE,EAAKsqE,oBAC7EH,SAAoC,qBAAlBnqE,EAAKmqE,SAA2BnqE,EAAKmqE,SAAW,EAClEhD,sBAA8D,qBAA/BnnE,EAAKmnE,sBAAwCnnE,EAAKmnE,sBAAwB,GACzGE,kBAAsD,qBAA3BrnE,EAAKqnE,mBAAoCrnE,EAAKqnE,kBACzEmD,mBAAwD,qBAA5BxqE,EAAKwqE,mBAAqCxqE,EAAKwqE,mBAAqB,EAChGG,aAA4C,qBAAtB3qE,EAAK2qE,cAA+B3qE,EAAK2qE,cAEnEz4F,EAAOq4F,qBAA6D,qBAA9BvqE,EAAKuqE,qBAAuCvqE,EAAKuqE,qBAAuBr4F,EAAOu1F,wBACrHv1F,EAAOs4F,mBAAyD,qBAA5BxqE,EAAKwqE,mBAAqCxqE,EAAKwqE,mBAAqBt4F,EAAOi1F,sBAE3G9wF,MACAnE,EAAOoU,WAAa,QAExB,OAAOpU,EAzYaw7H,CAAev4H,GAC/B,EAAKysN,YAAcC,EACnB,EAAKroN,UAAU,EAAKooN,YAAYwI,UAAS,SAAC35N,GACtC,EAAK45N,cAActlN,KAAKtU,GACxB,EAAKk6N,aAAal6N,GAClB,EAAK05N,UAAUplN,KAAKtU,OAExB,IAAMm6N,EAAgB,CAClBvC,aAAc,SAACwC,GAAD,OAAqB,EAAKC,cAAcD,IACtDtF,YAAa,kBAAM,EAAKwF,gBACxBzF,UAAW,kBAAM,EAAK0F,eAhBY,OAkBtC,EAAKC,mBAAqB,EAAKzxN,UAAU,IAAI4vN,EAAkB,EAAKxH,YAAa,EAAKrsN,SAAUq1N,IAChG,EAAKM,qBAAuB,EAAK1xN,UAAU,IAAIquN,EAAoB,EAAKjG,YAAa,EAAKrsN,SAAUq1N,IACpG,EAAKtiD,SAAWpuK,SAASsF,cAAc,OACvC,EAAK8oK,SAAShiK,UAAY,6BAA+B,EAAK/Q,SAAS+Q,UACvE,EAAKgiK,SAAS1hK,aAAa,OAAQ,gBACnC,EAAK0hK,SAAS9rK,MAAMiS,SAAW,WAC/B,EAAK65J,SAAS9rK,MAAMuzC,SAAW,SAC/B,EAAKu4H,SAAS5oK,YAAYrF,GAC1B,EAAKiuK,SAAS5oK,YAAY,EAAKwrN,qBAAqBxuN,QAAQA,SAC5D,EAAK4rK,SAAS5oK,YAAY,EAAKurN,mBAAmBvuN,QAAQA,SACtD,EAAKnH,SAAS80F,YACd,EAAK8gI,mBAAqBt8E,YAAkB30I,SAASsF,cAAc,QACnE,EAAK2rN,mBAAmBhK,aAAa,UACrC,EAAK74C,SAAS5oK,YAAY,EAAKyrN,mBAAmBzuN,SAClD,EAAK0uN,kBAAoBv8E,YAAkB30I,SAASsF,cAAc,QAClE,EAAK4rN,kBAAkBjK,aAAa,UACpC,EAAK74C,SAAS5oK,YAAY,EAAK0rN,kBAAkB1uN,SACjD,EAAK2uN,sBAAwBx8E,YAAkB30I,SAASsF,cAAc,QACtE,EAAK6rN,sBAAsBlK,aAAa,UACxC,EAAK74C,SAAS5oK,YAAY,EAAK2rN,sBAAsB3uN,WAGrD,EAAKyuN,mBAAqB,KAC1B,EAAKC,kBAAoB,KACzB,EAAKC,sBAAwB,MAEjC,EAAKC,iBAAmB,EAAK/1N,SAASm1N,iBAAmB,EAAKpiD,SAC9D,EAAKijD,qBAAuB,GAC5B,EAAKC,0BAA0B,EAAKj2N,SAASk1F,kBAC7C,EAAKghI,YAAY,EAAKH,kBAAkB,SAAC76N,GAAD,OAAO,EAAKi7N,aAAaj7N,MACjE,EAAKk7N,sBAAsB,EAAKL,kBAAkB,SAAC76N,GAAD,OAAO,EAAKm7N,YAAYn7N,MAC1E,EAAKo7N,aAAe,EAAKryN,UAAU,IAAIC,KACvC,EAAKqyN,aAAc,EACnB,EAAKC,cAAe,EACpB,EAAK3J,eAAgB,EACrB,EAAK4J,iBAAkB,EArDe,EAD9C,2CAwDI,WACIl8N,KAAKy7N,qBAAuBrjN,YAAQpY,KAAKy7N,sBACzC,kEA1DR,wBA+DI,WACI,OAAOz7N,KAAKw4K,WAhEpB,wCAkEI,WACI,MAAO,CACHljK,OAAQtV,KAAKw4K,SACb9iK,aAAc1V,KAAKm7N,mBAAmBvuN,QAAQA,WArE1D,gDA4EI,SAAmC42J,GAC/BxjK,KAAKm7N,mBAAmBgB,kBAAkB34D,KA7ElD,iCA+EI,WACI,OAAOxjK,KAAK8xN,YAAYmG,wBAhFhC,iCAkFI,SAAoB5yB,GAChBrlM,KAAK8xN,YAAYsK,oBAAoB/2B,GAAY,KAnFzD,6BAwFI,SAAgBg3B,GACZr8N,KAAKyF,SAAS+Q,UAAY6lN,EAEtB91N,MACAvG,KAAKyF,SAAS+Q,WAAa,QAE/BxW,KAAKw4K,SAAShiK,UAAY,6BAA+BxW,KAAKyF,SAAS+Q,YA9F/E,2BAmGI,SAAc8lN,GACiC,qBAAhCA,EAAW3hI,mBAClB36F,KAAKyF,SAASk1F,iBAAmB2hI,EAAW3hI,iBAC5C36F,KAAK07N,0BAA0B17N,KAAKyF,SAASk1F,mBAEK,qBAA3C2hI,EAAW56H,8BAClB1hG,KAAKyF,SAASi8F,4BAA8B46H,EAAW56H,6BAEX,qBAArC46H,EAAW97H,wBAClBxgG,KAAKyF,SAAS+6F,sBAAwB87H,EAAW97H,uBAEL,qBAArC87H,EAAWt5H,wBAClBhjG,KAAKyF,SAASu9F,sBAAwBs5H,EAAWt5H,uBAEhB,qBAA1Bs5H,EAAWhiI,aAClBt6F,KAAKyF,SAAS60F,WAAagiI,EAAWhiI,YAEP,qBAAxBgiI,EAAWjiI,WAClBr6F,KAAKyF,SAAS40F,SAAWiiI,EAAWjiI,UAEU,qBAAvCiiI,EAAW3kI,0BAClB33F,KAAKyF,SAASkyF,wBAA0B2kI,EAAW3kI,yBAEP,qBAArC2kI,EAAWjlI,wBAClBr3F,KAAKyF,SAAS4xF,sBAAwBilI,EAAWjlI,uBAEd,qBAA5BilI,EAAWzhI,eAClB76F,KAAKyF,SAASo1F,aAAeyhI,EAAWzhI,cAE5C76F,KAAKo7N,qBAAqBn5F,cAAcjiI,KAAKyF,UAC7CzF,KAAKm7N,mBAAmBl5F,cAAcjiI,KAAKyF,UACtCzF,KAAKyF,SAASmsN,YACf5xN,KAAKy3L,YAnIjB,uCAuII,SAA0B8kC,GAAc,WAEpC,GADqBv8N,KAAKy7N,qBAAqB19N,OAAS,IACpCw+N,IAKpBv8N,KAAKy7N,qBAAuBrjN,YAAQpY,KAAKy7N,sBAErCc,GAAc,CAIdv8N,KAAKy7N,qBAAqBl4N,KAAKmpK,wBAA0B1sK,KAAKw7N,iBAAkB9uD,YAAcj7J,aAHzE,SAAC+xJ,GAClB,EAAKw3D,cAAc,IAAI7sC,IAAmB3qB,MAE2E,CAAE3H,SAAS,QApJhJ,2BAuJI,SAAcl7J,GACV,IAAM67N,EAAa9C,EAAqB/jM,SAE9B8mM,EAAe9xN,OAAO8M,iBAAmBiiI,cAC3CnzI,KAAsBA,IAGtBi2N,EAAWnpB,OAAOprM,KAAKm6D,MAAOzhE,EAAE28J,OAASm/D,EAAc97N,EAAE48J,OAASk/D,GAGlED,EAAWnpB,OAAOprM,KAAKm6D,MAAOzhE,EAAE28J,OAAQ38J,EAAE48J,QAIlD,IAAIm/D,GAAY,EAChB,GAAI/7N,EAAE48J,QAAU58J,EAAE28J,OAAQ,CACtB,IAAIC,EAAS58J,EAAE48J,OAASv9J,KAAKyF,SAASi8F,4BAClC47D,EAAS38J,EAAE28J,OAASt9J,KAAKyF,SAASi8F,4BAStC,GARI1hG,KAAKyF,SAASu9F,wBACVtrF,KAAKmgD,IAAI0lG,IAAW7lJ,KAAKmgD,IAAIylG,GAC7BA,EAAS,EAGTC,EAAS,GAGbv9J,KAAKyF,SAAS+0N,SAAU,OACL,CAACl9D,EAAQC,GAA3BA,EADuB,KACfD,EADe,KAK5B,IAAMq/D,GAAgBp2N,KAAwB5F,EAAE6iK,cAAgB7iK,EAAE6iK,aAAanqJ,UAC1ErZ,KAAKyF,SAASi1N,aAAciC,GAAkBr/D,IAC/CA,EAASC,EACTA,EAAS,GAET58J,EAAE6iK,cAAgB7iK,EAAE6iK,aAAapqJ,SAEjCkkJ,GAAkBt9J,KAAKyF,SAAS+6F,sBAChC+8D,GAAkBv9J,KAAKyF,SAAS+6F,uBAEpC,IAAMo8H,EAAuB58N,KAAK8xN,YAAY+K,0BAC1ClH,EAAwB,GAC5B,GAAIp4D,EAAQ,CACR,IAAMu/D,EA9RW,GA8RiCv/D,EAE5C0nD,EAAmB2X,EAAqBzwN,WAAa2wN,EAAiB,EAAIplN,KAAKE,MAAMklN,GAAkBplN,KAAK++E,KAAKqmI,IACvH98N,KAAKm7N,mBAAmBvF,oBAAoBD,EAAuB1Q,GAEvE,GAAI3nD,EAAQ,CACR,IAAMy/D,EApSW,GAoSkCz/D,EAE7C0/D,EAAoBJ,EAAqBtwN,YAAcywN,EAAkB,EAAIrlN,KAAKE,MAAMmlN,GAAmBrlN,KAAK++E,KAAKsmI,IAC3H/8N,KAAKo7N,qBAAqBxF,oBAAoBD,EAAuBqH,GAIzE,GADArH,EAAwB31N,KAAK8xN,YAAYmL,uBAAuBtH,GAC5DiH,EAAqBtwN,aAAeqpN,EAAsBrpN,YAAcswN,EAAqBzwN,YAAcwpN,EAAsBxpN,UAE1HnM,KAAKyF,SAASk1N,wBACd6B,EAAWU,uBAEdl9N,KAAK8xN,YAAYqL,wBAAwBxH,GAGzC31N,KAAK8xN,YAAY+D,qBAAqBF,GAE1C+G,GAAY,EAGpB,IAAIU,EAAoBV,GACnBU,GAAqBp9N,KAAKyF,SAASm1F,0BACpCwiI,GAAoB,IAEnBA,GAAqBp9N,KAAKyF,SAASg1N,uCAAyCz6N,KAAKm7N,mBAAmB/J,YAAcpxN,KAAKo7N,qBAAqBhK,cAC7IgM,GAAoB,GAEpBA,IACAz8N,EAAEsT,iBACFtT,EAAEwT,qBAtOd,0BAyOI,SAAaxT,GACTX,KAAKsyN,cAAgBtyN,KAAKo7N,qBAAqBiC,YAAY18N,IAAMX,KAAKsyN,cACtEtyN,KAAKsyN,cAAgBtyN,KAAKm7N,mBAAmBkC,YAAY18N,IAAMX,KAAKsyN,cAChEtyN,KAAKyF,SAAS80F,aACdv6F,KAAKsyN,eAAgB,GAErBtyN,KAAKk8N,iBACLl8N,KAAKuxN,UAEJvxN,KAAKyF,SAASmsN,YACf5xN,KAAKy3L,YAnPjB,uBA0PI,WACI,IAAKz3L,KAAKyF,SAASmsN,WACf,MAAM,IAAI1mN,MAAM,sDAEpBlL,KAAKy3L,YA9Pb,qBAgQI,WACI,GAAKz3L,KAAKsyN,gBAGVtyN,KAAKsyN,eAAgB,EACrBtyN,KAAKo7N,qBAAqBhR,SAC1BpqN,KAAKm7N,mBAAmB/Q,SACpBpqN,KAAKyF,SAAS80F,YAAY,CAC1B,IAAM+iI,EAAct9N,KAAK8xN,YAAYoG,2BAC/BqF,EAAYD,EAAYnxN,UAAY,EACpCqxN,EAAaF,EAAYhxN,WAAa,EACtCmxN,EAAiBD,EAAa,QAAU,GACxCE,EAAgBH,EAAY,OAAS,GACrCI,EAAoBH,GAAcD,EAAY,mBAAqB,GACzEv9N,KAAKq7N,mBAAmBhK,aAAxB,gBAA8CoM,IAC9Cz9N,KAAKs7N,kBAAkBjK,aAAvB,gBAA6CqM,IAC7C19N,KAAKu7N,sBAAsBlK,aAA3B,gBAAiDsM,GAAjD,OAAoED,GAApE,OAAmFD,OAhR/F,0BAoRI,WACIz9N,KAAKg8N,aAAc,EACnBh8N,KAAKuxN,YAtRb,wBAwRI,WACIvxN,KAAKg8N,aAAc,EACnBh8N,KAAKwxN,UA1Rb,yBA4RI,SAAY7wN,GACRX,KAAKi8N,cAAe,EACpBj8N,KAAKwxN,UA9Rb,0BAgSI,SAAa7wN,GACTX,KAAKi8N,cAAe,EACpBj8N,KAAKuxN,YAlSb,qBAoSI,WACIvxN,KAAKm7N,mBAAmByC,cACxB59N,KAAKo7N,qBAAqBwC,cAC1B59N,KAAK69N,kBAvSb,mBAySI,WACS79N,KAAKi8N,cAAiBj8N,KAAKg8N,cAC5Bh8N,KAAKm7N,mBAAmB2C,YACxB99N,KAAKo7N,qBAAqB0C,eA5StC,2BA+SI,WAAgB,WACP99N,KAAKi8N,cAAiBj8N,KAAKg8N,aAC5Bh8N,KAAK+7N,aAAa9L,cAAa,kBAAM,EAAKuB,UA7YjC,SA4FrB,GAA+C9yB,KAqTlCq/B,EAAb,kDACI,WAAYxzN,EAASlF,GAAS,2BAC1BA,EAAUA,GAAW,IACbs1N,wBAAyB,EACjC,IAAM5I,EAAa,IAAIiM,IAAW,GAAG,SAACv2N,GAAD,OAAcilK,+BAAiCjlK,MAH1D,OAI1B,cAAM8C,EAASlF,EAAS0sN,IACnBroN,UAAUqoN,GALW,EADlC,qDAQI,SAAkBzkC,GACdttL,KAAK8xN,YAAY+D,qBAAqBvoC,KAT9C,+BAWI,WACI,OAAOttL,KAAK8xN,YAAYoG,+BAZhC,GAAuCkC,GAe1B6D,EAAb,kDACI,WAAY1zN,EAASlF,EAAS0sN,GAAY,uCAChCxnN,EAASlF,EAAS0sN,GAFhC,qDAII,SAAkBzkC,GACVA,EAAO4wC,eACPl+N,KAAK8xN,YAAYqL,wBAAwB7vC,EAAQA,EAAO4wC,gBAGxDl+N,KAAK8xN,YAAY+D,qBAAqBvoC,KATlD,+BAYI,WACI,OAAOttL,KAAK8xN,YAAYoG,+BAbhC,GAA6CkC,GAgBhC+D,EAAb,kDACI,WAAY5zN,EAASlF,GAAS,kCAC1B,cAAMkF,EAASlF,IACV60F,SAAW3vF,EAChB,EAAK+vN,UAAS,SAAC35N,GACPA,EAAEy9N,mBACF,EAAKlkI,SAAS/tF,UAAYxL,EAAEwL,WAE5BxL,EAAE09N,oBACF,EAAKnkI,SAAS5tF,WAAa3L,EAAE2L,eAGrC,EAAKgyN,cAXqB,EADlC,+CAcI,WAEIt+N,KAAKo8N,oBAAoB,CACrBvxN,MAAO7K,KAAKk6F,SAASzvF,YACrB0tN,YAAan4N,KAAKk6F,SAASi+H,YAC3BrtN,OAAQ9K,KAAKk6F,SAASxvF,aACtB6uN,aAAcv5N,KAAKk6F,SAASq/H,eAEhCv5N,KAAKuzN,kBAAkB,CACnBjnN,WAAYtM,KAAKk6F,SAAS5tF,WAC1BH,UAAWnM,KAAKk6F,SAAS/tF,gBAxBrC,GAA0C4xN,I,6BCjc1C,8CAMaQ,EAAuB7xL,YADI,wB,6BCLxC,yFAgBa8xL,EAAyB,CACpCC,SAAU,YACVC,gBAAiB,qBACjBC,aAAc,iBACdC,iBAAkB,qBAClBC,cAAe,kBACfC,oBAAqB,wBACrBC,yBAA0B,6BAC1BC,sBAAuB,0BACvBC,sBAAuB,2BAGZC,EAA0B,aACrC,SACEp9M,EACAm4B,EACAzjC,EACA2oN,EACAC,EACAC,EACAC,EACAC,EACAtxI,EACAuxI,EACAC,G,QAEMnwL,EAAa,YAAoBkvL,EAAwB18M,GAAS,IAElE49M,EAAaF,IAAaC,EAChC,OAAO,YAAe,CACpBhzH,KAAM,CACJn9D,EAAWmvL,SACXxkL,EAAOwyD,KACP0yH,EACAlxI,GAAW,CAAC,aAAch0C,EAAO0lL,aACjCD,GAAc,CACZ,cACAzlL,EAAO2lL,aACP,CACE3gL,WAAS,KACP,EAAC,WAAW3P,EAAWqvL,cAAiB1kL,EAAO4lL,oBAE/C,EAAC,WAAWvwL,EAAWsvL,kBAAqB3kL,EAAO6lL,yBAA2B7lL,EAAO8lL,oBACrF,YAAU9lL,EAAO8lL,oBAClB,KAGLR,GAAW,CAACf,EAAuBE,gBAAiBzkL,EAAO+lL,aAC3DV,GAAY,CAAC,cAAerlL,EAAOgmL,eAClCX,IACEI,IACAzxI,GAAW,CACVhvC,WAAS,GACP,SAAUhF,EAAOimL,aACjB,EAAC,WAAW5wL,EAAWuvL,eAAkB5kL,EAAOkmL,aAChD,EAAC,WAAW7wL,EAAWqvL,cAAiB1kL,EAAOmmL,YAC/C,EAAC,WAAW9wL,EAAWwvL,qBAAwB7kL,EAAOomL,mBACtD,EAAC,WAAW/wL,EAAWsvL,kBAAqB3kL,EAAOqmL,gBACnD,YAAUrmL,EAAOsmL,YACjB,aAAWtmL,EAAOumL,YAClB,EAAC,YAAYlxL,EAAWqvL,cAAiB1kL,EAAOwmL,YAChD,EAAC,YAAYnxL,EAAWwvL,qBAAwB7kL,EAAOymL,mBACvD,EAAC,YAAYpxL,EAAWsvL,kBAAqB3kL,EAAO0mL,gBACrD,IAELrB,GAAYrxI,GAAW,CAACh0C,EAAO2mL,sBAC9BtB,GACCrxI,GAAW,CACThvC,UAAW,CACT,SAAUhF,EAAO4mL,mBACjB,UAAW5mL,EAAO6mL,qBAGxBtqN,GAEFuqN,cAAe,CAACzxL,EAAW0vL,sBAAuB/kL,EAAO8mL,eACzDC,cAAe,CAAC1xL,EAAW2vL,sBAAuBhlL,EAAO+mL,eACzD9uM,KAAM,CACJod,EAAWqvL,aACXS,EACAnlL,EAAO/nB,KACPwtM,GAAczlL,EAAOgnL,aACrBhzI,GAAWh0C,EAAOinL,YAClB5B,GAAYrlL,EAAOknL,cAErBt+N,MAAO,CAACysC,EAAWuvL,cAAe5kL,EAAOp3C,MAAOorF,GAAWh0C,EAAOmnL,aAAc9B,GAAYrlL,EAAOonL,eACnGjyK,SAAU,CACR9f,EAAWsvL,iBACXS,EACAplL,EAAOmV,SACP6+B,GAAWh0C,EAAOqnL,gBAClBhC,IAAaG,GAAWxlL,EAAOsnL,kBAC9BjC,IACEI,IACAzxI,GAAW,CACVhvC,UAAW,CACT,SAAUhF,EAAOqmL,gBACjB,UAAWrmL,EAAO0mL,kBAGxBjB,GAAc,CAAC,cAAezlL,EAAOunL,mBAEvCvrN,YAAa,CACXq5B,EAAWwvL,oBACX7kL,EAAOhkC,YACPg4E,GAAWh0C,EAAOwnL,mBAClBnC,GAAYrlL,EAAOynL,qBAErBC,iBAAkB,CAACryL,EAAWyvL,yBAA0B9kL,EAAO0nL,wB,mKCnH9D,SAASxR,EAAwBhnN,EAAWC,GAC/C,IAAIulL,EAAK,IAAI5oL,IAAmBqD,GAEhC,OADAulL,EAAG16K,iBACI,CACHs5K,WAAYoB,EAAGpB,WACfxzK,QAAS40K,EAAG50K,QACZ6zK,KAAMe,EAAGf,KACTC,KAAMc,EAAGd,MAGV,IAAM+hC,EAAb,WACI,aAAc,oBACV5vN,KAAK4hO,OAAS,IAAI1oN,IAClBlZ,KAAK6hO,sBAAwB,KAC7B7hO,KAAK8hO,mBAAqB,KAC1B9hO,KAAK+hO,gBAAkB,KAL/B,2CAOI,WACI/hO,KAAKgiO,gBAAe,GACpBhiO,KAAK4hO,OAAOxpN,YATpB,4BAWI,SAAe6pN,EAAoBz+D,GAC/B,GAAKxjK,KAAKkiO,eAAV,CAKAliO,KAAK4hO,OAAOrkN,QACZvd,KAAK6hO,sBAAwB,KAC7B7hO,KAAK8hO,mBAAqB,KAC1B,IAAMK,EAAiBniO,KAAK+hO,gBAC5B/hO,KAAK+hO,gBAAkB,KACnBE,GAAsBE,GACtBA,EAAe3+D,MAvB3B,0BA0BI,WACI,QAASxjK,KAAK6hO,wBA3BtB,6BA6BI,SAAgBO,EAAgBC,EAAgBC,EAAsBC,EAAmBJ,GAAgB,WACrG,IAAIniO,KAAKkiO,eAAT,CAIAliO,KAAK6hO,sBAAwBS,EAC7BtiO,KAAK8hO,mBAAqBS,EAC1BviO,KAAK+hO,gBAAkBI,EACvB,IAAMK,EAAcv0C,IAAYw0C,2BAC1BC,EAAYxnK,IAAQ,cAAgB,YAEpCynK,EAAWH,EAAYpgN,KAAI,SAAA7X,GAAO,OAAIA,EAAQI,OAAOP,YACrDkF,EAAao9J,gBAAkB01D,GACjC9yN,GACAqzN,EAAS32L,QAAQ18B,GAdgF,oBAgB/EqzN,GAhB+E,IAgBrG,2BAAgC,KAArBp4N,EAAqB,QAC5BvK,KAAK4hO,OAAOpoN,IAAIkzJ,iCAAmCniK,EAASm4N,GAAW,SAACvjO,GAChEA,EAAK4a,UAAYsoN,EAKrB,EAAKP,mBAAmB3iO,GAHpB,EAAK6iO,gBAAe,MAIzB,SAAC74N,EAAWC,GAAZ,OAA6B,EAAKy4N,sBAAsB14N,EAAWC,OACtEpJ,KAAK4hO,OAAOpoN,IAAIkzJ,wBAA0BniK,EAf9B,WAegD,SAAC5J,GAAD,OAAO,EAAKqhO,gBAAe,QAzBU,8BA2BrG,GAAI/zC,IAAY20C,6BAA8B,CAC1C,IAAIC,EAAyBL,EAAYA,EAAYzkO,OAAS,GAG9DiC,KAAK4hO,OAAOpoN,IAAIkzJ,wBAA0Bm2D,EAAuBl4N,OAAOP,SAAU,YAAY,SAACo5J,GAEpD,SAD/B,IAAIz9J,IAAmBy9J,GACzB5lK,OAAOwY,QAAQ2sB,eACjB,EAAKi/L,gBAAe,OAI5BhiO,KAAK4hO,OAAOpoN,IAAIkzJ,wBAA0Bm2D,EAAuBl4N,OAAOP,SAAU,aAAa,SAACo5J,GAErD,SAD/B,IAAIz9J,IAAmBy9J,GACzB5lK,OAAOwY,QAAQ2sB,eACjB,EAAKi/L,gBAAe,OAI5BhiO,KAAK4hO,OAAOpoN,IAAIkzJ,wBAA0Bm2D,EAAuBl4N,OAAOP,SAAS5H,KAAM,cAAc,SAACghK,GAClG,EAAKw+D,gBAAe,aA3EpC,M,6BtMnBA,+CAUM,SAAUv3K,EAAYtM,GAC1B,IAAI,KAA8B,qBAAb/zC,SAArB,CAGE,IAAMD,EAAKg0C,EAEX,OAAOh0C,GAAMA,EAAGi0C,cAAgBj0C,EAAGi0C,cAAgBh0C,Y,qauMZ1C04N,EAAb,WACI,WAAYC,GAAa,oBACrB/iO,KAAK+iO,YAAcA,EAF3B,0CAII,SAAO3iN,EAAO4nD,EAAa/wD,GACvBjX,KAAK+iO,YAAYpsN,SAAQ,SAAArW,GAAC,OAAIA,EAAEiyB,OAAOnS,EAAO4nD,EAAa/wD,UALnE,K,6GCAa+rN,EAAb,kDACI,WAAYC,EAAMrkO,GAAS,4DACHqkO,EADG,aACMrkO,IAFrC,sBAA+BsM,Q,SCA3BnK,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DI,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAuBhEghO,E,WACF,WAAYC,GAAO,oBACfnjO,KAAKmjO,MAAQA,EACbnjO,KAAKojO,iBAAmB,G,4CAE5B,WACI,yBAAmBpjO,KAAKmjO,MAAMA,S,4BAElC,SAAe3zN,GACX,OAAOA,I,2BAEX,SAAcjF,EAAStL,EAAOokO,GAC1B,IAAMC,EAAuBtjO,KAAKojO,iBAAiBG,WAAU,SAAAp5N,GAAE,OAAIA,EAAGk5N,eAAiBA,KACvF,GAAIC,GAAwB,EAAG,CAC3B,IAAME,EAAWxjO,KAAKojO,iBAAiBE,GACvCtjO,KAAKmjO,MAAMM,SAASJ,GACpBG,EAASvkO,MAAQA,MAEhB,CACD,IAAMukO,EAAW,CAAEvkO,QAAOokO,gBAC1BrjO,KAAKojO,iBAAiB7/N,KAAKigO,GAE/BxjO,KAAKmjO,MAAMO,YAAYzkO,EAAOokO,K,oBAElC,SAAOjjN,EAAO4nD,EAAas8C,GACvB,IADoC,EAC9Bk/G,EAAW,GADmB,cAENxjO,KAAKojO,kBAFC,IAEpC,2BAAqD,KAA1CO,EAA0C,QAC7CA,EAAgB1kO,MAAQmhB,EACxBojN,EAASjgO,KAAKogO,GAETA,EAAgB1kO,OAASmhB,EAAQ4nD,GACtCw7J,EAASjgO,KAAK,CACVtE,MAAO0kO,EAAgB1kO,MAAQqlH,EAAct8C,EAC7Cq7J,aAAcM,EAAgBN,gBATN,8BAapCrjO,KAAKojO,iBAAmBI,I,2BAE5B,SAAcI,GAAS,oBACmB5jO,KAAKojO,kBADxB,IACnB,2BAA6D,eAAhDnkO,EAAgD,EAAhDA,MAAOokO,EAAyC,EAAzCA,aACZO,EAAQhjO,QAAQ3B,IAAU,GAC1Be,KAAKmjO,MAAMO,YAAYzkO,EAAOokO,IAHnB,iC,6BAOvB,SAAgBA,GACZ,IAAMpkO,EAAQe,KAAKojO,iBAAiBG,WAAU,SAAAp5N,GAAE,OAAIA,EAAGk5N,eAAiBA,KACpEpkO,EAAQ,GAGZe,KAAKojO,iBAAiB7wM,OAAOtzB,EAAO,O,KAGtC4kO,E,WACF,WAAYC,GAAQ,oBAChB9jO,KAAK8jO,OAASA,EACd9jO,KAAKjC,OAAS,EACdiC,KAAK4jO,QAAU,GACf5jO,KAAK+jO,cAAgB,GACrB/jO,KAAKgkO,UAAY,IAAIvvN,IACrBzU,KAAK6kD,SAAW7kD,KAAKgkO,UAAUrvN,M,uCAEnC,WAAc,OAAO3U,KAAK8jO,S,oBAC1B,WACI,OAAO,IAAIZ,EAAcljO,Q,oBAE7B,SAAOogB,EAAO4nD,EAAa/wD,GACvB,IAAIjS,EACJgjE,EAActwD,KAAKC,IAAI,EAAGD,KAAKgI,IAAIsoD,EAAahoE,KAAKjC,OAASqiB,IAC9D,IAAM6iB,EAAOhsB,EAASlZ,OAASiqE,EACzB3nD,EAAMD,EAAQ4nD,EACd+7J,EAAgB,GAAH,mBACZ/jO,KAAK+jO,cAAc/0M,QAAO,SAAAlxB,GAAC,OAAIA,EAAIsiB,MADvB,YAEZnJ,EAASmL,KAAI,SAAC6hN,EAAUnmO,GAAX,OAAiBmmO,EAAWnmO,EAAIsiB,GAAS,KAAG4O,QAAO,SAAAlxB,GAAC,OAAW,IAAPA,MAFzD,YAGZkC,KAAK+jO,cAAc/0M,QAAO,SAAAlxB,GAAC,OAAIA,GAAKuiB,KAAK+B,KAAI,SAAAtkB,GAAC,OAAIA,EAAImlC,OAEvDllC,EAASiC,KAAKjC,OAASklC,EAC7B,GAAIjjC,KAAK+jO,cAAchmO,OAAS,GAA8B,IAAzBgmO,EAAchmO,QAAgBA,EAAS,EAAG,CAC3E,IAAMojE,EAAoE,QAA3Dn8D,EAAKhF,KAAK+jO,cAActjI,MAAK,SAAAxhG,GAAK,OAAIA,GAASmhB,YAA2B,IAAPpb,EAAgBA,EAAKjH,EAAS,EAChHgmO,EAAcxgO,KAAKmU,KAAKgI,IAAIyhD,EAAOpjE,EAAS,IAEhDiC,KAAKkkO,SAAS3xM,OAAOnS,EAAO4nD,EAAa/wD,EAASlZ,QAClDiC,KAAKmkO,KAAKJ,EAAeA,GACzB/jO,KAAKjC,OAASA,I,yBAElB,SAAYkB,EAAOuQ,GACfA,EAAUX,UAAU8vI,OAAO3+I,KAAK8jO,OAAQ9jO,KAAK8O,SAAS7P,M,sBAE1D,SAASuQ,GACLA,EAAUX,UAAU/J,OAAO9E,KAAK8jO,U,iBAQpC,SAAIF,EAASpgE,GACT,OAAOxjK,KAAKmkO,KAAKP,EAAS,YAAIA,GAAS96N,KAAKs7N,IAAc5gE,K,kBAE9D,SAAKogE,EAASG,EAAevgE,GACzB,IAAMphK,EAASpC,KAAK4jO,QACdS,EAAerkO,KAAK+jO,cAC1B/jO,KAAK4jO,QAAUA,EACf5jO,KAAK+jO,cAAgBA,EACrB,IAAMO,EAAWC,EAAYF,EAAcT,GAG3C,OAFA5jO,KAAKkkO,SAASM,cAAcF,GAC5BtkO,KAAKgkO,UAAU/uN,KAAK,CAAE2uN,UAASpgE,iBACxBphK,I,iBAEX,WACI,OAAOpC,KAAK4jO,U,sBAEhB,SAAS3kO,GACL,OAAO4mE,YAAa7lE,KAAK+jO,cAAe9kO,EAAOmlO,KAAgB,I,qBAEnE,WACIhsN,YAAQpY,KAAKgkO,e,KAGrBjjO,EAAW,CACP89J,KACDglE,EAAMnlO,UAAW,WAAY,M,IAC1B+lO,E,kDACF,WAAYC,GAAiB,kCACzB,cAAM,aACDA,gBAAkBA,EAFE,E,+CAI7B,SAAYzlO,EAAOuQ,GACf,mEAAkBvQ,EAAOuQ,GACrBxP,KAAK0kO,kBACD1kO,KAAK8O,SAAS7P,GACduQ,EAAUsH,aAAa,gBAAiB,QAGxCtH,EAAUsH,aAAa,gBAAiB,c,GAZ3B+sN,GAsBvBc,E,WACF,WAAYxB,EAAOlnK,EAAM2oK,GAAkB,oBACvC5kO,KAAKmjO,MAAQA,EACbnjO,KAAKi8D,KAAOA,EACZj8D,KAAK4kO,iBAAmBA,E,0CAE5B,SAAOxkN,EAAO4nD,EAAa/wD,GAAU,WACjC,IAAKjX,KAAK4kO,iBACN,OAAO5kO,KAAKmjO,MAAM5wM,OAAOnS,EAAO4nD,EAAa/wD,EAASmL,KAAI,kBAAM,MAEpE,IAAMyiN,EAAwB7kO,KAAKmjO,MAAM1wM,MAAMrQ,KAAI,SAAAtkB,GAAC,OAAI,EAAK8mO,iBAAiBrxG,MAAM,EAAKt3D,KAAK1xD,QAAQzM,IAAI2a,cACpGqsN,EAAoB7tN,EAASmL,KAAI,SAAAzhB,GAAC,OAAIkkO,EAAsBjkO,QAAQ,EAAKgkO,iBAAiBrxG,MAAM5yH,GAAG8X,aAAe,KACxHzY,KAAKmjO,MAAM5wM,OAAOnS,EAAO4nD,EAAa88J,O,KAGvC,SAASC,EAAepkO,GAC3B,MAAqB,UAAdA,EAAEyV,SAAqC,aAAdzV,EAAEyV,QAE/B,SAAS4uN,EAAerkO,GAC3B,QAAIA,EAAEkO,UAAUC,SAAS,mBAGrBnO,EAAEkO,UAAUC,SAAS,mBAGpBnO,EAAEskO,eAGAD,EAAerkO,EAAEskO,gB,IAgGxBC,EA9FEC,E,WACF,WAAYt4I,EAAM5wB,EAAM52D,GAAS,oBAC7BrF,KAAK6sF,KAAOA,EACZ7sF,KAAKi8D,KAAOA,EACZj8D,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAKolO,6BAA+B,IAAIlsN,IACxClZ,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,IAAdA,EAAE+Y,WAA2BugB,GAAGj6B,KAAKusJ,QAASvsJ,KAAMA,KAAKkd,aACpFld,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAA8BugB,GAAGj6B,KAAKslO,UAAWtlO,KAAMA,KAAKkd,aACzFld,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAAgCugB,GAAGj6B,KAAKulO,YAAavlO,KAAMA,KAAKkd,aAC7Fld,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAA6BugB,GAAGj6B,KAAKwlO,cAAexlO,KAAMA,KAAKkd,aAC5Fld,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAA+BugB,GAAGj6B,KAAKylO,gBAAiBzlO,KAAMA,KAAKkd,aAChGld,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,IAAdA,EAAE+Y,WAA4BugB,GAAGj6B,KAAK0lO,SAAU1lO,KAAMA,KAAKkd,cAC7C,IAArC7X,EAAQsgO,0BACR3lO,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAK4F,IAAuB5F,EAAE4Y,QAAU5Y,EAAE2Y,UAA0B,KAAd3Y,EAAE+Y,WAA2BugB,GAAGj6B,KAAK4lO,QAAS5lO,KAAMA,KAAKolO,8B,2CAG9I,WACI,OAAO7tM,IAAMuC,MAAM95B,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,YAAY+H,OACjFqa,QAAO,SAAAruB,GAAC,OAAKokO,EAAepkO,EAAE/C,WAC9BwkB,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,Q,2BAE5C,SAAcklO,QACqChsN,IAA3CgsN,EAAcF,2BACd3lO,KAAKolO,6BAA6B7nN,QAC9BsoN,EAAcF,0BACd3lO,KAAKqlO,UAAUr2M,QAAO,SAAAruB,GAAC,OAAK4F,IAAuB5F,EAAE4Y,QAAU5Y,EAAE2Y,UAA0B,KAAd3Y,EAAE+Y,WAA2BugB,GAAGj6B,KAAK4lO,QAAS5lO,KAAMA,KAAKolO,iC,qBAIlJ,SAAQzkO,GACJA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAK+uF,aAAa57K,KAAK6sF,KAAKi5I,WAAYnlO,EAAE6iK,gB,uBAEnD,SAAU7iK,GACNA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAKk5I,cAAc,GAAG,EAAOplO,EAAE6iK,cACpC,IAAMr5J,EAAKnK,KAAK6sF,KAAKi5I,WAAW,GAChC9lO,KAAK6sF,KAAKm5I,UAAU77N,GACpBnK,KAAK6sF,KAAKo5I,OAAO97N,GACjBnK,KAAKi8D,KAAKrvD,QAAQowB,U,yBAEtB,SAAYr8B,GACRA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAKq5I,UAAU,GAAG,EAAOvlO,EAAE6iK,cAChC,IAAMr5J,EAAKnK,KAAK6sF,KAAKi5I,WAAW,GAChC9lO,KAAK6sF,KAAKm5I,UAAU77N,GACpBnK,KAAK6sF,KAAKo5I,OAAO97N,GACjBnK,KAAKi8D,KAAKrvD,QAAQowB,U,2BAEtB,SAAcr8B,GACVA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAKs5I,kBAAkBxlO,EAAE6iK,cAC9B,IAAMr5J,EAAKnK,KAAK6sF,KAAKi5I,WAAW,GAChC9lO,KAAK6sF,KAAKm5I,UAAU77N,GACpBnK,KAAK6sF,KAAKo5I,OAAO97N,GACjBnK,KAAKi8D,KAAKrvD,QAAQowB,U,6BAEtB,SAAgBr8B,GACZA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAKu5I,cAAczlO,EAAE6iK,cAC1B,IAAMr5J,EAAKnK,KAAK6sF,KAAKi5I,WAAW,GAChC9lO,KAAK6sF,KAAKm5I,UAAU77N,GACpBnK,KAAK6sF,KAAKo5I,OAAO97N,GACjBnK,KAAKi8D,KAAKrvD,QAAQowB,U,qBAEtB,SAAQr8B,GACJA,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAK+uF,aAAa/8J,YAAM7e,KAAK6sF,KAAK9uF,QAAS4C,EAAE6iK,cAClDxjK,KAAK6sF,KAAKm5I,eAAUnsN,GACpB7Z,KAAKi8D,KAAKrvD,QAAQowB,U,sBAEtB,SAASr8B,GACDX,KAAK6sF,KAAKg2G,eAAe9kM,SACzB4C,EAAEsT,iBACFtT,EAAEwT,kBACFnU,KAAK6sF,KAAK+uF,aAAa,GAAIj7K,EAAE6iK,cAC7BxjK,KAAK6sF,KAAKm5I,eAAUnsN,GACpB7Z,KAAKi8D,KAAKrvD,QAAQowB,W,qBAG1B,WACIh9B,KAAKkd,YAAY9E,UACjBpY,KAAKolO,6BAA6BhtN,c,KAG1CrX,EAAW,CACP89J,KACDsmE,EAAmBzmO,UAAW,YAAa,MAE9C,SAAWwmO,GACPA,EAAyBA,EAAwB,KAAW,GAAK,OACjEA,EAAyBA,EAAwB,OAAa,GAAK,SAFvE,CAGGA,IAA6BA,EAA2B,KACpD,IAAMmB,EAAoC,kHAC7C,SAA+B1xN,GAC3B,QAAIA,EAAM2E,SAAW3E,EAAM4E,SAAW5E,EAAMyE,UAGpCzE,EAAM+E,SAAW,IAAiB/E,EAAM+E,SAAW,IACnD/E,EAAM+E,SAAW,IAAmB/E,EAAM+E,SAAW,IACrD/E,EAAM+E,SAAW,IAAoB/E,EAAM+E,SAAW,KACtD/E,EAAM+E,SAAW,IAAsB/E,EAAM+E,SAAW,QARvB,EAAI,IAW/C4sN,E,WACF,WAAYz5I,EAAM5wB,EAAMsqK,EAAiCC,GAAU,oBAC/DxmO,KAAK6sF,KAAOA,EACZ7sF,KAAKi8D,KAAOA,EACZj8D,KAAKumO,gCAAkCA,EACvCvmO,KAAKwmO,SAAWA,EAChBxmO,KAAKguF,SAAU,EACfhuF,KAAKsU,MAAQ4wN,EAAyBuB,KACtCzmO,KAAK0mO,6BAA8B,EACnC1mO,KAAK2mO,WAAY,EACjB3mO,KAAK4mO,mBAAqB,EAC1B5mO,KAAK6mO,mBAAqB,IAAI3tN,IAC9BlZ,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAKiiI,cAAcp1C,EAAKxnF,S,iDAE5B,SAAcA,GACmE,qBAArCA,EAAQyhO,4BAAoDzhO,EAAQyhO,yBAExG9mO,KAAK+mO,SAGL/mO,KAAKgnO,UAE0C,qBAAxC3hO,EAAQqhO,8BACf1mO,KAAK0mO,4BAA8BrhO,EAAQqhO,+B,oBAGnD,WAAS,WACL,IAAI1mO,KAAKguF,QAAT,CAGA,IAAMi5I,EAAS1vM,IAAMuC,MAAM95B,KAAK6mO,mBAAmBrtN,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,YAAY+H,OAChGqa,QAAO,SAAAruB,GAAC,OAAKokO,EAAepkO,EAAE/C,WAC9BoxB,QAAO,kBAAM,EAAK03M,6BAA+B,EAAKC,aACtDvkN,KAAI,SAAAzN,GAAK,OAAI,IAAIxO,IAAsBwO,MACvCqa,QAAO,SAAAruB,GAAC,OAAI,EAAK6lO,SAASU,+BAA+BvmO,MACzDgW,SAAQ,SAAAhW,GAAOA,EAAEwT,kBAAmBxT,EAAEsT,oBACtCmO,KAAI,SAAAzN,GAAK,OAAIA,EAAM6uJ,aAAallK,OAChCqW,MACCwyN,EAAU5vM,IAAMa,SAAS6uM,GAAQ,kBAAM,OAAM,KACnC1vM,IAAMM,OAAON,IAAM6B,IAAI6tM,EAAQE,IAAU,SAAChmO,EAAGrD,GAAJ,OAAgB,OAANA,EAAa,MAASqD,GAAK,IAAMrD,IACpGspO,CAAQpnO,KAAKonO,QAASpnO,KAAMA,KAAK6mO,oBACjCM,EAAQnnO,KAAKmnO,QAASnnO,KAAMA,KAAK6mO,oBACjC7mO,KAAKguF,SAAU,EACfhuF,KAAK2mO,WAAY,K,qBAErB,WACS3mO,KAAKguF,UAGVhuF,KAAK6mO,mBAAmBtpN,QACxBvd,KAAKguF,SAAU,EACfhuF,KAAK2mO,WAAY,K,qBAErB,WACI,IAAI3hO,EACEg4B,EAAQh9B,KAAK6sF,KAAKi5I,WACxB,GAAI9oM,EAAMj/B,OAAS,GAAKi/B,EAAM,KAAOh9B,KAAK4mO,kBAAmB,CAGzD,IAAM9nI,EAA+D,QAAlD95F,EAAKhF,KAAK6sF,KAAKxnF,QAAQgiO,6BAA0C,IAAPriO,OAAgB,EAASA,EAAGsiO,aAAatnO,KAAK6sF,KAAKtiF,QAAQyyB,EAAM,KAC1I8hE,GACAtzB,YAAMszB,GAGd9+F,KAAK4mO,mBAAqB,I,qBAE9B,SAAQr4F,GACJ,IAAKA,EAGD,OAFAvuI,KAAKsU,MAAQ4wN,EAAyBuB,UACtCzmO,KAAK2mO,WAAY,GAGrB,IAAM3pM,EAAQh9B,KAAK6sF,KAAKi5I,WAClB1lN,EAAQ4c,EAAMj/B,OAAS,EAAIi/B,EAAM,GAAK,EACtC26B,EAAQ33D,KAAKsU,QAAU4wN,EAAyBuB,KAAO,EAAI,EACjEzmO,KAAKsU,MAAQ4wN,EAAyBqC,OACtC,IAAK,IAAIzpO,EAAI,EAAGA,EAAIkC,KAAK6sF,KAAK9uF,OAAQD,IAAK,CACvC,IAAMmB,GAASmhB,EAAQtiB,EAAI65D,GAAS33D,KAAK6sF,KAAK9uF,OACxC8E,EAAQ7C,KAAKumO,gCAAgCiB,2BAA2BxnO,KAAKi8D,KAAK1xD,QAAQtL,IAC1FwoO,EAAW5kO,GAASA,EAAM4V,WAChC,GAAwB,qBAAbgvN,GAA4BnkD,YAAc/0C,EAAMk5F,GAIvD,OAHAznO,KAAK4mO,kBAAoBxmN,EACzBpgB,KAAK6sF,KAAK66I,SAAS,CAACzoO,SACpBe,KAAK6sF,KAAKo5I,OAAOhnO,M,qBAK7B,WACIe,KAAKgnO,UACLhnO,KAAK6mO,mBAAmBzuN,UACxBpY,KAAKkd,YAAY9E,c,KAGnBuvN,E,WACF,WAAY96I,EAAM5wB,GAAM,oBACpBj8D,KAAK6sF,KAAOA,EACZ7sF,KAAKi8D,KAAOA,EACZj8D,KAAKkd,YAAc,IAAIhE,IACLqe,IAAMuC,MAAM95B,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWnqG,EAAKrvD,QAAS,YAAY+H,OACvFqa,QAAO,SAAAruB,GAAC,OAAKokO,EAAepkO,EAAE/C,WAC9BwkB,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,MAC9BquB,QAAO,SAAAruB,GAAC,OAAkB,IAAdA,EAAE+Y,UAA4B/Y,EAAE2Y,UAAY3Y,EAAE4Y,UAAY5Y,EAAE0Y,WAAa1Y,EAAEyY,UAC5F6gB,GAAGj6B,KAAK4nO,MAAO5nO,KAAMA,KAAKkd,a,yCAEnC,SAAMvc,GACF,GAAIA,EAAE/C,SAAWoC,KAAKi8D,KAAKrvD,QAA3B,CAGA,IAAMowB,EAAQh9B,KAAK6sF,KAAKi5I,WACxB,GAAqB,IAAjB9oM,EAAMj/B,OAAV,CAGA,IAAM8pO,EAAoB7nO,KAAKi8D,KAAK6rK,WAAW9qM,EAAM,IACrD,GAAK6qM,EAAL,CAGA,IAAME,EAAkBF,EAAkBG,cAAc,cACxD,GAAKD,GAAqBA,aAA2Bh3N,cAA8C,IAA9Bg3N,EAAgB7jI,SAArF,CAGA,IAAMx3F,EAAQ/B,OAAOT,iBAAiB69N,GACb,WAArBr7N,EAAMunC,YAA6C,SAAlBvnC,EAAMwK,UAG3CvW,EAAEsT,iBACFtT,EAAEwT,kBACF4zN,EAAgB/qM,e,qBAEpB,WACIh9B,KAAKkd,YAAY9E,c,KAGlB,SAAS6vN,EAA6BtzN,GACzC,OAAOpO,IAAuBoO,EAAM6uJ,aAAajqJ,QAAU5E,EAAM6uJ,aAAalqJ,QAE3E,SAAS4uN,EAA4BvzN,GACxC,OAAOA,EAAM6uJ,aAAanqJ,SAK9B,IAAM8uN,EAAqC,CACvCF,+BACAC,+BAESE,EAAb,WACI,WAAYv7I,GAAM,oBACd7sF,KAAK6sF,KAAOA,EACZ7sF,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAKqoO,WAAa,IAAI5zN,IACtBzU,KAAKsoO,UAAYtoO,KAAKqoO,WAAW1zN,OACa,IAA1Ck4E,EAAKxnF,QAAQsgO,2BACb3lO,KAAKuoO,4BAA8BvoO,KAAK6sF,KAAKxnF,QAAQkjO,6BAA+BJ,GAExFnoO,KAAKwoO,aAAoD,qBAA9B37I,EAAKxnF,QAAQmjO,gBAAkC37I,EAAKxnF,QAAQmjO,aACnFxoO,KAAKwoO,eACL37I,EAAK47I,YAAYzoO,KAAKyoO,YAAazoO,KAAMA,KAAKkd,aAC9C2vE,EAAK67I,cAAc1oO,KAAK0oO,cAAe1oO,KAAMA,KAAKkd,aAClD2vE,EAAK87I,gBAAgB3oO,KAAK4oO,cAAe5oO,KAAMA,KAAKkd,aACpD2vE,EAAK+uE,aAAa57J,KAAKyoO,YAAazoO,KAAMA,KAAKkd,aAC/Cld,KAAKkd,YAAY1D,IAAI6hJ,IAAQwtE,UAAUh8I,EAAKi8I,oBAEhDvxM,IAAM6B,IAAIyzD,EAAKk8I,aAAcl8I,EAAKm8I,mBAAoBn8I,EAAKo8I,MAA3D1xM,CAAkEv3B,KAAKkpO,cAAelpO,KAAMA,KAAKkd,aAjBzG,iDAmBI,SAAc2oN,QACqChsN,IAA3CgsN,EAAcF,2BACd3lO,KAAKuoO,iCAA8B1uN,EAC/BgsN,EAAcF,2BACd3lO,KAAKuoO,4BAA8BvoO,KAAK6sF,KAAKxnF,QAAQkjO,6BAA+BJ,MAvBpG,0CA2BI,SAA6BxzN,GACzB,QAAK3U,KAAKuoO,6BAGHvoO,KAAKuoO,4BAA4BN,6BAA6BtzN,KA/B7E,yCAiCI,SAA4BA,GACxB,QAAK3U,KAAKuoO,6BAGHvoO,KAAKuoO,4BAA4BL,4BAA4BvzN,KArC5E,oCAuCI,SAAuBA,GACnB,OAAO3U,KAAKioO,6BAA6BtzN,IAAU3U,KAAKkoO,4BAA4BvzN,KAxC5F,yBA0CI,SAAYhU,GACJqkO,EAAerkO,EAAE6iK,aAAa5lK,SAG9BwM,SAASiF,gBAAkB1O,EAAE6iK,aAAa5lK,QAC1CoC,KAAK6sF,KAAKs8I,aA/CtB,2BAkDI,SAAcxoO,GACV,IAAIqkO,EAAerkO,EAAE6iK,aAAa5lK,QAAlC,CAGA,IAAMo/B,EAA2B,qBAAZr8B,EAAE1B,MAAwB,GAAK,CAAC0B,EAAE1B,OACvDe,KAAK6sF,KAAK66I,SAAS1qM,EAAOr8B,EAAE6iK,iBAvDpC,2BAyDI,SAAc7iK,GACV,GAAKX,KAAKwoO,eAGNzD,EAAepkO,EAAE6iK,aAAa5lK,UAAWonO,EAAerkO,EAAE6iK,aAAa5lK,QAA3E,CAGA,IAAMo/B,EAAQr8B,EAAE1B,MAChB,GAAqB,qBAAV+9B,EAIP,OAHAh9B,KAAK6sF,KAAK66I,SAAS,GAAI/mO,EAAE6iK,cACzBxjK,KAAK6sF,KAAK+uF,aAAa,GAAIj7K,EAAE6iK,mBAC7BxjK,KAAK6sF,KAAKm5I,eAAUnsN,GAGxB,GAAI7Z,KAAKkoO,4BAA4BvnO,GACjC,OAAOX,KAAKopO,gBAAgBzoO,GAEhC,GAAIX,KAAKqpO,uBAAuB1oO,GAC5B,OAAOX,KAAKopO,gBAAgBzoO,GAEhCX,KAAK6sF,KAAK66I,SAAS,CAAC1qM,GAAQr8B,EAAE6iK,cAC9BxjK,KAAK6sF,KAAKm5I,UAAUhpM,GArF5B,SAA2BroB,GACvB,OAAOA,aAAiB20N,YAA+B,IAAjB30N,EAAM64K,OAqFnC+7C,CAAkB5oO,EAAE6iK,eACrBxjK,KAAK6sF,KAAK+uF,aAAa,CAAC5+I,GAAQr8B,EAAE6iK,cAEtCxjK,KAAKqoO,WAAWpzN,KAAKtU,MAlF7B,2BAoFI,SAAcA,GACV,IAAIokO,EAAepkO,EAAE6iK,aAAa5lK,UAAWonO,EAAerkO,EAAE6iK,aAAa5lK,UAGvEoC,KAAKqpO,uBAAuB1oO,GAAhC,CAGA,IAAMq8B,EAAQh9B,KAAK6sF,KAAKi5I,WACxB9lO,KAAK6sF,KAAK+uF,aAAa5+I,EAAOr8B,EAAE6iK,iBA5FxC,6BA8FI,SAAgB7iK,GACZ,IAAMq8B,EAAQr8B,EAAE1B,MACZ6wM,EAAS9vM,KAAK6sF,KAAK28I,YACvB,GAAIxpO,KAAKkoO,4BAA4BvnO,GAAI,CACrC,GAAsB,qBAAXmvM,EAAwB,CAC/B,IAAM25B,EAAezpO,KAAK6sF,KAAKi5I,WAAW,GAC1Ch2B,EAA0B,OAAjB25B,QAA0C,IAAjBA,EAA0BA,EAAezsM,EAC3Eh9B,KAAK6sF,KAAKm5I,UAAUl2B,GAExB,IAAMpwL,EAAMhI,KAAKgI,IAAIowL,EAAQ9yK,GACvBrlB,EAAMD,KAAKC,IAAIm4L,EAAQ9yK,GACvB0sM,EAAiB7qN,YAAMa,EAAK/H,EAAM,GAClCwnE,EAAYn/E,KAAK6sF,KAAKg2G,eACtB8mC,EAoKlB,SAAsC9qN,EAAO7c,GACzC,IAAM/C,EAAQ4f,EAAMje,QAAQoB,GAC5B,IAAe,IAAX/C,EACA,MAAO,GAEX,IAAMmD,EAAS,GACXtE,EAAImB,EAAQ,EAChB,KAAOnB,GAAK,GAAK+gB,EAAM/gB,KAAOkE,GAAS/C,EAAQnB,IAC3CsE,EAAOmB,KAAKsb,EAAM/gB,MAEtBsE,EAAO+wH,UACPr1H,EAAImB,EACJ,KAAOnB,EAAI+gB,EAAM9gB,QAAU8gB,EAAM/gB,KAAOkE,GAASlE,EAAImB,IACjDmD,EAAOmB,KAAKsb,EAAM/gB,MAEtB,OAAOsE,EAnLyBwnO,CAA6BrF,EAAYplJ,EAAW,CAAC2wH,IAAUA,GACvF,GAA+B,IAA3B65B,EAAgB5rO,OAChB,OAEJ,IAAM8rO,EAAetF,EAAYmF,EAkN7C,SAA4B/jK,EAAKzmD,GAC7B,IAAM9c,EAAS,GACXtE,EAAI,EAAGqG,EAAI,EACf,KAAOrG,EAAI6nE,EAAI5nE,QAAUoG,EAAI+a,EAAMnhB,QAC/B,GAAID,GAAK6nE,EAAI5nE,OACTqE,EAAOmB,KAAK2b,EAAM/a,WAEjB,GAAIA,GAAK+a,EAAMnhB,OAChBqE,EAAOmB,KAAKoiE,EAAI7nE,UAEf,IAAI6nE,EAAI7nE,KAAOohB,EAAM/a,GAAI,CAC1BrG,IACAqG,IACA,SAEKwhE,EAAI7nE,GAAKohB,EAAM/a,GACpB/B,EAAOmB,KAAKoiE,EAAI7nE,MAGhBqG,IAGR,OAAO/B,EAxOkDwsN,CAAmBzvI,EAAWwqJ,IAC/E3pO,KAAK6sF,KAAK+uF,aAAaiuD,EAAclpO,EAAE6iK,cACvCxjK,KAAK6sF,KAAK66I,SAAS,CAAC1qM,GAAQr8B,EAAE6iK,mBAE7B,GAAIxjK,KAAKioO,6BAA6BtnO,GAAI,CAC3C,IAAMw+E,EAAYn/E,KAAK6sF,KAAKg2G,eACtBgnC,EAAe1qJ,EAAUnwD,QAAO,SAAAlxB,GAAC,OAAIA,IAAMk/B,KACjDh9B,KAAK6sF,KAAK66I,SAAS,CAAC1qM,IACpBh9B,KAAK6sF,KAAKm5I,UAAUhpM,GAChBmiD,EAAUphF,SAAW8rO,EAAa9rO,OAClCiC,KAAK6sF,KAAK+uF,aAAV,sBAA2BiuD,GAA3B,CAAyC7sM,IAAQr8B,EAAE6iK,cAGnDxjK,KAAK6sF,KAAK+uF,aAAaiuD,EAAclpO,EAAE6iK,iBA5HvD,qBAgII,WACIxjK,KAAKkd,YAAY9E,cAjIzB,KAoIa0xN,EAAb,WACI,WAAYC,EAAcC,GAAgB,oBACtChqO,KAAK+pO,aAAeA,EACpB/pO,KAAKgqO,eAAiBA,EAH9B,yCAKI,SAAM/vL,GACF,IAAMqwI,EAAStqL,KAAKgqO,gBAAL,WAA2BhqO,KAAKgqO,gBACzC9qL,EAAU,GACZjF,EAAO0U,iBACH1U,EAAO0U,eAAe8K,WACtBva,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,4CAAsErwI,EAAO0U,eAA7E,QAEMpoD,KACNmX,QAAQC,KAAR,wBAA8B3d,KAAKgqO,eAAnC,8FAGJ/vL,EAAOxwB,sBACPy1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,+DAAyFrwI,EAAOxwB,oBAAhG,QACAy1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,qEAA+FrwI,EAAOxwB,oBAAtG,SAEAwwB,EAAOvwB,qBACPw1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,oDAA8ErwI,EAAOvwB,oBAArF,QAEAuwB,EAAOrwB,gCACPs1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,gEAA0FrwI,EAAOrwB,8BAAjG,QACAs1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,sEAAgGrwI,EAAOrwB,8BAAvG,SAEAqwB,EAAOpwB,+BACPq1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,qDAA+ErwI,EAAOpwB,8BAAtF,QAEAowB,EAAOnwB,mCACPo1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,8DAAwFrwI,EAAOnwB,kCAA/F,QAEAmwB,EAAOwlJ,iCACPvgJ,EAAQ37C,KAAR,6DAEM+mL,EAFN,wEAE4ErwI,EAAOwlJ,gCAFnF,gBAKAxlJ,EAAOylJ,iCACPxgJ,EAAQ37C,KAAR,6DAEM+mL,EAFN,6DAEiErwI,EAAOylJ,gCAFxE,gBAKAzlJ,EAAOgwL,8BACP/qL,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,+CAAyErwI,EAAOgwL,4BAAhF,QACA/qL,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,qDAA+ErwI,EAAOgwL,4BAAtF,SAEAhwL,EAAOhwB,qCACPi1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,wDAAkFrwI,EAAOhwB,oCAAzF,QAEAgwB,EAAO/vB,8BACPg1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,0DAAoFrwI,EAAO/vB,4BAA3F,QACAg1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,gEAA0FrwI,EAAO/vB,4BAAjG,SAEA+vB,EAAOlwB,kCACPm1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,2DAAqFrwI,EAAOlwB,gCAA5F,QACAm1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,iEAA2FrwI,EAAOlwB,gCAAlG,SAEAkwB,EAAOjwB,iCACPk1B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,+CAAyErwI,EAAOjwB,gCAAhF,QAEAiwB,EAAO7vB,qBACP80B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,sGAAgIrwI,EAAO7vB,oBAAvI,QAEA6vB,EAAO5vB,qBACP60B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,0EAAoGrwI,EAAO5vB,oBAA3G,QAEA4vB,EAAO0lJ,sBACPzgJ,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,4DAAsFrwI,EAAO0lJ,qBAA7F,8BAEA1lJ,EAAOtwB,kBACPu1B,EAAQ37C,KAAR,6DAEM+mL,EAFN,gEAEoErwI,EAAOtwB,iBAF3E,sCAKAswB,EAAO9vB,0BACP+0B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,2DAAqFrwI,EAAO9vB,yBAA5F,8BAEA8vB,EAAO2lJ,kBACP1gJ,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,yDAAmFrwI,EAAO2lJ,iBAA1F,8BAEA3lJ,EAAO3vB,oBACP40B,EAAQ37C,KAAR,gCACM+mL,EADN,8CAEMA,EAFN,gEAGMA,EAHN,6DAGiErwI,EAAO3vB,mBAHxE,sDAMA2vB,EAAOtvB,4BACPu0B,EAAQ37C,KAAR,uDAA6D02C,EAAOtvB,2BAApE,OAEAsvB,EAAOrvB,yBACPs0B,EAAQ37C,KAAR,uDAA6D02C,EAAOrvB,wBAApE,QAEAqvB,EAAOpvB,kCACPq0B,EAAQ37C,KAAR,kEAAwE02C,EAAOpvB,iCAA/E,QAEAovB,EAAO4lJ,mBACP3gJ,EAAQ37C,KAAR,6DAAmE02C,EAAO4lJ,kBAA1E,QAEA5lJ,EAAOlvB,oBACPm0B,EAAQ37C,KAAR,2KAGS02C,EAAOlvB,mBAHhB,eAMJ/qB,KAAK+pO,aAAat9D,YAAcvtH,EAAQviC,KAAK,UA9GrD,KAiHMutN,EAAgB,CAClBzgN,oBAAqBlG,IAAM+B,QAAQ,WACnCsE,8BAA+BrG,IAAM+B,QAAQ,WAC7CuE,8BAA+BtG,IAAM+B,QAAQ,WAC7CwE,kCAAmCvG,IAAM+B,QAAQ,WACjDm6K,gCAAiCl8K,IAAM+B,QAAQ,WAC/Co6K,gCAAiCn8K,IAAM+B,QAAQ,WAC/CyE,gCAAiCxG,IAAM+B,QAAQ,WAC/C2E,oCAAqC1G,IAAM+B,QAAQ,WACnD8E,oBAAqB7G,IAAM+B,QAAQ,WACnCgF,mBAAoB/G,IAAM+B,QAAQ,WAClCwF,uBAAwBvH,IAAM+B,QAAQ,WACtCyF,mBAAoBxH,IAAM+B,QAAQ,WAAW5B,YAAY,KAEvDymN,EAAiB,CACnBC,iBAAiB,EACjB5B,cAAc,EACd7C,0BAA0B,EAC1BjuE,IAAK,CACD2yE,WADC,WACc,OAAO,MACtB5U,YAFC,aAGD6U,WAHC,WAGc,OAAO,GACtBC,KAJC,eA6BT,SAAShG,EAAY5+J,EAAKzmD,GAGtB,IAFA,IAAM9c,EAAS,GACXtE,EAAI,EAAGqG,EAAI,EACRrG,EAAI6nE,EAAI5nE,QAAUoG,EAAI+a,EAAMnhB,QAC/B,GAAID,GAAK6nE,EAAI5nE,OACTqE,EAAOmB,KAAK2b,EAAM/a,WAEjB,GAAIA,GAAK+a,EAAMnhB,OAChBqE,EAAOmB,KAAKoiE,EAAI7nE,UAEf,IAAI6nE,EAAI7nE,KAAOohB,EAAM/a,GAAI,CAC1B/B,EAAOmB,KAAKoiE,EAAI7nE,IAChBA,IACAqG,IACA,SAEKwhE,EAAI7nE,GAAKohB,EAAM/a,GACpB/B,EAAOmB,KAAKoiE,EAAI7nE,MAGhBsE,EAAOmB,KAAK2b,EAAM/a,MAG1B,OAAO/B,EA8BX,IAAMgiO,GAAc,SAAClgO,EAAG5E,GAAJ,OAAU4E,EAAI5E,GAC5BkrO,G,WACF,WAAYC,EAAaC,GAAW,oBAChC1qO,KAAKyqO,YAAcA,EACnBzqO,KAAK0qO,UAAYA,E,4CAErB,WACI,OAAO1qO,KAAKyqO,c,4BAEhB,SAAej7N,GACX,OAAOxP,KAAK0qO,UAAUtoN,KAAI,SAAAjhB,GAAC,OAAIA,EAAEwpO,eAAen7N,Q,2BAEpD,SAAcjF,EAAStL,EAAOokO,EAAcv4N,GACxC,IADgD,EAC5ChN,EAAI,EADwC,cAEzBkC,KAAK0qO,WAFoB,IAEhD,2BAAuC,SAC1BE,cAAcrgO,EAAStL,EAAOokO,EAAavlO,KAAMgN,IAHd,iC,4BAMpD,SAAeP,EAAStL,EAAOokO,EAAcv4N,GACzC,IADiD,EAC7ChN,EAAI,EADyC,cAE1BkC,KAAK0qO,WAFqB,IAEjD,2BAAuC,KAA5BxG,EAA4B,QAC/BA,EAAS2G,gBACT3G,EAAS2G,eAAetgO,EAAStL,EAAOokO,EAAavlO,GAAIgN,GAE7DhN,GAAK,GANwC,iC,6BASrD,SAAgBulO,GACZ,IAD0B,EACtBvlO,EAAI,EADkB,cAEHkC,KAAK0qO,WAFF,IAE1B,2BAAuC,SAC1BI,gBAAgBzH,EAAavlO,OAHhB,mC,KAO5BitO,G,WACF,WAAY1D,GAAuB,oBAC/BrnO,KAAKqnO,sBAAwBA,EAC7BrnO,KAAKgrO,WAAa,O,kDAEtB,SAAex7N,GACX,OAAOA,I,2BAEX,SAAcjF,EAAStL,EAAOuQ,GAC1B,IAAMsvF,EAAY9+F,KAAKqnO,sBAAsBC,aAAa/8N,GACtDu0F,EACAtvF,EAAUsH,aAAa,aAAcgoF,GAGrCtvF,EAAU2H,gBAAgB,cAE9B,IAAM8zN,EAAYjrO,KAAKqnO,sBAAsB6D,cAAgBlrO,KAAKqnO,sBAAsB6D,aAAa3gO,GAC5E,kBAAd0gO,EACPz7N,EAAUsH,aAAa,aAAvB,UAAwCm0N,IAGxCz7N,EAAU2H,gBAAgB,gB,6BAGlC,SAAgBksN,Q,KAId8H,G,WACF,WAAYt+I,EAAM6qE,GAAK,oBACnB13J,KAAK6sF,KAAOA,EACZ7sF,KAAK03J,IAAMA,E,mDAEf,SAAgBntJ,GACZ,IAAM40E,EAAYn/E,KAAK6sF,KAAKu+I,sBAE5B,OADiBjsJ,EAAUv+E,QAAQ2J,IAAY,EAAI40E,EAAY,CAAC50E,K,wBAGpE,SAAWA,GACP,OAAOvK,KAAK03J,IAAI2yE,WAAW9/N,K,0BAE/B,SAAa0M,EAAUo0N,GACnB,GAAIrrO,KAAK03J,IAAI4zE,aACT,OAAOtrO,KAAK03J,IAAI4zE,aAAar0N,EAAUo0N,K,yBAI/C,SAAYlsO,EAAMksO,GACVrrO,KAAK03J,IAAI+9D,aACTz1N,KAAK03J,IAAI+9D,YAAYt2N,EAAMksO,K,wBAGnC,SAAWlsO,EAAMosO,EAAeC,EAAaH,GACzC,OAAOrrO,KAAK03J,IAAI4yE,WAAWnrO,EAAMosO,EAAeC,EAAaH,K,yBAEjE,SAAYlsO,EAAMosO,EAAeC,EAAaH,GAC1C,IAAIrmO,EAAIgL,EAC+B,QAAtCA,GAAMhL,EAAKhF,KAAK03J,KAAK+zE,mBAAgC,IAAPz7N,GAAyBA,EAAGpQ,KAAKoF,EAAI7F,EAAMosO,EAAeC,EAAaH,K,uBAE1H,SAAUA,GACFrrO,KAAK03J,IAAI89D,WACTx1N,KAAK03J,IAAI89D,UAAU6V,K,kBAG3B,SAAKlsO,EAAMosO,EAAeC,EAAaH,GACnCrrO,KAAK03J,IAAI6yE,KAAKprO,EAAMosO,EAAeC,EAAaH,O,KAG3CK,GAAb,WACI,WAAYzI,EAAMzzN,EAAWm8N,EAAiBjB,GAAsC,IAC5E1lO,EADiDS,EAA2B,uDAAhB0kO,EAAgB,oBAEhFnqO,KAAKijO,KAAOA,EACZjjO,KAAKyF,SAAWA,EAChBzF,KAAKg9B,MAAQ,IAAI6mM,EAAM,WACvB7jO,KAAK8vM,OAAS,IAAI+zB,EAAM,UACxB7jO,KAAK4rO,cAAgB,IAAItvM,IACzBt8B,KAAK6rO,WAAa,GAClB7rO,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAK8rO,cAAgB,IAAIr3N,IACzBzU,KAAK+rO,aAAe/rO,KAAK8rO,cAAcn3N,MACvC,IAAMq3N,EAAOhsO,KAAKyF,SAAS4hO,uBAAyBrnO,KAAKyF,SAAS4hO,sBAAsB4E,cAA+D,QAA9CjnO,EAAKhF,KAAKyF,SAAS4hO,6BAA0C,IAAPriO,OAAgB,EAASA,EAAGinO,gBAAkB,OAC7MjsO,KAAKm/E,UAAY,IAAIslJ,EAAwB,YAATuH,GACpCl3E,YAAMrvJ,EAAUykO,GAAe,GAC/B,IAAMgC,EAAgB,CAAClsO,KAAKg9B,MAAMknM,SAAUlkO,KAAKm/E,UAAU+kJ,UAC3DlkO,KAAKqnO,sBAAwB5hO,EAAS4hO,sBAClCrnO,KAAKqnO,wBACL6E,EAAc3oO,KAAK,IAAIwnO,GAAqB/qO,KAAKqnO,wBAC7CrnO,KAAKqnO,sBAAsB8E,6BAC3BnsO,KAAKqnO,sBAAsB8E,4BAA4BnsO,KAAKmsO,4BAA6BnsO,KAAMA,KAAKkd,cAG5GwtN,EAAYA,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAIqpO,GAAiBrpO,EAAE6pO,WAAvB,UAAuCkB,EAAvC,CAAsD/qO,QACrF,IAAMirO,EAAchuO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIqF,GAAW,CAAEiyJ,IAAKjyJ,EAASiyJ,KAAO,IAAIyzE,GAAoBnrO,KAAMyF,EAASiyJ,OAG7H,GAFA13J,KAAKi8D,KAAO,IAAIowK,IAAS78N,EAAWm8N,EAAiBjB,EAAW0B,GAChEpsO,KAAKi8D,KAAKrvD,QAAQkK,aAAa,OAAQk1N,GACnCvmO,EAAS6mO,gBACTtsO,KAAKssO,gBAAkB7mO,EAAS6mO,gBAAgBtsO,KAAKi8D,KAAKswK,WAEzD,CACD,IAAMxC,EAAex6N,2BAAiBvP,KAAKi8D,KAAKrvD,SAChD5M,KAAKssO,gBAAkB,IAAIxC,EAAuBC,EAAc/pO,KAAKi8D,KAAKswK,OAkB9E,GAhBAvsO,KAAKwsO,WAAa,IAAI1J,EAAmB,CACrC,IAAI6B,EAAgB3kO,KAAKg9B,MAAOh9B,KAAKi8D,KAAMx2D,EAASm/N,kBACpD,IAAID,EAAgB3kO,KAAKm/E,UAAWn/E,KAAKi8D,KAAMx2D,EAASm/N,kBACxD,IAAID,EAAgB3kO,KAAK8vM,OAAQ9vM,KAAKi8D,KAAMx2D,EAASm/N,kBACrD5kO,KAAKi8D,OAETj8D,KAAKkd,YAAY1D,IAAIxZ,KAAKg9B,OAC1Bh9B,KAAKkd,YAAY1D,IAAIxZ,KAAKm/E,WAC1Bn/E,KAAKkd,YAAY1D,IAAIxZ,KAAK8vM,QAC1B9vM,KAAKkd,YAAY1D,IAAIxZ,KAAKi8D,MAC1Bj8D,KAAKkd,YAAY1D,IAAIxZ,KAAK8rO,eAC1B9rO,KAAKkd,YAAY1D,IAAI,IAAImuN,EAAmB3nO,KAAMA,KAAKi8D,QACf,mBAA7Bx2D,EAAS2kO,iBAAiC3kO,EAAS2kO,mBAC1DpqO,KAAKysO,mBAAqB,IAAItH,EAAmBnlO,KAAMA,KAAKi8D,KAAMx2D,GAClEzF,KAAKkd,YAAY1D,IAAIxZ,KAAKysO,qBAE1BhnO,EAAS8gO,gCAAiC,CAC1C,IAAMC,EAAW/gO,EAASinO,4BAA8BrG,EACxDrmO,KAAK2sO,oBAAsB,IAAIrG,EAAoBtmO,KAAMA,KAAKi8D,KAAMx2D,EAAS8gO,gCAAiCC,GAC9GxmO,KAAKkd,YAAY1D,IAAIxZ,KAAK2sO,qBAE9B3sO,KAAK4sO,gBAAkB5sO,KAAK6sO,sBAAsBpnO,GAClDzF,KAAKkd,YAAY1D,IAAIxZ,KAAK4sO,iBAC1B5sO,KAAK8sO,iBAAiB9sO,KAAK+sO,eAAgB/sO,KAAMA,KAAKkd,aACtDld,KAAKgtO,qBAAqBhtO,KAAKitO,mBAAoBjtO,KAAMA,KAAKkd,aAC1Dld,KAAKqnO,wBACLrnO,KAAK8+F,UAAY9+F,KAAKqnO,sBAAsB6F,uBAED,IAA3CltO,KAAKyF,SAASkgO,0BACd3lO,KAAKi8D,KAAKrvD,QAAQkK,aAAa,uBAAwB,QA/DnE,kDAkEI,WAAuB,WACnB,OAAOygB,IAAMnV,IAAIpiB,KAAK4rO,cAAcuB,UAAUntO,KAAKg9B,MAAM6nB,WAAW,SAAAlkD,GAAC,OAAI,EAAKysO,YAAYzsO,QAnElG,gCAqEI,WAA2B,WACvB,OAAO42B,IAAMnV,IAAIpiB,KAAK4rO,cAAcuB,UAAUntO,KAAKm/E,UAAUt6B,WAAW,SAAAlkD,GAAC,OAAI,EAAKysO,YAAYzsO,QAtEtG,iBAwEI,WAAc,OAAOX,KAAKi8D,KAAKswK,QAxEnC,wBAyEI,WAAqB,OAAOvsO,KAAKi8D,KAAK8sK,eAzE1C,2BA0EI,WAAwB,OAAO/oO,KAAKi8D,KAAK0sK,kBA1E7C,8BA2EI,WAA2B,OAAO3oO,KAAKi8D,KAAK+sK,qBA3EhD,qBA4EI,WAAkB,OAAOhpO,KAAK4sO,gBAAgBtE,YA5ElD,uBA6EI,WAAoB,OAAOtoO,KAAKi8D,KAAKwsK,cA7EzC,wBA8EI,WAAqB,OAAOzoO,KAAKi8D,KAAK2/F,eA9E1C,iBA+EI,WAAc,OAAO57J,KAAKi8D,KAAKgtK,QA/EnC,yBAuFI,WAAoB,WACZoE,GAA6B,EAC3BC,EAAc/1M,IAAMuC,MAAM95B,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,YAAY+H,OAC9FyN,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,MACnCquB,QAAO,SAAAruB,GAAC,OAAI0sO,EAA2C,KAAd1sO,EAAE+Y,SAAqC/Y,EAAE0Y,UAA0B,KAAd1Y,EAAE+Y,WAChG0I,IAAIikJ,KACJr3I,QAAO,kBAAM,KACbra,MACC44N,EAAYh2M,IAAMuC,MAAM95B,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,UAAU+H,OAC1FgC,SAAQ,kBAAM02N,GAA6B,KAC3CjrN,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,MACnCquB,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,SAAqC/Y,EAAE0Y,UAA0B,KAAd1Y,EAAE+Y,WACnE0I,IAAIikJ,KACJjkJ,KAAI,YAAsB,IAAnBohJ,EAAmB,EAAnBA,aACFxmI,EAAQ,EAAK8oM,WACb7mO,EAAQ+9B,EAAMj/B,OAASi/B,EAAM,QAAKnjB,EAGxC,MAAO,CAAE5a,QAAOsL,QAFiB,qBAAVtL,EAAwB,EAAKg9D,KAAK1xD,QAAQtL,QAAS4a,EAEjDi2L,OADO,qBAAV7wM,EAAwB,EAAKg9D,KAAK6rK,WAAW7oO,GAAS,EAAKg9D,KAAKrvD,QACrD42J,mBAEhC7uJ,MACC64N,EAAYj2M,IAAMuC,MAAM95B,KAAKi8D,KAAKysK,eACnC15M,QAAO,SAAApsB,GAAC,OAAKyqO,KACbjrN,KAAI,gBAAG7X,EAAH,EAAGA,QAAStL,EAAZ,EAAYA,MAAOukK,EAAnB,EAAmBA,aAAnB,MAAuC,CAAEj5J,UAAStL,QAAO6wM,OAAQ,CAAE7zL,EAAGunJ,EAAalH,MAAQ,EAAG55J,EAAG8gK,EAAahH,OAASgH,mBAC3H7uJ,MACL,OAAO4iB,IAAM6B,IAAIk0M,EAAaC,EAAWC,KAhHjD,qBAkHI,WAAkB,OAAOxtO,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,YAAY+H,QAlHhG,sBAmHI,WAAmB,OAAO4iB,IAAM4B,OAAOn5B,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAKrvD,QAAS,SAAS,IAAO+H,SAnHlH,mCAoHI,SAAsBtP,GAClB,OAAO,IAAI+iO,EAAgBpoO,QArHnC,2BAuHI,WAAkC,IAC1BgF,EADM6gO,EAAoB,uDAAJ,GAE1B7lO,KAAKyF,SAAWrH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIJ,KAAKyF,UAAWogO,GAC5D7lO,KAAK2sO,qBACL3sO,KAAK2sO,oBAAoB1qG,cAAcjiI,KAAKyF,eAEEoU,IAA9C7Z,KAAKyF,SAAS8iO,8BACVvoO,KAAKyF,SAASkgO,yBACd3lO,KAAKi8D,KAAKrvD,QAAQkK,aAAa,uBAAwB,QAGvD9W,KAAKi8D,KAAKrvD,QAAQuK,gBAAgB,yBAG1CnX,KAAK4sO,gBAAgB3qG,cAAc4jG,GACA,QAAlC7gO,EAAKhF,KAAKysO,0BAAuC,IAAPznO,GAAyBA,EAAGi9H,cAAc4jG,GACrF7lO,KAAKi8D,KAAKgmE,cAAc4jG,KAvIhC,mBAyII,WACI,OAAO7lO,KAAKyF,WA1IpB,oBA4II,SAAO2a,EAAO4nD,GAA4B,WAAf/wD,EAAe,uDAAJ,GAClC,GAAImJ,EAAQ,GAAKA,EAAQpgB,KAAKi8D,KAAKl+D,OAC/B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,+BAAiD7iN,IAE3D,GAAI4nD,EAAc,EACd,MAAM,IAAIg7J,EAAUhjO,KAAKijO,KAAnB,gCAAkDj7J,IAExC,IAAhBA,GAAyC,IAApB/wD,EAASlZ,QAGlCiC,KAAK4rO,cAAc6B,cAAa,kBAAM,EAAKjB,WAAWj6M,OAAOnS,EAAO4nD,EAAa/wD,QAtJzF,sBAwJI,WACIjX,KAAKi8D,KAAKyxK,aAzJlB,qBA2JI,SAAQzuO,GACJ,OAAOe,KAAKi8D,KAAK1xD,QAAQtL,KA5JjC,kBA8JI,WACI,OAAOe,KAAKi8D,KAAKl+D,SA/JzB,yBAiKI,WACI,OAAOiC,KAAKi8D,KAAK0xK,gBAlKzB,qBAoKI,WACI,OAAO3tO,KAAKi8D,KAAK8mI,gBArKzB,IAuKI,SAAc52L,GACVnM,KAAKi8D,KAAK+nI,aAAa73L,KAxK/B,qBA0KI,WACI,OAAOnM,KAAK6rO,YA3KpB,IA6KI,SAAc7pO,GACVhC,KAAK6rO,WAAa7pO,EAClBhC,KAAKi8D,KAAKrvD,QAAQkK,aAAa,aAAc9U,KA/KrD,sBAiLI,WACIhC,KAAKi8D,KAAKrvD,QAAQowB,MAAM,CAAE4wM,eAAe,MAlLjD,oBAoLI,SAAO9iO,EAAQD,GACX7K,KAAKi8D,KAAK4+G,OAAO/vK,EAAQD,KArLjC,0BAuLI,SAAa+4N,EAASpgE,GAAc,oBACZogE,GADY,IAChC,2BAA6B,KAAlB3kO,EAAkB,QACzB,GAAIA,EAAQ,GAAKA,GAASe,KAAKjC,OAC3B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,wBAA0ChkO,KAHxB,8BAMhCe,KAAKm/E,UAAU33C,IAAIo8L,EAASpgE,KA7LpC,0BA+LI,WACI,OAAOxjK,KAAKm/E,UAAU1sD,QAhM9B,iCAkMI,WAAsB,WAClB,OAAOzyB,KAAK6iM,eAAezgL,KAAI,SAAAtkB,GAAC,OAAI,EAAKm+D,KAAK1xD,QAAQzM,QAnM9D,uBAqMI,SAAUmB,GACN,GAAqB,qBAAVA,EAAX,CAIA,GAAIA,EAAQ,GAAKA,GAASe,KAAKjC,OAC3B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,wBAA0ChkO,IAEpDe,KAAK8vM,OAAOtoK,IAAI,CAACvoC,SANbe,KAAK8vM,OAAOtoK,IAAI,MAvM5B,uBA+MI,WACI,OAAO6/B,YAAernE,KAAK8vM,OAAOr9K,WAAO5Y,KAhNjD,8BAkNI,WACI,IAAMi2L,EAAS9vM,KAAKwpO,YACpB,MAAyB,qBAAX15B,OAAyBj2L,EAAY7Z,KAAKuK,QAAQulM,KApNxE,sBAsNI,SAAS8zB,EAASpgE,GAAc,oBACRogE,GADQ,IAC5B,2BAA6B,KAAlB3kO,EAAkB,QACzB,GAAIA,EAAQ,GAAKA,GAASe,KAAKjC,OAC3B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,wBAA0ChkO,KAH5B,8BAM5Be,KAAKg9B,MAAMwK,IAAIo8L,EAASpgE,KA5NhC,uBA8NI,WAAqD,IAA3CjjK,EAA2C,uDAAvC,EAAG+gE,EAAoC,wDAAtBkiG,EAAsB,uCAARx0I,EAAQ,uCACjD,GAAoB,IAAhBhvB,KAAKjC,OAAT,CAGA,IAAMi/B,EAAQh9B,KAAKg9B,MAAMvK,MACnBxzB,EAAQe,KAAK6tO,cAAc7wM,EAAMj/B,OAAS,EAAIi/B,EAAM,GAAKz8B,EAAI,EAAG+gE,EAAMtyC,GACxE/vB,GAAS,GACTe,KAAK0nO,SAAS,CAACzoO,GAAQukK,MArOnC,2BAwOI,WAAyD,IAA3CjjK,EAA2C,uDAAvC,EAAG+gE,EAAoC,wDAAtBkiG,EAAsB,uCAARx0I,EAAQ,uCACrD,GAAoB,IAAhBhvB,KAAKjC,OAAT,CAGA,IAAMi/B,EAAQh9B,KAAKg9B,MAAMvK,MACnBxzB,EAAQe,KAAK8tO,kBAAkB9wM,EAAMj/B,OAAS,EAAIi/B,EAAM,GAAKz8B,EAAI,EAAG+gE,EAAMtyC,GAC5E/vB,GAAS,GACTe,KAAK0nO,SAAS,CAACzoO,GAAQukK,MA/OnC,2BAkPI,SAAcA,EAAcx0I,GACxB,OAAOztB,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,+FAEnC+tO,EAAkC,KAD9BA,EAAgB/tO,KAAKi8D,KAAK+xK,QAAQhuO,KAAKi8D,KAAK8mI,eAAiB/iM,KAAKi8D,KAAKgyK,eACrC,EAAIF,EAAgB,EACpDG,EAAkBluO,KAAKi8D,KAAK1xD,QAAQwjO,IACpCI,EAA0BnuO,KAAKouO,qBAAqB,MAC1BF,EALG,iBAMzBG,EAAoBruO,KAAK8tO,kBAAkBC,GAAe,EAAO/+M,KAC9C,GAAKm/M,IAA4BnuO,KAAKi8D,KAAK1xD,QAAQ8jO,GACxEruO,KAAK0nO,SAAS,CAAC2G,GAAoB7qE,GAGnCxjK,KAAK0nO,SAAS,CAACqG,GAAgBvqE,GAXJ,0BAezB8qE,EAAoBtuO,KAAKi8D,KAAK8mI,eACpC/iM,KAAKi8D,KAAK+nI,aAAasqC,EAAoBtuO,KAAKi8D,KAAKgyK,aAAejuO,KAAKi8D,KAAKsyK,cAAcR,IACxF/tO,KAAKi8D,KAAK8mI,iBAAmBurC,EAjBF,iBAoB3B,OAFAtuO,KAAK0nO,SAAS,IAlBa,UAoBrBj+N,YAAQ,GApBa,QAqB3B,OArB2B,UAqBrBzJ,KAAKomO,cAAc5iE,EAAcx0I,GArBZ,mDAnP/C,+BA6QI,SAAkBw0I,EAAcx0I,GAC5B,OAAOztB,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,iGAE7BmM,EAAYnM,KAAKi8D,KAAK8mI,eAExByrC,EADc,IAAdriO,EACiBnM,KAAKi8D,KAAK+xK,QAAQ7hO,GAGlBnM,KAAKi8D,KAAKwyK,WAAWtiO,EAAY,GAEhDuiO,EAAmB1uO,KAAKi8D,KAAK1xD,QAAQikO,IACrCL,EAA0BnuO,KAAKouO,qBAAqB,MAC1BM,EAXG,iBAYzBC,EAAqB3uO,KAAK6tO,cAAcW,GAAgB,EAAOx/M,KAC3C,GAAKm/M,IAA4BnuO,KAAKi8D,KAAK1xD,QAAQokO,GACzE3uO,KAAK0nO,SAAS,CAACiH,GAAqBnrE,GAGpCxjK,KAAK0nO,SAAS,CAAC8G,GAAiBhrE,GAjBL,0BAqBzB8qE,EAAoBniO,EAC1BnM,KAAKi8D,KAAK+nI,aAAa73L,EAAYnM,KAAKi8D,KAAKgyK,cACzCjuO,KAAKi8D,KAAK8mI,iBAAmBurC,EAvBF,iBA0B3B,OAFAtuO,KAAK0nO,SAAS,IAxBa,UA0BrBj+N,YAAQ,GA1Ba,QA2B3B,OA3B2B,UA2BrBzJ,KAAKmmO,kBAAkB3iE,EAAcx0I,GA3BhB,mDA9Q/C,uBA8SI,SAAUw0I,EAAcx0I,GACpB,GAAoB,IAAhBhvB,KAAKjC,OAAT,CAGA,IAAMkB,EAAQe,KAAK8tO,kBAAkB9tO,KAAKjC,OAAS,GAAG,EAAOixB,GACzD/vB,GAAS,GACTe,KAAK0nO,SAAS,CAACzoO,GAAQukK,MApTnC,wBAuTI,SAAWA,EAAcx0I,GACrBhvB,KAAK4uO,SAAS,EAAGprE,EAAcx0I,KAxTvC,sBA0TI,SAASzuB,EAAGijK,EAAcx0I,GACtB,GAAoB,IAAhBhvB,KAAKjC,OAAT,CAGA,IAAMkB,EAAQe,KAAK6tO,cAActtO,GAAG,EAAOyuB,GACvC/vB,GAAS,GACTe,KAAK0nO,SAAS,CAACzoO,GAAQukK,MAhUnC,2BAmUI,SAAcvkK,GACV,IADuC,IAAtBqiE,EAAsB,wDAARtyC,EAAQ,uCAC9BlxB,EAAI,EAAGA,EAAIkC,KAAKjC,OAAQD,IAAK,CAClC,GAAImB,GAASe,KAAKjC,SAAWujE,EACzB,OAAQ,EAGZ,GADAriE,GAAgBe,KAAKjC,QAChBixB,GAAUA,EAAOhvB,KAAKuK,QAAQtL,IAC/B,OAAOA,EAEXA,IAEJ,OAAQ,IA9UhB,+BAgVI,SAAkBA,GACd,IAD2C,IAAtBqiE,EAAsB,wDAARtyC,EAAQ,uCAClClxB,EAAI,EAAGA,EAAIkC,KAAKjC,OAAQD,IAAK,CAClC,GAAImB,EAAQ,IAAMqiE,EACd,OAAQ,EAGZ,GADAriE,GAASe,KAAKjC,OAAUkB,EAAQe,KAAKjC,QAAWiC,KAAKjC,QAChDixB,GAAUA,EAAOhvB,KAAKuK,QAAQtL,IAC/B,OAAOA,EAEXA,IAEJ,OAAQ,IA3VhB,sBA6VI,WACI,OAAOe,KAAKg9B,MAAMvK,QA9V1B,gCAgWI,WAAqB,WACjB,OAAOzyB,KAAK8lO,WAAW1jN,KAAI,SAAAtkB,GAAC,OAAI,EAAKm+D,KAAK1xD,QAAQzM,QAjW1D,oBAmWI,SAAOmB,EAAO4vO,GACV,GAAI5vO,EAAQ,GAAKA,GAASe,KAAKjC,OAC3B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,wBAA0ChkO,IAEpD,IAAMkN,EAAYnM,KAAKi8D,KAAK8mI,eACtB+rC,EAAa9uO,KAAKi8D,KAAK6yK,WAAW7vO,GAClCsvO,EAAgBvuO,KAAKi8D,KAAKsyK,cAActvO,GAC9C,GAAIqkE,YAASurK,GAAc,CAEvB,IAAMnrO,EAAI6qO,EAAgBvuO,KAAKi8D,KAAKgyK,aACpCjuO,KAAKi8D,KAAK+nI,aAAatgM,EAAIwuF,YAAM28I,EAAa,EAAG,GAAKC,OAErD,CACD,IAAMC,EAAiBD,EAAaP,EAC9BS,EAAe7iO,EAAYnM,KAAKi8D,KAAKgyK,aACvCa,EAAa3iO,GAAa4iO,GAAkBC,IAGvCF,EAAa3iO,GAAc4iO,GAAkBC,GAAgBT,GAAiBvuO,KAAKi8D,KAAKgyK,aAC7FjuO,KAAKi8D,KAAK+nI,aAAa8qC,GAElBC,GAAkBC,GACvBhvO,KAAKi8D,KAAK+nI,aAAa+qC,EAAiB/uO,KAAKi8D,KAAKgyK,kBAzXlE,4BAiYI,SAAehvO,GACX,GAAIA,EAAQ,GAAKA,GAASe,KAAKjC,OAC3B,MAAM,IAAIilO,EAAUhjO,KAAKijO,KAAnB,wBAA0ChkO,IAEpD,IAAMkN,EAAYnM,KAAKi8D,KAAK8mI,eACtB+rC,EAAa9uO,KAAKi8D,KAAK6yK,WAAW7vO,GAClCsvO,EAAgBvuO,KAAKi8D,KAAKsyK,cAActvO,GAC9C,GAAI6vO,EAAa3iO,GAAa2iO,EAAaP,EAAgBpiO,EAAYnM,KAAKi8D,KAAKgyK,aAC7E,OAAO,KAGX,IAAMvqO,EAAI6qO,EAAgBvuO,KAAKi8D,KAAKgyK,aACpC,OAAOv2N,KAAKmgD,KAAK1rD,EAAY2iO,GAAcprO,KA7YnD,4BA+YI,WACI,OAAO1D,KAAKi8D,KAAKrvD,UAhZzB,mBAkZI,SAAMqtC,GACFj6C,KAAKssO,gBAAgB5/N,MAAMutC,KAnZnC,yBAqZI,YAAuC,WAAzB2pL,EAAyB,EAAzBA,QAASpgE,EAAgB,EAAhBA,aACnB,MAAO,CAAEogE,UAAS3sN,SAAU2sN,EAAQxhN,KAAI,SAAAtkB,GAAC,OAAI,EAAKm+D,KAAK1xD,QAAQzM,MAAK0lK,kBAtZ5E,4BAwZI,WACI,IAAMxmI,EAAQh9B,KAAKg9B,MAAMvK,MACzBzyB,KAAKi8D,KAAKrvD,QAAQiC,UAAU8vI,OAAO,kBAAmB3hH,EAAMj/B,OAAS,GACrEiC,KAAKmsO,gCA3Zb,yCA6ZI,WACI,IAAInnO,EAGIuR,EAFFymB,EAAQh9B,KAAKg9B,MAAMvK,MACrBuK,EAAMj/B,OAAS,IAE2B,QAArCiH,EAAKhF,KAAKqnO,6BAA0C,IAAPriO,OAAgB,EAASA,EAAGiqO,yBAC1E14N,EAAKvW,KAAKqnO,sBAAsB4H,sBAAsBjvO,KAAKi8D,KAAK1xD,QAAQyyB,EAAM,MAElFh9B,KAAKi8D,KAAKrvD,QAAQkK,aAAa,wBAAyBP,GAAMvW,KAAKi8D,KAAKizK,gBAAgBlyM,EAAM,MAG9Fh9B,KAAKi8D,KAAKrvD,QAAQuK,gBAAgB,2BAxa9C,gCA2aI,WACI,IAAMgoE,EAAYn/E,KAAKm/E,UAAU1sD,MACjCzyB,KAAKi8D,KAAKrvD,QAAQiC,UAAU8vI,OAAO,iBAAuC,IAArBx/D,EAAUphF,QAC/DiC,KAAKi8D,KAAKrvD,QAAQiC,UAAU8vI,OAAO,mBAAyC,IAArBx/D,EAAUphF,QACjEiC,KAAKi8D,KAAKrvD,QAAQiC,UAAU8vI,OAAO,qBAAsBx/D,EAAUphF,OAAS,KA/apF,qBAibI,WACIiC,KAAK8rO,cAAc72N,OACnBjV,KAAKkd,YAAY9E,UACjBpY,KAAK8rO,cAAc1zN,cApb3B,KAubArX,EAAW,CACP89J,KACD6sE,GAAKhtO,UAAW,mBAAoB,MACvCqC,EAAW,CACP89J,KACD6sE,GAAKhtO,UAAW,uBAAwB,MAC3CqC,EAAW,CACP89J,KACD6sE,GAAKhtO,UAAW,gBAAiB,MACpCqC,EAAW,CACP89J,KACD6sE,GAAKhtO,UAAW,YAAa,MAChCqC,EAAW,CACP89J,KACD6sE,GAAKhtO,UAAW,aAAc,O,sbCx1C7B6C,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAgBzDitO,EAAsB,2BACtBC,EAAoB,yBACpBC,EAAwB,6BACxBC,EAA2B,gCAC3BC,EAAkB,uBAClBC,EAAb,WACI,WAAY15M,EAAQ+pH,GAAU,oBAC1B7/I,KAAK81B,OAASA,EACd91B,KAAK6/I,SAAWA,EAHxB,2CAKI,SAAQngF,GACJ,IAAI16D,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,yFACL,QAAxBgF,EAAKhF,KAAK6/I,gBAA6B,IAAP76I,OAAgB,EAASA,EAAGyqO,oBAAuBzvO,KAAK81B,OAAO42C,KADlE,iBAIlB,OAJkB,kBAIZ1sE,KAAK6/I,SAAS4vF,kBAAkBzvO,KAAK81B,OAAQ4pC,GAJjC,OAI3B5pC,EAJ2B,uDAO3B+oC,YAA0B,EAAD,IAPE,QAS3B/oC,IACA91B,KAAK81B,OAAO42C,KAAO52C,EAAO42C,MAVC,iCAa5B1sE,MAb4B,6DAP/C,KAwBM0vO,E,kDACF,WAAYniJ,EAASoiJ,EAAezyN,GAAa,kCAC7C,gBACKyyN,cAAgBA,EACrB,EAAKjmO,UAAUwT,GACf,EAAK0yN,WAAa,YAAIriJ,GAASzkF,KAAK4mO,EAAqBG,uBACzD,EAAKC,aAAe,EAAKF,WAAW5gN,QAAO,qBAAG8G,OAAqBwpM,YALtB,E,4CA6BjD,WACI,OAAOt/N,KAAK8vO,aAAa7mF,MAAK,gBAAW8mF,EAAX,EAAGj6M,OAAH,QAAuBi6M,EAAI9gM,MAAQwxI,IAAec,SAASzyK,SAAS,IAAI2xK,IAAesvD,EAAI9gM,UAAY8gM,EAAI1uD,kB,oCAvB7I,cAA2D,IAApBn9K,EAAoB,EAA5B4xB,OAAuBx2B,EAAK,EAAbw2B,OAC1C,OAAI5xB,EAAEm9K,cAAgB/hL,EAAE+hL,aACZ,GAEFn9K,EAAEm9K,aAAe/hL,EAAE+hL,YAClB,EAEPt6G,YAAgB7iE,EAAE8rO,aACdjpK,YAAgBznE,EAAE0wO,aACX9rO,EAAE8rO,YAAY,GAAGpxO,QAAQujB,cAAc7iB,EAAE0wO,YAAY,GAAGpxO,UAGvD,EAGPmoE,YAAgBznE,EAAE0wO,aAChB,EAGA,M,GA3BgBhmO,KAkC7BimO,EAA2B,CAAE1iJ,QAAS,GAAIoiJ,mBAAe91N,GACxD,SAASq2N,EAAep7M,EAAOq7M,EAAkBpvK,EAASqvK,EAAU1wK,GAAO,IAC1E16D,EAD0E,OAExEgqB,EAAS+xC,EAAQ/xC,QAAU,GAC3BqhN,EAAoB,CACtBC,KAAgC,QAAzBtrO,EAAKgqB,EAAOo+E,eAA4B,IAAPpoG,OAAgB,EAASA,EAAGhD,MACpE++D,QAASA,EAAQ57D,MAEfm9L,EAAM,IAAIkB,IAAiC1uK,EAAO4qC,GAClD6wK,EA2CV,SAAgCz7M,EAAO9F,GACnC,OAAO4zH,IAAiC/2G,IAAI/W,GAEvC9F,QAAO,SAAA6wH,GACR,OAAKA,EAAS2wF,yBAIP3wF,EAAS2wF,wBAAwBvnF,MAAK,SAAAh6G,GAAI,OAAI2xI,YAAwB5xJ,EAAQ,IAAIyxJ,IAAexxI,UAnD1FwhM,CAAuB37M,EAAO9F,GAC1C9R,EAAc,IAAIhE,IAClB6pD,EAAWwtK,EAAUnuN,KAAI,SAACy9H,GAAD,OAAct+I,EAAU,OAAM,OAAQ,EAAf,UAAuB,wFAGzC,OAHyC,SAErE6uO,EAASj1J,OAAO0kE,GAFqD,SAGnCA,EAAS6wF,mBAAmB57M,EAAOq7M,EAAkBE,EAAmB/tC,EAAI5iI,OAHzC,WAG/DixK,EAH+D,SAKjEzzN,EAAY1D,IAAIm3N,IAEhBruC,EAAI5iI,MAAMkpC,wBAPuD,yCAQ1DqnI,GAR0D,cAU/DW,IAA4C,OAAxBD,QAAwD,IAAxBA,OAAiC,EAASA,EAAoBpjJ,UAAY,IAAIv+D,QAAO,SAAA8G,GAAM,OAAIA,GAAUorJ,YAAclyJ,EAAQ8G,MACnL65M,EAAgBkB,EAAiBhxF,EAAU+wF,EAAiB5hN,EAAOo+E,SAXJ,kBAY9D,CACH7f,QAASqjJ,EAAgBxuN,KAAI,SAAA0T,GAAM,OAAI,IAAI05M,EAAe15M,EAAQ+pH,MAClE8vF,kBAdiE,sCAkBjE/wK,YAAuB,EAAD,IAlB2C,2CAqBrEC,YAA0B,EAAD,IArB4C,kBAsB9DoxK,GAtB8D,6DAyBvEz4M,EAAWorH,IAAiC70G,aAAY,WAC1D,IAAM+iM,EAAeluF,IAAiC/2G,IAAI/W,GACrDkE,YAAO83M,EAAcP,IACtBjuC,EAAIx4L,YAGZ,OAAOlI,QAAQiqC,IAAIk3B,GAAUzgE,MAAK,SAAAirF,GAC9B,IAAMqiJ,EAAaroK,YAAQgmB,EAAQnrE,KAAI,SAAAnG,GAAC,OAAIA,EAAEsxE,YACxCwjJ,EAAmBlqK,YAAS0mB,EAAQnrE,KAAI,SAAAnG,GAAC,OAAIA,EAAE0zN,kBACrD,OAAO,IAAID,EAAqBE,EAAYmB,EAAkB7zN,MAH3D,SAKM,WACTsa,EAASpf,UACTkqL,EAAIlqL,aAcZ,SAASy4N,EAAiBhxF,EAAU8wF,EAAqBL,GACrD,GAAKzwF,EAAS8vF,cAAd,CAGA,IAAMA,EAAgB9vF,EAAS8vF,cAAcvtN,KAAI,SAAAixF,GAAK,MAAK,CAAEpkE,KAAM,IAAIwxI,IAAeptE,EAAMpkE,MAAOjd,QAASqhF,EAAMrhF,YAClH,GAAIs+M,EAAM,CACN,IAAIU,EADE,gBAEcrB,GAFd,IAEN,2BAAmC,KAAxBt8H,EAAwB,QAC3BA,EAAMpkE,KAAKngC,SAASwhO,KACfU,EAKGA,EAAY/hM,KAAKngC,SAASukG,EAAMpkE,QAChC+hM,EAAc39H,GALlB29H,EAAc39H,IALpB,8BAeN,GAAI29H,EACA,OAAuB,OAAhBA,QAAwC,IAAhBA,OAAyB,EAASA,EAAYh/M,QArB1B,oBAyBtC2+M,GAzBsC,IAyB3D,2BAA0C,KAA/B76M,EAA+B,QACtC,GAAKA,EAAOmZ,KAAZ,CADsC,oBAIlB0gM,GAJkB,IAItC,2BAAmC,KAAxBt8H,EAAwB,QAC/B,GAAIA,EAAMpkE,KAAKngC,SAAS,IAAI2xK,IAAe3qJ,EAAOmZ,OAC9C,OAAOokE,EAAMrhF,SANiB,iCAzBiB,gCAqC/DR,IAAiBC,gBAAgB,8BAA8B,SAAUC,EAAU+C,EAAU07M,EAAkBlhM,EAAMgiM,GACjH,OAAO1vO,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,mGAC7By0B,aAAoBE,IADS,sBAEzBwqC,cAFyB,UAI7BrqC,EAAQpD,EAASe,IAAIsC,KAAeC,SAASP,GAJhB,sBAMzB0qC,cANyB,UAQ7B+xK,EAA4BhoJ,IAAUioJ,aAAahB,GACnDjnJ,IAAUkoJ,cAAcjB,GACxB9xN,IAAMqxB,SAASygM,GACXr7M,EAAMkuG,cAAcmtG,QACpBt2N,EAZyB,sBAczBslD,cAdyB,OAiBb,OADhBiuC,EAA0B,kBAATn+D,EAAoB,IAAIwxI,IAAexxI,QAAQp1B,EAhBnC,UAiBPq2N,EAAep7M,EAAOo8M,EAA2B,CAAE/rO,KAAM,EAAgB6pB,OAAQ,CAAEgyJ,sBAAsB,EAAM5zE,YAAa80F,IAASpkL,KAAMyqF,IAAkBzqF,MAjBtJ,QAoBnC,IAHMuzN,EAjB6B,OAkB7B5tF,EAAY,GACZ6tF,EAAe55N,KAAKgI,IAAI2xN,EAAcvB,aAAa/xO,OAAoC,kBAArBkzO,EAAgCA,EAAmB,GAClHnzO,EAAI,EAAGA,EAAIwzO,EAAcxzO,IAC9B2lJ,EAAUlgJ,KAAK8tO,EAAcvB,aAAahyO,GAAG+D,QAAQ0mG,IAAkBzqF,OAGvE,OAxB+B,oBAwBzBlc,QAAQiqC,IAAI43G,GAxBa,iCAyBxB4tF,EAAcvB,aAAa1tN,KAAI,SAAAnZ,GAAI,OAAIA,EAAK6sB,WAzBpB,yBA4B/B9tB,YAAW,kBAAMqpO,EAAcj5N,YAAW,KA5BX,gF,iJCrLrCm5N,c,wIACJ5iK,QAAU6iK,YAAc,EAAD,O,sCAEvBpnB,kB,OACS,uBAAQz7I,QAAS3uE,KAAjB,QAA+BuV,SAAUvV,KAAKnC,MAAM0X,Y,EAJzDg8N,CAAsB7gD,IAAM85B,WCAT95B,IAAM85B,UCPxB,IAAMinB,EAAoB,SAACntO,EAAIotO,G,MACtB,oBAAPptO,EAAoBA,EAA3B,GAD+B,GAGpBqtO,EAAsB,SAACrtO,EAAIotO,G,MACjB,kBAAPptO,EACVgnN,YAAehnN,EAAI,KAAM,KADtB,GAAP,GCKIstO,EAAiB,SAAAjlB,G,OAAC,GAClBklB,EAAenhD,IAAfmhD,WACN,qBAAWA,IACTA,KAOF,IAAMC,EAAaD,GACjB,c,IAEIE,EAMC,EANDA,SACAC,EAKC,EALDA,SACAC,EAIC,EAJDA,QACGjzO,EAGF,iDACKpB,EAAWoB,EADhB,OAGCnB,EAAQ,OAAH,IAAG,CAAH,MAEPo0O,QAAS,SAAAt9N,G,IAEL,GAAas9N,KACb,MAAOC,G,MACPv9N,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEY/W,GA7BtB,SAAyB+W,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BSw9N,CAJH,KAMEx9N,mBACAq9N,Q,OAOJn0O,MADE+zO,IAAJ,GACcQ,GAEZv0O,EAIK,sBAAP,MAWJ,IAAMw0O,EAAOR,GACX,c,QAEIn5E,iBAOC,MAPWo5E,EAOX,EANDhzO,EAMC,EANDA,QACAwF,EAKC,EALDA,GACAytO,EAIC,EAJDA,SACG/yO,EAGF,uD,OAED,kBAACqrN,IAAD,eACG,SAAAzgL,GACC,mB,IAEQ+kC,EAAY/kC,EAHV,QAKJ9wB,EAAW64N,EACfF,EAAkBntO,EAAIslC,EADY,UAElCA,EAFF,UAKM7wB,EAAOD,EAAW61D,aAAH,GAArB,GACM9wE,EAAQ,OAAH,IAAG,CAAH,MAETkb,KAFS,EAGTi5N,SAHS,W,IAIDl5N,EAAW24N,EAAkBntO,EAAIslC,EAAvC,UACM0oM,EAAwBlmB,YAAWxiL,EAAXwiL,YAAiCA,YAAWulB,EAA1E,KACgB7yO,GAAD,EAAqC6vE,EAArC,QAAuDA,EAAtE,MAEAhK,M,OAKAitK,IAAJ,EACE/zO,MAAYu0O,GAAZv0O,EAEAA,aAGK6yL,oBAAP,SC1GJkhD,EAAiB,SAAAjlB,G,OAAC,GAClBklB,EAAenhD,IAAfmhD,WACN,qBAAW,IACTA,KAUcA,GACd,c,QAEI,gBAAgBU,OAef,MAf6B,OAe7B,E,IAdDh+F,uBAcC,MAdiB,SAcjB,EAbDi+F,EAaC,EAbDA,YACWC,EAYV,EAZDj8N,UACAk1M,EAWC,EAXDA,MACUgnB,EAUT,EAVDr+F,SACUs+F,EAST,EATD75N,SACA6yM,EAQC,EARDA,UACAtjL,EAOC,EAPDA,OACOuqM,EAMN,EANDlmO,MACApI,EAKC,EALDA,GACAytO,EAIC,EAJDA,SACG/yO,EAGF,uJ,OAED,kBAACqrN,IAAD,eACG,SAAAzgL,GACC,mB,IAEM8nM,EAAkBiB,GAAgB/oM,EAAxC,SACMipM,EAAalB,EACjBF,EAAkBntO,EADkB,GAAtC,GAIkBihG,EAASstI,EARjB,SAUJC,EACJvtI,GAAQA,sCADV,QAGMxmG,EAAQ+zO,EACVrnB,YAAUimB,EAAD,SAA2B,CAClCnsI,KADkC,EAElCmmH,MAFkC,EAGlCC,UAHkC,EAIlCtjL,WALN,KAQMgsG,KAAcq+F,EAChBA,EAAa3zO,EADe,GAAhC,GAIIyX,EACuB,oBAAlBi8N,EACHA,EADJ,GADF,EAKI/lO,EACmB,oBAAdkmO,EAA2BA,EAAlC,GADF,EAGA,IACEp8N,EA9DZ,W,2BAA2Bu8N,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAAj1O,G,OAAC,KAAnB,KAAP,KA6DsBk1O,CAAex8N,EAA3BA,GACA9J,EAAQ,OAAH,IAAG,CAAH,KAALA,I,IAGI7O,EAAQ,OAAH,IAAG,CAAH,C,eACQw2I,GAAD,GADP,KAET79H,UAFS,EAGT9J,MAHS,EAITpI,GAAIuuO,GA1CI,G,OA+CNjB,IAAJ,EACE/zO,MAAYu0O,GAAZv0O,EAEAA,aAGK,oBAAP,U,6BClGV,iFAKM+qE,EAAY,GACX,SAASomF,EAAkBz4I,EAAI08N,EAAkBC,GAC9CD,aAA4BE,MAC9BF,EAAmB,IAAIE,IAAeF,EAAkB,GAAIC,IAEhEtqK,EAAUrlE,KAAK,CAACgT,EAAI08N,IAEjB,SAASG,IACZ,OAAOxqK,I,iOCRJ,SAASilI,EAAiBE,EAAYnyI,GACzC,GAAmB,IAAfmyI,EACA,OAAO,KAEX,IAAM1mC,GAA0B,MAAb0mC,KAA6B,EAC1CslC,GAA0B,WAAbtlC,KAA6B,GAChD,OACW,IAAIulC,EADG,IAAdD,EAC2B,CACvBE,EAAuBlsE,EAAWzrG,GAClC23K,EAAuBF,EAAWz3K,IAGf,CAAC23K,EAAuBlsE,EAAWzrG,KAE3D,SAAS23K,EAAuBxlC,EAAYnyI,GAC/C,IAAM43K,KAAwB,KAAbzlC,GACX0lC,KAAwB,IAAb1lC,GAMjB,OAAO,IAAI/pC,EALa,IAAPpoG,EAA2B63K,EAAUD,KACvB,KAAbzlC,MACW,IAAbA,GACQ,IAAPnyI,EAA2B43K,EAAUC,EACxB,IAAb1lC,GAGd,IAAM/pC,EAAb,WACI,WAAY1qJ,EAASD,EAAUD,EAAQG,EAASG,GAAS,oBACrD1Z,KAAKsZ,QAAUA,EACftZ,KAAKqZ,SAAWA,EAChBrZ,KAAKoZ,OAASA,EACdpZ,KAAKuZ,QAAUA,EACfvZ,KAAK0Z,QAAUA,EANvB,0CAQI,SAAOwF,GACH,OAAQlf,KAAKsZ,UAAY4F,EAAM5F,SACxBtZ,KAAKqZ,WAAa6F,EAAM7F,UACxBrZ,KAAKoZ,SAAW8F,EAAM9F,QACtBpZ,KAAKuZ,UAAY2F,EAAM3F,SACvBvZ,KAAK0Z,UAAYwF,EAAMxF,UAbtC,2BAeI,WACI,OAAyB,IAAjB1Z,KAAK0Z,SACW,IAAjB1Z,KAAK0Z,SACY,KAAjB1Z,KAAK0Z,SACY,IAAjB1Z,KAAK0Z,SACY,IAAjB1Z,KAAK0Z,UApBpB,qBAsBI,WACI,OAAO,IAAI45N,EAAgB,CAACtzO,SAvBpC,qCA4BI,WACI,OAASA,KAAKsZ,SAA4B,IAAjBtZ,KAAK0Z,SACtB1Z,KAAKqZ,UAA6B,IAAjBrZ,KAAK0Z,SACtB1Z,KAAKoZ,QAA2B,IAAjBpZ,KAAK0Z,SACpB1Z,KAAKuZ,SAA4B,KAAjBvZ,KAAK0Z,YAhCrC,KAmCa45N,EACT,WAAYjlC,GACR,GADe,oBACM,IAAjBA,EAAMtwM,OACN,MAAMohE,YAAgB,SAE1Bn/D,KAAKquM,MAAQA,GAqBRqlC,EACT,WAAYp6N,EAASD,EAAUD,EAAQG,EAASo6N,EAASC,GAAa,oBAClE5zO,KAAKsZ,QAAUA,EACftZ,KAAKqZ,SAAWA,EAChBrZ,KAAKoZ,OAASA,EACdpZ,KAAKuZ,QAAUA,EACfvZ,KAAK6zO,SAAWF,EAChB3zO,KAAK8zO,aAAeF,GAMfG,EAAb,mC,wFClGaC,EAAb,kDACI,WAAYrtJ,GAAgB,0BACxB,cAAM,GACN,IAAK,IAAI7oF,EAAI,EAAG+jC,EAAM8kD,EAAe5oF,OAAQD,EAAI+jC,EAAK/jC,IAClD,EAAK0pC,IAAIm/C,EAAe5kD,WAAWjkC,GAAI,GAHnB,OAKxB,EAAK0pC,IAAI,GAAgB,GACzB,EAAKA,IAAI,EAAa,GANE,EADhC,U,OAA6CysM,GAmBtC,IAAMC,EATb,SAAcC,GACV,IAAIp7M,EAAQ,GACZ,OAAO,SAACq2D,GAIJ,OAHKr2D,EAAMp5B,eAAeyvF,KACtBr2D,EAAMq2D,GAAS+kJ,EAAU/kJ,IAEtBr2D,EAAMq2D,IAGkBjyE,EAAK,SAACiyE,GAAD,OAAW,IAAI4kJ,EAAwB5kJ,O,mHCpB5E,SAAS8C,EAAMlwF,EAAO0d,EAAK/H,GAC9B,OAAOD,KAAKgI,IAAIhI,KAAKC,IAAI3V,EAAO0d,GAAM/H,GAEnC,IAAM01K,EAAb,WACI,aAAc,oBACVrtL,KAAK0vB,GAAK,EACV1vB,KAAKo0O,KAAO,EAHpB,0CAKI,SAAOpyO,GAGH,OAFAhC,KAAKo0O,KAAOp0O,KAAKo0O,MAAQpyO,EAAQhC,KAAKo0O,MAAQp0O,KAAK0vB,GACnD1vB,KAAK0vB,IAAM,EACJ1vB,OARf,iBAUI,WACI,OAAOA,KAAKo0O,SAXpB,M,+LCFa5+F,EAAmB9oG,YAAgB,mBACnC2nM,EACT,WAAY5/M,EAAUxd,GAAU,oBAC5BjX,KAAKy0B,SAAWA,EAChBz0B,KAAKiX,SAAWA,GAGXq9N,EAAb,WACI,aAAc,oBACVt0O,KAAKuW,GAAK+9N,EAAcC,MACxBv0O,KAAKmyB,MAAQ,EAHrB,6CAKI,WACI,OAAgB,IAAZnyB,KAAKuW,GACE,EAEJvW,KAAKmyB,YATpB,KAYAmiN,EAAcC,IAAM,EACpBD,EAAcx2N,KAAO,IAAIw2N,EAClB,IAAME,EAAb,WACI,aAAc,oBACVx0O,KAAKuW,GAAKi+N,EAAeD,MACzBv0O,KAAKmyB,MAAQ,EAHrB,6CAKI,WACI,OAAgB,IAAZnyB,KAAKuW,GACE,EAEJvW,KAAKmyB,YATpB,KAYAqiN,EAAeD,IAAM,EACrBC,EAAe12N,KAAO,IAAI02N,G,kQC7Bb3vG,EAAb,WACI,WAAYjkG,EAAcC,EAASK,EAAWylD,GAAgB,oBAC1D3mF,KAAK4gC,aAAeA,EACpB5gC,KAAK6gC,QAAUA,EACf7gC,KAAKkhC,UAAYA,EACjBlhC,KAAK2mF,eAAiBA,EAL9B,sDAOI,WACI,GAA0B,KAAtB3mF,KAAK4gC,aACL,OAAO,KAGX,IAAIO,EAEAA,EADAnhC,KAAK6gC,QA8BV,SAAgCD,GACnC,IAAKA,GAAwC,IAAxBA,EAAa7iC,OAC9B,OAAO,EAEX,IAAK,IAAID,EAAI,EAAG+jC,EAAMjB,EAAa7iC,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAErD,GAAe,KADA8iC,EAAamB,WAAWjkC,GACJ,CAG/B,KADAA,GACS+jC,EAEL,MAEJ,IAAM25K,EAAa56K,EAAamB,WAAWjkC,GAC3C,GAAmB,MAAf09M,GAA6C,MAAfA,GAA6C,KAAfA,EAC5D,OAAO,GAInB,OAAO,EAhDai5B,CAAuBz0O,KAAK4gC,cAG3B5gC,KAAK4gC,aAAahgC,QAAQ,OAAS,EAEpD,IAAI+5E,EAAQ,KACZ,IACIA,EAAQ8e,IAAqBz5F,KAAK4gC,aAAc5gC,KAAK6gC,QAAS,CAC1DK,UAAWlhC,KAAKkhC,UAChBJ,WAAW,EACXK,UAAWA,EACXF,QAAQ,EACRG,SAAS,IAGjB,MAAOzlB,GACH,OAAO,KAEX,IAAKg/D,EACD,OAAO,KAEX,IAAI+5J,GAAuB10O,KAAK6gC,UAAYM,EAK5C,OAJIuzM,GAAsB10O,KAAK4gC,aAAamC,gBAAkB/iC,KAAK4gC,aAAam0B,gBAE5E2/K,EAAqB10O,KAAKkhC,WAEvB,IAAIyzM,EAAWh6J,EAAO36E,KAAK2mF,eAAiButJ,YAAwBl0O,KAAK2mF,gBAAkB,KAAM+tJ,EAAqB10O,KAAK4gC,aAAe,UAxCzJ,KAgEO,IAAM+zM,EACT,WAAYh6J,EAAOgM,EAAgBkxB,GAAc,oBAC7C73G,KAAK26E,MAAQA,EACb36E,KAAK2mF,eAAiBA,EACtB3mF,KAAK63G,aAAeA,GAGrB,SAASR,EAAgBx4F,EAAO+1N,EAAYh+H,GAC/C,IAAKA,EACD,OAAO,IAAIqB,IAAUp5F,EAAO,MAGhC,IADA,IAAIsjH,EAAU,GACLrkI,EAAI,EAAG+jC,EAAM+yM,EAAW72O,OAAQD,EAAI+jC,EAAK/jC,IAC9CqkI,EAAQrkI,GAAK82O,EAAW92O,GAE5B,OAAO,IAAIm6G,IAAUp5F,EAAOsjH,G,IAE1B0yG,E,WACF,WAAY1rK,GAAM,oBAGd,IAFA,IAAI2rK,EAAmB,GACnBC,EAAsB,EACjBj3O,EAAI,EAAGk3O,EAAU7rK,EAAKprE,OAAQD,EAAIk3O,EAASl3O,IACrB,KAAvBqrE,EAAKpnC,WAAWjkC,KAChBg3O,EAAiBC,KAAyBj3O,GAGlDkC,KAAKi1O,kBAAoBH,E,iEAE7B,SAA8B10M,GAC1B,IAAM00M,EAAmB90O,KAAKi1O,kBAC1Bv1N,EAAM,EACN/H,EAAMm9N,EAAiB/2O,OAAS,EACpC,IAAa,IAAT4Z,EAEA,OAAO,EAEX,GAAIyoB,GAAU00M,EAAiB,GAE3B,OAAO,EAEX,KAAOp1N,EAAM/H,GAAK,CACd,IAAMsuD,EAAMvmD,IAAQ/H,EAAM+H,GAAO,GAAK,GAClCo1N,EAAiB7uK,IAAQ7lC,EACzBzoB,EAAMsuD,EAAM,EAGR6uK,EAAiB7uK,EAAM,IAAM7lC,GAE7B1gB,EAAMumD,EACNtuD,EAAMsuD,GAGNvmD,EAAMumD,EAAM,EAIxB,OAAOvmD,EAAM,M,KAGRqlH,EAAb,gGACI,SAAmBjwG,EAAO8vG,EAActtB,EAAaV,EAAgBC,GACjE,IAAMF,EAAaiuB,EAAaE,qBAChC,OAAKnuB,EAGDA,EAAWh8B,MAAMx5C,UACVnhC,KAAKk1O,wBAAwBpgN,EAAOwiF,EAAa,IAAIC,EAASZ,EAAWhwB,eAAgBgwB,EAAWh8B,OAAQi8B,EAAgBC,GAEhI72G,KAAKm1O,yBAAyBrgN,EAAOwiF,EAAaX,EAAYC,EAAgBC,GAL1E,KAJnB,qCAeI,SAA+B/hF,EAAO8iF,EAAazuC,EAAMisK,EAAWC,EAAYC,GAC5E,IAAI5/H,EASA4E,EARAi7H,EAA2B,EAS/B,GANI7/H,EAFA0/H,EAEcx9H,EAAcy9H,GAD5BE,EAA2BH,EAAUI,8BAA8BH,IAIrDz9H,EAAcy9H,EAG5BD,EAAW,CACX,IACIK,EADgCL,EAAUI,8BAA8BH,EAAaC,EAAOv3O,QACrCw3O,EAC3Dj7H,EAAY5E,EAAc4/H,EAAOv3O,OAAS03O,OAG1Cn7H,EAAY5E,EAAc4/H,EAAOv3O,OAErC,IAAMs3G,EAAgBvgF,EAAMwoF,cAAc5H,GACpCH,EAAczgF,EAAMwoF,cAAchD,GACxC,OAAO,IAAIj8F,IAAMg3F,EAAc91F,WAAY81F,EAAc71F,OAAQ+1F,EAAYh2F,WAAYg2F,EAAY/1F,UApC7G,qCAsCI,SAA+BsV,EAAOwiF,EAAad,EAAUI,EAAgBC,GACzE,IAQInzG,EAREk0G,EAAc9iF,EAAMqgF,YAAYmC,EAAYj4F,oBAI5C8pD,EAAOr0C,EAAM2oF,gBAAgBnG,EAAa,GAC1C89H,EAAgC,SAAnBtgN,EAAM2gF,SAAsB,IAAIo/H,EAAgB1rK,GAAQ,KACrE/mE,EAAS,GACXszO,EAAU,EAGd,IADAl/H,EAAS7gG,MAAM,GACPjS,EAAI8yG,EAASt0G,KAAKinE,IAEtB,GADA/mE,EAAOszO,KAAar+H,EAAgBr3G,KAAK21O,wBAAwB7gN,EAAO8iF,EAAazuC,EAAMisK,EAAW1xO,EAAEzE,MAAOyE,EAAE,IAAKA,EAAGkzG,GACrH8+H,GAAW7+H,EACX,OAAOz0G,EAGf,OAAOA,IAvDf,sCAyDI,SAAgC0yB,EAAOwiF,EAAaX,EAAYC,EAAgBC,GAC5E,IAAMz0G,EAAS,GACX8qG,EAAY,EAEhB,GAAIoK,EAAYh5F,kBAAoBg5F,EAAY94F,cAAe,CAC3D,IAAM2qD,EAAOr0C,EAAM01E,eAAe8M,EAAYh5F,iBAAiB+hB,UAAUi3E,EAAY/4F,YAAc,EAAG+4F,EAAY74F,UAAY,GAE9H,OADAyuF,EAAYltG,KAAK23G,mBAAmBhB,EAAYxtC,EAAMmuC,EAAYh5F,gBAAiBg5F,EAAY/4F,YAAc,EAAG2uF,EAAW9qG,EAAQw0G,EAAgBC,GAC5Iz0G,EAGX,IAAM+mE,EAAOr0C,EAAM01E,eAAe8M,EAAYh5F,iBAAiB+hB,UAAUi3E,EAAY/4F,YAAc,GACnG2uF,EAAYltG,KAAK23G,mBAAmBhB,EAAYxtC,EAAMmuC,EAAYh5F,gBAAiBg5F,EAAY/4F,YAAc,EAAG2uF,EAAW9qG,EAAQw0G,EAAgBC,GAEnJ,IAAK,IAAIt3F,EAAa+3F,EAAYh5F,gBAAkB,EAAGiB,EAAa+3F,EAAY94F,eAAiB0uF,EAAY2J,EAAkBt3F,IAC3H2tF,EAAYltG,KAAK23G,mBAAmBhB,EAAY7hF,EAAM01E,eAAejrF,GAAaA,EAAY,EAAG2tF,EAAW9qG,EAAQw0G,EAAgBC,GAGxI,GAAI3J,EAAY2J,EAAkB,CAC9B,IAAM1tC,EAAOr0C,EAAM01E,eAAe8M,EAAY94F,eAAe6hB,UAAU,EAAGi3E,EAAY74F,UAAY,GAClGyuF,EAAYltG,KAAK23G,mBAAmBhB,EAAYxtC,EAAMmuC,EAAY94F,cAAe,EAAG0uF,EAAW9qG,EAAQw0G,EAAgBC,GAE3H,OAAOz0G,IA9Ef,gCAgFI,SAA0Bu0G,EAAYxtC,EAAM5pD,EAAYq4F,EAAa1K,EAAW9qG,EAAQw0G,EAAgBC,GACpG,IAAMlwB,EAAiBgwB,EAAWhwB,eAClC,IAAKiwB,GAAkBD,EAAWkB,aAAc,CAK5C,IAJA,IAAMj3E,EAAe+1E,EAAWkB,aAC1BC,EAAkBl3E,EAAa7iC,OAC/B6vG,EAAazkC,EAAKprE,OACpBg6G,GAAkBD,GACsE,KAApFC,EAAiB5uC,EAAKvoE,QAAQggC,EAAcm3E,EAAiBD,KACjE,KAAKnxB,GAAkBqxB,EAAarxB,EAAgBxd,EAAMykC,EAAYmK,EAAgBD,MAClF11G,EAAO8qG,KAAe,IAAI+K,IAAU,IAAI55F,IAAMkB,EAAYw4F,EAAiB,EAAIH,EAAar4F,EAAYw4F,EAAiB,EAAID,EAAkBF,GAAc,MACzJ1K,GAAa2J,GACb,OAAO3J,EAInB,OAAOA,EAEX,IACIxpG,EADE8yG,EAAW,IAAIe,EAASZ,EAAWhwB,eAAgBgwB,EAAWh8B,OAGpE67B,EAAS7gG,MAAM,GACf,GAEI,IADAjS,EAAI8yG,EAASt0G,KAAKinE,MAEd/mE,EAAO8qG,KAAemK,EAAgB,IAAIh5F,IAAMkB,EAAY7b,EAAEzE,MAAQ,EAAI24G,EAAar4F,EAAY7b,EAAEzE,MAAQ,EAAIyE,EAAE,GAAG3F,OAAS65G,GAAcl0G,EAAGkzG,GAC5I1J,GAAa2J,GACb,OAAO3J,QAGVxpG,GACT,OAAOwpG,IA9Gf,2BAgHI,SAAqBp4E,EAAO8vG,EAAcK,EAAaruB,GACnD,IAAMD,EAAaiuB,EAAaE,qBAChC,IAAKnuB,EACD,OAAO,KAEX,IAAMH,EAAW,IAAIe,EAASZ,EAAWhwB,eAAgBgwB,EAAWh8B,OACpE,OAAIg8B,EAAWh8B,MAAMx5C,UACVnhC,KAAK41O,0BAA0B9gN,EAAOmwG,EAAazuB,EAAUI,GAEjE52G,KAAK61O,2BAA2B/gN,EAAOmwG,EAAazuB,EAAUI,KAzH7E,uCA2HI,SAAiC9hF,EAAOmwG,EAAazuB,EAAUI,GAC3D,IAAMk/H,EAAkB,IAAI31N,IAAS8kH,EAAY1lH,WAAY,GACvDq4F,EAAc9iF,EAAMqgF,YAAY2gI,GAChC/zH,EAAYjtF,EAAMg1E,eAIlB3gC,EAAOr0C,EAAM2oF,gBAAgB,IAAIp/F,IAAMy3N,EAAgBv2N,WAAYu2N,EAAgBt2N,OAAQuiG,EAAWjtF,EAAMgsG,iBAAiB/e,IAAa,GAC1IqzH,EAAgC,SAAnBtgN,EAAM2gF,SAAsB,IAAIo/H,EAAgB1rK,GAAQ,KAC3EqtC,EAAS7gG,MAAMsvH,EAAYzlH,OAAS,GACpC,IAAI9b,EAAI8yG,EAASt0G,KAAKinE,GACtB,OAAIzlE,EACO2zG,EAAgBr3G,KAAK21O,wBAAwB7gN,EAAO8iF,EAAazuC,EAAMisK,EAAW1xO,EAAEzE,MAAOyE,EAAE,IAAKA,EAAGkzG,GAEjF,IAA3BquB,EAAY1lH,YAA2C,IAAvB0lH,EAAYzlH,OAErCxf,KAAK41O,0BAA0B9gN,EAAO,IAAI3U,IAAS,EAAG,GAAIq2F,EAAUI,GAExE,OA7If,wCA+II,SAAkC9hF,EAAOmwG,EAAazuB,EAAUI,GAC5D,IAAMmL,EAAYjtF,EAAMg1E,eAClBxrF,EAAkB2mH,EAAY1lH,WAE9B4pD,EAAOr0C,EAAM01E,eAAelsF,GAC5Bnd,EAAInB,KAAK+1O,sBAAsBv/H,EAAUrtC,EAAM7qD,EAAiB2mH,EAAYzlH,OAAQo3F,GAC1F,GAAIz1G,EACA,OAAOA,EAEX,IAAK,IAAIrD,EAAI,EAAGA,GAAKikH,EAAWjkH,IAAK,CACjC,IAAMumH,GAAa/lG,EAAkBxgB,EAAI,GAAKikH,EACxC54C,EAAOr0C,EAAM01E,eAAe6Z,EAAY,GACxCljH,EAAInB,KAAK+1O,sBAAsBv/H,EAAUrtC,EAAMk7C,EAAY,EAAG,EAAGzN,GACvE,GAAIz1G,EACA,OAAOA,EAGf,OAAO,OAhKf,mCAkKI,SAA6Bq1G,EAAUrtC,EAAM5pD,EAAYy2N,EAAYp/H,GAEjEJ,EAAS7gG,MAAMqgO,EAAa,GAC5B,IAAMtyO,EAAI8yG,EAASt0G,KAAKinE,GACxB,OAAIzlE,EACO2zG,EAAgB,IAAIh5F,IAAMkB,EAAY7b,EAAEzE,MAAQ,EAAGsgB,EAAY7b,EAAEzE,MAAQ,EAAIyE,EAAE,GAAG3F,QAAS2F,EAAGkzG,GAElG,OAzKf,+BA2KI,SAAyB9hF,EAAO8vG,EAAcK,EAAaruB,GACvD,IAAMD,EAAaiuB,EAAaE,qBAChC,IAAKnuB,EACD,OAAO,KAEX,IAAMH,EAAW,IAAIe,EAASZ,EAAWhwB,eAAgBgwB,EAAWh8B,OACpE,OAAIg8B,EAAWh8B,MAAMx5C,UACVnhC,KAAKi2O,8BAA8BnhN,EAAOmwG,EAAazuB,EAAUI,GAErE52G,KAAKk2O,+BAA+BphN,EAAOmwG,EAAazuB,EAAUI,KApLjF,2CAsLI,SAAqC9hF,EAAOmwG,EAAazuB,EAAUI,GAC/D,IAAMurB,EAAUniI,KAAKk1O,wBAAwBpgN,EAAO,IAAIzW,IAAM,EAAG,EAAG4mH,EAAY1lH,WAAY0lH,EAAYzlH,QAASg3F,EAAUI,EAAgB,MAC3I,GAAIurB,EAAQpkI,OAAS,EACjB,OAAOokI,EAAQA,EAAQpkI,OAAS,GAEpC,IAAMgkH,EAAYjtF,EAAMg1E,eACxB,OAAIm7B,EAAY1lH,aAAewiG,GAAakjB,EAAYzlH,SAAWsV,EAAMgsG,iBAAiB/e,GAE/E/hH,KAAKi2O,8BAA8BnhN,EAAO,IAAI3U,IAAS4hG,EAAWjtF,EAAMgsG,iBAAiB/e,IAAavL,EAAUI,GAEpH,OAhMf,4CAkMI,SAAsC9hF,EAAOmwG,EAAazuB,EAAUI,GAChE,IAAMmL,EAAYjtF,EAAMg1E,eAClBxrF,EAAkB2mH,EAAY1lH,WAE9B4pD,EAAOr0C,EAAM01E,eAAelsF,GAAiB+hB,UAAU,EAAG4kG,EAAYzlH,OAAS,GAC/Ere,EAAInB,KAAKm2O,qBAAqB3/H,EAAUrtC,EAAM7qD,EAAiBs4F,GACrE,GAAIz1G,EACA,OAAOA,EAEX,IAAK,IAAIrD,EAAI,EAAGA,GAAKikH,EAAWjkH,IAAK,CACjC,IAAMumH,GAAatC,EAAYzjG,EAAkBxgB,EAAI,GAAKikH,EACpD54C,EAAOr0C,EAAM01E,eAAe6Z,EAAY,GACxCljH,EAAInB,KAAKm2O,qBAAqB3/H,EAAUrtC,EAAMk7C,EAAY,EAAGzN,GACnE,GAAIz1G,EACA,OAAOA,EAGf,OAAO,OAnNf,kCAqNI,SAA4Bq1G,EAAUrtC,EAAM5pD,EAAYq3F,GACpD,IACIlzG,EADA+rI,EAAa,KAGjB,IADAj5B,EAAS7gG,MAAM,GACPjS,EAAI8yG,EAASt0G,KAAKinE,IACtBsmE,EAAap4B,EAAgB,IAAIh5F,IAAMkB,EAAY7b,EAAEzE,MAAQ,EAAGsgB,EAAY7b,EAAEzE,MAAQ,EAAIyE,EAAE,GAAG3F,QAAS2F,EAAGkzG,GAE/G,OAAO64B,MA5Nf,KA6QO,SAASz3B,EAAarxB,EAAgBxd,EAAMykC,EAAYwoI,EAAiBC,GAC5E,OA/CJ,SAA2B1vJ,EAAgBxd,EAAMykC,EAAYwoI,EAAiBC,GAC1E,GAAwB,IAApBD,EAEA,OAAO,EAEX,IAAME,EAAantK,EAAKpnC,WAAWq0M,EAAkB,GACrD,GAAuC,IAAnCzvJ,EAAel0D,IAAI6jN,GAEnB,OAAO,EAEX,GAAmB,KAAfA,GAAyD,KAAfA,EAE1C,OAAO,EAEX,GAAID,EAAc,EAAG,CACjB,IAAME,EAAmBptK,EAAKpnC,WAAWq0M,GACzC,GAA6C,IAAzCzvJ,EAAel0D,IAAI8jN,GAEnB,OAAO,EAGf,OAAO,EA0BCC,CAAkB7vJ,EAAgBxd,EAAMykC,EAAYwoI,EAAiBC,IAxBjF,SAA4B1vJ,EAAgBxd,EAAMykC,EAAYwoI,EAAiBC,GAC3E,GAAID,EAAkBC,IAAgBzoI,EAElC,OAAO,EAEX,IAAM6oI,EAAYttK,EAAKpnC,WAAWq0M,EAAkBC,GACpD,GAAsC,IAAlC1vJ,EAAel0D,IAAIgkN,GAEnB,OAAO,EAEX,GAAkB,KAAdA,GAAuD,KAAdA,EAEzC,OAAO,EAEX,GAAIJ,EAAc,EAAG,CACjB,IAAMK,EAAkBvtK,EAAKpnC,WAAWq0M,EAAkBC,EAAc,GACxE,GAA4C,IAAxC1vJ,EAAel0D,IAAIikN,GAEnB,OAAO,EAGf,OAAO,EAIAC,CAAmBhwJ,EAAgBxd,EAAMykC,EAAYwoI,EAAiBC,GAE1E,IAAM9+H,EAAb,WACI,WAAY5wB,EAAgBiwJ,GAAa,oBACrC52O,KAAKg3G,gBAAkBrwB,EACvB3mF,KAAK62O,aAAeD,EACpB52O,KAAK82O,sBAAwB,EAC7B92O,KAAK+2O,iBAAmB,EALhC,yCAOI,SAAMv1M,GACFxhC,KAAK62O,aAAar1M,UAAYA,EAC9BxhC,KAAK82O,sBAAwB,EAC7B92O,KAAK+2O,iBAAmB,IAVhC,kBAYI,SAAK5tK,GACD,IACIzlE,EADEkqG,EAAazkC,EAAKprE,OAExB,EAAG,CACC,GAAIiC,KAAK82O,qBAAuB92O,KAAK+2O,mBAAqBnpI,EAEtD,OAAO,KAGX,KADAlqG,EAAI1D,KAAK62O,aAAa1gO,KAAKgzD,IAEvB,OAAO,KAEX,IAAMitK,EAAkB1yO,EAAEzE,MACpBo3O,EAAc3yO,EAAE,GAAG3F,OACzB,GAAIq4O,IAAoBp2O,KAAK82O,sBAAwBT,IAAgBr2O,KAAK+2O,iBAAkB,CACxF,GAAoB,IAAhBV,EAAmB,CAGf58I,IAAyBtwB,EAAMykC,EAAY5tG,KAAK62O,aAAar1M,WAAa,MAC1ExhC,KAAK62O,aAAar1M,WAAa,EAG/BxhC,KAAK62O,aAAar1M,WAAa,EAEnC,SAGJ,OAAO,KAIX,GAFAxhC,KAAK82O,qBAAuBV,EAC5Bp2O,KAAK+2O,iBAAmBV,GACnBr2O,KAAKg3G,iBAAmBgB,EAAah4G,KAAKg3G,gBAAiB7tC,EAAMykC,EAAYwoI,EAAiBC,GAC/F,OAAO3yO,QAENA,GACT,OAAO,SA/Cf,M,6BC9IA,IAAYszO,EAHZ,kCAGA,SAAYA,GAUV,+BAUA,qCAUA,uCAUA,uBAUA,qBAWA,+BAWA,+BAQA,uBAQA,+BAxFF,CAAYA,MAAS,M,6BCxQrB,2FAMO,IAAMC,EAAqBvqM,YAAgB,sB,6BCC3C,IAAI8vB,EAPX,kCAQA,SAAWA,GACPA,EAAW,KAAW,OACtBA,EAAW,MAAY,QACvBA,EAAW,cAAoB,KAHnC,CAIGA,IAAgBA,EAAc,M,2OCLpB06K,EAAkB,KACzBC,EAAa,IAAI91M,OAAJ,gBAAoBy7B,IAAQC,mBAA5B,cAAoDD,IAAQE,uBAA5D,SAA2F,KACxGo6K,EAAmB,IAAI/1M,OAAJ,iBAAqB81M,EAAWhoN,QAAU,KAC5D,SAAS01K,EAAY17H,GACxB,OAAOA,EAAKrqE,QAAQs4O,GAAkB,SAACr4O,EAAOuoG,GAAR,OAAoBA,EAAUvoG,EAAH,YAAgBA,MAErF,IAAMs4O,EAA4B,IAAIh2M,OAAJ,cAAkB81M,EAAWhoN,QAAU,KAClE,SAASmoN,EAA2BnuK,GAEvC,OAAOA,EAAKrqE,QAAQu4O,GAA2B,SAAAt4O,GAAK,kBAASA,MAEjE,IAAMw4O,EAAkB,IAAIl2M,OAAJ,uBAA2B81M,EAAWhoN,OAAtC,UAAsD,KACvE,SAASqoN,EAAWruK,GACvB,OAAuC,IAAnCA,EAAKvoE,QAAQs2O,GACN/tK,EAEJA,EAAKrqE,QAAQy4O,GAAiB,SAACx4O,EAAO04O,EAAenwI,EAASowI,GAAhC,OAAmDpwI,EAAUvoG,EAAQ04O,GAAiBC,GAAkB,MAE1I,SAASC,EAAoBxuK,GAChC,IAAMyuK,EAAiBzuK,EAAKvoE,QAAQs2O,GACpC,OAAwB,IAApBU,EACO,CAAEzuK,QAIjB,SAA+BA,EAAMyuK,GACjC,IAAMC,EAAc,GAChBC,EAAmB,GACvB,SAASC,EAAYC,GACjB,GAAIA,EAAO,CACPF,GAAoBE,EADb,oBAESA,GAFT,IAEP,2BAAuB,SACnBH,EAAYt0O,KAAK00O,IAHd,gCAOf,IAGIhwJ,EACAiwJ,EAJAC,GAAoB,EACpBC,EAAmB,GACnBH,EAAc,EAGd73M,EAASw3M,EACP75O,EAASorE,EAAKprE,OAEpBg6O,EAAY5uK,EAAKhgC,OAAO,EAAGyuM,IAE3B,KAAOx3M,EAASriC,GAAQ,CAIpB,GAHAkqF,EAAO9e,EAAK/oC,GACZ83M,EAAW/uK,EAAK/oC,EAAS,GAErB6nD,IAASivJ,EAAgB,IAAMgB,IAAahB,EAAgB,GAC5DiB,EAAmB/3M,EAInB23M,EAAYK,GACZA,EAAmBlB,EACnB92M,SAGC,GAAa,MAAT6nD,IAAsC,IAAtBkwJ,EAAyB,CAE9CF,GAD0B73M,EAAS+3M,EAAmB,EAEtDA,GAAoB,EACpBC,EAAmB,QAGQ,IAAtBD,EAED,gBAAgBthO,KAAKoxE,GACrBmwJ,GAAoBnwJ,GAIpB8vJ,EAAYK,GACZD,GAAoB,EACpBC,EAAmB,IAKvBL,EAAY9vJ,GAEhB7nD,IAMJ,OADA23M,EAAYK,GACL,CAAEjvK,KAAM2uK,EAAkBD,eAlE1BQ,CAAsBlvK,EAAMyuK,GAoEhC,SAASU,EAAsBn+N,EAAOvc,GAAiD,IAAzC6nL,EAAyC,wDAClFt8G,EAAsBvrE,EAAtBurE,KAAM0uK,EAAgBj6O,EAAhBi6O,YAEd,IAAKA,GAAsC,IAAvBA,EAAY95O,OAC5B,OAAOynL,YAAarrK,EAAOgvD,EAAMs8G,GAIrC,IAAM8yD,EAAwCt4M,YAAMkpC,EAAM,KACpDqvK,EAA0BrvK,EAAKprE,OAASw6O,EAAsCx6O,OAE9EokI,EAAUqjD,YAAarrK,EAAOo+N,EAAuC9yD,GAE3E,GAAItjD,EAAS,qBACWA,GADX,IACT,2BAA6B,KAAlBpjI,EAAkB,QACnB05O,EAAaZ,EAAY94O,EAAMqhB,MAAQo4N,GAAuDA,EACpGz5O,EAAMqhB,OAASq4N,EACf15O,EAAMshB,KAAOo4N,GAJR,+BAOb,OAAOt2G,I,6BCtHX,mHAQO,SAASu2G,EAAa77N,GACzB,SAAIA,GAAwC,oBAAxBA,EAAM87N,gBACf97N,EAAM87N,kBAAoBC,IAAwBC,YAS1D,SAASC,EAAaj8N,GACzB,SAAIA,GAAwC,oBAAxBA,EAAM87N,gBACf97N,EAAM87N,kBAAoBC,IAAwBG,YAS1D,SAASC,EAAcn8N,GAC1B,OAAI67N,EAAa77N,GACNA,EAEPi8N,EAAaj8N,GACNA,EAAMo8N,oBAEV,O,6BCpCL,SAAU/mJ,EAAMlwF,EAAe2V,EAAa+H,GAChD,YADgD,IAAAA,MAAA,GACzC1d,EAAQ0d,EAAMA,EAAM1d,EAAQ2V,EAAMA,EAAM3V,EAFjD,mC,gBCA6B,IAAUykG,EAAvC/+F,KAAI,mBAAmC++F,EAwBhC,CACL,oBAAuB,oBArBZ,CACLyyI,WAAW,EACXC,aAAc,SAAUC,EAAUv2O,GAChC,IAAIw2O,EAA2DC,IAC3Dl3O,GAAUi3O,EAAgCA,EANrCv6O,QAAQ,MAAO,IAMoC,IAAM,IAAM2nG,EAAM5jG,GAC9E,GAAI,qCAAqCgU,KAAKzU,GAAS,CACrD,IAAIm3O,EAAaz5O,OAAO6K,OAAOmO,UAC3B0gO,EAAgBD,EAAWpwM,OAAO,EAAGowM,EAAWx7O,OAAS4M,OAAOmO,SAAS2gO,KAAK17O,OAAS4M,OAAOmO,SAAS4yD,OAAO3tE,OAAS4M,OAAOmO,SAASkxM,SAASjsN,QACpJ,GAAIqE,EAAOi+B,UAAU,EAAGm5M,EAAcz7O,UAAYy7O,EAAe,CAC5D,UAAU3iO,KAAKzU,KAChBA,EAASuI,OAAOmO,SAAS4gO,SAAWt3O,GAEtC,IACIu3O,EAAO,IAAIC,KAAK,CADX,KAAO/2O,EAAQ,oBAAsBT,EAAS,OAC7B,CAAE+C,KAAM,2BAClC,OAAO00O,IAAIC,gBAAgBH,IAG/B,OAAOv3O,KAMjB9E,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRF,EAAOC,QAAUC,EAAQ,M,mHCvElB,SAASotJ,EAAuB9gH,EAASxJ,GAK5C,IAJA,IAAImxF,EAAa3nF,EAAQ4nF,WACrBmc,EAAa/jG,EAAQsnF,uBAAuB9wF,GAC5C25M,EAAoBnwM,EAAQg8E,cAAc+nB,GAC1CygF,EAAiBzgF,EACdygF,EAAiB,EAAI78F,GAAc3nF,EAAQg8E,cAAcwoG,EAAiB,KAAO2rB,GACpF3rB,IAGJ,IADA,IAAI4rB,EAAkBrsG,EACfqsG,EAAkB,GAAKpwM,EAAQg8E,cAAco0H,EAAkB,KAAOD,GACzEC,IAEJ,OAAO,IAAIC,EAAiBrwM,EAASmwM,EAAmBC,EAAiB5rB,EAAiB,EAAGxkL,EAAQ0lG,eAAe0qG,GAAkBpwM,EAAQkoF,aAAas8F,IAExJ,IAAM6rB,EAAb,WACI,WAAYzvM,EAAQtM,EAAY87M,EAAiB5rB,EAAgBxjE,EAAiBsvF,GAAgB,oBAC9Fl6O,KAAKm6O,4BAAyBtgO,EAC9B7Z,KAAKsqC,QAAUE,EACfxqC,KAAKk+B,WAAaA,EAClBl+B,KAAKyuN,iBAAmBurB,EACxBh6O,KAAKo6O,gBAAkBhsB,EACvBpuN,KAAK4qJ,gBAAkBA,EACvB5qJ,KAAKq6O,gBAAkBH,EAR/B,kDAUI,WAEI,OAD0Bl6O,KAAKsqC,QAAQkgE,iBACdnqE,UAAUrgC,KAAK4qJ,gBAAiB5qJ,KAAKq6O,mBAZtE,wCAcI,SAA2Bj6M,GAEvB,OAD0BpgC,KAAKsqC,QAAQkgE,iBACdnqE,UAAU,EAAGrgC,KAAK4qJ,gBAAkBxqH,KAhBrE,2BAkBI,WACI,OAAOpgC,KAAKo6O,gBAAkBp6O,KAAKyuN,mBAnB3C,oCAqBI,SAAuBruL,GACnB,OAAOpgC,KAAKsqC,QAAQ4mF,uBAAuB9wF,EAASpgC,KAAK4qJ,iBAAmB5qJ,KAAKyuN,mBAtBzF,kCAwBI,SAAqB9gF,GACjB,OAAO3tI,KAAKsqC,QAAQ6kG,qBAAqBxB,EAAa3tI,KAAKyuN,sBAzBnE,KA4BO,SAASv/E,EAAsB8W,GAClC,OAA+C,KAAnB,EAApBA,K,8BC3CL,SAAS7oI,EAAKlF,GACjB,IAEI7V,EAFEk4O,EAAQt6O,KACVu6O,GAAU,EAEd,OAAO,WACH,OAAIA,EACOn4O,GAEXm4O,GAAU,EACVn4O,EAAS6V,EAAGxX,MAAM65O,EAAO95O,aAbjC,mC,wLCIIe,G,OAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,aAWzD88K,EAAb,kDACI,WAAYxvK,GAAyB,MAC7BxK,EAAIgL,EAAIwd,EAAImC,EAAIjU,EAAI8+N,EAsCpBC,EACAC,EAxCer1O,EAAc,uDAAJ,GAyC7B,OAzCiC,qBAEjC,gBAEKs1O,gBAAiB,EACtB,EAAKC,WAAY,EACjB,EAAKhmO,WAAa,EAAKlL,UAAU,IAAI+K,KACrC,EAAKI,UAAY,EAAKD,WAAWD,MACjC,EAAKkmO,aAAe,EAAKnxO,UAAU,IAAI+K,IAAQ,CAAEyjB,mBAAoB,kBAAM,EAAK4iN,mBAAoB,MACpG,EAAKC,YAAc,EAAKF,aAAalmO,MACrC,EAAKmmO,mBAAoB,EACzB,EAAK/3E,UAAY,EAAKr5J,UAAU,IAAI+K,KACpC,EAAKuuJ,SAAW,EAAKD,UAAUpuJ,MAC/B,EAAKkuJ,aAAe,EAAKn5J,UAAU,IAAI+K,KACvC,EAAKquJ,YAAc,EAAKD,aAAaluJ,MACrC,EAAKtP,QAAUA,EACf,EAAK21O,SAAsC,QAA1Bh2O,EAAKK,EAAQukC,eAA4B,IAAP5kC,EAAgBA,EAAK,KACxE,EAAKi2O,aAAmD,QAAnCjrO,EAAK,EAAK3K,QAAQi3K,mBAAgC,IAAPtsK,EAAgBA,EAAK,EACrF,EAAKkrO,aAAe,CAChBC,QAAoG,QAA1FxrN,EAAyC,QAAnCnC,EAAK,EAAKnoB,QAAQ+1O,mBAAgC,IAAP5tN,OAAgB,EAASA,EAAG2tN,eAA4B,IAAPxrN,GAAgBA,EAC5HjZ,KAA8F,QAAvF8jO,EAAyC,QAAnC9+N,EAAK,EAAKrW,QAAQ+1O,mBAAgC,IAAP1/N,OAAgB,EAASA,EAAGhF,YAAyB,IAAP8jO,EAAgBA,EAAK,CAAC,EAAe,KAE3I,EAAKn1O,QAAQg2O,aACb,EAAKC,cAAgB,EAAKj2O,QAAQg2O,cAGlC,EAAKC,cAAgB,IAAI14E,IACzB,EAAKl5J,UAAU,EAAK4xO,gBAExB,EAAK5xO,UAAU,EAAK4xO,cAAct4E,UAAS,SAAAriK,GAAC,OAAI,EAAKoiK,UAAU9tJ,KAAKtU,OACpE,EAAK+I,UAAU,EAAK4xO,cAAcx4E,aAAY,SAAAniK,GAAC,OAAI,EAAKkiK,aAAa5tJ,KAAKtU,OAC1E,EAAK46O,WAAa,GAClB,EAAKC,UAAY,GACjB,EAAKC,iBAAc5hO,EACnB,EAAKjN,QAAUxC,SAASsF,cAAc,OACtC,EAAK9C,QAAQ4J,UAAY,qBACA,IAArBnR,EAAQq2O,UACR,EAAK9uO,QAAQiC,UAAU2K,IAAI,YAIvB,EAAKyhO,cACT,KAAK,EACDR,EAAe,CAAC,IAChBC,EAAW,CAAC,IACZ,MACJ,KAAK,EACDD,EAAe,CAAC,IAChBC,EAAW,CAAC,IACZ,EAAK9tO,QAAQ4J,WAAa,YAjDD,OAoDjC,EAAK9M,UAAUiyO,wBAA0B,EAAK/uO,QAAS+uO,YAAc9pO,UAAU,SAAAlR,GAC3E,IAAMgU,EAAQ,IAAIxO,IAAsBxF,GACpCi7O,GAAe,EACbH,EAA0C,kBAArB,EAAKA,YAA2B,EAAKD,UAAU,EAAKC,kBAAe5hO,EAC1F4gO,IAAiB9lO,EAAMqkB,OAAOyhN,EAAa,KAAO9lO,EAAMqkB,OAAOyhN,EAAa,KAC5EmB,EAAe,EAAK7V,gBAEf2U,IAAa/lO,EAAMqkB,OAAO0hN,EAAS,KAAO/lO,EAAMqkB,OAAO0hN,EAAS,KACrEkB,EAAe,EAAK1V,YAEfvxN,EAAMqkB,OAAO,IAAmB,EAAK8hN,kBAC1C,EAAKD,aAAa5lO,OAEbN,EAAMqkB,OAAO,IAClB4iN,EAAe,EAAKC,aAEflnO,EAAMqkB,OAAO,IAClB4iN,EAAe,EAAKE,YAEfnnO,EAAMqkB,OAAO,IAAgByiN,aAAuBM,KAAsBN,EAAYO,qBAC3FJ,EAAe,EAAK1V,YAEf,EAAK+V,kBAAkBtnO,GAExB,EAAKumO,aAAaC,QAClB,EAAKe,UAAUvnO,GAGf,EAAKgmO,gBAAiB,EAI1BiB,GAAe,EAEfA,IACAjnO,EAAMV,iBACNU,EAAMR,uBAGd,EAAKzK,UAAUiyO,wBAA0B,EAAK/uO,QAAS+uO,YAAc5pO,QAAQ,SAAApR,GACzE,IAAMgU,EAAQ,IAAIxO,IAAsBxF,GAEpC,EAAKs7O,kBAAkBtnO,KAClB,EAAKumO,aAAaC,SAAW,EAAKR,iBACnC,EAAKA,gBAAiB,EACtB,EAAKuB,UAAUvnO,IAEnBA,EAAMV,iBACNU,EAAMR,oBAGDQ,EAAMqkB,OAAO,IAAgBrkB,EAAMqkB,OAAO,QAC/C,EAAKmjN,wBAGb,EAAKC,aAAe,EAAK1yO,UAAUiyO,aAAe,EAAK/uO,UACvD,EAAKlD,UAAU,EAAK0yO,aAAavnO,WAAU,WACnC8mO,uBAA2B,EAAK/uO,SAAY+uO,aAAeA,qBAAwB,EAAK/uO,WACxF,EAAKgI,WAAWK,OAChB,EAAKwmO,iBAAc5hO,EACnB,EAAK8gO,gBAAiB,OAG9B,EAAKjxO,UAAU,EAAK0yO,aAAa1nO,YAAW,kBAAM,EAAKynO,wBACvD,EAAKE,YAAcjyO,SAASsF,cAAc,MAC1C,EAAK2sO,YAAY7lO,UAAY,oBAC7B,EAAK6lO,YAAYvlO,aAAa,OAAQ,WAClC,EAAKzR,QAAQy5F,WACb,EAAKu9I,YAAYvlO,aAAa,aAAc,EAAKzR,QAAQy5F,WAE7D,EAAKlyF,QAAQgD,YAAY,EAAKysO,aAC9B7sO,EAAUI,YAAY,EAAKhD,SA3HM,EADzC,qDA8HI,SAAkB+H,GACd,IAAIwwF,GAAM,EAIV,OAHAnlG,KAAKk7O,aAAaxkO,KAAKC,SAAQ,SAAA+C,GAC3ByrF,EAAMA,GAAOxwF,EAAMqkB,OAAOtf,MAEvByrF,IAnIf,+BAqII,WACI,IAAK,IAAIrnG,EAAI,EAAGA,EAAIkC,KAAKq8O,YAAY9mO,SAASxX,OAAQD,IAAK,CACvD,IAAMw+O,EAAOt8O,KAAKq8O,YAAY9mO,SAASzX,GACvC,GAAI69O,aAAeA,qBAAwBW,GAAO,CAC9Ct8O,KAAKy7O,YAAc39O,EACnB,UA1IhB,mBA8II,WACI,OAAOkC,KAAKg7O,UA/IpB,IAiJI,SAAYpxM,GACR5pC,KAAKg7O,SAAWpxM,EAChB5pC,KAAKw7O,UAAU7kO,SAAQ,SAAA7Y,GAAC,OAAIA,EAAEy+O,iBAAiB3yM,QAnJvD,wBAqJI,WACI,OAAO5pC,KAAKs7O,eAtJpB,IAwJI,SAAiBD,GACTA,IACAr7O,KAAKs7O,cAAgBD,EACrBr7O,KAAKw7O,UAAU7kO,SAAQ,SAAA1N,GAAI,OAAIA,EAAKoyO,aAAeA,QA3J/D,0BA8JI,WACI,OAAOr7O,KAAK4M,UA/JpB,kBAiKI,SAAKkQ,GAAmB,WAAdzX,EAAc,uDAAJ,GACVkoF,EAAU9tF,MAAM+b,QAAQsB,GAAOA,EAAM,CAACA,GACxC7d,EAAQ8sM,IAAe1mM,EAAQpG,OAASoG,EAAQpG,MAAQ,KAC5DsuF,EAAQ52E,SAAQ,SAACmf,GACb,IASI7sB,EATEuzO,EAAwBpyO,SAASsF,cAAc,MACrD8sO,EAAsBhmO,UAAY,cAClCgmO,EAAsB1lO,aAAa,OAAQ,gBAEtC,EAAKzR,QAAQo3O,kBACd,EAAK/yO,UAAUiyO,wBAA0Ba,EAAuBb,YAAchqO,cAAc,SAAChR,GACzFg7O,cAAgB5nO,KAAKpT,GAAG,OAI5B,EAAK0E,QAAQ45K,yBACbh2K,EAAO,EAAK5D,QAAQ45K,uBAAuBnpJ,IAE1C7sB,IACDA,EAAO,IAAIyzO,IAAe,EAAK9yM,QAAS9T,EAAQzwB,IAEpD4D,EAAKoyO,aAAe,EAAKC,cACzBryO,EAAKszO,iBAAiB,EAAK3yM,SAC3B3gC,EAAKmhN,OAAOoyB,GACR,EAAK5B,WAAa3xO,aAAgB8yO,KAAgD,IAA1B,EAAKP,UAAUz9O,QAEvEkL,EAAK0zO,cAAa,GAER,OAAV19O,GAAkBA,EAAQ,GAAKA,GAAS,EAAKo9O,YAAY9mO,SAASxX,QAClE,EAAKs+O,YAAYzsO,YAAY4sO,GAC7B,EAAKhB,UAAUj4O,KAAK0F,GACpB,EAAKsyO,WAAWh4O,KAAKuyB,EAAOvf,MAG5B,EAAK8lO,YAAY3mO,aAAa8mO,EAAuB,EAAKH,YAAY9mO,SAAStW,IAC/E,EAAKu8O,UAAUjpN,OAAOtzB,EAAO,EAAGgK,GAChC,EAAKsyO,WAAWhpN,OAAOtzB,EAAO,EAAG62B,EAAOvf,IACxCtX,QAGwB,kBAArBe,KAAKy7O,aAEZz7O,KAAKg9B,MAAMh9B,KAAKy7O,eA1M5B,mBA6MI,WACIrjO,YAAQpY,KAAKw7O,WACbx7O,KAAKw7O,UAAY,GACjBx7O,KAAKu7O,WAAa,GAClBI,YAAc37O,KAAKq8O,eAjN3B,oBAmNI,WACI,OAAOr8O,KAAKw7O,UAAUz9O,SApN9B,mBAsNI,SAAM+e,GACF,IAAI8/N,GAAc,EACd39O,OAAQ4a,EAUZ,QATYA,IAARiD,EACA8/N,GAAc,EAEM,kBAAR9/N,EACZ7d,EAAQ6d,EAEY,mBAARA,IACZ8/N,EAAc9/N,GAEd8/N,GAA2C,qBAArB58O,KAAKy7O,YAA6B,CACxD,IAAMoB,EAAe78O,KAAKw7O,UAAUjY,WAAU,SAAAt6N,GAAI,OAAIA,EAAK6zO,eAE3D98O,KAAKy7O,aAAgC,IAAlBoB,OAAsBhjO,EAAYgjO,EACrD78O,KAAK+8O,wBAGSljO,IAAV5a,IACAe,KAAKy7O,YAAcx8O,GAEvBe,KAAK+8O,gBA5OjB,wBA+OI,WAEI,OADA/8O,KAAKy7O,YAAcz7O,KAAKjC,SAAW,EAAI,EAAI,EACpCiC,KAAK+lO,kBAjPpB,uBAmPI,WAEI,OADA/lO,KAAKy7O,YAAcz7O,KAAKjC,SAAW,EAAI,EAAIiC,KAAKjC,SAAW,EACpDiC,KAAKkmO,cArPpB,uBAuPI,WACI,GAAgC,qBAArBlmO,KAAKy7O,YACZz7O,KAAKy7O,YAAcz7O,KAAKw7O,UAAUz9O,OAAS,OAE1C,GAAIiC,KAAKw7O,UAAUz9O,QAAU,EAC9B,OAAO,EAEX,IACIkL,EADEi5B,EAAaliC,KAAKy7O,YAExB,EAAG,CACC,GAAIz7O,KAAKqF,QAAQ23O,uBAAyBh9O,KAAKy7O,YAAc,GAAKz7O,KAAKw7O,UAAUz9O,OAE7E,OADAiC,KAAKy7O,YAAcv5M,GACZ,EAEXliC,KAAKy7O,aAAez7O,KAAKy7O,YAAc,GAAKz7O,KAAKw7O,UAAUz9O,OAC3DkL,EAAOjJ,KAAKw7O,UAAUx7O,KAAKy7O,mBACtBz7O,KAAKy7O,cAAgBv5M,GAAcliC,KAAKqF,QAAQ43O,wBAA0Bh0O,EAAK6zO,aAExF,OADA98O,KAAK+8O,eACE,IAzQf,2BA2QI,WACI,GAAgC,qBAArB/8O,KAAKy7O,YACZz7O,KAAKy7O,YAAc,OAElB,GAAIz7O,KAAKw7O,UAAUz9O,QAAU,EAC9B,OAAO,EAEX,IACIkL,EADEi5B,EAAaliC,KAAKy7O,YAExB,EAAG,CAEC,GADAz7O,KAAKy7O,YAAcz7O,KAAKy7O,YAAc,EAClCz7O,KAAKy7O,YAAc,EAAG,CACtB,GAAIz7O,KAAKqF,QAAQ23O,sBAEb,OADAh9O,KAAKy7O,YAAcv5M,GACZ,EAEXliC,KAAKy7O,YAAcz7O,KAAKw7O,UAAUz9O,OAAS,EAE/CkL,EAAOjJ,KAAKw7O,UAAUx7O,KAAKy7O,mBACtBz7O,KAAKy7O,cAAgBv5M,GAAcliC,KAAKqF,QAAQ43O,wBAA0Bh0O,EAAK6zO,aAExF,OADA98O,KAAK+8O,aAAY,IACV,IAhSf,yBAkSI,SAAYG,EAAWtP,GACa,qBAArB5tO,KAAKy7O,aACZz7O,KAAKq8O,YAAYr/M,MAAM,CAAE4wM,kBAE7B,IAAK,IAAI9vO,EAAI,EAAGA,EAAIkC,KAAKw7O,UAAUz9O,OAAQD,IAAK,CAC5C,IAAMmL,EAAOjJ,KAAKw7O,UAAU19O,GACtBq/O,EAAiBl0O,EACvB,GAAInL,IAAMkC,KAAKy7O,YAAa,CACxB,IAAI2B,GAAY,EACXrxC,IAAiBoxC,EAAengN,SACjCogN,GAAY,GAEZp9O,KAAKqF,QAAQ43O,uBAAyBlxC,IAAiB9iM,EAAK6zO,aAAe7zO,EAAK6zO,cAChFM,GAAY,GAEZA,EACAD,EAAengN,MAAMkgN,GAGrBl9O,KAAKq8O,YAAYr/M,MAAM,CAAE4wM,uBAIzB7hC,IAAiBoxC,EAAeE,OAChCF,EAAeE,UA1TnC,uBA+TI,SAAU1oO,GACN,GAAgC,qBAArB3U,KAAKy7O,YAAhB,CAIA,IAAM0B,EAAiBn9O,KAAKw7O,UAAUx7O,KAAKy7O,aAC3C,GAAI0B,aAA0BpB,IAAoB,CAC9C,IAAMnyM,EAAuC,OAA5BuzM,EAAenC,eAAiDnhO,IAA5BsjO,EAAenC,SAA0BrmO,EAAQwoO,EAAenC,SACrHh7O,KAAKg0B,IAAImpN,EAAeG,QAAS1zM,OAvU7C,iBA0UI,SAAI9T,EAAQ8T,GACR,OAAOroC,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,8EACnC,OADmC,SAC7BA,KAAKs7O,cAActnN,IAAI8B,EAAQ8T,GADF,kDA3U/C,qBA+UI,WACIxxB,YAAQpY,KAAKw7O,WACbx7O,KAAKw7O,UAAY,GACjBx7O,KAAKu7O,WAAa,GAClBv7O,KAAKu9O,eAAez4O,SACpB,oEApVR,GAA+BkF,M,6BCrB/B,4IASWwzO,EATX,0CAUA,SAAWA,GACPA,EAAMr0K,KAAO,aACbq0K,EAAMC,OAAS,2BACfD,EAAME,QAAU,sBAChBF,EAAMxkK,SAAW,gBACjBwkK,EAAMG,MAAQ,aALlB,CAMGH,IAAUA,EAAQ,KACrB,IAAII,EAAyB,GACzBC,EAAgC,GAChCC,EAA6B,GAI1B,SAASC,EAAiBC,GAAsC,IAAzBC,EAAyB,wDAE7DC,EAAkBC,EAA0BH,GAClDJ,EAAuBr6O,KAAK26O,GACvBA,EAAgBE,eAIjBN,EAA2Bv6O,KAAK26O,GAHhCL,EAA8Bt6O,KAAK26O,GAMnCD,IAAoBC,EAAgBE,gBACpCR,EAAuBjnO,SAAQ,SAAAzS,GACvBA,EAAE62J,OAASmjF,EAAgBnjF,MAAQ72J,EAAEk6O,iBAGrCF,EAAgB7sF,WAAantJ,EAAEmtJ,YAAc6sF,EAAgB7sF,WAC7D3zI,QAAQC,KAAR,kCAAwCugO,EAAgB7sF,UAAxD,qCAA8F6sF,EAAgBnjF,KAA9G,OAEAmjF,EAAgBG,UAAYn6O,EAAEm6O,WAAaH,EAAgBG,UAC3D3gO,QAAQC,KAAR,iCAAuCugO,EAAgBG,SAAvD,qCAA4FH,EAAgBnjF,KAA5G,OAEAmjF,EAAgBI,aAAep6O,EAAEo6O,cAAgBJ,EAAgBI,aACjE5gO,QAAQC,KAAR,oCAA0CugO,EAAgBI,YAA1D,qCAAkGJ,EAAgBnjF,KAAlH,OAEAmjF,EAAgBK,WAAar6O,EAAEq6O,YAAcL,EAAgBK,WAC7D7gO,QAAQC,KAAR,kCAAwCugO,EAAgBK,UAAxD,qCAA8FL,EAAgBnjF,KAA9G,WAKhB,SAASojF,EAA0BH,GAC/B,MAAO,CACHznO,GAAIynO,EAAYznO,GAChBwkJ,KAAMijF,EAAYjjF,KAClBsjF,SAAUL,EAAYK,SACtBhtF,UAAW2sF,EAAY3sF,UACvBitF,YAAaN,EAAYM,YACzBC,UAAWP,EAAYO,UACvBH,eAAgBJ,EAAYI,eAC5BI,kBAAmBR,EAAYK,SAAWL,EAAYK,SAASt7M,mBAAgBlpB,EAC/E4kO,mBAAoBT,EAAY3sF,UAAY2sF,EAAY3sF,UAAUtuH,mBAAgBlpB,EAClF6kO,qBAAsBV,EAAYM,YAAc53M,YAAMs3M,EAAYM,YAAYv7M,oBAAiBlpB,EAC/F8kO,oBAAmBX,EAAYM,aAAcN,EAAYM,YAAY19O,QAAQkrK,IAAMnC,MAAQ,GAM5F,SAASi1E,EAAeC,GACtBA,GAMDjB,EAAyBA,EAAuB5uN,QAAO,SAAA9qB,GAAC,OAAKA,EAAEk6O,kBAC/DN,EAA6B,KAN7BF,EAAyB,GACzBC,EAAgC,GAChCC,EAA6B,IAU9B,SAASgB,EAAerqN,EAAUsqN,GACrC,IAAIx5I,EACJ,GAAI9wE,EACA,OAAQA,EAAS4wE,QACb,KAAKwqD,IAAQliF,KACT43B,EAAO9wE,EAAS2xE,OAChB,MACJ,KAAKypD,IAAQ1wJ,KAETomG,EADiBg0D,IAAQsB,cAAcpmI,GACvBhC,IAAI8mI,IAAQkB,iBAC5B,MACJ,QACIl1D,EAAO9wE,EAAS8wE,KAG5B,IAAKA,EACD,MAAO,CAACi4I,EAAME,SAElBn4I,EAAOA,EAAKxiE,cACZ,IAAMs7M,EAAWrkF,YAASz0D,GAEpBy5I,EAAiBC,EAAoB15I,EAAM84I,EAAUP,GAC3D,GAAIkB,EACA,MAAO,CAACA,EAAgBxB,EAAMr0K,MAGlC,IAAM+1K,EAAiBD,EAAoB15I,EAAM84I,EAAUR,GAC3D,GAAIqB,EACA,MAAO,CAACA,EAAgB1B,EAAMr0K,MAGlC,GAAI41K,EAAW,CACX,IAAMI,EAqDd,SAAkCJ,GAC1B94M,YAAkB84M,KAClBA,EAAYA,EAAU51M,OAAO,IAEjC,GAAI41M,EAAUhhP,OAAS,EAGnB,IAAK,IAAID,EAAI8/O,EAAuB7/O,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzD,IAAMkgP,EAAcJ,EAAuB9/O,GAC3C,GAAKkgP,EAAYO,UAAjB,CAGA,IAAMp8G,EAAU48G,EAAUhgP,MAAMi/O,EAAYO,WAC5C,GAAIp8G,GAAWA,EAAQpkI,OAAS,EAC5B,OAAOigP,EAAYjjF,MAI/B,OAAO,KAvEmBqkF,CAAyBL,GAC/C,GAAII,EACA,MAAO,CAACA,EAAe3B,EAAMr0K,MAGrC,MAAO,CAACq0K,EAAME,SAElB,SAASuB,EAAoB15I,EAAM84I,EAAUgB,GAOzC,IANA,IAAIr6O,EACAs6O,EAAgB,KAChBC,EAAe,KACfC,EAAiB,KAGZ1hP,EAAIuhP,EAAathP,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC/C,IAAMkgP,EAAcqB,EAAavhP,GAEjC,GAAIugP,IAAaL,EAAYQ,kBAAmB,CAC5Cc,EAAgBtB,EAChB,MAGJ,GAAIA,EAAYM,eACPiB,GAAgBvB,EAAYM,YAAYvgP,OAASwhP,EAAajB,YAAYvgP,QAAQ,CACnF,IAAMH,EAASogP,EAAYW,kBAAoBp5I,EAAO84I,GACN,QAA3Cr5O,EAAKg5O,EAAYU,4BAAyC,IAAP15O,OAAgB,EAASA,EAAGpF,KAAKo+O,EAAapgP,MAClG2hP,EAAevB,GAKvBA,EAAY3sF,aACPmuF,GAAkBxB,EAAY3sF,UAAUtzJ,OAASyhP,EAAenuF,UAAUtzJ,SACvEsgP,EAAS7zD,SAASwzD,EAAYS,sBAC9Be,EAAiBxB,GAMjC,OAAIsB,EACOA,EAAcvkF,KAGrBwkF,EACOA,EAAaxkF,KAGpBykF,EACOA,EAAezkF,KAEnB,O,iPC3JEghF,EAAb,kDACI,WAAYnyM,EAAS9T,GAAsB,MAAdzwB,EAAc,uDAAJ,GAAI,4BACvC,gBACKA,QAAUA,EACf,EAAK21O,SAAWpxM,GAAW,eAC3B,EAAK0zM,QAAUxnN,EACXA,aAAkB8rI,KAClB,EAAKl4J,UAAUosB,EAAOiY,aAAY,SAAAp5B,GACzB,EAAKpK,SAKV,EAAKk1O,wBAAwB9qO,OAZE,EAD/C,2DAiBI,SAAwBA,QACEkF,IAAlBlF,EAAMq5E,SACNhuF,KAAK0/O,qBAEa7lO,IAAlBlF,EAAMs5E,SACNjuF,KAAK2/O,qBAEW9lO,IAAhBlF,EAAK,OACL3U,KAAK4/O,mBAEW/lO,IAAhBlF,EAAM9R,QACN7C,KAAK6/O,cACL7/O,KAAK8/O,sBAEajmO,IAAlBlF,EAAMo5E,SACN/tF,KAAK8/O,kBAhCjB,wBAmCI,WAII,OAHK9/O,KAAKs7O,gBACNt7O,KAAKs7O,cAAgBt7O,KAAK0J,UAAU,IAAIk5J,MAErC5iK,KAAKs7O,eAvCpB,IAyCI,SAAiBD,GACbr7O,KAAKs7O,cAAgBD,IA1C7B,uBA4CI,WACI,OAAOr7O,KAAKs9O,UA7CpB,uBA+CI,WACI,OAAOt9O,KAAKs9O,QAAQtvJ,UAhD5B,8BAkDI,SAAiB+xJ,GACb//O,KAAKg7O,SAAW+E,IAnDxB,oBAqDI,SAAOvwO,GAAW,WACRjF,EAAUvK,KAAKuK,QAAUiF,EAC/BxP,KAAK0J,UAAU2xJ,IAAQwtE,UAAUr5N,IACjC,IAAMwwO,EAAiBhgP,KAAKqF,SAAWrF,KAAKqF,QAAQ46O,UAChDD,IACAxwO,EAAUywO,WAAY,EAClBrmG,KAEA55I,KAAK0J,UAAU9D,gCAAsB4J,EAAW9I,YAAUyM,YAAY,SAAAxS,GAAO,IAAIqE,EAAI,OAAiC,QAAzBA,EAAKrE,EAAEu/O,oBAAiC,IAAPl7O,OAAgB,EAASA,EAAGm7O,QAAQC,IAAcC,KAAM,EAAK/C,QAAQz6O,YAG3M7C,KAAK0J,UAAU9D,gCAAsB2E,EAAS+1O,IAAetlF,KAAK,SAAAr6J,GAAC,OAAI,EAAKsxO,QAAQtxO,GAAG,OACvFX,KAAK0J,UAAU9D,gCAAsB2E,EAAS7D,YAAUE,YAAY,SAAAjG,GAC3Dq/O,GACDlsO,cAAYC,KAAKpT,GAAG,GAEpB,EAAK28O,QAAQtvJ,SAAwB,IAAbrtF,EAAE6sL,QAC1BjjL,EAAQsE,UAAU2K,IAAI,cAG1BjT,KAKAvG,KAAK0J,UAAU9D,gCAAsB2E,EAAS7D,YAAUiL,cAAc,SAAAhR,GACjD,IAAbA,EAAE6sL,SAA8B,IAAd7sL,EAAE2Y,SACpB,EAAK24N,QAAQtxO,OAIzBX,KAAK0J,UAAU9D,gCAAsB2E,EAAS7D,YAAUuK,OAAO,SAAAtQ,GAC3DmT,cAAYC,KAAKpT,GAAG,GAEd,EAAK0E,SAAW,EAAKA,QAAQk7O,QAC/B,EAAKtO,QAAQtxO,OAGrBX,KAAK0J,UAAU9D,gCAAsB2E,EAAS7D,YAAUyK,UAAU,SAAAxQ,GAC9DmT,cAAYC,KAAKpT,GAAG,OAExB,CAAC+F,YAAUK,SAAUL,YAAU4K,WAAWqF,SAAQ,SAAAhC,GAC9C,EAAKjL,UAAU9D,gCAAsB2E,EAASoK,GAAO,SAAAhU,GACjDmT,cAAYC,KAAKpT,GACjB4J,EAAQsE,UAAU/J,OAAO,mBAjGzC,qBAqGI,SAAQ6P,GAA8B,IAC9B3P,EADOw7O,EAAuB,wDAElC1sO,cAAYC,KAAKY,GAAO,GACxB,IAAMi1B,EAAUmiK,IAAwB/rM,KAAKg7O,WAAqC,QAAvBh2O,EAAKhF,KAAKqF,eAA4B,IAAPL,OAAgB,EAASA,EAAGy7O,mBAAqB9rO,EAAQ,CAAE6rO,iBAAkBxgP,KAAKg7O,SAC5Kh7O,KAAKq7O,aAAarnN,IAAIh0B,KAAKs9O,QAAS1zM,KAzG5C,mBA6GI,WACQ5pC,KAAKuK,UACLvK,KAAKuK,QAAQ25F,SAAW,EACxBlkG,KAAKuK,QAAQyyB,QACbh9B,KAAKuK,QAAQsE,UAAU2K,IAAI,cAjHvC,kBAoHI,WACQxZ,KAAKuK,UACLvK,KAAKuK,QAAQ8yO,OACbr9O,KAAKuK,QAAQ25F,UAAY,EACzBlkG,KAAKuK,QAAQsE,UAAU/J,OAAO,cAxH1C,0BA2HI,SAAa81O,GACL56O,KAAKuK,UACLvK,KAAKuK,QAAQ25F,SAAW02I,EAAY,GAAK,KA7HrD,gCAgII,WACI,OAAO,IAjIf,2BAmII,cAnIJ,yBAsII,cAtIJ,2BAyII,cAzIJ,yBA4II,cA5IJ,2BA+II,cA/IJ,qBAkJI,WACQ56O,KAAKuK,UACLvK,KAAKuK,QAAQzF,SACb9E,KAAKuK,aAAUsP,GAEnB,oEAvJR,GAAwC7P,KA0J3B0yO,EAAb,kDACI,WAAY9yM,EAAS9T,GAAsB,MAAdzwB,EAAc,uDAAJ,GAAI,4BACvC,cAAMukC,EAAS9T,EAAQzwB,IAClBA,QAAUA,EACf,EAAKA,QAAQ6sB,UAAwBrY,IAAjBxU,EAAQ6sB,MAAqB7sB,EAAQ6sB,KACzD,EAAK7sB,QAAQxC,WAA0BgX,IAAlBxU,EAAQxC,OAAsBwC,EAAQxC,MAC3D,EAAKg/J,SAAW,GALuB,EAD/C,0CAQI,SAAOryJ,GACH,8DAAaA,GACTxP,KAAKuK,UACLvK,KAAK6C,MAAQwS,iBAAOrV,KAAKuK,QAASwM,YAAE,oBAEpC/W,KAAK6C,QACD7C,KAAKs9O,QAAQ/mO,KAAOi3E,IAAU01E,GAC9BljK,KAAK6C,MAAMiU,aAAa,OAAQ,gBAG5B9W,KAAKqF,QAAQk7O,OACbvgP,KAAK6C,MAAMiU,aAAa,OAAQ,YAGhC9W,KAAK6C,MAAMiU,aAAa,OAAQ,WAIxC9W,KAAKqF,QAAQxC,OAAS7C,KAAKqF,QAAQ0oM,YAAc/tM,KAAKuK,UACtD8K,iBAAOrV,KAAKuK,QAASwM,YAAE,oBAAoB01J,YAAczsK,KAAKqF,QAAQ0oM,YAE1E/tM,KAAK4/O,cACL5/O,KAAK6/O,cACL7/O,KAAK8/O,gBACL9/O,KAAK0/O,gBACL1/O,KAAK2/O,kBAjCb,mBAqCI,WACQ3/O,KAAK6C,QACL7C,KAAK6C,MAAMqhG,SAAW,EACtBlkG,KAAK6C,MAAMm6B,WAxCvB,kBA2CI,WACQh9B,KAAK6C,QACL7C,KAAK6C,MAAMqhG,UAAY,KA7CnC,0BAgDI,SAAa02I,GACL56O,KAAK6C,QACL7C,KAAK6C,MAAMqhG,SAAW02I,EAAY,GAAK,KAlDnD,yBAqDI,WACQ56O,KAAKqF,QAAQxC,OAAS7C,KAAK6C,QAC3B7C,KAAK6C,MAAM4pK,YAAczsK,KAAK0gP,YAAY79O,SAvDtD,2BA0DI,WACI,IAAIovB,EAAQ,KACRjyB,KAAK0gP,YAAY3yJ,QACjB97D,EAAQjyB,KAAK0gP,YAAY3yJ,SAEnB/tF,KAAKqF,QAAQxC,OAAS7C,KAAK0gP,YAAY79O,OAAS7C,KAAKqF,QAAQ6sB,OACnED,EAAQjyB,KAAK0gP,YAAY79O,MACrB7C,KAAKqF,QAAQ0oM,aACb97K,EAAQnP,IAAa,CAAExkB,IAAK,aAAc44B,QAAS,CAAC,eAAgB,sBAAwB,YAAajF,EAAOjyB,KAAKqF,QAAQ0oM,cAGjI97K,GAASjyB,KAAK6C,QACd7C,KAAK6C,MAAMovB,MAAQA,KAtE/B,yBAyEI,WACqC,MAA7BjyB,KAAK6hK,UAAY7hK,KAAK6C,QACtB,EAAA7C,KAAK6C,MAAMgM,WAAU/J,OAArB,oBAA+B9E,KAAK6hK,SAASvoI,MAAM,OAEvD,GAAIt5B,KAAKqF,QAAQ6sB,KAAM,CAII,MAFvB,GADAlyB,KAAK6hK,SAAW7hK,KAAK0gP,YAAL,MACZ1gP,KAAK6C,MAEL,GADA7C,KAAK6C,MAAMgM,UAAU2K,IAAI,WACrBxZ,KAAK6hK,UACL,EAAA7hK,KAAK6C,MAAMgM,WAAU2K,IAArB,oBAA4BxZ,KAAK6hK,SAASvoI,MAAM,OAGxDt5B,KAAK0/O,qBAGD1/O,KAAK6C,OACL7C,KAAK6C,MAAMgM,UAAU/J,OAAO,aAzF5C,2BA6FI,WACQ9E,KAAK0gP,YAAY1yJ,SACbhuF,KAAK6C,QACL7C,KAAK6C,MAAMsU,gBAAgB,iBAC3BnX,KAAK6C,MAAMgM,UAAU/J,OAAO,aAE5B9E,KAAKuK,SACLvK,KAAKuK,QAAQsE,UAAU/J,OAAO,cAI9B9E,KAAK6C,QACL7C,KAAK6C,MAAMiU,aAAa,gBAAiB,QACzC9W,KAAK6C,MAAMgM,UAAU2K,IAAI,aAEzBxZ,KAAKuK,SACLvK,KAAKuK,QAAQsE,UAAU2K,IAAI,eA7G3C,2BAiHI,WACQxZ,KAAK6C,QACD7C,KAAK0gP,YAAYzyJ,QACjBjuF,KAAK6C,MAAMgM,UAAU2K,IAAI,WAGzBxZ,KAAK6C,MAAMgM,UAAU/J,OAAO,gBAvH5C,GAAoCi3O,I,qGCpJzB4E,E,2HAhBP5/O,G,OAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,KAahE,SAAWw/O,GACPA,EAAc,MAAY,QAC1BA,EAAc,MAAY,QAC1BA,EAAc,KAAW,OACzBA,EAAc,KAAW,OAJ7B,CAKGA,IAAmBA,EAAiB,KACvC,IACMC,EAAwB,IAAInsO,IAE5BosO,EAAwB,IAAIpsO,IAC5BqsO,E,WACF,aAAc,oBACV9gP,KAAKkd,YAAc,IAAIhE,I,+CAE3B,WACI,OAAOlZ,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWz7J,OAAQ,cAAcgK,Q,uBAErE,WACI,OAAO3U,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWz7J,OAAQ,YAAYgK,Q,qBAEnE,WACI3U,KAAKkd,YAAY9E,c,KAGzBrX,EAAW,CACP89J,KACDiiF,EAAkBpiP,UAAW,gBAAiB,MACjDqC,EAAW,CACP89J,KACDiiF,EAAkBpiP,UAAW,cAAe,M,IACzCqiP,E,WACF,WAAY52O,GAAI,oBACZnK,KAAKmK,GAAKA,EACVnK,KAAKkd,YAAc,IAAIhE,I,+CAE3B,WACI,OAAOlZ,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKmK,GAAIzD,IAAUu0J,SAAStmJ,Q,uBAE3E,WACI,OAAO3U,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAKmK,GAAIzD,IAAUy0J,MAAMxmJ,Q,qBAExE,WACI3U,KAAKkd,YAAY9E,c,KAGzBrX,EAAW,CACP89J,KACDkiF,EAAoBriP,UAAW,gBAAiB,MACnDqC,EAAW,CACP89J,KACDkiF,EAAoBriP,UAAW,cAAe,M,IAC3CsiP,E,WACF,WAAYz/K,GAAS,oBACjBvhE,KAAKuhE,QAAUA,E,+CAEnB,WACI,OAAOvhE,KAAKuhE,QAAQ0/K,gB,uBAExB,WACI,OAAOjhP,KAAKuhE,QAAQ2/K,c,qBAExB,gB,KAIJngP,EAAW,CACP89J,KACDmiF,EAA8BtiP,UAAW,gBAAiB,MAC7DqC,EAAW,CACP89J,KACDmiF,EAA8BtiP,UAAW,cAAe,MACpD,IAAM29K,EAAb,kDACI,WAAY7sK,EAAW2xO,EAAgB97O,GAAS,2BAC5C,gBACK+7O,WAlEU,IAmEf,EAAKC,aAAe,EAAK33O,UAAU,IAAI42D,IAAQ,EAAK8gL,aACpD,EAAK1xE,OAAS,EACd,EAAK4xE,uBAAyB,EAAK53O,UAAU,IAAI+K,KACjD,EAAK8sO,sBAAwB,EAAKD,uBAAuB3sO,MACzD,EAAK6sO,YAAc,EAAK93O,UAAU,IAAI+K,KACtC,EAAK+nK,WAAa,EAAKglE,YAAY7sO,MACnC,EAAKm5B,aAAe,EAAKpkC,UAAU,IAAI+K,KACvC,EAAKs5B,YAAc,EAAKD,aAAan5B,MACrC,EAAK8sO,YAAc,EAAK/3O,UAAU,IAAI+K,KACtC,EAAKitO,WAAa,EAAKD,YAAY9sO,MACnC,EAAKgtO,UAAY,EAAKj4O,UAAU,IAAI+K,KACpC,EAAKioK,SAAW,EAAKilE,UAAUhtO,MAC/B,EAAKitO,gBAAa/nO,EAClB,EAAKgoO,+BAAiC,EAAKn4O,UAAU,IAAIwP,KACzD,EAAK4oO,qCAAuC,EAAKp4O,UAAU,IAAIwP,KAC/D,EAAK6oO,6BAA+B,EAAKr4O,UAAU,IAAIwP,KACvD,EAAK8oO,mCAAqC,EAAKt4O,UAAU,IAAIwP,KAC7D,EAAK/O,GAAKkL,iBAAO7F,EAAWuH,YAAE,iBAC1B1R,EAAQ48O,gBACR,EAAK93O,GAAG0E,UAAU2K,IAAlB,0BAAyCnU,EAAQ48O,iBAEjDx6M,KACA,EAAKt9B,GAAG0E,UAAU2K,IAAI,OAE1B,IAAMivN,EAAc,EAAK/+N,UAAU,IAAI08J,IAAW,EAAKj8J,GAAI,cAAcwK,MACzE,EAAKjL,UAAU++N,GAAY,SAAA9nO,GAAC,OAAI,EAAKuhP,eAAevhP,EAAG,IAAImgP,KAAjC,iBAC1B,IAAMqB,EAAqB,EAAKz4O,UAAU,IAAI08J,IAAW,EAAKj8J,GAAI,aAAawK,MAC/E,EAAKjL,UAAUy4O,EAAmB,EAAKC,qBAAN,iBACjC,IAAMC,EAAe,EAAK34O,UAAU,IAAI08J,IAAW,EAAKj8J,GAAI,eAAewK,MAC3E,EAAKjL,UAAU24O,GAAa,kBAAMhmE,EAAKgmE,aAAL,oBAClC,IAAMC,EAAe,EAAK54O,UAAU,IAAI08J,IAAW,EAAKj8J,GAAI,eAAewK,MAC3E,EAAKjL,UAAU44O,GAAa,kBAAMjmE,EAAKimE,aAAL,oBAClC,EAAK54O,UAAU2xJ,IAAQwtE,UAAU,EAAK1+N,KACtC,IAAMyxJ,EAAerkI,IAAMnV,IAAI,EAAK1Y,UAAU,IAAI08J,IAAW,EAAKj8J,GAAIzD,IAAUw0J,QAAQvmJ,OAAO,SAAAhU,GAAO,IAAIqE,EAAI,OAAQ5G,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIO,GAAI,CAAE/C,OAAmC,QAA1BoH,EAAKrE,EAAEw7J,qBAAkC,IAAPn3J,EAAgBA,EAAK,UAC5N,EAAK0E,UAAUkyJ,GAAa,SAAAj7J,GAAC,OAAI,EAAKuhP,eAAevhP,EAAG,IAAIogP,EAAoB,EAAK52O,OAA1D,iBAC3B,IAAM8+N,EAAQ,EAAKv/N,UAAU,IAAI08J,IAAW,EAAKj8J,GAAIzD,IAAUs0J,MAAMrmJ,MAC/D4tO,EAAchrN,IAAMnV,IAAImV,IAAMvI,OAAOuI,IAAMa,SAAS6wM,GAAO,SAACz5L,EAAK76B,GAAY,IAAI3P,EAAI,MAAQ,CAAE2P,QAAOgrG,OAAuE,QAA9D36G,EAAa,OAARwqC,QAAwB,IAARA,OAAiB,EAASA,EAAImwE,aAA0B,IAAP36G,EAAgBA,EAAK,GAAK,KAAS,MAAM,mBAAyB,IAAzB,EAAG26G,UAA0B,YAAe,IAAM36G,EAAlB2P,EAAY,EAAZA,MAAsB,OAAQvW,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIuU,GAAQ,CAAE/W,OAAuC,QAA9BoH,EAAK2P,EAAMwnJ,qBAAkC,IAAPn3J,EAAgBA,EAAK,UAvCpW,OAwC5C,EAAK0E,UAAU64O,EAAY,EAAKH,qBAAN,iBACE,kBAAjB/8O,EAAQoH,MACf,EAAKA,KAAOpH,EAAQoH,KACQ,IAAxBpH,EAAQi3K,YACR,EAAKnyK,GAAGuC,MAAM7B,MAAd,UAAyB,EAAK4B,KAA9B,MAGA,EAAKtC,GAAGuC,MAAM5B,OAAd,UAA0B,EAAK2B,KAA/B,QAIJ,EAAKA,KArHA,EAsHL,EAAK/C,UAAUk3O,EAAsBjsO,OAAM,SAAAlI,GACvC,EAAKA,KAAOA,EACZ,EAAKouK,cAGb,EAAKnxK,UAAUm3O,EAAsBlsO,OAAM,SAAA2jB,GAAK,OAAI,EAAK8oN,WAAa9oN,MACtE,EAAKkqN,QAAS,EACd,EAAKrB,eAAiBA,EACtB,EAAKsB,oBAAsBp9O,EAAQo9O,oBACnC,EAAKC,kBAAoBr9O,EAAQq9O,kBACjC,EAAKpmE,YAAcj3K,EAAQi3K,aAAe,EACjB,IAArB,EAAKA,aACL,EAAKnyK,GAAG0E,UAAU2K,IAAI,cACtB,EAAKrP,GAAG0E,UAAU/J,OAAO,cAGzB,EAAKqF,GAAG0E,UAAU/J,OAAO,cACzB,EAAKqF,GAAG0E,UAAU2K,IAAI,aAE1B,EAAKrP,GAAG0E,UAAU8vI,OAAO,QAjJrB,OAkJJ,EAAKk8B,SAxEuC,EADpD,uCA2EI,WAAc,OAAO76K,KAAK0vK,QA3E9B,IA4EI,SAAUp7J,GACFtU,KAAK0vK,SAAWp7J,IAGpBtU,KAAKmK,GAAG0E,UAAU8vI,OAAO,WAAsB,IAAVrqI,GACrCtU,KAAKmK,GAAG0E,UAAU8vI,OAAO,UAAqB,IAAVrqI,GACpCtU,KAAKmK,GAAG0E,UAAU8vI,OAAO,UAAqB,IAAVrqI,GACpCtU,KAAK0vK,OAASp7J,EACdtU,KAAKshP,uBAAuBrsO,KAAKX,MApFzC,+BAsFI,WAA4B,OAAOtU,KAAK2iP,sBAtF5C,IAuFI,SAAwBC,GAAM,WAG1B,GAFA5iP,KAAK8hP,qCAAqCvkO,QAC1Cvd,KAAK6hP,+BAA+BtkO,QAChCqlO,EAAM,CACN,IAAM/9L,EAAW,SAACvwC,GACd,EAAKwtO,qCAAqCvkO,QAC5B,IAAVjJ,IACA,EAAKuuO,2BAA6BxtO,iBAAO,EAAKlL,GAAI4M,YAAE,kCACpD,EAAK+qO,qCAAqCtoO,IAAIrB,aAAa,kBAAM,EAAK0qO,2BAA2B/9O,aACjG,EAAKg9O,qCAAqCtoO,IAAI,IAAI4sJ,IAAW,EAAKy8E,2BAA4B,eAAeluO,OAAM,kBAAM0nK,EAAKgmE,aAAaO,UAAO/oO,EAAW,EAAKioO,sCAClK,EAAKA,qCAAqCtoO,IAAI,IAAI4sJ,IAAW,EAAKy8E,2BAA4B,eAAeluO,OAAM,kBAAM0nK,EAAKimE,aAAaM,UAAO/oO,EAAW,EAAKioO,wCAG1K9hP,KAAK6hP,+BAA+BroO,IAAIopO,EAAKrB,sBAAsB18L,EAAU7kD,OAC7E6kD,EAAS+9L,EAAKtuO,OAElBtU,KAAK2iP,qBAAuBC,IAvGpC,6BAyGI,WAA0B,OAAO5iP,KAAK8iP,oBAzG1C,IA0GI,SAAsBF,GAAM,WAGxB,GAFA5iP,KAAKgiP,mCAAmCzkO,QACxCvd,KAAK+hP,6BAA6BxkO,QAC9BqlO,EAAM,CACN,IAAM/9L,EAAW,SAACvwC,GACd,EAAK0tO,mCAAmCzkO,QAC1B,IAAVjJ,IACA,EAAKyuO,yBAA2B1tO,iBAAO,EAAKlL,GAAI4M,YAAE,gCAClD,EAAKirO,mCAAmCxoO,IAAIrB,aAAa,kBAAM,EAAK4qO,yBAAyBj+O,aAC7F,EAAKk9O,mCAAmCxoO,IAAI,IAAI4sJ,IAAW,EAAK28E,yBAA0B,eAAepuO,OAAM,kBAAM0nK,EAAKgmE,aAAaO,UAAO/oO,EAAW,EAAKmoO,oCAC9J,EAAKA,mCAAmCxoO,IAAI,IAAI4sJ,IAAW,EAAK28E,yBAA0B,eAAepuO,OAAM,kBAAM0nK,EAAKimE,aAAaM,UAAO/oO,EAAW,EAAKmoO,sCAGtKhiP,KAAK+hP,6BAA6BvoO,IAAIopO,EAAKrB,sBAAsB18L,EAAU7kD,OAC3E6kD,EAAS+9L,EAAKtuO,OAElBtU,KAAK8iP,mBAAqBF,IA1HlC,4BA4HI,SAAejuO,EAAOquO,GAAqB,WACvClvO,cAAYC,KAAKY,GACjB,IAAIsuO,GAAoB,EACxB,IAAKtuO,EAAMuuO,sBAAuB,CAC9B,IAAMC,EAAiBnjP,KAAKojP,kBAAkBzuO,GAC1CwuO,IACAF,GAAoB,EACpBtuO,EAAMuuO,uBAAwB,EAC9BC,EAAejB,eAAevtO,EAAO,IAAIqsO,EAA8BgC,KAO/E,GAJIhjP,KAAK4hP,aAAejtO,EAAM0uO,oBAC1B1uO,EAAM0uO,mBAAoB,EAC1BrjP,KAAK4hP,WAAWM,eAAevtO,EAAO,IAAIqsO,EAA8BgC,KAEvEhjP,KAAKsU,MAAV,CAGA,IAlBuC,EAkBjCgvO,EAAU7zO,+BAAqB,UAlBE,cAmBlB6zO,GAnBkB,IAmBvC,2BAA8B,SACnB52O,MAAMjG,cAAgB,QApBM,8BAsBvC,IAAM88O,EAAS5uO,EAAM2nJ,MACfmgB,EAAS9nK,EAAM6nJ,MACfpjJ,EAASzE,EAAMyE,OACfoqO,EAAa,CAAED,SAAQE,SAAUF,EAAQ9mE,SAAQE,SAAUF,EAAQrjK,UACzEpZ,KAAKmK,GAAG0E,UAAU2K,IAAI,UACtBxZ,KAAKwhP,YAAYvsO,KAAKuuO,GAEtB,IAAM92O,EAAQ6C,2BAAiBvP,KAAKmK,IAC9Bu5O,EAAc,WAChB,IAAIlpI,EAAS,GAETA,EADAyoI,EACS,aAEiB,IAArB,EAAK3mE,YACS,IAAf,EAAKhoK,MACI,WAEW,IAAf,EAAKA,MACD,WAGAmzB,IAAc,aAAe,YAIvB,IAAf,EAAKnzB,MACI,WAEW,IAAf,EAAKA,MACD,WAGAmzB,IAAc,aAAe,YAG9C/6B,EAAM+/J,YAAN,sBAAmCjyD,EAAnC,mBAEEt9F,EAAc,IAAIhE,IACxBwqO,IACKT,GACDjjP,KAAKuhP,sBAAsBmC,EAAa,KAAMxmO,GAiBlD8lO,EAAoB/B,eAfE,SAACtgP,GACnBmT,cAAYC,KAAKpT,GAAG,GACpB,IAAMgU,EAAQ,CAAE4uO,SAAQE,SAAU9iP,EAAE27J,MAAOmgB,SAAQE,SAAUh8K,EAAE67J,MAAOpjJ,UACtE,EAAK00B,aAAa74B,KAAKN,KAYsB,KAAMuI,GACvD8lO,EAAoB9B,aAXA,SAACvgP,GACjBmT,cAAYC,KAAKpT,GAAG,GACpB,EAAKwJ,GAAG20I,YAAYpyI,GACpB,EAAKvC,GAAG0E,UAAU/J,OAAO,UACzB,EAAK68O,UAAU1sO,OACfiI,EAAY9E,UALW,oBAMFkrO,GANE,IAMvB,2BAA8B,SACnB52O,MAAMjG,cAAgB,QAPV,iCAWkB,KAAMyW,GACnDA,EAAY1D,IAAIwpO,MA7MxB,kCA+MI,SAAqBriP,GACjB,IAAMwiP,EAAiBnjP,KAAKojP,kBAAkBziP,GAC1CwiP,GACAA,EAAe1B,YAAYxsO,OAE3BjV,KAAK4hP,YACL5hP,KAAK4hP,WAAWH,YAAYxsO,OAEhCjV,KAAKyhP,YAAYxsO,SAvNzB,iCA4OI,WACIonK,EAAKimE,aAAatiP,QA7O1B,oBA+OI,WACI,GAAyB,IAArBA,KAAKs8K,YAAkC,CACvC,IAAMqnE,EAAmB3jP,KAAKmhP,eAC9BnhP,KAAKmK,GAAGuC,MAAMT,KAAO03O,EAAiBC,oBAAoB5jP,MAASA,KAAKyM,KAAO,EAAK,KAChFk3O,EAAiBE,qBACjB7jP,KAAKmK,GAAGuC,MAAMX,IAAM43O,EAAiBE,mBAAmB7jP,MAAQ,MAEhE2jP,EAAiBG,wBACjB9jP,KAAKmK,GAAGuC,MAAM5B,OAAS64O,EAAiBG,sBAAsB9jP,MAAQ,UAGzE,CACD,IAAM+jP,EAAqB/jP,KAAKmhP,eAChCnhP,KAAKmK,GAAGuC,MAAMX,IAAMg4O,EAAmBC,qBAAqBhkP,MAASA,KAAKyM,KAAO,EAAK,KAClFs3O,EAAmBE,wBACnBjkP,KAAKmK,GAAGuC,MAAMT,KAAO83O,EAAmBE,sBAAsBjkP,MAAQ,MAEtE+jP,EAAmBG,yBACnBlkP,KAAKmK,GAAGuC,MAAM7B,MAAQk5O,EAAmBG,uBAAuBlkP,MAAQ,SAjQxF,kBAqQI,WACIA,KAAKwiP,QAAS,EACdxiP,KAAKmK,GAAGuC,MAAMwK,QAAU,OACxBlX,KAAKmK,GAAG2M,aAAa,cAAe,UAxQ5C,+BA0QI,SAAkBnW,GACd,GAAKA,EAAE/C,QAAY+C,EAAE/C,kBAAkBmT,YAGvC,OAAIpQ,EAAE/C,OAAOiR,UAAUC,SAAS,0BACrBnO,EAAE/C,OAAOiR,UAAUC,SAAS,SAAW9O,KAAKyiP,oBAAsBziP,KAAK0iP,uBADlF,IA9QR,qBAmRI,WACI,gEACA1iP,KAAKmK,GAAGrF,YArRhB,2BAyNI,SAAoB89O,GAA8B,IAAxBuB,EAAwB,wDAC1CvB,EAAKz4O,GAAG0E,UAAUC,SAAS,WAC3B8zO,EAAKvB,aAAav3O,SAClB84O,EAAKz4O,GAAG0E,UAAU2K,IAAI,UAGtBopO,EAAKvB,aAAatgL,SAAQ,kBAAM6hL,EAAKz4O,GAAG0E,UAAU2K,IAAI,WAAUopO,EAAKxB,YAAY9+O,UAAKuX,GAAW,gBAEhGsqO,GAAkBvB,EAAKhB,YACxBvlE,EAAKgmE,aAAaO,EAAKhB,YAAY,KAlO/C,0BAqOI,SAAoBgB,GAA8B,IAAxBuB,EAAwB,wDAC9CvB,EAAKvB,aAAav3O,SAClB84O,EAAKz4O,GAAG0E,UAAU/J,OAAO,UACpBq/O,GAAkBvB,EAAKhB,YACxBvlE,EAAKimE,aAAaM,EAAKhB,YAAY,OAzO/C,GAA0B53O,M,8OCxFbo6O,EAAb,WACI,aAAc,oBACVpkP,KAAKgC,MAAQ,GACbhC,KAAK2yC,IAAM,EAHnB,wCAaI,SAAK3wC,GACDhC,KAAKgC,MAAQA,EACbhC,KAAK2yC,IAAM,IAfnB,uBAiBI,SAAU+sB,GACN,OAAO1/D,KAAKgC,MAAMmnC,OAAOu2B,EAAM/sB,IAAK+sB,EAAM79B,OAlBlD,kBAoBI,WACI,GAAI7hC,KAAK2yC,KAAO3yC,KAAKgC,MAAMjE,OACvB,MAAO,CAAEoH,KAAM,GAAcwtC,IAAK3yC,KAAK2yC,IAAK9Q,IAAK,GAErD,IAGI18B,EAHAwtC,EAAM3yC,KAAK2yC,IACX9Q,EAAM,EACNgpD,EAAK7qF,KAAKgC,MAAM+/B,WAAW4Q,GAI/B,GAAoB,kBADpBxtC,EAAOi/O,EAAQ39D,OAAO57F,IAGlB,OADA7qF,KAAK2yC,KAAO,EACL,CAAExtC,OAAMwtC,MAAK9Q,IAAK,GAG7B,GAAIuiN,EAAQC,iBAAiBx5J,GAAK,CAC9B1lF,EAAO,EACP,GACI08B,GAAO,EACPgpD,EAAK7qF,KAAKgC,MAAM+/B,WAAW4Q,EAAM9Q,SAC5BuiN,EAAQC,iBAAiBx5J,IAElC,OADA7qF,KAAK2yC,KAAO9Q,EACL,CAAE18B,OAAMwtC,MAAK9Q,OAGxB,GAAIuiN,EAAQE,oBAAoBz5J,GAAK,CACjC1lF,EAAO,EACP,GACI0lF,EAAK7qF,KAAKgC,MAAM+/B,WAAW4Q,KAAS9Q,SAC/BuiN,EAAQE,oBAAoBz5J,IAAOu5J,EAAQC,iBAAiBx5J,IAErE,OADA7qF,KAAK2yC,KAAO9Q,EACL,CAAE18B,OAAMwtC,MAAK9Q,OAGxB18B,EAAO,GACP,GACI08B,GAAO,EACPgpD,EAAK7qF,KAAKgC,MAAM+/B,WAAW4Q,EAAM9Q,UAC3BnC,MAAMmrD,IACqB,qBAAvBu5J,EAAQ39D,OAAO57F,KACrBu5J,EAAQC,iBAAiBx5J,KACzBu5J,EAAQE,oBAAoBz5J,IAGpC,OADA7qF,KAAK2yC,KAAO9Q,EACL,CAAE18B,OAAMwtC,MAAK9Q,UAhE5B,+BAKI,SAAwBgpD,GACpB,OAAOA,GAAM,IAAmBA,GAAM,KAN9C,iCAQI,SAA2BA,GACvB,OAAc,KAAPA,GACCA,GAAM,IAAcA,GAAM,KAC1BA,GAAM,IAAcA,GAAM,OAX1C,KAmEAu5J,EAAQ39D,QAAR,mBACK,GAAsB,GAD3B,cAEK,GAAiB,GAFtB,cAGK,GAAiB,GAHtB,cAIK,IAA2B,GAJhC,cAKK,IAA4B,GALjC,cAMK,GAAqB,GAN1B,cAOK,GAAiB,GAPtB,cAQK,IAAiB,GARtB,cASK,GAAgB,IATrB,cAUK,GAAgB,IAVrB,cAWK,GAAwB,IAX7B,GAaO,IAAM89D,EAAb,WACI,aAAc,oBACVvkP,KAAK8uH,UAAY,GAFzB,+CAII,SAAYr5G,GAUR,OATIA,aAAiB+uO,GAAQxkP,KAAK8uH,UAAU9uH,KAAK8uH,UAAU/wH,OAAS,aAAcymP,EAE9ExkP,KAAK8uH,UAAU9uH,KAAK8uH,UAAU/wH,OAAS,GAAGiE,OAASyT,EAAMzT,OAIzDyT,EAAMH,OAAStV,KACfA,KAAK8uH,UAAUvrH,KAAKkS,IAEjBzV,OAdf,qBAgBI,SAAQyV,EAAOgvO,GACX,IAAQnvO,EAAWG,EAAXH,OACFkqB,EAAMlqB,EAAOC,SAAS3U,QAAQ6U,GAC9BivO,EAAcpvO,EAAOC,SAAS7Q,MAAM,GAC1CggP,EAAYnyN,OAAZ,MAAAmyN,EAAW,CAAQllN,EAAK,GAAb,mBAAmBilN,KAC9BnvO,EAAOw5G,UAAY41H,EACnB,SAAUC,EAAWpvO,EAAUD,GAAQ,oBACfC,GADe,IACnC,2BAA8B,KAAnBE,EAAmB,QAC1BA,EAAMH,OAASA,EACfqvO,EAAWlvO,EAAMF,SAAUE,IAHI,+BAAvC,CAKGgvO,EAAQnvO,KA3BnB,oBA6BI,WACI,OAAOtV,KAAK8uH,YA9BpB,mBAgCI,WAEI,IADA,IAAIxrF,EAAYtjC,OACH,CACT,IAAKsjC,EACD,OAEJ,GAAIA,aAAqBshN,EACrB,OAAOthN,EAEXA,EAAYA,EAAUhuB,UAzClC,sBA4CI,WACI,OAAOtV,KAAKuV,SAASsiB,QAAO,SAACoiF,EAAMthF,GAAP,OAAeshF,EAAOthF,EAAIlgB,aAAY,MA7C1E,iBA+CI,WACI,OAAO,MAhDf,KAmDa+rO,EAAb,kDACI,WAAYxiP,GAAO,kCACf,gBACKA,MAAQA,EAFE,EADvB,4CAKI,WACI,OAAOhC,KAAKgC,QANpB,iBAQI,WACI,OAAOhC,KAAKgC,MAAMjE,SAT1B,mBAWI,WACI,OAAO,IAAIymP,EAAKxkP,KAAKgC,WAZ7B,GAA0BuiP,GAebM,EAAb,4HAAyCN,GAE5BO,EAAb,kDACI,WAAY7lP,GAAO,kCACf,gBACKA,MAAQA,EAFE,EADvB,gDAyBI,WACI,OAAsB,IAAfe,KAAKf,QA1BpB,kBA4BI,WACI,OAAiC,IAA1Be,KAAK8uH,UAAU/wH,QAAgBiC,KAAK8uH,UAAU,aAAci2H,EAC7D/kP,KAAK8uH,UAAU,QACfj1G,IA/Bd,mBAiCI,WACI,IAAIsrF,EAAM,IAAI2/I,EAAY9kP,KAAKf,OAK/B,OAJIe,KAAKutB,YACL43E,EAAI53E,UAAYvtB,KAAKutB,UAAU8/C,SAEnC83B,EAAI2pB,UAAY9uH,KAAKuV,SAAS6M,KAAI,SAAA3M,GAAK,OAAIA,EAAM43D,WAC1C83B,KAvCf,6BAKI,SAAsBjhG,EAAG5E,GACrB,OAAI4E,EAAEjF,QAAUK,EAAEL,MACP,EAEFiF,EAAE8gP,eACA,EAEF1lP,EAAE0lP,gBAGF9gP,EAAEjF,MAAQK,EAAEL,OAFT,EAKHiF,EAAEjF,MAAQK,EAAEL,MACV,EAGA,MAtBnB,GAAiC4lP,GA0CpBE,EAAb,kDACI,aAAc,kCACV,eAASvkP,YACJ6E,QAAU,GAFL,EADlB,+CAKI,SAAY4/O,GAKR,OAJIA,aAAkBT,IAClBS,EAAO3vO,OAAStV,KAChBA,KAAKqF,QAAQ9B,KAAK0hP,IAEfjlP,OAVf,sBAYI,WACI,OAAOA,KAAKqF,QAAQ,GAAGrD,QAb/B,iBAeI,WACI,OAAOhC,KAAKqF,QAAQ,GAAGw8B,QAhB/B,mBAkBI,WACI,IAAIsjE,EAAM,IAAI4/I,EAEd,OADA/kP,KAAKqF,QAAQsR,QAAQwuF,EAAIv1F,YAAau1F,GAC/BA,MArBf,GAA4Bo/I,GAwBfW,EAAb,kDACI,aAAc,kCACV,eAAS1kP,YACJ+gC,OAAS,IAAIF,OAAO,IAFf,EADlB,2CAKI,SAAQr/B,GACJ,IAAMs4O,EAAQt6O,KACVmlP,GAAW,EACXhgJ,EAAMnjG,EAAMlD,QAAQkB,KAAKuhC,QAAQ,WAEjC,OADA4jN,GAAW,EACJ7K,EAAM8K,SAAS3lP,MAAMf,UAAUgG,MAAM9E,KAAKY,UAAW,GAAI,OAOpE,OAHK2kP,GAAYnlP,KAAK8uH,UAAUm6B,MAAK,SAAAxzI,GAAK,OAAIA,aAAiB4vO,GAAgBn6J,QAAQz1E,EAAM6vO,gBACzFngJ,EAAMnlG,KAAKolP,SAAS,KAEjBjgJ,IAjBf,sBAmBI,SAAS9X,GACL,IADa,EACT8X,EAAM,GADG,cAEQnlG,KAAK8uH,WAFb,IAEb,2BAAqC,KAA1Bm2H,EAA0B,QACjC,GAAIA,aAAkBI,EAAc,CAChC,IAAIrjP,EAAQqrF,EAAO43J,EAAOhmP,QAAU,GAEpCkmG,GADAnjG,EAAQijP,EAAOpjP,QAAQG,QAIvBmjG,GAAO8/I,EAAOxsO,YATT,8BAYb,OAAO0sF,IA/Bf,sBAiCI,WACI,MAAO,KAlCf,mBAoCI,WACI,IAAIA,EAAM,IAAI+/I,EAGd,OAFA//I,EAAI5jE,OAAS,IAAIF,OAAOrhC,KAAKuhC,OAAOpS,QAAcnvB,KAAKuhC,OAAOG,WAAa,IAAM,KAAO1hC,KAAKuhC,OAAON,OAAS,IAAM,KACnHkkE,EAAI2pB,UAAY9uH,KAAKuV,SAAS6M,KAAI,SAAA3M,GAAK,OAAIA,EAAM43D,WAC1C83B,MAxCf,GAA+Bo/I,GA2ClBc,EAAb,kDACI,WAAYpmP,EAAOsmP,EAAeC,EAASF,GAAW,kCAClD,gBACKrmP,MAAQA,EACb,EAAKsmP,cAAgBA,EACrB,EAAKC,QAAUA,EACf,EAAKF,UAAYA,EALiC,EAD1D,2CAQI,SAAQtjP,GACJ,MAA2B,WAAvBhC,KAAKulP,cACGvjP,EAAaA,EAAMyjP,oBAAX,GAEY,aAAvBzlP,KAAKulP,cACFvjP,EAAaA,EAAM0jP,oBAAX,GAEY,eAAvB1lP,KAAKulP,cACFvjP,EAAcA,EAAM,GAAGyjP,oBAAsBzjP,EAAMmnC,OAAO,GAAlD,GAEY,eAAvBnpC,KAAKulP,cACFvjP,EAAahC,KAAK2lP,cAAc3jP,GAAxB,GAEY,cAAvBhC,KAAKulP,cACFvjP,EAAahC,KAAK4lP,aAAa5jP,GAAvB,GAEXkpF,QAAQlpF,IAAkC,kBAAjBhC,KAAKwlP,QAC5BxlP,KAAKwlP,QAENt6J,QAAQlpF,IAAoC,kBAAnBhC,KAAKslP,UAI7BtjP,GAAS,GAHThC,KAAKslP,YA5BxB,2BAkCI,SAActjP,GACV,IAAMjD,EAAQiD,EAAMjD,MAAM,eAC1B,OAAKA,EAGEA,EAAMqjB,KAAI,SAAAmsH,GACb,OAAOA,EAAKxtG,OAAO,GAAGg0B,cAChBw5E,EAAKplG,OAAO,GAAGpG,iBAEpBpmB,KAAK,IANC3a,IArCnB,0BA6CI,SAAaA,GACT,IAAMjD,EAAQiD,EAAMjD,MAAM,eAC1B,OAAKA,EAGEA,EAAMqjB,KAAI,SAACmsH,EAAMtvI,GACpB,OAAc,IAAVA,EACOsvI,EAAKxrG,cAGLwrG,EAAKxtG,OAAO,GAAGg0B,cAChBw5E,EAAKplG,OAAO,GAAGpG,iBAGxBpmB,KAAK,IAXC3a,IAhDnB,mBA6DI,WAEI,OADU,IAAIqjP,EAAarlP,KAAKf,MAAOe,KAAKulP,cAAevlP,KAAKwlP,QAASxlP,KAAKslP,eA9DtF,GAAkCf,GAkErBsB,EAAb,kDACI,WAAYjvO,GAAM,kCACd,gBACKA,KAAOA,EAFE,EADtB,2CAKI,SAAQkvO,GACJ,IAAI9jP,EAAQ8jP,EAASjkP,QAAQ7B,MAI7B,OAHIA,KAAKutB,YACLvrB,EAAQhC,KAAKutB,UAAU1rB,QAAQG,GAAS,UAE9B6X,IAAV7X,IACAhC,KAAK8uH,UAAY,CAAC,IAAI01H,EAAKxiP,KACpB,KAZnB,mBAgBI,WACI,IAAMmjG,EAAM,IAAI0gJ,EAAS7lP,KAAK4W,MAK9B,OAJI5W,KAAKutB,YACL43E,EAAI53E,UAAYvtB,KAAKutB,UAAU8/C,SAEnC83B,EAAI2pB,UAAY9uH,KAAKuV,SAAS6M,KAAI,SAAA3M,GAAK,OAAIA,EAAM43D,WAC1C83B,MAtBf,GAA8B0/I,GAyB9B,SAASkB,EAAKd,EAAQe,GAElB,IADA,IAAMpoO,EAAQ,YAAIqnO,GACXrnO,EAAM7f,OAAS,GAAG,CACrB,IAAMknP,EAASrnO,EAAM7U,QAErB,IADgBi9O,EAAQf,GAEpB,MAEJrnO,EAAMouB,QAAN,MAAApuB,EAAK,YAAYqnO,EAAO1vO,YAGzB,IAAMqvO,EAAb,mKACI,WACI,IAAK5kP,KAAKimP,cAAe,CAErB,IACI/tF,EADArsH,EAAM,GAEV7rC,KAAK+lP,MAAK,SAAUziN,GAKhB,OAJIA,aAAqBwhN,IACrBj5M,EAAItoC,KAAK+/B,GACT40H,GAAQA,GAAQA,EAAKj5J,MAAQqkC,EAAUrkC,MAAQqkC,EAAY40H,IAExD,KAEXl4J,KAAKimP,cAAgB,CAAEp6M,MAAKqsH,QAEhC,OAAOl4J,KAAKimP,gBAfpB,wBAiBI,WAEI,OADgBjmP,KAAKkmP,gBAAbr6M,MAlBhB,oBAqBI,SAAOo5M,GACH,IAAItyM,EAAM,EACNwzM,GAAQ,EASZ,OARAnmP,KAAK+lP,MAAK,SAAAziN,GACN,OAAIA,IAAc2hN,GACdkB,GAAQ,GACD,IAEXxzM,GAAOrP,EAAUzB,OACV,MAENskN,EAGExzM,GAFK,IAjCpB,qBAqCI,SAAQsyM,GACJ,IAAI9/I,EAAM,EAKV,OAJA4gJ,EAAK,CAACd,IAAS,SAAAA,GAEX,OADA9/I,GAAO8/I,EAAOpjN,OACP,KAEJsjE,IA3Cf,mCA6CI,SAAsBihJ,GAGlB,IAFA,IAAIjhJ,EAAM,GACJ7vF,EAAW8wO,EAAX9wO,OACCA,GACCA,aAAkBwvO,GAClB3/I,EAAI5hG,KAAK+R,GAEbA,EAASA,EAAOA,OAEpB,OAAO6vF,IAtDf,8BAwDI,SAAiB2gJ,GAAU,WASvB,OARA9lP,KAAK+lP,MAAK,SAAAziN,GAMN,OALIA,aAAqBuiN,GACjBviN,EAAUzhC,QAAQikP,KAClB,EAAKG,mBAAgBpsO,IAGtB,KAEJ7Z,OAjEf,yBAmEI,SAAYyV,GAER,OADAzV,KAAKimP,mBAAgBpsO,EACrB,mEAAyBpE,KArEjC,qBAuEI,SAAQA,EAAOgvO,GAEX,OADAzkP,KAAKimP,mBAAgBpsO,EACrB,+DAAqBpE,EAAOgvO,KAzEpC,mBA2EI,WACI,IAAIt/I,EAAM,IAAIy/I,EAEd,OADA5kP,KAAK8uH,UAAY9uH,KAAKuV,SAAS6M,KAAI,SAAA3M,GAAK,OAAIA,EAAM43D,WAC3C83B,IA9Ef,kBAgFI,SAAK6gJ,GACDD,EAAK/lP,KAAKuV,SAAUywO,OAjF5B,GAAqCzB,GAoFxBriG,EAAb,WACI,aAAc,oBACVliJ,KAAKqmP,SAAW,IAAIjC,EACpBpkP,KAAKyhE,OAAS,CAAEt8D,KAAM,GAAcwtC,IAAK,EAAG9Q,IAAK,GAHzD,yCAWI,SAAM7/B,EAAOskP,EAAoBC,GAC7BvmP,KAAKqmP,SAASl9K,KAAKnnE,GACnBhC,KAAKyhE,OAASzhE,KAAKqmP,SAASnkP,OAE5B,IADA,IAAMskP,EAAU,IAAI5B,EACb5kP,KAAKymP,OAAOD,KAKnB,IAAME,EAA2B,IAAIn/M,IAC/Bo/M,EAAyB,GAC3BC,EAAmB,EACvBJ,EAAQT,MAAK,SAAAd,GAaT,OAZIA,aAAkBH,IAClB8B,GAAoB,EAChB3B,EAAOD,eACP0B,EAAyBl/M,IAAI,OAAG3tB,IAE1B6sO,EAAyBpkM,IAAI2iM,EAAOhmP,QAAUgmP,EAAO1vO,SAASxX,OAAS,EAC7E2oP,EAAyBl/M,IAAIy9M,EAAOhmP,MAAOgmP,EAAO1vO,UAGlDoxO,EAAuBpjP,KAAK0hP,KAG7B,KAEX,cAA0B0B,EAA1B,eAAkD,CAA7C,IAAMP,EAAW,KACZS,EAAgBH,EAAyBj0N,IAAI2zN,EAAYnnP,OAC/D,GAAI4nP,EAAe,CACf,IAAMx5K,EAAQ,IAAIy3K,EAAYsB,EAAYnnP,OAC1CouE,EAAM9/C,UAAY64N,EAAY74N,UAFf,oBAGKs5N,GAHL,IAGf,2BAAmC,KAAxBpxO,EAAwB,QAC/B43D,EAAMz9D,YAAY6F,EAAM43D,UAJb,8BAMfm5K,EAAQ1nP,QAAQsnP,EAAa,CAAC/4K,KAWtC,OARKk5K,IACDA,EAAsBK,EAAmB,GAAKN,IAE7CI,EAAyBpkM,IAAI,IAAMikM,GAGpCC,EAAQ52O,YAAY,IAAIk1O,EAAY,IAEjC0B,IAzDf,qBA2DI,SAAQrhP,EAAMnD,GACV,QAAa6X,IAAT1U,GAAsBnF,KAAKyhE,OAAOt8D,OAASA,EAAM,CACjD,IAAIggG,GAAOnjG,GAAehC,KAAKqmP,SAASS,UAAU9mP,KAAKyhE,QAEvD,OADAzhE,KAAKyhE,OAASzhE,KAAKqmP,SAASnkP,OACrBijG,EAEX,OAAO,IAjEf,qBAmEI,SAAQzlC,GAGJ,OAFA1/D,KAAKqmP,SAAS1zM,IAAM+sB,EAAM/sB,IAAM+sB,EAAM79B,IACtC7hC,KAAKyhE,OAAS/B,GACP,IAtEf,oBAwEI,SAAOv6D,GAEH,IADA,IAAMib,EAAQpgB,KAAKyhE,OACZzhE,KAAKyhE,OAAOt8D,OAASA,GAAM,CAC9B,GAAyB,KAArBnF,KAAKyhE,OAAOt8D,KACZ,OAAO,EAEN,GAAyB,IAArBnF,KAAKyhE,OAAOt8D,KAA4B,CAC7C,IAAMkyH,EAAYr3H,KAAKqmP,SAASnkP,OAChC,GAAuB,IAAnBm1H,EAAUlyH,MACY,IAAnBkyH,EAAUlyH,MACS,IAAnBkyH,EAAUlyH,KACb,OAAO,EAGfnF,KAAKyhE,OAASzhE,KAAKqmP,SAASnkP,OAEhC,IAAMF,EAAQhC,KAAKqmP,SAASrkP,MAAMq+B,UAAUjgB,EAAMuyB,IAAK3yC,KAAKyhE,OAAO9uB,KAAK7zC,QAAQ,eAAgB,MAEhG,OADAkB,KAAKyhE,OAASzhE,KAAKqmP,SAASnkP,OACrBF,IA1Ff,oBA4FI,SAAOijP,GACH,OAAOjlP,KAAK+mP,cAAc9B,IACnBjlP,KAAKgnP,4BAA4B/B,IACjCjlP,KAAKinP,yBAAyBhC,IAC9BjlP,KAAKknP,sBAAsBjC,IAC3BjlP,KAAKmnP,eAAelC,KAjGnC,2BAoGI,SAAcA,GACV,IAAIjjP,EACJ,SAAIA,EAAQhC,KAAKonP,QAAQ,GAAmB,MAExCplP,EAAQhC,KAAKonP,QAAQ,GAAgB,IAC9BpnP,KAAKonP,QAAQ,GAAoB,IACjCpnP,KAAKonP,QAAQ,GAAmB,IAChCplP,EACPijP,EAAOr1O,YAAY,IAAI40O,EAAKxiP,KACrB,KA7GnB,yCAkHI,SAA4BsT,GACxB,IAAItT,EACE09D,EAAQ1/D,KAAKyhE,OAGnB,OAFczhE,KAAKonP,QAAQ,KACnBplP,EAAQhC,KAAKonP,QAAQ,GAAsB,IAASpnP,KAAKonP,QAAQ,GAAa,KAItF9xO,EAAO1F,YAAY,QAAQiH,KAAK7U,GAC1B,IAAI8iP,EAAY/3H,OAAO/qH,IACvB,IAAI6jP,EAAS7jP,KACZ,GALIhC,KAAKqnP,QAAQ3nL,KAxHhC,sCAgII,SAAyBpqD,GACrB,IAAIrW,EACEygE,EAAQ1/D,KAAKyhE,OAInB,KAHczhE,KAAKonP,QAAQ,IACpBpnP,KAAKonP,QAAQ,KACZnoP,EAAQe,KAAKonP,QAAQ,GAAa,KAEtC,OAAOpnP,KAAKqnP,QAAQ3nL,GAExB,IAAM0mL,EAAc,IAAItB,EAAY/3H,OAAO9tH,IAC3C,GAAIe,KAAKonP,QAAQ,GAEb,OAAa,CAET,GAAIpnP,KAAKonP,QAAQ,GAEb,OADA9xO,EAAO1F,YAAYw2O,IACZ,EAEX,IAAIpmP,KAAKymP,OAAOL,GAMhB,OAFA9wO,EAAO1F,YAAY,IAAI40O,EAAK,KAAOvlP,EAAQ,MAC3CmnP,EAAY7wO,SAASoB,QAAQrB,EAAO1F,YAAa0F,IAC1C,MAGV,MAAI8wO,EAAYnnP,MAAQ,GAAKe,KAAKonP,QAAQ,IAsB1C,OAAIpnP,KAAKonP,QAAQ,GAEdpnP,KAAKsnP,gBAAgBlB,IACrB9wO,EAAO1F,YAAYw2O,IACZ,IAEXpmP,KAAKqnP,QAAQ3nL,IACN,GAEF1/D,KAAKonP,QAAQ,IAElB9xO,EAAO1F,YAAYw2O,IACZ,GAIApmP,KAAKqnP,QAAQ3nL,GAnCpB,IADA,IAAM6nL,EAAS,IAAIxC,IACN,CACT,GAAI/kP,KAAKwnP,oBAAoBD,GAAS,CAClC,GAAIvnP,KAAKonP,QAAQ,GAEb,SAEJ,GAAIpnP,KAAKonP,QAAQ,KACbhB,EAAYx2O,YAAY23O,GACpBvnP,KAAKonP,QAAQ,IAGb,OADA9xO,EAAO1F,YAAYw2O,IACZ,EAKnB,OADApmP,KAAKqnP,QAAQ3nL,IACN,MA9KvB,iCAoMI,SAAoBpqD,GAGhB,IAFA,IAAMoqD,EAAQ1/D,KAAKyhE,OACbjkD,EAAS,GAEc,IAArBxd,KAAKyhE,OAAOt8D,MAA+C,IAArBnF,KAAKyhE,OAAOt8D,MAD7C,CAIT,IAAInD,OAAK,EAWT,KARIA,GAFAA,EAAQhC,KAAKonP,QAAQ,GAAmB,IAEhCpnP,KAAKonP,QAAQ,GAAe,IAC7BpnP,KAAKonP,QAAQ,GAAc,IAC3BpnP,KAAKonP,QAAQ,GAAmB,IAChCplP,EAGChC,KAAKonP,aAAQvtO,GAAW,IAKhC,OADA7Z,KAAKqnP,QAAQ3nL,IACN,EAEXliD,EAAOja,KAAKvB,GAEhB,OAAsB,IAAlBwb,EAAOzf,QACPiC,KAAKqnP,QAAQ3nL,IACN,IAEXpqD,EAAO1F,YAAY,IAAI40O,EAAKhnO,EAAOb,KAAK,OACjC,KAlOf,mCAqOI,SAAsBrH,GAClB,IAAIsB,EACE8oD,EAAQ1/D,KAAKyhE,OAInB,KAHczhE,KAAKonP,QAAQ,IACpBpnP,KAAKonP,QAAQ,KACZxwO,EAAO5W,KAAKonP,QAAQ,GAAsB,KAE9C,OAAOpnP,KAAKqnP,QAAQ3nL,GAExB,IAAM6P,EAAW,IAAIs2K,EAASjvO,GAC9B,IAAI5W,KAAKonP,QAAQ,GAiBZ,OAAIpnP,KAAKonP,QAAQ,GAEdpnP,KAAKsnP,gBAAgB/3K,IACrBj6D,EAAO1F,YAAY2/D,IACZ,IAEXvvE,KAAKqnP,QAAQ3nL,IACN,GAEF1/D,KAAKonP,QAAQ,IAElB9xO,EAAO1F,YAAY2/D,IACZ,GAIAvvE,KAAKqnP,QAAQ3nL,GA/BpB,OAAa,CAET,GAAI1/D,KAAKonP,QAAQ,GAEb,OADA9xO,EAAO1F,YAAY2/D,IACZ,EAEX,IAAIvvE,KAAKymP,OAAOl3K,GAMhB,OAFAj6D,EAAO1F,YAAY,IAAI40O,EAAK,KAAO5tO,EAAO,MAC1C24D,EAASh6D,SAASoB,QAAQrB,EAAO1F,YAAa0F,IACvC,KA7PvB,6BAmRI,SAAgBA,GAMZ,IAJA,IAAIiY,EAAY,IAAI23N,EAChBuC,EAAa,GACbC,EAAe,IAGX1nP,KAAKonP,QAAQ,IADR,CAIT,IAAI9/I,OAAO,EACX,GAAIA,EAAUtnG,KAAKonP,QAAQ,GAAmB,GAE1CK,GADAngJ,EAAUtnG,KAAKonP,QAAQ,GAAsB,IAAS9/I,MAD1D,CAKA,GAAyB,KAArBtnG,KAAKyhE,OAAOt8D,KAIhB,OAAO,EAHHsiP,GAAcznP,KAAKonP,aAAQvtO,GAAW,IAM9C,MACQ7Z,KAAKonP,QAAQ,IADR,CAIT,IAAI9/I,OAAO,EACX,GAAIA,EAAUtnG,KAAKonP,QAAQ,GAAmB,GAC1C9/I,EAAUtnG,KAAKonP,QAAQ,GAAmB,IAASpnP,KAAKonP,QAAQ,GAAsB,IAAS9/I,EAC/F/5E,EAAU3d,YAAY,IAAI40O,EAAKl9I,SAGnC,IAAItnG,KAAK2nP,mBAAmBp6N,KAAcvtB,KAAKmnP,eAAe55N,GAG9D,OAAO,EAGX,MACQvtB,KAAKonP,QAAQ,IADR,CAIT,GAAyB,KAArBpnP,KAAKyhE,OAAOt8D,KAIhB,OAAO,EAHHuiP,GAAgB1nP,KAAKonP,aAAQvtO,GAAW,GAKhD,IACI0T,EAAUgU,OAAS,IAAIF,OAAOomN,EAAYC,GAE9C,MAAO/mP,GAEH,OAAO,EAGX,OADA2U,EAAOiY,UAAYA,GACZ,IA5Uf,gCA8UI,SAAmBjY,GACf,IAAMoqD,EAAQ1/D,KAAKyhE,OACnB,IAAKzhE,KAAKonP,QAAQ,GACd,OAAO,EAEX,IAAIQ,GAAU,EACV5nP,KAAKonP,QAAQ,KACbQ,GAAU,GAEd,IAAI3oP,EAAQe,KAAKonP,QAAQ,GAAa,GACtC,IAAKnoP,EAED,OADAe,KAAKqnP,QAAQ3nL,IACN,EAEN,IAAKkoL,EAGN,OADAtyO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,MACpC,EAEN,GAAIe,KAAKonP,QAAQ,GAGlB,OADA9xO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,MACpC,EAEN,IAAKe,KAAKonP,QAAQ,GAEnB,OADApnP,KAAKqnP,QAAQ3nL,IACN,EAEX,GAAI1/D,KAAKonP,QAAQ,GAAuB,CAEpC,IAAIS,EAAY7nP,KAAKonP,QAAQ,GAAsB,GACnD,OAAKS,GAAc7nP,KAAKonP,QAAQ,IAK5B9xO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,GAAQ4oP,KAC5C,IALP7nP,KAAKqnP,QAAQ3nL,IACN,GAOV,GAAI1/D,KAAKonP,QAAQ,IAAgB,CAElC,IAAI5B,EAAUxlP,KAAK8nP,OAAO,GAC1B,GAAItC,EAEA,OADAlwO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,QAAQ4a,EAAW2rO,OAAS3rO,KAChE,OAGV,GAAI7Z,KAAKonP,QAAQ,IAAgB,CAElC,IAAI9B,EAAYtlP,KAAK8nP,OAAO,GAC5B,GAAIxC,EAEA,OADAhwO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,QAAQ4a,OAAWA,EAAWyrO,KAClE,OAGV,GAAItlP,KAAKonP,QAAQ,IAAwB,CAE1C,IAAI5B,EAAUxlP,KAAK8nP,OAAO,GAC1B,GAAItC,EAAS,CACT,IAAIF,EAAYtlP,KAAK8nP,OAAO,GAC5B,GAAIxC,EAEA,OADAhwO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,QAAQ4a,EAAW2rO,EAASF,KAChE,OAId,CAED,IAAIA,EAAYtlP,KAAK8nP,OAAO,GAC5B,GAAIxC,EAEA,OADAhwO,EAAO1F,YAAY,IAAIy1O,EAAat4H,OAAO9tH,QAAQ4a,OAAWA,EAAWyrO,KAClE,EAIf,OADAtlP,KAAKqnP,QAAQ3nL,IACN,IA1Zf,4BA4ZI,SAAeulL,GACX,OAAyB,KAArBjlP,KAAKyhE,OAAOt8D,OACZ8/O,EAAOr1O,YAAY,IAAI40O,EAAKxkP,KAAKqmP,SAASS,UAAU9mP,KAAKyhE,UACzDzhE,KAAKonP,aAAQvtO,IACN,MAhanB,qBAKI,SAAc7X,GACV,OAAOA,EAAMlD,QAAQ,WAAY,UANzC,iCAQI,SAA2BipP,GACvB,MAAO,gBAAgBlxO,KAAKkxO,OATpC,M,mTCtbO,SAAS7oI,EAAS/1C,GAKrB,IAJA,IAAI21C,EAAW,EACXC,EAAkB,EAClBipI,EAAgB,EAChBx0I,EAAM,EACD11G,EAAI,EAAG+jC,EAAMsnC,EAAKprE,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC7C,IAAM+nF,EAAM1c,EAAKpnC,WAAWjkC,GAChB,KAAR+nF,GACiB,IAAbi5B,IACAC,EAAkBjhH,GAEtBghH,IACIhhH,EAAI,EAAI+jC,GAAkC,KAA3BsnC,EAAKpnC,WAAWjkC,EAAI,IAEnC01G,GAAO,EACP11G,KAIA01G,GAAO,EAEXw0I,EAAgBlqP,EAAI,GAEP,KAAR+nF,IAEL2tB,GAAO,EACU,IAAbsL,IACAC,EAAkBjhH,GAEtBghH,IACAkpI,EAAgBlqP,EAAI,GAM5B,OAHiB,IAAbghH,IACAC,EAAkB51C,EAAKprE,QAEpB,CAAC+gH,EAAUC,EAAiB51C,EAAKprE,OAASiqP,EAAex0I,GAEpE,SAASy0I,EAAmBC,GACxB,OACO,MADEA,GAAsB,EAIxB,GAA6B,MAAiC,EAEzE,IAAMC,EAAqB,IAAI32I,YAAY,GAAIh4E,OAClCwtF,EAAb,WACI,aAAc,oBACVhnH,KAAKonH,OAAS,GAFtB,uCAII,SAAI7nG,EAAYwxG,GACZ,GAAI/wH,KAAKonH,OAAOrpH,OAAS,EAAG,CACxB,IAAMm6J,EAAOl4J,KAAKonH,OAAOpnH,KAAKonH,OAAOrpH,OAAS,GAE9C,GADuBm6J,EAAK55I,gBAAkB45I,EAAK9wC,OAAOrpH,OAAS,EAC9C,IAAMwhB,EAGvB,YADA24I,EAAK9wC,OAAO7jH,KAAKwtH,GAIzB/wH,KAAKonH,OAAO7jH,KAAK,IAAI6kP,EAAgB7oO,EAAY,CAACwxG,SAd1D,KAiBas3H,EAAb,WACI,WAAYjhI,GAAQ,oBAChBpnH,KAAKq/H,QAAUjY,EACfpnH,KAAKsoP,YAAclhI,EAAOrpH,OAAS,EAH3C,4CAKI,SAASugB,GAEL,IADA,IAAIiqB,EAAS,GACJzqC,EAAI,EAAGA,EAAIkC,KAAKsoP,YAAaxqP,IAClCyqC,EAAOhlC,KAAP,WAAgBvD,KAAKuoP,cAAczqP,GAAKwgB,EAAxC,YAA2Dte,KAAKwoP,mBAAmB1qP,GAAnF,YAAyFkC,KAAKyoP,iBAAiB3qP,GAA/G,MAEJ,iBAAWyqC,EAAO5rB,KAAK,KAAvB,OAVR,6BAYI,WACI,IAAM40G,EAAavxH,KAAK0oP,iBACxB,OAAmB,IAAfn3H,GACQ,EAELvxH,KAAKuoP,cAAch3H,EAAa,KAjB/C,sBAmBI,WACI,IAAMA,EAAavxH,KAAK0oP,iBACxB,GAAmB,IAAfn3H,EACA,OAAO,KAEX,IAAMo3H,EAAY3oP,KAAKwoP,mBAAmB,GACpCI,EAAe5oP,KAAKuoP,cAAch3H,EAAa,GAC/Cs3H,EAAU7oP,KAAKyoP,iBAAiBl3H,EAAa,GACnD,OAAO,IAAIlzG,IAAM,EAAGsqO,EAAY,EAAGC,EAAcC,EAAU,KA3BnE,4BA6BI,WACI,OAAO7oP,KAAKsoP,cA9BpB,2BAgCI,SAAc36G,GACV,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,KAjChC,gCAmCI,SAAmBA,GACf,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,EAAa,KApC7C,8BAsCI,SAAiBA,GACb,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,EAAa,KAvC7C,qBAyCI,WACI,OAAkC,IAA1B3tI,KAAK0oP,mBA1CrB,2BA4CI,SAAcI,GAGV,IAFA,IAAI/iL,EAAM,EACNC,EAAOhmE,KAAK0oP,iBAAmB,EAC5B3iL,EAAMC,GAAM,CACf,IAAMC,EAAMF,EAAMruD,KAAKE,OAAOouD,EAAOD,GAAO,GACtCgjL,EAAe/oP,KAAKuoP,cAActiL,GACxC,GAAI8iL,EAAeD,EACf/iL,EAAME,EAAM,MAEX,MAAI8iL,EAAeD,GAGnB,CAED,IADA,IAAIppO,EAAMumD,EACHvmD,EAAMqmD,GAAO/lE,KAAKuoP,cAAc7oO,EAAM,KAAOopO,GAChDppO,IAGJ,IADA,IAAI/H,EAAMsuD,EACHtuD,EAAMquD,GAAQhmE,KAAKuoP,cAAc5wO,EAAM,KAAOmxO,GACjDnxO,IAEJ,OAAO,IAAIqxO,EAAYhpP,KAAKq/H,QAAQ4pH,SAAS,EAAIvpO,EAAK,EAAI/H,EAAM,IAXhEquD,EAAOC,EAAM,GAcrB,OAAIjmE,KAAKuoP,cAAcxiL,KAAS+iL,EACrB,IAAIE,EAAYhpP,KAAKq/H,QAAQ4pH,SAAS,EAAIljL,EAAK,EAAIA,EAAM,IAE7D,OAvEf,mBAyEI,WACI/lE,KAAKsoP,YAAc,IA1E3B,0BA4EI,SAAaY,EAAgBP,EAAWQ,EAAcN,GAMlD,IALA,IAAMzhI,EAASpnH,KAAKq/H,QACd9N,EAAavxH,KAAKsoP,YACpBc,EAAgB,EAChBC,GAAmB,EACnBC,EAAiB,EACZxrP,EAAI,EAAGA,EAAIyzH,EAAYzzH,IAAK,CACjC,IAAMyrP,EAAY,EAAIzrP,EAChB0rP,EAAiBpiI,EAAOmiI,GACxBE,EAAsBriI,EAAOmiI,EAAY,GACzCG,EAAoBtiI,EAAOmiI,EAAY,GACvC73H,EAAgBtK,EAAOmiI,EAAY,GACzC,IAAKC,EAAiBN,GAAmBM,IAAmBN,GAAkBQ,GAAqBf,KAC3Fa,EAAiBL,GAAiBK,IAAmBL,GAAgBM,GAAuBZ,GAChGQ,GAAmB,MAElB,CAID,GAHsB,IAAlBD,IACAE,EAAiBE,GAEjBH,EAAkB,CAElB,IAAMM,EAAa,EAAIP,EACvBhiI,EAAOuiI,GAAcH,EAAiBF,EACtCliI,EAAOuiI,EAAa,GAAKF,EACzBriI,EAAOuiI,EAAa,GAAKD,EACzBtiI,EAAOuiI,EAAa,GAAKj4H,EAE7B03H,KAIR,OADAppP,KAAKsoP,YAAcc,EACZE,IA5Gf,mBA8GI,SAAMJ,EAAgBP,EAAWQ,EAAcN,GAQ3C,IAPA,IAAMzhI,EAASpnH,KAAKq/H,QACd9N,EAAavxH,KAAKsoP,YACpBsB,EAAU,GACVC,EAAU,GACVC,EAAaF,EACbD,EAAa,EACbI,EAAqB,EAChBjsP,EAAI,EAAGA,EAAIyzH,EAAYzzH,IAAK,CACjC,IAAMyrP,EAAY,EAAIzrP,EAChB0rP,EAAiBpiI,EAAOmiI,GACxBE,EAAsBriI,EAAOmiI,EAAY,GACzCG,EAAoBtiI,EAAOmiI,EAAY,GACvC73H,EAAgBtK,EAAOmiI,EAAY,GACzC,GAAKC,EAAiBN,GAAmBM,IAAmBN,GAAkBQ,GAAqBf,EAAa,CAC5G,GAAKa,EAAiBL,GAAiBK,IAAmBL,GAAgBM,GAAuBZ,EAE7F,SAIIiB,IAAeD,IAEfC,EAAaD,EACbF,EAAa,EACbI,EAAqBP,GAIjCM,EAAWH,KAAgBH,EAAiBO,EAC5CD,EAAWH,KAAgBF,EAC3BK,EAAWH,KAAgBD,EAC3BI,EAAWH,KAAgBj4H,EAE/B,MAAO,CAAC,IAAI22H,EAAoB,IAAI72I,YAAYo4I,IAAW,IAAIvB,EAAoB,IAAI72I,YAAYq4I,IAAWE,KAhJtH,+BAkJI,SAAkBC,EAAmCd,EAAgBe,EAAgBd,EAAce,GAgD/F,IALA,IAAM9iI,EAASpnH,KAAKq/H,QACd9N,EAAavxH,KAAKsoP,YAClB6B,EAAoBhB,EAAeD,EACrCE,EAAgB,EAChBC,GAAmB,EACdvrP,EAAI,EAAGA,EAAIyzH,EAAYzzH,IAAK,CACjC,IAAMyrP,EAAY,EAAIzrP,EAClB0rP,EAAiBpiI,EAAOmiI,GACxBE,EAAsBriI,EAAOmiI,EAAY,GACzCG,EAAoBtiI,EAAOmiI,EAAY,GACrC73H,EAAgBtK,EAAOmiI,EAAY,GACzC,GAAIC,EAAiBN,GAAmBM,IAAmBN,GAAkBQ,GAAqBO,EAG9Fb,QAHJ,CAMK,GAAII,IAAmBN,GAAkBO,EAAsBQ,EAG5DT,IAAmBL,GAAgBO,EAAoBQ,EAGvDR,GAAsBQ,EAAeD,EAMrCP,EAAoBO,OAGvB,GAAIT,IAAmBN,GAAkBO,IAAwBQ,EAAgB,CAElF,KAAIT,IAAmBL,GAAgBO,EAAoBQ,GAKtD,CAIDb,GAAmB,EACnB,SAPAK,GAAsBQ,EAAeD,OAUxC,GAAIT,EAAiBL,GAAiBK,IAAmBL,GAAgBM,EAAsBS,EAAe,CAE/G,KAAIV,IAAmBL,GAAgBO,EAAoBQ,GAgBtD,CAIDb,GAAmB,EACnB,SAdIK,EAJAF,IAAmBN,GAGnBO,EAAsBQ,IACqBP,EAAoBQ,IAK/DT,EAAsB,IACqBC,EAAoBQ,QAWtE,GAAIV,EAAiBL,EAAc,CAEpC,GAAyB,IAArBgB,IAA2Bd,EAAkB,CAE7CD,EAAgB73H,EAChB,MAEJi4H,GAAkBW,MAEjB,MAAIX,IAAmBL,GAAgBM,GAAuBS,GAW/D,MAAM,IAAIh/O,MAAJ,iBATF8+O,GAAwD,IAAnBR,IACrCC,GAAuBO,EACvBN,GAAqBM,GAEzBR,GAAkBW,EAClBV,GAAwBS,EAAeD,EACvCP,GAAsBQ,EAAeD,EAKzC,IAAMN,EAAa,EAAIP,EACvBhiI,EAAOuiI,GAAcH,EACrBpiI,EAAOuiI,EAAa,GAAKF,EACzBriI,EAAOuiI,EAAa,GAAKD,EACzBtiI,EAAOuiI,EAAa,GAAKj4H,EACzB03H,KAEJppP,KAAKsoP,YAAcc,IAnS3B,8BAqSI,SAAiBN,EAAWziG,EAAWvnC,EAAUC,EAAiBC,EAAgBorI,GAqB9E,IAPA,IAAMC,EAAqD,IAAbvrI,GACnB,IAApBC,IACEqrI,GAAiB,IAAmBA,GAAiB,IAClDA,GAAiB,IAAcA,GAAiB,IAChDA,GAAiB,IAAcA,GAAiB,KACtDhjI,EAASpnH,KAAKq/H,QACd9N,EAAavxH,KAAKsoP,YACfxqP,EAAI,EAAGA,EAAIyzH,EAAYzzH,IAAK,CACjC,IAAMsiC,EAAS,EAAItiC,EACf0rP,EAAiBpiI,EAAOhnF,GACxBqpN,EAAsBriI,EAAOhnF,EAAS,GACtCspN,EAAoBtiI,EAAOhnF,EAAS,GACxC,KAAIopN,EAAiBV,GAAcU,IAAmBV,GAAaY,EAAoBrjG,GAAvF,CAKK,GAAImjG,IAAmBV,GAAaY,IAAsBrjG,EAAW,CAGtE,IAAIgkG,EAIA,SAHAX,GAAqB,OAMxB,GAAIF,IAAmBV,GAAaW,EAAsBpjG,GAAaA,EAAYqjG,EAEnE,IAAb5qI,EAEA4qI,GAAqB3qI,EAIrB2qI,EAAoBrjG,MAGvB,CAED,GAAImjG,IAAmBV,GAAaW,IAAwBpjG,GAIpDgkG,EACA,SAIR,GAAIb,IAAmBV,EAGnB,GAFAU,GAAkB1qI,EAED,IAAbA,EACA2qI,GAAuB1qI,EACvB2qI,GAAqB3qI,MAEpB,CACD,IAAMurI,EAAcZ,EAAoBD,EAExCC,GADAD,EAAsBzqI,GAAkByqI,EAAsBpjG,IACpBikG,OAI9Cd,GAAkB1qI,EAG1BsI,EAAOhnF,GAAUopN,EACjBpiI,EAAOhnF,EAAS,GAAKqpN,EACrBriI,EAAOhnF,EAAS,GAAKspN,QAvXjC,KA2XaV,EAAb,WACI,WAAY5hI,GAAQ,oBAChBpnH,KAAKq/H,QAAUjY,EAFvB,4CAII,WACI,OAAOpnH,KAAKq/H,QAAQthI,OAAS,IALrC,+BAOI,SAAkB4vI,GACd,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,EAAa,KAR7C,6BAUI,SAAgBA,GACZ,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,EAAa,KAX7C,yBAaI,SAAYA,GACR,OAAO3tI,KAAKq/H,QAAQ,EAAIsO,EAAa,OAd7C,KAiBa48G,EAAb,WACI,WAAYjsO,EAAiB8oG,GAAQ,oBACjCpnH,KAAKse,gBAAkBA,EACvBte,KAAKonH,OAASA,EACdpnH,KAAKwe,cAAgBxe,KAAKse,gBAAkBte,KAAKonH,OAAOojI,kBAJhE,4CAMI,WACI,OAAOxqP,KAAKonH,OAAO3uG,SAASzY,KAAKse,mBAPzC,kCASI,WACIte,KAAKwe,cAAgBxe,KAAKse,gBAAkBte,KAAKonH,OAAOojI,oBAVhE,qBAYI,WACI,OAAOxqP,KAAKonH,OAAO1oG,YAb3B,2BAeI,SAAca,GACV,OAAIvf,KAAKse,iBAAmBiB,GAAcA,GAAcvf,KAAKwe,cAClDxe,KAAKonH,OAAO+J,cAAc5xG,EAAavf,KAAKse,iBAEhD,OAnBf,sBAqBI,WACI,IAAMmsO,EAAazqP,KAAKonH,OAAOsjI,WAC/B,OAAKD,EAGE,IAAIpsO,IAAMre,KAAKse,gBAAkBmsO,EAAWnsO,gBAAiBmsO,EAAWlsO,YAAave,KAAKse,gBAAkBmsO,EAAWjsO,cAAeisO,EAAWhsO,WAF7IgsO,IAxBnB,0BA4BI,SAAa5rO,GACT,IAAM8rO,EAAiB9rO,EAAMP,gBAAkBte,KAAKse,gBAC9CmpG,EAAe5oG,EAAML,cAAgBxe,KAAKse,gBAChDte,KAAKse,iBAAmBte,KAAKonH,OAAOwjI,aAAaD,EAAgB9rO,EAAMN,YAAc,EAAGkpG,EAAc5oG,EAAMJ,UAAY,GACxHze,KAAK6qP,yBAhCb,mBAkCI,SAAMhsO,GAIF,IAAM8rO,EAAiB9rO,EAAMP,gBAAkBte,KAAKse,gBAC9CmpG,EAAe5oG,EAAML,cAAgBxe,KAAKse,gBAChD,EAA2Bte,KAAKonH,OAAO9tF,MAAMqxN,EAAgB9rO,EAAMN,YAAc,EAAGkpG,EAAc5oG,EAAMJ,UAAY,GAApH,mBAAOva,EAAP,KAAU5E,EAAV,KAAawrP,EAAb,KACA,MAAO,CAAC,IAAIP,EAAiBvqP,KAAKse,gBAAiBpa,GAAI,IAAIqmP,EAAiBvqP,KAAKse,gBAAkBwsO,EAAYxrP,MAzCvH,uBA2CI,SAAUuf,EAAOsqD,GACb,MAAoD+1C,EAAS/1C,GAA7D,mBAAO21C,EAAP,KAAiBC,EAAjB,KAAkCC,EAAlC,KACAh/G,KAAKunI,WAAW1oH,EAAOigG,EAAUC,EAAiBC,EAAgB71C,EAAKprE,OAAS,EAAIorE,EAAKpnC,WAAW,GAAK,KA7CjH,wBA+CI,SAAWljB,EAAOigG,EAAUC,EAAiBC,EAAgBorI,GACzDpqP,KAAKmlH,mBAAmBtmG,GACxB7e,KAAKolH,kBAAkB,IAAIjlG,IAAStB,EAAMP,gBAAiBO,EAAMN,aAAcugG,EAAUC,EAAiBC,EAAgBorI,GAC1HpqP,KAAK6qP,yBAlDb,gCAoDI,SAAmBhsO,GACf,GAAIA,EAAMP,kBAAoBO,EAAML,eAAiBK,EAAMN,cAAgBM,EAAMJ,UAAjF,CAIA,IAAMssO,EAAiBlsO,EAAMP,gBAAkBte,KAAKse,gBAC9C0sO,EAAgBnsO,EAAML,cAAgBxe,KAAKse,gBACjD,GAAI0sO,EAAgB,EAApB,CAEI,IAAMC,EAAoBD,EAAgBD,EAC1C/qP,KAAKse,iBAAmB2sO,MAH5B,CAMA,IAAMC,EAAoBlrP,KAAKonH,OAAOojI,kBACtC,KAAIO,GAAkBG,EAAoB,GAA1C,CAIA,GAAIH,EAAiB,GAAKC,GAAiBE,EAAoB,EAI3D,OAFAlrP,KAAKse,gBAAkB,OACvBte,KAAKonH,OAAO7pG,QAGhB,GAAIwtO,EAAiB,EAAG,CACpB,IAAMI,GAAiBJ,EACvB/qP,KAAKse,iBAAmB6sO,EACxBnrP,KAAKonH,OAAOgkI,kBAAkBvsO,EAAMN,YAAc,EAAG,EAAG,EAAGysO,EAAensO,EAAMJ,UAAY,QAG5Fze,KAAKonH,OAAOgkI,kBAAkB,EAAGL,EAAgBlsO,EAAMN,YAAc,EAAGysO,EAAensO,EAAMJ,UAAY,QAlFrH,+BAqFI,SAAkBE,EAAUmgG,EAAUC,EAAiBC,EAAgBorI,GACnE,GAAiB,IAAbtrI,GAAsC,IAApBC,EAAtB,CAIA,IAAMsF,EAAY1lG,EAASY,WAAavf,KAAKse,gBAC7C,GAAI+lG,EAAY,EAEZrkH,KAAKse,iBAAmBwgG,OAIxBuF,GADsBrkH,KAAKonH,OAAOojI,kBACD,GAIrCxqP,KAAKonH,OAAOikI,iBAAiBhnI,EAAW1lG,EAASa,OAAS,EAAGs/F,EAAUC,EAAiBC,EAAgBorI,QArGhH,KAwGahC,EACT,WAAY9pO,EAAiB8oG,GAAQ,oBACjCpnH,KAAKse,gBAAkBA,EACvBte,KAAKonH,OAASA,GAGtB,SAASkkI,EAAc/7N,GACnB,OAAIA,aAAeiiF,YACRjiF,EAGA,IAAIiiF,YAAYjiF,GAGxB,IAAMiwG,EAAb,WACI,WAAYtX,GAAiB,oBACzBloH,KAAKsyG,QAAU,GACftyG,KAAKurP,aAAc,EACnBvrP,KAAKylH,iBAAmByC,EAJhC,yCAMI,WACIloH,KAAKsyG,QAAU,GACftyG,KAAKurP,aAAc,IAR3B,qBAUI,WACI,OAAgC,IAAxBvrP,KAAKsyG,QAAQv0G,SAX7B,iBAaI,SAAIwqC,EAAQqkG,GACR5sI,KAAKsyG,QAAU/pE,GAAU,GACzBvoC,KAAKurP,YAAc3+G,IAf3B,wBAiBI,SAAW5I,EAAQz7F,GAEf,IAAI1pB,EAAQmlH,EACZ,GAAIz7F,EAAOxqC,OAAS,EAAG,CACnB,IAAMytP,EAAcjjN,EAAO,GAAGmiN,WACxBe,EAAaljN,EAAOA,EAAOxqC,OAAS,GAAG2sP,WAC7C,IAAKc,IAAgBC,EACjB,OAAOznH,EAEXnlH,EAAQmlH,EAAOhlH,UAAUwsO,GAAaxsO,UAAUysO,GAGpD,IADA,IAAIC,EAAiB,KACZ5tP,EAAI,EAAG+jC,EAAM7hC,KAAKsyG,QAAQv0G,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACrD,IAAMwyG,EAAQtwG,KAAKsyG,QAAQx0G,GAC3B,KAAIwyG,EAAM9xF,cAAgBK,EAAMP,iBAAhC,CAIA,GAAIgyF,EAAMhyF,gBAAkBO,EAAML,cAAe,CAG7CktO,EAAiBA,GAAkB,CAAEzsP,MAAOnB,GAC5C,MAIJ,GADAwyG,EAAMs6I,aAAa/rO,GACfyxF,EAAM5xF,UAEN1e,KAAKsyG,QAAQ//E,OAAOz0B,EAAG,GACvBA,IACA+jC,SAGJ,KAAIyuE,EAAM9xF,cAAgBK,EAAMP,iBAIhC,GAAIgyF,EAAMhyF,gBAAkBO,EAAML,cAE9BktO,EAAiBA,GAAkB,CAAEzsP,MAAOnB,OAFhD,CAMA,MAAewyG,EAAMh3E,MAAMza,GAA3B,mBAAO3a,EAAP,KAAU5E,EAAV,KACI4E,EAAEwa,UAEFgtO,EAAiBA,GAAkB,CAAEzsP,MAAOnB,GAG5CwB,EAAEof,YAIN1e,KAAKsyG,QAAQ//E,OAAOz0B,EAAG,EAAGoG,EAAG5E,GAC7BxB,IACA+jC,IACA6pN,EAAiBA,GAAkB,CAAEzsP,MAAOnB,MAQhD,OANA4tP,EAAiBA,GAAkB,CAAEzsP,MAAOe,KAAKsyG,QAAQv0G,QACrDwqC,EAAOxqC,OAAS,IAChBiC,KAAKsyG,QAAUmS,IAAmBzkH,KAAKsyG,QAASo5I,EAAezsP,MAAOspC,IAInE1pB,IAjFf,wBAmFI,WACI,OAAO7e,KAAKurP,cApFpB,+BAsFI,SAAkBhsO,EAAYqqO,GAC1B,IAAMrhN,EAASvoC,KAAKsyG,QACpB,GAAsB,IAAlB/pE,EAAOxqC,OACP,OAAO6rP,EAEX,IACMC,EAAUthN,EADGi3F,EAAamsH,wBAAwBpjN,EAAQhpB,IAC7B4xG,cAAc5xG,GACjD,IAAKsqO,EACD,OAAOD,EAeX,IAbA,IAAMjnN,EAAOinN,EAAQp4H,WACf5uF,EAAOinN,EAAQr4H,WACjBo6H,EAAS,EACTxpP,EAAS,GAAI8qG,EAAY,EACzB2+I,EAAgB,EACdC,EAAY,SAACxxI,EAAW1rE,GACtB0rE,IAAcuxI,IAGlBA,EAAgBvxI,EAChBl4G,EAAO8qG,KAAeoN,EACtBl4G,EAAO8qG,KAAet+D,IAEjBm9M,EAAS,EAAGA,EAASnpN,EAAMmpN,IAAU,CAW1C,IAVA,IAAMC,EAAkBnC,EAAQoC,kBAAkBF,GAC5CG,EAAgBrC,EAAQsC,gBAAgBJ,GACxCK,EAAYvC,EAAQl4H,YAAYo6H,GAChCM,IAAuB,EAAZD,EAA2C,KAAyB,IACjE,EAAZA,EAAyC,KAAuB,IACpD,EAAZA,EAA8C,KAA4B,IAC9D,EAAZA,EAA+C,QAAgC,IACnE,GAAZA,EAAgD,WAAmC,MAAQ,EAC7FE,GAAUD,IAAW,EAEpBT,EAASjpN,GAAQinN,EAAQ93H,aAAa85H,IAAWI,GACpDF,EAAUlC,EAAQ93H,aAAa85H,GAAShC,EAAQj4H,YAAYi6H,IAC5DA,IAOJ,IAJIA,EAASjpN,GAAQinN,EAAQt6G,eAAes8G,GAAUI,GAClDF,EAAUE,EAAiBpC,EAAQj4H,YAAYi6H,IAG5CA,EAASjpN,GAAQinN,EAAQ93H,aAAa85H,GAAUM,GACnDJ,EAAUlC,EAAQ93H,aAAa85H,GAAUhC,EAAQj4H,YAAYi6H,GAAUU,EAAUF,EAAYC,GAC7FT,IAEJ,GAAIA,EAASjpN,EACTmpN,EAAUI,EAAgBtC,EAAQj4H,YAAYi6H,GAAUU,EAAUF,EAAYC,GAC1EzC,EAAQ93H,aAAa85H,KAAYM,GAEjCN,QAGH,CACD,IAAMW,EAAc70O,KAAKgI,IAAIhI,KAAKC,IAAI,EAAGi0O,EAAS,GAAIjpN,EAAO,GAE7DmpN,EAAUI,EAAgBtC,EAAQj4H,YAAY46H,GAAeD,EAAUF,EAAYC,IAI3F,KAAOT,EAASjpN,GACZmpN,EAAUlC,EAAQ93H,aAAa85H,GAAShC,EAAQj4H,YAAYi6H,IAC5DA,IAEJ,OAAO,IAAIrjI,IAAW,IAAI/W,YAAYpvG,GAASwnP,EAAQp/I,iBAAkBxqG,KAAKylH,oBAvJtF,wBA8KI,SAAW5mG,EAAOigG,EAAUC,EAAiBC,EAAgBorI,GAAe,oBACpDpqP,KAAKsyG,SAD+C,IACxE,2BAAkC,SACxBi1B,WAAW1oH,EAAOigG,EAAUC,EAAiBC,EAAgBorI,IAFC,kCA9KhF,sCAyJI,SAA+B7hN,EAAQhpB,GAGnC,IAFA,IAAIwmD,EAAM,EACNC,EAAOz9B,EAAOxqC,OAAS,EACpBgoE,EAAMC,GAAM,CACf,IAAIC,EAAMF,EAAMruD,KAAKE,OAAOouD,EAAOD,GAAO,GAC1C,GAAIx9B,EAAO09B,GAAKznD,cAAgBe,EAC5BwmD,EAAME,EAAM,MAEX,MAAI19B,EAAO09B,GAAK3nD,gBAAkBiB,GAGlC,CACD,KAAO0mD,EAAMF,GAAOx9B,EAAO09B,EAAM,GAAG3nD,iBAAmBiB,GAAcA,GAAcgpB,EAAO09B,EAAM,GAAGznD,eAC/FynD,IAEJ,OAAOA,EANPD,EAAOC,EAAM,GASrB,OAAOF,MA3Kf,KAoLau5D,EAAb,WACI,WAAYpX,GAAiB,oBACzBloH,KAAKwsP,YAAc,GACnBxsP,KAAKgkH,KAAO,EACZhkH,KAAKylH,iBAAmByC,EAJhC,yCAMI,WACIloH,KAAKwsP,YAAc,GACnBxsP,KAAKgkH,KAAO,IARpB,uBAUI,SAAUkkI,EAAoB7jI,EAAW+oB,GACrC,IAAIq/G,EAAgB,KAIpB,GAHIpoI,EAAYrkH,KAAKgkH,OACjByoI,EAAgBzsP,KAAKwsP,YAAYnoI,IAEf,OAAlBooI,GAA0BA,IAAkBtE,EAC5C,OAAO,IAAI5/H,IAAW+iI,EAAcmB,GAAgBr/G,EAAUptI,KAAKylH,kBAEvE,IAAMsL,EAAa,IAAIvf,YAAY,GAGnC,OAFAuf,EAAW,GAAKqc,EAASrvI,OACzBgzH,EAAW,GAAKk3H,EAAmBjoP,KAAKylH,iBAAiB6C,iBAAiB4/H,IACnE,IAAI3/H,IAAWwI,EAAYqc,EAAUptI,KAAKylH,oBArBzD,yBAgDI,SAAYpB,GACR,KAAOA,GAAarkH,KAAKgkH,MACrBhkH,KAAKwsP,YAAYxsP,KAAKgkH,MAAQ,KAC9BhkH,KAAKgkH,SAnDjB,0BAsDI,SAAa5jG,EAAO4nD,GACI,IAAhBA,IAGA5nD,EAAQ4nD,EAAchoE,KAAKgkH,OAC3Bh8C,EAAchoE,KAAKgkH,KAAO5jG,GAE9BpgB,KAAKwsP,YAAYj6N,OAAOnS,EAAO4nD,GAC/BhoE,KAAKgkH,MAAQh8C,KA9DrB,0BAgEI,SAAaP,EAAa68C,GACtB,GAAoB,IAAhBA,EAAJ,CAIA,IADA,IAAIyM,EAAa,GACRjzH,EAAI,EAAGA,EAAIwmH,EAAaxmH,IAC7BizH,EAAWjzH,GAAK,KAEpBkC,KAAKwsP,YAAc/nI,IAAmBzkH,KAAKwsP,YAAa/kL,EAAaspD,GACrE/wH,KAAKgkH,MAAQM,KAzErB,uBA2EI,SAAU4jI,EAAoB7jI,EAAW8pG,EAAgB9uF,EAASqtH,GAC9D,IAAMtlI,EAASkY,EAAYqtH,eAAe3sP,KAAKylH,iBAAiB6C,iBAAiB4/H,GAAqB/5B,EAAgB9uF,GACtHr/H,KAAK0kH,YAAYL,GACjB,IAAMuoI,EAAY5sP,KAAKwsP,YAAYnoI,GAEnC,OADArkH,KAAKwsP,YAAYnoI,GAAa+C,IAC1BslI,IACQptH,EAAY0jE,QAAQ4pD,EAAWxlI,KAjFnD,wBAsGI,SAAWvoG,EAAOigG,EAAUC,GACxB/+G,KAAKmlH,mBAAmBtmG,GACxB7e,KAAKolH,kBAAkB,IAAIjlG,IAAStB,EAAMP,gBAAiBO,EAAMN,aAAcugG,EAAUC,KAxGjG,gCA0GI,SAAmBlgG,GACf,IAAMksO,EAAiBlsO,EAAMP,gBAAkB,EAC/C,KAAIysO,GAAkB/qP,KAAKgkH,MAG3B,GAAInlG,EAAMP,kBAAoBO,EAAML,cAApC,CAQAxe,KAAKwsP,YAAYzB,GAAkBzrH,EAAYutH,cAAc7sP,KAAKwsP,YAAYzB,GAAiBlsO,EAAMN,YAAc,GACnH,IAAMysO,EAAgBnsO,EAAML,cAAgB,EACxCsuO,EAAiB,KACjB9B,EAAgBhrP,KAAKgkH,OACrB8oI,EAAiBxtH,EAAYytH,iBAAiB/sP,KAAKwsP,YAAYxB,GAAgBnsO,EAAMJ,UAAY,IAGrGze,KAAKwsP,YAAYzB,GAAkBzrH,EAAY0tH,QAAQhtP,KAAKwsP,YAAYzB,GAAiB+B,GAEzF9sP,KAAKqlH,aAAaxmG,EAAMP,gBAAiBO,EAAML,cAAgBK,EAAMP,qBAjBrE,CACI,GAAIO,EAAMN,cAAgBM,EAAMJ,UAE5B,OAEJze,KAAKwsP,YAAYzB,GAAkBzrH,EAAYovC,QAAQ1uK,KAAKwsP,YAAYzB,GAAiBlsO,EAAMN,YAAc,EAAGM,EAAMJ,UAAY,MApH9I,+BAkII,SAAkBE,EAAUmgG,EAAUC,GAClC,GAAiB,IAAbD,GAAsC,IAApBC,EAAtB,CAIA,IAAMsF,EAAY1lG,EAASY,WAAa,EACpC8kG,GAAarkH,KAAKgkH,OAGL,IAAblF,GAKJ9+G,KAAKwsP,YAAYnoI,GAAaib,EAAYutH,cAAc7sP,KAAKwsP,YAAYnoI,GAAY1lG,EAASa,OAAS,GACvGxf,KAAKwsP,YAAYnoI,GAAaib,EAAYy2E,QAAQ/1M,KAAKwsP,YAAYnoI,GAAY1lG,EAASa,OAAS,EAAGu/F,GACpG/+G,KAAKslH,aAAa3mG,EAASY,WAAYu/F,IALnC9+G,KAAKwsP,YAAYnoI,GAAaib,EAAYy2E,QAAQ/1M,KAAKwsP,YAAYnoI,GAAY1lG,EAASa,OAAS,EAAGu/F,QA7IhH,6BAuBI,SAAsBmpI,EAAoB/5B,EAAgB9uF,GACtD,IAAMjY,EAASiY,EAAUisH,EAAcjsH,GAAW,KAClD,GAAuB,IAAnB8uF,EAAsB,CACtB,IAAI8+B,GAAyB,EAI7B,GAHI7lI,GAAUA,EAAOrpH,OAAS,IAC1BkvP,EAA0Bt+M,IAAci3E,cAAcwB,EAAO,MAAQ8gI,IAEpE+E,EACD,OAAO9E,EAGf,IAAK/gI,GAA4B,IAAlBA,EAAOrpH,OAAc,CAChC,IAAMqpH,EAAS,IAAI5V,YAAY,GAG/B,OAFA4V,EAAO,GAAK+mG,EACZ/mG,EAAO,GAAK6gI,EAAmBC,GACxB9gI,EAAO5tF,OAIlB,OADA4tF,EAAOA,EAAOrpH,OAAS,GAAKowN,EACF,IAAtB/mG,EAAOs7D,YAAoBt7D,EAAOk7D,aAAel7D,EAAO5tF,OAAO8oJ,WAExDl7D,EAAO5tF,OAEX4tF,IA9Cf,qBAqFI,SAAepiH,EAAIgL,GACf,IAAKhL,IAAOgL,EACR,OAAQhL,IAAOgL,EAEnB,IAAM9L,EAAIonP,EAActmP,GAClB1F,EAAIgsP,EAAct7O,GACxB,GAAI9L,EAAEnG,SAAWuB,EAAEvB,OACf,OAAO,EAEX,IAAK,IAAID,EAAI,EAAG+jC,EAAM39B,EAAEnG,OAAQD,EAAI+jC,EAAK/jC,IACrC,GAAIoG,EAAEpG,KAAOwB,EAAExB,GACX,OAAO,EAGf,OAAO,IAnGf,8BAoJI,SAAwBizH,EAAYm8H,GAChC,OAAmB,OAAfn8H,GAAuBA,IAAeo3H,EAC/Bp3H,EAEJuO,EAAYovC,QAAQ39C,EAAY,EAAGm8H,KAxJlD,2BA0JI,SAAqBn8H,EAAYo8H,GAC7B,GAAmB,OAAfp8H,GAAuBA,IAAeo3H,EACtC,OAAOp3H,EAEX,IAAM3J,EAASkkI,EAAcv6H,GACvBo9F,EAAiB/mG,EAAOA,EAAOrpH,OAAS,GAC9C,OAAOuhI,EAAYovC,QAAQ39C,EAAYo8H,EAAah/B,KAhK5D,qBAkKI,SAAep9F,EAAYo8H,EAAaD,GACpC,GAAmB,OAAfn8H,GAAuBA,IAAeo3H,GAAqBgF,IAAgBD,EAC3E,OAAOn8H,EAEX,IAAM3J,EAASkkI,EAAcv6H,GACvBq8H,EAAehmI,EAAOrpH,SAAW,EAEvC,GAAoB,IAAhBovP,GAAqB/lI,EAAOA,EAAOrpH,OAAS,KAAOmvP,EACnD,OAAO/E,EAEX,IAWIkF,EACAC,EAZEC,EAAiBhlI,IAAWklG,uBAAuBrmG,EAAQ+lI,GAC3DK,EAAwBD,EAAiB,EAAInmI,EAAQmmI,EAAiB,GAAM,GAAK,EAEvF,GAAIL,EADuB9lI,EAAOmmI,GAAkB,GAChB,CAGhC,IADA,IAAM51L,EAASu1L,EAAYC,EAClBrvP,EAAIyvP,EAAgBzvP,EAAIsvP,EAAatvP,IAC1CspH,EAAOtpH,GAAK,IAAM65D,EAEtB,OAAOo5D,EAIPy8H,IAAyBL,GACzB/lI,EAAOmmI,GAAkB,GAAKJ,EAC9BE,EAASE,EAAiB,GAAM,EAChCD,EAAUH,IAGVE,EAAQE,GAAkB,EAC1BD,EAAUE,GAGd,IADA,IAAM71L,EAASu1L,EAAYC,EAClBx/G,EAAa4/G,EAAiB,EAAG5/G,EAAay/G,EAAaz/G,IAAc,CAC9E,IAAMsB,EAAiB7nB,EAAOumB,GAAc,GAAKh2E,EAC7Cs3E,EAAiBq+G,IACjBlmI,EAAOimI,KAAUp+G,EACjB7nB,EAAOimI,KAAUjmI,EAA2B,GAAnBumB,GAAc,IACvC2/G,EAAUr+G,GAGlB,GAAIo+G,IAASjmI,EAAOrpH,OAEhB,OAAOgzH,EAEX,IAAI3mB,EAAM,IAAIoH,YAAY67I,GAE1B,OADAjjJ,EAAI5iE,IAAI4/E,EAAO6hI,SAAS,EAAGoE,GAAO,GAC3BjjJ,EAAI5wE,SAjNnB,qBAmNI,SAAeu3F,EAAY08H,GACvB,GAAIA,IAAiBtF,EACjB,OAAOp3H,EAEX,GAAIA,IAAeo3H,EACf,OAAOsF,EAEX,GAAmB,OAAf18H,EACA,OAAOA,EAEX,GAAqB,OAAjB08H,EAEA,OAAO,KAEX,IAAMC,EAAWpC,EAAcv6H,GACzB48H,EAAcrC,EAAcmC,GAC5BG,EAAoBD,EAAY5vP,SAAW,EAC7CqE,EAAS,IAAIovG,YAAYk8I,EAAS3vP,OAAS4vP,EAAY5vP,QAC3DqE,EAAOolC,IAAIkmN,EAAU,GAGrB,IAFA,IAAIL,EAAOK,EAAS3vP,OACd45D,EAAQ+1L,EAASA,EAAS3vP,OAAS,GAChCD,EAAI,EAAGA,EAAI8vP,EAAkB9vP,IAClCsE,EAAOirP,KAAUM,EAAa7vP,GAAK,GAAM65D,EACzCv1D,EAAOirP,KAAUM,EAAuB,GAAV7vP,GAAK,IAEvC,OAAOsE,EAAOo3B,SA5OtB,qBA8OI,SAAeu3F,EAAY88H,EAASjgJ,GAChC,GAAmB,OAAfmjB,GAAuBA,IAAeo3H,EAEtC,OAAOp3H,EAEX,IAAM3J,EAASkkI,EAAcv6H,GACvBq8H,EAAehmI,EAAOrpH,SAAW,EACnCwvP,EAAiBhlI,IAAWklG,uBAAuBrmG,EAAQymI,GAC3DN,EAAiB,IACYnmI,EAAQmmI,EAAiB,GAAM,KAC/BM,GACzBN,KAGR,IAAK,IAAI5/G,EAAa4/G,EAAgB5/G,EAAay/G,EAAaz/G,IAC5DvmB,EAAOumB,GAAc,IAAM//B,EAE/B,OAAOmjB,MA/Pf,M,6BC9vBM,SAAU+8H,EAAgBliP,GAC9B,OAAe,OAARA,GAA+B,kBAARA,EADhC,mC,2JCsBamiP,EAAb,WACI,WAAY7vN,EAAYj/B,EAAO8Y,EAAMk1D,EAAO4iE,EAAcO,GAAe,oBACrEpwI,KAAKguP,2BAAwBn0O,EAC7B7Z,KAAKk+B,WAAaA,EAClBl+B,KAAKf,MAAQA,EACbe,KAAK+X,KAAOA,EACZ/X,KAAKitE,MAAQA,EACbjtE,KAAK6vI,aAAeA,EACpB7vI,KAAKowI,cAAgBA,EACrBpwI,KAAKiuP,SAAWF,EAAgBG,OAAOluP,KAAK+X,MAC5C/X,KAAKmuP,UAAYJ,EAAgBG,OAAOluP,KAAKitE,OAVrD,0CAeI,SAAO9D,GACH,OAAOnpE,KAAKiuP,SAAS3rM,IAAI6mB,KAhBjC,qBAqBI,SAAQA,GACJ,OAAOnpE,KAAKmuP,UAAU7rM,IAAI6mB,MAtBlC,qBAwBI,SAAc55C,GACV,IADe,EACTntB,EAAS,IAAIib,IADJ,cAEOkS,GAFP,IAEf,2BAA2B,KAAhBhlB,EAAgB,QACvBnI,EAAOoX,IAAIjP,IAHA,8BAKf,OAAOnI,MA7Bf,KAgGO,IAAMksJ,EACT,WAAYpwH,EAAYspH,GAAW,oBAC/BxnJ,KAAKouP,4BAAyBv0O,EAC9B,IAAMk4G,EAtDd,SAA4BA,GACxB,IAAMs8H,EAAIt8H,EAASh0H,OACnBg0H,EAAWA,EAAS3vG,KAAI,SAAA9iB,GAAC,MAAI,CAACA,EAAE,GAAGyjC,cAAezjC,EAAE,GAAGyjC,kBAEvD,IADA,IAAMhR,EAAQ,GACLj0B,EAAI,EAAGA,EAAIuwP,EAAGvwP,IACnBi0B,EAAMj0B,GAAKA,EAiBf,IAfA,IAAMwwP,EAAiB,SAACpqP,EAAG5E,GACvB,kBAAwB4E,EAAxB,GAAOqqP,EAAP,KAAcC,EAAd,KACA,cAAwBlvP,EAAxB,GAAOmvP,EAAP,KAAcC,EAAd,KACA,OAAQH,IAAUE,GAASF,IAAUG,GAAUF,IAAWC,GAASD,IAAWE,GAE5EC,EAAc,SAAC7pD,EAAI8pD,GAGrB,IAFA,IAAMC,EAAOn3O,KAAKgI,IAAIolL,EAAI8pD,GACpBE,EAAOp3O,KAAKC,IAAImtL,EAAI8pD,GACjB9wP,EAAI,EAAGA,EAAIuwP,EAAGvwP,IACfi0B,EAAMj0B,KAAOgxP,IACb/8N,EAAMj0B,GAAK+wP,IAKd/wP,EAAI,EAAGA,EAAIuwP,EAAGvwP,IAEnB,IADA,IAAMoG,EAAI6tH,EAASj0H,GACVqG,EAAIrG,EAAI,EAAGqG,EAAIkqP,EAAGlqP,IAEnBmqP,EAAepqP,EADT6tH,EAAS5tH,KAEfwqP,EAAY58N,EAAMj0B,GAAIi0B,EAAM5tB,IAKxC,IADA,IAAM/B,EAAS,GACNO,EAAI,EAAGA,EAAI0rP,EAAG1rP,IAAK,CAGxB,IAFA,IAAIosP,EAAc,GACdC,EAAe,GACVlxP,EAAI,EAAGA,EAAIuwP,EAAGvwP,IACnB,GAAIi0B,EAAMj0B,KAAO6E,EAAG,CAChB,kBAAsBovH,EAASj0H,GAA/B,GAAOia,EAAP,KAAak1D,EAAb,KACA8hL,EAAYxrP,KAAKwU,GACjBi3O,EAAazrP,KAAK0pE,GAGtB8hL,EAAYhxP,OAAS,GACrBqE,EAAOmB,KAAK,CACRwU,KAAMg3O,EACN9hL,MAAO+hL,IAInB,OAAO5sP,EAKc6sP,CAAmBznG,GACpCxnJ,KAAK+xH,SAAWA,EAAS3vG,KAAI,SAAC9iB,EAAGL,GAC7B,OAAO,IAAI8uP,EAAgB7vN,EAAYj/B,EAAOK,EAAEyY,KAAMzY,EAAE2tE,MAgFpE,SAAgCl1D,EAAMk1D,EAAO8kD,EAAUm9H,GAEnD,IAAI3mN,EAAS,GAEbA,GADAA,EAASA,EAAOzkC,OAAOiU,IACPjU,OAAOmpE,GACvB,IAAK,IAAInvE,EAAI,EAAG+jC,EAAM0G,EAAOxqC,OAAQD,EAAI+jC,EAAK/jC,IAC1CqxP,EAAoB5mN,EAAOzqC,GAAIi0H,EAAUm9H,EAAc3mN,GAK3D,OAHAA,EAAS6mN,EAAO7mN,IACTz/B,KAAKumP,GACZ9mN,EAAO4qF,UACAm8H,EAAsB/mN,GA3F0CgnN,CAAuBjwP,EAAEyY,KAAMzY,EAAE2tE,MAAO8kD,EAAU9yH,GAuG7H,SAAwC8Y,EAAMk1D,EAAO8kD,EAAUm9H,GAE3D,IAAI3mN,EAAS,GAEbA,GADAA,EAASA,EAAOzkC,OAAOiU,IACPjU,OAAOmpE,GACvB,IAAK,IAAInvE,EAAI,EAAG+jC,EAAM0G,EAAOxqC,OAAQD,EAAI+jC,EAAK/jC,IAC1CqxP,EAAoB5mN,EAAOzqC,GAAIi0H,EAAUm9H,EAAc3mN,GAK3D,OAHAA,EAAS6mN,EAAO7mN,IACTz/B,KAAKumP,GACZ9mN,EAAO4qF,UACAm8H,EAAsB/mN,EAAOnmB,IAAIotO,IAlHyFC,CAA+BnwP,EAAEyY,KAAMzY,EAAE2tE,MAAO8kD,EAAU9yH,OAEvLe,KAAK6vI,aA4Hb,SAA6B9d,GACzB,IADmC,EAC/BxpF,EAAS,GADsB,cAEbwpF,GAFa,IAEnC,2BAAgC,OAArB3sC,EAAqB,sBACTA,EAAQrtE,MADC,IAC5B,2BAAiC,KAAtBA,EAAsB,QAC7BwwB,EAAOhlC,KAAKwU,IAFY,kDAIRqtE,EAAQnY,OAJA,IAI5B,2BAAmC,KAAxBA,EAAwB,QAC/B1kC,EAAOhlC,KAAK0pE,IALY,gCAFG,8BAWnC,OAAOqiL,EADP/mN,EAAS6mN,EAAO7mN,IAtIQmnN,CAAoB1vP,KAAK+xH,UAC7C/xH,KAAKowI,cAqJb,SAAqCre,GACjC,IAD2C,EACvCxpF,EAAS,GAD8B,cAErBwpF,GAFqB,IAE3C,2BAAgC,OAArB3sC,EAAqB,sBACTA,EAAQrtE,MADC,IAC5B,2BAAiC,KAAtBA,EAAsB,QAC7BwwB,EAAOhlC,KAAKwU,IAFY,kDAIRqtE,EAAQnY,OAJA,IAI5B,2BAAmC,KAAxBA,EAAwB,QAC/B1kC,EAAOhlC,KAAK0pE,IALY,gCAFW,8BAW3C,OAAOqiL,GADP/mN,EAAS6mN,EAAO7mN,IACoBnmB,IAAIotO,IAhKfG,CAA4B3vP,KAAK+xH,UACtD/xH,KAAK0uI,cAAgB,GACrB1uI,KAAKgwI,kBAAoB,GACzBhwI,KAAKgvI,iBAAmB,EAVO,oBAWThvI,KAAK+xH,UAXI,IAW/B,2BAAqC,OAA1B3sC,EAA0B,sBACdA,EAAQrtE,MADM,IACjC,2BAAiC,KAAtBA,EAAsB,QAC7B/X,KAAK0uI,cAAc32H,GAAQqtE,EAC3BplF,KAAKgwI,kBAAkBj4H,IAAQ,EAC/B/X,KAAKgvI,iBAAmBt3H,KAAKC,IAAI3X,KAAKgvI,iBAAkBj3H,EAAKha,SAJhC,kDAMbqnF,EAAQnY,OANK,IAMjC,2BAAmC,KAAxBA,EAAwB,QAC/BjtE,KAAK0uI,cAAczhE,GAASmY,EAC5BplF,KAAKgwI,kBAAkB/iE,IAAS,EAChCjtE,KAAKgvI,iBAAmBt3H,KAAKC,IAAI3X,KAAKgvI,iBAAkB/hE,EAAMlvE,SATjC,gCAXN,gCAyBvC,SAASoxP,EAAoB7vN,EAAKyyF,EAAUm9H,EAAc7B,GACtD,IAAK,IAAIvvP,EAAI,EAAG+jC,EAAMkwF,EAASh0H,OAAQD,EAAI+jC,EAAK/jC,IAC5C,GAAIA,IAAMoxP,EAAV,CAGA,IAJiD,EAI3C9pK,EAAU2sC,EAASj0H,GAJwB,cAK9BsnF,EAAQrtE,MALsB,IAKjD,2BAAiC,KAAtBA,EAAsB,QACzBA,EAAKnX,QAAQ0+B,IAAQ,GACrB+tN,EAAK9pP,KAAKwU,IAP+B,kDAU7BqtE,EAAQnY,OAVqB,IAUjD,2BAAmC,KAAxBA,EAAwB,QAC3BA,EAAMrsE,QAAQ0+B,IAAQ,GACtB+tN,EAAK9pP,KAAK0pE,IAZ+B,gCAiBzD,SAASoiL,EAAUnrP,EAAG5E,GAClB,OAAO4E,EAAEnG,OAASuB,EAAEvB,OAExB,SAASqxP,EAAO7/N,GACZ,GAAIA,EAAIxxB,QAAU,EACd,OAAOwxB,EAEX,IAJiB,EAIXntB,EAAS,GACT8kE,EAAO,IAAI7pD,IALA,cAMKkS,GANL,IAMjB,2BAA2B,KAAhBhlB,EAAgB,QACnB28D,EAAK5kB,IAAI/3C,KAGbnI,EAAOmB,KAAKgH,GACZ28D,EAAK1tD,IAAIjP,KAXI,8BAajB,OAAOnI,EA8GX,SAASgxH,EAAwB9zF,GAE7B,IAAMswN,EAAwB,WAAW/4O,KAAKyoB,GAE9C,OADAA,EAAMm6D,IAA+Bn6D,GAC7BswN,EAAuB,MAAH,OAAStwN,EAAT,OAAoBA,EAEpD,SAASgwN,EAAsB/mN,GAC3B,IAAIsnN,EAAW,IAAH,OAAOtnN,EAAOnmB,IAAIgxG,GAAyBz2G,KAAK,OAAhD,KACZ,OAAO88E,IAAqBo2J,GAAU,GAE1C,IAAML,EAAoB,WAmBtB,IAAIM,EAAY,KACZC,EAAa,KACjB,OAAO,SAA0BzwN,GAK7B,OAJIwwN,IAAcxwN,IAEdywN,EAvBR,SAAiBzwN,GACb,GAAI0wN,IAA8B,CAI9B,IAFA,IAAMzgO,EAAM,IAAI2sC,YAAY58B,EAAIvhC,QAC5BqiC,EAAS,EACJtiC,EAAIwhC,EAAIvhC,OAAS,EAAGD,GAAK,EAAGA,IACjCyxB,EAAI6Q,KAAYd,EAAIyC,WAAWjkC,GAEnC,OAAOkyP,MAAuCxtE,OAAOjzJ,GAIrD,IADA,IAAIntB,EAAS,GAAI8qG,EAAY,EACpBpvG,EAAIwhC,EAAIvhC,OAAS,EAAGD,GAAK,EAAGA,IACjCsE,EAAO8qG,KAAe5tE,EAAIyB,OAAOjjC,GAErC,OAAOsE,EAAOua,KAAK,IAQNw2G,CADb28H,EAAYxwN,IAGTywN,GA1BW,GA6BbpgH,EAAb,2GACI,SAA8Bc,EAAsBlxH,EAAY0wO,EAAc7vN,GAC1E,IAAI18B,EAAIusP,EAAalxP,MAAM0xI,GAC3B,IAAK/sI,EACD,OAAO,KAEX,IAAIwsP,EAAcD,EAAalyP,QAAU2F,EAAEzE,OAAS,GAChDo3O,EAAc3yO,EAAE,GAAG3F,OACnBoyP,EAAsB/vN,EAAS8vN,EACnC,OAAO,IAAI7xO,IAAMkB,EAAY4wO,EAAsB9Z,EAAc,EAAG92N,EAAY4wO,EAAsB,KAT9G,oCAWI,SAA8B1/G,EAAsBlxH,EAAY6tH,EAAU13B,EAAa4E,GAEnF,IACM81I,EADmBZ,EAAiBpiH,GACF/sG,UAAU+sG,EAASrvI,OAASu8G,EAAW8yB,EAASrvI,OAAS23G,GACjG,OAAO11G,KAAKqwP,uBAAuB5/G,EAAsBlxH,EAAY6wO,EAAgB16I,KAf7F,mCAiBI,SAA6Bs7B,EAAczxH,EAAY4pD,EAAM/oC,GACzD,IAAI18B,EAAIylE,EAAKpqE,MAAMiyI,GACnB,IAAKttI,EACD,OAAO,KAEX,IAAIwsP,EAAcxsP,EAAEzE,OAAS,EACzBo3O,EAAc3yO,EAAE,GAAG3F,OACvB,GAAoB,IAAhBs4O,EACA,OAAO,KAEX,IAAI8Z,EAAsB/vN,EAAS8vN,EACnC,OAAO,IAAI7xO,IAAMkB,EAAY4wO,EAAsB,EAAG5wO,EAAY4wO,EAAsB,EAAI9Z,KA5BpG,oCA8BI,SAA8BrlG,EAAczxH,EAAY6tH,EAAU13B,EAAa4E,GAC3E,IAAMnxE,EAASikG,EAAS/sG,UAAUq1E,EAAa4E,GAC/C,OAAOt6G,KAAKswP,sBAAsBt/G,EAAczxH,EAAY4pB,EAAQusE,OAhC5E,M,6BCvUA,4MAAO,IAUU66I,EAVJC,EAAa,MACbC,EAAgB,IAEhBC,EAAiB,kBACjBC,EAAyB,0BAEzBC,EAAe,gBAI5B,SAAiBL,GACF,EAAAM,aAAe,cACf,EAAAC,eAAiB,gBACjB,EAAAC,eAAiB,gBACjB,EAAAC,uBAAyB,uBACzB,EAAAC,yBAA2B,yBAC3B,EAAAC,yBAA2B,yBAC3B,EAAAC,kBAAoB,kBACpB,EAAAC,iBAAmB,iBARlC,CAAiBb,MAAY,M,8BCV7B,8CAKat8N,EAAoByY,YAAgB,qB,yKCE7C2kN,EAOAC,EAOAC,E,uCAbJ,SAASC,IAIL,OAHKH,IACDA,EAAuB,IAAI9uE,YAAY,aAEpC8uE,EAUJ,SAASI,IAIZ,OAHKF,IACDA,EAAuBhrP,MAA4BirP,KARlDF,IACDA,EAAuB,IAAI/uE,YAAY,aAEpC+uE,IAOAC,EAEJ,IACIx0C,EACA20C,EAFEC,EAAyC,qBAAhBpvE,YAsBtC,SAASqvE,EAAoBziO,EAAQiR,EAAQyB,GAGzC,IAFA,IAAIz/B,EAAS,GACT8qG,EAAY,EACPpvG,EAAI,EAAGA,EAAI+jC,EAAK/jC,IAAK,CAC1B,IAAM+lC,EAAWrK,IAAoBrK,EAAQiR,GAC7CA,GAAU,EACVh+B,EAAO8qG,KAAeptG,OAAOkmC,aAAanC,GAE9C,OAAOzhC,EAAOua,KAAK,IA3BnBg1O,GACA50C,EAAsB,SAAC80C,GAAD,OAAc,IAAIC,EAAcD,IACtDH,EAMJ,SAA+BviO,EAAQiR,EAAQyB,GAC3C,IAAMo6B,EAAO,IAAIC,YAAY/sC,EAAOqK,OAAQ4G,EAAQyB,GACpD,GAAIA,EAAM,IAAkB,QAAZo6B,EAAK,IAA6B,QAAZA,EAAK,IAKvC,OAAO21L,EAAoBziO,EAAQiR,EAAQyB,GAE/C,OAAO2vN,IAAyBhvE,OAAOvmH,MAZvC8gJ,EAAsB,SAAC80C,GAAD,OAAc,IAAIE,GACxCL,EAAgBE,G,IAuBdE,E,WACF,WAAYD,GAAU,oBAClB7xP,KAAK25N,UAAuB,EAAXk4B,EACjB7xP,KAAK05B,QAAU,IAAIwiC,YAAYl8D,KAAK25N,WACpC35N,KAAKgyP,kBAAoB,KACzBhyP,KAAKiyP,cAAgB,E,yCAEzB,WACIjyP,KAAKgyP,kBAAoB,KACzBhyP,KAAKiyP,cAAgB,I,mBAEzB,WACI,OAA+B,OAA3BjyP,KAAKgyP,mBACLhyP,KAAKkyP,eACElyP,KAAKgyP,kBAAkBr1O,KAAK,KAEhC3c,KAAKmyP,iB,0BAEhB,WACI,GAA2B,IAAvBnyP,KAAKiyP,cACL,MAAO,GAEX,IAAMh2L,EAAO,IAAIC,YAAYl8D,KAAK05B,QAAQF,OAAQ,EAAGx5B,KAAKiyP,eAC1D,OAAOR,IAAyBjvE,OAAOvmH,K,0BAE3C,WACI,IAAMm2L,EAAepyP,KAAKmyP,eAC1BnyP,KAAKiyP,cAAgB,EACU,OAA3BjyP,KAAKgyP,kBACLhyP,KAAKgyP,kBAAoB,CAACI,GAG1BpyP,KAAKgyP,kBAAkBhyP,KAAKgyP,kBAAkBj0P,QAAUq0P,I,oBAGhE,SAAOvuN,GACH,IAAMwuN,EAAiBryP,KAAK25N,UAAY35N,KAAKiyP,cACzCI,GAAkB,IACK,IAAnBA,GAAwB54J,IAAwB51D,KAChD7jC,KAAKkyP,eAGblyP,KAAK05B,QAAQ15B,KAAKiyP,iBAAmBpuN,I,yBAEzC,SAAYA,GACJ7jC,KAAKiyP,gBAAkBjyP,KAAK25N,WAE5B35N,KAAKkyP,eAETlyP,KAAK05B,QAAQ15B,KAAKiyP,iBAAmBpuN,I,+BAEzC,SAAkBvE,GACd,IAAMgzN,EAAShzN,EAAIvhC,OACnB,GAAIiC,KAAKiyP,cAAgBK,GAAUtyP,KAAK25N,UAIpC,OAFA35N,KAAKkyP,oBACLlyP,KAAKgyP,kBAAkBhyP,KAAKgyP,kBAAkBj0P,QAAUuhC,GAG5D,IAAK,IAAIxhC,EAAI,EAAGA,EAAIw0P,EAAQx0P,IACxBkC,KAAK05B,QAAQ15B,KAAKiyP,iBAAmB3yN,EAAIyC,WAAWjkC,O,KAI1Di0P,E,WACF,aAAc,oBACV/xP,KAAKsyG,QAAU,GACftyG,KAAKuyP,WAAa,E,yCAEtB,WACIvyP,KAAKsyG,QAAU,GACftyG,KAAKuyP,WAAa,I,mBAEtB,WACI,OAAOvyP,KAAKsyG,QAAQ31F,KAAK,M,oBAE7B,SAAOknB,GACH7jC,KAAKsyG,QAAQtyG,KAAKuyP,cAAgBzyP,OAAOkmC,aAAanC,K,yBAE1D,SAAYA,GACR7jC,KAAKsyG,QAAQtyG,KAAKuyP,cAAgBzyP,OAAOkmC,aAAanC,K,+BAE1D,SAAkBvE,GACdt/B,KAAKsyG,QAAQtyG,KAAKuyP,cAAgBjzN,M,mCC/I1C,8CACakzN,EAAoB9lN,YAAgB,qB,4HCOpCunM,EAAb,WACI,WAAY3nM,GAAe,oBACvB,IAAIF,EAAeqmN,YAAQnmN,GAC3BtsC,KAAKssC,cAAgBF,EACrBpsC,KAAK0yP,UAAYze,EAAoB0e,gBAAgBvmN,GACrDpsC,KAAK4tC,KAAO,IAAIrG,IALxB,uCAcI,SAAI1D,EAAU5lB,GACV,IAAIjc,EAAQywP,YAAQx0O,GAChB4lB,GAAY,GAAKA,EAAW,IAC5B7jC,KAAK0yP,UAAU7uN,GAAY7hC,EAG3BhC,KAAK4tC,KAAKpG,IAAI3D,EAAU7hC,KApBpC,iBAuBI,SAAI6hC,GACA,OAAIA,GAAY,GAAKA,EAAW,IACrB7jC,KAAK0yP,UAAU7uN,GAGd7jC,KAAK4tC,KAAKnb,IAAIoR,IAAa7jC,KAAKssC,iBA5BpD,8BAOI,SAAuBF,GAEnB,IADA,IAAIwmN,EAAW,IAAI52L,WAAW,KACrBl+D,EAAI,EAAGA,EAAI,IAAKA,IACrB80P,EAAS90P,GAAKsuC,EAElB,OAAOwmN,MAZf,KAgCaC,EAAb,WACI,aAAc,oBACV7yP,KAAKsqC,QAAU,IAAI2pM,EAAoB,GAF/C,uCAII,SAAIpwM,GACA7jC,KAAKsqC,QAAQ9C,IAAI3D,EAAU,KALnC,iBAOI,SAAIA,GACA,OAAuC,IAA/B7jC,KAAKsqC,QAAQ7X,IAAIoR,OARjC,M,qJCpCaisF,EAAb,WACI,WAAY1vF,EAAQj7B,EAAMipC,GAAU,oBAChCpuC,KAAK8yP,iBAAcj5O,EACnB7Z,KAAKogC,OAAkB,EAATA,EACdpgC,KAAKmF,KAAOA,EACZnF,KAAKouC,SAAWA,EALxB,4CAOI,WACI,MAAO,IAAMpuC,KAAKogC,OAAS,KAAOpgC,KAAKmF,KAAO,QARtD,KAWa8hM,EACT,WAAY7/E,EAAQzC,GAAU,oBAC1B3kH,KAAK+yP,8BAA2Bl5O,EAChC7Z,KAAKonH,OAASA,EACdpnH,KAAK2kH,SAAWA,GAGXuiF,EACT,WAAY9/E,EAAQzC,GAAU,oBAC1B3kH,KAAKgzP,+BAA4Bn5O,EACjC7Z,KAAKonH,OAASA,EACdpnH,KAAK2kH,SAAWA,I,mLChBX4kF,EAAb,gGACI,SAAmB3rF,EAAaq1I,EAAUC,EAAe9yO,EAAOC,GAE5D,MAAO,CAAED,MAAOA,EAAOC,IAAKA,EAAK4yO,SAAUA,EAAUC,cAAeA,KAH5E,qCAKI,SAA+BvsK,EAAgB7xD,EAAOnW,GAClD,IAAIi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAChD,OAAOvf,KAAKmzP,0BAA0Bv1I,EAAaj3B,EAAgBhoE,KAP3E,uCASI,SAAiCi/F,EAAaj3B,EAAgBhoE,GAE1D,IADA,IAAIs0O,EAAW,EACNpF,EAAUlvO,EAASa,OAAS,EAAGquO,GAAW,EAAGA,IAAW,CAC7D,IAAI/rN,EAAS87E,EAAY77E,WAAW8rN,GAChCuF,EAAUzsK,EAAel0D,IAAIqP,GACjC,GAAgB,IAAZsxN,EAA6B,CAC7B,GAAiB,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASvF,EAAU,EAAG7tP,KAAKszP,eAAe11I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,IAE9IoF,EAAW,OAEV,GAAgB,IAAZG,EAAmC,CACxC,GAAiB,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASvF,EAAU,EAAG7tP,KAAKszP,eAAe11I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,IAE9IoF,EAAW,OAEV,GAAgB,IAAZG,GACY,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASvF,EAAU,EAAG7tP,KAAKszP,eAAe11I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,IAItJ,OAAiB,IAAboF,EACOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAU,EAAoB,EAAGjzP,KAAKszP,eAAe11I,EAAaj3B,EAAgBssK,EAAU,IAE9H,OAnCf,4BAqCI,SAAsBr1I,EAAaj3B,EAAgBssK,EAAU/wN,GAEzD,IADA,IAAIL,EAAM+7E,EAAY7/G,OACb8vP,EAAU3rN,EAAY2rN,EAAUhsN,EAAKgsN,IAAW,CACrD,IAAI/rN,EAAS87E,EAAY77E,WAAW8rN,GAChCuF,EAAUzsK,EAAel0D,IAAIqP,GACjC,GAAgB,IAAZsxN,EACA,OAAOvF,EAEX,GAAiB,IAAboF,GAA4C,IAAZG,EAChC,OAAOvF,EAEX,GAAiB,IAAboF,GAA8C,IAAZG,EAClC,OAAOvF,EAGf,OAAOhsN,IApDf,iCAsDI,SAA2B8kD,EAAgB7xD,EAAOnW,GAC9C,IAAIi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAChD,OAAOvf,KAAKuzP,sBAAsB31I,EAAaj3B,EAAgBhoE,KAxDvE,mCA0DI,SAA6Bi/F,EAAaj3B,EAAgBhoE,GAGtD,IAFA,IAAIs0O,EAAW,EACXpxN,EAAM+7E,EAAY7/G,OACb8vP,EAAUlvO,EAASa,OAAS,EAAGquO,EAAUhsN,EAAKgsN,IAAW,CAC9D,IAAI/rN,EAAS87E,EAAY77E,WAAW8rN,GAChCuF,EAAUzsK,EAAel0D,IAAIqP,GACjC,GAAgB,IAAZsxN,EAA6B,CAC7B,GAAiB,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASpzP,KAAKwzP,iBAAiB51I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,GAAIA,GAEvIoF,EAAW,OAEV,GAAgB,IAAZG,EAAmC,CACxC,GAAiB,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASpzP,KAAKwzP,iBAAiB51I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,GAAIA,GAEvIoF,EAAW,OAEV,GAAgB,IAAZG,GACY,IAAbH,EACA,OAAOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAUG,EAASpzP,KAAKwzP,iBAAiB51I,EAAaj3B,EAAgBssK,EAAUpF,EAAU,GAAIA,GAI/I,OAAiB,IAAboF,EACOjzP,KAAKqzP,YAAYz1I,EAAaq1I,EAAU,EAAoBjzP,KAAKwzP,iBAAiB51I,EAAaj3B,EAAgBssK,EAAUpxN,EAAM,GAAIA,GAEvI,OArFf,8BAuFI,SAAwB+7E,EAAaj3B,EAAgBssK,EAAU/wN,GAC3D,IAAK,IAAI2rN,EAAU3rN,EAAY2rN,GAAW,EAAGA,IAAW,CACpD,IAAI/rN,EAAS87E,EAAY77E,WAAW8rN,GAChCuF,EAAUzsK,EAAel0D,IAAIqP,GACjC,GAAgB,IAAZsxN,EACA,OAAOvF,EAAU,EAErB,GAAiB,IAAboF,GAA4C,IAAZG,EAChC,OAAOvF,EAAU,EAErB,GAAiB,IAAboF,GAA8C,IAAZG,EAClC,OAAOvF,EAAU,EAGzB,OAAO,IArGf,0BAuGI,SAAoBlnK,EAAgB7xD,EAAOnW,EAAU80O,GACjD,IAAIl0O,EAAaZ,EAASY,WACtBC,EAASb,EAASa,OACP,IAAXA,GACID,EAAa,IACbA,GAA0B,EAC1BC,EAASsV,EAAMgsG,iBAAiBvhH,IAGxC,IAAIm0O,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYC,IAC5G,GAA2B,IAAvBi0O,EACA,OAAO,IAAItzO,IAASZ,EAAYm0O,EAAiBA,EAAetzO,MAAQ,EAAI,GAEhF,GAA2B,IAAvBqzO,EAQA,OAPIC,GAC+B,IAA5BA,EAAeT,UACfS,EAAerzO,IAAMqzO,EAAetzO,QAAU,GACb,IAAjCszO,EAAeR,gBAElBQ,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYm0O,EAAetzO,MAAQ,KAE5H,IAAID,IAASZ,EAAYm0O,EAAiBA,EAAetzO,MAAQ,EAAI,GAEhF,GAA2B,IAAvBqzO,EAAkD,CAClD,KAAOC,GAC4B,IAA5BA,EAAeT,UAElBS,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYm0O,EAAetzO,MAAQ,IAEnI,OAAO,IAAID,IAASZ,EAAYm0O,EAAiBA,EAAetzO,MAAQ,EAAI,GAMhF,OAHIszO,GAAkBl0O,GAAUk0O,EAAerzO,IAAM,IACjDqzO,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYm0O,EAAetzO,MAAQ,KAE5H,IAAID,IAASZ,EAAYm0O,EAAiBA,EAAerzO,IAAM,EAAI,KA1IlF,+BA4II,SAAyByU,EAAOnW,GAC5B,IAAMY,EAAaZ,EAASY,WACtBk2E,EAAY3gE,EAAMgsG,iBAAiBvhH,GACzC,GAAwB,IAApBZ,EAASa,OACT,OAAQD,EAAa,EAAI,IAAIY,IAASZ,EAAa,EAAGuV,EAAMgsG,iBAAiBvhH,EAAa,IAAMZ,EAGpG,IADA,IAAMi/F,EAAc9oF,EAAM01E,eAAejrF,GAChCC,EAASb,EAASa,OAAS,EAAGA,EAAS,EAAGA,IAAU,CACzD,IAAMvT,EAAO2xG,EAAY77E,WAAWviB,EAAS,GACvCusB,EAAQ6xE,EAAY77E,WAAWviB,EAAS,GAC9C,GAAa,KAATvT,GAAyC,KAAV8/B,EAE/B,OAAO,IAAI5rB,IAASZ,EAAYC,GAEpC,GAAIi6E,IAA2BxtF,IAASwtF,IAA2B1tD,GAE/D,OAAO,IAAI5rB,IAASZ,EAAYC,GAEpC,GAAIi6E,IAA2BxtF,IAASwtF,IAA2B1tD,IAE3DvsB,EAAS,EAAIi2E,EAAW,CACxB,IAAMm+J,EAAah2I,EAAY77E,WAAWviB,GAC1C,GAAIi6E,IAA2Bm6J,GAC3B,OAAO,IAAIzzO,IAASZ,EAAYC,IAKhD,OAAO,IAAIW,IAASZ,EAAY,KAxKxC,2BA0KI,SAAqBonE,EAAgB7xD,EAAOnW,EAAU80O,GAClD,IAAIl0O,EAAaZ,EAASY,WACtBC,EAASb,EAASa,OAClBq0O,GAAY,EACZr0O,IAAWsV,EAAMgsG,iBAAiBvhH,IAC9BA,EAAauV,EAAMg1E,iBACnB+pJ,GAAY,EACZt0O,GAA0B,EAC1BC,EAAS,GAGjB,IAAIs0O,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYC,IACxG,GAA2B,IAAvBi0O,EACIK,GAA8C,IAA5BA,EAAeb,UAC7Ba,EAAezzO,IAAMyzO,EAAe1zO,QAAU,GAAsC,IAAjC0zO,EAAeZ,gBAElEY,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYu0O,EAAezzO,IAAM,KAI7Hb,EADAs0O,EACSA,EAAezzO,IAAM,EAGrByU,EAAMgsG,iBAAiBvhH,QAGnC,GAA2B,IAAvBk0O,EAAkD,CAOvD,IANII,IAIAr0O,EAAS,GAENs0O,IAC6B,IAA5BA,EAAeb,UACZa,EAAe1zO,MAAQ,GAAKZ,IAGnCs0O,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYu0O,EAAezzO,IAAM,IAGzHb,EADAs0O,EACSA,EAAe1zO,MAAQ,EAGvB0U,EAAMgsG,iBAAiBvhH,QAIhCu0O,IAAmBD,GAAar0O,GAAUs0O,EAAe1zO,MAAQ,IACjE0zO,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYu0O,EAAezzO,IAAM,KAGzHb,EADAs0O,EACSA,EAAe1zO,MAAQ,EAGvB0U,EAAMgsG,iBAAiBvhH,GAGxC,OAAO,IAAIY,IAASZ,EAAYC,KApOxC,gCAsOI,SAA0BsV,EAAOnW,GAC7B,IAAMY,EAAaZ,EAASY,WACtBk2E,EAAY3gE,EAAMgsG,iBAAiBvhH,GACzC,GAAIZ,EAASa,SAAWi2E,EACpB,OAAQl2E,EAAauV,EAAMg1E,eAAiB,IAAI3pF,IAASZ,EAAa,EAAG,GAAKZ,EAGlF,IADA,IAAMi/F,EAAc9oF,EAAM01E,eAAejrF,GAChCC,EAASb,EAASa,OAAS,EAAGA,EAASi2E,EAAWj2E,IAAU,CACjE,IAAMvT,EAAO2xG,EAAY77E,WAAWviB,EAAS,GACvCusB,EAAQ6xE,EAAY77E,WAAWviB,EAAS,GAC9C,GAAa,KAATvT,GAAyC,KAAV8/B,EAE/B,OAAO,IAAI5rB,IAASZ,EAAYC,GAEpC,GAAIi6E,IAA2BxtF,IAASwtF,IAA2B1tD,GAE/D,OAAO,IAAI5rB,IAASZ,EAAYC,GAEpC,GAAIi6E,IAA2BxtF,IAASwtF,IAA2B1tD,IAE3DvsB,EAAS,EAAIi2E,EAAW,CACxB,IAAMm+J,EAAah2I,EAAY77E,WAAWviB,GAC1C,GAAIi6E,IAA2Bm6J,GAC3B,OAAO,IAAIzzO,IAASZ,EAAYC,IAKhD,OAAO,IAAIW,IAASZ,EAAYk2E,KAlQxC,uCAoQI,SAAiC3gE,EAAOnW,GACpC,IAAMi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAC5C2iB,EAAavjB,EAASa,OAAS,EAC/Bw0O,EAAoBv6J,IAA+BmkB,EAAa17E,GACtE,OAAI8xN,EAAoB,EAAI9xN,EACjB,IAAI7jB,IAAMM,EAASY,WAAYy0O,EAAoB,EAAGr1O,EAASY,WAAYZ,EAASa,QAExF,OA3Qf,4BA6QI,SAAsBy5H,EAAKw6G,GACvB,IAAM9sK,EAAiBsyD,EAAItyD,eACrB7xD,EAAQmkH,EAAInkH,MACZqqD,EAAY85D,EAAI95D,UAChB80K,EAAuBh7G,EAAIg7G,qBACjC,IAAK90K,EAAUzgE,UACX,OAAOygE,EAEX,GAAIopI,IAAiB2rC,wBAAwBj7G,EAAI/xD,kBAAmB+xD,EAAIjyD,oBAAqBiyD,EAAIhyD,kBAAmBgyD,EAAIvxD,iBAAiBujG,0BAA2BhyC,EAAInkH,MAAO,CAACmkH,EAAI95D,WAAY85D,EAAIk7G,sBAAuB,CACvN,IAAMx1O,EAAWs6H,EAAI95D,UAAUyjH,cAC/B,OAAO,IAAIvkL,IAAMM,EAASY,WAAYZ,EAASa,OAAS,EAAGb,EAASY,WAAYZ,EAASa,OAAS,GAEtG,IAAMb,EAAW,IAAIwB,IAASg/D,EAAU8K,mBAAoB9K,EAAU+K,gBAClE3qE,EAAaZ,EAASY,WACtBC,EAASb,EAASa,OACtB,GAAmB,IAAfD,GAA+B,IAAXC,EAEpB,OAAO,KAEX,GAAIy0O,EAAsB,CACtB,IAAI9yP,EAAInB,KAAKo0P,0BAA0Bt/N,EAAOnW,GAC9C,GAAIxd,EACA,OAAOA,EAGf,IAAIuyP,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAOnW,GAgCnF,OA/B2B,IAAvB80O,EACIC,EACAl0O,EAASk0O,EAAetzO,MAAQ,EAG5BZ,EAAS,EACTA,EAAS,GAGTD,IACAC,EAASsV,EAAMgsG,iBAAiBvhH,KAKpCm0O,GAAkBl0O,GAAUk0O,EAAerzO,IAAM,IACjDqzO,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYm0O,EAAetzO,MAAQ,KAE/HszO,EACAl0O,EAASk0O,EAAerzO,IAAM,EAG1Bb,EAAS,EACTA,EAAS,GAGTD,IACAC,EAASsV,EAAMgsG,iBAAiBvhH,KAIrC,IAAIlB,IAAMkB,EAAYC,EAAQb,EAASY,WAAYZ,EAASa,UAtU3E,8BAwUI,SAAwBmnE,EAAgB7xD,EAAOqqD,GAC3C,IAAKA,EAAUzgE,UACX,OAAOygE,EAEX,IAAMxgE,EAAW,IAAIwB,IAASg/D,EAAU8K,mBAAoB9K,EAAU+K,gBAClE/oF,EAAInB,KAAKq0P,4BAA4Bv/N,EAAOnW,GAChD,OAAIxd,GAGGnB,KAAKs0P,sCAAsC3tK,EAAgB7xD,EAAOnW,KAjVjF,iCAmVI,SAA2B2gB,EAAKrgC,GAC5B,IAAM4kC,EAAWvE,EAAIyC,WAAW9iC,GAChC,OAAqB,KAAb4kC,GAA4C,IAAbA,IArV/C,yCAuVI,SAAmC/O,EAAOnW,GACtC,IAAMi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAC5Cg1O,EAAoB32I,EAAY7/G,OACtC,GAA0B,IAAtBw2P,EAEA,OAAO,KAEX,IAAIC,EAAY98O,KAAKC,IAAIgH,EAASa,OAAS,EAAG,GAC9C,IAAKxf,KAAKy0P,oBAAoB72I,EAAa42I,GAEvC,OAAO,KAEX,IAAIE,EAAah9O,KAAKgI,IAAIf,EAASa,OAAS,EAAG+0O,EAAoB,GACnE,IAAKv0P,KAAKy0P,oBAAoB72I,EAAa82I,GAEvC,OAAO,KAGX,KAAOF,EAAY,GAAKx0P,KAAKy0P,oBAAoB72I,EAAa42I,EAAY,IACtEA,IAGJ,KAAOE,EAAa,EAAIH,GAAqBv0P,KAAKy0P,oBAAoB72I,EAAa82I,EAAa,IAC5FA,IAEJ,OAAO,IAAIr2O,IAAMM,EAASY,WAAYi1O,EAAY,EAAG71O,EAASY,WAAYm1O,EAAa,KAhX/F,mDAkXI,SAA6C/tK,EAAgB7xD,EAAOnW,GAAU,WACpEi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAC5CoiH,EAAa/jB,EAAY7/G,OAC/B,GAAmB,IAAf4jI,EAEA,OAAIhjH,EAASY,WAAa,EACf,IAAIlB,IAAMM,EAASY,WAAa,EAAGuV,EAAMgsG,iBAAiBniH,EAASY,WAAa,GAAIZ,EAASY,WAAY,GAG5GZ,EAASY,WAAauV,EAAMg1E,eACrB,IAAIzrF,IAAMM,EAASY,WAAY,EAAGZ,EAASY,WAAa,EAAG,GAI3D,IAAIlB,IAAMM,EAASY,WAAY,EAAGZ,EAASY,WAAY,GAI1E,IAAMo1O,EAAc,SAACpmH,GACjB,OAAQA,EAAKnuH,MAAQ,GAAKzB,EAASa,QAAUb,EAASa,QAAU+uH,EAAKluH,IAAM,GAEzEu0O,EAA0B,SAACr2O,EAAaE,GAG1C,OAFAF,EAAc7G,KAAKgI,IAAInB,EAAaI,EAASa,QAC7Cf,EAAY/G,KAAKC,IAAI8G,EAAWE,EAASa,QAClC,IAAInB,IAAMM,EAASY,WAAYhB,EAAaI,EAASY,WAAYd,IAEtEo2O,EAAkC,SAACtmH,GAIrC,IAHA,IAAIhwH,EAAcgwH,EAAKnuH,MAAQ,EAC3B3B,EAAY8vH,EAAKluH,IAAM,EACvBy0O,GAAqB,EAClBr2O,EAAY,EAAIkjH,GAAc,EAAK8yH,oBAAoB72I,EAAan/F,EAAY,IACnFq2O,GAAqB,EACrBr2O,IAEJ,IAAKq2O,EACD,KAAOv2O,EAAc,GAAK,EAAKk2O,oBAAoB72I,EAAar/F,EAAc,IAC1EA,IAGR,OAAOq2O,EAAwBr2O,EAAaE,IAE1Ci1O,EAAiBnqD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAOnW,GACrF,GAAI+0O,GAAkBiB,EAAYjB,GAC9B,OAAOmB,EAAgCnB,GAE3C,IAAMI,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAOnW,GACjF,OAAIm1O,GAAkBa,EAAYb,GACvBe,EAAgCf,GAEvCJ,GAAkBI,EACXc,EAAwBlB,EAAerzO,IAAM,EAAGyzO,EAAe1zO,MAAQ,GAE9EszO,EACOkB,EAAwBlB,EAAetzO,MAAQ,EAAGszO,EAAerzO,IAAM,GAE9EyzO,EACOc,EAAwBd,EAAe1zO,MAAQ,EAAG0zO,EAAezzO,IAAM,GAE3Eu0O,EAAwB,EAAGjzH,EAAa,KA5avD,iCA8aI,SAA2B7sG,EAAOqqD,GAC9B,IAAKA,EAAUzgE,UACX,OAAOygE,EAEX,IAAMxsC,EAAMwsC,EAAUyjH,cAChBmyD,EAAaxrD,EAAeyrD,kBAAkBlgO,EAAO6d,GAC3D,OAAO,IAAIt0B,IAAMs0B,EAAIpzB,WAAYozB,EAAInzB,OAAQu1O,EAAWx1O,WAAYw1O,EAAWv1O,UApbvF,yCAsbI,SAAmC8f,EAAK4C,GAEpC,IADA,IAAIL,EAAMvC,EAAIvhC,OACL8vP,EAAU3rN,EAAY2rN,EAAUhsN,EAAKgsN,IAAW,CACrD,IAAIhjK,EAAKvrD,EAAIyB,OAAO8sN,GACpB,GAAW,MAAPhjK,GAAqB,OAAPA,EACd,OAAOgjK,EAGf,OAAOhsN,IA9bf,wCAgcI,SAAkC/M,EAAOnW,GACrC,IAAMi/F,EAAc9oF,EAAM01E,eAAe7rF,EAASY,YAC5C2iB,EAAavjB,EAASa,OAAS,EAC/By1O,EAAqBj1P,KAAKk1P,4BAA4Bt3I,EAAa17E,GACzE,OAAIA,EAAa,EAAI+yN,EAEV,IAAI52O,IAAMM,EAASY,WAAYZ,EAASa,OAAQb,EAASY,WAAY01O,EAAqB,GAE9F,OAxcf,6BA0cI,SAAuBh8G,EAAKw6G,GACxB,IAAM9sK,EAAiBsyD,EAAItyD,eACrB7xD,EAAQmkH,EAAInkH,MACZqqD,EAAY85D,EAAI95D,UAChB80K,EAAuBh7G,EAAIg7G,qBACjC,IAAK90K,EAAUzgE,UACX,OAAOygE,EAEX,IAAMxgE,EAAW,IAAIwB,IAASg/D,EAAU8K,mBAAoB9K,EAAU+K,gBAClE3qE,EAAaZ,EAASY,WACtBC,EAASb,EAASa,OAChBuiG,EAAYjtF,EAAMg1E,eAClBrU,EAAY3gE,EAAMgsG,iBAAiBvhH,GACzC,GAAIA,IAAewiG,GAAaviG,IAAWi2E,EAEvC,OAAO,KAEX,GAAIw+J,EAAsB,CACtB,IAAI9yP,EAAInB,KAAKm1P,2BAA2BrgO,EAAOnW,GAC/C,GAAIxd,EACA,OAAOA,EAGf,IAAI2yP,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAOnW,GA4C/E,OA3C2B,IAAvB80O,EACIK,EACAt0O,EAASs0O,EAAezzO,IAAM,EAG1Bb,EAASi2E,GAAal2E,IAAewiG,EACrCviG,EAASi2E,GAGTl2E,IAGIC,GAFJs0O,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAY,KAEvFu0O,EAAe1zO,MAAQ,EAGvB0U,EAAMgsG,iBAAiBvhH,KAMxCu0O,GAAkBt0O,GAAUs0O,EAAe1zO,MAAQ,IACnD0zO,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAYu0O,EAAezzO,IAAM,KAEzHyzO,EACAt0O,EAASs0O,EAAe1zO,MAAQ,EAG5BZ,EAASi2E,GAAal2E,IAAewiG,EACrCviG,EAASi2E,GAGTl2E,IAGIC,GAFJs0O,EAAiBvqD,EAAewqD,oBAAoBptK,EAAgB7xD,EAAO,IAAI3U,IAASZ,EAAY,KAEvFu0O,EAAe1zO,MAAQ,EAGvB0U,EAAMgsG,iBAAiBvhH,KAKzC,IAAIlB,IAAMkB,EAAYC,EAAQb,EAASY,WAAYZ,EAASa,UA7gB3E,kCA+gBI,SAA4BsV,EAAOqqD,GAC/B,IAAKA,EAAUzgE,UACX,OAAOygE,EAEX,IAAMxsC,EAAMwsC,EAAUyjH,cAChBmyD,EAAaxrD,EAAe6rD,mBAAmBtgO,EAAO6d,GAC5D,OAAO,IAAIt0B,IAAMs0B,EAAIpzB,WAAYozB,EAAInzB,OAAQu1O,EAAWx1O,WAAYw1O,EAAWv1O,UArhBvF,mCAuhBI,SAA6BsV,EAAOvV,EAAYgvH,GAC5C,IAAM1vH,EAAQ,IAAIR,IAAMkB,EAAYgvH,EAAKnuH,MAAQ,EAAGb,EAAYgvH,EAAKluH,IAAM,GAC3E,MAAO,CACHkuH,KAAMz5G,EAAM2oF,gBAAgB5+F,GAC5BN,YAAaM,EAAMN,YACnBE,UAAWI,EAAMJ,aA5hB7B,+BA+hBI,SAAyBqW,EAAOkiF,EAAiBr4F,GAC7C,IAAMgoE,EAAiButJ,YAAwBl9H,GACzCq+I,EAAW9rD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAOnW,GAC/E,GAAI02O,GAAkC,IAAtBA,EAASpC,UAAgCoC,EAASj1O,OAASzB,EAASa,OAAS,GAAKb,EAASa,OAAS,GAAK61O,EAASh1O,IAC9H,OAAOkpL,EAAe+rD,sBAAsBxgO,EAAOnW,EAASY,WAAY81O,GAE5E,IAAMlwE,EAAWokB,EAAewqD,oBAAoBptK,EAAgB7xD,EAAOnW,GAC3E,OAAIwmK,GAAkC,IAAtBA,EAAS8tE,UAAgC9tE,EAAS/kK,OAASzB,EAASa,OAAS,GAAKb,EAASa,OAAS,GAAK2lK,EAAS9kK,IACvHkpL,EAAe+rD,sBAAsBxgO,EAAOnW,EAASY,WAAY4lK,GAErE,OAziBf,kBA2iBI,SAAYjgC,EAAQpwH,EAAO0lF,EAAQvxB,EAAiBtqE,GAChD,IAKQJ,EACAE,EA2BJF,EACAE,EAlCEkoE,EAAiButJ,YAAwBhvF,EAAOv+D,gBAClD0uK,EAAW9rD,EAAeoqD,wBAAwBhtK,EAAgB7xD,EAAOnW,GACzEwmK,EAAWokB,EAAewqD,oBAAoBptK,EAAgB7xD,EAAOnW,GACzE,IAAKsqE,EA4BD,OAxBIosK,GAAkC,IAAtBA,EAASpC,UAAgCoC,EAASj1O,OAASzB,EAASa,OAAS,GAAKb,EAASa,OAAS,GAAK61O,EAASh1O,KAE9H9B,EAAc82O,EAASj1O,MAAQ,EAC/B3B,EAAY42O,EAASh1O,IAAM,GAEtB8kK,GAAkC,IAAtBA,EAAS8tE,UAAgC9tE,EAAS/kK,OAASzB,EAASa,OAAS,GAAKb,EAASa,OAAS,GAAK2lK,EAAS9kK,KAEnI9B,EAAc4mK,EAAS/kK,MAAQ,EAC/B3B,EAAY0mK,EAAS9kK,IAAM,IAIvB9B,EADA82O,EACcA,EAASh1O,IAAM,EAGf,EAGd5B,EADA0mK,EACYA,EAAS/kK,MAAQ,EAGjB0U,EAAMgsG,iBAAiBniH,EAASY,aAG7C,IAAIopE,IAAkB,IAAItqE,IAAMM,EAASY,WAAYhB,EAAaI,EAASY,WAAYd,GAAY,EAAG,IAAI0B,IAASxB,EAASY,WAAYd,GAAY,GAI3J42O,GAAkC,IAAtBA,EAASpC,UAAgCoC,EAASj1O,MAAQzB,EAASa,OAAS,GAAKb,EAASa,OAAS,EAAI61O,EAASh1O,KAE5H9B,EAAc82O,EAASj1O,MAAQ,EAC/B3B,EAAY42O,EAASh1O,IAAM,GAEtB8kK,GAAkC,IAAtBA,EAAS8tE,UAAgC9tE,EAAS/kK,MAAQzB,EAASa,OAAS,GAAKb,EAASa,OAAS,EAAI2lK,EAAS9kK,KAEjI9B,EAAc4mK,EAAS/kK,MAAQ,EAC/B3B,EAAY0mK,EAAS9kK,IAAM,IAG3B9B,EAAcI,EAASa,OACvBf,EAAYE,EAASa,QAEzB,IACIA,EADAD,EAAaZ,EAASY,WAE1B,GAAIi7F,EAAO5xB,eAAehqE,iBAAiBD,GACvCa,EAASg7F,EAAO5xB,eAAenqE,eAE9B,GAAIE,EAAS6zB,gBAAgBgoE,EAAO5xB,eAAevpE,oBAAqB,CACzEG,EAASjB,EACT,IAAIg3O,EAAmB,IAAIp1O,IAASZ,EAAYC,GAC5Cg7F,EAAO5xB,eAAehqE,iBAAiB22O,KACvC/1O,EAASg7F,EAAO5xB,eAAenqE,eAGlC,CACDe,EAASf,EACT,IAAI82O,EAAmB,IAAIp1O,IAASZ,EAAYC,GAC5Cg7F,EAAO5xB,eAAehqE,iBAAiB22O,KACvC/1O,EAASg7F,EAAO5xB,eAAerqE,aAGvC,OAAOi8F,EAAOnhC,MAAK,EAAM95D,EAAYC,EAAQ,OAhnBrD,KAmnBag2O,EAAb,6KACI,SAA0Bv8G,GACtB,IAAMw8G,EAAaC,EAAe,CAC9BnsD,EAAeosD,eAAe18G,EAAK,GACnCswD,EAAeosD,eAAe18G,EAAK,GACnCswD,EAAeqsD,oBAAoB38G,EAAInkH,MAAOmkH,EAAI95D,aAGtD,OADAs2K,EAAW3sP,KAAKuV,IAAM2jG,wBACfyzI,EAAW,KAR1B,iCAUI,SAA2Bx8G,GACvB,IAAMw8G,EAAaC,EAAe,CAC9BnsD,EAAessD,gBAAgB58G,EAAK,GACpCswD,EAAessD,gBAAgB58G,EAAK,GACpCswD,EAAeusD,qBAAqB78G,EAAInkH,MAAOmkH,EAAI95D,aAGvD,OADAs2K,EAAW3sP,KAAKuV,IAAM4jL,0BACfwzD,EAAW,KAjB1B,8BAmBI,SAAwB9uK,EAAgB7xD,EAAOnW,GAC3C,IAAM82O,EAAaC,EAAe,CAC9BnsD,EAAewsD,aAAapvK,EAAgB7xD,EAAOnW,EAAU,GAC7D4qL,EAAewsD,aAAapvK,EAAgB7xD,EAAOnW,EAAU,GAC7D4qL,EAAeyrD,kBAAkBlgO,EAAOnW,KAG5C,OADA82O,EAAW3sP,KAAKqX,IAASgiB,SAClBszN,EAAW,KA1B1B,+BA4BI,SAAyB9uK,EAAgB7xD,EAAOnW,GAC5C,IAAM82O,EAAaC,EAAe,CAC9BnsD,EAAeysD,cAAcrvK,EAAgB7xD,EAAOnW,EAAU,GAC9D4qL,EAAeysD,cAAcrvK,EAAgB7xD,EAAOnW,EAAU,GAC9D4qL,EAAe6rD,mBAAmBtgO,EAAOnW,KAG7C,OADA82O,EAAW3sP,KAAKqX,IAASgiB,SAClBszN,EAAW,OAnC1B,GAAwClsD,GAsCxC,SAASmsD,EAAenmO,GACpB,OAAOA,EAAIP,QAAO,SAAA7kB,GAAE,OAAI+gF,QAAQ/gF,Q,6BCpqBpC,sGAIO,IACI8rP,EAeAC,EAhBEC,EAAc,CAAE3iB,SAAS,EAAOzmJ,KAAK,IAElD,SAAWkpK,GAIPA,EAAqBA,EAAoB,KAAW,GAAK,OAIzDA,EAAqBA,EAAoB,QAAc,GAAK,UAI5DA,EAAqBA,EAAoB,MAAY,GAAK,QAZ9D,CAaGA,IAAyBA,EAAuB,KAEnD,SAAWC,GACPA,EAAeA,EAAc,KAAW,GAAK,OAC7CA,EAAeA,EAAc,MAAY,GAAK,QAC9CA,EAAeA,EAAc,OAAa,GAAK,SAC/CA,EAAeA,EAAc,KAAW,GAAK,OAJjD,CAKGA,IAAmBA,EAAiB,M,qJCxB1B9V,EAAgB,CAIzBgW,UAAW,eAIXC,aAAc,cAIdC,MAAO,QAIPjW,K,OAAM7C,EAAMr0K,KAIZotL,UAAW,aAEFC,EAAb,WACI,WAAYr3P,GAAM,oBACda,KAAKb,KAAOA,EAFpB,0CAII,cAJJ,qBAOI,WACI,OAAOa,KAAKb,SARpB,KAWas3P,EAAY,CACrBC,4BAAwB78O,I,yMC9Bf88O,EAAb,WACI,WAAY93O,EAAO+3O,EAAqBC,GAAoB,oBACxD72P,KAAKgkI,OAASnlH,EACd7e,KAAK82P,qBAAuBF,EAC5B52P,KAAK+2P,oBAAsBF,EAJnC,qDAMI,SAAkB/hO,EAAOiyF,GACrBA,EAAQuvD,wBAAwB,IAAIj4J,IAAMre,KAAKgkI,OAAO1lH,gBAAiBte,KAAKgkI,OAAOzlH,YAAave,KAAKgkI,OAAO1lH,gBAAiBte,KAAKgkI,OAAOzlH,aAAcve,KAAK82P,sBAC5J/vI,EAAQuvD,wBAAwB,IAAIj4J,IAAMre,KAAKgkI,OAAOxlH,cAAexe,KAAKgkI,OAAOvlH,UAAWze,KAAKgkI,OAAOxlH,cAAexe,KAAKgkI,OAAOvlH,WAAYze,KAAK+2P,uBAR5J,gCAUI,SAAmBjiO,EAAOyhJ,GACtB,IAAIygF,EAAwBzgF,EAAOE,2BAC/BwgF,EAAsBD,EAAsB,GAAGn4O,MAC/Cq4O,EAAuBF,EAAsB,GAAGn4O,MACpD,OAAO,IAAIqqE,IAAU+tK,EAAoBz4O,cAAey4O,EAAoBx4O,UAAWy4O,EAAqB14O,cAAe04O,EAAqBz4O,UAAYze,KAAK+2P,oBAAoBh5P,YAd7L,K,kCCSamqN,EAAb,2FACI,SAAchjE,EAAQpwH,EAAOotG,GACzB,GAAc,OAAVptG,GAAiC,OAAfotG,EAClB,MAAO,GAGX,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAK,IAAIq5P,IAAaj1H,EAAWpkI,GAAI,CAC1Cs5P,WAAW,EACXhxK,QAAS8+D,EAAO9+D,QAChBC,WAAY6+D,EAAO7+D,WACnBC,aAAc4+D,EAAO5+D,aACrBI,YAAaw+D,EAAOx+D,YACpBW,WAAY69D,EAAO79D,aAG3B,OAAOmD,IAhBf,qBAkBI,SAAe06D,EAAQpwH,EAAOotG,GAE1B,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAK,IAAIq5P,IAAaj1H,EAAWpkI,GAAI,CAC1Cs5P,WAAW,EACXhxK,QAAS8+D,EAAO9+D,QAChBC,WAAY6+D,EAAO7+D,WACnBC,aAAc4+D,EAAO5+D,aACrBI,YAAaw+D,EAAOx+D,YACpBW,WAAY69D,EAAO79D,aAG3B,OAAOmD,IA9Bf,yBAgCI,SAAmB06D,EAAQ5pD,EAAaqkB,GAEpC,OADAA,EAAQA,GAAS,EACVw3I,IAAa1qG,YAAYnxD,EAAaA,EAAYv9F,OAAS4hH,EAAOulC,EAAO9+D,QAAS8+D,EAAO7+D,WAAY6+D,EAAO5+D,gBAlC3H,2BAoCI,SAAqB4+D,EAAQ5pD,EAAaqkB,GAEtC,OADAA,EAAQA,GAAS,EACVw3I,IAAaxqG,cAAcrxD,EAAaA,EAAYv9F,OAAS4hH,EAAOulC,EAAO9+D,QAAS8+D,EAAO7+D,WAAY6+D,EAAO5+D,gBAtC7H,+BAwCI,SAAyB4+D,EAAQpwH,EAAOotG,EAAY/4D,GAEhD,IADA,IAAIqhB,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAK,IAAIq4K,IAAej0C,EAAWpkI,GAAIqrE,EAAKrrE,IAEzD,OAAO,IAAIysF,IAAoB,EAAeC,EAAU,CACpDE,8BAA8B,EAC9BC,6BAA6B,MA/CzC,0BAkDI,SAAoBu6D,EAAQpwH,EAAOotG,EAAY/4D,EAAMkuL,GAEjD,IADA,IAAI7sK,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GACzB6gB,EAAWwgE,EAAUyjH,cAOzB,GANIy0D,IAAmBl4K,EAAUzgE,YAC7B24O,GAAiB,GAEjBA,GAAkBluL,EAAKvoE,QAAQ,QAAUuoE,EAAKprE,OAAS,IACvDs5P,GAAiB,GAEjBA,EAAgB,CAEhB,IAAIC,EAAgB,IAAIj5O,IAAMM,EAASY,WAAY,EAAGZ,EAASY,WAAY,GAC3EirE,EAAS1sF,GAAK,IAAIm5K,IAAqCqgF,EAAenuL,EAAMgW,GAAW,QAGvFqL,EAAS1sF,GAAK,IAAIq4K,IAAeh3F,EAAWhW,GAGpD,OAAO,IAAIohB,IAAoB,EAAeC,EAAU,CACpDE,8BAA8B,EAC9BC,6BAA6B,MAxEzC,uCA2EI,SAAiCu6D,EAAQhjB,EAAY/4D,EAAMkuL,EAAgBE,GACvE,GAAIF,EACA,OAAO,KAEX,GAA0B,IAAtBn1H,EAAWnkI,OACX,OAAO,KAEX,GAAIw5P,GAAmBA,EAAgBx5P,SAAWmkI,EAAWnkI,OACzD,OAAOw5P,EAEX,GAAgC,WAA5BryG,EAAOn+D,iBAA+B,CAGG,KAArC5d,EAAKpnC,WAAWonC,EAAKprE,OAAS,KAC9BorE,EAAOA,EAAKhgC,OAAO,EAAGggC,EAAKprE,OAAS,IAGC,KAArCorE,EAAKpnC,WAAWonC,EAAKprE,OAAS,KAC9BorE,EAAOA,EAAKhgC,OAAO,EAAGggC,EAAKprE,OAAS,IAExC,IAAI42D,EAAQ8kC,IAAmBtwB,GAC/B,GAAIxU,EAAM52D,SAAWmkI,EAAWnkI,OAC5B,OAAO42D,EAGf,OAAO,OApGf,mBAsGI,SAAauwF,EAAQpwH,EAAOotG,EAAY/4D,EAAMkuL,EAAgBE,GAC1D,IAAMC,EAAmBx3P,KAAKy3P,0BAA0BvyG,EAAQhjB,EAAY/4D,EAAMkuL,EAAgBE,GAClG,OAAIC,GACAt1H,EAAaA,EAAWp5H,KAAKuV,IAAM4jL,0BAC5BjiM,KAAK03P,kBAAkBxyG,EAAQpwH,EAAOotG,EAAYs1H,IAGlDx3P,KAAK23P,aAAazyG,EAAQpwH,EAAOotG,EAAY/4D,EAAMkuL,KA7GtE,gCAgHI,SAA0BnyG,EAAQpwH,EAAOvV,GACrC,IAAIuW,EAAS,KACTwlE,EAAc,GACZs8J,EAAuBjwK,IAA8BykE,wBAAwBlH,EAAO79D,WAAYvyD,EAAOvV,GAAY,GACzH,GAAIq4O,EACA9hO,EAAS8hO,EAAqB9hO,OAC9BwlE,EAAcs8J,EAAqBt8J,iBAElC,GAAI/7E,EAAa,EAAG,CACrB,IAAI+rI,EACJ,IAAKA,EAAiB/rI,EAAa,EAAG+rI,GAAkB,EAAGA,IAAkB,CACzE,IAAMle,EAAWt4G,EAAM01E,eAAe8gD,GAEtC,GADyB7xD,IAA+B2zC,IAChC,EACpB,MAGR,GAAIke,EAAiB,EAEjB,OAAO,KAEX,IAAM71D,EAAY3gE,EAAMgsG,iBAAiBwqB,GACnCusG,EAAsBlwK,IAA8BmwK,eAAe5yG,EAAO79D,WAAYvyD,EAAO,IAAIzW,IAAMitI,EAAgB71D,EAAW61D,EAAgB71D,IACpJoiK,IACAv8J,EAAcu8J,EAAoBv8J,YAAcu8J,EAAoBjrG,YAY5E,OATI92H,IACIA,IAAWsyH,IAAaE,SACxBhtD,EAAc4sH,EAAez7D,YAAYvH,EAAQ5pD,IAEjDxlE,IAAWsyH,IAAasE,UACxBpxD,EAAc4sH,EAAev7D,cAAczH,EAAQ5pD,IAEvDA,EAAc4pD,EAAO/8D,qBAAqBmT,IAEzCA,GACM,OArJnB,sCAyJI,SAAgC4pD,EAAQpwH,EAAOqqD,EAAWi3F,GACtD,IAAI2hF,EAAW,GACXp5O,EAAWwgE,EAAU9/D,mBACzB,GAAI6lI,EAAO5+D,aAIP,IAHA,IAAIgpC,EAA0BD,IAAcquF,yBAAyBx4D,EAAQpwH,EAAOnW,GAChF0nE,EAAa6+D,EAAO7+D,WACpB+uD,EAAY/uD,EAAcipC,EAA0BjpC,EAC/CvoF,EAAI,EAAGA,EAAIs3I,EAAWt3I,IAC3Bi6P,GAAY,SAIhBA,EAAW,KAEf,OAAO,IAAI5hF,IAAeh3F,EAAW44K,EAAU3hF,KAvKvD,iBAyKI,SAAWlxB,EAAQpwH,EAAOotG,GAEtB,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GAC7B,GAAIqhF,EAAUzgE,UAAW,CACrB,IAAI0uH,EAAWt4G,EAAM01E,eAAerrB,EAAU7gE,iBAC9C,GAAI,QAAQzH,KAAKu2H,IAAat4G,EAAMo4G,kBAAkB/tD,EAAU7gE,iBAAkB,CAC9E,IAAI05O,EAAah4P,KAAKi4P,mBAAmB/yG,EAAQpwH,EAAOqqD,EAAU7gE,iBAClE05O,EAAaA,GAAc,KAC3B,IAAIE,EAAmBhzG,EAAO/8D,qBAAqB6vK,GACnD,IAAK5qH,EAASszC,WAAWw3E,GAAmB,CACxC1tK,EAAS1sF,GAAK,IAAIq4K,IAAe,IAAI93J,IAAM8gE,EAAU7gE,gBAAiB,EAAG6gE,EAAU7gE,gBAAiB8uH,EAASrvI,OAAS,GAAIm6P,GAAkB,GAC5I,UAGR1tK,EAAS1sF,GAAKkC,KAAKm4P,yBAAyBjzG,EAAQpwH,EAAOqqD,GAAW,OAErE,CACD,GAAIA,EAAU7gE,kBAAoB6gE,EAAU3gE,cAAe,CACvD,IAAI45O,EAAgBtjO,EAAMgsG,iBAAiB3hD,EAAU7gE,iBACrD,GAA8B,IAA1B6gE,EAAU5gE,aAAqB4gE,EAAU1gE,YAAc25O,EAAe,CAEtE5tK,EAAS1sF,GAAKkC,KAAKm4P,yBAAyBjzG,EAAQpwH,EAAOqqD,GAAW,GACtE,UAGRqL,EAAS1sF,GAAK,IAAIq5P,IAAah4K,EAAW,CACtCi4K,WAAW,EACXhxK,QAAS8+D,EAAO9+D,QAChBC,WAAY6+D,EAAO7+D,WACnBC,aAAc4+D,EAAO5+D,aACrBI,YAAaw+D,EAAOx+D,YACpBW,WAAY69D,EAAO79D,cAI/B,OAAOmD,IA7Mf,6BA+MI,SAAuB6tK,EAAuBnzG,EAAQpwH,EAAOotG,EAAY/4D,EAAMmnI,EAAoBC,EAAoBC,GAAe,WAC5HhmH,EAAW03C,EAAW9/G,KAAI,SAAA+8D,GAAS,OAAI,EAAKm5K,iBAAiBxjO,EAAOqqD,EAAWhW,EAAMmnI,EAAoBC,EAAoBC,MACnI,OAAO,IAAIjmH,IAAoB,EAAqBC,EAAU,CAC1DE,6BAA8B6tK,EAA8BF,EAAuB,GACnF1tK,6BAA6B,MAnNzC,8BAsNI,SAAwB71D,EAAOqqD,EAAWhW,EAAMmnI,EAAoBC,EAAoBC,GACpF,IAAKrxH,EAAUzgE,UAIX,OAAO,KAEX,IAAMi0B,EAAMwsC,EAAUyjH,cAChBrkL,EAAc7G,KAAKC,IAAI,EAAGg7B,EAAInzB,OAAS8wL,GACvC7xL,EAAY/G,KAAKgI,IAAIoV,EAAMgsG,iBAAiBnuF,EAAIpzB,YAAaozB,EAAInzB,OAAS+wL,GAC1E1xL,EAAQ,IAAIR,IAAMs0B,EAAIpzB,WAAYhB,EAAao0B,EAAIpzB,WAAYd,GAErE,OADgBqW,EAAM2oF,gBAAgB5+F,KACtBsqD,GAA0B,IAAlBqnI,EAEb,KAEJ,IAAI55B,IAAoC/3J,EAAOsqD,EAAM,EAAGqnI,KAtOvE,0BAwOI,SAAoB3xL,EAAOsqD,EAAMqvL,GAC7B,OAAIA,EACO,IAAI7hF,IAAsC93J,EAAOsqD,GAAM,GAGvD,IAAIgtG,IAAet3J,EAAOsqD,GAAM,KA7OnD,oBAgPI,SAAc+7E,EAAQpwH,EAAO0jO,EAAc35O,GACvC,GAA0B,IAAtBqmI,EAAO79D,WACP,OAAO6gI,EAAeuwC,aAAa55O,EAAO,KAAM25O,GAEpD,IAAK1jO,EAAMo4G,kBAAkBruH,EAAMQ,mBAAmBE,aAAqC,IAAtB2lI,EAAO79D,WAA6B,CACrG,IAAI+lD,EAAWt4G,EAAM01E,eAAe3rF,EAAMP,iBACtCg9E,EAAc7B,IAA6B2zC,GAAU/sG,UAAU,EAAGxhB,EAAMN,YAAc,GAC1F,OAAO2pM,EAAeuwC,aAAa55O,EAAO,KAAOqmI,EAAO/8D,qBAAqBmT,GAAck9J,GAE/F,IAAMr3P,EAAIwmF,IAA8BmwK,eAAe5yG,EAAO79D,WAAYvyD,EAAOjW,GACjF,GAAI1d,EAAG,CACH,GAAIA,EAAEgnJ,eAAiBC,IAAatqI,KAEhC,OAAOoqM,EAAeuwC,aAAa55O,EAAO,KAAOqmI,EAAO/8D,qBAAqBhnF,EAAEm6F,YAAcn6F,EAAEyrJ,YAAa4rG,GAE3G,GAAIr3P,EAAEgnJ,eAAiBC,IAAaE,OAErC,OAAO4/D,EAAeuwC,aAAa55O,EAAO,KAAOqmI,EAAO/8D,qBAAqBhnF,EAAEm6F,YAAcn6F,EAAEyrJ,YAAa4rG,GAE3G,GAAIr3P,EAAEgnJ,eAAiBC,IAAaC,cAAe,CAEpD,IAAMqwG,EAAexzG,EAAO/8D,qBAAqBhnF,EAAEm6F,aAC7Cq9J,EAAkBzzG,EAAO/8D,qBAAqBhnF,EAAEm6F,YAAcn6F,EAAEyrJ,YAChEmrG,EAAW,KAAOY,EAAkB,KAAOD,EACjD,OAAIF,EACO,IAAI7hF,IAAsC93J,EAAOk5O,GAAU,GAG3D,IAAInhF,IAAoC/3J,EAAOk5O,GAAW,EAAGY,EAAgB56P,OAAS26P,EAAa36P,QAAQ,GAGrH,GAAIoD,EAAEgnJ,eAAiBC,IAAasE,QAAS,CAC9C,IAAMksG,EAAoB1wC,EAAev7D,cAAczH,EAAQ/jJ,EAAEm6F,aACjE,OAAO4sH,EAAeuwC,aAAa55O,EAAO,KAAOqmI,EAAO/8D,qBAAqBywK,EAAoBz3P,EAAEyrJ,YAAa4rG,IAGxH,IAAMprH,EAAWt4G,EAAM01E,eAAe3rF,EAAMP,iBACtCg9E,EAAc7B,IAA6B2zC,GAAU/sG,UAAU,EAAGxhB,EAAMN,YAAc,GAC5F,GAAI2mI,EAAO79D,YAAc,EAAc,CACnC,IAAMwxK,EAAKlxK,IAA8BmxK,kBAAkB5zG,EAAO79D,WAAYvyD,EAAOjW,EAAO,CACxF8tI,cAAe,SAACva,GACZ,OAAO81E,EAAev7D,cAAczH,EAAQ9S,IAEhDqa,YAAa,SAACra,GACV,OAAO81E,EAAez7D,YAAYvH,EAAQ9S,IAE9CjqD,qBAAsB,SAACiqD,GACnB,OAAO8S,EAAO/8D,qBAAqBiqD,MAG3C,GAAIymH,EAAI,CACJ,IAAIE,EAAmB1pI,IAAcquF,yBAAyBx4D,EAAQpwH,EAAOjW,EAAMO,kBAC7E45O,EAAen6O,EAAMJ,UACrBw6O,EAAiBnkO,EAAM01E,eAAe3rF,EAAML,eAC5Cy2O,EAAqBx7J,IAAgCw/J,GAO3D,GALIp6O,EADAo2O,GAAsB,EACdp2O,EAAM8iI,eAAe9iI,EAAML,cAAe9G,KAAKC,IAAIkH,EAAMJ,UAAWw2O,EAAqB,IAGzFp2O,EAAM8iI,eAAe9iI,EAAML,cAAesW,EAAMgsG,iBAAiBjiH,EAAML,gBAE/Eg6O,EACA,OAAO,IAAI7hF,IAAsC93J,EAAO,KAAOqmI,EAAO/8D,qBAAqB0wK,EAAGxrG,aAAa,GAG3G,IAAIjtH,EAAS,EAOb,OANI44N,GAAgB/D,EAAqB,IAChC/vG,EAAO5+D,eACRyyK,EAAmBrhP,KAAK++E,KAAKsiK,EAAmB7zG,EAAO7+D,aAE3DjmD,EAAS1oB,KAAKgI,IAAIq5O,EAAmB,EAAI7zG,EAAO/8D,qBAAqB0wK,EAAGxrG,YAAYtvJ,OAAS,EAAG,IAE7F,IAAI64K,IAAoC/3J,EAAO,KAAOqmI,EAAO/8D,qBAAqB0wK,EAAGxrG,YAAa,EAAGjtH,GAAQ,IAIhI,OAAO8nL,EAAeuwC,aAAa55O,EAAO,KAAOqmI,EAAO/8D,qBAAqBmT,GAAck9J,KA5TnG,+BA8TI,SAAyBtzG,EAAQpwH,EAAOotG,GACpC,GAAIgjB,EAAO79D,WAAa,EACpB,OAAO,EAEX,IAAK,IAAIvpF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C,IAAKg3B,EAAMo4G,kBAAkBhL,EAAWpkI,GAAGshB,iBAAiBG,YACxD,OAAO,EAGf,OAAO,IAvUf,gCAyUI,SAA0B2lI,EAAQpwH,EAAOjW,EAAOgsE,GAC5C,IAAMquK,EAAqBvxK,IAA8B+lE,yBAAyB54H,EAAOjW,EAAMP,gBAAiBO,EAAMN,aAChHq6O,EAAoBjxK,IAA8BwxK,uBAAuBj0G,EAAO79D,WAAYvyD,EAAOjW,EAAOgsE,EAAI,CAChH4hE,YAAa,SAACnxD,GACV,OAAO4sH,EAAez7D,YAAYvH,EAAQ5pD,IAE9CqxD,cAAe,SAACrxD,GACZ,OAAO4sH,EAAev7D,cAAczH,EAAQ5pD,MAGpD,GAA0B,OAAtBs9J,EACA,OAAO,KAEX,GAAIA,IAAsB1zG,EAAO/8D,qBAAqB+wK,GAAqB,CACvE,IAAMjE,EAAqBngO,EAAMgzF,gCAAgCjpG,EAAMP,iBACvE,OAA2B,IAAvB22O,EACO/sC,EAAeuwC,aAAa,IAAIp6O,IAAMQ,EAAMP,gBAAiB,EAAGO,EAAML,cAAeK,EAAMJ,WAAYymI,EAAO/8D,qBAAqBywK,GAAqB/tK,GAAI,GAG5Jq9H,EAAeuwC,aAAa,IAAIp6O,IAAMQ,EAAMP,gBAAiB,EAAGO,EAAML,cAAeK,EAAMJ,WAAYymI,EAAO/8D,qBAAqBywK,GACtI9jO,EAAM01E,eAAe3rF,EAAMP,iBAAiB+hB,UAAU40N,EAAqB,EAAGp2O,EAAMN,YAAc,GAAKssE,GAAI,GAGvH,OAAO,OAhWf,oCAkWI,SAA8Bq6D,EAAQpwH,EAAOotG,EAAYiyH,EAAsBtpK,GAC3E,GAAmC,UAA/Bq6D,EAAO/9D,oBACP,OAAO,EAEX,IAAK+9D,EAAOx9D,iBAAiB0jG,gCAAgC9oI,IAAIuoC,GAC7D,OAAO,EAEX,IAAK,IAAI/sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GAC7B,IAAKqhF,EAAUzgE,UACX,OAAO,EAEX,IAAMC,EAAWwgE,EAAUyjH,cACrBx1D,EAAWt4G,EAAM01E,eAAe7rF,EAASY,YAE/C,GADuB6tH,EAASrsG,OAAOpiB,EAASa,OAAS,KAClCqrE,EACnB,OAAO,EAGX,IAAMuuK,EAAYxuK,YAAQC,GAE1B,GAAwB,MADAlsE,EAASa,OAAS,EAAI4tH,EAASrrG,WAAWpjB,EAASa,OAAS,GAAK,IAC3C45O,EAC1C,OAAO,EAGX,GAAmC,SAA/Bl0G,EAAO/9D,oBAAgC,CAEvC,IADA,IAAIg/J,GAAQ,EACHhiP,EAAI,EAAG2mG,EAAOqpJ,EAAqBp2P,OAAQoG,EAAI2mG,EAAM3mG,IAAK,CAC/D,IAAMk1P,EAAsBlF,EAAqBhwP,GACjD,GAAIwa,EAASY,aAAe85O,EAAoB/6O,iBAAmBK,EAASa,SAAW65O,EAAoB96O,YAAa,CACpH4nO,GAAQ,EACR,OAGR,IAAKA,EACD,OAAO,GAInB,OAAO,IAzYf,qCA2YI,SAA+BkS,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAE7E,IADA,IAAIL,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IACM6gB,EADYujH,EAAWpkI,GACF8kM,cACrB00D,EAAgB,IAAIj5O,IAAMM,EAASY,WAAYZ,EAASa,OAAQb,EAASY,WAAYZ,EAASa,OAAS,GAC7GgrE,EAAS1sF,GAAK,IAAIq4K,IAAemhF,EAAezsK,GAEpD,OAAO,IAAIN,IAAoB,EAAqBC,EAAU,CAC1DE,6BAA8B6tK,EAA8BF,EAAuB,GACnF1tK,6BAA6B,MArZzC,mCAwZI,SAA6Bu6D,EAAQo0G,GAEjC,IAAMphB,EAAWohB,EAAUv4N,OAAO,GAC5Bw4N,EAA0Br0G,EAAOx9D,iBAAiBsjG,4BAA4Bv4J,IAAIylN,IAAa,GAC/FshB,EAAyBt0G,EAAOx9D,iBAAiBwjG,6BAA6Bz4J,IAAIylN,IAAa,GAC/FuhB,EAAwBF,EAAwBtwG,MAAK,SAAAhtI,GAAC,OAAIq9O,EAAU54E,WAAWzkK,EAAElE,SACjF2hP,EAAuBF,EAAuBvwG,MAAK,SAAAhtI,GAAC,OAAIq9O,EAAU54E,WAAWzkK,EAAEgxD,UACrF,OAAQwsL,GAAyBC,IA/ZzC,sCAiaI,SAAgCx0G,EAAQpwH,EAAO6kO,EAAW9uK,GACtD,IAAM+uK,EAA4B10G,EAAOx9D,iBAAiBujG,0BAA0Bx4J,IAAIo4D,GACxF,IAAK+uK,EACD,OAAO,KAGX,IAN0D,EAMtD9zG,EAAkB,KANoC,cAOnB8zG,GAPmB,IAO1D,2BAAkE,KAAvDC,EAAuD,QAC9D,GAAwB,OAApB/zG,GAA4B+zG,EAAyB9hP,KAAKha,OAAS+nJ,EAAgB/tI,KAAKha,OAAQ,CAChG,IADgG,EAC5F+7P,GAAmB,EADyE,cAEzEH,GAFyE,IAEhG,2BAAkC,KAAvBh7O,EAAuB,QAE9B,GADqBmW,EAAM2oF,gBAAgB,IAAIp/F,IAAMM,EAASY,WAAYZ,EAASa,OAASq6O,EAAyB9hP,KAAKha,OAAS,EAAG4gB,EAASY,WAAYZ,EAASa,SACjJqrE,IAAOgvK,EAAyB9hP,KAAM,CACrD+hP,GAAmB,EACnB,QANwF,8BAS5FA,IACAh0G,EAAkB+zG,KAlB4B,8BAsB1D,OAAO/zG,IAvbf,0CAybI,SAAoCZ,EAAQY,GACxC,GAAIA,EAAgB/tI,KAAKha,QAAU,EAC/B,MAAO,GAEX,IAJyD,EAInD28G,EAAWorC,EAAgB74E,MAAMlsC,OAAO+kH,EAAgB74E,MAAMlvE,OAAS,GAEvEg8P,EAAoB70G,EAAOx9D,iBAAiByjG,2BAA2B14J,IAAIioF,IAAa,GAC1Fs/I,EAAe,KAPsC,cAQzCD,GARyC,IAQzD,2BAAmC,KAAxB99O,EAAwB,QAC3BA,EAAElE,OAAS+tI,EAAgB/tI,MAAQ+tI,EAAgB/tI,KAAKiqI,SAAS/lI,EAAElE,OAAS+tI,EAAgB74E,MAAMu9G,SAASvuK,EAAEgxD,UACxG+sL,GAAgB/9O,EAAElE,KAAKha,OAASi8P,EAAajiP,KAAKha,UACnDi8P,EAAe/9O,IAX8B,8BAezD,OAAI+9O,EACOA,EAAa/sL,MAGb,KA5cnB,sCA+cI,SAAgCi4E,EAAQpwH,EAAOotG,EAAYr3C,EAAIovK,GAC3D,IAAMb,EAAYxuK,YAAQC,GACpBvC,EAAkB8wK,EAAYl0G,EAAOj+D,kBAAoBi+D,EAAOl+D,oBACtE,GAAwB,UAApBsB,EACA,OAAO,KAEX,IAAMw9D,EAAkB9lJ,KAAKk6P,yBAAyBh1G,EAAQpwH,EAAOotG,EAAW9/G,KAAI,SAAA9hB,GAAC,OAAIA,EAAEsiM,iBAAgB/3G,GAC3G,IAAKi7D,EACD,OAAO,KAKX,IAHA,IAAMq0G,EAA0Bn6P,KAAKo6P,6BAA6Bl1G,EAAQY,GACtEu0G,GAA8B,EAC5B7yK,EAAwB4xK,EAAYl0G,EAAO19D,sBAAsBlN,MAAQ4qE,EAAO19D,sBAAsBpC,QACnGtnF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GAC7B,IAAKqhF,EAAUzgE,UACX,OAAO,KAEX,IAAMC,EAAWwgE,EAAUyjH,cACrBx1D,EAAWt4G,EAAM01E,eAAe7rF,EAASY,YACzC+5O,EAAYlsH,EAAS/sG,UAAU1hB,EAASa,OAAS,GAKvD,GAJK85O,EAAU54E,WAAWy5E,KACtBE,GAA8B,GAG9BjtH,EAASrvI,OAAS4gB,EAASa,OAAS,EAAG,CACvC,IAAM86O,EAAiBltH,EAASrsG,OAAOpiB,EAASa,OAAS,GAEzD,IAD2B0oM,EAAeqyC,sBAAsBr1G,EAAQo0G,KAC5C9xK,EAAsB8yK,GAC9C,OAAO,KAGf,IAAKxlO,EAAMo4G,kBAAkBvuH,EAASY,YAElC,OAAO,KAGX,GAAoC,IAAhCumI,EAAgB/tI,KAAKha,SAAwB,MAAP8sF,GAAsB,MAAPA,IAAmC,WAApBvC,EAA8B,CAClG,IAAM3B,EAAiButJ,YAAwBhvF,EAAOv+D,gBACtD,GAAIszK,GAAuBt7O,EAASa,OAAS,GAAsE,IAAjEmnE,EAAel0D,IAAI26G,EAASrrG,WAAWpjB,EAASa,OAAS,IACvG,OAAO,KAEX,IAAKy6O,GAAuBt7O,EAASa,OAAS,GAAsE,IAAjEmnE,EAAel0D,IAAI26G,EAASrrG,WAAWpjB,EAASa,OAAS,IACxG,OAAO,KAGfsV,EAAMm4G,kBAAkBtuH,EAASY,YACjC,IAAMwxG,EAAaj8F,EAAMq8F,cAAcxyG,EAASY,YAC5CyrI,GAAsB,EAC1B,IACIA,EAAsBrjE,IAA8BqjE,oBAAoBlF,EAAiB/0B,EAAYkpI,EAAsBt7O,EAASa,OAASb,EAASa,OAAS,GAEnK,MAAO7e,GACH6H,YAAkB7H,GAEtB,IAAKqqJ,EACD,OAAO,KAGf,OAAIqvG,EACOv0G,EAAgB74E,MAAM5sC,UAAU,EAAGylH,EAAgB74E,MAAMlvE,OAASo8P,EAAwBp8P,QAG1F+nJ,EAAgB74E,QA9gBnC,yCAihBI,SAAmCorL,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,EAAIovK,EAAqBO,GAE1G,IADA,IAAIhwK,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GAC7B0sF,EAAS1sF,GAAK,IAAI28P,EAA2Bt7K,EAAW0L,EAAIovK,EAAqBO,GAErF,OAAO,IAAIjwK,IAAoB,EAAqBC,EAAU,CAC1DE,8BAA8B,EAC9BC,6BAA6B,MAzhBzC,iCA4hBI,SAA2Bu6D,EAAQr6D,GAC/B,OAAID,YAAQC,GACwB,WAAxBq6D,EAAO99D,cAAqD,oBAAxB89D,EAAO99D,aAInB,aAAxB89D,EAAO99D,cAAuD,oBAAxB89D,EAAO99D,eAliBjE,sCAqiBI,SAAgC89D,EAAQpwH,EAAOotG,EAAYr3C,GACvD,IAAKq9H,EAAewyC,oBAAoBx1G,EAAQr6D,KAAQq6D,EAAO59D,iBAAiB3nF,eAAekrF,GAC3F,OAAO,EAGX,IADA,IAAM8vK,EAA0B/vK,YAAQC,GAC/B/sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GAC7B,GAAIqhF,EAAUzgE,UACV,OAAO,EAGX,IADA,IAAIk8O,GAAkC,EAC7Br7O,EAAa4/D,EAAU7gE,gBAAiBiB,GAAc4/D,EAAU3gE,cAAee,IAAc,CAClG,IAAM6tH,EAAWt4G,EAAM01E,eAAejrF,GAChC2iB,EAAc3iB,IAAe4/D,EAAU7gE,gBAAkB6gE,EAAU5gE,YAAc,EAAI,EACrFq8F,EAAYr7F,IAAe4/D,EAAU3gE,cAAgB2gE,EAAU1gE,UAAY,EAAI2uH,EAASrvI,OACxF88P,EAAeztH,EAAS/sG,UAAU6B,EAAY04E,GACpD,GAAI,SAAS/jG,KAAKgkP,GAAe,CAE7BD,GAAkC,EAClC,OAGR,GAAIA,EACA,OAAO,EAEX,GAAID,GAA2Bx7K,EAAU7gE,kBAAoB6gE,EAAU3gE,eAAiB2gE,EAAU5gE,YAAc,IAAM4gE,EAAU1gE,UAAW,CACvI,IAAMq8O,EAAgBhmO,EAAM2oF,gBAAgBt+B,GAC5C,GAAIyL,YAAQkwK,GAGR,OAAO,GAInB,OAAO,IAvkBf,uCAykBI,SAAiCzC,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAE/E,IADA,IAAIL,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMqhF,EAAY+iD,EAAWpkI,GACvBi9P,EAAiB71G,EAAO59D,iBAAiBuD,GAC/CL,EAAS1sF,GAAK,IAAI64P,EAAyBx3K,EAAW0L,EAAIkwK,GAE9D,OAAO,IAAIxwK,IAAoB,EAAeC,EAAU,CACpDE,8BAA8B,EAC9BC,6BAA6B,MAllBzC,4CAqlBI,SAAsCu6D,EAAQpwH,EAAOotG,GACjD,QAA0B,IAAtBA,EAAWnkI,SAAgB+2B,EAAMo4G,kBAAkBhL,EAAW,GAAG9iH,iBAAiBG,eAtlB9F,0CA2lBI,SAAoC84O,EAAuBnzG,EAAQpwH,EAAOqqD,EAAW0L,GACjF,IAAKq6D,EAAOn9D,cAAcpoF,eAAekrF,KAAQ1L,EAAUzgE,UACvD,OAAO,KAEX,IAAIC,EAAWwgE,EAAUyjH,cACzB9tK,EAAMm4G,kBAAkBtuH,EAASY,YACjC,IACIy7O,EADAjqI,EAAaj8F,EAAMq8F,cAAcxyG,EAASY,YAE9C,IACIy7O,EAAiBrzK,IAA8BgjE,oBAAoB9/D,EAAIkmC,EAAYpyG,EAASa,QAEhG,MAAO7e,GAEH,OADA6H,YAAkB7H,GACX,KAEX,IAAKq6P,EACD,OAAO,KAEX,GAAIA,EAAev0G,iBAAkB,CACjC,IAAIhoI,GAAasyG,EAAWvmB,iBAAmB3f,GAAItqD,YAAYy6N,EAAev0G,kBAAoB,EAC9F1nJ,EAAQ+1B,EAAMmmO,sBAAsBD,EAAev0G,iBAAkB,CACrElnI,WAAYZ,EAASY,WACrBC,OAAQf,IAEZ,GAAI1f,EAAO,CACP,GAAIA,EAAMuf,kBAAoBK,EAASY,WAEnC,OAAO,KAEX,IAAI27O,EAAYpmO,EAAM01E,eAAezrG,EAAMuf,iBACvC68O,EAAuB1hK,IAA6ByhK,GACpDE,EAAiBl2G,EAAO/8D,qBAAqBgzK,GAC7C/tH,EAAWt4G,EAAM01E,eAAe7rF,EAASY,YACzC87O,EAA0BvmO,EAAMgzF,gCAAgCnpG,EAASY,aAAeZ,EAASa,OAEjGu4O,EAAWqD,EADFhuH,EAAS/sG,UAAUg7N,EAA0B,EAAG18O,EAASa,OAAS,GACtCqrE,EACrCysK,EAAgB,IAAIj5O,IAAMM,EAASY,WAAY,EAAGZ,EAASY,WAAYZ,EAASa,QAC9EwS,EAAU,IAAImkJ,IAAemhF,EAAeS,GAClD,OAAO,IAAIxtK,IAAoB+wK,EAAmBvD,EAAUM,GAAwB,CAACrmO,GAAU,CAC3F04D,8BAA8B,EAC9BC,6BAA6B,KAIzC,OAAO,OAvoBf,4CA4oBI,SAAsC0tK,EAAuBnzG,EAAQpwH,EAAOymO,EAAkCr5H,EAAYiyH,GACtH,IAAKoH,GAAoCryK,IAAUsyK,mBAAmBD,EAAkCr5H,GAEpG,OAAO,KAEX,IAL4I,EAKxIr3C,EAAK,KALmI,cAOpHq3C,GAPoH,IAO5I,2BAAoC,KAAzB/iD,EAAyB,QAChC,IAAKA,EAAUzgE,UACX,OAAO,KAEX,IAAMC,EAAWwgE,EAAUyjH,cACrB64D,EAAc3mO,EAAM2oF,gBAAgB,IAAIp/F,IAAMM,EAASY,WAAYZ,EAASa,OAAS,EAAGb,EAASY,WAAYZ,EAASa,SAC5H,GAAW,OAAPqrE,EACAA,EAAK4wK,OAEJ,GAAI5wK,IAAO4wK,EACZ,OAAO,MAjB6H,8BAoB5I,IAAK5wK,EACD,OAAO,KAEX,GAAI7qF,KAAK07P,uBAAuBx2G,EAAQpwH,EAAOotG,EAAYiyH,EAAsBtpK,GAAK,CAElF,IAAML,EAAW03C,EAAW9/G,KAAI,SAAA9hB,GAAC,OAAI,IAAI61K,IAAe,IAAI93J,IAAM/d,EAAE2pF,mBAAoB3pF,EAAE4pF,eAAgB5pF,EAAE2pF,mBAAoB3pF,EAAE4pF,eAAiB,GAAI,IAAI,MAC3J,OAAO,IAAIK,IAAoB,EAAqBC,EAAU,CAC1DE,8BAA8B,EAC9BC,6BAA6B,IAGrC,IAAM6vK,EAAuBx6P,KAAK27P,yBAAyBz2G,EAAQpwH,EAAOotG,EAAYr3C,GAAI,GAC1F,OAA6B,OAAzB2vK,EACOx6P,KAAK47P,4BAA4BvD,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAAI,EAAO2vK,GAElG,OA/qBf,kCAirBI,SAA4BqB,EAAoBxD,EAAuBnzG,EAAQpwH,EAAOotG,EAAYiyH,EAAsBtpK,GACpH,IAAKgxK,GAA6B,OAAPhxK,EAAa,CAEpC,IADA,IAAIL,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAKoqN,EAAe4zC,OAAO52G,EAAQpwH,GAAO,EAAOotG,EAAWpkI,IAEzE,OAAO,IAAIysF,IAAoB,EAAqBC,EAAU,CAC1DE,8BAA8B,EAC9BC,6BAA6B,IAGrC,IAAKkxK,GAAsB77P,KAAK+7P,kBAAkB72G,EAAQpwH,EAAOotG,GAAa,CAG1E,IAFA,IAAI13C,EAAW,GACXwxK,GAAkB,EACbl+P,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAE9C,GADA0sF,EAAS1sF,GAAKkC,KAAKi8P,mBAAmB/2G,EAAQpwH,EAAOotG,EAAWpkI,GAAI+sF,IAC/DL,EAAS1sF,GAAI,CACdk+P,GAAkB,EAClB,MAGR,IAAKA,EACD,OAAO,IAAIzxK,IAAoB,EAAqBC,EAAU,CAC1DE,8BAA8B,EAC9BC,6BAA6B,IAIzC,IAAKkxK,GAAsB77P,KAAK07P,uBAAuBx2G,EAAQpwH,EAAOotG,EAAYiyH,EAAsBtpK,GACpG,OAAO7qF,KAAKk8P,wBAAwB7D,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAE1F,IAAKgxK,EAAoB,CACrB,IAAMrB,EAAuBx6P,KAAK27P,yBAAyBz2G,EAAQpwH,EAAOotG,EAAYr3C,GAAI,GAC1F,GAAI2vK,EACA,OAAOx6P,KAAK47P,4BAA4BvD,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAAI,EAAM2vK,GAG5G,GAAIx6P,KAAKm8P,yBAAyBj3G,EAAQpwH,EAAOotG,EAAYr3C,GACzD,OAAO7qF,KAAKo8P,0BAA0B/D,EAAuBnzG,EAAQpwH,EAAOotG,EAAYr3C,GAI5F,IAAKgxK,GAAsB77P,KAAKq8P,+BAA+Bn3G,EAAQpwH,EAAOotG,GAAa,CACvF,IAAM/gI,EAAInB,KAAKs8P,6BAA6BjE,EAAuBnzG,EAAQpwH,EAAOotG,EAAW,GAAIr3C,GACjG,GAAI1pF,EACA,OAAOA,EAKf,IADA,IAAIqpF,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAK,IAAIq4K,IAAej0C,EAAWpkI,GAAI+sF,GAEpD,IAAM0xK,EAASjB,EAAmBzwK,EAAIwtK,GACtC,OAAO,IAAI9tK,IAAoBgyK,EAAQ/xK,EAAU,CAC7CE,6BAA8B6tK,EAA8BF,EAAuBkE,GACnF5xK,6BAA6B,MAzuBzC,qCA4uBI,SAA+B0tK,EAAuBnzG,EAAQpwH,EAAOotG,EAAY5iG,GAE7E,IADA,IAAIkrD,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAK,IAAIq4K,IAAej0C,EAAWpkI,GAAIwhC,GAEpD,IAAMi9N,EAASjB,EAAmBh8N,EAAK+4N,GACvC,OAAO,IAAI9tK,IAAoBgyK,EAAQ/xK,EAAU,CAC7CE,6BAA8B6tK,EAA8BF,EAAuBkE,GACnF5xK,6BAA6B,MApvBzC,8BAuvBI,SAAwBu6D,EAAQpwH,EAAOotG,GACnC,GAAc,OAAVptG,GAAiC,OAAfotG,EAClB,MAAO,GAGX,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAIyhB,EAAa2iH,EAAWpkI,GAAGmsF,mBAC/B,GAAmB,IAAf1qE,EACAirE,EAAS1sF,GAAK,IAAI64K,IAAsC,IAAIt4J,IAAM,EAAG,EAAG,EAAG,GAAI,UAE9E,CACDkB,IACA,IAAIC,EAASsV,EAAMgsG,iBAAiBvhH,GACpCirE,EAAS1sF,GAAKkC,KAAK87P,OAAO52G,EAAQpwH,GAAO,EAAO,IAAIzW,IAAMkB,EAAYC,EAAQD,EAAYC,KAGlG,OAAOgrE,IAvwBf,6BAywBI,SAAuB06D,EAAQpwH,EAAOotG,GAClC,GAAc,OAAVptG,GAAiC,OAAfotG,EAClB,MAAO,GAGX,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACnD,IAAMyhB,EAAa2iH,EAAWpkI,GAAGmsF,mBAC7BzqE,EAASsV,EAAMgsG,iBAAiBvhH,GACpCirE,EAAS1sF,GAAKkC,KAAK87P,OAAO52G,EAAQpwH,GAAO,EAAO,IAAIzW,IAAMkB,EAAYC,EAAQD,EAAYC,IAE9F,OAAOgrE,IAnxBf,6BAqxBI,SAAuB06D,EAAQpwH,EAAOotG,GAElC,IADA,IAAI13C,EAAW,GACN1sF,EAAI,EAAG+jC,EAAMqgG,EAAWnkI,OAAQD,EAAI+jC,EAAK/jC,IAC9C0sF,EAAS1sF,GAAKkC,KAAK87P,OAAO52G,EAAQpwH,GAAO,EAAMotG,EAAWpkI,IAE9D,OAAO0sF,MA1xBf,KA6xBaiwK,EAAb,kDACI,WAAYt7K,EAAWq9K,EAAevC,EAAqBc,GAAgB,kCACvE,cAAM57K,GAAY86K,EAAsBuC,EAAgB,IAAMzB,EAAgB,GAAIA,EAAeh9P,SAC5F0+P,eAAiBD,EACtB,EAAKE,gBAAkB3B,EACvB,EAAK4B,oBAAsB,KAC3B,EAAKC,eAAiB,KALiD,EAD/E,sDAQI,SAAmB9nO,EAAOyhJ,GACtB,IACI13J,EADwB03J,EAAOE,2BACD,GAAG53J,MAGrC,OAFA7e,KAAK28P,oBAAsB,IAAIt+O,IAAMQ,EAAMP,gBAAiBO,EAAMJ,UAAYze,KAAK08P,gBAAgB3+P,OAAQ8gB,EAAML,cAAeK,EAAMJ,WACtIze,KAAK48P,eAAiB,IAAIv+O,IAAMQ,EAAMP,gBAAiBO,EAAMJ,UAAYze,KAAKy8P,eAAe1+P,OAASiC,KAAK08P,gBAAgB3+P,OAAQ8gB,EAAML,cAAeK,EAAMJ,WAC9J,0EAAgCqW,EAAOyhJ,OAb/C,GAAgDK,KAgBhD,SAAS0kF,EAAmBuB,EAAWC,GACnC,MAAkB,MAAdD,EACmC,IAA5BC,GAC4B,IAA5BA,EACD,EACA,EAEH,EAEX,SAASvE,EAA8BuE,EAAyBC,GAC5D,SAAIC,EAAkBF,IAA6BE,EAAkBD,KAIrC,IAA5BD,GAMGG,EAAuBH,KAA6BG,EAAuBF,GAEtF,SAASE,EAAuB93P,GAC5B,OAAiB,IAATA,GAAoD,IAATA,EAC7C,QACAA,EAEV,SAAS63P,EAAkB73P,GACvB,OAAgB,IAATA,GACS,IAATA,GACS,IAATA,I,6B1P11BX,iFAUIg8C,GAA+B,EAC/BC,EAAgB,EACdC,EAAe,CAAEC,OAAO,GACxBC,EAAmB,GACrBC,EAA8B,qBAAZC,QAA0B,KAAOA,QAmBjD,SAAUC,IACdN,IAiDI,SAAUO,EACdC,EACAC,EACAC,GAGA,QAJA,IAAAD,MAAA,UACA,IAAAC,OAAA,IAGKN,EACH,OAAOI,EAGT,IAAKT,EAA8B,CACjC,IAAMlO,EAAa,IAAWxO,cAE1BwO,GAAe,EAAqC,SACtD,IAAWxO,cAAcsd,QAAQL,GAEnCP,GAA+B,EAGjC,IAAIa,EACAC,EAAY,EACZC,EAAoBd,EAExB,OAAO,W,IAA0B,sDAC/B,IAAIe,EAAmBH,QAGRnoC,IAAbmoC,GACAE,IAAsBd,GACrBS,EAAe,GAAKI,EAAYJ,KAEjCG,EAAWI,IACXH,EAAY,EACZC,EAAoBd,GAGtBe,EAAcH,EAGd,IAAK,IAAIlkD,EAAI,EAAGA,EAAIe,EAAKd,OAAQD,IAAK,CACpC,IAAIgf,EAAMulC,EAAcxjD,EAAKf,IAExBqkD,EAAY//B,IAAIkgC,IAAIxlC,IACvBqlC,EAAY//B,IAAIolB,IAAI1qB,EAAKslC,KAG3BD,EAAcA,EAAY//B,IAAIqQ,IAAI3V,GAYpC,OATKqlC,EAAYxiD,eAAe,WAC9BwiD,EAAYngD,MAAQ4/C,EAAE,aAAI/iD,GAC1BojD,MAGEH,GAAsD,OAAtBK,EAAYngD,YAAwC6X,IAAtBsoC,EAAYngD,QAC5EmgD,EAAYngD,MAAQ4/C,EAAE,aAAI/iD,IAGrBsjD,EAAYngD,OAejB,SAAUk7P,EAA8CjzN,GAC5D,IAAKuX,EAEH,OAAOvX,EAGT,IAAMlR,EAAQ,IAAIyoB,EAoBlB,OAlBA,SAA0B4tC,GACxB,IAAKA,GAA2B,oBAAVA,GAAyC,kBAAVA,EAGnD,OAAOnlD,EAASmlD,GAGlB,GAAIr2D,EAAMupB,IAAI8sC,GACZ,OAAOr2D,EAAMtG,IAAI28D,GAGnB,IAAMptF,EAAQioC,EAASmlD,GAIvB,OAFAr2D,EAAMyO,IAAI4nD,EAAOptF,GAEVA,GAQX,SAASqgD,EAAcE,GACrB,OAAKA,EAEqB,kBAARA,GAAmC,oBAARA,EACpCA,GACGhB,EAAYgB,KACtBhB,EAAYgB,GAAO,CAAEA,IAAG,IAGnBhB,EAAYgB,IAPVlB,EAUX,SAASe,IACP,MAAO,CACLhgC,IAAKo/B,EAAW,IAAIA,EAAa,Q,6B2PxMrC,wEAwBY,EAMA,EA9BZ,QA4CM,SAAU,EAAa,GAC3B,QAAY,GAAR,EAIJ,OAAO,EAGH,SAAU,EAAqB,EAAiC,GACpE,GAAI,IAAQ,EACV,MAAM,IAAI,WAAW,6DAGnB,IAAQ,EAAI,sBACd,EAAI,oBAAsB,MAlC9B,SAAY,GACV,YACA,cACE,EAAF,kBAHF,CAAY,MAAa,KAMzB,SAAY,GACR,EAAF,QACE,EAAF,QACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YAXF,CAAY,MAAmB,M,iGC3BhB,SAAS,EAAiB27M,GACvC,IAAIpqJ,EAAwB,oBAARxrE,IAAqB,IAAIA,SAAQ1tB,EA8BrD,OA5BA,EAAmB,SAA0BsjP,GAC3C,GAAc,OAAVA,ICRkCllP,EDQEklP,GCPsB,IAAzDjrF,SAASz5J,SAAS7Y,KAAKqY,GAAIrX,QAAQ,kBDOQ,OAAOu8P,ECR5C,IAA2BllP,EDUtC,GAAqB,oBAAVklP,EACT,MAAM,IAAIz/P,UAAU,sDAGtB,GAAsB,qBAAXq1G,EAAwB,CACjC,GAAIA,EAAOzwD,IAAI66M,GAAQ,OAAOpqJ,EAAOtgF,IAAI0qO,GAEzCpqJ,EAAOvrE,IAAI21N,EAAOC,GAGpB,SAASA,IACP,OAAO,OAAAhiP,EAAA,GAAU+hP,EAAO38P,UAAW,OAAA0a,EAAA,GAAelb,MAAMC,aAW1D,OARAm9P,EAAQ1+P,UAAYN,OAAO8B,OAAOi9P,EAAMz+P,UAAW,CACjDuB,YAAa,CACX+B,MAAOo7P,EACPn/P,YAAY,EACZE,UAAU,EACVD,cAAc,KAGX,OAAAqB,EAAA,GAAe69P,EAASD,IAG1B,EAAiBA,K,yFE9BpBE,EAAqBpjM,IAAQqjM,aAAkD,oBAA5BrjM,IAAQqjM,YAAYl7L,IAChEvnC,EAAb,WACI,WAAY0iO,GAAgB,oBACxBv9P,KAAKw9P,gBAAkBH,GAAqBE,EAC5Cv9P,KAAKy9P,WAAaz9P,KAAK09P,OACvB19P,KAAK29P,WAAa,EAJ1B,wCASI,WACI39P,KAAK29P,UAAY39P,KAAK09P,SAV9B,qBAYI,WACI,OAAwB,IAApB19P,KAAK29P,UACE39P,KAAK29P,UAAY39P,KAAKy9P,WAE1Bz9P,KAAK09P,OAAS19P,KAAKy9P,aAhBlC,kBAkBI,WACI,OAAOz9P,KAAKw9P,gBAAkBvjM,IAAQqjM,YAAYl7L,MAAQn6D,KAAKm6D,SAnBvE,qBAMI,WAAqC,IAAvBm7L,IAAuB,yDACjC,OAAO,IAAI1iO,EAAU0iO,OAP7B,M,4MCDa38O,EAAa,CACtBi4I,cAAe,oCAEN+kG,EAAc,CAAE18O,WAAY,GAAI28O,kBAAmB,IACnDC,EAAsB,CAAE58O,WAAY,GAAI28O,kBAAmB,IAC3DE,EAAkB,CAAE78O,WAAY,GAAI28O,kBAAmB,IACvDG,EAA6B,CAAE98O,WAAY,GAAI28O,kBAAmB,IAClEI,EAAiB,CAAE/8O,WAAY,GAAI28O,kBAAmB,IACtDK,EAAmB,CAAEh9O,WAAY,GAAI28O,kBAAmB,IACxDM,EAAmC,6CAC1CC,EAAuBrnO,IAAS5I,GAAGC,IAAeC,kBAClDgwO,E,WACF,aAAc,oBACVr+P,KAAKs+P,oBAAsB,IAAIjhP,IAC/Brd,KAAKu+P,mBAAqB,IAAI9pP,IAC9BzU,KAAKw+P,0BAA4B,IAAI/pP,IACrCzU,KAAK6mP,cAAgB,GACrB7mP,KAAKy+P,0CAA4C,CAC7CloP,GAAI,mBACJ0b,MAAOnP,IAAa,8CAA+C,4CACnE5B,WAAY,IAEhBlhB,KAAK0+P,0BAA4B,CAAC1+P,KAAKy+P,2CACvCz+P,KAAK2+P,+BAAiC,CAAEz9O,WAAY,GAAI28O,kBAAmB,GAAIxhE,sBAAsB,EAAO/pG,aAAc,uCAAwCssK,qBAAqB,EAAMC,eAAe,GAC5M7+P,KAAK8+P,wBAA0B,GAC/B9+P,KAAK++P,gCAAkC,GACvCX,EAAqB9vO,eAAe6vO,EAAkCn+P,KAAK2+P,gC,yDAE/E,SAAsB34K,GAAgC,IAAjBsyB,IAAiB,yDAClDt4G,KAAKg/P,uBAAuB,CAACh5K,GAAgBsyB,K,oCAEjD,SAAuBswC,GAAiC,IAAjBtwC,IAAiB,yDAC9Cp3F,EAAalhB,KAAKi/P,yBAAyBr2G,EAAgBtwC,GACjE8lJ,EAAqB9vO,eAAe6vO,EAAkCn+P,KAAK2+P,gCAC3E3+P,KAAKu+P,mBAAmBtpP,OACxBjV,KAAKw+P,0BAA0BvpP,KAAKiM,K,yCAExC,SAA4Bo9O,GAAqB,oBACZA,GADY,IAC7C,2BAAsD,KAA3C50G,EAA2C,QAClD1pJ,KAAKs+P,oBAAoB9kP,IAAIkwI,IAFY,8BAI7C1pJ,KAAKk/P,qC,sCAET,SAAyBt2G,EAAgBtwC,GAAU,WACzCp3F,EAAa,GAMnB,OALA0nI,EAAejyI,SAAQ,SAAAqvE,GACnB9kE,EAAW3d,KAAX,MAAA2d,EAAU,YAAS,EAAKi+O,8BAA8Bn5K,EAAesyB,EAAUtyB,EAAco5K,iBAC7F,EAAKV,0BAA0Bn7P,KAAKyiF,GACpC,EAAKq5K,0BAA0Br5K,MAE5B9kE,I,2CAEX,SAA8B8kE,GAAuE,IAC7FhhF,EADqCszG,IAAwD,yDAAvC8mJ,EAAuC,uCAAxBxqD,EAAwB,uDAAhB,EAEjFA,EAAQ7I,IAAwB/lH,EAAc4uH,OAASA,EAAQ5uH,EAAc4uH,MAC7E,IAAI0qD,EAAe,GACfp+O,EAAa8kE,EAAc9kE,WAC/B,GAAIA,EACA,IAAK,IAAI5iB,KAAO4iB,EACZ,GAAIo3F,GAAYinJ,EAAiBjhQ,UACtB4iB,EAAW5iB,OADtB,CAIA,IAAM8uC,EAAWlsB,EAAW5iB,GAE5B0B,KAAKw/P,2BAA2BlhQ,EAAK8uC,GAEjCqyN,EAA0B5oP,KAAKvY,GAC/B8uC,EAASwnK,WAAQ/6L,GAGjBuzB,EAASwnK,MAAQ7I,IAAwB3+J,EAASwnK,OAASA,EAAQxnK,EAASwnK,MAC5ExnK,EAASo1D,WAAaupG,IAAwB3+J,EAASo1D,eAAiI,QAA/Gx9F,EAAuB,OAAlBo6P,QAA4C,IAAlBA,OAA2B,EAASA,EAAcM,gCAA6C,IAAP16P,OAAgB,EAASA,EAAGg9I,SAAS1jJ,IAAQ8uC,EAASo1D,aAItPthF,EAAW5iB,GAAKqB,eAAe,aAAgBuhB,EAAW5iB,GAAKmzF,UAM/DzxF,KAAK8+P,wBAAwBxgQ,GAAO4iB,EAAW5iB,IAE9C4iB,EAAW5iB,GAAKmjB,oBAAsBP,EAAW5iB,GAAKgkG,6BAEvDphF,EAAW5iB,GAAKmjB,mBAAqBP,EAAW5iB,GAAKgkG,4BAEzDg9J,EAAa/7P,KAAKjF,KAXd0B,KAAK++P,gCAAgCzgQ,GAAO4iB,EAAW5iB,UAChD4iB,EAAW5iB,IAa9B,IAAIqhQ,EAAW35K,EAAc45K,MAC7B,GAAID,EAAU,qBACOA,GADP,IACV,2BAA2B,KAAlB/6P,EAAkB,QACvB06P,EAAa/7P,KAAb,MAAA+7P,EAAY,YAASt/P,KAAKm/P,8BAA8Bv6P,EAAM0zG,EAAU8mJ,EAAexqD,MAFjF,+BAKd,OAAO0qD,I,wCAEX,WACI,OAAOt/P,KAAK8+P,0B,uCAEhB,SAA0B94K,GAAe,YACpB,SAAXlvD,EAAYkvD,GACd,IAAI9kE,EAAa8kE,EAAc9kE,WAC/B,GAAIA,EACA,IAAK,IAAM5iB,KAAO4iB,EACd,EAAK2+O,aAAavhQ,EAAK4iB,EAAW5iB,IAG1C,IAAIqhQ,EAAW35K,EAAc45K,MACzBD,GACAA,EAAShpP,QAAQmgB,GAGzBA,CAASkvD,K,0BAEb,SAAa1nF,EAAK8uC,GAEd,OADAwwN,EAAY18O,WAAW5iB,GAAO8uC,EACtBA,EAASwnK,OACb,KAAK,EACDkpD,EAAoB58O,WAAW5iB,GAAO8uC,EACtC,MACJ,KAAK,EACD2wN,EAAgB78O,WAAW5iB,GAAO8uC,EAClC,MACJ,KAAK,EACD4wN,EAA2B98O,WAAW5iB,GAAO8uC,EAC7C,MACJ,KAAK,EACD6wN,EAAe/8O,WAAW5iB,GAAO8uC,EACjC,MACJ,KAAK,EACD8wN,EAAiBh9O,WAAW5iB,GAAO8uC,EACnC,MACJ,KAAK,EACD8wN,EAAiBh9O,WAAW5iB,GAAO8uC,EACnCptC,KAAK2+P,+BAA+Bz9O,WAAW5iB,GAAO8uC,K,8CAIlE,WAAmC,oBACEptC,KAAKs+P,oBAAoB9gP,UAD3B,IAC/B,2BAAoE,KAAzDksI,EAAyD,QAC1Do2G,EAA6B,IAAH,OAAOp2G,EAAP,KAC1Bq2G,EAAmC,CACrC56P,KAAM,SACN8Q,YAAa6M,IAAa,sCAAuC,8DACjEwvE,aAAcxvE,IAAa,gCAAiC,6DAC5D85K,KAAMuhE,GAEVn+P,KAAKw/P,2BAA2BM,EAA4BC,GAC5DnC,EAAY18O,WAAW4+O,GAA8BC,EACrDjC,EAAoB58O,WAAW4+O,GAA8BC,EAC7DhC,EAAgB78O,WAAW4+O,GAA8BC,EACzD/B,EAA2B98O,WAAW4+O,GAA8BC,EACpE9B,EAAe/8O,WAAW4+O,GAA8BC,EACxD7B,EAAiBh9O,WAAW4+O,GAA8BC,GAf/B,8BAiB/B//P,KAAKu+P,mBAAmBtpP,S,wCAE5B,SAA2B3W,EAAK8uC,GAC5B,IAAIhB,EAAepsC,KAAK6mP,cAAcvoP,GAClCytM,IAAkB3/J,KAClBA,EAAegB,EAAQ,SAEvB2+J,IAAkB3/J,KAClBA,EAUL,SAAyBjnC,GAE5B,OADU1F,MAAM+b,QAAQrW,GAAQA,EAAK,GAAKA,GAEtC,IAAK,UACD,OAAO,EACX,IAAK,UACL,IAAK,SACD,OAAO,EACX,IAAK,SACD,MAAO,GACX,IAAK,QACD,MAAO,GACX,IAAK,SACD,MAAO,GACX,QACI,OAAO,MAzBQ66P,CAAgB5yN,EAASjoC,OAE5CioC,EAAQ,QAAWhB,M,KAIdqzN,EAA4B,IAAIp+N,OADnB,aAEnB,SAAS4+N,EAA0B3hQ,GACtC,OAAOA,EAAI+hC,UAAU,EAAG/hC,EAAIP,OAAS,GAoBzC,IAAMmiQ,EAAwB,IAAI7B,EAE3B,SAASkB,EAAiBnyN,GAC7B,OAAKA,EAAS32B,OAGVgpP,EAA0B5oP,KAAKu2B,GACxBtqB,IAAa,kCAAmC,mKAAoKsqB,QAE1JvzB,IAAjEqmP,EAAsBpnG,6BAA6B1rH,GAC5CtqB,IAAa,4BAA6B,8DAA+DsqB,GAE7G,KARItqB,IAAa,wBAAyB,qCAHrDiU,IAASvd,IAAIoH,EAAWi4I,cAAeqnG,I,6BCxMxB,SAASC,EAA8BhxO,EAAQixO,GAC5D,GAAc,MAAVjxO,EAAgB,MAAO,GAC3B,IAEI7wB,EAAKR,EAFLF,EAAS,GACTyiQ,EAAajiQ,OAAOsY,KAAKyY,GAG7B,IAAKrxB,EAAI,EAAGA,EAAIuiQ,EAAWtiQ,OAAQD,IACjCQ,EAAM+hQ,EAAWviQ,GACbsiQ,EAASx/P,QAAQtC,IAAQ,IAC7BV,EAAOU,GAAO6wB,EAAO7wB,IAGvB,OAAOV,EAZT,mC,2JCuCa0iQ,EAAgB,IA1B7B,WACI,aAAc,oBACVtgQ,KAAKugQ,sBAAwB,IAAI9rP,IACjCzU,KAAKwgQ,qBAAuBxgQ,KAAKugQ,sBAAsB5rP,MACvD3U,KAAKygQ,WAAa,GAClBzgQ,KAAK0gQ,kBAAoB,GALjC,oDAQI,SAAiBz3L,GAAK,WAGlB,OAFAjpE,KAAKygQ,WAAWl9P,KAAK0lE,GACrBjpE,KAAKugQ,sBAAsBtrP,UAAK4E,GACzB,CACHzB,QAAS,WACL,IAAK,IAAIta,EAAI,EAAG+jC,EAAM,EAAK4+N,WAAW1iQ,OAAQD,EAAI+jC,EAAK/jC,IACnD,GAAI,EAAK2iQ,WAAW3iQ,KAAOmrE,EAEvB,YADA,EAAKw3L,WAAWluO,OAAOz0B,EAAG,OAflD,0BAsBI,WACI,MAAO,GAAGgG,OAAO9D,KAAKygQ,YAAY38P,OAAO9D,KAAK0gQ,uBAvBtD,MA2BA3pO,IAASvd,IA7BU,uBA6BoB8mP,GAChC,IAAMK,EAAoB,YAEjCL,EAAcM,iBAAiB,CAC3BrqP,GAAIoqP,EACJ9qL,WAAY,CAHmB,QAI/BgrL,QAAS,CAAC/9O,IAAa,kBAAmB,cAAe,QACzDg+O,UAAW,CAACtjB,IAAMr0K,QAEtBwe,IAA8B7wD,SAAS6pO,EAAmB,CACtD5uI,SAAU,CACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MAEVzqC,iBAAkB,CACd,CAAEvvE,KAAM,IAAKk1D,MAAO,KACpB,CAAEl1D,KAAM,IAAKk1D,MAAO,KACpB,CAAEl1D,KAAM,IAAKk1D,MAAO,KACpB,CAAEl1D,KAAM,IAAKk1D,MAAO,KACpB,CAAEl1D,KAAM,IAAMk1D,MAAO,KACrB,CAAEl1D,KAAM,IAAMk1D,MAAO,KACrB,CAAEl1D,KAAM,IAAKk1D,MAAO,MAExBo4E,sBAAuB,GACvBxtD,QAAS,CACLi6C,SAAS,IAEd,I,mEC2CC,E,OA7GSivH,EAIL,EAJKA,EASC,EATDA,EAcE,EA8ET,EAAwC,qBAAd,WAA6B,UAAU,KAAK,UAAU,WAElF,EAMA,GAGJ,IACE,EAAU,QAAU,GACpB,UAaF,iBA6BI,SAAF,EAAY,EAA4B,G,gBA1BhC,YAAmB,GACnB,qBAA4B,GAE5B,cAAW,EACX,qBAA6C,GAC7C,4BAAqC,GACrC,uBAAgC,GAChC,sBAAsE,GAoB5E,KAAK,QAAO,aAEV,cAAmC,qBAAb,SAA2B,EAAqB,EACtE,cAAe,MACf,eAAW,EACX,iBAAa,GACV,GAGL,KAAK,iBAAwD,QAAxC,EAAuB,OAApB,QAAoB,IAApB,OAAoB,EAApB,EAAsB,uBAAe,QAAI,KAAK,iBACtE,KAAK,SAAwC,QAAhC,EAAuB,OAApB,QAAoB,IAApB,OAAoB,EAApB,EAAsB,eAAO,QAAI,KAAK,SACtD,KAAK,gBAAqF,QAAtE,EAA8B,QAA9B,EAAG,KAAK,QAAQ,sBAAc,QAAwB,OAApB,QAAoB,IAApB,OAAoB,EAApB,EAAsB,sBAAc,QAAI,KAAK,gBACnG,KAAK,gBAAsD,QAAvC,EAAuB,OAApB,QAAoB,IAApB,OAAoB,EAApB,EAAsB,sBAAc,QAAI,KAAK,gBACpE,KAAK,OAAoC,QAA9B,EAAuB,OAApB,QAAoB,IAApB,OAAoB,EAApB,EAAsB,aAAK,QAAI,KAAK,OA6OtD,OAzQgB,cAAd,WAGE,KAFA,EAAc,EAAO,iBAEA,EAAY,mBAAqB,EAAY,kBAAkB,gBAAkB,SAAW,CAC/G,IAAM,GAAsB,OAAP,QAAO,IAAP,OAAO,EAAP,EAAS,eAAgB,GAExC,EAAa,IAAI,EAAW,EAAa,YAAa,EAAa,sBACzE,EAAc,EACd,EAAO,eAAuB,EAGhC,OAAO,GAwBF,sBAAP,WACE,OAAO,KAAK,UAAU,CACpB,gBAAiB,KAAK,iBACtB,QAAS,KAAK,SACd,eAAgB,KAAK,gBACrB,eAAgB,KAAK,gBACrB,MAAO,KAAK,UAOT,sBAAP,SAAiB,GACf,KAAK,QAAO,2BACP,KAAK,SACL,IAUA,oBAAP,SAAe,GAAf,WAGE,OAFA,KAAK,kBAAkB,KAAK,GAErB,WACL,EAAK,kBAAoB,EAAK,kBAAkB,QAAO,YAAM,kBAU1D,yBAAP,SAAoB,GAApB,WAGE,OAFA,KAAK,uBAAuB,KAAK,GAE1B,WACL,EAAK,uBAAyB,EAAK,uBAAuB,QAAO,YAAM,kBASpE,yBAAP,SAAoB,GACV,MAAc,KAAK,QAAV,UAGjB,OAAU,EAAY,EAAY,IAAM,KAFzB,GAAe,KAAK,QAAQ,eAEQ,IAAI,KAAK,YAOvD,2BAAP,SAAsB,EAAmB,EAAa,EAAgB,GAChE,KAAC,gBAAgB,GAAO,EAC5B,KAAK,iBAAiB,GAAa,CACjC,KAAI,EACE,MAAD,IAQF,6BAAP,SAAwB,GAClB,OAAG,KAAK,gBAAgB,IAMvB,8BAAP,WACE,OAAO,KAAK,iBAOP,8BAAP,SAAyB,GACvB,IAAM,EAAQ,KAAK,iBAAiB,GAEpC,OAAO,GAAS,EAAM,MAOjB,uCAAP,SAAkC,GAChC,IAAM,EAAQ,KAAK,iBAAiB,GAEpC,OAAO,GAAS,EAAM,OAOjB,uBAAP,SAAkB,EAAc,GACtB,MAAkB,KAAK,QAAV,cACf,EAAU,IAAkB,EAAqB,KAAK,wBAAqB,EAMjF,GAJI,GACF,KAAK,gBAAgB,KAAK,GAGxB,EACF,OAAQ,GACN,KAAK,EACK,MAAU,EAAL,MAEb,IACG,EAAwB,WAAW,EAAO,EAAwB,SAAS,QAC5E,MAAO,IAKT,MAEF,KAAK,EACH,EAAQ,YAAY,SAAS,eAAe,SAIhD,KAAK,OAAO,KAAK,GAIf,KAAK,QAAQ,cAEf,KAAK,QAAQ,aAAa,GAG5B,KAAK,uBAAuB,SAAQ,YAAY,eAO3C,qBAAP,SAAgB,GACd,OAAQ,EAAwB,KAAK,gBAAgB,KAAK,IAAM,IAAM,KAAK,OAAO,KAAK,KAOlF,kBAAP,WACE,KAAK,OAAS,GACd,KAAK,SAAW,EAChB,KAAK,iBAAmB,GACxB,KAAK,gBAAkB,GAEvB,KAAK,kBAAkB,SAAQ,YAAY,eAItC,sBAAP,WACE,KAAK,gBAAkB,IAGjB,6BAAR,sBAWE,OAVK,KAAK,eAAqC,qBAAb,WAChC,KAAK,cAAgB,KAAK,sBAErB,GAEH,OAAO,uBAAsB,WAC3B,EAAK,mBAAgB,MAIpB,KAAK,eAGN,gCAAR,WACE,IAAM,EAAwB,SAAS,KACjC,EAAe,SAAS,cAAc,SACxC,EAAkC,KAEtC,EAAa,aAAa,oBAAqB,QAEvC,MAAgB,KAAK,QAAV,YAMnB,GALI,GACE,EAAY,OACd,EAAa,aAAa,QAAS,EAAY,OAG/C,KAAK,kBAGP,EAAqB,KAAK,kBAAkB,uBACvC,CACL,IAAM,EAAsC,KAAK,2BAG/C,EADE,EACmB,EAAoB,mBAEpB,EAAK,WAAW,GAOzC,OAHA,EAAM,aAAa,EAAc,EAAM,SAAS,GAAsB,EAAqB,MAC3F,KAAK,kBAAoB,EAElB,GAGD,qCAAR,WACE,IAAM,EAAwB,SAAS,KACvC,OAAI,EACK,EAAK,cAAc,4BAErB,MAEX,EAxRA,I,6BCpHO,SAAStO,EAAQrvP,GACpB,OAAIA,EAAI,EACG,EAEPA,EAAI,IACG,IAEA,EAAJA,EAEJ,SAAS49P,EAAS59P,GACrB,OAAIA,EAAI,EACG,EAEPA,EAAI,WACG,WAEA,EAAJA,EApBX,qE,kICKa2zM,EAAb,WACI,WAAYx4L,EAAaE,EAAWjI,EAAWrR,GAAM,oBACjDnF,KAAKue,YAAcA,EACnBve,KAAKye,UAAYA,EACjBze,KAAKwW,UAAYA,EACjBxW,KAAKmF,KAAOA,EACZnF,KAAKihQ,0BAAuBpnP,EANpC,gDAQI,SAAe3V,EAAG5E,GACd,OAAQ4E,EAAEqa,cAAgBjf,EAAEif,aACrBra,EAAEua,YAAcnf,EAAEmf,WAClBva,EAAEsS,YAAclX,EAAEkX,WAClBtS,EAAEiB,OAAS7F,EAAE6F,OAZ5B,uBAcI,SAAiBjB,EAAG5E,GAChB,IAAMqjC,EAAOz+B,EAAEnG,OAEf,GAAI4kC,IADSrjC,EAAEvB,OAEX,OAAO,EAEX,IAAK,IAAID,EAAI,EAAGA,EAAI6kC,EAAM7kC,IACtB,IAAKi5M,EAAe/T,QAAQ9+L,EAAEpG,GAAIwB,EAAExB,IAChC,OAAO,EAGf,OAAO,IAzBf,4BA2BI,SAAsByxB,EAAKmmF,EAAa4E,GACpC,GAAmB,IAAf/qF,EAAIxxB,OACJ,OAAOwxB,EAEX,IAJ+C,EAIzChR,EAAcm3F,EAAc,EAC5Bj3F,EAAY67F,EAAY,EACxBqnB,EAAarnB,EAAY5E,EACzBv0G,EAAI,GACN6wG,EAAU,EARiC,cAS7BziF,GAT6B,IAS/C,2BAAuB,KAAZ2xO,EAAY,QACfA,EAAIziP,WAAaF,GAAe2iP,EAAI3iP,aAAeE,IAGvDtd,EAAE6wG,KAAa,IAAI+kG,EAAer/L,KAAKC,IAAI,EAAGupP,EAAI3iP,YAAcA,EAAc,GAAI7G,KAAKgI,IAAIiiH,EAAa,EAAGu/H,EAAIziP,UAAYF,EAAc,GAAI2iP,EAAI1qP,UAAW0qP,EAAI/7P,QAbrH,8BAe/C,OAAOhE,IA1Cf,oBA4CI,SAAcy1M,EAAiBr3L,EAAY4hP,EAAe76H,GACtD,GAA+B,IAA3BswE,EAAgB74M,OAChB,MAAO,GAGX,IADA,IAAIqE,EAAS,GAAI8qG,EAAY,EACpBpvG,EAAI,EAAG+jC,EAAM+0K,EAAgB74M,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACxD,IAAMuB,EAAIu3M,EAAgB94M,GACpB+gB,EAAQxf,EAAEwf,MAChB,KAAIA,EAAML,cAAgBe,GAAcV,EAAMP,gBAAkBiB,MAI5DV,EAAMH,WAAyB,IAAXrf,EAAE8F,MAAuC,IAAX9F,EAAE8F,MAAxD,CAIA,IAAMoZ,EAAeM,EAAMP,kBAAoBiB,EAAaV,EAAMN,YAAc4iP,EAC1E1iP,EAAaI,EAAML,gBAAkBe,EAAaV,EAAMJ,UAAY6nH,EAC1ElkI,EAAO8qG,KAAe,IAAI6pG,EAAex4L,EAAaE,EAAWpf,EAAE26H,gBAAiB36H,EAAE8F,OAE1F,OAAO/C,IAhEf,0BAkEI,SAAoB8B,EAAG5E,GACnB,IAAM8hQ,EAAQ,CAAC,EAAG,EAAG,EAAG,GACxB,OAAOA,EAAMl9P,GAAKk9P,EAAM9hQ,KApEhC,qBAsEI,SAAe4E,EAAG5E,GACd,GAAI4E,EAAEqa,cAAgBjf,EAAEif,YACpB,OAAOra,EAAEqa,YAAcjf,EAAEif,YAE7B,GAAIra,EAAEua,YAAcnf,EAAEmf,UAClB,OAAOva,EAAEua,UAAYnf,EAAEmf,UAE3B,IAAM4iP,EAAUtqD,EAAeuqD,aAAap9P,EAAEiB,KAAM7F,EAAE6F,MACtD,OAAgB,IAAZk8P,EACOA,EAEPn9P,EAAEsS,YAAclX,EAAEkX,UACXtS,EAAEsS,UAAYlX,EAAEkX,WAAa,EAAI,EAErC,MApFf,KAuFa+qP,EACT,WAAY7rJ,EAAa4E,EAAW9jG,EAAWo4B,GAAU,oBACrD5uC,KAAK01G,YAAcA,EACnB11G,KAAKs6G,UAAYA,EACjBt6G,KAAKwW,UAAYA,EACjBxW,KAAK4uC,SAAWA,GAGlB4yN,E,WACF,aAAc,oBACVxhQ,KAAKyhQ,YAAc,GACnBzhQ,KAAKsvC,WAAa,GAClBtvC,KAAK4uC,SAAW,GAChB5uC,KAAK2/G,MAAQ,E,oDASjB,SAAiB+hJ,EAAeC,EAAiBv/P,GAC7C,KAAOpC,KAAK2/G,MAAQ,GAAK3/G,KAAKyhQ,YAAY,GAAKC,GAAe,CAG1D,IAFA,IAAI5jQ,EAAI,EAEDA,EAAI,EAAIkC,KAAK2/G,OAAS3/G,KAAKyhQ,YAAY3jQ,KAAOkC,KAAKyhQ,YAAY3jQ,EAAI,IACtEA,IAGJsE,EAAOmB,KAAK,IAAIg+P,EAAkBI,EAAiB3hQ,KAAKyhQ,YAAY3jQ,GAAIkC,KAAKsvC,WAAW3yB,KAAK,KAAM6kP,EAAMI,UAAU5hQ,KAAK4uC,YACxH+yN,EAAkB3hQ,KAAKyhQ,YAAY3jQ,GAAK,EAExCkC,KAAKyhQ,YAAYlvO,OAAO,EAAGz0B,EAAI,GAC/BkC,KAAKsvC,WAAW/c,OAAO,EAAGz0B,EAAI,GAC9BkC,KAAK4uC,SAASrc,OAAO,EAAGz0B,EAAI,GAC5BkC,KAAK2/G,OAAU7hH,EAAI,EAMvB,OAJIkC,KAAK2/G,MAAQ,GAAKgiJ,EAAkBD,IACpCt/P,EAAOmB,KAAK,IAAIg+P,EAAkBI,EAAiBD,EAAgB,EAAG1hQ,KAAKsvC,WAAW3yB,KAAK,KAAM6kP,EAAMI,UAAU5hQ,KAAK4uC,YACtH+yN,EAAkBD,GAEfC,I,oBAEX,SAAOE,EAAYrrP,EAAWo4B,GAC1B,GAAmB,IAAf5uC,KAAK2/G,OAAe3/G,KAAKyhQ,YAAYzhQ,KAAK2/G,MAAQ,IAAMkiJ,EAExD7hQ,KAAKyhQ,YAAYl+P,KAAKs+P,GACtB7hQ,KAAKsvC,WAAW/rC,KAAKiT,GACrBxW,KAAK4uC,SAASrrC,KAAKqrC,QAInB,IAAK,IAAI9wC,EAAI,EAAGA,EAAIkC,KAAK2/G,MAAO7hH,IAC5B,GAAIkC,KAAKyhQ,YAAY3jQ,IAAM+jQ,EAAY,CACnC7hQ,KAAKyhQ,YAAYlvO,OAAOz0B,EAAG,EAAG+jQ,GAC9B7hQ,KAAKsvC,WAAW/c,OAAOz0B,EAAG,EAAG0Y,GAC7BxW,KAAK4uC,SAASrc,OAAOz0B,EAAG,EAAG8wC,GAC3B,MAIZ5uC,KAAK2/G,W,wBA/CT,SAAiB/wE,GAEb,IADA,IAAIxsC,EAAS,EACJtE,EAAI,EAAG+jC,EAAM+M,EAAS7wC,OAAQD,EAAI+jC,EAAK/jC,IAC5CsE,GAAUwsC,EAAS9wC,GAEvB,OAAOsE,M,KA8CFy5M,EAAb,8FAII,SAAiBj+F,EAAag5F,GAC1B,GAA+B,IAA3BA,EAAgB74M,OAChB,MAAO,GAKX,IAHA,IAAIqE,EAAS,GACPwb,EAAQ,IAAI4jP,EACdG,EAAkB,EACb7jQ,EAAI,EAAG+jC,EAAM+0K,EAAgB74M,OAAQD,EAAI+jC,EAAK/jC,IAAK,CACxD,IAAMuB,EAAIu3M,EAAgB94M,GACtBygB,EAAclf,EAAEkf,YAChBE,EAAYpf,EAAEof,UACZjI,EAAYnX,EAAEmX,UACdo4B,EAAuB,IAAXvvC,EAAE8F,KACd,EACW,IAAX9F,EAAE8F,KACE,EACA,EAEV,GAAIoZ,EAAc,EAAG,CACjB,IAAMilH,EAAiB5lB,EAAY77E,WAAWxjB,EAAc,GACxDk7E,IAAwB+pC,IACxBjlH,IAGR,GAAIE,EAAY,EAAG,CACf,IAAM+kH,EAAiB5lB,EAAY77E,WAAWtjB,EAAY,GACtDg7E,IAAwB+pC,IACxB/kH,IAGR,IAAMqjP,EAAqBvjP,EAAc,EACnCwjP,EAAmBtjP,EAAY,EACrCkjP,EAAkB/jP,EAAMokP,iBAAiBF,EAAoBH,EAAiBv/P,GAC1D,IAAhBwb,EAAM+hG,QACNgiJ,EAAkBG,GAEtBlkP,EAAM4jG,OAAOugJ,EAAkBvrP,EAAWo4B,GAG9C,OADAhxB,EAAMokP,iBAAiB,WAAyCL,EAAiBv/P,GAC1EA,MA3Cf,M,2MCyCW6/P,E,cAnMEC,EAAb,YAoBE,WAAYC,EAAYC,EAAUjzO,GAAQ,oBACxCnvB,KAAKogB,MAAQ+hP,EAAW/hP,MACxBpgB,KAAKqgB,IAAM+hP,EAAS/hP,IACpBrgB,KAAKmiQ,WAAaA,EAClBniQ,KAAKoiQ,SAAWA,EAChBpiQ,KAAKmvB,OAASA,EAzBlB,iCA4BE,WACE,MAAO,aA7BX,oBAgCE,WACE,MAAO,CACL/O,MAAOpgB,KAAKogB,MACZC,IAAKrgB,KAAKqgB,SAnChB,GA4BOnd,OAAOmsK,aAgBDv/C,EAAb,YAiCE,WAAY7gF,EAAM7uB,EAAOC,EAAKuzF,EAAMp0F,EAAQxd,GAAO,oBACjDhC,KAAKivC,KAAOA,EACZjvC,KAAKogB,MAAQA,EACbpgB,KAAKqgB,IAAMA,EACXrgB,KAAK4zG,KAAOA,EACZ5zG,KAAKwf,OAASA,EAEdxf,KAAKgC,MAAQA,EACbhC,KAAKi6G,KAAO,KACZj6G,KAAKkC,KAAO,KA1ChB,iCA6CE,WACE,MAAO,UA9CX,oBAiDE,WACE,MAAO,CACL+sC,KAAMjvC,KAAKivC,KACXjtC,MAAOhC,KAAKgC,MACZ4xG,KAAM5zG,KAAK4zG,KACXp0F,OAAQxf,KAAKwf,YAtDnB,GA6COtc,OAAOmsK,aAoBDgzF,EAAoB,CAC/BC,KAAM,GACNC,SAAU,CAAC,eACXC,oBAAqB,CACnB,OACA,sBACA,aACA,gBAEFC,mBAAoB,CAAC,WAAY,OAAQ,eAAgB,cACzD5c,SAAU,CAAC,QACX6c,aAAc,CAAC,cACfC,MAAO,CAAC,QAAS,OAAQ,YAAa,aAAc,gBACpDC,SAAU,CAAC,OAAQ,SACnBC,eAAgB,CAAC,OAAQ,cACzBC,eAAgB,CAAC,gBAAiB,aAAc,gBAChDC,mBAAoB,CAClB,OACA,sBACA,gBACA,aACA,gBAEFC,SAAU,GACVC,WAAY,GACZC,YAAa,GACbC,aAAc,GACdC,UAAW,GACXC,UAAW,GACXC,UAAW,CAAC,UACZC,YAAa,CAAC,UACdC,YAAa,CAAC,OAAQ,SACtBC,UAAW,CAAC,OAAQ,aACpBC,UAAW,CAAC,QACZC,SAAU,CAAC,QACXC,YAAa,CAAC,QACdC,iBAAkB,CAAC,cAAe,aAAc,kBAChDC,wBAAyB,CAAC,QAC1BC,qBAAsB,CAAC,cAAe,OAAQ,cAC9CC,qBAAsB,CACpB,cACA,OACA,aACA,aACA,UAEFC,gBAAiB,CAAC,cAAe,OAAQ,YAAa,OAAQ,cAC9DC,qBAAsB,CACpB,cACA,OACA,OACA,eACA,cAEFC,wBAAyB,CACvB,cACA,OACA,aACA,aACA,UAEFC,oBAAqB,CAAC,cAAe,OAAQ,aAAc,SAC3DC,mBAAoB,CAAC,cAAe,OAAQ,aAAc,UAC1DC,oBAAqB,CAAC,cAAe,OAAQ,cAC7CC,0BAA2B,CAAC,cAAe,OAAQ,aAAc,UACjEC,oBAAqB,CAAC,cAAe,OAAQ,YAAa,aAC1DC,gBAAiB,CAAC,aAAc,kBAChCC,oBAAqB,CAAC,OAAQ,cAC9BC,oBAAqB,CAAC,OAAQ,aAAc,aAAc,UAC1DC,uBAAwB,CAAC,OAAQ,aAAc,aAAc,UAC7DC,mBAAoB,CAAC,OAAQ,aAAc,SAC3CC,kBAAmB,CAAC,OAAQ,aAAc,UAC1CC,yBAA0B,CAAC,OAAQ,aAAc,WAE7CC,EAAa,IAAI3nP,IAAIjf,OAAOsY,KAAK2rP,IAKhC,SAAS4C,EAAOC,GACrB,IAAMC,EACU,OAAdD,QAAoC,IAAdA,OAAuB,EAASA,EAAUj2N,KAClE,MAA4B,kBAAdk2N,GAA0BH,EAAW1iN,IAAI6iN,IAMzD,SAAWlD,GACTA,EAAiB,MAAY,QAC7BA,EAAiB,SAAe,WAChCA,EAAiB,aAAmB,eAHtC,CAIGA,IAAsBA,EAAoB,M,yHCpMvCmD,EAAchnQ,OAAO8B,OAAO,MAC3B,SAASmlQ,EAAmB/lO,EAAKqgF,GACpC,GAAIA,GAAS,EACT,MAAO,GAENylJ,EAAY9lO,KACb8lO,EAAY9lO,GAAO,CAAC,GAAIA,IAG5B,IADA,IAAMvG,EAAQqsO,EAAY9lO,GACjBxhC,EAAIi7B,EAAMh7B,OAAQD,GAAK6hH,EAAO7hH,IACnCi7B,EAAMj7B,GAAKi7B,EAAMj7B,EAAI,GAAKwhC,EAE9B,OAAOvG,EAAM4mF,GAEV,IAAMw3I,EAAb,WACI,WAAYt4O,EAAOqR,GAAM,oBACrBlwB,KAAKslQ,MAAQp1O,EACblwB,KAAKulQ,WAAa1mP,EAClB7e,KAAKq3K,aAAe,KACpBr3K,KAAKwlQ,uCAAwC,EAC7CxlQ,KAAKylQ,+BAAgC,EAN7C,qDAwCI,SAAkB1+I,EAASloG,EAAOsqD,GAC1BnpE,KAAKwlQ,sCACLz+I,EAAQuvD,wBAAwBz3J,EAAOsqD,GAGvC49C,EAAQ2+I,iBAAiB7mP,EAAOsqD,KA7C5C,+BAgDI,SAAkBr0C,EAAOiyF,GACrB,IAAM4+I,EAAY3lQ,KAAKulQ,WAAWjnP,gBAC9BsnP,EAAU5lQ,KAAKulQ,WAAW/mP,cACI,IAA9Bxe,KAAKulQ,WAAW9mP,WAAmBknP,IAAcC,IACjDA,GAAoB,GAExB,MAA8C5lQ,KAAKslQ,MAA3Cl/K,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,aACvBu/K,EAA0BF,IAAcC,EAC9C,GAAI5lQ,KAAKslQ,MAAM5+K,YAAa,CAEpB1mF,KAAKulQ,WAAW7mP,WACZ,QAAQ7H,KAAKie,EAAM01E,eAAem7J,MAClC3lQ,KAAKwlQ,uCAAwC,GAKrD,IADA,IAAIM,EAA0B,EAAGC,EAAc,EACtCxmP,EAAaomP,EAAWpmP,GAAcqmP,EAASrmP,IAAcumP,EAA0BC,EAAa,CACzGA,EAAc,EACd,IAAI34H,EAAWt4G,EAAM01E,eAAejrF,GAChCymP,EAAsBvsK,IAAgC2zC,GAC1D,KAAIptI,KAAKslQ,MAAMlO,WAAkC,IAApBhqH,EAASrvI,QAAwC,IAAxBioQ,KAIjDH,GAA2B7lQ,KAAKslQ,MAAMlO,WAAiC,IAApBhqH,EAASrvI,QAAjE,CAQA,IAJ6B,IAAzBioQ,IAEAA,EAAsB54H,EAASrvI,QAE/BwhB,EAAa,EAEb,GADgC8vG,IAAcC,wBAAwB8d,EAAU44H,EAAsB,EAAG5/K,GACzEC,IAAe,GAGvCvxD,EAAMo4G,kBAAkB3tH,EAAa,GAAI,CACzC,IAAI0mP,EAAct+K,IAA8BmwK,eAAe93P,KAAKslQ,MAAMj+K,WAAYvyD,EAAO,IAAIzW,IAAMkB,EAAa,EAAGuV,EAAMgsG,iBAAiBvhH,EAAa,GAAIA,EAAa,EAAGuV,EAAMgsG,iBAAiBvhH,EAAa,KACnN,GAAI0mP,EAAa,CAEb,GADAF,EAAcD,EACVG,EAAYr5G,WACZ,IAAK,IAAIzoJ,EAAI,EAAG2mG,EAAOm7J,EAAYr5G,WAAW7uJ,OAAQoG,EAAI2mG,GAAQi7J,EAAc1/K,GAC/B,KAAzC4/K,EAAYr5G,WAAW7qH,WAAW59B,GADkDA,IAEpF4hQ,IAORE,EAAYz5G,aACZu5G,EAAcruP,KAAKC,IAAI,EAAGouP,EAAcE,EAAYz5G,aAGxD,IAAK,IAAIroJ,EAAI,EAAGA,EAAI4hQ,IACY,IAAxBC,GAA8E,KAAjD54H,EAASrrG,WAAWikO,EAAsB,IAD9C7hQ,IAI7B6hQ,KAMpB,IAAIhmQ,KAAKslQ,MAAMlO,WAAqC,IAAxB4O,EAA5B,CAIA,IAAIE,OAAa,EAEbA,EADAlmQ,KAAKslQ,MAAMlO,UACKD,EAAaxqG,cAAcvf,EAAU44H,EAAsB,EAAG5/K,EAASC,EAAYC,GAGnF6wK,EAAa1qG,YAAYrf,EAAU44H,EAAsB,EAAG5/K,EAASC,EAAYC,GAErGtmF,KAAKmmQ,kBAAkBp/I,EAAS,IAAI1oG,IAAMkB,EAAY,EAAGA,EAAYymP,EAAsB,GAAIE,GAC3F3mP,IAAeomP,GAAc3lQ,KAAKulQ,WAAW7mP,YAE7C1e,KAAKylQ,8BAAiCzlQ,KAAKulQ,WAAWhnP,aAAeynP,EAAsB,UAIlG,EAEIhmQ,KAAKslQ,MAAMlO,WAAap3P,KAAKulQ,WAAW7mP,WAAgD,IAAnCoW,EAAMw1E,cAAcq7J,KAC1E3lQ,KAAKwlQ,uCAAwC,GAGjD,IADA,IAAMY,EAAa9/K,EAAe++K,EAAmB,IAAKh/K,GAAc,KAC/D9mE,EAAaomP,EAAWpmP,GAAcqmP,EAASrmP,IAAc,CAClE,IAAM6tH,EAAWt4G,EAAM01E,eAAejrF,GAClCymP,EAAsBvsK,IAAgC2zC,GAC1D,KAAIptI,KAAKslQ,MAAMlO,WAAkC,IAApBhqH,EAASrvI,QAAwC,IAAxBioQ,MAIjDH,GAA2B7lQ,KAAKslQ,MAAMlO,WAAiC,IAApBhqH,EAASrvI,WAIpC,IAAzBioQ,IAEAA,EAAsB54H,EAASrvI,SAE/BiC,KAAKslQ,MAAMlO,WAAqC,IAAxB4O,IAI5B,GAAIhmQ,KAAKslQ,MAAMlO,UAAW,CACtB4O,EAAsBtuP,KAAKgI,IAAIsmP,EAAqB3/K,GACpD,IAAK,IAAIvoF,EAAI,EAAGA,EAAIkoQ,EAAqBloQ,IAAK,CAE1C,GAAY,IADAsvI,EAASrrG,WAAWjkC,GACP,CACrBkoQ,EAAsBloQ,EAAI,EAC1B,OAGRkC,KAAKmmQ,kBAAkBp/I,EAAS,IAAI1oG,IAAMkB,EAAY,EAAGA,EAAYymP,EAAsB,GAAI,SAG/FhmQ,KAAKmmQ,kBAAkBp/I,EAAS,IAAI1oG,IAAMkB,EAAY,EAAGA,EAAY,GAAI6mP,GACrE7mP,IAAeomP,GAAc3lQ,KAAKulQ,WAAW7mP,YAE7C1e,KAAKylQ,8BAAiE,IAAhCzlQ,KAAKulQ,WAAWhnP,cAKtEve,KAAKq3K,aAAetwD,EAAQuwD,eAAet3K,KAAKulQ,cAjLxD,gCAmLI,SAAmBzwO,EAAOyhJ,GACtB,GAAIv2K,KAAKwlQ,sCAAuC,CAC5C,IAAIa,EAAS9vF,EAAOE,2BAA2B,GAC/C,OAAO,IAAIvtF,IAAUm9K,EAAOxnP,MAAML,cAAe6nP,EAAOxnP,MAAMJ,UAAW4nP,EAAOxnP,MAAML,cAAe6nP,EAAOxnP,MAAMJ,WAEtH,IAAMrc,EAASm0K,EAAOgB,oBAAoBv3K,KAAKq3K,cAC/C,GAAIr3K,KAAKylQ,8BAA+B,CAEpC,IAAIriI,EAAqBpjI,KAAKulQ,WAAWhnP,YAEzC,OADwBnc,EAAOmc,aACN6kH,EACdhhI,EAEmB,IAA1BA,EAAO2oF,eACA,IAAI7B,IAAU9mF,EAAOkc,gBAAiB8kH,EAAoBhhI,EAAOoc,cAAepc,EAAOqc,WAE3F,IAAIyqE,IAAU9mF,EAAOoc,cAAepc,EAAOqc,UAAWrc,EAAOkc,gBAAiB8kH,GAEzF,OAAOhhI,KArMf,4BAQI,SAAqBwxG,EAAMp0F,EAAQ4mE,EAASC,EAAYC,GAEpD,IAAMggL,EAA4Bj3I,IAAcC,wBAAwB1b,EAAMp0F,EAAQ4mE,GACtF,GAAIE,EAAc,CACd,IAAM8rD,EAASizH,EAAmB,IAAKh/K,GAGvC,OAAOg/K,EAAmBjzH,EAFH/iB,IAAck3I,kBAAkBD,EAA2BjgL,GAC7CA,GAOrC,OAAOg/K,EAHQ,KACQh2I,IAAcm3I,kBAAkBF,EAA2BlgL,GAC7CA,KApBjD,yBAwBI,SAAmBwtB,EAAMp0F,EAAQ4mE,EAASC,EAAYC,GAElD,IAAMggL,EAA4Bj3I,IAAcC,wBAAwB1b,EAAMp0F,EAAQ4mE,GACtF,GAAIE,EAAc,CACd,IAAM8rD,EAASizH,EAAmB,IAAKh/K,GAGvC,OAAOg/K,EAAmBjzH,EAFH/iB,IAAco3I,kBAAkBH,EAA2BjgL,GAC7CA,GAOrC,OAAOg/K,EAHQ,KACQh2I,IAAcq3I,kBAAkBJ,EAA2BlgL,GAC7CA,OApCjD,M,6BCGA,IAAYugL,EALZ,kCAKA,SAAYA,GACV,uBACA,yBACA,uBACA,yBAJF,CAAYA,MAAsB,M,qPC1BlC,SAASt8F,EAAW2/C,GAClB,MAA8B,MAAvBA,EAASjpL,OAAO,GAIzB,SAAS6lO,EAAU/5K,EAAM5tF,GACvB,IAAK,IAAInB,EAAImB,EAAOgF,EAAInG,EAAI,EAAGyC,EAAIssF,EAAK9uF,OAAQkG,EAAI1D,EAAGzC,GAAK,EAAGmG,GAAK,EAClE4oF,EAAK/uF,GAAK+uF,EAAK5oF,GAGjB4oF,EAAKvpF,MAgEQujQ,MA5Df,SAAyBviQ,EAAIC,QACdsV,IAATtV,IAAoBA,EAAO,IAE/B,IAkBIuiQ,EAlBAC,EAAWziQ,GAAMA,EAAGg1B,MAAM,MAAS,GACnC0tO,EAAaziQ,GAAQA,EAAK+0B,MAAM,MAAS,GAEzC2tO,EAAU3iQ,GAAM+lK,EAAW/lK,GAC3B4iQ,EAAY3iQ,GAAQ8lK,EAAW9lK,GAC/B4iQ,EAAaF,GAAWC,EAW5B,GATI5iQ,GAAM+lK,EAAW/lK,GAEnB0iQ,EAAYD,EACHA,EAAQhpQ,SAEjBipQ,EAAU1jQ,MACV0jQ,EAAYA,EAAUljQ,OAAOijQ,KAG1BC,EAAUjpQ,OAAQ,MAAO,IAG9B,GAAIipQ,EAAUjpQ,OAAQ,CACpB,IAAIm6J,EAAO8uG,EAAUA,EAAUjpQ,OAAS,GACxC+oQ,EAA4B,MAAT5uG,GAAyB,OAATA,GAA0B,KAATA,OAEpD4uG,GAAmB,EAIrB,IADA,IAAI7wE,EAAK,EACAn4L,EAAIkpQ,EAAUjpQ,OAAQD,GAAK,EAAGA,IAAK,CAC1C,IAAI6iL,EAAOqmF,EAAUlpQ,GAER,MAAT6iL,EACFimF,EAAUI,EAAWlpQ,GACH,OAAT6iL,GACTimF,EAAUI,EAAWlpQ,GACrBm4L,KACSA,IACT2wE,EAAUI,EAAWlpQ,GACrBm4L,KAIJ,IAAKkxE,EAAY,KAAOlxE,IAAMA,EAAI+wE,EAAUh7N,QAAQ,OAGlDm7N,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAO38F,EAAW28F,EAAU,KAExCA,EAAUh7N,QAAQ,IAEpB,IAAI5pC,EAAS4kQ,EAAUrqP,KAAK,KAI5B,OAFImqP,GAA0C,MAAtB1kQ,EAAO+mC,QAAQ,KAAY/mC,GAAU,KAEtDA,GCvET,SAASglQ,EAAQx7P,GACf,OAAOA,EAAIw7P,QAAUx7P,EAAIw7P,UAAYhpQ,OAAOM,UAAU0oQ,QAAQxnQ,KAAKgM,GAkCtDy7P,MA/Bf,SAASA,EAAWnjQ,EAAG5E,GAErB,GAAI4E,IAAM5E,EAAG,OAAO,EAGpB,GAAS,MAAL4E,GAAkB,MAAL5E,EAAW,OAAO,EAEnC,GAAIG,MAAM+b,QAAQtX,GAChB,OACEzE,MAAM+b,QAAQlc,IACd4E,EAAEnG,SAAWuB,EAAEvB,QACfmG,EAAEkgI,OAAM,SAASn7H,EAAMhK,GACrB,OAAOooQ,EAAWp+P,EAAM3J,EAAEL,OAKhC,GAAiB,kBAANiF,GAA+B,kBAAN5E,EAAgB,CAClD,IAAI6qL,EAASi9E,EAAQljQ,GACjBojQ,EAASF,EAAQ9nQ,GAErB,OAAI6qL,IAAWjmL,GAAKojQ,IAAWhoQ,EAAU+nQ,EAAWl9E,EAAQm9E,GAErDlpQ,OAAOsY,KAAKtY,OAAOgC,OAAO,GAAI8D,EAAG5E,IAAI8kI,OAAM,SAAS9lI,GACzD,OAAO+oQ,EAAWnjQ,EAAE5F,GAAMgB,EAAEhB,OAIhC,OAAO,G,SC1BT,SAAS2tN,EAAgB1mH,GACvB,MAA0B,MAAnBA,EAAKxkE,OAAO,GAAawkE,EAAO,IAAMA,EAE/C,SAASgiK,EAAkBhiK,GACzB,MAA0B,MAAnBA,EAAKxkE,OAAO,GAAawkE,EAAKp8D,OAAO,GAAKo8D,EAKnD,SAAS2mH,EAAc3mH,EAAMiiK,GAC3B,OAJF,SAAqBjiK,EAAMiiK,GACzB,OAA4D,IAArDjiK,EAAKxiE,cAAcniC,QAAQ4mQ,EAAOzkO,iBAAuE,IAA/C,MAAMniC,QAAQ2kG,EAAKxkE,OAAOymO,EAAOzpQ,SAG3F0pQ,CAAYliK,EAAMiiK,GAAUjiK,EAAKp8D,OAAOq+N,EAAOzpQ,QAAUwnG,EAElE,SAASmiK,EAAmBniK,GAC1B,MAAwC,MAAjCA,EAAKxkE,OAAOwkE,EAAKxnG,OAAS,GAAawnG,EAAK7gG,MAAM,GAAI,GAAK6gG,EA0BpE,SAAS6mH,EAAWtzM,GAClB,IAAIkxM,EAAWlxM,EAASkxM,SACpBt+I,EAAS5yD,EAAS4yD,OAClB+tK,EAAO3gO,EAAS2gO,KAChBl0I,EAAOykH,GAAY,IAGvB,OAFIt+I,GAAqB,MAAXA,IAAgB65B,GAA6B,MAArB75B,EAAO3qC,OAAO,GAAa2qC,EAAS,IAAMA,GAC5E+tK,GAAiB,MAATA,IAAcl0I,GAA2B,MAAnBk0I,EAAK14M,OAAO,GAAa04M,EAAO,IAAMA,GACjEl0I,EAGT,SAAS+lH,EAAe/lH,EAAMjxF,EAAOhW,EAAKozO,GACxC,IAAI54N,EAEgB,kBAATysF,GAETzsF,EAvCJ,SAAmBysF,GACjB,IAAIykH,EAAWzkH,GAAQ,IACnB75B,EAAS,GACT+tK,EAAO,GACPkuB,EAAY39C,EAASppN,QAAQ,MAEd,IAAf+mQ,IACFluB,EAAOzvB,EAAS7gL,OAAOw+N,GACvB39C,EAAWA,EAAS7gL,OAAO,EAAGw+N,IAGhC,IAAIC,EAAc59C,EAASppN,QAAQ,KAOnC,OALqB,IAAjBgnQ,IACFl8L,EAASs+I,EAAS7gL,OAAOy+N,GACzB59C,EAAWA,EAAS7gL,OAAO,EAAGy+N,IAGzB,CACL59C,SAAUA,EACVt+I,OAAmB,MAAXA,EAAiB,GAAKA,EAC9B+tK,KAAe,MAATA,EAAe,GAAKA,GAkBfouB,CAAUtiK,GACrBzsF,EAASxE,MAAQA,SAISuF,KAD1Bf,EAAWy3J,YAAS,GAAIhrE,IACXykH,WAAwBlxM,EAASkxM,SAAW,IAErDlxM,EAAS4yD,OACuB,MAA9B5yD,EAAS4yD,OAAO3qC,OAAO,KAAYjoB,EAAS4yD,OAAS,IAAM5yD,EAAS4yD,QAExE5yD,EAAS4yD,OAAS,GAGhB5yD,EAAS2gO,KACqB,MAA5B3gO,EAAS2gO,KAAK14M,OAAO,KAAYjoB,EAAS2gO,KAAO,IAAM3gO,EAAS2gO,MAEpE3gO,EAAS2gO,KAAO,QAGJ5/N,IAAVvF,QAA0CuF,IAAnBf,EAASxE,QAAqBwE,EAASxE,MAAQA,IAG5E,IACEwE,EAASkxM,SAAW89C,UAAUhvP,EAASkxM,UACvC,MAAOrpN,GACP,MAAIA,aAAaonQ,SACT,IAAIA,SAAS,aAAejvP,EAASkxM,SAAxB,iFAEbrpN,EAoBV,OAhBIrC,IAAKwa,EAASxa,IAAMA,GAEpBozO,EAEG54N,EAASkxM,SAE6B,MAAhClxM,EAASkxM,SAASjpL,OAAO,KAClCjoB,EAASkxM,SAAW68C,EAAgB/tP,EAASkxM,SAAU0nB,EAAgB1nB,WAFvElxM,EAASkxM,SAAW0nB,EAAgB1nB,SAMjClxM,EAASkxM,WACZlxM,EAASkxM,SAAW,KAIjBlxM,EAET,SAAS0yM,EAAkBtnN,EAAG5E,GAC5B,OAAO4E,EAAE8lN,WAAa1qN,EAAE0qN,UAAY9lN,EAAEwnE,SAAWpsE,EAAEosE,QAAUxnE,EAAEu1O,OAASn6O,EAAEm6O,MAAQv1O,EAAE5F,MAAQgB,EAAEhB,KAAO+oQ,EAAWnjQ,EAAEoQ,MAAOhV,EAAEgV,OAG7H,SAAS0zP,IACP,IAAIC,EAAS,KAiCb,IAAIxpM,EAAY,GA4BhB,MAAO,CACLypM,UA5DF,SAAmBC,GAGjB,OADAF,EAASE,EACF,WACDF,IAAWE,IAAYF,EAAS,QAyDtCG,oBArDF,SAA6BtvP,EAAUgd,EAAQuyO,EAAqB5gQ,GAIlE,GAAc,MAAVwgQ,EAAgB,CAClB,IAAI7lQ,EAA2B,oBAAX6lQ,EAAwBA,EAAOnvP,EAAUgd,GAAUmyO,EAEjD,kBAAX7lQ,EAC0B,oBAAxBimQ,EACTA,EAAoBjmQ,EAAQqF,GAG5BA,GAAS,GAIXA,GAAoB,IAAXrF,QAGXqF,GAAS,IAmCX6gQ,eA7BF,SAAwBrwP,GACtB,IAAIo8H,GAAW,EAEf,SAAS78G,IACH68G,GAAUp8H,EAAGxX,WAAM,EAAQD,WAIjC,OADAi+D,EAAUl7D,KAAKi0B,GACR,WACL68G,GAAW,EACX51E,EAAYA,EAAUzvC,QAAO,SAAU/lB,GACrC,OAAOA,IAASuuB,OAmBpB+wO,gBAdF,WACE,IAAK,IAAIvkJ,EAAOxjH,UAAUzC,OAAQc,EAAO,IAAIY,MAAMukH,GAAOkpE,EAAO,EAAGA,EAAOlpE,EAAMkpE,IAC/EruL,EAAKquL,GAAQ1sL,UAAU0sL,GAGzBzuH,EAAU9nD,SAAQ,SAAU6gB,GAC1B,OAAOA,EAAS/2B,WAAM,EAAQ5B,QAYpC,IAAI2pQ,IAAiC,qBAAX79P,SAA0BA,OAAOP,WAAYO,OAAOP,SAASsF,eACvF,SAAS+4P,EAAgB7pQ,EAAS6I,GAChCA,EAASkD,OAAO+9P,QAAQ9pQ,IAwC1B,IAAI+pQ,EAAgB,WAChBC,EAAkB,aAEtB,SAASC,IACP,IACE,OAAOl+P,OAAOgkE,QAAQr6D,OAAS,GAC/B,MAAO3T,GAGP,MAAO,IASX,SAASmoQ,EAAqBjrQ,QACd,IAAVA,IACFA,EAAQ,IAGT2qQ,GAAsGl8C,aAAU,GACjH,IAAIy8C,EAAgBp+P,OAAOgkE,QACvBq6L,EAvDN,WACE,IAAIC,EAAKt+P,OAAO6vD,UAAUnzB,UAC1B,QAAmC,IAA9B4hO,EAAGroQ,QAAQ,gBAAuD,IAA/BqoQ,EAAGroQ,QAAQ,iBAA2D,IAAjCqoQ,EAAGroQ,QAAQ,mBAAqD,IAA1BqoQ,EAAGroQ,QAAQ,YAAqD,IAAjCqoQ,EAAGroQ,QAAQ,mBACtJ+J,OAAOgkE,SAAW,cAAehkE,OAAOgkE,QAoD3Bu6L,GAChBC,KA7CsD,IAAnDx+P,OAAO6vD,UAAUnzB,UAAUzmC,QAAQ,YA8CtCwoQ,EAASvrQ,EACTwrQ,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOf,oBAC/BA,OAAgD,IAA1BkB,EAAmCd,EAAkBc,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CxvG,EAAWn8J,EAAMm8J,SAAW0tG,EAAmBz7C,EAAgBpuN,EAAMm8J,WAAa,GAEtF,SAAS0vG,EAAeC,GACtB,IAAI33E,EAAO23E,GAAgB,GACvBrrQ,EAAM0zL,EAAK1zL,IACXgW,EAAQ09K,EAAK19K,MAEbs1P,EAAmBj/P,OAAOmO,SAI1BysF,EAHWqkK,EAAiB5/C,SACnB4/C,EAAiBl+L,OACnBk+L,EAAiBnwB,KAI5B,OADIz/E,IAAUz0D,EAAO2mH,EAAc3mH,EAAMy0D,IAClCsxD,EAAe/lH,EAAMjxF,EAAOhW,GAGrC,SAASkuC,IACP,OAAO90B,KAAK6uD,SAAS9tD,SAAS,IAAI0wB,OAAO,EAAGsgO,GAG9C,IAAII,EAAoB7B,IAExB,SAAS8B,EAASC,GAChBx5F,YAAS5hG,EAASo7L,GAElBp7L,EAAQ5wE,OAASgrQ,EAAchrQ,OAC/B8rQ,EAAkBtB,gBAAgB55L,EAAQ71D,SAAU61D,EAAQ74C,QAG9D,SAASk0O,EAAer1P,IApE1B,SAAmCA,GACjC,YAAuBkF,IAAhBlF,EAAML,QAAiE,IAA1CkmD,UAAUnzB,UAAUzmC,QAAQ,UAqE1DqpQ,CAA0Bt1P,IAC9Bu1P,EAAUR,EAAe/0P,EAAML,QAGjC,SAAS61P,IACPD,EAAUR,EAAeb,MAG3B,IAAIuB,GAAe,EAEnB,SAASF,EAAUpxP,GACjB,GAAIsxP,EACFA,GAAe,EACfN,QACK,CAELD,EAAkBzB,oBAAoBtvP,EADzB,MAC2CuvP,GAAqB,SAAUgC,GACjFA,EACFP,EAAS,CACPh0O,OAJO,MAKPhd,SAAUA,IASpB,SAAmBwxP,GACjB,IAAIz3B,EAAalkK,EAAQ71D,SAIrByxP,EAAUC,EAAQ5pQ,QAAQiyO,EAAWv0O,MACxB,IAAbisQ,IAAgBA,EAAU,GAC9B,IAAIhgF,EAAYigF,EAAQ5pQ,QAAQ0pQ,EAAahsQ,MAC1B,IAAfisL,IAAkBA,EAAY,GAClC,IAAI5yH,EAAQ4yM,EAAUhgF,EAElB5yH,IACFyyM,GAAe,EACfK,EAAG9yM,IAnBC+yM,CAAU5xP,OAuBlB,IAAI6xP,EAAkBjB,EAAeb,KACjC2B,EAAU,CAACG,EAAgBrsQ,KAE/B,SAASssQ,EAAW9xP,GAClB,OAAOkhJ,EAAWoyD,EAAWtzM,GAuE/B,SAAS2xP,EAAGlqQ,GACVwoQ,EAAc0B,GAAGlqQ,GAWnB,IAAIo6B,EAAgB,EAEpB,SAASkwO,EAAkBlzM,GAGH,KAFtBh9B,GAAiBg9B,IAEoB,IAAVA,GACzBhtD,OAAOjF,iBAAiBijQ,EAAeqB,GACnCb,GAAyBx+P,OAAOjF,iBAAiBkjQ,EAAiBuB,IAC3C,IAAlBxvO,IACThwB,OAAOhF,oBAAoBgjQ,EAAeqB,GACtCb,GAAyBx+P,OAAOhF,oBAAoBijQ,EAAiBuB,IAI7E,IAAI9yG,GAAY,EAiChB,IAAI1oF,EAAU,CACZ5wE,OAAQgrQ,EAAchrQ,OACtB+3B,OAAQ,MACRhd,SAAU6xP,EACVC,WAAYA,EACZrnQ,KApIF,SAAcgiG,EAAMjxF,GAElB,IAAIwhB,EAAS,OACThd,EAAWwyM,EAAe/lH,EAAMjxF,EAAOk4B,IAAamiC,EAAQ71D,UAChE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACrF,GAAKA,EAAL,CACA,IAAItxP,EAAO6xP,EAAW9xP,GAClBxa,EAAMwa,EAASxa,IACfgW,EAAQwE,EAASxE,MAErB,GAAI00P,EAMF,GALAD,EAAc+B,UAAU,CACtBxsQ,IAAKA,EACLgW,MAAOA,GACN,KAAMyE,GAELuwP,EACF3+P,OAAOmO,SAASC,KAAOA,MAClB,CACL,IAAIgyP,EAAYP,EAAQ5pQ,QAAQ+tE,EAAQ71D,SAASxa,KAC7Co8O,EAAW8vB,EAAQ9lQ,MAAM,EAAGqmQ,EAAY,GAC5CrwB,EAASn3O,KAAKuV,EAASxa,KACvBksQ,EAAU9vB,EACVovB,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,SAKdnO,OAAOmO,SAASC,KAAOA,OAuG3Bja,QAlGF,SAAiBymG,EAAMjxF,GAErB,IAAIwhB,EAAS,UACThd,EAAWwyM,EAAe/lH,EAAMjxF,EAAOk4B,IAAamiC,EAAQ71D,UAChE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACrF,GAAKA,EAAL,CACA,IAAItxP,EAAO6xP,EAAW9xP,GAClBxa,EAAMwa,EAASxa,IACfgW,EAAQwE,EAASxE,MAErB,GAAI00P,EAMF,GALAD,EAAciC,aAAa,CACzB1sQ,IAAKA,EACLgW,MAAOA,GACN,KAAMyE,GAELuwP,EACF3+P,OAAOmO,SAASha,QAAQia,OACnB,CACL,IAAIgyP,EAAYP,EAAQ5pQ,QAAQ+tE,EAAQ71D,SAASxa,MAC9B,IAAfysQ,IAAkBP,EAAQO,GAAajyP,EAASxa,KACpDwrQ,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,SAKdnO,OAAOmO,SAASha,QAAQia,QAuE5B0xP,GAAIA,EACJQ,OA/DF,WACER,GAAI,IA+DJS,UA5DF,WACET,EAAG,IA4DHU,MAzCF,SAAelD,QACE,IAAXA,IACFA,GAAS,GAGX,IAAImD,EAAUvB,EAAkB3B,UAAUD,GAO1C,OALK5wG,IACHwzG,EAAkB,GAClBxzG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZwzG,GAAmB,IAGdO,MAwBTC,OApBF,SAAgB7zO,GACd,IAAI8zO,EAAWzB,EAAkBvB,eAAe9wO,GAEhD,OADAqzO,EAAkB,GACX,WACLA,GAAmB,GACnBS,OAiBJ,OAAO38L,EAGT,IAAI48L,EAAoB,aACpBC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBnmK,GAC9B,MAA0B,MAAnBA,EAAKxkE,OAAO,GAAawkE,EAAO,KAAOgiK,EAAkBhiK,IAElEomK,WAAY,SAAoBpmK,GAC9B,MAA0B,MAAnBA,EAAKxkE,OAAO,GAAawkE,EAAKp8D,OAAO,GAAKo8D,IAGrDqmK,QAAS,CACPF,WAAYnE,EACZoE,WAAY1/C,GAEd4/C,MAAO,CACLH,WAAYz/C,EACZ0/C,WAAY1/C,IAIhB,SAAS6/C,EAAUh0P,GACjB,IAAI6vP,EAAY7vP,EAAIlX,QAAQ,KAC5B,OAAsB,IAAf+mQ,EAAmB7vP,EAAMA,EAAIpT,MAAM,EAAGijQ,GAG/C,SAASoE,IAGP,IAAIhzP,EAAOpO,OAAOmO,SAASC,KACvB4uP,EAAY5uP,EAAKnY,QAAQ,KAC7B,OAAsB,IAAf+mQ,EAAmB,GAAK5uP,EAAKsnB,UAAUsnO,EAAY,GAO5D,SAASqE,EAAgBzmK,GACvB56F,OAAOmO,SAASha,QAAQgtQ,EAAUnhQ,OAAOmO,SAASC,MAAQ,IAAMwsF,GAGlE,SAAS0mK,EAAkBpuQ,QACX,IAAVA,IACFA,EAAQ,IAGT2qQ,GAAmGl8C,aAAU,GAC9G,IAAIy8C,EAAgBp+P,OAAOgkE,QAEvBy6L,GAnUGz+P,OAAO6vD,UAAUnzB,UAAUzmC,QAAQ,WAmU7B/C,GACT0rQ,EAAwBH,EAAOf,oBAC/BA,OAAgD,IAA1BkB,EAAmCd,EAAkBc,EAC3E2C,EAAkB9C,EAAO+C,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDlyG,EAAWn8J,EAAMm8J,SAAW0tG,EAAmBz7C,EAAgBpuN,EAAMm8J,WAAa,GAClFoyG,EAAwBZ,EAAeW,GACvCT,EAAaU,EAAsBV,WACnCC,EAAaS,EAAsBT,WAEvC,SAASjC,IACP,IAAInkK,EAAOomK,EAAWI,KAGtB,OADI/xG,IAAUz0D,EAAO2mH,EAAc3mH,EAAMy0D,IAClCsxD,EAAe/lH,GAGxB,IAAIskK,EAAoB7B,IAExB,SAAS8B,EAASC,GAChBx5F,YAAS5hG,EAASo7L,GAElBp7L,EAAQ5wE,OAASgrQ,EAAchrQ,OAC/B8rQ,EAAkBtB,gBAAgB55L,EAAQ71D,SAAU61D,EAAQ74C,QAG9D,IAAIs0O,GAAe,EACfiC,EAAa,KAMjB,SAASlC,IACP,IAL4BjmQ,EAAG5E,EAK3BimG,EAAOwmK,IACPO,EAAcZ,EAAWnmK,GAE7B,GAAIA,IAAS+mK,EAEXN,EAAgBM,OACX,CACL,IAAIxzP,EAAW4wP,IACXn+C,EAAe58I,EAAQ71D,SAC3B,IAAKsxP,IAdwB9qQ,EAc2BwZ,GAd9B5U,EAcgBqnN,GAbnCvB,WAAa1qN,EAAE0qN,UAAY9lN,EAAEwnE,SAAWpsE,EAAEosE,QAAUxnE,EAAEu1O,OAASn6O,EAAEm6O,MAaL,OAEnE,GAAI4yB,IAAejgD,EAAWtzM,GAAW,OAEzCuzP,EAAa,KAKjB,SAAmBvzP,GACjB,GAAIsxP,EACFA,GAAe,EACfN,QACK,CACL,IAAIh0O,EAAS,MACb+zO,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACjFA,EACFP,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,IASpB,SAAmBwxP,GACjB,IAAIz3B,EAAalkK,EAAQ71D,SAIrByxP,EAAUgC,EAAShsO,YAAY6rL,EAAWymB,KAC7B,IAAb03B,IAAgBA,EAAU,GAC9B,IAAIhgF,EAAYgiF,EAAShsO,YAAY6rL,EAAWk+C,KAC7B,IAAf//E,IAAkBA,EAAY,GAClC,IAAI5yH,EAAQ4yM,EAAUhgF,EAElB5yH,IACFyyM,GAAe,EACfK,EAAG9yM,IAnBC+yM,CAAU5xP,OAjBdoxP,CAAUpxP,IAyCd,IAAIysF,EAAOwmK,IACPO,EAAcZ,EAAWnmK,GACzBA,IAAS+mK,GAAaN,EAAgBM,GAC1C,IAAI3B,EAAkBjB,IAClB6C,EAAW,CAACngD,EAAWu+C,IAuE3B,SAASF,EAAGlqQ,GAEVwoQ,EAAc0B,GAAGlqQ,GAWnB,IAAIo6B,EAAgB,EAEpB,SAASkwO,EAAkBlzM,GAGH,KAFtBh9B,GAAiBg9B,IAEoB,IAAVA,EACzBhtD,OAAOjF,iBAAiB6lQ,EAAmBpB,GAChB,IAAlBxvO,GACThwB,OAAOhF,oBAAoB4lQ,EAAmBpB,GAIlD,IAAI9yG,GAAY,EAiChB,IAAI1oF,EAAU,CACZ5wE,OAAQgrQ,EAAchrQ,OACtB+3B,OAAQ,MACRhd,SAAU6xP,EACVC,WAnIF,SAAoB9xP,GAClB,IAAI0zP,EAAUpiQ,SAAS49N,cAAc,QACjCjvN,EAAO,GAMX,OAJIyzP,GAAWA,EAAQ/gQ,aAAa,UAClCsN,EAAO+yP,EAAUnhQ,OAAOmO,SAASC,OAG5BA,EAAO,IAAM2yP,EAAW1xG,EAAWoyD,EAAWtzM,KA4HrDvV,KAzHF,SAAcgiG,EAAMjxF,GAElB,IAAIwhB,EAAS,OACThd,EAAWwyM,EAAe/lH,OAAM1rF,OAAWA,EAAW80D,EAAQ71D,UAClE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACrF,GAAKA,EAAL,CACA,IAAI9kK,EAAO6mH,EAAWtzM,GAClBwzP,EAAcZ,EAAW1xG,EAAWz0D,GAGxC,GAFkBwmK,MAAkBO,EAEnB,CAIfD,EAAa9mK,EAxIrB,SAAsBA,GACpB56F,OAAOmO,SAAS2gO,KAAOl0I,EAwIjBknK,CAAaH,GACb,IAAIvB,EAAYwB,EAAShsO,YAAY6rL,EAAWz9I,EAAQ71D,WACpD4zP,EAAYH,EAAS7nQ,MAAM,EAAGqmQ,EAAY,GAC9C2B,EAAUnpQ,KAAKgiG,GACfgnK,EAAWG,EACX5C,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,SAIZgxP,SAgGJhrQ,QA3FF,SAAiBymG,EAAMjxF,GAErB,IAAIwhB,EAAS,UACThd,EAAWwyM,EAAe/lH,OAAM1rF,OAAWA,EAAW80D,EAAQ71D,UAClE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACrF,GAAKA,EAAL,CACA,IAAI9kK,EAAO6mH,EAAWtzM,GAClBwzP,EAAcZ,EAAW1xG,EAAWz0D,GACtBwmK,MAAkBO,IAMlCD,EAAa9mK,EACbymK,EAAgBM,IAGlB,IAAIvB,EAAYwB,EAAS3rQ,QAAQwrN,EAAWz9I,EAAQ71D,YACjC,IAAfiyP,IAAkBwB,EAASxB,GAAaxlK,GAC5CukK,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,SAsEd2xP,GAAIA,EACJQ,OA7DF,WACER,GAAI,IA6DJS,UA1DF,WACET,EAAG,IA0DHU,MAzCF,SAAelD,QACE,IAAXA,IACFA,GAAS,GAGX,IAAImD,EAAUvB,EAAkB3B,UAAUD,GAO1C,OALK5wG,IACHwzG,EAAkB,GAClBxzG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZwzG,GAAmB,IAGdO,MAwBTC,OApBF,SAAgB7zO,GACd,IAAI8zO,EAAWzB,EAAkBvB,eAAe9wO,GAEhD,OADAqzO,EAAkB,GACX,WACLA,GAAmB,GACnBS,OAiBJ,OAAO38L,EAGT,SAASujB,EAAM3xF,EAAGosQ,EAAYC,GAC5B,OAAOl1P,KAAKgI,IAAIhI,KAAKC,IAAIpX,EAAGosQ,GAAaC,GAO3C,SAASC,EAAoBhvQ,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIurQ,EAASvrQ,EACTwqQ,EAAsBe,EAAOf,oBAC7ByE,EAAwB1D,EAAO2D,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsB5D,EAAO6D,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDxD,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CK,EAAoB7B,IAExB,SAAS8B,EAASC,GAChBx5F,YAAS5hG,EAASo7L,GAElBp7L,EAAQ5wE,OAAS4wE,EAAQs0E,QAAQllJ,OACjC8rQ,EAAkBtB,gBAAgB55L,EAAQ71D,SAAU61D,EAAQ74C,QAG9D,SAAS0W,IACP,OAAO90B,KAAK6uD,SAAS9tD,SAAS,IAAI0wB,OAAO,EAAGsgO,GAG9C,IAAIxqQ,EAAQizF,EAAM+6K,EAAc,EAAGF,EAAehvQ,OAAS,GACvDklJ,EAAU8pH,EAAe3qP,KAAI,SAAUixF,GACzC,OAAmCi4G,EAAej4G,OAAOx5F,EAAjC,kBAAVw5F,EAAsD7mE,IAAgD6mE,EAAM/0G,KAAOkuC,QAG/Ho+N,EAAax+C,EAyCjB,SAASq+C,EAAGlqQ,GACV,IAAI2sQ,EAAYh7K,EAAMvjB,EAAQ1vE,MAAQsB,EAAG,EAAGouE,EAAQs0E,QAAQllJ,OAAS,GAEjE+a,EAAW61D,EAAQs0E,QAAQiqH,GAC/BrD,EAAkBzB,oBAAoBtvP,EAFzB,MAE2CuvP,GAAqB,SAAUgC,GACjFA,EACFP,EAAS,CACPh0O,OALO,MAMPhd,SAAUA,EACV7Z,MAAOiuQ,IAKTpD,OA8BN,IAAIn7L,EAAU,CACZ5wE,OAAQklJ,EAAQllJ,OAChB+3B,OAAQ,MACRhd,SAAUmqI,EAAQhkJ,GAClBA,MAAOA,EACPgkJ,QAASA,EACT2nH,WAAYA,EACZrnQ,KA1FF,SAAcgiG,EAAMjxF,GAElB,IAAIwhB,EAAS,OACThd,EAAWwyM,EAAe/lH,EAAMjxF,EAAOk4B,IAAamiC,EAAQ71D,UAChE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GACrF,GAAKA,EAAL,CACA,IACI6C,EADYv+L,EAAQ1vE,MACI,EACxBkuQ,EAAcx+L,EAAQs0E,QAAQv+I,MAAM,GAEpCyoQ,EAAYpvQ,OAASmvQ,EACvBC,EAAY56O,OAAO26O,EAAWC,EAAYpvQ,OAASmvQ,EAAWp0P,GAE9Dq0P,EAAY5pQ,KAAKuV,GAGnBgxP,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,EACV7Z,MAAOiuQ,EACPjqH,QAASkqH,SAuEbruQ,QAlEF,SAAiBymG,EAAMjxF,GAErB,IAAIwhB,EAAS,UACThd,EAAWwyM,EAAe/lH,EAAMjxF,EAAOk4B,IAAamiC,EAAQ71D,UAChE+wP,EAAkBzB,oBAAoBtvP,EAAUgd,EAAQuyO,GAAqB,SAAUgC,GAChFA,IACL17L,EAAQs0E,QAAQt0E,EAAQ1vE,OAAS6Z,EACjCgxP,EAAS,CACPh0O,OAAQA,EACRhd,SAAUA,SA0Dd2xP,GAAIA,EACJQ,OAnCF,WACER,GAAI,IAmCJS,UAhCF,WACET,EAAG,IAgCH2C,MA7BF,SAAe7sQ,GACb,IAAI2sQ,EAAYv+L,EAAQ1vE,MAAQsB,EAChC,OAAO2sQ,GAAa,GAAKA,EAAYv+L,EAAQs0E,QAAQllJ,QA4BrDotQ,MAzBF,SAAelD,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJ4B,EAAkB3B,UAAUD,IAqBnCoD,OAlBF,SAAgB7zO,GACd,OAAOqyO,EAAkBvB,eAAe9wO,KAmB1C,OAAOm3C,I,6BC34BH,SAAU0+L,EAAU53P,EAAoB63P,GAC5C,YAD4C,IAAAA,OAAA,GAE1C73P,IACE63P,GCLA,SAA2B73P,GAC/B,IAAIH,ECD2B/K,EDK/B,OAHIkL,ICF2BlL,EDEDkL,ICDQlL,EAASgjQ,WDE7Cj4P,EAASG,EAAM83P,SAASj4P,QAEnBA,EDAoBk4P,CAAiB/3P,IAAYA,EAAMtO,YAAesO,EAAMtO,Y,kDGXrF,IAAIxE,EAGJA,EAAK,WACJ,OAAO3C,KADH,GAIL,IAEC2C,EAAIA,GAAK,IAAIuvK,SAAS,cAAb,GACR,MAAOvxK,GAEc,kBAAXgK,SAAqBhI,EAAIgI,QAOrCvN,EAAOC,QAAUsF,G,qGCZN8qQ,E,+CACX,SAAWA,GAIPA,EAA8BA,EAA6B,SAAe,GAAK,WAI/EA,EAA8BA,EAA6B,KAAW,GAAK,OAR/E,CASGA,IAAkCA,EAAgC,KAC9D,IAAM7sP,EAAa,CACtB8sP,YAAa,uCAEJC,EAAb,WACI,aAAc,oBACV3tQ,KAAKuwO,UAAY,GACjBvwO,KAAK4tQ,qBAAkB/zP,EAH/B,+DAKI,SAA4BgmI,GAAU,WAWlC,OAT+B,IAA3BA,EAAS2nH,OAAOzpQ,OAChBiC,KAAK4tQ,gBAAkB/tH,EAGvB7/I,KAAKuwO,UAAUhtO,KAAKs8I,GAIxB7/I,KAAKuwO,UAAUznO,MAAK,SAAC+kQ,EAAWC,GAAZ,OAA0BA,EAAUtG,OAAOzpQ,OAAS8vQ,EAAUrG,OAAOzpQ,UAClFoa,aAAa,WAChB,EAAKo4N,UAAUh+M,OAAO,EAAKg+M,UAAU3vO,QAAQi/I,GAAW,GACpD,EAAK+tH,kBAAoB/tH,IACzB,EAAK+tH,qBAAkB/zP,QAnBvC,qCAuBI,WACI,OAAOgtD,YAAS,CAAC7mE,KAAK4tQ,iBAAP,mBAA2B5tQ,KAAKuwO,eAxBvD,oCA0BI,SAAuBi3B,GAEnB,OADeA,GAAUxnQ,KAAKuwO,UAAU9vI,MAAK,SAAAo/C,GAAQ,OAAI2nH,EAAO9mF,WAAW7gC,EAAS2nH,iBAAyB3tP,GAC5F7Z,KAAK4tQ,oBA5B9B,KA+BA72O,IAASvd,IAAIoH,EAAW8sP,YAAa,IAAIC,I,6BCpDzC,6CAaM,SAAUI,EAAYp6G,GAI1B,IAAMpQ,EAAM,WAQZ,YAPoB1pI,IAAhB0pI,EAAIkV,UAGNlV,EAAIkV,QAAU,CACZz2J,MAA+B,oBAAjB2xJ,EAA+BA,IAA8BA,IAGxEpQ,EAAIkV,QAAQz2J,Q,gLCrBRqiG,EAAwB,oCAoB9B,IAAMgqD,EAZb,WAA6C,MAAnB2/G,EAAmB,uDAAJ,GACjC7+O,EAAS,yBAD4B,cAEvBk1E,GAFuB,IAEzC,2BAAyC,KAA9BslE,EAA8B,QACjCqkG,EAAaptQ,QAAQ+oK,IAAQ,IAGjCx6I,GAAU,KAAOw6I,IANoB,8BASzC,OADAx6I,GAAU,SACH,IAAIkS,OAAOlS,EAAQ,KAGK8+O,GAC5B,SAAShjH,EAA0BC,GACtC,IAAI9oJ,EAASisJ,EACb,GAAInD,GAAmBA,aAA0B7pH,OAC7C,GAAK6pH,EAAejqH,OAchB7+B,EAAS8oJ,MAde,CACxB,IAAIw3C,EAAQ,IACRx3C,EAAexpH,aACfghK,GAAS,KAETx3C,EAAe/pH,YACfuhK,GAAS,KAETx3C,EAAe9pH,UACfshK,GAAS,KAEbtgM,EAAS,IAAIi/B,OAAO6pH,EAAe/7H,OAAQuzK,GAOnD,OADAtgM,EAAOo/B,UAAY,EACZp/B,EAEX,IAAM8rQ,EAAiB,CACnB7nF,OAAQ,IACR8nF,WAAY,GACZC,WAAY,KAET,SAASpgI,EAAcxuH,EAAQ0rI,EAAgB/hF,EAAMklM,GAAqC,IAAzBnpH,EAAyB,uDAAhBgpH,EAC7E,GAAI/kM,EAAKprE,OAASmnJ,EAAOmhC,OAAQ,CAG7B,IAAIjmK,EAAQZ,EAAS0lI,EAAOmhC,OAAS,EAQrC,OAPIjmK,EAAQ,EACRA,EAAQ,EAGRiuP,GAAcjuP,EAGX4tH,EAAcxuH,EAAQ0rI,EAD7B/hF,EAAOA,EAAK9oC,UAAUjgB,EAAOZ,EAAS0lI,EAAOmhC,OAAS,GACHgoF,EAAYnpH,GAMnE,IAJA,IAAM+Y,EAAKh2J,KAAKm6D,MACVzvB,EAAMnzB,EAAS,EAAI6uP,EACrBC,GAAkB,EAClBvvQ,EAAQ,KACHjB,EAAI,IAELmK,KAAKm6D,MAAQ67F,GAAM/Y,EAAOkpH,YAFjBtwQ,IAAK,CAOlB,IAAMywQ,EAAa57N,EAAMuyG,EAAOipH,WAAarwQ,EAC7CotJ,EAAe1pH,UAAY9pB,KAAKC,IAAI,EAAG42P,GACvC,IAAMC,EAAYC,EAAiCvjH,EAAgB/hF,EAAMx2B,EAAK27N,GAC9E,IAAKE,GAAazvQ,EAEd,MAIJ,GAFAA,EAAQyvQ,EAEJD,GAAc,EACd,MAEJD,EAAiBC,EAErB,GAAIxvQ,EAAO,CACP,IAAIqD,EAAS,CACTmsI,KAAMxvI,EAAM,GACZwf,YAAa8vP,EAAa,EAAItvQ,EAAME,MACpCwf,UAAW4vP,EAAa,EAAItvQ,EAAME,MAAQF,EAAM,GAAGhB,QAGvD,OADAmtJ,EAAe1pH,UAAY,EACpBp/B,EAEX,OAAO,KAEX,SAASqsQ,EAAiCvjH,EAAgB/hF,EAAMx2B,EAAK+7N,GAEjE,IADA,IAAI3vQ,EACGA,EAAQmsJ,EAAe/0I,KAAKgzD,IAAO,CACtC,IAAMksK,EAAat2O,EAAME,OAAS,EAClC,GAAIo2O,GAAc1iM,GAAOu4G,EAAe1pH,WAAamR,EACjD,OAAO5zC,EAEN,GAAI2vQ,EAAU,GAAKr5B,EAAaq5B,EACjC,OAAO,KAGf,OAAO,O,yFC7GEC,EAAa,eACtB,aAAc,oBACV3uQ,KAAK44I,WAAa,EAClB54I,KAAK84I,sBAAwB,IAAIrkI,IACjCzU,KAAK+4I,qBAAuB/4I,KAAK84I,sBAAsBnkI,MAJrC,gDAMtB,WACI,OAAO3U,KAAK44I,aAPM,0BAStB,SAAakgD,GACTA,EAAYphL,KAAKgI,IAAIhI,KAAKC,KAAK,EAAGmhL,GAAY,IAC1C94L,KAAK44I,aAAekgD,IAGxB94L,KAAK44I,WAAakgD,EAClB94L,KAAK84I,sBAAsB7jI,KAAKjV,KAAK44I,iBAfnB,EAAI,K,6UCKxBg2H,E,WACF,WAAY1qC,EAAU2qC,GAAe,oBACjC7uQ,KAAKkkO,SAAWA,EAChBlkO,KAAK6uQ,cAAgBA,E,4CAEzB,WAAmB,OAAO7uQ,KAAKkkO,SAAS8G,a,4BACxC,SAAex7N,GAEX,MAAO,CAAErQ,KADIa,KAAKkkO,SAASyG,eAAen7N,GAC3B2M,WAAYnS,IAAW8T,Q,2BAE1C,SAAc7e,EAAO2D,EAAGzD,EAAM2L,GAAQ,WAIlC,GAHI3L,EAAKgd,YACLhd,EAAKgd,WAAW/D,UAEfjZ,EAAKA,KAAV,CAGA,IAAM21B,EAAQ90B,KAAK6uQ,gBACnB,GAAI/5O,EAAMg6O,WAAW7vQ,GACjB,OAAOe,KAAKkkO,SAAS0G,cAAc91M,EAAMrC,IAAIxzB,GAAQA,EAAOE,EAAKA,KAAM2L,GAE3E,IAAMw3L,EAAM,IAAI9iI,IACV/wB,EAAU3Z,EAAMjzB,QAAQ5C,EAAOqjM,EAAI5iI,OACzCvgE,EAAKgd,WAAa,CAAE/D,QAAS,kBAAMkqL,EAAIx4L,WACvC9J,KAAKkkO,SAAS6qC,kBAAkB9vQ,EAAOE,EAAKA,MAC5CsvC,EAAQnsC,MAAK,SAAA+wG,GAAK,OAAI,EAAK6wH,SAAS0G,cAAcv3H,EAAOp0G,EAAOE,EAAKA,KAAM2L,S,6BAE/E,SAAgB3L,GACRA,EAAKgd,aACLhd,EAAKgd,WAAW/D,UAChBjZ,EAAKgd,gBAAatC,GAElB1a,EAAKA,OACLa,KAAKkkO,SAAS4G,gBAAgB3rO,EAAKA,MACnCA,EAAKA,UAAO0a,O,KAIlBm1P,E,WACF,WAAYH,EAAexnC,GAAuB,oBAC9CrnO,KAAK6uQ,cAAgBA,EACrB7uQ,KAAKqnO,sBAAwBA,E,sDAEjC,WACI,OAAOrnO,KAAKqnO,sBAAsB6F,uB,0BAEtC,SAAajuO,GACT,IAAM61B,EAAQ90B,KAAK6uQ,gBACnB,OAAK/5O,EAAMg6O,WAAW7vQ,GAGfe,KAAKqnO,sBAAsBC,aAAaxyM,EAAMrC,IAAIxzB,IAF9C,S,KAKnB,SAASgwQ,EAAqBJ,EAAexpQ,GACzC,OAAOjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEgiO,sBAAuBhiO,EAAQgiO,uBAAyB,IAAI2nC,EAA2BH,EAAexpQ,EAAQgiO,yBAE9J,IAAM6nC,EAAb,WACI,WAAYjsC,EAAMzzN,EAAWm8N,EAAiBjB,GAAyB,WAAdrlO,EAAc,uDAAJ,GAAI,oBACnE,IAAMwpQ,EAAgB,kBAAM,EAAK/5O,OAC3Bq6O,EAAiBzkC,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAIytQ,EAAcztQ,EAAG0tQ,MAC/D7uQ,KAAK6sF,KAAO,IAAI6+I,IAAKzI,EAAMzzN,EAAWm8N,EAAiBwjC,EAAgBF,EAAqBJ,EAAexpQ,IAJnH,iDAMI,SAAcA,GACVrF,KAAK6sF,KAAKo1C,cAAc58H,KAPhC,4BASI,WACI,OAAOrF,KAAK6sF,KAAKi8I,mBAVzB,sBAYI,WACI,OAAO9oO,KAAK6sF,KAAKn4E,aAbzB,wBAeI,WACI,OAAO1U,KAAK6sF,KAAKk/I,eAhBzB,2BAkBI,WAAsB,WAClB,OAAOx0M,IAAMnV,IAAIpiB,KAAK6sF,KAAK87I,iBAAiB,gBAAGp+N,EAAH,EAAGA,QAAStL,EAAZ,EAAYA,MAAOukK,EAAnB,EAAmBA,aAAnB,MAAuC,CAAEj5J,aAAqBsP,IAAZtP,OAAwBsP,EAAY,EAAKu1P,OAAO38O,IAAIloB,GAAUtL,QAAOukK,qBAnB3K,qBAqBI,WAAgB,WACZ,OAAOjsI,IAAMnV,IAAIpiB,KAAK6sF,KAAKy7I,WAAW,gBAAG/9N,EAAH,EAAGA,QAAStL,EAAZ,EAAYA,MAAOukK,EAAnB,EAAmBA,aAAnB,MAAuC,CAAEj5J,aAAqBsP,IAAZtP,OAAwBsP,EAAY,EAAKu1P,OAAO38O,IAAIloB,GAAUtL,QAAOukK,qBAtBrK,gCAwBI,WAA2B,WACvB,OAAOjsI,IAAMnV,IAAIpiB,KAAK6sF,KAAKmgJ,sBAAsB,gBAAG/1N,EAAH,EAAGA,SAAU2sN,EAAb,EAAaA,QAASpgE,EAAtB,EAAsBA,aAAtB,MAA0C,CAAEvsJ,SAAUA,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKyuQ,OAAO38O,IAAI9xB,MAAKijO,UAASpgE,qBAzB/J,iBA2BI,WACI,OAAOxjK,KAAKovQ,QA5BpB,IA8BI,SAAUt6O,GACN90B,KAAKovQ,OAASt6O,EACd90B,KAAK6sF,KAAKt6D,OAAO,EAAGvyB,KAAK6sF,KAAK9uF,OAAQ8gB,YAAMiW,EAAM/2B,WAhC1D,sBAkCI,WACI,OAAOiC,KAAK6sF,KAAKi5I,aAnCzB,0BAqCI,WACI,OAAO9lO,KAAK6sF,KAAKg2G,iBAtCzB,iCAwCI,WAAsB,WAClB,OAAO7iM,KAAK6iM,eAAezgL,KAAI,SAAAtkB,GAAC,OAAI,EAAKg3B,MAAMrC,IAAI30B,QAzC3D,mBA2CI,SAAMm8C,GACFj6C,KAAK6sF,KAAKngF,MAAMutC,KA5CxB,qBA8CI,WACIj6C,KAAK6sF,KAAKz0E,cA/ClB,K,wBC1DMi3P,G,kBACF,WAAYC,EAAS5kC,EAAW6kC,GAAe,oBAC3CvvQ,KAAKsvQ,QAAUA,EACftvQ,KAAKuvQ,cAAgBA,EACrBvvQ,KAAKgrO,WAAaqkC,EAAkBG,WACpCxvQ,KAAKyvQ,kBAAoB,IAAIpyP,IAC7B,IAAMqyP,EAAc,IAAInoO,IAAImjM,EAAUtoN,KAAI,SAAAjhB,GAAC,MAAI,CAACA,EAAE6pO,WAAY7pO,OAC9DnB,KAAK0qO,UAAY,GAN0B,oBAOtB4kC,GAPsB,IAO3C,2BAA8B,KAAnB9vP,EAAmB,QACpB0kN,EAAWwrC,EAAYj9O,IAAIjT,EAAOwrN,YACxC,IAAK9G,EACD,MAAM,IAAIh5N,MAAJ,8CAAiDsU,EAAOwrN,WAAxD,gBAEVhrO,KAAK0qO,UAAUnnO,KAAK2gO,IAZmB,+B,kDAe/C,SAAe10N,GAIX,IAHA,IAAMmgQ,EAAet6P,iBAAO7F,EAAWuH,YAAE,qBACnC64P,EAAiB,GACjBC,EAAmB,GAChB/xQ,EAAI,EAAGA,EAAIkC,KAAKsvQ,QAAQvxQ,OAAQD,IAAK,CAC1C,IAAMomO,EAAWlkO,KAAK0qO,UAAU5sO,GAC1BgyQ,EAAgBz6P,iBAAOs6P,EAAc54P,YAAE,mBAAoB,CAAE,iBAAkBjZ,KACrFgyQ,EAAcpjQ,MAAM7B,MAApB,UAA+B7K,KAAKuvQ,cAAczxQ,GAAlD,MACA8xQ,EAAersQ,KAAKusQ,GACpBD,EAAiBtsQ,KAAK2gO,EAASyG,eAAemlC,IAElD,IAAM1tQ,EAAS,CAAEoN,YAAWogQ,iBAAgBC,oBAE5C,OADA7vQ,KAAKyvQ,kBAAkBj2P,IAAIpX,GACpBA,I,2BAEX,SAAcmI,EAAStL,EAAOokO,EAAcv4N,GACxC,IAAK,IAAIhN,EAAI,EAAGA,EAAIkC,KAAKsvQ,QAAQvxQ,OAAQD,IAAK,CAC1C,IACMiyQ,EADS/vQ,KAAKsvQ,QAAQxxQ,GACRq8E,QAAQ5vE,GACXvK,KAAK0qO,UAAU5sO,GACvB8sO,cAAcmlC,EAAM9wQ,EAAOokO,EAAawsC,iBAAiB/xQ,GAAIgN,M,4BAG9E,SAAeP,EAAStL,EAAOokO,EAAcv4N,GACzC,IAAK,IAAIhN,EAAI,EAAGA,EAAIkC,KAAKsvQ,QAAQvxQ,OAAQD,IAAK,CAC1C,IAAMomO,EAAWlkO,KAAK0qO,UAAU5sO,GAChC,GAAIomO,EAAS2G,eAAgB,CACzB,IACMklC,EADS/vQ,KAAKsvQ,QAAQxxQ,GACRq8E,QAAQ5vE,GAC5B25N,EAAS2G,eAAeklC,EAAM9wQ,EAAOokO,EAAawsC,iBAAiB/xQ,GAAIgN,O,6BAInF,SAAgBu4N,GACZ,IAAK,IAAIvlO,EAAI,EAAGA,EAAIkC,KAAKsvQ,QAAQvxQ,OAAQD,IAAK,CACzBkC,KAAK0qO,UAAU5sO,GACvBgtO,gBAAgBzH,EAAawsC,iBAAiB/xQ,IAE3D6G,oBAAU0+N,EAAa7zN,WACvBxP,KAAKyvQ,kBAAL,OAA8BpsC,K,0BAElC,SAAapkO,EAAOwN,GAAM,oBACWzM,KAAKyvQ,mBADhB,IACtB,2BAAyD,SAA5CG,eACM3wQ,GAAOyN,MAAM7B,MAA5B,UAAuC4B,EAAvC,OAFkB,mC,MAM9B4iQ,EAAkBG,WAAa,M,IAOzBQ,E,WACF,WAAYxwP,EAAQvgB,GAAO,oBACvBe,KAAKwf,OAASA,EACdxf,KAAKf,MAAQA,EACbe,KAAKiwQ,aAAe,IAAIx7P,IACxBzU,KAAKkwQ,YAAclwQ,KAAKiwQ,aAAat7P,MACrC3U,KAAKuK,QAAUwM,YAAE,mBAAoB,CAAE,iBAAkB9X,EAAOgzB,MAAOzS,EAAOuuE,SAAWvuE,EAAO3c,O,6CAEpG,WAAoB,IAAImC,EAAI,OAA2C,QAAnCA,EAAKhF,KAAKwf,OAAO2wP,oBAAiC,IAAPnrQ,EAAgBA,EAAK,M,uBACpG,WAAoB,IAAIA,EAAI,OAA2C,QAAnCA,EAAKhF,KAAKwf,OAAO4wP,oBAAiC,IAAPprQ,EAAgBA,EAAK+nH,OAAO+mC,oB,uBAC3G,WAAoB,IAAI9uJ,EAAI,OAA0D,QAAlDA,EAAKhF,KAAKwf,OAAO6wP,mCAAgD,IAAPrrQ,EAAgBA,EAAKuyB,IAAMzZ,O,oBACzH,SAAOrR,GACHzM,KAAKiwQ,aAAah7P,KAAK,CAACjV,KAAKf,MAAOwN,Q,KAG/B6jQ,EAAb,WACI,WAAYrtC,EAAMzzN,EAAWm8N,EAAiB2jC,EAAS5kC,EAAWjlO,GAAU,+BACxEzF,KAAK2rO,gBAAkBA,EACvB3rO,KAAKusO,MAAL,qBAA2B+jC,EAAMC,eACjCvwQ,KAAKwwQ,aAAe,EACpBxwQ,KAAK4M,QAAUyI,iBAAO7F,EAAWuH,YAAE,iBAAD,OAAkB/W,KAAKusO,SACzD,IAAMkkC,EAAUnB,EAAQltP,KAAI,SAAClhB,EAAGpD,GAAJ,OAAU,IAAIkyQ,EAAa9uQ,EAAGpD,MACpDE,EAAa,CACfyO,KAAMgkQ,EAAQ54O,QAAO,SAAC3zB,EAAG5E,GAAJ,OAAU4E,EAAI5E,EAAEkgB,OAAOuR,SAAQ,GACpD2/O,MAAOD,EAAQruP,KAAI,SAAA65C,GAAI,MAAK,CAAExvD,KAAMwvD,EAAKz8C,OAAOuR,OAAQkrC,YAE5Dj8D,KAAK2wQ,UAAY,IAAIC,IAAU5wQ,KAAK4M,QAAS,CACzC0vK,YAAa,EACbu0F,oBAAqB,EACrBC,sBAAuB,kBAAM,EAAKN,cAClCxyQ,eAEJgC,KAAK2wQ,UAAUxmQ,GAAGuC,MAAM5B,OAAxB,UAAoC6gO,EAAgBolC,gBAApD,MACA/wQ,KAAK2wQ,UAAUxmQ,GAAGuC,MAAM85E,WAAxB,UAAwCmlJ,EAAgBolC,gBAAxD,MACA,IAxCuBvqC,EAwCjBtC,EAAW,IAAImrC,EAAkBC,EAAS5kC,GAAW,SAAA5sO,GAAC,OAAI,EAAK6yQ,UAAUK,YAAYlzQ,MAC3FkC,KAAK6sF,KAAO,IAAI6+I,IAAKzI,EAAMjjO,KAAK4M,SAzCT45N,EAyCwCmF,EAxC5D,CACHrwC,UADG,SACOnV,GAAO,OAAOqgD,EAASlrC,UAAUnV,IAC3C8qF,cAFG,WAEe,OAAO5B,EAAkBG,cAsCsC,CAACtrC,GAAWz+N,GAC7FzF,KAAKkxQ,uBAAyB35O,IAAM6B,IAAN,MAAA7B,IAAK,YAAQk5O,EAAQruP,KAAI,SAAA80C,GAAC,OAAIA,EAAEg5M,gBAAhC34O,EAA8C,mCAAEt4B,EAAF,KAASwN,EAAT,YAAmBy3N,EAASitC,aAAalyQ,EAAOwN,MAC5HzM,KAAK+pO,aAAex6N,2BAAiBvP,KAAK4M,SAC1C5M,KAAK0M,MAAM,IAvBnB,kDAyBI,WAAyB,OAAO1M,KAAK6sF,KAAKigJ,mBAzB9C,gCA0BI,WAA6B,OAAO9sO,KAAK6sF,KAAKmgJ,uBA1BlD,2BA2BI,WAAwB,OAAOhtO,KAAK6sF,KAAK87I,kBA3B7C,qBA4BI,WAAkB,OAAO3oO,KAAK6sF,KAAKy7I,YA5BvC,sBA6BI,WAAmB,OAAOtoO,KAAK6sF,KAAKn4E,aA7BxC,wBA8BI,WAAqB,OAAO1U,KAAK6sF,KAAKk/I,eA9B1C,2BA+BI,SAAc1mO,GACVrF,KAAK6sF,KAAKo1C,cAAc58H,KAhChC,oBAkCI,SAAO+a,EAAO4nD,GAA4B,IAAf/wD,EAAe,uDAAJ,GAClCjX,KAAK6sF,KAAKt6D,OAAOnS,EAAO4nD,EAAa/wD,KAnC7C,4BAqCI,WACI,OAAOjX,KAAK4M,UAtCpB,mBAwCI,SAAMqtC,GACF,IAAMiF,EAAU,GAChBA,EAAQ37C,KAAR,wBAA8BvD,KAAKusO,MAAnC,8EACEvsO,KAAK2rO,gBAAgBolC,gBAAkB,EADzC,0CAEiB/wQ,KAAK2rO,gBAAgBolC,gBAFtC,gBAIA/wQ,KAAK+pO,aAAat9D,YAAcvtH,EAAQviC,KAAK,MAC7C3c,KAAK6sF,KAAKngF,MAAMutC,KA/CxB,iCAiDI,WACI,OAAOj6C,KAAK6sF,KAAKu+I,wBAlDzB,0BAoDI,WACI,OAAOprO,KAAK6sF,KAAKg2G,iBArDzB,sBAuDI,WACI,OAAO7iM,KAAK6sF,KAAKi5I,aAxDzB,qBA0DI,WACI9lO,KAAK2wQ,UAAUv4P,UACfpY,KAAK6sF,KAAKz0E,UACVpY,KAAKkxQ,uBAAuB94P,cA7DpC,KAgEAk4P,EAAMC,cAAgB,E,2FC1JP,SAASa,EAAS7hP,GAC/B,OAAO,OAAAC,EAAA,GAAeD,IAAQ,OAAAujB,EAAA,GAAgBvjB,IAAQ,OAAAO,EAAA,GAA2BP,IAAQ,OAAAQ,EAAA,K,ICDhFshP,E,UACX,SAAWA,GACPA,EAAqBA,EAAoB,QAAc,GAAK,UAC5DA,EAAqBA,EAAoB,QAAc,GAAK,UAC5DA,EAAqBA,EAAoB,QAAc,GAAK,UAHhE,CAIGA,IAAyBA,EAAuB,KAC5C,IAAMC,EAAb,kDACI,WAAYruC,EAAMrkO,GAAS,4DACHqkO,EADG,aACMrkO,IAFrC,sBAA+BsM,QAKlBqmQ,EAAb,WACI,WAAYt5P,GAAI,oBACZjY,KAAKiY,GAAKA,EACVjY,KAAK4tC,KAAO,IAAI6T,QAHxB,uCAKI,SAAInjD,GACA,IAAI8D,EAASpC,KAAK4tC,KAAKnb,IAAIn0B,GAK3B,OAJK8D,IACDA,EAASpC,KAAKiY,GAAG3Z,GACjB0B,KAAK4tC,KAAKpG,IAAIlpC,EAAK8D,IAEhBA,MAXf,K,iBCNO,SAASovQ,EAAe5lQ,GAC3B,MAAsB,kBAARA,GAAoB,eAAgBA,GAAO,SAAUA,EAEhE,SAAS6lQ,EAAgBx9N,GAC5B,OAAQA,GACJ,KAAK,EAAM,OAAO,EAClB,KAAK,EAAO,OAAO,EACnB,QAAS,OAAOA,GAGxB,SAASy9N,EAAyBpkF,GAC9B,MAAqC,mBAAvBA,EAAOqkF,YAElB,IAAMC,EAAb,WACI,WAAY3uC,EAAMp2I,EAAM1uC,GAA2B,IAAd94C,EAAc,uDAAJ,GAAI,oBAC/CrF,KAAKijO,KAAOA,EACZjjO,KAAK6sF,KAAOA,EACZ7sF,KAAK6xQ,QAAU,GACf7xQ,KAAK4rO,cAAgB,IAAItvM,IACzBt8B,KAAK8xQ,0BAA4B,IAAIr9P,IACrCzU,KAAK+xQ,yBAA2B/xQ,KAAK4rO,cAAcuB,UAAUntO,KAAK8xQ,0BAA0Bn9P,OAC5F3U,KAAKgyQ,4BAA8B,IAAIv9P,IACvCzU,KAAKiyQ,2BAA6BjyQ,KAAK4rO,cAAcuB,UAAUntO,KAAKgyQ,4BAA4Br9P,OAChG3U,KAAKkyQ,aAAe,IAAIz9P,IACxBzU,KAAKmyQ,YAAcnyQ,KAAKkyQ,aAAav9P,MACrC3U,KAAKoyQ,kBAAyD,qBAA9B/sQ,EAAQ+sQ,mBAA4C/sQ,EAAQ+sQ,kBAC5FpyQ,KAAKgvB,OAAS3pB,EAAQ2pB,OACtBhvB,KAAKqyQ,yBAAuE,qBAArChtQ,EAAQgtQ,0BAAmDhtQ,EAAQgtQ,yBAC1GryQ,KAAKysG,KAAO,CACRn3F,YAAQuE,EACRtP,QAAS4zC,EACT5oC,SAAU,GACV+8P,MAAO,EACPC,qBAAsB,EACtBC,mBAAoB,EACpBb,aAAa,EACbc,WAAW,EACXC,gBAAiB,EACjBz+N,WAAY,EACZ0+N,SAAS,EACTC,gBAAY/4P,GA3BxB,0CA8BI,SAAOf,EAAUkvD,GAAwD,IAA3C6qM,EAA2C,uDAAhC91P,IAASukC,QAASj8C,EAAc,uDAAJ,GACjE,GAAwB,IAApByT,EAAS/a,OACT,MAAM,IAAIuzQ,EAAUtxQ,KAAKijO,KAAM,yBAE/B59N,EAAQytQ,qBACR9yQ,KAAK+yQ,YAAY1tQ,EAAQytQ,qBAAsBh6P,EAAUkvD,EAAa6qM,EAAUxtQ,GAGhFrF,KAAKgzQ,aAAal6P,EAAUkvD,EAAa6qM,EAAUxtQ,KAtC/D,yBAyCI,SAAY4tQ,EAAUn6P,EAAUkvD,EAAakrM,EAAkB7tQ,EAAS8tQ,GAAe,IAC/EnuQ,EAD+E,YAE1D,IAArBkuQ,IAA+BA,EAAmBn2P,IAASukC,cACzC,IAAlB6xN,IAA4BA,EAA6C,QAA5BnuQ,EAAKK,EAAQ+tQ,iBAA8B,IAAPpuQ,EAAgBA,EAAK,GAC1G,IAAQmC,EAAenH,KAAKqzQ,2BAA2Bv6P,GAA/C3R,WACR,IAAKA,EAAWmsQ,YACZ,OAAOtzQ,KAAKgzQ,aAAal6P,EAAUkvD,EAAakrM,EAAkB7tQ,GAEtE,IAAMwtQ,EAAW,YAAIK,GACfj0Q,EAAQ6Z,EAASA,EAAS/a,OAAS,GACnCklC,EAAO,IAAIswO,IAAQ,CAAEC,YAAa,kBAAMrsQ,EAAWmsQ,cAAe,CACpEE,YAAa,iBAAM,sBACZrsQ,EAAWoO,SAAS7Q,MAAM,EAAGzF,IADjB,YAEZ4zQ,GAFY,YAGZ1rQ,EAAWoO,SAAS7Q,MAAMzF,EAAQ+oE,KACvC5lD,KAAI,SAAAzhB,GAAC,OAAIsyQ,EAAS1/I,MAAM5yH,EAAE4J,SAASkO,iBACtCg7P,aAAY,GAEf,GAAIxwO,EAAKywO,UAEL,OADAvsQ,EAAWmsQ,iBAAcz5P,EAClB7Z,KAAKgzQ,aAAal6P,EAAUkvD,EAAa6qM,EAAUxtQ,GAE9D,IAtBmF,EAsB7EsuQ,EAAiB76P,EAASpU,MAAM,GAAI,GACpCkvQ,EAAgB,SAACC,EAAcC,EAAcn0J,GAC/C,GAAIwzJ,EAAgB,EAChB,IAAK,IAAIr1Q,EAAI,EAAGA,EAAI6hH,EAAO7hH,IACvB+1Q,IACAC,IACA,EAAKf,YAAYE,EAAjB,sBAA+BU,GAA/B,CAA+CE,EAAc,IAAI9mJ,OAAOC,iBAAkB6lJ,EAASiB,GAAcv+P,SAAUlQ,EAAS8tQ,EAAgB,IAI5JY,EAAar8P,KAAKgI,IAAIvY,EAAWoO,SAASxX,OAAQkB,EAAQ+oE,GAC1DgsM,EAAanB,EAAS90Q,OAjCyD,cAkC9DklC,EAAKgjF,QAAQn9G,MAAK,SAAC5E,EAAG5E,GAAJ,OAAUA,EAAE20Q,cAAgB/vQ,EAAE+vQ,kBAlCc,IAkCnF,2BAAqF,KAA1EjuK,EAA0E,QACjF4tK,EAAcG,EAAYC,EAAYD,GAAc/tK,EAAOiuK,cAAgBjuK,EAAO59B,iBAClF2rM,EAAa/tK,EAAOiuK,cACpBD,EAAahuK,EAAOkuK,cAAgBj1Q,EACpCe,KAAKgzQ,aAAL,sBAAsBW,GAAtB,CAAsCI,IAAa/tK,EAAO59B,eAAgBrrD,IAASrY,MAAMmuQ,EAAUmB,EAAYA,EAAahuK,EAAOmuK,gBAAiB9uQ,IAtCrE,8BAyCnFuuQ,EAAcG,EAAYC,EAAYD,KAlF9C,0BAoFI,SAAaj7P,EAAUkvD,GASnB,IATyH,WAAzF6qM,EAAyF,uDAA9E91P,IAASukC,QAAqE,yCAA1D8yN,EAA0D,EAA1DA,gBAAiBC,EAAyC,EAAzCA,gBAAiBvB,EAAwB,EAAxBA,qBACjG,EAAqD9yQ,KAAKqzQ,2BAA2Bv6P,GAA7E3R,EAAR,EAAQA,WAAYmtQ,EAApB,EAAoBA,UAAWC,EAA/B,EAA+BA,SAAU5B,EAAzC,EAAyCA,QACnC6B,EAA2B,GAC3BC,EAAwB13P,IAASqF,IAAIywP,GAAU,SAAA1oQ,GAAE,OAAI,EAAKuqQ,eAAevqQ,EAAIhD,EAAYA,EAAWwrQ,QAAU,EAAkB,EAAgB4B,EAAUC,EAA0BJ,MACpL5yO,EAAY1oB,EAASA,EAAS/a,OAAS,GACvC42Q,EAAkBxtQ,EAAWoO,SAASxX,OAAS,EAGjD62Q,EAAyB,EACpB92Q,EAAI0jC,EAAW1jC,GAAK,GAAKA,EAAIqJ,EAAWoO,SAASxX,OAAQD,IAAK,CACnE,IAAM2X,EAAQtO,EAAWoO,SAASzX,GAClC,GAAI2X,EAAMk9P,QAAS,CACfiC,EAAyBn/P,EAAM+8P,kBAC/B,OAGR,IAhByH,EAgBnHqC,EAAgB,GAClBC,EAA+B,EAC/BpC,EAAkB,EAlBmG,cAmBrG+B,GAnBqG,IAmBzH,2BAA2C,KAAhCh/P,EAAgC,QACvCo/P,EAActxQ,KAAKkS,GACnBi9P,GAAmBj9P,EAAMi9P,gBACrBj9P,EAAMk9P,UACNl9P,EAAM+8P,kBAAoBoC,EAAyBE,MAvB8D,8BA0BzH,IAAMC,EAAexiP,YAAOprB,EAAWoO,SAAUisB,EAAWwmC,EAAa6sM,GACpE/B,EAGI3rQ,EAAWmsQ,YAChB/gP,YAAOprB,EAAWmsQ,YAAa9xO,EAAWwmC,EAAa6sM,EAAczyP,KAAI,SAAA7hB,GAAC,OAAIuyQ,EAAqBv/I,MAAMhzH,EAAEgK,SAASkO,eAGpHtR,EAAWmsQ,YAAcnsQ,EAAWoO,SAAS6M,KAAI,SAAA7hB,GAAC,OAAIuyQ,EAAqBv/I,MAAMhzH,EAAEgK,SAASkO,cAN5FtR,EAAWmsQ,iBAAcz5P,EAS7B,IArCyH,EAqCrHm7P,EAA8B,EArCuF,cAsCrGD,GAtCqG,IAsCzH,2BAAkC,KAAvBt/P,EAAuB,QAC1BA,EAAMk9P,SACNqC,KAxCiH,8BA4CzH,GAAoC,IAAhCA,EACA,IAAK,IAAIl3Q,EAAI0jC,EAAYqzO,EAAc92Q,OAAQD,EAAIqJ,EAAWoO,SAASxX,OAAQD,IAAK,CAChF,IAAM2X,EAAQtO,EAAWoO,SAASzX,GAC9B2X,EAAMk9P,UACNl9P,EAAM+8P,mBAAqBwC,GAMvC,GADA7tQ,EAAWorQ,sBAAwBuC,EAA+BE,EAC9DT,GAAY5B,EAAS,CACrB,IAAMsC,EAAqBF,EAAal9O,QAAO,SAAC12B,EAAGyD,GAAJ,OAAazD,GAAKyD,EAAK+tQ,QAAU/tQ,EAAK8tQ,gBAAkB,KAAI,GAC3G1yQ,KAAKk1Q,gCAAgC/tQ,EAAYurQ,EAAkBuC,GACnEj1Q,KAAK6sF,KAAKt6D,OAAO+hP,EAAWW,EAAoBT,GAEpD,GAAIO,EAAah3Q,OAAS,GAAKs2Q,EAAiB,CAC5C,IAAMc,EAAQ,SAARA,EAASvwQ,GACXyvQ,EAAgBzvQ,GAChBA,EAAK2Q,SAASoB,QAAQw+P,IAE1BJ,EAAap+P,QAAQw+P,GAEzB,IAAMC,EAAuBjuQ,EAAWoO,SAASxX,OAAS,EACtD42Q,IAAoBS,GACpBp1Q,KAAKq1Q,eAAev8P,EAASpU,MAAM,GAAI,GAAI0wQ,GAE/Cp1Q,KAAKkyQ,aAAaj9P,KAAK,CAAEqgQ,cAAeT,EAAeE,iBAEvD,IADA,IAAInwQ,EAAOuC,EACJvC,GAAM,CACT,GAAwB,IAApBA,EAAKqvC,WAAgC,CACrCj0C,KAAKu1Q,WACL,MAEJ3wQ,EAAOA,EAAK0Q,UAjKxB,sBAoKI,SAASwD,GACL,GAAwB,IAApBA,EAAS/a,OACT,MAAM,IAAIuzQ,EAAUtxQ,KAAKijO,KAAM,yBAEnC,MAAsCjjO,KAAKw1Q,yBAAyB18P,GAA5DlU,EAAR,EAAQA,KAAM0vQ,EAAd,EAAcA,UAAWC,EAAzB,EAAyBA,SACrB3vQ,EAAK+tQ,SAAW4B,GAChBv0Q,KAAK6sF,KAAKt6D,OAAO+hP,EAAW,EAAG,CAAC1vQ,MA1K5C,iBA6KI,SAAIkU,GACA,OAAO9Y,KAAKy1Q,YAAY38P,KA9KhC,0BAgLI,SAAaA,GACT,MAAyC9Y,KAAKw1Q,yBAAyB18P,GAA/Dw7P,EAAR,EAAQA,UAAW3B,EAAnB,EAAmBA,QAAS4B,EAA5B,EAA4BA,SAC5B,OAAO5B,GAAW4B,EAAWD,GAAa,IAlLlD,gCAoLI,SAAmBx7P,GACf,OAAO9Y,KAAK01Q,YAAY58P,GAAU45P,kBArL1C,2BAuLI,SAAc55P,GACV,OAAO9Y,KAAK01Q,YAAY58P,GAAU64P,cAxL1C,4BA0LI,SAAe74P,EAAU64P,GAAa,WAC5B/sQ,EAAO5E,KAAK01Q,YAAY58P,GACH,qBAAhB64P,IACPA,GAAe/sQ,EAAK+sQ,aAExB,IAAMrkF,EAAS,CAAEqkF,eACjB,OAAO3xQ,KAAK4rO,cAAc6B,cAAa,kBAAM,EAAKkoC,kBAAkB78P,EAAUw0K,QAhMtF,yBAkMI,SAAYx0K,GACR,OAAO9Y,KAAK01Q,YAAY58P,GAAU25P,YAnM1C,0BAqMI,SAAa35P,EAAU25P,EAAWmD,GAAW,WACnChxQ,EAAO5E,KAAK01Q,YAAY58P,GACL,qBAAd25P,IACPA,GAAa7tQ,EAAK6tQ,WAEtB,IAAMnlF,EAAS,CAAEmlF,YAAWmD,UAAWA,IAAa,GACpD,OAAO51Q,KAAK4rO,cAAc6B,cAAa,kBAAM,EAAKkoC,kBAAkB78P,EAAUw0K,QA3MtF,+BA6MI,SAAkBx0K,EAAUw0K,GACxB,MAAsCttL,KAAKw1Q,yBAAyB18P,GAA5DlU,EAAR,EAAQA,KAAM0vQ,EAAd,EAAcA,UAAWC,EAAzB,EAAyBA,SACnBnyQ,EAASpC,KAAK61Q,0BAA0BjxQ,EAAM0vQ,EAAWC,EAAUjnF,GACzE,GAAI1oL,IAAS5E,KAAKysG,MAAQzsG,KAAKqyQ,0BAA4BjwQ,IAAWsvQ,EAAyBpkF,IAAW1oL,EAAK+sQ,cAAgB/sQ,EAAK6tQ,YAAcnlF,EAAOsoF,UAAW,CAEhK,IADA,IAAIE,GAAyB,EACpBh4Q,EAAI,EAAGA,EAAI8G,EAAK2Q,SAASxX,OAAQD,IAAK,CAE3C,GADc8G,EAAK2Q,SAASzX,GAClB60Q,QAAS,CACf,GAAImD,GAAyB,EAAG,CAC5BA,GAAyB,EACzB,MAGAA,EAAwBh4Q,GAIhCg4Q,GAAyB,GACzB91Q,KAAK21Q,kBAAL,sBAA2B78P,GAA3B,CAAqCg9P,IAAwBxoF,GAGrE,OAAOlrL,IAlOf,uCAoOI,SAA0BwC,EAAM0vQ,EAAWC,EAAUjnF,GACjD,IAAMlrL,EAASpC,KAAK+1Q,sBAAsBnxQ,EAAM0oL,GAAQ,GACxD,IAAKinF,IAAa3vQ,EAAK+tQ,UAAYvwQ,EAC/B,OAAOA,EAEX,IAAM4zQ,EAA0BpxQ,EAAK8tQ,gBAC/BG,EAAW7yQ,KAAKi2Q,8BAA8BrxQ,GAC9CojE,EAAcguM,IAA0C,IAAf1B,EAAmB,EAAI,GAEtE,OADAt0Q,KAAK6sF,KAAKt6D,OAAO+hP,EAAY,EAAGtsM,EAAa6qM,EAASnuQ,MAAM,IACrDtC,IA7Of,mCA+OI,SAAsBwC,EAAM0oL,EAAQ4oF,GAChC,IAAI9zQ,EAoBJ,GAnBIwC,IAAS5E,KAAKysG,KACdrqG,GAAS,GAGLsvQ,EAAyBpkF,IACzBlrL,EAASwC,EAAK+sQ,cAAgBrkF,EAAOqkF,YACrC/sQ,EAAK+sQ,YAAcrkF,EAAOqkF,aAEpB/sQ,EAAK+sQ,aAIXvvQ,EAASwC,EAAK6tQ,YAAcnlF,EAAOmlF,UACnC7tQ,EAAK6tQ,UAAYnlF,EAAOmlF,WAJxBrwQ,GAAS,EAMTA,GACApC,KAAK8xQ,0BAA0B78P,KAAK,CAAErQ,OAAMsxQ,WAG/CxE,EAAyBpkF,IAAWA,EAAOsoF,UAAW,qBACnChxQ,EAAK2Q,UAD8B,IACvD,2BAAmC,KAAxBE,EAAwB,QAC/BrT,EAASpC,KAAK+1Q,sBAAsBtgQ,EAAO63K,GAAQ,IAASlrL,GAFT,+BAK3D,OAAOA,IAzQf,sBA2QI,SAAS0W,GAAU,WACf9Y,KAAK4rO,cAAc6B,cAAa,WAE5B,IADA,IAAI7oO,EAAO,EAAK8wQ,YAAY58P,GACrBlU,EAAK0Q,QACR1Q,EAAOA,EAAK0Q,OACZwD,EAAWA,EAASpU,MAAM,EAAGoU,EAAS/a,OAAS,GAC3C6G,EAAK6tQ,WACL,EAAKkD,kBAAkB78P,EAAU,CAAE25P,WAAW,EAAOmD,WAAW,SAlRpF,sBAuRI,WACI,IAAMI,EAA0Bh2Q,KAAKysG,KAAKimK,gBACpCG,EAAW7yQ,KAAKm2Q,4BAA4Bn2Q,KAAKysG,MACvDzsG,KAAK6sF,KAAKt6D,OAAO,EAAGyjP,EAAyBnD,KA1RrD,4BA4RI,SAAeuD,EAAa9gQ,EAAQ+gQ,EAAkB9B,EAAU+B,EAAkBlC,GAAiB,WACzFxvQ,EAAO,CACT0Q,SACA/K,QAAS6rQ,EAAY7rQ,QACrBgL,SAAU,GACV+8P,MAAOh9P,EAAOg9P,MAAQ,EACtBC,qBAAsB,EACtBC,mBAAoB,EACpBb,YAAgD,mBAA5ByE,EAAYzE,YAA4ByE,EAAYzE,YAAgD,qBAA1ByE,EAAY3D,UAC1GA,UAA4C,qBAA1B2D,EAAY3D,UAA4BzyQ,KAAKoyQ,kBAAoBgE,EAAY3D,UAC/FC,gBAAiB,EACjBz+N,WAAY,EACZ0+N,SAAS,EACTC,gBAAY/4P,GAEVo6B,EAAaj0C,KAAKu2Q,YAAY3xQ,EAAMyxQ,GAC1CzxQ,EAAKqvC,WAAaA,EACdsgO,GACA+B,EAAiB/yQ,KAAKqB,GAE1B,IApB+F,EAoBzF4xQ,EAAgBJ,EAAY7gQ,UAAYwH,IAASukC,QACjDm1N,EAAgBlC,GAA2B,IAAftgO,IAAkCrvC,EAAK6tQ,UACnEiE,EAAa35P,IAASqF,IAAIo0P,GAAe,SAAArsQ,GAAE,OAAI,EAAKuqQ,eAAevqQ,EAAIvF,EAAMqvC,EAAYwiO,EAAeH,EAAkBlC,MAC5H7B,EAAuB,EACvBG,EAAkB,EAxByE,cAyB3EgE,GAzB2E,IAyB/F,2BAAgC,KAArBjhQ,EAAqB,QAC5B7Q,EAAK2Q,SAAShS,KAAKkS,GACnBi9P,GAAmBj9P,EAAMi9P,gBACrBj9P,EAAMk9P,UACNl9P,EAAM+8P,kBAAoBD,MA7B6D,8BA+C/F,OAfA3tQ,EAAK+sQ,YAAc/sQ,EAAK+sQ,aAAe/sQ,EAAK2Q,SAASxX,OAAS,EAC9D6G,EAAK2tQ,qBAAuBA,EAC5B3tQ,EAAK+tQ,QAAyB,IAAf1+N,EAAiCs+N,EAAuB,EAAoB,IAAft+N,EACvErvC,EAAK+tQ,QAMA/tQ,EAAK6tQ,YACX7tQ,EAAK8tQ,gBAAkBA,IANvB9tQ,EAAK8tQ,gBAAkB,EACnB6B,GACA+B,EAAiBhzQ,OAMrB8wQ,GACAA,EAAgBxvQ,GAEbA,IA3Uf,2CA6UI,SAA8BA,GAC1B,IAAMoxQ,EAA0BpxQ,EAAK8tQ,gBAC/BtwQ,EAAS,GAGf,OAFApC,KAAK22Q,+BAA+B/xQ,EAAMxC,GAC1CpC,KAAKk1Q,gCAAgCtwQ,EAAK0Q,OAAQlT,EAAOrE,OAASi4Q,GAC3D5zQ,IAlVf,4CAoVI,SAA+BwC,EAAMxC,GACjC,IAAqB,IAAjBwC,EAAK+tQ,QACL,OAAO,EAIX,GAFAvwQ,EAAOmB,KAAKqB,GACZA,EAAK8tQ,gBAAkB,GAClB9tQ,EAAK6tQ,UAAW,qBACG7tQ,EAAK2Q,UADR,IACjB,2BAAmC,KAAxBE,EAAwB,QAC/B7Q,EAAK8tQ,iBAAmB1yQ,KAAK22Q,+BAA+BlhQ,EAAOrT,IAFtD,+BAMrB,OADApC,KAAKgyQ,4BAA4B/8P,KAAKrQ,GAC/BA,EAAK8tQ,kBAhWpB,yCAkWI,SAA4B9tQ,GACxB,IAAMoxQ,EAA0BpxQ,EAAK8tQ,gBAC/BtwQ,EAAS,GAGf,OAFApC,KAAK42Q,6BAA6BhyQ,EAAMA,EAAK+tQ,QAAU,EAAkB,EAAgBvwQ,GACzFpC,KAAKk1Q,gCAAgCtwQ,EAAK0Q,OAAQlT,EAAOrE,OAASi4Q,GAC3D5zQ,IAvWf,0CAyWI,SAA6BwC,EAAMyxQ,EAAkBj0Q,GAAyB,IACtE6xC,EADqDsgO,IAAiB,yDAE1E,GAAI3vQ,IAAS5E,KAAKysG,KAAM,CAEpB,GAAmB,KADnBx4D,EAAaj0C,KAAKu2Q,YAAY3xQ,EAAMyxQ,IAIhC,OAFAzxQ,EAAK+tQ,SAAU,EACf/tQ,EAAK8tQ,gBAAkB,GAChB,EAEP6B,GACAnyQ,EAAOmB,KAAKqB,GAGpB,IAAMiyQ,EAAoBz0Q,EAAOrE,OACjC6G,EAAK8tQ,gBAAkB9tQ,IAAS5E,KAAKysG,KAAO,EAAI,EAChD,IAAIqqK,GAAwB,EAC5B,GAAKlyQ,EAAK6tQ,WAA4B,IAAfx+N,EAWnBrvC,EAAK2tQ,qBAAuB,MAXsB,CAClD,IADkD,EAC9CC,EAAoB,EAD0B,cAE9B5tQ,EAAK2Q,UAFyB,IAElD,2BAAmC,KAAxBE,EAAwB,QAC/BqhQ,EAAwB92Q,KAAK42Q,6BAA6BnhQ,EAAOw+B,EAAY7xC,EAAQmyQ,IAAa3vQ,EAAK6tQ,YAAcqE,EACjHrhQ,EAAMk9P,UACNl9P,EAAM+8P,kBAAoBA,MALgB,8BAQlD5tQ,EAAK2tQ,qBAAuBC,EAmBhC,OAdI5tQ,IAAS5E,KAAKysG,OACd7nG,EAAK+tQ,QAAyB,IAAf1+N,EAAiC6iO,EAAwC,IAAf7iO,EACzErvC,EAAKqvC,WAAaA,GAEjBrvC,EAAK+tQ,QAMA/tQ,EAAK6tQ,YACX7tQ,EAAK8tQ,iBAAmBtwQ,EAAOrE,OAAS84Q,IANxCjyQ,EAAK8tQ,gBAAkB,EACnB6B,GACAnyQ,EAAOkB,OAMftD,KAAKgyQ,4BAA4B/8P,KAAKrQ,GAC/BA,EAAK+tQ,UApZpB,6CAsZI,SAAgC/tQ,EAAMq+B,GAClC,GAAa,IAATA,EAGJ,KAAOr+B,GACHA,EAAK8tQ,iBAAmBzvO,EACxBjjC,KAAKgyQ,4BAA4B/8P,KAAKrQ,GACtCA,EAAOA,EAAK0Q,SA7ZxB,yBAgaI,SAAY1Q,EAAMyxQ,GACd,IAAMj0Q,EAASpC,KAAKgvB,OAAShvB,KAAKgvB,OAAOA,OAAOpqB,EAAK2F,QAAS8rQ,GAAoB,EAClF,MAAsB,mBAAXj0Q,GACPwC,EAAKguQ,gBAAa/4P,EACXzX,EAAS,EAAkB,GAE7BovQ,EAAepvQ,IACpBwC,EAAKguQ,WAAaxwQ,EAAOjD,KAClBsyQ,EAAgBrvQ,EAAO6xC,cAG9BrvC,EAAKguQ,gBAAa/4P,EACX43P,EAAgBrvQ,MA5anC,yBAgbI,SAAY0W,GAA4B,IAAlBlU,EAAkB,uDAAX5E,KAAKysG,KAC9B,IAAK3zF,GAAgC,IAApBA,EAAS/a,OACtB,OAAO,EAEX,QAAyB+a,GAAlB7Z,EAAP,KAAiBD,EAAjB,WACA,QAAIC,EAAQ,GAAKA,EAAQ2F,EAAK2Q,SAASxX,SAGhCiC,KAAKy1Q,YAAYz2Q,EAAM4F,EAAK2Q,SAAStW,MAxbpD,yBA2bI,SAAY6Z,GAA4B,IAAlBlU,EAAkB,uDAAX5E,KAAKysG,KAC9B,IAAK3zF,GAAgC,IAApBA,EAAS/a,OACtB,OAAO6G,EAEX,QAAyBkU,GAAlB7Z,EAAP,KAAiBD,EAAjB,WACA,GAAIC,EAAQ,GAAKA,EAAQ2F,EAAK2Q,SAASxX,OACnC,MAAM,IAAIuzQ,EAAUtxQ,KAAKijO,KAAM,yBAEnC,OAAOjjO,KAAK01Q,YAAY12Q,EAAM4F,EAAK2Q,SAAStW,MAncpD,sCAscI,SAAyB6Z,GACrB,GAAwB,IAApBA,EAAS/a,OACT,MAAO,CAAE6G,KAAM5E,KAAKysG,KAAM6nK,WAAY,EAAGC,UAAU,EAAM5B,SAAS,GAEtE,MAAqD3yQ,KAAKqzQ,2BAA2Bv6P,GAA7E3R,EAAR,EAAQA,WAAYmtQ,EAApB,EAAoBA,UAAWC,EAA/B,EAA+BA,SAAU5B,EAAzC,EAAyCA,QACnC1zQ,EAAQ6Z,EAASA,EAAS/a,OAAS,GACzC,GAAIkB,EAAQ,GAAKA,EAAQkI,EAAWoO,SAASxX,OACzC,MAAM,IAAIuzQ,EAAUtxQ,KAAKijO,KAAM,yBAEnC,IAAMr+N,EAAOuC,EAAWoO,SAAStW,GACjC,MAAO,CAAE2F,OAAM0vQ,YAAWC,WAAU5B,QAASA,GAAW/tQ,EAAK+tQ,WAhdrE,wCAkdI,SAA2B75P,GAA4E,IAAlElU,EAAkE,uDAA3D5E,KAAKysG,KAAM6nK,EAAgD,uDAApC,EAAGC,IAAiC,yDAAhB5B,IAAgB,yDACnG,IAAyB75P,GAAlB7Z,EAAP,KAAiBD,EAAjB,WACA,GAAIC,EAAQ,GAAKA,EAAQ2F,EAAK2Q,SAASxX,OACnC,MAAM,IAAIuzQ,EAAUtxQ,KAAKijO,KAAM,yBAGnC,IAAK,IAAInlO,EAAI,EAAGA,EAAImB,EAAOnB,IACvBw2Q,GAAa1vQ,EAAK2Q,SAASzX,GAAG40Q,gBAIlC,OAFA6B,EAAWA,IAAa3vQ,EAAK6tQ,UAC7BE,EAAUA,GAAW/tQ,EAAK+tQ,QACN,IAAhB3zQ,EAAKjB,OACE,CAAEoJ,WAAYvC,EAAM0vQ,YAAWC,WAAU5B,WAE7C3yQ,KAAKqzQ,2BAA2Br0Q,EAAM4F,EAAK2Q,SAAStW,GAAQq1Q,EAAY,EAAGC,EAAU5B,KAhepG,qBAkeI,WAAuB,IAAf75P,EAAe,uDAAJ,GACf,OAAO9Y,KAAK01Q,YAAY58P,KAnehC,6BAseI,SAAgBlU,GAGZ,IAFA,IAAMkU,EAAW,GACbi+P,EAAgBnyQ,EACbmyQ,EAAczhQ,QACjBwD,EAASvV,KAAKwzQ,EAAczhQ,OAAOC,SAAS3U,QAAQm2Q,IACpDA,EAAgBA,EAAczhQ,OAElC,OAAOwD,EAASq6G,YA7exB,mCA+eI,SAAsBr6G,GAClB,OAAwB,IAApBA,EAAS/a,YACT,EAEyB,IAApB+a,EAAS/a,OACP,GAGA2nE,YAAM5sD,GAAU,OAvfnC,K,QCjBak+P,EAAuBhuM,YAAgB,qBAAsB55B,IAAQ0jC,aACrEmkM,EAAyBjuM,YAAgB,yBAA0B55B,IAAQ4vC,YAC3Ek4L,EAA0BluM,YAAgB,0BAA2B55B,IAAQ8vC,eAC7Ei4L,EAAsBnuM,YAAgB,oBAAqB55B,IAAQ69B,OACnEmqM,GAAsBpuM,YAAgB,oBAAqB55B,IAAQypC,S,iECc1Ew+L,G,kDACF,WAAYl4Q,GAAM,kCACd,cAAMA,EAAK8X,SAASmL,KAAI,SAAAxd,GAAI,OAAIA,EAAK2F,aAChCpL,KAAOA,EAFE,E,UADoBm4Q,KAM1C,SAASC,GAAsBp4Q,GAC3B,OAAIA,aAAgBm4Q,IACT,IAAID,GAA4Bl4Q,GAEpCA,E,IAELq4Q,G,WACF,WAAY3I,EAAen3G,GAAK,oBAC5B13J,KAAK6uQ,cAAgBA,EACrB7uQ,KAAK03J,IAAMA,EACX13J,KAAKy3Q,qBAAuBztQ,IAAW8T,K,8CAE3C,SAAWlZ,GACP,OAAO5E,KAAK03J,IAAI2yE,WAAWzlO,EAAK2F,W,0BAEpC,SAAakwG,EAAO4wH,GAChB,GAAIrrO,KAAK03J,IAAI4zE,aACT,OAAOtrO,KAAK03J,IAAI4zE,aAAa7wH,EAAMr4F,KAAI,SAAAxd,GAAI,OAAIA,EAAK2F,WAAU8gO,K,yBAItE,SAAYlsO,EAAMksO,GACVrrO,KAAK03J,IAAI+9D,aACTz1N,KAAK03J,IAAI+9D,YAAY8hD,GAAsBp4Q,GAAOksO,K,wBAG1D,SAAWlsO,EAAMivL,EAAYo9C,EAAaH,GAA2B,WAAZz7E,IAAY,yDAC3DxtJ,EAASpC,KAAK03J,IAAI4yE,WAAWitC,GAAsBp4Q,GAAOivL,GAAcA,EAAW7jL,QAASihO,EAAaH,GACzGqsC,EAA0B13Q,KAAK23Q,iBAAmBvpF,EAKxD,GAJIspF,IACA13Q,KAAKy3Q,qBAAqBr/P,UAC1BpY,KAAK23Q,eAAiBvpF,GAEA,qBAAfA,EACP,OAAOhsL,EAYX,GAVIs1Q,GAA6C,mBAAXt1Q,GAAwBA,EAAOw1Q,aACjE53Q,KAAKy3Q,qBAAuBx2M,cAAkB,WAC1C,IAAMnsC,EAAQ,EAAK+5O,gBACbtrH,EAAMzuH,EAAM+iP,gBAAgBzpF,GAC9Bt5J,EAAMgjP,YAAYv0H,IAClBzuH,EAAMijP,aAAax0H,GAAK,GAE5B,EAAKo0H,oBAAiB99P,IACvB,MAEe,mBAAXzX,IAAyBA,EAAOixM,QAAmC,qBAAlBjxM,EAAO41Q,QAA0B51Q,EAAOi+E,SAAU,CAC1G,IAAKuvE,EAAK,CACN,IAAMyjD,EAA2B,mBAAXjxM,EAAuBA,EAASA,EAAOixM,OACvD4kE,EAA2B,mBAAX71Q,OAAuByX,EAAYzX,EAAO61Q,OAChE,MAAO,CAAE5kE,SAAQ4kE,SAAQ53L,SAAU,CAACmrJ,IAExC,OAAOppO,EAEX,GAAsB,IAAlBA,EAAO41Q,OAAuB,CAC9B,IAAMljP,EAAQ90B,KAAK6uQ,gBACbtrH,EAAMzuH,EAAM+iP,gBAAgBzpF,GAC5B8pF,EAAYpjP,EAAMqjP,sBAAsB50H,GACxCp8I,EAAa2tB,EAAMsjP,QAAQF,GAC3BG,EAAcH,GAAapjP,EAAMwjP,aAAaJ,GACpD,OAAOl4Q,KAAKsqO,WAAWnrO,EAAMgI,EAAYkxQ,EAAahtC,GAAe,GAEzE,IAAMv2M,EAAQ90B,KAAK6uQ,gBACbtrH,EAAMzuH,EAAM+iP,gBAAgBzpF,GAC5BhuK,EAAQ0U,EAAMwjP,aAAa/0H,GAC3BxlJ,EAAS+2B,EAAMyjP,mBAAmBh1H,GACxC,OAAOnlJ,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIgC,GAAS,CAAEi+E,SAAUxhE,YAAMuB,EAAOA,EAAQriB,O,kBAErF,SAAKoB,EAAMivL,EAAYo9C,EAAaH,GAChCrrO,KAAKy3Q,qBAAqBr/P,UAC1BpY,KAAK23Q,oBAAiB99P,EACtB7Z,KAAK03J,IAAI6yE,KAAKgtC,GAAsBp4Q,GAAOivL,GAAcA,EAAW7jL,QAASihO,EAAaH,K,uBAE9F,SAAUA,GACFrrO,KAAK03J,IAAI89D,WACTx1N,KAAK03J,IAAI89D,UAAU6V,O,KAI/B,SAASmtC,GAAc3J,EAAexpQ,GAClC,OAAOA,GAAWjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEu/N,iBAAkBv/N,EAAQu/N,kBAAoB,CACpGrxG,MADoG,SAC9FppH,GACF,OAAO9E,EAAQu/N,iBAAiBrxG,MAAMppH,EAAGI,WAE9CmtJ,IAAKryJ,EAAQqyJ,KAAO,IAAI8/G,GAAwB3I,EAAexpQ,EAAQqyJ,KAAM6wE,4BAA6BljO,EAAQkjO,6BAA+B,CAChJN,6BADgJ,SACnHtnO,GACzB,OAAO0E,EAAQkjO,4BAA4BN,6BAA6B7pO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIO,GAAI,CAAE4J,QAAS5J,EAAE4J,YAE7H29N,4BAJgJ,SAIpHvnO,GACxB,OAAO0E,EAAQkjO,4BAA4BL,4BAA4B9pO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIO,GAAI,CAAE4J,QAAS5J,EAAE4J,aAE7H88N,sBAAuBhiO,EAAQgiO,uBAAyBjpO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,EAAQgiO,uBAAwB,CAAEoxC,WAAF,SAAa7zQ,GAChI,IAAMkwB,EAAQ+5O,IACRtrH,EAAMzuH,EAAM+iP,gBAAgBjzQ,GAC5BszQ,EAAYpjP,EAAMqjP,sBAAsB50H,GAE9C,OADmBzuH,EAAMsjP,QAAQF,GACf3F,sBAEtBmG,YAPuH,SAO3G9zQ,GACR,OAAOA,EAAK4tQ,kBAAoB,GACjCmG,UAAWtzQ,EAAQgiO,uBAAyBhiO,EAAQgiO,sBAAsBsxC,UAAY,SAAC/zQ,GACtF,OAAOS,EAAQgiO,sBAAsBsxC,UAAU/zQ,EAAK2F,eACpDsP,EAAW++P,QAASvzQ,EAAQgiO,uBAAyBhiO,EAAQgiO,sBAAsBuxC,QAAU,SAACh0Q,GAC9F,OAAOS,EAAQgiO,sBAAsBuxC,QAAQh0Q,EAAK2F,UAClD,iBAAM,YAAY+8N,aAbiG,SAapF3mO,GAC/B,OAAO0E,EAAQgiO,sBAAsBC,aAAa3mO,EAAE4J,UAExD2iO,mBAhBuH,WAiBnH,OAAO7nO,EAAQgiO,sBAAsB6F,sBACtCjB,cAAe5mO,EAAQgiO,uBAAyBhiO,EAAQgiO,sBAAsB4E,cAAgB,kBAAM5mO,EAAQgiO,sBAAsB4E,iBAAkB,iBAAM,QAAQf,aAAc7lO,EAAQgiO,uBAAyBhiO,EAAQgiO,sBAAsB6D,aAAe,SAACtmO,GAAD,OAAUS,EAAQgiO,sBAAsB6D,aAAatmO,EAAK2F,UAAW,SAAC3F,GACnU,OAAOA,EAAK0tQ,OACbrjC,sBAAuB5pO,EAAQgiO,sBAAsB4H,uBAA0B,SAAArqO,GAC9E,OAAOS,EAAQgiO,sBAAsB4H,sBAAsBrqO,EAAK2F,YAC7Dg8N,gCAAiClhO,EAAQkhO,iCAAmCnoO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,EAAQkhO,iCAAkC,CAAEiB,2BAAF,SAA6B5iO,GACtL,OAAOS,EAAQkhO,gCAAgCiB,2BAA2B5iO,EAAK2F,YAC7Eu8N,yBAA0BzhO,EAAQwzQ,2BAE7C,IAmBIC,GAnBEC,GAAb,WACI,WAAYvyC,GAAU,oBAClBxmO,KAAKwmO,SAAWA,EAFxB,6CAII,SAAUj8N,GACN,OAAOvK,KAAKwmO,SAASlrC,UAAU/wL,EAAQA,WAL/C,2BAOI,SAAcA,GACV,OAAOvK,KAAKwmO,SAASyqC,cAAc1mQ,EAAQA,WARnD,8BAUI,SAAiBA,GACb,QAASvK,KAAKwmO,SAASwyC,kBAAoBh5Q,KAAKwmO,SAASwyC,iBAAiBzuQ,EAAQA,WAX1F,8BAaI,SAAiBA,EAASO,GAClB9K,KAAKwmO,SAASyyC,kBACdj5Q,KAAKwmO,SAASyyC,iBAAiB1uQ,EAAQA,QAASO,OAf5D,MAoBA,SAAWguQ,GACPA,EAAkB,KAAW,OAC7BA,EAAkB,QAAc,UAChCA,EAAkB,OAAa,SAHnC,CAIGA,KAAuBA,GAAqB,K,IACzCI,G,WACF,WAAYnrO,GAA6B,WAAhBorO,EAAgB,uDAAJ,GAAI,oBACrCn5Q,KAAKm5Q,UAAYA,EACjBn5Q,KAAK+tC,YAAcxW,IAAM5gB,QAAQo3B,GAAa,SAAA92B,GAAQ,OAAI,EAAKkiQ,UAAYliQ,K,0CAE/E,WACI,OAAOjX,KAAKm5Q,c,KAGdC,G,WACF,WAAYl1C,EAAU2qC,EAAekD,EAA0BsH,GAA2B,IAAdh0Q,EAAc,uDAAJ,GAAI,oBACtFrF,KAAKkkO,SAAWA,EAChBlkO,KAAK6uQ,cAAgBA,EACrB7uQ,KAAKq5Q,YAAcA,EACnBr5Q,KAAKojO,iBAAmB,IAAI77L,IAC5BvnC,KAAKs5Q,cAAgB,IAAI/xO,IACzBvnC,KAAKoyI,OAASgnI,EAAaG,cAC3Bv5Q,KAAKw5Q,iCAAkC,EACvCx5Q,KAAKy5Q,0BAA2B,EAChCz5Q,KAAK05Q,qBAAuB,IAAIC,KAChC35Q,KAAK45Q,kBAAoB,IAAIv8P,IAC7Brd,KAAK65Q,uBAAyB7vQ,IAAW8T,KACzC9d,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAKgrO,WAAa9G,EAAS8G,WAC3BhrO,KAAKiiI,cAAc58H,GACnBkyB,IAAMnV,IAAI2vP,GAA0B,SAAApxQ,GAAC,OAAIA,EAAEiE,OAA3C2yB,CAAiDv3B,KAAK85Q,4BAA6B95Q,KAAMA,KAAKkd,aAC1FgnN,EAAS61C,yBACT71C,EAAS61C,wBAAwB/5Q,KAAK+5Q,wBAAyB/5Q,KAAMA,KAAKkd,a,iDAGlF,WAA4B,IAAd7X,EAAc,uDAAJ,GAIpB,GAH8B,qBAAnBA,EAAQ+sI,SACfpyI,KAAKoyI,OAASlgD,aAAM7sF,EAAQ+sI,OAAQ,EAAG,KAED,qBAA/B/sI,EAAQ20Q,mBAAoC,CACnD,IAAMP,EAA2Bp0Q,EAAQ20Q,qBAAuBlB,GAAmBh7P,KACnF,GAAI27P,IAA6Bz5Q,KAAKy5Q,2BAClCz5Q,KAAKy5Q,yBAA2BA,EAChCz5Q,KAAK65Q,uBAAuBzhQ,UACxBqhQ,GAA0B,CAC1B,IAAMv8P,EAAc,IAAIhE,IACxBlZ,KAAKq5Q,YAAYtrO,YAAY/tC,KAAKi6Q,wBAAyBj6Q,KAAMkd,GACjEld,KAAK65Q,uBAAyB38P,EAC9Bld,KAAKi6Q,wBAAwBj6Q,KAAKq5Q,YAAYpiQ,WAIH,qBAA5C5R,EAAQm0Q,kCACfx5Q,KAAKw5Q,gCAAkCn0Q,EAAQm0Q,mC,4BAGvD,SAAehqQ,GACX,IAAMrF,EAAKkL,iBAAO7F,EAAWuH,YAAE,mBACzBq7H,EAAS/8H,iBAAOlL,EAAI4M,YAAE,sBACtBmjQ,EAAU7kQ,iBAAOlL,EAAI4M,YAAE,uBACvBojQ,EAAW9kQ,iBAAOlL,EAAI4M,YAAE,wBACxBssN,EAAerjO,KAAKkkO,SAASyG,eAAewvC,GAClD,MAAO,CAAE3qQ,YAAW4iI,SAAQ8nI,UAASL,uBAAwB7vQ,IAAW8T,KAAMulN,kB,2BAElF,SAAcz+N,EAAM3F,EAAOokO,EAAcv4N,GACf,kBAAXA,IACP9K,KAAKs5Q,cAAc9xO,IAAI5iC,EAAM,CAAEy+N,eAAcv4N,WAC7C9K,KAAKojO,iBAAiB57L,IAAI5iC,EAAK2F,QAAS3F,IAE5C,IAAMwtI,EAASgnI,EAAaG,eAAiB30Q,EAAK0tQ,MAAQ,GAAKtyQ,KAAKoyI,OACpEixF,EAAa62C,QAAQxtQ,MAAM0tQ,YAA3B,UAA4ChoI,EAA5C,MACAixF,EAAajxF,OAAO1lI,MAAM7B,MAA1B,UAAqCunI,EAASpyI,KAAKoyI,OAAS,GAA5D,MACApyI,KAAKq6Q,cAAcz1Q,EAAMy+N,GACH,kBAAXv4N,GACP9K,KAAKg6Q,mBAAmBp1Q,EAAMy+N,GAElCrjO,KAAKkkO,SAAS0G,cAAchmO,EAAM3F,EAAOokO,EAAaA,aAAcv4N,K,4BAExE,SAAelG,EAAM3F,EAAOokO,EAAcv4N,GACtCu4N,EAAaw2C,uBAAuBzhQ,UAChCpY,KAAKkkO,SAAS2G,gBACd7qO,KAAKkkO,SAAS2G,eAAejmO,EAAM3F,EAAOokO,EAAaA,aAAcv4N,GAEnD,kBAAXA,IACP9K,KAAKs5Q,cAAL,OAA0B10Q,GAC1B5E,KAAKojO,iBAAL,OAA6Bx+N,EAAK2F,Y,6BAG1C,SAAgB84N,GACZrjO,KAAKkkO,SAAS4G,gBAAgBzH,EAAaA,gB,qCAE/C,SAAwB94N,GACpB,IAAM3F,EAAO5E,KAAKojO,iBAAiB3wM,IAAIloB,GAClC3F,GAGL5E,KAAK85Q,4BAA4Bl1Q,K,yCAErC,SAA4BA,GACxB,IAAMzF,EAAOa,KAAKs5Q,cAAc7mP,IAAI7tB,GAC/BzF,IAGLa,KAAKq6Q,cAAcz1Q,EAAMzF,EAAKkkO,cAC9BrjO,KAAKi6Q,wBAAwBj6Q,KAAKq5Q,YAAYpiQ,UAC9CjX,KAAKg6Q,mBAAmBp1Q,EAAMzF,EAAKkkO,iB,2BAEvC,SAAcz+N,EAAMy+N,GAAc,OAC9B,EAAAA,EAAa62C,QAAQrrQ,WAAU/J,OAA/B,oBAAyCkyQ,EAAqBtnD,kBAC9D,IAAI4qD,GAAkB,EAItB,GAHIt6Q,KAAKkkO,SAASm2C,gBACdC,EAAkBt6Q,KAAKkkO,SAASm2C,cAAcz1Q,EAAK2F,QAAS84N,EAAa62C,UAEzEt1Q,EAAK+sQ,eAAiB3xQ,KAAKw5Q,iCAAmC50Q,EAAK2tQ,qBAAuB,GAAI,CACxE,MAAtB,IAAK+H,GACD,EAAAj3C,EAAa62C,QAAQrrQ,WAAU2K,IAA/B,oBAAsCw9P,EAAqBtnD,kBAE/D2T,EAAa62C,QAAQrrQ,UAAU2K,IAAI,eACnC6pN,EAAa62C,QAAQrrQ,UAAU8vI,OAAO,YAAa/5I,EAAK6tQ,gBAGxDpvC,EAAa62C,QAAQrrQ,UAAU/J,OAAO,cAAe,aAErDF,EAAK+sQ,YACLtuC,EAAa7zN,UAAUsH,aAAa,gBAAiBhX,QAAQ8E,EAAK6tQ,YAGlEpvC,EAAa7zN,UAAU2H,gBAAgB,mB,gCAG/C,SAAmBvZ,EAAQylO,GAAc,WAGrC,GAFA1+N,oBAAU0+N,EAAajxF,QACvBixF,EAAaw2C,uBAAuBzhQ,UAC/BpY,KAAKy5Q,yBAAV,CAMA,IAHA,IAAMc,EAAkB,IAAIrhQ,IACtB4b,EAAQ90B,KAAK6uQ,gBACfjqQ,EAAOhH,EAR0B,aAUjC,IAAM2lJ,EAAMzuH,EAAM+iP,gBAAgBjzQ,GAC5BszQ,EAAYpjP,EAAMqjP,sBAAsB50H,GAC9C,IAAK20H,EACD,cAEJ,IAAM5iQ,EAASwf,EAAMsjP,QAAQF,GACvBsC,EAAQzjQ,YAAE,gBAAiB,CAAErK,MAAO,UAAF,OAAY,EAAK0lI,OAAjB,QACpC,EAAKwnI,kBAAkBt3N,IAAIhtC,IAC3BklQ,EAAM3rQ,UAAU2K,IAAI,UAEsB,IAA1C6pN,EAAajxF,OAAOqoI,kBACpBp3C,EAAajxF,OAAOxiI,YAAY4qQ,GAGhCn3C,EAAajxF,OAAO18H,aAAa8kQ,EAAOn3C,EAAajxF,OAAOsoI,mBAEhE,EAAKhB,qBAAqBlgQ,IAAIlE,EAAQklQ,GACtCD,EAAgB/gQ,IAAIrB,aAAa,kBAAM,EAAKuhQ,qBAAL,OAAiCpkQ,EAAQklQ,OAChF51Q,EAAO0Q,KAnBE,kBAIL,MAiBR+tN,EAAaw2C,uBAAyBU,K,qCAE1C,SAAwB9/J,GAAO,WAC3B,GAAKz6G,KAAKy5Q,yBAAV,CAGA,IAAMjyO,EAAM,IAAInqB,IACVyX,EAAQ90B,KAAK6uQ,gBACnBp0J,EAAM9jG,SAAQ,SAAA/R,GACV,IAAM2+I,EAAMzuH,EAAM+iP,gBAAgBjzQ,GAClC,IACI,IAAMszQ,EAAYpjP,EAAMqjP,sBAAsB50H,GAC1C3+I,EAAK+sQ,aAAe/sQ,EAAK2Q,SAASxX,OAAS,IAAM6G,EAAK6tQ,UACtDjrO,EAAIhuB,IAAI5U,GAEHszQ,GACL1wO,EAAIhuB,IAAIsb,EAAMsjP,QAAQF,IAG9B,MAAOlzQ,QAIXhF,KAAK45Q,kBAAkBjjQ,SAAQ,SAAA/R,GACtB4iC,EAAI8a,IAAI19C,IACT,EAAK80Q,qBAAqB/iQ,QAAQ/R,GAAM,SAAAgvG,GAAI,OAAIA,EAAK/kG,UAAU/J,OAAO,gBAG9E0iC,EAAI7wB,SAAQ,SAAA/R,GACH,EAAKg1Q,kBAAkBt3N,IAAI19C,IAC5B,EAAK80Q,qBAAqB/iQ,QAAQ/R,GAAM,SAAAgvG,GAAI,OAAIA,EAAK/kG,UAAU2K,IAAI,gBAG3ExZ,KAAK45Q,kBAAoBpyO,K,qBAE7B,WACIxnC,KAAKs5Q,cAAc/7P,QACnBvd,KAAKojO,iBAAiB7lN,QACtBvd,KAAK65Q,uBAAuBzhQ,UAC5BA,YAAQpY,KAAKkd,iB,KAGrBk8P,GAAaG,cAAgB,E,IACvBoB,G,WACF,WAAY9pK,EAAM01H,EAAiCq0C,GAAS,oBACxD56Q,KAAK6wG,KAAOA,EACZ7wG,KAAKumO,gCAAkCA,EACvCvmO,KAAK46Q,QAAUA,EACf56Q,KAAK66Q,YAAc,EACnB76Q,KAAK86Q,YAAc,EACnB96Q,KAAK+6Q,SAAW,GAChB/6Q,KAAKg7Q,kBAAoB,GACzBh7Q,KAAKkd,YAAc,IAAIhE,IACvB23F,EAAKoqK,eAAej7Q,KAAK2V,MAAO3V,KAAMA,KAAKkd,a,4CAE/C,WAAmB,OAAOld,KAAK66Q,c,sBAC/B,WAAmB,OAAO76Q,KAAK86Q,c,mBAC/B,SAAYr6O,GACRzgC,KAAK+6Q,SAAWt6O,EAChBzgC,KAAKg7Q,kBAAoBv6O,EAAQsC,gB,oBAErC,SAAOx4B,EAAS8rQ,GACZ,GAAIr2Q,KAAK46Q,QAAS,CACd,IAAMx4Q,EAASpC,KAAK46Q,QAAQ5rP,OAAOzkB,EAAS8rQ,GAC5C,GAAIr2Q,KAAK6wG,KAAKxrG,QAAQwzQ,yBAClB,OAAOz2Q,EAYX,GAAmB,KATG,mBAAXA,EACMA,EAAS,EAAkB,EAEnCovQ,EAAepvQ,GACPqvQ,EAAgBrvQ,EAAO6xC,YAGvB7xC,GAGb,OAAO,EAIf,GADApC,KAAK66Q,cACD76Q,KAAK6wG,KAAKxrG,QAAQwzQ,2BAA6B74Q,KAAK+6Q,SAEpD,OADA/6Q,KAAK86Q,cACE,CAAE37Q,KAAM4gJ,KAAWC,QAAS/rG,YAAY,GAEnD,IAzB8B,EAyBxBpxC,EAAQ7C,KAAKumO,gCAAgCiB,2BAA2Bj9N,GACxE2wQ,EAASz7Q,MAAM+b,QAAQ3Y,GAASA,EAAQ,CAACA,GA1BjB,cA2Bdq4Q,GA3Bc,IA2B9B,2BAAwB,KAAbz2Q,EAAa,QACdgjO,EAAWhjO,GAAKA,EAAEgU,WACxB,GAAwB,qBAAbgvN,EACP,MAAO,CAAEtoO,KAAM4gJ,KAAWC,QAAS/rG,YAAY,GAEnD,IAAM6rG,EAAQimC,aAAW/lL,KAAK+6Q,SAAU/6Q,KAAKg7Q,kBAAmB,EAAGvzC,EAAUA,EAAS1kM,cAAe,GAAG,GACxG,GAAI+8G,EAEA,OADA9/I,KAAK86Q,cACoB,IAAlBI,EAAOn9Q,OACV,CAAEoB,KAAM2gJ,EAAO7rG,YAAY,GAC3B,CAAE90C,KAAM,CAAE0D,MAAO4kO,EAAU3nF,MAAOA,GAAS7rG,YAAY,IArCrC,8BAwC9B,OAAIj0C,KAAK6wG,KAAKxrG,QAAQ81Q,aACX,EAGA,CAAEh8Q,KAAM4gJ,KAAWC,QAAS/rG,YAAY,K,mBAGvD,WACIj0C,KAAK66Q,YAAc,EACnB76Q,KAAK86Q,YAAc,I,qBAEvB,WACI1iQ,YAAQpY,KAAKkd,iB,KAGfk+P,G,WACF,WAAYvqK,EAAM/7E,EAAOmnC,EAAMjtC,EAAQ09M,GAA4B,+BAC/D1sO,KAAK6wG,KAAOA,EACZ7wG,KAAKi8D,KAAOA,EACZj8D,KAAKgvB,OAASA,EACdhvB,KAAK0sO,2BAA6BA,EAClC1sO,KAAK+hK,UAAW,EAChB/hK,KAAK+6Q,SAAW,GAChB/6Q,KAAK4lG,QAAS,EACd5lG,KAAKq7Q,uBAAyB,IAAI5mQ,IAClCzU,KAAKs7Q,kBAAoB,KACzBt7Q,KAAK0mO,6BAA8B,EACnC1mO,KAAK2mO,WAAY,EACjB3mO,KAAKu7Q,oBAAsB,IAAI9mQ,IAC/BzU,KAAK6mO,mBAAqB,IAAI3tN,IAC9BlZ,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAK4M,QAAUmK,YAAE,4BAAD,OAA6B/W,KAAKs7Q,oBAClDt7Q,KAAK4M,QAAQqzO,WAAY,EACzBjgP,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,aAAa,kBAAM,EAAK6oN,kBACjFz1N,KAAKw7Q,eAAiBnmQ,iBAAO4mD,EAAK6sK,iBAAkB/xN,YAAE,qCACtD/W,KAAKy7Q,aAAepmQ,iBAAOrV,KAAK4M,QAASmK,YAAE,eAC3C,IAAM2kQ,EAAWrmQ,iBAAOrV,KAAK4M,QAASmK,YAAE,cACxC/W,KAAK27Q,gBAAkB9qK,EAAKxrG,QAAQ81Q,aACpCn7Q,KAAK47Q,oBAAsBvmQ,iBAAOqmQ,EAAU3kQ,YAAE,iBAC9C/W,KAAK47Q,oBAAoBz2Q,KAAO,WAChCnF,KAAK47Q,oBAAoB3tL,QAAUjuF,KAAK27Q,cACxC37Q,KAAK47Q,oBAAoB13K,UAAY,EACrClkG,KAAK67Q,iCACL77Q,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK47Q,oBAAqB,SAAS,kBAAM,EAAKE,8BACzF97Q,KAAK+7Q,aAAe1mQ,iBAAOqmQ,EAAU3kQ,YAAE,eAAiBogQ,EAAoB6E,cAC5Eh8Q,KAAK+7Q,aAAa73K,UAAY,EAC9BlkG,KAAK+7Q,aAAa9pP,MAAQ/yB,aAAS,QAAS,SAC5Cc,KAAKi8Q,8BAAgCprK,EAAKxrG,QAAQ42Q,8BAClDnnP,EAAMq9O,YAAYnyQ,KAAKk8Q,iBAAkBl8Q,KAAMA,KAAKkd,aACpDld,KAAKiiI,cAAcpxB,EAAKxrG,S,yCAE5B,WAAgB,OAAOrF,KAAK+hK,W,mBAC5B,WAAgB,OAAO/hK,KAAK+6Q,W,wBAC5B,WAAqB,OAAO/6Q,KAAK27Q,gB,2BACjC,SAAct2Q,GACNA,EAAQwzQ,yBACR74Q,KAAKgnO,UAGLhnO,KAAK+mO,SAE2B,qBAAzB1hO,EAAQ81Q,eACfn7Q,KAAK27Q,gBAAkBt2Q,EAAQ81Q,aAC/Bn7Q,KAAK47Q,oBAAoB3tL,QAAUjuF,KAAK27Q,cACxC37Q,KAAK67Q,kCAE0C,qBAAxCx2Q,EAAQqhO,8BACf1mO,KAAK0mO,4BAA8BrhO,EAAQqhO,6BAE/C1mO,KAAK6wG,KAAK0kK,WACVv1Q,KAAKoqN,SACApqN,KAAK0mO,6BACN1mO,KAAKm8Q,eAAe,M,oBAG5B,WAAS,WACL,IAAIn8Q,KAAK+hK,SAAT,CAGA,IAAMq6G,EAAep8Q,KAAK6mO,mBAAmBrtN,IAAI,IAAI4sJ,IAAWpmK,KAAKi8D,KAAK6sK,iBAAkB,YACtFzD,EAAY9tM,IAAMuC,MAAMsiP,EAAaznQ,OACtCqa,QAAO,SAAAruB,GAAC,OAAKokO,YAAepkO,EAAE/C,SAAW+C,EAAE/C,SAAW,EAAKg+Q,uBAC3D5sP,QAAO,SAAAruB,GAAC,MAAc,SAAVA,EAAErC,MAAmB,SAASuY,KAAKlW,EAAErC,QACjD8jB,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,MACnCquB,OAAOhvB,KAAKi8Q,+BAAkC,kBAAM,IACpDjtP,QAAO,kBAAM,EAAK03M,6BAA+B,EAAKC,aACtD33M,QAAO,SAAAruB,GAAC,OAAK,EAAK+rO,2BAA2BxF,+BAA+BvmO,MAAsB,KAAdA,EAAE+Y,SAAgD,KAAd/Y,EAAE+Y,SAA8C,KAAd/Y,EAAE+Y,SAAgD,KAAd/Y,EAAE+Y,WAAuC,EAAK+mB,QAAQ1iC,OAAS,GAAK,EAAK4oO,aAA8B,IAAdhmO,EAAE+Y,SAA4C,IAAd/Y,EAAE+Y,WAAmC/Y,EAAEyY,SAAWzY,EAAE2Y,UAAY3Y,EAAE4Y,SAA2B,IAAd5Y,EAAE+Y,UAAkC+tB,KAAe9mC,EAAEyY,SAAWzY,EAAE4Y,QAAW5Y,EAAE2Y,WAAa3Y,EAAE0Y,YACpe1C,SAAQ,SAAAhW,GAAOA,EAAEwT,kBAAmBxT,EAAEsT,oBACtCU,MACC0nQ,EAAer8Q,KAAK6mO,mBAAmBrtN,IAAI,IAAI4sJ,IAAWpmK,KAAK+7Q,aAAc,UACnFxkP,IAAMuC,MAAMvC,IAAM6B,IAAIisM,EAAWg3C,EAAa1nQ,QACzCA,MAAM3U,KAAKm8Q,eAAgBn8Q,KAAMA,KAAK6mO,oBAC3C7mO,KAAKgvB,OAAOyR,QAAU,GACtBzgC,KAAK6wG,KAAK0kK,WACVv1Q,KAAKoqN,SACLpqN,KAAK+hK,UAAW,EAChB/hK,KAAK2mO,WAAY,K,qBAErB,WACS3mO,KAAK+hK,WAGV/hK,KAAK4M,QAAQ9H,SACb9E,KAAK6mO,mBAAmBtpN,QACxBvd,KAAK6wG,KAAK0kK,WACVv1Q,KAAKoqN,SACLpqN,KAAK+hK,UAAW,EAChB/hK,KAAK2mO,WAAY,K,4BAErB,SAAehmO,GACM,kBAANA,EACPX,KAAKonO,QAAQzmO,GAERA,aAAa2oO,YAA4B,IAAd3oO,EAAE+Y,SAA6C,IAAd/Y,EAAE+Y,UAAkC+tB,KAAc9mC,EAAEyY,OAASzY,EAAE2Y,SAChItZ,KAAKonO,QAAQ,IAEM,IAAdzmO,EAAE+Y,QACP1Z,KAAKonO,QAAgC,IAAxBpnO,KAAKygC,QAAQ1iC,OAAe,GAAKiC,KAAKygC,QAAQ0I,OAAO,EAAGnpC,KAAKygC,QAAQ1iC,OAAS,IAG3FiC,KAAKonO,QAAQpnO,KAAKygC,QAAU9/B,EAAE6iK,aAAallK,O,qBAGnD,SAAQmiC,GACJ,IAAMjxB,EAAYxP,KAAKi8D,KAAK6sK,iBACxBroM,IAAYzgC,KAAK4M,QAAQq4N,cACzBz1N,EAAU6F,OAAOrV,KAAK4M,UAEhB6zB,GAAWzgC,KAAK4M,QAAQq4N,gBAC9BjlO,KAAK4M,QAAQ9H,SACb9E,KAAK6wG,KAAKs4H,YAEdnpO,KAAK+6Q,SAAWt6O,EAChBzgC,KAAKu7Q,oBAAoBtmQ,KAAKwrB,GAC9BzgC,KAAKgvB,OAAOyR,QAAUA,EACtBzgC,KAAK6wG,KAAK0kK,WACN90O,GACAzgC,KAAK6wG,KAAKq1H,UAAU,GAAG,OAAMrsN,GAAW,SAAAjV,GAAI,OAAKm7I,KAAWupC,UAAU1kL,EAAKguQ,eAE/E,IAAM51O,EAAQh9B,KAAK6wG,KAAKi1H,WACxB,GAAI9oM,EAAMj/B,OAAS,EAAG,CAClB,IAAMwM,EAAUyyB,EAAM,GACoB,OAAtCh9B,KAAK6wG,KAAKyrK,eAAe/xQ,IACzBvK,KAAK6wG,KAAKo1H,OAAO17N,EAAS,IAGlCvK,KAAKoqN,SACA3pL,IACDzgC,KAAK2mO,WAAY,K,yBAGzB,WAAc,WACJn3N,EAAYxP,KAAKi8D,KAAK6sK,iBACpB78N,EAASU,iCAAuB6C,GAAhCvD,KACFswQ,EAAiB/sQ,EAAU/E,YAC3B+xQ,EAAoBD,EAAiB,EACrC1xQ,EAAQ7K,KAAK4M,QAAQnC,YACrByS,EAAc,IAAIhE,IACpBoiQ,EAAoBt7Q,KAAKs7Q,kBACvBmB,EAAiB,WACnB,OAAQnB,GACJ,IAAK,KACD,EAAK1uQ,QAAQF,MAAMX,IAAnB,MACA,EAAKa,QAAQF,MAAMT,KAAnB,MACA,MACJ,IAAK,KACD,EAAKW,QAAQF,MAAMX,IAAnB,MACA,EAAKa,QAAQF,MAAMT,KAAnB,UAA6BswQ,EAAiB1xQ,EAAQ,EAAtD,QAyBZ4xQ,IACAz8Q,KAAK4M,QAAQiC,UAAU/J,OAAOw2Q,GAC9Bt7Q,KAAK4M,QAAQiC,UAAU2K,IAAI,YAC3B0D,EAAY1D,IAAIrB,aAAa,kBAAM,EAAKvL,QAAQiC,UAAU/J,OAAO,gBACjEoY,EAAY1D,IAAI5T,gCAAsBwE,SAAU,YAAY,SAAAzJ,GAAC,OAzB1C,SAACgU,GAChBA,EAAMV,iBACN,IAAMgI,EAAItH,EAAMm5K,QAAU7hL,EACtB0I,EAAMurO,eACNvrO,EAAMurO,aAAaw8B,WAAa,QAGhCpB,EADAr/P,EAAIugQ,EACgB,KAGA,KAExBC,IAa6DnyC,CAAW3pO,OAC5Euc,EAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,WAAW,kBAX3D,EAAK0uQ,kBAAoBA,EACzB,EAAK1uQ,QAAQ4J,UAAb,kCAAoD,EAAK8kQ,mBACzD,EAAK1uQ,QAAQF,MAAMX,IAAM,GACzB,EAAKa,QAAQF,MAAMT,KAAO,QAC1BmM,YAAQ8E,OAQZu5O,IAAUC,uBAAyB,IAAIF,IAAgB,aACvDt5O,EAAY1D,IAAIrB,aAAa,kBAAMs+O,IAAUC,4BAAyB78O,Q,8BAE1E,WACS7Z,KAAK+hK,UAAoC,IAAxB/hK,KAAKygC,QAAQ1iC,SAGnCiC,KAAK6wG,KAAK0kK,WACVv1Q,KAAKoqN,Y,qCAET,WACIpqN,KAAK6wG,KAAKoxB,cAAc,CAAEk5I,aAAcn7Q,KAAK47Q,oBAAoB3tL,UACjEjuF,KAAK6wG,KAAK0kK,WACVv1Q,KAAK6wG,KAAKs4H,WACVnpO,KAAKoqN,SACLpqN,KAAK67Q,mC,4CAET,WAC2B,QAKlB,IALD77Q,KAAKm7Q,eACL,EAAAn7Q,KAAK47Q,oBAAoB/sQ,WAAU/J,OAAnC,oBAA6CoyQ,EAAwBxnD,mBACrE,EAAA1vN,KAAK47Q,oBAAoB/sQ,WAAU2K,IAAnC,oBAA0Cy9P,EAAuBvnD,kBACjE1vN,KAAK47Q,oBAAoB3pP,MAAQ/yB,aAAS,yBAA0B,6BAGpE,EAAAc,KAAK47Q,oBAAoB/sQ,WAAU/J,OAAnC,oBAA6CmyQ,EAAuBvnD,mBACpE,EAAA1vN,KAAK47Q,oBAAoB/sQ,WAAU2K,IAAnC,oBAA0C09P,EAAwBxnD,kBAClE1vN,KAAK47Q,oBAAoB3pP,MAAQ/yB,aAAS,wBAAyB,4B,oBAG3E,WACI,IAAMy9Q,EAAY38Q,KAAKgvB,OAAO4tP,WAAa,GAAgC,IAA3B58Q,KAAKgvB,OAAO6tP,WACxD78Q,KAAKygC,SAAWzgC,KAAK6wG,KAAKxrG,QAAQ81Q,cAAgBwB,GAClD38Q,KAAKw7Q,eAAe/uG,YAAcvtK,aAAS,QAAS,qBACpDc,KAAK4lG,QAAS,IAGd5lG,KAAKw7Q,eAAe5lQ,UAAY,GAChC5V,KAAK4lG,QAAS,GAElB5lG,KAAK4M,QAAQiC,UAAU8vI,OAAO,aAAcg+H,GAC5C38Q,KAAK4M,QAAQqlB,MAAQ/yB,aAAS,QAAS,kCAAmCc,KAAKgvB,OAAO6tP,WAAY78Q,KAAKgvB,OAAO4tP,YAC9G58Q,KAAKy7Q,aAAahvG,YAAczsK,KAAKygC,QAAQ1iC,OAAS,GAAK,SAAMiC,KAAKygC,QAAQ0I,OAAOnpC,KAAKygC,QAAQ1iC,OAAS,IAAMiC,KAAKygC,QACtHzgC,KAAKq7Q,uBAAuBpmQ,KAAKjV,KAAK4lG,U,8BAE1C,SAAiBhhG,GACb,QAAK5E,KAAKguF,SAAYhuF,KAAKygC,UAAWzgC,KAAKm7Q,gBAGvCn7Q,KAAKgvB,OAAO4tP,WAAa,GAAK58Q,KAAKgvB,OAAO6tP,YAAc,IAGpD98H,KAAWupC,UAAU1kL,EAAKguQ,e,qBAEtC,WACQ5yQ,KAAK+hK,WACL/hK,KAAK4M,QAAQ9H,SACb9E,KAAK6mO,mBAAmBzuN,UACxBpY,KAAK+hK,UAAW,EAChB/hK,KAAK2mO,WAAY,GAErB3mO,KAAKu7Q,oBAAoBnjQ,UACzBA,YAAQpY,KAAKkd,iB,KAGrB,SAAS4/P,GAAiBnoQ,GACtB,IAAI/W,EAASyzQ,EAAqB0L,QAOlC,OANIhuQ,6BAAmB4F,EAAM6uJ,aAAa5lK,OAAQ,oBAAqB,iBACnEA,EAASyzQ,EAAqB2L,QAEzBjuQ,6BAAmB4F,EAAM6uJ,aAAa5lK,OAAQ,qBAAsB,mBACzEA,EAASyzQ,EAAqB4L,SAE3B,CACHz5G,aAAc7uJ,EAAM6uJ,aACpBj5J,QAASoK,EAAMpK,QAAUoK,EAAMpK,QAAQA,QAAU,KACjD3M,UAGR,SAASs/Q,GAAIt4Q,EAAMqT,GACfA,EAAGrT,GACHA,EAAK2Q,SAASoB,SAAQ,SAAAlB,GAAK,OAAIynQ,GAAIznQ,EAAOwC,M,IAMxC4rN,G,WACF,WAAYs5C,EAA8Bv4C,GAAkB,oBACxD5kO,KAAKm9Q,6BAA+BA,EACpCn9Q,KAAK4kO,iBAAmBA,EACxB5kO,KAAKy6G,MAAQ,GACbz6G,KAAK8tC,aAAe,IAAIr5B,IACxBzU,KAAK+tC,YAAc/tC,KAAK8tC,aAAan5B,M,yCAEzC,WAII,OAHK3U,KAAKo9Q,WACNp9Q,KAAKo9Q,SAAWp9Q,KAAKq9Q,iBAElBr9Q,KAAKo9Q,W,iBAEhB,SAAI3iK,EAAO+oD,GACP,IAAIx+J,IAC0B,QAAvBA,EAAKw+J,SAAiC,IAAPx+J,OAAgB,EAASA,EAAGs4Q,eAAiBtkP,YAAOh5B,KAAKy6G,MAAOA,IAGtGz6G,KAAKmkO,KAAK1pH,GAAO,EAAO+oD,K,kBAE5B,SAAK/oD,EAAO8iK,EAAQ/5G,GAIhB,GAHAxjK,KAAKy6G,MAAL,YAAiBA,GACjBz6G,KAAKiX,cAAW4C,EAChB7Z,KAAKo9Q,cAAWvjQ,GACX0jQ,EAAQ,CACT,IAAMC,EAAOx9Q,KACbA,KAAK8tC,aAAa74B,KAAK,CAAMgC,eAAa,OAAOumQ,EAAK/qP,OAAU+wI,oB,iBAGxE,WAII,OAHKxjK,KAAKiX,WACNjX,KAAKiX,SAAWjX,KAAKy6G,MAAMr4F,KAAI,SAAAxd,GAAI,OAAIA,EAAK2F,YAEhD,YAAWvK,KAAKiX,Y,sBAEpB,WACI,OAAOjX,KAAKy6G,Q,iBAEhB,SAAI71G,GACA,OAAO5E,KAAKy9Q,QAAQn7N,IAAI19C,K,8BAE5B,YAAkD,WAA/B0wQ,EAA+B,EAA/BA,cAAeP,EAAgB,EAAhBA,aAC9B,IAAK/0Q,KAAK4kO,iBAAkB,CACxB,IAAMp9L,EAAMxnC,KAAKq9Q,gBACXlI,EAAQ,SAACvwQ,GAAD,OAAU4iC,EAAG,OAAQ5iC,IAGnC,OAFAmwQ,EAAap+P,SAAQ,SAAA/R,GAAI,OAAIs4Q,GAAIt4Q,EAAMuwQ,WACvCn1Q,KAAKwnC,IAAL,YAAaA,EAAIhqB,WAGrB,IAAMkgQ,EAAoB,IAAIrgQ,IACxBsgQ,EAAsB,SAAC/4Q,GAAD,OAAU84Q,EAAkBlkQ,IAAI,EAAKorN,iBAAiBrxG,MAAM3uH,EAAK2F,SAASkO,aACtGs8P,EAAap+P,SAAQ,SAAA/R,GAAI,OAAIs4Q,GAAIt4Q,EAAM+4Q,MACvC,IAAMC,EAAmB,IAAIr2O,IACvBs2O,EAAuB,SAACj5Q,GAAD,OAAUg5Q,EAAiBp2O,IAAI,EAAKo9L,iBAAiBrxG,MAAM3uH,EAAK2F,SAASkO,WAAY7T,IAClH0wQ,EAAc3+P,SAAQ,SAAA/R,GAAI,OAAIs4Q,GAAIt4Q,EAAMi5Q,MACxC,IAd8C,EAcxCpjK,EAAQ,GAdgC,cAe3Bz6G,KAAKy6G,OAfsB,IAe9C,2BAA+B,KAApB71G,EAAoB,QACrB2R,EAAKvW,KAAK4kO,iBAAiBrxG,MAAM3uH,EAAK2F,SAASkO,WAErD,GADmBilQ,EAAkBp7N,IAAI/rC,GAIpC,CACD,IAAMunQ,EAAeF,EAAiBnrP,IAAIlc,GACtCunQ,GACArjK,EAAMl3G,KAAKu6Q,QALfrjK,EAAMl3G,KAAKqB,IAnB2B,8BA4B9C,GAAI5E,KAAKy6G,MAAM18G,OAAS,GAAsB,IAAjB08G,EAAM18G,OAAc,CAC7C,IAAM6G,EAAO5E,KAAKm9Q,+BACdv4Q,GACA61G,EAAMl3G,KAAKqB,GAGnB5E,KAAKmkO,KAAK1pH,GAAO,K,2BAErB,WACI,IADY,EACNjzE,EAAM,IAAInqB,IADJ,cAEOrd,KAAKy6G,OAFZ,IAEZ,2BAA+B,KAApB71G,EAAoB,QAC3B4iC,EAAIhuB,IAAI5U,IAHA,8BAKZ,OAAO4iC,M,KAGTu2O,G,kDACF,WAAYlxL,EAAMgkB,GAAM,kCACpB,cAAMhkB,IACDgkB,KAAOA,EAFQ,E,iDAIxB,SAAclwG,GACV,IAAIokO,YAAepkO,EAAE6iK,aAAa5lK,UAAWonO,YAAerkO,EAAE6iK,aAAa5lK,QAA3E,CAGA,IAAMgH,EAAOjE,EAAE4J,QACf,IAAK3F,EACD,4EAA2BjE,GAE/B,GAAIX,KAAKkoO,4BAA4BvnO,IAAMX,KAAKioO,6BAA6BtnO,GACzE,4EAA2BA,GAE/B,IAAM/C,EAAS+C,EAAE6iK,aAAa5lK,OACxBogR,EAAYpgR,EAAOiR,UAAUC,SAAS,sBACpClR,EAAOiR,UAAUC,SAAS,sBAAwBlR,EAAOiR,UAAUC,SAAS,gBAAkBnO,EAAE6iK,aAAa8wD,QAAU,GAC3H2pD,GAA2B,EAO/B,IALIA,EAD8C,oBAAvCj+Q,KAAK6wG,KAAKotK,yBACUj+Q,KAAK6wG,KAAKotK,yBAAyBr5Q,EAAK2F,WAGtCvK,KAAK6wG,KAAKotK,4BAEVD,GAAuC,IAA1Br9Q,EAAE6iK,aAAamqB,OACzD,4EAA2BhtL,GAE/B,IAAKX,KAAK6wG,KAAKqtK,qBAAiD,IAA1Bv9Q,EAAE6iK,aAAamqB,OACjD,4EAA2BhtL,GAE/B,GAAIiE,EAAK+sQ,YAAa,CAClB,IAAM78O,EAAQ90B,KAAK6wG,KAAK/7E,MAClBhc,EAAWgc,EAAM+iP,gBAAgBjzQ,GACjCgxQ,EAAYj1Q,EAAE6iK,aAAapqJ,OAGjC,GAFApZ,KAAK6wG,KAAK62H,SAAS,CAAC5uN,IACpBgc,EAAMijP,aAAaj/P,OAAUe,EAAW+7P,GACpCqI,GAA4BD,EAC5B,OAGR,qEAAoBr9Q,M,2BAExB,SAAcA,IACQA,EAAE6iK,aAAa5lK,OAAOiR,UAAUC,SAAS,sBACzC9O,KAAK6wG,KAAKqtK,qBAG5B,qEAAoBv9Q,O,GAjDcynO,KAwDpC+1C,G,kDACF,WAAYl7C,EAAMzzN,EAAWm8N,EAAiBjB,EAAW0zC,EAAYC,EAAgBC,EAAaj5Q,GAAS,kCACvG,cAAM49N,EAAMzzN,EAAWm8N,EAAiBjB,EAAWrlO,IAC9C+4Q,WAAaA,EAClB,EAAKC,eAAiBA,EACtB,EAAKC,YAAcA,EAJoF,E,yDAM3G,SAAsBj5Q,GAClB,OAAO,IAAI04Q,GAA4B/9Q,KAAMqF,EAAQwrG,Q,oBAEzD,SAAOzwF,EAAO4nD,GAA4B,WAAf/wD,EAAe,uDAAJ,GAElC,GADA,8DAAamJ,EAAO4nD,EAAa/wD,GACT,IAApBA,EAASlZ,OAAb,CAGA,IAEI+xM,EAFEyuE,EAAkB,GAClBC,EAAsB,GAE5BvnQ,EAASN,SAAQ,SAAC/R,EAAM3F,GAChB,EAAKm/Q,WAAW97N,IAAI19C,IACpB25Q,EAAgBh7Q,KAAK6c,EAAQnhB,GAE7B,EAAKo/Q,eAAe/7N,IAAI19C,IACxB45Q,EAAoBj7Q,KAAK6c,EAAQnhB,GAEjC,EAAKq/Q,YAAYh8N,IAAI19C,KACrBkrM,EAAS1vL,EAAQnhB,MAGrBs/Q,EAAgBxgR,OAAS,GACzB,gEAAeipE,YAAS,GAAD,mBAAC,kEAAyBu3M,KAEjDC,EAAoBzgR,OAAS,GAC7B,oEAAmBipE,YAAS,GAAD,mBAAC,sEAA6Bw3M,KAEvC,kBAAX1uE,GACP,iEAAgBA,M,sBAGxB,SAAS8zB,EAASpgE,GAA+B,WAAjBi7G,EAAiB,wDAC7C,gEAAe76C,EAASpgE,GACnBi7G,GACDz+Q,KAAKo+Q,WAAW52O,IAAIo8L,EAAQxhN,KAAI,SAAAtkB,GAAC,OAAI,EAAKyM,QAAQzM,MAAK0lK,K,0BAG/D,SAAaogE,EAASpgE,GAA+B,WAAjBi7G,EAAiB,wDACjD,oEAAmB76C,EAASpgE,GACvBi7G,GACDz+Q,KAAKq+Q,eAAe72O,IAAIo8L,EAAQxhN,KAAI,SAAAtkB,GAAC,OAAI,EAAKyM,QAAQzM,MAAK0lK,K,uBAGnE,SAAUvkK,GAAwB,IAAjBw/Q,EAAiB,wDAC9B,iEAAgBx/Q,GACXw/Q,IACoB,qBAAVx/Q,EACPe,KAAKs+Q,YAAY92O,IAAI,IAGrBxnC,KAAKs+Q,YAAY92O,IAAI,CAACxnC,KAAKuK,QAAQtL,U,GA1DxBysO,KA+DdgzC,GAAb,WACI,WAAYz7C,EAAMzzN,EAAWg3N,EAAUkE,GAA0B,WAAfjlO,EAAe,uDAAJ,GAAI,oBAC7DzF,KAAKyF,SAAWA,EAChBzF,KAAK4rO,cAAgB,IAAItvM,IACzBt8B,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAK2+Q,gBAAkB,IAAIlqQ,IAC3BzU,KAAKi7Q,eAAiBj7Q,KAAK2+Q,gBAAgBhqQ,MAC3C3U,KAAK4+Q,oBAAsB,IAAInqQ,IAC/B,IAAMoqQ,EAAe,IAAI9F,GAAqBvyC,GACxCs4C,EAAgC,IAAItiP,IACpCuiP,EAAyB,IAAIviP,IAC7B68O,EAAc,IAAIH,GAAgB6F,EAAuBpqQ,OAC/D3U,KAAK0qO,UAAYA,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAIi4Q,GAAaj4Q,GAAG,kBAAM,EAAK2zB,QAAOgqP,EAA8BnqQ,MAAO0kQ,EAAa5zQ,MAX/D,MAezDupB,EAfyD,cAY/ChvB,KAAK0qO,WAZ0C,IAY7D,2BAA8B,KAArBvpO,EAAqB,QAC1BnB,KAAKkd,YAAY1D,IAAIrY,IAboC,8BAgBzDsE,EAAS8gO,kCACTv3M,EAAS,IAAI2rP,GAAW36Q,KAAMyF,EAAS8gO,gCAAiC9gO,EAASupB,QACjFvpB,EAAWrH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIqF,GAAW,CAAEupB,OAAQA,IAChEhvB,KAAKkd,YAAY1D,IAAIwV,IAEzBhvB,KAAKg9B,MAAQ,IAAI6mM,IAAM,kBAAM,EAAK5nK,KAAKmyK,qBAAqB,KAAI3oO,EAASm/N,kBACzE5kO,KAAKm/E,UAAY,IAAI0kJ,IAAM,kBAAM,EAAK5nK,KAAKmvK,sBAAsB,KAAI3lO,EAASm/N,kBAC9E5kO,KAAK8vM,OAAS,IAAI+zB,IAAM,kBAAM,EAAK5nK,KAAK+iN,qBAAoBv5Q,EAASm/N,kBACrE5kO,KAAKi8D,KAAO,IAAIkiN,GAAal7C,EAAMzzN,EAAWqvQ,EAAc7+Q,KAAK0qO,UAAW1qO,KAAKg9B,MAAOh9B,KAAKm/E,UAAWn/E,KAAK8vM,OAAQ1xM,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIo4Q,IAAc,kBAAM,EAAK1jP,QAAOrvB,IAAY,CAAEorG,KAAM7wG,QACzMA,KAAK80B,MAAQ90B,KAAKi/Q,YAAYh8C,EAAMjjO,KAAKi8D,KAAMx2D,GAC/Cq5Q,EAA8B1vL,MAAQpvF,KAAK80B,MAAMi9O,yBACjD,IAAMmN,EAAmB3nP,IAAM5gB,QAAQ3W,KAAK80B,MAAMq9O,aAAa,SAAAxxQ,GAC3D,EAAKirO,cAAc6B,cAAa,WAC5B,EAAKzwM,MAAMkiP,iBAAiBv+Q,GAC5B,EAAKw+E,UAAU+/L,iBAAiBv+Q,SAqBxC,GAjBAu+Q,GAAiB,kBAAM,OAAM,KAAMl/Q,KAAKkd,aAKxC6hQ,EAAuB3vL,MAAQ73D,IAAMuC,MAAMvC,IAAM6B,IAAI8lP,EAAkBl/Q,KAAKg9B,MAAM+Q,YAAa/tC,KAAKm/E,UAAUpxC,cACzG3V,UAAS,kBAAM,OAAM,GACrBhW,KAAI,WACL,IADW,EACLolB,EAAM,IAAInqB,IADL,cAEQ,EAAK2f,MAAMmiP,YAFnB,IAEX,2BAA0C,KAA/Bv6Q,EAA+B,QACtC4iC,EAAIhuB,IAAI5U,IAHD,kDAKQ,EAAKu6E,UAAUggM,YALvB,IAKX,2BAA8C,KAAnCv6Q,EAAmC,QAC1C4iC,EAAIhuB,IAAI5U,IAND,8BAQX,mBAAW4iC,EAAIhqB,aAChB7I,OAC8B,IAA7BlP,EAAS2kO,gBAA2B,CACpC,IAAM/E,EAAY9tM,IAAMuC,MAAM95B,KAAKi8D,KAAKopK,WACnCr2M,QAAO,SAAAruB,GAAC,OAAKokO,YAAepkO,EAAE/C,WAC9BwkB,KAAI,SAAAzhB,GAAC,OAAI,IAAIwF,IAAsBxF,MACxC0kO,EAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAAgCugB,GAAGj6B,KAAKo/Q,YAAap/Q,KAAMA,KAAKkd,aACxFmoN,EAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAAiCugB,GAAGj6B,KAAKq/Q,aAAcr/Q,KAAMA,KAAKkd,aAC1FmoN,EAAUr2M,QAAO,SAAAruB,GAAC,OAAkB,KAAdA,EAAE+Y,WAA4BugB,GAAGj6B,KAAKs/Q,QAASt/Q,KAAMA,KAAKkd,aAEpF,GAAIzX,EAAS8gO,gCAAiC,CAC1C,IAAMC,EAAW/gO,EAASinO,4BAA8BrG,IACxDrmO,KAAKu/Q,qBAAuB,IAAInE,GAAqBp7Q,KAAMA,KAAK80B,MAAO90B,KAAKi8D,KAAMjtC,EAAQw3M,GAC1FxmO,KAAKw/Q,sBAAwB,SAAA56Q,GAAI,OAAI,EAAK26Q,qBAAqBE,iBAAiB76Q,IAChF5E,KAAKkd,YAAY1D,IAAIxZ,KAAKu/Q,sBAE9Bv/Q,KAAK+pO,aAAex6N,2BAAiBvP,KAAKi8D,KAAK6sK,kBAC/C9oO,KAAK8oO,iBAAiBj6N,UAAU8vI,OAAO,SAAU3+I,KAAKyF,SAASu0Q,qBAAuBlB,GAAmB4G,QAnEjH,kDAqEI,WAAyB,OAAO1/Q,KAAK4rO,cAAcuB,UAAUntO,KAAKg9B,MAAM+Q,eArE5E,gCAsEI,WAA6B,OAAO/tC,KAAK4rO,cAAcuB,UAAUntO,KAAKm/E,UAAUpxC,eAtEpF,2BAuEI,WAAwB,OAAOxW,IAAMnV,IAAIpiB,KAAKi8D,KAAK0sK,gBAAiBm0C,MAvExE,qBAwEI,WAAkB,OAAOvlP,IAAMnV,IAAIpiB,KAAKi8D,KAAKqsK,UAAWw0C,MAxE5D,sBAyEI,WAAmB,OAAO98Q,KAAKi8D,KAAKvnD,aAzExC,oCA0EI,WAAiC,OAAO1U,KAAK80B,MAAMi9O,2BA1EvD,+BA2EI,WAA4B,MAAoD,qBAAtC/xQ,KAAKyF,SAASy4Q,qBAA6Cl+Q,KAAKyF,SAASy4Q,sBA3EvH,oCA4EI,WAAiC,MAAyD,qBAA3Cl+Q,KAAKyF,SAASw4Q,0BAAkDj+Q,KAAKyF,SAASw4Q,2BA5EjI,wBA6EI,WAAqB,OAAOj+Q,KAAKi8D,KAAK8vK,eA7E1C,2BA8EI,WAAkC,IAApBlG,EAAoB,uDAAJ,GAC1B7lO,KAAKyF,SAAWrH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIJ,KAAKyF,UAAWogO,GADlC,oBAEP7lO,KAAK0qO,WAFE,IAE9B,2BAAuC,KAA5BxG,EAA4B,QACnCA,EAASjiG,cAAc4jG,IAHG,8BAK9B7lO,KAAKi8D,KAAKgmE,cAAc7jI,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIJ,KAAKyF,UAAW,CAAEqhO,yBAA0B9mO,KAAKyF,SAASozQ,4BAC9G74Q,KAAKu/Q,sBACLv/Q,KAAKu/Q,qBAAqBt9I,cAAcjiI,KAAKyF,UAEjDzF,KAAK4+Q,oBAAoB3pQ,KAAKjV,KAAKyF,UACnCzF,KAAK8oO,iBAAiBj6N,UAAU8vI,OAAO,SAAU3+I,KAAKyF,SAASu0Q,qBAAuBlB,GAAmB4G,UAxFjH,mBA0FI,WACI,OAAO1/Q,KAAKyF,WA3FpB,4BA8FI,WACI,OAAOzF,KAAKi8D,KAAK6sK,mBA/FzB,qBAiGI,WACI,OAAO9oO,KAAKi8D,KAAK9vD,WAlGzB,IAoGI,SAAcA,GACVnM,KAAKi8D,KAAK9vD,UAAYA,IArG9B,sBAuGI,WACInM,KAAKi8D,KAAKktK,aAxGlB,oBA0GI,SAAOr+N,EAAQD,GACX7K,KAAKi8D,KAAK4+G,OAAO/vK,EAAQD,KA3GjC,mBA6GI,SAAMovC,GACF,IAAMqwI,EAAS,IAAH,OAAOtqL,KAAKi8D,KAAKswK,OACvBrtL,EAAU,GACZjF,EAAOnvB,yBACPo0B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,iEAA2FA,EAA3F,sEAA+JrwI,EAAOnvB,uBAAuBpH,YAAY,IAAzM,QACAw7B,EAAQ37C,KAAR,sBAA4B+mL,EAA5B,qEAA+FrwI,EAAOnvB,uBAAtG,SAEJ9qB,KAAK+pO,aAAat9D,YAAcvtH,EAAQviC,KAAK,MAC7C3c,KAAKi8D,KAAKvvD,MAAMutC,KArHxB,sBAuHI,SAASnhC,GAA6B,IAAnB88P,EAAmB,wDAClC,OAAO51Q,KAAK80B,MAAMijP,aAAaj/P,GAAU,EAAM88P,KAxHvD,oBA0HI,SAAO98P,GAA6B,IAAnB88P,EAAmB,wDAChC,OAAO51Q,KAAK80B,MAAMijP,aAAaj/P,GAAU,EAAO88P,KA3HxD,2BA6HI,SAAc98P,GACV,OAAO9Y,KAAK80B,MAAM6qP,cAAc7mQ,KA9HxC,4BAgII,SAAeA,EAAU64P,GACrB,OAAO3xQ,KAAK80B,MAAMugP,eAAev8P,EAAU64P,KAjInD,yBAmII,SAAY74P,GACR,OAAO9Y,KAAK80B,MAAMgjP,YAAYh/P,KApItC,sBAsII,WACI9Y,KAAK2+Q,gBAAgB1pQ,UAAK4E,GAC1B7Z,KAAK80B,MAAMygP,aAxInB,0BA0II,SAAat+P,EAAUusJ,GAAc,WAC3B/oD,EAAQxjG,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKm0B,MAAMsjP,QAAQz3Q,MACnDX,KAAKm/E,UAAU33C,IAAIizE,EAAO+oD,GAC1B,IAAMogE,EAAU3sN,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKm0B,MAAMwjP,aAAa33Q,MAAIquB,QAAO,SAAAlxB,GAAC,OAAIA,GAAK,KAC/EkC,KAAKi8D,KAAK2/G,aAAagoD,EAASpgE,GAAc,KA9ItD,0BAgJI,WACI,OAAOxjK,KAAKm/E,UAAU1sD,QAjJ9B,sBAmJI,SAASxb,EAAUusJ,GAAc,WACvB/oD,EAAQxjG,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKm0B,MAAMsjP,QAAQz3Q,MACnDX,KAAKg9B,MAAMwK,IAAIizE,EAAO+oD,GACtB,IAAMogE,EAAU3sN,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKm0B,MAAMwjP,aAAa33Q,MAAIquB,QAAO,SAAAlxB,GAAC,OAAIA,GAAK,KAC/EkC,KAAKi8D,KAAKyrK,SAAS9D,EAASpgE,GAAc,KAvJlD,uBAyJI,WAAkF,IAAxEjjK,EAAwE,uDAApE,EAAG+gE,EAAiE,wDAAnDkiG,EAAmD,uCAArCx0I,EAAqC,uDAA5BhvB,KAAKw/Q,sBACvDx/Q,KAAKi8D,KAAKiqK,UAAU3lO,EAAG+gE,EAAMkiG,EAAcx0I,KA1JnD,sBA4JI,WACI,OAAOhvB,KAAKg9B,MAAMvK,QA7J1B,oBA+JI,SAAO3Z,EAAU+1N,GACb7uO,KAAK80B,MAAM8qP,SAAS9mQ,GACpB,IAAM7Z,EAAQe,KAAK80B,MAAMwjP,aAAax/P,IACvB,IAAX7Z,GAGJe,KAAKi8D,KAAKgqK,OAAOhnO,EAAO4vO,KArKhC,4BA2KI,SAAe/1N,GACX,IAAM7Z,EAAQe,KAAK80B,MAAMwjP,aAAax/P,GACtC,OAAe,IAAX7Z,EACO,KAEJe,KAAKi8D,KAAKqgN,eAAer9Q,KAhLxC,yBAmLI,SAAY0B,GACRA,EAAEsT,iBACFtT,EAAEwT,kBACF,IAAMsmG,EAAQz6G,KAAKi8D,KAAKmyK,qBACxB,GAAqB,IAAjB3zH,EAAM18G,OAAV,CAGA,IAAM6G,EAAO61G,EAAM,GACb3hG,EAAW9Y,KAAK80B,MAAM+iP,gBAAgBjzQ,GAE5C,IADkB5E,KAAK80B,MAAMijP,aAAaj/P,GAAU,GACpC,CACZ,IAAM+mQ,EAAiB7/Q,KAAK80B,MAAMqjP,sBAAsBr/P,GACxD,IAAK+mQ,EACD,OAEJ,IAAMC,EAAkB9/Q,KAAK80B,MAAMwjP,aAAauH,GAChD7/Q,KAAKi8D,KAAKgqK,OAAO65C,GACjB9/Q,KAAKi8D,KAAKyrK,SAAS,CAACo4C,QApMhC,0BAuMI,SAAan/Q,GACTA,EAAEsT,iBACFtT,EAAEwT,kBACF,IAAMsmG,EAAQz6G,KAAKi8D,KAAKmyK,qBACxB,GAAqB,IAAjB3zH,EAAM18G,OAAV,CAGA,IAAM6G,EAAO61G,EAAM,GACb3hG,EAAW9Y,KAAK80B,MAAM+iP,gBAAgBjzQ,GAE5C,IADkB5E,KAAK80B,MAAMijP,aAAaj/P,GAAU,GACpC,CACZ,IAAKlU,EAAK2Q,SAAS0zI,MAAK,SAAAxzI,GAAK,OAAIA,EAAMk9P,WACnC,OAEJ,MAAuB3yQ,KAAKi8D,KAAK6pK,WAC3Bi6C,EADN,oBACuC,EACvC//Q,KAAKi8D,KAAKgqK,OAAO85C,GACjB//Q,KAAKi8D,KAAKyrK,SAAS,CAACq4C,QAxNhC,qBA2NI,SAAQp/Q,GACJA,EAAEsT,iBACFtT,EAAEwT,kBACF,IAAMsmG,EAAQz6G,KAAKi8D,KAAKmyK,qBACxB,GAAqB,IAAjB3zH,EAAM18G,OAAV,CAGA,IAAM6G,EAAO61G,EAAM,GACb3hG,EAAW9Y,KAAK80B,MAAM+iP,gBAAgBjzQ,GACtCgxQ,EAAYj1Q,EAAE6iK,aAAapqJ,OACjCpZ,KAAK80B,MAAMijP,aAAaj/P,OAAUe,EAAW+7P,MArOrD,qBAuOI,WACIx9P,YAAQpY,KAAKkd,aACbld,KAAKi8D,KAAK7jD,cAzOlB,KC74Ba4nQ,GAAb,WACI,WAAY/8C,EAAMp2I,GAAoB,IAAdxnF,EAAc,uDAAJ,GAAI,oBAClCrF,KAAKijO,KAAOA,EACZjjO,KAAK6xQ,QAAU,KACf7xQ,KAAKy6G,MAAQ,IAAIlzE,IACjBvnC,KAAKigR,gBAAkB,IAAI14O,IAC3BvnC,KAAK80B,MAAQ,IAAI88O,EAAe3uC,EAAMp2I,EAAM,KAAMxnF,GAClDrF,KAAKmyQ,YAAcnyQ,KAAK80B,MAAMq9O,YAC9BnyQ,KAAK+xQ,yBAA2B/xQ,KAAK80B,MAAMi9O,yBAC3C/xQ,KAAKiyQ,2BAA6BjyQ,KAAK80B,MAAMm9O,2BACzC5sQ,EAAQw3L,SACR78L,KAAK68L,OAAS,CACV16J,QADU,SACFj+B,EAAG5E,GACP,OAAO+F,EAAQw3L,OAAO16J,QAAQj+B,EAAEqG,QAASjL,EAAEiL,YAIvDvK,KAAK4kO,iBAAmBv/N,EAAQu/N,iBAjBxC,+CAmBI,SAAYr6N,GAAoD,IAA3CgL,EAA2C,uDAAhCwH,IAASukC,QAASj8C,EAAc,uDAAJ,GAClDyT,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzCvK,KAAKmgR,aAAarnQ,EAAU9Y,KAAKogR,sBAAsB7qQ,GAAWlQ,KArB1E,0BAuBI,SAAayT,GAAgD,WAAtCvD,EAAsC,uDAA3BwH,IAASukC,QAASj8C,EAAS,uCACnDg7Q,EAAmB,IAAIhjQ,IACvBijQ,EAAqB,IAAIjjQ,IACzB+2P,EAAkB,SAACxvQ,GACrB,IAAII,EACJ,GAAqB,OAAjBJ,EAAK2F,QAAT,CAGA,IAAMg2Q,EAAQ37Q,EAGd,GAFAy7Q,EAAiB7mQ,IAAI+mQ,EAAMh2Q,SAC3B,EAAKkwG,MAAMjzE,IAAI+4O,EAAMh2Q,QAASg2Q,GAC1B,EAAK37C,iBAAkB,CACvB,IAAMruN,EAAK,EAAKquN,iBAAiBrxG,MAAMgtJ,EAAMh2Q,SAASkO,WACtD6nQ,EAAmB9mQ,IAAIjD,GACvB,EAAK0pQ,gBAAgBz4O,IAAIjxB,EAAIgqQ,GAEE,QAAlCv7Q,EAAKK,EAAQ+uQ,uBAAoC,IAAPpvQ,GAAyBA,EAAGpF,KAAKyF,EAASk7Q,KAEnFlM,EAAkB,SAACzvQ,GACrB,IAAII,EACJ,GAAqB,OAAjBJ,EAAK2F,QAAT,CAGA,IAAMg2Q,EAAQ37Q,EAId,GAHKy7Q,EAAiB/9N,IAAIi+N,EAAMh2Q,UAC5B,EAAKkwG,MAAL,OAAkB8lK,EAAMh2Q,SAExB,EAAKq6N,iBAAkB,CACvB,IAAMruN,EAAK,EAAKquN,iBAAiBrxG,MAAMgtJ,EAAMh2Q,SAASkO,WACjD6nQ,EAAmBh+N,IAAI/rC,IACxB,EAAK0pQ,gBAAL,OAA4B1pQ,GAGD,QAAlCvR,EAAKK,EAAQgvQ,uBAAoC,IAAPrvQ,GAAyBA,EAAGpF,KAAKyF,EAASk7Q,KAEzFvgR,KAAK80B,MAAMvC,OAAX,sBAAsBzZ,GAAtB,CAAgC,IAAIi0G,OAAOyzJ,UAAWjrQ,EAAUnX,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAE+uQ,kBAAiBC,uBA1DrI,mCA4DI,WAAmD,WAA7Bp9P,EAA6B,uDAAlB8F,IAASukC,QAItC,OAHIthD,KAAK68L,SACL5lL,EAAW,YAAIA,GAAUnO,KAAK9I,KAAK68L,OAAO16J,QAAQi5B,KAAKp7D,KAAK68L,UAEzD9/K,IAASqF,IAAInL,GAAU,SAAAm/P,GAC1B,IAAIxxQ,EAAO,EAAK61G,MAAMhoF,IAAI2jP,EAAY7rQ,SACtC,IAAK3F,GAAQ,EAAKggO,iBAAkB,CAChC,IAAMruN,EAAK,EAAKquN,iBAAiBrxG,MAAM6iJ,EAAY7rQ,SAASkO,WAC5D7T,EAAO,EAAKq7Q,gBAAgBxtP,IAAIlc,GAEpC,IAAK3R,EACD,OAAOxG,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIg2Q,GAAc,CAAE7gQ,SAAU,EAAK6qQ,sBAAsBhK,EAAY7gQ,YAE5G,IAAMo8P,EAAiD,mBAA5ByE,EAAYzE,YAA4ByE,EAAYzE,YAAc/sQ,EAAK+sQ,YAC5Fc,EAA6C,qBAA1B2D,EAAY3D,UAA4B2D,EAAY3D,UAAY7tQ,EAAK6tQ,UAC9F,OAAOr0Q,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIg2Q,GAAc,CAAEzE,cACnDc,YAAWl9P,SAAU,EAAK6qQ,sBAAsBhK,EAAY7gQ,iBA5E5E,sBA+EI,SAAShL,GACL,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzCvK,KAAK80B,MAAM44M,SAAS50N,KAjF5B,iBAmFI,SAAIvO,GACA,OAAOvK,KAAKy6G,MAAMn4D,IAAI/3C,KApF9B,0BAsFI,SAAaA,GACT,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAMwjP,aAAax/P,KAxFvC,gCA0FI,SAAmBvO,GACf,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAMyjP,mBAAmBz/P,KA5F7C,2BA8FI,SAAcvO,GACV,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAM6qP,cAAc7mQ,KAhGxC,4BAkGI,SAAevO,EAASonQ,GACpB,IAAM74P,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAMugP,eAAev8P,EAAU64P,KApGnD,yBAsGI,SAAYpnQ,GACR,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAMgjP,YAAYh/P,KAxGtC,0BA0GI,SAAavO,EAASkoQ,EAAWmD,GAC7B,IAAM98P,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzC,OAAOvK,KAAK80B,MAAMijP,aAAaj/P,EAAU25P,EAAWmD,KA5G5D,sBA8GI,SAASrrQ,GACL,IAAMuO,EAAW9Y,KAAKkgR,mBAAmB31Q,GACzCvK,KAAK80B,MAAM8qP,SAAS9mQ,KAhH5B,sBAkHI,WACI9Y,KAAK80B,MAAMygP,aAnHnB,qBAqHI,WAAwB,IAAhBhrQ,EAAgB,uDAAN,KACd,GAAgB,OAAZA,EACA,OAAOvK,KAAK80B,MAAMsjP,QAAQp4Q,KAAK80B,MAAM+8O,SAEzC,IAAMjtQ,EAAO5E,KAAKy6G,MAAMhoF,IAAIloB,GAC5B,IAAK3F,EACD,MAAM,IAAI0sQ,EAAUtxQ,KAAKijO,KAAnB,kCAAoD14N,IAE9D,OAAO3F,IA7Hf,6BA+HI,SAAgBA,GACZ,OAAOA,EAAK2F,UAhIpB,mCAkII,SAAsBA,GAClB,GAAgB,OAAZA,EACA,MAAM,IAAI+mQ,EAAUtxQ,KAAKijO,KAAnB,sCAEV,IAAMr+N,EAAO5E,KAAKy6G,MAAMhoF,IAAIloB,GAC5B,IAAK3F,EACD,MAAM,IAAI0sQ,EAAUtxQ,KAAKijO,KAAnB,kCAAoD14N,IAE9D,IAAMuO,EAAW9Y,KAAK80B,MAAM+iP,gBAAgBjzQ,GACtCi7Q,EAAiB7/Q,KAAK80B,MAAMqjP,sBAAsBr/P,GAExD,OADe9Y,KAAK80B,MAAMsjP,QAAQyH,GACpBt1Q,UA7ItB,gCA+II,SAAmBA,GACf,GAAgB,OAAZA,EACA,MAAO,GAEX,IAAM3F,EAAO5E,KAAKy6G,MAAMhoF,IAAIloB,GAC5B,IAAK3F,EACD,MAAM,IAAI0sQ,EAAUtxQ,KAAKijO,KAAnB,kCAAoD14N,IAE9D,OAAOvK,KAAK80B,MAAM+iP,gBAAgBjzQ,OAvJ1C,KCCA,SAAS67Q,GAAWl2Q,GAGhB,MAAO,CACHA,QAAS,CAAE0M,SAHE,CAAC1M,EAAQA,SAGDm2Q,eAFFn2Q,EAAQm2Q,iBAAkB,GAG7CnrQ,SAAUwH,IAASqF,IAAIrF,IAASxY,KAAKgG,EAAQgL,UAAWkrQ,IACxD9O,YAAapnQ,EAAQonQ,YACrBc,UAAWloQ,EAAQkoQ,WAIpB,SAASkO,GAASp2Q,GAKrB,IAJA,IAEIq2Q,EACArrQ,EAHE0B,EAAW,CAAC1M,EAAQA,SACpBm2Q,EAAiBn2Q,EAAQm2Q,iBAAkB,IAGpC,OACsB3jQ,IAAS62I,QAAQ72I,IAASxY,KAAKgG,EAAQgL,UAAW,GADxE,mBAET,GADCA,EADQ,KACEqrQ,EADF,KAEe,IAApBrrQ,EAASxX,OACT,MAEJ,GAAIwX,EAAS,GAAGmrQ,eACZ,MAEJn2Q,EAAUgL,EAAS,GACnB0B,EAAS1T,KAAKgH,EAAQA,SAE1B,MAAO,CACHA,QAAS,CAAE0M,WAAUypQ,kBACrBnrQ,SAAUwH,IAASqF,IAAIrF,IAASjZ,OAAOyR,EAAUqrQ,GAAmBD,IACpEhP,YAAapnQ,EAAQonQ,YACrBc,UAAWloQ,EAAQkoQ,WAG3B,SAASoO,GAAYt2Q,GAAoB,IACjCgL,EADsBtW,EAAW,uDAAH,EAQlC,OALIsW,EADAtW,EAAQsL,EAAQA,QAAQ0M,SAASlZ,OAAS,EAC/B,CAAC8iR,GAAYt2Q,EAAStL,EAAQ,IAG9B8d,IAASqF,IAAIrF,IAASxY,KAAKgG,EAAQgL,WAAW,SAAApL,GAAE,OAAI02Q,GAAY12Q,EAAI,MAErE,IAAVlL,GAAesL,EAAQA,QAAQm2Q,eACxB,CACHn2Q,QAASA,EAAQA,QAAQ0M,SAAShY,GAClCsW,WACAmrQ,gBAAgB,EAChB/O,YAAapnQ,EAAQonQ,YACrBc,UAAWloQ,EAAQkoQ,WAGpB,CACHloQ,QAASA,EAAQA,QAAQ0M,SAAShY,GAClCsW,WACAo8P,YAAapnQ,EAAQonQ,YACrBc,UAAWloQ,EAAQkoQ,WAIpB,SAASqO,GAAWv2Q,GACvB,OAAOs2Q,GAAYt2Q,EAAS,GAEhC,SAASgoB,GAAO6jP,EAAa7rQ,EAASgL,GAClC,OAAI6gQ,EAAY7rQ,UAAYA,EACjBnM,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIg2Q,GAAc,CAAE7gQ,aAEpDnX,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIg2Q,GAAc,CAAE7gQ,SAAUwH,IAASqF,IAAIrF,IAASxY,KAAK6xQ,EAAY7gQ,WAAW,SAAA5U,GAAC,OAAI4xB,GAAO5xB,EAAG4J,EAASgL,QAE/I,IAAMwrQ,GAAuB,SAACzzO,GAAD,MAAW,CACpCimF,MADoC,SAC9B3uH,GACF,OAAOA,EAAKqS,SAASmL,KAAI,SAAAzhB,GAAC,OAAI2sC,EAAKimF,MAAM5yH,GAAG8X,cAAYkE,KAAK,SAIxDqkQ,GAAb,WACI,WAAY/9C,EAAMp2I,GAAoB,IAAdxnF,EAAc,uDAAJ,GAAI,oBAClCrF,KAAKijO,KAAOA,EACZjjO,KAAK6xQ,QAAU,KACf7xQ,KAAKy6G,MAAQ,IAAIlzE,IACjBvnC,KAAK80B,MAAQ,IAAIkrP,GAAgB/8C,EAAMp2I,EAAMxnF,GAC7CrF,KAAKguF,QAAgD,qBAA/B3oF,EAAQ47Q,oBAA4C57Q,EAAQ47Q,mBAClFjhR,KAAK4kO,iBAAmBv/N,EAAQu/N,iBAPxC,6CASI,WAAoB,OAAO5kO,KAAK80B,MAAMq9O,cAT1C,oCAUI,WAAiC,OAAOnyQ,KAAK80B,MAAMi9O,2BAVvD,sCAWI,WAAmC,OAAO/xQ,KAAK80B,MAAMm9O,6BAXzD,yBAYI,SAAY1nQ,GAA+C,IAAtCgL,EAAsC,uDAA3BwH,IAASukC,QAASj8C,EAAS,uCAGjDytQ,EAAuBztQ,EAAQytQ,sBAAwBiO,GAAqB17Q,EAAQytQ,sBAC1F,GAAgB,OAAZvoQ,EAAJ,CAKA,IAAM22Q,EAAiBlhR,KAAKy6G,MAAMhoF,IAAIloB,GACtC,IAAK22Q,EACD,MAAM,IAAIh2Q,MAAM,gCAEpB,IAAMtG,EAAO5E,KAAK80B,MAAMsjP,QAAQ8I,GAC1BC,EAAuBnhR,KAAK80B,MAAMqjP,sBAAsB+I,GACxD5rQ,EAAStV,KAAK80B,MAAMsjP,QAAQ+I,GAC5BC,EAAsBN,GAAWl8Q,GACjCy8Q,EAAiB9uP,GAAO6uP,EAAqB72Q,EAASgL,GACtD+rQ,GAAuBthR,KAAKguF,QAAU2yL,GAAWF,IAAYY,GAC7DE,EAAiBjsQ,EAAOC,SACzB6M,KAAI,SAAA3M,GAAK,OAAIA,IAAU7Q,EAAO08Q,EAAsB7rQ,KACzDzV,KAAKmgR,aAAa7qQ,EAAO/K,QAASg3Q,EAAgB,CAC9CzO,uBACAM,UAAWxuQ,EAAK0tQ,MAAQh9P,EAAOg9P,YAnBnC,CACI,IAAMkP,EAAqBzkQ,IAASqF,IAAI7M,EAAUvV,KAAKguF,QAAU2yL,GAAWF,IAC5EzgR,KAAKmgR,aAAa,KAAMqB,EAAoB,CAAE1O,uBAAsBM,UAAWqO,SAlB3F,mCAsCI,SAAsBzzL,GAClB,GAAIA,IAAYhuF,KAAKguF,QAArB,CAGAhuF,KAAKguF,QAAUA,EACf,IACM0zL,EADO1hR,KAAK80B,MAAMsjP,UACE7iQ,SACpBosQ,EAA2B5kQ,IAASqF,IAAIs/P,EAAcZ,IACtDc,EAA2B7kQ,IAASqF,IAAIu/P,EAA0B3zL,EAAU2yL,GAAWF,IAG7FzgR,KAAKmgR,aAAa,KAAMyB,EAA0B,CAC9C9O,qBAAsB9yQ,KAAK4kO,iBAC3BwuC,UAAWqO,SAnDvB,0BAsDI,SAAa78Q,EAAM2Q,EAAUlQ,GAAS,WAC5Bg7Q,EAAmB,IAAIhjQ,IAc7Brd,KAAK80B,MAAM+sP,YAAYj9Q,EAAM2Q,EAAUnX,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAE+uQ,gBAb3D,SAACxvQ,GAAS,oBACRA,EAAK2F,QAAQ0M,UADL,IAC9B,2BAA6C,KAAlC1M,EAAkC,QACzC81Q,EAAiB7mQ,IAAIjP,GACrB,EAAKkwG,MAAMjzE,IAAIj9B,EAAS3F,EAAK2F,UAHH,gCAakE8pQ,gBAP5E,SAACzvQ,GAAS,oBACRA,EAAK2F,QAAQ0M,UADL,IAC9B,2BAA6C,KAAlC1M,EAAkC,QACpC81Q,EAAiB/9N,IAAI/3C,IACtB,EAAKkwG,MAAL,OAAkBlwG,IAHI,qCA9D1C,iBAuEI,SAAIA,GACA,OAAOvK,KAAKy6G,MAAMn4D,IAAI/3C,KAxE9B,0BA0EI,SAAauO,GACT,IAAMlU,EAAO5E,KAAK8hR,kBAAkBhpQ,GACpC,OAAO9Y,KAAK80B,MAAMwjP,aAAa1zQ,KA5EvC,gCA8EI,SAAmBkU,GACf,IAAMlU,EAAO5E,KAAK8hR,kBAAkBhpQ,GACpC,OAAO9Y,KAAK80B,MAAMyjP,mBAAmB3zQ,KAhF7C,qBAkFI,SAAQkU,GACJ,GAAwB,qBAAbA,EACP,OAAO9Y,KAAK80B,MAAMsjP,UAEtB,IAAMxzQ,EAAO5E,KAAK8hR,kBAAkBhpQ,GACpC,OAAO9Y,KAAK80B,MAAMsjP,QAAQxzQ,KAvFlC,6BA0FI,SAAgBA,GACZ,IAAMs8Q,EAAiBlhR,KAAK80B,MAAM+iP,gBAAgBjzQ,GAClD,OAAuB,OAAnBs8Q,EACO,KAEJA,EAAejqQ,SAASiqQ,EAAejqQ,SAASlZ,OAAS,KA/FxE,mCAkGI,SAAsB+a,GAClB,IAAMooQ,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GACxC3R,EAAanH,KAAK80B,MAAMqjP,sBAAsB+I,GACpD,OAAmB,OAAf/5Q,EACO,KAEJA,EAAW8P,SAAS9P,EAAW8P,SAASlZ,OAAS,KAxGhE,2BA0GI,SAAc+a,GACV,IAAMooQ,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C,OAAO9Y,KAAK80B,MAAM6qP,cAAcuB,KA5GxC,4BA8GI,SAAepoQ,EAAU64P,GACrB,IAAMuP,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C,OAAO9Y,KAAK80B,MAAMugP,eAAe6L,EAAgBvP,KAhHzD,yBAkHI,SAAY74P,GACR,IAAMooQ,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C,OAAO9Y,KAAK80B,MAAMgjP,YAAYoJ,KApHtC,0BAsHI,SAAapoQ,EAAU25P,EAAWmD,GAC9B,IAAMsL,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C,OAAO9Y,KAAK80B,MAAMijP,aAAamJ,EAAgBzO,EAAWmD,KAxHlE,sBA0HI,SAAS98P,GACL,IAAMooQ,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C9Y,KAAK80B,MAAM8qP,SAASsB,KA5H5B,sBA8HI,SAASpoQ,GACL,IAAMooQ,EAAiBlhR,KAAK8hR,kBAAkBhpQ,GAC9C9Y,KAAK80B,MAAM44M,SAASwzC,KAhI5B,sBAkII,WACIlhR,KAAK80B,MAAMygP,aAnInB,+BAqII,SAAkBhrQ,GACd,GAAgB,OAAZA,EACA,OAAO,KAEX,IAAM3F,EAAO5E,KAAKy6G,MAAMhoF,IAAIloB,GAC5B,IAAK3F,EACD,MAAM,IAAI0sQ,EAAUtxQ,KAAKijO,KAAnB,kCAAoD14N,IAE9D,OAAO3F,MA7If,KAgJam9Q,GAAuB,SAAA9qQ,GAAQ,OAAIA,EAASA,EAASlZ,OAAS,IACrEikR,G,WACF,WAAYC,EAAWr9Q,GAAM,oBACzB5E,KAAKiiR,UAAYA,EACjBjiR,KAAK4E,KAAOA,E,yCAEhB,WAAgB,OAA6B,OAAtB5E,KAAK4E,KAAK2F,QAAmB,KAAOvK,KAAKiiR,UAAUjiR,KAAK4E,KAAK2F,W,oBACpF,WAAe,WAAE,OAAOvK,KAAK4E,KAAK2Q,SAAS6M,KAAI,SAAAxd,GAAI,OAAI,IAAIo9Q,EAA0B,EAAKC,UAAWr9Q,Q,iBACrG,WAAc,OAAO5E,KAAK4E,KAAK0tQ,Q,gCAC/B,WAA6B,OAAOtyQ,KAAK4E,KAAK2tQ,uB,6BAC9C,WAA0B,OAAOvyQ,KAAK4E,KAAK4tQ,oB,uBAC3C,WAAoB,OAAOxyQ,KAAK4E,KAAK+sQ,c,qBACrC,WAAkB,OAAO3xQ,KAAK4E,KAAK6tQ,Y,mBACnC,WAAgB,OAAOzyQ,KAAK4E,KAAK+tQ,U,sBACjC,WAAmB,OAAO3yQ,KAAK4E,KAAKguQ,e,KAExC,SAASsP,GAAQC,EAAYt1L,GACzB,MAAO,CACHt6D,OADG,SACInS,EAAO4nD,EAAa6qM,GACvBhmL,EAAKt6D,OAAOnS,EAAO4nD,EAAa6qM,EAASzwP,KAAI,SAAAxd,GAAI,OAAIu9Q,EAAW//P,IAAIxd,QAExEw9Q,oBAJG,SAIiBnjR,EAAO6L,GACvB+hF,EAAKu1L,oBAAoBnjR,EAAO6L,KAI5C,SAASu3Q,GAAWC,EAAyBj9Q,GACzC,OAAOjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEu/N,iBAAkBv/N,EAAQu/N,kBAAoB,CACzFrxG,MADyF,SACnF3uH,GACF,OAAOS,EAAQu/N,iBAAiBrxG,MAAM+uJ,EAAwB19Q,MAEnEi4L,OAAQx3L,EAAQw3L,QAAU,CACzB16J,QADyB,SACjBv9B,EAAM29Q,GACV,OAAOl9Q,EAAQw3L,OAAO16J,QAAQv9B,EAAKqS,SAAS,GAAIsrQ,EAAUtrQ,SAAS,MAExE+X,OAAQ3pB,EAAQ2pB,QAAU,CACzBA,OADyB,SAClBpqB,EAAMyxQ,GACT,OAAOhxQ,EAAQ2pB,OAAOA,OAAOszP,EAAwB19Q,GAAOyxQ,OAIrE,IAAMmM,GAAb,WACI,WAAYv/C,EAAMp2I,GAAoB,WAAdxnF,EAAc,uDAAJ,GAAI,oBAClCrF,KAAK6xQ,QAAU,KACf7xQ,KAAKyiR,cAAgBp9Q,EAAQo9Q,eAAiBV,GAC9C,IAAMO,EAA0B,SAAA19Q,GAAI,OAAI,EAAK69Q,cAAc79Q,EAAKqS,WAChEjX,KAAKmiR,WAAa,IAAI5Q,GAAW,SAAA3sQ,GAAI,OAAI,IAAIo9Q,GAA0BM,EAAyB19Q,MAChG5E,KAAK80B,MAAQ,IAAIksP,GAA0B/9C,EAAMi/C,GAAQliR,KAAKmiR,WAAYt1L,GAAOw1L,GAAWC,EAAyBj9Q,IAN7H,6CAQI,WAAkB,WACd,OAAOkyB,IAAMnV,IAAIpiB,KAAK80B,MAAMq9O,aAAa,gBAAGmD,EAAH,EAAGA,cAAeP,EAAlB,EAAkBA,aAAlB,MAAsC,CAC3EO,cAAeA,EAAclzP,KAAI,SAAAxd,GAAI,OAAI,EAAKu9Q,WAAW//P,IAAIxd,MAC7DmwQ,aAAcA,EAAa3yP,KAAI,SAAAxd,GAAI,OAAI,EAAKu9Q,WAAW//P,IAAIxd,YAXvE,oCAcI,WAA+B,WAC3B,OAAO2yB,IAAMnV,IAAIpiB,KAAK80B,MAAMi9O,0BAA0B,gBAAGntQ,EAAH,EAAGA,KAAMsxQ,EAAT,EAASA,KAAT,MAAqB,CACvEtxQ,KAAM,EAAKu9Q,WAAW//P,IAAIxd,GAC1BsxQ,aAjBZ,sCAoBI,WAAiC,WAC7B,OAAO3+O,IAAMnV,IAAIpiB,KAAK80B,MAAMm9O,4BAA4B,SAAArtQ,GAAI,OAAI,EAAKu9Q,WAAW//P,IAAIxd,QArB5F,yBAuBI,SAAY2F,GAAoD,IAA3CgL,EAA2C,uDAAhCwH,IAASukC,QAASj8C,EAAc,uDAAJ,GACxDrF,KAAK80B,MAAM+sP,YAAYt3Q,EAASgL,EAAUlQ,KAxBlD,mCA0BI,SAAsB2oF,GAClBhuF,KAAK80B,MAAM4tP,sBAAsB10L,KA3BzC,iBA6BI,SAAIl1E,GACA,OAAO9Y,KAAK80B,MAAMwtB,IAAIxpC,KA9B9B,0BAgCI,SAAaA,GACT,OAAO9Y,KAAK80B,MAAMwjP,aAAax/P,KAjCvC,gCAmCI,SAAmBA,GACf,OAAO9Y,KAAK80B,MAAMyjP,mBAAmBz/P,KApC7C,qBAsCI,SAAQA,GACJ,OAAO9Y,KAAKmiR,WAAW//P,IAAIpiB,KAAK80B,MAAMsjP,QAAQt/P,MAvCtD,6BAyCI,SAAgBlU,GACZ,OAAOA,EAAK2F,UA1CpB,mCA4CI,SAAsBuO,GAClB,OAAO9Y,KAAK80B,MAAMqjP,sBAAsBr/P,KA7ChD,2BA+CI,SAAcA,GACV,OAAO9Y,KAAK80B,MAAM6qP,cAAc7mQ,KAhDxC,4BAkDI,SAAeA,EAAU25P,GACrB,OAAOzyQ,KAAK80B,MAAMugP,eAAev8P,EAAU25P,KAnDnD,yBAqDI,SAAY35P,GACR,OAAO9Y,KAAK80B,MAAMgjP,YAAYh/P,KAtDtC,0BAwDI,SAAaA,EAAU25P,EAAWmD,GAC9B,OAAO51Q,KAAK80B,MAAMijP,aAAaj/P,EAAU25P,EAAWmD,KAzD5D,sBA2DI,SAAS98P,GACL,OAAO9Y,KAAK80B,MAAM8qP,SAAS9mQ,KA5DnC,sBA8DI,SAASA,GACL,OAAO9Y,KAAK80B,MAAM44M,SAAS50N,KA/DnC,sBAiEI,WACI,OAAO9Y,KAAK80B,MAAMygP,aAlE1B,mCAoEI,WAAuC,IAAjBz8P,EAAiB,uDAAN,KAC7B,OAAO9Y,KAAK80B,MAAMsjP,QAAQt/P,OArElC,K,UCvQI/X,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAOnDwhR,GAAb,kDACI,WAAY1/C,EAAMzzN,EAAWg3N,EAAUkE,GAAyB,IAAdrlO,EAAc,uDAAJ,GAAI,uCACtD49N,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,GAFpD,0DAII,WAAiC,OAAOrF,KAAK80B,MAAMi9O,2BAJvD,yBAKI,SAAYxnQ,GAA+C,IAAtCgL,EAAsC,uDAA3BwH,IAASukC,QAASj8C,EAAS,uCACvDrF,KAAK80B,MAAM+sP,YAAYt3Q,EAASgL,EAAUlQ,KANlD,sBAQI,SAASkF,QACWsP,IAAZtP,EAIJvK,KAAK80B,MAAM44M,SAASnjO,GAHhBvK,KAAKi8D,KAAKyxK,aAVtB,wBAeI,SAAWnjO,GACP,OAAOvK,KAAK80B,MAAMwtB,IAAI/3C,KAhB9B,yBAkBI,SAAY04N,EAAMhnK,EAAM52D,GACpB,OAAO,IAAI26Q,GAAgB/8C,EAAMhnK,EAAM52D,OAnB/C,GAAgCq5Q,IAsB1BkE,G,WACF,WAAYC,EAA6B3+C,GAAU,oBAC/ClkO,KAAK6iR,4BAA8BA,EACnC7iR,KAAKkkO,SAAWA,EAChBlkO,KAAKgrO,WAAa9G,EAAS8G,WACvB9G,EAAS61C,0BACT/5Q,KAAK+5Q,wBAA0B71C,EAAS61C,yB,4DAGhD,WACI,OAAO/5Q,KAAK6iR,gC,4BAEhB,SAAerzQ,GAEX,MAAO,CAAEszQ,wBAAoBjpQ,EAAW1a,KAD3Ba,KAAKkkO,SAASyG,eAAen7N,M,2BAG9C,SAAc5K,EAAM3F,EAAOokO,EAAcv4N,GACrC,IAAMg4Q,EAAqB9iR,KAAK+iR,2BAA2BC,sBAAsBp+Q,EAAK2F,SACnC,IAA/Cu4Q,EAAmBv4Q,QAAQ0M,SAASlZ,QACpCslO,EAAay/C,wBAAqBjpQ,EAClC7Z,KAAKkkO,SAAS0G,cAAchmO,EAAM3F,EAAOokO,EAAalkO,KAAM2L,KAG5Du4N,EAAay/C,mBAAqBA,EAClC9iR,KAAKkkO,SAAS++C,yBAAyBH,EAAoB7jR,EAAOokO,EAAalkO,KAAM2L,M,4BAG7F,SAAelG,EAAM3F,EAAOokO,EAAcv4N,GAClCu4N,EAAay/C,mBACT9iR,KAAKkkO,SAASg/C,2BACdljR,KAAKkkO,SAASg/C,0BAA0B7/C,EAAay/C,mBAAoB7jR,EAAOokO,EAAalkO,KAAM2L,GAInG9K,KAAKkkO,SAAS2G,gBACd7qO,KAAKkkO,SAAS2G,eAAejmO,EAAM3F,EAAOokO,EAAalkO,KAAM2L,K,6BAIzE,SAAgBu4N,GACZrjO,KAAKkkO,SAAS4G,gBAAgBzH,EAAalkO,Q,2BAE/C,SAAcoL,EAAS44Q,GACnB,QAAInjR,KAAKkkO,SAASm2C,eACPr6Q,KAAKkkO,SAASm2C,cAAc9vQ,EAAS44Q,O,KAQxD,SAASC,GAAoBL,EAA4B19Q,GACrD,OAAOA,GAAWjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEkhO,gCAAiClhO,EAAQkhO,iCAAmC,CAClIiB,2BADkI,SACvG7mO,GACvB,IAAImiR,EACJ,IACIA,EAAqBC,IAA6BC,sBAAsBriR,GAE5E,MAAOqE,GACH,OAAOK,EAAQkhO,gCAAgCiB,2BAA2B7mO,GAE9E,OAAmD,IAA/CmiR,EAAmBv4Q,QAAQ0M,SAASlZ,OAC7BsH,EAAQkhO,gCAAgCiB,2BAA2B7mO,GAGnE0E,EAAQkhO,gCAAgC88C,yCAAyCP,EAAmBv4Q,QAAQ0M,cAjBvIlW,GAAW,CACP89J,MACD+jH,GAAqBlkR,UAAW,6BAA8B,MAoB1D,IAAM4kR,GAAb,kDACI,WAAYrgD,EAAMzzN,EAAWg3N,EAAUkE,GAAyB,MAAdrlO,EAAc,uDAAJ,GAAI,oBAC5D,IAAM09Q,EAA6B,kCAC7BQ,EAAwB74C,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAIyhR,GAAqBG,EAA4B5hR,MAF1C,qBAGtD8hO,EAAMzzN,EAAWg3N,EAAU+8C,EAAuBH,GAAoBL,EAA4B19Q,IAJhH,+CAMI,SAAYkF,GAA+C,IAAtCgL,EAAsC,uDAA3BwH,IAASukC,QAASj8C,EAAS,uCACvDrF,KAAK80B,MAAM+sP,YAAYt3Q,EAASgL,EAAUlQ,KAPlD,yBASI,SAAY49N,EAAMhnK,EAAM52D,GACpB,OAAO,IAAIm9Q,GAA4Bv/C,EAAMhnK,EAAM52D,KAV3D,2BAYI,WAAkC,IAApBwgO,EAAoB,uDAAJ,GAC1B,qEAAoBA,GAC4B,qBAArCA,EAAco7C,oBACrBjhR,KAAK80B,MAAM4tP,sBAAsB78C,EAAco7C,sBAf3D,mCAkBI,WAAsC,IAAhB12Q,EAAgB,uDAAN,KAC5B,OAAOvK,KAAK80B,MAAMkuP,sBAAsBz4Q,OAnBhD,GAA4Co4Q,I,SCxGxCphR,GAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YActE,SAASshR,GAAwB3lR,GAC7B,OAAOO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIvC,GAAQ,CAAE0X,SAAU,GAAIkuQ,oBAAgB5pQ,EAAW6pQ,OAAO,EAAMC,MAAM,EAAOC,wBAAoB/pQ,IAE5I,SAASxL,GAAWw1Q,EAAUC,GAC1B,QAAKA,EAAWxuQ,SAGPwuQ,EAAWxuQ,SAAWuuQ,GAIpBx1Q,GAAWw1Q,EAAUC,EAAWxuQ,SAG/C,SAASs3G,GAAWhoH,EAAMsa,GACtB,OAAOta,IAASsa,GAAS7Q,GAAWzJ,EAAMsa,IAAU7Q,GAAW6Q,EAAOta,G,IAEpEm/Q,G,WACF,WAAYn/Q,GAAM,oBACd5E,KAAK4E,KAAOA,E,yCAEhB,WAAgB,OAAO5E,KAAK4E,KAAK2F,QAAQA,U,oBACzC,WAAiB,OAAOvK,KAAK4E,KAAK2Q,SAAS6M,KAAI,SAAAxd,GAAI,OAAI,IAAIm/Q,EAAyBn/Q,Q,iBACpF,WAAc,OAAO5E,KAAK4E,KAAK0tQ,Q,gCAC/B,WAA6B,OAAOtyQ,KAAK4E,KAAK2tQ,uB,6BAC9C,WAA0B,OAAOvyQ,KAAK4E,KAAK4tQ,oB,uBAC3C,WAAoB,OAAOxyQ,KAAK4E,KAAK+sQ,c,qBACrC,WAAkB,OAAO3xQ,KAAK4E,KAAK6tQ,Y,mBACnC,WAAgB,OAAOzyQ,KAAK4E,KAAK+tQ,U,sBACjC,WAAmB,OAAO3yQ,KAAK4E,KAAKguQ,e,KAElCoR,G,WACF,WAAY9/C,EAAUi+C,EAAYpI,GAAyB,oBACvD/5Q,KAAKkkO,SAAWA,EAChBlkO,KAAKmiR,WAAaA,EAClBniR,KAAK+5Q,wBAA0BA,EAC/B/5Q,KAAKs5Q,cAAgB,IAAI/xO,IACzBvnC,KAAKgrO,WAAa9G,EAAS8G,W,kDAE/B,SAAex7N,GAEX,MAAO,CAAE6zN,aADYrjO,KAAKkkO,SAASyG,eAAen7N,M,2BAGtD,SAAc5K,EAAM3F,EAAOokO,EAAcv4N,GACrC9K,KAAKkkO,SAAS0G,cAAc5qO,KAAKmiR,WAAW//P,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,2BAE7F,SAAcP,EAAS44Q,GACD,MAIb,EAJL,OAAI54Q,EAAQo5Q,OACR,EAAAR,EAAet0Q,WAAU2K,IAAzB,oBAAgC49P,GAAoB1nD,mBAC7C,KAGP,EAAAyzD,EAAet0Q,WAAU/J,OAAzB,oBAAmCsyQ,GAAoB1nD,mBAChD,K,4BAGf,SAAe9qN,EAAM3F,EAAOokO,EAAcv4N,GAClC9K,KAAKkkO,SAAS2G,gBACd7qO,KAAKkkO,SAAS2G,eAAe7qO,KAAKmiR,WAAW//P,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,6BAGlG,SAAgBu4N,GACZrjO,KAAKkkO,SAAS4G,gBAAgBzH,EAAaA,gB,qBAE/C,WACIrjO,KAAKs5Q,cAAc/7P,Y,KAG3B,SAAS0mQ,GAAYtjR,GACjB,MAAO,CACH6iK,aAAc7iK,EAAE6iK,aAChBvsJ,SAAUtW,EAAEsW,SAASmL,KAAI,SAAAzhB,GAAC,OAAIA,EAAE4J,YAGxC,SAASuyQ,GAAiBn8Q,GACtB,MAAO,CACH6iK,aAAc7iK,EAAE6iK,aAChBj5J,QAAS5J,EAAE4J,SAAW5J,EAAE4J,QAAQA,QAChC3M,OAAQ+C,EAAE/C,Q,IAGZsmR,G,kDACF,WAAY/kR,GAAM,kCACd,cAAMA,EAAK8X,SAASmL,KAAI,SAAAxd,GAAI,OAAIA,EAAK2F,aAChCpL,KAAOA,EAFE,E,UAD6Bm4Q,KAMnD,SAAS6M,GAA+BhlR,GACpC,OAAIA,aAAgBm4Q,IACT,IAAI4M,GAAqC/kR,GAE7CA,E,IAELilR,G,WACF,WAAY1sH,GAAK,oBACb13J,KAAK03J,IAAMA,E,8CAEf,SAAW9yJ,GACP,OAAO5E,KAAK03J,IAAI2yE,WAAWzlO,EAAK2F,W,0BAEpC,SAAakwG,EAAO4wH,GAChB,GAAIrrO,KAAK03J,IAAI4zE,aACT,OAAOtrO,KAAK03J,IAAI4zE,aAAa7wH,EAAMr4F,KAAI,SAAAxd,GAAI,OAAIA,EAAK2F,WAAU8gO,K,yBAItE,SAAYlsO,EAAMksO,GACVrrO,KAAK03J,IAAI+9D,aACTz1N,KAAK03J,IAAI+9D,YAAY0uD,GAA+BhlR,GAAOksO,K,wBAGnE,SAAWlsO,EAAMivL,EAAYo9C,EAAaH,GACtC,OAAOrrO,KAAK03J,IAAI4yE,WAAW65C,GAA+BhlR,GAAOivL,GAAcA,EAAW7jL,QAASihO,EAAaH,K,kBAEpH,SAAKlsO,EAAMivL,EAAYo9C,EAAaH,GAChCrrO,KAAK03J,IAAI6yE,KAAK45C,GAA+BhlR,GAAOivL,GAAcA,EAAW7jL,QAASihO,EAAaH,K,uBAEvG,SAAUA,GACFrrO,KAAK03J,IAAI89D,WACTx1N,KAAK03J,IAAI89D,UAAU6V,O,KAI/B,SAAS+3C,GAAoB/9Q,GACzB,OAAOA,GAAWjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAE+sQ,mBAAmB,EAAMxtC,iBAAkBv/N,EAAQu/N,kBAAoB,CAC7HrxG,MAD6H,SACvHppH,GACF,OAAO9E,EAAQu/N,iBAAiBrxG,MAAMppH,EAAGI,WAE9CmtJ,IAAKryJ,EAAQqyJ,KAAO,IAAI0sH,GAAiC/+Q,EAAQqyJ,KAAM6wE,4BAA6BljO,EAAQkjO,6BAA+B,CAC1IN,6BAD0I,SAC7GtnO,GACzB,OAAO0E,EAAQkjO,4BAA4BN,6BAA6B7pO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIO,GAAI,CAAE4J,QAAS5J,EAAE4J,YAE7H29N,4BAJ0I,SAI9GvnO,GACxB,OAAO0E,EAAQkjO,4BAA4BL,4BAA4B9pO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIO,GAAI,CAAE4J,QAAS5J,EAAE4J,aAE7H88N,sBAAuBhiO,EAAQgiO,uBAAyBjpO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,EAAQgiO,uBAAwB,CAAEqxC,iBAAa7+P,EAAW4+P,gBAAY5+P,EAAW++P,QAASvzQ,EAAQgiO,sBAAsBuxC,QAAU,SAACzuQ,GACtN,OAAO9E,EAAQgiO,sBAAsBuxC,QAAQzuQ,EAAGI,UAChD,iBAAM,YAAYouQ,UAAWtzQ,EAAQgiO,sBAAsBsxC,UAAY,SAACh4Q,GACxE,IAAIqE,EACJ,SAAmD,QAAxCA,EAAKK,EAAQgiO,6BAA0C,IAAPriO,OAAgB,EAASA,EAAG2zQ,UAAUh4Q,EAAE4J,gBACnGsP,EAAWytN,aALwG,SAK3F3mO,GACxB,OAAO0E,EAAQgiO,sBAAsBC,aAAa3mO,EAAE4J,UAExD2iO,mBARuH,WASnH,OAAO7nO,EAAQgiO,sBAAsB6F,sBACtCjB,cAAe5mO,EAAQgiO,sBAAsB4E,cAAgB,kBAAM5mO,EAAQgiO,sBAAsB4E,iBAAkB,iBAAM,QAAQf,aAAc7lO,EAAQgiO,sBAAsB6D,cAAiB,SAAAtmO,GAC7L,OAAOS,EAAQgiO,sBAAsB6D,aAAatmO,EAAK2F,UACvD0kO,sBAAuB5pO,EAAQgiO,sBAAsB4H,uBAA0B,SAAArqO,GAC/E,OAAOS,EAAQgiO,sBAAsB4H,sBAAsBrqO,EAAK2F,YAC7DykB,OAAQ3pB,EAAQ2pB,QAAU,CACjCA,OADiC,SAC1BruB,EAAG01Q,GACN,OAAOhxQ,EAAQ2pB,OAAOA,OAAOruB,EAAE4J,QAAS8rQ,KAE7C9vC,gCAAiClhO,EAAQkhO,iCAAmCnoO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,EAAQkhO,iCAAkC,CAAEiB,2BAAF,SAA6B7mO,GAC9K,OAAO0E,EAAQkhO,gCAAgCiB,2BAA2B7mO,EAAE4J,YAC1EsyL,YAAQhjL,EAAWokQ,yBAAsE,qBAArC54Q,EAAQ44Q,8BAA2CpkQ,EAAyD,oBAArCxU,EAAQ44Q,yBAA0C54Q,EAAQ44Q,yBAA4B,SAAAt9Q,GAAC,OAAI0E,EAAQ44Q,yBAAyBt9Q,EAAE4J,UAAY85Q,uBAAwBh/Q,EAAQg/Q,yBAEvT,SAASnH,GAAIt4Q,EAAMqT,GACfA,EAAGrT,GACHA,EAAK2Q,SAASoB,SAAQ,SAAAlB,GAAK,OAAIynQ,GAAIznQ,EAAOwC,MAEvC,IAAMqsQ,GAAb,WACI,WAAYrhD,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,GAA0B,IAAdl/Q,EAAc,uDAAJ,GAAI,oBACxErF,KAAKijO,KAAOA,EACZjjO,KAAKukR,WAAaA,EAClBvkR,KAAKy6G,MAAQ,IAAIlzE,IACjBvnC,KAAKwkR,uBAAyB,IAAIj9O,IAClCvnC,KAAKykR,gBAAkB,IAAIl9O,IAC3BvnC,KAAK0kR,aAAe,IAAIjwQ,IACxBzU,KAAK2kR,0BAA4B,IAAIlwQ,IACrCzU,KAAKmiR,WAAa,IAAI5Q,GAAW,SAAA3sQ,GAAI,OAAI,IAAIm/Q,GAAyBn/Q,MACtE5E,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAK4kO,iBAAmBv/N,EAAQu/N,iBAChC5kO,KAAKqyQ,yBAAuE,qBAArChtQ,EAAQgtQ,0BAAmDhtQ,EAAQgtQ,yBAC1GryQ,KAAK68L,OAASx3L,EAAQw3L,OACtB78L,KAAKoyQ,kBAAoB/sQ,EAAQ+sQ,kBACjCpyQ,KAAK6wG,KAAO7wG,KAAK4kR,WAAW3hD,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,GAClErF,KAAKysG,KAAO+2K,GAAwB,CAChCj5Q,aAASsP,EACTvE,OAAQ,KACRuvQ,aAAa,IAEb7kR,KAAK4kO,mBACL5kO,KAAKysG,KAAOruG,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIJ,KAAKysG,MAAO,CAAEl2F,GAAI,QAElEvW,KAAKy6G,MAAMjzE,IAAI,KAAMxnC,KAAKysG,MAC1BzsG,KAAK6wG,KAAKkhK,yBAAyB/xQ,KAAK8xQ,0BAA2B9xQ,KAAMA,KAAKkd,aAzBtF,kDA2BI,WAAyB,OAAOqa,IAAMnV,IAAIpiB,KAAK6wG,KAAKi8H,iBAAkBm3C,MA3B1E,gCA4BI,WAA6B,OAAO1sP,IAAMnV,IAAIpiB,KAAK6wG,KAAKm8H,qBAAsBi3C,MA5BlF,2BA6BI,WAAwB,OAAO1sP,IAAMnV,IAAIpiB,KAAK6wG,KAAK83H,gBAAiBm0C,MA7BxE,qBA8BI,WAAkB,OAAOvlP,IAAMnV,IAAIpiB,KAAK6wG,KAAKy3H,UAAWw0C,MA9B5D,sBA+BI,WAAmB,OAAO98Q,KAAK6wG,KAAKn8F,aA/BxC,wBAgCI,WAAqB,OAAO1U,KAAK6wG,KAAKk7H,eAhC1C,wBAiCI,SAAW9I,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,GAAS,WAChDy/Q,EAAqB,IAAI/L,GAAqBvyC,GAC9Cu+C,EAAsBr6C,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAI6iR,GAAsB7iR,EAAG,EAAKghR,WAAY,EAAKwC,0BAA0BhwQ,UACtHqwQ,EAAoB5B,GAAoB/9Q,IAAY,GAC1D,OAAO,IAAIs9Q,GAAW1/C,EAAMzzN,EAAWs1Q,EAAoBC,EAAqBC,KArCxF,2BAuCI,WAA4B,IAAd3/Q,EAAc,uDAAJ,GACpBrF,KAAK6wG,KAAKoxB,cAAc58H,KAxChC,4BA2CI,WACI,OAAOrF,KAAK6wG,KAAKi4H,mBA5CzB,qBA8CI,WACI,OAAO9oO,KAAK6wG,KAAK1kG,WA/CzB,IAiDI,SAAcA,GACVnM,KAAK6wG,KAAK1kG,UAAYA,IAlD9B,sBAoDI,WACInM,KAAK6wG,KAAKs4H,aArDlB,oBAuDI,SAAOr+N,EAAQD,GACX7K,KAAK6wG,KAAKgqE,OAAO/vK,EAAQD,KAxDjC,mBA0DI,SAAMovC,GACFj6C,KAAK6wG,KAAKnkG,MAAMutC,KA3DxB,sBA8DI,WACI,OAAOj6C,KAAKysG,KAAKliG,UA/DzB,sBAiEI,SAAS6kF,EAAO1F,GACZ,OAAOnoF,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,oFAKnC,OAJAA,KAAKykR,gBAAgB9tQ,SAAQ,SAAA83B,GAAO,OAAIA,EAAQ3kC,YAChD9J,KAAKykR,gBAAgBlnQ,QACrBvd,KAAKysG,KAAKliG,QAAU6kF,EACd61L,EAAmBv7L,GAAa,CAAEA,YAAW1sD,MAAO,GAAImiD,UAAW,IAJtC,SAK7Bn/E,KAAKklR,gBAAgB91L,GAAO,GAAM,EAAO61L,GALZ,OAM/BA,IACAjlR,KAAK6wG,KAAK62H,SAASu9C,EAAiBjoP,OACpCh9B,KAAK6wG,KAAK+qE,aAAaqpG,EAAiB9lM,YAExCuK,GAA4C,kBAAxBA,EAAUv9E,YAC9BnM,KAAKmM,UAAYu9E,EAAUv9E,WAXI,kDAlE/C,6BAiFI,WAA4G,IAA5F5B,EAA4F,uDAAlFvK,KAAKysG,KAAKliG,QAASqrQ,IAA+D,yDAA7CloC,EAA6C,wDAA3Bu3C,EAA2B,uCAAT5/Q,EAAS,uCACxG,OAAO9D,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,uFACF,qBAAtBA,KAAKysG,KAAKliG,QADc,sBAEzB,IAAI+mQ,EAAUtxQ,KAAKijO,KAAM,sBAFA,WAI/BjjO,KAAKysG,KAAKg3K,eAJqB,gBAK/B,OAL+B,SAKzBzjR,KAAKysG,KAAKg3K,eALe,OAM/B,OAN+B,SAMzBlsP,IAAM6C,UAAUp6B,KAAK0kR,aAAa/vQ,OANT,OASnC,OADM/P,EAAO5E,KAAKmlR,YAAY56Q,GARK,UAS7BvK,KAAKolR,qBAAqBxgR,EAAMgxQ,EAAWqP,EAAkB5/Q,GAThC,QAUnC,GAAIqoO,EACA,IACI1tO,KAAK6wG,KAAK68H,SAAS9oO,GAEvB,MAAOI,IAdwB,mDAlF/C,sBAwGI,SAASuF,GACL,QAAgBsP,IAAZtP,GAAyBA,IAAYvK,KAAKysG,KAAKliG,QAAnD,CAIA,IAAM3F,EAAO5E,KAAKmlR,YAAY56Q,GAC9BvK,KAAK6wG,KAAK68H,SAAS9oO,QAJf5E,KAAK6wG,KAAK68H,aA1GtB,sBAgHI,SAASnjO,GAA4B,IAAnBqrQ,EAAmB,wDAC3BhxQ,EAAO5E,KAAKmlR,YAAY56Q,GAC9B,OAAOvK,KAAK6wG,KAAKw0K,SAASzgR,IAAS5E,KAAKysG,KAAO,KAAO7nG,EAAMgxQ,KAlHpE,oBAoHI,SAAOrrQ,GAA4B,IAAnBqrQ,EAAmB,wDAC/B,OAAOr0Q,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,yFACF,qBAAtBA,KAAKysG,KAAKliG,QADc,sBAEzB,IAAI+mQ,EAAUtxQ,KAAKijO,KAAM,sBAFA,WAI/BjjO,KAAKysG,KAAKg3K,eAJqB,gBAK/B,OAL+B,SAKzBzjR,KAAKysG,KAAKg3K,eALe,OAM/B,OAN+B,SAMzBlsP,IAAM6C,UAAUp6B,KAAK0kR,aAAa/vQ,OANT,UAQ7B/P,EAAO5E,KAAKmlR,YAAY56Q,IAC1BvK,KAAK6wG,KAAKy0K,WAAW1gR,IAAU5E,KAAK6wG,KAAK8uK,cAAc/6Q,GATxB,2CAUxB,GAVwB,YAY/BA,EAAK6+Q,eAZ0B,iBAa/B,OAb+B,UAazBzjR,KAAKysG,KAAKg3K,eAbe,QAc/B,OAd+B,UAczBlsP,IAAM6C,UAAUp6B,KAAK0kR,aAAa/vQ,OAdT,WAgB/B/P,IAAS5E,KAAKysG,MAAS7nG,EAAK6+Q,gBAAmBzjR,KAAK6wG,KAAKinK,YAAYlzQ,GAhBtC,2CAiBxB,GAjBwB,WAmB7BxC,EAASpC,KAAK6wG,KAAK00K,OAAO3gR,IAAS5E,KAAKysG,KAAO,KAAO7nG,EAAMgxQ,IAC9DhxQ,EAAK6+Q,eApB0B,iBAqB/B,OArB+B,UAqBzBzjR,KAAKysG,KAAKg3K,eArBe,QAsB/B,OAtB+B,UAsBzBlsP,IAAM6C,UAAUp6B,KAAK0kR,aAAa/vQ,OAtBT,iCAwB5BvS,GAxB4B,mDArH/C,0BAgJI,SAAa6U,EAAUusJ,GAAc,WAC3B/oD,EAAQxjG,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKwkR,YAAYxkR,MACjDX,KAAK6wG,KAAK+qE,aAAanhE,EAAO+oD,KAlJtC,0BAoJI,WAEI,OADcxjK,KAAK6wG,KAAKgyF,eACXzgL,KAAI,SAAA7hB,GAAC,OAAIA,EAAEgK,aAtJhC,sBAwJI,SAAS0M,EAAUusJ,GAAc,WACvB/oD,EAAQxjG,EAASmL,KAAI,SAAAzhB,GAAC,OAAI,EAAKwkR,YAAYxkR,MACjDX,KAAK6wG,KAAK62H,SAASjtH,EAAO+oD,KA1JlC,sBA4JI,WAEI,OADcxjK,KAAK6wG,KAAKi1H,WACX1jN,KAAI,SAAA7hB,GAAC,OAAIA,EAAEgK,aA9JhC,oBAgKI,SAAOA,EAASskO,GACZ7uO,KAAK6wG,KAAKo1H,OAAOjmO,KAAKmlR,YAAY56Q,GAAUskO,KAjKpD,yBAoKI,SAAYtkO,GACR,IAAM3F,EAAO5E,KAAKy6G,MAAMhoF,IAAKloB,IAAYvK,KAAKysG,KAAKliG,QAAU,KAAOA,GACpE,IAAK3F,EACD,MAAM,IAAI0sQ,EAAUtxQ,KAAKijO,KAAnB,oCAAsD14N,IAEhE,OAAO3F,IAzKf,kCA2KI,SAAqBA,EAAMgxQ,EAAWqP,EAAkB5/Q,GACpD,OAAO9D,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,8EACnC,OADmC,SAC7BA,KAAKwlR,YAAY5gR,EAAMgxQ,EAAWqP,GADL,OAEnCjlR,KAAKoqN,OAAOxlN,EAAMqgR,EAAkB5/Q,GAFD,kDA5K/C,yBAiLI,SAAYT,EAAMgxQ,EAAWqP,GACzB,OAAO1jR,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,8FAEnCA,KAAKwkR,uBAAuB7tQ,SAAQ,SAAC8sQ,EAAgB+B,IAC5CpjR,GAAUwqH,GAAW44J,EAAa5gR,KACnCxC,EAASqhR,EAAenhR,MAAK,kBAAM,EAAKkjR,YAAY5gR,EAAMgxQ,EAAWqP,WAGzE7iR,EAP+B,yCAQxBA,GARwB,gCAU5BpC,KAAKylR,iBAAiB7gR,EAAMgxQ,EAAWqP,IAVX,kDAlL/C,8BA+LI,SAAiBrgR,EAAMgxQ,EAAWqP,GAC9B,OAAO1jR,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,6FASL,OAP9B4E,EAAK6+Q,eAAiB,IAAI7hR,SAAQ,SAAAV,GAAC,OAAImB,EAAOnB,KAC9ClB,KAAKwkR,uBAAuBh9O,IAAI5iC,EAAMA,EAAK6+Q,gBAC3C7+Q,EAAK6+Q,eAAL,SAA4B,WACxB7+Q,EAAK6+Q,oBAAiB5pQ,EACtB,EAAK2qQ,uBAAL,OAAmC5/Q,MANJ,kBASC5E,KAAK0lR,cAAc9gR,EAAMgxQ,EAAWqP,GATrC,OAW/B,OAFMU,EATyB,OAU/B/gR,EAAK8+Q,OAAQ,EAVkB,UAWzBlhN,KAASM,QAAQ6iN,EAAkBvjQ,KAAI,SAAA3M,GAAK,OAAI,EAAKgwQ,iBAAiBhwQ,EAAOmgQ,EAAWqP,OAX/D,yBAc/B5iR,IAd+B,6EAhM/C,2BAkNI,SAAcuC,EAAMgxQ,EAAWqP,GAC3B,OAAO1jR,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,+FAgBd,OAfrB4E,EAAKigR,cAAgB7kR,KAAKukR,WAAWM,YAAYjgR,EAAK2F,SAEjD3F,EAAKigR,cAIAe,EAAcn8Q,aAAQ,MAChBnH,MAAK,WACbsC,EAAK++Q,MAAO,EACZ,EAAKgB,0BAA0B1vQ,KAAKrQ,MACrC,SAAAhC,GAAC,OAAI,QACRijR,EAAkB7lR,KAAK8lR,cAAclhR,GAAnB,SACL,kBAAMghR,EAAY97Q,aAT/B+7Q,EAAkBjkR,QAAQC,QAAQkb,IAASukC,SAJZ,kBAgBRukO,EAhBQ,cAgBzBtwQ,EAhByB,yBAiBxBvV,KAAK6hR,YAAYj9Q,EAAM2Q,EAAUqgQ,EAAWqP,IAjBpB,mCAoB3BrgR,IAAS5E,KAAKysG,MAAQzsG,KAAK6wG,KAAKy0K,WAAW1gR,IAC3C5E,KAAK6wG,KAAKw0K,SAASzgR,IAEnBg6D,aAAuB,EAAD,IAvBK,0CAwBpB,IAxBoB,4CA6B3Bh6D,EAAK++Q,OACL/+Q,EAAK++Q,MAAO,EACZ3jR,KAAK2kR,0BAA0B1vQ,KAAKrQ,IA/BT,8EAnN/C,2BAuPI,SAAcA,GAAM,WACZxC,EAASpC,KAAKykR,gBAAgBhyP,IAAI7tB,GACtC,OAAIxC,IAGJA,EAASm9D,cAAwB,kBAAMh+D,GAAU,OAAM,OAAQ,EAAf,UAAuB,oFAClD,OADkD,SAC5CvB,KAAKukR,WAAWwB,YAAYnhR,EAAK2F,SADW,cAC7DgL,EAD6D,yBAE5DvV,KAAKgmR,gBAAgBzwQ,IAFuC,mDAIvEvV,KAAKykR,gBAAgBj9O,IAAI5iC,EAAMxC,GACxBA,EAAM,SAAS,WAAQ,EAAKqiR,gBAAL,OAA4B7/Q,SAjQlE,uCAmQI,YAA0C,IAAdA,EAAc,EAAdA,KAAMsxQ,EAAQ,EAARA,KACT,OAAjBtxQ,EAAK2F,UAGJ3F,EAAK6tQ,WAAa7tQ,EAAK2F,QAAQm5Q,QAC5BxN,EACAl2Q,KAAKqlR,SAASzgR,EAAK2F,QAAQA,SAG3BvK,KAAKolR,qBAAqBxgR,EAAK2F,SAAS,GAAxC,MACW/B,SA7Q3B,yBAiRI,SAAY5D,EAAMqhR,EAA0BrQ,EAAWqP,GAAkB,aAC/DiB,EAAmB,YAAID,GAE7B,GAA6B,IAAzBrhR,EAAK2Q,SAASxX,QAA4C,IAA5BmoR,EAAiBnoR,OAC/C,MAAO,GAEX,IANqE,EAM/DooR,EAAgB,IAAI5+O,IACpB6+O,EAAwB,IAAI7+O,IAPmC,cAQjD3iC,EAAK2Q,UAR4C,IAQrE,2BAAmC,KAAxBE,EAAwB,QAE/B,GADA0wQ,EAAc3+O,IAAI/xB,EAAMlL,QAASkL,GAC7BzV,KAAK4kO,iBAAkB,CACvB,IAAM6tC,EAAYzyQ,KAAK6wG,KAAKinK,YAAYriQ,GACxC2wQ,EAAsB5+O,IAAI/xB,EAAMc,GAAI,CAAE3R,KAAM6Q,EAAOg9P,gBAZU,8BAerE,IAfqE,EAe/DkT,EAAoB,GACpBpwQ,EAAW2wQ,EAAiB9jQ,KAAI,SAAA7X,GAClC,IAAMs6Q,IAAgB,EAAKN,WAAWM,YAAYt6Q,GAClD,IAAK,EAAKq6N,iBAAkB,CACxB,IAAMyhD,EAAoB7C,GAAwB,CAAEj5Q,UAAS+K,OAAQ1Q,EAAMigR,gBAK3E,OAJIA,GAAe,EAAKzS,oBAAsB,EAAKA,kBAAkB7nQ,KACjE87Q,EAAkBzC,oBAAqB,EACvC+B,EAAkBpiR,KAAK8iR,IAEpBA,EAEX,IAAM9vQ,EAAK,EAAKquN,iBAAiBrxG,MAAMhpH,GAASkO,WAC1CrW,EAASgkR,EAAsB3zP,IAAIlc,GACzC,GAAInU,EAAQ,CACR,IAAMikR,EAAoBjkR,EAAOwC,KAoBjC,OAnBAuhR,EAAa,OAAQE,EAAkB97Q,SACvC,EAAKkwG,MAAL,OAAkB4rK,EAAkB97Q,SACpC,EAAKkwG,MAAMjzE,IAAIj9B,EAAS87Q,GACxBA,EAAkB97Q,QAAUA,EAC5B87Q,EAAkBxB,YAAcA,EAC5BjP,EACIxzQ,EAAOqwQ,WACP4T,EAAkB9wQ,SAASoB,SAAQ,SAAA/R,GAAI,OAAIs4Q,GAAIt4Q,GAAM,SAAAA,GAAI,OAAI,EAAK61G,MAAL,OAAkB71G,EAAK2F,eACpF87Q,EAAkB9wQ,SAASgd,OAAO,EAAG8zP,EAAkB9wQ,SAASxX,QAChEsoR,EAAkB3C,OAAQ,GAG1BiC,EAAkBpiR,KAAK8iR,GAGtBxB,GAAe,EAAKzS,oBAAsB,EAAKA,kBAAkB7nQ,KACtE87Q,EAAkBzC,oBAAqB,EACvC+B,EAAkBpiR,KAAK8iR,IAEpBA,EAEX,IAAMC,EAAyB9C,GAAwB,CAAEj5Q,UAAS+K,OAAQ1Q,EAAM2R,KAAIsuQ,gBAcpF,OAbII,GAAoBA,EAAiBv7L,UAAU1sD,OAASioP,EAAiBv7L,UAAU1sD,MAAMp8B,QAAQ2V,IAAO,GACxG0uQ,EAAiBjoP,MAAMz5B,KAAK+iR,GAE5BrB,GAAoBA,EAAiBv7L,UAAUvK,WAAa8lM,EAAiBv7L,UAAUvK,UAAUv+E,QAAQ2V,IAAO,GAChH0uQ,EAAiB9lM,UAAU57E,KAAK+iR,GAEhCrB,GAAoBA,EAAiBv7L,UAAU81I,UAAYylD,EAAiBv7L,UAAU81I,SAAS5+N,QAAQ2V,IAAO,EAC9GovQ,EAAkBpiR,KAAK+iR,GAElBzB,GAAe,EAAKzS,oBAAsB,EAAKA,kBAAkB7nQ,KACtE+7Q,EAAuB1C,oBAAqB,EAC5C+B,EAAkBpiR,KAAK+iR,IAEpBA,KAjE0D,cAmElDH,EAAc3oQ,UAnEoC,IAmErE,2BAA2C,CACvC0/P,GADuC,SAC7B,SAAAt4Q,GAAI,OAAI,EAAK61G,MAAL,OAAkB71G,EAAK2F,aApEwB,kDAsEjDgL,GAtEiD,IAsErE,2BAA8B,KAAnBE,EAAmB,QAC1BzV,KAAKy6G,MAAMjzE,IAAI/xB,EAAMlL,QAASkL,IAvEmC,8BA+ErE,OANA,EAAA7Q,EAAK2Q,UAASgd,OAAd,SAAqB,EAAG3tB,EAAK2Q,SAASxX,QAAtC,mBAAiDwX,KAE7C3Q,IAAS5E,KAAKysG,MAAQzsG,KAAKqyQ,0BAAgD,IAApB98P,EAASxX,QAA6C,IAA7B4nR,EAAkB5nR,SAClGwX,EAAS,GAAGquQ,oBAAqB,EACjC+B,EAAkBpiR,KAAKgS,EAAS,KAE7BowQ,IAhWf,oBAkWI,SAAO/gR,EAAMqgR,EAAkB5/Q,GAAS,WAC9BkQ,EAAW3Q,EAAK2Q,SAAS6M,KAAI,SAAAxd,GAAI,OAAI,EAAK2hR,cAAc3hR,EAAMqgR,MAC9DD,EAAoB3/Q,GAAWjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEytQ,qBAAsBztQ,EAAQytQ,sBAAwB,CAC/Hv/I,MAD+H,SACzH3uH,GACF,OAAOS,EAAQytQ,qBAAqBv/I,MAAM3uH,EAAK2F,aAG3DvK,KAAK6wG,KAAKgxK,YAAYj9Q,IAAS5E,KAAKysG,KAAO,KAAO7nG,EAAM2Q,EAAUyvQ,GAC9DpgR,IAAS5E,KAAKysG,MACdzsG,KAAK6wG,KAAKwkK,eAAezwQ,EAAMA,EAAKigR,aAExC7kR,KAAK0kR,aAAazvQ,SA7W1B,2BA+WI,SAAcrQ,EAAMqgR,GAAkB,IAQ9BxS,EAR8B,OAClC,OAAI7tQ,EAAK8+Q,MACE,CACHn5Q,QAAS3F,EACT+sQ,YAAa/sQ,EAAKigR,YAClBpS,WAAW,IAKfA,IADAwS,GAAoBA,EAAiBv7L,UAAU81I,UAAY56N,EAAK2R,IAAM0uQ,EAAiBv7L,UAAU81I,SAAS5+N,QAAQgE,EAAK2R,KAAO,IAIlH3R,EAAKg/Q,mBAErBh/Q,EAAKg/Q,wBAAqB/pQ,EACnB,CACHtP,QAAS3F,EACT2Q,SAAU3Q,EAAKigR,YAAc9nQ,IAASqF,IAAIxd,EAAK2Q,UAAU,SAAAE,GAAK,OAAI,EAAK8wQ,cAAc9wQ,EAAOwvQ,MAAqB,GACjHtT,YAAa/sQ,EAAKigR,YAClBpS,gBAnYZ,6BAsYI,SAAgBl9P,GAIZ,OAHIvV,KAAK68L,SACLtnL,EAAW,YAAIA,GAAUzM,KAAK9I,KAAK68L,OAAO16J,QAAQi5B,KAAKp7D,KAAK68L,UAEzDtnL,IA1Yf,qBA4YI,WACIvV,KAAKkd,YAAY9E,cA7YzB,KAgZMouQ,G,WACF,WAAY5hR,GAAM,oBACd5E,KAAK4E,KAAOA,E,yCAEhB,WACI,MAAO,CACHqS,SAAUjX,KAAK4E,KAAK2F,QAAQ0M,SAASmL,KAAI,SAAAzhB,GAAC,OAAIA,EAAE4J,WAChDm2Q,eAAgB1gR,KAAK4E,KAAK2F,QAAQm2Q,kB,oBAG1C,WAAiB,OAAO1gR,KAAK4E,KAAK2Q,SAAS6M,KAAI,SAAAxd,GAAI,OAAI,IAAI4hR,EAAqC5hR,Q,iBAChG,WAAc,OAAO5E,KAAK4E,KAAK0tQ,Q,gCAC/B,WAA6B,OAAOtyQ,KAAK4E,KAAK2tQ,uB,6BAC9C,WAA0B,OAAOvyQ,KAAK4E,KAAK4tQ,oB,uBAC3C,WAAoB,OAAOxyQ,KAAK4E,KAAK+sQ,c,qBACrC,WAAkB,OAAO3xQ,KAAK4E,KAAK6tQ,Y,mBACnC,WAAgB,OAAOzyQ,KAAK4E,KAAK+tQ,U,sBACjC,WAAmB,OAAO3yQ,KAAK4E,KAAKguQ,e,KAElC6T,G,WACF,WAAYviD,EAAUi+C,EAAYuE,EAAgC3M,GAAyB,oBACvF/5Q,KAAKkkO,SAAWA,EAChBlkO,KAAKmiR,WAAaA,EAClBniR,KAAK0mR,+BAAiCA,EACtC1mR,KAAK+5Q,wBAA0BA,EAC/B/5Q,KAAKs5Q,cAAgB,IAAI/xO,IACzBvnC,KAAKkd,YAAc,GACnBld,KAAKgrO,WAAa9G,EAAS8G,W,kDAE/B,SAAex7N,GAEX,MAAO,CAAE6zN,aADYrjO,KAAKkkO,SAASyG,eAAen7N,M,2BAGtD,SAAc5K,EAAM3F,EAAOokO,EAAcv4N,GACrC9K,KAAKkkO,SAAS0G,cAAc5qO,KAAKmiR,WAAW//P,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,sCAE7F,SAAyBlG,EAAM3F,EAAOokO,EAAcv4N,GAChD9K,KAAKkkO,SAAS++C,yBAAyBjjR,KAAK0mR,iCAAiCtkQ,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,2BAE9H,SAAcP,EAAS44Q,GACD,MAIb,EAJL,OAAI54Q,EAAQo5Q,OACR,EAAAR,EAAet0Q,WAAU2K,IAAzB,oBAAgC49P,GAAoB1nD,mBAC7C,KAGP,EAAAyzD,EAAet0Q,WAAU/J,OAAzB,oBAAmCsyQ,GAAoB1nD,mBAChD,K,4BAGf,SAAe9qN,EAAM3F,EAAOokO,EAAcv4N,GAClC9K,KAAKkkO,SAAS2G,gBACd7qO,KAAKkkO,SAAS2G,eAAe7qO,KAAKmiR,WAAW//P,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,uCAGlG,SAA0BlG,EAAM3F,EAAOokO,EAAcv4N,GAC7C9K,KAAKkkO,SAASg/C,2BACdljR,KAAKkkO,SAASg/C,0BAA0BljR,KAAK0mR,iCAAiCtkQ,IAAIxd,GAAO3F,EAAOokO,EAAaA,aAAcv4N,K,6BAGnI,SAAgBu4N,GACZrjO,KAAKkkO,SAAS4G,gBAAgBzH,EAAaA,gB,qBAE/C,WACIrjO,KAAKs5Q,cAAc/7P,QACnBvd,KAAKkd,YAAc9E,YAAQpY,KAAKkd,iB,KASjC,IAAMypQ,GAAb,kDACI,WAAY1jD,EAAMzzN,EAAWm8N,EAAiBi7C,EAAqBl8C,EAAW65C,GAA0B,MAAdl/Q,EAAc,uDAAJ,GAAI,4BACpG,cAAM49N,EAAMzzN,EAAWm8N,EAAiBjB,EAAW65C,EAAYl/Q,IAC1DuhR,oBAAsBA,EAC3B,EAAKC,uBAAyB,IAAItV,GAAW,SAAA3sQ,GAAI,OAAI,IAAI4hR,GAAqC5hR,MAC9F,EAAKoqB,OAAS3pB,EAAQ2pB,OAJ8E,EAD5G,8CAOI,SAAWi0M,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,GAAS,WAChDy/Q,EAAqB,IAAI/L,GAAqBvyC,GAC9Cu+C,EAAsBr6C,EAAUtoN,KAAI,SAAAjhB,GAAC,OAAI,IAAIslR,GAAkCtlR,EAAG,EAAKghR,YAAY,kBAAM,EAAK0E,yBAAwB,EAAKlC,0BAA0BhwQ,UACrKqwQ,EAhBd,SAAyC3/Q,GACrC,IAAM2/Q,EAAoB3/Q,GAAW+9Q,GAAoB/9Q,GACzD,OAAO2/Q,GAAqB5mR,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAI4kR,GAAoB,CAAEz+C,gCAAiCy+C,EAAkBz+C,iCAAmCnoO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAI4kR,EAAkBz+C,iCAAkC,CAAE88C,yCAAF,SAA2CyD,GAC3R,OAAOzhR,EAAQkhO,gCAAgC88C,yCAAyCyD,EAAI1kQ,KAAI,SAAAzhB,GAAC,OAAIA,EAAE4J,iBAarFw8Q,CAAgC1hR,IAAY,GACtE,OAAO,IAAIi+Q,GAAuBrgD,EAAMzzN,EAAWs1Q,EAAoBC,EAAqBC,KAXpG,2BAaI,SAAcpgR,EAAMqgR,GAChB,OAAO7mR,OAAOgC,OAAO,CAAEsgR,eAAgB1gR,KAAK4mR,oBAAoBI,iBAAiBpiR,EAAK2F,UAA/EnM,OAAA,IAAAA,QAAA,IAAAA,CAAA,6CAA+GwG,EAAMqgR,MAdpI,2BAgBI,WAA4B,IAAd5/Q,EAAc,uDAAJ,GACpBrF,KAAK6wG,KAAKoxB,cAAc58H,KAjBhC,oBAmBI,SAAOT,EAAMqgR,GAAkB,WAC3B,IAAKjlR,KAAK4kO,iBACN,qEAAoBhgO,EAAMqgR,GAK9B,IAAM1xJ,EAAQ,SAAChpH,GAAD,OAAa,EAAKq6N,iBAAiBrxG,MAAMhpH,GAASkO,YAC1DwuQ,EAAqB,SAACxsK,GACxB,IADkC,EAC5Br4G,EAAS,IAAIib,IADe,cAEfo9F,GAFe,IAElC,2BAA0B,KAAf71G,EAAe,QAChBs8Q,EAAiB,EAAKrwK,KAAKmyK,sBAAsBp+Q,IAAS,EAAK6nG,KAAO,KAAO7nG,GACnF,GAAKs8Q,EAAe32Q,QAApB,CAFsB,oBAKH22Q,EAAe32Q,QAAQ0M,UALpB,IAKtB,2BAAoD,KAAzCrS,EAAyC,QAChDxC,EAAOoX,IAAI+5G,EAAM3uH,EAAK2F,WANJ,iCAFQ,8BAWlC,OAAOnI,GAEL8kR,EAAeD,EAAmBjnR,KAAK6wG,KAAKgyF,gBAC5CskF,EAAWF,EAAmBjnR,KAAK6wG,KAAKi1H,YAC9C,8DAAalhO,EAAMqgR,GACnB,IAAM9lM,EAAYn/E,KAAK6iM,eACnBukF,GAAqB,EACnBpqP,EAAQh9B,KAAK8lO,WACfuhD,GAAiB,GACP,SAARlS,EAASvwQ,GACX,IAAMs8Q,EAAiBt8Q,EAAK2F,QAC5B,GAAI22Q,EACA,IAAK,IAAIpjR,EAAI,EAAGA,EAAIojR,EAAejqQ,SAASlZ,OAAQD,IAAK,CACrD,IAAMyY,EAAKg9G,EAAM2tJ,EAAejqQ,SAASnZ,GAAGyM,SACtCA,EAAU22Q,EAAejqQ,SAASiqQ,EAAejqQ,SAASlZ,OAAS,GAAGwM,QAExE28Q,EAAa5kO,IAAI/rC,KAAuC,IAAhC4oE,EAAUv+E,QAAQ2J,KAC1C40E,EAAU57E,KAAKgH,GACf68Q,GAAqB,GAErBD,EAAS7kO,IAAI/rC,KAAmC,IAA5BymB,EAAMp8B,QAAQ2J,KAClCyyB,EAAMz5B,KAAKgH,GACX88Q,GAAiB,GAI7BziR,EAAK2Q,SAASoB,QAAQw+P,GAE1BA,CAAMn1Q,KAAK6wG,KAAKmyK,sBAAsBp+Q,IAAS5E,KAAKysG,KAAO,KAAO7nG,IAC9DwiR,GACApnR,KAAK47K,aAAaz8F,GAElBkoM,GACArnR,KAAK0nO,SAAS1qM,KAvE1B,6BA6EI,SAAgBznB,GAAU,WAWtB,OAVIvV,KAAKgvB,SACLzZ,EAAWwH,IAASiS,OAAOzZ,GAAU,SAAA5U,GACjC,IAWO2mR,EAXDllR,EAAS,EAAK4sB,OAAOA,OAAOruB,EAAG,GAC/BszC,EAWU,mBADTqzO,EAV0BllR,GAYlCklR,EAAe,EAAkB,EAEnC9V,EAAe8V,GACb7V,EAAgB6V,EAAarzO,YAG7Bw9N,EAAgB6V,GAjBf,GAAmB,IAAfrzO,EACA,MAAM,IAAI/oC,MAAM,0EAEpB,OAAsB,IAAf+oC,MAGf,uEAA6B1+B,OAxFrC,GAA+C+uQ,IC5oBxC,I,GAAMiD,GAAb,kDACI,WAAYtkD,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,GAA0B,MAAdl/Q,EAAc,uDAAJ,GAAI,4BACxE,cAAM49N,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,IACvC49N,KAAOA,EACZ,EAAKshD,WAAaA,EAClB,EAAK3/C,iBAAmBv/N,EAAQu/N,iBAJwC,EADhF,+CAOI,SAAY3B,EAAMhnK,EAAM52D,GACpB,OAAO,IAAI26Q,GAAgB/8C,EAAMhnK,EAAM52D,OAR/C,GAA8Bq5Q,I,8FCF1B39Q,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAsB9Ck8L,GAAe96O,aAAgB,eACxC+6O,GAAW,WACX,WAAYC,GAAe,oBACvB1nR,KAAK0nR,cAAgBA,EACrB1nR,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAK2nR,MAAQ,GACb3nR,KAAK4nR,wBAAqB/tQ,EAC1B7Z,KAAK6nR,4BAA6B,EAN3B,iDAQX,WACI,OAAO7nR,KAAK4nR,qBATL,sBAWX,SAAS5qG,EAAQ8qG,GAAkB,WAC/B,IAAK9nR,KAAK6nR,2BAA4B,CAClC7nR,KAAK6nR,4BAA6B,EAElC,IAAMv7C,EAAkB,IAAIxC,IAAuBv6N,6BAAoB,IACvEvP,KAAKkd,YAAY1D,IAAI+lL,aAAiB+sC,EAAiBtsO,KAAK0nR,gBAEhE,GAAI1nR,KAAK2nR,MAAM1+H,MAAK,SAAAxkJ,GAAC,OAAIA,EAAEu4K,SAAWA,KAClC,MAAM,IAAI9xK,MAAM,kDAGpB,IAAM68Q,EAAiB,CAAE/qG,SAAQ8qG,oBAMjC,OALA9nR,KAAK2nR,MAAMpkR,KAAKwkR,GAEZ/qG,EAAO8rD,mBAAqB1+N,SAASiF,gBACrCrP,KAAK4nR,mBAAqB5qG,GAEvB//J,YAAmB+/J,EAAOtoK,YAAW,kBAAM,EAAKkzQ,mBAAqB5qG,KAAS7kK,aAAa,kBAAM,EAAKwvQ,MAAMp1P,OAAO,EAAKo1P,MAAM/mR,QAAQmnR,GAAiB,MAAK/qG,EAAO+uD,cAAa,WACnL,EAAK47C,MAAQ,EAAKA,MAAM34P,QAAO,SAAAvqB,GAAC,OAAIA,IAAMsjR,KACtC,EAAKH,qBAAuB5qG,IAC5B,EAAK4qG,wBAAqB/tQ,SA/B3B,qBAmCX,WACI7Z,KAAKkd,YAAY9E,cApCV,KAuCfqvQ,GAAc1mR,GAAW,CACrBsqF,GAAQ,EAAGhvB,OACZorN,IAEH,IAAMO,GAAkC,IAAIlrP,KAAc,aAAa,GAC1DmrP,GAA6C,IAAInrP,KAAc,2BAA2B,GAC1ForP,GAA+Br3P,KAAeC,IAAIk3P,GAAiCn3P,KAAes3P,IAAIC,OACtGC,GAAmC,IAAIvrP,KAAc,2BAA2B,GAChFwrP,GAA+B,IAAIxrP,KAAc,uBAAuB,GACxEyrP,GAA8B,IAAIzrP,KAAc,sBAAsB,GACtE0rP,GAAmC,IAAI1rP,KAAc,2BAA2B,GAChF2rP,GAA8C,kCAC3D,SAASC,GAA8B/6L,EAAmBqvF,GACtD,IAAM56K,EAASurF,EAAkBg7L,aAAa3rG,EAAO8rD,kBAErD,OADAk/C,GAAgC1qG,OAAOl7K,GAChCA,EAEX,IAAMwmR,GAAgC,qCAChCC,GAAqB,0BACrBC,GAAyB,qCACzBC,GAA+B,oCAC/BC,GAAwC,6CACxCC,GAAgB,wBAChBC,GAA4B,oCAC5BC,GAAsB,iCACtBC,GAAiC,6CACjCC,GAA2B,uCAC3BC,GAAiB,4BACvB,SAASC,GAAkC7gI,GACvC,MAAwE,QAAjEA,EAAqBz+G,SAAS2+O,I,IAEnCY,G,kDACF,WAAY9gI,GAAsB,kCAC9B,gBACKA,qBAAuBA,EAC5B,EAAK6gI,kCAAoCA,GAAkC7gI,GAC3E,EAAKyqD,oBAJyB,E,qDAMlC,WAAoB,WAChBnzM,KAAK0J,UAAU1J,KAAK0oJ,qBAAqBK,0BAAyB,SAAApoJ,GAC1DA,EAAE8oR,qBAAqBb,MACvB,EAAKW,kCAAoCA,GAAkC,EAAK7gI,6B,0CAI5F,SAA6B/zI,GACzB,OAAI3U,KAAKupR,kCACE50Q,EAAM6uJ,aAAapqJ,OAEvB6uN,YAA6BtzN,K,yCAExC,SAA4BA,GACxB,OAAOuzN,YAA4BvzN,O,GArBD3K,KAwB1C,SAAS0/Q,GAAuBrkR,EAASqjJ,EAAsBihI,GAC3D,IAAI3kR,EACEkY,EAAc,IAAIhE,IAExB,MAAO,CADQ9a,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEqnO,2BAA4B,CAAExF,+BAAF,SAAiCvmO,GAAK,OAAOgpR,EAAkBziD,+BAA+BvmO,KAAS8iG,gBAAiBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAAuBznL,4BAA6BgnD,EAAqBz+G,SAASm/O,IAAiC5oL,sBAAuBkoD,EAAqBz+G,SAASo/O,IAA2B9gD,4BAA4E,QAA9CvjO,EAAKK,EAAQkjO,mCAAgD,IAAPvjO,EAAgBA,EAAKkY,EAAY1D,IAAI,IAAIgwQ,GAA4B9gI,MACjkBxrI,GAEpB,IAAI0sQ,GAAa,kDACb,WAAY3mD,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,GAAmB,0BAC9I,IAAMG,EAA6D,qBAAhCzkR,EAAQykR,oBAAsCzkR,EAAQykR,oBAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KACrJ,EAA+DY,GAAuBrkR,EAASqjJ,EAAsBihI,GAArH,mBAAOI,EAAP,KAA6BC,EAA7B,KAF8I,OAG9I,cAAM/mD,EAAMzzN,EAAWg3N,EAAUkE,EAAWtsO,OAAOgC,OAAOhC,OAAOgC,OAAOhC,OAAOgC,OAAO,CAAEgqO,iBAAiB,GAASprC,aAAc7gI,EAAaC,gBAAiBohI,OAAqBuqF,GAAuB,CAAED,0BACvM5sQ,YAAY1D,IAAIwwQ,GACrB,EAAKr8L,kBAAoB+6L,GAA8B/6L,EAAD,gBACtD,EAAKxvB,aAAeA,EACpB,EAAK8rN,wBAA0BhC,GAA2C3qG,OAAO,EAAK3vF,mBACtF,EAAKs8L,wBAAwBziP,KAAyC,IAArCniC,EAAQsgO,0BACT6iD,GAAiClrG,OAAO,EAAK3vF,mBACrDnmD,IAAI0jD,QAAQ7lF,EAAQ6kR,sBAC5C,EAAKC,wBAA0B9B,GAAiC/qG,OAAO,EAAK3vF,mBAC5E,EAAKy8L,oBAAsB9B,GAA6BhrG,OAAO,EAAK3vF,mBACpE,EAAK08L,mBAAqB9B,GAA4BjrG,OAAO,EAAK3vF,mBAClE,EAAKm8L,oBAAsBzkR,EAAQykR,oBACnC,EAAKQ,mCAAqCf,GAAkC7gI,GAC5E,EAAKxrI,YAAY1D,IAAI,EAAKm0E,mBAC1B,EAAKzwE,YAAY1D,IAAIqwQ,EAAY/yP,SAAZ,iBACjBzxB,EAAQklR,gBACR,EAAKhsN,aAAal5D,EAAQklR,gBAE9B,EAAKrtQ,YAAY1D,IAAI,EAAKwzN,sBAAqB,WAC3C,IAAM7tJ,EAAY,EAAK0jH,eACjB7lK,EAAQ,EAAK8oM,WACnB,EAAKn4I,kBAAkB68L,oBAAmB,WACtC,EAAKL,wBAAwB3iP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,GACxE,EAAKssR,mBAAmB7iP,IAAI23C,EAAUphF,OAAS,GAC/C,EAAKqsR,oBAAoB5iP,IAAyB,IAArB23C,EAAUphF,eAG/C,EAAKmf,YAAY1D,IAAI,EAAKszN,kBAAiB,WACvC,IAAM3tJ,EAAY,EAAK0jH,eACjB7lK,EAAQ,EAAK8oM,WACnB,EAAKqkD,wBAAwB3iP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,OAE5E,EAAKmf,YAAY1D,IAAIkvI,EAAqBK,0BAAyB,SAAApoJ,GAC3DA,EAAE8oR,qBAAqBb,MACvB,EAAK0B,mCAAqCf,GAAkC7gI,IAEhF,IAAIrjJ,EAAU,GACd,GAAI1E,EAAE8oR,qBAAqBX,UAAwDjvQ,IAA7B,EAAKiwQ,oBAAmC,CAC1F,IAAMA,EAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KAClEzjR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEykR,wBAE1D,GAAInpR,EAAE8oR,qBAAqBN,IAAsB,CAC7C,IAAM1lL,EAAkBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAC9D9jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEo+F,oBAE1D,GAAI9iG,EAAE8oR,qBAAqBL,IAAiC,CACxD,IAAM1nL,EAA8BgnD,EAAqBz+G,SAASm/O,IAClE/jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEq8F,gCAE1D,GAAI/gG,EAAE8oR,qBAAqBJ,IAA2B,CAClD,IAAM7oL,EAAwBkoD,EAAqBz+G,SAASo/O,IAC5DhkR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEm7F,0BAEtDpiG,OAAOsY,KAAKrR,GAAStH,OAAS,GAC9B,EAAKkkI,cAAc58H,OAG3B,EAAKm1D,UAAY,IAAIiwN,GAAJ,eAAgCrsR,OAAOgC,OAAO,CAAEsoJ,wBAAwBrjJ,IACzF,EAAK6X,YAAY1D,IAAI,EAAKghD,WA7DoH,EADrI,iDAgEb,SAAcn1D,GACV,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKu+D,aAAal5D,EAAQklR,qBAEW1wQ,IAArCxU,EAAQsgO,0BACR3lO,KAAKiqR,wBAAwBziP,MAAMniC,EAAQsgO,4BAtEtC,0BAyEb,SAAa1rL,GACT,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5DpY,KAAK0qR,QAAUnrF,aAAiBv/L,KAAMA,KAAKm+D,aAAclkB,KA5EhD,qBA8Eb,WACI,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5D,oEAjFS,GAA+BszN,KAoFhDk+C,GAAgB7oR,GAAW,CACvBsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,EAAG8tE,OACZywH,IAEH,IAAIe,GAAkB,kDAClB,WAAY1nD,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,GAAmB,0BAC9I,IAAMG,EAA6D,qBAAhCzkR,EAAQykR,oBAAsCzkR,EAAQykR,oBAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KACrJ,EAA+DY,GAAuBrkR,EAASqjJ,EAAsBihI,GAArH,mBAAOI,EAAP,KAA6BC,EAA7B,KAF8I,OAG9I,cAAM/mD,EAAMzzN,EAAWg3N,EAAUkE,EAAWtsO,OAAOgC,OAAOhC,OAAOgC,OAAOhC,OAAOgC,OAAO,CAAEgqO,iBAAiB,GAASprC,aAAc7gI,EAAaC,gBAAiBohI,OAAqBuqF,GAAuB,CAAED,0BACvM5sQ,YAAc,IAAIhE,IACvB,EAAKgE,YAAY1D,IAAIwwQ,GACrB,EAAKr8L,kBAAoB+6L,GAA8B/6L,EAAD,gBACtD,EAAKxvB,aAAeA,EACpB,EAAK2rN,oBAAsBzkR,EAAQykR,oBACnC,EAAKG,wBAA0BhC,GAA2C3qG,OAAO,EAAK3vF,mBACtF,EAAKs8L,wBAAwBziP,KAAyC,IAArCniC,EAAQsgO,0BACT6iD,GAAiClrG,OAAO,EAAK3vF,mBACrDnmD,IAAI0jD,QAAQ7lF,EAAQ6kR,sBAC5C,EAAKI,mCAAqCf,GAAkC7gI,GAC5E,EAAKxrI,YAAY1D,IAAI,EAAKm0E,mBAC1B,EAAKzwE,YAAY1D,IAAIqwQ,EAAY/yP,SAAZ,iBACjBzxB,EAAQklR,gBACR,EAAKhsN,aAAal5D,EAAQklR,gBAE1BllR,EAAQklR,gBACR,EAAKrtQ,YAAY1D,IAAI+lL,aAAiB,eAAMphI,EAAc94D,EAAQklR,iBAEtE,EAAKrtQ,YAAY1D,IAAIkvI,EAAqBK,0BAAyB,SAAApoJ,GAC3DA,EAAE8oR,qBAAqBb,MACvB,EAAK0B,mCAAqCf,GAAkC7gI,IAEhF,IAAIrjJ,EAAU,GACd,GAAI1E,EAAE8oR,qBAAqBX,UAAwDjvQ,IAA7B,EAAKiwQ,oBAAmC,CAC1F,IAAMA,EAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KAClEzjR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEykR,wBAE1D,GAAInpR,EAAE8oR,qBAAqBN,IAAsB,CAC7C,IAAM1lL,EAAkBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAC9D9jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEo+F,oBAE1D,GAAI9iG,EAAE8oR,qBAAqBL,IAAiC,CACxD,IAAM1nL,EAA8BgnD,EAAqBz+G,SAASm/O,IAClE/jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEq8F,gCAE1D,GAAI/gG,EAAE8oR,qBAAqBJ,IAA2B,CAClD,IAAM7oL,EAAwBkoD,EAAqBz+G,SAASo/O,IAC5DhkR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEm7F,0BAEtDpiG,OAAOsY,KAAKrR,GAAStH,OAAS,GAC9B,EAAKkkI,cAAc58H,OAG3B,EAAKm1D,UAAY,IAAIiwN,GAAJ,eAAgCrsR,OAAOgC,OAAO,CAAEsoJ,wBAAwBrjJ,IACzF,EAAK6X,YAAY1D,IAAI,EAAKghD,WAhDoH,EADhI,iDAmDlB,SAAcn1D,GACV,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKu+D,aAAal5D,EAAQklR,qBAEW1wQ,IAArCxU,EAAQsgO,0BACR3lO,KAAKiqR,wBAAwBziP,MAAMniC,EAAQsgO,4BAzDjC,0BA4DlB,SAAa1rL,GACT,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5DpY,KAAK0qR,QAAUnrF,aAAiBv/L,KAAMA,KAAKm+D,aAAclkB,KA/D3C,qBAiElB,WACI,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5DpY,KAAKkd,YAAY9E,UACjB,oEArEc,GAAoC82P,GAwE1Dyb,GAAqB5pR,GAAW,CAC5BsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,EAAG8tE,OACZwxH,IAEH,IAAIC,GAAc,kDACd,WAAY3nD,EAAMzzN,EAAWg3N,EAAU8oC,EAAS5kC,EAAWrlO,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,GAAmB,0BACvJ,IAAMG,EAA6D,qBAAhCzkR,EAAQykR,oBAAsCzkR,EAAQykR,oBAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KACrJ,EAA+DY,GAAuBrkR,EAASqjJ,EAAsBihI,GAArH,mBAAOI,EAAP,KAA6BC,EAA7B,KAFuJ,OAGvJ,cAAM/mD,EAAMzzN,EAAWg3N,EAAU8oC,EAAS5kC,EAAWtsO,OAAOgC,OAAOhC,OAAOgC,OAAOhC,OAAOgC,OAAO,CAAEgqO,iBAAiB,GAASprC,aAAc7gI,EAAaC,gBAAiBohI,OAAqBuqF,GAAuB,CAAED,0BAChN5sQ,YAAc,IAAIhE,IACvB,EAAKgE,YAAY1D,IAAIwwQ,GACrB,EAAKr8L,kBAAoB+6L,GAA8B/6L,EAAD,gBACtD,EAAKxvB,aAAeA,EACpB,EAAK8rN,wBAA0BhC,GAA2C3qG,OAAO,EAAK3vF,mBACtF,EAAKs8L,wBAAwBziP,KAAyC,IAArCniC,EAAQsgO,0BACT6iD,GAAiClrG,OAAO,EAAK3vF,mBACrDnmD,IAAI0jD,QAAQ7lF,EAAQ6kR,sBAC5C,EAAKC,wBAA0B9B,GAAiC/qG,OAAO,EAAK3vF,mBAC5E,EAAKy8L,oBAAsB9B,GAA6BhrG,OAAO,EAAK3vF,mBACpE,EAAK08L,mBAAqB9B,GAA4BjrG,OAAO,EAAK3vF,mBAClE,EAAKm8L,oBAAsBzkR,EAAQykR,oBACnC,EAAKQ,mCAAqCf,GAAkC7gI,GAC5E,EAAKxrI,YAAY1D,IAAI,EAAKm0E,mBAC1B,EAAKzwE,YAAY1D,IAAIqwQ,EAAY/yP,SAAZ,iBACjBzxB,EAAQklR,gBACR,EAAKhsN,aAAal5D,EAAQklR,gBAE9B,EAAKrtQ,YAAY1D,IAAI,EAAKwzN,sBAAqB,WAC3C,IAAM7tJ,EAAY,EAAK0jH,eACjB7lK,EAAQ,EAAK8oM,WACnB,EAAKn4I,kBAAkB68L,oBAAmB,WACtC,EAAKL,wBAAwB3iP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,GACxE,EAAKssR,mBAAmB7iP,IAAI23C,EAAUphF,OAAS,GAC/C,EAAKqsR,oBAAoB5iP,IAAyB,IAArB23C,EAAUphF,eAG/C,EAAKmf,YAAY1D,IAAI,EAAKszN,kBAAiB,WACvC,IAAM3tJ,EAAY,EAAK0jH,eACjB7lK,EAAQ,EAAK8oM,WACnB,EAAKqkD,wBAAwB3iP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,OAE5E,EAAKmf,YAAY1D,IAAIkvI,EAAqBK,0BAAyB,SAAApoJ,GAC3DA,EAAE8oR,qBAAqBb,MACvB,EAAK0B,mCAAqCf,GAAkC7gI,IAEhF,IAAIrjJ,EAAU,GACd,GAAI1E,EAAE8oR,qBAAqBX,UAAwDjvQ,IAA7B,EAAKiwQ,oBAAmC,CAC1F,IAAMA,EAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KAClEzjR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEykR,wBAE1D,GAAInpR,EAAE8oR,qBAAqBN,IAAsB,CAC7C,IAAM1lL,EAAkBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAC9D9jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEo+F,oBAE1D,GAAI9iG,EAAE8oR,qBAAqBL,IAAiC,CACxD,IAAM1nL,EAA8BgnD,EAAqBz+G,SAASm/O,IAClE/jR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEq8F,gCAE1D,GAAI/gG,EAAE8oR,qBAAqBJ,IAA2B,CAClD,IAAM7oL,EAAwBkoD,EAAqBz+G,SAASo/O,IAC5DhkR,EAAUjH,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIiF,GAAU,CAAEm7F,0BAEtDpiG,OAAOsY,KAAKrR,GAAStH,OAAS,GAC9B,EAAKkkI,cAAc58H,OAG3B,EAAKm1D,UAAY,IAAIqwN,GAAJ,eAAiCzsR,OAAOgC,OAAO,CAAEsoJ,wBAAwBrjJ,IAC1F,EAAK6X,YAAY1D,IAAI,EAAKghD,WA9D6H,EAD7I,iDAiEd,SAAcn1D,GACV,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKu+D,aAAal5D,EAAQklR,qBAEW1wQ,IAArCxU,EAAQsgO,0BACR3lO,KAAKiqR,wBAAwBziP,MAAMniC,EAAQsgO,4BAvErC,0BA0Ed,SAAa1rL,GACT,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5DpY,KAAK0qR,QAAUnrF,aAAiBv/L,KAAMA,KAAKm+D,aAAclkB,KA7E/C,qBA+Ed,WACI,IAAIj1C,EACoB,QAAvBA,EAAKhF,KAAK0qR,eAA4B,IAAP1lR,GAAyBA,EAAGoT,UAC5DpY,KAAKkd,YAAY9E,UACjB,oEAnFU,GAAgCk4P,GAsFlDsa,GAAiB7pR,GAAW,CACxBsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,GAAI8tE,OACbyxH,I,IAEGE,G,kDACF,WAAY9tG,EAAQ33K,GAAS,MACrBL,EADqB,4BAEzB,gBACKg4K,OAASA,EACd,EAAK+tG,WAAa,EAAKrhR,UAAU,IAAI+K,KACrC,EAAKu2Q,UAAY,EAAKD,WAAWp2Q,MACjC,EAAKjL,UAAU6tB,IAAMvI,OAAO,EAAKguJ,OAAOgwD,sBAAsB,SAAArsO,GAAC,OAAIA,EAAE6iK,wBAAwBynH,gBAA9E1zP,EAA6F,SAAA52B,GAAC,OAAI,EAAKuqR,wBAAwBvqR,OAC9I,EAAK+I,UAAU,EAAKszK,OAAOsrD,WAAU,SAAC3nO,GAAD,OAAO,EAAK2nO,UAAU3nO,EAAE4J,QAAS5J,EAAE6iK,kBACxE,EAAK95J,UAAU,EAAKszK,OAAO2rD,iBAAgB,SAAChoO,GAAD,OAAO,EAAKgoO,gBAAgBhoO,EAAE4J,QAAS5J,EAAE6iK,kBACS,mBAArE,OAAZn+J,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8lR,qBAAiD,OAAZ9lR,QAAgC,IAAZA,OAAqB,EAASA,EAAQqjJ,uBACjK,EAAKyiI,kBAAsI,iBAArG,OAAZ9lR,QAAgC,IAAZA,OAAqB,EAASA,EAAQqjJ,qBAAqBz+G,SAAS4+O,KAClH,EAAKn/Q,UAAsB,OAAZrE,QAAgC,IAAZA,OAAqB,EAASA,EAAQqjJ,qBAAqBK,0BAAyB,WACnH,EAAKoiI,kBAAsI,iBAArG,OAAZ9lR,QAAgC,IAAZA,OAAqB,EAASA,EAAQqjJ,qBAAqBz+G,SAAS4+O,UAItH,EAAKsC,kBAA2G,QAAtFnmR,EAAiB,OAAZK,QAAgC,IAAZA,OAAqB,EAASA,EAAQ8lR,yBAAsC,IAAPnmR,GAAgBA,EAhBnH,E,2DAmB7B,SAAwB2P,GACpB,GAA8B,IAA1BA,EAAMsC,SAASlZ,OAAnB,CAGA,IAAMqtR,EAAyBz2Q,EAAM6uJ,aAC/Bg9E,EAAgE,mBAAzC4qC,EAAuB5qC,eAA8B4qC,EAAuB5qC,cACnG1/J,EAAkD,mBAAlCsqM,EAAuBtqM,OAAuBsqM,EAAuBtqM,QAAU0/J,EAErGxgP,KAAKqrR,MAAMrrR,KAAKsrR,qBAAsB9qC,EAAe1/J,GADlC,EACsDnsE,EAAM6uJ,iB,uBAEnF,SAAUj5J,EAASi5J,GACf,GAAKxjK,KAAKmrR,qBAGoC,IAAxB3nH,EAAamqB,QACnC,CAGA,IAEM7sG,EAFwC,IAAxB0iF,EAAagqB,OAG7B+9F,EAAa/nH,EAAalqJ,SAAWkqJ,EAAajqJ,SAAWiqJ,EAAapqJ,OAChFpZ,KAAKqrR,MAAM9gR,GAHW,EAGau2E,EAAQyqM,EAAY/nH,M,6BAE3D,SAAgBj5J,EAASi5J,GACrB,GAAKA,EAAL,CAIA,IAAM5lK,EAAS4lK,EAAa5lK,OAG5B,KAFkBA,EAAOiR,UAAUC,SAAS,sBACpClR,EAAOiR,UAAUC,SAAS,sBAAwBlR,EAAOiR,UAAUC,SAAS,gBAAkB00J,EAAa8wD,QAAU,IAC7H,CAGA,IAEMi3D,EAAc/nH,EAAalqJ,SAAWkqJ,EAAajqJ,SAAWiqJ,EAAapqJ,OACjFpZ,KAAKqrR,MAAM9gR,GAHW,GACP,EAE4BghR,EAAY/nH,O,mBAE3D,SAAMj5J,EAASi2O,EAAe1/J,EAAQyqM,EAAY/nH,GACzCj5J,GAGLvK,KAAK+qR,WAAW91Q,KAAK,CACjBu2Q,cAAe,CACXhrC,gBACA1/J,SACA2qM,iBAAiB,GAErBF,aACAhhR,UACAi5J,qB,GAxEoBx5J,KA4E1BygR,G,kDACF,WAAYztG,EAAQ33K,GAAS,kCACzB,cAAM23K,EAAQ33K,IACT23K,OAASA,EAFW,E,sDAI7B,WACI,OAAOh9K,KAAKg9K,OAAOouD,sBAAsB,O,GANb0/C,IAS9BD,G,kDACF,WAAY7tG,EAAQ33K,GAAS,uCACnB23K,EAAQ33K,G,sDAElB,WACI,OAAOrF,KAAKg9K,OAAOouD,sBAAsB,O,GALZ0/C,IAQ/BY,G,kDACF,WAAY1uG,EAAQ33K,GAAS,uCACnB23K,EAAQ33K,G,sDAElB,WACI,IAAIL,EACJ,OAAgD,QAAxCA,EAAKhF,KAAKg9K,OAAO6lB,eAAe,UAAuB,IAAP79L,EAAgBA,OAAK6U,M,GANjDixQ,IASpC,SAASa,GAAoCn8Q,EAAWm6Q,GACpD,IAAIiC,GAAU,EACd,OAAO,SAAAj3Q,GACH,GAAIi3Q,EAEA,OADAA,GAAU,GACH,EAEX,IAAMxpR,EAASunR,EAAkBkC,aAAal3Q,EAAOnF,GACrD,OAAIpN,GAAUA,EAAO0pR,YACjBF,GAAU,GACH,IAEXA,GAAU,GACH,IAGf,IAAIG,GAAmB,kDACnB,WAAY9oD,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,EAAmB/uF,GAAsB,0BACpK,MAA6EoxF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAAtKqxF,EAAjB,EAAQ5mR,QAAsB6mR,EAA9B,EAA8BA,+BAAgC/vQ,EAA9D,EAA8DA,WADsG,OAEpK,cAAM8mN,EAAMzzN,EAAWg3N,EAAUkE,EAAWuhD,IACvC/uQ,YAAY1D,IAAI2C,GACrB,EAAKgwQ,UAAY,IAAIC,GAAJ,eAAiC/mR,EAAS6mR,EAAgC7mR,EAAQklR,eAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GACvL,EAAK19K,YAAY1D,IAAI,EAAK2yQ,WAL0I,EADrJ,iDAQnB,SAAc9mR,GACV,qEAAoBA,GACpBrF,KAAKmsR,UAAUlqJ,cAAc58H,OAVd,GAAqCs9Q,IAa5DoJ,GAAsBhrR,GAAW,CAC7BsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,EAAG8tE,MACX9tE,GAAQ,GAAI4jG,OACb88F,IAEH,IAAIM,GAA+B,kDAC/B,WAAYppD,EAAMzzN,EAAWg3N,EAAUkE,EAAWrlO,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,EAAmB/uF,GAAsB,0BACpK,MAA6EoxF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAAtKqxF,EAAjB,EAAQ5mR,QAAsB6mR,EAA9B,EAA8BA,+BAAgC/vQ,EAA9D,EAA8DA,WADsG,OAEpK,cAAM8mN,EAAMzzN,EAAWg3N,EAAUkE,EAAWuhD,IACvC/uQ,YAAY1D,IAAI2C,GACrB,EAAKgwQ,UAAY,IAAIC,GAAJ,eAAiC/mR,EAAS6mR,EAAgC7mR,EAAQklR,eAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GACvL,EAAK19K,YAAY1D,IAAI,EAAK2yQ,WAL0I,EADzI,iDAQ/B,WAA4B,IAAd9mR,EAAc,uDAAJ,GACpB,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKmsR,UAAUG,qBAAqBjnR,EAAQklR,gBAEhDvqR,KAAKmsR,UAAUlqJ,cAAc58H,OAbF,GAAiDi+Q,IAgBpF+I,GAAkCtrR,GAAW,CACzCsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,EAAG8tE,MACX9tE,GAAQ,GAAI4jG,OACbo9F,IAEH,IAAIE,GAAiB,kDACjB,WAAYtpD,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,EAAYl/Q,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,EAAmB/uF,GAAsB,0BAChL,MAA6EoxF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAAtKqxF,EAAjB,EAAQ5mR,QAAsB6mR,EAA9B,EAA8BA,+BAAgC/vQ,EAA9D,EAA8DA,WADkH,OAEhL,cAAM8mN,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,EAAY0H,IACnD/uQ,YAAY1D,IAAI2C,GACrB,EAAKgwQ,UAAY,IAAIC,GAAJ,eAAiC/mR,EAAS6mR,EAAgC7mR,EAAQklR,eAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GACvL,EAAK19K,YAAY1D,IAAI,EAAK2yQ,WALsJ,EADnK,iDAQjB,WAA4B,IAAd9mR,EAAc,uDAAJ,GACpB,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKmsR,UAAUG,qBAAqBjnR,EAAQklR,gBAEhDvqR,KAAKmsR,UAAUlqJ,cAAc58H,OAbhB,GAAmCkiR,IAgBxDgF,GAAoBxrR,GAAW,CAC3BsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,GAAI8tE,MACZ9tE,GAAQ,GAAI4jG,OACbs9F,IAEH,IAAIC,GAAsB,kDACtB,WAAYvpD,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,EAAYl/Q,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,EAAmB/uF,GAAsB,0BAChL,MAA6EoxF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAAtKqxF,EAAjB,EAAQ5mR,QAAsB6mR,EAA9B,EAA8BA,+BAAgC/vQ,EAA9D,EAA8DA,WADkH,OAEhL,cAAM8mN,EAAMzzN,EAAWg3N,EAAUkE,EAAW65C,EAAY0H,IACnD/uQ,YAAY1D,IAAI2C,GACrB,EAAKgwQ,UAAY,IAAIC,GAAJ,eAAiC/mR,EAAS6mR,EAAgC7mR,EAAQklR,eAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GACvL,EAAK19K,YAAY1D,IAAI,EAAK2yQ,WALsJ,EAD9J,2CAQtB,WAAkB,OAAOnsR,KAAKmsR,UAAUnB,YARlB,2BAStB,WAA4B,IAAd3lR,EAAc,uDAAJ,GACpB,qEAAoBA,GAChBA,EAAQklR,gBACRvqR,KAAKmsR,UAAUG,qBAAqBjnR,EAAQklR,gBAEhDvqR,KAAKmsR,UAAUlqJ,cAAc58H,OAdX,GAAwCi/Q,IAiBlEkI,GAAyBzrR,GAAW,CAChCsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,GAAI8tE,MACZ9tE,GAAQ,GAAI4jG,OACbu9F,IAEH,IAAIC,GAAkC,kDAClC,WAAYxpD,EAAMzzN,EAAWm8N,EAAiBi7C,EAAqBl8C,EAAW65C,EAAYl/Q,EAASsoF,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBihI,EAAmB/uF,GAAsB,0BAC5M,MAA6EoxF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAAtKqxF,EAAjB,EAAQ5mR,QAAsB6mR,EAA9B,EAA8BA,+BAAgC/vQ,EAA9D,EAA8DA,WAD8I,OAE5M,cAAM8mN,EAAMzzN,EAAWm8N,EAAiBi7C,EAAqBl8C,EAAW65C,EAAY0H,IAC/E/uQ,YAAY1D,IAAI2C,GACrB,EAAKgwQ,UAAY,IAAIC,GAAJ,eAAiC/mR,EAAS6mR,EAAgC7mR,EAAQklR,eAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GACvL,EAAK19K,YAAY1D,IAAI,EAAK2yQ,WALkL,EAD9K,iDAQlC,SAAc9mR,GACV,qEAAoBA,GACpBrF,KAAKmsR,UAAUlqJ,cAAc58H,OAVC,GAAoDshR,IAsB1F,SAASqF,GAA0Bx8Q,EAAWnK,EAASsoF,EAAmB+6D,EAAsBihI,EAAmB/uF,GAC/G,IAAI51L,EACEknR,EAAiC,WAEnC,IAAIxlD,EAA8Bx7I,QAAQyC,EAAkBlhD,mBAAmBg8O,KAI/E,OAHI/hD,IACAA,EAA8Bx7I,QAAQw9D,EAAqBz+G,SAAS++O,MAEjEtiD,GAELgmD,EAAkB9xF,EAAqBW,0BACvCoxF,EAAqBtnR,EAAQwzQ,0BAA4B6T,EAAkB,SAAWhkI,EAAqBz+G,SAAS8+O,IACpHe,OAAsDjwQ,IAAhCxU,EAAQykR,oBAAoCzkR,EAAQykR,oBAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KAC5I,EAA2CY,GAAuBrkR,EAASqjJ,EAAsBihI,GAAjG,mBAAOI,EAAP,KAA6B5tQ,EAA7B,KACMkoQ,EAAyBh/Q,EAAQg/Q,uBACvC,MAAO,CACH6H,iCACA/vQ,aACA9W,QAASjH,OAAOgC,OAAOhC,OAAOgC,OAAO,CAEjCgqO,iBAAiB,GAAS2/C,GAAuB,CAAE33I,OAAgE,kBAAjDsW,EAAqBz+G,SAASg/O,IAA8BvgI,EAAqBz+G,SAASg/O,SAAiBpvQ,EAAWmgQ,mBAAoBtxH,EAAqBz+G,SAASi/O,IAA4BzlL,gBAAiBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAAuBziD,4BAA6BwlD,IAAkCrT,yBAAiD,WAAvB8T,EAAiCxR,aAAqC,WAAvBwR,EAAiC7C,sBAAqB7N,8BAA+B0P,GAAoCn8Q,EAAWm6Q,GAAoBtF,yBAAwB7K,gCAAiCn0Q,EAAQm0Q,gCAAiCyE,yBAAsE,QAA3Cj5Q,EAAKK,EAAQ44Q,gCAA6C,IAAPj5Q,EAAgBA,EAAwD,gBAAlD0jJ,EAAqBz+G,SAASq/O,OA7Bp2BmD,GAAqC1rR,GAAW,CAC5CsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,GAAI2+D,MACZ3+D,GAAQ,GAAI8tE,MACZ9tE,GAAQ,GAAI4jG,OACbw9F,IAyBH,IAAIL,GAAsB,WACtB,WAAYv7K,EAAMxrG,EAAS6mR,EAAgC3B,EAAgB58L,EAAmBk8L,EAAa1rN,EAAcuqF,EAAsBkyC,GAAsB,+BACjK56L,KAAK6wG,KAAOA,EACZ7wG,KAAKm+D,aAAeA,EACpBn+D,KAAKkd,YAAc,GACnBld,KAAK2tF,kBAAoB+6L,GAA8B/6L,EAAmBkjB,GAC1E7wG,KAAKiqR,wBAA0BhC,GAA2C3qG,OAAOt9K,KAAK2tF,mBACtF3tF,KAAKiqR,wBAAwBziP,KAAyC,IAArCniC,EAAQsgO,0BACT6iD,GAAiClrG,OAAOt9K,KAAK2tF,mBACrDnmD,IAAI0jD,QAAQ7lF,EAAQ6kR,sBAC5ClqR,KAAK4sR,oBAAsBvE,GAAiC/qG,OAAOt9K,KAAK2tF,mBACxE3tF,KAAK6sR,mBAAqBvE,GAA6BhrG,OAAOt9K,KAAK2tF,mBACnE3tF,KAAK8sR,kBAAoBvE,GAA4BjrG,OAAOt9K,KAAK2tF,mBACjE3tF,KAAKsqR,mCAAqCf,GAAkC7gI,GAC5E,IAAMqkI,EAAyB,IAAI1vQ,IACnC0vQ,EAAuBvzQ,IAAIivQ,IAC3B,IAAMuE,EAA2B,WAC7B,IACML,EADkB/xF,EAAqBW,0BACA,SAAW7yC,EAAqBz+G,SAAS8+O,IACtFl4K,EAAKoxB,cAAc,CACf42I,yBAAiD,WAAvB8T,EAC1BxR,aAAqC,WAAvBwR,KAGtB3sR,KAAKssR,qBAAqB/B,GAC1BvqR,KAAKkd,YAAY3Z,KAAKvD,KAAK2tF,kBAAmBk8L,EAAY/yP,SAAS+5E,GAAOA,EAAKm8H,sBAAqB,WAChG,IAAM7tJ,EAAY0xB,EAAKgyF,eACjB7lK,EAAQ6zE,EAAKi1H,WACnB,EAAKn4I,kBAAkB68L,oBAAmB,WACtC,EAAKoC,oBAAoBplP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,GACpE,EAAK+uR,kBAAkBtlP,IAAI23C,EAAUphF,OAAS,GAC9C,EAAK8uR,mBAAmBrlP,IAAyB,IAArB23C,EAAUphF,cAE1C8yG,EAAKi8H,kBAAiB,WACtB,IAAM3tJ,EAAY0xB,EAAKgyF,eACjB7lK,EAAQ6zE,EAAKi1H,WACnB,EAAK8mD,oBAAoBplP,IAAI23C,EAAUphF,OAAS,GAAKi/B,EAAMj/B,OAAS,MACpE2qJ,EAAqBK,0BAAyB,SAAApoJ,GAC9C,IAAI27N,EAAa,GAIjB,GAHI37N,EAAE8oR,qBAAqBb,MACvB,EAAK0B,mCAAqCf,GAAkC7gI,IAE5E/nJ,EAAE8oR,qBAAqBR,IAAgB,CACvC,IAAM72I,EAASsW,EAAqBz+G,SAASg/O,IAC7C3sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAElqF,WAEhE,GAAIzxI,EAAE8oR,qBAAqBP,IAA4B,CACnD,IAAMlP,EAAqBtxH,EAAqBz+G,SAASi/O,IACzD5sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAE09C,uBAEhE,GAAIr5Q,EAAE8oR,qBAAqBN,IAAsB,CAC7C,IAAM1lL,EAAkBvY,QAAQw9D,EAAqBz+G,SAASk/O,KAC9D7sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAE74H,oBAQhE,GANI9iG,EAAE8oR,qBAAqBV,KACvBiE,IAEArsR,EAAE8oR,qBAAqBT,MACvB1sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAEoK,4BAA6BwlD,OAEzFvrR,EAAE8oR,qBAAqBX,UAA2DjvQ,IAAhCxU,EAAQykR,oBAAmC,CAC7F,IAAMA,EAAsB5+L,QAAQw9D,EAAqBz+G,SAAS6+O,KAClExsD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAEwtD,wBAKhE,GAHInpR,EAAE8oR,qBAAqBH,UAAwDzvQ,IAArCxU,EAAQ44Q,2BAClD3hD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAE2hD,yBAA4E,gBAAlDv1H,EAAqBz+G,SAASq/O,OAEpH3oR,EAAE8oR,qBAAqBL,IAAiC,CACxD,IAAM1nL,EAA8BgnD,EAAqBz+G,SAASm/O,IAClE9sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAE56H,gCAEhE,GAAI/gG,EAAE8oR,qBAAqBJ,IAA2B,CAClD,IAAM7oL,EAAwBkoD,EAAqBz+G,SAASo/O,IAC5D/sD,EAAal+N,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIk8N,GAAa,CAAE97H,0BAE5DpiG,OAAOsY,KAAK4lN,GAAYv+N,OAAS,GACjC8yG,EAAKoxB,cAAcq6F,MAEvBt8N,KAAK2tF,kBAAkBs/L,oBAAmB,SAAAtsR,GACtCA,EAAEusR,YAAYH,IACdl8K,EAAKoxB,cAAc,CAAEykG,4BAA6BwlD,SAEtDtxF,EAAqBO,kCAAiC,kBAAM6xF,QAChEhtR,KAAKw6D,UAAY,IAAIkxN,GAAsB76K,EAAMzyG,OAAOgC,OAAO,CAAEsoJ,wBAAwBrjJ,IACzFrF,KAAKkd,YAAY3Z,KAAKvD,KAAKw6D,WApFT,2CAsFtB,WAAkB,OAAOx6D,KAAKw6D,UAAUwwN,YAtFlB,2BAuFtB,SAAc3lR,QAC+BwU,IAArCxU,EAAQsgO,0BACR3lO,KAAKiqR,wBAAwBziP,MAAMniC,EAAQsgO,4BAzF7B,kCA4FtB,SAAqB4kD,GACjBnyQ,YAAQpY,KAAKmtR,QACbntR,KAAKmtR,OAAS5C,EAAiBhrF,aAAiBv/L,KAAK6wG,KAAM7wG,KAAKm+D,aAAcosN,GAAkBvgR,IAAW8T,OA9FzF,qBAgGtB,WACI9d,KAAKkd,YAAc9E,YAAQpY,KAAKkd,aAChC9E,YAAQpY,KAAKmtR,QACbntR,KAAKmtR,YAAStzQ,MAnGI,KAsG1BuyQ,GAAyBrrR,GAAW,CAChCsqF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAGm8L,IACXn8L,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG2+D,MACX3+D,GAAQ,EAAG4jG,OACZm9F,IAC2Br1P,KAAS5I,GAAGi/P,KAAwBv0H,eAC5Cw0H,sBAAsB,CACxC92Q,GAAI,YACJ4b,MAAO,EACPF,MAAO/yB,aAAS,8BAA+B,aAC/CiG,KAAM,SACN+b,YAAU,qBACL0nQ,GAAgC,CAC7BzjR,KAAM,SACNic,KAAM,CAAC,UAAW,OAClBC,iBAAkB,CACdniB,aAAS,8BAA+B,qEACxCA,aAAS,0BAA2B,iEAExCwxF,QAAS,UACTz6E,YAAa/W,aAAS,CAClBZ,IAAK,sBACL44B,QAAS,CACL,kFACA,2GAEL,yRAfD,eAiBL2xP,GAAqB,CAClB1jR,KAAM,SACNic,KAAM,CAAC,cAAe,eACtBsvE,QAAS,cACTz6E,YAAa/W,aAAS,CAClBZ,IAAK,mBACL44B,QAAS,CAAC,wGACX,+KAxBD,eA0BL4xP,GAAyB,CACtB3jR,KAAM,UACNurF,SAAS,EACTz6E,YAAa/W,aAAS,8BAA+B,qJA7BnD,eA+BL+pR,GAAgB,CACb9jR,KAAM,SACNurF,QAAS,EACTjB,QAAS,EACTC,QAAS,GACTz5E,YAAa/W,aAAS,sBAAuB,0CApC3C,eAsCLgqR,GAA4B,CACzB/jR,KAAM,SACNic,KAAM,CAAC,OAAQ,UAAW,UAC1BsvE,QAAS,UACTz6E,YAAa/W,aAAS,4BAA6B,4DA1CjD,eA4CLiqR,GAAsB,CACnBhkR,KAAM,UACNurF,SAAS,EACTz6E,YAAa/W,aAAS,+BAAgC,6DA/CpD,eAiDLkqR,GAAiC,CAC9BjkR,KAAM,SACNurF,QAAS,EACTz6E,YAAa/W,aAAS,iCAAkC,wFApDtD,eAsDLmqR,GAA2B,CACxBlkR,KAAM,SACNurF,QAAS,EACTz6E,YAAa/W,aAAS,0BAA2B,qDAzD/C,eA2DL6pR,GAA+B,CAC5B5jR,KAAM,SACNic,KAAM,CAAC,SAAU,YAAa,UAC9BC,iBAAkB,CACdniB,aAAS,sCAAuC,kHAChDA,aAAS,yCAA0C,iKACnDA,aAAS,sCAAuC,gHAEpDwxF,QAAS,YACTz6E,YAAa/W,aAAS,+BAAgC,uHApEpD,eAsEL8pR,GAAwC,CACrC7jR,KAAM,UACNurF,SAAS,EACTsI,oBAAqB95F,aAAS,wCAAyC,6QAzErE,eA2ELoqR,GAAiB,CACdnkR,KAAM,SACNic,KAAM,CAAC,cAAe,eACtBsvE,QAAS,cACTz6E,YAAa/W,aAAS,cAAe,wKA/EnC,O,6BCxwBd,+CACe,SAASouR,EAAe9yQ,EAAUC,GAC/CD,EAAS9b,UAAYN,OAAO8B,OAAOua,EAAW/b,WAC9C8b,EAAS9b,UAAUuB,YAAcua,EACjC,YAAeA,EAAUC,K,6BCJ3B,sCACI+sP,EAAS,mBACb,SAASl7C,EAAU3oJ,EAAW/kE,GAC1B,IAAI+kE,EAIA,MAAM,IAAIz4D,MAAMs8P,K,6BCPT,SAASjqQ,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAFxB,mC,6BCAA,SAASC,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAInC,SAASO,EAAad,EAAae,EAAYC,GAG5D,OAFID,GAAYb,EAAkBF,EAAYiB,UAAWF,GACrDC,GAAad,EAAkBF,EAAagB,GACzChB,EAbT,mC,6BCAA,+CAUA,aAAE,SAAF,IACmB,eAAiE,GAqHlF,OAhHO,gBAAP,WACE,OAAO,OAAO,KAAK,KAAK,WAAW,OAAS,GAQrC,EAAF,cAAP,SAAW,EAAuB,GAC5B,KACI,QAAgB,GAAlB,EAA6B,CACvB,IAAF,EAAW,MAAM,QAAQ,GAAkB,EAAiB,EAAe,WACjF,KAAK,UAAU,GAAiB,cAEzB,KAAK,UAAU,IASrB,gBAAP,SAAW,GACT,OAAO,EAAgB,KAAK,UAAU,QAAiB,GAMhD,EAAF,mBAAP,WACM,MAAS,GACT,IAAC,IAAM,KAAiB,KAAK,UAAW,CACtC,IACM,GAAE,KAEN,MAAiB,KAAK,UAAU,GAChC,GAAF,MAAM,QAAQ,GAAiB,CAEjC,IADQ,IAAF,EAAmB,GACW,uBAAgB,CAA/C,IAAM,EAAqB,KAC9B,EAAiB,KAAQ,EAAa,IAAI,GAE5C,GAAU,EAAiB,KAAK,UAEhC,GAAa,EAAa,IAAI,EAGlC,OAAO,GAMK,QAAd,SAAoB,GACd,IAAE,EAAS,IAAI,EAEf,KAAM,CACJ,EAAK,WAAW,OAClB,EAAO,EAAK,UAAU,IAOlB,IAJA,IAAF,EAAmC,gBAEnC,EAAgB,GAChB,EAAiB,GACZ,EAAI,EAAG,EAAI,EAAK,SAAU,EAAG,CAC5B,IAAF,EAA2B,EAAK,GAC9B,UACI,IAAL,gBACS,OAAJ,GACQ,IAAT,IACa,EAAD,iBACC,MAElB,IAAK,IACH,EAAgB,GAChB,EAAiB,GACjB,MAEY,QACI,GAAC,EAGT,MAEJ,IAAL,iBACS,GACL,MADC,EAEJ,EAAO,IAAI,EAAe,GAC1B,EAAgB,GAChB,EAAiB,GACjB,EAAe,qBAIf,GAAkB,EAGtB,MAEF,QACE,MAAM,IAAI,MAAM,sCAAwC,IAGzC,mBAAjB,GACF,EAAO,IAAI,EAAe,GAI9B,OAAO,GAEX,EAtHA,GA2HA,aAAE,SAAF,KAiPE,OAtOO,sBAAP,SAAiB,GACV,EAGGuC,KAAD,IAAI,EAAQ,UAFjB,KAAK,aAAU,GASZ,sBAAP,WACE,OAAO,KAAK,SAOP,oBAAP,SAAe,GACR,EAGH,KAAK,IAAI,EAAM,kBAFf,KAAK,WAAQ,GASV,oBAAP,WACE,OAAO,KAAK,OAOP,oBAAP,SAAe,QACD,GAAR,GAA8B,KAAT,EACjBA,KAAD,WAAQ,EAEb,KAAK,IAAI,EAAK,WAAY,SAOrB,EAAF,kBAAP,WACM,OAAG,KAAK,OAOP,oBAAP,SAAe,GACb,GAAK,EAEE,CACC,MAAc,EAAK,QAAQ,OAC3B,IAAe,IAAjB,EAAoB,CACd,IAAF,EAAc,EAAK,YAAY,IAAK,GAGlC,KAAH,KAAqB,IAAjB,EAAqB,EAAO,EAAK,OAAO,EAAc,GAAI,eAE3D,KAAH,IAAI,EAAM,aATjB,KAAK,WAAQ,GAkBV,uBAAP,SAAkB,GACZ,KAAM,CACR,IAAI,EAAkC,KAAK,UACvC,IACG,EAAY,SAAS,OACxB,GAAe,KAGb,EAAK,WAAW,OAClB,EAAO,EAAK,UAAU,IAGxB,EAAO,EAAc,GAEvB,KAAK,IAAI,EAAM,UAOV,EAAF,kBAAP,WACM,OAAG,KAAK,OAMP,qBAAP,SAAgB,GAIZ,KAAK,OAHF,EAGW,EAAS,MAAMma,QAFf,GAWX,8BAAP,SAAyB,EAA4B,GAC/C,IACG,KAAK,SACR,KAAK,OAAS,IAAI,GAEd,KAAD,OAAO,IAAI,EAAoB,KAQ/B,EAAF,iCAAP,SAA8B,GACxB,OAAG,KAAK,OAAS,KAAK,OAAO,IAAI,QAAsB,GAMpD,EAAF,mBAAP,WACM,OAAG,KAAK,OAAS,KAAK,OAAO,gBAAa,GAMtC,EAAF,cAAR,SAAY,EAAc,GAGpB,IAFA,IAAE,EAAY,IAAI,EAAa,EAAM,GAElC,EAAU,QAAQ,CACvB,IAAM,EAA8B,EAAU,UAC9C,GAAI,EACF,OAAQ,EAAM,MACZ,IAAK,SACH,KAAK,QAAU,EAAM,WAAQ,EAC7B,MAEF,IAAK,OACH,KAAK,MAAQ,EAAM,WAAQ,EAC3B,MAEF,IAAK,OACHna,KAAK,MAAQ,EAAM,WAAQ,EAC3B,MAEF,IAAK,OACH,IAAM,EAAgC,EAAM,WAAQ,EAC/C,KAAK,OAAwB,MAAf,KAAK,OAA+B,MAAd,IACvC,KAAK,MAAQ,GAEf,MAEF,IAAK,QACH,KAAK,OAAS,EAAS,MAAM,EAAM,MACnC,MAEF,QACE,MAAM,IAAI,MAAM,8BAA8B,EAAM,SAMrD,EAAF,mBAAP,WACM,MAAS,GAyBT,OAvBA,KAAK,UACP,GAAa,KAAK,QAAO,OAGvB,KAAK,QACP,GAAU,KAAK,OAGb,KAAK,QACP,GAAU,IAAI,KAAK,OAGjB,KAAK,QACF,KAAK,MAAM,WAAW,OACzB,GAAU,KAEZ,GAAU,KAAK,OAGb,KAAK,QAAU,KAAK,OAAO,QAC7B,GAAU,IAAI,KAAK,OAAO,YAGrB,GAOF,uBAAP,SAAkB,EAAqB,GACjC,IACF,KAAK,UAAU,YAAW,KAAK,YAAa,EAAa,IACzD,KAAK,QAAQ,YAAW,KAAK,UAAW,EAAa,IACrD,KAAK,QAAQ,YAAW,KAAK,UAAW,EAAa,IACrD,KAAK,QAAQ,YAAW,KAAK,UAAW,EAAa,IACrD,KAAK,SAAS,YAAW,KAAK,WAAY,EAAa,MAI7C,QAAd,SAAoB,GAClB,IAAM,EAAS,IAAI,EAEnB,OADA,EAAO,IAAI,EAAM,kBACV,GAEX,EAjPA,GAuPA,aACI,SAAF,EAAmC,EAA8B,GAA9B,YAA8B,YAqBjE,OAnBc,SAAd,SAAqB,GACnB,OAAO,IAAI,EAAS,EAAM,WAGd,OAAd,SAAmB,GACjB,OAAO,IAAI,EAAS,EAAM,SAGd,OAAd,SAAmB,GACb,OAAG,IAAI,EAAS,EAAM,SAGd,OAAd,SAAmB,GACb,OAAG,IAAI,EAAS,EAAM,SAGd,QAAd,SAAoB,GACd,OAAG,IAAI,EAAS,EAAM,UAE9B,EAtBA,GAwCA,iBAME,WAA4B,EAAe,GAAf,aAC1B,KAAK,YAAc,EAAQ,EAAM,OAAS,EAC1C,KAAK,mBAAyB,GAAT,EAAqB,EAAQ,iBAC9C,KAAC,cAAgB,EAiDvB,OA1CO,oBAAP,WACE,OAAO,KAAK,eAMP,iBAAP,WACE,GAAK,EAAoB,MAGvB,OAAQ,KAAK,eACX,IAAK,UA0Hb,SAAoB,GAChB,IAAI,EAhBR,SAAgC,GAC5B,OAAK,EAAU,GAAW,SAAC,GAAsB,OApJ/C,SAAkC,GACpC,IAAI,EAAwB,EAAU,WAAW,GACjD,OACC,IAAgB,GAAiB,GAAiB,IAClD,IAAgB,GAAiB,GAAiB,IAClD,IAAgB,GAAiB,GAAiB,IA+IF,OAe5B,CAAuB,GAC5C,EAAQ,cAAgB,EAAS,OAAO,GACrC,EAAoB,GAGvB,EAAU,cAAgB,OAF1B,EAAU,cAAgB,OA7HpB,CAAW,MACX,MAEF,IAAK,kBAgIb,SAA0B,GACtB,IAAI,EAAuB,EAAmB,EAAW,IAAK,IAAK,KAChE,EAAoB,GAGqB,MAAnC,EAAoB,GACQ,QAAjC,EAAe,EAAW,IAC5B,EAAU,cAAgB,EAAS,OAAO,GAC1C,EAAU,cAAgB,SAE1B,EAAU,cAAgB,EAAS,KAAK,GACxC,EAAU,cAAgB,SAG5B,EAAU,cAAgB,EAAS,KAAK,GACD,MAAnC,EAAoB,GACtB,EAAU,cAAgB,OAE1B,EAAU,cAAgB,UAfxBk2H,EAAM,cAAgB,EAAS,KAAK,GACxC,EAAU,cAAgB,QAnIpB,CAAiB,MACjB,MAEF,IAAK,QAmJb,SAAkB,GACqB,QAAjC,EAAe,EAAW,IAC5B,EAAc,EAAW,GAG3B,IAAM,EAAe,EAAmB,EAAW,IAAK,IAAK,KAC7D,EAAU,cAAgB,EAAS,KAAK,GAEnC,EAAoB,GAEqB,MAAnC,EAAoB,GAC7B,EAAU,cAAgB,OACkB,MAAnC,EAAoB,GAC7B,EAAU,cAAgB,OAE1B,EAAU,cAAgB,QAN1B,EAAU,cAAgB,OA3JpB,CAAS,MACT,MAEF,IAAK,QAkKb,SAAkB,GACuB,MAAnC,EAAoB,IACtB,EAAc,GAGhB,IAAM,EAAe,EAAmB,EAAW,IAAK,KACxD,EAAU,cAAgB,EAAS,KAAK,GAEnC,EAAoB,GAEqB,MAAnC,EAAoB,GAC7B,EAAU,cAAgB,OAE1B,EAAU,cAAgB,QAJ1B,EAAU,cAAgB,OA1KpB,CAAS,MACT,MAEF,IAAK,QA+Kb,SAAkB,GAChB,IAAM,EAAe,EAAmB,EAAW,KACnD,EAAU,cAAgB,EAAS,KAAK,GAEnC,EAAoB,GAGvB,EAAU,cAAgB,QAF1B,EAAU,cAAgB,OAnLpB,CAAS,MACT,MAEF,IAAK,SAsLb,SAAmB,GACsB,MAAnC,EAAoB,IACtB,EAAc,GAGhB,IAAM,EA5KR,SAAuB,GACnB,IAAE,EAAS,GACT,EAAU,cAAgB,EAAU,cACtC,EAAS,EAAU,MAAM,UAAU,EAAU,eAC7C,EAAU,cAAgB,EAAU,aAEtC,OAAO,EAsKe,CAAc,GACpC,EAAU,cAAgB,EAAS,MAAM,GACzC,EAAU,cAAgB,OA5LlB,CAAU,MACV,MAEF,QACE,MAAM,IAAI,MAAM,mCAAmC,KAAK,oBA5B5D,KAAK,mBAAgB,EA+BnB,QAAK,KAAK,eAElB,EA1DA,GA2EA,SAAS,EAAoB,GAC3B,OAAO,EAAU,cAAgB,EAAU,YAM7C,SAAS,EAAoB,GACzB,OAAK,EAAU,MAAM,EAAU,eAOnC,SAAS,EAAc,EAAyB,GAC1C,EAAoB,KACjB,IACH,EAAO,GAET,EAAU,eAAiB,GAQ/B,SAAS,EAAe,EAAyB,GAC7C,IAAE,EAAmB,EAAU,cAAgB,EAI/C,OAHE,EAAU,YAAc,IACtB,EAAO,EAAU,aAEhB,EAAU,MAAM,UAAU,EAAU,cAAe,GAO5D,SAAS,EAAU,EAAyB,GAGxC,IAFA,IAAE,EAAS,GAEN,EAAoB,IAAY,CACrC,IAAM,EAA2B,EAAoB,GACrD,IAAK,EAAU,GACb,MAEA,GAAU,EACV,EAAc,GAIhB,OAAK,EAeT,SAAS,EAAmB,G,IAAyB,wDACjD,OAAK,EACLA,GACA,SAAC,GAAsB,aAAsB,QAAQ,Q,iBCtjBzD,aAEA,SAAUj1F,GAYN,IAAIssP,EAAatsP,EAAOssP,UAAY,CAChCC,QAAS,GAETC,iBAAkB,GAElBC,kBAAmB,GACnBC,kBAAmB,GACnBC,iBAAkB,GAClBC,mBAAoB,GACpBC,WAAY,IACZC,eAAgB,GAChBC,sBAAuB,GACvBC,qBAAsB,GACtBC,iBAAkB,OAClBC,0BAA2B,OAC3BC,eAAgB,GAChBC,gBAAiB,OACjBC,kBAAmB,GACnBC,mBAAoB,OACpBC,qBAAsB,UACtBC,sBAAuB,OACvBC,mBAAoB,MACpBC,uBAAwB,OACxBC,qBAAsB,kBACtBC,mBAAoB,GAEpBC,eAAgB,OAChBC,qBAAsB,OACtBC,kBAAmB,OACnBC,4BAA6B,OAE7BC,WAAY,OACZC,iBAAkB,OAClBC,sBAAuB,OAEvBC,oBAAqB,IACrBC,iBAAkB,CAAC,IAAK,KACxBC,aAAc,CAAC,UAAW,MAAO,QAAS,QAG1CC,UAAW,EACXC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,YAAa,EAGb38Q,MAAO,EACP48Q,OAAQ,EAERC,OAAQ,EACRC,QAAS,EAETC,OAAQ,EACRC,SAAU,EACVC,MAAO,EACPC,WAAY,EAEZC,GAAI,EACJC,KAAM,EACN1kP,KAAM,EACNC,MAAO,EACP0kP,OAAQ,EAERC,cAAe,EACfC,YAAa,EACbC,YAAa,EAEbC,aAAc,EACdC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAEhBC,MAAO,KACPC,iBAAkB,GAElB97M,OAAO,EACP+7M,kBAAkB,EAClBC,cAAc,EACdC,eAAe,EACfC,sBAAuB,GACvBC,6BAA8B,GAC9BC,MAAO,GACbC,QAAS,GAEHC,iBAAkB,GAClBC,sBAAsB,EAStBC,iBAAkB,SAAStsR,EAAMusR,GAC7B,IAAKA,EAAWhzR,UACZ,KAAM,uEAEVgzR,EAAWvsR,KAAOA,EAEdooR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,oBAAsBphM,GAGrBA,EAAKm0B,MAAM,KAA5B,IACIq4P,EAAYD,EAAW96Q,KAEvB+7B,EAAMxtC,EAAKo7B,YAAY,KAS3B,GARAmxP,EAAWE,SAAWzsR,EAAKgkC,OAAO,EAAGwJ,GAEhC++O,EAAWz/P,QACZy/P,EAAWz/P,MAAQ0/P,GAKnBD,EAAWhzR,UAEX,IAAK,IAAIZ,KAAK+zR,EAAWnzR,UAChBgzR,EAAWhzR,UAAUZ,KACtB4zR,EAAWhzR,UAAUZ,GAAK+zR,EAAWnzR,UAAUZ,IAK3D,IAAIm8G,EAAOj6G,KAAKmxR,sBAAsBhsR,GAC/C,GAAG80G,EACFv8F,QAAQ6oL,IAAI,wBAA0BphM,QA2CtC,GAxCK/G,OAAOuB,eAAgB+xR,EAAWhzR,UAAW,UAClDN,OAAOC,eAAeqzR,EAAWhzR,UAAW,QAAS,CACpD8oC,IAAK,SAASpkC,GACb,OAAQA,GACP,IAAK,iBACGpD,KAAK8xR,OACZ,MACD,IAAK,MACJ9xR,KAAK8xR,OAASvE,EAAUiC,UACxB,MACD,IAAK,QACJxvR,KAAK8xR,OAASvE,EAAUkC,YACxB,MACD,IAAK,SACJzvR,KAAK8xR,OAASvE,EAAUmC,aACxB,MACD,IAAK,OACJ1vR,KAAK8xR,OAASvE,EAAUoC,WACxB,MACD,QACC3vR,KAAK8xR,OAAS1uR,IAGjBqvB,IAAK,SAASrvB,GACb,OAAOpD,KAAK8xR,QAEb7zR,YAAY,EACZC,cAAc,IAIXwzR,EAAWhzR,UAAUqzR,kBACxBr0Q,QAAQC,KACP,wBACCxY,EACA,uFAKCusR,EAAWM,qBACd,IAAK,IAAIl0R,KAAK4zR,EAAWM,qBAAsB,EAC1CloH,EAAM4nH,EAAWM,qBAAqBl0R,KAChCgsK,EAAI7pK,cAAgBH,SAC7BE,KAAKoxR,6BAA8BtnH,EAAI/mI,eAAkB2uP,GA0BpD,GArBA1xR,KAAKmxR,sBAAsBhsR,GAAQusR,EAC/BA,EAAWzxR,YAAY2W,OACvB5W,KAAKqxR,MAAMM,GAAaD,GAExBnE,EAAU0E,sBACV1E,EAAU0E,qBAAqB9sR,EAAMusR,GAErCz3K,GAAQszK,EAAU2E,oBAClB3E,EAAU2E,mBAAmB/sR,EAAMusR,EAAYz3K,GAI/Cy3K,EAAWhzR,UAAUqzR,kBACrBr0Q,QAAQC,KACJ,wBACIxY,EACA,uFAKRusR,EAAWM,qBACX,IAASl0R,EAAE,EAAGA,EAAI4zR,EAAWM,qBAAqBj0R,OAAQD,IAAK,CAC1E,IAAIgsK,KAAM4nH,EAAWM,qBAAqBl0R,KAChCgsK,EAAI7pK,cAAgBH,SACdE,KAAKoxR,6BAA8BtnH,EAAI/mI,eAAkB2uP,KAUtES,mBAAoB,SAAShtR,GAClC,IAAIusR,EAAavsR,EAAKlF,cAAgBH,OAASE,KAAKmxR,sBAAsBhsR,GAAQA,EAClF,IAAIusR,EACH,KAAM,wBAA0BvsR,SAC1BnF,KAAKmxR,sBAAsBO,EAAWvsR,MAC1CusR,EAAWzxR,YAAY2W,aAClB5W,KAAKqxR,MAAMK,EAAWzxR,YAAY2W,OAarCw7Q,mBAAoB,SAChBx7Q,EACA07J,EACA+/G,EACAC,EACApxQ,GAKA,IAHA,IAAI4oM,EAASrqN,MAAM6yK,EAAKv0K,QACpBmlC,EAAO,GACPqvP,EAAQhF,EAAUiF,kBAAkBlgH,GAC/Bx0K,EAAI,EAAGA,EAAIy0R,EAAMx0R,SAAUD,EAChColC,GACI,kBACAqvP,EAAMz0R,GACN,MACCu0R,GAAeA,EAAYv0R,GACtB,IAAMu0R,EAAYv0R,GAAK,IACvB,KACN,OAERolC,GACI,yBACCovP,EAAc,IAAMA,EAAc,IAAM,GACzC,OACApxQ,IACAgiB,GACI,qBAAuBuD,KAAK0xH,UAAUj3I,GAAc,OAE5D,IAAIuxQ,EAAWvgH,SAAShvI,GACxBuvP,EAASxgQ,MAAQrb,EAAK0iB,MAAM,KAAKh2B,MACjCmvR,EAASxxR,KAAO,kBAAoBqxK,EAAK17J,KACzC67Q,EAAS/zR,UAAUg0R,UAAY,WAC3B,IAAK,IAAI50R,EAAI,EAAGA,EAAIgsN,EAAO/rN,SAAUD,EACjCgsN,EAAOhsN,GAAKkC,KAAK2yR,aAAa70R,GAElC,IAAIqD,EAAImxK,EAAK7xK,MAAMT,KAAM8pN,GACzB9pN,KAAK4yR,cAAc,EAAGzxR,IAE1BnB,KAAKyxR,iBAAiB76Q,EAAM67Q,IAMhCI,qBAAsB,WAClB7yR,KAAKmxR,sBAAwB,GAC7BnxR,KAAKoxR,6BAA+B,GACpCpxR,KAAKqxR,MAAQ,GACbrxR,KAAKuxR,iBAAmB,IAS5BuB,cAAe,SAASl8Q,EAAM07J,GAE1B,IAAK,IAAIx0K,KADT+zR,EAAWnzR,UAAUkY,GAAQ07J,EACftyK,KAAKmxR,sBAAuB,CACtC,IAAIhsR,EAAOnF,KAAKmxR,sBAAsBrzR,GAClCqH,EAAKzG,UAAUkY,KACfzR,EAAKzG,UAAU,IAAMkY,GAAQzR,EAAKzG,UAAUkY,IAEhDzR,EAAKzG,UAAUkY,GAAQ07J,IAY/BygH,WAAY,SAAS5tR,EAAM8sB,EAAO5sB,GAC9B,IAAIqsR,EAAa1xR,KAAKmxR,sBAAsBhsR,GAC5C,IAAKusR,EAMD,OALInE,EAAUt4M,OACVv3D,QAAQ6oL,IACJ,mBAAqBphM,EAAO,qBAG7B,KAGKusR,EAAWhzR,UAE3BuzB,EAAQA,GAASy/P,EAAWz/P,OAAS9sB,EAErC,IAAIP,EAAO,KAEX,GAAI2oR,EAAUyD,iBACV,IACIpsR,EAAO,IAAI8sR,EAAWz/P,GACxB,MAAOtW,GAEL,OADA+B,QAAQ9Z,MAAM+X,GACP,UAGX/W,EAAO,IAAI8sR,EAAWz/P,GA6B1B,GA1BArtB,EAAKO,KAAOA,GAEPP,EAAKqtB,OAASA,IACfrtB,EAAKqtB,MAAQA,GAEZrtB,EAAKsc,aACNtc,EAAKsc,WAAa,IAEjBtc,EAAKouR,kBACNpuR,EAAKouR,gBAAkB,IAEtBpuR,EAAK89L,QACN99L,EAAK89L,MAAQ,IAEZ99L,EAAK6H,OACN7H,EAAK6H,KAAO7H,EAAKquR,eAGhBruR,EAAK+tC,MACN/tC,EAAK+tC,IAAM46O,EAAU+B,iBAAiBxrR,UAErCc,EAAKqK,OACNrK,EAAKqK,KAAOs+Q,EAAUyC,QAItB3qR,EACA,IAAK,IAAIvH,KAAKuH,EACVT,EAAK9G,GAAKuH,EAAQvH,GAI1B,OAAO8G,GASXsuR,YAAa,SAAS/tR,GAClB,OAAOnF,KAAKmxR,sBAAsBhsR,IAUtCguR,uBAAwB,SAASvB,EAAU5iQ,GACvC,IAAI7tB,EAAI,GACR,IAAK,IAAIrD,KAAKkC,KAAKmxR,sBAAuB,CACtC,IAAIhsR,EAAOnF,KAAKmxR,sBAAsBrzR,GAClCqH,EAAK6pB,QAAUA,IAIH,IAAZ4iQ,EACqB,MAAjBzsR,EAAKysR,UACLzwR,EAAEoC,KAAK4B,GAEJA,EAAKysR,UAAYA,GACxBzwR,EAAEoC,KAAK4B,IAQf,OAJInF,KAAKwxR,sBACLrwR,EAAE2H,MAAK,SAAC5E,EAAG5E,GAAJ,OAAU4E,EAAE+tB,MAAM9P,cAAc7iB,EAAE2yB,UAGtC9wB,GASXiyR,uBAAwB,SAAUpkQ,GAC9B,IAAIqkQ,EAAa,CAAE,GAAI,GACvB,IAAK,IAAIv1R,KAAKkC,KAAKmxR,sBAAuB,CAClD,IAAIhsR,EAAOnF,KAAKmxR,sBAAsBrzR,GAC1B,GAAKqH,EAAKysR,WAAazsR,EAAKmuR,UAC5B,CACX,GAAGnuR,EAAK6pB,QAAUA,EACjB,SACcqkQ,EAAWluR,EAAKysR,UAAY,GAGpC,IAAIxvR,EAAS,GACb,IAAK,IAAItE,KAAKu1R,EACVjxR,EAAOmB,KAAKzF,GAEhB,OAAOkC,KAAKwxR,qBAAuBpvR,EAAO0G,OAAS1G,GAIvDmxR,YAAa,SAASC,GAIlB,IAHA,IAAIppL,EAAMhgG,SAASqF,qBAAqB,UAEpCgkR,EAAe,GACV31R,EAAE,EAAGA,EAAIssG,EAAIrsG,OAAQD,IAC1B21R,EAAalwR,KAAK6mG,EAAItsG,IAG1B,IAAI41R,EAAatpR,SAASqF,qBAAqB,QAAQ,GACvD+jR,EAAkBppR,SAAS0O,SAASC,KAAOy6Q,EAE3C,IAAS11R,EAAE,EAAGA,EAAI21R,EAAa11R,OAAQD,IAAK,CACxC,IAAI+tD,EAAM4nO,EAAa31R,GAAG+tD,IAC1B,GACKA,GACDA,EAAI1iB,OAAO,EAAGqqP,EAAgBz1R,SAAWy1R,EAK7C,IACQjG,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,cAAgB16I,GAEhC,IAAI8nO,EAAgBvpR,SAASsF,cAAc,UAC3CikR,EAAcxuR,KAAO,kBACrBwuR,EAAc9nO,IAAMA,EACpB6nO,EAAW9jR,YAAY+jR,GACvBD,EAAW50I,YAAY20I,EAAa31R,IACtC,MAAO6d,GACL,GAAI4xQ,EAAU0D,aACV,MAAMt1Q,EAEN4xQ,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,yBAA2B16I,IAK/C0hO,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,mBAKpBqtF,YAAa,SAAShoR,EAAKhO,GACvB,GAAW,MAAPgO,EACA,OAAO,KAEX,IAAIzK,EAAIslC,KAAKC,MAAMD,KAAK0xH,UAAUvsJ,IAClC,IAAKhO,EACD,OAAOuD,EAGX,IAAK,IAAIrD,KAAKqD,EACVvD,EAAOE,GAAKqD,EAAErD,GAElB,OAAOF,GAUXi2R,kBAAmB,SAASC,EAAQC,GAChC,IACKD,IACAC,GACDD,GAAUC,GACTD,GAAUvG,EAAUuC,OAASiE,GAAUxG,EAAUwC,OAElD,OAAO,EAUX,GANA+D,EAASh0R,OAAOg0R,GAChBC,EAASj0R,OAAOi0R,GAChBD,EAASA,EAAO/wP,cAChBgxP,EAASA,EAAOhxP,eAGY,GAAxB+wP,EAAOlzR,QAAQ,OAAsC,GAAxBmzR,EAAOnzR,QAAQ,KAC5C,OAAOkzR,GAAUC,EAMrB,IAFA,IAAIC,EAAoBF,EAAOx6P,MAAM,KACjC26P,EAAoBF,EAAOz6P,MAAM,KAC5Bx7B,EAAI,EAAGA,EAAIk2R,EAAkBj2R,SAAUD,EAC5C,IAAK,IAAIqG,EAAI,EAAGA,EAAI8vR,EAAkBl2R,SAAUoG,EAC5C,GAAI6vR,EAAkBl2R,IAAMm2R,EAAkB9vR,GAC1C,OAAO,EAKnB,OAAO,GAWX+vR,uBAAwB,SAASC,EAAWl+Q,EAAa9W,GACrDa,KAAKuxR,iBAAiBt7Q,EAAY8sB,eAAiB,CAC/C59B,KAAMgvR,EACNlzR,KAAMgV,EACN9W,KAAMA,IAapBi1R,UAAW,SAAUt8Q,EAAK3S,EAAMkvR,EAAaC,GAE5C,IAAIx8Q,EACH,OAAO,KAGR,GADA3S,EAAOA,GAAQ,OACX2S,EAAI7X,cAAgBH,OAKvB,MAHwB,QAApBgY,EAAIqxB,OAAO,EAAG,IAAgBokP,EAAUuD,QAC3Ch5Q,EAAMy1Q,EAAUuD,MAAQh5Q,EAAIqxB,OAAOrxB,EAAIlX,QAAQ,KAAO,IAEhD2zR,MAAMz8Q,GACZxV,MAAK,SAASkyR,GACd,IAAIA,EAASnqB,GACX,MAAM,IAAIn/P,MAAM,kBAClB,MAAW,eAAR/F,EACKqvR,EAASC,cACD,QAARtvR,GAA0B,UAARA,EAClBqvR,EAASrrN,OACD,QAARhkE,EACAqvR,EAASn8M,OACD,QAARlzE,EACAqvR,EAAS76C,YADZ,KAGLr3O,MAAK,SAASnD,GACXk1R,GACFA,EAAYl1R,MAfP,OAiBA,SAASyE,GACf8Z,QAAQ9Z,MAAM,uBAAuBkU,GAClCw8Q,GACFA,EAAS1wR,MAGP,GAAIkU,EAAI7X,cAAgBy0R,MAAQ58Q,EAAI7X,cAAgB25O,KACzD,CACC,IAAIxpH,EAAS,IAAIukK,WASjB,GARAvkK,EAAOwkK,OAAS,SAASj0R,GAExB,IAAIyC,EAAIzC,EAAE/C,OAAOwE,OACL,QAAR+C,IACH/B,EAAIqjC,KAAKC,MAAMtjC,IACbixR,GACFA,EAAYjxR,IAEH,eAAR+B,EACF,OAAOirH,EAAOykK,kBAAkB/8Q,GAC5B,GAAW,QAAR3S,GAA0B,QAARA,EACzB,OAAOirH,EAAO0kK,WAAWh9Q,GACrB,GAAW,QAAR3S,EACP,OAAOirH,EAAO2kK,mBAAmBj9Q,GAEnC,OAAO,OAoCN,SAASk9Q,EAAOvxR,GACR8pR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,iBAEhBvmM,KAAKi1R,oBAAsB,KAC3Bj1R,KAAKud,QAED9Z,GACAzD,KAAKk1R,UAAUzxR,GAy9CvB,SAAS0xR,EAAM5+Q,EAAIpR,EAAMiwR,EAAWC,EAAaC,EAAWC,GACxDv1R,KAAKuW,GAAKA,EACVvW,KAAKmF,KAAOA,EACZnF,KAAKo1R,UAAYA,EACjBp1R,KAAKq1R,YAAcA,EACnBr1R,KAAKs1R,UAAYA,EACjBt1R,KAAKu1R,YAAcA,EAEnBv1R,KAAKwmC,MAAQ,KACbxmC,KAAK8sK,KAAO,IAAI0oH,aAAa,GA+FjC,SAAS3D,EAAW5/P,GAChBjyB,KAAKy1R,MAAMxjQ,GAq/Df,SAASyjQ,EAAYzjQ,GACjBjyB,KAAKy1R,MAAMxjQ,GAsGf,SAAS0jQ,EAAaprR,EAASqrR,GAC3B51R,KAAKogC,OAAS,IAAIo1P,aAAa,CAAC,EAAG,IACnCx1R,KAAK01F,MAAQ,EACb11F,KAAK61R,UAAY,GACjB71R,KAAK81R,UAAY,GACjB91R,KAAK+1R,SAAW,KAChB/1R,KAAKguF,SAAU,EACfhuF,KAAKg2R,WAAa,CAAC,EAAG,GACtBh2R,KAAKuK,QAAU,KACfvK,KAAKi2R,aAAe,IAAIT,aAAa,GAEjCjrR,IACAvK,KAAKuK,QAAUA,EACVqrR,GACD51R,KAAKk2R,WAAW3rR,IAuN5B,SAAS4rR,EAAaC,EAAQ3+M,EAAOpyE,GACjCrF,KAAKqF,QAAUA,EAAUA,GAAW,GAIpCrF,KAAKq2R,iBAAmBF,EAAaG,yBAEjCF,GAAUA,EAAOn2R,cAAgBH,SACjCs2R,EAAShsR,SAAS49N,cAAcouD,IAGpCp2R,KAAKu2R,GAAK,IAAIZ,EACd31R,KAAKw2R,mBAAoB,EAEzBx2R,KAAKy2R,gBAAuBlJ,EAAUa,eAAiB,WACvDpuR,KAAK02R,gBACD,UAAYnJ,EAAUe,kBAAoB,WAC9CtuR,KAAK22R,iBAAmBpJ,EAAUW,iBAClCluR,KAAK42R,mBAAqBrJ,EAAU2B,WACpClvR,KAAK62R,yBAA2B,CAC5BC,UAAW,OACXC,SAAU,OACVC,WAAY,OACZC,UAAW,QAGfj3R,KAAKk3R,oBAAqB,EAC1Bl3R,KAAKm3R,eAAgB,EACrBn3R,KAAKo3R,aAAe,EACpBp3R,KAAKq3R,iBAAkB,EACvBr3R,KAAKs3R,kBAAmB,EAE9Bt3R,KAAKu3R,WAAY,EACXv3R,KAAKw3R,sBAAuB,EAC5Bx3R,KAAKy3R,WAAY,EACjBz3R,KAAK03R,WAAY,EACjB13R,KAAK23R,kBAAmB,EACxB33R,KAAK43R,iBAAkB,EACvB53R,KAAK63R,mBAAoB,EACzB73R,KAAK83R,iBAAkB,EACvB93R,KAAK+3R,uBAAwB,EACnC/3R,KAAKg4R,eAAgB,EAEfh4R,KAAKi4R,WAAY,EACjBj4R,KAAKk4R,mBAAqB,KAE1Bl4R,KAAKgvB,OAAS,KAEpBhvB,KAAKm4R,iCAAkC,EACjCn4R,KAAKo4R,0BAA2B,EAChCp4R,KAAKq4R,gBAAiB,EACtBr4R,KAAKs4R,sBAAuB,EAC5Bt4R,KAAKu4R,4BAA6B,EAClCv4R,KAAKw4R,2BAA4B,EACjCx4R,KAAKy4R,2BAA4B,EACjCz4R,KAAK04R,0BAA2B,EAChC14R,KAAK24R,wBAAyB,EAC9B34R,KAAK44R,wBAAyB,EAC9B54R,KAAK64R,sBAAuB,EAClC74R,KAAK84R,qBAAsB,EAErB94R,KAAK+4R,kBAAoBxL,EAAUkD,YAEnCzwR,KAAKg5R,MAAQ,CAAC,EAAG,GACjBh5R,KAAKi5R,YAAc,CAAC,EAAG,GAC7Bj5R,KAAKk5R,aAAel5R,KAAKi5R,YAGnBj5R,KAAKm5R,YAAc,KACnBn5R,KAAKo5R,qBAAuB,KAG5Bp5R,KAAKq5R,QAAU,KACfr5R,KAAKs5R,iBAAmB,KACxBt5R,KAAKu5R,iBAAmB,KACxBv5R,KAAKw5R,cAAgB,KAC3Bx5R,KAAKy5R,kBAAoB,KACzBz5R,KAAK05R,YAAc,KACnB15R,KAAK25R,kBAAoB,KACzB35R,KAAK45R,mBAAqB,KAC1B55R,KAAK65R,eAAiB,KACtB75R,KAAK85R,cAAgB,KAEf95R,KAAK+5R,kBAAoB,EACzB/5R,KAAKg6R,aAAe,EAEpBh6R,KAAKi6R,aAAe,KACpBj6R,KAAKk6R,YAAc,KACzBl6R,KAAKm6R,iBAAmB,KAClBn6R,KAAKo6R,oBAAsB,CAAC,EAAG,GAC/Bp6R,KAAKi2R,aAAej2R,KAAKu2R,GAAGN,aAC5Bj2R,KAAKq6R,cAAgB,GAE3Br6R,KAAKs6R,SAAWj1R,EAAQi1R,UAAY,KAG1B7iN,GACAA,EAAM8iN,aAAav6R,MAGvBA,KAAKw6R,UAAUpE,EAAO/wR,EAAQuwR,aAC9B51R,KAAKud,QAEAlY,EAAQo1R,aACTz6R,KAAK06R,iBAGT16R,KAAK26R,WAAat1R,EAAQs1R,WArhIJ,oBAAfr9B,YACPiwB,EAAUrlR,QAAUo1P,YAAYl7L,IAAIhH,KAAKkiM,aACnB,oBAARr1P,MAAuBA,KAAKm6D,IAC1CmrN,EAAUrlR,QAAUD,KAAKm6D,IAAIhH,KAAKnzD,MAElCslR,EAAUrlR,QADe,oBAAXkyD,EACM,WAChB,IAAI/5D,EAAI+5D,EAAQwgO,SAChB,MAAc,KAAPv6R,EAAE,GAAoB,KAAPA,EAAE,IAGR,WAChB,OAAO,IAAI4H,MAAOC,WAgC1B+4B,EAAO+zP,OAASzH,EAAUyH,OAASA,EAGnCA,EAAO6F,gBAAkB,CAAC,SAAU,SAAU,WAG9C7F,EAAOt2R,UAAUo8R,kBAAoB,WACjC,OAAO96R,KAAK66R,iBAAmB7F,EAAO6F,iBAG1C7F,EAAO+F,eAAiB,EACxB/F,EAAOgG,eAAiB,EAOxBhG,EAAOt2R,UAAU6e,MAAQ,WAUrB,GATAvd,KAAK+T,OACL/T,KAAK4sK,OAASooH,EAAO+F,eAErB/6R,KAAKi7R,aAAe,EACpBj7R,KAAKk7R,aAAe,EAEpBl7R,KAAKm7R,UAAY,EAGbn7R,KAAKo7R,OACL,IAAK,IAAIt9R,EAAI,EAAGA,EAAIkC,KAAKo7R,OAAOr9R,SAAUD,EAAG,CACzC,IAAI8G,EAAO5E,KAAKo7R,OAAOt9R,GACnB8G,EAAKy2R,WACLz2R,EAAKy2R,YAMjBr7R,KAAKo7R,OAAS,GACdp7R,KAAKs7R,aAAe,GACpBt7R,KAAKu7R,gBAAkB,GACvBv7R,KAAKw7R,kBAAoB,KAGzBx7R,KAAKy7R,QAAU,GAGfz7R,KAAKuhG,MAAQ,GAGbvhG,KAAKg6N,UAAY,EAGjBh6N,KAAKklJ,OAAS,GACpBllJ,KAAK07R,KAAO,GACZ17R,KAAKg8L,MAAQ,GAGPh8L,KAAK27R,WAAa,EAClB37R,KAAK47R,YAAc,EACnB57R,KAAK67R,UAAY,EACjB77R,KAAK87R,gBAAkB,IACvB97R,KAAK+7R,aAAe,IACpB/7R,KAAKg8R,iBAAmB,EACxBh8R,KAAKi8R,UAAY,EAEjBj8R,KAAKk8R,cAAe,EAGpBl8R,KAAKm8R,OAAS,GACdn8R,KAAKo8R,QAAU,GAGfp8R,KAAKgmG,SAELhmG,KAAKq8R,mBAAmB,UAS5BrH,EAAOt2R,UAAU67R,aAAe,SAAS+B,GACrC,GAAIA,EAAYr8R,aAAek2R,EAC3B,KAAM,+CAENmG,EAAY7kN,OAAS6kN,EAAY7kN,OAASz3E,MAC1Cs8R,EAAY7kN,MAAM8kN,aAAaD,GAGnCA,EAAY7kN,MAAQz3E,KAEfA,KAAKi1R,sBACNj1R,KAAKi1R,oBAAsB,IAE/Bj1R,KAAKi1R,oBAAoB1xR,KAAK+4R,IAQlCtH,EAAOt2R,UAAU69R,aAAe,SAASD,GACrC,GAAKt8R,KAAKi1R,oBAAV,CAIA,IAAItiP,EAAM3yC,KAAKi1R,oBAAoBr0R,QAAQ07R,IAC/B,GAAR3pP,IAGJ2pP,EAAY7kN,MAAQ,KACpBz3E,KAAKi1R,oBAAoB1iQ,OAAOogB,EAAK,MASzCqiP,EAAOt2R,UAAU0hB,MAAQ,SAASwhD,GAC9B,GAAI5hE,KAAK4sK,QAAUooH,EAAOgG,eAA1B,CAGAh7R,KAAK4sK,OAASooH,EAAOgG,eAEjBh7R,KAAKw8R,aACLx8R,KAAKw8R,cAGTx8R,KAAKy8R,oBAAoB,WAGzBz8R,KAAKi8R,UAAY1O,EAAUrlR,UAC3BlI,KAAKg8R,iBAAmBh8R,KAAKi8R,UAE7B,IAAIze,EAAOx9Q,KAGX,GAAiB,IAJjB4hE,EAAWA,GAAY,IAIgB,oBAAVj3D,QAAyBA,OAAOhD,sBAAwB,CAYjF3H,KAAK08R,oBAAsB,EAX3B,SAASC,KAC2B,GAA5Bnf,EAAKkf,qBAGT/xR,OAAOhD,sBAAsBg1R,GACtCnf,EAAKof,cACPpf,EAAKof,eACMpf,EAAKqf,QAAQ,GAAIrf,EAAK0e,cAC/B1e,EAAKsf,aACPtf,EAAKsf,eAGEH,QAEA38R,KAAK08R,mBAAqB76N,aAAY,WAE3C27M,EAAKof,cACPpf,EAAKof,eACMpf,EAAKqf,QAAQ,GAAIrf,EAAK0e,cAC/B1e,EAAKsf,aACPtf,EAAKsf,gBACKl7N,KASXozN,EAAOt2R,UAAUqV,KAAO,WAChB/T,KAAK4sK,QAAUooH,EAAO+F,iBAI1B/6R,KAAK4sK,OAASooH,EAAO+F,eAEjB/6R,KAAK+8R,aACL/8R,KAAK+8R,cAGsB,MAA3B/8R,KAAK08R,sBAC2B,GAA5B18R,KAAK08R,oBACL/6N,cAAc3hE,KAAK08R,oBAEvB18R,KAAK08R,mBAAqB,MAG9B18R,KAAKy8R,oBAAoB,YAW7BzH,EAAOt2R,UAAUm+R,QAAU,SAASG,EAAKC,EAAqBpqL,GAC1DmqL,EAAMA,GAAO,EAEb,IAAI58Q,EAAQmtQ,EAAUrlR,UACtBlI,KAAK27R,WAAa,MAASv7Q,EAAQpgB,KAAKi8R,WAExC,IAAIxhL,EAAQz6G,KAAKw7R,kBACXx7R,KAAKw7R,kBACLx7R,KAAKo7R,OACX,GAAK3gL,EAAL,CAMA,GAFN5H,EAAQA,GAAS4H,EAAM18G,OAEbk/R,EAAqB,CAErB,IAAK,IAAIn/R,EAAI,EAAGA,EAAIk/R,EAAKl/R,IAAK,CAC1B,IAAK,IAAIqG,EAAI,EAAGA,EAAI0uG,IAAS1uG,EAAG,EACxBS,EAAO61G,EAAMt2G,IACR8K,MAAQs+Q,EAAUyC,QAAUprR,EAAK8tR,WACtC9tR,EAAK8tR,YAIb1yR,KAAK67R,WAAa77R,KAAK87R,gBACnB97R,KAAKk9R,eACLl9R,KAAKk9R,gBAITl9R,KAAKm9R,gBACLn9R,KAAKm9R,sBAGT,IAEI,IAASr/R,EAAI,EAAGA,EAAIk/R,EAAKl/R,IAAK,CAC1B,IAASqG,EAAI,EAAGA,EAAI0uG,IAAS1uG,EAAG,CAC5B,IAAIS,KAAO61G,EAAMt2G,IACR8K,MAAQs+Q,EAAUyC,QAAUprR,EAAK8tR,WACtC9tR,EAAK8tR,YAIb1yR,KAAK67R,WAAa77R,KAAK87R,gBACnB97R,KAAKk9R,eACLl9R,KAAKk9R,gBAITl9R,KAAKm9R,gBACLn9R,KAAKm9R,iBAETn9R,KAAKo9R,qBAAsB,EAC7B,MAAOzhR,GAEL,GADA3b,KAAKo9R,qBAAsB,EACvB7P,EAAU0D,aACV,MAAMt1Q,EAEN4xQ,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,2BAA6B5qL,GAE7C3b,KAAK+T,OAIb,IAAIquD,EAAMmrN,EAAUrlR,UAChB4yB,EAAUsnC,EAAMhiD,EACL,GAAX0a,IACAA,EAAU,GAEd96B,KAAKq9R,eAAiB,KAAQviQ,EAC9B96B,KAAK27R,YAAc,KAAQ7gQ,EAC3B96B,KAAKg6N,WAAa,EAClBh6N,KAAK+7R,aAA+C,MAA/B35N,EAAMpiE,KAAKg8R,kBAChCh8R,KAAKg8R,iBAAmB55N,IAQ5B4yN,EAAOt2R,UAAU4+R,qBAAuB,WACpCt9R,KAAKu7R,gBAAkBv7R,KAAKu9R,uBAAsB,GAClDv9R,KAAKw7R,kBAAoB,GACzB,IAAK,IAAI19R,EAAI,EAAGA,EAAIkC,KAAKu7R,gBAAgBx9R,SAAUD,EAC3CkC,KAAKu7R,gBAAgBz9R,GAAG40R,WACxB1yR,KAAKw7R,kBAAkBj4R,KAAKvD,KAAKu7R,gBAAgBz9R,KAM7Dk3R,EAAOt2R,UAAU6+R,sBAAwB,SACrCC,EACAC,GASA,IAPA,IAAIC,EAAI,GACJC,EAAI,GACJC,EAAI,GACJC,EAAgB,GAChBC,EAAkB,GAGbhgS,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EAAG,CAChD,IAAI8G,EAAO5E,KAAKo7R,OAAOt9R,GACvB,IAAI0/R,GAAmB54R,EAAK8tR,UAA5B,CAIAkL,EAAEh5R,EAAK2R,IAAM3R,EAEb,IAAIo4R,EAAM,EACV,GAAIp4R,EAAKu3R,OACL,IAAK,IAAIh4R,EAAI,EAAGsvD,EAAK7uD,EAAKu3R,OAAOp+R,OAAQoG,EAAIsvD,EAAItvD,IACzCS,EAAKu3R,OAAOh4R,IAA6B,MAAvBS,EAAKu3R,OAAOh4R,GAAG4qD,OACjCiuO,GAAO,GAKR,GAAPA,GAEAW,EAAEp6R,KAAKqB,GACH64R,IACA74R,EAAKm5R,OAAS,KAIdN,IACA74R,EAAKm5R,OAAS,GAElBD,EAAgBl5R,EAAK2R,IAAMymR,IAInC,KACoB,GAAZW,EAAE5/R,QADG,CAML6G,EAAO+4R,EAAE50R,QAIb,GAHA20R,EAAEn6R,KAAKqB,UACAg5R,EAAEh5R,EAAK2R,IAET3R,EAAKw3R,QAKV,IAASt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,OAAQD,IAAK,CAC1C,IAAIk6B,EAASpzB,EAAKw3R,QAAQt+R,GAE1B,GACc,MAAVk6B,GACgB,MAAhBA,EAAOupE,OACgB,GAAvBvpE,EAAOupE,MAAMxjG,OAMjB,IAASoG,EAAI,EAAGA,EAAI6zB,EAAOupE,MAAMxjG,OAAQoG,IAAK,CAC1C,IAAI65R,EAAUhmQ,EAAOupE,MAAMp9F,GACvB4qD,EAAO/uD,KAAKuhG,MAAMy8L,GACtB,GAAKjvO,IAKD8uO,EAAc9uO,EAAKx4C,IAAvB,CAIA,IAAI0nR,EAAcj+R,KAAKk+R,YAAYnvO,EAAKumO,WACrB,MAAf2I,GAMAR,KACEQ,EAAYF,QACVE,EAAYF,QAAUn5R,EAAKm5R,UAE/BE,EAAYF,OAASn5R,EAAKm5R,OAAS,GAGvCF,EAAc9uO,EAAKx4C,KAAM,EACzBunR,EAAgBG,EAAY1nR,KAAO,EACI,GAAnCunR,EAAgBG,EAAY1nR,KAC5BonR,EAAEp6R,KAAK06R,IAfPJ,EAAc9uO,EAAKx4C,KAAM,KAsBzC,IAAK,IAAIzY,KAAK8/R,EACVF,EAAEn6R,KAAKq6R,EAAE9/R,IAGT4/R,EAAE3/R,QAAUiC,KAAKo7R,OAAOr9R,QAAUwvR,EAAUt4M,OAC5Cv3D,QAAQC,KAAK,uCAMjB,IAHIlZ,EAAIi5R,EAAE3/R,OAGDD,EAAI,EAAGA,EAAI2G,IAAK3G,EACrB4/R,EAAE5/R,GAAGq0B,MAAQr0B,EAIjB4/R,EAAIA,EAAE50R,MAAK,SAASq1R,EAAGC,GACnB,IAAIC,EAAKF,EAAEl+R,YAAYoI,UAAY81R,EAAE91R,UAAY,EAC7Ci2R,EAAKF,EAAEn+R,YAAYoI,UAAY+1R,EAAE/1R,UAAY,EACjD,OAAIg2R,GAAMC,EAECH,EAAEhsQ,MAAQisQ,EAAEjsQ,MAEhBksQ,EAAKC,KAIhB,IAASxgS,EAAI,EAAGA,EAAI2G,IAAK3G,EACrB4/R,EAAE5/R,GAAGq0B,MAAQr0B,EAGjB,OAAO4/R,GASX1I,EAAOt2R,UAAU6/R,aAAe,SAAS35R,GAKrC,IAJA,IAAI45R,EAAY,GACZjjO,EAAU,CAAC32D,GACXyuK,EAAU,GAEP93G,EAAQx9D,QAAQ,CACnB,IAAI06J,EAAUl9F,EAAQxyD,QACtB,GAAK0vJ,EAAQ0jI,OAAb,CAGK9oH,EAAQ5a,EAAQliJ,KAAOkiJ,GAAW7zJ,IACnCyuK,EAAQ5a,EAAQliJ,KAAM,EACtBioR,EAAUj7R,KAAKk1J,IAGnB,IAAK,IAAI36J,EAAI,EAAGA,EAAI26J,EAAQ0jI,OAAOp+R,SAAUD,EAAG,CAC5C,IAAIsxF,EAAQqpE,EAAQgmI,aAAa3gS,GAC7BsxF,IAAsC,GAA7BovM,EAAU59R,QAAQwuF,IAC3B7zB,EAAQh4D,KAAK6rF,KAQzB,OAHAovM,EAAU11R,MAAK,SAAS5E,EAAG5E,GACvB,OAAO4E,EAAEiuB,MAAQ7yB,EAAE6yB,SAEhBqsQ,GAOXxJ,EAAOt2R,UAAUggS,QAAU,SAASvxR,GAChCA,EAASA,GAAU,IAInB,IAFA,IAAIstG,EAAQz6G,KAAKu9R,uBAAsB,GAAO,GAC1CjuB,EAAU,GACLxxQ,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAAG,CACnC,IACI6gS,GADA/5R,EAAO61G,EAAM38G,IACFigS,QAAU,EACpBzuB,EAAQqvB,KACTrvB,EAAQqvB,GAAO,IAEnBrvB,EAAQqvB,GAAKp7R,KAAKqB,GAGtB,IAAIqX,EAAI9O,EAER,IAASrP,EAAI,EAAGA,EAAIwxQ,EAAQvxQ,SAAUD,EAAG,CACrC,IAAI0hB,EAAS8vP,EAAQxxQ,GACrB,GAAK0hB,EAAL,CAKA,IAFA,IAAIo/Q,EAAW,IACXl8R,EAAIyK,EAASogR,EAAUG,kBAClBvpR,EAAI,EAAGA,EAAIqb,EAAOzhB,SAAUoG,EAAG,CACpC,IAAIS,KAAO4a,EAAOrb,IACbwuC,IAAI,GAAK12B,EACdrX,EAAK+tC,IAAI,GAAKjwC,EACVkC,EAAK6H,KAAK,GAAKmyR,IACfA,EAAWh6R,EAAK6H,KAAK,IAEzB/J,GAAKkC,EAAK6H,KAAK,GAAKU,EAASogR,EAAUG,kBAE3CzxQ,GAAK2iR,EAAWzxR,GAGpBnN,KAAK6+R,gBAAe,GAAM,IAQ9B7J,EAAOt2R,UAAUwJ,QAAU,WACvB,OAAOlI,KAAK27R,YAShB3G,EAAOt2R,UAAUogS,aAAe,WAC5B,OAAO9+R,KAAK67R,WAUhB7G,EAAOt2R,UAAUqgS,eAAiB,WAC9B,OAAO/+R,KAAK+7R,cAShB/G,EAAOt2R,UAAU+9R,oBAAsB,SAASuC,EAAWl1E,EAAQ76M,GAC/DA,EAAOA,GAAQs+Q,EAAUyC,OAEzB,IAAIv1K,EAAQz6G,KAAKu7R,gBAAkBv7R,KAAKu7R,gBAAkBv7R,KAAKo7R,OAC/D,GAAK3gL,EAIL,IAAK,IAAIt2G,EAAI,EAAGM,EAAIg2G,EAAM18G,OAAQoG,EAAIM,IAAKN,EAAG,CAC1C,IAAIS,EAAO61G,EAAMt2G,GAGbS,EAAK3E,cAAgBstR,EAAU0R,UAClB,aAAbD,EAQCp6R,EAAKo6R,IAAcp6R,EAAKqK,MAAQA,SAGtB4K,IAAXiwM,EACAllN,EAAKo6R,KACEl1E,GAAUA,EAAO7pN,cAAgBR,MACxCmF,EAAKo6R,GAAWv+R,MAAMmE,EAAMklN,GAE5BllN,EAAKo6R,GAAWl1E,IAdZllN,EAAKqK,MAAQA,GACbrK,EAAK63R,oBAAoBuC,EAAWl1E,EAAQ76M,KAkB5D+lR,EAAOt2R,UAAU29R,mBAAqB,SAASvmQ,EAAQg0L,GACnD,GAAK9pN,KAAKi1R,oBAIV,IAAK,IAAIn3R,EAAI,EAAGA,EAAIkC,KAAKi1R,oBAAoBl3R,SAAUD,EAAG,CACtD,IAAIoD,EAAIlB,KAAKi1R,oBAAoBn3R,GAC7BoD,EAAE40B,IACF50B,EAAE40B,GAAQr1B,MAAMS,EAAG4oN,KAW/BkrE,EAAOt2R,UAAU8a,IAAM,SAAS5U,EAAMs6R,GAClC,GAAKt6R,EAAL,CAKA,GAAIA,EAAK3E,cAAgBy1R,EAMrB,OALA11R,KAAKy7R,QAAQl4R,KAAKqB,GAClB5E,KAAK6+R,gBAAe,GACpB7+R,KAAKgmG,SACLphG,EAAK6yE,MAAQz3E,UACbA,KAAKm7R,WAYT,IAPgB,GAAZv2R,EAAK2R,IAA0C,MAA9BvW,KAAKs7R,aAAa12R,EAAK2R,MACxCmH,QAAQC,KACJ,gEAEJ/Y,EAAK2R,KAAOvW,KAAKi7R,cAGjBj7R,KAAKo7R,OAAOr9R,QAAUwvR,EAAU8B,oBAChC,KAAM,oDAmCV,OA/Be,MAAXzqR,EAAK2R,KAA0B,GAAZ3R,EAAK2R,GACxB3R,EAAK2R,KAAOvW,KAAKi7R,aACVj7R,KAAKi7R,aAAer2R,EAAK2R,KAChCvW,KAAKi7R,aAAer2R,EAAK2R,IAG7B3R,EAAK6yE,MAAQz3E,KACbA,KAAKm7R,WAELn7R,KAAKo7R,OAAO73R,KAAKqB,GACjB5E,KAAKs7R,aAAa12R,EAAK2R,IAAM3R,EAEzBA,EAAKu6R,SACLv6R,EAAKu6R,QAAQn/R,MAGbA,KAAKklJ,OAAO8yI,eACZpzR,EAAKw6R,cAGJF,GACDl/R,KAAKs9R,uBAGLt9R,KAAKq/R,aACLr/R,KAAKq/R,YAAYz6R,GAGrB5E,KAAK6+R,gBAAe,GACpB7+R,KAAKgmG,SAEEphG,IASXowR,EAAOt2R,UAAUoG,OAAS,SAASF,GAC/B,GAAIA,EAAK3E,cAAgBstR,EAAUmI,YAAa,CAC5C,IAAIz2R,EAAQe,KAAKy7R,QAAQ76R,QAAQgE,GAQjC,OAPc,GAAV3F,GACAe,KAAKy7R,QAAQlpQ,OAAOtzB,EAAO,GAE/B2F,EAAK6yE,MAAQ,KACbz3E,KAAKm7R,WACLn7R,KAAK6+R,gBAAe,GAAM,QAC1B7+R,KAAKgmG,SAIT,GAAkC,MAA9BhmG,KAAKs7R,aAAa12R,EAAK2R,MAIvB3R,EAAK06R,cAAT,CAOA,GAHNt/R,KAAKu/R,eAGK36R,EAAKu3R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,OAAQD,IAAK,CAExB,OADb0hS,EAAO56R,EAAKu3R,OAAOr+R,IACdixD,MACLnqD,EAAK66R,gBAAgB3hS,GAMjC,GAAI8G,EAAKw3R,QACL,IAASt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,OAAQD,IAAK,CAC1C,IAAI0hS,EACc,OADdA,EAAO56R,EAAKw3R,QAAQt+R,IACfyjG,OAAiBi+L,EAAKj+L,MAAMxjG,QACjC6G,EAAK86R,iBAAiB5hS,GAgBlC,GARI8G,EAAKy2R,WACLz2R,EAAKy2R,YAGTz2R,EAAK6yE,MAAQ,KACbz3E,KAAKm7R,WAGDn7R,KAAKi1R,oBACL,IAASn3R,EAAI,EAAGA,EAAIkC,KAAKi1R,oBAAoBl3R,SAAUD,EAAG,CACtD,IAAIs4R,EAASp2R,KAAKi1R,oBAAoBn3R,GAClCs4R,EAAOuJ,eAAe/6R,EAAK2R,YACpB6/Q,EAAOuJ,eAAe/6R,EAAK2R,IAElC6/Q,EAAOwJ,cAAgBh7R,IACvBwxR,EAAOwJ,aAAe,MAMlC,IAAIjtP,EAAM3yC,KAAKo7R,OAAOx6R,QAAQgE,IAClB,GAAR+tC,GACA3yC,KAAKo7R,OAAO7oQ,OAAOogB,EAAK,UAErB3yC,KAAKs7R,aAAa12R,EAAK2R,IAE1BvW,KAAK6/R,eACL7/R,KAAK6/R,cAAcj7R,GAI7B5E,KAAKq8R,mBAAmB,eAElBr8R,KAAK6+R,gBAAe,GAAM,GAChC7+R,KAAK8/R,cACC9/R,KAAKgmG,SAELhmG,KAAKs9R,yBASTtI,EAAOt2R,UAAUw/R,YAAc,SAAS3nR,GACpC,OAAU,MAANA,EACO,KAEJvW,KAAKs7R,aAAa/kR,IAS7By+Q,EAAOt2R,UAAUqhS,iBAAmB,SAASC,EAAa59R,IACtDA,EAASA,GAAU,IACZrE,OAAS,EAChB,IAAK,IAAID,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EACzCkC,KAAKo7R,OAAOt9R,GAAGmC,cAAgB+/R,GAC/B59R,EAAOmB,KAAKvD,KAAKo7R,OAAOt9R,IAGhC,OAAOsE,GASX4yR,EAAOt2R,UAAUuhS,gBAAkB,SAAS96R,EAAM/C,GAC1C+C,EAAOA,EAAK49B,eAChB3gC,EAASA,GAAU,IACZrE,OAAS,EAChB,IAAK,IAAID,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EACzCkC,KAAKo7R,OAAOt9R,GAAGqH,KAAK49B,eAAiB59B,GACrC/C,EAAOmB,KAAKvD,KAAKo7R,OAAOt9R,IAGhC,OAAOsE,GASX4yR,EAAOt2R,UAAUwhS,gBAAkB,SAASjuQ,GACxC,IAAK,IAAIn0B,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EAC7C,GAAIkC,KAAKo7R,OAAOt9R,GAAGm0B,OAASA,EACxB,OAAOjyB,KAAKo7R,OAAOt9R,GAG3B,OAAO,MASXk3R,EAAOt2R,UAAUyhS,iBAAmB,SAASluQ,GAEzC,IADA,IAAI7vB,EAAS,GACJtE,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EACzCkC,KAAKo7R,OAAOt9R,GAAGm0B,OAASA,GACxB7vB,EAAOmB,KAAKvD,KAAKo7R,OAAOt9R,IAGhC,OAAOsE,GAWX4yR,EAAOt2R,UAAU0hS,aAAe,SAASnkR,EAAGvZ,EAAG29R,EAAYlzR,GAEvD,IAAK,IAAIrP,GADTuiS,EAAaA,GAAcrgS,KAAKo7R,QACRr9R,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7C,IAAIyC,EAAI8/R,EAAWviS,GACnB,GAAIyC,EAAE+/R,cAAcrkR,EAAGvZ,EAAGyK,GACtB,OAAO5M,EAGf,OAAO,MAUXy0R,EAAOt2R,UAAU6hS,cAAgB,SAAStkR,EAAGvZ,GACzC,IAAK,IAAI5E,EAAIkC,KAAKy7R,QAAQ19R,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC/C,IAAI6E,EAAI3C,KAAKy7R,QAAQ39R,GACrB,GAAI6E,EAAE29R,cAAcrkR,EAAGvZ,EAAG,GAAG,GACzB,OAAOC,EAGf,OAAO,MAQXqyR,EAAOt2R,UAAU8hS,eAAiB,WAE9B,IADA,IACS1iS,EAAI,EAAGA,EAAIkC,KAAKo7R,OAAOr9R,OAAQD,IAAK,CACzC,IAAI8G,EAAO5E,KAAKo7R,OAAOt9R,GACnB+3B,EAAO03P,EAAU4D,sBAAsBvsR,EAAKO,MAChD,GAAIP,EAAK3E,aAAe41B,EAAxB,CAGAnY,QAAQ6oL,IAAI,yCAA2C3hM,EAAKO,MAC5D,IAAIs7R,EAAUlT,EAAUwF,WAAWnuR,EAAKO,OAC9B,EACVnF,KAAKo7R,OAAOt9R,GAAK2iS,EACjBA,EAAQvL,UAAUtwR,EAAKsmC,aACvBu1P,EAAQhpN,MAAQz3E,KAChBA,KAAKs7R,aAAamF,EAAQlqR,IAAMkqR,EAC5B77R,EAAKu3R,SACLsE,EAAQtE,OAASv3R,EAAKu3R,OAAOr4R,UAE7Bc,EAAKw3R,UACLqE,EAAQrE,QAAUx3R,EAAKw3R,QAAQt4R,WAGvC9D,KAAKs9R,wBAKTtI,EAAOt2R,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACzC3gS,KAAK4gS,aAAe5gS,KAAK+/R,iBACrBxS,EAAUsT,WACV7gS,KAAK4gS,cAET,IAAK,IAAI9iS,EAAI,EAAGA,EAAIkC,KAAK4gS,aAAa7iS,SAAUD,EAAG,CAC/C,IAAI8G,EAAO5E,KAAK4gS,aAAa9iS,GAC7B,GAAI8G,EAAKsc,WAAWtK,MAAQkf,EAA5B,CAGAlxB,EAAK87R,SAAS5qQ,EAAQ6qQ,GACtB,SAIR3L,EAAOt2R,UAAUqiE,QAAU,SAASjrC,EAAQ6qQ,GACpC3gS,KAAK8gS,WACL9gS,KAAK8gS,UAAUhrQ,EAAQ6qQ,IAW/B3L,EAAOt2R,UAAUqiS,SAAW,SAASnqR,EAAMzR,EAAMnD,GACjChC,KAAKm8R,OAAOvlR,KAM9B5W,KAAKu/R,eACCv/R,KAAKm8R,OAAOvlR,GAAQ,CAAEA,KAAMA,EAAMzR,KAAMA,EAAMnD,MAAOA,GACrDhC,KAAKm7R,WACXn7R,KAAK8/R,cAEK9/R,KAAKghS,cACLhhS,KAAKghS,aAAapqR,EAAMzR,GAGxBnF,KAAKihS,uBACLjhS,KAAKihS,0BAUbjM,EAAOt2R,UAAUwiS,aAAe,SAAStqR,EAAMzX,GAC3C,IAAIiwF,EAAQpvF,KAAKm8R,OAAOvlR,GACnBw4E,IAGLA,EAAMptF,MAAQ7C,IASlB61R,EAAOt2R,UAAUi0R,aAAe,SAAS/7Q,GACrC,IAAIw4E,EAAQpvF,KAAKm8R,OAAOvlR,GACxB,OAAKw4E,EAGEA,EAAMptF,MAFF,MAWfgzR,EAAOt2R,UAAUyiS,YAAc,SAASC,EAAUxqR,GAC9C,GAAIA,GAAQwqR,EAAZ,CAIA,IAAKphS,KAAKm8R,OAAOiF,GACb,OAAO,EAGX,GAAIphS,KAAKm8R,OAAOvlR,GAEZ,OADA8G,QAAQ9Z,MAAM,8CACP,EAGX5D,KAAKm8R,OAAOvlR,GAAQ5W,KAAKm8R,OAAOiF,UACzBphS,KAAKm8R,OAAOiF,GACnBphS,KAAKm7R,WAEDn7R,KAAKqhS,gBACLrhS,KAAKqhS,eAAeD,EAAUxqR,GAG9B5W,KAAKihS,uBACLjhS,KAAKihS,0BAUbjM,EAAOt2R,UAAU4iS,gBAAkB,SAAS1qR,EAAMzR,GAC9C,IAAKnF,KAAKm8R,OAAOvlR,GACb,OAAO,EAIP5W,KAAKm8R,OAAOvlR,GAAMzR,MAClBrF,OAAOE,KAAKm8R,OAAOvlR,GAAMzR,MAAM49B,eAC3BjjC,OAAOqF,GAAM49B,gBAKrB/iC,KAAKm8R,OAAOvlR,GAAMzR,KAAOA,EACzBnF,KAAKm7R,WACDn7R,KAAKuhS,oBACLvhS,KAAKuhS,mBAAmB3qR,EAAMzR,KAUtC6vR,EAAOt2R,UAAU8iS,YAAc,SAAS5qR,GACpC,QAAK5W,KAAKm8R,OAAOvlR,YAIV5W,KAAKm8R,OAAOvlR,GACnB5W,KAAKm7R,WAEDn7R,KAAKyhS,gBACLzhS,KAAKyhS,eAAe7qR,GAGpB5W,KAAKihS,uBACLjhS,KAAKihS,yBAEF,IAUXjM,EAAOt2R,UAAUgjS,UAAY,SAAS9qR,EAAMzR,EAAMnD,GAC9ChC,KAAKo8R,QAAQxlR,GAAQ,CAAEA,KAAMA,EAAMzR,KAAMA,EAAMnD,MAAOA,GACtDhC,KAAKm7R,WAEDn7R,KAAK2hS,eACL3hS,KAAK2hS,cAAc/qR,EAAMzR,GAGzBnF,KAAKihS,uBACLjhS,KAAKihS,yBAUbjM,EAAOt2R,UAAUk0R,cAAgB,SAASh8Q,EAAM5U,GAC5C,IAAIg2B,EAASh4B,KAAKo8R,QAAQxlR,GACrBohB,IAGLA,EAAOh2B,MAAQA,IASnBgzR,EAAOt2R,UAAUkjS,cAAgB,SAAShrR,GACtC,IAAIohB,EAASh4B,KAAKo8R,QAAQxlR,GAC1B,OAAKohB,EAGEA,EAAOh2B,MAFH,MAWfgzR,EAAOt2R,UAAUmjS,aAAe,SAAST,EAAUxqR,GAC/C,QAAK5W,KAAKo8R,QAAQgF,KAIdphS,KAAKo8R,QAAQxlR,IACb8G,QAAQ9Z,MAAM,+CACP,IAGX5D,KAAKo8R,QAAQxlR,GAAQ5W,KAAKo8R,QAAQgF,UAC3BphS,KAAKo8R,QAAQgF,GACpBphS,KAAKm7R,WAEDn7R,KAAK8hS,iBACL9hS,KAAK8hS,gBAAgBV,EAAUxqR,QAG/B5W,KAAKihS,uBACLjhS,KAAKihS,4BAUbjM,EAAOt2R,UAAUqjS,iBAAmB,SAASnrR,EAAMzR,GAC/C,IAAKnF,KAAKo8R,QAAQxlR,GACd,OAAO,EAIP5W,KAAKo8R,QAAQxlR,GAAMzR,MACnBrF,OAAOE,KAAKo8R,QAAQxlR,GAAMzR,MAAM49B,eAC5BjjC,OAAOqF,GAAM49B,gBAKrB/iC,KAAKo8R,QAAQxlR,GAAMzR,KAAOA,EAC1BnF,KAAKm7R,WACDn7R,KAAKgiS,qBACLhiS,KAAKgiS,oBAAoBprR,EAAMzR,KASvC6vR,EAAOt2R,UAAUujS,aAAe,SAASrrR,GACrC,QAAK5W,KAAKo8R,QAAQxlR,YAGX5W,KAAKo8R,QAAQxlR,GACpB5W,KAAKm7R,WAEDn7R,KAAKkiS,iBACLliS,KAAKkiS,gBAAgBtrR,GAGrB5W,KAAKihS,uBACLjhS,KAAKihS,yBAEF,IAGXjM,EAAOt2R,UAAUyjS,aAAe,SAASvrR,EAAM5U,GAE3C,IADA,IAAIy4G,EAAQz6G,KAAKmgS,iBAAiBvpR,GACzB9Y,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAChC28G,EAAM38G,GAAGgjS,UAAU9+R,IAI3BgzR,EAAOt2R,UAAU0jS,YAAc,SAASxrR,EAAM07J,GAE1C,IADA,IAAI73D,EAAQz6G,KAAKmgS,iBAAiBvpR,GACzB9Y,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAChC28G,EAAM38G,GAAGukS,WAAW/vH,IAK5B0iH,EAAOt2R,UAAU6gS,aAAe,SAASxkQ,GACjC/6B,KAAK65R,gBACL75R,KAAK65R,eAAe75R,KAAK+6B,GAE7B/6B,KAAKq8R,mBAAmB,iBAAkBr8R,OAI9Cg1R,EAAOt2R,UAAUohS,YAAc,SAAS/kQ,GAChC/6B,KAAK85R,eACL95R,KAAK85R,cAAc95R,KAAK+6B,GAE5B/6B,KAAKq8R,mBAAmB,gBAAiBr8R,OAG7Cg1R,EAAOt2R,UAAU4jS,iBAAmB,SAAS19R,EAAM29R,GAC/CviS,KAAKs9R,uBACDt9R,KAAKwiS,oBACLxiS,KAAKwiS,mBAAmB59R,GAE5B5E,KAAKm7R,WACLn7R,KAAKq8R,mBAAmB,uBAQ5BrH,EAAOt2R,UAAU+jS,OAAS,WACtB,IAAKziS,KAAKi1R,oBACN,OAAO,EAGX,IAAK,IAAIn3R,EAAI,EAAGA,EAAIkC,KAAKi1R,oBAAoBl3R,SAAUD,EAAG,CAEtD,GADQkC,KAAKi1R,oBAAoBn3R,GAC3B25R,UACF,OAAO,EAGf,OAAO,GAOXzC,EAAOt2R,UAAUgkS,oBAAsB,WACnC,IAAK,IAAI5kS,KAAKkC,KAAKuhG,MAAO,CACtB,IAAIghM,EAAYviS,KAAKuhG,MAAMzjG,GACtBykS,IAGDA,EAAUI,aACVJ,EAAUI,WAAa,MAMnC3N,EAAOt2R,UAAUsnG,OAAS,WAClBunL,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,iBAEhBvmM,KAAKq8R,mBAAmB,WAAY,EAAC,GAAM,IACvCr8R,KAAK4iS,WACL5iS,KAAK4iS,UAAU5iS,OAIvBg1R,EAAOt2R,UAAUmgS,eAAiB,SAASgE,EAAI/5O,GAC3C9oD,KAAKq8R,mBAAmB,WAAY,CAACwG,EAAI/5O,KAQ7CksO,EAAOt2R,UAAUokS,WAAa,SAAS9E,GACnC,IAAIjvO,EAAO/uD,KAAKuhG,MAAMy8L,GACtB,GAAKjvO,EAAL,CAGA,IAAInqD,EAAO5E,KAAKk+R,YAAYnvO,EAAKumO,WAC7B1wR,GACAA,EAAK66R,gBAAgB1wO,EAAKwmO,eAUlCP,EAAOt2R,UAAUwsC,UAAY,WAEzB,IADA,IAAI63P,EAAa,GACRjlS,EAAI,EAAG2G,EAAIzE,KAAKo7R,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EAC7CilS,EAAWx/R,KAAKvD,KAAKo7R,OAAOt9R,GAAGotC,aAInC,IAAIq2D,EAAQ,GACZ,IAAK,IAAIzjG,KAAKkC,KAAKuhG,MAAO,CAEtB,IAAIxyC,EAAO/uD,KAAKuhG,MAAMzjG,GACtB,IAAKixD,EAAK7jB,UAAW,CAEjBxtB,QAAQC,KACJ,kEAEJ,IAAIqlR,EAAQ,IAAI7N,EAChB,IAAK,IAAIhxR,KAAK4qD,EACVi0O,EAAM7+R,GAAK4qD,EAAK5qD,GAEpBnE,KAAKuhG,MAAMzjG,GAAKklS,EAChBj0O,EAAOi0O,EAGXzhM,EAAMh+F,KAAKwrD,EAAK7jB,aAGpB,IAAI+3P,EAAc,GAClB,IAASnlS,EAAI,EAAGA,EAAIkC,KAAKy7R,QAAQ19R,SAAUD,EACvCmlS,EAAY1/R,KAAKvD,KAAKy7R,QAAQ39R,GAAGotC,aAGrC,IAAI/rC,EAAO,CACP87R,aAAcj7R,KAAKi7R,aACnBC,aAAcl7R,KAAKk7R,aACnBzgL,MAAOsoL,EACPxhM,MAAOA,EACPlU,OAAQ41M,EACR/9I,OAAQllJ,KAAKklJ,OACtB82C,MAAOh8L,KAAKg8L,MACHknG,QAAS3V,EAAUC,SAMvB,OAHHxtR,KAAKmjS,aACPnjS,KAAKmjS,YAAYhkS,GAELA,GASX61R,EAAOt2R,UAAUw2R,UAAY,SAAS/1R,EAAMikS,GACxC,GAAKjkS,EAAL,CAIKikS,GACDpjS,KAAKud,QAGT,IAAIk9F,EAAQt7G,EAAKs7G,MAGjB,GAAIt7G,EAAKoiG,OAASpiG,EAAKoiG,MAAMthG,cAAgBR,MAAO,CAEhD,IADA,IAAI8hG,EAAQ,GACHzjG,EAAI,EAAGA,EAAIqB,EAAKoiG,MAAMxjG,SAAUD,EAAG,CACxC,IAAIulS,EAAYlkS,EAAKoiG,MAAMzjG,GACvC,GAAIulS,EAAJ,CAKY,IAAIt0O,EAAO,IAAIomO,EACfpmO,EAAKmmO,UAAUmO,GACf9hM,EAAMxyC,EAAKx4C,IAAMw4C,OAL5BrxC,QAAQC,KAAK,yDAONxe,EAAKoiG,MAAQA,EAIjB,IAAK,IAAIzjG,KAAKqB,EACX,SAALrB,GAAqB,UAALA,IAEVkC,KAAKlC,GAAKqB,EAAKrB,IAGnB,IAAI8F,GAAQ,EAIZ,GADA5D,KAAKo7R,OAAS,GACV3gL,EAAO,CACE38G,EAAI,EAAb,IAAK,IAAW2G,EAAIg2G,EAAM18G,OAAQD,EAAI2G,IAAK3G,EAAG,CAC1C,IAAIwlS,EAAS7oL,EAAM38G,IACf8G,EAAO2oR,EAAUwF,WAAWuQ,EAAOn+R,KAAMm+R,EAAOrxQ,UAE5Cs7P,EAAUt4M,OACVv3D,QAAQ6oL,IACJ,iCAAmC+8F,EAAOn+R,OAKlDP,EAAO,IAAIitR,GACN0R,mBAAqBD,EAC1B1+R,EAAK4+R,YAAa,EAClB5/R,GAAQ,GAIZgB,EAAK2R,GAAK+sR,EAAO/sR,GACjBvW,KAAKwZ,IAAI5U,GAAM,GAInB,IAAS9G,EAAI,EAAG2G,EAAIg2G,EAAM18G,OAAQD,EAAI2G,IAAK3G,EAAG,CAC1C,IACI8G,EADA0+R,EAAS7oL,EAAM38G,IACf8G,EAAO5E,KAAKk+R,YAAYoF,EAAO/sR,MAE/B3R,EAAKswR,UAAUoO,IAO3B,GADAtjS,KAAKy7R,QAAQ19R,OAAS,EAClBoB,EAAKkuF,OACL,IAASvvF,EAAI,EAAGA,EAAIqB,EAAKkuF,OAAOtvF,SAAUD,EAAG,CACzC,IAAIi0B,EAAQ,IAAIw7P,EAAUmI,YAC1B3jQ,EAAMmjQ,UAAU/1R,EAAKkuF,OAAOvvF,IAC5BkC,KAAKwZ,IAAIuY,GAajB,OATA/xB,KAAKs9R,uBAEXt9R,KAAKg8L,MAAQ78L,EAAK68L,OAAS,GAExBh8L,KAAKyjS,aACPzjS,KAAKyjS,YAAYtkS,GAEZa,KAAKm7R,WACLn7R,KAAK6+R,gBAAe,GAAM,GACnBj7R,IAGXoxR,EAAOt2R,UAAUglS,KAAO,SAAS5rR,EAAKrQ,GAClC,IAAI+1Q,EAAOx9Q,KAGjB,GAAG8X,EAAI7X,cAAgBy0R,MAAQ58Q,EAAI7X,cAAgB25O,KACnD,CACC,IAAIxpH,EAAS,IAAIukK,WASjB,OARAvkK,EAAO1qH,iBAAiB,QAAQ,SAASiP,GACxC,IAAIxV,EAAOsnC,KAAKC,MAAM/xB,EAAM/W,OAAOwE,QACnCo7Q,EAAK0X,UAAU/1R,GACZsI,GACFA,YAGF2oH,EAAO0kK,WAAWh9Q,GAKb,IAAI6rR,EAAM,IAAIC,eACdD,EAAI5rR,KAAK,MAAOD,GAAK,GACrB6rR,EAAIE,KAAK,MACTF,EAAI/O,OAAS,SAASkP,GAClB,GAAmB,MAAfH,EAAI/2H,OAAR,CAIA,IAAIztK,EAAOsnC,KAAKC,MAAOi9P,EAAInP,UAC3BhX,EAAK0X,UAAU/1R,GACrBsI,GACFA,SANYiW,QAAQ9Z,MAAM,uBAAwB+/R,EAAI/2H,OAAQ+2H,EAAInP,WAQ9DmP,EAAII,QAAU,SAASpoR,GACnB+B,QAAQ9Z,MAAM,uBAAwB+X,KAI9Cq5Q,EAAOt2R,UAAUslS,YAAc,SAASp/R,EAAMmkK,EAAKt7I,KAiBnD0nQ,EAAMz2R,UAAUw2R,UAAY,SAASzxR,GAC7BA,EAAExD,cAAgBR,OAClBO,KAAKuW,GAAK9S,EAAE,GACZzD,KAAKo1R,UAAY3xR,EAAE,GACnBzD,KAAKq1R,YAAc5xR,EAAE,GACrBzD,KAAKs1R,UAAY7xR,EAAE,GACnBzD,KAAKu1R,YAAc9xR,EAAE,GACrBzD,KAAKmF,KAAO1B,EAAE,KAEdzD,KAAKuW,GAAK9S,EAAE8S,GACZvW,KAAKmF,KAAO1B,EAAE0B,KACdnF,KAAKo1R,UAAY3xR,EAAE2xR,UACnBp1R,KAAKq1R,YAAc5xR,EAAE4xR,YACrBr1R,KAAKs1R,UAAY7xR,EAAE6xR,UACnBt1R,KAAKu1R,YAAc9xR,EAAE8xR,cAI7BJ,EAAMz2R,UAAUwsC,UAAY,WACxB,MAAO,CACHlrC,KAAKuW,GACLvW,KAAKo1R,UACLp1R,KAAKq1R,YACLr1R,KAAKs1R,UACLt1R,KAAKu1R,YACLv1R,KAAKmF,OAIbooR,EAAU4H,MAAQA,EAmElBl0P,EAAO4wP,WAAatE,EAAUsE,WAAaA,EAE3CA,EAAWnzR,UAAU+2R,MAAQ,SAASxjQ,GAClCjyB,KAAKiyB,MAAQA,GAAS,UACtBjyB,KAAKyM,KAAO,CAAC8gR,EAAUO,WAAY,IACnC9tR,KAAKy3E,MAAQ,KAEbz3E,KAAK8sK,KAAO,IAAI0oH,aAAa,GAAI,IAEjCp3R,OAAOC,eAAe2B,KAAM,MAAO,CAC/BwnC,IAAK,SAASpkC,IACLA,GAAKA,EAAErF,OAAS,IAGrBiC,KAAK8sK,KAAK,GAAK1pK,EAAE,GACjBpD,KAAK8sK,KAAK,GAAK1pK,EAAE,KAErBqvB,IAAK,WACD,OAAOzyB,KAAK8sK,MAEhB7uK,YAAY,IAGhB+B,KAAKuW,IAAM,EACXvW,KAAKmF,KAAO,KAGZnF,KAAKm8R,OAAS,GACdn8R,KAAKo8R,QAAU,GACfp8R,KAAKikS,YAAc,GAGnBjkS,KAAKkhB,WAAa,GAClBlhB,KAAKgzR,gBAAkB,GAEvBhzR,KAAK0iM,MAAQ,IAOjBmvF,EAAWnzR,UAAUw2R,UAAY,SAASn6P,GAItC,IAAK,IAAI52B,KAHLnE,KAAKy3E,OACLz3E,KAAKy3E,MAAM0jN,WAEDpgQ,EACV,GAAS,cAAL52B,EAWW,MAAX42B,EAAK52B,KAEoB,iBAAX42B,EAAK52B,GAEfnE,KAAKmE,IAAMnE,KAAKmE,GAAG+wR,UACnBl1R,KAAKmE,GAAG+wR,UAAUn6P,EAAK52B,IAEvBnE,KAAKmE,GAAKopR,EAAUqG,YAAY74P,EAAK52B,GAAInE,KAAKmE,IAIlDnE,KAAKmE,GAAK42B,EAAK52B,SApBf,IAAK,IAAIF,KAAK82B,EAAK7Z,WACflhB,KAAKkhB,WAAWjd,GAAK82B,EAAK7Z,WAAWjd,GACjCjE,KAAKkkS,mBACLlkS,KAAKkkS,kBAAmBjgS,EAAG82B,EAAK7Z,WAAWjd,IAyB3D,GAJK82B,EAAK9I,QACNjyB,KAAKiyB,MAAQjyB,KAAKC,YAAYgyB,OAG9BjyB,KAAKmkS,oBAAqB,CAC1B,GAAInkS,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBykS,EAAYviS,KAAKy3E,MACfz3E,KAAKy3E,MAAM8pB,MAAMnS,EAAMrgC,MACvB,KACN/uD,KAAKmkS,oBACD5W,EAAUt6Q,MACVnV,GACA,EACAykS,EACAnzM,GAKZ,GAAIpvF,KAAKo8R,QACL,IAASt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAC1C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAC1B,GAAKk6B,EAAOupE,MAGZ,IAASp9F,EAAI,EAAGA,EAAI6zB,EAAOupE,MAAMxjG,SAAUoG,EAAG,CACtCo+R,EAAYviS,KAAKy3E,MACfz3E,KAAKy3E,MAAM8pB,MAAMvpE,EAAOupE,MAAMp9F,IAC9B,KACNnE,KAAKmkS,oBACD5W,EAAUsC,OACV/xR,GACA,EACAykS,EACAvqQ,KAO1B,GAAIh4B,KAAKokS,QACT,CACC,IAAStmS,EAAI,EAAGA,EAAIkC,KAAKokS,QAAQrmS,SAAUD,EAC3C,CACC,IAAIkyG,EAAIhwG,KAAKokS,QAAQtmS,GACjBkyG,IAEDA,EAAE3qG,SAAW2qG,EAAE3qG,QAAQ+nC,UAAYptC,KAAKkhB,WAAY8uF,EAAE3qG,QAAQ+nC,YAChE4iE,EAAEhuG,MAAQykC,KAAKC,MAAOD,KAAK0xH,UAAWn4J,KAAKkhB,WAAY8uF,EAAE3qG,QAAQ+nC,cAEnE,GAAIrS,EAAKspQ,eACR,IAASvmS,EAAI,EAAGA,EAAIi9B,EAAKspQ,eAAetmS,SAAUD,EAC7CkC,KAAKokS,QAAQtmS,KAChBkC,KAAKokS,QAAQtmS,GAAGkE,MAAQ+4B,EAAKspQ,eAAevmS,IAMtCkC,KAAKyjS,aACLzjS,KAAKyjS,YAAY1oQ,IASzB82P,EAAWnzR,UAAUwsC,UAAY,WAE7B,IAAIznC,EAAI,CACJ8S,GAAIvW,KAAKuW,GACTpR,KAAMnF,KAAKmF,KACXwtC,IAAK3yC,KAAK2yC,IACVlmC,KAAMzM,KAAKyM,KACXi2L,MAAO6qF,EAAUqG,YAAY5zR,KAAK0iM,OAC3CvwK,MAAOnyB,KAAKmyB,MACHljB,KAAMjP,KAAKiP,MAIf,GAAIjP,KAAKC,cAAgB4xR,GAAc7xR,KAAKujS,mBACxC,OAAOvjS,KAAKujS,mBAOhB,GAJIvjS,KAAKm8R,SACL14R,EAAE04R,OAASn8R,KAAKm8R,QAGhBn8R,KAAKo8R,QAAS,CAEd,IAAK,IAAIt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,OAAQD,WAC9BkC,KAAKo8R,QAAQt+R,GAAG0oC,MAE3B/iC,EAAE24R,QAAUp8R,KAAKo8R,QAWrB,GARIp8R,KAAKiyB,OAASjyB,KAAKiyB,OAASjyB,KAAKC,YAAYgyB,QAC7CxuB,EAAEwuB,MAAQjyB,KAAKiyB,OAGfjyB,KAAKkhB,aACLzd,EAAEyd,WAAaqsQ,EAAUqG,YAAY5zR,KAAKkhB,aAG1ClhB,KAAKokS,SAAWpkS,KAAKskS,kBAAmB,CACxC7gS,EAAE4gS,eAAiB,GACnB,IAASvmS,EAAI,EAAGA,EAAIkC,KAAKokS,QAAQrmS,SAAUD,EAChDkC,KAAKokS,QAAQtmS,GACH2F,EAAE4gS,eAAevmS,GAAKkC,KAAKokS,QAAQtmS,GAAGkE,MAElDyB,EAAE4gS,eAAevmS,GAAK,KA6BnB,OAzBK2F,EAAE0B,OACH1B,EAAE0B,KAAOnF,KAAKC,YAAYkF,MAG1BnF,KAAKytB,QACLhqB,EAAEgqB,MAAQztB,KAAKytB,OAEfztB,KAAKukS,UACL9gS,EAAE8gS,QAAUvkS,KAAKukS,SAEjBvkS,KAAKwkS,WACL/gS,EAAE+gS,SAAWxkS,KAAKwkS,UAElBxkS,KAAKykS,QACLhhS,EAAEghS,MAAQzkS,KAAKykS,OAGfzkS,KAAKmjS,aACDnjS,KAAKmjS,YAAY1/R,IACjBia,QAAQC,KACJ,8GAKLla,GAIXouR,EAAWnzR,UAAU2uE,MAAQ,WACzB,IAAIzoE,EAAO2oR,EAAUwF,WAAW/yR,KAAKmF,MACrC,IAAKP,EACD,OAAO,KAIX,IAAIzF,EAAOouR,EAAUqG,YAAY5zR,KAAKkrC,aAGtC,GAAI/rC,EAAKg9R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIqB,EAAKg9R,OAAOp+R,SAAUD,EACtCqB,EAAKg9R,OAAOr+R,GAAGixD,KAAO,KAI9B,GAAI5vD,EAAKi9R,QACL,IAASt+R,EAAI,EAAGA,EAAIqB,EAAKi9R,QAAQr+R,SAAUD,EACnCqB,EAAKi9R,QAAQt+R,GAAGyjG,QAChBpiG,EAAKi9R,QAAQt+R,GAAGyjG,MAAMxjG,OAAS,GAS3C,cAJOoB,EAAI,GAEXyF,EAAKswR,UAAU/1R,GAERyF,GAQXitR,EAAWnzR,UAAU+Z,SAAW,WAC5B,OAAOguB,KAAK0xH,UAAUn4J,KAAKkrC,cAS/B2mP,EAAWnzR,UAAUgmS,SAAW,WAC5B,OAAO1kS,KAAKiyB,OAASjyB,KAAKC,YAAYgyB,OAS1C4/P,EAAWnzR,UAAUimS,YAAc,SAAS/tR,EAAM5U,GAIpD,GAHWhC,KAAKkhB,aACNlhB,KAAKkhB,WAAa,IAExBlf,IAAUhC,KAAKkhB,WAAWtK,GAA9B,CAEA,IAAIguR,EAAa5kS,KAAKkhB,WAAWtK,GAMjC,GALM5W,KAAKkhB,WAAWtK,GAAQ5U,EACpBhC,KAAKkkS,oBACmD,IAApDlkS,KAAKkkS,kBAAkBttR,EAAM5U,EAAO4iS,KAChD5kS,KAAKkhB,WAAWtK,GAAQguR,GAEvB5kS,KAAKokS,QACP,IAAI,IAAItmS,EAAI,EAAGA,EAAIkC,KAAKokS,QAAQrmS,SAAUD,EAC1C,CACC,IAAIkyG,EAAIhwG,KAAKokS,QAAQtmS,GACrB,GAAIkyG,GAEDA,EAAE3qG,QAAQ+nC,UAAYx2B,EACzB,CACCo5F,EAAEhuG,MAAQA,EACV,UAYD6vR,EAAWnzR,UAAUk0R,cAAgB,SAAS4M,EAAMrgS,GAChD,GAAKa,KAAKo8R,YAQG,GAAToD,GAAcA,GAAQx/R,KAAKo8R,QAAQr+R,QAAvC,CAIA,IAAI8mS,EAAc7kS,KAAKo8R,QAAQoD,GAC/B,GAAKqF,IAKLA,EAAYr+P,MAAQrnC,EAGhBa,KAAKo8R,QAAQoD,GAAMj+L,OACnB,IAAK,IAAIzjG,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQoD,GAAMj+L,MAAMxjG,OAAQD,IAAK,CACtD,IAAIkgS,EAAUh+R,KAAKo8R,QAAQoD,GAAMj+L,MAAMzjG,GAC/CixD,EAAO/uD,KAAKy3E,MAAM8pB,MAAMy8L,GACzBjvO,IACFA,EAAK5vD,KAAOA,MAWb0yR,EAAWnzR,UAAUomS,kBAAoB,SAAStF,EAAMr6R,GACpD,GAAKnF,KAAKo8R,YAGG,GAAToD,GAAcA,GAAQx/R,KAAKo8R,QAAQr+R,QAAvC,CAGA,IAAI8mS,EAAc7kS,KAAKo8R,QAAQoD,GAC/B,GAAKqF,IAILA,EAAY1/R,KAAOA,EAGfnF,KAAKo8R,QAAQoD,GAAMj+L,OACnB,IAAK,IAAIzjG,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQoD,GAAMj+L,MAAMxjG,OAAQD,IAAK,CACtD,IAAIkgS,EAAUh+R,KAAKo8R,QAAQoD,GAAMj+L,MAAMzjG,GACvCkC,KAAKy3E,MAAM8pB,MAAMy8L,GAAS74R,KAAOA,KAY7C0sR,EAAWnzR,UAAUi0R,aAAe,SAAS6M,EAAMuF,GAC/C,GAAK/kS,KAAKm8R,UAINqD,GAAQx/R,KAAKm8R,OAAOp+R,QAAoC,MAA1BiC,KAAKm8R,OAAOqD,GAAMzwO,MAApD,CAIA,IAAIivO,EAAUh+R,KAAKm8R,OAAOqD,GAAMzwO,KAC5BA,EAAO/uD,KAAKy3E,MAAM8pB,MAAMy8L,GAC5B,IAAKjvO,EAED,OAAO,KAGX,IAAKg2O,EACD,OAAOh2O,EAAK5vD,KAIhB,IAAIyF,EAAO5E,KAAKy3E,MAAMymN,YAAYnvO,EAAKqmO,WACvC,OAAKxwR,GAIDA,EAAKogS,iBACLpgS,EAAKogS,iBAAiBj2O,EAAKsmO,aACpBzwR,EAAK8tR,WACZ9tR,EAAK8tR,YAGF3jO,EAAK5vD,MATD4vD,EAAK5vD,OAkBpB0yR,EAAWnzR,UAAUumS,iBAAmB,SAASzF,GAC7C,IAAKx/R,KAAKm8R,OACN,OAAO,KAGX,GAAIqD,GAAQx/R,KAAKm8R,OAAOp+R,QAAoC,MAA1BiC,KAAKm8R,OAAOqD,GAAMzwO,KAChD,OAAO,KAEX,IAAIivO,EAAUh+R,KAAKm8R,OAAOqD,GAAMzwO,KAC5BA,EAAO/uD,KAAKy3E,MAAM8pB,MAAMy8L,GAC5B,IAAKjvO,EAED,OAAO,KAEX,IAAInqD,EAAO5E,KAAKy3E,MAAMymN,YAAYnvO,EAAKqmO,WACvC,IAAKxwR,EACD,OAAOmqD,EAAK5pD,KAEhB,IAAI0/R,EAAcjgS,EAAKw3R,QAAQrtO,EAAKsmO,aACpC,OAAIwP,EACOA,EAAY1/R,KAEhB,MAUX0sR,EAAWnzR,UAAUwmS,mBAAqB,SACtCC,EACAJ,GAEA,IAAIvF,EAAOx/R,KAAKolS,cAAcD,GAC9B,OAAa,GAAT3F,EACO,KAEJx/R,KAAK2yR,aAAa6M,EAAMuF,IASnClT,EAAWnzR,UAAU2mS,iBAAmB,SAAS7F,GAC7C,QAAKx/R,KAAKm8R,SAGHqD,EAAOx/R,KAAKm8R,OAAOp+R,QAAoC,MAA1BiC,KAAKm8R,OAAOqD,GAAMzwO,OAS1D8iO,EAAWnzR,UAAU4mS,aAAe,SAAS9F,GACzC,OAAKx/R,KAAKm8R,QAGNqD,EAAOx/R,KAAKm8R,OAAOp+R,OACZiC,KAAKm8R,OAAOqD,GAHZ,MAcf3N,EAAWnzR,UAAU6mS,aAAe,SAAS/F,GACzC,IAAKx/R,KAAKm8R,OACN,OAAO,KAEX,GAAIqD,EAAOx/R,KAAKm8R,OAAOp+R,OAAQ,CAC3B,IAAIynS,EAAYxlS,KAAKm8R,OAAOqD,GACrC,OAAOx/R,KAAKy3E,MAAM8pB,MAAOikM,EAAUz2O,MAE9B,OAAO,MASX8iO,EAAWnzR,UAAU+/R,aAAe,SAASe,GACzC,IAAKx/R,KAAKm8R,OACN,OAAO,KAEX,GAAIqD,GAAQx/R,KAAKm8R,OAAOp+R,OACpB,OAAO,KAEX,IAAIqxF,EAAQpvF,KAAKm8R,OAAOqD,GACxB,IAAKpwM,GAAwB,OAAfA,EAAMrgC,KAChB,OAAO,KAEX,IAAIwzO,EAAYviS,KAAKy3E,MAAM8pB,MAAMnS,EAAMrgC,MACvC,OAAKwzO,EAGEviS,KAAKy3E,MAAMymN,YAAYqE,EAAUnN,WAF7B,MAWfvD,EAAWnzR,UAAU+mS,mBAAqB,SAAS7uR,GAC/C,IAAK5W,KAAKm8R,SAAWn8R,KAAKm8R,OAAOp+R,OAC7B,OAAOiC,KAAKkhB,WAAalhB,KAAKkhB,WAAWtK,GAAQ,KAGrD,IAAK,IAAI9Y,EAAI,EAAG2G,EAAIzE,KAAKm8R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAAG,CAChD,IAAI4nS,EAAa1lS,KAAKm8R,OAAOr+R,GAC7B,GAAI8Y,GAAQ8uR,EAAW9uR,MAA2B,MAAnB8uR,EAAW32O,KAAc,CACpD,IAAIA,EAAO/uD,KAAKy3E,MAAM8pB,MAAMmkM,EAAW32O,MACvC,GAAIA,EACA,OAAOA,EAAK5vD,MAIxB,OAAOa,KAAKkhB,WAAWtK,IAS3Bi7Q,EAAWnzR,UAAUkjS,cAAgB,SAASpC,GAC1C,OAAKx/R,KAAKo8R,QAGNoD,GAAQx/R,KAAKo8R,QAAQr+R,OACd,KAGAiC,KAAKo8R,QAAQoD,GACZh5P,MAPD,MAgBfqrP,EAAWnzR,UAAUinS,cAAgB,SAASnG,GAC1C,OAAKx/R,KAAKo8R,SAGNoD,EAAOx/R,KAAKo8R,QAAQr+R,OACbiC,KAAKo8R,QAAQoD,GAHb,MAcf3N,EAAWnzR,UAAUknS,kBAAoB,SAASpG,GAC9C,QAAKx/R,KAAKo8R,UAINoD,EAAOx/R,KAAKo8R,QAAQr+R,QACpBiC,KAAKo8R,QAAQoD,GAAMj+L,OACnBvhG,KAAKo8R,QAAQoD,GAAMj+L,MAAMxjG,SASjC8zR,EAAWnzR,UAAUmnS,qBAAuB,WACxC,IAAK7lS,KAAKo8R,QACN,OAAO,EAEX,IAAK,IAAIt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EACvC,GAAIkC,KAAKo8R,QAAQt+R,GAAGyjG,OAASvhG,KAAKo8R,QAAQt+R,GAAGyjG,MAAMxjG,OAC/C,OAAO,EAGf,OAAO,GASX8zR,EAAWnzR,UAAUonS,eAAiB,SAAStG,GAC3C,IAAKx/R,KAAKo8R,SAAkC,GAAvBp8R,KAAKo8R,QAAQr+R,OAC9B,OAAO,KAGX,GAAIyhS,GAAQx/R,KAAKo8R,QAAQr+R,OACrB,OAAO,KAGX,IAAIi6B,EAASh4B,KAAKo8R,QAAQoD,GAC1B,IAAKxnQ,EAAOupE,OAAgC,GAAvBvpE,EAAOupE,MAAMxjG,OAC9B,OAAO,KAIX,IADA,IAAIoD,EAAI,GACCrD,EAAI,EAAGA,EAAIk6B,EAAOupE,MAAMxjG,OAAQD,IAAK,CAC1C,IAAIkgS,EAAUhmQ,EAAOupE,MAAMzjG,GACvBixD,EAAO/uD,KAAKy3E,MAAM8pB,MAAMy8L,GAC5B,GAAIjvO,EAAM,CACN,IAAIkvO,EAAcj+R,KAAKy3E,MAAMymN,YAAYnvO,EAAKumO,WAC1C2I,GACA98R,EAAEoC,KAAK06R,IAInB,OAAO98R,GASX0wR,EAAWnzR,UAAUqiE,QAAU,SAASjrC,EAAQ6qQ,GAC5C,GAAK3gS,KAAKo8R,SAAYp8R,KAAKo8R,QAAQr+R,OAAnC,CAIIiC,KAAKy3E,QACLz3E,KAAKy3E,MAAMsuN,mBAAqBxY,EAAUrlR,WAE9C,IAAK,IAAIpK,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAC1C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,IACpBk6B,GAAUA,EAAO7yB,OAASooR,EAAUuC,OAAUh6P,GAAUkC,EAAOphB,MAAQkf,GAE7E91B,KAAKgmS,YAAYloS,EAAG6iS,MAW5B9O,EAAWnzR,UAAUsnS,YAAc,SAASxG,EAAMmB,EAAO3C,GACrD,GAAKh+R,KAAKo8R,QAAV,CAIA,IAAIpkQ,EAASh4B,KAAKo8R,QAAQoD,GAC1B,GAAKxnQ,EAAL,CAIA,IAAIupE,EAAQvpE,EAAOupE,MACnB,GAAKA,GAAUA,EAAMxjG,OAArB,CAIIiC,KAAKy3E,QACLz3E,KAAKy3E,MAAMsuN,mBAAqBxY,EAAUrlR,WAI9C,IAAK,IAAIjE,EAAI,EAAGA,EAAIs9F,EAAMxjG,SAAUkG,EAAG,CACnC,IAAIsS,EAAKgrF,EAAMt9F,GACf,GAAe,MAAX+5R,GAAmBA,GAAWznR,EAAlC,CAIA,IAAIgsR,EAAYviS,KAAKy3E,MAAM8pB,MAAMA,EAAMt9F,IACvC,GAAKs+R,EAAL,CAIAA,EAAUI,WAAapV,EAAUrlR,UACjC,IAAItD,EAAO5E,KAAKy3E,MAAMymN,YAAYqE,EAAUjN,WAC5C,GAAK1wR,EAAL,CAMA,IAAIqhS,EAAoBrhS,EAAKu3R,OAAOoG,EAAUhN,aAEnD3wR,EAAKqK,OAASs+Q,EAAU4C,WAEXvrR,EAAK8tR,WACL9tR,EAAK8tR,UAAUiO,GAGvB/7R,EAAK87R,UACD97R,EAAK87R,SAASuF,EAAkBrvR,KAAM+pR,WAWlD9O,EAAWnzR,UAAUwnS,mBAAqB,SAAS1G,EAAMxB,GACrD,GAAKh+R,KAAKo8R,QAAV,CAIA,IAAIpkQ,EAASh4B,KAAKo8R,QAAQoD,GAC1B,GAAKxnQ,EAAL,CAIA,IAAIupE,EAAQvpE,EAAOupE,MACnB,GAAKA,GAAUA,EAAMxjG,OAKrB,IAAK,IAAIkG,EAAI,EAAGA,EAAIs9F,EAAMxjG,SAAUkG,EAAG,CACnC,IAAIsS,EAAKgrF,EAAMt9F,GACf,GAAe,MAAX+5R,GAAmBA,GAAWznR,EAAlC,CAIA,IAAIgsR,EAAYviS,KAAKy3E,MAAM8pB,MAAMA,EAAMt9F,IAClCs+R,IAILA,EAAUI,WAAa,QAS/B9Q,EAAWnzR,UAAUynS,QAAU,SAAS15R,GAE1CzM,KAAKyM,KAAOA,EACTzM,KAAKomS,UACPpmS,KAAKomS,SAASpmS,KAAKyM,OAWlBolR,EAAWnzR,UAAU2nS,YAAc,SAC/BzvR,EACA0vR,EACAnhS,EACAohS,GAEA,IAAI9iS,EAAI,CAAEmT,KAAMA,EAAMzR,KAAMA,EAAMmhS,cAAeA,GACjD,GAAIC,EACA,IAAK,IAAIzoS,KAAKyoS,EACV9iS,EAAE3F,GAAKyoS,EAAWzoS,GAW1B,OARKkC,KAAKgzR,kBACNhzR,KAAKgzR,gBAAkB,IAE3BhzR,KAAKgzR,gBAAgBzvR,KAAKE,GACrBzD,KAAKkhB,aACNlhB,KAAKkhB,WAAa,IAEtBlhB,KAAKkhB,WAAWtK,GAAQ0vR,EACjB7iS,GAYXouR,EAAWnzR,UAAUgjS,UAAY,SAAS9qR,EAAMzR,EAAMohS,GAClD,IAAI9iS,EAAI,CAAEmT,KAAMA,EAAMzR,KAAMA,EAAMo8F,MAAO,MACzC,GAAIglM,EACA,IAAK,IAAIzoS,KAAKyoS,EACV9iS,EAAE3F,GAAKyoS,EAAWzoS,GAa1B,OATKkC,KAAKo8R,UACNp8R,KAAKo8R,QAAU,IAEnBp8R,KAAKo8R,QAAQ74R,KAAKE,GACdzD,KAAK2hS,eACL3hS,KAAK2hS,cAAcl+R,GAEvBzD,KAAKmmS,QAASnmS,KAAKizR,eACnBjzR,KAAK6+R,gBAAe,GAAM,GACnBp7R,GAQXouR,EAAWnzR,UAAU8nS,WAAa,SAASrjO,GACvC,IAAK,IAAIrlE,EAAI,EAAGA,EAAIqlE,EAAMplE,SAAUD,EAAG,CACnC,IAAIi9B,EAAOooC,EAAMrlE,GACb2F,EAAI,CAAEmT,KAAMmkB,EAAK,GAAI51B,KAAM41B,EAAK,GAAIg0B,KAAM,MAC9C,GAAIoU,EAAM,GACN,IAAK,IAAIh/D,KAAK42B,EAAK,GACft3B,EAAEU,GAAK42B,EAAK,GAAG52B,GAIlBnE,KAAKo8R,UACNp8R,KAAKo8R,QAAU,IAEnBp8R,KAAKo8R,QAAQ74R,KAAKE,GACdzD,KAAK2hS,eACL3hS,KAAK2hS,cAAcl+R,GAI3BzD,KAAKmmS,QAASnmS,KAAKizR,eACnBjzR,KAAK6+R,gBAAe,GAAM,IAQ9BhN,EAAWnzR,UAAUujS,aAAe,SAASzC,GACzCx/R,KAAK0/R,iBAAiBF,GACtBx/R,KAAKo8R,QAAQ7pQ,OAAOitQ,EAAM,GAC1B,IAAK,IAAI1hS,EAAI0hS,EAAM1hS,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAC1C,GAAKkC,KAAKo8R,QAAQt+R,IAAOkC,KAAKo8R,QAAQt+R,GAAGyjG,MAIzC,IADA,IAAIA,EAAQvhG,KAAKo8R,QAAQt+R,GAAGyjG,MACnBp9F,EAAI,EAAGA,EAAIo9F,EAAMxjG,SAAUoG,EAAG,CACnC,IAAI4qD,EAAO/uD,KAAKy3E,MAAM8pB,MAAMA,EAAMp9F,IAC7B4qD,IAGLA,EAAKsmO,aAAe,GAI5Br1R,KAAKmmS,QAASnmS,KAAKizR,eACfjzR,KAAKkiS,iBACLliS,KAAKkiS,gBAAgB1C,GAEzBx/R,KAAK6+R,gBAAe,GAAM,IAU9BhN,EAAWnzR,UAAUqiS,SAAW,SAASnqR,EAAMzR,EAAMohS,GAEjD,IAAI9iS,EAAI,CAAEmT,KAAMA,EAAMzR,KADtBA,EAAOA,GAAQ,EACmB4pD,KAAM,MACxC,GAAIw3O,EACA,IAAK,IAAIzoS,KAAKyoS,EACV9iS,EAAE3F,GAAKyoS,EAAWzoS,GAgB1B,OAZKkC,KAAKm8R,SACNn8R,KAAKm8R,OAAS,IAGlBn8R,KAAKm8R,OAAO54R,KAAKE,GACjBzD,KAAKmmS,QAASnmS,KAAKizR,eAEfjzR,KAAKghS,cACLhhS,KAAKghS,aAAav9R,GAGtBzD,KAAK6+R,gBAAe,GAAM,GACnBp7R,GAQXouR,EAAWnzR,UAAU+nS,UAAY,SAAStjO,GACtC,IAAK,IAAIrlE,EAAI,EAAGA,EAAIqlE,EAAMplE,SAAUD,EAAG,CACnC,IAAIi9B,EAAOooC,EAAMrlE,GACb2F,EAAI,CAAEmT,KAAMmkB,EAAK,GAAI51B,KAAM41B,EAAK,GAAIg0B,KAAM,MAC9C,GAAIoU,EAAM,GACN,IAAK,IAAIh/D,KAAK42B,EAAK,GACft3B,EAAEU,GAAK42B,EAAK,GAAG52B,GAIlBnE,KAAKm8R,SACNn8R,KAAKm8R,OAAS,IAElBn8R,KAAKm8R,OAAO54R,KAAKE,GACbzD,KAAKghS,cACLhhS,KAAKghS,aAAav9R,GAI1BzD,KAAKmmS,QAASnmS,KAAKizR,eACnBjzR,KAAK6+R,gBAAe,GAAM,IAQ9BhN,EAAWnzR,UAAU8iS,YAAc,SAAShC,GACxCx/R,KAAKy/R,gBAAgBD,GAErB,IADA,IAAIgG,EAAYxlS,KAAKm8R,OAAO5pQ,OAAOitQ,EAAM,GAChC1hS,EAAI0hS,EAAM1hS,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EACzC,GAAKkC,KAAKm8R,OAAOr+R,GAAjB,CAGA,IAAIixD,EAAO/uD,KAAKy3E,MAAM8pB,MAAMvhG,KAAKm8R,OAAOr+R,GAAGixD,MACtCA,IAGLA,EAAKwmO,aAAe,GAExBv1R,KAAKmmS,QAASnmS,KAAKizR,eACfjzR,KAAKyhS,gBACLzhS,KAAKyhS,eAAejC,EAAMgG,EAAU,IAExCxlS,KAAK6+R,gBAAe,GAAM,IAW9BhN,EAAWnzR,UAAUgoS,cAAgB,SAAS9vR,EAAMzR,EAAMwtC,EAAKtmC,GAC3D,IAAI5I,EAAI,CACJmT,KAAMA,EACNzR,KAAMA,EACNwtC,IAAKA,EACLtmC,UAAWA,EACXk1F,MAAO,MAGX,OADAvhG,KAAKikS,YAAY1gS,KAAKE,GACfA,GASXouR,EAAWnzR,UAAUu0R,YAAc,SAASh+K,GACxC,GAAIj1G,KAAKC,YAAYwM,KACjB,OAAOzM,KAAKC,YAAYwM,KAAK3I,SAGjC,IAAI6iS,EAAOjvR,KAAKC,IACZ3X,KAAKm8R,OAASn8R,KAAKm8R,OAAOp+R,OAAS,EACnCiC,KAAKo8R,QAAUp8R,KAAKo8R,QAAQr+R,OAAS,GAErC0O,EAAOwoG,GAAO,IAAIugL,aAAa,CAAC,EAAG,IACvCmR,EAAOjvR,KAAKC,IAAIgvR,EAAM,GACtB,IAEIC,EAFAA,EAAYrZ,EAAUa,eAGtByY,EAAcC,EAAkB9mS,KAAKiyB,OACrC80Q,EAAc,EACdC,EAAe,EAEnB,GAAIhnS,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAG2G,EAAIzE,KAAKm8R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAAG,CAChD,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GAGpBipS,GADAE,EAAaH,EADN13M,EAAMvsF,OAASusF,EAAMx4E,MAAQ,OAGpCmwR,EAAcE,GAK1B,GAAIjnS,KAAKo8R,QACL,IAASt+R,EAAI,EAAG2G,EAAIzE,KAAKo8R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAAG,CACjD,IAEImpS,EAFAjvQ,EAASh4B,KAAKo8R,QAAQt+R,GAGtBkpS,GADAC,EAAaH,EADN9uQ,EAAOn1B,OAASm1B,EAAOphB,MAAQ,OAGtCowR,EAAeC,GAK3Bx6R,EAAK,GAAKiL,KAAKC,IAAIovR,EAAcC,EAAe,GAAIH,GACpDp6R,EAAK,GAAKiL,KAAKC,IAAIlL,EAAK,GAAI8gR,EAAUO,YAClC9tR,KAAKokS,SAAWpkS,KAAKokS,QAAQrmS,SAC7B0O,EAAK,GAAKiL,KAAKC,IAAIlL,EAAK,GAA2B,IAAvB8gR,EAAUO,aAG1CrhR,EAAK,IAAMzM,KAAKC,YAAYinS,cAAgB,GAAKP,EAAOpZ,EAAUK,iBAElE,IAAIuZ,EAAiB,EACrB,GAAInnS,KAAKokS,SAAWpkS,KAAKokS,QAAQrmS,OAAQ,CACrC,IAASD,EAAI,EAAG2G,EAAIzE,KAAKokS,QAAQrmS,OAAQD,EAAI2G,IAAK3G,EAC1CkC,KAAKokS,QAAQtmS,GAAGm1R,YAChBkU,GAAkBnnS,KAAKokS,QAAQtmS,GAAGm1R,YAAYxmR,EAAK,IAAI,GAAK,EAE5D06R,GAAkB5Z,EAAUM,mBAAqB,EAEzDsZ,GAAkB,EAWtB,SAASL,EAAkB39N,GACvB,OAAKA,EAGEy9N,EAAYz9N,EAAKprE,OAAS,GAFtB,EAcf,OAvBIiC,KAAKonS,WACL36R,EAAK,GAAKiL,KAAKC,IAAKlL,EAAK,GAAI06R,GACA,MAAxBnnS,KAAKqnS,gBACV56R,EAAK,GAAKiL,KAAKC,IAAKlL,EAAK,GAAI06R,EAAiBnnS,KAAKqnS,iBAEnD56R,EAAK,IAAM06R,EAUXnnS,KAAKC,YAAYqnS,YACjB76R,EAAK,GAAKzM,KAAKC,YAAYqnS,aAE3B76R,EAAK,GAAKzM,KAAKC,YAAYqnS,YAG/B76R,EAAK,IAAM,EAEJA,GAUXolR,EAAWnzR,UAAU6oS,gBAAkB,SAAUn6P,GAE7C,IAAIrS,EAAO,KAIjB,GAAI/6B,KAAKgzR,gBACC,IAAK,IAAIl1R,EAAI,EAAGA,EAAIkC,KAAKgzR,gBAAgBj1R,SAAUD,EAC/C,GAAIkC,KAAKgzR,gBAAgBl1R,GAAG8Y,MAAQw2B,EAAU,CAC1CrS,EAAO/6B,KAAKgzR,gBAAgBl1R,GAC5B,MAuBlB,OAlBGkC,KAAKC,YAAY,IAAMmtC,KACzBrS,EAAO/6B,KAAKC,YAAY,IAAMmtC,IAE5BptC,KAAKC,YAAYunS,cAAgBxnS,KAAKC,YAAYunS,aAAap6P,KACjErS,EAAO/6B,KAAKC,YAAYunS,aAAap6P,KAGjCrS,GAAQ/6B,KAAKynS,oBACR1sQ,EAAO/6B,KAAKynS,kBAAkBr6P,IAG7BrS,IACDA,EAAO,IACbA,EAAK51B,OACR41B,EAAK51B,YAAcnF,KAAKkhB,WAAWksB,IAClB,SAAfrS,EAAKiiJ,SACPjiJ,EAAK51B,KAAO,QAEN41B,GAcL82P,EAAWnzR,UAAUgpS,UAAY,SAAUviS,EAAMyR,EAAM5U,EAAOyF,EAAUpC,GAE/DrF,KAAKokS,UACNpkS,KAAKokS,QAAU,KAGrB/+R,GAAWoC,GAAYA,EAASxH,cAAgB7B,SAEnDiH,EAAUoC,EACVA,EAAW,MAGTpC,GAAWA,EAAQpF,cAAgBH,SACrCuF,EAAU,CAAE+nC,SAAU/nC,IAEpBoC,GAAYA,EAASxH,cAAgBH,SAEnCuF,IACHA,EAAU,IACXA,EAAQ+nC,SAAW3lC,EACnBA,EAAW,MAGTA,GAAYA,EAASxH,cAAgBiyK,WAEvCx0J,QAAQC,KAAK,0CACblW,EAAW,MAGN,IAAIuoG,EAAI,CACJ7qG,KAAMA,EAAK49B,cACXnsB,KAAMA,EACN5U,MAAOA,EACPyF,SAAUA,EACVpC,QAASA,GAAW,IAUxB,QAPoBwU,IAAhBm2F,EAAE3qG,QAAQ3C,IACVstG,EAAEttG,EAAIstG,EAAE3qG,QAAQ3C,GAGf+E,GAAauoG,EAAE3qG,QAAQoC,UAAauoG,EAAE3qG,QAAQ+nC,UAC/C1vB,QAAQC,KAAK,oEAEL,SAARxY,IAAoB6qG,EAAE3qG,QAAQmY,OAC9B,KAAM,iGAIV,OAFAxd,KAAKokS,QAAQ7gS,KAAKysG,GACxBhwG,KAAKmmS,QAASnmS,KAAKizR,eACNjjL,GAGX6hL,EAAWnzR,UAAUipS,gBAAkB,SAASC,GAK5C,OAJK5nS,KAAKokS,UACNpkS,KAAKokS,QAAU,IAEnBpkS,KAAKokS,QAAQ7gS,KAAKqkS,GACXA,GASX/V,EAAWnzR,UAAUmpS,YAAc,SAAS5yL,GAUxC,OATAA,EAAMA,GAAO,IAAIugL,aAAa,IAC1B,GAAKx1R,KAAK2yC,IAAI,GAAK,EACvBsiE,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAK46O,EAAUG,kBACjCz4K,EAAI,GAAKj1G,KAAKyM,KAAK,GAAK,EACxBwoG,EAAI,GAAKj1G,KAAK0iM,MAAM+vE,UAAY8a,EAAUG,kBAAoB1tR,KAAKyM,KAAK,GAAK8gR,EAAUG,kBAEnF1tR,KAAK8nS,YACL9nS,KAAK8nS,WAAW7yL,GAEbA,GAUX48K,EAAWnzR,UAAU4hS,cAAgB,SAASrkR,EAAGvZ,EAAGyK,EAAQ46R,GACxD56R,EAASA,GAAU,EAEnB,IAAI66R,EAAahoS,KAAKy3E,OAASz3E,KAAKy3E,MAAMgrN,SAAW,EAAIlV,EAAUG,kBAInE,GAHIqa,IACAC,EAAa,GAEbhoS,KAAK0iM,OAAS1iM,KAAK0iM,MAAM+vE,WAEzB,GACIw1B,EACIhsR,EACAvZ,EACA1C,KAAK2yC,IAAI,GAAKxlC,EACdnN,KAAK2yC,IAAI,GAAK46O,EAAUG,kBAAoBvgR,GAC3CnN,KAAKkoS,kBAAoB3a,EAAUU,sBAChC,EAAI9gR,EACRogR,EAAUG,kBAAoB,EAAIvgR,GAGtC,OAAO,OAER,GACHnN,KAAK2yC,IAAI,GAAK,EAAIxlC,EAAS8O,GAC3Bjc,KAAK2yC,IAAI,GAAK3yC,KAAKyM,KAAK,GAAK,EAAIU,EAAS8O,GAC1Cjc,KAAK2yC,IAAI,GAAKq1P,EAAa76R,EAASzK,GACpC1C,KAAK2yC,IAAI,GAAK3yC,KAAKyM,KAAK,GAAKU,EAASzK,EAEtC,OAAO,EAEX,OAAO,GAUXmvR,EAAWnzR,UAAUypS,kBAAoB,SAASlsR,EAAGvZ,GAEjD,IAAI0lS,EAAW,IAAI5S,aAAa,GAChC,GAAIx1R,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAG2G,EAAIzE,KAAKm8R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAAG,CAChD,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GAExB,GADAkC,KAAKqoS,kBAAiB,EAAMvqS,EAAGsqS,GAE3BH,EACIhsR,EACAvZ,EACA0lS,EAAS,GAAK,GACdA,EAAS,GAAK,EACd,GACA,IAGJ,MAAO,CAAEh5M,MAAOA,EAAOowM,KAAM1hS,EAAGsqS,SAAUA,GAKtD,GAAIpoS,KAAKo8R,QACL,IAASt+R,EAAI,EAAG2G,EAAIzE,KAAKo8R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAAG,CACjD,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAE1B,GADAkC,KAAKqoS,kBAAiB,EAAOvqS,EAAGsqS,GAE5BH,EACIhsR,EACAvZ,EACA0lS,EAAS,GAAK,GACdA,EAAS,GAAK,EACd,GACA,IAGJ,MAAO,CAAEpwQ,OAAQA,EAAQwnQ,KAAM1hS,EAAGsqS,SAAUA,GAKxD,OAAO,MASXvW,EAAWnzR,UAAU0mS,cAAgB,SAASxuR,GAC1C,IAAK5W,KAAKm8R,OACN,OAAQ,EAEZ,IAAK,IAAIr+R,EAAI,EAAG2G,EAAIzE,KAAKm8R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAC7C,GAAI8Y,GAAQ5W,KAAKm8R,OAAOr+R,GAAG8Y,KACvB,OAAO9Y,EAGf,OAAQ,GASZ+zR,EAAWnzR,UAAU4pS,eAAiB,SAAS1xR,GAC3C,IAAK5W,KAAKo8R,QACN,OAAQ,EAEZ,IAAK,IAAIt+R,EAAI,EAAG2G,EAAIzE,KAAKo8R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAC9C,GAAI8Y,GAAQ5W,KAAKo8R,QAAQt+R,GAAG8Y,KACxB,OAAO9Y,EAGf,OAAQ,GAWZ+zR,EAAWnzR,UAAU6pS,QAAU,SAAS/I,EAAMvB,EAAa1I,GAGvD,GAFAA,EAAcA,GAAe,GAExBv1R,KAAKy3E,MAKN,OAHA/5D,QAAQ6oL,IACJ,kHAEG,KAIX,GAAIi5F,EAAKv/R,cAAgBH,QAErB,IAAa,IADb0/R,EAAOx/R,KAAKsoS,eAAe9I,IAKvB,OAHIjS,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,mCAAqCi5F,GAE9C,UAER,IAAKx/R,KAAKo8R,SAAWoD,GAAQx/R,KAAKo8R,QAAQr+R,OAI7C,OAHIwvR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,yCAET,KAMX,GAHI03F,GAAeA,EAAYh+R,cAAgB8sH,SAC3CkxK,EAAcj+R,KAAKy3E,MAAMymN,YAAYD,KAEpCA,EACD,KAAM,sBAIV,GAAIA,GAAej+R,KACf,OAAO,KAIX,GAAIu1R,EAAYt1R,cAAgBH,QAE5B,IAAoB,IADpBy1R,EAAc0I,EAAYmH,cAAc7P,IAOpC,OALIhI,EAAUt4M,OACVv3D,QAAQ6oL,IACJ,mCAAqCgvF,GAGtC,SAER,IAAIA,IAAgBhI,EAAUuC,MAQjC,OAAO,KACJ,IACFmO,EAAY9B,QACb5G,GAAe0I,EAAY9B,OAAOp+R,OAKlC,OAHIwvR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,yCAET,KAGjB,IAAI3xC,GAAU,EAGoC,MAAxCqpI,EAAY9B,OAAO5G,GAAaxmO,OACzC/uD,KAAKy3E,MAAM8nN,eACFtB,EAAYwB,gBAAgBlK,GACrC3gI,GAAU,GAOL,IAAI58H,EAASh4B,KAAKo8R,QAAQoD,GAG1B,GAAIvB,EAAYuK,iBACsE,IAA7EvK,EAAYuK,eAAejT,EAAav9P,EAAO7yB,KAAM6yB,EAAQh4B,KAAMw/R,GACpE,OAAO,KAIf,IAAIpwM,EAAQ6uM,EAAY9B,OAAO5G,GAC3BgN,EAAY,KAGhB,OAAKhV,EAAUsG,kBAAkB77P,EAAO7yB,KAAMiqF,EAAMjqF,OAQtDyvJ,GACH50J,KAAKy3E,MAAM8nN,eAGZgD,EAAY,IAAIpN,IACbn1R,KAAKy3E,MAAMyjN,aACb9rM,EAAMjqF,KACNnF,KAAKuW,GACLipR,EACAvB,EAAY1nR,GACZg/Q,GAIDv1R,KAAKy3E,MAAM8pB,MAAMghM,EAAUhsR,IAAMgsR,EAGb,MAAhBvqQ,EAAOupE,QACVvpE,EAAOupE,MAAQ,IAEhBvpE,EAAOupE,MAAMh+F,KAAKg/R,EAAUhsR,IAE5B0nR,EAAY9B,OAAO5G,GAAaxmO,KAAOwzO,EAAUhsR,GAC7CvW,KAAKy3E,OACRz3E,KAAKy3E,MAAM0jN,WAERn7R,KAAKmkS,qBACRnkS,KAAKmkS,oBACJ5W,EAAUsC,OACV2P,GACA,EACA+C,EACAvqQ,GAGEimQ,EAAYkG,qBACflG,EAAYkG,oBACX5W,EAAUt6Q,MACVsiR,GACA,EACAgN,EACAnzM,GAGEpvF,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,yBAC5BzoS,KAAKy3E,MAAMgxN,uBACVlb,EAAUt6Q,MACVgrR,EACA1I,EACAv1R,KACAw/R,GAEDx/R,KAAKy3E,MAAMgxN,uBACVlb,EAAUsC,OACV7vR,KACAw/R,EACAvB,EACA1I,IAIIv1R,KAAK6+R,gBAAe,GAAO,GACjC7+R,KAAKy3E,MAAMqoN,cACX9/R,KAAKy3E,MAAM6qN,iBAAiBtiS,KAAMuiS,GAErBA,IAvENviS,KAAK6+R,gBAAe,GAAO,GAC9BjqI,GACI50J,KAAKy3E,MAAM6qN,iBAAiBtiS,KAAMuiS,GAClC,OA8EN1Q,EAAWnzR,UAAUghS,iBAAmB,SAASF,EAAMvB,GACnD,GAAIuB,EAAKv/R,cAAgBH,QAErB,IAAa,IADb0/R,EAAOx/R,KAAKsoS,eAAe9I,IAKvB,OAHIjS,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,mCAAqCi5F,IAE9C,OAER,IAAKx/R,KAAKo8R,SAAWoD,GAAQx/R,KAAKo8R,QAAQr+R,OAI7C,OAHIwvR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,0CAET,EAIX,IAAIvuK,EAASh4B,KAAKo8R,QAAQoD,GAC1B,IAAKxnQ,IAAWA,EAAOupE,OAAgC,GAAvBvpE,EAAOupE,MAAMxjG,OACzC,OAAO,EAIX,GAAIkgS,EAAa,CAIb,GAHIA,EAAYh+R,cAAgB8sH,SAC5BkxK,EAAcj+R,KAAKy3E,MAAMymN,YAAYD,KAEpCA,EACD,KAAM,wBAGV,IAAK,IAAIngS,EAAI,EAAG2G,EAAIuzB,EAAOupE,MAAMxjG,OAAQD,EAAI2G,EAAG3G,IAAK,CACjD,IAAIkgS,EAAUhmQ,EAAOupE,MAAMzjG,GAI3B,IAHIykS,EAAYviS,KAAKy3E,MAAM8pB,MAAMy8L,IAGnB1I,WAAa2I,EAAY1nR,GAAI,CACvCyhB,EAAOupE,MAAMhvE,OAAOz0B,EAAG,IACnBsxF,EAAQ6uM,EAAY9B,OAAOoG,EAAUhN,cACnCxmO,KAAO,YACN/uD,KAAKy3E,MAAM8pB,MAAMy8L,GACpBh+R,KAAKy3E,OACLz3E,KAAKy3E,MAAM0jN,WAEX8C,EAAYkG,qBACZlG,EAAYkG,oBACR5W,EAAUt6Q,MACVsvR,EAAUhN,aACV,EACAgN,EACAnzM,GAGJpvF,KAAKmkS,qBACLnkS,KAAKmkS,oBACD5W,EAAUsC,OACV2P,GACA,EACA+C,EACAvqQ,GAGJh4B,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,wBACzBzoS,KAAKy3E,MAAMgxN,uBACPlb,EAAUsC,OACV7vR,KACAw/R,GAGJx/R,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,yBACzBzoS,KAAKy3E,MAAMgxN,uBACPlb,EAAUsC,OACV7vR,KACAw/R,GAEJx/R,KAAKy3E,MAAMgxN,uBACPlb,EAAUt6Q,MACVgrR,EACAsE,EAAUhN,cAGlB,YAIP,CACD,IAASz3R,EAAI,EAAG2G,EAAIuzB,EAAOupE,MAAMxjG,OAAQD,EAAI2G,EAAG3G,IAAK,CACjD,IACIykS,EADAvE,EAAUhmQ,EAAOupE,MAAMzjG,GAE3B,GADIykS,EAAYviS,KAAKy3E,MAAM8pB,MAAMy8L,GACjC,CAKIC,EAAcj+R,KAAKy3E,MAAMymN,YAAYqE,EAAUjN,WAAnD,IACIlmM,EAAQ,KACRpvF,KAAKy3E,OACLz3E,KAAKy3E,MAAM0jN,WAEX8C,KACA7uM,EAAQ6uM,EAAY9B,OAAOoG,EAAUhN,cAC/BxmO,KAAO,KACTkvO,EAAYkG,qBACZlG,EAAYkG,oBACR5W,EAAUt6Q,MACVsvR,EAAUhN,aACV,EACAgN,EACAnzM,GAGJpvF,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,wBACzBzoS,KAAKy3E,MAAMgxN,uBACPlb,EAAUt6Q,MACVgrR,EACAsE,EAAUhN,qBAIfv1R,KAAKy3E,MAAM8pB,MAAMy8L,GACpBh+R,KAAKmkS,qBACLnkS,KAAKmkS,oBACD5W,EAAUsC,OACV2P,GACA,EACA+C,EACAvqQ,GAGJh4B,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,yBACzBzoS,KAAKy3E,MAAMgxN,uBACPlb,EAAUsC,OACV7vR,KACAw/R,GAEJx/R,KAAKy3E,MAAMgxN,uBACPlb,EAAUt6Q,MACVgrR,EACAsE,EAAUhN,eAItBv9P,EAAOupE,MAAQ,KAKnB,OAFAvhG,KAAK6+R,gBAAe,GAAO,GAC3B7+R,KAAKy3E,MAAM6qN,iBAAiBtiS,OACrB,GASX6xR,EAAWnzR,UAAU+gS,gBAAkB,SAASD,GAE5C,GAAIA,EAAKv/R,cAAgBH,QAErB,IAAa,IADb0/R,EAAOx/R,KAAKolS,cAAc5F,IAKtB,OAHIjS,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,mCAAqCi5F,IAE9C,OAER,IAAKx/R,KAAKm8R,QAAUqD,GAAQx/R,KAAKm8R,OAAOp+R,OAI3C,OAHIwvR,EAAUt4M,OACVv3D,QAAQ6oL,IAAI,0CAET,EAGX,IAAIn3G,EAAQpvF,KAAKm8R,OAAOqD,GACxB,IAAKpwM,EACD,OAAO,EAGX,IAAI4uM,EAAUh+R,KAAKm8R,OAAOqD,GAAMzwO,KACtC,GAAc,MAAXivO,EACH,CACCh+R,KAAKm8R,OAAOqD,GAAMzwO,KAAO,KAGzB,IAAIwzO,EAAYviS,KAAKy3E,MAAM8pB,MAAMy8L,GACjC,GAAIuE,EAAW,CACd,IAAItE,EAAcj+R,KAAKy3E,MAAMymN,YAAYqE,EAAUnN,WACnD,IAAK6I,EACJ,OAAO,EAGR,IAAIjmQ,EAASimQ,EAAY7B,QAAQmG,EAAUlN,aAC3C,IAAKr9P,IAAWA,EAAOupE,OAAgC,GAAvBvpE,EAAOupE,MAAMxjG,OAC5C,OAAO,EAIR,IAAK,IAAID,EAAI,EAAG2G,EAAIuzB,EAAOupE,MAAMxjG,OAAQD,EAAI2G,EAAG3G,IAC/C,GAAIk6B,EAAOupE,MAAMzjG,IAAMkgS,EAAS,CAC/BhmQ,EAAOupE,MAAMhvE,OAAOz0B,EAAG,GACvB,aAIKkC,KAAKy3E,MAAM8pB,MAAMy8L,GACpBh+R,KAAKy3E,OACRz3E,KAAKy3E,MAAM0jN,WAERn7R,KAAKmkS,qBACRnkS,KAAKmkS,oBACJ5W,EAAUt6Q,MACVusR,GACA,EACA+C,EACAnzM,GAGE6uM,EAAYkG,qBACflG,EAAYkG,oBACX5W,EAAUsC,OACV/xR,GACA,EACAykS,EACAvqQ,GAGEh4B,KAAKy3E,OAASz3E,KAAKy3E,MAAMgxN,yBAC5BzoS,KAAKy3E,MAAMgxN,uBACVlb,EAAUsC,OACVoO,EACAngS,GAEDkC,KAAKy3E,MAAMgxN,uBAAuBlb,EAAUt6Q,MAAOjT,KAAMw/R,KAQtD,OAHAx/R,KAAK6+R,gBAAe,GAAO,GAC9B7+R,KAAKy3E,OACDz3E,KAAKy3E,MAAM6qN,iBAAiBtiS,OACtB,GAWX6xR,EAAWnzR,UAAU2pS,iBAAmB,SACpCK,EACAC,EACA1zL,GAEAA,EAAMA,GAAO,IAAIugL,aAAa,GAC9B,IAAIoT,EAAY,EACZF,GAAY1oS,KAAKm8R,SACjByM,EAAY5oS,KAAKm8R,OAAOp+R,SAEvB2qS,GAAY1oS,KAAKo8R,UAClBwM,EAAY5oS,KAAKo8R,QAAQr+R,QAG7B,IAAIqiC,EAAsC,GAA7BmtP,EAAUK,iBAEvB,GAAI5tR,KAAK0iM,MAAM+vE,UAAW,CACtB,IAAIziK,EAAIhwG,KAAKkoS,kBAAoB3a,EAAUU,qBAgB3C,OAfIjuR,KAAKs6F,YACL2a,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAS,GAAJq9D,EAEnBiF,EAAI,GADJyzL,EACS1oS,KAAK2yC,IAAI,GAAK46O,EAAUG,kBAExB1tR,KAAK2yC,IAAI,KAIlBsiE,EAAI,GADJyzL,EACS1oS,KAAK2yC,IAAI,GAET3yC,KAAK2yC,IAAI,GAAKq9D,EAE3BiF,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAmC,GAA9B46O,EAAUG,mBAE9Bz4K,EAIX,OAAIyzL,IAA4B,GAAhBC,GACZ1zL,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAmC,GAA9B46O,EAAUG,kBACjCz4K,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAmC,GAA9B46O,EAAUG,kBAC1Bz4K,GAKPyzL,GACAE,EAAYD,GACZ3oS,KAAKm8R,OAAOwM,GAAah2P,KAEzBsiE,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAK3yC,KAAKm8R,OAAOwM,GAAah2P,IAAI,GACpDsiE,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAK3yC,KAAKm8R,OAAOwM,GAAah2P,IAAI,GAC7CsiE,IAENyzL,GACDE,EAAYD,GACZ3oS,KAAKo8R,QAAQuM,GAAah2P,KAE1BsiE,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAK3yC,KAAKo8R,QAAQuM,GAAah2P,IAAI,GACrDsiE,EAAI,GAAKj1G,KAAK2yC,IAAI,GAAK3yC,KAAKo8R,QAAQuM,GAAah2P,IAAI,GAC9CsiE,GAIPj1G,KAAKs6F,YACL2a,EAAI,GACAj1G,KAAK2yC,IAAI,IAAMg2P,EAAc,KAAQ3oS,KAAKyM,KAAK,GAAKm8R,GAEpD3zL,EAAI,GADJyzL,EACS1oS,KAAK2yC,IAAI,GAAK46O,EAAUG,kBAExB1tR,KAAK2yC,IAAI,GAAK3yC,KAAKyM,KAAK,GAE9BwoG,IAKPA,EAAI,GADJyzL,EACS1oS,KAAK2yC,IAAI,GAAKvS,EAEdpgC,KAAK2yC,IAAI,GAAK3yC,KAAKyM,KAAK,GAAK,EAAI2zB,EAE9C60E,EAAI,GACAj1G,KAAK2yC,IAAI,IACRg2P,EAAc,IAAOpb,EAAUK,kBAC/B5tR,KAAKC,YAAYinS,cAAgB,GAC/BjyL,IAIX48K,EAAWnzR,UAAU0gS,YAAc,WAC/Bp/R,KAAK2yC,IAAI,GACL46O,EAAUE,iBACV/1Q,KAAKq/C,MAAM/2D,KAAK2yC,IAAI,GAAK46O,EAAUE,kBACvCztR,KAAK2yC,IAAI,GACL46O,EAAUE,iBACV/1Q,KAAKq/C,MAAM/2D,KAAK2yC,IAAI,GAAK46O,EAAUE,mBAI3CoE,EAAWnzR,UAAUi0B,MAAQ,SAASo2I,GAC7B/oK,KAAK0d,UACN1d,KAAK0d,QAAU,IAGnB1d,KAAK0d,QAAQna,KAAKwlK,GACd/oK,KAAK0d,QAAQ3f,OAAS8zR,EAAWgX,aACjC7oS,KAAK0d,QAAQ3U,QAGpB/I,KAAKy3E,MAAMusN,aACPhkS,KAAKy3E,MAAMusN,YAAYhkS,KAAM+oK,IAIlC8oH,EAAWnzR,UAAUmgS,eAAiB,SAClCiK,EACAC,GAEK/oS,KAAKy3E,OAGVz3E,KAAKy3E,MAAM4kN,mBAAmB,WAAY,CACtCyM,EACAC,KAIRlX,EAAWnzR,UAAUsqS,UAAY,SAASlxR,GACtC,IAAImxR,EAAM,IAAIC,MACdD,EAAIp9O,IAAM0hO,EAAUwD,iBAAmBj5Q,EACvCmxR,EAAIE,OAAQ,EAEZ,IAAI3rB,EAAOx9Q,KAKX,OAJAipS,EAAIrU,OAAS,WACT50R,KAAKmpS,OAAQ,EACb3rB,EAAKqhB,gBAAe,IAEjBoK,GA2CXpX,EAAWnzR,UAAU0qS,aAAe,SAAShmS,GACzC,GAAKpD,KAAKy3E,OAAUz3E,KAAKy3E,MAAMw9M,oBAM/B,IAFA,IAAIpoM,EAAO7sF,KAAKy3E,MAAMw9M,oBAEbn3R,EAAI,EAAGA,EAAI+uF,EAAK9uF,SAAUD,EAAG,CAClC,IAAIoD,EAAI2rF,EAAK/uF,IAERsF,GAAKlC,EAAEmoS,sBAAwBrpS,QAKpCkB,EAAEmoS,qBAAuBjmS,EAAIpD,KAAO,QAQ5C6xR,EAAWnzR,UAAU2mR,SAAW,SAASikB,GACrCtpS,KAAKy3E,MAAM0jN,aAC0B,IAAjCn7R,KAAKC,YAAYspS,aAA0BD,KAG1CtpS,KAAK0iM,MAAM+vE,UAGZzyQ,KAAK0iM,MAAM+vE,WAAY,EAFvBzyQ,KAAK0iM,MAAM+vE,WAAY,EAI3BzyQ,KAAK6+R,gBAAe,GAAM,KAQ9BhN,EAAWnzR,UAAUo7E,IAAM,SAAS12E,GAChCpD,KAAKy3E,MAAM0jN,WAEPn7R,KAAK0iM,MAAM5hH,YADLjnE,IAANzW,GACqBpD,KAAK0iM,MAAM5hH,OAEZ19E,GAI5ByuR,EAAWnzR,UAAU8qS,cAAgB,SAASvtR,EAAGvZ,EAAG45R,GAChD,MAAO,EACFrgR,EAAIjc,KAAK2yC,IAAI,IAAM2pP,EAAY5mM,MAAQ4mM,EAAYl8P,OAAO,IAC1D19B,EAAI1C,KAAK2yC,IAAI,IAAM2pP,EAAY5mM,MAAQ4mM,EAAYl8P,OAAO,KAQnEa,EAAOy0P,YAAcnI,EAAUmI,YAAcA,EAE7CA,EAAYh3R,UAAU+2R,MAAQ,SAASxjQ,GACnCjyB,KAAKiyB,MAAQA,GAAS,QACtBjyB,KAAK4mS,UAAY,GACjB5mS,KAAKytB,MAAQ0oQ,EAAasT,YAAYC,UAChCvT,EAAasT,YAAYC,UAAUC,WACnC,OACN3pS,KAAK4pS,UAAY,IAAIpU,aAAa,CAAC,GAAI,GAAI,IAAK,KAChDx1R,KAAK8sK,KAAO9sK,KAAK4pS,UAAU3gD,SAAS,EAAG,GACvCjpP,KAAKyvK,MAAQzvK,KAAK4pS,UAAU3gD,SAAS,EAAG,GACxCjpP,KAAKo7R,OAAS,GACdp7R,KAAKy3E,MAAQ,KAEbr5E,OAAOC,eAAe2B,KAAM,MAAO,CAC/BwnC,IAAK,SAASpkC,IACLA,GAAKA,EAAErF,OAAS,IAGrBiC,KAAK8sK,KAAK,GAAK1pK,EAAE,GACjBpD,KAAK8sK,KAAK,GAAK1pK,EAAE,KAErBqvB,IAAK,WACD,OAAOzyB,KAAK8sK,MAEhB7uK,YAAY,IAGhBG,OAAOC,eAAe2B,KAAM,OAAQ,CAChCwnC,IAAK,SAASpkC,IACLA,GAAKA,EAAErF,OAAS,IAGrBiC,KAAKyvK,MAAM,GAAK/3J,KAAKC,IAAI,IAAKvU,EAAE,IAChCpD,KAAKyvK,MAAM,GAAK/3J,KAAKC,IAAI,GAAIvU,EAAE,MAEnCqvB,IAAK,WACD,OAAOzyB,KAAKyvK,OAEhBxxK,YAAY,KAIpBy3R,EAAYh3R,UAAUw2R,UAAY,SAASzxR,GACvCzD,KAAKiyB,MAAQxuB,EAAEwuB,MACfjyB,KAAK4pS,UAAUpiQ,IAAI/jC,EAAEomS,UACrB7pS,KAAKytB,MAAQhqB,EAAEgqB,MACfztB,KAAK60D,KAAOpxD,EAAEoxD,MAGlB6gO,EAAYh3R,UAAUwsC,UAAY,WAC9B,IAAI5rC,EAAIU,KAAK4pS,UACb,MAAO,CACH33Q,MAAOjyB,KAAKiyB,MACZ43Q,SAAU,CACNnyR,KAAKq/C,MAAMz3D,EAAE,IACboY,KAAKq/C,MAAMz3D,EAAE,IACboY,KAAKq/C,MAAMz3D,EAAE,IACboY,KAAKq/C,MAAMz3D,EAAE,KAEjBmuB,MAAOztB,KAAKytB,MACZonC,KAAM70D,KAAK60D,OAInB6gO,EAAYh3R,UAAU26E,KAAO,SAASywN,EAAQC,EAAQC,GAGlD,GAFAhqS,KAAK8sK,KAAK,IAAMg9H,EAChB9pS,KAAK8sK,KAAK,IAAMi9H,GACZC,EAGJ,IAAK,IAAIlsS,EAAI,EAAGA,EAAIkC,KAAKo7R,OAAOr9R,SAAUD,EAAG,CACzC,IAAI8G,EAAO5E,KAAKo7R,OAAOt9R,GACvB8G,EAAK+tC,IAAI,IAAMm3P,EACfllS,EAAK+tC,IAAI,IAAMo3P,IAIvBrU,EAAYh3R,UAAUurS,qBAAuB,WACzCjqS,KAAKo7R,OAAOr9R,OAAS,EAIrB,IAHA,IAAI08G,EAAQz6G,KAAKy3E,MAAM2jN,OACnB8O,EAAgB,IAAI1U,aAAa,GAE5B13R,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAAG,CACnC,IAAI8G,EAAO61G,EAAM38G,GACjB8G,EAAKijS,YAAYqC,GACZC,EAAgBnqS,KAAK4pS,UAAWM,IAGrClqS,KAAKo7R,OAAO73R,KAAKqB,KAIzB8wR,EAAYh3R,UAAU4hS,cAAgBzO,EAAWnzR,UAAU4hS,cAC3D5K,EAAYh3R,UAAUmgS,eAAiBhN,EAAWnzR,UAAUmgS,eAwB5DtR,EAAUoI,aAAeA,EAEzBA,EAAaj3R,UAAUw3R,WAAa,SAAS3rR,GACzCvK,KAAKg2R,WAAa,IAAIR,aAAa,GAEnCx1R,KAAKoqS,uBAAyBpqS,KAAKq5R,QAAQj+N,KAAKp7D,MAEhDuK,EAAQ7E,iBAAiB,YAAa1F,KAAKoqS,wBAC3C7/R,EAAQ7E,iBAAiB,YAAa1F,KAAKoqS,wBAE3C7/R,EAAQ7E,iBACJ,aACA1F,KAAKoqS,wBACL,GAEJ7/R,EAAQ7E,iBAAiB,QAAS1F,KAAKoqS,wBAAwB,IAGnEzU,EAAaj3R,UAAU2rS,mBAAqB,SAAU/P,GAClD,GAAKt6R,KAAKuK,QAAV,CAIA,IAAIM,EAAQ7K,KAAKuK,QAAQM,MACrBC,EAAS9K,KAAKuK,QAAQO,OACtBw/R,GAAUtqS,KAAKogC,OAAO,GACtBmqQ,GAAUvqS,KAAKogC,OAAO,GAC5Bk6P,IAEHgQ,GAAUhQ,EAAS,GAAKt6R,KAAK01F,MAC7B60M,GAAUjQ,EAAS,GAAKt6R,KAAK01F,MAC7B7qF,EAAQyvR,EAAS,GACjBxvR,EAASwvR,EAAS,IAEb,IAAIkQ,EAAOF,EAASz/R,EAAQ7K,KAAK01F,MAC7B+0M,EAAOF,EAASz/R,EAAS9K,KAAK01F,MAClC11F,KAAKi2R,aAAa,GAAKqU,EACvBtqS,KAAKi2R,aAAa,GAAKsU,EACvBvqS,KAAKi2R,aAAa,GAAKuU,EAAOF,EAC9BtqS,KAAKi2R,aAAa,GAAKwU,EAAOF,OAnB1BvqS,KAAKi2R,aAAa,GAAKj2R,KAAKi2R,aAAa,GAAKj2R,KAAKi2R,aAAa,GAAKj2R,KAAKi2R,aAAa,GAAK,GAsBpGN,EAAaj3R,UAAU26R,QAAU,SAAS14R,GACtC,GAAKX,KAAKguF,QAAV,CAIA,IAAIooM,EAASp2R,KAAKuK,QACdmgS,EAAOtU,EAAOtpR,wBACdmP,EAAItb,EAAEmtL,QAAU48G,EAAKz+R,KACrBvJ,EAAI/B,EAAEotL,QAAU28G,EAAK3+R,IACzBpL,EAAEgqS,QAAU1uR,EACZtb,EAAEiqS,QAAUloS,EACZ/B,EAAEkqS,SAAW7qS,KAAK6qS,SAExB,IAAIC,GAAa9qS,KAAKs6R,UAAct6R,KAAKs6R,UAAYr+Q,GAAKjc,KAAKs6R,SAAS,IAAMr+Q,EAAKjc,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,IAAO53R,GAAK1C,KAAKs6R,SAAS,IAAM53R,EAAK1C,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,GAEhLyQ,GAAS,EAKb,GAJI/qS,KAAKgrS,UACLD,EAAS/qS,KAAKgrS,QAAQrqS,IAGZ,aAAVA,EAAEwE,MAAuB2lS,EACzB9qS,KAAK6qS,UAAW,EAChBzU,EAAOzwR,oBAAqB,YAAa3F,KAAKoqS,wBAC9ChgS,SAAS5H,KAAKkD,iBAAkB,YAAa1F,KAAKoqS,wBAClDhgS,SAAS5H,KAAKkD,iBAAkB,UAAW1F,KAAKoqS,6BAC7C,GAAc,aAAVzpS,EAAEwE,MACT,IAAK4lS,EAAQ,CACT,IAAIjB,EAAS7tR,EAAIjc,KAAKg2R,WAAW,GAC7B+T,EAASrnS,EAAI1C,KAAKg2R,WAAW,GAC7Bh2R,KAAK6qS,UACL7qS,KAAKirS,UAAUnB,EAAQC,QAGd,WAAVppS,EAAEwE,MACTnF,KAAK6qS,UAAW,EAChBzgS,SAAS5H,KAAKmD,oBAAqB,YAAa3F,KAAKoqS,wBACrDhgS,SAAS5H,KAAKmD,oBAAqB,UAAW3F,KAAKoqS,wBACnDhU,EAAO1wR,iBAAiB,YAAa1F,KAAKoqS,0BAClCU,GACG,cAAVnqS,EAAEwE,MACO,SAAVxE,EAAEwE,MACQ,kBAAVxE,EAAEwE,OAEFxE,EAAEuqS,UAAY,aACA,SAAVvqS,EAAEwE,KACFxE,EAAEwqS,OAASxqS,EAAE48J,OAEb58J,EAAEwqS,MACmB,MAAjBxqS,EAAE6tL,YAAsB7tL,EAAE6tL,aAA0B,GAAZ7tL,EAAEgtL,OAIlDhtL,EAAEg3D,MAAQh3D,EAAEquL,WACNruL,EAAEquL,WAAa,GACfruL,EAAE48J,QACD58J,EAAE48J,OAAS,EACZ,EACNv9J,KAAKorS,iBAAiB,EAAgB,IAAVzqS,EAAEg3D,QAMxC,OAHM33D,KAAKg2R,WAAW,GAAK/5Q,EACrBjc,KAAKg2R,WAAW,GAAKtzR,EAExBooS,GAEInqS,EAAEsT,iBACLtT,EAAEwT,mBACK,QAJX,IAQEwhR,EAAaj3R,UAAU2sS,gBAAkB,SAASpyJ,GAC9CA,EAAIvjD,MAAM11F,KAAK01F,MAAO11F,KAAK01F,OAC3BujD,EAAIqyJ,UAAUtrS,KAAKogC,OAAO,GAAIpgC,KAAKogC,OAAO,KAG9Cu1P,EAAaj3R,UAAU6sS,sBAAwB,SAAS54P,GAEpD,MAAO,EACFA,EAAI,GAAK3yC,KAAKogC,OAAO,IAAMpgC,KAAK01F,OAChC/iD,EAAI,GAAK3yC,KAAKogC,OAAO,IAAMpgC,KAAK01F,QAIzCigM,EAAaj3R,UAAU8sS,sBAAwB,SAAS74P,EAAKsiE,GAIzD,OAHAA,EAAMA,GAAO,CAAC,EAAG,IACb,GAAKtiE,EAAI,GAAK3yC,KAAK01F,MAAQ11F,KAAKogC,OAAO,GAC3C60E,EAAI,GAAKtiE,EAAI,GAAK3yC,KAAK01F,MAAQ11F,KAAKogC,OAAO,GACpC60E,GAGX0gL,EAAaj3R,UAAUusS,UAAY,SAAShvR,EAAGvZ,GAC3C1C,KAAKogC,OAAO,IAAMnkB,EAAIjc,KAAK01F,MAC3B11F,KAAKogC,OAAO,IAAM19B,EAAI1C,KAAK01F,MAEvB11F,KAAK+1R,UACL/1R,KAAK+1R,SAAS/1R,OAItB21R,EAAaj3R,UAAU+sS,YAAc,SAASzpS,EAAO0pS,GAOjD,GANI1pS,EAAQhC,KAAK81R,UACb9zR,EAAQhC,KAAK81R,UACN9zR,EAAQhC,KAAK61R,YACpB7zR,EAAQhC,KAAK61R,WAGb7zR,GAAShC,KAAK01F,OAIb11F,KAAKuK,QAAV,CAIA,IAAImgS,EAAO1qS,KAAKuK,QAAQuC,wBACxB,GAAK49R,EAAL,CAIAgB,EAAiBA,GAAkB,CAClB,GAAbhB,EAAK7/R,MACS,GAAd6/R,EAAK5/R,QAET,IAAI6gS,EAAS3rS,KAAKwrS,sBAAsBE,GACxC1rS,KAAK01F,MAAQ1zF,EACT0V,KAAKmgD,IAAI73D,KAAK01F,MAAQ,GAAK,MAC3B11F,KAAK01F,MAAQ,GAGjB,IAAIk2M,EAAa5rS,KAAKwrS,sBAAsBE,GACxCG,EAAe,CACfD,EAAW,GAAKD,EAAO,GACvBC,EAAW,GAAKD,EAAO,IAG3B3rS,KAAKogC,OAAO,IAAMyrQ,EAAa,GAC/B7rS,KAAKogC,OAAO,IAAMyrQ,EAAa,GAE3B7rS,KAAK+1R,UACL/1R,KAAK+1R,SAAS/1R,SAItB21R,EAAaj3R,UAAU0sS,iBAAmB,SAASppS,EAAO0pS,GACtD1rS,KAAKyrS,YAAYzrS,KAAK01F,MAAQ1zF,EAAO0pS,IAGzC/V,EAAaj3R,UAAUiX,MAAQ,WAC3B3V,KAAK01F,MAAQ,EACb11F,KAAKogC,OAAO,GAAK,EACjBpgC,KAAKogC,OAAO,GAAK,GA+HrBa,EAAOk1P,aAAe5I,EAAU4I,aAAeA,EAElDA,EAAaG,yBAA2B,6eAErCH,EAAa2V,iBAAmB,CAC5B,KAAMve,EAAU4B,iBAChBx4N,OAAQ,OACR/xD,KAAM,QAEVuxR,EAAa4V,UAAY,GAOzB5V,EAAaz3R,UAAU6e,MAAQ,WAC3Bvd,KAAKgsS,MAAQ,EACbhsS,KAAKisS,eAAiB,EACtBjsS,KAAKksS,YAAc,EACnBlsS,KAAKmsS,IAAM,EAKXnsS,KAAKk4R,mBAAqB,KAE1Bl4R,KAAK2/R,eAAiB,GACtB3/R,KAAKosS,eAAiB,KAEtBpsS,KAAKqsS,cAAgB,GACrBrsS,KAAK4/R,aAAe,KACpB5/R,KAAKssS,UAAY,KACjBtsS,KAAKqpS,qBAAuB,KAC5BrpS,KAAKusS,gBAAkB,KACvBvsS,KAAKwsS,kBAAoB,GAE/BxsS,KAAKysS,iBAAkB,EAEjBzsS,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,EACtB3sS,KAAK4sS,WAAa,KAElB5sS,KAAK6sS,cAAgB,KACrB7sS,KAAKk6R,YAAc,KAEnBl6R,KAAKg2R,WAAa,CAAC,EAAG,GACtBh2R,KAAK8sS,gBAAkB,EACvB9sS,KAAKi2R,aAAazuP,IAAI,CAAC,EAAG,EAAG,EAAG,IAE5BxnC,KAAKmnO,SACLnnO,KAAKmnO,WAUbgvD,EAAaz3R,UAAUquS,SAAW,SAASt1N,EAAOu1N,GAC1ChtS,KAAKy3E,OAASA,IAIbu1N,GACDhtS,KAAKud,QAGJk6D,IAASz3E,KAAKy3E,OAKnBA,EAAM8iN,aAAav6R,MAGrBA,KAAKitS,eACRjtS,KAAKitS,aAAe,MAEfjtS,KAAKktS,UAAS,GAAM,IAVhBltS,KAAKy3E,MAAM8kN,aAAav8R,QAmBnCm2R,EAAaz3R,UAAUyuS,YAAc,WAEpC,OAAGntS,KAAKitS,aAAalvS,OACbiC,KAAKitS,aAAa,GACnBjtS,KAAKy3E,OASV0+M,EAAaz3R,UAAU0uS,aAAe,SAAS31N,GAC3C,IAAKA,EACD,KAAM,uBAGV,GAAIz3E,KAAKy3E,OAASA,EACd,KAAM,2BAGVz3E,KAAKud,QAEDvd,KAAKy3E,QACAz3E,KAAKitS,eACNjtS,KAAKitS,aAAe,IAExBjtS,KAAKitS,aAAa1pS,KAAKvD,KAAKy3E,QAGhCA,EAAM8iN,aAAav6R,MACzBA,KAAKqtS,cACCrtS,KAAKktS,UAAS,GAAM,IASxB/W,EAAaz3R,UAAU4uS,cAAgB,WACnC,GAAKttS,KAAKitS,cAA4C,GAA5BjtS,KAAKitS,aAAalvS,OAA5C,CAGA,IAAIwvS,EAAgBvtS,KAAKy3E,MAAM+1N,eAC3B/1N,EAAQz3E,KAAKitS,aAAa3pS,MAC9BtD,KAAK2/R,eAAiB,GACtB3/R,KAAKwsS,kBAAoB,GACzB/0N,EAAM8iN,aAAav6R,MACnBA,KAAKktS,UAAS,GAAM,GAChBK,IACAvtS,KAAKytS,aAAaF,GAClBvtS,KAAK0tS,YAAY,CAACH,OAS1BpX,EAAaz3R,UAAUivS,gBAAkB,WACrC,OAAO3tS,KAAKy3E,OAShB0+M,EAAaz3R,UAAU87R,UAAY,SAASpE,EAAQR,GAGhD,GAAIQ,GACIA,EAAOn2R,cAAgBH,UACvBs2R,EAAShsR,SAASwjS,eAAexX,IAE7B,KAAM,oDAKlB,GAAIA,IAAWp2R,KAAKo2R,UAIfA,GAAUp2R,KAAKo2R,SAEXR,GACD51R,KAAK6tS,gBAIb7tS,KAAKo2R,OAASA,EACdp2R,KAAKu2R,GAAGhsR,QAAU6rR,EAEbA,GAAL,CAiBA,GAZAA,EAAO5/Q,WAAa,gBACpB4/Q,EAAOj3R,KAAOa,KACdo2R,EAAO0X,SAAW,IAGlB9tS,KAAK+tS,SAAW,KACX/tS,KAAK+tS,WACN/tS,KAAK+tS,SAAW3jS,SAASsF,cAAc,UACvC1P,KAAK+tS,SAASljS,MAAQ7K,KAAKo2R,OAAOvrR,MAClC7K,KAAK+tS,SAASjjS,OAAS9K,KAAKo2R,OAAOtrR,QAGd,MAArBsrR,EAAOl9I,WAAoB,CAC3B,GAAwB,UAApBk9I,EAAO4X,UACP,KAAM,8EACF5X,EAAO4X,UAEf,KAAM,sCAIC,OADAhuS,KAAKi5I,IAAMm9I,EAAOl9I,WAAW,SAE/Bk9I,EAAO6X,eACRvwR,QAAQC,KACJ,0DAGR3d,KAAKkuS,eAITluS,KAAKmuS,oBAAsBnuS,KAAKouS,iBAAiBhzO,KAAKp7D,MACtDA,KAAKquS,kBAAoBruS,KAAKsuS,eAAelzO,KAAKp7D,MAE7C41R,GACD51R,KAAKk2R,eAKbC,EAAaz3R,UAAU6vS,WAAa,SAAmB5tS,GAEnD,OADAA,EAAEsT,kBACK,GAEXkiR,EAAaz3R,UAAU8vS,cAAgB,SAAmB7tS,GAEtD,OADAA,EAAEsT,kBACK,GAOXkiR,EAAaz3R,UAAUw3R,WAAa,WAChC,GAAIl2R,KAAKyuS,eACL/wR,QAAQC,KAAK,2CADjB,CAKA,IAAIy4Q,EAASp2R,KAAKo2R,OAGdhsR,EADapK,KAAK0uS,kBACItkS,SAE1BpK,KAAK2uS,oBAAsB3uS,KAAK4uS,iBAAiBxzO,KAAKp7D,MACtDA,KAAK6uS,qBAAuB7uS,KAAK8uS,kBAAkB1zO,KAAKp7D,MACxDA,KAAK+uS,gBAAkB/uS,KAAKgvS,aAAa5zO,KAAKp7D,MAE9Co2R,EAAO1wR,iBAAiB,YAAa1F,KAAK2uS,qBAAqB,GAC/DvY,EAAO1wR,iBAAiB,YAAa1F,KAAKmuS,qBAC1C/X,EAAO1wR,iBAAiB,aAAc1F,KAAK6uS,sBAAsB,GAEjEzY,EAAO1wR,iBAAiB,cAAe1F,KAAKuuS,YAC5CnY,EAAO1wR,iBACH,iBACA1F,KAAK6uS,sBACL,GAMAzY,EAAO1wR,iBAAiB,aAAc1F,KAAK+uS,iBAAiB,GAC5D3Y,EAAO1wR,iBAAiB,YAAa1F,KAAK+uS,iBAAiB,GAC3D3Y,EAAO1wR,iBAAiB,WAAY1F,KAAK+uS,iBAAiB,GAC1D3Y,EAAO1wR,iBAAiB,cAAe1F,KAAK+uS,iBAAiB,GAIjE/uS,KAAKivS,cAAgBjvS,KAAKkvS,WAAW9zO,KAAKp7D,MAE1Co2R,EAAO1wR,iBAAiB,UAAW1F,KAAKivS,eAAe,GACvD7kS,EAAS1E,iBAAiB,QAAS1F,KAAKivS,eAAe,GAGvDjvS,KAAKmvS,iBAAmBnvS,KAAKovS,YAAYh0O,KAAKp7D,MAE9Co2R,EAAO1wR,iBAAiB,WAAY1F,KAAKuuS,YAAY,GACrDnY,EAAO1wR,iBAAiB,UAAW1F,KAAKuuS,YAAY,GACpDnY,EAAO1wR,iBAAiB,OAAQ1F,KAAKmvS,kBAAkB,GACvD/Y,EAAO1wR,iBAAiB,YAAa1F,KAAKwuS,eAAe,GAEzDxuS,KAAKyuS,gBAAiB,IAO1BtY,EAAaz3R,UAAUmvS,aAAe,WAClC,GAAK7tS,KAAKyuS,eAAV,CAKA,IACIrkS,EADapK,KAAK0uS,kBACItkS,SAE1BpK,KAAKo2R,OAAOzwR,oBAAoB,YAAa3F,KAAK2uS,qBAClD3uS,KAAKo2R,OAAOzwR,oBACR,aACA3F,KAAK6uS,sBAET7uS,KAAKo2R,OAAOzwR,oBACR,iBACA3F,KAAK6uS,sBAET7uS,KAAKo2R,OAAOzwR,oBAAoB,UAAW3F,KAAKivS,eAChD7kS,EAASzE,oBAAoB,QAAS3F,KAAKivS,eAC3CjvS,KAAKo2R,OAAOzwR,oBAAoB,cAAe3F,KAAKuuS,YACpDvuS,KAAKo2R,OAAOzwR,oBAAoB,OAAQ3F,KAAKmvS,kBAC7CnvS,KAAKo2R,OAAOzwR,oBAAoB,YAAa3F,KAAKwuS,eAElDxuS,KAAKo2R,OAAOzwR,oBAAoB,aAAc3F,KAAK+uS,iBACnD/uS,KAAKo2R,OAAOzwR,oBAAoB,YAAa3F,KAAK+uS,iBAClD/uS,KAAKo2R,OAAOzwR,oBAAoB,WAAY3F,KAAK+uS,iBACjD/uS,KAAKo2R,OAAOzwR,oBAAoB,cAAe3F,KAAK+uS,iBAEpD/uS,KAAK2uS,oBAAsB,KAC3B3uS,KAAK6uS,qBAAuB,KAC5B7uS,KAAKivS,cAAgB,KACrBjvS,KAAKmvS,iBAAmB,KAExBnvS,KAAKyuS,gBAAiB,OAhClB/wR,QAAQC,KAAK,mCAmCrBw4Q,EAAakZ,iBAAmB,SAASv3R,GACrC,IAAIuiE,EAAWviE,EAAIlX,QAAQ,MACV,GAAby5E,IACAviE,EAAMA,EAAIqxB,OAAO,EAAGkxC,IAExB,IAAIi1N,EAAQx3R,EAAIyoB,YAAY,KAC5B,OAAc,GAAV+uQ,EACO,GAEJx3R,EAAIqxB,OAAOmmQ,EAAQ,GAAGvsQ,eAQjCozP,EAAaz3R,UAAUwvS,YAAc,WACjC,QAAkBr0R,WAAP01R,GACP,KAAM,mDAEV,QAAiC11R,WAAtB21R,kBACP,KAAM,sDAGVxvS,KAAKyvS,GAAKzvS,KAAKi5I,IAAMu2J,kBAAkBxvS,KAAKo2R,QAC5Cp2R,KAAKi5I,IAAIy2J,OAAQ,EACjB1vS,KAAK+tS,SAAW/tS,KAAKo2R,OACrBp2R,KAAK2vS,MAAQ3vS,KAAKyvS,GAClBzvS,KAAKo2R,OAAO6X,eAAgB,GAiBhC9X,EAAaz3R,UAAUwuS,SAAW,SAAS0C,EAAU7B,GAC7C6B,IACA5vS,KAAK0sS,cAAe,GAEpBqB,IACA/tS,KAAK2sS,gBAAiB,IAU9BxW,EAAaz3R,UAAUgwS,gBAAkB,WACrC,IAAK1uS,KAAKo2R,OACN,OAAOzrR,OAEX,IAAIwgD,EAAMnrD,KAAKo2R,OAAOh4O,cACtB,OAAO+M,EAAI9gD,aAAe8gD,EAAI0kP,cAQlC1Z,EAAaz3R,UAAUg8R,eAAiB,WAChC16R,KAAK8vS,eAIT9vS,KAAK8vS,cAAe,EAGpB,SAASC,IACA/vS,KAAKq3R,iBACNr3R,KAAKgwS,OAGT,IAAIrlS,EAAS3K,KAAK0uS,kBACd1uS,KAAK8vS,cACLnlS,EAAOhD,sBAAsBooS,EAAY30O,KAAKp7D,QAT1CJ,KAAKI,QAmBrBm2R,EAAaz3R,UAAUuxS,cAAgB,WACnCjwS,KAAK8vS,cAAe,GAa3B3Z,EAAaz3R,UAAUwxS,WAAa,WAEnClwS,KAAKmwS,aAAc,EACnBnwS,KAAK8sS,gBAAkB,GAGrB3W,EAAaz3R,UAAUkwS,iBAAmB,SAASjuS,GAKrD,GAHIX,KAAKm4R,kCACRn4R,KAAK0sS,cAAe,GAEhB1sS,KAAKy3E,MAAV,CAIMz3E,KAAKowS,iBAAiBzvS,GAEtB,IAAI0vS,EAAarwS,KAAK0uS,kBACP2B,EAAWjmS,SAC1B+rR,EAAama,cAAgBtwS,KAC7B,IAAIw9Q,EAAOx9Q,KAEbic,EAAItb,EAAE4vS,OACN7tS,EAAI/B,EAAE6vS,OAGVxwS,KAAKu2R,GAAG+D,SAAWt6R,KAAKs6R,SACxB,IAAIwQ,GAAa9qS,KAAKs6R,UAAct6R,KAAKs6R,UAAYr+Q,GAAKjc,KAAKs6R,SAAS,IAAMr+Q,EAAKjc,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,IAAO53R,GAAK1C,KAAKs6R,SAAS,IAAM53R,EAAK1C,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,GAU1L,GAPIt6R,KAAKqF,QAAQuwR,cAEhB51R,KAAKo2R,OAAOzwR,oBAAoB,YAAa3F,KAAKmuS,qBAClDkC,EAAWjmS,SAAS1E,iBAAkB,YAAa1F,KAAKmuS,qBAAqB,GAC7EkC,EAAWjmS,SAAS1E,iBAAkB,UAAW1F,KAAKquS,mBAAmB,IAGtEvD,EAAJ,CAGM,IAAIlmS,EAAO5E,KAAKy3E,MAAM2oN,aAAcz/R,EAAE8vS,QAAS9vS,EAAE+vS,QAAS1wS,KAAKqsS,cAAe,GAE1EsE,GAAc,EAEdC,EADMrjB,EAAUrlR,UACQlI,KAAK8sS,gBAAkB,IAWnD,GAVN9sS,KAAKg5R,MAAM,GAAKr4R,EAAE4vS,OAClBvwS,KAAKg5R,MAAM,GAAKr4R,EAAE6vS,OACZxwS,KAAKi5R,YAAY,GAAKt4R,EAAE8vS,QACxBzwS,KAAKi5R,YAAY,GAAKt4R,EAAE+vS,QAC9B1wS,KAAK6wS,oBAAsB,CAAC7wS,KAAKg5R,MAAM,GAAGh5R,KAAKg5R,MAAM,IAE/Ch5R,KAAKo2R,OAAOp5P,QAEZuwP,EAAUujB,qBAAqBT,IAE3BrwS,KAAKq5R,SAEkB,GAAnBr5R,KAAKq5R,QAAQ14R,GAFrB,CAOA,GAAe,GAAXA,EAAEowS,MACZ,CACcpwS,EAAE2Y,UAEFtZ,KAAKk4R,mBAAqB,IAAI1C,aAAa,GAC3Cx1R,KAAKk4R,mBAAmB,GAAKv3R,EAAE8vS,QAC/BzwS,KAAKk4R,mBAAmB,GAAKv3R,EAAE+vS,QAC/B1wS,KAAKk4R,mBAAmB,GAAK,EAC7Bl4R,KAAKk4R,mBAAmB,GAAK,EAC7ByY,GAAc,GAGlB,IAAIK,GAAqB,EAIzB,GAAIpsS,GAAQ5E,KAAK63R,oBAAsB8Y,IAAgB3wS,KAAKu3R,UAAW,CAMnE,GALKv3R,KAAKy3R,WAAc7yR,EAAK89L,MAAM5hH,QAC/B9gF,KAAKixS,aAAarsS,IAIhB5E,KAAKusS,kBAAoB3nS,EAAK89L,MAAM+vE,YAAczyQ,KAAKy3R,UAEzD,IACKkZ,IACkB,IAAnB/rS,EAAKssS,WACLjJ,EACItnS,EAAE8vS,QACF9vS,EAAE+vS,QACF9rS,EAAK+tC,IAAI,GAAK/tC,EAAK6H,KAAK,GAAK,EAC7B7H,EAAK+tC,IAAI,GAAK/tC,EAAK6H,KAAK,GAAK,EAC7B,GACA,IAGtBzM,KAAKy3E,MAAM8nN,eACOv/R,KAAKmxS,cAAgBvsS,EACrB5E,KAAKo2R,OAAO1pR,MAAM8tG,OAAS,YAC3Bm2L,GAAc,MACX,CAEH,GAAI/rS,EAAKw3R,QACL,IAAM,IAAIt+R,EAAI,EAAG2G,EAAIG,EAAKw3R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAAI,CACnD,IAAIk6B,EAASpzB,EAAKw3R,QAAQt+R,GACtBsqS,EAAWxjS,EAAKyjS,kBAAiB,EAAOvqS,GAC5C,GACImqS,EACItnS,EAAE8vS,QACF9vS,EAAE+vS,QACFtI,EAAS,GAAK,GACdA,EAAS,GAAK,GACd,GACA,IAEN,CACEpoS,KAAKusS,gBAAkB3nS,EACvB5E,KAAKoxS,kBAAoBp5Q,EACzBh4B,KAAKqxS,eAAiBzsS,EAAKyjS,kBAAkB,EAAOvqS,GACpDkC,KAAKsxS,gBAAkBxzS,EAEnB6C,EAAE0Y,UACFzU,EAAK86R,iBAAiB5hS,GAGtB8yS,EACIhsS,EAAK2sS,kBACL3sS,EAAK2sS,iBAAiBzzS,EAAG6C,GAGzBiE,EAAK4sS,eACL5sS,EAAK4sS,cAAc1zS,EAAG6C,GAI9BgwS,GAAc,EACd,OAMZ,GAAI/rS,EAAKu3R,OACL,IAAUr+R,EAAI,EAAG2G,EAAIG,EAAKu3R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAAI,CAClD,IAAIsxF,EAAQxqF,EAAKu3R,OAAOr+R,GACpBsqS,EAAWxjS,EAAKyjS,kBAAiB,EAAMvqS,GAC3C,GACImqS,EACItnS,EAAE8vS,QACF9vS,EAAE+vS,QACFtI,EAAS,GAAK,GACdA,EAAS,GAAK,GACd,GACA,MAGAwI,EACIhsS,EAAK6sS,iBACL7sS,EAAK6sS,gBAAgB3zS,EAAG6C,GAGxBiE,EAAK8sS,cACL9sS,EAAK8sS,aAAa5zS,EAAG6C,GAIV,OAAfyuF,EAAMrgC,MAAe,CACrB,IAAIwzO,EAAYviS,KAAKy3E,MAAM8pB,MACvBnS,EAAMrgC,MAEVnqD,EAAK66R,gBAAgB3hS,IAGjBkC,KAAK+3R,uBACLp3R,EAAE0Y,YAEFrZ,KAAKusS,gBAAkBvsS,KAAKy3E,MAAM6jN,aAC9BiH,EAAUnN,WAEdp1R,KAAKsxS,gBACD/O,EAAUlN,YACdr1R,KAAKoxS,kBAAoBpxS,KAAKusS,gBAAgBnQ,QAC1Cp8R,KAAKsxS,iBAETtxS,KAAKqxS,eAAiBrxS,KAAKusS,gBAAgBlE,kBAAkB,EAAOroS,KAAKsxS,kBAG7EtxS,KAAK2sS,gBAAiB,EACtBgE,GAAc,IAStC,IAAKA,EAAa,CACd,IAAIgB,GAAkB,EACjCh/P,EAAM,CAAChyC,EAAE8vS,QAAU7rS,EAAK+tC,IAAI,GAAIhyC,EAAE+vS,QAAU9rS,EAAK+tC,IAAI,IAGtCqqI,EAASh9K,KAAK4xS,mBAAoBhtS,EAAM5E,KAAKi5R,YAAat4R,GAiB9D,GAhBIq8K,IACA20H,GAAkB,EAClB3xS,KAAKk6R,YAAc,CAACt1R,EAAMo4K,IAI1B4zH,GAAmB5wS,KAAK2/R,eAAe/6R,EAAK2R,MAExC3R,EAAKitS,YACLjtS,EAAKitS,WAAYlxS,EAAGgyC,EAAK3yC,MAE7BA,KAAK8xS,sBAAsBltS,GAC3B+sS,GAAkB,GAIjB/sS,EAAK6jO,aAAe7jO,EAAK6jO,YAAa9nO,EAAGgyC,EAAK3yC,MAC/C2xS,GAAkB,MACf,CAErB,GAAG/sS,EAAKmtS,WAAantS,EAAKotS,uBAEnBptS,EAAK89L,MAAM+vE,WAAa9/N,EAAI,GAAK/tC,EAAK6H,KAAK,GAAK8gR,EAAUG,mBAAqB/6O,EAAI,GAAK,EAAI,CAC7F6qO,EAAOx9Q,KACXgI,YAAW,WACVw1Q,EAAK4vB,aAAaxoS,EAAKmtS,YACrB,IAID/xS,KAAKy3R,YACRuZ,GAAqB,EACHW,GAAkB,GAIlBA,IACG3xS,KAAK43R,kBAC1B53R,KAAKy3E,MAAM8nN,eACUv/R,KAAK4/R,aAAeh7R,GAEnB5E,KAAK2/R,eAAe/6R,EAAK2R,KAC1BvW,KAAKiyS,oBAAoBrtS,EAAMjE,IAIvCX,KAAK0sS,cAAe,OAGvB,CAEb,IAAI1sS,KAAKu3R,UACR,IAASz5R,EAAI,EAAGA,EAAIkC,KAAKq6R,cAAct8R,SAAUD,EAAG,CACnD,IAAIixD,EAAO/uD,KAAKq6R,cAAcv8R,GAC1B6tS,EAAS58O,EAAK+9G,KAClB,MACE6+H,GACDhrS,EAAE8vS,QAAU9E,EAAO,GAAK,GACxBhrS,EAAE8vS,QAAU9E,EAAO,GAAK,GACxBhrS,EAAE+vS,QAAU/E,EAAO,GAAK,GACxBhrS,EAAE+vS,QAAU/E,EAAO,GAAK,GALzB,CAUA3rS,KAAKkyS,aAAanjP,EAAMpuD,GACxBX,KAAKm6R,iBAAmB,KACxB,OAKU,GAFAn6R,KAAKosS,eAAiBpsS,KAAKy3E,MAAM8oN,cAAe5/R,EAAE8vS,QAAS9vS,EAAE+vS,SAC7D1wS,KAAKmyS,yBAA0B,EAC3BnyS,KAAKosS,iBAAmBpsS,KAAKu3R,UACzB52R,EAAE2Y,UACFtZ,KAAKk4R,mBAAqB,MAGnBplJ,EAAU,CAACnyI,EAAE8vS,QAAS9vS,EAAE+vS,SAAU,CAAE1wS,KAAKosS,eAAez5P,IAAI,GAAK3yC,KAAKosS,eAAe3/R,KAAK,GAAIzM,KAAKosS,eAAez5P,IAAI,GAAK3yC,KAAKosS,eAAe3/R,KAAK,KACpJzM,KAAKu2R,GAAG7gM,MAAQ,GACvB11F,KAAKmyS,yBAA0B,EAE/BnyS,KAAKosS,eAAenC,uBAIxB2G,IAAoB5wS,KAAKu3R,WAAav3R,KAAK83R,iBAC3C93R,KAAKoyS,cAAczxS,GAGvBqwS,GAAqB,GAGpBL,GAAeK,GAAsBhxS,KAAK23R,mBAC3C33R,KAAKysS,iBAAkB,QAET,GAAX9rS,EAAEowS,OAES,GAAXpwS,EAAEowS,QAEd/wS,KAAKu3R,WACCv3R,KAAKqyS,mBAAmBztS,EAAMjE,IAmCnC,OA5BAX,KAAKg2R,WAAW,GAAKr1R,EAAE4vS,OACvBvwS,KAAKg2R,WAAW,GAAKr1R,EAAE6vS,OACvBxwS,KAAK8sS,gBAAkBvf,EAAUrlR,UACjClI,KAAKsyS,qBAAsB,EAO3BtyS,KAAKy3E,MAAMuuB,WAINqqM,EAAWjmS,SAASiF,eAEjB,SADHghS,EAAWjmS,SAASiF,cAAc2B,SAAS+xB,eAGpC,YADJstQ,EAAWjmS,SAASiF,cAAc2B,SAAS+xB,gBAG/CpiC,EAAEsT,iBAENtT,EAAEwT,kBAEEnU,KAAKyoO,aACLzoO,KAAKyoO,YAAY9nO,IAGd,MAOXw1R,EAAaz3R,UAAU0vS,iBAAmB,SAASztS,GAQ/C,GAPIX,KAAK26R,YACL36R,KAAKuyS,SAGXvyS,KAAKm4R,kCACRn4R,KAAK0sS,cAAe,GAEV1sS,KAAKy3E,MAAV,CAIA0+M,EAAama,cAAgBtwS,KAC7BA,KAAKowS,iBAAiBzvS,GACtB,IAAIq4R,EAAQ,CAACr4R,EAAE4vS,OAAQ5vS,EAAE6vS,QAC/BxwS,KAAKg5R,MAAM,GAAKA,EAAM,GACtBh5R,KAAKg5R,MAAM,GAAKA,EAAM,GAChB,IAAIrhO,EAAQ,CACRqhO,EAAM,GAAKh5R,KAAKg2R,WAAW,GAC3BgD,EAAM,GAAKh5R,KAAKg2R,WAAW,IAMrC,GAJMh2R,KAAKg2R,WAAagD,EAClBh5R,KAAKi5R,YAAY,GAAKt4R,EAAE8vS,QACxBzwS,KAAKi5R,YAAY,GAAKt4R,EAAE+vS,QAE3B1wS,KAAKmwS,YAGP,OADAxvS,EAAEsT,kBACK,EAeF,GAZAtT,EAAEkqS,SAAW7qS,KAAKsyS,oBAEdtyS,KAAKk6R,cACLl6R,KAAK4xS,mBACD5xS,KAAKk6R,YAAY,GACjBl6R,KAAKi5R,YACLt4R,EACAX,KAAKk6R,YAAY,IAErBl6R,KAAK0sS,cAAe,GAGpB1sS,KAAKk4R,mBAELl4R,KAAKk4R,mBAAmB,GAAKv3R,EAAE8vS,QAAUzwS,KAAKk4R,mBAAmB,GACjEl4R,KAAKk4R,mBAAmB,GAAKv3R,EAAE+vS,QAAU1wS,KAAKk4R,mBAAmB,GACjEl4R,KAAK0sS,cAAe,OAEzB,GAAI1sS,KAAKosS,iBAAmBpsS,KAAKu3R,UACtC,CAEU,GAAIv3R,KAAKmyS,wBACLnyS,KAAKosS,eAAe3/R,KAAO,CACvB9L,EAAE8vS,QAAUzwS,KAAKosS,eAAez5P,IAAI,GACpChyC,EAAE+vS,QAAU1wS,KAAKosS,eAAez5P,IAAI,QAErC,CACH,IAAIm3P,EAASnyO,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MAC5Bq0M,EAASpyO,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MAChC11F,KAAKosS,eAAe/yN,KAAKywN,EAAQC,EAAQppS,EAAE2Y,SACvCtZ,KAAKosS,eAAehR,OAAOr9R,SAC3BiC,KAAK0sS,cAAe,GAG5B1sS,KAAK2sS,gBAAiB,OACnB,GAAI3sS,KAAKysS,gBACZzsS,KAAKu2R,GAAGn2P,OAAO,IAAMu3B,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MACxC11F,KAAKu2R,GAAGn2P,OAAO,IAAMu3B,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MACxC11F,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,OACnB,GAAI3sS,KAAK63R,oBAAsB73R,KAAKu3R,UAAW,CAC9Cv3R,KAAKusS,kBACLvsS,KAAK0sS,cAAe,GAOxB,IAHA,IAAI9nS,EAAO5E,KAAKy3E,MAAM2oN,aAAaz/R,EAAE8vS,QAAQ9vS,EAAE+vS,QAAQ1wS,KAAKqsS,eAGnDvuS,EAAI,EAAG2G,EAAIzE,KAAKy3E,MAAM2jN,OAAOr9R,OAAQD,EAAI2G,IAAK3G,EAC/CkC,KAAKy3E,MAAM2jN,OAAOt9R,GAAG00S,WAAa5tS,GAAQ5E,KAAKy3E,MAAM2jN,OAAOt9R,KAE5DkC,KAAKy3E,MAAM2jN,OAAOt9R,GAAG00S,WAAY,EAC7BxyS,KAAKssS,WAAatsS,KAAKssS,UAAUhqD,cACjCtiP,KAAKssS,UAAUhqD,aAAa3hP,GAEhCX,KAAKssS,UAAY,KACjBtsS,KAAK0sS,cAAe,GAK5B,GAAI9nS,EAAM,CAuBN,GArBTA,EAAK6tS,kBACQzyS,KAAK0sS,cAAe,GAGnB9nS,EAAK4tS,YAEN5tS,EAAK4tS,WAAY,EACjBxyS,KAAKssS,UAAY1nS,EACjB5E,KAAK0sS,cAAe,EAEhB9nS,EAAKy9O,cACLz9O,EAAKy9O,aAAa1hP,IAKtBiE,EAAK8tS,aACL9tS,EAAK8tS,YAAa/xS,EAAG,CAACA,EAAE8vS,QAAU7rS,EAAK+tC,IAAI,GAAIhyC,EAAE+vS,QAAU9rS,EAAK+tC,IAAI,IAAK3yC,MAIzEA,KAAKusS,gBAAiB,CACtB,IAAI55P,EAAM3yC,KAAK2yS,kBAAoB,CAAC,EAAG,GAGvC,GAAI3yS,KAAK4yS,cAAchuS,EAAMjE,EAAE8vS,QAAS9vS,EAAE+vS,cAEnC,CAEH,IAAIlR,EAAOx/R,KAAK6yS,gBAAiBjuS,EAAMjE,EAAE8vS,QAAS9vS,EAAE+vS,QAAS/9P,GAC7D,IAAa,GAAT6sP,GAAc56R,EAAKu3R,OAAOqD,GAAO,CACjC,IAAIsT,EAAYluS,EAAKu3R,OAAOqD,GAAMr6R,KAC7BooR,EAAUsG,kBAAmB7zR,KAAKoxS,kBAAkBjsS,KAAM2tS,KAC3D9yS,KAAK2yS,iBAAmBhgQ,EACxB3yC,KAAK+yS,sBAAwBnuS,EAAKu3R,OAAOqD,SAG7Cx/R,KAAK2yS,iBAAmB,KACxB3yS,KAAK+yS,sBAAwB,MAMrC/yS,KAAKo2R,SAED6R,EACItnS,EAAE8vS,QACF9vS,EAAE+vS,QACF9rS,EAAK+tC,IAAI,GAAK/tC,EAAK6H,KAAK,GAAK,EAC7B7H,EAAK+tC,IAAI,GAAK/tC,EAAK6H,KAAK,GAAK,EAC7B,EACA,GAGJzM,KAAKo2R,OAAO1pR,MAAM8tG,OAAS,YAE3Bx6G,KAAKo2R,OAAO1pR,MAAM8tG,OAAS,iBAGhC,CAGf,IAAIw4L,EAAY,KAChB,IAASl1S,EAAI,EAAGA,EAAIkC,KAAKq6R,cAAct8R,SAAUD,EAAG,CACnD,IAAIixD,EAAO/uD,KAAKq6R,cAAcv8R,GAC1B6tS,EAAS58O,EAAK+9G,KAClB,MACE6+H,GACDhrS,EAAE8vS,QAAU9E,EAAO,GAAK,GACxBhrS,EAAE8vS,QAAU9E,EAAO,GAAK,GACxBhrS,EAAE+vS,QAAU/E,EAAO,GAAK,GACxBhrS,EAAE+vS,QAAU/E,EAAO,GAAK,GALzB,CASAqH,EAAYjkP,EACZ,OAEGikP,GAAahzS,KAAKm6R,mBAErBn6R,KAAKm6R,iBAAmB6Y,EACZhzS,KAAK0sS,cAAe,GAG7B1sS,KAAKo2R,SACIp2R,KAAKo2R,OAAO1pR,MAAM8tG,OAAS,IAUhC,GALKx6G,KAAKqpS,sBAAwBrpS,KAAKqpS,sBAAwBzkS,GAAQ5E,KAAKqpS,qBAAqBqJ,aAC7F1yS,KAAKqpS,qBAAqBqJ,YAAY/xS,EAAE,CAACA,EAAE8vS,QAAUzwS,KAAKqpS,qBAAqB12P,IAAI,GAAGhyC,EAAE+vS,QAAU1wS,KAAKqpS,qBAAqB12P,IAAI,IAAK3yC,MAIrIA,KAAK4/R,eAAiB5/R,KAAKy3R,UAAW,CAEtC,IAAK,IAAI35R,KAAKkC,KAAK2/R,eAAgB,CAC/B,IAAIp/R,EAAIP,KAAK2/R,eAAe7hS,GAC5ByC,EAAEoyC,IAAI,IAAMglB,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MAC/Bn1F,EAAEoyC,IAAI,IAAMglB,EAAM,GAAK33D,KAAKu2R,GAAG7gM,MAGnC11F,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,EAG1B,GAAI3sS,KAAKmxS,gBAAkBnxS,KAAKy3R,UAAW,CAEnD,IAAIwb,EAAe,CAAEtyS,EAAE8vS,QAAUzwS,KAAKmxS,cAAcx+P,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAKmxS,cAAcx+P,IAAI,IAC3FugQ,EAAWlzS,KAAKmxS,cAAcle,cAClCggB,EAAa,GAAKv7R,KAAKC,IAAKu7R,EAAS,GAAID,EAAa,IACtDA,EAAa,GAAKv7R,KAAKC,IAAKu7R,EAAS,GAAID,EAAa,IACtDjzS,KAAKmxS,cAAchL,QAAS8M,GAEhBjzS,KAAKo2R,OAAO1pR,MAAM8tG,OAAS,YAC3Bx6G,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,GAK9B,OADAhsS,EAAEsT,kBACK,IAOXkiR,EAAaz3R,UAAU4vS,eAAiB,SAAS3tS,GAK7C,GAHFX,KAAKm4R,kCACRn4R,KAAK0sS,cAAe,GAEV1sS,KAAKy3E,MAAV,CAGA,IACIrtE,EADSpK,KAAK0uS,kBACItkS,SACtB+rR,EAAama,cAAgBtwS,KAG/BA,KAAKqF,QAAQuwR,cAEhBxrR,EAASzE,oBAAoB,YAAY3F,KAAKmuS,qBAAoB,GAClEnuS,KAAKo2R,OAAO1wR,iBAAiB,YAAY1F,KAAKmuS,qBAAoB,GAClE/jS,EAASzE,oBAAoB,UAAW3F,KAAKquS,mBAAmB,IAG3DruS,KAAKowS,iBAAiBzvS,GACtB,IAAIyhE,EAAMmrN,EAAUrlR,UAWpB,GAVAvH,EAAEwyS,WAAa/wO,EAAMpiE,KAAK8sS,gBAC1B9sS,KAAKsyS,qBAAsB,EACjCtyS,KAAK6wS,oBAAsB,KAExB7wS,KAAKmwS,cAEPzyR,QAAQ6oL,IAAI,OACZvmM,KAAKmwS,aAAc,GAGC,GAAXxvS,EAAEowS,MAAY,CAUd,GARL/wS,KAAKk6R,aAERl6R,KAAK4xS,mBAAoB5xS,KAAKk6R,YAAY,GAAIl6R,KAAKi5R,YAAat4R,GAIxDX,KAAKk6R,YAAc,KAEfl6R,KAAKosS,eAAgB,CACrB,IAAIgH,EACApzS,KAAKosS,eAAez5P,IAAI,GACxBj7B,KAAKq/C,MAAM/2D,KAAKosS,eAAez5P,IAAI,IACnC0gQ,EACArzS,KAAKosS,eAAez5P,IAAI,GACxBj7B,KAAKq/C,MAAM/2D,KAAKosS,eAAez5P,IAAI,IACvC3yC,KAAKosS,eAAe/yN,KAAK+5N,EAAOC,EAAO1yS,EAAE2Y,SACzCtZ,KAAKosS,eAAez5P,IAAI,GAAKj7B,KAAKq/C,MAC9B/2D,KAAKosS,eAAez5P,IAAI,IAE5B3yC,KAAKosS,eAAez5P,IAAI,GAAKj7B,KAAKq/C,MAC9B/2D,KAAKosS,eAAez5P,IAAI,IAExB3yC,KAAKosS,eAAehR,OAAOr9R,SAC3BiC,KAAK0sS,cAAe,GAExB1sS,KAAKosS,eAAiB,KAI1B,GAFApsS,KAAKmyS,yBAA0B,EAE3BnyS,KAAKk4R,mBAAoB,CACzB,GAAIl4R,KAAKy3E,MAAO,CACZ,IAAIgjC,EAAQz6G,KAAKy3E,MAAM2jN,OACnB8O,EAAgB,IAAI1U,aAAa,GACrCx1R,KAAKszS,mBAEL,IAAItjM,EAAIt4F,KAAKmgD,IAAI73D,KAAKk4R,mBAAmB,IACrChhO,EAAIx/C,KAAKmgD,IAAI73D,KAAKk4R,mBAAmB,IACrCoS,EACAtqS,KAAKk4R,mBAAmB,GAAK,EACvBl4R,KAAKk4R,mBAAmB,GAAKloL,EAC7BhwG,KAAKk4R,mBAAmB,GAC9BqS,EACAvqS,KAAKk4R,mBAAmB,GAAK,EACvBl4R,KAAKk4R,mBAAmB,GAAKhhO,EAC7Bl3D,KAAKk4R,mBAAmB,GAClCl4R,KAAKk4R,mBAAmB,GAAKoS,EAC7BtqS,KAAKk4R,mBAAmB,GAAKqS,EAC7BvqS,KAAKk4R,mBAAmB,GAAKloL,EAC7BhwG,KAAKk4R,mBAAmB,GAAKhhO,EAI7B,IADA,IAAIq8O,EAAY,GACPz1S,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAAG,EAC/B8G,EAAO61G,EAAM38G,IACZ+pS,YAAYqC,GAEZC,EACGnqS,KAAKk4R,mBACLgS,IAKRqJ,EAAUhwS,KAAKqB,GAEf2uS,EAAUx1S,QACViC,KAAK0tS,YAAY6F,GAGzBvzS,KAAKk4R,mBAAqB,UACvB,GAAIl4R,KAAKusS,gBAAiB,CAY7B,GAVAvsS,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,EAElB/nS,EAAO5E,KAAKy3E,MAAM2oN,aAClBz/R,EAAE8vS,QACF9vS,EAAE+vS,QACF1wS,KAAKqsS,eAKL,GACIrsS,KAAKoxS,kBAAkBjsS,MAAQooR,EAAUuC,OACzC9vR,KAAK4yS,cAAchuS,EAAMjE,EAAE8vS,QAAS9vS,EAAE+vS,SAEtC1wS,KAAKusS,gBAAgBhE,QACjBvoS,KAAKsxS,gBACL1sS,EACA2oR,EAAUuC,WAEX,CAEH,IAAI0P,EAAOx/R,KAAK6yS,gBACZjuS,EACAjE,EAAE8vS,QACF9vS,EAAE+vS,SAEN,IAAa,GAATlR,EACAx/R,KAAKusS,gBAAgBhE,QACjBvoS,KAAKsxS,gBACL1sS,EACA46R,OAED,CAEH,IAAIpwM,EAAQxqF,EAAK0gS,aAAa,GAG1BtlS,KAAKoxS,kBAAkBjsS,MAAQooR,EAAUuC,MAEzC9vR,KAAKusS,gBAAgBhE,QACjBvoS,KAAKsxS,gBACL1sS,EACA2oR,EAAUuC,OAGd1gM,IACCA,EAAMrgC,MACPw+N,EAAUsG,kBACNzkM,EAAMjqF,MAAQnF,KAAKoxS,kBAAkBjsS,OAGzCnF,KAAKusS,gBAAgBhE,QACjBvoS,KAAKsxS,gBACL1sS,EACA,IAOpB5E,KAAKoxS,kBAAoB,KACzBpxS,KAAKqxS,eAAiB,KACtBrxS,KAAKusS,gBAAkB,KACvBvsS,KAAKsxS,iBAAmB,OAEvB,GAAItxS,KAAKmxS,cACVnxS,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,EAClC3sS,KAAKy3E,MAAMqoN,YAAY9/R,KAAKmxS,eAChBnxS,KAAKmxS,cAAgB,UAClB,GAAInxS,KAAK4/R,aAAc,EAEtBh7R,EAAO5E,KAAK4/R,eAGZj/R,EAAEwyS,WAAa,KACflL,EAAmBtnS,EAAE8vS,QAAS9vS,EAAE+vS,QAAS9rS,EAAK+tC,IAAI,GAAI/tC,EAAK+tC,IAAI,GAAK46O,EAAUG,kBAAmBH,EAAUG,kBAAmBH,EAAUG,oBAExI9oR,EAAKygR,WAGTrlR,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,EACtB3sS,KAAK4/R,aAAajtP,IAAI,GAAKj7B,KAAKq/C,MAAM/2D,KAAK4/R,aAAajtP,IAAI,IAC5D3yC,KAAK4/R,aAAajtP,IAAI,GAAKj7B,KAAKq/C,MAAM/2D,KAAK4/R,aAAajtP,IAAI,KACxD3yC,KAAKy3E,MAAMytE,OAAO8yI,eAAiBh4R,KAAKg4R,gBACxCh4R,KAAK4/R,aAAaR,cAE9Bp/R,KAAK05R,aACR15R,KAAK05R,YAAa15R,KAAK4/R,cACxB5/R,KAAKy3E,MAAMqoN,YAAY9/R,KAAK4/R,cAChB5/R,KAAK4/R,aAAe,SAEnB,CAED,IAAIh7R,MAAO5E,KAAKy3E,MAAM2oN,aAClBz/R,EAAE8vS,QACF9vS,EAAE+vS,QACF1wS,KAAKqsS,iBAGI1rS,EAAEwyS,WAAa,KACxBnzS,KAAKszS,mBAGTtzS,KAAK0sS,cAAe,EACpB1sS,KAAKysS,iBAAkB,EAEnBzsS,KAAKssS,WAAatsS,KAAKssS,UAAUkH,WACjCxzS,KAAKssS,UAAUkH,UAAW7yS,EAAG,CAAEA,EAAE8vS,QAAUzwS,KAAKssS,UAAU35P,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAKssS,UAAU35P,IAAI,IAAM3yC,MAGvGA,KAAKqpS,sBACLrpS,KAAKqpS,qBAAqBmK,WAE1BxzS,KAAKqpS,qBAAqBmK,UAAU7yS,EAAG,CACnCA,EAAE8vS,QAAUzwS,KAAKqpS,qBAAqB12P,IAAI,GAC1ChyC,EAAE+vS,QAAU1wS,KAAKqpS,qBAAqB12P,IAAI,WAIpC,GAAXhyC,EAAEowS,OAKS,GAAXpwS,EAAEowS,SAFT/wS,KAAK0sS,cAAe,EACpB1sS,KAAKysS,iBAAkB,GAiB3B,OAJAzsS,KAAKy3E,MAAMuuB,SAEXrlG,EAAEwT,kBACFxT,EAAEsT,kBACK,IAOXkiR,EAAaz3R,UAAUowS,kBAAoB,SAASnuS,GAChD,GAAKX,KAAKy3E,OAAUz3E,KAAK23R,iBAAzB,CAIA,IAAIhgO,EAAyB,MAAjBh3D,EAAE6tL,YAAsB7tL,EAAE6tL,aAA0B,GAAZ7tL,EAAEgtL,OAEtD3tL,KAAKowS,iBAAiBzvS,GAE5B,IAAIsb,EAAItb,EAAE4vS,OACN7tS,EAAI/B,EAAE6vS,OAEV,IADiBxwS,KAAKs6R,UAAct6R,KAAKs6R,UAAYr+Q,GAAKjc,KAAKs6R,SAAS,IAAMr+Q,EAAKjc,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,IAAO53R,GAAK1C,KAAKs6R,SAAS,IAAM53R,EAAK1C,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,GAC1L,CAGM,IAAI5kM,EAAQ11F,KAAKu2R,GAAG7gM,MAcpB,OAZI/9B,EAAQ,EACR+9B,GAAS,IACF/9B,EAAQ,IACf+9B,GAAS,EAAI,KAIjB11F,KAAKu2R,GAAGkV,YAAY/1M,EAAO,CAAC/0F,EAAE4vS,OAAQ5vS,EAAE6vS,SAExCxwS,KAAKy3E,MAAMuuB,SAEXrlG,EAAEsT,kBACK,KAOXkiR,EAAaz3R,UAAUk0S,cAAgB,SAAShuS,EAAM+lS,EAASC,GAC3D,IAAI6I,EAAelmB,EAAUG,kBAC7B,QACIua,EACI0C,EACAC,EACAhmS,EAAK+tC,IAAI,GAAK,EACd/tC,EAAK+tC,IAAI,GAAK,EAAI8gQ,EAClBA,EAAe,EACfA,EAAe,IAY3Btd,EAAaz3R,UAAUm0S,gBAAkB,SACrCjuS,EACA+lS,EACAC,EACA8I,GAEA,GAAI9uS,EAAKu3R,OACL,IAAK,IAAIr+R,EAAI,EAAG2G,EAAIG,EAAKu3R,OAAOp+R,OAAQD,EAAI2G,IAAK3G,EAAG,CACpC8G,EAAKu3R,OAAOr+R,GAAxB,IACIsqS,EAAWxjS,EAAKyjS,kBAAiB,EAAMvqS,GAqB3C,GAnBI8G,EAAK01F,WACO2tM,EACR0C,EACAC,EACAxC,EAAS,GAAK,EACdA,EAAS,GAAK,GACd,GACA,IAGQH,EACR0C,EACAC,EACAxC,EAAS,GAAK,GACdA,EAAS,GAAK,EACd,GACA,IAQJ,OAJIsL,IACAA,EAAS,GAAKtL,EAAS,GACvBsL,EAAS,GAAKtL,EAAS,IAEpBtqS,EAInB,OAAQ,GAOZq4R,EAAaz3R,UAAUwwS,WAAa,SAASvuS,GACzC,GAAKX,KAAKy3E,MAAV,CAIA,IAAIk8N,GAAgB,EAGpB,GAA0B,SAAtBhzS,EAAE/C,OAAOowS,UAAb,CAIA,GAAc,WAAVrtS,EAAEwE,MAyCF,GAxCiB,IAAbxE,EAAE+Y,UAEF1Z,KAAKysS,iBAAkB,EACvBkH,GAAgB,GAIH,IAAbhzS,EAAE+Y,SAAiB/Y,EAAE2Y,UACrBtZ,KAAK0tS,cACLiG,GAAgB,GAGN,QAAVhzS,EAAEuiC,OAAmBviC,EAAE4Y,UAAW5Y,EAAE2Y,SAAa3Y,EAAE0Y,UAE/CrZ,KAAK2/R,iBACL3/R,KAAK4zS,kBACLD,GAAgB,GAIV,QAAVhzS,EAAEuiC,OAAmBviC,EAAE4Y,UAAW5Y,EAAE2Y,SAAa3Y,EAAE0Y,UAEnDrZ,KAAK6zS,qBAIQ,IAAblzS,EAAE+Y,SAA8B,GAAb/Y,EAAE+Y,SAEK,SAAtB/Y,EAAE/C,OAAOowS,WACa,YAAtBrtS,EAAE/C,OAAOowS,YAEThuS,KAAK8zS,sBACLH,GAAgB,GAQpB3zS,KAAK2/R,eACL,IAAK,IAAI7hS,KAAKkC,KAAK2/R,eACX3/R,KAAK2/R,eAAe7hS,GAAGunO,WACvBrlO,KAAK2/R,eAAe7hS,GAAGunO,UAAU1kO,QAI1C,GAAc,SAAVA,EAAEwE,OACQ,IAAbxE,EAAE+Y,UACF1Z,KAAKysS,iBAAkB,GAGvBzsS,KAAK2/R,gBACL,IAAK,IAAI7hS,KAAKkC,KAAK2/R,eACX3/R,KAAK2/R,eAAe7hS,GAAGi2S,SACvB/zS,KAAK2/R,eAAe7hS,GAAGi2S,QAAQpzS,GAQ/C,OAFAX,KAAKy3E,MAAMuuB,SAEP2tM,GACAhzS,EAAEsT,iBACFtT,EAAEqzS,4BACK,QAHX,KAOJ7d,EAAaz3R,UAAUk1S,gBAAkB,WACrC,IAAIK,EAAiB,CACjBx5L,MAAO,GACPlZ,MAAO,IAEPtiG,EAAQ,EACRi1S,EAAuB,GAC3B,IAAK,IAAIp2S,KAAKkC,KAAK2/R,eAAgB,EAC3B/6R,EAAO5E,KAAK2/R,eAAe7hS,IAC1Bq2S,aAAel1S,EACpBi1S,EAAqB3wS,KAAKqB,GAC1B3F,GAAS,EAGb,IAASnB,EAAI,EAAGA,EAAIo2S,EAAqBn2S,SAAUD,EAAG,CAClD,IAAI8G,EACTwvS,GADSxvS,EAAOsvS,EAAqBp2S,IACvBuvE,QAClB,GAAI+mO,GAMK,GADAH,EAAex5L,MAAMl3G,KAAK6wS,EAAOlpQ,aAC7BtmC,EAAKu3R,QAAUv3R,EAAKu3R,OAAOp+R,OAC3B,IAAK,IAAIoG,EAAI,EAAGA,EAAIS,EAAKu3R,OAAOp+R,SAAUoG,EAAG,CACzC,IAAIirF,EAAQxqF,EAAKu3R,OAAOh4R,GACxB,GAAKirF,GAAuB,MAAdA,EAAMrgC,KAApB,CAGA,IAAIwzO,EAAYviS,KAAKy3E,MAAM8pB,MAAMnS,EAAMrgC,MACvC,GAAKwzO,EAAL,CAGA,IAAItE,EAAcj+R,KAAKy3E,MAAMymN,YACzBqE,EAAUnN,WAET6I,GAAgBj+R,KAAK2/R,eAAe1B,EAAY1nR,KAIrD09R,EAAe1yM,MAAMh+F,KAAK,CACtB06R,EAAYkW,aACZ5R,EAAUlN,YACVzwR,EAAKuvS,aACL5R,EAAUhN,sBAzB9B73Q,QAAQC,KAAK,wBAA0B/Y,EAAKO,MA8BxCkmD,aAAagpP,QACT,4BACA5tQ,KAAK0xH,UAAU87I,KAIvB9d,EAAaz3R,UAAUm1S,mBAAqB,WACxC,IAAI10S,EAAOksD,aAAaC,QAAQ,6BAChC,GAAKnsD,EAAL,CAINa,KAAKy3E,MAAM8nN,eAKL,IAFA,IAAI0U,EAAiBxtQ,KAAKC,MAAMvnC,GAC5Bs7G,EAAQ,GACH38G,EAAI,EAAGA,EAAIm2S,EAAex5L,MAAM18G,SAAUD,EAAG,CAClD,IAAIw2S,EAAYL,EAAex5L,MAAM38G,GACjC8G,EAAO2oR,EAAUwF,WAAWuhB,EAAUnvS,MACtCP,IACAA,EAAKswR,UAAUof,GACf1vS,EAAK+tC,IAAI,IAAM,EACf/tC,EAAK+tC,IAAI,IAAM,EACf3yC,KAAKy3E,MAAMj+D,IAAI5U,GACf61G,EAAMl3G,KAAKqB,IAKnB,IAAS9G,EAAI,EAAGA,EAAIm2S,EAAe1yM,MAAMxjG,SAAUD,EAAG,CAClD,IAAIykS,EAAY0R,EAAe1yM,MAAMzjG,GACjCy2S,EAAc95L,EAAM8nL,EAAU,IAC9BtE,EAAcxjL,EAAM8nL,EAAU,IACvCgS,GAAetW,EACTsW,EAAYhM,QAAQhG,EAAU,GAAItE,EAAasE,EAAU,IAElE7kR,QAAQC,KAAK,qCAGT3d,KAAK0tS,YAAYjzL,GAEvBz6G,KAAKy3E,MAAMqoN,gBAOT3J,EAAaz3R,UAAU0wS,YAAc,SAASzuS,GAC1CA,EAAEsT,iBACFjU,KAAKowS,iBAAiBzvS,GAC5B,IAAIsb,EAAItb,EAAE4vS,OACN7tS,EAAI/B,EAAE6vS,OAEV,IADiBxwS,KAAKs6R,UAAct6R,KAAKs6R,UAAYr+Q,GAAKjc,KAAKs6R,SAAS,IAAMr+Q,EAAKjc,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,IAAO53R,GAAK1C,KAAKs6R,SAAS,IAAM53R,EAAK1C,KAAKs6R,SAAS,GAAKt6R,KAAKs6R,SAAS,GAC1L,CAGM,IAAI3nP,EAAM,CAAChyC,EAAE8vS,QAAS9vS,EAAE+vS,SAGpB9rS,EAAO5E,KAAKy3E,MAAQz3E,KAAKy3E,MAAM2oN,aAAaztP,EAAI,GAAIA,EAAI,IAAM,KAElE,IAAK/tC,EAAM,CACP,IAAIzD,EAAI,KAOR,OANInB,KAAKw0S,aACLrzS,EAAInB,KAAKw0S,WAAW7/R,aAEnBxT,GACDnB,KAAKy0S,cAAc9zS,IAK3B,GAAIiE,EAAK8vS,YAAc9vS,EAAK+vS,WAAY,CACpC,IAAIp+N,EAAQ51E,EAAEu/O,aAAa3pK,MAC3B,GAAIA,GAASA,EAAMx4E,OACf,IAAK,IAAID,EAAI,EAAGA,EAAIy4E,EAAMx4E,OAAQD,IAAK,CACnC,IAAI6vE,EAAOhtE,EAAEu/O,aAAa3pK,MAAM,GAC5B8nK,EAAW1wK,EAAK/2D,KACVu/Q,EAAakZ,iBAAiBhxD,GAOxC,GAJIz5O,EAAK8vS,YACL9vS,EAAK8vS,WAAW/mO,GAGhB/oE,EAAK+vS,WAAY,CAEjB,IAAIvkL,EAAS,IAAIukK,WACjBvkK,EAAOwkK,OAAS,SAASjgR,GAErB,IAAIxV,EAAOwV,EAAM/W,OAAOwE,OACxBwC,EAAK+vS,WAAWx1S,EAAMk/O,EAAU1wK,IAIpC,IAAIxoE,EAAOwoE,EAAKxoE,KAAKm0B,MAAM,KAAK,GACpB,QAARn0B,GAA0B,IAARA,EAClBirH,EAAO0kK,WAAWnnN,GACH,SAARxoE,EACPirH,EAAOwkL,cAAcjnO,GAErByiD,EAAOykK,kBAAkBlnN,KAO7C,SAAI/oE,EAAK4vS,aACD5vS,EAAK4vS,WAAW7/R,WAKpB3U,KAAKw0S,YACEx0S,KAAKw0S,WAAW7/R,SAO/BwhR,EAAaz3R,UAAU+1S,cAAgB,SAAS9zS,GAC5C,GAAIA,EAAEu/O,aAAa3pK,MAAMx4E,OAAQ,CAC7B,IAAI4vE,EAAOhtE,EAAEu/O,aAAa3pK,MAAM,GAC5BuzF,EAAMqsH,EAAakZ,iBAAiB1hO,EAAK/2D,MAAMmsB,cAC/C8xQ,EAAWtnB,EAAU6D,6BAA6BtnH,GACtD,GAAI+qI,EAAU,CACtB70S,KAAKy3E,MAAM8nN,eACC,IAAI36R,EAAO2oR,EAAUwF,WAAW8hB,EAAS1vS,MACzCP,EAAK+tC,IAAM,CAAChyC,EAAE8vS,QAAS9vS,EAAE+vS,SACzB1wS,KAAKy3E,MAAMj+D,IAAI5U,GACXA,EAAK8vS,YACL9vS,EAAK8vS,WAAW/mO,GAEhC3tE,KAAKy3E,MAAMqoN,iBAKX3J,EAAaz3R,UAAUozS,sBAAwB,SAASvxS,GAChDP,KAAK80S,gBACL90S,KAAK80S,gBAAgBv0S,GAI9BP,KAAK+0S,kBAAkBx0S,GAGdP,KAAKg1S,kBACLh1S,KAAKg1S,iBAAiBz0S,GAG1BP,KAAKktS,UAAS,IAGlB/W,EAAaz3R,UAAUuzS,oBAAsB,SAASrtS,EAAMjE,GACxDX,KAAKi1S,WAAWrwS,EAAMjE,GAAKA,EAAE0Y,UACzBrZ,KAAKk1S,gBACLl1S,KAAKk1S,eAAetwS,IAQ5BuxR,EAAaz3R,UAAUu2S,WAAa,SAChCrwS,EACAuwS,GAEY,MAARvwS,EACA5E,KAAKszS,mBAELtzS,KAAK0tS,YAAY,CAAC9oS,GAAOuwS,IAQjChf,EAAaz3R,UAAUgvS,YAAc,SAAUjzL,EAAO06L,GAE7CA,GACDn1S,KAAKszS,mBAGT74L,EAAQA,GAASz6G,KAAKy3E,MAAM2jN,OAC5B,IAAK,IAAIt9R,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAAG,CACnC,IAAI8G,EAAO61G,EAAM38G,GACjB,IAAI8G,EAAKwwS,YAAT,CAUA,IANKxwS,EAAKwwS,aAAexwS,EAAKywS,YAC1BzwS,EAAKywS,aAETzwS,EAAKwwS,aAAc,EACnBp1S,KAAK2/R,eAAe/6R,EAAK2R,IAAM3R,EAE3BA,EAAKu3R,OACL,IAAK,IAAIh4R,EAAI,EAAGA,EAAIS,EAAKu3R,OAAOp+R,SAAUoG,EACtCnE,KAAKwsS,kBAAkB5nS,EAAKu3R,OAAOh4R,GAAG4qD,OAAQ,EAGtD,GAAInqD,EAAKw3R,QACL,IAASj4R,EAAI,EAAGA,EAAIS,EAAKw3R,QAAQr+R,SAAUoG,EAAG,CAC1C,IAAI8wG,EAAMrwG,EAAKw3R,QAAQj4R,GACvB,GAAI8wG,EAAI1T,MACJ,IAAK,IAAIt9F,EAAI,EAAGA,EAAIgxG,EAAI1T,MAAMxjG,SAAUkG,EACpCjE,KAAKwsS,kBAAkBv3L,EAAI1T,MAAMt9F,KAAM,IAO7DjE,KAAK25R,mBACR35R,KAAK25R,kBAAmB35R,KAAK2/R,gBAExB3/R,KAAKktS,UAAS,IAOlB/W,EAAaz3R,UAAU42S,aAAe,SAAS1wS,GAC3C,GAAKA,EAAKwwS,YAAV,CAaA,GAVIxwS,EAAK2wS,cACL3wS,EAAK2wS,eAET3wS,EAAKwwS,aAAc,EAEfp1S,KAAKw1S,kBACLx1S,KAAKw1S,iBAAiB5wS,GAItBA,EAAKu3R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,SAAUD,SAC/BkC,KAAKwsS,kBAAkB5nS,EAAKu3R,OAAOr+R,GAAGixD,MAGrD,GAAInqD,EAAKw3R,QACL,IAASt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,SAAUD,EAAG,CAC1C,IAAIm3G,EAAMrwG,EAAKw3R,QAAQt+R,GACvB,GAAIm3G,EAAI1T,MACJ,IAAK,IAAIp9F,EAAI,EAAGA,EAAI8wG,EAAI1T,MAAMxjG,SAAUoG,SAC7BnE,KAAKwsS,kBAAkBv3L,EAAI1T,MAAMp9F,OAW5DgyR,EAAaz3R,UAAU40S,iBAAmB,WACtC,GAAKtzS,KAAKy3E,MAAV,CAIA,IADA,IAAIgjC,EAAQz6G,KAAKy3E,MAAM2jN,OACdt9R,EAAI,EAAG2G,EAAIg2G,EAAM18G,OAAQD,EAAI2G,IAAK3G,EAAG,CAC1C,IAAI8G,EAAO61G,EAAM38G,GACZ8G,EAAKwwS,cAGNxwS,EAAK2wS,cACL3wS,EAAK2wS,eAET3wS,EAAKwwS,aAAc,EACxBp1S,KAAKw1S,kBACRx1S,KAAKw1S,iBAAiB5wS,IAGlB5E,KAAK2/R,eAAiB,GACtB3/R,KAAKi6R,aAAe,KACpBj6R,KAAKwsS,kBAAoB,GAC3BxsS,KAAK25R,mBACR35R,KAAK25R,kBAAmB35R,KAAK2/R,gBACxB3/R,KAAKktS,UAAS,KAOlB/W,EAAaz3R,UAAUo1S,oBAAsB,WAIzC,IAAK,IAAIh2S,KAFfkC,KAAKy3E,MAAM8nN,eAESv/R,KAAK2/R,eAAgB,CAC/B,IAAI/6R,EAAO5E,KAAK2/R,eAAe7hS,GAExC,IAAG8G,EAAK6wS,aAAR,CAIA,GAAG7wS,EAAKu3R,QAAUv3R,EAAKu3R,OAAOp+R,QAAU6G,EAAKw3R,SAAWx3R,EAAKw3R,QAAQr+R,QAAUwvR,EAAUsG,kBAAmBjvR,EAAKu3R,OAAO,GAAGh3R,KAAMP,EAAKw3R,QAAQ,GAAGj3R,OAAUP,EAAKu3R,OAAO,GAAGptO,MAAQnqD,EAAKw3R,QAAQ,GAAG76L,OAAS38F,EAAKw3R,QAAQ,GAAG76L,MAAMxjG,OACjO,CACC,IAAI23S,EAAa9wS,EAAK6yE,MAAM8pB,MAAO38F,EAAKu3R,OAAO,GAAGptO,MAC9C4mP,EAAc/wS,EAAK6yE,MAAM8pB,MAAO38F,EAAKw3R,QAAQ,GAAG76L,MAAM,IACtDq0M,EAAahxS,EAAK65R,aAAa,GAC/BoX,EAAcjxS,EAAKkhS,eAAe,GAAG,GACtC8P,GAAcC,GAChBD,EAAWrN,QAASmN,EAAWrgB,YAAawgB,EAAaF,EAAYpgB,aAE9Dv1R,KAAKy3E,MAAM3yE,OAAOF,GACvB5E,KAAKw1S,kBACRx1S,KAAKw1S,iBAAiB5wS,IAGlB5E,KAAK2/R,eAAiB,GACtB3/R,KAAKi6R,aAAe,KACpBj6R,KAAKwsS,kBAAoB,GACzBxsS,KAAKktS,UAAS,GACpBltS,KAAKy3E,MAAMqoN,eAOT3J,EAAaz3R,UAAU+uS,aAAe,SAAS7oS,GAC3C5E,KAAKu2R,GAAGn2P,OAAO,IACVx7B,EAAK+tC,IAAI,GACK,GAAf/tC,EAAK6H,KAAK,GACW,GAApBzM,KAAKo2R,OAAOvrR,MAAe7K,KAAKu2R,GAAG7gM,MACxC11F,KAAKu2R,GAAGn2P,OAAO,IACVx7B,EAAK+tC,IAAI,GACK,GAAf/tC,EAAK6H,KAAK,GACY,GAArBzM,KAAKo2R,OAAOtrR,OAAgB9K,KAAKu2R,GAAG7gM,MACzC11F,KAAKktS,UAAS,GAAM,IAOxB/W,EAAaz3R,UAAU0xS,iBAAmB,SAASzvS,GAC/C,GAAIX,KAAKo2R,OAAQ,CACb,IAAI92R,EAAIU,KAAKo2R,OAAOtpR,wBACpBnM,EAAE4vS,OAAS5vS,EAAEmtL,QAAUxuL,EAAE2M,KACzBtL,EAAE6vS,OAAS7vS,EAAEotL,QAAUzuL,EAAEyM,SAEzBpL,EAAE4vS,OAAS5vS,EAAEmtL,QACbntL,EAAE6vS,OAAS7vS,EAAEotL,QAGjBptL,EAAE28J,OAAS38J,EAAE4vS,OAASvwS,KAAKo6R,oBAAoB,GAC/Cz5R,EAAE48J,OAAS58J,EAAE6vS,OAASxwS,KAAKo6R,oBAAoB,GAE/Cp6R,KAAKo6R,oBAAoB,GAAKz5R,EAAE4vS,OAChCvwS,KAAKo6R,oBAAoB,GAAKz5R,EAAE6vS,OAEhC7vS,EAAE8vS,QAAU9vS,EAAE4vS,OAASvwS,KAAKu2R,GAAG7gM,MAAQ11F,KAAKu2R,GAAGn2P,OAAO,GACtDz/B,EAAE+vS,QAAU/vS,EAAE6vS,OAASxwS,KAAKu2R,GAAG7gM,MAAQ11F,KAAKu2R,GAAGn2P,OAAO,IAO1D+1P,EAAaz3R,UAAUo3S,QAAU,SAAS9zS,EAAO0pS,GAC7C1rS,KAAKu2R,GAAGkV,YAAYzpS,EAAO0pS,GAqB3B1rS,KAAK0sS,cAAe,EACpB1sS,KAAK2sS,gBAAiB,GAO1BxW,EAAaz3R,UAAU6sS,sBAAwB,SAAS54P,EAAKsiE,GACzD,OAAOj1G,KAAKu2R,GAAGgV,sBAAsB54P,EAAKsiE,IAO9CkhL,EAAaz3R,UAAU8sS,sBAAwB,SAAS74P,EAAKsiE,GACzD,OAAOj1G,KAAKu2R,GAAGiV,sBAAsB74P,EAAKsiE,IAI9CkhL,EAAaz3R,UAAUq3S,2BAA6B,SAASp1S,GACzD,IAAI+pS,EAAO1qS,KAAKo2R,OAAOtpR,wBACvB,OAAO9M,KAAKwrS,sBAAsB,CAC9B7qS,EAAEmtL,QAAU48G,EAAKz+R,KACjBtL,EAAEotL,QAAU28G,EAAK3+R,OAQzBoqR,EAAaz3R,UAAUuyS,aAAe,SAASrsS,GAC3C,IAAI9G,EAAIkC,KAAKy3E,MAAM2jN,OAAOx6R,QAAQgE,IACxB,GAAN9G,IAIJkC,KAAKy3E,MAAM2jN,OAAO7oQ,OAAOz0B,EAAG,GAC5BkC,KAAKy3E,MAAM2jN,OAAO73R,KAAKqB,KAO3BuxR,EAAaz3R,UAAUs3S,WAAa,SAASpxS,GACzC,IAAI9G,EAAIkC,KAAKy3E,MAAM2jN,OAAOx6R,QAAQgE,IACxB,GAAN9G,IAIJkC,KAAKy3E,MAAM2jN,OAAO7oQ,OAAOz0B,EAAG,GAC5BkC,KAAKy3E,MAAM2jN,OAAOpvP,QAAQpnC,KAM9B,IAAIqxS,EAAO,IAAIzgB,aAAa,GAM5BW,EAAaz3R,UAAUw3S,oBAAsB,SAASz7L,EAAOxF,GACzD,IAAIo3L,EAAgBp3L,GAAO,GAC3Bo3L,EAActuS,OAAS,EAEvB,IAAK,IAAID,EAAI,EAAG2G,GADhBg2G,EAAQA,GAASz6G,KAAKy3E,MAAM2jN,QACFr9R,OAAQD,EAAI2G,IAAK3G,EAAG,CAC1C,IAAIyC,EAAIk6G,EAAM38G,KAGVkC,KAAKy3R,WAAcl3R,EAAE+4R,kBAAqB/4R,EAAEg5R,oBAI3C4Q,EAAgBnqS,KAAKi2R,aAAc11R,EAAEsnS,YAAYoO,KAItD5J,EAAc9oS,KAAKhD,IAEvB,OAAO8rS,GAOXlW,EAAaz3R,UAAUsxS,KAAO,SAASmG,EAAcC,GACjD,GAAKp2S,KAAKo2R,QAA+B,GAArBp2R,KAAKo2R,OAAOvrR,OAAoC,GAAtB7K,KAAKo2R,OAAOtrR,OAA1D,CAKA,IAAIs3D,EAAMmrN,EAAUrlR,UACpBlI,KAAKksS,YAA4C,MAA7B9pO,EAAMpiE,KAAKisS,gBAC/BjsS,KAAKisS,eAAiB7pO,EAElBpiE,KAAKy3E,OACLz3E,KAAKu2R,GAAG8T,mBAAmBrqS,KAAKs6R,WAIhCt6R,KAAK2sS,gBACLyJ,GACAp2S,KAAKo4R,0BACJp4R,KAAKy3E,OACFz3E,KAAKy3E,MAAMsuN,oBACX3jO,EAAMpiE,KAAKy3E,MAAMsuN,mBAAqB,MAE1C/lS,KAAKq2S,kBAGLr2S,KAAK0sS,cAAgByJ,IACrBn2S,KAAKs2S,kBAGTt2S,KAAKmsS,IAAMnsS,KAAKksS,YAAc,EAAMlsS,KAAKksS,YAAc,EACvDlsS,KAAKgsS,OAAS,IAOlB7V,EAAaz3R,UAAU43S,gBAAkB,WACrCt2S,KAAK0sS,cAAe,EAEf1sS,KAAKi5I,MACNj5I,KAAKi5I,IAAMj5I,KAAK+tS,SAAS70J,WAAW,OAExC,IAAID,EAAMj5I,KAAKi5I,IACf,GAAKA,EAAL,CAKA,IAAIm9I,EAASp2R,KAAKo2R,OACbn9I,EAAIs9J,UAAYv2S,KAAKs6R,WACtBrhJ,EAAIs9J,UACbt9J,EAAIu9J,UACJv9J,EAAIw9J,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAIjC,IAAIC,EAAO12S,KAAKs6R,UAAYt6R,KAAK4sS,WAkC3B,GAjCI8J,IACAz9J,EAAIr9D,OACJq9D,EAAI09J,YACJ19J,EAAIyxJ,KAAMgM,EAAK,GAAGA,EAAK,GAAGA,EAAK,GAAGA,EAAK,IACvCz9J,EAAI29J,QAKJ52S,KAAKs3R,mBACXof,EACOz9J,EAAI49J,UAAWH,EAAK,GAAGA,EAAK,GAAGA,EAAK,GAAGA,EAAK,IAE5Cz9J,EAAI49J,UAAU,EAAG,EAAGzgB,EAAOvrR,MAAOurR,EAAOtrR,SAI1C9K,KAAK+tS,UAAY/tS,KAAKo2R,OACtBp2R,KAAKq2S,iBAELp9J,EAAI69J,UAAW92S,KAAK+tS,SAAU,EAAG,GAIjC/tS,KAAK+2S,UACL/2S,KAAK+2S,SAAS3gB,EAAQn9I,GAItBj5I,KAAK03R,WACL13R,KAAKg3S,WAAW/9J,EAAKy9J,EAAOA,EAAK,GAAK,EAAGA,EAAOA,EAAK,GAAK,GAG1D12S,KAAKy3E,MAAO,CAEZwhE,EAAIr9D,OACJ57E,KAAKu2R,GAAG8U,gBAAgBpyJ,GASxB,IANA,IACIozJ,EAAgBrsS,KAAKk2S,oBACrB,KACAl2S,KAAKqsS,eAGAvuS,EAAI,EAAGA,EAAIuuS,EAActuS,SAAUD,EAAG,CAC3C,IAAI8G,EAAOynS,EAAcvuS,GAGzBm7I,EAAIr9D,OACJq9D,EAAIqyJ,UAAU1mS,EAAK+tC,IAAI,GAAI/tC,EAAK+tC,IAAI,IAGpC3yC,KAAKi3S,SAASryS,EAAMq0I,GACL,EAGfA,EAAIu9J,UAgBR,GAZIx2S,KAAK44R,wBACL54R,KAAKk3S,mBAAmBj+J,GAIxBj5I,KAAKy3E,MAAMytE,OAAOiyJ,cACbn3S,KAAKy3R,WACNz3R,KAAKo3S,gBAAgBn+J,IAKF,MAAvBj5I,KAAKqxS,eAAwB,CAC7Bp4J,EAAIo+J,UAAYr3S,KAAK+5R,kBACrB,IAAIud,EAAa,KAEjB,GAAQt3S,KAAKoxS,kBAAkBjsS,OACtBooR,EAAUuC,MACXwnB,EAAa/pB,EAAU4B,sBAGvBmoB,EAAa/pB,EAAU6B,sBAgD/B,GA5CApvR,KAAKu3S,WACDt+J,EACAj5I,KAAKqxS,eACL,CAACrxS,KAAKi5R,YAAY,GAAIj5R,KAAKi5R,YAAY,IACvC,MACA,EACA,KACAqe,EACAt3S,KAAKoxS,kBAAkBvnI,MAClB7pK,KAAKusS,gBAAgBjyM,WAChBizL,EAAU8C,KACV9C,EAAU3hP,OACpB2hP,EAAU+C,QAGdr3I,EAAI09J,YAEA32S,KAAKoxS,kBAAkBjsS,OAASooR,EAAUuC,OAC1C9vR,KAAKoxS,kBAAkB3M,QAAUlX,EAAUiC,UAE3Cv2I,EAAIyxJ,KACA1qS,KAAKqxS,eAAe,GAAK,EAAI,GAC7BrxS,KAAKqxS,eAAe,GAAK,EAAI,GAC7B,GACA,IAEGrxS,KAAKoxS,kBAAkB3M,QAAUlX,EAAUqC,aAClD32I,EAAI8mE,OAAO//M,KAAKqxS,eAAe,GAAK,EAAGrxS,KAAKqxS,eAAe,GAAK,IAChEp4J,EAAIu+J,OAAOx3S,KAAKqxS,eAAe,GAAK,EAAGrxS,KAAKqxS,eAAe,GAAK,EAAI,IACpEp4J,EAAIu+J,OAAOx3S,KAAKqxS,eAAe,GAAK,EAAGrxS,KAAKqxS,eAAe,GAAK,EAAI,IACpEp4J,EAAIw+J,aAGJx+J,EAAIy+J,IACA13S,KAAKqxS,eAAe,GACpBrxS,KAAKqxS,eAAe,GACpB,EACA,EACU,EAAV35R,KAAKigS,IAGb1+J,EAAI2+J,OAEJ3+J,EAAI4+J,UAAY,UACZ73S,KAAK2yS,iBACL15J,EAAI09J,YACQ32S,KAAK+yS,sBAAsBtO,QACzBlX,EAAUqC,aACpB32I,EAAI8mE,OAAO//M,KAAK2yS,iBAAiB,GAAK,EAAG3yS,KAAK2yS,iBAAiB,GAAK,IACpE15J,EAAIu+J,OAAOx3S,KAAK2yS,iBAAiB,GAAK,EAAG3yS,KAAK2yS,iBAAiB,GAAK,EAAI,IACxE15J,EAAIu+J,OAAOx3S,KAAK2yS,iBAAiB,GAAK,EAAG3yS,KAAK2yS,iBAAiB,GAAK,EAAI,IACxE15J,EAAIw+J,aAEJx+J,EAAIy+J,IACA13S,KAAK2yS,iBAAiB,GACtB3yS,KAAK2yS,iBAAiB,GACtB,EACA,EACU,EAAVj7R,KAAKigS,IAGb1+J,EAAI2+J,OAKR53S,KAAKk4R,qBACLj/I,EAAI6+J,YAAc,OAClB7+J,EAAI8+J,WACA/3S,KAAKk4R,mBAAmB,GACxBl4R,KAAKk4R,mBAAmB,GACxBl4R,KAAKk4R,mBAAmB,GACxBl4R,KAAKk4R,mBAAmB,KAKtCl4R,KAAKm6R,kBAAoBn6R,KAAK84R,oBAChC94R,KAAKg4S,gBAAiB/+J,EAAKj5I,KAAKm6R,kBAE7Bn6R,KAAKy5R,mBACPz5R,KAAKy5R,kBAAkBxgJ,EAAI,MAGhBj5I,KAAKu5R,kBACLv5R,KAAKu5R,iBAAiBtgJ,EAAKj5I,KAAKi4S,cAGpCh/J,EAAIu9J,UAIVx2S,KAAKitS,cAAgBjtS,KAAKitS,aAAalvS,QAC1CiC,KAAKk4S,kBAAmBj/J,GAIfj5I,KAAKw5R,eACLx5R,KAAKw5R,cAAcvgJ,GAGnBy9J,GACAz9J,EAAIu9J,UAGJv9J,EAAIk/J,UAEJl/J,EAAIk/J,aAQfhiB,EAAaz3R,UAAUw5S,kBAAoB,SAASj/J,GACnD,IAAI84J,EAAW/xS,KAAKy3E,MAChB2gO,EAAUrG,EAASvE,eACvB,GAAI4K,EAAJ,CAMA,IAAIpb,EAAMob,EAAQjc,OAASic,EAAQjc,OAAOp+R,OAAS,EAC/CiyG,EAAI,IACJ94C,EAAIx/C,KAAKE,MAAmC,IAA7B21Q,EAAUK,kBAE7B30I,EAAI4+J,UAAY,OAChB5+J,EAAIo/J,YAAc,GAClBp/J,EAAI09J,YACJ19J,EAAIq/J,UAAU,GAAG,GAAGtoM,GAAIgtL,EAAM,GAAK9lO,EAAI,GAAG,GAC1C+hF,EAAI2+J,OACJ3+J,EAAIo/J,YAAc,EAElBp/J,EAAI4+J,UAAY,OAChB5+J,EAAIpkF,KAAO,aACXokF,EAAIs/J,UAAY,OAChBt/J,EAAIu/J,SAAU,eAAgB,GAAI,IACxBx4S,KAAKg5R,MAEf,GAAIh5R,KAAKy4S,WAAYzoM,IAAQ,GAAG,GAAG,GAAI,IAAK,WAE3ChwG,KAAKstS,oBAFN,CAMA,IAAI5qS,EAAI,GAER,GADAu2I,EAAIpkF,KAAO,aACRujP,EAAQjc,OACX,IAAI,IAAIr+R,EAAI,EAAGA,EAAIs6S,EAAQjc,OAAOp+R,SAAUD,EAC5C,CACC,IAAIsxF,EAAQgpN,EAAQjc,OAAOr+R,GAC3B,IAAGsxF,EAAMspN,mBAAT,CAIA,GAAI14S,KAAKy4S,WAAY,GAAG/1S,EAAE,EAAEstG,IAAQ94C,EAAI,GACxC,CACC,IAAI/xD,EAAOizS,EAAQn4S,YAAY04S,iBAAmB,cAClD34S,KAAKy3E,MAAM8nN,eACX,IAAIkB,EAAUlT,EAAUwF,WAAY5tR,GACjCs7R,GAEFsR,EAASv4R,IAAKinR,GACdzgS,KAAKmwS,aAAc,EACnBnwS,KAAK6wS,oBAAsB,KAC3B7wS,KAAK0tS,YAAY,CAACjN,IAClBzgS,KAAK4/R,aAAea,EACpBzgS,KAAKysS,iBAAkB,EACvBhM,EAAQkE,YAAY,OAAOv1M,EAAMx4E,MACjC6pR,EAAQkE,YAAY,OAAOv1M,EAAMjqF,MACjCnF,KAAK4/R,aAAajtP,IAAI,GAAK3yC,KAAKi5R,YAAY,GAAK,EACjDj5R,KAAK4/R,aAAajtP,IAAI,GAAK3yC,KAAKi5R,YAAY,GAAK,EACjDj5R,KAAKy3E,MAAMqoN,eAGXpiR,QAAQ9Z,MAAM,8BAA8BuB,GAG9C8zI,EAAI4+J,UAAY,OAChB5+J,EAAI09J,YACJ19J,EAAIy+J,IAAI1nM,IAAOttG,EAAQ,GAAJw0D,EAAQ,EAAE,EAAE,EAAEx/C,KAAKigS,IACtC1+J,EAAI2+J,OAEJ3+J,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SAAUppN,EAAMx4E,KAAM,GAAIlU,EAAM,IAAFw0D,GAClC,IAAI0hP,EAAK3/J,EAAI4/J,YAAazpN,EAAMx4E,MAChCqiI,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SAAUppN,EAAMjqF,KAAM,GAAKyzS,EAAG/tS,MAAQ,GAAInI,EAAM,IAAFw0D,GAElDx0D,GAAKw0D,GAIFl3D,KAAKy4S,WAAY,GAAG/1S,EAAE,EAAEstG,IAAQ94C,EAAI,EAAG,IAAK,UAAW,SAE1Dl3D,KAAK84S,6BAA8BV,SA7EnC16R,QAAQC,KAAK,6BAkFfw4Q,EAAaz3R,UAAU+5S,WAAa,SAAUx8R,EAAEvZ,EAAEstG,EAAE94C,EAAGiS,EAAMo7N,EAASwU,EAAYC,GAEjF,IAAI//J,EAAMj5I,KAAKi5I,IACfsrJ,EAAUA,GAAWhX,EAAUgB,mBAC/BwqB,EAAaA,GAAc,OAC3BC,EAAYA,GAAazrB,EAAUc,gBAEnC,IAAI17O,EAAM3yC,KAAKg5R,MACX33L,EAAQksL,EAAU0a,kBAAmBt1P,EAAI,GAAIA,EAAI,GAAI12B,EAAEvZ,EAAEstG,EAAE94C,GAE3D+hP,GADJtmQ,EAAM3yC,KAAK6wS,sBACUtjB,EAAU0a,kBAAmBt1P,EAAI,GAAIA,EAAI,GAAI12B,EAAEvZ,EAAEstG,EAAE94C,GAExE+hF,EAAI4+J,UAAYx2M,EAAQ03M,EAAaxU,EAClC0U,IACFhgK,EAAI4+J,UAAY,QACjB5+J,EAAI09J,YACJ19J,EAAIq/J,UAAUr8R,EAAEvZ,EAAEstG,EAAE94C,EAAE,GACtB+hF,EAAI2+J,OAEO,MAARzuO,GAECA,EAAKlpE,aAAeH,SAEtBm5I,EAAI4+J,UAAYmB,EAChB//J,EAAIs/J,UAAY,SAChBt/J,EAAIpkF,MAAa,IAAJqC,EAAU,GAAK,WAC5B+hF,EAAIu/J,SAAUrvO,EAAMltD,EAAQ,GAAJ+zF,EAAQttG,EAAQ,IAAJw0D,GACpC+hF,EAAIs/J,UAAY,QAIlB,IAAIW,EAAcD,IAAYj5S,KAAKmwS,YAGnC,OAFG8I,GACFj5S,KAAKkwS,aACCgJ,GAGR/iB,EAAaz3R,UAAUy6S,cAAgB,SAAUl9R,EAAEvZ,EAAEstG,EAAE94C,EAAGkiP,GAEzD,IAAIzmQ,EAAM3yC,KAAKg5R,MAGXigB,GAFQ1rB,EAAU0a,kBAAmBt1P,EAAI,GAAIA,EAAI,GAAI12B,EAAEvZ,EAAEstG,EAAE94C,IAC/DvkB,EAAM3yC,KAAK6wS,sBACUtjB,EAAU0a,kBAAmBt1P,EAAI,GAAIA,EAAI,GAAI12B,EAAEvZ,EAAEstG,EAAE94C,IACpEgiP,EAAcD,IAAYj5S,KAAKmwS,YAGnC,OAFG8I,GAAWG,GACbp5S,KAAKkwS,aACCgJ,GAOL/iB,EAAaz3R,UAAUs4S,WAAa,SAAS/9J,EAAKh9H,EAAGvZ,GACjDuZ,EAAIA,GAAK,GACTvZ,EAAIA,GAAK1C,KAAKo2R,OAAOtrR,OAAS,GAE9BmuI,EAAIr9D,OACJq9D,EAAIqyJ,UAAUrvR,EAAGvZ,GAEjBu2I,EAAIpkF,KAAO,aACXokF,EAAI4+J,UAAY,OACtB5+J,EAAIs/J,UAAY,OACNv4S,KAAKy3E,OACLwhE,EAAIu/J,SAAU,MAAQx4S,KAAKy3E,MAAMkkN,WAAW3gQ,QAAQ,GAAK,IAAK,EAAG,IACjEi+G,EAAIu/J,SAAS,MAAQx4S,KAAKy3E,MAAMuiJ,UAAW,EAAG,IAC9C/gF,EAAIu/J,SAAS,MAAQx4S,KAAKy3E,MAAM2jN,OAAOr9R,OAAS,KAAOiC,KAAKqsS,cAActuS,OAAS,IAAK,EAAG,IAC3Fk7I,EAAIu/J,SAAS,MAAQx4S,KAAKy3E,MAAM0jN,SAAU,EAAG,IAC7CliJ,EAAIu/J,SAAS,OAASx4S,KAAKmsS,IAAInxQ,QAAQ,GAAI,EAAG,KAE9Ci+G,EAAIu/J,SAAS,oBAAqB,EAAG,IAEzCv/J,EAAIu9J,WAORrgB,EAAaz3R,UAAU23S,eAAiB,WACpC,IAAIjgB,EAASp2R,KAAK+tS,SAEd3X,EAAOvrR,OAAS7K,KAAKo2R,OAAOvrR,OAC5BurR,EAAOtrR,QAAU9K,KAAKo2R,OAAOtrR,SAE7BsrR,EAAOvrR,MAAQ7K,KAAKo2R,OAAOvrR,MAC3BurR,EAAOtrR,OAAS9K,KAAKo2R,OAAOtrR,QAG3B9K,KAAK2vS,QACN3vS,KAAK2vS,MAAQ3vS,KAAK+tS,SAAS70J,WAAW,OAE1C,IAAID,EAAMj5I,KAAK2vS,MACX12J,EAAI74H,OACJ64H,EAAI74H,QAGd,IAAIk6Q,EAAWt6R,KAAKs6R,UAAY,CAAC,EAAE,EAAErhJ,EAAIm9I,OAAOvrR,MAAMouI,EAAIm9I,OAAOtrR,QAQ3D,GALI9K,KAAKs3R,kBACLr+I,EAAI49J,UAAWvc,EAAS,GAAIA,EAAS,GAAIA,EAAS,GAAIA,EAAS,IAI/Dt6R,KAAKitS,cAAgBjtS,KAAKitS,aAAalvS,OAAQ,CAC/Ck7I,EAAIr9D,OACe57E,KAAKitS,aAAajtS,KAAKitS,aAAalvS,OAAS,GAAhE,IACIwvS,EAAgBvtS,KAAKy3E,MAAM+1N,eAC/Bv0J,EAAI6+J,YAAcvK,EAAchJ,QAChCtrJ,EAAIo+J,UAAY,GAChBp+J,EAAI8+J,WAAW,EAAG,EAAG3hB,EAAOvrR,MAAQ,EAAGurR,EAAOtrR,OAAS,GACvDmuI,EAAIo+J,UAAY,EAChBp+J,EAAIpkF,KAAO,aACXokF,EAAIs/J,UAAY,SAChBt/J,EAAI4+J,UAAYtK,EAAchJ,SAAW,OAEzC,IADA,IAAItyQ,EAAQ,GACHn0B,EAAI,EAAGA,EAAIkC,KAAKitS,aAAalvS,SAAUD,EAC5Cm0B,GACIjyB,KAAKitS,aAAanvS,GAAG0vS,eAAe9I,WAAa,OAEzDzrJ,EAAIu/J,SACAvmR,EAAQs7Q,EAAc7I,WACP,GAAftO,EAAOvrR,MACP,IAEJouI,EAAIu9J,UAGR,IAAI6C,GAAqB,EAazB,GAZIr5S,KAAKs5S,qBACLD,EAAqBr5S,KAAKs5S,mBAAmBljB,EAAQn9I,IAInDj5I,KAAKs6R,WAEVrhJ,EAAIu9J,UACPv9J,EAAIw9J,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAE9Bz2S,KAAKq6R,cAAct8R,OAAS,EAExBiC,KAAKy3E,MAAO,CAMZ,GAJAwhE,EAAIr9D,OACJ57E,KAAKu2R,GAAG8U,gBAAgBpyJ,GAIpBj5I,KAAKq2R,kBACLr2R,KAAKu2R,GAAG7gM,MAAQ,KACf2jN,EACH,CAQE,GAPIr5S,KAAKw2R,kBACLv9I,EAAIo/J,aACC,EAAM,GAAMr4S,KAAKu2R,GAAG7gM,OAAS11F,KAAKo3R,aAEvCn+I,EAAIo/J,YAAcr4S,KAAKo3R,aAE3Bn+I,EAAIsgK,sBAAwBtgK,EAAIugK,yBAA2BvgK,EAAIsgK,uBAAwB,GAElFv5S,KAAKy5S,SACNz5S,KAAKy5S,QAAQ7iS,MAAQ5W,KAAKq2R,iBAC5B,CACEr2R,KAAKy5S,QAAU,IAAIvQ,MACnBlpS,KAAKy5S,QAAQ7iS,KAAO5W,KAAKq2R,iBACzBr2R,KAAKy5S,QAAQ5tP,IAAM7rD,KAAKq2R,iBACxB,IAAI7Y,EAAOx9Q,KACXA,KAAKy5S,QAAQ7kB,OAAS,WAClBpX,EAAKwyB,MAAK,GAAM,IAIxB,IAAIvvQ,EAAU,KACO,MAAjBzgC,KAAK+6Q,UAAoB/6Q,KAAKy5S,QAAQ5uS,MAAQ,GAC9C41B,EAAUw4G,EAAIygK,cAAc15S,KAAKy5S,QAAS,UAC1Cz5S,KAAK25S,aAAe35S,KAAKy5S,QACzBz5S,KAAK+6Q,SAAWt6O,GAEhBA,EAAUzgC,KAAK+6Q,SAEft6O,IACAw4G,EAAI4+J,UAAYp3Q,EAChBw4G,EAAI2gK,SACA55S,KAAKi2R,aAAa,GAClBj2R,KAAKi2R,aAAa,GAClBj2R,KAAKi2R,aAAa,GAClBj2R,KAAKi2R,aAAa,IAEtBh9I,EAAI4+J,UAAY,eAGpB5+J,EAAIo/J,YAAc,EAClBp/J,EAAIsgK,sBAAwBtgK,EAAIugK,yBAA2BvgK,EAAIsgK,uBAAwB,EAIvFv5S,KAAKy3E,MAAMgkN,QAAQ19R,SAAWiC,KAAKy3R,WACnCz3R,KAAK65S,WAAWzjB,EAAQn9I,GAGxBj5I,KAAKs5R,kBACLt5R,KAAKs5R,iBAAiBrgJ,EAAKj5I,KAAKi2R,cAEhCj2R,KAAK85S,qBAELp8R,QAAQ9Z,MACJ,0EAEJ5D,KAAK85S,mBAAqB,MAQ1B95S,KAAKs4R,uBACLr/I,EAAI6+J,YAAc,OAClB7+J,EAAI8+J,WAAW,EAAG,EAAG3hB,EAAOvrR,MAAOurR,EAAOtrR,SAG1C9K,KAAKu4R,4BACLt/I,EAAI8mD,YAAc,OAClB9mD,EAAI8gK,cAAgB,EACpB9gK,EAAI+gK,cAAgB,EACpB/gK,EAAIghK,WAAa,GAEjBhhK,EAAI8mD,YAAc,gBAIjB//L,KAAKy3R,WACNz3R,KAAKo3S,gBAAgBn+J,GAGzBA,EAAI8mD,YAAc,gBAGlB9mD,EAAIu9J,UAGJv9J,EAAI/d,QACJ+d,EAAI/d,SAGRl7H,KAAK2sS,gBAAiB,EACtB3sS,KAAK0sS,cAAe,GAGxB,IAAIwN,EAAY,IAAI1kB,aAAa,GAMjCW,EAAaz3R,UAAUu4S,SAAW,SAASryS,EAAMq0I,GAE7Cj5I,KAAKi6R,aAAer1R,EAEpB,IAAI6oB,EAAQ7oB,EAAK6oB,OAAS7oB,EAAK3E,YAAYwtB,OAAS8/P,EAAUgB,mBAC1DgW,EAAU3/R,EAAK2/R,SAAW3/R,EAAK3E,YAAYskS,SAAWhX,EAAUiB,qBAGhE5pR,EAAK4tS,UAIT,IAAI2H,EAAcn6S,KAAKu2R,GAAG7gM,MAAQ,GAGlC,GAAI11F,KAAKy3R,UACA7yR,EAAK89L,MAAM+vE,YACZx5H,EAAI8mD,YAAc,cACdn7L,EAAK20R,kBACL30R,EAAK20R,iBAAiBtgJ,EAAKj5I,KAAMA,KAAKo2R,aAJlD,CAUA,IAAIgB,EAAep3R,KAAKo3R,aAaxB,GAZAn+I,EAAIo/J,YAAcjhB,EAEdp3R,KAAKq4R,iBAAmB8hB,GACxBlhK,EAAI8mD,YAAcwtF,EAAUqB,qBAC5B31I,EAAI8gK,cAAgB,EAAI/5S,KAAKu2R,GAAG7gM,MAChCujD,EAAI+gK,cAAgB,EAAIh6S,KAAKu2R,GAAG7gM,MAChCujD,EAAIghK,WAAa,EAAIj6S,KAAKu2R,GAAG7gM,OAE7BujD,EAAI8mD,YAAc,eAKlBn7L,EAAK89L,MAAM+vE,YACX7tQ,EAAKw1S,iBAC8B,GAAnCx1S,EAAKw1S,gBAAgBnhK,EAAKj5I,MAH9B,CASA,IAAIykS,EAAQ7/R,EAAKktR,QAAUvE,EAAUiC,UACjC/iR,EAAOytS,EACXA,EAAU1yQ,IAAI5iC,EAAK6H,MACnB,IAAI6tF,EAAa11F,EAAK01F,WAEtB,GAAI11F,EAAK89L,MAAM+vE,UAAW,CACtBx5H,EAAIpkF,KAAO70D,KAAK02R,gBAChB,IAAIzkQ,EAAQrtB,EAAK8/R,SAAW9/R,EAAK8/R,WAAa9/R,EAAKqtB,MACtC,MAATA,IACArtB,EAAKsjS,iBAAmBxwR,KAAKgI,IACzB9a,EAAK6H,KAAK,GACVwsI,EAAI4/J,YAAY5mR,GAAOpnB,MACW,EAA9B0iR,EAAUG,mBAElBjhR,EAAK,GAAK7H,EAAKsjS,iBACfz7R,EAAK,GAAK,GAId7H,EAAKy1S,YAELphK,EAAIr9D,OACJq9D,EAAI09J,YACAlS,GAASlX,EAAUiC,UACnBv2I,EAAIyxJ,KAAK,EAAG,EAAGj+R,EAAK,GAAIA,EAAK,IACtBg4R,GAASlX,EAAUkC,YAC1Bx2I,EAAIq/J,UAAU,EAAG,EAAG7rS,EAAK,GAAIA,EAAK,GAAI,IAC/Bg4R,GAASlX,EAAUmC,cAC1Bz2I,EAAIy+J,IACU,GAAVjrS,EAAK,GACK,GAAVA,EAAK,GACK,GAAVA,EAAK,GACL,EACU,EAAViL,KAAKigS,IAGb1+J,EAAI29J,QAIJhyS,EAAK4+R,aACLe,EAAU,OAEdvkS,KAAKs6S,cACD11S,EACAq0I,EACAxsI,EACAghB,EACA82Q,EACA3/R,EAAKwwS,YACLxwS,EAAK4tS,WAETv5J,EAAI8mD,YAAc,cAGdn7L,EAAK20R,kBACL30R,EAAK20R,iBAAiBtgJ,EAAKj5I,KAAMA,KAAKo2R,QAI1Cn9I,EAAIs/J,UAAYj+M,EAAa,SAAW,OACxC2+C,EAAIpkF,KAAO70D,KAAK02R,gBAEhB,IAAI6jB,GAAeJ,EAEfK,EAAWx6S,KAAKoxS,kBACpBn4J,EAAIo+J,UAAY,EAEhB,IAAIoD,EAAQ,EACR/G,EAAW,IAAIle,aAAa,GAGhC,GAAK5wR,EAAK89L,MAAM+vE,WAgLT,GAAIzyQ,KAAK24R,uBAAwB,CAEpC,IAAI+hB,EAAa,KACbC,EAAc,KAGlB,GAAI/1S,EAAKu3R,OACL,IAASr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,OAAQD,IAAK,CAEzC,GAAiB,OADb0hS,EAAO56R,EAAKu3R,OAAOr+R,IACdixD,KAAT,CAGA2rP,EAAalb,EACb,OAGR,GAAI56R,EAAKw3R,QACL,IAASt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,OAAQD,IAAK,EACtC0hS,EAAO56R,EAAKw3R,QAAQt+R,IACdyjG,OAAUi+L,EAAKj+L,MAAMxjG,SAG/B48S,EAAcnb,GAItB,GAAIkb,EAAY,CACZ,IAAIz+R,EAAI,EACJvZ,GAAmC,GAA/B6qR,EAAUG,kBACdpzL,IACAr+E,EAA4B,GAAxBrX,EAAKsjS,iBACTxlS,GAAK6qR,EAAUG,mBAEnBz0I,EAAI4+J,UAAY,OAChB5+J,EAAI09J,YAEAnX,EAAKr6R,OAASooR,EAAUuC,OACxB0P,EAAKiF,QAAUlX,EAAUiC,UAEzBv2I,EAAIyxJ,KAAKzuR,EAAI,EAAI,GAAKvZ,EAAI,EAAG,GAAI,GAC1B88R,EAAKiF,QAAUlX,EAAUqC,aAChC32I,EAAI8mE,OAAO9jM,EAAI,EAAGvZ,GAClBu2I,EAAIu+J,OAAOv7R,GAAK,EAAGvZ,EAAI,GACvBu2I,EAAIu+J,OAAOv7R,GAAK,EAAGvZ,EAAI,GACvBu2I,EAAIw+J,aAEJx+J,EAAIy+J,IAAIz7R,EAAGvZ,EAAG,EAAG,EAAa,EAAVgV,KAAKigS,IAE7B1+J,EAAI2+J,OAGR,GAAI+C,EAAa,CACT1+R,EAAIrX,EAAKsjS,iBACTxlS,GAAmC,GAA/B6qR,EAAUG,kBACdpzL,IACAr+E,EAA4B,GAAxBrX,EAAKsjS,iBACTxlS,EAAI,GAERu2I,EAAI4+J,UAAY,OAChB5+J,EAAI6+J,YAAc,QAClB7+J,EAAI09J,YAEAnX,EAAKr6R,OAASooR,EAAUuC,OACxB0P,EAAKiF,QAAUlX,EAAUiC,UAEzBv2I,EAAIyxJ,KAAKzuR,EAAI,EAAI,GAAKvZ,EAAI,EAAG,GAAI,GAC1B88R,EAAKiF,QAAUlX,EAAUqC,aAChC32I,EAAI8mE,OAAO9jM,EAAI,EAAGvZ,GAClBu2I,EAAIu+J,OAAOv7R,EAAI,EAAGvZ,EAAI,GACtBu2I,EAAIu+J,OAAOv7R,EAAI,EAAGvZ,EAAI,GACtBu2I,EAAIw+J,aAEJx+J,EAAIy+J,IAAIz7R,EAAGvZ,EAAG,EAAG,EAAa,EAAVgV,KAAKigS,IAE7B1+J,EAAI2+J,aA1Pe,CAEvB,GAAIhzS,EAAKu3R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,OAAQD,IAAK,CACzC,IAAI0hS,EAAO56R,EAAKu3R,OAAOr+R,GAyDvB,GAvDAm7I,EAAIo/J,YAAcjhB,EAEbp3R,KAAKusS,kBAAoBhf,EAAUsG,kBAAmB2L,EAAKr6R,KAAOq1S,EAASr1S,QAC5E8zI,EAAIo/J,YAAc,GAAMjhB,GAG5Bn+I,EAAI4+J,UACa,MAAbrY,EAAKzwO,KACCywO,EAAKob,UACL56S,KAAK62R,yBAAyBE,SAC9ByI,EAAKqb,WACL76S,KAAK62R,yBAAyBC,WAEpCnkP,EAAM/tC,EAAKyjS,kBAAiB,EAAMvqS,EAAG41S,IACrC,IAAM9uS,EAAK+tC,IAAI,GACnBA,EAAI,IAAM/tC,EAAK+tC,IAAI,GACf8nQ,EAAQ9nQ,EAAI,GAAkC,GAA7B46O,EAAUK,mBAC3B6sB,EAAQ9nQ,EAAI,GAAkC,GAA7B46O,EAAUK,kBAG/B30I,EAAI09J,YAGAnX,EAAKr6R,OAASooR,EAAUuC,OACxB0P,EAAKiF,QAAUlX,EAAUiC,UAErBl1L,EACA2+C,EAAIyxJ,KACA/3P,EAAI,GAAK,EAAI,GACbA,EAAI,GAAK,EAAI,GACb,GACA,IAGJsmG,EAAIyxJ,KACA/3P,EAAI,GAAK,EAAI,GACbA,EAAI,GAAK,EAAI,GACb,GACA,IAGD6sP,EAAKiF,QAAUlX,EAAUqC,aAChC32I,EAAI8mE,OAAOptK,EAAI,GAAK,EAAGA,EAAI,GAAK,IAChCsmG,EAAIu+J,OAAO7kQ,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAI,IACpCsmG,EAAIu+J,OAAO7kQ,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAI,IACpCsmG,EAAIw+J,aAEnB0C,EACgBlhK,EAAIyxJ,KAAK/3P,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAG,EAAG,GAEpCsmG,EAAIy+J,IAAI/kQ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAa,EAAVj7B,KAAKigS,IAExC1+J,EAAI2+J,OAGA2C,GACIpxO,EAAqB,MAAdq2N,EAAK38R,MAAgB28R,EAAK38R,MAAQ28R,EAAK5oR,QAE9CqiI,EAAI4+J,UAAYtqB,EAAUc,gBACtB/zL,GAAcklM,EAAK31H,KAAO0jH,EAAU6C,GACpCn3I,EAAIu/J,SAASrvO,EAAMx2B,EAAI,GAAIA,EAAI,GAAK,IAEpCsmG,EAAIu/J,SAASrvO,EAAMx2B,EAAI,GAAK,GAAIA,EAAI,GAAK,IAc7D,GANI3yC,KAAKusS,kBACLtzJ,EAAIo/J,YAAc,GAAMjhB,GAG5Bn+I,EAAIs/J,UAAYj+M,EAAa,SAAW,QACxC2+C,EAAI6+J,YAAc,QACdlzS,EAAKw3R,QACL,IAAK,IAAIt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,OAAQD,IAAK,CAC1C,IAEI60C,EA0DIw2B,EA5DJq2N,EAAO56R,EAAKw3R,QAAQt+R,GA2DxB,IAzDI60C,EAAM/tC,EAAKyjS,kBAAiB,EAAOvqS,EAAG41S,IACtC,IAAM9uS,EAAK+tC,IAAI,GACnBA,EAAI,IAAM/tC,EAAK+tC,IAAI,GACf8nQ,EAAQ9nQ,EAAI,GAAkC,GAA7B46O,EAAUK,mBAC3B6sB,EAAQ9nQ,EAAI,GAAkC,GAA7B46O,EAAUK,kBAG/B30I,EAAI4+J,UACArY,EAAKj+L,OAASi+L,EAAKj+L,MAAMxjG,OACnByhS,EAAKob,UACL56S,KAAK62R,yBAAyBI,UAC9BuI,EAAKqb,WACL76S,KAAK62R,yBAAyBG,WACxC/9I,EAAI09J,YAIAnX,EAAKr6R,OAASooR,EAAUuC,OACxB0P,EAAKiF,QAAUlX,EAAUiC,UAErBl1L,EACA2+C,EAAIyxJ,KACA/3P,EAAI,GAAK,EAAI,GACbA,EAAI,GAAK,EAAI,GACb,GACA,IAGJsmG,EAAIyxJ,KACA/3P,EAAI,GAAK,EAAI,GACbA,EAAI,GAAK,EAAI,GACb,GACA,IAGD6sP,EAAKiF,QAAUlX,EAAUqC,aAChC32I,EAAI8mE,OAAOptK,EAAI,GAAK,EAAGA,EAAI,GAAK,IAChCsmG,EAAIu+J,OAAO7kQ,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAI,IACpCsmG,EAAIu+J,OAAO7kQ,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAI,IACpCsmG,EAAIw+J,aAEnB0C,EACgBlhK,EAAIyxJ,KAAK/3P,EAAI,GAAK,EAAGA,EAAI,GAAK,EAAG,EAAG,GAEpCsmG,EAAIy+J,IAAI/kQ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAa,EAAVj7B,KAAKigS,IAQxC1+J,EAAI2+J,OACfuC,GACYlhK,EAAI6hK,SAGDP,GACIpxO,EAAqB,MAAdq2N,EAAK38R,MAAgB28R,EAAK38R,MAAQ28R,EAAK5oR,QAE9CqiI,EAAI4+J,UAAYtqB,EAAUc,gBACtB/zL,GAAcklM,EAAK31H,KAAO0jH,EAAU8C,KACpCp3I,EAAIu/J,SAASrvO,EAAMx2B,EAAI,GAAIA,EAAI,GAAK,GAEpCsmG,EAAIu/J,SAASrvO,EAAMx2B,EAAI,GAAK,GAAIA,EAAI,GAAK,IAU7D,GAHAsmG,EAAIs/J,UAAY,OAChBt/J,EAAIo/J,YAAc,EAEdzzS,EAAKw/R,QAAS,CAC1B,IAAI2W,EAAYN,GACAngN,GAAc11F,EAAKwiS,cACnB2T,EAAY,GAEA,MAAxBn2S,EAAKyiS,kBACO0T,EAAYn2S,EAAKyiS,iBACrBrnS,KAAKg7S,gBACDp2S,EACAm2S,EACA9hK,EACAj5I,KAAKk6R,aAAel6R,KAAKk6R,YAAY,IAAMt1R,EACrC5E,KAAKk6R,YAAY,GACjB,OAkFdt1R,EAAKy1S,WACLphK,EAAIu9J,UAGRv9J,EAAIo/J,YAAc,KAIzBliB,EAAaz3R,UAAUs5S,gBAAkB,SAAU/+J,EAAKlqF,GAEvD,IAAIpc,EAAMoc,EAAK+9G,KAMf,GALA7zB,EAAI4+J,UAAY,QAChB5+J,EAAI09J,YACJ19J,EAAIy+J,IAAK/kQ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAa,EAAVj7B,KAAKigS,IACpC1+J,EAAI2+J,OAEY,MAAb7oP,EAAK5vD,QAGLa,KAAKy5R,mBACsC,GAAzCz5R,KAAKy5R,kBAAkBxgJ,EAAIlqF,EAAK/uD,OADrC,CAIA,IAAIb,EAAO4vD,EAAK5vD,KACZgqE,EAAO,KAaX,GAAW,OAVVA,EADGhqE,EAAKc,cAAgB8sH,OACjB5tH,EAAK67B,QAAQ,GACZ77B,EAAKc,cAAgBH,OACtB,IAAOX,EAAO,IACbA,EAAKc,cAAgBirF,QACtBprF,OAAOX,GACNA,EAAK87S,UACN97S,EAAK87S,YAEL,IAAM97S,EAAKc,YAAY2W,KAAO,KAEtC,CAEAuyD,EAAOA,EAAKhgC,OAAO,EAAE,IAErB8vG,EAAIpkF,KAAO,mBACX,IACIm7C,EADOipC,EAAI4/J,YAAY1vO,GACdt+D,MAAQ,GAErBouI,EAAI8mD,YAAc,QAClB9mD,EAAI8gK,cAAgB,EACpB9gK,EAAI+gK,cAAgB,EACpB/gK,EAAIghK,WAAa,EACjBhhK,EAAI4+J,UAAY,OAChB5+J,EAAI09J,YACJ19J,EAAIq/J,UAAW3lQ,EAAI,GAAO,GAAFq9D,EAAOr9D,EAAI,GAAK,GAPhC,GAOwCq9D,EAPxC,GAO6C,EAAG,GACxDipC,EAAI8mE,OAAQptK,EAAI,GAAK,GAAIA,EAAI,GAAK,IAClCsmG,EAAIu+J,OAAQ7kQ,EAAI,GAAK,GAAIA,EAAI,GAAK,IAClCsmG,EAAIu+J,OAAQ7kQ,EAAI,GAAIA,EAAI,GAAK,GAC7BsmG,EAAI2+J,OACE3+J,EAAI8mD,YAAc,cACxB9mD,EAAIs/J,UAAY,SAChBt/J,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SAASrvO,EAAMx2B,EAAI,GAAIA,EAAI,GAAK,GAf5B,GAeqC,OAO3C,IAAIuoQ,EAAW,IAAI1lB,aAAa,GAEhCW,EAAaz3R,UAAU47S,cAAgB,SACnC11S,EACAq0I,EACAxsI,EACA0uS,EACA5W,EACA6W,EACAC,GAGApiK,EAAI6+J,YAAcqD,EAClBliK,EAAI4+J,UAAYtT,EAEhB,IAAIkP,EAAelmB,EAAUG,kBACzBysB,EAAcn6S,KAAKu2R,GAAG7gM,MAAQ,GAG9B+uM,EACA7/R,EAAKktR,QAAUltR,EAAK3E,YAAYwkS,OAASlX,EAAUkC,YAEnD6rB,EAAa12S,EAAK3E,YAAYq7S,WAE9BC,GAAe,EACfD,GAAc/tB,EAAUqD,kBACxB2qB,GAAe,EACRD,GAAc/tB,EAAUsD,gBAAkBwqB,IACjDE,GAAe,GAGnB,IAAI7E,EAAOwE,EACXxE,EAAK,GAAK,EACVA,EAAK,GAAK6E,GAAgB9H,EAAe,EACzCiD,EAAK,GAAKjqS,EAAK,GAAK,EACpBiqS,EAAK,GAAK6E,EAAe9uS,EAAK,GAAKgnS,EAAehnS,EAAK,GAEvD,IAAI+uS,EAAYviK,EAAIo/J,YA8CpB,GAzCIp/J,EAAI09J,YACAlS,GAASlX,EAAUiC,WAAa2qB,EAChClhK,EAAI2gK,SAASlD,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE7CjS,GAASlX,EAAUkC,aACnBgV,GAASlX,EAAUoC,WAEnB12I,EAAIq/J,UACA5B,EAAK,GACLA,EAAK,GACLA,EAAK,GACLA,EAAK,GACL12S,KAAKg6R,aACLyK,GAASlX,EAAUoC,WAAa,EAAI3vR,KAAKg6R,cAEtCyK,GAASlX,EAAUmC,cAC1Bz2I,EAAIy+J,IACU,GAAVjrS,EAAK,GACK,GAAVA,EAAK,GACK,GAAVA,EAAK,GACL,EACU,EAAViL,KAAKigS,IAGb1+J,EAAI2+J,OAGThzS,EAAK89L,MAAM+vE,YAEdx5H,EAAI8mD,YAAc,cAClB9mD,EAAI4+J,UAAY,kBAChB5+J,EAAI2gK,SAAS,GAAI,EAAGlD,EAAK,GAAI,IAGzBz9J,EAAI8mD,YAAc,cAEdn7L,EAAK00R,kBACL10R,EAAK00R,iBAAiBrgJ,EAAKj5I,KAAMA,KAAKo2R,OAAQp2R,KAAKi5R,aAInDsiB,GAAgBD,GAAc/tB,EAAUqD,kBAAmB,CAE3D,GAAIhsR,EAAK62S,eACL72S,EAAK62S,eAAgBxiK,EAAKw6J,EAAchnS,EAAMzM,KAAKu2R,GAAG7gM,MAAOylN,QAC1D,GACHG,GAAc/tB,EAAUqD,oBACvBhsR,EAAK3E,YAAYy7S,aAAe17S,KAAK64R,sBACxC,CACE,IAAI6iB,EAAc92S,EAAK3E,YAAYy7S,aAAeP,EAOlD,GALIv2S,EAAK89L,MAAM+vE,YACXx5H,EAAI8mD,YAAcwtF,EAAUqB,sBAI5B5uR,KAAKm3R,cAAe,CACpB,IAAIwkB,EAAOxlB,EAAa4V,UAAU2P,GAC7BC,KACDA,EAAOxlB,EAAa4V,UAAW2P,GAAgBziK,EAAI2iK,qBAAqB,EAAG,EAAG,IAAK,IAC9EC,aAAa,EAAGH,GACrBC,EAAKE,aAAa,EAAG,SAEzB5iK,EAAI4+J,UAAY8D,OAEhB1iK,EAAI4+J,UAAY6D,EAIpBziK,EAAI09J,YACAlS,GAASlX,EAAUiC,WAAa2qB,EAChClhK,EAAIyxJ,KAAK,GAAI+I,EAAchnS,EAAK,GAAK,EAAGgnS,GAC/BhP,GAASlX,EAAUkC,aAAegV,GAASlX,EAAUoC,YAC9D12I,EAAIq/J,UACA,GACC7E,EACDhnS,EAAK,GAAK,EACVgnS,EACAzzS,KAAKg6R,aACLp1R,EAAK89L,MAAM+vE,UAAYzyQ,KAAKg6R,aAAe,GAGnD/gJ,EAAI2+J,OACJ3+J,EAAI8mD,YAAc,cAItB,IAAI+7G,EAAW,GAmEf,GAlEIl3S,EAAKm3S,eACLn3S,EAAKm3S,eAAe9iK,EAAKw6J,EAAchnS,EAAMzM,KAAKu2R,GAAG7gM,OAErD+uM,GAASlX,EAAUkC,aACnBgV,GAASlX,EAAUmC,cACnB+U,GAASlX,EAAUoC,YAEfwqB,IACAlhK,EAAI4+J,UAAY,QAChB5+J,EAAI09J,YACJ19J,EAAIy+J,IACe,GAAfjE,GACgB,GAAhBA,EACAqI,EACA,EACU,EAAVpkS,KAAKigS,IAET1+J,EAAI2+J,QAGR3+J,EAAI4+J,UAAYjzS,EAAK4/R,UAAYjX,EAAUkB,sBACpD0rB,EACFlhK,EAAI2gK,SAAyB,GAAfnG,EAAqBqI,GAA+B,GAAhBrI,EAAsBqI,EAAeA,EAAWA,IAGlG7iK,EAAI09J,YACJ19J,EAAIy+J,IACY,GAAfjE,GACgB,GAAhBA,EACAqI,EACA,EACU,EAAVpkS,KAAKigS,IAEN1+J,EAAI2+J,UAGWuC,IACAlhK,EAAI4+J,UAAY,QAChB5+J,EAAI2gK,SAC4B,IAA3BnG,EAAeqI,GAAkB,GACL,IAA5BrI,EAAeqI,GAAmB,EACnCA,GACAA,KAGR7iK,EAAI4+J,UAAYjzS,EAAK4/R,UAAYjX,EAAUkB,sBAC3Cx1I,EAAI2gK,SAC4B,IAA3BnG,EAAeqI,IACa,IAA5BrI,EAAeqI,GAChBA,EACAA,IAGR7iK,EAAIo/J,YAAcmD,EAGd52S,EAAKo3S,iBACLp3S,EAAKo3S,gBACD/iK,EACAw6J,EACAhnS,EACAzM,KAAKu2R,GAAG7gM,MACR11F,KAAKy2R,gBACL2kB,IAGHjB,EAAa,CACdlhK,EAAIpkF,KAAO70D,KAAKy2R,gBAChB,IAAIxkQ,EAAQnyB,OAAO8E,EAAK8/R,YACxB,GAAIzyQ,EAQA,GANIgnH,EAAI4+J,UADJuD,EACgB7tB,EAAUY,0BAGtBvpR,EAAK3E,YAAYg8S,kBACjBj8S,KAAK22R,iBAET/xR,EAAK89L,MAAM+vE,UAAW,CACtBx5H,EAAIs/J,UAAY,OACFt/J,EAAI4/J,YAAY5mR,GAC9BgnH,EAAIu/J,SACAvmR,EAAMkX,OAAO,EAAE,IACfsqQ,EACAlmB,EAAUI,kBAAoB8lB,GAElCx6J,EAAIs/J,UAAY,YAEhBt/J,EAAIs/J,UAAY,OAChBt/J,EAAIu/J,SACAvmR,EACAwhR,EACAlmB,EAAUI,kBAAoB8lB,GAOvD,IAAK7uS,EAAK89L,MAAM+vE,WAAa7tQ,EAAKmtS,WAAantS,EAAKotS,qBAAsB,CACzE,IAAIhiM,EAAIu9K,EAAUG,kBACdzxQ,EAAIrX,EAAK6H,KAAK,GAAKujG,EACnBksM,EAAO3uB,EAAU0a,kBAAmBjoS,KAAKi5R,YAAY,GAAKr0R,EAAK+tC,IAAI,GAAI3yC,KAAKi5R,YAAY,GAAKr0R,EAAK+tC,IAAI,GAAI12B,EAAE,EAAM,EAAF+zF,EAAKA,EAAE,EAAGA,EAAE,GAChIipC,EAAI4+J,UAAYqE,EAAO,OAAS,OAC5BzX,GAASlX,EAAUiC,WAAa2qB,EACnClhK,EAAI2gK,SAAS39R,EAAE,EAAM,EAAF+zF,EAAKA,EAAE,EAAGA,EAAE,IAG/BipC,EAAI09J,YACJ19J,EAAIq/J,UAAUr8R,EAAE,EAAM,EAAF+zF,EAAKA,EAAE,EAAGA,EAAE,EAAE,GAClCipC,EAAI2+J,QAEL3+J,EAAI4+J,UAAY,OAChB5+J,EAAI09J,YACJ19J,EAAI8mE,OAAO9jM,EAAQ,GAAJ+zF,EAAc,IAAJA,GACzBipC,EAAIu+J,OAAOv7R,EAAQ,GAAJ+zF,EAAc,IAAJA,GACzBipC,EAAIu+J,OAAOv7R,EAAQ,GAAJ+zF,EAAc,IAAJA,GACzBipC,EAAI2+J,OAIQhzS,EAAKu3S,aACLv3S,EAAKu3S,YAAYljK,GAKrBmiK,IACIx2S,EAAKkjS,YACLljS,EAAKkjS,WAAW4O,GAGhB4E,GAAc/tB,EAAUqD,oBACxB8lB,EAAK,IAAMjD,EACXiD,EAAK,IAAMjD,GAEfx6J,EAAIo+J,UAAY,EAChBp+J,EAAIo/J,YAAc,GAClBp/J,EAAI09J,YACAlS,GAASlX,EAAUiC,UACnBv2I,EAAIyxJ,MACC,EAAIgM,EAAK,IACT,EAAIA,EAAK,GACV,GAAKA,EAAK,GACV,GAAKA,EAAK,IAGdjS,GAASlX,EAAUkC,aAClBgV,GAASlX,EAAUoC,YAAc/qR,EAAK89L,MAAM+vE,UAE7Cx5H,EAAIq/J,WACC,EAAI5B,EAAK,IACT,EAAIA,EAAK,GACV,GAAKA,EAAK,GACV,GAAKA,EAAK,GACU,EAApB12S,KAAKg6R,cAEFyK,GAASlX,EAAUoC,WAC1B12I,EAAIq/J,WACC,EAAI5B,EAAK,IACT,EAAIA,EAAK,GACV,GAAKA,EAAK,GACV,GAAKA,EAAK,GACU,EAApB12S,KAAKg6R,aACL,GAEGyK,GAASlX,EAAUmC,cAC1Bz2I,EAAIy+J,IACU,GAAVjrS,EAAK,GACK,GAAVA,EAAK,GACK,GAAVA,EAAK,GAAW,EAChB,EACU,EAAViL,KAAKigS,IAGb1+J,EAAI6+J,YAAcvqB,EAAUoB,uBAC5B11I,EAAI6hK,SACJ7hK,EAAI6+J,YAAcqD,EAClBliK,EAAIo/J,YAAc,IAI1B,IAAI+D,EAAc,IAAI5mB,aAAa,GAC/B6mB,EAAgB,IAAI7mB,aAAa,GACjC8mB,EAAQ,IAAI9mB,aAAa,GACzB+mB,EAAQ,IAAI/mB,aAAa,GAo/F7B,SAAS1iJ,EAAS5uI,EAAG5E,GACjB,OAAOoY,KAAK8kS,MACPl9S,EAAE,GAAK4E,EAAE,KAAO5E,EAAE,GAAK4E,EAAE,KAAO5E,EAAE,GAAK4E,EAAE,KAAO5E,EAAE,GAAK4E,EAAE,KAoBlE,SAAS+jS,EAAkBhsR,EAAGvZ,EAAGuJ,EAAMF,EAAKlB,EAAOC,GAC/C,OAAImB,EAAOgQ,GAAKhQ,EAAOpB,EAAQoR,GAAKlQ,EAAMrJ,GAAKqJ,EAAMjB,EAASpI,EAsClE,SAASynS,EAAgBjmS,EAAG5E,GACxB,IAAIm9S,EAAUv4S,EAAE,GAAKA,EAAE,GACnBw4S,EAAUx4S,EAAE,GAAKA,EAAE,GACnBy4S,EAAUr9S,EAAE,GAAKA,EAAE,GACnBs9S,EAAUt9S,EAAE,GAAKA,EAAE,GAEvB,QACI4E,EAAE,GAAKy4S,GACPz4S,EAAE,GAAK04S,GACPH,EAAUn9S,EAAE,IACZo9S,EAAUp9S,EAAE,IA8DpB,SAASu9S,EAAYr/R,EAAQnY,GACzBA,EAAUA,GAAW,GACrBrF,KAAKqF,QAAUA,EACf,IAAIm4Q,EAAOx9Q,KAGPqF,EAAQy3S,aACJz3S,EAAQy3S,WAAW78S,cAAgBD,KAAKC,aACxCyd,QAAQ9Z,MACJ,wDAEJyB,EAAQy3S,WAAa,OAErB98S,KAAK88S,WAAaz3S,EAAQy3S,WAC1B98S,KAAK88S,WAAW/vO,MAAO,EACvB/sE,KAAK88S,WAAWC,gBAAkB/8S,OAIhD,IAAIg9S,EAAa,KACd33S,EAAQsP,QACVqoS,EAAa33S,EAAQsP,MAAM1U,YAAY2W,MACd,eAAfomS,GACc,gBAAfA,GACM,iBAAfA,IAESt/R,QAAQ9Z,MACJ,sFAEJyB,EAAQsP,MAAQ,MAGpB,IAAI83F,EAAOriG,SAASsF,cAAc,OA8ClC,SAASutS,EAAet8S,GACpB,IAAIgyC,EAAMlT,SAASgtE,EAAK//F,MAAMX,KAI9B,OAHA0gG,EAAK//F,MAAMX,KACN4mC,EAAMhyC,EAAE48J,OAASl4J,EAAQ63S,cAAcliR,UAAY,KACxDr6B,EAAEsT,kBACK,EAaX,GA/DAw4F,EAAKj2F,UAAY,8CACbnR,EAAQmR,YACRi2F,EAAKj2F,WAAa,IAAMnR,EAAQmR,WAEpCi2F,EAAK//F,MAAMywS,SAAW,IACtB1wM,EAAK//F,MAAM0wS,UAAY,IACvB3wM,EAAK//F,MAAMjG,cAAgB,OAC3BuB,YAAW,WACPykG,EAAK//F,MAAMjG,cAAgB,SAC5B,KAGHgmG,EAAK/mG,iBACD,WACA,SAAS/E,GAEL,OADAA,EAAEsT,kBACK,KAEX,GAEJw4F,EAAK/mG,iBACD,eACA,SAAS/E,GACL,OAAgB,GAAZA,EAAE6sL,QAIN7sL,EAAEsT,kBAFS,KAKf,GAGJw4F,EAAK/mG,iBACD,aACA,SAAS/E,GACL,GAAgB,GAAZA,EAAE6sL,OAGF,OAFAgwF,EAAKvwM,QACLtsE,EAAEsT,kBACK,KAGf,GAWC5O,EAAQ63S,eACT73S,EAAQ63S,aAAe,IAG3BzwM,EAAK/mG,iBAAiB,QAASu3S,GAAgB,GAC/CxwM,EAAK/mG,iBAAiB,aAAcu3S,GAAgB,GAEpDj9S,KAAKysG,KAAOA,EAGRpnG,EAAQ4sB,MAAO,CACf,IAAI1nB,EAAUH,SAASsF,cAAc,OACrCnF,EAAQiM,UAAY,iBACpBjM,EAAQ8yS,UAAYh4S,EAAQ4sB,MAC5Bw6E,EAAK78F,YAAYrF,GAKrB,IADA,IACSzM,EAAE,EAAGA,EAAI0f,EAAOzf,OAAQD,IAAK,CAClC,IAAI8Y,EAAO4G,EAAOvd,aAAeR,MAAQ+d,EAAO1f,GAAKA,EACzC,MAAR8Y,GAAgBA,EAAK3W,cAAgBH,SACrC8W,OAAwBiD,IAAjBjD,EAAKsoC,QAAwBp/C,OAAO8W,GAAQA,EAAKsoC,SAE5D,IAAIl9C,EAAQwb,EAAO1f,GACnBkC,KAAKs9S,QAAQ1mS,EAAM5U,EAAOqD,GAK9BonG,EAAK/mG,iBAAiB,cAAc,SAAS/E,GACrC68Q,EAAKzwM,OAGL0/B,EAAK8wM,eACL3kR,aAAa6zE,EAAK8wM,eAEtB9wM,EAAK8wM,cAAgBv1S,WAAWw1Q,EAAKvwM,MAAM7R,KAAKoiN,EAAM78Q,GAAI,SAI9D8rG,EAAK/mG,iBAAiB,cAAc,SAAS/E,GACrC8rG,EAAK8wM,eACL3kR,aAAa6zE,EAAK8wM,kBAK1B,IAAIC,EAAgBpzS,SAChB/E,EAAQsP,QACR6oS,EAAgBn4S,EAAQsP,MAAM/W,OAAOwgD,eAGpCo/P,IACDA,EAAgBpzS,UAGtBozS,EAAcC,kBACXD,EAAcC,kBAAkB7tS,YAAY68F,GAE/C+wM,EAAch7S,KAAKoN,YAAY68F,GAG7B,IAAIxgG,EAAO5G,EAAQ4G,MAAQ,EACvBF,EAAM1G,EAAQ0G,KAAO,EACzB,GAAI1G,EAAQsP,MAAO,CAOf,GANA1I,EAAO5G,EAAQsP,MAAMm5K,QAAU,GAC/B/hL,EAAM1G,EAAQsP,MAAMo5K,QAAU,GAC1B1oL,EAAQ4sB,QACRlmB,GAAO,IAGP1G,EAAQy3S,WAAY,CACpB,IAAIpS,EAAOrlS,EAAQy3S,WAAWrwM,KAAK3/F,wBACnCb,EAAOy+R,EAAKz+R,KAAOy+R,EAAK7/R,MAG5B,IAAI6yS,EAAYtzS,SAAS5H,KAAKsK,wBAC1B6wS,EAAYlxM,EAAK3/F,wBACP,GAApB4wS,EAAU5yS,QACZ4S,QAAQ9Z,MAAM,iFAEF85S,EAAU7yS,OAASoB,EAAOyxS,EAAU7yS,MAAQ8yS,EAAU9yS,MAAQ,KAC9DoB,EAAOyxS,EAAU7yS,MAAQ8yS,EAAU9yS,MAAQ,IAE3C6yS,EAAU5yS,QAAUiB,EAAM2xS,EAAU5yS,OAAS6yS,EAAU7yS,OAAS,KAChEiB,EAAM2xS,EAAU5yS,OAAS6yS,EAAU7yS,OAAS,IAIpD2hG,EAAK//F,MAAMT,KAAOA,EAAO,KACzBwgG,EAAK//F,MAAMX,IAAMA,EAAM,KAEnB1G,EAAQqwF,QACR+W,EAAK//F,MAAM6gB,UAAY,SAAWloB,EAAQqwF,MAAQ,KA8Q7D,SAASkoN,EAAaC,GAErB79S,KAAK69S,OAASA,EACd79S,KAAKo7S,UAAY,EACjBp7S,KAAK8hM,SAAW,EAChB9hM,KAAKyM,KAAO,KACZzM,KAAK89S,aAAc,EACnB99S,KAAKmN,OAAS,EA3jHZgpR,EAAaz3R,UAAU04S,gBAAkB,SAASn+J,GAC9C,IAAI72E,EAAMmrN,EAAUrlR,UAChB+tR,EAAej2R,KAAKi2R,aACxBmmB,EAAY,GAAKnmB,EAAa,GAAK,GACnCmmB,EAAY,GAAKnmB,EAAa,GAAK,GACnCmmB,EAAY,GAAKnmB,EAAa,GAAK,GACnCmmB,EAAY,GAAKnmB,EAAa,GAAK,GAGnCh9I,EAAIo+J,UAAYr3S,KAAK+5R,kBAErB9gJ,EAAI4+J,UAAY,OAChB5+J,EAAI6+J,YAAc,OAClB7+J,EAAIo/J,YAAcr4S,KAAKo3R,aAGvB,IADA,IAAI38K,EAAQz6G,KAAKy3E,MAAM2jN,OACd76R,EAAI,EAAGkE,EAAIg2G,EAAM18G,OAAQwC,EAAIkE,IAAKlE,EAAG,CAC1C,IAAIqE,EAAO61G,EAAMl6G,GAEjB,GAAKqE,EAAKu3R,QAAWv3R,EAAKu3R,OAAOp+R,OAIjC,IAAK,IAAID,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQxqF,EAAKu3R,OAAOr+R,GACxB,GAAKsxF,GAAuB,MAAdA,EAAMrgC,KAApB,CAGA,IAAIivO,EAAU5uM,EAAMrgC,KAChBA,EAAO/uD,KAAKy3E,MAAM8pB,MAAMy8L,GAC5B,GAAKjvO,EAAL,CAKA,IAAIgvP,EAAa/9S,KAAKy3E,MAAMymN,YAAYnvO,EAAKqmO,WAC7C,GAAkB,MAAd2oB,EAAJ,CAGA,IAAIC,EAAkBjvP,EAAKsmO,YACvB4oB,EAAqB,KAErBA,GADoB,GAApBD,EACqB,CACjBD,EAAWprQ,IAAI,GAAK,GACpBorQ,EAAWprQ,IAAI,GAAK,IAGHorQ,EAAW1V,kBAC5B,EACA2V,EACA1B,GAGR,IAAI4B,EAAmBt5S,EAAKyjS,kBAAiB,EAAMvqS,EAAGy+S,GAiBtD,GAdAF,EAAc,GAAK4B,EAAmB,GACtC5B,EAAc,GAAK4B,EAAmB,GACtC5B,EAAc,GAAK6B,EAAiB,GAAKD,EAAmB,GAC5D5B,EAAc,GAAK6B,EAAiB,GAAKD,EAAmB,GACxD5B,EAAc,GAAK,IACnBA,EAAc,IAAMA,EAAc,GAClCA,EAAc,GAAK3kS,KAAKmgD,IAAIwkP,EAAc,KAE1CA,EAAc,GAAK,IACnBA,EAAc,IAAMA,EAAc,GAClCA,EAAc,GAAK3kS,KAAKmgD,IAAIwkP,EAAc,KAIzClS,EAAgBkS,EAAeD,GAApC,CAIA,IAAI+B,EAAaJ,EAAW3hB,QAAQ4hB,GAChCI,EAAWx5S,EAAKu3R,OAAOr+R,GAC3B,GAAKqgT,GAAeC,EAApB,CAGA,IAAIC,EACAF,EAAWt0I,MACVk0I,EAAWzjN,WAAaizL,EAAU8C,KAAO9C,EAAU3hP,OACpD0yQ,EACAF,EAASv0I,MACRjlK,EAAK01F,WAAaizL,EAAU6C,GAAK7C,EAAU5hP,MAehD,GAbA3rC,KAAKu3S,WACDt+J,EACAglK,EACAC,EACAnvP,GACA,EACA,EACA,KACAsvP,EACAC,GAIAvvP,GAAQA,EAAK4zO,YAAcvgO,EAAMrT,EAAK4zO,WAAa,IAAM,CACzD,IAAIlgS,EAAI,EAAgC,MAAzB2/D,EAAMrT,EAAK4zO,YACtBv4L,EAAM6uC,EAAIo/J,YACdp/J,EAAIo/J,YAAcjuM,EAAM3nG,EACxBzC,KAAKu3S,WACDt+J,EACAglK,EACAC,EACAnvP,GACA,EACAtsD,EACA,QACA47S,EACAC,GAEJrlK,EAAIo/J,YAAcjuM,SAI9B6uC,EAAIo/J,YAAc,GAgBtBliB,EAAaz3R,UAAU64S,WAAa,SAChCt+J,EACA/0I,EACA5E,EACAyvD,EACAwvP,EACAC,EACA/wR,EACA4wR,EACAC,EACAG,GAEI1vP,GACA/uD,KAAKq6R,cAAc92R,KAAKwrD,IAIvBthC,GAASshC,IACVthC,EAAQshC,EAAKthC,OAAS0oQ,EAAa2V,iBAAiB/8O,EAAK5pD,OAExDsoB,IACDA,EAAQztB,KAAK42R,oBAEL,MAAR7nO,GAAgB/uD,KAAKwsS,kBAAkBz9O,EAAKx4C,MAC5CkX,EAAQ,QAGZ4wR,EAAYA,GAAa9wB,EAAU3hP,MACnC0yQ,EAAUA,GAAW/wB,EAAU5hP,KAE/B,IAAI+yQ,EAAO5rK,EAAS5uI,EAAG5E,GAEnBU,KAAKw4R,2BAA6Bx4R,KAAKu2R,GAAG7gM,MAAQ,KAClDujD,EAAIo+J,UAAYr3S,KAAK+5R,kBAAoB,GAE7C9gJ,EAAI0lK,SAAW,SACfF,EAAeA,GAAgB,GACZ,IACfxlK,EAAIo+J,UAAY,IAIpBp+J,EAAI09J,YACJ,IAAK,IAAI74S,EAAI,EAAGA,EAAI2gT,EAAc3gT,GAAK,EAAG,CACtC,IAAI8gT,EAA2C,GAAhC9gT,EAAyB,IAApB2gT,EAAe,IAEnC,GAAIz+S,KAAK+4R,mBAAqBxL,EAAUkD,YAAa,CACjDx3I,EAAI8mE,OAAO77M,EAAE,GAAIA,EAAE,GAAK06S,GACxB,IAAIC,EAAiB,EACjBC,EAAiB,EACjBC,EAAe,EACfC,EAAe,EACnB,OAAQX,GACJ,KAAK9wB,EAAU5hP,KACXkzQ,GAAyB,IAARH,EACjB,MACJ,KAAKnxB,EAAU3hP,MACXizQ,EAAwB,IAAPH,EACjB,MACJ,KAAKnxB,EAAU6C,GACX0uB,GAAyB,IAARJ,EACjB,MACJ,KAAKnxB,EAAU8C,KACXyuB,EAAwB,IAAPJ,EAGzB,OAAQJ,GACJ,KAAK/wB,EAAU5hP,KACXozQ,GAAuB,IAARL,EACf,MACJ,KAAKnxB,EAAU3hP,MACXmzQ,EAAsB,IAAPL,EACf,MACJ,KAAKnxB,EAAU6C,GACX4uB,GAAuB,IAARN,EACf,MACJ,KAAKnxB,EAAU8C,KACX2uB,EAAsB,IAAPN,EAGvBzlK,EAAIgmK,cACA/6S,EAAE,GAAK26S,EACP36S,EAAE,GAAK46S,EAAiBF,EACxBt/S,EAAE,GAAKy/S,EACPz/S,EAAE,GAAK0/S,EAAeJ,EACtBt/S,EAAE,GACFA,EAAE,GAAKs/S,QAER,GAAI5+S,KAAK+4R,mBAAqBxL,EAAUiD,YAAa,CACxDv3I,EAAI8mE,OAAO77M,EAAE,GAAIA,EAAE,GAAK06S,GACpBC,EAAiB,EACjBC,EAAiB,EACjBC,EAAe,EACfC,EAAe,EACnB,OAAQX,GACJ,KAAK9wB,EAAU5hP,KACXkzQ,GAAkB,EAClB,MACJ,KAAKtxB,EAAU3hP,MACXizQ,EAAiB,EACjB,MACJ,KAAKtxB,EAAU6C,GACX0uB,GAAkB,EAClB,MACJ,KAAKvxB,EAAU8C,KACXyuB,EAAiB,EAGzB,OAAQR,GACJ,KAAK/wB,EAAU5hP,KACXozQ,GAAgB,EAChB,MACJ,KAAKxxB,EAAU3hP,MACXmzQ,EAAe,EACf,MACJ,KAAKxxB,EAAU6C,GACX4uB,GAAgB,EAChB,MACJ,KAAKzxB,EAAU8C,KACX2uB,EAAe,EAIvB/lK,EAAIu+J,OACAtzS,EAAE,GAFE,GAEG26S,EACP36S,EAAE,GAHE,GAGG46S,EAAqBF,GAEhC3lK,EAAIu+J,OACAl4S,EAAE,GANE,GAMGy/S,EACPz/S,EAAE,GAPE,GAOG0/S,EAAmBJ,GAE9B3lK,EAAIu+J,OAAOl4S,EAAE,GAAIA,EAAE,GAAKs/S,OACrB,IAAI5+S,KAAK+4R,mBAAqBxL,EAAUgD,cAsB3C,OArBAt3I,EAAI8mE,OAAO77M,EAAE,GAAIA,EAAE,IACnB,IAAIg7S,EAAUh7S,EAAE,GACZi7S,EAAUj7S,EAAE,GACZk7S,EAAQ9/S,EAAE,GACV+/S,EAAQ//S,EAAE,GACV++S,GAAa9wB,EAAU3hP,MACvBszQ,GAAW,GAEXC,GAAW,GAEXb,GAAW/wB,EAAU5hP,KACrByzQ,GAAS,GAETC,GAAS,GAEbpmK,EAAIu+J,OAAO0H,EAASC,GACpBlmK,EAAIu+J,OAA2B,IAAnB0H,EAAUE,GAAcD,GACpClmK,EAAIu+J,OAA2B,IAAnB0H,EAAUE,GAAcC,GACpCpmK,EAAIu+J,OAAO4H,EAAOC,GAClBpmK,EAAIu+J,OAAOl4S,EAAE,GAAIA,EAAE,KAQvBU,KAAKw4R,2BACLx4R,KAAKu2R,GAAG7gM,MAAQ,KACf6oN,IAEDtlK,EAAI6+J,YAAc,kBAClB7+J,EAAI6hK,UAGR7hK,EAAIo+J,UAAYr3S,KAAK+5R,kBACrB9gJ,EAAI4+J,UAAY5+J,EAAI6+J,YAAcrqR,EAClCwrH,EAAI6hK,SAGJ,IAAInoQ,EAAM3yC,KAAKs/S,uBAAuBp7S,EAAG5E,EAAG,GAAK++S,EAAWC,GAO5D,GANIvvP,GAAQA,EAAK+9G,OACb/9G,EAAK+9G,KAAK,GAAKn6H,EAAI,GACnBoc,EAAK+9G,KAAK,GAAKn6H,EAAI,IAKnB3yC,KAAKu2R,GAAG7gM,OAAS,IACjB11F,KAAKk3R,oBACLonB,GAAW/wB,EAAU+C,OACvB,CAEE,GAAItwR,KAAK04R,yBAA0B,CAE/B,IAAI6mB,EAAOv/S,KAAKs/S,uBACZp7S,EACA5E,EACA,IACA++S,EACAC,GAEAkB,EAAOx/S,KAAKs/S,uBACZp7S,EACA5E,EACA,IACA++S,EACAC,GAEAmB,EAAOz/S,KAAKs/S,uBACZp7S,EACA5E,EACA,IACA++S,EACAC,GAEAoB,EAAO1/S,KAAKs/S,uBACZp7S,EACA5E,EACA,IACA++S,EACAC,GAIAqB,EAAS,EACTC,EAAS,EACT5/S,KAAKy4R,2BACLknB,GAAUjoS,KAAKmoS,MAAML,EAAK,GAAKD,EAAK,GAAIC,EAAK,GAAKD,EAAK,IACvDK,GAAUloS,KAAKmoS,MAAMH,EAAK,GAAKD,EAAK,GAAIC,EAAK,GAAKD,EAAK,KAEvDG,EAASD,EAASrgT,EAAE,GAAK4E,EAAE,GAAK,EAAIwT,KAAKigS,GAI7C1+J,EAAIr9D,OACJq9D,EAAIqyJ,UAAUiU,EAAK,GAAIA,EAAK,IAC5BtmK,EAAI6mK,OAAOH,GACX1mK,EAAI09J,YACJ19J,EAAI8mE,QAAQ,GAAI,GAChB9mE,EAAIu+J,OAAO,EAAG,GACdv+J,EAAIu+J,OAAO,GAAK,GAChBv+J,EAAI2+J,OACJ3+J,EAAIu9J,UACJv9J,EAAIr9D,OACJq9D,EAAIqyJ,UAAUmU,EAAK,GAAIA,EAAK,IAC5BxmK,EAAI6mK,OAAOF,GACX3mK,EAAI09J,YACJ19J,EAAI8mE,QAAQ,GAAI,GAChB9mE,EAAIu+J,OAAO,EAAG,GACdv+J,EAAIu+J,OAAO,GAAK,GAChBv+J,EAAI2+J,OACJ3+J,EAAIu9J,UAIRv9J,EAAI09J,YACJ19J,EAAIy+J,IAAI/kQ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAa,EAAVj7B,KAAKigS,IACnC1+J,EAAI2+J,OAIR,GAAI4G,EAAM,CACNvlK,EAAI4+J,UAAYpqR,EAChB,IAAS3vB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAI2E,GAA2B,KAAtB8qR,EAAUrlR,UAAwB,GAAJpK,GAAW,EAC9C60C,EAAM3yC,KAAKs/S,uBACXp7S,EACA5E,EACAmD,EACA47S,EACAC,GAEJrlK,EAAI09J,YACJ19J,EAAIy+J,IAAI/kQ,EAAI,GAAIA,EAAI,GAAI,EAAG,EAAG,EAAIj7B,KAAKigS,IACvC1+J,EAAI2+J,UAMhBzhB,EAAaz3R,UAAU4gT,uBAAyB,SAC5Cp7S,EACA5E,EACAe,EACAg+S,EACAC,GAEAD,EAAYA,GAAa9wB,EAAU3hP,MACnC0yQ,EAAUA,GAAW/wB,EAAU5hP,KAE/B,IAAI+yQ,EAAO5rK,EAAS5uI,EAAG5E,GACnBygT,EAAK77S,EACL87S,EAAK,CAAC97S,EAAE,GAAIA,EAAE,IACd+7S,EAAK,CAAC3gT,EAAE,GAAIA,EAAE,IACd4gT,EAAK5gT,EAET,OAAQ++S,GACJ,KAAK9wB,EAAU5hP,KACXq0Q,EAAG,KAAc,IAARtB,EACT,MACJ,KAAKnxB,EAAU3hP,MACXo0Q,EAAG,IAAa,IAAPtB,EACT,MACJ,KAAKnxB,EAAU6C,GACX4vB,EAAG,KAAc,IAARtB,EACT,MACJ,KAAKnxB,EAAU8C,KACX2vB,EAAG,IAAa,IAAPtB,EAGjB,OAAQJ,GACJ,KAAK/wB,EAAU5hP,KACXs0Q,EAAG,KAAc,IAARvB,EACT,MACJ,KAAKnxB,EAAU3hP,MACXq0Q,EAAG,IAAa,IAAPvB,EACT,MACJ,KAAKnxB,EAAU6C,GACX6vB,EAAG,KAAc,IAARvB,EACT,MACJ,KAAKnxB,EAAU8C,KACX4vB,EAAG,IAAa,IAAPvB,EAIjB,IAAIyB,GAAM,EAAI9/S,IAAM,EAAIA,IAAM,EAAIA,GAC9B+/S,GAAW,EAAI//S,IAAM,EAAIA,GAApB,EAA0BA,EAC/BggT,EAAK,GAAK,EAAIhgT,IAAMA,EAAIA,GACxBigT,EAAKjgT,EAAIA,EAAIA,EAIjB,MAAO,CAFC8/S,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,GAC/CC,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,GAAKK,EAAKJ,EAAG,KAI3D/pB,EAAaz3R,UAAUw4S,mBAAqB,SAASj+J,GACjDA,EAAI8mD,YAAc,cAClB9mD,EAAIo/J,YAAc,IAElBp/J,EAAIs/J,UAAY,SAChBt/J,EAAI6+J,YAAc,QAClB7+J,EAAIo/J,YAAc,IAGlB,IADA,IAAIhM,EAAgBrsS,KAAKqsS,cAChBvuS,EAAI,EAAGA,EAAIuuS,EAActuS,SAAUD,EAAG,CAC3C,IAAI8G,EAAOynS,EAAcvuS,GACzBm7I,EAAI4+J,UAAY,QAChB5+J,EAAI2gK,SACAh1S,EAAK+tC,IAAI,GAAK46O,EAAUG,kBACxB9oR,EAAK+tC,IAAI,GAAK46O,EAAUG,kBACxBH,EAAUG,kBACVH,EAAUG,mBAEI,GAAd9oR,EAAKutB,OACL8mH,EAAI8+J,WACAnzS,EAAK+tC,IAAI,GAAK46O,EAAUG,kBAAoB,GAC5C9oR,EAAK+tC,IAAI,GAAK46O,EAAUG,kBAAoB,GAC5CH,EAAUG,kBACVH,EAAUG,mBAGlBz0I,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SACA5zS,EAAKutB,MACLvtB,EAAK+tC,IAAI,IAAoC,GAA/B46O,EAAUG,kBACxB9oR,EAAK+tC,IAAI,GAAK,GAGtBsmG,EAAIo/J,YAAc,GAOtBliB,EAAaz3R,UAAUs8S,gBAAkB,SACrCp2S,EACA27S,EACAtnK,EACAunK,GAEA,IAAK57S,EAAKw/R,UAAYx/R,EAAKw/R,QAAQrmS,OAC/B,OAAO,EAEX,IAAI8M,EAAQjG,EAAK6H,KAAK,GAClB23R,EAAUx/R,EAAKw/R,QACnBmc,GAAQ,EACR,IAAIE,EAAIlzB,EAAUM,mBACd6yB,EAAY1gT,KAAKu2R,GAAG7gM,MAAQ,GAChCujD,EAAIr9D,OACJq9D,EAAIo/J,YAAcr4S,KAAKo3R,aAOvB,IANA,IAAIupB,EAAgBpzB,EAAUwB,qBAC1B6xB,EAAmBrzB,EAAUuB,eAC7B+xB,EAAatzB,EAAUyB,kBAC7B8xB,EAAuBvzB,EAAU0B,4BAC3B9hR,EAAS,GAEJrP,EAAI,EAAGA,EAAIsmS,EAAQrmS,SAAUD,EAAG,CACrC,IAAIkyG,EAAIo0L,EAAQtmS,GACZ4E,EAAI69S,EACJvwM,EAAEttG,IACFA,EAAIstG,EAAEttG,GAEVstG,EAAE+wM,OAASr+S,EACXu2I,EAAI6+J,YAAc6I,EAClB1nK,EAAI4+J,UAAY,OAChB5+J,EAAIs/J,UAAY,OAEtBvoM,EAAEsvH,WACJrmF,EAAIo/J,aAAe,IACpB,IAAI2I,EAAehxM,EAAEnlG,OAASA,EAErB,OAAQmlG,EAAE7qG,MACN,IAAK,SACG6qG,EAAEipM,UACFhgK,EAAI4+J,UAAY,OAChB7nM,EAAEipM,SAAU,EACZj5S,KAAK0sS,cAAe,GAExBzzJ,EAAI2gK,SAASzsS,EAAQzK,EAAGs+S,EAAe7zS,GAAYszS,GAC/DC,IAAc1wM,EAAEsvH,UACHrmF,EAAI8+J,WAAY5qS,EAAQzK,EAAGs+S,EAAe7zS,GAAYszS,GACnDC,IACAznK,EAAIs/J,UAAY,SAChBt/J,EAAI4+J,UAAYgJ,EAChB5nK,EAAIu/J,SAASxoM,EAAEp5F,KAAqB,GAAfoqS,EAAoBt+S,EAAQ,GAAJ+9S,IAEjD,MACJ,IAAK,SACDxnK,EAAIs/J,UAAY,OAChBt/J,EAAI6+J,YAAc6I,EAClB1nK,EAAI4+J,UAAY+I,EAChB3nK,EAAI09J,YACA+J,EACHznK,EAAIq/J,UAAUnrS,EAAQozS,EAAMS,EAAe7zS,GAAYszS,EAAO,GAAJA,GAE1DxnK,EAAIyxJ,KAAKv9R,EAAQozS,EAAMS,EAAe7zS,GAAYszS,GACnDxnK,EAAI2+J,OAChB8I,IAAc1wM,EAAEsvH,UACHrmF,EAAI6hK,SACL7hK,EAAI4+J,UAAY7nM,EAAEhuG,MAAQ,OAAS,OACnCi3I,EAAI09J,YACJ19J,EAAIy+J,IAAKsJ,EAAe7zS,GAAYzK,EAAQ,GAAJ+9S,EAAa,IAAJA,EAAU,EAAa,EAAV/oS,KAAKigS,IACnE1+J,EAAI2+J,OACA8I,IACAznK,EAAI4+J,UAAYiJ,EACF,MAAV9wM,EAAEp5F,MACFqiI,EAAIu/J,SAASxoM,EAAEp5F,KAAMzJ,GAAYzK,EAAQ,GAAJ+9S,GAEzCxnK,EAAI4+J,UAAY7nM,EAAEhuG,MAAQ6+S,EAAaC,EACvC7nK,EAAIs/J,UAAY,QAChBt/J,EAAIu/J,SACAxoM,EAAEhuG,MACIguG,EAAE3qG,QAAQ40B,IAAM,OAChB+1E,EAAE3qG,QAAQ47S,KAAO,QACvBD,EAAe,GACft+S,EAAQ,GAAJ+9S,IAGZ,MACJ,IAAK,SACDxnK,EAAI4+J,UAAY+I,EAChB3nK,EAAI2gK,SAASzsS,EAAQzK,EAAGs+S,EAAe7zS,GAAYszS,GACnD,IAAI5hS,EAAQmxF,EAAE3qG,QAAQsS,IAAMq4F,EAAE3qG,QAAQqa,IAClCwhS,GAAUlxM,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,KAAOb,EAKzC,GAJAo6H,EAAI4+J,UAAY2I,GAAiBxwM,EAAI,OAAS,OAC9CipC,EAAI2gK,SAASzsS,EAAQzK,EAAGw+S,GAAUF,EAAe7zS,IAAaszS,GAC1EC,IAAc1wM,EAAEsvH,UACHrmF,EAAI8+J,WAAW5qS,EAAQzK,EAAGs+S,EAAe7zS,GAAYszS,GAClDzwM,EAAEi1I,OAAQ,CACV,IAAIk8D,GAAiBnxM,EAAEi1I,OAASj1I,EAAE3qG,QAAQqa,KAAOb,EACjDo6H,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAUzsS,EAASg0S,GAAiBH,EAAe7zS,IAAazK,EAAG,EAAG+9S,GAE1EC,IACAznK,EAAIs/J,UAAY,SAChBt/J,EAAI4+J,UAAYgJ,EAChB5nK,EAAIu/J,SACAxoM,EAAEp5F,KAAO,KAAOm2G,OAAO/c,EAAEhuG,OAAOg5B,QAAQ,GACzB,GAAfgmR,EACAt+S,EAAQ,GAAJ+9S,IAGZ,MACJ,IAAK,SACL,IAAK,QAUD,GATAxnK,EAAIs/J,UAAY,OAChBt/J,EAAI6+J,YAAc6I,EAClB1nK,EAAI4+J,UAAY+I,EAChB3nK,EAAI09J,YAChB+J,EACaznK,EAAIq/J,UAAUnrS,EAAQozS,EAAMS,EAAe7zS,GAAYszS,EAAO,GAAJA,GAE1DxnK,EAAIyxJ,KAAKv9R,EAAQozS,EAAMS,EAAe7zS,GAAYszS,GACnDxnK,EAAI2+J,OACA8I,EAqBA,GApBd1wM,EAAEsvH,UACUrmF,EAAI6hK,SACF7hK,EAAI4+J,UAAYgJ,EAC9B7wM,EAAEsvH,WAELrmF,EAAI09J,YACJ19J,EAAI8mE,OAAO5yM,GAAaozS,EAAO,GAC/BtnK,EAAIu+J,OAAOrqS,GAAYozS,EAAW,GAAJE,GAC9BxnK,EAAIu+J,OAAOrqS,GAAaozS,EAAOE,EAAI,GACnCxnK,EAAI2+J,OACJ3+J,EAAI09J,YACJ19J,EAAI8mE,OAAOihG,EAAe7zS,EAAS,GAAIozS,EAAO,GAC9CtnK,EAAIu+J,OAAOwJ,EAAe7zS,EAAS,EAAGozS,EAAW,GAAJE,GAC7CxnK,EAAIu+J,OAAOwJ,EAAe7zS,EAAS,GAAIozS,EAAOE,EAAI,GAClDxnK,EAAI2+J,QAEa3+J,EAAI4+J,UAAYiJ,EAChB7nK,EAAIu/J,SAASxoM,EAAEp5F,KAAMzJ,GAAgBzK,EAAQ,GAAJ+9S,GACzCxnK,EAAI4+J,UAAYgJ,EAChB5nK,EAAIs/J,UAAY,QACF,UAAVvoM,EAAE7qG,KACF8zI,EAAIu/J,SACAzrL,OAAO/c,EAAEhuG,OAAOg5B,aACYnhB,IAAxBm2F,EAAE3qG,QAAQ+7S,UACJpxM,EAAE3qG,QAAQ+7S,UACV,GAEVJ,EAAe7zS,GAAa,GAC5BzK,EAAQ,GAAJ+9S,OAEL,CACxB,IAAIr9S,EAAI4sG,EAAEhuG,MACV,GAAIguG,EAAE3qG,QAAQmY,OACd,CACC,IAAIA,EAASwyF,EAAE3qG,QAAQmY,OACnBA,EAAOvd,cAAgBiyK,WAC1B10J,EAASA,KACPA,GAAUA,EAAOvd,cAAgBR,QACnC2D,EAAIoa,EAAQwyF,EAAEhuG,QAEKi3I,EAAIu/J,SACAp1S,EACA49S,EAAe7zS,GAAa,GAC5BzK,EAAQ,GAAJ+9S,GAIhB,MACJ,IAAK,SACL,IAAK,OACDxnK,EAAIs/J,UAAY,OAChBt/J,EAAI6+J,YAAc6I,EAClB1nK,EAAI4+J,UAAY+I,EAChB3nK,EAAI09J,YACA+J,EACHznK,EAAIq/J,UAAUnrS,EAAQozS,EAAMS,EAAe7zS,GAAYszS,EAAO,GAAJA,GAE1DxnK,EAAIyxJ,KAAMv9R,EAAQozS,EAAMS,EAAe7zS,GAAYszS,GACpDxnK,EAAI2+J,OACH8I,IACX1wM,EAAEsvH,UACLrmF,EAAI6hK,SACF7hK,EAAIr9D,OACPq9D,EAAI09J,YACJ19J,EAAIyxJ,KAAKv9R,EAAQozS,EAAMS,EAAe7zS,GAAYszS,GAClDxnK,EAAI29J,OAGc39J,EAAI4+J,UAAYiJ,EACF,MAAV9wM,EAAEp5F,MACFqiI,EAAIu/J,SAASxoM,EAAEp5F,KAAMzJ,GAAYzK,EAAQ,GAAJ+9S,GAEzCxnK,EAAI4+J,UAAYgJ,EAChB5nK,EAAIs/J,UAAY,QAChBt/J,EAAIu/J,SAAS14S,OAAOkwG,EAAEhuG,OAAOmnC,OAAO,EAAE,IAAK63Q,EAAe7zS,GAAYzK,EAAQ,GAAJ+9S,GAC5FxnK,EAAIu9J,WAEU,MACJ,QACQxmM,EAAEggM,MACFhgM,EAAEggM,KAAK/2J,EAAKr0I,EAAMo8S,EAAct+S,EAAG+9S,GAI/CF,IAASvwM,EAAEijL,YAAcjjL,EAAEijL,YAAY+tB,GAAc,GAAKP,GAAK,EACxExnK,EAAIo/J,YAAcr4S,KAAKo3R,aAGlBn+I,EAAIu9J,UACVv9J,EAAIs/J,UAAY,QAOdpiB,EAAaz3R,UAAUkzS,mBAAqB,SACxChtS,EACA+tC,EACAh+B,EACA6rS,GAEA,IAAK57S,EAAKw/R,UAAYx/R,EAAKw/R,QAAQrmS,OAC/B,OAAO,KASX,IANA,IAAIke,EAAI02B,EAAI,GAAK/tC,EAAK+tC,IAAI,GACtBjwC,EAAIiwC,EAAI,GAAK/tC,EAAK+tC,IAAI,GACtB9nC,EAAQjG,EAAK6H,KAAK,GAClB+wQ,EAAOx9Q,KACPqwS,EAAarwS,KAAK0uS,kBAEb5wS,EAAI,EAAGA,EAAI8G,EAAKw/R,QAAQrmS,SAAUD,EAAG,CAC1C,IAAIkyG,EAAIprG,EAAKw/R,QAAQtmS,GAC9B,GAAIkyG,IAAKA,EAAEsvH,SAAX,CAEA,IAAI+hF,EAAgBrxM,EAAEijL,YAAcjjL,EAAEijL,YAAYpoR,GAAO,GAAK0iR,EAAUM,mBACpEmzB,EAAehxM,EAAEnlG,OAASA,EAE9B,GAAKmlG,GAAKwwM,KACRvkS,EAAI,GAAKA,EAAI+kS,EAAe,IAAMt+S,EAAIstG,EAAE+wM,QAAUr+S,EAAIstG,EAAE+wM,OAASM,QAA8BxnS,IAAbm2F,EAAE+wM,QADtF,CAIA,IAAIO,EAAYtxM,EAAEhuG,MAIlB,OAAQguG,EAAE7qG,MACT,IAAK,SACe,cAAfwP,EAAMxP,OACa6qG,EAAEvoG,UACFO,YAAW,WACPgoG,EAAEvoG,SAASuoG,EAAGwtK,EAAM54Q,EAAM+tC,EAAKh+B,KAChC,IAEPq7F,EAAEipM,SAAU,EACZj5S,KAAK0sS,cAAe,GAEvC,MACD,IAAK,SACQ18L,EAAE3qG,QAAQsS,IAAMq4F,EAAE3qG,QAAQqa,IAAtC,IACIwhS,EAASxpS,KAAKw6E,OAAOj2E,EAAI,KAAO+kS,EAAe,IAAK,EAAG,GAC3DhxM,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,KAAOswF,EAAE3qG,QAAQsS,IAAMq4F,EAAE3qG,QAAQqa,KAAOwhS,EACxDlxM,EAAEvoG,UACLO,YAAW,WACVu5S,EAAmBvxM,EAAGA,EAAEhuG,SACtB,IAEJhC,KAAK0sS,cAAe,EACpB,MACD,IAAK,SACL,IAAK,QACA4U,EAAYtxM,EAAEhuG,MAClB,GAAkB,aAAd2S,EAAMxP,MAAiC,UAAV6qG,EAAE7qG,KAClC6qG,EAAEhuG,OAAwB,GAAf2S,EAAM2oJ,QAAgBttD,EAAE3qG,QAAQpD,MAAQ,GAC7B,MAAjB+tG,EAAE3qG,QAAQqa,KAAeswF,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,MACjDswF,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,KAEC,MAAjBswF,EAAE3qG,QAAQsS,KAAeq4F,EAAEhuG,MAAQguG,EAAE3qG,QAAQsS,MACjDq4F,EAAEhuG,MAAQguG,EAAE3qG,QAAQsS,UAEf,GAAkB,aAAdhD,EAAMxP,KAAqB,CACrC,IAAIqY,EAASwyF,EAAE3qG,QAAQmY,OACnBA,GAAUA,EAAOvd,cAAgBiyK,WACpC10J,EAASwyF,EAAE3qG,QAAQmY,OAAOwyF,EAAGprG,IAE9B,IAAI48S,EAAc,KAEJ,UAAVxxM,EAAE7qG,OACLq8S,EAAchkS,EAAOvd,cAAgBR,MAAQ+d,EAASpf,OAAOsY,KAAK8G,IAEnE,IAAIm6C,EAAQ17C,EAAI,IAAM,EAAIA,EAAI+kS,EAAe,GAAK,EAAI,EACtD,GAAc,UAAVhxM,EAAE7qG,KACL6qG,EAAEhuG,OAAiB,GAAR21D,GAAeq4C,EAAE3qG,QAAQpD,MAAQ,GACtB,MAAjB+tG,EAAE3qG,QAAQqa,KAAeswF,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,MACjDswF,EAAEhuG,MAAQguG,EAAE3qG,QAAQqa,KAEC,MAAjBswF,EAAE3qG,QAAQsS,KAAeq4F,EAAEhuG,MAAQguG,EAAE3qG,QAAQsS,MACjDq4F,EAAEhuG,MAAQguG,EAAE3qG,QAAQsS,UAEf,GAAIggD,EAAO,CACjB,IAAI14D,GAAS,EACbe,KAAK8sS,gBAAkB,GAEtB7tS,EADEue,EAAOvd,cAAgB7B,OACjBojT,EAAY5gT,QAASd,OAAQkwG,EAAEhuG,QAAY21D,EAE3C6pP,EAAY5gT,QAASovG,EAAEhuG,OAAU21D,IAC7B6pP,EAAYzjT,SACxBkB,EAAQuiT,EAAYzjT,OAAS,GAE1BkB,EAAQ,IACXA,EAAQ,GAELue,EAAOvd,cAAgBR,MAC1BuwG,EAAEhuG,MAAQwb,EAAOve,GAEjB+wG,EAAEhuG,MAAQ/C,MACL,KACFwiT,EAAcjkS,GAAUgkS,EAAcpjT,OAAOof,OAAOA,GAAUA,EACvD,IAAI+vQ,EAAUsvB,YAAY4E,EAAa,CAChD/rN,MAAOh+E,KAAKC,IAAI,EAAG3X,KAAKu2R,GAAG7gM,OAC3B/gF,MAAOA,EACP6B,UAAW,OACX/O,SAGF,SAAuBrE,EAAGurF,EAAQh6E,GAMjC,OALG6I,GAAUgkS,IACZp+S,EAAIq+S,EAAY7gT,QAAQwC,IACzBpD,KAAKgC,MAAQoB,EACbm+S,EAAmBvhT,KAAMoD,GACzBo6Q,EAAKkvB,cAAe,GACb,GATkBtxO,KAAK40C,IAE9BqgM,SAWE,GAAiB,WAAd17R,EAAMxP,MAA+B,UAAV6qG,EAAE7qG,KACrC,CACKwyD,EAAQ17C,EAAI,IAAM,EAAIA,EAAI+kS,EAAe,GAAK,EAAI,EAClDrsS,EAAMw+R,WAAa,KAAgB,GAATx7O,GAC7B33D,KAAKioQ,OAAO,QAAQj4J,EAAEhuG,MAAM,SAASoB,GACnCpD,KAAKgC,MAAQ+qH,OAAO3pH,GACpBm+S,EAAmBvhT,KAAMA,KAAKgC,QAC7Bo5D,KAAK40C,GACPr7F,GAIC2sS,GAAatxM,EAAEhuG,OAClBgG,WACC,WACCu5S,EAAmBvhT,KAAMA,KAAKgC,QAC7Bo5D,KAAK40C,GACP,IAEFhwG,KAAK0sS,cAAe,EACpB,MACD,IAAK,SACc,aAAd/3R,EAAMxP,OACT6qG,EAAEhuG,OAASguG,EAAEhuG,MACbgG,YAAW,WACVu5S,EAAmBvxM,EAAGA,EAAEhuG,SACtB,KAEJ,MACD,IAAK,SACL,IAAK,OACc,aAAd2S,EAAMxP,MACTnF,KAAKioQ,OAAO,QAAQj4J,EAAEhuG,MAAM,SAASoB,GACnCpD,KAAKgC,MAAQoB,EACbm+S,EAAmBvhT,KAAMoD,IACxBg4D,KAAK40C,GACPr7F,IAAMq7F,EAAE3qG,SAAU2qG,EAAE3qG,QAAQ87B,WAE9B,MACD,QACK6uE,EAAEgpL,QACLh5R,KAAK0sS,aAAe18L,EAAEgpL,MAAMrkR,EAAO,CAACsH,EAAGvZ,GAAIkC,IAa9C,OAPI08S,GAAatxM,EAAEhuG,QAEf4C,EAAK88S,iBACP98S,EAAK88S,gBAAiB1xM,EAAEp5F,KAAKo5F,EAAEhuG,MAAMs/S,EAAUtxM,GACpCprG,EAAK6yE,MAAM0jN,YAGjBnrL,IAGF,SAASuxM,EAAmBvkI,EAAQh7K,GAChCg7K,EAAOh7K,MAAQA,EACVg7K,EAAO33K,SAAW23K,EAAO33K,QAAQ+nC,eAAyDvzB,IAA7CjV,EAAKsc,WAAW87J,EAAO33K,QAAQ+nC,WAC7ExoC,EAAK+/R,YAAa3nH,EAAO33K,QAAQ+nC,SAAUprC,GAE3Cg7K,EAAOv1K,UACPu1K,EAAOv1K,SAASu1K,EAAOh7K,MAAOw7Q,EAAM54Q,EAAM+tC,EAAKh+B,GAIvD,OAAO,MAOXwhR,EAAaz3R,UAAUm7S,WAAa,SAASzjB,EAAQn9I,GACjD,GAAKj5I,KAAKy3E,MAAV,CAIA,IAAI4V,EAASrtF,KAAKy3E,MAAMgkN,QAExBxiJ,EAAIr9D,OACJq9D,EAAIo/J,YAAc,GAAMr4S,KAAKo3R,aAE7B,IAAK,IAAIt5R,EAAI,EAAGA,EAAIuvF,EAAOtvF,SAAUD,EAAG,CACpC,IAAIi0B,EAAQs7D,EAAOvvF,GAEnB,GAAKqsS,EAAgBnqS,KAAKi2R,aAAclkQ,EAAM63Q,WAA9C,CAIA3wJ,EAAI4+J,UAAY9lR,EAAMtE,OAAS,OAC/BwrH,EAAI6+J,YAAc/lR,EAAMtE,OAAS,OACjC,IAAIklB,EAAM5gB,EAAM+6I,KACZrgK,EAAOslB,EAAM09I,MACjBx2B,EAAIo/J,YAAc,IAAOr4S,KAAKo3R,aAC9Bn+I,EAAI09J,YACJ19J,EAAIyxJ,KAAK/3P,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKlmC,EAAK,GAAIA,EAAK,IACnDwsI,EAAI2+J,OACJ3+J,EAAIo/J,YAAcr4S,KAAKo3R,aACvBn+I,EAAI6hK,SAEJ7hK,EAAI09J,YACJ19J,EAAI8mE,OAAOptK,EAAI,GAAKlmC,EAAK,GAAIkmC,EAAI,GAAKlmC,EAAK,IAC3CwsI,EAAIu+J,OAAO7kQ,EAAI,GAAKlmC,EAAK,GAAK,GAAIkmC,EAAI,GAAKlmC,EAAK,IAChDwsI,EAAIu+J,OAAO7kQ,EAAI,GAAKlmC,EAAK,GAAIkmC,EAAI,GAAKlmC,EAAK,GAAK,IAChDwsI,EAAI2+J,OAEJ,IAAIhR,EACA70Q,EAAM60Q,WAAarZ,EAAUo0B,wBACjC1oK,EAAIpkF,KAAO+xO,EAAY,WACvB3tJ,EAAIu/J,SAASzmR,EAAME,MAAO0gB,EAAI,GAAK,EAAGA,EAAI,GAAKi0P,IAGnD3tJ,EAAIu9J,YAGRrgB,EAAaz3R,UAAUkjT,gBAAkB,WAErC,IADA,IAAInnM,EAAQz6G,KAAKy3E,MAAM2jN,OACdt9R,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EAChC28G,EAAM38G,GAAG2O,KAAOguG,EAAM38G,GAAGm1R,cAE7BjzR,KAAKktS,UAAS,GAAM,IAOxB/W,EAAaz3R,UAAU6zS,OAAS,SAAS1nS,EAAOC,GAC5C,IAAKD,IAAUC,EAAQ,CACnB,IAAIwK,EAAStV,KAAKo2R,OAAOjvR,WACzB0D,EAAQyK,EAAOhI,YACfxC,EAASwK,EAAOrH,aAGhBjO,KAAKo2R,OAAOvrR,OAASA,GAAS7K,KAAKo2R,OAAOtrR,QAAUA,IAIxD9K,KAAKo2R,OAAOvrR,MAAQA,EACpB7K,KAAKo2R,OAAOtrR,OAASA,EACrB9K,KAAK+tS,SAASljS,MAAQ7K,KAAKo2R,OAAOvrR,MAClC7K,KAAK+tS,SAASjjS,OAAS9K,KAAKo2R,OAAOtrR,OACnC9K,KAAKktS,UAAS,GAAM,KAQxB/W,EAAaz3R,UAAUmjT,eAAiB,SAASC,GAC7C,IAAKA,EAID,OAHA9hT,KAAKy3R,WAAaz3R,KAAKy3R,UACvBz3R,KAAK0sS,cAAe,OACpB1sS,KAAK2sS,gBAAiB,GAI1B,IAAIjlS,EAAO1H,KACP23D,EAAQ33D,KAAKy3R,UAAY,IAAM,GAC/Bz3R,KAAKy3R,YACLz3R,KAAKy3R,WAAY,EACjBz3R,KAAKo3R,aAAe,IAGxB,IAAI/2R,EAAIwhE,aAAY,WAChBn6D,EAAK0vR,cAAgBz/N,EACrBjwD,EAAKglS,cAAe,EACpBhlS,EAAKilS,gBAAiB,EAElBh1O,EAAQ,GAAKjwD,EAAK0vR,aAAe,MACjCz1N,cAActhE,GACVs3D,EAAQ,IACRjwD,EAAK+vR,WAAY,IAGrB9/N,EAAQ,GAAKjwD,EAAK0vR,aAAe,MACjCz1N,cAActhE,GACdqH,EAAK0vR,aAAe,KAEzB,IAGPjB,EAAaz3R,UAAUqjT,sBAAwB,SAASn9S,KAIxDuxR,EAAaz3R,UAAUswS,aAAe,SAASr6R,GAE3C,IACIwsD,EADUxsD,EAAMqoJ,eACA,GAChB73J,EAAO,GAEX,OAAQwP,EAAMxP,MACV,IAAK,aACDA,EAAO,YACP,MACJ,IAAK,YACDA,EAAO,YACP,MACJ,IAAK,WACDA,EAAO,UACP,MACJ,QACI,OAOR,IAAIwF,EAAS3K,KAAK0uS,kBAGdsT,EAFWr3S,EAAOP,SAEQuzJ,YAAY,cAC1CqkJ,EAAeC,eACX98S,GACA,GACA,EACAwF,EACA,EACAw2D,EAAM+gP,QACN/gP,EAAMghP,QACNhhP,EAAM2sH,QACN3sH,EAAM4sH,SACN,GACA,GACA,GACA,EACA,EACA,MAEJ5sH,EAAMvjE,OAAOk/J,cAAcklJ,GAC3BrtS,EAAMV,kBAKVkiR,EAAaisB,WAAa,SAASrnR,EAAMs4E,EAAOgvM,GAC5C,IAAIjsB,EAASD,EAAama,cAGtBv+Q,GAFaqkQ,EAAOsY,kBAEZ,IAAInhB,EAAUmI,aAC1B3jQ,EAAM4gB,IAAMyjP,EAAO2f,2BAA2BsM,GAC9CjsB,EAAO3+M,MAAMj+D,IAAIuY,IAGrBokQ,EAAamsB,UAAY,SAAU19S,EAAMS,EAAS1E,EAAG4hT,EAAW96S,GAE5D,IAAI2uR,EAASD,EAAama,cACtBD,EAAaja,EAAOsY,kBACpBj3N,EAAQ2+M,EAAO3+M,MACnB,GAAKA,EA6DL,OA1DA,SAAS+qO,EAAkBC,EAAeF,GAEtC,IAAIlvB,EAAc9F,EAAU6F,uBAAuBgD,EAAOpnQ,QAAUyoD,EAAMzoD,QAAQA,QAAO,SAAS4iQ,GAAU,OAAOA,EAASlxG,WAAW+hI,MACnIx/J,EAAU,GAEdowI,EAAWjxQ,KAAI,SAASwvQ,GAEpB,GAAKA,EAAL,CAGA,IAAI8wB,EAAsB,IAAIrhR,OAAO,KAAOohR,EAAgB,KACxDE,EAAgB/wB,EAAS9yR,QAAQ4jT,EAAoB,IAAIppR,MAAM,KAAK,GACpEspR,EAAmC,KAAnBH,EAAwBE,EAAgB,IAAMF,EAAgBE,EAAgB,IAE9F/rS,EAAO+rS,GACe,GAAvB/rS,EAAKhW,QAAQ,QACZgW,EAAOA,EAAK0iB,MAAM,MAAM,KAGb,IADH2pH,EAAQsgF,WAAU,SAASlwH,GAAO,OAAOA,EAAMrxG,QAAU4gT,MAEjE3/J,EAAQ1/I,KAAK,CAAEvB,MAAO4gT,EAAe1jQ,QAAStoC,EAAMisS,aAAa,EAAMp7S,SAAW,SAASzF,EAAO2S,EAAOmuS,EAAYC,GACjHP,EAAkBxgT,EAAMA,MAAO+gT,UAM/Bx1B,EAAU4F,uBAAuBsvB,EAAc/9S,MAAM,GAAI,GAAI0xR,EAAOpnQ,QAAUyoD,EAAMzoD,QAC1F5M,KAAI,SAASxd,GAEf,IAAIA,EAAK0uR,UAAT,CAGA,IAAIjgL,EAAQ,CAAErxG,MAAO4C,EAAKO,KAAM+5C,QAASt6C,EAAKqtB,MAAO4wR,aAAa,EAAQp7S,SAAW,SAASzF,EAAO2S,EAAOmuS,EAAYC,GAEhH,IAAIC,EAAcD,EAAYE,gBAC9B7sB,EAAO3+M,MAAM8nN,eACb,IAAI36R,EAAO2oR,EAAUwF,WAAW/wR,EAAMA,OAClC4C,IACAA,EAAK+tC,IAAMyjP,EAAO2f,2BAA2BiN,GAC7C5sB,EAAO3+M,MAAMj+D,IAAI5U,IAElB6C,GACCA,EAAS7C,GACbwxR,EAAO3+M,MAAMqoN,gBAKrB78I,EAAQ1/I,KAAK8vG,OAIjB,IAAIk6K,EAAUsvB,YAAa55J,EAAS,CAAEtuI,MAAOhU,EAAGm8S,WAAYyF,GAAalS,GAI7EmS,CAAkB,GAAGD,IACd,GAIXpsB,EAAa+sB,kBAAoB,aAEjC/sB,EAAagtB,eAAiB,aAE9BhtB,EAAaitB,2BAA6B,SACtChgT,EACAiC,EACA1E,EACA4hT,EACA39S,GAEA,GAAKA,EAAL,CAIA,IAAI44Q,EAAOx9Q,KAEPqwS,EADSla,EAAama,cACF5B,kBAEpBrpS,EAAUT,EAAKy+S,gBACfz+S,EAAK0+S,cACLj+S,EAAUT,EAAK0+S,eAGnB,IAAIrgK,EAAU,GACd,GAAI59I,EACA,IAAK,IAAIvH,EAAE,EAAGA,EAAIuH,EAAQtH,OAAQD,IAAK,CACnC,IAAIu1G,EAAQhuG,EAAQvH,GACpB,GAAKu1G,EAAL,CAIA,IAAIxwG,EAAQwwG,EAAM,GACdA,EAAM,IAAMA,EAAM,GAAGxwG,QACrBA,EAAQwwG,EAAM,GAAGxwG,OAErB,IAAI1D,EAAO,CAAE+/C,QAASr8C,EAAOb,MAAOqxG,GAChCA,EAAM,IAAMk6K,EAAUwC,SACtB5wR,EAAKqX,UAAY,SAErBysI,EAAQ1/I,KAAKpE,QAXT8jJ,EAAQ1/I,KAAK,MAmBzB,GAJIvD,KAAKujT,mBACLtgK,EAAUjjJ,KAAKujT,iBAAiBtgK,IAG/BA,EAAQllJ,OAAb,CAKW,IAAIwvR,EAAUsvB,YACrB55J,EACA,CACItuI,MAAOhU,EACP8G,SAOR,SAAuBrE,EAAGzC,EAAGs5G,GACzB,IAAKr1G,EACD,OAGAxB,EAAEqE,UACFrE,EAAEqE,SAAS7H,KAAK49Q,EAAM54Q,EAAMxB,EAAGzC,EAAGs5G,GAGlC72G,EAAEpB,QACd4C,EAAK6yE,MAAM8nN,eACC36R,EAAKm8R,SAAS39R,EAAEpB,MAAM,GAAIoB,EAAEpB,MAAM,GAAIoB,EAAEpB,MAAM,IAC9C4C,EAAKi6R,gBAAe,GAAM,GACtCj6R,EAAK6yE,MAAMqoN,gBAnBCgd,WAAYyF,EACZ39S,KAAMA,GAEVyrS,GAoBJ,OAAO,EAhCZ3yR,QAAQ6oL,IAAI,sBAmCX4vF,EAAaqtB,4BAA8B,SACvCpgT,EACAiC,EACA1E,EACA4hT,EACA39S,GAEA,GAAKA,EAAL,CAIA,IAAI44Q,EAAOx9Q,KAEPqwS,EADSla,EAAama,cACF5B,kBAEpBrpS,EAAUT,EAAK6+S,iBACf7+S,EAAK8+S,eACLr+S,EAAUT,EAAK8+S,gBAGnB,IAAIzgK,EAAU,GACd,GAAI59I,EACA,IAAK,IAAIvH,EAAE,EAAGA,EAAIuH,EAAQtH,OAAQD,IAAK,CACnC,IAAIu1G,EAAQhuG,EAAQvH,GACpB,GAAKu1G,GAML,IACIzuG,EAAK89L,QACL99L,EAAK89L,MAAMihH,wBACuB,GAAlC/+S,EAAK0jS,eAAej1L,EAAM,IAH9B,CAOA,IAAIxwG,EAAQwwG,EAAM,GACdA,EAAM,IAAMA,EAAM,GAAGxwG,QACrBA,EAAQwwG,EAAM,GAAGxwG,OAErB,IAAI1D,EAAO,CAAE+/C,QAASr8C,EAAOb,MAAOqxG,GAChCA,EAAM,IAAMk6K,EAAUuC,QACtB3wR,EAAKqX,UAAY,SAErBysI,EAAQ1/I,KAAKpE,SAnBT8jJ,EAAQ1/I,KAAK,MA2BzB,GAJIvD,KAAK4jT,oBACL3gK,EAAUjjJ,KAAK4jT,kBAAkB3gK,IAGhCA,EAAQllJ,OAAb,CAIW,IAAIwvR,EAAUsvB,YACrB55J,EACA,CACItuI,MAAOhU,EACP8G,SAOR,SAASo8S,EAAczgT,EAAGzC,EAAGs5G,GACzB,IAAKr1G,EACD,OAGAxB,EAAEqE,UACFrE,EAAEqE,SAAS7H,KAAK49Q,EAAM54Q,EAAMxB,EAAGzC,EAAGs5G,GAGtC,IAAK72G,EAAEpB,MACH,OAGJ,IAAIA,EAAQoB,EAAEpB,MAAM,GAEpB,GACIA,IACCA,EAAM/B,cAAgB7B,QAAU4D,EAAM/B,cAAgBR,OACzD,CAEE,IAAIwjJ,EAAU,GACd,IAAK,IAAInlJ,KAAKkE,EACVihJ,EAAQ1/I,KAAK,CAAE27C,QAASphD,EAAGkE,MAAOA,EAAMlE,KAQ5C,OANA,IAAIyvR,EAAUsvB,YAAY55J,EAAS,CAC/BtuI,MAAOhU,EACP8G,SAAUo8S,EACV/G,WAAYyF,EACZ39S,KAAMA,KAEH,EAEnBA,EAAK6yE,MAAM8nN,eACC36R,EAAK88R,UAAUt+R,EAAEpB,MAAM,GAAIoB,EAAEpB,MAAM,GAAIoB,EAAEpB,MAAM,IAC/C4C,EAAKi6R,gBAAe,GAAM,GACtCj6R,EAAK6yE,MAAMqoN,eAzCCgd,WAAYyF,EACZ39S,KAAMA,GAEVyrS,GA0CJ,OAAO,KAGXla,EAAa2tB,yBAA2B,SACpC9hT,EACAqD,EACA1E,EACA4hT,EACA39S,GAEA,GAAKA,GAASA,EAAKsc,WAAnB,CAIA,IACIk1Q,EAASD,EAAama,cACtBD,EAAaja,EAAOsY,kBAEpBzrJ,EAAU,GACd,IAAK,IAAInlJ,KAAK8G,EAAKsc,WAAY,CAEhB,iBADPlf,OAA+B6X,IAAvBjV,EAAKsc,WAAWpjB,GAAmB8G,EAAKsc,WAAWpjB,GAAK,OAE5EkE,EAAQykC,KAAK0xH,UAAUn2J,IACxB,IAAI+4B,EAAOn2B,EAAK2iS,gBAAgBzpS,GAChB,QAAbi9B,EAAK51B,MAA+B,SAAb41B,EAAK51B,OAC9BnD,EAAQm0R,EAAa4tB,0BAA2B/hT,EAAO+4B,EAAKvd,SAGpDxb,EAAQm0R,EAAa6tB,WAAWhiT,GAChCihJ,EAAQ1/I,KAAK,CACT27C,QACI,gCACCnkB,EAAKl4B,MAAQk4B,EAAKl4B,MAAQ/E,GAD3B,uCAIAkE,EACA,UACJA,MAAOlE,IAGf,GAAKmlJ,EAAQllJ,OAAb,CAIW,IAAIwvR,EAAUsvB,YACrB55J,EACA,CACItuI,MAAOhU,EACP8G,SAQR,SAAuBrE,EAAGiC,EAAS1E,EAAGs5G,GAClC,IAAKr1G,EACD,OAEJ,IAAI8lS,EAAO1qS,KAAK8M,wBAChBspR,EAAO6tB,sBAAsBr/S,EAAMxB,EAAEpB,MAAO,CACxC2c,SAAU,CAAC+rR,EAAKz+R,KAAMy+R,EAAK3+R,QAb3B+wS,WAAYyF,EACZ2B,YAAY,EACZt/S,KAAMA,GAEVyrS,GAaJ,OAAO,KAGXla,EAAa6tB,WAAa,SAAS1kR,GAC/B,IAAI3+B,EAAIyJ,SAASsF,cAAc,OAE/B,OADA/O,EAAEiV,UAAY0pB,EACP3+B,EAAE08S,WAGblnB,EAAaguB,aAAe,SAASniT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GACrDA,IAGLA,EAAK6H,KAAO7H,EAAKquR,cACbruR,EAAKwhS,UACLxhS,EAAKwhS,SAASxhS,EAAK6H,MACvB7H,EAAKi6R,gBAAe,GAAM,KAG9B1I,EAAaz3R,UAAUwzS,aAAe,SAASnjP,EAAMpuD,GACjD,IAAI68Q,EAAOx9Q,KACjB0d,QAAQ6oL,IAAIx3I,GACZ,IACUoxB,EAAO,IAAIotM,EAAUsvB,YADjB,CAAC,WAAW,KAAK,UACqB,CAC1CloS,MAAOhU,EAChBsxB,MAAoB,MAAb88B,EAAK5vD,KAAe4vD,EAAK5vD,KAAKc,YAAY2W,KAAO,KAC/CnP,SAGJ,SAAuBrE,EAAEiC,EAAQ1E,GAC7B,OAAQyC,GACJ,IAAK,WAChB+yR,EAAamsB,UAAU,KAAM,KAAM3hT,EAAGw/E,GAAM,SAASv7E,GACpD8Y,QAAQ6oL,IAAI,oBACZ,IAAI69G,EAAY5mC,EAAK/lM,MAAMymN,YAAanvO,EAAKqmO,WACzCivB,EAAa7mC,EAAK/lM,MAAMymN,YAAanvO,EAAKumO,WAC1C1wR,EAAKu3R,QAAWv3R,EAAKu3R,OAAOp+R,QAAW6G,EAAKw3R,SAAYx3R,EAAKw3R,QAAQr+R,QAErEqmT,EAAUhoB,QAASrtO,EAAKsmO,aAAclwR,MAAQP,EAAKu3R,OAAO,GAAGh3R,MAAQP,EAAKw3R,QAAQ,GAAGj3R,MAAQk/S,EAAWloB,OAAO,GAAGh3R,OAErHi/S,EAAU7b,QAASx5O,EAAKsmO,YAAazwR,EAAM,GAC3CA,EAAK2jS,QAAS,EAAG8b,EAAYt1P,EAAKwmO,aAClC3wR,EAAK+tC,IAAI,IAAqB,GAAf/tC,EAAK6H,KAAK,OAG3B,MACW,IAAK,SACD+wQ,EAAK/lM,MAAMqrN,WAAW/zO,EAAKx4C,QAMvC,OAAO,GAGX4/Q,EAAamuB,qBAAuB,SAASr7S,EAAM5D,EAAS1E,EAAGw/E,EAAMv7E,GACjE,IACIwoC,EAAWnkC,EAAKmkC,UAAY,QAC5BprC,EAAQ4C,EAAKwoC,GAEbm3Q,EAASn6S,SAASsF,cAAc,OACpC60S,EAAO/tS,UAAY,cACnB+tS,EAAOlH,UAAY,4FAEPkH,EAAOv8E,cAAc,SAC3BpyN,UAAYw3B,EAClB,IAAIgiD,EAAQm1N,EAAOv8E,cAAc,UAC7B54I,IACAA,EAAMptF,MAAQA,EACdotF,EAAM1pF,iBAAiB,QAAQ,SAAS/E,GACpCX,KAAKg9B,WAEToyD,EAAM1pF,iBAAiB,WAAW,SAAS/E,GACtB,IAAbA,EAAE+Y,SAAuC,YAAtB/Y,EAAE/C,OAAOowS,YAGhCwW,IACA7jT,EAAEsT,iBACFtT,EAAEwT,uBAIV,IACIiiR,EADcD,EAAama,cACNla,OAErBsU,EAAOtU,EAAOtpR,wBACd23S,GAAW,GACX7F,GAAW,GAkBf,SAAS4F,KAIT,SAAkBxiT,GACG,UAAbiH,EAAK9D,KACLnD,EAAQ+qH,OAAO/qH,GACK,WAAbiH,EAAK9D,OACZnD,EAAQkpF,QAAQlpF,IAEpB4C,EAAKwoC,GAAYprC,EACbuiT,EAAOp9S,YACPo9S,EAAOp9S,WAAW23I,YAAYylK,GAElC3/S,EAAKi6R,gBAAe,GAAM,GAb1B77O,CAASosC,EAAMptF,OAlBf0oS,IACA+Z,GAAW/Z,EAAKz+R,KAChB2yS,GAAWlU,EAAK3+R,KAGhB4I,OACA4vS,EAAO73S,MAAMT,KAAO0I,MAAMm5K,QAAU22H,EAAU,KAC9CF,EAAO73S,MAAMX,IAAM4I,MAAMo5K,QAAU6wH,EAAU,OAE7C2F,EAAO73S,MAAMT,KAAsB,GAAfmqR,EAAOvrR,MAAc45S,EAAU,KACnDF,EAAO73S,MAAMX,IAAsB,GAAhBqqR,EAAOtrR,OAAe8zS,EAAU,MAG1C2F,EAAOv8E,cAAc,UAC3BtiO,iBAAiB,QAAS8+S,GACjCpuB,EAAOjvR,WAAWyI,YAAY20S,IAoBlCpuB,EAAaz3R,UAAUupQ,OAAS,SAASh2O,EAAOjwB,EAAOyF,EAAUkN,EAAOwsB,GACpE,IAAIq8O,EAAOx9Q,KAEXiyB,EAAQA,GAAS,GAEjB,IAAIyyR,GAAW,EAEXH,EAASn6S,SAASsF,cAAc,OACpC60S,EAAO/tS,UAAY,sBAElB+tS,EAAOlH,UADXl8Q,EACuB,8GAEA,6GACpBojR,EAAOt3O,MAAQ,WACXuwM,EAAKmnC,WAAa,KACdJ,EAAOp9S,YACPo9S,EAAOp9S,WAAW23I,YAAYylK,IAIlCvkT,KAAKu2R,GAAG7gM,MAAQ,IAChB6uN,EAAO73S,MAAM6gB,UAAY,SAAWvtB,KAAKu2R,GAAG7gM,MAAQ,KAGxD6uN,EAAO7+S,iBAAiB,cAAc,SAAS/E,GACtC+jT,GACDH,EAAOt3O,WAIXuwM,EAAKmnC,YACLnnC,EAAKmnC,WAAW13O,QAEpBuwM,EAAKmnC,WAAaJ,EAMCA,EAAOv8E,cAAc,SAC3BpyN,UAAYqc,EACzB,IAAI2yR,EAAgBL,EAAOv8E,cAAc,UACzC48E,EAAc5iT,MAAQA,EAEtB,IAAIotF,EAAQw1N,EACZx1N,EAAM1pF,iBAAiB,WAAW,SAAS/E,GAEvC,GADA+jT,GAAW,EACM,IAAb/jT,EAAE+Y,QAEF6qS,EAAOt3O,YACJ,IAAiB,IAAbtsE,EAAE+Y,SAAuC,YAAtB/Y,EAAE/C,OAAOowS,UAMnC,OALIvmS,GACAA,EAASzH,KAAKgC,OAElBuiT,EAAOt3O,QAIXtsE,EAAEsT,iBACFtT,EAAEwT,qBAGOowS,EAAOv8E,cAAc,UAC3BtiO,iBAAiB,SAAS,SAAS/E,GAClC8G,GACAA,EAAS2nF,EAAMptF,OAEnBw7Q,EAAK0vB,UAAS,GACdqX,EAAOt3O,WAGX,IACImpN,EADcD,EAAama,cACNla,OAErBsU,EAAOtU,EAAOtpR,wBACd23S,GAAW,GACX7F,GAAW,GAmBf,OAlBIlU,IACA+Z,GAAW/Z,EAAKz+R,KAChB2yS,GAAWlU,EAAK3+R,KAGhB4I,GACA4vS,EAAO73S,MAAMT,KAAO0I,EAAMm5K,QAAU22H,EAAU,KAC9CF,EAAO73S,MAAMX,IAAM4I,EAAMo5K,QAAU6wH,EAAU,OAE7C2F,EAAO73S,MAAMT,KAAsB,GAAfmqR,EAAOvrR,MAAc45S,EAAU,KACnDF,EAAO73S,MAAMX,IAAsB,GAAhBqqR,EAAOtrR,OAAe8zS,EAAU,MAGvDxoB,EAAOjvR,WAAWyI,YAAY20S,GAC9Bv8S,YAAW,WACPonF,EAAMpyD,UACP,IAEIunR,GAGXpuB,EAAa0uB,cAAgB,EAC7B1uB,EAAaz3R,UAAU0zS,cAAgB,SAASz9R,GAC5C,IAAI6oQ,EAAOx9Q,KAEPs8R,EAAcnG,EAAama,cAC3Bla,EAASkG,EAAYlG,OACrBonB,EAAgBpnB,EAAOh4O,eAAiBh0C,SAExCm6S,EAASn6S,SAASsF,cAAc,OACpC60S,EAAO/tS,UAAY,8CACnB+tS,EAAOlH,UACH,kHACJkH,EAAOt3O,MAAQ,WACXuwM,EAAKsnC,WAAa,KAClBtH,EAAch7S,KAAKw6B,QAC5BwgR,EAAch7S,KAAKkK,MAAMuzC,SAAW,GAE3Bj4C,YAAW,WACPw1Q,EAAK4Y,OAAOp5P,UACb,IACCunR,EAAOp9S,YACPo9S,EAAOp9S,WAAW23I,YAAYylK,IAItC,IAAIQ,EAAgB,KAEhB/kT,KAAKu2R,GAAG7gM,MAAQ,IAChB6uN,EAAO73S,MAAM6gB,UAAY,SAAWvtB,KAAKu2R,GAAG7gM,MAAQ,KAGxD6uN,EAAO7+S,iBAAiB,cAAc,SAAS/E,GACvCokT,IACAnsR,aAAamsR,GACbA,EAAgB,SAIxBR,EAAO7+S,iBAAiB,cAAc,SAAS/E,GAE3CokT,EAAgB/8S,YAAW,WACvBu8S,EAAOt3O,UACR,QAGHuwM,EAAKsnC,YACLtnC,EAAKsnC,WAAW73O,QAEpBuwM,EAAKsnC,WAAaP,EAElB,IAAIhuI,EAASguI,EAAOv8E,cAAc,WAE9B7mK,EAAQ,KACR13D,EAAU,KACV2xS,EAAW,KAEXhsN,EAAQm1N,EAAOv8E,cAAc,SAC7B54I,IACAA,EAAM1pF,iBAAiB,QAAQ,SAAS/E,GACpCX,KAAKg9B,WAEToyD,EAAM1pF,iBAAiB,WAAW,SAAS/E,GACvC,GAAiB,IAAbA,EAAE+Y,QAEF0vN,GAAgB,QACb,GAAiB,IAAbzoO,EAAE+Y,QAET0vN,GAAgB,QACb,GAAiB,IAAbzoO,EAAE+Y,QAET6qS,EAAOt3O,YACJ,IAAiB,IAAbtsE,EAAE+Y,QAaT,OAJIjQ,GACAk4D,cAAcl4D,QAElBA,EAAUzB,WAAWg9S,EAAe,KAXhC5J,EACAnvG,EAAOmvG,EAASiC,WACTl8O,EACP8qI,EAAO9qI,GAEPojP,EAAOt3O,QAY3B,OAHYtsE,EAAEsT,iBACFtT,EAAEwT,kBACdxT,EAAEqzS,4BACK,MAILwJ,EAAcC,kBACXD,EAAcC,kBAAkB7tS,YAAY20S,IAG/C/G,EAAch7S,KAAKoN,YAAY20S,GAClC/G,EAAch7S,KAAKkK,MAAMuzC,SAAW,UAI/B,IAAIyqP,EAAOtU,EAAOtpR,wBAEdb,GAAS0I,EAAQA,EAAMm5K,QAAW48G,EAAKz+R,KAAoB,GAAby+R,EAAK7/R,OAAiB,GACpEkB,GAAQ4I,EAAQA,EAAMo5K,QAAW28G,EAAK3+R,IAAoB,GAAd2+R,EAAK5/R,QAAkB,GA4BvE,SAASmhM,EAAOr1L,GACZ,GAAIA,EACA,GAAI4mQ,EAAK4b,qBACL5b,EAAK4b,qBAAqBxiR,EAAMjC,EAAO2nR,OACpC,CACH,IAAItgG,EAAQuxF,EAAUgE,iBAAiB36Q,EAAKmsB,eACxCi5J,IACAplL,EAAOolL,EAAM72L,MAGhCm3R,EAAY7kN,MAAM8nN,eACH,IAAI36R,EAAO2oR,EAAUwF,WAAWn8Q,GAQhC,GAPIhS,IACAA,EAAK+tC,IAAM2pP,EAAYyZ,2BACnBphS,GAEJ2nR,EAAY7kN,MAAMj+D,IAAI5U,IAGtBo3L,GAASA,EAAM78L,KAAM,CACrB,GAAI68L,EAAM78L,KAAK+hB,WACX,IAAK,IAAIpjB,KAAKk+L,EAAM78L,KAAK+hB,WACrBtc,EAAKyhS,YAAavoS,EAAGk+L,EAAM78L,KAAK+hB,WAAWpjB,IAGnD,GAAIk+L,EAAM78L,KAAKg9R,OAEX,IAAK,IAAIr+R,KADT8G,EAAKu3R,OAAS,GACAngG,EAAM78L,KAAKg9R,OACrBv3R,EAAK88R,UACD1lG,EAAM78L,KAAKg9R,OAAOr+R,GAAG,GACrBk+L,EAAM78L,KAAKg9R,OAAOr+R,GAAG,IAIjC,GAAIk+L,EAAM78L,KAAKi9R,QAEX,IAAK,IAAIt+R,KADT8G,EAAKw3R,QAAU,GACDpgG,EAAM78L,KAAKi9R,QACrBx3R,EAAK88R,UACD1lG,EAAM78L,KAAKi9R,QAAQt+R,GAAG,GACtBk+L,EAAM78L,KAAKi9R,QAAQt+R,GAAG,IAI9Bk+L,EAAM78L,KAAK8yB,QACXrtB,EAAKqtB,MAAQ+pK,EAAM78L,KAAK8yB,OAExB+pK,EAAM78L,KAAKk5E,MACXzzE,EAAKswR,UAAUl5F,EAAM78L,KAAKk5E,MAGhDikN,EAAY7kN,MAAMqoN,eAKZykB,EAAOt3O,QAGX,SAASm8J,EAAgB67E,GACrB,IAAIhrM,EAAOmhM,EACPA,GACAA,EAASvsS,UAAU/J,OAAO,YAEzBs2S,GAKDA,EAAW6J,EACL7J,EAAS8J,YACT9J,EAAS+J,mBAEX/J,EAAWnhM,GARfmhM,EAAW6J,EACL1uI,EAAOmgG,WAAW,GAClBngG,EAAOmgG,WAAWngG,EAAOmgG,WAAW34Q,QASzCq9S,IAGLA,EAASvsS,UAAU2K,IAAI,YACvB4hS,EAASgK,eAAe,CAACj6C,MAAO,MAAOk6C,SAAU,YAGrD,SAASL,IACLv7S,EAAU,KACV,IAAI61B,EAAM8vD,EAAMptF,MAGhB,GAFAm/D,EAAQ,KACRo1G,EAAO8mI,UAAY,GACd/9Q,EAIL,GAAIk+O,EAAK2b,YAAa,CAClB,IAAItsM,EAAO2wL,EAAK2b,YAAY5iH,EAAQj3I,EAAKg9P,GACzC,GAAIzvM,EACA,IAAK,IAAI/uF,EAAI,EAAGA,EAAI+uF,EAAK9uF,SAAUD,EAC/BwnT,EAAUz4N,EAAK/uF,QAGpB,KAuCNynT,EAAT,SAA4BpgT,GAE3B,IAAI0wB,EAAO03P,EAAU4D,sBAAuBhsR,GAC5C,QAAG6pB,GAAU6G,EAAK7G,QAAUA,KAEgB,IAArC7pB,EAAK49B,cAAcniC,QAAQ0+B,IA3CnBp+B,EAAI,EACRo+B,EAAMA,EAAIyD,cACtB,IAAI/T,EAASstQ,EAAYttQ,QAAUstQ,EAAY7kN,MAAMzoD,OAGzC,IAAK,IAAIlxB,KAAKyvR,EAAUgE,iBAAkB,CACtC,IAAIv1F,EAAQuxF,EAAUgE,iBAAiBzzR,GACvC,IAA+C,IAA3Ck+L,EAAM/6L,KAAK8hC,cAAcniC,QAAQ0+B,GAArC,CAGf,IAAIzJ,EAAO03P,EAAU4D,sBAAuBn1F,EAAM72L,MAClD,KAAI0wB,GAAQA,EAAK7G,QAAUA,KAEZs2R,EAAWtpH,EAAM/6L,KAAM,oBACa,IAA/Bk1R,EAAa0uB,cAAuB3jT,IAAMi1R,EAAa0uB,cACxD,OAIpB,IAAIW,EAAW,KACH,GAAI/lT,MAAMf,UAAUswB,OAEZw2R,EADOpnT,OAAOsY,KAAM62Q,EAAU4D,uBACdniQ,OAAQu2R,QAG5B,IAAK,IAAIznT,KADxB0nT,EAAW,GACkBj4B,EAAU4D,sBAClCo0B,EAAkBznT,IACrB0nT,EAASjiT,KAAKzF,GAIjB,IAASA,EAAI,EAAGA,EAAI0nT,EAASznT,SAC5BunT,EAAUE,EAAS1nT,OACiB,IAA/Bq4R,EAAa0uB,cAAuB3jT,IAAMi1R,EAAa0uB,eAFxB/mT,MAgB7B,SAASwnT,EAAUngT,EAAMqR,GACrB,IAAIivS,EAAOr7S,SAASsF,cAAc,OAC7ByxD,IACDA,EAAQh8D,GAEZsgT,EAAK7vS,UAAYzQ,EACjBsgT,EAAKC,QAAL,KAAuB/lR,OAAOx6B,GAC9BsgT,EAAKjvS,UAAY,6BACbA,IACAivS,EAAKjvS,WAAa,IAAMA,GAE5BivS,EAAK//S,iBAAiB,SAAS,SAAS/E,GACpCsrM,EAAO05G,SAAS3lT,KAAK0lT,QAAL,UAEpBnvI,EAAO3mK,YAAY61S,IAI3B,OA/LAlB,EAAO73S,MAAMT,KAAOA,EAAO,KAC3Bs4S,EAAO73S,MAAMX,IAAMA,EAAM,KAG5B4I,EAAMixS,OAAUlb,EAAK5/R,OAAS,MACvByrK,EAAO7pK,MAAMm5S,UAAanb,EAAK5/R,OAAS6J,EAAMixS,OAAS,GAAM,MAoBjEx2N,EAAMpyD,QAsKCunR,GAGXpuB,EAAaz3R,UAAUulT,sBAAwB,SAAUr/S,EAAMwoC,EAAU/nC,GACrE,GAAKT,QAAsCiV,IAA9BjV,EAAKsc,WAAWksB,GAA7B,CAIA/nC,EAAUA,GAAW,GACrB,IAEI01B,EAAOn2B,EAAK2iS,gBAAgBn6P,GAClCjoC,EAAO41B,EAAK51B,KAEN2gT,EAAa,GAEjB,GAAY,UAAR3gT,GAA4B,UAARA,GAA4B,SAARA,GAA2B,UAARA,EAC3D2gT,EAAa,oDACV,GAAc,QAAR3gT,GAA0B,SAARA,IAAoB41B,EAAKvd,OAiBjD,IAAY,WAARrY,EAOP,YADAuY,QAAQC,KAAK,iBAAmBxY,GALhC2gT,EACI,mDACClhT,EAAKsc,WAAWksB,GAAY,UAAY,IACzC,SArBwD,CAE5D,IAAK,IAAItvC,KADTgoT,EAAa,+CACC/qR,EAAKvd,OAAQ,CACvB,IAAIpa,EAAItF,EAChBi9B,EAAKvd,OAAOvd,cAAgBR,QAC/B2D,EAAI23B,EAAKvd,OAAO1f,IAELgoT,GACI,kBACA1iT,EACA,MACCA,GAAKwB,EAAKsc,WAAWksB,GAAY,WAAa,IAC/C,IACArS,EAAKvd,OAAO1f,GACZ,YAERgoT,GAAc,YAWlB,IAAIvB,EAASvkT,KAAK+lT,aACd,uBACKhrR,EAAKl4B,MAAQk4B,EAAKl4B,MAAQuqC,GAC3B,UACA04Q,EACA,sBACJzgT,GAGJ,GAAa,QAARF,GAA0B,SAARA,IAAoB41B,EAAKvd,OAOzC,GAAY,WAARrY,EAAmB,EACtBiqF,EAAQm1N,EAAOv8E,cAAc,WAE7B54I,EAAM1pF,iBAAiB,SAAS,SAAS/E,GACrCqiD,IAAWosC,EAAMnB,gBAGtB,CACH,IAAImB,EACJ,GADIA,EAAQm1N,EAAOv8E,cAAc,SACtB,CACP54I,EAAM1pF,iBAAiB,QAAQ,SAAS/E,GACpCX,KAAKg9B,WAGjB55B,OAAkCyW,IAA9BjV,EAAKsc,WAAWksB,GAA0BxoC,EAAKsc,WAAWksB,GAAY,GACjE,WAATjoC,IACY/B,EAAIqjC,KAAK0xH,UAAU/0J,IAGvBgsF,EAAMptF,MAAQoB,EACdgsF,EAAM1pF,iBAAiB,WAAW,SAAS/E,GACtB,IAAbA,EAAE+Y,UAGN8qS,IACA7jT,EAAEsT,iBACFtT,EAAEwT,4BAhCNi7E,EAAQm1N,EAAOv8E,cAAc,WAC3BtiO,iBAAiB,UAAU,SAAS/E,GACtCqiD,EAASriD,EAAE/C,OAAOoE,UAkEhC,OA/BmBuiT,EAAOv8E,cAAc,UAC3BtiO,iBAAiB,QAAS8+S,GA8BhCD,EA5BD,SAASC,IACLxhQ,EAASosC,EAAMptF,OAGnB,SAASghD,EAAShhD,GAEpB+4B,GAAQA,EAAKvd,QAAUud,EAAKvd,OAAOvd,cAAgB7B,aAAgCyb,GAAtBkhB,EAAKvd,OAAOxb,KAC3EA,EAAQ+4B,EAAKvd,OAAOxb,IAE4B,iBAA7B4C,EAAKsc,WAAWksB,KACvBprC,EAAQ+qH,OAAO/qH,IAEP,SAARmD,GAA2B,UAARA,IACnBnD,EAAQykC,KAAKC,MAAM1kC,IAEvB4C,EAAKsc,WAAWksB,GAAYprC,EACxB4C,EAAK6yE,OACL7yE,EAAK6yE,MAAM0jN,WAEXv2R,EAAKs/R,mBACLt/R,EAAKs/R,kBAAkB92P,EAAUprC,GAE3CqD,EAAQ2gT,SACV3gT,EAAQ2gT,UACAzB,EAAOt3O,QACProE,EAAKi6R,gBAAe,GAAM,KAMlC1I,EAAaz3R,UAAUqnT,aAAe,SAASnmR,EAAMv6B,GACjDA,EAAUA,GAAW,GAErB,IAAIk/S,EAASn6S,SAASsF,cAAc,OACpC60S,EAAO/tS,UAAY,cACnB+tS,EAAOlH,UAAYz9Q,EAEnB,IAAI8qQ,EAAO1qS,KAAKo2R,OAAOtpR,wBACnB23S,GAAW,GACX7F,GAAW,GA6Bf,OA5BIlU,IACA+Z,GAAW/Z,EAAKz+R,KAChB2yS,GAAWlU,EAAK3+R,KAGhB1G,EAAQsZ,UACR8lS,GAAWp/S,EAAQsZ,SAAS,GAC5BigS,GAAWv5S,EAAQsZ,SAAS,IACrBtZ,EAAQsP,OACf8vS,GAAWp/S,EAAQsP,MAAMm5K,QACzB8wH,GAAWv5S,EAAQsP,MAAMo5K,UAGzB02H,GAA+B,GAApBzkT,KAAKo2R,OAAOvrR,MACvB+zS,GAAgC,GAArB5+S,KAAKo2R,OAAOtrR,QAG3By5S,EAAO73S,MAAMT,KAAOw4S,EAAU,KAC9BF,EAAO73S,MAAMX,IAAM6yS,EAAU,KAE7B5+S,KAAKo2R,OAAOjvR,WAAWyI,YAAY20S,GAEnCA,EAAOt3O,MAAQ,WACPjtE,KAAKmH,YACLnH,KAAKmH,WAAW23I,YAAY9+I,OAI7BukT,GAGdpuB,EAAaz3R,UAAUunT,YAAc,SAASh0R,EAAO5sB,GAGpD,IAAIgrS,GAFJhrS,EAAUA,GAAW,IAEIsF,QAAUA,OAC/B8hG,EAAOriG,SAASsF,cAAc,OASlC,GARA+8F,EAAKj2F,UAAY,mBACjBi2F,EAAK4wM,UAAY,yIACjB5wM,EAAKy5M,OAASz5M,EAAKu7H,cAAc,kBAE9B3iO,EAAQwF,QACV4hG,EAAK//F,MAAM7B,MAAQxF,EAAQwF,OAASxF,EAAQwF,MAAM5K,cAAgB8sH,OAAS,KAAO,KAChF1nH,EAAQyF,SACV2hG,EAAK//F,MAAM5B,OAASzF,EAAQyF,QAAUzF,EAAQyF,OAAO7K,cAAgB8sH,OAAS,KAAO,KACnF1nH,EAAQ8gT,SACX,CACC,IAAIl5O,EAAQ7iE,SAASsF,cAAc,QACnCu9D,EAAMowO,UAAY,WAClBpwO,EAAMp+D,UAAU2K,IAAI,SACpByzD,EAAMvnE,iBAAiB,SAAQ,WAC9B+mG,EAAKx/B,WAENw/B,EAAKy5M,OAAOt2S,YAAYq9D,GA+IzB,OA7IAw/B,EAAK25M,cAAgB35M,EAAKu7H,cAAc,iBACxCv7H,EAAK25M,cAAcxwS,UAAYqc,EAC/Bw6E,EAAKvtD,QAAUutD,EAAKu7H,cAAc,mBAClCv7H,EAAK45M,OAAS55M,EAAKu7H,cAAc,kBAEjCv7H,EAAKx/B,MAAQ,WAETjtE,KAAKmH,YACPnH,KAAKmH,WAAW23I,YAAY9+I,OAG9BysG,EAAKlvF,MAAQ,WAEZvd,KAAKk/C,QAAQm+P,UAAY,IAG1B5wM,EAAK65M,QAAU,SAASpjR,EAAMyuP,EAAW40B,GAExC,IAAIjqE,EAAOlyO,SAASsF,cAAc,OAQlC,OAPGiiR,IACFr1C,EAAK9lO,UAAYm7Q,GAClBr1C,EAAK+gE,UAAYn6Q,EACdqjR,EACF95M,EAAK45M,OAAOz2S,YAAY0sO,GAExB7vI,EAAKvtD,QAAQtvC,YAAY0sO,GACnBA,GAGR7vI,EAAK+5M,UAAY,SAAU5vS,EAAMnP,EAAUpC,GAE1C,IAAIi3O,EAAOlyO,SAASsF,cAAc,UAMlC,OALA4sO,EAAK1mO,UAAYgB,EACjB0lO,EAAKj3O,QAAUA,EACfi3O,EAAKztO,UAAU2K,IAAI,OACnB8iO,EAAK52O,iBAAiB,QAAQ+B,GAC9BglG,EAAK45M,OAAOz2S,YAAY0sO,GACjBA,GAGR7vI,EAAKg6M,aAAe,WAEnB,IAAInqE,EAAOlyO,SAASsF,cAAc,OAClC4sO,EAAK9lO,UAAY,YACjBi2F,EAAKvtD,QAAQtvC,YAAY0sO,IAG1B7vI,EAAKi7L,UAAY,SAAUviS,EAAMyR,EAAM5U,EAAOqD,EAASoC,GAEtDpC,EAAUA,GAAW,GACrB,IAAIqhT,EAAY5mT,OAAOkC,GAEZ,WADXmD,EAAOA,EAAK49B,iBAEX2jR,EAAY1kT,EAAMg5B,QAAQ,IAE3B,IAAIshN,EAAOlyO,SAASsF,cAAc,OAClC4sO,EAAK9lO,UAAY,WACjB8lO,EAAK+gE,UAAY,0EACjB/gE,EAAKtU,cAAc,kBAAkBpyN,UAAYvQ,EAAQxC,OAAS+T,EAClE,IAAIguS,EAAgBtoE,EAAKtU,cAAc,mBASvC,GARA48E,EAAchvS,UAAY8wS,EAC1BpqE,EAAKopE,QAAL,SAA2B9uS,EAC3B0lO,EAAKopE,QAAL,KAAuBrgT,EAAQF,MAAQA,EACvCm3O,EAAKj3O,QAAUA,EACfi3O,EAAKt6O,MAAQA,EAID,WAARmD,EAEHm3O,EAAKztO,UAAU2K,IAAI,WAChBxX,GACFs6O,EAAKztO,UAAU2K,IAAI,WACpB8iO,EAAK52O,iBAAiB,SAAS,WAG9B,IAAIihT,EAAW3mT,KAAK0lT,QAAL,SACf1lT,KAAKgC,OAAShC,KAAKgC,MACnBhC,KAAK6O,UAAU8vI,OAAO,WACtB3+I,KAAKgoO,cAAc,mBAAmBpyN,UAAY5V,KAAKgC,MAAQ,OAAS,QACxE4kT,EAAYD,EAAU3mT,KAAKgC,eAGxB,GAAY,UAARmD,GAA4B,UAARA,EAE5By/S,EAAc9tS,aAAa,mBAAkB,GAC7C8tS,EAAcl/S,iBAAiB,WAAW,SAAS/E,GACrC,SAAVA,EAAEuiC,OAEJviC,EAAEsT,iBACFjU,KAAKq9O,WAGPunE,EAAcl/S,iBAAiB,QAAQ,WACtC,IAAItC,EAAIpD,KAAK4V,UACT+wS,EAAW3mT,KAAKmH,WAAWu+S,QAAhB,SAEC,UADD1lT,KAAKmH,WAAWu+S,QAAhB,OAEdtiT,EAAI2pH,OAAO3pH,IACZwjT,EAAYD,EAAUvjT,WAGnB,GAAY,QAAR+B,GAA0B,SAARA,EAAiB,CACvCuhT,EAAYvwB,EAAa4tB,0BAA2B/hT,EAAOqD,EAAQmY,QACvEonS,EAAchvS,UAAY8wS,EAE1B9B,EAAcl/S,iBAAiB,SAAS,SAASiP,GAChD,IAAI6I,EAASnY,EAAQmY,QAAU,GAC3BmpS,EAAW3mT,KAAKmH,WAAWu+S,QAAhB,SACXmB,EAAY7mT,KACL,IAAIutR,EAAUsvB,YAAYr/R,EAAO,CAC1C7I,MAAOA,EACP6B,UAAW,OACX/O,SAGF,SAAuBrE,EAAGurF,EAAQh6E,GAKjC,OAFAkyS,EAAUjxS,UAAYxS,EACtBwjT,EAAYD,EAASvjT,IACd,IANPitS,MAaH,SAASuW,EAAYhwS,EAAM5U,GAE1B0b,QAAQ6oL,IAAI,SAAS3vL,EAAK5U,GAEvBqD,EAAQoC,UACVpC,EAAQoC,SAASmP,EAAK5U,GACpByF,GACFA,EAASmP,EAAK5U,GAGhB,OAZAyqG,EAAKvtD,QAAQtvC,YAAY0sO,GAYlBA,GAGD7vI,GAGR0pL,EAAa4tB,0BAA4B,SAAS/hT,EAAOwb,GAExD,IAAIA,EACH,OAAO1d,OAAOkC,GAEf,GAAGwb,EAAOvd,cAAgBR,MAEzB,OAAOK,OAAOkC,GAGf,GAAGwb,EAAOvd,cAAgB7B,OAC1B,CACC,IAAI0oT,EAAa,GACjB,IAAI,IAAI7iT,KAAKuZ,EAEZ,GAAGA,EAAOvZ,IAAMjC,EAAhB,CAEA8kT,EAAa7iT,EACb,MAED,OAAOnE,OAAOkC,GAAS,KAAK8kT,EAAW,MAIzC3wB,EAAaz3R,UAAUq2S,kBAAoB,SAAUnwS,GAEpD+F,OAAOo8S,cAAgBniT,EACvB,IAAIoiT,EAAQ58S,SAAS49N,cAAc,eAChCg/E,GACFA,EAAM/5O,QACP,IAAIojO,EAAarwS,KAAK0uS,mBACtBsY,EAAQhnT,KAAKimT,YAAYrhT,EAAKqtB,OAAS,GAAG,CAACk0R,UAAU,EAAMx7S,OAAQ0lS,KAC7D95R,GAAK,aACXywS,EAAMpiT,KAAOA,EACboiT,EAAMn4S,UAAU2K,IAAI,YACpB,IACI8iR,EAAct8R,KAElB,SAASinT,IAOR,IAAI,IAAInpT,KALRkpT,EAAM9nQ,QAAQm+P,UAAY,GAC1B2J,EAAMV,QAAQ,2BAA2B1hT,EAAKO,KAAK,mCAAmCP,EAAK3E,YAAYgB,MAAQ,IAAI,0CAEnH+lT,EAAMV,QAAQ,uBAED1hT,EAAKsc,WAClB,CACC,IAAIlf,EAAQ4C,EAAKsc,WAAWpjB,GACxBi9B,EAAOn2B,EAAK2iS,gBAAgBzpS,GACrBi9B,EAAK51B,KAGZP,EAAKsiT,sBAAwBtiT,EAAKsiT,qBAAqBppT,EAAEkpT,IAG7DA,EAAMtf,UAAW3sQ,EAAKiiJ,QAAUjiJ,EAAK51B,KAAMrH,EAAGkE,EAAO+4B,GAAM,SAASnkB,EAAK5U,GACxEs6R,EAAY7kN,MAAM8nN,aAAa36R,GAC/BA,EAAK+/R,YAAY/tR,EAAK5U,GACtBs6R,EAAY7kN,MAAMqoN,cAClBxD,EAAYoQ,cAAe,KAI7Bsa,EAAMP,eAEH7hT,EAAKuiT,uBACPviT,EAAKuiT,sBAAsBH,GAS5BA,EAAMR,UAAU,UAAS,WACrB5hT,EAAK6wS,eAER7wS,EAAK6yE,MAAM3yE,OAAOF,GAClBoiT,EAAM/5O,YACJp+D,UAAU2K,IAAI,UA8ClBytS,IAEAjnT,KAAKo2R,OAAOjvR,WAAWyI,YAAao3S,IAGrC7wB,EAAaz3R,UAAUo6S,6BAA+B,SAASl0S,GAE9D8Y,QAAQ6oL,IAAI,sCAEZ,IAAI6gH,EAAYpnT,KAAKo2R,OAAOjvR,WAAW6gO,cAAc,oBAClDo/E,GACFA,EAAUn6O,QAEX,IAAI+5O,EAAQhnT,KAAKimT,YAAY,kBAAkB,CAACE,UAAS,EAAMt7S,MAAO,MAItE,SAASo8S,IAKR,GAHAD,EAAMzpS,QAGH3Y,EAAKu3R,OACP,IAAI,IAAIr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,SAAUD,EACzC,CACC,IAAIsxF,EAAQxqF,EAAKu3R,OAAOr+R,GACxB,IAAGsxF,EAAMspN,mBAAT,CAEA,IACIp8D,EAAO0qE,EAAMV,QADN,kHACmB,qBAC9BhqE,EAAKopE,QAAL,KAAuBt2N,EAAMx4E,KAC7B0lO,EAAKopE,QAAL,KAAuB5nT,EACvBw+O,EAAKtU,cAAc,SAASpyN,UAAYw5E,EAAMx4E,KAC9C0lO,EAAKtU,cAAc,SAASpyN,UAAYw5E,EAAMjqF,KAC9Cm3O,EAAKtU,cAAc,UAAUtiO,iBAAiB,SAAQ,SAAS/E,GAC9DiE,EAAK48R,YAAaz0K,OAAQ/sH,KAAKmH,WAAWu+S,QAAhB,OAC1BuB,SAtBJD,EAAMpiT,KAAOA,EACboiT,EAAMn4S,UAAU2K,IAAI,mBA2CpB,OAfWwtS,EAAMV,QADN,uIACmB,2BAA2B,GACpDt+E,cAAc,UAAUtiO,iBAAiB,SAAS,SAAS/E,GAC/D,IAAI27O,EAAOt8O,KAAKmH,WACZyP,EAAO0lO,EAAKtU,cAAc,SAAShmO,MACnCmD,EAAOm3O,EAAKtU,cAAc,SAAShmO,MACnC4U,IAAqC,GAA7BhS,EAAKwgS,cAAcxuR,KAE/BhS,EAAKm8R,SAASnqR,EAAKzR,GACnBm3O,EAAKtU,cAAc,SAAShmO,MAAQ,GACpCs6O,EAAKtU,cAAc,SAAShmO,MAAQ,GACpCilT,QAGDA,IACGjnT,KAAKo2R,OAAOjvR,WAAWyI,YAAYo3S,GAC/BA,GAGR7wB,EAAaz3R,UAAU2uS,YAAc,WAEpC,GAAIrtS,KAAKo2R,OAGT,IADA,IAAIixB,EAASrnT,KAAKo2R,OAAOjvR,WAAWmgT,iBAAiB,qBAC7CxpT,EAAI,EAAGA,EAAIupT,EAAOtpT,SAAUD,EACpC,CACC,IAAIkpT,EAAQK,EAAOvpT,GACdkpT,EAAMpiT,OAENoiT,EAAMpiT,KAAK6yE,OAASuvO,EAAMvvO,OAASz3E,KAAKy3E,OAC5CuvO,EAAM/5O,WAINkpN,EAAaoxB,mBAAqB,SAASvlT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GACtEA,EAAK6yE,MAAM8nN,aAAa36R,GAClBA,EAAKygR,WACXzgR,EAAK6yE,MAAMqoN,YAAYl7R,IAGrBuxR,EAAaqxB,cAAgB,SAASxlT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GAC3DA,EAAKk1E,OAGTq8M,EAAasxB,eAAiB,SAASzlT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GA2B5D,OA1BA,IAAI2oR,EAAUsvB,YACV,CAAC,SAAU,WAAY,aAAc,SACrC,CAAEloS,MAAOhU,EAAG8G,SAGhB,SAAuBrE,GACnB,IAAKwB,EACD,OAEJ,OAAQxB,GACJ,IAAK,WACDwB,EAAKqK,KAAOs+Q,EAAU0C,SACtB,MACJ,IAAK,aACDrrR,EAAKqK,KAAOs+Q,EAAU4C,WACtB,MACJ,IAAK,QACDvrR,EAAKqK,KAAOs+Q,EAAU2C,MACtB,MAEJ,QACItrR,EAAKqK,KAAOs+Q,EAAUyC,SAnBO8sB,WAAY38N,EAAMv7E,KAAMA,KAwB1D,GAGXuxR,EAAauxB,iBAAmB,SAAS1lT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GAC9D,IAAKA,EACD,KAAM,oBAGV,IAAI4Y,EAAS,GAOb,IAAK,IAAI1f,KANT0f,EAAOja,KAAK,CACRvB,MAAO,KACPk9C,QACI,qEAGMi3O,EAAasT,YAAa,CACpC,IAAIh8Q,EAAQ0oQ,EAAasT,YAAY3rS,GACjCkE,EAAQ,CACRA,MAAOlE,EACPohD,QACI,uFACAzxB,EAAMA,MACN,sBACAA,EAAM82Q,QACN,KACAzmS,EACA,WAER0f,EAAOja,KAAKvB,GA6BhB,OA3BA,IAAIurR,EAAUsvB,YAAYr/R,EAAQ,CAC9B7I,MAAOhU,EACP8G,SAKJ,SAAuBrE,GACnB,IAAKwB,EACD,OAGJ,IAAI6oB,EAAQrqB,EAAEpB,MAAQm0R,EAAasT,YAAYrmS,EAAEpB,OAAS,KACtDyrB,EACI7oB,EAAK3E,cAAgBstR,EAAUmI,YAC/B9wR,EAAK6oB,MAAQA,EAAMk8Q,YAEnB/kS,EAAK6oB,MAAQA,EAAMA,MACnB7oB,EAAK2/R,QAAU92Q,EAAM82Q,iBAGlB3/R,EAAK6oB,aACL7oB,EAAK2/R,SAEhB3/R,EAAKi6R,gBAAe,GAAM,IArB1Bie,WAAY38N,EACZv7E,KAAMA,KAuBH,GAGXuxR,EAAawxB,iBAAmB,SAAS3lT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GAC9D,IAAKA,EACD,KAAM,iBAoBV,OAjBA,IAAI2oR,EAAUsvB,YAAYtvB,EAAUgC,aAAc,CAC9C56Q,MAAOhU,EACP8G,SAKJ,SAAuBrE,GACnB,IAAKwB,EACD,OAEbA,EAAK6yE,MAAM8nN,aAAa36R,GACfA,EAAK6/R,MAAQrhS,EACtBwB,EAAK6yE,MAAMqoN,YAAYl7R,GACdA,EAAKi6R,gBAAe,IAXpBie,WAAY38N,EACZv7E,KAAMA,KAaH,GAGXuxR,EAAayxB,iBAAmB,SAAS5lT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GAC9D,IAAKA,EACD,KAAM,iBAGV,IAAuB,IAAnBA,EAAKijT,UAAT,CAIN,IAAIpwO,EAAQ7yE,EAAK6yE,MACjBA,EAAM8nN,eACA9nN,EAAM3yE,OAAOF,GACnB6yE,EAAMqoN,cACAl7R,EAAKi6R,gBAAe,GAAM,KAG9B1I,EAAa2xB,qBAAuB,SAAS9lT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GACxE,IAAI6yE,EAAQ7yE,EAAK6yE,MACb6kN,EAAcnG,EAAama,cAC/B,GAAIhU,EAAJ,CAGA,IAAI+D,EAAajiS,OAAOof,OAAQ8+Q,EAAYqD,gBAAkB,IACzDU,EAAWtiS,SACfsiS,EAAa,CAAEz7R,IAEhB,IAAI2oS,EAAgBhgB,EAAUwF,WAAW,kBACzCwa,EAAc56P,IAAM/tC,EAAK+tC,IAAI7uC,SAC7B2zE,EAAMj+D,IAAI+zR,GAEVA,EAAcwa,eAAgB1nB,GAE9B/D,EAAYgX,mBACN1uS,EAAKi6R,gBAAe,GAAM,KAG9B1I,EAAa6xB,gBAAkB,SAAShmT,EAAOqD,EAAS1E,EAAGw/E,EAAMv7E,GAC7D,GAAqB,GAAjBA,EAAKqjT,SAAT,CAGA,IAAIxnB,EAAU77R,EAAKyoE,QACdozN,IAGLA,EAAQ9tP,IAAM,CAAC/tC,EAAK+tC,IAAI,GAAK,EAAG/tC,EAAK+tC,IAAI,GAAK,GAEpD/tC,EAAK6yE,MAAM8nN,eACL36R,EAAK6yE,MAAMj+D,IAAIinR,GACrB77R,EAAK6yE,MAAMqoN,cAELl7R,EAAKi6R,gBAAe,GAAM,MAG9B1I,EAAasT,YAAc,CACvB3iP,IAAK,CAAEr5B,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,QACnDue,MAAO,CAAEz6R,MAAO,UAAW82Q,QAAS,UAAWoF,WAAY,WAC3D/hP,MAAO,CAAEn6B,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,QACrDphR,KAAM,CAAEkF,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,QACpDD,UAAW,CACPj8Q,MAAO,UACP82Q,QAAS,UACToF,WAAY,WAEhBnhR,KAAM,CAAEiF,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,QACpDxiP,OAAQ,CAAE15B,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,WACtDnjP,OAAQ,CAAE/4B,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,WACtDnmR,MAAO,CAAEiK,MAAO,OAAQ82Q,QAAS,OAAQoF,WAAY,SAGzDxT,EAAaz3R,UAAUypT,qBAAuB,WAC1C,IAAI9iT,EAAU,KAsBd,GArBIrF,KAAKooT,eACL/iT,EAAUrF,KAAKooT,kBAEf/iT,EAAU,CACN,CACI65C,QAAS,WACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAamsB,WAE3B,CAAEpjQ,QAAS,YAAaz3C,SAAU0uR,EAAaisB,aAI/CpiT,KAAKitS,cAAgBjtS,KAAKitS,aAAalvS,OAAS,GAChDsH,EAAQ9B,KAAK,KAAM,CACf27C,QAAS,iBACTz3C,SAAUzH,KAAKstS,cAAclyO,KAAKp7D,SAK1CA,KAAKqoT,oBAAqB,CAC1B,IAAIrsH,EAAQh8L,KAAKqoT,oBAAoBroT,KAAMqF,GACvC22L,IACA32L,EAAUA,EAAQvB,OAAOk4L,IAIjC,OAAO32L,GAIX8wR,EAAaz3R,UAAU4pT,mBAAqB,SAAS1jT,GACjD,IAAIS,EAAU,KA2Dd,GAxDIA,EADAT,EAAKwjT,eACKxjT,EAAKwjT,eAAepoT,MAEpB,CACN,CACIk/C,QAAS,SACT2jQ,aAAa,EACbvjF,UAAU,EACV73N,SAAU0uR,EAAaitB,4BAE3B,CACIlkQ,QAAS,UACT2jQ,aAAa,EACbvjF,UAAU,EACV73N,SAAU0uR,EAAaqtB,6BAE3B,KACA,CACItkQ,QAAS,aACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAa2tB,0BAE3B,KACA,CACI5kQ,QAAS,QACTz3C,SAAU0uR,EAAamuB,sBAE3B,CACIplQ,QAAS,OACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAasxB,gBAE3B,CACIvoQ,QAAS,SAAUz3C,SAAU,WACzB,GAAG7C,EAAKssS,UACJ,OAAO/a,EAAaguB,eAGhC,CACIjlQ,QAAS,WACTz3C,SAAU0uR,EAAaoxB,oBAE3B,CAAEroQ,QAAS,MAAOz3C,SAAU0uR,EAAaqxB,eACzC,CACItoQ,QAAS,SACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAauxB,kBAE3B,CACIxoQ,QAAS,SACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAawxB,kBAE3B,MAIJ/iT,EAAK0+S,YAAa,CAClB,IAAInnB,EAASv3R,EAAK0+S,cACdnnB,GAAUA,EAAOp+R,SACjBsH,EAAQ,GAAGi6N,UAAW,GAI9B,GAAI16N,EAAK8+S,aAAc,CACnB,IAAItnB,EAAUx3R,EAAK8+S,eACftnB,GAAWA,EAAQr+R,SACnBsH,EAAQ,GAAGi6N,UAAW,GAI9B,GAAI16N,EAAKyjT,oBAAqB,CAC1B,IAAIrsH,EAAQp3L,EAAKyjT,oBAAoBroT,KAAMqF,GACvC22L,IACAA,EAAMz4L,KAAK,MACX8B,EAAU22L,EAAMl4L,OAAOuB,IA2B/B,OAvBsB,IAAlBT,EAAKqjT,UACL5iT,EAAQ9B,KAAK,CACT27C,QAAS,QACTz3C,SAAU0uR,EAAa6xB,kBAUrC3iT,EAAQ9B,KAAK,KAAM,CAClB27C,QAAS,SACTogL,YAA+B,IAAnB16N,EAAKijT,YAAwBjjT,EAAK6wS,cAC9ChuS,SAAU0uR,EAAayxB,mBAGdhjT,EAAK6yE,OAAS7yE,EAAK6yE,MAAM8wO,sBACzB3jT,EAAK6yE,MAAM8wO,qBAAqBljT,EAAST,GAGtCS,GAGX8wR,EAAaz3R,UAAU8pT,oBAAsB,SAAS5jT,GAkBlD,MAjBQ,CACJ,CAAEs6C,QAAS,QAASz3C,SAAU0uR,EAAamuB,sBAC3C,CACIplQ,QAAS,QACT2jQ,aAAa,EACbp7S,SAAU0uR,EAAauxB,kBAE3B,CACIxoQ,QAAS,YACT9R,SAAU,YACVjoC,KAAM,SACNsC,SAAU0uR,EAAamuB,sBAE3B,KACA,CAAEplQ,QAAS,SAAUz3C,SAAU0uR,EAAayxB,oBAMpDzxB,EAAaz3R,UAAU2zS,mBAAqB,SAASztS,EAAM+P,GACvD,IAAI6oQ,EAAOx9Q,KAEPqwS,EADSla,EAAama,cACF5B,kBAEpB+Z,EAAY,KACZpjT,EAAU,CACVsP,MAAOA,EACPlN,SAiFJ,SAA8BrE,EAAGiC,EAAS1E,GACtC,IAAKyC,EACD,OAGJ,GAAiB,eAAbA,EAAE87C,QAOF,aANInkB,EAAO33B,EAAEo8R,MACJpwM,MACLxqF,EAAK48R,YAAYzmQ,EAAKykQ,MACfzkQ,EAAK/C,QACZpzB,EAAKq9R,aAAalnQ,EAAKykQ,OAGxB,GAAiB,oBAAbp8R,EAAE87C,QAOT,aANInkB,EAAO33B,EAAEo8R,MACJxnQ,OACLpzB,EAAK86R,iBAAiB3kQ,EAAKykQ,MACpBzkQ,EAAKq0D,OACZxqF,EAAK66R,gBAAgB1kQ,EAAKykQ,OAG3B,GAAiB,eAAbp8R,EAAE87C,QAA0B,CACnC,IAAInkB,EACAyqQ,GADAzqQ,EAAO33B,EAAEo8R,MACQpwM,MACfxqF,EAAK0gS,aAAavqQ,EAAKykQ,MACvB56R,EAAK+gS,cAAc5qQ,EAAKykQ,MAC1B+kB,EAAS/mC,EAAKuoC,aACd,kFACA1gT,GAEA+pF,EAAQm1N,EAAOv8E,cAAc,SAC7B54I,GAASo2M,IACTp2M,EAAMptF,MAAQwjS,EAAU3iS,OAAS,IAErC0hT,EACKv8E,cAAc,UACdtiO,iBAAiB,SAAS,SAAS/E,GAC5ByuF,EAAMptF,QACFwjS,IACAA,EAAU3iS,MAAQusF,EAAMptF,OAE5Bw7Q,EAAK0vB,UAAS,IAElBqX,EAAOt3O,aA3HnB+uH,MAAOp3L,GAGdA,IACFS,EAAQ4sB,MAAQrtB,EAAKO,MAGhB,IAAIq6R,EAAO,KAMX,GALI56R,IACA46R,EAAO56R,EAAKujS,kBAAkBxzR,EAAM87R,QAAS97R,EAAM+7R,SACnDva,EAAauyB,YAAc9jT,GAG3B46R,EAAM,CAGN,GADAipB,EAAY,GACR7jT,EAAK+jT,mBACLF,EAAY7jT,EAAK+jT,mBAAmBnpB,OACjC,CAECA,GACAA,EAAKxnQ,QACLwnQ,EAAKxnQ,OAAOupE,OACZi+L,EAAKxnQ,OAAOupE,MAAMxjG,QAElB0qT,EAAUllT,KAAK,CAAE27C,QAAS,mBAAoBsgP,KAAMA,IAExD,IAAIopB,EAAQppB,EAAKpwM,OAASowM,EAAKxnQ,OAC/BywR,EAAUllT,KACNqlT,EAAMC,OACA,gBACA,CAAE3pQ,QAAS,cAAesgP,KAAMA,IAE1CipB,EAAUllT,KACNqlT,EAAME,WACA,gBACA,CAAE5pQ,QAAS,cAAesgP,KAAMA,IAI9Cn6R,EAAQ4sB,OACHutQ,EAAKpwM,MAAQowM,EAAKpwM,MAAMjqF,KAAOq6R,EAAKxnQ,OAAO7yB,OAAS,IACrDq6R,EAAKpwM,OAASowM,EAAKpwM,MAAMjqF,MAAQooR,EAAUwC,SAC3C1qR,EAAQ4sB,MAAQ,UAEhButQ,EAAKxnQ,QAAUwnQ,EAAKxnQ,OAAO7yB,MAAQooR,EAAUuC,QAC7CzqR,EAAQ4sB,MAAQ,cAGpB,GAAIrtB,EAEA6jT,EAAYzoT,KAAKsoT,mBAAmB1jT,OACjC,CACH6jT,EAAYzoT,KAAKmoT,uBACjB,IAAIp2R,EAAQ/xB,KAAKy3E,MAAM8oN,cACnB5rR,EAAM87R,QACN97R,EAAM+7R,SAEN3+Q,GAEA02R,EAAUllT,KAAK,KAAM,CACjB27C,QAAS,aACT2jQ,aAAa,EACb11N,QAAS,CACLl7D,MAAO,QACP+pK,MAAOjqK,EACP1sB,QAASrF,KAAKwoT,oBAAoBz2R,MAQtD,GAAK02R,EAIM,IAAIl7B,EAAUsvB,YAAY4L,EAAWpjT,EAASgrS,IAwDvC,oBAAX1lS,QAA0BA,OAAOo+S,2BAA6Bp+S,OAAOo+S,yBAAyBrqT,UAAU45S,YAC/G3tS,OAAOo+S,yBAAyBrqT,UAAU45S,UAAY,SAC5Dr8R,EACAvZ,EACAstG,EACA94C,EACA8xP,EACAC,GAEA,IAAIC,EAAkB,EAClBC,EAAmB,EACnBC,EAAqB,EACrBC,EAAsB,EAE1B,GAAgB,IAAXL,EAAL,CAUA,QAJkBnvS,IAAfovS,IACFA,EAAaD,GAGD,MAAVA,GAAkBA,EAAO/oT,cAAgBR,MAE3C,GAAoB,GAAjBupT,EAAOjrT,OACTmrT,EAAkBC,EAAmBC,EAAqBC,EAAsBL,EAAO,QACnF,GAAoB,GAAjBA,EAAOjrT,OAEdmrT,EAAkBG,EAAsBL,EAAO,GAC/CG,EAAmBC,EAAqBJ,EAAO,OAE3C,IAAoB,GAAjBA,EAAOjrT,OAQd,OANAmrT,EAAkBF,EAAO,GACzBG,EAAmBH,EAAO,GAC1BI,EAAqBJ,EAAO,GAC5BK,EAAsBL,EAAO,QAO9BE,EAAkBF,GAAU,EAC5BG,EAAmBH,GAAU,EAC7BI,EAAqBH,GAAc,EACnCI,EAAsBJ,GAAc,EAIrCjpT,KAAK+/M,OAAO9jM,EAAIitS,EAAiBxmT,GACjC1C,KAAKw3S,OAAOv7R,EAAI+zF,EAAIm5M,EAAkBzmT,GACtC1C,KAAKspT,iBAAiBrtS,EAAI+zF,EAAGttG,EAAGuZ,EAAI+zF,EAAGttG,EAAIymT,GAG3CnpT,KAAKw3S,OAAOv7R,EAAI+zF,EAAGttG,EAAIw0D,EAAImyP,GAC3BrpT,KAAKspT,iBACJrtS,EAAI+zF,EACJttG,EAAIw0D,EACJj7C,EAAI+zF,EAAIq5M,EACR3mT,EAAIw0D,GAILl3D,KAAKw3S,OAAOv7R,EAAIotS,EAAqB3mT,EAAIw0D,GACzCl3D,KAAKspT,iBAAiBrtS,EAAGvZ,EAAIw0D,EAAGj7C,EAAGvZ,EAAIw0D,EAAIkyP,GAG3CppT,KAAKw3S,OAAOv7R,EAAGvZ,EAAI0mT,GACnBppT,KAAKspT,iBAAiBrtS,EAAGvZ,EAAGuZ,EAAIitS,EAAiBxmT,QAvDhD1C,KAAK0qS,KAAKzuR,EAAEvZ,EAAEstG,EAAE94C,KAmEfq2N,EAAUg8B,eARV,SAAwBrlT,EAAG5E,GACvB,IAAK,IAAIxB,KAAKoG,EACV,GAAIA,EAAEpG,IAAMwB,EAAExB,GACV,OAAO,EAGf,OAAO,GASXyvR,EAAUz6I,SAAWA,EAerBy6I,EAAUi8B,cAbV,SAAuBtoT,GACnB,MACI,QACAwW,KAAKq/C,MAAa,IAAP71D,EAAE,IAAU85B,UACvB,IACAtjB,KAAKq/C,MAAa,IAAP71D,EAAE,IAAU85B,UACvB,IACAtjB,KAAKq/C,MAAa,IAAP71D,EAAE,IAAU85B,UACvB,KACa,GAAZ95B,EAAEnD,OAAcmD,EAAE,GAAG85B,QAAQ,GAAK,OACnC,KAWRuyP,EAAU0a,kBAAoBA,EAgB9B1a,EAAUk8B,aAbV,SAAsB5f,EAAU5tR,EAAGvZ,GAC3BuZ,EAAI4tR,EAAS,GACbA,EAAS,GAAK5tR,EACPA,EAAI4tR,EAAS,KACpBA,EAAS,GAAK5tR,GAGdvZ,EAAImnS,EAAS,GACbA,EAAS,GAAKnnS,EACPA,EAAImnS,EAAS,KACpBA,EAAS,GAAKnnS,IAiBtB6qR,EAAUm8B,iBAXV,SAA0BhqT,EAAGmN,GACzB,QACInN,EAAE,GAAKmN,EAAG,GAAG,IACbnN,EAAE,GAAKmN,EAAG,GAAG,IACbnN,EAAE,GAAKmN,EAAG,GAAG,IACbnN,EAAE,GAAKmN,EAAG,GAAG,KAyBrB0gR,EAAU4c,gBAAkBA,EAuB5B5c,EAAUo8B,QAlBV,SAAiBnxP,GACQ,KAAjBA,EAAIz3B,OAAO,KACXy3B,EAAMA,EAAI9zD,MAAM,IAEpB8zD,EAAMA,EAAIzD,cAKV,IAJA,IAGI60P,EAAMC,EAHNC,EAAgB,mBAChB9nT,EAAQ,IAAIvC,MAAM,GAClBwE,EAAI,EAECnG,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACxB8rT,EAAOE,EAAclpT,QAAQ43D,EAAIz3B,OAAOjjC,IACxC+rT,EAAOC,EAAclpT,QAAQ43D,EAAIz3B,OAAOjjC,EAAI,IAC5CkE,EAAMiC,GAAY,GAAP2lT,EAAYC,EACvB5lT,IAEJ,OAAOjC,GAoBXurR,EAAUw8B,QAbV,SAAiBC,GAIb,IAHA,IAEIJ,EAAMC,EAFNC,EAAgB,mBAChBtxP,EAAM,IAED16D,EAAI,EAAGA,EAAI,EAAGA,IACnB8rT,EAAOI,EAAQlsT,GAAK,GACpB+rT,EAAOG,EAAQlsT,GAAK,GAEpB06D,GAAOsxP,EAAc/oR,OAAO6oR,GAAQE,EAAc/oR,OAAO8oR,GAE7D,OAAOrxP,GA2MXqkP,EAAYn+S,UAAU4+S,QAAU,SAAS1mS,EAAM5U,EAAOqD,GAClD,IAAIm4Q,EAAOx9Q,KACXqF,EAAUA,GAAW,GAErB,IAAIkF,EAAUH,SAASsF,cAAc,OACrCnF,EAAQiM,UAAY,yBAEpB,IAAI8oN,GAAW,EAkDf,SAAS2qF,EAActpT,GACnB,IAAIqB,EAAQhC,KAAKgC,MACbkoT,GAAe,GAEf1sC,EAAKu/B,iBACLv/B,EAAKu/B,gBAAgB9vO,MAAMtsE,GAI3B0E,EAAQoC,aASE,IARFpC,EAAQoC,SAAS7H,KACrBI,KACAgC,EACAqD,EACA1E,EACA68Q,EACAn4Q,EAAQT,QAGRslT,GAAe,IAKvB,GAAIloT,EAAO,CACP,GACIA,EAAMyF,WACLpC,EAAQ8kT,wBACU,IAAnBnoT,EAAMs9N,UAWI,IARFt9N,EAAMyF,SAAS7H,KACnBI,KACAgC,EACAqD,EACA1E,EACA68Q,EACAn4Q,EAAQ22L,SAGRkuH,GAAe,GAGvB,GAAIloT,EAAMmrF,QAAS,CACf,IAAKnrF,EAAMmrF,QAAQ9nF,QACf,KAAM,oCAEI,IAAIm4Q,EAAKv9Q,YAAY+B,EAAMmrF,QAAQ9nF,QAAS,CACtDoC,SAAUzF,EAAMmrF,QAAQ1lF,SACxBkN,MAAOhU,EACPm8S,WAAYt/B,EACZ2sC,sBACInoT,EAAMmrF,QAAQg9N,sBAClBl4R,MAAOjwB,EAAMmrF,QAAQl7D,MACrB+pK,MAAOh6L,EAAMmrF,QAAQ6uG,MACrBouH,SAAU/kT,EAAQ+kT,WAEtBF,GAAe,GAInBA,IAAiB1sC,EAAKzwM,MACtBywM,EAAKvwM,QAIb,OAlHc,OAAVjrE,EACAuI,EAAQsE,UAAU2K,IAAI,cAItBjP,EAAQ8yS,UAAYr7S,GAASA,EAAMiwB,MAAQjwB,EAAMiwB,MAAQrb,EACzDrM,EAAQvI,MAAQA,EAEZA,IACIA,EAAMs9N,WACNA,GAAW,EACX/0N,EAAQsE,UAAU2K,IAAI,cAEtBxX,EAAMmrF,SAAWnrF,EAAM6gT,cACvBt4S,EAAQsE,UAAU2K,IAAI,gBAIV,mBAATxX,GACPuI,EAAQm7S,QAAR,MAA2B9uS,EAC3BrM,EAAQ8/S,iBAAmBroT,GAE3BuI,EAAQm7S,QAAR,MAA2B1jT,EAG3BA,EAAMwU,YACNjM,EAAQiM,WAAa,IAAMxU,EAAMwU,YAIzCxW,KAAKysG,KAAK78F,YAAYrF,GACjB+0N,GACD/0N,EAAQ7E,iBAAiB,QAASukT,GAElC5kT,EAAQ+kT,UACR7/S,EAAQ7E,iBAAiB,cAG7B,SAAoB/E,GAChB,IAAIqB,EAAQhC,KAAKgC,MACjB,IAAKA,IAAUA,EAAM6gT,YACjB,OAGJoH,EAAcrqT,KAAKI,KAAMW,MAsEtB4J,GAGXsyS,EAAYn+S,UAAUuuE,MAAQ,SAAStsE,EAAG2pT,GAClCtqT,KAAKysG,KAAKtlG,YACVnH,KAAKysG,KAAKtlG,WAAW23I,YAAY9+I,KAAKysG,MAEtCzsG,KAAK88S,aAAewN,IACpBtqT,KAAK88S,WAAW/vO,MAAO,EACvB/sE,KAAK88S,WAAWC,gBAAkB,UACxBljS,IAANlZ,EACAX,KAAK88S,WAAW7vO,QAEhBtsE,IACCk8S,EAAY0N,oBAAoB5pT,EAAGX,KAAK88S,WAAWrwM,OAEpDowM,EAAY97O,QAAQ/gE,KAAK88S,WAAWrwM,KAAM,aAAc9rG,IAG5DX,KAAK+8S,iBACL/8S,KAAK+8S,gBAAgB9vO,MAAMtsE,GAAG,GAG9BX,KAAKysG,KAAK8wM,eACV3kR,aAAa54B,KAAKysG,KAAK8wM,gBAK/BV,EAAY97O,QAAU,SAASx2D,EAASigT,EAAY1gG,EAAQ33D,GACxD,IAAIyK,EAAMxyJ,SAASuzJ,YAAY,eAS/B,OARAf,EAAI6tJ,gBAAgBD,GAAY,GAAM,EAAM1gG,GAC5CltD,EAAIyxB,WAAal8B,EACb5nJ,EAAQuyJ,cACRvyJ,EAAQuyJ,cAAcF,GACfryJ,EAAQmgT,UACfngT,EAAQmgT,SAAS5tJ,cAAcF,GAG5BA,GAIXigJ,EAAYn+S,UAAUisT,WAAa,WAC/B,OAAI3qT,KAAKqF,QAAQy3S,WACN98S,KAAKqF,QAAQy3S,WAAW6N,aAE5B3qT,MAGX68S,EAAYn+S,UAAUukT,cAAgB,WAClC,OAAIjjT,KAAKqF,QAAQy3S,WACN98S,KAAKqF,QAAQy3S,WAAWmG,gBAE5BjjT,KAAKqF,QAAQsP,OAGxBkoS,EAAY0N,oBAAsB,SAAS51S,EAAOpK,GAC9C,IAAI0B,EAAO0I,EAAMm5K,QACb/hL,EAAM4I,EAAMo5K,QACZ28G,EAAOngS,EAAQuC,wBACnB,QAAK49R,IAID3+R,EAAM2+R,EAAK3+R,KACXA,EAAM2+R,EAAK3+R,IAAM2+R,EAAK5/R,QACtBmB,EAAOy+R,EAAKz+R,MACZA,EAAOy+R,EAAKz+R,KAAOy+R,EAAK7/R,QAOhC0iR,EAAUsvB,YAAcA,EAExBtvB,EAAUujB,qBAAuB,SAAST,GAGtC,IAAIp5R,GAFJo5R,EAAaA,GAAc1lS,QAEDP,SAASk9S,iBAAiB,oBACpD,GAAKrwS,EAASlZ,OAAd,CAKA,IADA,IAAIqE,EAAS,GACJtE,EAAI,EAAGA,EAAImZ,EAASlZ,OAAQD,IACjCsE,EAAOmB,KAAK0T,EAASnZ,IAGzB,IAASA,EAAE,EAAGA,EAAIsE,EAAOrE,OAAQD,IACzBsE,EAAOtE,GAAGmvE,MACV7qE,EAAOtE,GAAGmvE,QACH7qE,EAAOtE,GAAGqJ,YACjB/E,EAAOtE,GAAGqJ,WAAW23I,YAAY18I,EAAOtE,MAKpDyvR,EAAUq9B,YAAc,SAAShtT,EAAQu0J,GACrC,IAAK,IAAIr0J,KAAKq0J,EAENv0J,EAAO+B,eAAe7B,KAG1BF,EAAOE,GAAKq0J,EAAOr0J,IAGvB,GAAIq0J,EAAOzzJ,UAEP,IAAK,IAAIZ,KAAKq0J,EAAOzzJ,UAEZyzJ,EAAOzzJ,UAAUiB,eAAe7B,KAIjCF,EAAOc,UAAUiB,eAAe7B,KAMhCq0J,EAAOzzJ,UAAUmsT,iBAAiB/sT,GAClCF,EAAOc,UAAUosT,iBACbhtT,EACAq0J,EAAOzzJ,UAAUmsT,iBAAiB/sT,IAGtCF,EAAOc,UAAUZ,GAAKq0J,EAAOzzJ,UAAUZ,GAIvCq0J,EAAOzzJ,UAAUqsT,iBAAiBjtT,IAClCF,EAAOc,UAAUssT,iBACbltT,EACAq0J,EAAOzzJ,UAAUqsT,iBAAiBjtT,OAkBzD8/S,EAAYqN,YAAc,SAASxoT,EAAEo7S,GAEpC,GAAIA,EAAJ,CAEA,IAAI,IAAI//S,EAAI,EAAGA,EAAI+/S,EAAO9/S,OAAS,IAAKD,EACxC,CACC,IAAI4B,EAAIm+S,EAAO//S,GACXotT,EAAKrN,EAAO//S,EAAE,GAClB,KAAGotT,EAAG,GAAKzoT,GAAX,CAEA,IAAItB,EAAK+pT,EAAG,GAAKxrT,EAAE,GACnB,GAAIgY,KAAKmgD,IAAI12D,GAAK,KACjB,OAAOzB,EAAE,GACV,IAAIyrT,GAAW1oT,EAAI/C,EAAE,IAAMyB,EAC3B,OAAOzB,EAAE,IAAM,EAAMyrT,GAAWD,EAAG,GAAKC,GAEzC,OAAO,IAGRvN,EAAYl/S,UAAUsxS,KAAO,SAAU/2J,EAAKxsI,EAAM6vR,EAAaskB,EAAkBwK,EAAYC,GAE5F,IAAIxN,EAAS79S,KAAK69S,OAClB,GAAIA,EAAJ,CAEA79S,KAAKyM,KAAOA,EACZ,IAAIujG,EAAIvjG,EAAK,GAAmB,EAAdzM,KAAKmN,OACnB+pD,EAAIzqD,EAAK,GAAmB,EAAdzM,KAAKmN,OAEvBi+S,EAAaA,GAAc,OAE3BnyK,EAAIr9D,OACJq9D,EAAIqyJ,UAAUtrS,KAAKmN,OAAOnN,KAAKmN,QAE5ByzS,IAEF3nK,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAS,EAAE,EAAE5pM,EAAE94C,GACnB+hF,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAW,GAAF5pM,EAAM,EAAE,EAAE94C,GACvB+hF,EAAI6+J,YAAc,OAClB7+J,EAAI8+J,WAAW,EAAE,EAAE/nM,EAAE94C,IAEtB+hF,EAAI6+J,YAAcsT,EACfC,IACFpyK,EAAIo/J,YAAc,IACnBp/J,EAAI09J,YACJ,IAAI,IAAI74S,EAAI,EAAGA,EAAI+/S,EAAO9/S,SAAUD,EACpC,CACC,IAAI4B,EAAIm+S,EAAO//S,GACfm7I,EAAIu+J,OAAQ93S,EAAE,GAAKswG,GAAI,EAAMtwG,EAAE,IAAMw3D,GAItC,GAFA+hF,EAAI6hK,SACJ7hK,EAAIo/J,YAAc,GACdgT,EACH,IAAQvtT,EAAI,EAAGA,EAAI+/S,EAAO9/S,SAAUD,EACpC,CACK4B,EAAIm+S,EAAO//S,GACfm7I,EAAI4+J,UAAY73S,KAAKo7S,UAAYt9S,EAAI,OAAUkC,KAAK8hM,SAAWhkM,EAAI,OAAS,OAC5Em7I,EAAI09J,YACJ19J,EAAIy+J,IAAKh4S,EAAE,GAAKswG,GAAI,EAAMtwG,EAAE,IAAMw3D,EAAG,EAAG,EAAa,EAAVx/C,KAAKigS,IAChD1+J,EAAI2+J,OAEN3+J,EAAIu9J,YAILoH,EAAYl/S,UAAU+pO,YAAc,SAAU6iF,EAAUhvB,GAEvD,IAAIuhB,EAAS79S,KAAK69S,OAClB,GAAIA,KAEAyN,EAAS,GAAK,GAAlB,CAIA,IAAIt7M,EAAIhwG,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,OACxB+pD,EAAIl3D,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,OACxB8O,EAAIqvS,EAAS,GAAKtrT,KAAKmN,OACvBzK,EAAI4oT,EAAS,GAAKtrT,KAAKmN,OACvBwlC,EAAM,CAAC12B,EAAEvZ,GACT6oT,EAAW,GAAKjvB,EAAY/F,GAAG7gM,MAInC,GAFA11F,KAAKo7S,SAAWp7S,KAAKwrT,eAAe74Q,EAAK44Q,IAEpB,GAAlBvrT,KAAKo7S,SACR,CACC,IAAI9L,EAAQ,CAACrzR,EAAI+zF,EAAG,EAAIttG,EAAIw0D,GAC5B2mP,EAAOt6S,KAAK+rS,GACZuO,EAAO/0S,MAAK,SAAS5E,EAAE5E,GAAI,OAAO4E,EAAE,GAAK5E,EAAE,MAC3CU,KAAKo7S,SAAWyC,EAAOj9S,QAAQ0uS,GAC/BtvS,KAAK89S,aAAc,EAEpB,OAAqB,GAAlB99S,KAAKo7S,eAAR,IAIDwC,EAAYl/S,UAAUg0S,YAAc,SAAU4Y,EAAUhvB,GAEvD,IAAIuhB,EAAS79S,KAAK69S,OAClB,GAAIA,EAAJ,CAEA,IAAIv9S,EAAIN,KAAKo7S,SACb,KAAG96S,EAAI,GAAP,CAEA,IAAI2b,GAAKqvS,EAAS,GAAKtrT,KAAKmN,SAAWnN,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,QACvDzK,GAAK4oT,EAAS,GAAKtrT,KAAKmN,SAAWnN,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,QACvDs+S,EAAW,CAAEH,EAAS,GAAKtrT,KAAKmN,OAASm+S,EAAS,GAAKtrT,KAAKmN,QAC5Do+S,EAAW,GAAKjvB,EAAY/F,GAAG7gM,MACnC11F,KAAK0rT,SAAW1rT,KAAKwrT,eAAeC,EAAUF,GAC9C,IAAIjc,EAAQuO,EAAOv9S,GACnB,GAAGgvS,EACH,CACC,IAAIqc,EAAqB,GAALrrT,GAAUA,GAAKu9S,EAAO9/S,OAAS,EACnD,IAAK4tT,IAAkBL,EAAS,IAAM,IAAMA,EAAS,GAAKtrT,KAAKyM,KAAK,GAAK,IAAM6+S,EAAS,IAAM,IAAMA,EAAS,GAAKtrT,KAAKyM,KAAK,GAAK,IAIhI,OAFAoxS,EAAOtrR,OAAOjyB,EAAE,QAChBN,KAAKo7S,UAAY,GAMjB9L,EAAM,GAHFqc,EAGY,GAALrrT,EAAS,EAAI,EAFboX,KAAKw6E,MAAMj2E,EAAE,EAAE,GAG3BqzR,EAAM,GAAK,EAAM53R,KAAKw6E,MAAMxvF,EAAE,EAAE,GAChCm7S,EAAO/0S,MAAK,SAAS5E,EAAE5E,GAAI,OAAO4E,EAAE,GAAK5E,EAAE,MAC3CU,KAAKo7S,SAAWyC,EAAOj9S,QAAQ0uS,GAC/BtvS,KAAK89S,aAAc,MAIrBF,EAAYl/S,UAAU80S,UAAY,SAAU8X,EAAUhvB,GAGrD,OADAt8R,KAAKo7S,UAAY,GACV,GAGRwC,EAAYl/S,UAAU8sT,eAAiB,SAAS74Q,EAAK44Q,GAEpD,IAAI1N,EAAS79S,KAAK69S,OAClB,IAAIA,EACH,OAAQ,EACT0N,EAAWA,GAAY,GAQvB,IAPA,IAAIv7M,EAAKhwG,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,OACzB+pD,EAAKl3D,KAAKyM,KAAK,GAAmB,EAAdzM,KAAKmN,OACzB6vR,EAAM6gB,EAAO9/S,OACbkiT,EAAK,CAAC,EAAE,GACR2L,EAAW,IACXC,GAAW,EAEP/tT,EAAI,EAAGA,EAAIk/R,IAAOl/R,EAC1B,CACC,IAAI4B,EAAIm+S,EAAO//S,GACfmiT,EAAG,GAAKvgT,EAAE,GAAKswG,EACfiwM,EAAG,IAAM,EAAMvgT,EAAE,IAAMw3D,EACpB+oP,EAAG,GAAKttQ,EAAI,IACD70C,EACd,IAAI4gT,EAAOoN,KAAKh5K,SAASngG,EAAIstQ,GAC1BvB,EAAOkN,GAAYlN,EAAO6M,IAE7BM,EAAU/tT,EACV8tT,EAAWlN,GAEZ,OAAOmN,GAGRt+B,EAAUqwB,YAAcA,EAGrBrwB,EAAUiF,kBAAoB,SAASlgH,GACnC,OAAQA,EAAO,IACVxzK,QAAQ,cAAe,IACvBA,QAAQ,OAAQ,IAChBA,QAAQ,sBAAuB,IAC/Bw6B,MAAM,KAAM,GAAG,GACfx6B,QAAQ,YAAa,IACrBA,QAAQ,UAAW,IACnBw6B,MAAM,KACNtK,OAAOk8D,UAGhBxzE,KAAKw6E,MAAQ,SAAS9uF,EAAGc,EAAG5E,GACxB,OAAO4E,EAAId,EAAIc,EAAI5E,EAAI8D,EAAI9D,EAAI8D,GAGd,oBAAVuH,QAA0BA,OAAM,wBACvCA,OAAOhD,sBACHgD,OAAO9C,6BACP8C,OAAO7C,0BACP,SAASL,GACLkD,OAAO3C,WAAWP,EAAU,IAAO,MAlrXnD,CAqrXGzH,MAGC3C,EAAQkwR,UAAYvtR,KAAKutR,UAI7B,SAAUtsP,GACN,IAAIssP,EAAYtsP,EAAOssP,UAGvB,SAASw+B,IACL/rT,KAAK0hS,UAAU,QAAS,UACxB1hS,KAAK0hS,UAAU,SAAU,UAc7B,SAASzC,IAELj/R,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAKkhB,WAAa,CAAE8sE,SAAS,GAC7BhuF,KAAKguF,SAAU,EAGfhuF,KAAK+xS,SAAW,IAAIxkB,EAAUyH,OAC9Bh1R,KAAK+xS,SAASvE,eAAiBxtS,KAC/BA,KAAK+xS,SAASia,cAAe,EAE7BhsT,KAAK+xS,SAASjR,UAAY9gS,KAAKisT,kBAAkB7wP,KAAKp7D,MAGtDA,KAAK+xS,SAAS/Q,aAAehhS,KAAKksT,mBAAmB9wP,KAAKp7D,MAC1DA,KAAK+xS,SAAS1Q,eAAiBrhS,KAAKmsT,uBAAuB/wP,KAAKp7D,MAChEA,KAAK+xS,SAASxQ,mBAAqBvhS,KAAKosT,0BAA0BhxP,KAAKp7D,MACvEA,KAAK+xS,SAAStQ,eAAiBzhS,KAAKqsT,uBAAuBjxP,KAAKp7D,MAEhEA,KAAK+xS,SAASpQ,cAAgB3hS,KAAKssT,oBAAoBlxP,KAAKp7D,MAC5DA,KAAK+xS,SAASjQ,gBAAkB9hS,KAAKusT,wBAAwBnxP,KAAKp7D,MAClEA,KAAK+xS,SAAS/P,oBAAsBhiS,KAAKwsT,2BAA2BpxP,KAAKp7D,MACzEA,KAAK+xS,SAAS7P,gBAAkBliS,KAAKysT,wBAAwBrxP,KAAKp7D,MA6UtE,SAAS6gS,IACL7gS,KAAK0hS,UAAU,GAAI,UAEnB1hS,KAAK0sT,cAAgB,GACrB1sT,KAAKkhB,WAAa,CACvBtK,KAAM,GACNzR,KAAM,SACNnD,MAAO,GAGF,IAAIw7Q,EAAOx9Q,KAEXA,KAAK2sT,YAAc3sT,KAAK0nS,UACpB,OACA,OACA1nS,KAAKkhB,WAAWtK,MAChB,SAASxT,GACAA,GAGLo6Q,EAAKmnB,YAAY,OAAOvhS,MAGhCpD,KAAK4sT,YAAc5sT,KAAK0nS,UACpB,OACA,OACA1nS,KAAKkhB,WAAW/b,MAChB,SAAS/B,GACjBo6Q,EAAKmnB,YAAY,OAAOvhS,MAIpBpD,KAAK6sT,aAAe7sT,KAAK0nS,UACrB,SACA,QACA1nS,KAAKkhB,WAAWlf,OAChB,SAASoB,GACLo6Q,EAAKmnB,YAAY,QAAQvhS,MAIjCpD,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAsHtB,SAASqgT,IACL9sT,KAAK+gS,SAAS,GAAI,IAElB/gS,KAAK0sT,cAAgB,GACrB1sT,KAAKkhB,WAAa,GAClB,IAAIs8P,EAAOx9Q,KAEX5B,OAAOC,eAAe2B,KAAKkhB,WAAY,OAAQ,CAC3CuR,IAAK,WACD,OAAO+qP,EAAKkvC,eAEhBllR,IAAK,SAASpkC,GACD,IAALA,GAAWA,GAAKo6Q,EAAKkvC,gBAGrBlvC,EAAKkvC,cAELlvC,EAAK/lM,MAAMoqN,aAAarkB,EAAKkvC,cAAetpT,GAE5Co6Q,EAAK/lM,MAAMiqN,UAAUt+R,EAAGo6Q,EAAKt8P,WAAW/b,MAE5Cq4Q,EAAKmvC,YAAY3qT,MAAQoB,EACzBo6Q,EAAKkvC,cAAgBtpT,IAEzBnF,YAAY,IAGhBG,OAAOC,eAAe2B,KAAKkhB,WAAY,OAAQ,CAC3CuR,IAAK,WACD,OAAO+qP,EAAK2e,OAAO,GAAGh3R,MAE1BqiC,IAAK,SAASpkC,GACD,UAALA,GAAsB,SAALA,IACjBA,EAAImqR,EAAUwC,QAEnBxC,EAAUsG,kBAAkBrW,EAAK2e,OAAO,GAAGh3R,KAAK/B,IAC1Do6Q,EAAKiiB,gBAAgB,GACVjiB,EAAK2e,OAAO,GAAGh3R,KAAO/B,EAClBo6Q,EAAKkvC,eAELlvC,EAAK/lM,MAAMsqN,iBACPvkB,EAAKkvC,cACLlvC,EAAK2e,OAAO,GAAGh3R,MAGvBq4Q,EAAKovC,YAAY5qT,MAAQoB,GAAK,IAElCnF,YAAY,IAGhB+B,KAAK2sT,YAAc3sT,KAAK0nS,UAAU,OAAO,OAAO1nS,KAAKkhB,WAAWtK,KAAK,QACrE5W,KAAK4sT,YAAc5sT,KAAK0nS,UAAU,OAAO,OAAO1nS,KAAKkhB,WAAW/b,KAAK,QACrEnF,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAkCtB,SAASsgT,IACL/sT,KAAK0hS,UAAU,QAAS,UACxB1hS,KAAKqmS,YAAY,QAAS,GAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,SAAS,QAAQ,EAAE,SAChD1nS,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IA6BtB,SAASugT,IACLhtT,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKqmS,YAAY,SAAS,GAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,SAAS,SAAQ,EAAK,SACnD1nS,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAwBtB,SAASwgT,IACLjtT,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKqmS,YAAY,QAAS,IAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAO,QAAQ,GAAG,SAC/C1nS,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IA2BtB,SAASygT,IACLltT,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,IAAK,IACxBzM,KAAKmtT,QAAU,GAYb,SAASC,IACLptT,KAAK+gS,SAAS,MAAO,IACrB/gS,KAAK0hS,UAAU,GAAI,IACnB1hS,KAAKqmS,YAAY,MAAO,IACxBrmS,KAAKqmS,YAAY,OAAQ,QACzBrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAO,MAAM,GAAG,OAC7C1nS,KAAKwmC,MAAQ,KA6FjB,SAAS6mR,IACLrtT,KAAK0hS,UAAU,GAAI,IACnB1hS,KAAKqmS,YAAY,QAAS,IAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAO,OAAO,GAAG,SAC9C1nS,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAKie,OAAS,KA6BlB,SAASqvS,IACLttT,KAAKie,OAAS,GACdje,KAAK+gS,SAAS,GAAI,IAClB/gS,KAAK0hS,UAAU,GAAI,SACnB1hS,KAAK0hS,UAAU,SAAU,UACzB1hS,KAAKqmS,YAAY,QAAS,MAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAO,QAAQ1nS,KAAKkhB,WAAWlf,MAAM,SAClEhC,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAyCzB,SAAS8gT,IAEFvtT,KAAK+gS,SAAS,MAAO,SACrB/gS,KAAK+gS,SAAS,QAAS,IACvB/gS,KAAK0hS,UAAU,MAAO,SAC5B1hS,KAAKkhB,WAAa,CAAEjiB,MAAO,GACrBe,KAAKg9K,OAASh9K,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWjiB,MAAM,SAoBpE,SAASuuT,IACLxtT,KAAK+gS,SAAS,QAAS,sBACvB/gS,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK0hS,UAAU,QAAS,IAC9B1hS,KAAKqmS,YAAY,QAAQ,GAkBvB,SAASonB,IACLztT,KAAK+gS,SAAS,QAAS,SACvB/gS,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK0hS,UAAU,QAAS,IAC9B1hS,KAAKqmS,YAAY,MAAM,GACvBrmS,KAAKqmS,YAAY,SAAS,GAyBxB,SAASqnB,IACL1tT,KAAK+gS,SAAS,MAAO,IACrB/gS,KAAK0hS,UAAU,GAAI,IACnB1hS,KAAKqmS,YAAY,QAAS,IAC1BrmS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAO,QAAQ,GAAG1nS,KAAKgjD,SAASoY,KAAKp7D,OAClEA,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAKie,OAAS,KA+BlB,SAAS0vS,IACL3tT,KAAK+gS,SAAS,MAAO,IACrB/gS,KAAK0hS,UAAU,OAAQ,SACvB1hS,KAAKyM,KAAO,CAAC,IAAK,IAgBzB,SAASmhT,IAEF5tT,KAAK+gS,SAAS,MAAO,IACrB/gS,KAAK+gS,SAAS,QAAS,IACvB/gS,KAAK0hS,UAAU,MAAO,IAC5B1hS,KAAKkhB,WAAa,CAAEksB,SAAU,IACxBptC,KAAK2sT,YAAc3sT,KAAK0nS,UAAU,OAAO,QAAQ1nS,KAAKkhB,WAAWksB,SAAS,YAqB9E,SAASygR,IACL7tT,KAAK+gS,SAAS,IAAK,IACnB/gS,KAAK+gS,SAAS,IAAK,IACnB/gS,KAAK0hS,UAAU,GAAI,IACzB1hS,KAAK8tT,QAAU,GACf,IAAItwC,EAAOx9Q,KACXA,KAAK0nS,UAAU,SAAS,QAAQ,IAAG,WAClClqB,EAAKswC,QAAU,MAEhB9tT,KAAKyM,KAAOzM,KAAKizR,cAsBf,SAASptC,IACL7lP,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,MACd/gS,KAAK0hS,UAAU,OACrB1hS,KAAKkhB,WAAa,CAAE6sS,QAAS,SAAUv+S,UAAWq2O,EAASmoE,WACrDhuT,KAAKgC,MAAQ,KAgEpB,SAASisT,IACFjuT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,OAAQ,GACtB/gS,KAAK+gS,SAAS,WAAYxT,EAAUwC,QAC1C/vR,KAAKkhB,WAAa,CAAEm9N,SAAU,aACxBr+O,KAAKgC,MAAQ,KACnB,IAAIw7Q,EAAOx9Q,KACXA,KAAK0nS,UAAU,SAAS,WAAW,IAAI,SAAStkS,GAC3Co6Q,EAAKx7Q,OAETw7Q,EAAK0wC,oBAqDJ,SAASC,IACLnuT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,QAAS,EAAG,CAAEl+R,MAAO,KACnC7C,KAAKgC,MAAQ,EA4CjB,SAASosT,IACLpuT,KAAK+gS,SAAS,KAAM,GACpB/gS,KAAK0hS,UAAU,MAAO,GACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IAarB,SAAS4hT,IACLruT,KAAKiP,KAAOs+Q,EAAU0C,SACtBjwR,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,MAAO,IACxBrmS,KAAK+gS,SAAS,MAAOxT,EAAUuC,OAC/B9vR,KAAK+gS,SAAS,MAAO,GAmCzB,SAASutB,IACLtuT,KAAKiP,KAAOs+Q,EAAU0C,SACtBjwR,KAAKqmS,YAAY,MAAO,IACxBrmS,KAAK+gS,SAAS,GAAIxT,EAAUuC,OAE5B9vR,KAAKg9K,OAASh9K,KAAK0nS,UAAU,OAAQ,OAAQ,GAAI,OACjD1nS,KAAKonS,YAAa,EAClBpnS,KAAKyM,KAAO,CAAC,IAAK,IAqBtB,SAAS8hT,IACLvuT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,YAAa,aAC9BrmS,KAAK+gS,SAAS,IAAK,IACnB/gS,KAAK+gS,SAAS,IAAK,IACnB/gS,KAAK0hS,UAAU,MAAO,IAEtB1hS,KAAKwuT,MAAQ,KACbxuT,KAAKb,KAAO,GA31ChB4sT,EAAK95R,MAAQ,OACb85R,EAAK9qT,KAAO,OAEZ8qT,EAAKrtT,UAAUg0R,UAAY,WACvB1yR,KAAK4yR,cAAc,EAA2B,IAAxB5yR,KAAKy3E,MAAMkkN,YACjC37R,KAAK4yR,cAAc,EAAG5yR,KAAKy3E,MAAMkkN,aAGrCpO,EAAUkE,iBAAiB,aAAcs6B,GA4BzC9sB,EAAShtQ,MAAQ,WACjBgtQ,EAASh+R,KAAO,sBAChBg+R,EAASyc,YAAc,OAEvBzc,EAASvgS,UAAU4kT,YAAc,WAC7B,MAAO,CAAC,CAAC,UAAW,aAsBxBrkB,EAASvgS,UAAUmzS,WAAa,SAASlxS,EAAGgyC,EAAK2pP,GAC7C,IAAI9e,EAAOx9Q,KACXgI,YAAW,WACPs0R,EAAY8Q,aAAa5vB,EAAKu0B,YAC/B,KAkBP9S,EAASvgS,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC3C3gS,KAAK+xS,SAASrR,SAAS5qQ,EAAQ6qQ,IAGnC1B,EAASvgS,UAAUg0R,UAAY,WAE3B,GADA1yR,KAAKguF,QAAUhuF,KAAKylS,mBAAmB,WAClCzlS,KAAKguF,QAAV,CAKA,GAAIhuF,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,OAAQD,IAAK,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBkE,EAAQhC,KAAK2yR,aAAa70R,GAC9BkC,KAAK+xS,SAAS7Q,aAAa9xM,EAAMx4E,KAAM5U,GAQ/C,GAHAhC,KAAK+xS,SAASlV,UAGV78R,KAAKo8R,QACL,IAASt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,OAAQD,IAAK,CAC1C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GACtBkE,EAAQhC,KAAK+xS,SAASnQ,cAAc5pQ,EAAOphB,MAC/C5W,KAAK4yR,cAAc90R,EAAGkE,MAKlCi9R,EAASvgS,UAAU+9R,oBAAsB,SAASuC,EAAW2B,EAAO1xR,GAC5DjP,KAAKguF,SACLhuF,KAAK+xS,SAAStV,oBAAoBuC,EAAW2B,EAAO1xR,IAI/DgwR,EAASvgS,UAAU46R,iBAAmB,SAASrgJ,EAAKqjJ,EAAalG,EAAQzjP,GAExE,IAAG3yC,KAAK0iM,MAAM+vE,UAAd,CAGA,IAAI/vQ,EAAI1C,KAAKyM,KAAK,GAAK8gR,EAAUG,kBAAoB,GAGjDwuB,EAAO3uB,EAAU0a,kBAAkBt1P,EAAI,GAAGA,EAAI,GAAG3yC,KAAK2yC,IAAI,GAAG3yC,KAAK2yC,IAAI,GAAKjwC,EAAE1C,KAAKyM,KAAK,GAAG8gR,EAAUG,mBACxGz0I,EAAI4+J,UAAYqE,EAAO,OAAS,OAChCjjK,EAAI09J,YACA32S,KAAK8xR,QAAUvE,EAAUiC,UAC5Bv2I,EAAIyxJ,KAAK,EAAGhoS,EAAG1C,KAAKyM,KAAK,GAAG,EAAG8gR,EAAUG,mBAEzCz0I,EAAIq/J,UAAW,EAAG51S,EAAG1C,KAAKyM,KAAK,GAAG,EAAG8gR,EAAUG,kBAAmB,EAAG,GACtEz0I,EAAI2+J,OAGJ3+J,EAAIs/J,UAAY,SAChBt/J,EAAIpkF,KAAO,aACXokF,EAAI4+J,UAAYqE,EAAO,OAAS,OAChCjjK,EAAIu/J,SAAU,IAAoB,GAAfx4S,KAAKyM,KAAK,GAAU/J,EAAI,MAG5Cu8R,EAASvgS,UAAU+pO,YAAc,SAAS9nO,EAAG2qT,EAAUhvB,GAEtD,IAAI55R,EAAI1C,KAAKyM,KAAK,GAAK8gR,EAAUG,kBAAoB,GAClD49B,EAAS,GAAK5oT,GAEhB45R,EAAYwc,6BAA6B94S,OAI3Ci/R,EAASvgS,UAAUu0R,YAAc,WAEhC,IAAIw7B,EAAazuT,KAAKm8R,OAASn8R,KAAKm8R,OAAOp+R,OAAS,EAChD2wT,EAAc1uT,KAAKo8R,QAAUp8R,KAAKo8R,QAAQr+R,OAAS,EACvD,MAAO,CAAE,IAAK2Z,KAAKC,IAAI82S,EAAWC,GAAenhC,EAAUK,iBAAmBL,EAAUG,oBAItFuR,EAASvgS,UAAUutT,kBAAoB,SAASt3S,EAAOgsR,GACnD,IAAInB,EAAOx/R,KAAKsoS,eAAe3zR,IAClB,GAAT6qR,GACAx/R,KAAKgmS,YAAYxG,IAIzBP,EAASvgS,UAAUwtT,mBAAqB,SAASt1S,EAAMzR,IAEtC,GADFnF,KAAKolS,cAAcxuR,IAG1B5W,KAAK+gS,SAASnqR,EAAMzR,IAI5B85R,EAASvgS,UAAUytT,uBAAyB,SAASwC,EAAS/3S,GAC1D,IAAI4oR,EAAOx/R,KAAKolS,cAAcupB,IACjB,GAATnvB,IAGOx/R,KAAKslS,aAAa9F,GACxB5oR,KAAOA,IAGhBqoR,EAASvgS,UAAU0tT,0BAA4B,SAASx1S,EAAMzR,GAC1D,IAAIq6R,EAAOx/R,KAAKolS,cAAcxuR,IACjB,GAAT4oR,IAGOx/R,KAAKslS,aAAa9F,GACxBr6R,KAAOA,IAGhB85R,EAASvgS,UAAU2tT,uBAAyB,SAASz1S,GACjD,IAAI4oR,EAAOx/R,KAAKolS,cAAcxuR,IACjB,GAAT4oR,GAGJx/R,KAAKwhS,YAAYhC,IAIrBP,EAASvgS,UAAU4tT,oBAAsB,SAAS11S,EAAMzR,IAEvC,GADFnF,KAAKsoS,eAAe1xR,IAE3B5W,KAAK0hS,UAAU9qR,EAAMzR,IAI7B85R,EAASvgS,UAAU6tT,wBAA0B,SAASoC,EAAS/3S,GAC3D,IAAI4oR,EAAOx/R,KAAKsoS,eAAeqmB,IAClB,GAATnvB,IAGOx/R,KAAK2lS,cAAcnG,GACzB5oR,KAAOA,IAGhBqoR,EAASvgS,UAAU8tT,2BAA6B,SAAS51S,EAAMzR,GAC3D,IAAIq6R,EAAOx/R,KAAKsoS,eAAe1xR,IAClB,GAAT4oR,IAGOx/R,KAAK2lS,cAAcnG,GACzBr6R,KAAOA,IAGhB85R,EAASvgS,UAAU+tT,wBAA0B,SAAS71S,GAClD,IAAI4oR,EAAOx/R,KAAKolS,cAAcxuR,IACjB,GAAT4oR,GAGJx/R,KAAKiiS,aAAazC,IAItBP,EAASvgS,UAAU2pT,oBAAsB,SAAS/rB,GAC9C,IAAI9e,EAAOx9Q,KACX,MAAO,CACH,CACIk/C,QAAS,OACTz3C,SAAU,WACN60R,EAAY8Q,aAAa5vB,EAAKu0B,cAM9C9S,EAASvgS,UAAU0nS,SAAW,SAAS35R,GACnCA,EAAK,IAAM,IAGfwyR,EAASvgS,UAAUwsC,UAAY,WAC3B,IAAI/rC,EAAOouR,EAAUsE,WAAWnzR,UAAUwsC,UAAUtrC,KAAKI,MAEzD,OADAb,EAAK4yS,SAAW/xS,KAAK+xS,SAAS7mQ,YACvB/rC,GAIX8/R,EAASvgS,UAAU2uE,MAAQ,WACvB,IAAIzoE,EAAO2oR,EAAUwF,WAAW/yR,KAAKmF,MACjChG,EAAOa,KAAKkrC,YAKhB,cAJO/rC,EAAI,UACJA,EAAI,cACJA,EAAI,QACXyF,EAAKswR,UAAU/1R,GACRyF,GAGdq6R,EAASvgS,UAAUqpT,eAAiB,SAASttM,GAa5C,IAPA,IAIIjkF,EAAM,GACNo4R,EAAQ,EAEJ9wT,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EACnC,CAEC04B,GADI5xB,EAAO61G,EAAM38G,IACPyY,IAAO3R,EACjBgqT,EAAQl3S,KAAKgI,IAAK9a,EAAK+tC,IAAI,GAAIi8Q,GACvBl3S,KAAKC,IAAK/S,EAAK+tC,IAAI,GAAIi8Q,GAMhC,IAAQ9wT,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EACnC,CACC,IAAI8G,EAEJ,IAFIA,EAAO61G,EAAM38G,IAERq+R,OACR,IAAI,IAAIh4R,EAAI,EAAGA,EAAIS,EAAKu3R,OAAOp+R,SAAUoG,EACzC,CACC,IAAIirF,EAAQxqF,EAAKu3R,OAAOh4R,GACxB,GAAKirF,GAAUA,EAAMrgC,MAEjBA,EAAOnqD,EAAK6yE,MAAM8pB,MAAOnS,EAAMrgC,SAG/Bv4B,EAAKu4B,EAAKqmO,YAGdp1R,KAAK+xS,SAAShR,SAAS3xM,EAAMx4E,KAAKm4C,EAAK5pD,OAUzC,GAAIP,EAAKw3R,QACR,IAAQj4R,EAAI,EAAGA,EAAIS,EAAKw3R,QAAQr+R,SAAUoG,EAC1C,CACC,IAAI6zB,EAASpzB,EAAKw3R,QAAQj4R,GAC1B,GAAK6zB,GAAWA,EAAOupE,OAAUvpE,EAAOupE,MAAMxjG,OAG9C,IADA,IACQkG,EAAI,EAAGA,EAAI+zB,EAAOupE,MAAMxjG,SAAUkG,EAC1C,CACC,IAAI8qD,EACJ,IADIA,EAAOnqD,EAAK6yE,MAAM8pB,MAAOvpE,EAAOupE,MAAMt9F,OAGtCuyB,EAAKu4B,EAAKumO,WAAd,EAEc,EACd,WAwBF/H,EAAU0R,SAAWA,EACrB1R,EAAUkE,iBAAiB,iBAAkBwN,GAgD7C4B,EAAW5uQ,MAAQ,QACnB4uQ,EAAW5/R,KAAO,qBAErB4/R,EAAWniS,UAAU+kS,YAAc,WAElCzjS,KAAK6uT,cAINhuB,EAAWniS,UAAUmwT,WAAa,WAEjC,IAAI1pT,EAAOnF,KAAKkhB,WAAW/b,KAC3BnF,KAAK4sT,YAAY5qT,MAAQmD,EAGtBnF,KAAKo8R,QAAQ,GAAGj3R,MAAQA,IAEfooR,EAAUsG,kBAAkB7zR,KAAKo8R,QAAQ,GAAGj3R,KAAKA,IAC3DnF,KAAK0/R,iBAAiB,GACvB1/R,KAAKo8R,QAAQ,GAAGj3R,KAAOA,GAIb,UAARA,GAEFnF,KAAK6sT,aAAa1nT,KAAO,SACzBnF,KAAK6sT,aAAa7qT,MAAQ,GAEX,WAARmD,GAEPnF,KAAK6sT,aAAa1nT,KAAO,SACzBnF,KAAK6sT,aAAa7qT,OAAQ,GAEX,UAARmD,GAEPnF,KAAK6sT,aAAa1nT,KAAO,OACzBnF,KAAK6sT,aAAa7qT,MAAQ,KAI1BhC,KAAK6sT,aAAa1nT,KAAO,KACzBnF,KAAK6sT,aAAa7qT,MAAQ,MAE3BhC,KAAKkhB,WAAWlf,MAAQhC,KAAK6sT,aAAa7qT,MAGtChC,KAAKy3E,OAASz3E,KAAK0sT,eACtB1sT,KAAKy3E,MAAM6pN,gBAAgBthS,KAAK0sT,cAAevnT,IAKjD07R,EAAWniS,UAAUwlS,kBAAoB,SAASttR,EAAKxT,GAEtD,GAAY,QAARwT,EACJ,CACC,GAAS,IAALxT,GAAWA,GAAKpD,KAAK0sT,eAAsB,WAALtpT,EACzC,OAAO,EAELpD,KAAKy3E,QAEHz3E,KAAK0sT,cAER1sT,KAAKy3E,MAAM0pN,YAAanhS,KAAK0sT,cAAetpT,GAE5CpD,KAAKy3E,MAAMspN,SAAU39R,EAAGpD,KAAKkhB,WAAW/b,OAG1CnF,KAAK2sT,YAAY3qT,MAAQoB,EACzBpD,KAAK0sT,cAAgBtpT,MAEL,QAARwT,GAER5W,KAAK6uT,cAOJhuB,EAAWniS,UAAUgmS,SAAW,WAC5B,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKkhB,WAAWtK,KAEpB5W,KAAKiyB,OAGhB4uQ,EAAWniS,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACzC3gS,KAAKkhB,WAAW/b,MAAQooR,EAAUuC,OAClC9vR,KAAKgmS,YAAY,EAAGrF,IAI5BE,EAAWniS,UAAUg0R,UAAY,WAC7B,IAAI97Q,EAAO5W,KAAKkhB,WAAWtK,KAEvBzX,EAAOa,KAAKy3E,MAAM0kN,OAAOvlR,GACxBzX,EAKLa,KAAK4yR,cAAc,OAAkB/4Q,IAAf1a,EAAK6C,MAAsB7C,EAAK6C,MAAQhC,KAAKkhB,WAAWlf,OAJ1EhC,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAO9C6+R,EAAWniS,UAAU28R,UAAY,WACzBr7R,KAAK0sT,eACL1sT,KAAKy3E,MAAM+pN,YAAYxhS,KAAK0sT,gBAIpCn/B,EAAUsT,WAAaA,EACvBtT,EAAUkE,iBAAiB,cAAeoP,GA2D1CisB,EAAY76R,MAAQ,SACpB66R,EAAY7rT,KAAO,sBAEnB6rT,EAAYpuT,UAAUg0R,UAAY,WAC9B1yR,KAAKie,OAASje,KAAK2yR,aAAa,GAChC3yR,KAAKy3E,MAAMm7M,cAAc5yR,KAAKkhB,WAAWtK,KAAM5W,KAAKie,SAGxD6uS,EAAYpuT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC1C3gS,KAAKkhB,WAAW/b,MAAQooR,EAAUwC,QAClC/vR,KAAKy3E,MAAM1W,QAAQ/gE,KAAKkhB,WAAWtK,KAAM+pR,IAIjDmsB,EAAYpuT,UAAU28R,UAAY,WAC1Br7R,KAAK0sT,eACL1sT,KAAKy3E,MAAMwqN,aAAajiS,KAAK0sT,gBAIrCI,EAAYpuT,UAAUgmS,SAAW,WAC7B,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKkhB,WAAWtK,KAEpB5W,KAAKiyB,OAGhBs7P,EAAUu/B,YAAcA,EACxBv/B,EAAUkE,iBAAiB,eAAgBq7B,GAW3CC,EAAe96R,MAAQ,eACvB86R,EAAe9rT,KAAO,kBAEtB8rT,EAAeruT,UAAUg0R,UAAY,WACjC1yR,KAAK4yR,cAAc,EAAGxnR,WAAWpL,KAAKkhB,WAAL,SAGrC6rS,EAAeruT,UAAUgmS,SAAW,WAChC,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKkhB,WAAWlf,MAEpBhC,KAAKiyB,OAGnB86R,EAAeruT,UAAUskD,SAAW,SAAS5/C,GAE5CpD,KAAK2kS,YAAY,QAAQvhS,IAGvB2pT,EAAeruT,UAAU46R,iBAAmB,SAASrgJ,GAEjDj5I,KAAKo8R,QAAQ,GAAGv5R,MAAQ7C,KAAKkhB,WAAL,MAAyB8Z,QAAQ,IAG7DuyP,EAAUkE,iBAAiB,cAAes7B,GAU1CC,EAAgB/6R,MAAQ,gBACxB+6R,EAAgB/rT,KAAO,mBACvB+rT,EAAgBtuT,UAAUgmS,SAAWqoB,EAAeruT,UAAUgmS,SAE9DsoB,EAAgBtuT,UAAUg0R,UAAY,WAClC1yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAL,QAG7B8rS,EAAgBtuT,UAAUskD,SAAW+pQ,EAAeruT,UAAUskD,SAE9DgqQ,EAAgBtuT,UAAU4kT,YAAc,WACvC,MAAO,CAAC,CAAC,SAAU/1B,EAAUwC,UAG9Bi9B,EAAgBtuT,UAAUgiS,SAAW,SAAS5qQ,GAE7C91B,KAAKgjD,UAAWhjD,KAAKkhB,WAAWlf,QAG9BurR,EAAUkE,iBAAiB,gBAAiBu7B,GAU5CC,EAAeh7R,MAAQ,eACvBg7R,EAAehsT,KAAO,kBAEtBgsT,EAAevuT,UAAUgmS,SAAWqoB,EAAeruT,UAAUgmS,SAE7DuoB,EAAevuT,UAAUg0R,UAAY,WACjC1yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAL,QAG7B+rS,EAAevuT,UAAUskD,SAAW+pQ,EAAeruT,UAAUskD,SAE7DiqQ,EAAevuT,UAAUg2S,WAAa,SAAS/mO,GAE9C,IAAI6vM,EAAOx9Q,KACPowH,EAAS,IAAIukK,WACjBvkK,EAAOwkK,OAAS,SAASj0R,GAExB68Q,EAAKmnB,YAAY,QAAQhkS,EAAE/C,OAAOwE,SAEnCguH,EAAO0kK,WAAWnnN,IAGhB4/M,EAAUkE,iBAAiB,eAAgBw7B,GAQ3CC,EAAej7R,MAAQ,eACvBi7R,EAAejsT,KAAO,kBAEtBisT,EAAexuT,UAAUg0R,UAAY,WACjC1yR,KAAK4yR,cAAc,EAAG5yR,KAAKmtT,UAG/B5/B,EAAUkE,iBAAkB,eAAgBy7B,GAW5CE,EAAan7R,MAAQ,aACrBm7R,EAAansT,KAAO,6BACpBmsT,EAAa,SAAW,CAAEjoT,KAAM,OAAQqY,OAAQ,CAAC,OAAO,cAAc,OAAO,SAE7E4vS,EAAa1uT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC1C,OAAR4U,IAEI,MAAT5U,GAA0B,IAATA,EACpBhC,KAAKwmC,MAAQ,KAGbxmC,KAAKo0R,UAAUpyR,KAKforT,EAAa1uT,UAAUg0R,UAAY,WACrC,IAAI56Q,EAAM9X,KAAK2yR,aAAa,IAAM3yR,KAAKkhB,WAAWpJ,KAC/CA,GAAQA,GAAO9X,KAAK8uT,MAAQ9uT,KAAKuF,OAASvF,KAAKkhB,WAAW/b,MAC5DnF,KAAKo0R,UAAUt8Q,GACV9X,KAAK4yR,cAAc,EAAG5yR,KAAKwmC,QAGlC4mR,EAAa1uT,UAAUskD,SAAW+pQ,EAAeruT,UAAUskD,SAExDoqQ,EAAa1uT,UAAU01R,UAAY,SAASt8Q,GAC9C,IAAI0lQ,EAAOx9Q,KACX,IAAI8X,GAAOA,EAAI7X,cAAgBH,OAI9B,OAFA09Q,EAAKh3O,MAAQ,UACJg3O,EAAKgnB,SAAW,MAI1BxkS,KAAK8uT,KAAOh3S,EACZ9X,KAAKuF,MAAQvF,KAAKkhB,WAAW/b,KACC,QAApB2S,EAAIqxB,OAAO,EAAG,IAAgBokP,EAAUuD,QACxCh5Q,EAAMy1Q,EAAUuD,MAAQh5Q,EAAIqxB,OAAOrxB,EAAIlX,QAAQ,KAAO,IAEhE2zR,MAAMz8Q,GACLxV,MAAK,SAASkyR,GACd,IAAIA,EAASnqB,GACX,MAAM,IAAIn/P,MAAM,kBAElB,MAA2B,eAAxBsyQ,EAAKt8P,WAAW/b,KACXqvR,EAASC,cACe,QAAxBjX,EAAKt8P,WAAW/b,KAChBqvR,EAASrrN,OACe,QAAxBq0M,EAAKt8P,WAAW/b,KAChBqvR,EAASn8M,OACe,QAAxBmlM,EAAKt8P,WAAW/b,KAChBqvR,EAAS76C,YADZ,KAGLr3O,MAAK,SAASnD,GACdq+Q,EAAKh3O,MAAQrnC,EACJq+Q,EAAKgnB,SAAW,UAhB1B,OAkBO,SAAS5gS,GACf45Q,EAAKh3O,MAAQ,KACJg3O,EAAKgnB,SAAW,MACzB9mR,QAAQ9Z,MAAM,uBAAuBkU,OAIvCs1S,EAAa1uT,UAAUg2S,WAAa,SAAS/mO,GAE5C,IAAI6vM,EAAOx9Q,KACXA,KAAK8uT,KAAOnhP,EAAK/2D,KACjB5W,KAAKuF,MAAQvF,KAAKkhB,WAAW/b,KAC7BnF,KAAKkhB,WAAWpJ,IAAM61D,EAAK/2D,KAC3B,IAAIw5G,EAAS,IAAIukK,WASjB,GARAvkK,EAAOwkK,OAAS,SAASj0R,GAEf68Q,EAAKgnB,SAAW,OACzB,IAAIphS,EAAIzC,EAAE/C,OAAOwE,OACW,QAAxBo7Q,EAAKt8P,WAAW/b,OACnB/B,EAAIqjC,KAAKC,MAAMtjC,IAChBo6Q,EAAKh3O,MAAQpjC,GAEa,eAAxBo6Q,EAAKt8P,WAAW/b,KAClBirH,EAAOykK,kBAAkBlnN,QACrB,GAA2B,QAAxB6vM,EAAKt8P,WAAW/b,MAA0C,QAAxBq4Q,EAAKt8P,WAAW/b,KACzDirH,EAAO0kK,WAAWnnN,QACd,GAA2B,QAAxB6vM,EAAKt8P,WAAW/b,KACvB,OAAOirH,EAAO2kK,mBAAmBpnN,IAGhC4/M,EAAUkE,iBAAiB,aAAc27B,GAYzCC,EAAap7R,MAAQ,aACrBo7R,EAAapsT,KAAO,gBAEpBosT,EAAa3uT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAEtD,GADAhC,KAAKg9K,OAAOh7K,MAAQA,EACP,MAATA,GAA0B,IAATA,EAIrB,IACIhC,KAAKie,OAASwoB,KAAKC,MAAM1kC,GACzBhC,KAAKwkS,SAAW,OAClB,MAAO7oR,GACL3b,KAAKwkS,SAAW,QAIxB6oB,EAAa3uT,UAAUg0R,UAAY,WAC/B1yR,KAAK4yR,cAAc,EAAG5yR,KAAKie,SAGlCovS,EAAa3uT,UAAUskD,SAAW+pQ,EAAeruT,UAAUskD,SAExDuqO,EAAUkE,iBAAiB,aAAc47B,GAczCC,EAAcr7R,MAAQ,cACtBq7R,EAAcrsT,KAAO,iBAErBqsT,EAAc5uT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAEvD,GADAhC,KAAKg9K,OAAOh7K,MAAQA,EACP,MAATA,GAA0B,IAATA,EAIrB,IACU,KAAZA,EAAM,GACChC,KAAKie,OAASwoB,KAAKC,MAAM,IAAM1kC,EAAQ,KAEvChC,KAAKie,OAASwoB,KAAKC,MAAM1kC,GAC1BhC,KAAKwkS,SAAW,OAClB,MAAO7oR,GACL3b,KAAKwkS,SAAW,QAIxB8oB,EAAc5uT,UAAUg0R,UAAY,WAChC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAChC,GAAGvvR,GAAKA,EAAErF,OACV,CACKiC,KAAKie,SACRje,KAAKie,OAAS,IAAIxe,OACnBO,KAAKie,OAAOlgB,OAASqF,EAAErF,OACvB,IAAI,IAAID,EAAI,EAAGA,EAAIsF,EAAErF,SAAUD,EAC9BkC,KAAKie,OAAOngB,GAAKsF,EAAEtF,GAErBkC,KAAK4yR,cAAc,EAAG5yR,KAAKie,QAC3Bje,KAAK4yR,cAAc,EAAG5yR,KAAKie,QAAWje,KAAKie,OAAOlgB,QAAe,IAGlEuvT,EAAc5uT,UAAUskD,SAAW+pQ,EAAeruT,UAAUskD,SAEzDuqO,EAAUkE,iBAAiB,cAAe67B,GAW1CC,EAASt7R,MAAQ,YACjBs7R,EAAStsT,KAAO,sBAEhBssT,EAAS7uT,UAAUg0R,UAAY,WAC3B,IAAInjQ,EAAMvvB,KAAK2yR,aAAa,GAClC,GAAIpjQ,EAAJ,CAEM,IAAInsB,EAAIpD,KAAK2yR,aAAa,QACvB94Q,IAANzW,IAEApD,KAAKkhB,WAAWjiB,QAClBswB,EAAK7X,KAAKE,MAAM5X,KAAKkhB,WAAWjiB,QAAWmE,GAC5CpD,KAAK4yR,cAAc,EAAErjQ,MAGnBg+P,EAAUkE,iBAAiB,kBAAmB87B,GAS9CC,EAAav7R,MAAQ,WACrBu7R,EAAavsT,KAAO,mCAEpBusT,EAAa9uT,UAAUg0R,UAAY,WAC/B,IAAIvvN,EAAQnjE,KAAK2yR,aAAa,GAC1B1zR,EAAQe,KAAK2yR,aAAa,GACxB,MAAT1zR,IACFA,EAAQe,KAAKkhB,WAAWjiB,OACb,MAATkkE,GAA0B,MAATlkE,GAEde,KAAK4yR,cAAc,EAAGzvN,EAAMzrD,KAAKE,MAAMm1G,OAAO9tH,OAGlDsuR,EAAUkE,iBAAiB,gBAAiB+7B,GAW5CC,EAAax7R,MAAQ,kBACrBw7R,EAAaxsT,KAAO,kCAEpBwsT,EAAa/uT,UAAUg0R,UAAY,WAC/B,IAAIpwM,EAAQtiF,KAAK2yR,aAAa,GAC1BxsG,EAAMnmL,KAAK2yR,aAAa,GACxBgM,EAAM3+R,KAAK2yR,aAAa,IACxB,MAAPxsG,IACFA,EAAMnmL,KAAKkhB,WAAWilK,KACb,MAAPw4G,IACFA,EAAM3+R,KAAKkhB,WAAW1B,QACX,MAAT8iE,GAAwB,MAAP6jG,GAAsB,MAAPw4G,MAE/Bx4G,EAAM7jG,EAAM5qE,KAAKE,MAAMm1G,OAAOo5D,MAE3BnmL,KAAK4yR,cAAc,EAAGzsG,EAAIzuK,KAAKE,MAAMm1G,OAAO4xK,MAE5C3+R,KAAK4yR,cAAc,EAAG,QAG3BrF,EAAUkE,iBAAiB,kBAAmBg8B,GAY9CC,EAAez7R,MAAQ,kBACvBy7R,EAAezsT,KAAO,oCAEtBysT,EAAehvT,UAAUskD,SAAW,SAAS5/C,GACzCpD,KAAKkhB,WAAWlf,MAAQoB,EACxBpD,KAAKg9K,OAAOh7K,MAAQoB,GAGxBsqT,EAAehvT,UAAUgmS,SAAW,WAChC,OAAI1kS,KAAK0iM,MAAM+vE,UACJ,MAAQzyQ,KAAKkhB,WAAWlf,MAE5BhC,KAAKiyB,OAGhBy7R,EAAehvT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACxDhC,KAAKg9K,OAAOh7K,MAAQA,GAGxB0rT,EAAehvT,UAAUg0R,UAAY,WACjC,IAAIvzR,EAAOa,KAAK2yR,aAAa,GACjB,MAARxzR,GACAa,KAAK4yR,cAAc,EAAGzzR,EAAKa,KAAKkhB,WAAWlf,SAInDurR,EAAUkE,iBAAiB,wBAAyBi8B,GAQpDC,EAAW17R,MAAQ,cACnB07R,EAAW1sT,KAAO,8CAElB0sT,EAAWjvT,UAAUg0R,UAAY,WAC7B,IAAIvzR,EAAOa,KAAK2yR,aAAa,GACjB,MAARxzR,GACAa,KAAK4yR,cAAc,EAAGx0R,OAAOsY,KAAKvX,KAI1CouR,EAAUkE,iBAAiB,oBAAqBk8B,GAYhDC,EAAU37R,MAAQ,aAClB27R,EAAU3sT,KAAO,+BAEjB2sT,EAAUlvT,UAAUg0R,UAAY,WAC5B,IAAI9mR,EAAM5L,KAAK2yR,aAAa,GAClC,GAAI/mR,EAAJ,CAEM,IAAIxI,EAAIpD,KAAK2yR,aAAa,QACvB94Q,IAANzW,IAEApD,KAAKkhB,WAAWksB,WAClBxhC,EAAK5L,KAAKkhB,WAAWksB,UAAahqC,GACnCpD,KAAK4yR,cAAc,EAAEhnR,MAGnB2hR,EAAUkE,iBAAiB,mBAAoBm8B,GAe/CC,EAAa57R,MAAQ,gBACrB47R,EAAa5sT,KAAO,mDAEpB4sT,EAAanvT,UAAUg0R,UAAY,WAC/B,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GACtByL,EAAIp+R,KAAK2yR,aAAa,GAC5BhmE,EAAI3sN,KAAK8tT,QACb,GAAG3vB,EACF,IAAI,IAAIrgS,KAAKqgS,EACZxxE,EAAE7uN,GAAKqgS,EAAErgS,GACX,GAAGsgS,EACF,IAAI,IAAItgS,KAAKsgS,EACZzxE,EAAE7uN,GAAKsgS,EAAEtgS,GACXkC,KAAK4yR,cAAc,EAAEjmE,IAGnB4gE,EAAUkE,iBAAiB,sBAAuBo8B,GAWlDhoE,EAAS5zN,MAAQ,WACjB4zN,EAAS5kP,KAAO,4BAEnB4kP,EAASmoE,UAAY,EACrBnoE,EAASkpE,MAAQ,EACjBlpE,EAASmpE,YAAc,EAEpBnpE,EAAS,cAAgB,CAAE1gP,KAAM,OAAQqY,OAAQ,CAAC,UAAYqoO,EAASmoE,UAAW,MAAQnoE,EAASkpE,MAAM,OAAUlpE,EAASmpE,cAE5HnpE,EAASnnP,UAAUg0R,UAAY,WACjC,IAAIljR,EAAYxP,KAAKu9O,eAErB,GAAGv9O,KAAKqlS,iBAAiB,GAKxB,OAHArlS,KAAKgC,MAAQhC,KAAK2yR,aAAa,GAC/BnjR,EAAWxP,KAAKkhB,WAAW6sS,SAAY/tT,KAAKgC,WAC5ChC,KAAK4yR,cAAc,EAAG5yR,KAAKgC,OAI5BhC,KAAK4yR,cAAe,EAAGpjR,EAAWxP,KAAKkhB,WAAW6sS,WAGnDloE,EAASnnP,UAAU6+O,aAAe,WAEjC,OAAOv9O,KAAKkhB,WAAW1R,WAEtB,KAAKq2O,EAASkpE,MACb,OAAG/uT,KAAKy3E,MACAz3E,KAAKy3E,MAAMikN,KACZ,GAER,KAAK71C,EAASmpE,YACb,OAAO/tR,EAER,KAAK4kN,EAASmoE,UACd,QACC,OAAOzgC,EAAU+D,UAKjBzrC,EAASnnP,UAAUgmS,SAAW,WAC1B,OAAO1kS,KAAKkhB,WAAW6sS,SAG3BxgC,EAAUkE,iBAAiB,iBAAkB5rC,GAQ7C0nC,EAAU6E,mBACN,gBAPJ,SAAgBhvR,GACZ,OAAGA,GAAiB,MAAZA,EAAErF,OACRgvH,OAAO3pH,EAAErF,QACV,IAMD,CAAC,IACD,UAiBJkwT,EAAah8R,MAAQ,WACrBg8R,EAAahtT,KAAO,qBAEvBgtT,EAAavvT,UAAUwvT,eAAiB,WAEvC,GAAiB,MAAdluT,KAAKgC,MAAR,CAGA,IAAIs9B,EAAM,KAETA,EADEt/B,KAAKgC,MAAM/B,cAAgBH,OACvBE,KAAKgC,MAELykC,KAAK0xH,UAAUn4J,KAAKgC,OAE3B,IAAI2rE,EAAO,IAAIisK,KAAK,CAACt6M,IACjBxnB,EAAM+hO,IAAIC,gBAAiBnsK,GAC3BpjE,EAAUH,SAASsF,cAAc,KACrCnF,EAAQuM,aAAa,OAAQgB,GAC7BvN,EAAQuM,aAAa,WAAY9W,KAAKkhB,WAAWm9N,UACjD9zO,EAAQmC,MAAMwK,QAAU,OACxB9M,SAAS5H,KAAKoN,YAAYrF,GAC1BA,EAAQ0kT,QACR7kT,SAAS5H,KAAKs8I,YAAYv0I,GAC1BvC,YAAY,WAAY6xO,IAAIq1E,gBAAiBp3S,KAAU,OAGrDm2S,EAAavvT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACrD,IAAInjB,EAAOx9Q,KACXgI,YAAY,WAAYw1Q,EAAK0wC,mBAAqB,MAGhDD,EAAavvT,UAAUg0R,UAAY,WAC3B1yR,KAAKm8R,OAAO,KACZn8R,KAAKgC,MAAQhC,KAAK2yR,aAAa,KAIvCs7B,EAAavvT,UAAUgmS,SAAW,WAC9B,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKkhB,WAAWm9N,SAEpBr+O,KAAKiyB,OAGhBs7P,EAAUkE,iBAAiB,iBAAkBw8B,GAW7CE,EAAMl8R,MAAQ,QACdk8R,EAAMltT,KAAO,sBAEbktT,EAAMzvT,UAAUg0R,UAAY,WACpB1yR,KAAKm8R,OAAO,KACZn8R,KAAKgC,MAAQhC,KAAK2yR,aAAa,KAIvCw7B,EAAMzvT,UAAUgmS,SAAW,WACvB,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKm8R,OAAO,GAAGt5R,MAEnB7C,KAAKiyB,OAGhBk8R,EAAM11S,SAAW,SAAShV,GACtB,GAAS,MAALA,EACA,MAAO,OACJ,GAAIA,EAAExD,cAAgB8sH,OACzB,OAAOtpH,EAAEu3B,QAAQ,GACd,GAAIv3B,EAAExD,cAAgBR,MAAO,CAEhC,IADA,IAAI6/B,EAAM,IACDxhC,EAAI,EAAGA,EAAI2F,EAAE1F,SAAUD,EAC5BwhC,GAAO6uR,EAAM11S,SAAShV,EAAE3F,KAAOA,EAAI,GAAK2F,EAAE1F,OAAS,IAAM,IAG7D,OADAuhC,GAAO,IAGP,OAAOx/B,OAAO2D,IAItB0qT,EAAMzvT,UAAU46R,iBAAmB,SAASrgJ,GAExCj5I,KAAKm8R,OAAO,GAAGt5R,MAAQsrT,EAAM11S,SAASzY,KAAKgC,QAG/CurR,EAAUkE,iBAAiB,cAAe08B,GAS1CC,EAAKn8R,MAAQ,OACbm8R,EAAKntT,KAAO,oCAEZmtT,EAAK1vT,UAAUg0R,UAAY,WACvB1yR,KAAK4yR,cAAc,EAAG5yR,KAAK2yR,aAAa,KAG5CpF,EAAUkE,iBAAiB,aAAc28B,GAWzCC,EAAQp8R,MAAQ,UAChBo8R,EAAQptT,KAAO,gCAEfotT,EAAQ3vT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC5B,OAAV7qQ,EACApY,QAAQ6oL,IAAIo6F,GACK,QAAV7qQ,EACPpY,QAAQC,KAAKgjR,GACI,SAAV7qQ,GACPpY,QAAQ9Z,MAAM+8R,IAItB0tB,EAAQ3vT,UAAUg0R,UAAY,WAC1B,IAAI3pH,EAAM/oK,KAAK2yR,aAAa,GAChB,OAAR5pH,IACA/oK,KAAKkhB,WAAW6nJ,IAAMA,GAE1BrrJ,QAAQ6oL,IAAIx9B,IAGhBslJ,EAAQ3vT,UAAU4kT,YAAc,WAC5B,MAAO,CACH,CAAC,MAAO/1B,EAAUwC,QAClB,CAAC,OAAQxC,EAAUwC,QACnB,CAAC,QAASxC,EAAUwC,UAI5BxC,EAAUkE,iBAAiB,gBAAiB48B,GAa5CC,EAAMr8R,MAAQ,QACdq8R,EAAMrtT,KAAO,uBACbqtT,EAAM7gS,MAAQ,OAEd6gS,EAAM5vT,UAAU+kS,YAAc,SAAShgS,GACnCzD,KAAKg9K,OAAOh7K,MAAQyB,EAAEyd,WAAW6nJ,KAGrCulJ,EAAM5vT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACxC,IAAI53H,EAAM/oK,KAAKkhB,WAAW6nJ,IAC1B/gK,YAAW,WACPwjE,MAAMu9F,KACP,KAGPwkH,EAAUkE,iBAAiB,cAAe68B,GAc1CC,EAAW7vT,UAAU+kS,YAAc,SAAShgS,GACpCA,EAAEyd,WAAWwxQ,WAAanF,EAAU2D,cACpClxR,KAAKmvT,YAAY1rT,EAAEyd,WAAWwxQ,WAEvCh1Q,QAAQC,KAAK,0DAGZ4wS,EAAWt8R,MAAQ,SACnBs8R,EAAWttT,KAAO,uCAElBstT,EAAW/mB,aAAe,CACtB9U,UAAW,CAAEvtR,KAAM,SAGvBopT,EAAW7vT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACxC,aAAR4U,GAAuB22Q,EAAU2D,cACjClxR,KAAKmvT,YAAYntT,GAE1B0b,QAAQC,KAAK,0DAGZ4wS,EAAW7vT,UAAUywT,YAAc,SAASjsR,GAExC,GADAljC,KAAKwuT,MAAQ,KACTtrR,EAAKnlC,OAAS,IACd2f,QAAQC,KAAK,sCACV,CAUH,IATA,IAAIyxS,EAAWlsR,EAAKH,cAChBssR,EAAkB,CAClB,SACA,OACA,WACA,OACA,aACA,YAEKvxT,EAAI,EAAGA,EAAIuxT,EAAgBtxT,SAAUD,EAC1C,IAA6C,GAAzCsxT,EAASxuT,QAAQyuT,EAAgBvxT,IAEjC,YADA4f,QAAQC,KAAK,kBAIrB,IACI3d,KAAKwuT,MAAQ,IAAIt8I,SAAS,IAAK,IAAK,IAAK,OAAQ,OAAQhvI,GAC3D,MAAOvnB,GACL+B,QAAQ9Z,MAAM,wBACd8Z,QAAQ9Z,MAAM+X,MAK1B4yS,EAAW7vT,UAAUg0R,UAAY,WAC7B,GAAK1yR,KAAKwuT,MAIV,IACI,IAAIrwB,EAAIn+R,KAAK2yR,aAAa,GACtByL,EAAIp+R,KAAK2yR,aAAa,GACtBhmE,EAAI3sN,KAAK2yR,aAAa,GAC1B3yR,KAAK4yR,cAAc,EAAG5yR,KAAKwuT,MAAMrwB,EAAGC,EAAGzxE,EAAG3sN,KAAKb,KAAMa,OACvD,MAAO2b,GACL+B,QAAQ9Z,MAAM,mBACd8Z,QAAQ9Z,MAAM+X,KAItB4yS,EAAW7vT,UAAUglT,aAAe,WAChC,MAAO,CAAC,CAAC,IAAK,MAGlBn2B,EAAUkE,iBAAiB,eAAgB88B,GA76C/C,CA86CGvuT,MAGH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAGvB,SAAS+hC,IACLtvT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,QAASxT,EAAUwC,QAarC,SAASw/B,IACLvvT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,KAAM,IACpB/gS,KAAK0hS,UAAU,OAAQnU,EAAUuC,OACjC9vR,KAAK0hS,UAAU,SAAUnU,EAAUuC,OACnC9vR,KAAK0hS,UAAU,QAASnU,EAAUuC,OACxC9vR,KAAKkhB,WAAa,CAAEsuS,gBAAgB,GACpCxvT,KAAKi6G,KAAO,EAwBV,SAASw1M,IACLzvT,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK+gS,SAAS,GAAIxT,EAAUwC,QAC5B/vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAK0iM,MAAQ,CAAEpoG,YAAY,EAAMo1N,YAAY,GAqBjD,SAASC,IACL3vT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,QAASnU,EAAUuC,OAClC9vR,KAAKkhB,WAAa,CACd0uS,SAAU,GACVC,aAAc,GACdC,kBAAmB,IAoC3B,SAASC,IACL/vT,KAAK+gS,SAAS,KAAMxT,EAAUwC,QAC9B/vR,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK0hS,UAAU,OAAQnU,EAAUuC,OACjC9vR,KAAK0hS,UAAU,QAASnU,EAAUuC,OAClC9vR,KAAKyM,KAAO,CAAC,IAAK,IACxBzM,KAAKie,QAAS,EAiBZ,SAAS+xS,IACLhwT,KAAK+gS,SAAS,MAAOxT,EAAUwC,QAC/B/vR,KAAK+gS,SAAS,MAAOxT,EAAUwC,QAC/B/vR,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,SAAUnU,EAAUuC,OACnC9vR,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKg9R,IAAM,EA4Cf,SAASizB,IACLjwT,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,aAAc,KAC/BrmS,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,UAAWnU,EAAUuC,OAEpC9vR,KAAKkwT,SAAW,GA6CpB,SAASC,IACLnwT,KAAKqmS,YAAY,WAAY,KAC7BrmS,KAAKqmS,YAAY,QAAS,QAC1BrmS,KAAK0hS,UAAU,UAAWnU,EAAUuC,OACpC9vR,KAAKowT,KAAO,EACZpwT,KAAKqwT,cAAgB,IACrBrwT,KAAK2mO,WAAY,EA+DrB,SAAS2pF,IACLtwT,KAAK+gS,SAAS,OAAQ,IACtB/gS,KAAK+gS,SAAS,SAAUxT,EAAUwC,QAClC/vR,KAAK0hS,UAAU,OAAQ,IAC7B1hS,KAAKuwT,YAAc,KACnBvwT,KAAKkhB,WAAa,CAAE/hB,KAAM,KAAM+rC,WAAW,GAC3C,IAAIsyO,EAAOx9Q,KACXA,KAAK0nS,UAAU,SAAS,QAAQ,IAAG,WAClClqB,EAAKt8P,WAAW/hB,KAAOq+Q,EAAK+yC,eAhU3BjB,EAASr9R,MAAQ,YACjBq9R,EAASruT,KAAO,uBAEhBquT,EAAS5wT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC3CjjR,QAAQ6oL,IAAIzwK,EAAQ6qQ,IAGxBpT,EAAUkE,iBAAiB,aAAc69B,GAazCC,EAAat9R,MAAQ,eACrBs9R,EAAatuT,KAAO,4CAEpBsuT,EAAa7wT,UAAUg0R,UAAY,SAAS58P,EAAQ6qQ,GACtD,IAAIv9R,EAAIpD,KAAK2yR,aAAa,GACtB/9H,EAAWxxJ,GAAKpD,KAAKi6G,KACR,IAAdj6G,KAAKi6G,OACP26C,GAAU,GACX,IAAI47J,EAAe57J,GAAW50J,KAAKkhB,WAAWsuS,iBAAqB56J,IAAY50J,KAAKkhB,WAAWsuS,eAC5FpsT,GAAKotT,GACDxwT,KAAKgmS,YAAY,EAAGrF,IACvBv9R,GAAKotT,GACFxwT,KAAKgmS,YAAY,EAAGrF,GACxB/rI,GACI50J,KAAKgmS,YAAY,EAAGrF,GAC3B3gS,KAAKi6G,KAAO72G,GAGVmqR,EAAUkE,iBAAiB,iBAAkB89B,GAoB7CE,EAAUx9R,MAAQ,YAClBw9R,EAAUxuT,KAAO,uCAEjBwuT,EAAU/wT,UAAUgmS,SAAW,WAC3B,MAAO,IAGX+qB,EAAU/wT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC5C,GAAI3gS,KAAKo8R,QACL,IAAK,IAAIt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EACvCkC,KAAKgmS,YAAYloS,EAAG6iS,IAKhCpT,EAAUkE,iBAAiB,mBAAoBg+B,GAc/CE,EAAY19R,MAAQ,eACpB09R,EAAY1uT,KAAO,6CAEnB0uT,EAAYjxT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC9C,GAAa,MAATA,KAIA3gS,KAAKkhB,WAAW0uS,UAAY5vT,KAAKkhB,WAAW0uS,UAAYjvB,GAA5D,CAIA,GAAI3gS,KAAKkhB,WAAW2uS,aAAc,CAC9B,IAAIz8Q,EAAOutP,EAAM3gS,KAAKkhB,WAAW2uS,cACjC,GAAY,MAARz8Q,EACA,OAGJ,GACIpzC,KAAKkhB,WAAW4uS,mBAChB9vT,KAAKkhB,WAAW4uS,mBAAqB18Q,EAErC,OAIRpzC,KAAKgmS,YAAY,EAAGrF,KAGxBpT,EAAUkE,iBAAiB,gBAAiBk+B,GAY5CI,EAAY99R,MAAQ,SACpB89R,EAAY9uT,KAAO,+DAEnB8uT,EAAYrxT,UAAUg0R,UAAY,WACpC1yR,KAAKie,OAASje,KAAK2yR,aAAa,IAG9Bo9B,EAAYrxT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACpD3gS,KAAKgmS,YAAYhmS,KAAKie,OAAS,EAAI,IAGjCsvQ,EAAUkE,iBAAiB,gBAAiBs+B,GAY5CC,EAAa/9R,MAAQ,UACrB+9R,EAAa/uT,KAAO,gBAEpB+uT,EAAatxT,UAAUgmS,SAAW,WAC9B,OAAI1kS,KAAK0iM,MAAM+vE,UACJ3yQ,OAAOE,KAAKg9R,KAEhBh9R,KAAKiyB,OAGhB+9R,EAAatxT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC/C,IAAIv9R,EAAIpD,KAAKg9R,IACC,OAAVlnQ,EACA91B,KAAKg9R,KAAO,EACK,OAAVlnQ,EACP91B,KAAKg9R,KAAO,EACK,SAAVlnQ,IACP91B,KAAKg9R,IAAM,GAEXh9R,KAAKg9R,KAAO55R,GACZpD,KAAK+gE,QAAQ,SAAU/gE,KAAKg9R,MAIpCgzB,EAAatxT,UAAU46R,iBAAmB,SAASrgJ,GAC3Cj5I,KAAK0iM,MAAM+vE,YAGfx5H,EAAI4+J,UAAY,OAChB5+J,EAAIpkF,KAAO,aACXokF,EAAIs/J,UAAY,SAChBt/J,EAAIu/J,SAASx4S,KAAKg9R,IAAoB,GAAfh9R,KAAKyM,KAAK,GAAyB,GAAfzM,KAAKyM,KAAK,MAGzDujT,EAAatxT,UAAUg0R,UAAY,WAC/B1yR,KAAK4yR,cAAc,EAAG5yR,KAAKg9R,MAG/BzP,EAAUkE,iBAAiB,iBAAkBu+B,GAY7CC,EAAWh+R,MAAQ,QACnBg+R,EAAWhvT,KAAO,mBAElBgvT,EAAWvxT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC7C,IAAIyvB,EAAOpwT,KAAKkhB,WAAWuvS,WACvBL,GAAQ,EACRpwT,KAAK+gE,QAAQ,KAAM4/N,GAEnB3gS,KAAKkwT,SAAS3sT,KAAK,CAAC6sT,EAAMzvB,KAIlCsvB,EAAWvxT,UAAUg0R,UAAY,WAC7B,IAAIg+B,EAA+B,IAA1B1wT,KAAKy3E,MAAMskN,aAEhB/7R,KAAKqlS,iBAAiB,KACtBrlS,KAAKkhB,WAAWuvS,WAAazwT,KAAK2yR,aAAa,IAGnD,IAAK,IAAI70R,EAAI,EAAGA,EAAIkC,KAAKkwT,SAASnyT,SAAUD,EAAG,CAC3C,IAAIg4B,EAAS91B,KAAKkwT,SAASpyT,GAC3Bg4B,EAAO,IAAM46R,EACT56R,EAAO,GAAK,IAKhB91B,KAAKkwT,SAAS39R,OAAOz0B,EAAG,KACtBA,EAGFkC,KAAK+gE,QAAQ,KAAMjrC,EAAO,OAIlCm6R,EAAWvxT,UAAU4kT,YAAc,WAC/B,MAAO,CAAC,CAAC,QAAS/1B,EAAUwC,QAAS,CAAC,aAAc,YAGxDxC,EAAUkE,iBAAiB,eAAgBw+B,GAY3CE,EAAWl+R,MAAQ,QACnBk+R,EAAWlvT,KAAO,sCAElBkvT,EAAWzxT,UAAUiyT,QAAU,WAC3B3wT,KAAKowT,KAAO,GAGhBD,EAAWzxT,UAAUgmS,SAAW,WAC5B,MAAO,UAAY1kS,KAAKqwT,cAAc53S,WAAa,MAGvD03S,EAAWS,SAAW,OACtBT,EAAWU,UAAY,OAEvBV,EAAWzxT,UAAU46R,iBAAmB,WACpCt5R,KAAKwkS,SAAWxkS,KAAK2mO,UACfwpF,EAAWS,SACXT,EAAWU,UACjB7wT,KAAK2mO,WAAY,GAGrBwpF,EAAWzxT,UAAUg0R,UAAY,WAC7B,IAAIg+B,EAA+B,IAA1B1wT,KAAKy3E,MAAMskN,aAEhBh7N,EAAuB,GAAb/gE,KAAKowT,KAEnBpwT,KAAKowT,MAAQM,EACb1wT,KAAKqwT,cAAgB34S,KAAKC,IACtB,EACsC,EAAtC3X,KAAKylS,mBAAmB,aAIvB1kO,KACA/gE,KAAKowT,KAAOpwT,KAAKqwT,eAAiB3wR,MAAM1/B,KAAKqwT,iBAQlDrwT,KAAK2mO,WAAY,EACjB3mO,KAAKowT,KAAOpwT,KAAKowT,KAAOpwT,KAAKqwT,cAC7BrwT,KAAK+gE,QAAQ,UAAW/gE,KAAKkhB,WAAWvM,OACpC3U,KAAKm8R,QAAUn8R,KAAKm8R,OAAOp+R,OAAS,GAAKiC,KAAKm8R,OAAO,IACrDn8R,KAAK4yR,cAAc,GAAG,IAVlB5yR,KAAKm8R,QAAUn8R,KAAKm8R,OAAOp+R,OAAS,GAAKiC,KAAKm8R,OAAO,IACrDn8R,KAAK4yR,cAAc,GAAG,IAalCu9B,EAAWzxT,UAAU4kT,YAAc,WAC/B,MAAO,CAAC,CAAC,WAAY,YAGzB6M,EAAWzxT,UAAUglT,aAAe,WAChC,MAAO,CAAC,CAAC,OAAQ,aAGrBn2B,EAAUkE,iBAAiB,eAAgB0+B,GAc3CG,EAAUr+R,MAAQ,aAClBq+R,EAAUrvT,KAAO,sDAEpBqvT,EAAU5xT,UAAUg0R,UAAY,WAE/B1yR,KAAKuwT,YAAcvwT,KAAK2yR,aAAa,GACrC3yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAW/hB,OAGpCmxT,EAAU5xT,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAClD3gS,KAAKkhB,WAAW/hB,KAAOa,KAAKuwT,aAG7BD,EAAU5xT,UAAUykS,YAAc,SAAS1/R,GAE7B,MAAVA,EAAEtE,OAE2B,GAA7Ba,KAAKkhB,WAAWgqB,WAAuBznC,EAAEtE,KAAKc,cAAgBH,QAAU2D,EAAEtE,KAAKc,cAAgB8sH,QAAUtpH,EAAEtE,KAAKc,cAAgBirF,SAAWznF,EAAEtE,KAAKc,cAAgBR,OAASgE,EAAEtE,KAAKc,cAAgB7B,UACpMqF,EAAEtE,KAAO,OAGRouR,EAAUkE,iBAAiB,mBAAoB6+B,GAlWnD,CAmWGtwT,MAGH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAIvB,SAASujC,IACL9wT,KAAK0hS,UAAU,GAAInU,EAAUuC,OAC7B9vR,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKqmS,YAAY,OAAQ,YACzBrmS,KAAKqmS,YAAY,YAAa,IAC9BrmS,KAAKqmS,YAAY,UAAW,IAC5BrmS,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAKi5S,SAAU,EA2EnB,SAAS8X,IACL/wT,KAAK+gS,SAAS,GAAI,WAClB/gS,KAAK+gS,SAAS,IAAKxT,EAAUwC,QAC7B/vR,KAAK0hS,UAAU,IAAK,WACpB1hS,KAAK0hS,UAAU,IAAKnU,EAAUuC,OAC9B9vR,KAAKkhB,WAAa,CAAE2zC,KAAM,GAAI7yD,OAAO,GACrChC,KAAKyM,KAAO,CAAC,IAAK,IAkEtB,SAASukT,IACLhxT,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKkhB,WAAa,CAAExB,KAAM,IAAM/H,IAAK,IAAM3V,MAAO,EAAGC,KAAM,GAC3DjC,KAAKixT,OAAS,EACdjxT,KAAKkxT,WAAa,EAClBlxT,KAAKmxT,WAAa,EAClBnxT,KAAKoxT,gBAAiB,EA+G1B,SAASC,IACLrxT,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAK0hS,UAAU,SAAUnU,EAAUuC,OACnC9vR,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKkhB,WAAa,CAAElf,MAAO,IAAKwb,OAAO,SACvCxd,KAAKixT,OAAS,EACdjxT,KAAKoxT,gBAAiB,EAC5BpxT,KAAKyuF,QAAUzuF,KAAKkhB,WAAW1D,OAAO8b,MAAM,KAC5C,IAAIkkP,EAAOx9Q,KACLA,KAAKonS,YAAa,EACxBpnS,KAAKg9K,OAASh9K,KAAK0nS,UAAU,QAAQ,GAAI1nS,KAAKkhB,WAAWlf,OAAO,SAASoB,GACxEo6Q,EAAKt8P,WAAWlf,MAAQoB,EACfo6Q,EAAKwoB,YAAY,EAAG5iS,KAC3B,CAAEgqC,SAAU,QAAS5vB,OAAQxd,KAAKyuF,UA2BnC,SAAS6iO,IACLtxT,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKkhB,WAAa,CACdxB,IAAK,EACL/H,IAAK,EACL3V,MAAO,GACPyrB,MAAO,OACP2zR,UAAW,GAEfphT,KAAKgC,OAAS,EAuJlB,SAASuvT,IACLvxT,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKkhB,WAAa,CACdlf,MAAO,GACP0d,IAAK,EACL/H,IAAK,EACLwxD,KAAM,KAEV,IAAIq0M,EAAOx9Q,KACXA,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAKyyN,OAASzyN,KAAK0nS,UACf,SACA,IACA1nS,KAAKkhB,WAAWlf,OAChB,SAASoB,GACLo6Q,EAAKt8P,WAAWlf,MAAQoB,IAE5BpD,KAAKkhB,YAETlhB,KAAKonS,YAAa,EAkBtB,SAASoqB,IACLxxT,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKkhB,WAAa,CAAEuM,MAAO,OAAQ/N,IAAK,EAAG/H,IAAK,EAAG3V,MAAO,IAC1DhC,KAAKgC,OAAS,EAgFlB,SAASyvT,IACLzxT,KAAKyM,KAAO,CAAC,IAAK,IAClBzM,KAAK+gS,SAAS,GAAI,UAClB/gS,KAAKkhB,WAAa,CAAExB,IAAK,EAAG/H,IAAK,EAAG3V,MAAO,EAAGyrB,MAAO,QA2BzD,SAASikS,IACL1xT,KAAKymS,UAAU,GAAI,GACnBzmS,KAAKkhB,WAAa,CACdlf,MAAO,MACP6yD,KAAM,QACN88P,SAAU,GACVlkS,MAAO,OACPmkS,MAAO,OACPC,SAAU,EACVC,SAAU,GAwFlB,SAASC,IACL/xT,KAAKyM,KAAO,CAAC,IAAK,KAClBzM,KAAKkhB,WAAa,CACdu9B,YAAa,UACbuzQ,WAAY,UACZC,cAAe,UACfC,WAAY,EACZtyQ,aAAc,GA9sBtBkxQ,EAAa7+R,MAAQ,SACrB6+R,EAAa7vT,KAAO,oBAEpB6vT,EAAaj8P,KAAO,QACpBi8P,EAAapyT,UAAU66R,iBAAmB,SAAStgJ,GAC/C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAGA,IAAItlQ,EAAS,GA2Bb,GA1BA8rI,EAAI4+J,UAAY,QAChB5+J,EAAI2gK,SACAzsS,GACAA,GACAnN,KAAKyM,KAAK,GAAKU,GACfnN,KAAKyM,KAAK,GAAKU,IAEnB8rI,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SACAzsS,EACAA,EACAnN,KAAKyM,KAAK,GAAKU,GACfnN,KAAKyM,KAAK,GAAKU,IAEnB8rI,EAAI4+J,UAAY73S,KAAKi5S,QACf,QACAj5S,KAAKwyS,UACL,OACA,OACNv5J,EAAI2gK,SACAzsS,EACAA,EACAnN,KAAKyM,KAAK,GAAKU,GACfnN,KAAKyM,KAAK,GAAKU,IAGfnN,KAAKkhB,WAAWioD,MAAiC,IAAzBnpE,KAAKkhB,WAAWioD,KAAY,CACpD,IAAIy9N,EAAY5mS,KAAKkhB,WAAW0lR,WAAa,GAC7C3tJ,EAAIs/J,UAAY,SAChBt/J,EAAI4+J,UAAY73S,KAAKi5S,QAAU,QAAU,QACzChgK,EAAIpkF,KAAO+xO,EAAY,MAAQkqB,EAAaj8P,KAC5CokF,EAAIu/J,SACAx4S,KAAKkhB,WAAWioD,KACD,GAAfnpE,KAAKyM,KAAK,GACK,GAAfzM,KAAKyM,KAAK,GAAuB,GAAZm6R,GAEzB3tJ,EAAIs/J,UAAY,UAIxBuY,EAAapyT,UAAU+pO,YAAc,SAAS9nO,EAAGwxT,GAC7C,GACIA,EAAU,GAAK,GACfA,EAAU,GAAK,GACfA,EAAU,GAAKnyT,KAAKyM,KAAK,GAAK,GAC9B0lT,EAAU,GAAKnyT,KAAKyM,KAAK,GAAK,EAI9B,OAFAzM,KAAKi5S,SAAU,EACfj5S,KAAKgmS,YAAY,EAAGhmS,KAAKkhB,WAAWtiB,UAC7B,GAIfkyT,EAAapyT,UAAUg0R,UAAY,WAC/B1yR,KAAK4yR,cAAc,EAAG5yR,KAAKi5S,UAG/B6X,EAAapyT,UAAU80S,UAAY,SAAS7yS,GACxCX,KAAKi5S,SAAU,GAGnB1rB,EAAUkE,iBAAiB,gBAAiBq/B,GAW5CC,EAAa9+R,MAAQ,SACrB8+R,EAAa9vT,KAAO,gCAEpB8vT,EAAaryT,UAAU66R,iBAAmB,SAAStgJ,GAC/C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAIA,IAAIhmQ,EAAsB,GAAfzM,KAAKyM,KAAK,GACjBU,EAAS,IACT+pD,EAAmB,GAAfl3D,KAAKyM,KAAK,GAClBwsI,EAAIpkF,KAAO70D,KAAKkhB,WAAW2zC,OAAgB,GAAPpoD,GAAYuuB,QAAQ,GAAK,WAC7D,IAAIg1E,EAAIipC,EAAI4/J,YAAY74S,KAAKiyB,OAAOpnB,MAChCoR,EAAkC,IAA7Bjc,KAAKyM,KAAK,IAAMujG,EAAIvjG,IAE7BwsI,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAS39R,EAAGi7C,EAAIzqD,EAAMA,EAAMA,GAEhCwsI,EAAI4+J,UAAY73S,KAAKkhB,WAAWlf,MAAQ,OAAS,OACjDi3I,EAAI2gK,SACA39R,EAAIxP,EAAOU,EACX+pD,EAAIzqD,EAAOA,EAAOU,EACX,GAAPV,EACO,GAAPA,GAGJwsI,EAAIs/J,UAAY,OAChBt/J,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SAASx4S,KAAKiyB,MAAc,IAAPxlB,EAAawP,EAAO,IAAJi7C,GACzC+hF,EAAIs/J,UAAY,SAGpBwY,EAAaryT,UAAUgiS,SAAW,SAAS5qQ,GACvC91B,KAAKkhB,WAAWlf,OAAShC,KAAKkhB,WAAWlf,MACzChC,KAAK+gE,QAAQ,IAAK/gE,KAAKkhB,WAAWlf,QAGtC+uT,EAAaryT,UAAUg0R,UAAY,WAC/B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IACApD,KAAKkhB,WAAWlf,MAAQoB,GAE5BpD,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAG1C+uT,EAAaryT,UAAU+pO,YAAc,SAAS9nO,EAAGwxT,GAC7C,GACIA,EAAU,GAAK,GACfA,EAAU,GAAK,GACfA,EAAU,GAAKnyT,KAAKyM,KAAK,GAAK,GAC9B0lT,EAAU,GAAKnyT,KAAKyM,KAAK,GAAK,EAK9B,OAHAzM,KAAKkhB,WAAWlf,OAAShC,KAAKkhB,WAAWlf,MACzChC,KAAKy3E,MAAM0jN,WACXn7R,KAAK+gE,QAAQ,IAAK/gE,KAAKkhB,WAAWlf,QAC3B,GAIfurR,EAAUkE,iBAAiB,gBAAiBs/B,GAc5CC,EAAa/+R,MAAQ,SACrB++R,EAAa/vT,KAAO,gCAEpB+vT,EAAaoB,iBAAmB,GAChCpB,EAAaqB,cAAgB,OAE7BrB,EAAatyT,UAAU66R,iBAAmB,SAAStgJ,GAC/C,IAAIh9H,EAAmB,GAAfjc,KAAKyM,KAAK,GACdyqD,EAAIl3D,KAAKyM,KAAK,GACdyqD,EAAI,IACJ+hF,EAAI4+J,UAAYmZ,EAAaqB,cAC7Bp5K,EAAI09J,YACJ19J,EAAI8mE,OAAO9jM,EAAO,GAAJi7C,GACd+hF,EAAIu+J,OAAOv7R,EAAQ,GAAJi7C,EAAa,GAAJA,GACxB+hF,EAAIu+J,OAAOv7R,GAAS,GAALi7C,EAAc,GAAJA,GACzB+hF,EAAI2+J,OACJ3+J,EAAI09J,YACJ19J,EAAI8mE,OAAO9jM,EAAO,GAAJi7C,GACd+hF,EAAIu+J,OAAOv7R,EAAQ,GAAJi7C,EAAa,GAAJA,GACxB+hF,EAAIu+J,OAAOv7R,GAAS,GAALi7C,EAAc,GAAJA,GACzB+hF,EAAI2+J,OACJ3+J,EAAIpkF,MAAY,GAAJqC,GAASl8B,QAAQ,GAAK,YAElCi+G,EAAIpkF,MAAY,GAAJqC,GAASl8B,QAAQ,GAAK,WAGtCi+G,EAAIs/J,UAAY,SAChBt/J,EAAIpkF,MAAY,GAAJqC,GAASl8B,QAAQ,GAAK,WAClCi+G,EAAI4+J,UAAY,OAChB5+J,EAAIu/J,SACAx4S,KAAKkhB,WAAWlf,MAAMg5B,QAAQh7B,KAAKmxT,YACnCl1S,EACI,IAAJi7C,IAIR85P,EAAatyT,UAAUg0R,UAAY,WAC/B1yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAG1CgvT,EAAatyT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACtD,IAAI3B,GAAKL,KAAKkhB,WAAWjf,KAAO,IAAIq3B,MAAM,KAC1Ct5B,KAAKmxT,WAAa9wT,EAAEtC,OAAS,EAAIsC,EAAE,GAAGtC,OAAS,GAGnDizT,EAAatyT,UAAU+pO,YAAc,SAAS9nO,EAAGgyC,GAC7C,KAAIA,EAAI,GAAK,GAQb,OAJA3yC,KAAKixT,MAAQtwT,EAAE+vS,QACf1wS,KAAKopS,cAAa,GAClBppS,KAAKoxT,gBAAiB,GAEf,GAGXJ,EAAatyT,UAAUg0S,YAAc,SAAS/xS,GAC1C,GAAKX,KAAKoxT,eAAV,CAIA,IAAIz5P,EAAQ33D,KAAKixT,MAAQtwT,EAAE+vS,QACvB/vS,EAAE0Y,WACFs+C,GAAS,KAETh3D,EAAE4Y,SAAW5Y,EAAEyY,UACfu+C,GAAS,IAEb33D,KAAKixT,MAAQtwT,EAAE+vS,QAEf,IAAI4hB,EAAQtyT,KAAKkxT,WAAav5P,EAAQq5P,EAAaoB,iBACnDpyT,KAAKkxT,WAAaoB,EAAQ,EAC1BA,GAAgB,EAEhB,IAAIlvT,EAAIsU,KAAKw6E,MACTlyF,KAAKkhB,WAAWlf,MAAQswT,EAAQtyT,KAAKkhB,WAAWjf,KAChDjC,KAAKkhB,WAAWxB,IAChB1f,KAAKkhB,WAAWvJ,KAEpB3X,KAAKkhB,WAAWlf,MAAQoB,EACxBpD,KAAKy3E,MAAM0jN,WACXn7R,KAAK6+R,gBAAe,KAGxBmyB,EAAatyT,UAAU80S,UAAY,SAAS7yS,EAAGgyC,GAC3C,GAAIhyC,EAAEwyS,WAAa,IAAK,CACpB,IAAImf,EAAQ3/Q,EAAI,GAAoB,GAAf3yC,KAAKyM,KAAK,IAAY,EAAI,EAC/CzM,KAAKkhB,WAAWlf,MAAQ0V,KAAKw6E,MACzBlyF,KAAKkhB,WAAWlf,MAAQswT,EAAQtyT,KAAKkhB,WAAWjf,KAChDjC,KAAKkhB,WAAWxB,IAChB1f,KAAKkhB,WAAWvJ,KAEpB3X,KAAKy3E,MAAM0jN,WACXn7R,KAAK6+R,gBAAe,GAGpB7+R,KAAKoxT,iBACLpxT,KAAKoxT,gBAAiB,EACtBpxT,KAAKopS,cAAa,KAI1B7b,EAAUkE,iBAAiB,gBAAiBu/B,GAqB5CK,EAAYp/R,MAAQ,QACpBo/R,EAAYpwT,KAAO,+BAEnBowT,EAAY3yT,UAAUg0R,UAAY,WAC9B1yR,KAAK4yR,cAAe,EAAG5yR,KAAKkhB,WAAWlf,QAG3CqvT,EAAY3yT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAChD,UAAR4U,GAEF5W,KAAKyuF,QAAUzsF,EAAMs3B,MAAM,KAC3Bt5B,KAAKg9K,OAAO33K,QAAQmY,OAASxd,KAAKyuF,SAEnB,SAAR73E,IAEP5W,KAAKg9K,OAAOh7K,MAAQA,IAInBurR,EAAUkE,iBAAiB,eAAgB4/B,GAkB3CC,EAAWr/R,MAAQ,OACnBq/R,EAAWrwT,KAAO,sBAClBqwT,EAAW7kT,KAAO,CAAC,GAAI,KAEvB6kT,EAAW5yT,UAAU66R,iBAAmB,SAAStgJ,GAC7C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,EAImB,GAAfzyQ,KAAKgC,QACLhC,KAAKgC,OACAhC,KAAKkhB,WAAWlf,MAAQhC,KAAKkhB,WAAWxB,MACxC1f,KAAKkhB,WAAWvJ,IAAM3X,KAAKkhB,WAAWxB,MAG/C,IAAI6yS,EAA0B,GAAfvyT,KAAKyM,KAAK,GACrB+lT,EAA0B,GAAfxyT,KAAKyM,KAAK,GACrBu8S,EAAgD,GAAvCtxS,KAAKgI,IAAI1f,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IAAY,EAClDiL,KAAKE,MAAe,IAAToxS,GAEnB/vK,EAAIo/J,YAAc,EAClBp/J,EAAIr9D,OACJq9D,EAAIqyJ,UAAUinB,EAAUC,GACxBv5K,EAAI6mK,OAAiB,IAAVpoS,KAAKigS,IAGhB1+J,EAAI4+J,UAAY,kBAChB5+J,EAAI09J,YACJ19J,EAAI8mE,OAAO,EAAG,GACd9mE,EAAIy+J,IAAI,EAAG,EAAGsR,EAAQ,EAAa,IAAVtxS,KAAKigS,IAC9B1+J,EAAI2+J,OAGJ3+J,EAAI6+J,YAAc,QAClB7+J,EAAI4+J,UAAY73S,KAAKkhB,WAAWuM,MAChCwrH,EAAIo+J,UAAY,EAChBp+J,EAAI09J,YACJ19J,EAAI8mE,OAAO,EAAG,GACd9mE,EAAIy+J,IACA,EACA,EACAsR,EAAS,EACT,EACU,IAAVtxS,KAAKigS,GAAWjgS,KAAKC,IAAI,IAAM3X,KAAKgC,QAExCi3I,EAAIw+J,YACJx+J,EAAI2+J,OAEJ3+J,EAAIo+J,UAAY,EAChBp+J,EAAIo/J,YAAc,EAClBp/J,EAAIu9J,UAGJv9J,EAAI4+J,UAAY,QAChB5+J,EAAI09J,YACJ19J,EAAIy+J,IAAI6a,EAAUC,EAAmB,IAATxJ,EAAe,EAAa,EAAVtxS,KAAKigS,IAAQ,GAC3D1+J,EAAI2+J,OAGJ3+J,EAAI4+J,UAAY73S,KAAKwyS,UAAY,QAAUxyS,KAAKkhB,WAAWuM,MAC3DwrH,EAAI09J,YACJ,IAAI8b,EAAQzyT,KAAKgC,MAAQ0V,KAAKigS,GAAK,IAAgB,IAAVjgS,KAAKigS,GAC9C1+J,EAAIy+J,IACA6a,EAAW76S,KAAKg7S,IAAID,GAASzJ,EAAS,IACtCwJ,EAAW96S,KAAKi7S,IAAIF,GAASzJ,EAAS,IAC7B,IAATA,EACA,EACU,EAAVtxS,KAAKigS,IACL,GAEJ1+J,EAAI2+J,OAGJ3+J,EAAI4+J,UAAY73S,KAAKwyS,UAAY,QAAU,OAC3Cv5J,EAAIpkF,KAAOn9C,KAAKE,MAAe,GAAToxS,GAAgB,WACtC/vK,EAAIs/J,UAAY,SAChBt/J,EAAIu/J,SACAx4S,KAAKkhB,WAAWlf,MAAMg5B,QAAQh7B,KAAKkhB,WAAWkgS,WAC9CmR,EACAC,EAAoB,IAATxJ,KAInBsI,EAAW5yT,UAAUg0R,UAAY,WAC7B1yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,OACtChC,KAAKwkS,SAAWjX,EAAUi8B,cAAc,CACpCxpT,KAAKgC,MACLhC,KAAKgC,MACLhC,KAAKgC,SAIbsvT,EAAW5yT,UAAU+pO,YAAc,SAAS9nO,GAGxC,OAFAX,KAAK2rS,OAAS,CAAgB,GAAf3rS,KAAKyM,KAAK,GAAyB,GAAfzM,KAAKyM,KAAK,GAAW,IACxDzM,KAAKgpT,OAAwB,GAAfhpT,KAAKyM,KAAK,KAEpB9L,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,GAAK,IAC1B46O,EAAUz6I,SACN,CAACnyI,EAAE8vS,QAAS9vS,EAAE+vS,SACd,CAAC1wS,KAAK2yC,IAAI,GAAK3yC,KAAK2rS,OAAO,GAAI3rS,KAAK2yC,IAAI,GAAK3yC,KAAK2rS,OAAO,KACzD3rS,KAAKgpT,UAIbhpT,KAAK4yT,SAAW,CAACjyT,EAAE8vS,QAAUzwS,KAAK2yC,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,IAC/D3yC,KAAKopS,cAAa,IACX,IAGXkoB,EAAW5yT,UAAUg0S,YAAc,SAAS/xS,GACxC,GAAKX,KAAK4yT,SAAV,CAIA,IAAIlvT,EAAI,CAAC/C,EAAE8vS,QAAUzwS,KAAK2yC,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,IAEnDvvC,EAAIpD,KAAKgC,OACboB,GAAiC,KAA3BM,EAAE,GAAK1D,KAAK4yT,SAAS,KACnB,EACJxvT,EAAI,EACGA,EAAI,IACXA,EAAI,GAERpD,KAAKgC,MAAQoB,EACbpD,KAAKkhB,WAAWlf,MACZhC,KAAKkhB,WAAWxB,KACf1f,KAAKkhB,WAAWvJ,IAAM3X,KAAKkhB,WAAWxB,KAAO1f,KAAKgC,MACvDhC,KAAK4yT,SAAWlvT,EAChB1D,KAAK6+R,gBAAe,KAGxByyB,EAAW5yT,UAAU80S,UAAY,SAAS7yS,GAClCX,KAAK4yT,WACL5yT,KAAK4yT,SAAW,KAChB5yT,KAAKopS,cAAa,KAI1BkoB,EAAW5yT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACpD,GAAY,OAAR4U,GAAyB,OAARA,GAAyB,SAARA,EAElC,OADA5W,KAAKkhB,WAAWtK,GAAQxL,WAAWpJ,IAC5B,GAIfurR,EAAUkE,iBAAiB,cAAe6/B,GAyB1CC,EAAgBt/R,MAAQ,eAExBs/R,EAAgB7yT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC7C,SAAR4U,IACA5W,KAAKyyN,OAAOzwN,MAAQA,IAI5BuvT,EAAgB7yT,UAAUg0R,UAAY,WAClC1yR,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAG1CurR,EAAUkE,iBAAiB,yBAA0B8/B,GAUrDC,EAAcv/R,MAAQ,WACtBu/R,EAAcvwT,KAAO,2BAErBuwT,EAAc9yT,UAAU66R,iBAAmB,SAAStgJ,IAC7B,GAAfj5I,KAAKgC,QACLhC,KAAKgC,OACAhC,KAAKkhB,WAAWlf,MAAQhC,KAAKkhB,WAAWxB,MACxC1f,KAAKkhB,WAAWvJ,IAAM3X,KAAKkhB,WAAWxB,MAI/Cu5H,EAAIo/J,YAAc,EAClBp/J,EAAIo+J,UAAY,EAChBp+J,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAS,EAAG,EAAG55S,KAAKyM,KAAK,GAAK,EAAGzM,KAAKyM,KAAK,GAAK,GAEpDwsI,EAAI4+J,UAAY73S,KAAKkhB,WAAWuM,MAChCwrH,EAAI09J,YACJ19J,EAAIyxJ,KAAK,EAAG,GAAI1qS,KAAKyM,KAAK,GAAK,GAAKzM,KAAKgC,MAAOhC,KAAKyM,KAAK,GAAK,GAC/DwsI,EAAI2+J,QAGR4Z,EAAc9yT,UAAUg0R,UAAY,WAChC1yR,KAAKkhB,WAAWlf,MACZhC,KAAKkhB,WAAWxB,KACf1f,KAAKkhB,WAAWvJ,IAAM3X,KAAKkhB,WAAWxB,KAAO1f,KAAKgC,MACvDhC,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,OACtChC,KAAKwkS,SAAWjX,EAAUi8B,cAAc,CACpCxpT,KAAKgC,MACLhC,KAAKgC,MACLhC,KAAKgC,SAIbwvT,EAAc9yT,UAAU+pO,YAAc,SAAS9nO,GAC3C,QAAIA,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,GAAK,KAI9B3yC,KAAK4yT,SAAW,CAACjyT,EAAE8vS,QAAUzwS,KAAK2yC,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,IAC/D3yC,KAAKopS,cAAa,IACX,IAGXooB,EAAc9yT,UAAUg0S,YAAc,SAAS/xS,GAC3C,GAAKX,KAAK4yT,SAAV,CAIA,IAAIlvT,EAAI,CAAC/C,EAAE8vS,QAAUzwS,KAAK2yC,IAAI,GAAIhyC,EAAE+vS,QAAU1wS,KAAK2yC,IAAI,IAEnDvvC,EAAIpD,KAAKgC,OAEboB,IADYM,EAAE,GAAK1D,KAAK4yT,SAAS,IACpB5yT,KAAKyM,KAAK,IACf,EACJrJ,EAAI,EACGA,EAAI,IACXA,EAAI,GAGRpD,KAAKgC,MAAQoB,EAEbpD,KAAK4yT,SAAWlvT,EAChB1D,KAAK6+R,gBAAe,KAGxB2yB,EAAc9yT,UAAU80S,UAAY,SAAS7yS,GACzCX,KAAK4yT,SAAW,KAChB5yT,KAAKopS,cAAa,IAGtBooB,EAAc9yT,UAAU4jP,aAAe,SAAS3hP,KAIhD4sR,EAAUkE,iBAAiB,iBAAkB+/B,GAQ7CC,EAAex/R,MAAQ,WACvBw/R,EAAexwT,KAAO,gCAEtBwwT,EAAe/yT,UAAUg0R,UAAY,WACjC,IAAItvR,EAAIpD,KAAK2yR,aAAa,QACjB94Q,GAALzW,IACApD,KAAKkhB,WAAL,MAA2B9d,IAInCquT,EAAe/yT,UAAU66R,iBAAmB,SAAStgJ,GAEjDA,EAAIo+J,UAAY,EAChBp+J,EAAI4+J,UAAY73S,KAAKkhB,WAAWuM,MAChC,IAAIrqB,GACCpD,KAAKkhB,WAAWlf,MAAQhC,KAAKkhB,WAAWxB,MACxC1f,KAAKkhB,WAAWvJ,IAAM3X,KAAKkhB,WAAWxB,KAC3Ctc,EAAIsU,KAAKgI,IAAI,EAAGtc,GAChBA,EAAIsU,KAAKC,IAAI,EAAGvU,GAChB61I,EAAI2gK,SAAS,EAAG,GAAI55S,KAAKyM,KAAK,GAAK,GAAKrJ,EAAGpD,KAAKyM,KAAK,GAAK,IAG9D8gR,EAAUkE,iBAAiB,kBAAmBggC,GAe9CC,EAAWz/R,MAAQ,OACnBy/R,EAAWzwT,KAAO,wBAClBywT,EAAWttB,QAAU,CACjB,CAAExtR,KAAM,SAAUuyD,KAAM,aAAchkE,KAAM,UAC5C,CAAEyR,KAAM,WAAYuyD,KAAM,MAAOhkE,KAAM,cACvC,CAAEyR,KAAM,cAAeuyD,KAAM,SAAUhkE,KAAM,eAGjDusT,EAAWhzT,UAAU66R,iBAAmB,SAAStgJ,GAG7CA,EAAI4+J,UAAY73S,KAAKkhB,WAAL,MAChB,IAAI9d,EAAIpD,KAAKkhB,WAAL,MAEJlhB,KAAKkhB,WAAL,UACA+3H,EAAI8mD,YAAc//L,KAAKkhB,WAAWuM,MAClCwrH,EAAI8gK,cAAgB,EACpB9gK,EAAI+gK,cAAgB,EACpB/gK,EAAIghK,WAAaj6S,KAAKkhB,WAAL,UAEjB+3H,EAAI8mD,YAAc,cAGtB,IAAI4xH,EAAW3xT,KAAKkhB,WAAL,SAOf,GALA+3H,EAAIs/J,UAAYv4S,KAAKkhB,WAAL,MAChB+3H,EAAIpkF,KAAO88P,EAASl5S,WAAa,MAAQzY,KAAKkhB,WAAL,KACzClhB,KAAKs/B,IACW,iBAALl8B,EAAgBA,EAAE43B,QAAQh7B,KAAKkhB,WAAL,UAA+B9d,EAE7C,iBAAZpD,KAAKs/B,IAEZ,IADA,IAAIq1B,EAAQ30D,KAAKs/B,IAAIhG,MAAM,OAClBx7B,EAAE,EAAGA,EAAI62D,EAAM52D,OAAQD,IAC5Bm7I,EAAIu/J,SACA7jP,EAAM72D,GACsB,QAA5BkC,KAAKkhB,WAAL,MAAqC,GAAKlhB,KAAKyM,KAAK,GAAK,IAC7C,IAAZklT,EAAmBA,GAAYlyR,SAAS3hC,GAAK,IAKzDm7I,EAAI8mD,YAAc,cAClB//L,KAAK6yT,SAAW55K,EAChBA,EAAIs/J,UAAY,QAGpBmZ,EAAWhzT,UAAUg0R,UAAY,WAC7B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IACApD,KAAKkhB,WAAL,MAA2B9d,IAKnCsuT,EAAWhzT,UAAU6zS,OAAS,WAC1B,GAAKvyS,KAAK6yT,SAAV,CAIA,IAAIl+P,EAAQ30D,KAAKs/B,IAAIhG,MAAM,OAC3Bt5B,KAAK6yT,SAASh+P,KACV70D,KAAKkhB,WAAL,SAA8B,MAAQlhB,KAAKkhB,WAAL,KAE1C,IADA,IAAIvJ,EAAM,EACD7Z,EAAE,EAAGA,EAAI62D,EAAM52D,OAAQD,IAAK,CACjC,IAAIkyG,EAAIhwG,KAAK6yT,SAASha,YAAYlkP,EAAM72D,IAAI+M,MACxC8M,EAAMq4F,IACNr4F,EAAMq4F,GAGdhwG,KAAKyM,KAAK,GAAKkL,EAAM,GACrB3X,KAAKyM,KAAK,GAAK,EAAIkoD,EAAM52D,OAASiC,KAAKkhB,WAAL,SAElClhB,KAAK6+R,gBAAe,KAGxB6yB,EAAWhzT,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAIpD,OAHAhC,KAAKkhB,WAAWtK,GAAQ5U,EACxBhC,KAAKs/B,IAAsB,iBAATt9B,EAAoBA,EAAMg5B,QAAQ,GAAKh5B,GAElD,GAGXurR,EAAUkE,iBAAiB,cAAeigC,GAa1CK,EAAY9/R,MAAQ,QACpB8/R,EAAY9wT,KAAO,wBACnB8wT,EAAY3tB,QAAU,CAAC,CAAExtR,KAAM,SAAUuyD,KAAM,SAAUhkE,KAAM,WAE/D4sT,EAAYrzT,UAAUo0T,eAAiB,SAAS75K,GAEP,IAAjCj5I,KAAKkhB,WAAL,YACoC,IAApClhB,KAAKkhB,WAAL,eAMJlhB,KAAK+yT,eAAiB95K,EAAI2iK,qBAAqB,EAAG,EAAG,EAAG57S,KAAKyM,KAAK,IAClEzM,KAAK+yT,eAAelX,aAAa,EAAG77S,KAAKkhB,WAAL,YACpClhB,KAAK+yT,eAAelX,aAAa,EAAG77S,KAAKkhB,WAAL,gBANhClhB,KAAK+yT,eAAiB,GAS9BhB,EAAYrzT,UAAU66R,iBAAmB,SAAStgJ,GAC1Cj5I,KAAK0iM,MAAM+vE,YAIY,MAAvBzyQ,KAAK+yT,gBACL/yT,KAAK8yT,eAAe75K,GAGnBj5I,KAAK+yT,iBAIV95K,EAAIo+J,UAAY,EAChBp+J,EAAI6+J,YAAc93S,KAAKkhB,WAAL,YAElB+3H,EAAI4+J,UAAY73S,KAAK+yT,eAEjB/yT,KAAKkhB,WAAL,YACA+3H,EAAI8mD,YAAc,OAClB9mD,EAAI8gK,cAAgB,EACpB9gK,EAAI+gK,cAAgB,EACpB/gK,EAAIghK,WAAaj6S,KAAKkhB,WAAL,YAEjB+3H,EAAI8mD,YAAc,cAGtB9mD,EAAIq/J,UACA,EACA,EACAt4S,KAAKyM,KAAK,GAAK,EACfzM,KAAKyM,KAAK,GAAK,EACfzM,KAAKkhB,WAAL,YAEJ+3H,EAAI2+J,OACJ3+J,EAAI8mD,YAAc,cAClB9mD,EAAI6hK,YAGRvtB,EAAUkE,iBAAiB,eAAgBsgC,GA1xB/C,CA2xBG/xT,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEvB,SAASylC,IACLhzT,KAAK0hS,UAAU,cAAe,UAC9B1hS,KAAK0hS,UAAU,cAAe,UAC9B1hS,KAAK0hS,UAAU,iBAAkBnU,EAAUuC,OAC3C9vR,KAAKkhB,WAAa,CAAE+xS,cAAe,EAAGC,UAAW,IAEjDlzT,KAAKmzT,WAAa,IAAI39B,aAAa,GACnCx1R,KAAKozT,YAAc,IAAI59B,aAAa,GACpCx1R,KAAKqzT,UAAY,IAAI79B,aAAa,GAClCx1R,KAAKszT,kBAAoB,IAAIt3P,WAAW,IACxCh8D,KAAKuzT,iBAAmB,IAAIv3P,WAAW,IAG3Cg3P,EAAa/gS,MAAQ,UACrB+gS,EAAa/xT,KAAO,gCAEpB+xT,EAAa1iC,OAAS,EACtB0iC,EAAarnR,KAAO,EACpBqnR,EAAapnR,MAAQ,EACrBonR,EAAa5iC,GAAK,EAClB4iC,EAAa3iC,KAAO,EAEpB2iC,EAAa/0H,KAAO,IAAIu3F,aAAa,GACrCw9B,EAAaj5S,QAAU,CACnB,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,OACA,QACA,KACA,KACA,QAGJi5S,EAAat0T,UAAUg0R,UAAY,WAE/B,IAAI8gC,EAAUxzT,KAAKyzT,aACfP,EAAYlzT,KAAKkhB,WAAWgyS,WAAa,EA6B7C,GA3BIM,IACAxzT,KAAKmzT,WAAW,GACZz7S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,IAA2BT,EAC9BM,EAAQE,KAAKC,KAAb,GACA,EACV3zT,KAAKmzT,WAAW,GACZz7S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,IAA2BT,EAC9BM,EAAQE,KAAKC,KAAb,GACA,EACV3zT,KAAKozT,YAAY,GACb17S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,IAA2BT,EAC9BM,EAAQE,KAAKC,KAAb,GACA,EACV3zT,KAAKozT,YAAY,GACb17S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,IAA2BT,EAC9BM,EAAQE,KAAKC,KAAb,GACA,EACV3zT,KAAKqzT,UAAU,GACX37S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,UAAiCT,EACpCM,EAAQE,KAAKC,KAAb,SACA,EACV3zT,KAAKqzT,UAAU,GACX37S,KAAKmgD,IAAI27P,EAAQE,KAAKC,KAAb,UAAiCT,EACpCM,EAAQE,KAAKC,KAAb,SACA,GAGV3zT,KAAKo8R,QACL,IAAK,IAAIt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,OAAQD,IAAK,CAC1C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAC1B,GAAKk6B,EAAOupE,OAAUvpE,EAAOupE,MAAMxjG,OAAnC,CAGA,IAAIqF,EAAI,KAER,GAAIowT,EACA,OAAQx7R,EAAOphB,MACX,IAAK,YACDxT,EAAIpD,KAAKmzT,WACT,MACJ,IAAK,aACD/vT,EAAIpD,KAAKozT,YACT,MACJ,IAAK,cACDhwT,EAAIpD,KAAKmzT,WAAW,GACpB,MACJ,IAAK,cACD/vT,EAAIpD,KAAKmzT,WAAW,GACpB,MACJ,IAAK,eACD/vT,EAAIpD,KAAKozT,YAAY,GACrB,MACJ,IAAK,eACDhwT,EAAIpD,KAAKozT,YAAY,GACrB,MACJ,IAAK,eACDhwT,EAAIpD,KAAKqzT,UAAU,GACnB,MACJ,IAAK,gBACDjwT,EAAIpD,KAAKqzT,UAAU,GACnB,MACJ,IAAK,WACDjwT,EAAIowT,EAAQE,KAAK35S,QAAb,EAA4B,EAAI,EACpC,MACJ,IAAK,WACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,EAA4B,EAAI,EACpC,MACJ,IAAK,WACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,EAA4B,EAAI,EACpC,MACJ,IAAK,WACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,EAA4B,EAAI,EACpC,MACJ,IAAK,YACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,GAA6B,EAAI,EACrC,MACJ,IAAK,YACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,GAA6B,EAAI,EACrC,MACJ,IAAK,YACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,GAA6B,EAAI,EACrC,MACJ,IAAK,YACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,GAA6B,EAAI,EACrC,MACJ,IAAK,WACD3W,EAAIowT,EAAQE,KAAKE,OAASZ,EAAarnR,KACvC,MACJ,IAAK,YACDvoC,EAAIowT,EAAQE,KAAKE,OAASZ,EAAapnR,MACvC,MACJ,IAAK,SACDxoC,EAAIowT,EAAQE,KAAKE,OAASZ,EAAa5iC,GACvC,MACJ,IAAK,WACDhtR,EAAIowT,EAAQE,KAAKE,OAASZ,EAAa3iC,KACvC,MACJ,IAAK,MACDjtR,EAAIowT,EAAQE,KAAKE,OACjB,MACJ,IAAK,eACDxwT,EAAIowT,EAAQE,KAAK35S,QAAb,MAAgC,EAAI,EACxC,MACJ,IAAK,cACD3W,EAAIowT,EAAQE,KAAK35S,QAAb,KAA+B,EAAI,EACvC,MACJ,IAAK,iBACD,IACI,IAAI5V,EAAI,EACRA,EAAInE,KAAKuzT,iBAAiBx1T,SACxBoG,EAGEnE,KAAKuzT,iBAAiBpvT,KACrBnE,KAAKszT,kBAAkBnvT,IAExBnE,KAAKgmS,YACDloS,EACAk1T,EAAaj5S,QAAQ5V,SAUzC,OAAQ6zB,EAAOphB,MACX,IAAK,iBACD,MACJ,IAAK,YACL,IAAK,aACDxT,EAAI4vT,EAAa/0H,KACjB,MACJ,QACI76L,EAAI,EAGhBpD,KAAK4yR,cAAc90R,EAAGsF,MAKrC4vT,EAAavrJ,QAAU,CAACvjK,EAAE,EAAE5E,EAAE,EAAE2c,EAAE,EAAEvZ,EAAE,EAAEmxT,GAAG,EAAEC,GAAG,EAAEtqQ,GAAG,EAAEuqQ,GAAG,EAAEC,KAAK,EAAE5zS,MAAM,EAAE6zS,GAAG,GAAGC,GAAG,IACpFlB,EAAamB,cAAgB,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,MAEnFnB,EAAat0T,UAAU+0T,WAAa,WAChC,IAAIW,EACA55P,UAAU45P,aACV55P,UAAU65P,mBACV75P,UAAU85P,eACd,IAAKF,EACD,OAAO,KAEX,IAAIG,EAAWH,EAAYx0T,KAAK46D,WAC5Bg5P,EAAU,KAEdxzT,KAAKszT,kBAAkB9rR,IAAIxnC,KAAKuzT,kBAGhC,IAAK,IAAIz1T,EAAIkC,KAAKkhB,WAAW+xS,cAAen1T,EAAI,EAAGA,IAC/C,GAAKy2T,EAASz2T,GAAd,CAGA01T,EAAUe,EAASz2T,GAGnB,IAAI41T,EAAO1zT,KAAKw0T,aACXd,IACDA,EAAO1zT,KAAKw0T,aAAe,CACvBb,KAAM,GACN55S,QAAS,GACT06S,IAAK,GACLb,OAAQZ,EAAa1iC,SAI7BojC,EAAKC,KAAL,GAAkBH,EAAQG,KAAK,GAC/BD,EAAKC,KAAL,GAAkBH,EAAQG,KAAK,GAC/BD,EAAKC,KAAL,GAAkBH,EAAQG,KAAK,GAC/BD,EAAKC,KAAL,GAAkBH,EAAQG,KAAK,GAC/BD,EAAKC,KAAL,SAAwBH,EAAQz5S,QAAQ,GAAG/X,MAC3C0xT,EAAKC,KAAL,SAAwBH,EAAQz5S,QAAQ,GAAG/X,MAC3C0xT,EAAKe,IAAM,GACXf,EAAKE,OAASZ,EAAa1iC,OAE3B,IAAK,IAAInsR,EAAI,EAAGA,EAAIqvT,EAAQz5S,QAAQhc,OAAQoG,IAGpD,GAFYnE,KAAKuzT,iBAAiBpvT,GAAKqvT,EAAQz5S,QAAQ5V,GAAGuwT,QAEvDvwT,EAAI,GAENuvT,EAAK35S,QAASi5S,EAAamB,cAAchwT,IAAOqvT,EAAQz5S,QAAQ5V,GAAGuwT,QAChElB,EAAQz5S,QAAQ5V,GAAGwwT,aACrB30T,KAAK+gE,QAASiyP,EAAamB,cAAchwT,GAAK,sBAG/C,OAASA,GAER,KAAK,GACAqvT,EAAQz5S,QAAQ5V,GAAGuwT,UACtBhB,EAAKe,KAAO,KACZf,EAAKE,QAAUZ,EAAa5iC,IAE7B,MACD,KAAK,GACAojC,EAAQz5S,QAAQ5V,GAAGuwT,UACtBhB,EAAKe,KAAO,OACZf,EAAKE,QAAUZ,EAAa3iC,MAE7B,MACD,KAAK,GACAmjC,EAAQz5S,QAAQ5V,GAAGuwT,UACtBhB,EAAKe,KAAO,OACZf,EAAKE,QAAUZ,EAAarnR,MAE7B,MACD,KAAK,GACA6nR,EAAQz5S,QAAQ5V,GAAGuwT,UACtBhB,EAAKe,KAAO,QACZf,EAAKE,QAAUZ,EAAapnR,OAE7B,MACD,KAAK,GACJ8nR,EAAK35S,QAAL,KAAuBy5S,EAAQz5S,QAAQ5V,GAAGuwT,QAMrC,OADAlB,EAAQE,KAAOA,EACRF,IAIfR,EAAat0T,UAAU46R,iBAAmB,SAASrgJ,GAC/C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAKA,IAAImiD,EAAK50T,KAAKmzT,WACV0B,EAAK70T,KAAKozT,YACdn6K,EAAI6+J,YAAc,OAClB7+J,EAAI8+J,WACc,IAAb6c,EAAG,GAAK,GAAW50T,KAAKyM,KAAK,GAAK,EACrB,IAAbmoT,EAAG,GAAK,GAAW50T,KAAKyM,KAAK,GAAK,EACnC,EACA,GAEJwsI,EAAI6+J,YAAc,OAClB7+J,EAAI8+J,WACc,IAAb8c,EAAG,GAAK,GAAW70T,KAAKyM,KAAK,GAAK,EACrB,IAAbooT,EAAG,GAAK,GAAW70T,KAAKyM,KAAK,GAAK,EACnC,EACA,GAEJ,IAAIyqD,EAAIl3D,KAAKyM,KAAK,GAAKzM,KAAKuzT,iBAAiBx1T,OAC7Ck7I,EAAI4+J,UAAY,OAChB,IAAK,IAAI/5S,EAAI,EAAGA,EAAIkC,KAAKuzT,iBAAiBx1T,SAAUD,EAC5CkC,KAAKuzT,iBAAiBz1T,IACtBm7I,EAAI2gK,SAAS,EAAG1iP,EAAIp5D,EAAG,EAAGo5D,KAKtC87P,EAAat0T,UAAUglT,aAAe,WAClC,MAAO,CACH,CAAC,YAAa,QACd,CAAC,aAAc,QACf,CAAC,cAAe,UAChB,CAAC,cAAe,UAChB,CAAC,eAAgB,UACjB,CAAC,eAAgB,UACjB,CAAC,eAAgB,UACjB,CAAC,gBAAiB,UAClB,CAAC,WAAY,UACb,CAAC,WAAY,UACb,CAAC,WAAY,UACb,CAAC,WAAY,UACb,CAAC,YAAa,UACd,CAAC,YAAa,UACd,CAAC,YAAa,UACd,CAAC,YAAa,UACd,CAAC,eAAgB,UACjB,CAAC,cAAe,UAChB,CAAC,iBAAkBn2B,EAAUuC,OAC7B,CAAC,iBAAkBvC,EAAUuC,OAC7B,CAAC,iBAAkBvC,EAAUuC,OAC7B,CAAC,iBAAkBvC,EAAUuC,OAC7B,CAAC,kBAAmBvC,EAAUuC,OAC9B,CAAC,kBAAmBvC,EAAUuC,OAC9B,CAAC,kBAAmBvC,EAAUuC,OAC9B,CAAC,kBAAmBvC,EAAUuC,OAC9B,CAAC,qBAAsBvC,EAAUuC,OACjC,CAAC,oBAAqBvC,EAAUuC,OAChC,CAAC,WAAY,UACb,CAAC,YAAa,UACd,CAAC,SAAU,UACX,CAAC,WAAY,UACb,CAAC,MAAO,UACR,CAAC,iBAAkBvC,EAAUuC,SAIrCvC,EAAUkE,iBAAiB,gBAAiBuhC,GA/VhD,CAgWGhzT,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAGvB,SAASunC,IACL90T,KAAK+gS,SAAS,KAAM,IAC3B/gS,KAAK0hS,UAAU,OACR1hS,KAAKyM,KAAO,CAAC,GAAI,IAwErB,SAASsoT,IACL/0T,KAAK+gS,SAAS,MACd/gS,KAAK0hS,UAAU,OACf1hS,KAAKyM,KAAO,CAAC,GAAI,IAarB,SAASuoT,IACLh1T,KAAK+gS,SAAS,MACd/gS,KAAK0hS,UAAU,OAanB,SAASuzB,IACLj1T,KAAK+gS,SAAS,KAAM,SAAU,CAAE8nB,QAAQ,IACxC7oT,KAAK0hS,UAAU,MAAO,SAAU,CAAEmnB,QAAQ,IAC1C7oT,KAAK0hS,UAAU,UAAW,SAAU,CAAEmnB,QAAQ,IAE9C7oT,KAAKqmS,YAAY,KAAM,GACvBrmS,KAAKqmS,YAAY,SAAU,GAC3BrmS,KAAKqmS,YAAY,SAAU,GAC3BrmS,KAAKqmS,YAAY,UAAW,GAC5BrmS,KAAKqmS,YAAY,UAAW,GAE5BrmS,KAAKyM,KAAO,CAAC,IAAK,IAwEtB,SAASyoT,IACLl1T,KAAK0hS,UAAU,QAAS,UACxB1hS,KAAKqmS,YAAY,MAAO,GACxBrmS,KAAKqmS,YAAY,MAAO,GACxBrmS,KAAKyM,KAAO,CAAC,GAAI,IAoCrB,SAAS0oT,IACLn1T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKqmS,YAAY,MAAO,GACxBrmS,KAAKqmS,YAAY,MAAO,GACxBrmS,KAAKqmS,YAAY,UAAU,GAC3BrmS,KAAKqmS,YAAY,OAAQ,GACzBrmS,KAAKqmS,YAAY,UAAW,GAC5BrmS,KAAKqmS,YAAY,cAAe,IAChCrmS,KAAKqmS,YAAY,QAAS,GAC1BrmS,KAAKyM,KAAO,CAAC,GAAI,IA4DrB,SAAS2oT,IACLp1T,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKqmS,YAAY,WAAY,GAC7BrmS,KAAKqmS,YAAY,WAAY,GAC7BrmS,KAAKqmS,YAAY,WAAY,IAC7BrmS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKq1T,gBAAkB,EACvBr1T,KAAKs1T,YAAc,EAkCvB,SAASC,IACLv1T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,MAAO,GACxBrmS,KAAKqmS,YAAY,MAAO,GAiC5B,SAASmvB,IACLx1T,KAAKkhB,WAAa,CAAEze,EAAG,IACvBzC,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UAEnB/gS,KAAK0hS,UAAU,MAAO,UAiC1B,SAAS+zB,IACLz1T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IAiBrB,SAASipT,IACL11T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IAiBrB,SAASkpT,IACL31T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IAiBrB,SAASmpT,IACL51T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKkhB,WAAa,CAAEi9Q,EAAG,EAAGC,EAAG,GA0BjC,SAASy3B,IACL71T,KAAK+gS,SAAS,KAAM,SAAU,CAAEl+R,MAAO,KACvC7C,KAAK0hS,UAAU,MAAO,SAAU,CAAE7+R,MAAO,KACzC7C,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,SAAU,GAgBlC,SAASyvB,IACR91T,KAAK+gS,SAAS,IAAI,WAClB/gS,KAAK+gS,SAAS,KACd/gS,KAAK+gS,SAAS,KACd/gS,KAAK0hS,UAAU,OAeb,SAASq0B,IACL/1T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKqmS,YAAY,UAAW,IAC5BrmS,KAAKyuF,QAAU,IAAI+mM,aAAa,IAChCx1R,KAAKg2T,SAAW,EA8CpB,SAASC,IACLj2T,KAAK+gS,SAAS,KAAM,UACpB/gS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKqmS,YAAY,SAAU,IAC3BrmS,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAKie,OAAS,KAuBlB,SAASi4S,IACLl2T,KAAK+gS,SAAS,IAAK,uBACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAKqmS,YAAY,IAAK,GACtBrmS,KAAKqmS,YAAY,IAAK,GACtBrmS,KAAKqmS,YAAY,KAAM,IAAK,OAAQ,CAAE7oR,OAAQ04S,EAAc14S,SAClExd,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GACxCp+R,KAAK8tT,QAAU,GAqHb,SAASqI,IACLn2T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,OAAQ,WACvB1hS,KAAK0hS,UAAU,OAAQ,WACvB1hS,KAAKqmS,YAAY,IAAK,GACtBrmS,KAAKqmS,YAAY,IAAK,GAyF1B,SAAS+vB,IACLp2T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,OAAQ,WACvB1hS,KAAK0hS,UAAU,QAAS,WACxB1hS,KAAKqmS,YAAY,IAAK,GACtBrmS,KAAKqmS,YAAY,IAAK,GACtBrmS,KAAKqmS,YAAY,KAAM,IAAK,OAAQ,CAAE7oR,OAAQ44S,EAAc54S,SAClExd,KAAK0nS,UAAU,QAAQ,QAAQ1nS,KAAKkhB,WAAWm1S,GAAG,CAAEjpR,SAAU,KAAM5vB,OAAQ44S,EAAc54S,SAEpFxd,KAAKyM,KAAO,CAAC,GAAI,IAmErB,SAAS6pT,IACLt2T,KAAK+gS,SAAS,KAAM,IACpB/gS,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK0hS,UAAU,OAAQ,IACvB1hS,KAAK0hS,UAAU,QAAS,IACxB1hS,KAAKyM,KAAO,CAAC,GAAI,IAyBrB,SAAS8pT,IACLv2T,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK0hS,UAAU,QAAS,UACxB1hS,KAAKqmS,YAAY,YAAa,GAC9BrmS,KAAKqmS,YAAY,QAAS,GAuB9B,SAASmwB,IACLx2T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,MAAO,UAEtB1hS,KAAKqmS,YAAY,YAAa,GAC9BrmS,KAAKqmS,YAAY,SAAU,GAC3BrmS,KAAKy2T,WAAa,0BAiFtB,SAASC,IACL12T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAKvZ,EAAG,EAAKi0T,QAAS,OAC7C32T,KAAK42T,YAAc52T,KAAK0nS,UACpB,OACA,SACA1nS,KAAKkhB,WAAWy1S,SAChB,SAASvzT,EAAGgzR,EAAQxxR,GAChBA,EAAKsc,WAAWy1S,QAAUvzT,KAGlCpD,KAAK0nS,UAAU,SAAU,QAASna,EAAU2D,eAAe,SAAS9tR,GAChEmqR,EAAU2D,cAAgB9tR,KAE9BpD,KAAKwuT,MAAQ,KAkEjB,SAASqI,IACL72T,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UAkBxB,SAASo1B,IACL92T,KAAKymS,UAAU,CAAC,CAAC,IAAK,UAAW,CAAC,IAAK,YACvCzmS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,GAC7B1C,KAAKwmC,MAAQ,IAAIgvP,aAAa,GAyBlC,SAASuhC,IACL/2T,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UAmBxB,SAASs1B,IACLh3T,KAAKymS,UAAU,CAAC,CAAC,IAAK,UAAW,CAAC,IAAK,UAAW,CAAC,IAAK,YACxDzmS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,EAAG2sG,EAAG,GACnCrvG,KAAKwmC,MAAQ,IAAIgvP,aAAa,GA8BlC,SAASyhC,IACLj3T,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UACpB1hS,KAAK0hS,UAAU,IAAK,UAoBxB,SAASw1B,IACLl3T,KAAKymS,UAAU,CACX,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,YAEVzmS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,EAAG2sG,EAAG,EAAGW,EAAG,GACzChwG,KAAKwmC,MAAQ,IAAIgvP,aAAa,GAnwClCs/B,EAAU7iS,MAAQ,YAClB6iS,EAAU7zT,KAAO,mBAEjB6zT,EAAUp2T,UAAUg0R,UAAY,WAC5B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B,GAAS,MAALvvR,GAIApD,KAAKo8R,QACL,IAAK,IAAIt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,OAAQD,IAAK,CAC1C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAC1B,GAAKk6B,EAAOupE,OAAUvpE,EAAOupE,MAAMxjG,OAAnC,CAIA,IAAIqE,EAAS,KACb,OAAQ41B,EAAOphB,MACX,IAAK,SACDxU,EAASgB,EAAErF,OAASqF,EAAE,GAAKgI,WAAWhI,GACtC,MACJ,IAAK,OACL,IAAK,OACL,IAAK,OACGhB,EAAS,KAAb,IACIu9G,EAAQ,EACZ,OAAQ3nF,EAAOphB,MACX,IAAK,OACD+oG,EAAQ,EACR,MACJ,IAAK,OACDA,EAAQ,EACR,MACJ,IAAK,OACDA,EAAQ,EAIZv9G,EAAS,IAAIozR,aAAa71K,GAC9B,GAAIv8G,EAAErF,OACF,IACI,IAAIoG,EAAI,EACRA,EAAIf,EAAErF,QAAUoG,EAAI/B,EAAOrE,OAC3BoG,IAEA/B,EAAO+B,GAAKf,EAAEe,QAGlB/B,EAAO,GAAKgJ,WAAWhI,GAInCpD,KAAK4yR,cAAc90R,EAAGsE,MAKlC0yT,EAAUp2T,UAAUglT,aAAe,WAC/B,MAAO,CACH,CAAC,SAAU,UACX,CAAC,OAAQ,QACT,CAAC,OAAQ,QACT,CAAC,OAAQ,UAIjBn2B,EAAUkE,iBAAiB,iBAAkBqjC,GAS7CC,EAAO9iS,MAAQ,SACf8iS,EAAO9zT,KAAO,mBAEd8zT,EAAOr2T,UAAUg0R,UAAY,WACzB,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B3yR,KAAK4yR,cAAc,EAAGxvR,IAG1BmqR,EAAUkE,iBAAiB,cAAesjC,GAO1CC,EAAS/iS,MAAQ,YACjB+iS,EAAS/zT,KAAO,iBAEhB+zT,EAASt2T,UAAUg0R,UAAY,WAC3B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B3yR,KAAK4yR,cAAc,EAAG7lK,OAAO3pH,KAGjCmqR,EAAUkE,iBAAiB,iBAAkBujC,GAgB7CC,EAAUhjS,MAAQ,QAClBgjS,EAAUh0T,KAAO,6CAEjBg0T,EAAUv2T,UAAUgmS,SAAW,WAC3B,OAAI1kS,KAAK0iM,MAAM+vE,WACHzyQ,KAAKm3T,SAAW,GAAGn8R,QAAQ,GAEhCh7B,KAAKiyB,OAGhBgjS,EAAUv2T,UAAUg0R,UAAY,WAC5B,GAAI1yR,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,OAAQD,IAAK,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,QAEd+b,KADNzW,EAAIpD,KAAK2yR,aAAa70R,MAI1BkC,KAAKkhB,WAAWkuE,EAAMx4E,MAAQxT,GAItC,IAAIA,OACMyW,KADNzW,EAAIpD,KAAKkhB,WAAL,KACqB,OAAN9d,GAAcA,EAAEnD,cAAgB8sH,SACnD3pH,EAAI,GAGR,IAAIg0T,EAASp3T,KAAKkhB,WAAWk2S,OACzBC,EAASr3T,KAAKkhB,WAAWm2S,OACzBC,EAAUt3T,KAAKkhB,WAAWo2S,QAC1BC,EAAUv3T,KAAKkhB,WAAWq2S,QAc9Bv3T,KAAKm3T,SAAY/zT,EAAIg0T,IAAWC,EAASD,IAAYG,EAAUD,GAAWA,EAC1Et3T,KAAK4yR,cAAc,EAAG5yR,KAAKm3T,SAC3Bn3T,KAAK4yR,cAAc,EAAGl7Q,KAAKw6E,MAAOlyF,KAAKm3T,QAASG,EAASC,KAG7DtC,EAAUv2T,UAAU46R,iBAAmB,SAASrgJ,GAExCj5I,KAAKm3T,QACLn3T,KAAKo8R,QAAQ,GAAGv5R,MAAQ7C,KAAKm3T,QAAQn8R,QAAQ,GAE7Ch7B,KAAKo8R,QAAQ,GAAGv5R,MAAQ,KAIhCoyT,EAAUv2T,UAAU4kT,YAAc,WAC9B,MAAO,CACH,CAAC,SAAU,UACX,CAAC,SAAU,UACX,CAAC,UAAW,UACZ,CAAC,UAAW,YAIpB/1B,EAAUkE,iBAAiB,aAAcwjC,GASzCC,EAASjjS,MAAQ,OACjBijS,EAASj0T,KAAO,gBAEhBi0T,EAASx2T,UAAUg0R,UAAY,WAC3B,GAAI1yR,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,OAAQD,IAAK,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBsF,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IAGJpD,KAAKkhB,WAAWkuE,EAAMx4E,MAAQxT,GAItC,IAAIsc,EAAM1f,KAAKkhB,WAAWxB,IACtB/H,EAAM3X,KAAKkhB,WAAWvJ,IAC1B3X,KAAKm3T,QAAUz/S,KAAK6uD,UAAY5uD,EAAM+H,GAAOA,EAC7C1f,KAAK4yR,cAAc,EAAG5yR,KAAKm3T,UAG/BjC,EAASx2T,UAAU46R,iBAAmB,SAASrgJ,GAE3Cj5I,KAAKo8R,QAAQ,GAAGv5R,OAAS7C,KAAKm3T,SAAW,GAAGn8R,QAAQ,IAGxDk6R,EAASx2T,UAAU4kT,YAAc,WAC7B,MAAO,CAAC,CAAC,MAAO,UAAW,CAAC,MAAO,YAGvC/1B,EAAUkE,iBAAiB,YAAayjC,GAgBxCC,EAAUljS,MAAQ,QAClBkjS,EAAUl0T,KAAO,yCACjBk0T,EAAUh2T,KAAO,KAEjBg2T,EAAUlrR,SAAW,SAASxnC,EAAG+0T,GAC7B,IAAKrC,EAAUh2T,KAAM,CACjBg2T,EAAUh2T,KAAO,IAAIq2R,aAAa,MAClC,IAAK,IAAI13R,EAAI,EAAGA,EAAIq3T,EAAUh2T,KAAKpB,SAAUD,EACzCq3T,EAAUh2T,KAAKrB,GAAK4Z,KAAK6uD,UAGjC9jE,GAAQ,MACA,IACJA,GAAK,MAET,IAAIg1T,EAAQ//S,KAAKE,MAAMnV,GACnBA,GAAQg1T,EAMZ,OAHID,IACA/0T,EAAIA,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAU,IAAQ,KAHnC0yT,EAAUh2T,KAAKs4T,IAKX,EAAIh1T,GAJR0yT,EAAUh2T,KAAc,MAATs4T,EAAgB,EAAIA,EAAQ,GAIzBh1T,GAG/B0yT,EAAUz2T,UAAUg0R,UAAY,WAC5B,IAAIjwR,EAAIzC,KAAK2yR,aAAa,IAAM,EAClC+kC,EAAa13T,KAAKkhB,WAAWy2S,SAAW,EACxCx2T,EAAI,EACJy2T,EAAM,EAEVn1T,GADWzC,KAAKkhB,WAAW22S,MAAQ,EAInC,IAFA,IAAIC,EAAQ93T,KAAKkhB,WAAW42S,OAAS,EACjCC,EAAY,EACRj6T,EAAI,EAAGA,EAAI45T,IAElBv2T,GAAKg0T,EAAUlrR,SAASxnC,GAAK,EAAE3E,GAAKg6T,EAAO93T,KAAKkhB,WAAWs2S,QAAUI,EACrEG,GAAaH,KACbA,GAAO53T,KAAKkhB,WAAW82S,aACd,SALuBl6T,GAQjCqD,GAAK42T,EACC,IAAIr4S,EAAM1f,KAAKkhB,WAAWxB,IACtB/H,EAAM3X,KAAKkhB,WAAWvJ,IAC1B3X,KAAKm3T,QAAUh2T,GAAKwW,EAAM+H,GAAOA,EACjC1f,KAAK4yR,cAAc,EAAG5yR,KAAKm3T,UAG/BhC,EAAUz2T,UAAU46R,iBAAmB,SAASrgJ,GAE5Cj5I,KAAKo8R,QAAQ,GAAGv5R,OAAS7C,KAAKm3T,SAAW,GAAGn8R,QAAQ,IAGxDuyP,EAAUkE,iBAAiB,aAAc0jC,GAazCC,EAAWnjS,MAAQ,SACnBmjS,EAAWn0T,KAAO,0BAElBm0T,EAAW12T,UAAUg0R,UAAY,WAC7B,IAAIg+B,EAAK1wT,KAAKy3E,MAAMskN,aAEpB/7R,KAAKq1T,iBAAmB3E,EACxB1wT,KAAKs1T,aAAe5E,EAEpB,IAAIttT,EAAI,EACR,GAAIpD,KAAKs1T,YAAc,EAAG,CACtB,IAAI7yT,EAAIzC,KAAKs1T,YAAct1T,KAAKkhB,WAAWshI,SAC3Cp/I,EAAI,GAAKsU,KAAKo/C,IAAQ,EAAJr0D,EAAQ,EAAG,GAAK,GAGlCzC,KAAKq1T,gBAAkB,GACvBr1T,KAAKq1T,gBACD39S,KAAK6uD,UACAvmE,KAAKkhB,WAAW+2S,SAAWj4T,KAAKkhB,WAAWg3S,UAChDl4T,KAAKkhB,WAAWg3S,SACpBl4T,KAAKs1T,YAAct1T,KAAKkhB,WAAWshI,SACnCxiJ,KAAKwkS,SAAW,QAEhBxkS,KAAKwkS,SAAW,OAEpBxkS,KAAK4yR,cAAc,EAAGxvR,IAG1BmqR,EAAUkE,iBAAiB,cAAe2jC,GAW1CG,EAAUtjS,MAAQ,QAClBsjS,EAAUt0T,KAAO,mCAGjBs0T,EAAU72T,UAAUg0R,UAAY,WAC5B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IAGJA,EAAIsU,KAAKC,IAAI3X,KAAKkhB,WAAWxB,IAAKtc,GAClCA,EAAIsU,KAAKgI,IAAI1f,KAAKkhB,WAAWvJ,IAAKvU,GAClCpD,KAAK4yR,cAAc,EAAGxvR,KAG1BmyT,EAAU72T,UAAUy5T,QAAU,SAASrtQ,GACnC,IAAI5nB,EAAO,GASX,OARIljC,KAAKqlS,iBAAiB,KACtBniQ,GACI,eACAljC,KAAKkhB,WAAWxB,IAChB,IACA1f,KAAKkhB,WAAWvJ,IAChB,KAEDurB,GAGXqqP,EAAUkE,iBAAiB,aAAc8jC,GAWzCC,EAASvjS,MAAQ,OACjBujS,EAASv0T,KAAO,uBAEhBu0T,EAAS92T,UAAUg0R,UAAY,WAC3B,IAAI0lC,EAAKp4T,KAAK2yR,aAAa,GACjB,MAANylC,IACAA,EAAK,GAET,IAAIC,EAAKr4T,KAAK2yR,aAAa,GACjB,MAAN0lC,IACAA,EAAK,GAGT,IAAI51T,EAAIzC,KAAKkhB,WAAWze,EAEpB+3O,EAAKx6O,KAAK2yR,aAAa,QAChB94Q,IAAP2gO,IACA/3O,EAAI+3O,GAGRx6O,KAAK4yR,cAAc,EAAGwlC,GAAM,EAAI31T,GAAK41T,EAAK51T,IAG9C+yT,EAAS92T,UAAU4kT,YAAc,WAC7B,MAAO,CAAC,CAAC,IAAK,YAGlB/1B,EAAUkE,iBAAiB,YAAa+jC,GASxCC,EAAQxjS,MAAQ,MAChBwjS,EAAQx0T,KAAO,WAEfw0T,EAAQ/2T,UAAUg0R,UAAY,WAC1B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,GAGJpD,KAAK4yR,cAAc,EAAGl7Q,KAAKmgD,IAAIz0D,KAGnCmqR,EAAUkE,iBAAiB,WAAYgkC,GASvCC,EAAUzjS,MAAQ,QAClByjS,EAAUz0T,KAAO,yCAEjBy0T,EAAUh3T,UAAUg0R,UAAY,WAC5B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,GAGJpD,KAAK4yR,cAAc,EAAGl7Q,KAAKE,MAAMxU,KAGrCmqR,EAAUkE,iBAAiB,aAAcikC,GASzCC,EAAS1jS,MAAQ,OACjB0jS,EAAS10T,KAAO,0BAEhB00T,EAASj3T,UAAUg0R,UAAY,WAC3B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,GAGJpD,KAAK4yR,cAAc,EAAGxvR,EAAI,IAG9BmqR,EAAUkE,iBAAiB,YAAakkC,GAUxCC,EAAe3jS,MAAQ,aACvB2jS,EAAe30T,KAAO,aAEtB20T,EAAel3T,UAAUg0R,UAAY,WACjC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B,QAAU94Q,IAANzW,EAAJ,CAIA,IAAIk1T,EAAQt4T,KAAKkhB,WAAWi9Q,EACxBo6B,EAAQv4T,KAAKkhB,WAAWk9Q,EAK5Bh7R,GAFAA,EAAIsU,KAAKw6E,OAAO9uF,EAAIk1T,IAAUC,EAAQD,GAAQ,EAAK,IAE3Cl1T,GAAK,EAAI,EAAIA,GAErBpD,KAAK4yR,cAAc,EAAGxvR,KAG1BmqR,EAAUkE,iBAAiB,kBAAmBmkC,GAU9CC,EAAU5jS,MAAQ,QAClB4jS,EAAU50T,KAAO,aAEjB40T,EAAUn3T,UAAUg0R,UAAY,WAC5B,IAAI1wR,EAAQhC,KAAK2yR,aAAa,GACjB,MAAT3wR,GACAhC,KAAK4yR,cAAc,EAAG5wR,EAAQhC,KAAKkhB,WAAW+L,SAItDsgQ,EAAUkE,iBAAiB,aAAcokC,GAU5CC,EAAK7jS,MAAQ,OACb6jS,EAAK70T,KAAO,4CAEZ60T,EAAKp3T,UAAUg0R,UAAY,WAC1B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B3yR,KAAK4yR,cAAc,EAAG5yR,KAAK2yR,aAAcvvR,EAAI,EAAI,KAGlDmqR,EAAUkE,iBAAiB,YAAaqkC,GAarCC,EAAkB9jS,MAAQ,UAC1B8jS,EAAkB90T,KAAO,iBAEzB80T,EAAkBr3T,UAAUg0R,UAAY,WACpC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IACAA,EAAI,GAGR,IAAIo1T,EAAcx4T,KAAKyuF,QAAQ1wF,OAE/BiC,KAAKyuF,QAAQzuF,KAAKg2T,SAAWwC,GAAep1T,EAC5CpD,KAAKg2T,UAAY,EACbh2T,KAAKg2T,SAAWwC,IAChBx4T,KAAKg2T,SAAW,GAIpB,IADA,IAAIyC,EAAM,EACD36T,EAAI,EAAGA,EAAI06T,IAAe16T,EAC/B26T,GAAOz4T,KAAKyuF,QAAQ3wF,GAGxBkC,KAAK4yR,cAAc,EAAG6lC,EAAMD,IAGhCzC,EAAkBr3T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACvDA,EAAQ,IACRA,EAAQ,GAEZhC,KAAKkhB,WAAWw3S,QAAUhhT,KAAKq/C,MAAM/0D,GACrC,IAAI22T,EAAM34T,KAAKyuF,QAEfzuF,KAAKyuF,QAAU,IAAI+mM,aAAax1R,KAAKkhB,WAAWw3S,SAC5CC,EAAI56T,QAAUiC,KAAKyuF,QAAQ1wF,OAC3BiC,KAAKyuF,QAAQjnD,IAAImxR,GAEjB34T,KAAKyuF,QAAQjnD,IAAImxR,EAAI1vE,SAAS,EAAGjpP,KAAKyuF,QAAQ1wF,UAItDwvR,EAAUkE,iBAAiB,eAAgBskC,GAW3CE,EAAWhkS,MAAQ,SACnBgkS,EAAWh1T,KAAO,oDAElBg1T,EAAWv3T,UAAUg0R,UAAY,WAC7B,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IACAA,EAAI,GAER,IAAIX,EAAIzC,KAAKkhB,WAAW+L,OACL,MAAfjtB,KAAKie,OACLje,KAAKie,OAAS7a,EAEdpD,KAAKie,OAASje,KAAKie,QAAU,EAAIxb,GAAKW,EAAIX,EAE9CzC,KAAK4yR,cAAc,EAAG5yR,KAAKie,SAG/BsvQ,EAAUkE,iBAAiB,cAAewkC,GAc1CC,EAAc14S,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,OAEhE04S,EAAcjkS,MAAQ,YACnBikS,EAAcj1T,KAAO,sBACrBi1T,EAAc,OAAS,CACnB/wT,KAAM,OACN8sB,MAAO,YACPzU,OAAQ04S,EAAc14S,QAE1B04S,EAAczpT,KAAO,CAAC,IAAK,IAE3BypT,EAAcx3T,UAAUgmS,SAAW,WACrC,MAAyB,OAAtB1kS,KAAKkhB,WAAWm1S,IAAqC,OAAtBr2T,KAAKkhB,WAAWm1S,GAC1Cr2T,KAAKkhB,WAAWm1S,GAAK,QAChB,KAAOr2T,KAAKkhB,WAAWm1S,GAAK,MAGvCH,EAAcx3T,UAAUskD,SAAW,SAAS5/C,GACxB,iBAALA,IACPA,EAAIgI,WAAWhI,IAEnBpD,KAAKkhB,WAAL,MAA2B9d,GAG/B8yT,EAAcx3T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAE7D,GAAY,MAAR4U,EAEE,OAAQ5W,KAAKkhB,WAAWm1S,IACpB,IAAK,IAAKr2T,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GAAM,MACxD,IAAK,IAAKp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GAAM,MACxD,IAAK,IACL,IAAK,IACL,IAAK,IAAKp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GAAM,MACxD,IAAK,IAAKp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GAAM,MACxD,IAAK,IAAKp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAOD,EAAIC,GAAM,MACxD,IAAK,IAAKp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAO1mR,KAAKo/C,IAAIqnO,EAAGC,IAAO,MACjE,IAAK,MAAOp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAO1mR,KAAKC,IAAIwmR,EAAGC,IAAO,MACnE,IAAK,MAAOp+R,KAAKwuT,MAAQ,SAASrwB,EAAEC,GAAK,OAAO1mR,KAAKgI,IAAIy+Q,EAAGC,IAAO,MAC5E,QACC1gR,QAAQC,KAAK,sBAAwB3d,KAAKkhB,WAAWm1S,IACrDr2T,KAAKwuT,MAAQ,SAASrwB,GAAK,OAAOA,KAKlC+3B,EAAcx3T,UAAUg0R,UAAY,WAChC,IAeFtwR,EAfM+7R,EAAIn+R,KAAK2yR,aAAa,GACtByL,EAAIp+R,KAAK2yR,aAAa,GAehC,GAdgB,MAALwL,EACNA,EAAEl+R,cAAgB8sH,SACZ/sH,KAAKkhB,WAAL,EAAuBi9Q,GAExBA,EAAIn+R,KAAKkhB,WAAL,EAGC,MAALk9Q,EACAp+R,KAAKkhB,WAAL,EAAuBk9Q,EAEvBA,EAAIp+R,KAAKkhB,WAAL,EAIXi9Q,EAAEl+R,cAAgB8sH,OAEd3qH,EAAS,EACfA,EAASpC,KAAKwuT,MAAMrwB,EAAEC,QAElB,GAAGD,EAAEl+R,cAAgBR,MAC1B,EACC2C,EAASpC,KAAK8tT,SACP/vT,OAASogS,EAAEpgS,OAClB,IAAI,IAAID,EAAI,EAAGA,EAAIqgS,EAAEpgS,SAAUD,EAC9BsE,EAAOtE,GAAKkC,KAAKwuT,MAAMrwB,EAAErgS,GAAGsgS,QAK7B,IAAI,IAAItgS,KADRsE,EAAS,GACI+7R,EACZ/7R,EAAOtE,GAAKkC,KAAKwuT,MAAMrwB,EAAErgS,GAAGsgS,GAE3Bp+R,KAAK4yR,cAAc,EAAGxwR,IAGvB8zT,EAAcx3T,UAAU46R,iBAAmB,SAASrgJ,GAC5Cj5I,KAAK0iM,MAAM+vE,YAIfx5H,EAAIpkF,KAAO,aACXokF,EAAI4+J,UAAY,OAChB5+J,EAAIs/J,UAAY,SAChBt/J,EAAIu/J,SACAx4S,KAAKkhB,WAAWm1S,GACD,GAAfr2T,KAAKyM,KAAK,GACqC,IAA9CzM,KAAKyM,KAAK,GAAK8gR,EAAUG,oBAE9Bz0I,EAAIs/J,UAAY,SAGpBhrB,EAAUkE,iBAAiB,iBAAkBykC,GAE7C3oC,EAAU2G,uBAAuB,iBAAkB,MAAO,CACtDhzQ,WAAY,CAACm1S,GAAG,OAChBpkS,MAAO,UAGXs7P,EAAU2G,uBAAuB,iBAAkB,MAAO,CACtDhzQ,WAAY,CAACm1S,GAAG,OAChBpkS,MAAO,UAcXkkS,EAAYlkS,MAAQ,UACpBkkS,EAAYl1T,KAAO,8BAEnBk1T,EAAYz3T,UAAUg0R,UAAY,WAC9B,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GACtByL,EAAIp+R,KAAK2yR,aAAa,QAChB94Q,IAANskR,EACAn+R,KAAKkhB,WAAL,EAAuBi9Q,EAEvBA,EAAIn+R,KAAKkhB,WAAL,OAGErH,IAANukR,EACAp+R,KAAKkhB,WAAL,EAAuBk9Q,EAEvBA,EAAIp+R,KAAKkhB,WAAL,EAGR,IAAK,IAAIpjB,EAAI,EAAG2G,EAAIzE,KAAKo8R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAAG,CACjD,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAC1B,GAAKk6B,EAAOupE,OAAUvpE,EAAOupE,MAAMxjG,OAAnC,CAGA,IAAIiE,EACJ,OAAQg2B,EAAOphB,MACX,IAAK,OACD5U,EAAQm8R,GAAKC,EACb,MACJ,IAAK,OACDp8R,EAAQm8R,GAAKC,EACb,MACJ,IAAK,MACDp8R,EAAQm8R,EAAIC,EACZ,MACJ,IAAK,MACDp8R,EAAQm8R,EAAIC,EACZ,MACJ,IAAK,OACDp8R,EAAQm8R,GAAKC,EACb,MACJ,IAAK,OACDp8R,EAAQm8R,GAAKC,EAGrBp+R,KAAK4yR,cAAc90R,EAAGkE,MAI9Bm0T,EAAYz3T,UAAUglT,aAAe,WACjC,MAAO,CACH,CAAC,OAAQ,WACT,CAAC,OAAQ,WACT,CAAC,MAAO,WACR,CAAC,MAAO,WACR,CAAC,OAAQ,WACT,CAAC,OAAQ,aAIjBn2B,EAAUkE,iBAAiB,eAAgB0kC,GAE3C5oC,EAAU2G,uBAAuB,eAAgB,KAAM,CACnDkI,QAAS,CAAC,CAAC,OAAQ,YACnBnqQ,MAAO,SAEXs7P,EAAU2G,uBAAuB,eAAgB,KAAM,CACnDkI,QAAS,CAAC,CAAC,OAAQ,YACnBnqQ,MAAO,SAEXs7P,EAAU2G,uBAAuB,eAAgB,IAAK,CAClDkI,QAAS,CAAC,CAAC,MAAO,YAClBnqQ,MAAO,QAEXs7P,EAAU2G,uBAAuB,eAAgB,IAAK,CAClDkI,QAAS,CAAC,CAAC,MAAO,YAClBnqQ,MAAO,QAEXs7P,EAAU2G,uBAAuB,eAAgB,KAAM,CACnDkI,QAAS,CAAC,CAAC,OAAQ,YACnBnqQ,MAAO,SAEXs7P,EAAU2G,uBAAuB,eAAgB,KAAM,CACnDkI,QAAS,CAAC,CAAC,OAAQ,YACnBnqQ,MAAO,SAgBXmkS,EAAc54S,OAAS,CAAC,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAChE44S,EAAc,OAAS,CACnBjxT,KAAM,OACN8sB,MAAO,YACPzU,OAAQ44S,EAAc54S,QAG1B44S,EAAcnkS,MAAQ,YACtBmkS,EAAcn1T,KAAO,sCAErBm1T,EAAc13T,UAAUgmS,SAAW,WAC/B,MAAO,KAAO1kS,KAAKkhB,WAAWm1S,GAAK,MAGvCD,EAAc13T,UAAUg0R,UAAY,WAChC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,QAChB94Q,IAANskR,EACAA,EAAIn+R,KAAKkhB,WAAWi9Q,EAEpBn+R,KAAKkhB,WAAWi9Q,EAAIA,EAGxB,IAAIC,EAAIp+R,KAAK2yR,aAAa,QAChB94Q,IAANukR,EACAA,EAAIp+R,KAAKkhB,WAAWk9Q,EAEpBp+R,KAAKkhB,WAAWk9Q,EAAIA,EAGxB,IAAIh8R,GAAS,EACb,OAAQpC,KAAKkhB,WAAWm1S,IACpB,IAAK,IACDj0T,EAAS+7R,EAAIC,EACb,MACJ,IAAK,IACDh8R,EAAS+7R,EAAIC,EACb,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EACd,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EACd,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EACd,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EACd,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EACd,MACJ,IAAK,KACDh8R,EAAS+7R,GAAKC,EAItBp+R,KAAK4yR,cAAc,EAAGxwR,GACtBpC,KAAK4yR,cAAc,GAAIxwR,IAG3BmrR,EAAUkE,iBAAiB,iBAAkB2kC,GAW7CE,EAAWrkS,MAAQ,SACnBqkS,EAAWr1T,KAAO,+DAElBq1T,EAAW53T,UAAUg0R,UAAY,WAC7B,IAAIkmC,EAAI54T,KAAK2yR,aAAa,GACf3yR,KAAK2yR,aAAa,IAIlC3yR,KAAK4yR,cAAc,EAAGgmC,GACtB54T,KAAK4yR,cAAc,EAAG,QAItB5yR,KAAK4yR,cAAc,EAAG,MACtB5yR,KAAK4yR,cAAc,EAAGgmC,KAIrBrrC,EAAUkE,iBAAiB,cAAe6kC,GAU1CC,EAAetkS,MAAQ,aACvBskS,EAAet1T,KAAO,gCAEtBs1T,EAAe73T,UAAUg0R,UAAY,WACH,OAA1B1yR,KAAKkhB,WAAWlf,QAChBhC,KAAKkhB,WAAWlf,MAAQ,GAG5B,IAAI62T,EAAM74T,KAAK2yR,aAAa,GAExB3yR,KAAKkhB,WAAWlf,OADR,OAAR62T,EACyBA,EAEA74T,KAAKkhB,WAAW43S,UAE7C94T,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAG1CurR,EAAUkE,iBAAiB,kBAAmB8kC,GAY9CC,EAAiBvkS,MAAQ,eACzBukS,EAAiBv1T,KAAO,cAGxBu1T,EAAiB93T,UAAUg0R,UAAY,WACnC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IACAA,EAAI,GAER,IAAI21T,EAAY/4T,KAAKkhB,WAAL,UACZs+Q,EAAOx/R,KAAKolS,cAAc,cACjB,GAAT5F,IACAu5B,EAAY/4T,KAAK2yR,aAAa6M,IAElC,IAAIp/P,EAASpgC,KAAKkhB,WAAL,QAEA,IADbs+Q,EAAOx/R,KAAKolS,cAAc,aAEtBhlQ,EAASpgC,KAAK2yR,aAAa6M,IAG/B,IAAK,IAAI1hS,EAAI,EAAG2G,EAAIzE,KAAKo8R,QAAQr+R,OAAQD,EAAI2G,IAAK3G,EAAG,CACjD,IACIkE,EACJ,OAFahC,KAAKo8R,QAAQt+R,GAEX8Y,MACX,IAAK,MACD5U,EAAQ0V,KAAKi7S,IAAIvvT,GACjB,MACJ,IAAK,MACDpB,EAAQ0V,KAAKg7S,IAAItvT,GACjB,MACJ,IAAK,MACDpB,EAAQ0V,KAAKshT,IAAI51T,GACjB,MACJ,IAAK,OACDpB,EAAQ0V,KAAKuhT,KAAK71T,GAClB,MACJ,IAAK,OACDpB,EAAQ0V,KAAKwhT,KAAK91T,GAClB,MACJ,IAAK,OACDpB,EAAQ0V,KAAKyhT,KAAK/1T,GAG1BpD,KAAK4yR,cAAc90R,EAAGi7T,EAAY/2T,EAAQo+B,KAIlDo2R,EAAiB93T,UAAU4kT,YAAc,WACrC,MAAO,CAAC,CAAC,IAAK,UAAW,CAAC,YAAa,UAAW,CAAC,SAAU,YAGjEkT,EAAiB93T,UAAUglT,aAAe,WACtC,MAAO,CACH,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,OAAQ,UACT,CAAC,OAAQ,UACT,CAAC,OAAQ,YAIjBn2B,EAAUkE,iBAAiB,oBAAqB+kC,GAEhDjpC,EAAU2G,uBAAuB,oBAAqB,QAAS,CAC3DkI,QAAS,CAAC,CAAC,MAAO,WAClBnqQ,MAAO,UAEXs7P,EAAU2G,uBAAuB,oBAAqB,QAAS,CAC3DkI,QAAS,CAAC,CAAC,MAAO,WAClBnqQ,MAAO,UAEXs7P,EAAU2G,uBAAuB,oBAAqB,QAAS,CAC3DkI,QAAS,CAAC,CAAC,MAAO,WAClBnqQ,MAAO,UAuBXykS,EAAYzkS,MAAQ,UACpBykS,EAAYz1T,KAAO,kBACnBy1T,EAAYjqT,KAAO,CAAC,IAAK,KAEzBspT,EAAkBr3T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC/C,WAAR4U,IACA5W,KAAK42T,YAAY50T,MAAQA,IAIjC00T,EAAYh4T,UAAUg0R,UAAY,WAC9B,GAAKnF,EAAU2D,cAAf,CAIA,IAAIj1Q,EAAIjc,KAAK2yR,aAAa,GACtBjwR,EAAI1C,KAAK2yR,aAAa,GACjB,MAAL12Q,EACAjc,KAAKkhB,WAAL,EAAuBjF,EAEvBA,EAAIjc,KAAKkhB,WAAL,EAGC,MAALxe,EACA1C,KAAKkhB,WAAL,EAAuBxe,EAEvBA,EAAI1C,KAAKkhB,WAAL,EAGR,IAEIlf,EAFIhC,KAAKkhB,WAAL,QAGR,IACSlhB,KAAKwuT,OAASxuT,KAAKo5T,YAAcp5T,KAAKkhB,WAAWy1S,UAClD32T,KAAKwuT,MAAQ,IAAIt8I,SACb,IACA,IACA,OACA,UAAYlyK,KAAKkhB,WAAWy1S,SAEhC32T,KAAKo5T,WAAap5T,KAAKkhB,WAAWy1S,SAEtC30T,EAAQhC,KAAKwuT,MAAMvyS,EAAGvZ,EAAG1C,KAAKy3E,MAAMkkN,YACpC37R,KAAKwkS,SAAW,KAClB,MAAO7oR,GACL3b,KAAKwkS,SAAW,MAEpBxkS,KAAK4yR,cAAc,EAAG5wR,KAG1B00T,EAAYh4T,UAAUgmS,SAAW,WAC7B,OAAO1kS,KAAKo5T,YAAc,WAG9B1C,EAAYh4T,UAAU46R,iBAAmB,WACrC,IAAI72R,EAAIzC,KAAKkhB,WAAL,QACJlhB,KAAKo8R,SAAWp8R,KAAKo8R,QAAQr+R,SAC7BiC,KAAKo8R,QAAQ,GAAGv5R,MAAQJ,IAIhC8qR,EAAUkE,iBAAiB,eAAgBilC,GAQ3CG,EAAe5kS,MAAQ,WACvB4kS,EAAe51T,KAAO,yBAEtB41T,EAAen4T,UAAUg0R,UAAY,WACjC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IAIJpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,MAG5BmqR,EAAUkE,iBAAiB,oBAAqBolC,GAShDC,EAAe7kS,MAAQ,WACvB6kS,EAAe71T,KAAO,wBAEtB61T,EAAep4T,UAAUg0R,UAAY,WACjC,IAAIz2Q,EAAIjc,KAAK2yR,aAAa,GACjB,MAAL12Q,IACAA,EAAIjc,KAAKkhB,WAAWjF,GAExB,IAAIvZ,EAAI1C,KAAK2yR,aAAa,GACjB,MAALjwR,IACAA,EAAI1C,KAAKkhB,WAAWxe,GAGxB,IAAIvD,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAK8c,EACV9c,EAAK,GAAKuD,EAEV1C,KAAK4yR,cAAc,EAAGzzR,IAG1BouR,EAAUkE,iBAAiB,oBAAqBqlC,GAShDC,EAAgB9kS,MAAQ,YACxB8kS,EAAgB91T,KAAO,yBAEvB81T,EAAgBr4T,UAAUg0R,UAAY,WAClC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IAIJpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,MAG5BmqR,EAAUkE,iBAAiB,qBAAsBslC,GASjDC,EAAgB/kS,MAAQ,YACxB+kS,EAAgB/1T,KAAO,wBAEvB+1T,EAAgBt4T,UAAUg0R,UAAY,WAClC,IAAIz2Q,EAAIjc,KAAK2yR,aAAa,GACjB,MAAL12Q,IACAA,EAAIjc,KAAKkhB,WAAWjF,GAExB,IAAIvZ,EAAI1C,KAAK2yR,aAAa,GACjB,MAALjwR,IACAA,EAAI1C,KAAKkhB,WAAWxe,GAExB,IAAI2sG,EAAIrvG,KAAK2yR,aAAa,GACjB,MAALtjL,IACAA,EAAIrvG,KAAKkhB,WAAWmuF,GAGxB,IAAIlwG,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAK8c,EACV9c,EAAK,GAAKuD,EACVvD,EAAK,GAAKkwG,EAEVrvG,KAAK4yR,cAAc,EAAGzzR,IAG1BouR,EAAUkE,iBAAiB,qBAAsBulC,GAUjDC,EAAiBhlS,MAAQ,aACzBglS,EAAiBh2T,KAAO,yBAExBg2T,EAAiBv4T,UAAUg0R,UAAY,WACnC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GACjB,MAALvvR,IAIJpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,IACxBpD,KAAK4yR,cAAc,EAAGxvR,EAAE,MAG5BmqR,EAAUkE,iBAAiB,sBAAuBwlC,GAclDC,EAAiBjlS,MAAQ,aACzBilS,EAAiBj2T,KAAO,wBAExBi2T,EAAiBx4T,UAAUg0R,UAAY,WACnC,IAAIz2Q,EAAIjc,KAAK2yR,aAAa,GACjB,MAAL12Q,IACAA,EAAIjc,KAAKkhB,WAAWjF,GAExB,IAAIvZ,EAAI1C,KAAK2yR,aAAa,GACjB,MAALjwR,IACAA,EAAI1C,KAAKkhB,WAAWxe,GAExB,IAAI2sG,EAAIrvG,KAAK2yR,aAAa,GACjB,MAALtjL,IACAA,EAAIrvG,KAAKkhB,WAAWmuF,GAExB,IAAIW,EAAIhwG,KAAK2yR,aAAa,GACjB,MAAL3iL,IACAA,EAAIhwG,KAAKkhB,WAAW8uF,GAGxB,IAAI7wG,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAK8c,EACV9c,EAAK,GAAKuD,EACVvD,EAAK,GAAKkwG,EACVlwG,EAAK,GAAK6wG,EAEVhwG,KAAK4yR,cAAc,EAAGzzR,IAG1BouR,EAAUkE,iBAAiB,sBAAuBylC,GA9yCtD,CAgzCGl3T,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAG1B,SAAS8rC,IAEFr5T,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK0hS,UAAU,OAAQ,QAC7B1hS,KAAKkhB,WAAa,CACjB,EAAI,CAAC,EAAE,EAAE,GACT,EAAI,CAAC,EAAE,EAAE,GACT,EAAI,CAAC,EAAE,EAAE,GACTo4S,cAAc,GAEft5T,KAAK8tT,QAAUyL,KAAKr5T,SACpBF,KAAKw5T,cAAe,EAkDlB,SAASC,IACLz5T,KAAK+gS,SAAS,IAAK,eACnB/gS,KAAK+gS,SAAS,IAAK,eACnB/gS,KAAK0hS,UAAU,IAAK,eACpB1hS,KAAKqmS,YAAY,KAAM,IAAK,OAAQ,CAAE7oR,OAAQi8S,EAAgBj8S,SACpExd,KAAK8tT,QAAU4L,KAAKx5T,SAyGlB,SAASy5T,IACL35T,KAAK+gS,SAAS,KAAM,QACpB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CAAEze,EAAG,GACvBzC,KAAKwmC,MAAQ,IAAIgvP,aAAa,GAyBlC,SAASokC,IACL55T,KAAK+gS,SAAS,KAAM,QACpB/gS,KAAK0hS,UAAU,MAAO,UAiB1B,SAASm4B,IACL75T,KAAK+gS,SAAS,KAAM,QACpB/gS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKwmC,MAAQ,IAAIgvP,aAAa,GAsBlC,SAASskC,IACL95T,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CAAEze,EAAG,IACvBzC,KAAKwmC,MAAQ,IAAIgvP,aAAa,GA2BlC,SAASukC,IACL/5T,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK+gS,SAAS,IAAK,QACnB/gS,KAAK0hS,UAAU,MAAO,UAuB1B,GAlSH23B,EAAWpnS,MAAQ,OACnBonS,EAAWW,UAAY,IAAIxkC,aAAa,CAAC,EAAE,EAAE,EAAE,IAC/C6jC,EAAWY,UAAY,IAAIzkC,aAAa,IACxC6jC,EAAWa,UAAY,IAAI1kC,aAAa,GAExC6jC,EAAW36T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAEvDhC,KAAKw5T,cAAe,GAGrBH,EAAW36T,UAAUg0R,UAAY,WAEhC,IAAIkL,EAAI59R,KAAK8tT,QACTqM,EAAId,EAAWW,UACfC,EAAYZ,EAAWY,UACvBC,EAAYb,EAAWa,UAEvBrtN,EAAI7sG,KAAK2yR,aAAa,GACtBynC,EAAIp6T,KAAK2yR,aAAa,GACtBgL,EAAI39R,KAAK2yR,aAAa,IAEtB3yR,KAAKw5T,cAAgB3sN,GAAKutN,GAAKz8B,KAElC9wL,EAAIA,GAAK7sG,KAAKkhB,WAAW2rF,EACzButN,EAAIA,GAAKp6T,KAAKkhB,WAAWk5S,EACzBz8B,EAAIA,GAAK39R,KAAKkhB,WAAWy8Q,EACzB47B,KAAKtmD,SAAU2qB,GACf27B,KAAKjuB,UAAW1N,EAAGA,EAAG/wL,GACnB7sG,KAAKkhB,WAAWo4S,cAElBY,EAAU1yR,IAAK4yR,GACfV,KAAKhkO,MAAMwkO,EAAUA,EAAUG,SAC/BC,KAAKC,UAAWJ,EAAGD,IAGnBI,KAAKC,UAAWJ,EAAGC,GACpBb,KAAKiB,SAAUP,EAAWE,GAC1BZ,KAAKkB,SAAU78B,EAAGA,EAAGq8B,GACrBV,KAAK7jO,MAAOkoM,EAAGA,EAAGD,IAGnB39R,KAAK4yR,cAAc,EAAGgL,IAGpBrQ,EAAUkE,iBAAiB,cAAe4nC,GAW1CI,EAAgBj8S,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAM,MAAM,SAE3E+vQ,EAAU2G,uBAAuB,mBAAoB,UAAW,CAC5DhzQ,WAAY,CAAC,GAAK,SAClB+Q,MAAO,YAGXs7P,EAAU2G,uBAAuB,mBAAoB,QAAS,CAC1DhzQ,WAAY,CAAC,GAAK,OAClB+Q,MAAO,UAGdwnS,EAAgBxnS,MAAQ,YACrBwnS,EAAgBx4T,KAAO,yBACvBw4T,EAAgB,OAAS,CACrBt0T,KAAM,OACN8sB,MAAO,YACPzU,OAAQi8S,EAAgBj8S,QAE5Bi8S,EAAgBhtT,KAAO,CAAC,IAAK,IAE7BgtT,EAAgB/6T,UAAUgmS,SAAW,WACvC,MAAyB,OAAtB1kS,KAAKkhB,WAAWm1S,IAAqC,OAAtBr2T,KAAKkhB,WAAWm1S,GAC1Cr2T,KAAKkhB,WAAWm1S,GAAK,QAChB,KAAOr2T,KAAKkhB,WAAWm1S,GAAK,MAGvCoD,EAAgB/6T,UAAUg0R,UAAY,WAClC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GACtByL,EAAIp+R,KAAK2yR,aAAa,GAChC,GAAQ,MAALwL,GAAkB,MAALC,EAAhB,CAEGD,EAAEl+R,cAAgB8sH,SACpBoxK,EAAI,CAACA,EAAEA,EAAEA,IACPC,EAAEn+R,cAAgB8sH,SACpBqxK,EAAI,CAACA,EAAEA,EAAEA,IAEJ,IAAIh8R,EAASpC,KAAK8tT,QAClB,OAAQ9tT,KAAKkhB,WAAWm1S,IACpB,IAAK,IACDj0T,EAASs3T,KAAKlgT,IAAIpX,EAAO+7R,EAAEC,GAC3B,MACJ,IAAK,IACDh8R,EAASs3T,KAAK54K,IAAI1+I,EAAO+7R,EAAEC,GAC3B,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACDh8R,EAASs3T,KAAKgB,IAAIt4T,EAAO+7R,EAAEC,GAC3B,MACJ,IAAK,IACDh8R,EAASs3T,KAAKiB,IAAIv4T,EAAO+7R,EAAEC,GAC3B,MACJ,IAAK,IACDh8R,EAAO,GAAK+7R,EAAE,GAAGC,EAAE,GACnBh8R,EAAO,GAAK+7R,EAAE,GAAGC,EAAE,GACnBh8R,EAAO,GAAK+7R,EAAE,GAAGC,EAAE,GACnB,MACJ,IAAK,IACDh8R,EAAO,GAAKsV,KAAKo/C,IAAIqnO,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKo/C,IAAIqnO,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKo/C,IAAIqnO,EAAE,GAAGC,EAAE,IAC5B,MACJ,IAAK,MACDh8R,EAAO,GAAKsV,KAAKC,IAAIwmR,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKC,IAAIwmR,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKC,IAAIwmR,EAAE,GAAGC,EAAE,IAC5B,MACJ,IAAK,MACDh8R,EAAO,GAAKsV,KAAKgI,IAAIy+Q,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKgI,IAAIy+Q,EAAE,GAAGC,EAAE,IAC5Bh8R,EAAO,GAAKsV,KAAKgI,IAAIy+Q,EAAE,GAAGC,EAAE,IAChC,IAAK,MACDh8R,EAASs3T,KAAKkB,IAAIz8B,EAAEC,GACpB,MACJ,IAAK,QACDs7B,KAAKmB,MAAMz4T,EAAO+7R,EAAEC,GACpB,MACJ,QACI1gR,QAAQC,KAAK,sBAAwB3d,KAAKkhB,WAAWm1S,IAE7Dr2T,KAAK4yR,cAAc,EAAGxwR,KAG1Bq3T,EAAgB/6T,UAAU46R,iBAAmB,SAASrgJ,GAC9Cj5I,KAAK0iM,MAAM+vE,YAIfx5H,EAAIpkF,KAAO,aACXokF,EAAI4+J,UAAY,OAChB5+J,EAAIs/J,UAAY,SAChBt/J,EAAIu/J,SACAx4S,KAAKkhB,WAAWm1S,GACD,GAAfr2T,KAAKyM,KAAK,GACqC,IAA9CzM,KAAKyM,KAAK,GAAK8gR,EAAUG,oBAE9Bz0I,EAAIs/J,UAAY,SAGpBhrB,EAAUkE,iBAAiB,mBAAoBgoC,GAU/CE,EAAgB1nS,MAAQ,aACxB0nS,EAAgB14T,KAAO,kCAEvB04T,EAAgBj7T,UAAUg0R,UAAY,WAClC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B,GAAS,MAALvvR,EAAJ,CAGA,IAAIX,EAAIzC,KAAK2yR,aAAa,GACjB,MAALlwR,IACAA,EAAIzC,KAAKkhB,WAAWze,GAGxB,IAAItD,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAKiE,EAAE,GAAKX,EACjBtD,EAAK,GAAKiE,EAAE,GAAKX,EACjBtD,EAAK,GAAKiE,EAAE,GAAKX,EACjBzC,KAAK4yR,cAAc,EAAGzzR,KAG1BouR,EAAUkE,iBAAiB,oBAAqBkoC,GAOhDC,EAAiB3nS,MAAQ,cACzB2nS,EAAiB34T,KAAO,iCAExB24T,EAAiBl7T,UAAUg0R,UAAY,WACnC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B,GAAS,MAALvvR,EAAJ,CAGA,IAAIs7S,EAAOhnS,KAAK8kS,KAAKp5S,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAC1DpD,KAAK4yR,cAAc,EAAG8rB,KAG1BnxB,EAAUkE,iBAAiB,qBAAsBmoC,GAQjDC,EAAoB5nS,MAAQ,iBAC5B4nS,EAAoB54T,KAAO,gCAE3B44T,EAAoBn7T,UAAUg0R,UAAY,WACtC,IAAItvR,EAAIpD,KAAK2yR,aAAa,GAC1B,GAAS,MAALvvR,EAAJ,CAGA,IAAIs7S,EAAOhnS,KAAK8kS,KAAKp5S,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACtDjE,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAKiE,EAAE,GAAKs7S,EACjBv/S,EAAK,GAAKiE,EAAE,GAAKs7S,EACjBv/S,EAAK,GAAKiE,EAAE,GAAKs7S,EAEjB1+S,KAAK4yR,cAAc,EAAGzzR,KAG1BouR,EAAUkE,iBAAiB,wBAAyBooC,GAWpDC,EAAe7nS,MAAQ,YACvB6nS,EAAe74T,KAAO,kCAEtB64T,EAAep7T,UAAUg0R,UAAY,WACjC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALwL,EAAJ,CAGA,IAAIC,EAAIp+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALyL,EAAJ,CAGA,IAAI37R,EAAIzC,KAAKylS,mBAAmB,KAE5BtmS,EAAOa,KAAKwmC,MAChBrnC,EAAK,GAAKg/R,EAAE,IAAM,EAAI17R,GAAK27R,EAAE,GAAK37R,EAClCtD,EAAK,GAAKg/R,EAAE,IAAM,EAAI17R,GAAK27R,EAAE,GAAK37R,EAClCtD,EAAK,GAAKg/R,EAAE,IAAM,EAAI17R,GAAK27R,EAAE,GAAK37R,EAElCzC,KAAK4yR,cAAc,EAAGzzR,MAG1BouR,EAAUkE,iBAAiB,mBAAoBqoC,GAQ/CC,EAAc9nS,MAAQ,WACtB8nS,EAAc94T,KAAO,0BAErB84T,EAAcr7T,UAAUg0R,UAAY,WAChC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALwL,EAAJ,CAGA,IAAIC,EAAIp+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALyL,EAAJ,CAIA,IAAIw8B,EAAMz8B,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAC/Cp+R,KAAK4yR,cAAc,EAAGgoC,MAG1BrtC,EAAUkE,iBAAiB,kBAAmBsoC,GAG1C94R,EAAO65R,SAAU,KACRC,EAAT,WACI/6T,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,EAAG2sG,EAAG,EAAGW,EAAG,EAAG/6C,WAAW,GACvDj1D,KAAKie,OAASq8S,KAAKp6T,UA4Bd86T,EAAT,WACIh7T,KAAKymS,UAAU,CAAC,CAAC,UAAW,UAAW,CAAC,OAAQ,UAChDzmS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEuxS,MAAO,GAAM/jI,KAAMgrI,KAAKuB,WAAW,EAAG,EAAG,IAE7Dj7T,KAAKie,OAASq8S,KAAKp6T,UAuBdg7T,EAAT,WACIl7T,KAAK+gS,SAAS,QAAS,QACvB/gS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,CAAEi6S,MAAM,CAAC,EAAE,EAAE,GAAIC,oBAAoB,GAChEp7T,KAAKq7T,MAAQ3B,KAAKx5T,SACTF,KAAKie,OAASq8S,KAAKp6T,UAoBdo7T,EAAT,WACIt7T,KAAK+gS,SAAS,CAAC,OAAQ,SACvB/gS,KAAK0hS,UAAU,QAAS,QACjC1hS,KAAKie,OAASy7S,KAAKx5T,UAmBLq7T,EAAT,WACIv7T,KAAKymS,UAAU,CAAC,CAAC,OAAQ,QAAS,CAAC,OAAQ,UAC3CzmS,KAAK0hS,UAAU,SAAU,QACzB1hS,KAAKkhB,WAAa,CAAEs6S,IAAK,CAAC,EAAG,EAAG,KAwB3BC,EAAT,WACIz7T,KAAKymS,UAAU,CAAC,CAAC,IAAK,QAAS,CAAC,IAAK,UACrCzmS,KAAK0hS,UAAU,MAAO,QAEtB1hS,KAAKie,OAASq8S,KAAKp6T,UAsBdw7T,EAAT,WACI17T,KAAKymS,UAAU,CACX,CAAC,IAAK,QACN,CAAC,IAAK,QACN,CAAC,SAAU,YAEfzmS,KAAK0hS,UAAU,QAAS,QACxB1hS,KAAKqmS,YAAY,SAAU,IAE3BrmS,KAAKie,OAASq8S,KAAKp6T,UA4Bdy7T,EAAT,WACI37T,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,QAAS,QACjC1hS,KAAK0hS,UAAU,UAAW,QACjB1hS,KAAKkhB,WAAa,CAAEgxE,OAAO,EAAM0pO,UAAW,EAAE,GAAI,EAAG,GAAIC,UAAW,CAAC,EAAG,EAAG,GAAIC,WAAY,EAAE,GAAG,EAAE,GAAIC,WAAW,CAAC,EAAE,EAAE,IAC/H/7T,KAAKie,OAASy7S,KAAKx5T,SACnBF,KAAKg8T,SAAWtC,KAAKx5T,UApMhB66T,EAAiB9oS,MAAQ,aACzB8oS,EAAiB95T,KAAO,aAExB85T,EAAiBr8T,UAAUg0R,UAAY,WACnC1yR,KAAKie,OAAO,GAAKje,KAAKylS,mBAAmB,KACzCzlS,KAAKie,OAAO,GAAKje,KAAKylS,mBAAmB,KACzCzlS,KAAKie,OAAO,GAAKje,KAAKylS,mBAAmB,KACzCzlS,KAAKie,OAAO,GAAKje,KAAKylS,mBAAmB,KACrCzlS,KAAKkhB,WAAW+zC,WAChBqlQ,KAAKrlQ,UAAUj1D,KAAKie,OAAQje,KAAKie,QAErCje,KAAK4yR,cAAc,EAAG5yR,KAAKie,SAG/B88S,EAAiBr8T,UAAU4kT,YAAc,WACrC,MAAO,CACH,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,YAId/1B,EAAUkE,iBAAiB,oBAAqBspC,GAUhDC,EAAe/oS,MAAQ,WACvB+oS,EAAe/5T,KAAO,sBAEtB+5T,EAAet8T,UAAUg0R,UAAY,WACjC,IAAI+/B,EAAQzyT,KAAK2yR,aAAa,GACjB,MAAT8/B,IACAA,EAAQzyT,KAAKkhB,WAAWuxS,OAE5B,IAAI/jI,EAAO1uL,KAAK2yR,aAAa,GACjB,MAARjkG,IACAA,EAAO1uL,KAAKkhB,WAAWwtK,MAG3B,IAAI0rI,EAAIE,KAAK2B,aAAaj8T,KAAKie,OAAQywK,EAAc,YAAR+jI,GAC7CzyT,KAAK4yR,cAAc,EAAGwnC,IAG1B7sC,EAAUkE,iBAAiB,kBAAmBupC,GAW9CE,EAAgBjpS,MAAQ,cACxBipS,EAAgBj6T,KAAO,mDAEvBi6T,EAAgBx8T,UAAUg0R,UAAY,WAClC,IAAIyoC,EAAQn7T,KAAK2yR,aAAa,GACjB,MAATwoC,IACAA,EAAQn7T,KAAKkhB,WAAWi6S,OAErCzB,KAAKhkO,MAAO11F,KAAKq7T,MAAOF,EAAOd,SAC5Br6T,KAAKkhB,WAAWk6S,qBAClBp7T,KAAKq7T,MAAQ,CAACr7T,KAAKq7T,MAAM,GAAGr7T,KAAKq7T,MAAM,GAAGr7T,KAAKq7T,MAAM,KAC7C,IAAIjB,EAAIE,KAAKC,UAAUv6T,KAAKie,OAAQje,KAAKq7T,OACzCr7T,KAAK4yR,cAAc,EAAGwnC,IAG1B7sC,EAAUkE,iBAAiB,uBAAwBypC,GAQnDI,EAAgBrpS,MAAQ,cACxBqpS,EAAgBr6T,KAAO,6CAEvBq6T,EAAgB58T,UAAUg0R,UAAY,WAClC,IAAI1lP,EAAIhtC,KAAK2yR,aAAa,GACnC,GAAI3lP,EAAJ,CAEiBstR,KAAK4B,QAAQl8T,KAAKie,OAAQ+uB,GAC3C0sR,KAAKhkO,MAAO11F,KAAKie,OAAQje,KAAKie,OAAQo8S,SAC7Br6T,KAAK4yR,cAAc,EAAG5yR,KAAKie,UAG/BsvQ,EAAUkE,iBAAiB,uBAAwB6pC,GAUnDC,EAAiBtpS,MAAQ,YACzBspS,EAAiBt6T,KAAO,iBAExBs6T,EAAiB78T,UAAUg0R,UAAY,WACnC,IAAI8oC,EAAMx7T,KAAK2yR,aAAa,GACjB,MAAP6oC,IACAA,EAAMx7T,KAAKkhB,WAAWs6S,KAE1B,IAAIlB,EAAOt6T,KAAK2yR,aAAa,GACjB,MAAR2nC,EACAt6T,KAAK4yR,cAAc4oC,GAEnBx7T,KAAK4yR,cACD,EACA8mC,KAAKyC,cAAczC,KAAKx5T,SAAUs7T,EAAKlB,KAKnD/sC,EAAUkE,iBAAiB,qBAAsB8pC,GASjDE,EAAexpS,MAAQ,aACvBwpS,EAAex6T,KAAO,oBAEtBw6T,EAAe/8T,UAAUg0R,UAAY,WACjC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALwL,EAAJ,CAGA,IAAIC,EAAIp+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALyL,EAAJ,CAIA,IAAIg8B,EAAIE,KAAKG,SAASz6T,KAAKie,OAAQkgR,EAAGC,GACtCp+R,KAAK4yR,cAAc,EAAGwnC,MAG1B7sC,EAAUkE,iBAAiB,mBAAoBgqC,GAc/CC,EAAgBzpS,MAAQ,aACxBypS,EAAgBz6T,KAAO,qCAEvBy6T,EAAgBh9T,UAAUg0R,UAAY,WAClC,IAAIyL,EAAIn+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALwL,EAAJ,CAGA,IAAIC,EAAIp+R,KAAK2yR,aAAa,GAC1B,GAAS,MAALyL,EAAJ,CAGA,IAAInxQ,EAASjtB,KAAKkhB,WAAW+L,OACD,MAAxBjtB,KAAK2yR,aAAa,KAClB1lQ,EAASjtB,KAAK2yR,aAAa,IAG/B,IAAIynC,EAAIE,KAAK8B,MAAMp8T,KAAKie,OAAQkgR,EAAGC,EAAGnxQ,GACtCjtB,KAAK4yR,cAAc,EAAGwnC,MAG1B7sC,EAAUkE,iBAAiB,oBAAqBiqC,GAahDC,EAAiB1pS,MAAQ,cACzB0pS,EAAiB16T,KAAO,mBAExB06T,EAAiBj9T,UAAUg0R,UAAY,WACnC,IAAI8oC,EAAMx7T,KAAK2yR,aAAa,GAClC6oC,GACFx7T,KAAKie,OAAOupB,IAAIg0R,GAqBjB,IApBA,IAAII,EAAY57T,KAAKkhB,WAAW06S,UAC5BC,EAAY77T,KAAKkhB,WAAW26S,UAC5BC,EAAa97T,KAAKkhB,WAAW46S,WAC7BC,EAAa/7T,KAAKkhB,WAAW66S,WAiBzBj+T,EAAI,EAAGA,EAAI,IAAKA,EACxB,CACC,IAAIqD,EAAI06T,EAAU/9T,GAAK89T,EAAU99T,GAEjC,GADAkC,KAAKg8T,SAASl+T,GAAK4Z,KAAKw6E,MAAOlyF,KAAKie,OAAOngB,GAAI89T,EAAU99T,GAAI+9T,EAAU/9T,IAC/D,GAALqD,EAAH,CAMA,IAAIZ,GAAKP,KAAKie,OAAOngB,GAAK89T,EAAU99T,IAAMqD,EACvCnB,KAAKkhB,WAAWgxE,QAClB3xF,EAAImX,KAAKw6E,MAAM3xF,EAAE,EAAE,IACpB,IAAIF,EAAI07T,EAAWj+T,GAAKg+T,EAAWh+T,GACnCkC,KAAKie,OAAOngB,GAAKg+T,EAAWh+T,GAAKyC,EAAIF,OARpCL,KAAKie,OAAOngB,GAAuC,IAAjCg+T,EAAWh+T,GAAKi+T,EAAWj+T,IAW/CkC,KAAK4yR,cAAc,EAAE5yR,KAAKie,QAC1Bje,KAAK4yR,cAAc,EAAE5yR,KAAKg8T,WAGrBzuC,EAAUkE,iBAAiB,qBAAsBkqC,QAMvDj+S,QAAQC,KAAK,qDA1jBf,CA4jBG3d,MAGH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAoHvB,SAAS8uC,IACLr8T,KAAK+gS,SAAS,GAAI,UAClB/gS,KAAK0hS,UAAU,QAAS,SACxB1hS,KAAK0hS,UAAU,OAAQ,UACvB1hS,KAAKqmS,YAAY,QAAS,IAC1BrmS,KAAKqmS,YAAY,YAAa,KACpCrmS,KAAKymL,OAAS,KAzGZ8mG,EAAU6E,mBAAmB,mBAf7B,SAAkBluR,GACpB,GAAGA,GAAKA,EAAEjE,cAAgB7B,OAEzB,IAEC,OAAOqoC,KAAK0xH,UAAUj0J,GAEvB,MAAOyX,GAEN,OAAO7b,OAAOoE,GAGV,OAAOpE,OAAOoE,KAGwC,CAAC,IAAK,UAMhEqpR,EAAU6E,mBACN,kBALJ,SAAiBluR,EAAG5E,GAChB,OAAO4E,GAAK5E,IAMZ,CAAC,SAAU,UACX,WAaJiuR,EAAU6E,mBACN,sBAXJ,SAAqBluR,EAAG5E,GACpB,YAAUua,IAAN3V,EACO5E,OAEDua,IAANva,EACO4E,EAEJA,EAAI5E,IAMX,CAAC,SAAU,UACX,UAUJiuR,EAAU6E,mBACN,mBARJ,SAAkBluR,EAAG5E,GACjB,YAAUua,IAAN3V,QAAyB2V,IAANva,IAGC,GAAjB4E,EAAEtD,QAAQtB,KAMjB,CAAC,SAAU,UACX,WAUJiuR,EAAU6E,mBACN,sBARJ,SAAqBluR,GACjB,OAAS,MAALA,GAAaA,EAAEjE,cAAgBH,OACxBoE,EAAE6wD,cAEN7wD,IAMP,CAAC,UACD,UAoBJqpR,EAAU6E,mBACN,gBAlBJ,SAAe9yP,EAAKgqI,GAGhB,GAFU,MAAbA,IACFA,EAAYtpK,KAAKkhB,WAAWooJ,WACZ,MAAPhqI,EACH,MAAO,GACd,GAAIA,EAAIr/B,cAAgBH,OACvB,OAAOw/B,EAAIhG,MAAMgwI,GAAa,KAC1B,GAAIhqI,EAAIr/B,cAAgBR,MAC7B,CAEC,IADA,IAAI0B,EAAI,GACArD,EAAI,EAAGA,EAAIwhC,EAAIvhC,SAAUD,EAChCqD,EAAErD,GAAKwhC,EAAIxhC,GAAGw7B,MAAMgwI,GAAa,KAClC,OAAOnoK,EAEF,OAAO,OAMP,CAAC,eAAgB,UACjB,QACN,CAAEmoK,UAAW,MAUXikH,EAAU6E,mBACN,kBARJ,SAAiBluR,GACb,OAAS,MAALA,GAAaA,EAAEjE,cAAgB8sH,OACxB7oH,EAAE82B,QAAQh7B,KAAKkhB,WAAWkgS,WAE9Bl9S,IAMP,CAAC,UACD,SACA,CAAEk9S,UAAW,IAajBib,EAAcpqS,MAAQ,UACtBoqS,EAAcp7T,KAAO,2BAErBo7T,EAAc39T,UAAUg0R,UAAY,WAChC,IAAItjM,EAAQpvF,KAAK2yR,aAAa,GACpC,GAAIvjM,EAAJ,CAEA,IAAIk6E,EAAYtpK,KAAKkhB,WAAWooJ,WAAa,IAC1Cl6E,GAASpvF,KAAKs8T,MAAQhzJ,GAAatpK,KAAKu8T,kBAE1Cv8T,KAAKu8T,gBAAkBjzJ,EACvBtpK,KAAKs8T,KAAOltO,EACZpvF,KAAKymL,OAASr3F,EAAM91D,MAAM,MAAMlX,KAAI,SAASle,GAAI,OAAOA,EAAEuS,OAAO6iB,MAAMgwI,OAElEtpK,KAAK4yR,cAAc,EAAG5yR,KAAKymL,QAC3BzmL,KAAK4yR,cAAc,EAAG5yR,KAAKymL,OAASzmL,KAAKymL,OAAO1oL,OAAS,KAG7DwvR,EAAUkE,iBAAiB,iBAAkB4qC,GAhJjD,CAkJGr8T,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEvB,SAASivC,IACLx8T,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK+gS,SAAS,KACd/gS,KAAK+gS,SAAS,KACd/gS,KAAK+gS,SAAS,KACd/gS,KAAK+gS,SAAS,KACd/gS,KAAK0hS,UAAU,OAEf1hS,KAAKo7S,SAAW,EAoCpB,SAASqhB,IACLz8T,KAAKkhB,WAAa,CACdw7S,SAAU,SAEd18T,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK+gS,SAAS,OACd/gS,KAAK0hS,UAAU,OAEf1hS,KAAKf,MAAQ,EACbe,KAAKwd,OAASxd,KAAKkhB,WAAWw7S,SAASpjS,MAAM,KA1CjDkjS,EAASvqS,MAAQ,WACjBuqS,EAASv7T,KAAO,oBAEhBu7T,EAAS99T,UAAU46R,iBAAmB,SAASrgJ,GAC3C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAGAx5H,EAAI4+J,UAAY,OAChB,IAAIn1S,GAAK1C,KAAKo7S,SAAW,GAAK7tB,EAAUK,iBAAmB,EAC3D30I,EAAI09J,YACJ19J,EAAI8mE,OAAO,GAAIr9M,GACfu2I,EAAIu+J,OAAO,GAAI90S,EAAI6qR,EAAUK,kBAC7B30I,EAAIu+J,OAAO,GAAI90S,EAAiC,GAA7B6qR,EAAUK,kBAC7B30I,EAAI2+J,SAGR4kB,EAAS99T,UAAUg0R,UAAY,WAC3B,IAAI1nM,EAAMhrF,KAAK2yR,aAAa,GACjB,MAAP3nM,GAAeA,EAAI/qF,cAAgB8sH,SACnC/hC,EAAM,GACVhrF,KAAKo7S,SAAWpwN,EAAMtzE,KAAKq/C,MAAMi0B,IAAQhrF,KAAKm8R,OAAOp+R,OAAS,GAC9D,IAAIqF,EAAIpD,KAAK2yR,aAAa3nM,EAAM,QACtBnxE,IAANzW,GACApD,KAAK4yR,cAAc,EAAGxvR,IAI9Bo5T,EAAS99T,UAAU4kT,YAAc,WAC7B,MAAO,CAAC,CAAC,IAAK,GAAI,CAAC,IAAK,GAAI,CAAC,IAAK,GAAI,CAAC,IAAK,KAGhD/1B,EAAUkE,iBAAiB,iBAAkB+qC,GAc7CC,EAASxqS,MAAQ,WACjBwqS,EAASx7T,KAAO,mDAEhBw7T,EAAS/9T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACtC,YAAR4U,IACA5W,KAAKwd,OAASxb,EAAMs3B,MAAM,OAIlCmjS,EAAS/9T,UAAUg0R,UAAY,WAC3B,IAAIiqC,EAAM38T,KAAK2yR,aAAa,GACxBgqC,GAAOA,GAAO38T,KAAK48T,mBACnB58T,KAAKwd,OAASm/S,EAAIrjS,MAAM,KACxBt5B,KAAK48T,iBAAmBD,GAE5B,IAAI19T,EAAQe,KAAK2yR,aAAa,GACjB,MAAT1zR,IACAA,EAAQ,GAEZe,KAAKf,MAAQA,EAAQyY,KAAKq/C,MAAM93D,GAASe,KAAKwd,OAAOzf,OAErDiC,KAAK4yR,cAAc,EAAG5yR,KAAKwd,OAAOve,KAGtCsuR,EAAUkE,iBAAiB,iBAAkBgrC,GAnFjD,CAoFGz8T,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEvB,SAASsvC,IACL78T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UAEnB/gS,KAAKwd,OAAS,CAAC,GAAI,GAAI,GAAI,IAC3Bxd,KAAKkhB,WAAa,CAAEw0E,MAAO,GAmE/B,SAASonO,IACL98T,KAAK0hS,UAAU,QAAS,SACxB1hS,KAAKkhB,WAAa,CAAEpJ,IAAK,IAgG7B,SAASilT,IACL/8T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,QAAS,SACxB1hS,KAAKkhB,WAAa,CACd87S,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAoEhB,SAASC,IACLp9T,KAAK+gS,SAAS,GAAI,gBAClB/gS,KAAKyM,KAAO,CAAC,IAAK,KAiDtB,SAAS4wT,IACLr9T,KAAKymS,UAAU,CACX,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,OAAQ,YAEbzmS,KAAK0hS,UAAU,GAAI,SACnB1hS,KAAKkhB,WAAa,CAAEo8S,KAAM,GAAKzyT,MAAO,IAAKC,OAAQ,KAoDvD,SAASyyT,IACLv9T,KAAK+gS,SAAS,GAAI,SAClB/gS,KAAK0hS,UAAU,GAAI,SACnB1hS,KAAKkhB,WAAa,CAAErW,MAAO,IAAKC,OAAQ,IAAKmR,EAAG,EAAGvZ,EAAG,EAAGgzF,MAAO,GAChE11F,KAAKyM,KAAO,CAAC,GAAI,IA+ErB,SAAS+wT,IACLx9T,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,GAAI,UACnB1hS,KAAKkhB,WAAa,CAAErW,MAAO,IAAKC,OAAQ,IAAK2yT,WAAW,GAExDz9T,KAAKo2R,OAAShsR,SAASsF,cAAc,UACrC1P,KAAKi5I,IAAMj5I,KAAKo2R,OAAOl9I,WAAW,MA+BtC,SAASwkL,IACL19T,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK+gS,SAAS,MAAO,gBACrB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,EAAGqxC,QAAS,GAyB7C,SAAS4pR,IACL39T,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAKkhB,WAAa,CACdjF,EAAG,EACHvZ,EAAG,EACHstG,EAAG,GACH94C,EAAG,GACHzpC,MAAO,QACPsmB,QAAS,GAuBjB,SAAS6pR,IACL59T,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAKwmS,WAAW,CAAC,CAAC,QAAS,SAAU,CAAC,IAAK,UAAW,CAAC,IAAK,YAC5DxmS,KAAKkhB,WAAa,CAAEpJ,IAAK,GAAI+lT,WAAW,GA0L5C,SAASC,IACL99T,KAAK0hS,UAAU,SAAU,SACzB1hS,KAAKkhB,WAAa,CAAE68S,kBAAkB,EAAOC,WAAY,QACzDh+T,KAAKwkS,SAAW,QAChBxkS,KAAKgsS,MAAQ,EArtBjB6wB,EAAa5qS,MAAQ,OACrB4qS,EAAa57T,KAAO,uBACpB47T,EAAaviM,OAAS,CAAC,OAAQ,OAAQ,OAAQ,QAE/CuiM,EAAan+T,UAAUg0R,UAAY,SAASz5I,GACxC,IAAIj5I,KAAK0iM,MAAM+vE,UAMf,IAFA,IAAIhmQ,EAAOzM,KAAKyM,KAEP3O,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAIsF,EAAIpD,KAAK2yR,aAAa70R,GAC1B,GAAS,MAALsF,EAAJ,CAGA,IAAIoa,EAASxd,KAAKwd,OAAO1f,GACzB0f,EAAOja,KAAKH,GACRoa,EAAOzf,OAAS0O,EAAK,IACrB+Q,EAAOzU,WAKnB8zT,EAAan+T,UAAU46R,iBAAmB,SAASrgJ,GAC/C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAIA,IAAIhmQ,EAAOzM,KAAKyM,KAEZipF,EAAS,GAAMjpF,EAAK,GAAMzM,KAAKkhB,WAAWw0E,MAC1C4kC,EAASuiM,EAAaviM,OACtBl6F,EAAmB,GAAV3zB,EAAK,GAUlB,GARAwsI,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAS,EAAG,EAAGntS,EAAK,GAAIA,EAAK,IACjCwsI,EAAI6+J,YAAc,OAClB7+J,EAAI09J,YACJ19J,EAAI8mE,OAAO,EAAG3/K,GACd64G,EAAIu+J,OAAO/qS,EAAK,GAAI2zB,GACpB64G,EAAI6hK,SAEA96S,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAI0f,EAASxd,KAAKwd,OAAO1f,GACzB,GAAKkC,KAAKm8R,OAAOr+R,IAAOkC,KAAKm8R,OAAOr+R,GAAGixD,KAAvC,CAGAkqF,EAAI6+J,YAAcx9K,EAAOx8H,GACzBm7I,EAAI09J,YACJ,IAAIvzS,EAAIoa,EAAO,GAAKk4E,GAAS,EAAIt1D,EACjC64G,EAAI8mE,OAAO,EAAGroM,KAAKw6E,MAAM9uF,EAAG,EAAGqJ,EAAK,KACpC,IAAK,IAAItI,EAAI,EAAGA,EAAIqZ,EAAOzf,QAAUoG,EAAIsI,EAAK,KAAMtI,EAAG,CAC/Cf,EAAIoa,EAAOrZ,GAAKuxF,GAAS,EAAIt1D,EACjC64G,EAAIu+J,OAAOrzS,EAAGuT,KAAKw6E,MAAM9uF,EAAG,EAAGqJ,EAAK,KAExCwsI,EAAI6hK,aAKhBvtB,EAAUkE,iBAAiB,gBAAiBorC,GAO5CC,EAAc7qS,MAAQ,QACtB6qS,EAAc77T,KAAO,eACrB67T,EAAc14B,QAAU,CAAC,CAAExtR,KAAM,OAAQuyD,KAAM,OAAQhkE,KAAM,WAE7D23T,EAAc9qC,qBAAuB,CAAC,MAAO,OAAQ,MAAO,OAE5D8qC,EAAcp+T,UAAUygS,QAAU,WACA,IAA1Bn/R,KAAKkhB,WAAL,KAA4C,MAAZlhB,KAAKipS,KACrCjpS,KAAKgpS,UAAUhpS,KAAKkhB,WAAL,MAIvB47S,EAAcp+T,UAAU46R,iBAAmB,SAASrgJ,GAC5Cj5I,KAAK0iM,MAAM+vE,WAGXzyQ,KAAKipS,KAAOjpS,KAAKyM,KAAK,GAAK,GAAKzM,KAAKyM,KAAK,GAAK,GAAKzM,KAAKipS,IAAIp+R,OAC7DouI,EAAI69J,UAAU92S,KAAKipS,IAAK,EAAG,EAAGjpS,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,KAI9DqwT,EAAcp+T,UAAUg0R,UAAY,WAC3B1yR,KAAKipS,MACNjpS,KAAKwkS,SAAW,QAEhBxkS,KAAKipS,KAAOjpS,KAAKipS,IAAIp+R,MACrB7K,KAAK4yR,cAAc,EAAG5yR,KAAKipS,KAE3BjpS,KAAK4yR,cAAc,EAAG,MAEtB5yR,KAAKipS,KAAOjpS,KAAKipS,IAAIg1B,QACrBj+T,KAAKipS,IAAIg1B,OAAQ,IAIzBnB,EAAcp+T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAMvD,OALAhC,KAAKkhB,WAAWtK,GAAQ5U,EACZ,OAAR4U,GAA0B,IAAT5U,GACjBhC,KAAKgpS,UAAUhnS,IAGZ,GAGX86T,EAAcp+T,UAAUsqS,UAAY,SAASlxR,EAAKrQ,GAC9C,GAAW,IAAPqQ,EAAJ,CAKA9X,KAAKipS,IAAM7+R,SAASsF,cAAc,OAEV,QAApBoI,EAAIqxB,OAAO,EAAG,IAAgBokP,EAAUuD,QACxCh5Q,EAAMy1Q,EAAUuD,MAAQh5Q,EAAIqxB,OAAOrxB,EAAIlX,QAAQ,KAAO,IAG1DZ,KAAKipS,IAAIp9O,IAAM/zC,EACf9X,KAAKwkS,SAAW,OAChB,IAAIhnB,EAAOx9Q,KACXA,KAAKipS,IAAIrU,OAAS,WACVntR,GACAA,EAASzH,MAEb0d,QAAQ6oL,IAAK,uBAAyBi3E,EAAKyrB,IAAIp+R,MAAQ,IAAM2yQ,EAAKyrB,IAAIn+R,QACtE9K,KAAKi+T,OAAQ,EACbzgD,EAAKgnB,SAAW,OAChBhnB,EAAKqhB,gBAAe,IAExB7+R,KAAKipS,IAAIlF,QAAU,WACxBrmR,QAAQ6oL,IAAI,2BAA6BzuL,SAvBhC9X,KAAKipS,IAAM,MA2BnB6zB,EAAcp+T,UAAUw/T,SAAW,SAASv9T,EAAGq8K,GACxB,QAAfA,EAAOpmK,MACP5W,KAAKgpS,UAAUhpS,KAAKkhB,WAAL,MAIvB47S,EAAcp+T,UAAUg2S,WAAa,SAAS/mO,GAC1C,IAAI6vM,EAAOx9Q,KACPA,KAAK8uT,MACLj1E,IAAIq1E,gBAAgBlvT,KAAK8uT,MAE7B9uT,KAAK8uT,KAAOj1E,IAAIC,gBAAgBnsK,GAChC3tE,KAAKkhB,WAAWpJ,IAAM9X,KAAK8uT,KAC3B9uT,KAAKgpS,UAAUhpS,KAAK8uT,MAAM,SAAS7lB,GAC/BzrB,EAAK/wQ,KAAK,GAAMw8R,EAAIn+R,OAASm+R,EAAIp+R,MAAS2yQ,EAAK/wQ,KAAK,OAI5D8gR,EAAUkE,iBAAiB,iBAAkBqrC,GAa7CC,EAAa9qS,MAAQ,UACrB8qS,EAAa97T,KAAO,oBAEpB87T,EAAar+T,UAAUg0R,UAAY,WAC/B,IAAIxxR,EAAI,GAEsB,MAA1BlB,KAAKkhB,WAAW87S,QAChB97T,EAAEqC,KAAKomT,QAAQ3pT,KAAKkhB,WAAW87S,SAEL,MAA1Bh9T,KAAKkhB,WAAW+7S,QAChB/7T,EAAEqC,KAAKomT,QAAQ3pT,KAAKkhB,WAAW+7S,SAEL,MAA1Bj9T,KAAKkhB,WAAWg8S,QAChBh8T,EAAEqC,KAAKomT,QAAQ3pT,KAAKkhB,WAAWg8S,SAEL,MAA1Bl9T,KAAKkhB,WAAWi8S,QAChBj8T,EAAEqC,KAAKomT,QAAQ3pT,KAAKkhB,WAAWi8S,SAGnC,IAAI16T,EAAIzC,KAAK2yR,aAAa,GAU1B,GATS,MAALlwR,IACAA,EAAI,IAEJA,EAAI,EACJA,EAAI,EACGA,EAAI,IACXA,EAAI,GAGQ,GAAZvB,EAAEnD,OAAN,CAIA,IAAIqE,EAAS,CAAC,EAAG,EAAG,GACpB,GAAS,GAALK,EACAL,EAASlB,EAAE,QACR,GAAS,GAALuB,EACPL,EAASlB,EAAEA,EAAEnD,OAAS,OACnB,CACH,IAAI40C,GAAOzxC,EAAEnD,OAAS,GAAK0E,EACvB09S,EAAKj/S,EAAEwW,KAAKE,MAAM+6B,IAClBytQ,EAAKl/S,EAAEwW,KAAKE,MAAM+6B,GAAO,GACzBtyC,EAAIsyC,EAAMj7B,KAAKE,MAAM+6B,GACzBvwC,EAAO,GAAK+9S,EAAG,IAAM,EAAI9/S,GAAK+/S,EAAG,GAAK//S,EACtC+B,EAAO,GAAK+9S,EAAG,IAAM,EAAI9/S,GAAK+/S,EAAG,GAAK//S,EACtC+B,EAAO,GAAK+9S,EAAG,IAAM,EAAI9/S,GAAK+/S,EAAG,GAAK//S,EAS1C,IAAK,IAAIvC,EAAE,EAAGA,EAAIsE,EAAOrE,OAAQD,IAC7BsE,EAAOtE,IAAM,IAGjBkC,KAAKwkS,SAAWglB,cAAcpnT,GAC9BpC,KAAK4yR,cAAc,EAAGxwR,KAG1BmrR,EAAUkE,iBAAiB,gBAAiBsrC,GAO5CK,EAAWnrS,MAAQ,QACnBmrS,EAAWn8T,KAAO,iBAClBm8T,EAAWh5B,QAAU,CACjB,CAAExtR,KAAM,SAAUuyD,KAAM,aAAchkE,KAAM,UAC5C,CAAEyR,KAAM,OAAQuyD,KAAM,aAAchkE,KAAM,WAG9Ci4T,EAAW1+T,UAAU46R,iBAAmB,SAASrgJ,GACzCj5I,KAAKgsS,QAAUhsS,KAAK0iM,MAAM+vE,WAC1Bx5H,EAAI69J,UAAU92S,KAAKgsS,MAAO,EAAG,EAAGhsS,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,KAIhE2wT,EAAW1+T,UAAUg0R,UAAY,WAC7B1yR,KAAKgsS,MAAQhsS,KAAK2yR,aAAa,GAC/B3yR,KAAK6+R,gBAAe,IAGxBu+B,EAAW1+T,UAAUw/T,SAAW,SAASv9T,EAAGq8K,GACxC,GAAmB,UAAfA,EAAOpmK,MAAoB5W,KAAKgsS,MAAO,CACvC,IAAInhS,EAAQ7K,KAAKgsS,MAAMnhS,MACnBC,EAAS9K,KAAKgsS,MAAMlhS,OAEnBD,GAAkC,MAAzB7K,KAAKgsS,MAAMmyB,aACrBtzT,EAAQ7K,KAAKgsS,MAAMmyB,WACnBrzT,EAAS9K,KAAKgsS,MAAMoyB,aAGpBvzT,GAASC,IACT9K,KAAKyM,KAAO,CAAC5B,EAAOC,IAExB9K,KAAK6+R,gBAAe,GAAM,OACJ,QAAf7hH,EAAOpmK,MACd5W,KAAKgX,QAIbomT,EAAW1+T,UAAUsY,KAAO,WAEpBqnT,aAAer+T,KAAKgsS,OACpBqyB,YAAYr+T,KAAKgsS,QAIzBze,EAAUkE,iBAAiB,iBAAkB2rC,GAY7CC,EAAUprS,MAAQ,aAClBorS,EAAUp8T,KAAO,uBACjBo8T,EAAUj5B,QAAU,CAChB,CAAExtR,KAAM,UAAWuyD,KAAM,cAAehkE,KAAM,UAC9C,CAAEyR,KAAM,UAAWuyD,KAAM,cAAehkE,KAAM,WAGlDk4T,EAAU3+T,UAAUygS,QAAU,WAC1Bn/R,KAAKs+T,eACL,IAAIrlL,EAAMj5I,KAAKo2R,OAAOl9I,WAAW,MACjCD,EAAI4+J,UAAY,OAChB5+J,EAAI2gK,SAAS,EAAG,EAAG55S,KAAKkhB,WAAL,MAA0BlhB,KAAKkhB,WAAL,SAGjDm8S,EAAU3+T,UAAU4/T,aAAe,WAC/Bt+T,KAAKo2R,OAAShsR,SAASsF,cAAc,UACrC1P,KAAKo2R,OAAOvrR,MAAQ7K,KAAKkhB,WAAL,MACpBlhB,KAAKo2R,OAAOtrR,OAAS9K,KAAKkhB,WAAL,QAGzBm8S,EAAU3+T,UAAUg0R,UAAY,WAC5B,IAAIz5I,EAAMj5I,KAAKo2R,OAAOl9I,WAAW,MACjCl5I,KAAKo2R,OAAOvrR,MAAQ7K,KAAKo2R,OAAOvrR,MAEhC,IAAIszR,EAAIn+R,KAAK2yR,aAAa,GACjB,MAALwL,GACAllJ,EAAI69J,UAAU3Y,EAAG,EAAG,EAAGn+R,KAAKo2R,OAAOvrR,MAAO7K,KAAKo2R,OAAOtrR,QAG1D,IAAIwyT,EAAOt9T,KAAK2yR,aAAa,GACjB,MAAR2qC,EACAA,EAAOt9T,KAAKkhB,WAAL,KAEPlhB,KAAKkhB,WAAL,KAA0Bo8S,EAG9BrkL,EAAIo/J,YAAcilB,EAClB,IAAIl/B,EAAIp+R,KAAK2yR,aAAa,GACjB,MAALyL,GACAnlJ,EAAI69J,UAAU1Y,EAAG,EAAG,EAAGp+R,KAAKo2R,OAAOvrR,MAAO7K,KAAKo2R,OAAOtrR,QAE1DmuI,EAAIo/J,YAAc,EAElBr4S,KAAK4yR,cAAc,EAAG5yR,KAAKo2R,QAC3Bp2R,KAAK6+R,gBAAe,IAGxBtR,EAAUkE,iBAAiB,qBAAsB4rC,GASjDE,EAAUtrS,MAAQ,OAClBsrS,EAAUt8T,KAAO,aAEjBs8T,EAAU7+T,UAAUygS,QAAU,WAC1Bn/R,KAAKs+T,gBAGTf,EAAU7+T,UAAU4/T,aAAe,WAC/Bt+T,KAAKo2R,OAAShsR,SAASsF,cAAc,UACrC1P,KAAKo2R,OAAOvrR,MAAQ7K,KAAKkhB,WAAL,MACpBlhB,KAAKo2R,OAAOtrR,OAAS9K,KAAKkhB,WAAL,QAGzBq8S,EAAU7+T,UAAUg0R,UAAY,WAC5B,IAAItjM,EAAQpvF,KAAK2yR,aAAa,GACzBvjM,IAIDA,EAAMvkF,OACI7K,KAAKo2R,OAAOl9I,WAAW,MAE7B49J,UACA1nN,GACCpvF,KAAKkhB,WAAL,GACAlhB,KAAKkhB,WAAL,EACDkuE,EAAMvkF,MAAQ7K,KAAKkhB,WAAL,MACdkuE,EAAMtkF,OAAS9K,KAAKkhB,WAAL,OAEnBlhB,KAAK4yR,cAAc,EAAG5yR,KAAKo2R,SAE3Bp2R,KAAK4yR,cAAc,EAAG,QAI9B2qC,EAAU7+T,UAAU46R,iBAAmB,SAASrgJ,GACxCj5I,KAAK0iM,MAAM+vE,WAGXzyQ,KAAKo2R,QACLn9I,EAAI69J,UACA92S,KAAKo2R,OACL,EACA,EACAp2R,KAAKo2R,OAAOvrR,MACZ7K,KAAKo2R,OAAOtrR,OACZ,EACA,EACA9K,KAAKyM,KAAK,GACVzM,KAAKyM,KAAK,KAKtB8wT,EAAU7+T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAenD,OAdAhC,KAAKkhB,WAAWtK,GAAQ5U,EAEZ,SAAR4U,GACA5W,KAAKkhB,WAAWtK,GAAQxL,WAAWpJ,GACN,GAAzBhC,KAAKkhB,WAAWtK,KAChB8G,QAAQ9Z,MAAM,kBACd5D,KAAKkhB,WAAWtK,GAAQ,IAG5B5W,KAAKkhB,WAAWtK,GAAQ6oB,SAASz9B,GAGrChC,KAAKs+T,gBAEE,GAGX/wC,EAAUkE,iBAAiB,qBAAsB8rC,GAajDC,EAAWvrS,MAAQ,SACnBurS,EAAWv8T,KAAO,yBAElBu8T,EAAW9+T,UAAUg0R,UAAY,WAC7B,IAAI0D,EAASp2R,KAAKo2R,OACdpmL,EAA4B,EAAxBhwG,KAAKkhB,WAAWrW,MACpBqsD,EAA6B,EAAzBl3D,KAAKkhB,WAAWpW,OACpBsrR,EAAOvrR,OAASmlG,IAChBomL,EAAOvrR,MAAQmlG,GAEfomL,EAAOtrR,QAAUosD,IACjBk/N,EAAOtrR,OAASosD,GAGhBl3D,KAAKkhB,WAAWu8S,WAChBz9T,KAAKi5I,IAAI49J,UAAU,EAAG,EAAGzgB,EAAOvrR,MAAOurR,EAAOtrR,QAElD9K,KAAK4yR,cAAc,EAAGwD,IAG1BonC,EAAW9+T,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC/B,SAAV7qQ,GACA91B,KAAKi5I,IAAI49J,UAAU,EAAG,EAAG72S,KAAKo2R,OAAOvrR,MAAO7K,KAAKo2R,OAAOtrR,SAIhEyiR,EAAUkE,iBAAiB,kBAAmB+rC,GAU9CE,EAAczrS,MAAQ,YACtByrS,EAAcz8T,KAAO,4BAErBy8T,EAAch/T,UAAUg0R,UAAY,WAChC,IAAI0D,EAASp2R,KAAK2yR,aAAa,GAC/B,GAAKyD,EAAL,CAIA,IAAI6S,EAAMjpS,KAAKylS,mBAAmB,OAClC,GAAKwD,EAAL,CAIA,IAAIhtR,EAAIjc,KAAKylS,mBAAmB,KAC5B/iS,EAAI1C,KAAKylS,mBAAmB,KACtBrP,EAAOl9I,WAAW,MACxB49J,UAAU7N,EAAKhtR,EAAGvZ,MAG1B6qR,EAAUkE,iBAAiB,qBAAsBisC,GAkBjDC,EAAkB1rS,MAAQ,gBAC1B0rS,EAAkB18T,KAAO,4BAEzB08T,EAAkBj/T,UAAUg0R,UAAY,WACpC,IAAI0D,EAASp2R,KAAK2yR,aAAa,GAC/B,GAAKyD,EAAL,CAIA,IAAIn6Q,EAAIjc,KAAKylS,mBAAmB,KAC5B/iS,EAAI1C,KAAKylS,mBAAmB,KAC5Bz1L,EAAIhwG,KAAKylS,mBAAmB,KAC5BvuO,EAAIl3D,KAAKylS,mBAAmB,KACtBrP,EAAOl9I,WAAW,MACxB0gK,SAAS39R,EAAGvZ,EAAGstG,EAAG94C,KAG1Bq2N,EAAUkE,iBAAiB,yBAA0BksC,GAQrDC,EAAW3rS,MAAQ,QACnB2rS,EAAW38T,KAAO,iBAClB28T,EAAWx5B,QAAU,CACjB,CAAExtR,KAAM,OAAQuyD,KAAM,OAAQhkE,KAAM,cACpC,CAAEyR,KAAM,OAAQuyD,KAAM,OAAQhkE,KAAM,cACpC,CAAEyR,KAAM,OAAQuyD,KAAM,aAAchkE,KAAM,UAC1C,CAAEyR,KAAM,OAAQuyD,KAAM,aAAchkE,KAAM,WAG9Cy4T,EAAWl/T,UAAUg0R,UAAY,WAC7B,GAAK1yR,KAAKkhB,WAAWpJ,MAIjB9X,KAAKkhB,WAAWpJ,KAAO9X,KAAKu+T,YAC5Bv+T,KAAKw+T,UAAUx+T,KAAKkhB,WAAWpJ,KAG9B9X,KAAKy+T,QAA+B,GAArBz+T,KAAKy+T,OAAO5zT,OAAhC,CAIA,IAAIxK,EAAIL,KAAK2yR,aAAa,GACtBtyR,GAAKA,GAAK,GAAKA,GAAK,IACpBL,KAAKy+T,OAAO3gK,YAAcz9J,EAAIL,KAAKy+T,OAAOj8K,SAC1CxiJ,KAAKy+T,OAAOriS,SAGhBp8B,KAAKy+T,OAAOR,OAAQ,EACpBj+T,KAAK4yR,cAAc,EAAG5yR,KAAKy+T,QAC3Bz+T,KAAK4yR,cAAc,EAAG5yR,KAAKy+T,OAAO3gK,aAClC99J,KAAK4yR,cAAc,EAAG5yR,KAAKy+T,OAAOj8K,UAClCxiJ,KAAK6+R,gBAAe,KAGxB++B,EAAWl/T,UAAUiyT,QAAU,WAC3B3wT,KAAK+5E,QAGT6jP,EAAWl/T,UAAUggU,OAAS,WAC1B1+T,KAAK+T,QAGT6pT,EAAWl/T,UAAU8/T,UAAY,SAAS1mT,GACtC9X,KAAKu+T,WAAazmT,EAExB,IAAI66B,EAAM76B,EAAIqxB,OAAO,EAAE,IAAIvoC,QAAQ,KAC/B84O,EAAW,IACJ,GAAR/mM,IACF+mM,EAAW5hO,EAAIqxB,OAAO,EAAEwJ,IAEzB,IAAI3jC,EAAO,GACR0qO,IAGF1qO,GADAA,EAAO8I,EAAIqxB,OAAO,EAAErxB,EAAIlX,QAAQ,IAAI84O,EAAS37O,OAAS,KAC1CorC,OAAOuwM,EAAS37O,OAAO,IAI1BiC,KAAKkhB,WAAW28S,WAChBnkF,GACA6zC,EAAUuD,OACnB9hR,GAAQ8J,SAAS9J,OAER8I,EAAMy1Q,EAAUuD,MAAQh5Q,EAAIqxB,OAAOrxB,EAAIlX,QAAQ,KAAO,IAG1DZ,KAAKy+T,OAASr0T,SAASsF,cAAc,SACrC1P,KAAKy+T,OAAO5yQ,IAAM/zC,EAClB9X,KAAKy+T,OAAOt5T,KAAO,iBAEnBnF,KAAKy+T,OAAOE,OAAQ,EACpB3+T,KAAKy+T,OAAOG,UAAW,EAEvB,IAAIphD,EAAOx9Q,KACXA,KAAKy+T,OAAO/4T,iBAAiB,kBAAkB,SAAS/E,GAEpD+c,QAAQ6oL,IAAI,aAAevmM,KAAKwiJ,SAAW,YAC3C9kI,QAAQ6oL,IAAI,SAAWvmM,KAAKm+T,WAAa,IAAMn+T,KAAKo+T,aACpD5gD,EAAKqhB,gBAAe,GACpB7+R,KAAK6K,MAAQ7K,KAAKm+T,WAClBn+T,KAAK8K,OAAS9K,KAAKo+T,eAEvBp+T,KAAKy+T,OAAO/4T,iBAAiB,YAAY,SAAS/E,GAE9C+c,QAAQ6oL,IAAI,uBAEhBvmM,KAAKy+T,OAAO/4T,iBAAiB,SAAS,SAAS/E,GAE3C,GADA+c,QAAQ9Z,MAAM,wBAA0B5D,KAAK6rD,KACzC7rD,KAAK4D,MACL,OAAQ5D,KAAK4D,MAAMs/B,MACf,KAAKljC,KAAK4D,MAAMi7T,kBACZnhT,QAAQ9Z,MAAM,0BACd,MACJ,KAAK5D,KAAK4D,MAAMk7T,kBACZphT,QAAQ9Z,MAAM,2CACd,MACJ,KAAK5D,KAAK4D,MAAMm7T,iBACZrhT,QAAQ9Z,MAAM,qBACd,MACJ,KAAK5D,KAAK4D,MAAMo7T,4BACZthT,QAAQ9Z,MAAM,kDAM9B5D,KAAKy+T,OAAO/4T,iBAAiB,SAAS,SAAS/E,GAC3C+c,QAAQ6oL,IAAI,gBACZvmM,KAAK+5E,WAMb6jP,EAAWl/T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAMpD,OALAhC,KAAKkhB,WAAWtK,GAAQ5U,EACZ,OAAR4U,GAA0B,IAAT5U,GACjBhC,KAAKw+T,UAAUx8T,IAGZ,GAGX47T,EAAWl/T,UAAUq7E,KAAO,WACpB/5E,KAAKy+T,QAAUz+T,KAAKy+T,OAAON,YAC3Bn+T,KAAKy+T,OAAO1kP,QAIpB6jP,EAAWl/T,UAAUugU,UAAY,WACxBj/T,KAAKy+T,SAGNz+T,KAAKy+T,OAAOS,OACZl/T,KAAK+5E,OAEL/5E,KAAKo8B,UAIbwhS,EAAWl/T,UAAUqV,KAAO,WACnB/T,KAAKy+T,SAGVz+T,KAAKy+T,OAAOriS,QACZp8B,KAAKy+T,OAAO3gK,YAAc,IAG9B8/J,EAAWl/T,UAAU09B,MAAQ,WACpBp8B,KAAKy+T,SAGV/gT,QAAQ6oL,IAAI,gBACZvmM,KAAKy+T,OAAOriS,UAGhBwhS,EAAWl/T,UAAUw/T,SAAW,SAASv9T,EAAGq8K,KAuB5CuwG,EAAUkE,iBAAiB,iBAAkBmsC,GAU7CE,EAAY7rS,MAAQ,SACpB6rS,EAAY78T,KAAO,eACnB68T,EAAYqB,gBAAiB,EAE7BrB,EAAYp/T,UAAU0gU,WAAa,WAC/B,GAAK5kQ,UAAU6kQ,aAAaC,aAA5B,CAKAt/T,KAAKu/T,uBAAwB,EAG7B,IAAIx7P,EAAc,CACdy7P,OAAO,EACPC,OAAQz/T,KAAKkhB,WAAW68S,kBAA0B,CAAEC,WAAYh+T,KAAKkhB,WAAW88S,aAEpFxjQ,UAAU6kQ,aACLC,aAAav7P,GACbzhE,KAAKtC,KAAK0/T,YAAYtkQ,KAAKp7D,OAFhC,OAMA,SAAsBW,GAClB+c,QAAQ6oL,IAAI,kBAAmB5lM,GAC/B68Q,EAAKmiD,gBAAiB,EACtB7B,EAAYqB,gBAAiB,EAC7B3hD,EAAKgnB,SAAW,MAChBhnB,EAAKz8M,QAAQ,mBANjB,IAAIy8M,EAAOx9Q,UAhBP0d,QAAQ6oL,IAAI,qGA0BpBu3H,EAAYp/T,UAAUkhU,YAAc,WAChC,GAAI5/T,KAAK2/T,eAAgB,CACrB,IAAIE,EAAS7/T,KAAK2/T,eAAeG,YACjC,GAAID,EAAO9hU,OACP,IAAK,IAAID,EAAI,EAAGA,EAAI+hU,EAAO9hU,SAAUD,EACjC+hU,EAAO/hU,GAAGiW,OAGlB+pT,EAAYqB,gBAAiB,EAC7Bn/T,KAAK2/T,eAAiB,KACtB3/T,KAAKy+T,OAAS,KACdz+T,KAAKwkS,SAAW,QAChBxkS,KAAK+gE,QAAQ,mBAIrB+8P,EAAYp/T,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACzC,cAAR4U,IACA5W,KAAKkhB,WAAW88S,WAAah8T,EAC7BhC,KAAK4/T,cACL5/T,KAAKo/T,eAIbtB,EAAYp/T,UAAU28R,UAAY,WAC9Br7R,KAAK4/T,eAGT9B,EAAYp/T,UAAUghU,YAAc,SAASK,GACzC//T,KAAK2/T,eAAiBI,EAEtB//T,KAAKwkS,SAAW,QAEhB,IAAIi7B,EAAQz/T,KAAKy+T,OACZgB,KACDA,EAAQr1T,SAASsF,cAAc,UACzBkvT,UAAW,EACjBa,EAAMO,UAAYD,EAClB//T,KAAKy+T,OAASgB,EAGdA,EAAMQ,iBAAmB,SAASt/T,GAE9B+c,QAAQ6oL,IAAI5lM,GACZm9T,EAAYqB,gBAAiB,IAIrCn/T,KAAK+gE,QAAQ,eAAgB0+P,IAGjC3B,EAAYp/T,UAAUg0R,UAAY,WAK9B,GAJ2B,MAAvB1yR,KAAK2/T,gBAA2B3/T,KAAKu/T,uBACrCv/T,KAAKo/T,aAGJp/T,KAAKy+T,QAAWz+T,KAAKy+T,OAAON,WAAjC,CAIAn+T,KAAKy+T,OAAOzyB,QAAUhsS,KAAKgsS,MAC3BhsS,KAAKy+T,OAAO5zT,MAAQ7K,KAAKy+T,OAAON,WAChCn+T,KAAKy+T,OAAO3zT,OAAS9K,KAAKy+T,OAAOL,YACjCp+T,KAAK4yR,cAAc,EAAG5yR,KAAKy+T,QAC3B,IAAK,IAAI3gU,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EACvC,GAAKkC,KAAKo8R,QAAQt+R,GAGlB,OAAQkC,KAAKo8R,QAAQt+R,GAAG8Y,MACpB,IAAK,QACD5W,KAAK4yR,cAAc90R,EAAGkC,KAAKy+T,OAAON,YAClC,MACJ,IAAK,SACDn+T,KAAK4yR,cAAc90R,EAAGkC,KAAKy+T,OAAOL,gBAMlDN,EAAYp/T,UAAU2pT,oBAAsB,SAAS/rB,GACjD,IAAI9e,EAAOx9Q,KAEX,MAAO,CACH,CACIk/C,QAHGs+N,EAAKt8P,WAAWlK,KAAsB,aAAf,aAI1BvP,SAAU,WACN+1Q,EAAKt8P,WAAWlK,MAAQwmQ,EAAKt8P,WAAWlK,SAMxD8mT,EAAYp/T,UAAU46R,iBAAmB,SAASrgJ,GAE1Cj5I,KAAK0iM,MAAM+vE,WACXzyQ,KAAKyM,KAAK,IAAM,KACfzM,KAAKkhB,WAAWlK,MAKhBhX,KAAKy+T,SAKVxlL,EAAIr9D,OACJq9D,EAAI69J,UAAU92S,KAAKy+T,OAAQ,EAAG,EAAGz+T,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IACzDwsI,EAAIu9J,YAGRsnB,EAAYp/T,UAAUglT,aAAe,WACjC,MAAO,CACH,CAAC,QAAS,UACV,CAAC,SAAU,UACX,CAAC,eAAgBn2B,EAAUuC,OAC3B,CAAC,gBAAiBvC,EAAUuC,OAC5B,CAAC,eAAgBvC,EAAUuC,SAInCvC,EAAUkE,iBAAiB,kBAAmBqsC,GA93BlD,CA+3BG99T,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UACtB4I,EAAel1P,EAAOk1P,aAU1B,SAAS+pC,IACRlgU,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAK0hS,UAAU,OAAQ,UACvB1hS,KAAKkhB,WAAa,CAAEtK,KAAM,GAAIoY,QAAQ,GACtChvB,KAAKyM,KAAO,CACXyzT,EAAcC,mBACdD,EAAcC,oBAqXhB,SAASC,IACRpgU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAKkhB,WAAa,CAAEm/S,OAAO,GAC3BrgU,KAAKyM,KAAO,CACXyzT,EAAcC,mBACdD,EAAcC,oBA4ChB,SAASG,IACRtgU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAK0hS,UAAU,OAAQ,UACvB1hS,KAAKkhB,WAAa,CAAEtK,KAAM,GAAI2pT,kBAAkB,GA2CjD,SAASC,IACRxgU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,WAAY,WAC1B/gS,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKylT,KAAO,iTAGZzlT,KAAKkhB,WAAa,CACjBlf,MAAO,EACPy+T,UAAW,yBACXC,OAAQ,GACRtf,UAAW8e,EAAcS,SAG1B3gU,KAAK4gU,WAAY,EAyPlB,SAASC,IACR7gU,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjBgiB,KAAM,GACN49R,QAAS,EACTC,QAAS,CAAC,EAAE,EAAE,EAAE,GAChBl2T,MAAO,IACPC,OAAQ,IACRs2S,UAAW8e,EAAcS,SAG1B3gU,KAAKkhB,WAAWgiB,KAAO29R,EAAoBG,aAC3ChhU,KAAKihU,UAAY,CAAEH,QAAS,EAAGC,QAASG,KAAKhhU,SAAUihU,WAAY,EAAGC,QAASF,KAAKhhU,SAAUkwT,KAAM,GA4MrG,SAASiR,IACRrhU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,QAAS,QACvB/gS,KAAK+gS,SAAS,SAAU,QACxB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjBkf,OAAQ0rR,KAAKmP,WAAW,EAAG,GAC3BvlO,MAAOo2N,KAAKmP,WAAW,EAAG,GAC1B7Z,UAAW8e,EAAcS,SA6G3B,SAASW,IACRthU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjB+L,OAAQ,IACRyoE,MAAO,CAAC,EAAE,GACVt1D,OAAQ,CAAC,EAAE,GACXghR,UAAW8e,EAAcS,SAG1B3gU,KAAKihU,UAAY,CAChBM,UAAW,EACXC,WAAY,EACZC,SAAU,EACVC,QAAS5V,KAAK5rT,SACdyhU,SAAU7V,KAAK5rT,UAoHjB,SAAS0hU,IACR5hU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAKkhB,WAAa,CACjB2gT,UAAU,EACVC,cAAc,EACd9yS,QAAQ,EACR+yS,eAAe,EACfC,MAAO,EACP1nC,SAAU,CAAC,EAAE,EAAE,EAAE,IAElBt6R,KAAKyM,KAAK,GAAK,IAiLhB,SAASw1T,IACRjiU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,CACjBzU,KAAM,EACN8zT,kBAAkB,EAClBnf,UAAW8e,EAAcS,SA+E3B,SAASuB,IACRliU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,CACjBw2S,WAAY,EACZ6I,kBAAkB,EAClBnf,UAAW8e,EAAcS,SA0H3B,SAASwB,IACRniU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,CACjBzU,KAAM,CAAC,IAAI,KACX8zT,kBAAkB,EAClBnf,UAAW8e,EAAcS,SAwD3B,SAASyB,IACRpiU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAK0hS,UAAU,MAAO,UACtB1hS,KAAKkhB,WAAa,CACjBmhT,oBAAoB,EACpBC,cAAc,GAGftiU,KAAKihU,UAAY,CAChBM,UAAW,EACXgB,gBAAiB,GAElBviU,KAAKwiU,WAAa,IAAIhtC,aAAa,GA8IpC,SAASitC,IACRziU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,QAAS,WACxB1hS,KAAK0hS,UAAU,QAAS,WACxB1hS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CACjBjS,KAAM,MACNozT,oBAAoB,GAGrBriU,KAAKihU,UAAY,CAChBM,UAAW,GAGZvhU,KAAK0iU,KAAO,IAAIltC,aAAa,GAC7Bx1R,KAAK4uK,KAAO,IAAI4mH,aAAa,GAE7Bx1R,KAAK2iU,gBAAkB,GA4GxB,SAASC,IACR5iU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CAAE+L,OAAQ,IAC5BjtB,KAAKihU,UAAY,CAChBM,UAAW,EACXC,WAAY,EACZC,SAAUzhU,KAAKkhB,WAAW+L,QA0E5B,SAAS41S,IACR7iU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAK0hS,UAAU,QAAS,WACxB1hS,KAAKkhB,WAAa,CAAEw3S,QAAS,GAAIoK,gBAAiB,GAClD9iU,KAAKihU,UAAY,CAChBM,UAAW,EACXC,WAAY,EACZuB,UAAW/iU,KAAKkhB,WAAWw3S,QAC3BsK,WAAY,EAAEhjU,KAAKkhB,WAAWw3S,SAE/B14T,KAAKgsS,MAAQ,EAmHd,SAASi3B,IACRjjU,KAAK+gS,SAAS,QAAS,SACvB/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,GAiDnB,SAASgiT,IACRljU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,MAAO,WACrB/gS,KAAK+gS,SAAS,YAAa,UAC3B/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,CAAE8sE,SAAS,EAAMm1O,UAAW,EAAG/hB,UAAW8e,EAAcS,QAASyC,QAAS,MAEvFF,EAAiBG,UACrBH,EAAiBG,QAAU,IAAI9zB,GAAG+zB,OAAQA,OAAOC,qBAAsBL,EAAiBlC,eAgH1F,SAASwC,IACRxjU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,QAAS,WACvB/gS,KAAK0hS,UAAU,GAAI,WACnB1hS,KAAKkhB,WAAa,CAAE8sE,SAAS,EAAMy1O,gBAAiB,EAAGC,YAAa,GAAIC,WAAY,EAAGC,UAAU,EAAO50S,QAAQ,EAAO60S,QAAQ,EAAOziB,UAAW8e,EAAcS,QAASJ,kBAAkB,EAAO6C,QAAS,MAErMI,EAAoBH,UACxBG,EAAoBH,QAAU,IAAI9zB,GAAG+zB,OAAQA,OAAOC,qBAAsBC,EAAoBxC,eAG/FhhU,KAAKihU,UAAY,CACfM,UAAW,EACXC,WAAY,EACZsC,cAAe,EACfC,cAAe,GACfC,MAAOlY,KAAK5rT,UA4Gf,SAAS+jU,IACRjkU,KAAK+gS,SAAS,UAAW,WAEzB/gS,KAAK0hS,UAAU,IAAK,WACpB1hS,KAAK0hS,UAAU,IAAK,WACpB1hS,KAAK0hS,UAAU,IAAK,WACpB1hS,KAAK0hS,UAAU,IAAK,WAGfuiC,EAAsBZ,UAC1BY,EAAsBZ,QAAU,IAAI9zB,GAAG+zB,OACtCA,OAAOC,qBACPU,EAAsBjD,eA+FzB,SAASkD,IACRlkU,KAAK+gS,SAAS,IAAK,WACnB/gS,KAAK+gS,SAAS,IAAK,WACnB/gS,KAAK+gS,SAAS,IAAK,WACnB/gS,KAAK+gS,SAAS,IAAK,WAEnB/gS,KAAK0hS,UAAU,UAAW,WAE1B1hS,KAAKkhB,WAAa,CACjBkgS,UAAW8e,EAAcS,QACzBvG,EAAG,EACH+J,EAAG,EACH/lC,EAAG,EACHD,EAAG,GAEJn+R,KAAK84K,OAASooJ,KAAKhhU,SACnBF,KAAKihU,UAAY,CAChBmD,WAAY,EACZC,WAAY,EACZ7C,WAAY,EACZ8C,WAAY,EACZvD,QAAS/gU,KAAK84K,QAgGhB,SAASyrJ,IACRvkU,KAAK0hS,UAAU,UAAW,WAE1B1hS,KAAKwkU,WAAatD,KAAKhhU,SACvBF,KAAKkhB,WAAa,CACjBuM,MAAOyzS,KAAKhhU,SACZkhT,UAAW8e,EAAcS,SA6F3B,SAAS8D,IACRzkU,KAAK+gS,SAAS,IAAK,SACnB/gS,KAAK+gS,SAAS,IAAK,SACnB/gS,KAAK0hS,UAAU,UAAW,WAE1B1hS,KAAKkhB,WAAa,CACjBuxS,MAAO,EACP/8N,MAAO,EACPyoM,EAAG,CAAC,EAAG,EAAG,GACVC,EAAG,CAAC,EAAG,EAAG,GACVsmC,aAAc,IAEVD,EAAsBpB,UAC1BoB,EAAsBpB,QAAU,IAAI9zB,GAAG+zB,OACtCA,OAAOC,qBACPkB,EAAsBzD,eAIxBhhU,KAAKihU,UAAY,CAChB0D,QAAS,EACTC,SAAUlL,KAAKx5T,SACf2kU,SAAUnL,KAAKx5T,UA2FjB,SAAS4kU,IACR9kU,KAAK+gS,SAAS,IAAK,WACnB/gS,KAAK+gS,SAAS,IAAK,WACnB/gS,KAAK+gS,SAAS,QAAS,WAEvB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CAAE+L,OAAQ,GAAK83S,mBAAmB,EAAMlB,QAAQ,EAAOziB,UAAW8e,EAAcS,SAClG3gU,KAAKihU,UAAY,CAChBqD,WAAY,EACZ9C,WAAY,EACZwD,aAAc,EACdC,MAAO/D,KAAKhhU,UA4Gd,SAASglU,IACRllU,KAAK+gS,SAAS,OAAQ,WAEtB/gS,KAAK0hS,UAAU,QAAS,WACxB1hS,KAAKkhB,WAAa,CACjB2iT,QAAQ,EACR3Q,WAAW,EACXjmS,OAAQ,EACRm0R,UAAW8e,EAAcS,SAGrBuE,EAAmB7B,UACvB6B,EAAmB7B,QAAU,IAAI9zB,GAAG+zB,OACnCA,OAAOC,qBACP2B,EAAmBlE,eAyFtB,SAASmE,IACRnlU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,WAAY,UAC1B/gS,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACjB4xH,SAAU,IACVj0H,MAAO,GACPumT,YAAY,EACZC,gBAAgB,GAEjBrlU,KAAKihU,UAAY,CAChBM,UAAW,EACX+D,WAAY,IACZC,QAAS,GACTC,gBAAiB,MA+HnB,SAASC,IACRzlU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACjBkgS,UAAW8e,EAAcS,QACzBkD,QAAQ,GAET7jU,KAAKihU,UAAY,CAChBM,UAAW,EACXiE,gBAAiB,KACjBE,OAAQ5Z,KAAK5rT,UAsFf,SAASylU,IACR3lU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,aAAc,UAC5B/gS,KAAK+gS,SAAS,YAAa,UAC3B/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACjBiiT,UAAW,EACXzL,WAAY,EACZkO,iBAAiB,EACjBlwO,MAAO,CAAC,EAAG,GACX0rN,UAAW8e,EAAcS,SAiH3B,SAASkF,IAER7lU,KAAKmjU,UAAY,GACjBnjU,KAAKg4T,YAAc,GACnBh4T,KAAK03T,WAAa,EAClB13T,KAAKkzT,UAAY,GACjBlzT,KAAK01F,MAAQ,EAEb11F,KAAK8lU,aAAe,KACpB9lU,KAAK+lU,YAAc,GAEnB/lU,KAAKgmU,UAAY,GACjBhmU,KAAKihU,UAAY,CAChBgF,YAAa,EACb1E,UAAW,EACX2E,eAAgB,EAChBC,YAAa,EACbC,aAActa,KAAK5rT,UAsNrB,SAASmmU,IACRrmU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAK0hS,UAAU,OAAQ,WACvB1hS,KAAKkhB,WAAa,CACjB8sE,SAAS,EACTm1O,UAAW,EACXnL,YAAa,IACbN,WAAY,GACZxE,UAAW,EACXx9N,MAAO,EACPqwO,YAAa,GACb3kB,UAAW8e,EAAcS,SAG1B3gU,KAAKsmU,GAAK,IAAIT,EAgJf,SAASU,IACRvmU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,WAAY,WAC3B1hS,KAAKkhB,WAAa,CAAEiiT,UAAW,EAAGna,OAAQ,GA2L3C,SAASwd,IACRxmU,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK0hS,UAAU,WAAY,WAC3B1hS,KAAKkhB,WAAa,CACjBulT,MAAO,IACPxiU,EAAG,IACHvE,EAAG,KACHgnU,QAAS,GACTC,IAAK,MAoIP,SAASC,IACR5mU,KAAK0hS,UAAU,SAAU,WACzB1hS,KAAKkhB,WAAa,CAAE2lT,aAAc,GAAI7I,WAAY,QAClDh+T,KAAKwkS,SAAW,QAChBxkS,KAAKkjS,QAAU,EAyLhB,SAAS4jC,IACR9mU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,IAAK,UACnB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjB8sE,SAAS,EACT/gE,OAAQ,EACRm0R,UAAW8e,EAAc6G,KAG1B/mU,KAAKihU,UAAY,CAAEM,UAAW,EAAGE,SAAU,GAgI5C,SAASuF,IACRhnU,KAAK+gS,SAAS,KAAM,IACpB/gS,KAAKkhB,WAAa,CAAEkgS,UAAW8e,EAAc6G,IAAKl8T,MAAO,EAAGC,OAAQ,EAAGm8T,SAAU,GACjFjnU,KAAK0hS,UAAU,MAAO,WA6CvB,SAASwlC,IACRlnU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CAAEkgS,UAAW8e,EAAc6G,IAAKI,gBAAgB,GAClEnnU,KAAKyuF,QAAU,IAAIzyB,WAAW,MAC9Bh8D,KAAKyuF,QAAQmpN,KAAK,KAClB53S,KAAKonU,eAAiB,KACtBpnU,KAAKihU,UAAY,CAAEM,UAAW,EAAG8F,QAAS,EAAG9B,QAAS,GACtDvlU,KAAKw5T,cAAe,EACpBx5T,KAAKsnU,QAAU,CACdC,IAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IACfnN,EAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IACb+J,EAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IACb/lC,EAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAEdp+R,KAAKwnU,aAAe,KACpBxnU,KAAK0nS,UAAU,SAAS,kBAAiB,EAAM,kBAC/C1nS,KAAK0nS,UAAU,QAAQ,UAAU,MAAM,CAAElqR,OAAO,CAAC,MAAM,IAAI,IAAI,OAC/Dxd,KAAKynU,aAAe,GACpBznU,KAAKyM,KAAO,CAAE,IAAK,KAqMpB,SAASi7T,IACR1nU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CAAEymT,WAAY,EAAGvmB,UAAW8e,EAAc6G,KAC5D/mU,KAAKihU,UAAY,CAAEM,UAAW,EAAGqG,aAAc,GAyEhD,SAASC,IACR7nU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,MAAO,kBACrB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjB8sE,SAAS,EACT0H,MAAO,EACPssO,MAAO,EACP8F,YAAa,EACbC,UAAW,EACX3mB,UAAW8e,EAAc6G,KAG1B/mU,KAAKihU,UAAY,CAChBM,UAAW,EACXyG,YAAa,EACbC,SAAU,EACVvG,QAAS,EACTwG,cAAe,GAkJjB,SAASC,IACRnoU,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjBrW,MAAO,IACPC,OAAQ,IACR+sT,KAAM,EACNG,YAAa,GACbL,QAAS,EACTjiO,MAAO,EACPt1D,OAAQ,CAAC,EAAG,GACZ24R,UAAW,EACX3X,UAAW8e,EAAcS,SAE1B3gU,KAAKktL,KAAO,EACZltL,KAAKooU,SAAW,KAChBpoU,KAAKihU,UAAY,CAChBoH,cAAe,GACfC,OAAQ,EACR3G,SAAU7V,KAAK5rT,SACfwhU,QAAS,EACT6G,WAAYzc,KAAK5rT,UAsKnB,SAASsoU,IACRxoU,KAAK+gS,SAAS,KACd/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjBgiB,KAAMslS,EAAsBC,aAC5B59T,MAAO,IACPC,OAAQ,IACRyS,OAAO,EACP6jS,UAAW8e,EAAcS,QACzB+H,iBAAiB,GAElB1oU,KAAKwuT,MAAQ,KACbxuT,KAAK2oU,cAAgB,KACrB3oU,KAAKmvT,cAmIN,SAASyZ,IACR5oU,KAAK+gS,SAAS,KAAM,WAEpB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CACjB2nT,UAAWnP,KAAKuB,WAAW,EAAG,EAAG,GACjC/H,UAAW,GACX4V,MAAO,GACP1nB,UAAW8e,EAAcS,SAuF3B,SAASoI,IACR/oU,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK+gS,SAAS,MAAO,UACrB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CAAE8nT,IAAK,GAr1KvB/nS,EAAOi/R,cAAgB,KAEN,oBAAN3wB,KAGdpZ,EAAa2V,iBAAb,QAA2C,OAY3C7qQ,EAAOi/R,cAAgBA,EAEvBA,EAAcjuS,MAAQ,UACtBiuS,EAAcj/T,KAAO,UACrBi/T,EAAc14B,aAAe,CAC5B5wR,KAAM,CAAEomK,OAAQ,WAChBhuJ,OAAQ,CAAEguJ,OAAQ,aAInBkjJ,EAAc+I,oBAAsB,KACpC/I,EAAcC,mBAAqB,IAGnCD,EAAcgJ,UAAY,EAC1BhJ,EAAciJ,aAAe,EAC7BjJ,EAAckJ,KAAO,EACrBlJ,EAAc6G,IAAM,EACpB7G,EAAcmJ,KAAO,EACrBnJ,EAAcoJ,MAAQ,EACtBpJ,EAAcS,QAAU,EAExBT,EAAcqJ,YAAc,CAC3B,UAAarJ,EAAcgJ,UAC3B,eAAgBhJ,EAAciJ,aAC9BxlP,KAAMu8O,EAAckJ,KACpBrjQ,IAAKm6P,EAAc6G,IACnB/gQ,KAAMk6P,EAAcmJ,KACpBG,MAAOtJ,EAAcoJ,MACrB54O,QAASwvO,EAAcS,SAIxBT,EAAcuJ,qBAAuB,WACpC,OAAOh6B,GAAGi6B,UAIXxJ,EAAcyJ,YAAc,SAAS/yT,EAAMvR,GAC1CA,EAAUA,GAAW,GACrB,IAAIyS,EAAMlB,EAUV,MATwB,WAApBkB,EAAIqxB,OAAO,EAAG,IACbokP,EAAUuD,QAEbh5Q,EAAMy1Q,EAAUuD,MAAQh5Q,EAAIqxB,OAAO,IAIrB+2R,EAAcuJ,uBACT7yT,GAAQ24R,GAAGq6B,QAAQC,QAAQ/xT,EAAKzS,IAItD66T,EAAc4J,WAAa,SAASlzT,GACnC,IAAIpH,EAAYxP,KAAKypU,uBAErB,IAAKj6T,EACJ,KAAM,uDAGP,IAAIu6T,EAAMv6T,EAAUoH,GACpB,OAAKmzT,GAAOnzT,GAAmB,KAAXA,EAAK,GACjB5W,KAAK2pU,YAAY/yT,GAGlBmzT,GAIR7J,EAAc8J,iBAAmB,SAAS73K,EAAQv0J,EAAQqR,GACzD,IAAKkjJ,EACJ,KAAM,6DAGP,IAAI83K,EAAW,KAEf,OAAQh7T,GACP,KAAKixT,EAAc6G,IAClBkD,EAAWx6B,GAAGy6B,cACd,MACD,KAAKhK,EAAcmJ,KAClBY,EAAWx6B,GAAG06B,sBACd,MACD,KAAKjK,EAAcoJ,MAClB,OAAOn3K,EAER,KAAK+tK,EAAckJ,KACnB,QACCa,EAAW93K,EAASA,EAAOhtJ,KAAOsqS,GAAGy6B,cAkBvC,OAbEtsU,GACDA,EAAOiN,OAASsnJ,EAAOtnJ,OACvBjN,EAAOkN,QAAUqnJ,EAAOrnJ,QACxBlN,EAAOuH,MAAQ8kU,GACfrsU,EAAOgkB,QAAUuwI,EAAOvwI,SAExBhkB,EAAS,IAAI2xS,GAAGq6B,QAAQz3K,EAAOtnJ,MAAOsnJ,EAAOrnJ,OAAQ,CACpD3F,KAAM8kU,EACNroT,OAAQuwI,EAAOvwI,OACfoN,OAAQygR,GAAG26B,UAINxsU,GAGRsiU,EAAcmK,eAAiB,SAASjpB,EAAWkpB,GAClD,IAAInlU,EAAOmlU,EAAcA,EAAYnlU,KAAOsqS,GAAGy6B,cAC/C,OAAQ9oB,GACP,KAAK8e,EAAcmJ,KAClBlkU,EAAOsqS,GAAG06B,sBACV,MACD,KAAKjK,EAAc6G,IAClB5hU,EAAOsqS,GAAGy6B,cAIZ,OAAO/kU,GAGR+6T,EAAcqK,gBAAkB,WAC/B,OAAIvqU,KAAKwqU,eACDxqU,KAAKwqU,eAEExqU,KAAKwqU,eAAiBj7B,GAAGq6B,QAAQa,WAC/C,EACA,EACA,CAAC,IAAK,IAAK,IAAK,KAChB,CAAE7oT,OAAQ6tR,GAAG3oR,KAAM4jT,KAAMj7B,GAAGk7B,OAAQ37S,OAAQygR,GAAGm7B,WAKjD1K,EAAc2K,gBAAkB,WAC/B,GAAI7qU,KAAK8qU,eACR,OAAO9qU,KAAK8qU,eAIb,IADA,IAAIC,EAAQ,IAAI/uQ,WAAW,SAClBl+D,EAAI,EAAGA,EAAI,UAAiBA,EACpCitU,EAAMjtU,GAAqB,IAAhB4Z,KAAK6uD,SAGjB,IAAI68P,EAAU7zB,GAAGq6B,QAAQa,WAAW,IAAK,IAAKM,EAAO,CACpDnpT,OAAQ6tR,GAAG3oR,KACX4jT,KAAMj7B,GAAGk7B,OACT37S,OAAQygR,GAAGm7B,UAGZ,OADA5qU,KAAK8qU,eAAiB1H,EACfA,GAGRlD,EAAcxhU,UAAUg2S,WAAa,SAASv1S,EAAMk/O,EAAU1wK,GAC7D,GAAKxuE,EAGE,CACN,IAAIikU,EAAU,KACd,GAAmB,iBAARjkU,EACVikU,EAAU7zB,GAAGq6B,QAAQC,QAAQ1qU,QACvB,IAA+C,GAA3Ck/O,EAASt7M,cAAcniC,QAAQ,QACzCwiU,EAAU7zB,GAAGq6B,QAAQoB,gBAAgB7rU,OAC/B,CACN,IAAIw6O,EAAO,IAAIC,KAAK,CAACjsK,IACjB71D,EAAM+hO,IAAIC,gBAAgBH,GAC9BypF,EAAU7zB,GAAGq6B,QAAQC,QAAQ/xT,GAG9B9X,KAAKirU,cAAgB7H,EACrBpjU,KAAKkhB,WAAWtK,KAAOynO,OAfvBr+O,KAAKirU,cAAgB,KACrBjrU,KAAKkhB,WAAWtK,KAAO,IAkBzBspT,EAAcxhU,UAAU2pT,oBAAsB,SAAS/rB,GACtD,IAAI9e,EAAOx9Q,KACX,GAAKA,KAAKirU,cAGV,MAAO,CACN,CACC/rR,QAAS,QACTz3C,SAAU,WACT+1Q,EAAKytD,cAAgB,KACrBztD,EAAKt8P,WAAWtK,KAAO,OAM3BspT,EAAcxhU,UAAUg0R,UAAY,WACnC,IAAIq3C,EAAM,KAaV,GAZI/pU,KAAK4lS,kBAAkB,KAC1BmkC,EAAM/pU,KAAK2yR,aAAa,KAGpBo3C,GAAO/pU,KAAKirU,gBAChBlB,EAAM/pU,KAAKirU,gBAGPlB,GAAO/pU,KAAKkhB,WAAWtK,OAC3BmzT,EAAM7J,EAAc4J,WAAW9pU,KAAKkhB,WAAWtK,QAG3CmzT,EAGJ,OAFA/pU,KAAK4yR,cAAe,EAAG,WACvB5yR,KAAK4yR,cAAe,EAAG,IAIxB5yR,KAAKkrU,UAAYnB,GAEc,IAA3B/pU,KAAKkhB,WAAW8N,OACnB+6S,EAAIoB,aAAa17B,GAAG27B,mBAAoB37B,GAAGm7B,SAE3Cb,EAAIoB,aAAa17B,GAAG27B,mBAAoB37B,GAAG26B,QAG5CpqU,KAAK4yR,cAAe,EAAGm3C,GACvB/pU,KAAK4yR,cAAe,EAAGm3C,EAAIsB,UAAYtB,EAAI1rF,UAE3C,IAAK,IAAIvgP,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,OAAQD,IAAK,CAC7C,IAAIk6B,EAASh4B,KAAKo8R,QAAQt+R,GAC1B,GAAKk6B,EAAL,CAGA,IAAI50B,EAAI,KACW,SAAf40B,EAAOphB,KACVxT,EAAI2mU,EAAIl/T,MACiB,UAAfmtB,EAAOphB,KACjBxT,EAAI2mU,EAAIj/T,OACiB,UAAfktB,EAAOphB,OACjBxT,EAAI2mU,EAAIl/T,MAAQk/T,EAAIj/T,QAErB9K,KAAK4yR,cAAc90R,EAAGsF,MAIxB88T,EAAcxhU,UAAU4sU,kBAAoB,SAC3ClqC,EACAmqC,GAEIvrU,KAAKkhB,WAAWtK,MAAQwqR,IAC3BphS,KAAKkhB,WAAWtK,KAAO20T,IAIzBrL,EAAcxhU,UAAU46R,iBAAmB,SAASrgJ,GACnD,KAAIj5I,KAAK0iM,MAAM+vE,WAAazyQ,KAAKyM,KAAK,IAAM,IAI5C,GAAIzM,KAAKirU,eAAiBhyL,EAAIy2J,MAC7Bz2J,EAAI69J,UACH92S,KAAKirU,cACL,EACA,EACAjrU,KAAKyM,KAAK,GACVzM,KAAKyM,KAAK,QANZ,CAaA,GAAIzM,KAAKwrU,mBAAqBxrU,KAAKkrU,UAClC,GAAIjyL,EAAIy2J,MACP1vS,KAAKyrU,QAAUzrU,KAAKkrU,cACd,CACN,IAAIQ,EAAaxL,EAAcyL,6BAC9B3rU,KAAKkrU,WAEN,IAAKQ,EACJ,OAGD1rU,KAAKwrU,kBAAoBxrU,KAAKkrU,UAC9BlrU,KAAKyrU,QAAUG,YAAYF,GAIxB1rU,KAAKyrU,UAKVxyL,EAAIr9D,OACCq9D,EAAIy2J,QAERz2J,EAAIqyJ,UAAU,EAAGtrS,KAAKyM,KAAK,IAC3BwsI,EAAIvjD,MAAM,GAAI,IAEfujD,EAAI69J,UAAU92S,KAAKyrU,QAAS,EAAG,EAAGzrU,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IAC1DwsI,EAAIu9J,aAIL0pB,EAAcyL,6BAA+B,SAAS5B,GACrD,IAAKA,EACJ,OAAO,KAGR,IAAIt9T,EAAOyzT,EAAcC,mBACrB0L,EAAW9B,EAEf,GAAIA,EAAInoT,QAAU6tR,GAAGq8B,gBACpB,OAAO,MAIJ/B,EAAIl/T,MAAQ4B,GAAQs9T,EAAIj/T,OAAS2B,KACpCo/T,EAAW7rU,KAAK+rU,kBACX/rU,KAAK+rU,oBACTF,EAAW,IAAIt8B,GAAGq6B,QAAQn9T,EAAMA,EAAM,CACrCu/T,UAAWv8B,GAAGm7B,UAEf5qU,KAAK+rU,kBAAoBF,GAI1B9B,EAAIkC,OAAOJ,GACX9B,EAAM8B,GAIP,IAAIH,EAAa1rU,KAAKksU,gBAStB,OARKR,IACJA,EAAapN,aAAa7xT,EAAMA,GAChCzM,KAAKksU,gBAAkBR,GAGpBG,GACHA,EAASM,SAAST,GAEZA,GAGRxL,EAAcxhU,UAAU0tU,aAAe,SAAS58R,GAG/C,OAFGxvC,KAAKkhB,WAAWtK,OAClB44B,EAAIxvC,KAAKkhB,WAAWtK,MAAQ24R,GAAGq6B,SACzBp6R,GAGR0wR,EAAcxhU,UAAU4kT,YAAc,WACrC,MAAO,CAAC,CAAC,KAAM,aAGhB4c,EAAcxhU,UAAUglT,aAAe,WACtC,MAAO,CACN,CAAC,QAAS,UACV,CAAC,SAAU,UACX,CAAC,SAAU,YAKbwc,EAAcmM,YAAc,SAAUnpS,EAAM0G,GAE3C,OAAO1G,EAAKpkC,QAAQ,0BAA0B,SAASsE,GAEtD,OADAA,EAAIA,EAAEtE,QAAS,UAAW,IACnB8qC,EAAQxmC,IAAM,OAIvBmqR,EAAUkE,iBAAiB,kBAAmByuC,GAY9CE,EAAqBnuS,MAAQ,UAC7BmuS,EAAqBn/T,KAAO,qCAC5Bm/T,EAAqBkM,eAAgB,EAErClM,EAAqB1hU,UAAU46R,iBAAmB,SAASrgJ,GAC1D,IAAIj5I,KAAK0iM,MAAM+vE,YAIVx5H,EAAIy2J,OAAU0wB,EAAqBkM,eAAxC,CAIA,IAAIvC,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,EAAL,CAIA,IAAI2B,EAAa,KAGhBA,GADI3B,EAAItxS,QAAUwgH,EAAIy2J,MACTq6B,EAEA7J,EAAcyL,6BAA6B5B,GAIzD9wL,EAAIr9D,OACA57E,KAAKkhB,WAAWm/S,QACnBpnL,EAAIqyJ,UAAU,EAAGtrS,KAAKyM,KAAK,IAC3BwsI,EAAIvjD,MAAM,GAAI,IAEfujD,EAAI69J,UAAU40B,EAAY,EAAG,EAAG1rU,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IACxDwsI,EAAIu9J,aAGLjpB,EAAUkE,iBAAiB,kBAAmB2uC,GAW9CE,EAAkBruS,MAAQ,OAC1BquS,EAAkBr/T,KAAO,mCAEzBq/T,EAAkB5hU,UAAU6tU,kBAAoB,WAE/C,OAAOvsU,KAAKooU,UAGb9H,EAAkB5hU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,EAAL,CAWA,GAPI/pU,KAAKkhB,WAAWq/S,mBACnBwJ,EAAI3uQ,KAAK,GACT2uQ,EAAIoB,aAAc17B,GAAG+8B,mBAAoB/8B,GAAGg9B,sBAC5Ch9B,GAAGi9B,eAAe3C,EAAI4C,cACtB5C,EAAI6C,OAAO,IAGR5sU,KAAKkhB,WAAWtK,KAEnB,GAAIspT,EAAc2M,aACjB3M,EAAc2M,aAAa7sU,KAAKkhB,WAAWtK,KAAMmzT,QAEjC7J,EAAcuJ,uBACpBzpU,KAAKkhB,WAAWtK,MAAQmzT,EAIpC/pU,KAAKooU,SAAW2B,EAChB/pU,KAAK4yR,cAAc,EAAGm3C,GACtB/pU,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWtK,QAGvC22Q,EAAUkE,iBAAiB,eAAgB6uC,GAsB3CE,EAAuBh5B,aAAe,CACrCk5B,OAAQ,CAAE1jJ,OAAQ,QAClByjJ,UAAW,CAAEzjJ,OAAQ,QACrBokI,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD/I,EAAuBvuS,MAAQ,YAC/BuuS,EAAuBv/T,KAAO,2BAE9Bu/T,EAAuBsM,QAAU,GAEjCtM,EAAuB9hU,UAAU2pT,oBAAsB,SACtD/rB,GAEA,IAAI9e,EAAOx9Q,KAEX,MAAO,CACN,CACCk/C,QAHSs+N,EAAKt8P,WAAWlK,KAAwB,eAAjB,eAIhCvP,SAAU,WACT+1Q,EAAKt8P,WAAWlK,MAAQwmQ,EAAKt8P,WAAWlK,SAM5CwpT,EAAuB9hU,UAAUwlS,kBAAoB,WAEpDlkS,KAAK4gU,WAAY,GAGlBJ,EAAuB9hU,UAAU46R,iBAAmB,SAASrgJ,GAE3Dj5I,KAAK0iM,MAAM+vE,WACXzyQ,KAAKyM,KAAK,IAAM,KACfzM,KAAKkhB,WAAWlK,MAKbhX,KAAK+sU,MAKN/sU,KAAK+sU,KAAKt9B,IAAMx2J,IAKpBA,EAAIr9D,OACJq9D,EAAI69J,UAAU92S,KAAK+sU,KAAM,EAAG,EAAG/sU,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IACvDwsI,EAAIu9J,YAGLgqB,EAAuB9hU,UAAUg0R,UAAY,WAC5C,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAK3yR,KAAK4lS,kBAAkB,GAI5B,GAAI5lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,aAAhD,CAKA,IAAI6D,EAAOhtU,KAAK2yR,aAAa,GAE7B,GAAK3yR,KAAKkhB,WAAWw/S,QAAW1gU,KAAKkhB,WAAWu/S,UAAhD,CAIA,IAAI51T,EAAQ,IACRC,EAAS,IACTi/T,GACHl/T,EAAQk/T,EAAIl/T,MACZC,EAASi/T,EAAIj/T,QACHkiU,IACVniU,EAAQmiU,EAAKniU,MACbC,EAASkiU,EAAKliU,QAGXkiU,IACHA,EAAOz9B,GAAGq6B,QAAQW,mBAEnB,IAAIplU,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,UAAW2oB,GAE/DA,GAAQ/pU,KAAK+sU,KAGjB/sU,KAAK+sU,KAAO7M,EAAc8J,iBAAkBD,GAAO/pU,KAAK+sU,KAAM/sU,KAAK+sU,KAAM/sU,KAAKkhB,WAAWkgS,WAFzFphT,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CAAE3F,KAAMA,EAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,SAKrF,IAAI1J,EAAS,GACT1gU,KAAKkhB,WAAWw/S,SACnBA,EAAS,QAAU1gU,KAAKkhB,WAAWw/S,QACS,GAAxC1gU,KAAKkhB,WAAWw/S,OAAO9/T,QAAQ,OAElC8/T,EAAS1gU,KAAKkhB,WAAWw/S,SAI3B,IAAID,EAAY,GACZzgU,KAAKkhB,WAAWu/S,YACnBA,EAAY,YAAczgU,KAAKkhB,WAAWu/S,WACK,GAA3CzgU,KAAKkhB,WAAWu/S,UAAU7/T,QAAQ,OAErC6/T,EAAYzgU,KAAKkhB,WAAWu/S,YAI9B,IAAIwM,EAASjtU,KAAKqjU,QAElB,IAAMrjU,KAAK4gU,aAAeqM,GAAUjtU,KAAKktU,cAAgBxM,EAAS,IAAMD,GAAa,CAEpF,IAAI0M,EAAmBjN,EAAcmM,YAAa7L,EAAuBQ,aAAc,CAAEoM,QAAQ1M,EAAQ2M,WAAW5M,IAEpH,IACCwM,EAAS,IAAI19B,GAAG+zB,OAAQA,OAAOC,qBAAsB4J,GACrDntU,KAAKwkS,SAAW,UACf,MAAO7oR,GAKR,OAHA4zR,GAAG+zB,OAAOgK,mBAAmB3xT,EAAI2nT,OAAOC,qBAAsB4J,GAC9DntU,KAAKwkS,SAAW,eAChBxkS,KAAK4gU,WAAY,GAGlB5gU,KAAKqjU,QAAU4J,EACfjtU,KAAKktU,aAAexM,EAAS,IAAMD,EAGpC,GAAIzgU,KAAKqjU,QAAT,CAGA,IAAIrhU,EAAQhC,KAAK2yR,aAAa,GACjB,MAAT3wR,EACHhC,KAAKkhB,WAAWlf,MAAQA,EAExBA,EAAQoJ,WAAWpL,KAAKkhB,WAAWlf,OAGpC,IAAIouT,EAAOpwT,KAAKy3E,MAAMvvE,UAEtBlI,KAAK+sU,KAAKQ,QAAO,WAChB99B,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGg+B,WACdh+B,GAAGzoE,QAAQyoE,GAAGi+B,OACV3D,GACHA,EAAI3uQ,KAAK,GAEN4xQ,GACHA,EAAK5xQ,KAAK,GAEX,IAAIuyQ,EAAOC,KAAKC,gBAChBZ,EACEa,SAAS,CACTvM,UAAW,EACXC,WAAY,EACZx/T,MAAOA,EACPo/T,QAAS,CAACv2T,EAAOC,EAAO,EAAED,EAAM,EAAEC,GAClCslT,KAAMA,IAENpgB,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,aAvG1B/sU,KAAK4yR,cAAc,EAAGm3C,IA0GxBvJ,EAAuBQ,aACtB,2jBAuBDR,EAAuBuN,eAAiB,SAAWn3T,EAAMssB,GAExDs9R,EAAuBsM,QAAQl2T,GAAQssB,GAGxCs9R,EAAuBuN,eAAe,GAAG,IACzCvN,EAAuBuN,eAAe,SAAS,SAC/CvN,EAAuBuN,eAAe,MAAM,0BAC5CvN,EAAuBuN,eAAe,YAAY,4BAClDvN,EAAuBuN,eAAe,OAAO,0CAC7CvN,EAAuBuN,eAAe,SAAS,qBAC/CvN,EAAuBuN,eAAe,WAAW,0BACjDvN,EAAuBuN,eAAe,SAAS,4BAC/CvN,EAAuBuN,eAAe,aAAa,+BACnDvN,EAAuBuN,eAAe,MAAM,8BAC5CvN,EAAuBuN,eAAe,MAAM,8BAC5CvN,EAAuBuN,eAAe,WAAW,kEACjDvN,EAAuBuN,eAAe,YAAY,mDAClDvN,EAAuBuN,eAAe,aAAa,gEACnDvN,EAAuBuN,eAAe,YAAY,wxBAclDvN,EAAuBuN,eAAe,YAAY,8HAGlDvN,EAAuB9hU,UAAUsvU,UAAY,SAAS5pC,GAErD,IAAI5mB,EAAOx9Q,KACXokS,EAAQ6pC,SAAS,UAAU,GAAG,CAAEzwT,OAAQpf,OAAOsY,KAAK8pT,EAAuBsM,SAAUrlU,SAAU,SAASrE,GACvG,IAAI8/B,EAAOs9R,EAAuBsM,QAAQ1pU,GACtC8/B,IAEJs6O,EAAKmnB,YAAY,YAAYzhQ,GAC7Bs6O,EAAKvrP,MAAQ7uB,EACbghS,EAAQ1pN,eAIV6yM,EAAUkE,iBAAiB,oBAAqB+uC,GAmBhDK,EAAoB5uS,MAAQ,SAC5B4uS,EAAoB5/T,KAAO,iBAC3B4/T,EAAoBr5B,aAAe,CAClCtkQ,KAAM,CAAE/9B,KAAM,OAAQ2lD,KAAM,QAC5Bs2P,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD1I,EAAoBniU,UAAUwlS,kBAAoB,SACjDttR,EACA5U,GAEA,GAAY,QAAR4U,EAAJ,CAIA,IAAIq2T,EAASjtU,KAAKkuU,YAClB,GAAKjB,EAAL,CAKA,IAAIa,EAAWb,EAAOkB,YAGtB,GAAInuU,KAAKm8R,OAER,IADA,IAAIiyC,EAAU,GACLtwU,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,EACxCi9B,EAAO/6B,KAAKslS,aAAaxnS,OAKzBgwU,EAAS/yS,EAAKnkB,OAAUw3T,EAAQrzS,EAAKnkB,OAIzC5W,KAAKwhS,YAAY1jS,GACjBA,KAJCswU,EAAQrzS,EAAKnkB,OAAQ,GASxB,IAAK,IAAI9Y,KAAKgwU,EAAU,CACvB,IAAI/yS,EACJ,GAAiB,QADbA,EAAOkyS,EAAOkB,YAAYrwU,IACrBuwU,KAGA,QAALvwU,EAAJ,CAKA,IAAIqH,EAAO,SACX,GAAInF,KAAKqjU,QAAQiL,SAASxwU,GACzBqH,EAAO,eAEP,OAAQ41B,EAAKtuB,MACZ,KAAK,EACJtH,EAAO,SACP,MACD,KAAK,EACJA,EAAO,OACP,MACD,KAAK,EACJA,EAAO,OACP,MACD,KAAK,EACJA,EAAO,OACP,MACD,KAAK,EACJA,EAAO,OACP,MACD,KAAK,GACJA,EAAO,OACP,MACD,QACC,SAIH,IAAIq6R,EAAOx/R,KAAKolS,cAActnS,GAC9B,IAAa,GAAT0hS,EAAJ,CAKA,IAAIkG,EAAa1lS,KAAKslS,aAAa9F,GACnC,GAAKkG,EAEE,CACN,GAAIA,EAAWvgS,MAAQA,EACtB,SAEDnF,KAAKwhS,YAAYhC,EAAMr6R,GACvBnF,KAAK+gS,SAASjjS,EAAGqH,QANjBnF,KAAK+gS,SAASjjS,EAAGqH,QANjBnF,KAAK+gS,SAASjjS,EAAGqH,QAiBpB07T,EAAoBniU,UAAUwvU,UAAY,WAEzC,OAAIluU,KAAKqjU,SAAWrjU,KAAKktU,cAAgBltU,KAAKkhB,WAAWgiB,KACjDljC,KAAKqjU,SAGbrjU,KAAKktU,aAAeltU,KAAKkhB,WAAWgiB,KACpCljC,KAAKqjU,QAAU,IAAI9zB,GAAG+zB,OAAQA,OAAOC,qBAAsBvjU,KAAKkhB,WAAWgiB,MACtEljC,KAAKqjU,SAITrjU,KAAKwkS,SAAW,QAEVxkS,KAAKqjU,UALXrjU,KAAKwkS,SAAW,MACT,QAOTq8B,EAAoBniU,UAAUg0R,UAAY,WACzC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIqnC,EAASjtU,KAAKkuU,YAClB,GAAKjB,EAAL,CAIA,IAAIsB,EAAW,EACXC,EAAS,KAGb,GAAGxuU,KAAKm8R,OACR,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CAC5C,IAAIi9B,EAAO/6B,KAAKslS,aAAaxnS,GACzBqB,EAAOa,KAAK2yR,aAAa70R,GACjB,MAARqB,IAIAA,EAAKc,cAAgBsvS,GAAGq6B,UAC3BzqU,EAAKi8D,KAAKmzQ,GACLC,IACJA,EAASrvU,GAEVA,EAAOovU,EACPA,KAEDtB,EAAOwB,WAAW1zS,EAAKnkB,KAAMzX,IAG9B,IAAI2uU,EAAW9tU,KAAKihU,UAChB97T,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,UAAWotB,GAGhEx+N,EAA4B,EAAxBhwG,KAAKkhB,WAAWrW,MACpBqsD,EAA6B,EAAzBl3D,KAAKkhB,WAAWpW,OACf,GAALklG,IACHA,EAAIw+N,EAASA,EAAO3jU,MAAQ4kS,GAAGrZ,OAAOvrR,OAE9B,GAALqsD,IACHA,EAAIs3Q,EAASA,EAAO1jU,OAAS2kS,GAAGrZ,OAAOtrR,QAExCgjU,EAAS1M,QAAQ,GAAKpxN,EACtB89N,EAAS1M,QAAQ,GAAKlqQ,EACtB42Q,EAAS1M,QAAQ,GAAK,EAAEpxN,EACxB89N,EAAS1M,QAAQ,GAAK,EAAElqQ,EACxB42Q,EAAS1d,KAAOpwT,KAAKy3E,MAAMvvE,UAC3B4lU,EAAShN,QAAU9gU,KAAKkhB,WAAW4/S,QACnCgN,EAAS/M,QAAQv5R,IAAKxnC,KAAKkhB,WAAW6/S,SAEhC/gU,KAAK+sU,MAAQ/sU,KAAK+sU,KAAK5nU,MAAQA,GAASnF,KAAK+sU,KAAKliU,OAASmlG,GAAKhwG,KAAK+sU,KAAKjiU,QAAUosD,IACzFl3D,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQ55N,EAAG94C,EAAG,CAAG/xD,KAAMA,EAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,UAEnEpqU,KAAK+sU,KACXQ,QAAO,WACVN,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,SAG5BlM,EAAoBG,aACrB,iUAgBCzzC,EAAUkE,iBAAiB,iBAAkBovC,GAgB7CQ,EAAyB75B,aAAe,CACvC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDlI,EAAyBpvS,MAAQ,eACjCovS,EAAyBpgU,KAAO,mCAEhCogU,EAAyB3iU,UAAUg0R,UAAY,WAC9C,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAK3yR,KAAK4lS,kBAAkB,IAAOmkC,EAInC,GAAI/pU,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,aAAhD,CAKA,IAAIt+T,EAAQk/T,EAAIl/T,MACZC,EAASi/T,EAAIj/T,OACb3F,EAAQnF,KAAKohT,YAAc8e,EAAc6G,IAAMt3B,GAAGy6B,cAAgBz6B,GAAG06B,sBACrEnqU,KAAKohT,YAAc8e,EAAcS,UACpCx7T,EAAO4kU,EAAI5kU,MAIVnF,KAAK+sU,MACN/sU,KAAK+sU,KAAKliU,OAASA,GACnB7K,KAAK+sU,KAAKjiU,QAAUA,GACpB9K,KAAK+sU,KAAK5nU,MAAQA,IAElBnF,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CACzC3F,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAIb,IAAI6C,EAASjtU,KAAKqjU,QAEb4J,IACJA,EAAS,IAAI19B,GAAG+zB,OACf/zB,GAAG+zB,OAAOC,qBACVlC,EAAyBL,eAI3B,IAAItrO,EAAQ11F,KAAK2yR,aAAa,GAC1Bj9L,GACH11F,KAAKkhB,WAAWw0E,MAAM,GAAKA,EAAM,GACjC11F,KAAKkhB,WAAWw0E,MAAM,GAAKA,EAAM,IAEjCA,EAAQ11F,KAAKkhB,WAAWw0E,MAGzB,IAAIt1D,EAASpgC,KAAK2yR,aAAa,GAC3BvyP,GACHpgC,KAAKkhB,WAAWkf,OAAO,GAAKA,EAAO,GACnCpgC,KAAKkhB,WAAWkf,OAAO,GAAKA,EAAO,IAEnCA,EAASpgC,KAAKkhB,WAAWkf,OAG1BpgC,KAAK+sU,KAAKQ,QAAO,WAChB99B,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGg+B,WACdh+B,GAAGzoE,QAAQyoE,GAAGi+B,OACd3D,EAAI3uQ,KAAK,GACT,IAAIuyQ,EAAOC,KAAKC,gBAChBZ,EACEa,SAAS,CACTvM,UAAW,EACXG,QAAShsO,EACTisO,SAAUvhS,IAEV4vQ,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,WAhE1B/sU,KAAK4yR,cAAc,EAAGm3C,IAmExB1I,EAAyBL,aACxB,2UAeDzzC,EAAUkE,iBACT,sBACA4vC,GA0BDC,EAAkB95B,aAAe,CAChC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDjI,EAAkBrvS,MAAQ,OAC1BqvS,EAAkBrgU,KAAO,yBAEzBqgU,EAAkB5iU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAK3yR,KAAK4lS,kBAAkB,GAI5B,GAAI5lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,aAAhD,CAKA,IAAI6D,EAAOhtU,KAAK2yR,aAAa,GAEzB9nR,EAAQ,IACRC,EAAS,IACF2kS,GAAGy6B,cACVH,GACHl/T,EAAQk/T,EAAIl/T,MACZC,EAASi/T,EAAIj/T,OACNi/T,EAAI5kU,MACD6nU,IACVniU,EAAQmiU,EAAKniU,MACbC,EAASkiU,EAAKliU,OACPkiU,EAAK7nU,MAGR4kU,GAAQ/pU,KAAK+sU,KAUjB/sU,KAAK+sU,KAAO7M,EAAc8J,iBACzBD,GAAO/pU,KAAK+sU,KACZ/sU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAZjBphT,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CACzC3F,KACCnF,KAAKohT,YAAc8e,EAAc6G,IAC9Bt3B,GAAGy6B,cACHz6B,GAAG06B,sBACPvoT,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,SAUb,IAAI6C,EAASjtU,KAAKqjU,QAEb4J,IACJA,EAAS,IAAI19B,GAAG+zB,OACf/zB,GAAG+zB,OAAOC,qBACVjC,EAAkBN,eAIpB,IAAI/zS,EAASjtB,KAAK2yR,aAAa,GACjB,MAAV1lQ,EACHjtB,KAAKkhB,WAAW+L,OAASA,EAEzBA,EAAS7hB,WAAWpL,KAAKkhB,WAAW+L,QAErC,IAAI6gT,EAAW9tU,KAAKihU,UACpB6M,EAASrM,SAAWx0S,EACpB6gT,EAASpM,QAAQl6R,IAAKxnC,KAAKkhB,WAAWw0E,OACtCo4O,EAASnM,SAASn6R,IAAKxnC,KAAKkhB,WAAWkf,QAEvCpgC,KAAK+sU,KAAKQ,QAAO,WAChB99B,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGg+B,WACdh+B,GAAGzoE,QAAQyoE,GAAGi+B,OACV3D,GACHA,EAAI3uQ,KAAK,GAEN4xQ,GACHA,EAAK5xQ,KAAK,GAEX,IAAIuyQ,EAAOC,KAAKC,gBAChBZ,EACEa,SAAUA,GACV99B,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,WAxE1B/sU,KAAK4yR,cAAc,EAAGm3C,IA2ExBzI,EAAkBN,aACjB,6ZAgBDzzC,EAAUkE,iBAAiB,eAAgB6vC,GAkB3CM,EAAwB3vS,MAAQ,cAChC2vS,EAAwB3gU,KAAO,sBAE/B2gU,EAAwB8M,eAAiB,IAAIl5C,aAAa,GAE1DosC,EAAwBljU,UAAU46R,iBAAmB,SAAUrgJ,GAE9D,KAAKj5I,KAAK0iM,MAAM+vE,WAAazyQ,KAAKyM,KAAK,IAAM,IAA7C,CAGA,IAAIs9T,EAAM/pU,KAAK2yR,aAAa,GACvBo3C,GAIL9wL,EAAI69J,UAAW79J,GAAOw2J,GAAKs6B,EAAMt6B,GAAGrZ,OAAQ,GAAG,GAAIp2R,KAAKyM,KAAK,GAAI,GAAIzM,KAAKyM,KAAK,GAAI,MAGpFm1T,EAAwBljU,UAAUg0R,UAAY,WAC7C,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,EAAL,CAII/pU,KAAKkhB,WAAW6gT,cACnBtyB,GAAGzoE,QAAQyoE,GAAGi+B,QAEdj+B,GAAG1oE,OAAO0oE,GAAGi+B,OACT1tU,KAAKkhB,WAAW2gT,SACnBpyB,GAAGk/B,UAAUl/B,GAAGm/B,UAAWn/B,GAAGo/B,KAE9Bp/B,GAAGk/B,UAAUl/B,GAAGm/B,UAAWn/B,GAAGq/B,sBAIhCr/B,GAAGzoE,QAAQyoE,GAAG+9B,YACd,IAAIxL,EAAQhiU,KAAKkhB,WAAW8gT,OAAS,EACjChiU,KAAKqlS,iBAAiB,KACzB28B,EAAQhiU,KAAK2yR,aAAa,IAG3Bo3C,EAAIoB,aACH17B,GAAG27B,mBACHprU,KAAKkhB,WAAW8N,OAASygR,GAAG26B,OAAS36B,GAAGm7B,SAGzC,IAAImE,EAAenN,EAAwB8M,eAC3CK,EAAavnS,IAAKioQ,GAAGu/B,eACrB,IAAIC,EAAWjvU,KAAKkhB,WAAWo5Q,SAC/BmV,GAAGnV,SAAUy0C,EAAa,GAAKA,EAAa,GAAKE,EAAS,GAAIF,EAAa,GAAKA,EAAa,GAAKE,EAAS,GAAIF,EAAa,GAAKE,EAAS,GAAIF,EAAa,GAAKE,EAAS,IAC1Jx/B,GAAGy/B,cAElB,GAAIlvU,KAAKkhB,WAAW4gT,aAAc,CAC5BF,EAAwByB,UAC5BzB,EAAwByB,QAAU,IAAI9zB,GAAG+zB,OACxC/zB,GAAG+zB,OAAOC,qBACV3B,EAAwBuN,kBAI1B,IAAIxB,EAAOC,KAAKC,gBAChB9D,EAAI3uQ,KAAK,GACTwmQ,EAAwByB,QACtByK,SAAS,CACTvM,UAAW,EACX6N,cAAe,CAACrF,EAAIl/T,MAAOk/T,EAAIj/T,QAC/Bm9T,SAAU,EAAIjG,EACdqN,UAAW,CAAC,EAAItF,EAAIl/T,MAAO,EAAIk/T,EAAIj/T,UAEnCklS,KAAK29B,QAEM,GAAT3L,GACEJ,EAAwB0N,gBAC5B1N,EAAwB0N,cAAgB,IAAI//B,GAAG+zB,OAC9CA,OAAOC,qBACP3B,EAAwB2N,qBAG1BxF,EAAIyF,WAAW5N,EAAwB0N,cAAe,CACrD/N,UAAW,EACX0G,SAAU,EAAIjG,KAGf+H,EAAIyF,aAIN//B,GAAGnV,SAAUy0C,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,MAG9EnN,EAAwBljU,UAAU4kT,YAAc,WAC/C,MAAO,CAAC,CAAC,QAAS,YAGnBse,EAAwBuN,gBACvB,ikFA4DDvN,EAAwB2N,mBACvB,qTAYDhiD,EAAUkE,iBACT,qBACAmwC,GAcDK,EAAkBhwS,MAAQ,OAC1BgwS,EAAkBhhU,KAAO,eACzBghU,EAAkBz6B,aAAe,CAChC/6R,KAAM,CACLuwK,OAAQ,QACRx/J,OAAQ,CAAC,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,OAE1C4jS,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDtH,EAAkBvjU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,IAAKo3C,GAAQ/pU,KAAK2oU,gBAIb3oU,KAAK4lS,kBAAkB,GAA5B,CAKA,GAAImkC,EAAK,CACR,IAAIl/T,EAAQk/T,EAAIl/T,MACZC,EAASi/T,EAAIj/T,OAEW,GAAxB9K,KAAKkhB,WAAWzU,OACnB5B,EAAQ7K,KAAKkhB,WAAWzU,KACxB3B,EAAS9K,KAAKkhB,WAAWzU,MAG1B,IAAIwpS,EAAOj2S,KAAK2oU,cAEZxjU,EAAO4kU,EAAI5kU,KAOf,GANInF,KAAKkhB,WAAWkgS,YAAc8e,EAAc6G,IAC/C5hU,EAAOsqS,GAAGy6B,cACAlqU,KAAKkhB,WAAWkgS,YAAc8e,EAAcmJ,OACtDlkU,EAAOsqS,GAAG06B,wBAITl0B,GACDA,EAAKprS,OAASA,GACdorS,EAAKnrS,QAAUA,GACfmrS,EAAK9wS,MAAQA,EACZ,CACD,IAAI6mU,EAAYv8B,GAAG26B,OAElBpqU,KAAKkhB,WAAWq/S,kBAChBkP,aAAa5kU,IACb4kU,aAAa3kU,KAEbkhU,EAAYv8B,GAAGg9B,sBAEhBzsU,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CAClD3F,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXklT,UAAWA,EACX0D,UAAWjgC,GAAG26B,SAGhBL,EAAIkC,OAAOjsU,KAAK2oU,eAEZ3oU,KAAKkhB,WAAWq/S,mBACnBvgU,KAAK2oU,cAAcvtQ,KAAK,GACxBq0O,GAAGi9B,eAAe1sU,KAAK2oU,cAAcgE,cACrC3sU,KAAK2oU,cAAciE,OAAO,IAI5B5sU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,iBAG5Bp7C,EAAUkE,iBAAiB,eAAgBwwC,GAa3CC,EAAwBjwS,MAAQ,aAChCiwS,EAAwBjhU,KAAO,qBAC/BihU,EAAwB16B,aAAe,CACtCkwB,WAAY,CAAEvyT,KAAM,SAAUlD,KAAM,EAAGm/S,UAAW,EAAG1hS,IAAK,GAC1D0hS,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDrH,EAAwBxjU,UAAUg0R,UAAY,WAC7C,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,IAAKo3C,GAAQ/pU,KAAK2oU,gBAIb3oU,KAAK4lS,kBAAkB,IAKvBmkC,GAAOA,EAAI4C,eAAiBp9B,GAAGogC,WAIpC,GAAI3vU,KAAKkhB,WAAWw2S,WAAa,EAChC13T,KAAK4yR,cAAc,EAAGm3C,OADvB,CAKA,IAAIkD,EAAS/K,EAAwBmB,QAChC4J,IACJ/K,EAAwBmB,QAAU4J,EAAS,IAAI19B,GAAG+zB,OACjD/zB,GAAG+zB,OAAOC,qBACVrB,EAAwBlB,eAI1B,IAAIn2T,EAAoB,EAAZk/T,EAAIl/T,MACZC,EAAsB,EAAbi/T,EAAIj/T,OACb3F,EAAO4kU,EAAI5kU,KACXnF,KAAKkhB,WAAWkgS,YAAc8e,EAAc6G,IAC/C5hU,EAAOsqS,GAAGy6B,cACAlqU,KAAKkhB,WAAWkgS,YAAc8e,EAAcmJ,OACtDlkU,EAAOsqS,GAAG06B,uBAEX,IAAIzS,EAAa13T,KAAKkhB,WAAWw2S,YAAc,EAE3CvlK,EAAS43K,EACTnsU,EAAS,KAETq4S,EAAO,GACP5wS,EAAU,CACbF,KAAMA,EACNyc,OAAQmoT,EAAInoT,QAGTwe,EAAS0rR,KAAK5rT,SACd4tU,EAAW,CACdnM,SAAUvhS,GAGPpgC,KAAKooU,UACR74B,GAAGq6B,QAAQgG,iBAAiB5vU,KAAKooU,UAGlC,IAAK,IAAItqU,EAAI,EAAGA,EAAI45T,IACnBt3R,EAAO,GAAK,EAAIv1B,EAChBu1B,EAAO,GAAK,EAAIt1B,EAChBD,EAAQA,GAAS,GAAK,EACtBC,EAASA,GAAU,GAAK,EACxBlN,EAAS2xS,GAAGq6B,QAAQiG,aAAahlU,EAAOC,EAAQzF,GAChD4wS,EAAK1yS,KAAK3F,GACVu0J,EAAOg5K,aAAa57B,GAAG67B,mBAAoB77B,GAAGq7B,SAC9Cz4K,EAAO85K,OAAOruU,EAAQqvU,EAAQa,GACjB,GAATjjU,GAAwB,GAAVC,KATehN,EAYjCq0J,EAASv0J,EAIVoC,KAAKooU,SAAWnyB,EAAK3yS,MAGrB,IAASxF,EAAI,EAAGA,EAAIm4S,EAAKl4S,SAAUD,EAClCyxS,GAAGq6B,QAAQgG,iBAAiB35B,EAAKn4S,IAG9BkC,KAAKkhB,WAAWq/S,mBACnBvgU,KAAKooU,SAAShtQ,KAAK,GACnBq0O,GAAGi9B,eAAe1sU,KAAKooU,SAASuE,cAChC3sU,KAAKooU,SAASwE,OAAO,IAGtB5sU,KAAK4yR,cAAc,EAAG5yR,KAAKooU,YAG5BlG,EAAwBlB,aACvB,kfAeDzzC,EAAUkE,iBACT,qBACAywC,GAeDC,EAAoBlwS,MAAQ,SAC5BkwS,EAAoBlhU,KAAO,iBAC3BkhU,EAAoB36B,aAAe,CAClCkwB,WAAY,CAAEvyT,KAAM,SAAUlD,KAAM,EAAGm/S,UAAW,EAAG1hS,IAAK,GAC1D0hS,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDpH,EAAoBzjU,UAAUg0R,UAAY,WACzC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,IAAKo3C,GAAQ/pU,KAAK2oU,gBAIb3oU,KAAK4lS,kBAAkB,IAKvBmkC,GAAOA,EAAI4C,eAAiBp9B,GAAGogC,WAApC,CAIA,IAAI9kU,EAAkC,EAA1B7K,KAAKkhB,WAAWzU,KAAK,GAC7B3B,EAAmC,EAA1B9K,KAAKkhB,WAAWzU,KAAK,GACtB,GAAT5B,IACFA,EAAQk/T,EAAIl/T,OACA,GAAVC,IACFA,EAASi/T,EAAIj/T,QACd,IAAI3F,EAAO4kU,EAAI5kU,KACXnF,KAAKkhB,WAAWkgS,YAAc8e,EAAc6G,IAC/C5hU,EAAOsqS,GAAGy6B,cACAlqU,KAAKkhB,WAAWkgS,YAAc8e,EAAcmJ,OACtDlkU,EAAOsqS,GAAG06B,uBAGNnqU,KAAKooU,UAAYpoU,KAAKooU,SAASv9T,OAASA,GAAS7K,KAAKooU,SAASt9T,QAAUA,GAAU9K,KAAKooU,SAASjjU,MAAQA,IAC7GnF,KAAKooU,SAAW,IAAI74B,GAAGq6B,QAAS/+T,EAAOC,EAAQ,CAAE3F,KAAMA,KAExD4kU,EAAIkC,OAAQjsU,KAAKooU,UAEbpoU,KAAKkhB,WAAWq/S,mBACnBvgU,KAAKooU,SAAShtQ,KAAK,GACnBq0O,GAAGi9B,eAAe1sU,KAAKooU,SAASuE,cAChC3sU,KAAKooU,SAASwE,OAAO,IAGtB5sU,KAAK4yR,cAAc,EAAG5yR,KAAKooU,YAG5B76C,EAAUkE,iBAAkB,iBAAkB0wC,GAoB9CC,EAAqBnwS,MAAQ,UAC7BmwS,EAAqBnhU,KACpB,gMAEDmhU,EAAqB1jU,UAAUg0R,UAAY,WACrC1yR,KAAKkhB,WAAWmhT,oBACpBriU,KAAK8vU,gBAGN,IAAI1sU,EAAIpD,KAAKwiU,WACbxiU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,eAC3B3oU,KAAK4yR,cAAc,EAAGxvR,GACtBpD,KAAK4yR,cAAc,GAAIxvR,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAM,IAI9Cg/T,EAAqB1jU,UAAUqxU,mBAAqB,WACnD/vU,KAAK8vU,iBAGN1N,EAAqB1jU,UAAUoxU,cAAgB,WAC9C,IAAI/F,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,IAKH/pU,KAAK4lS,kBAAkB,IACvB5lS,KAAK4lS,kBAAkB,IACvB5lS,KAAK4lS,kBAAkB,IAHzB,CAQA,IAAKw8B,EAAqBiB,QAAS,CAClCjB,EAAqBiB,QAAU,IAAI9zB,GAAG+zB,OACrC/zB,GAAG+zB,OAAOC,qBACVnB,EAAqBpB,cAItB,IADA,IAAItI,EAAU,IAAIljC,aAAa,IACtB13R,EAAI,EAAGA,EAAI46T,EAAQ36T,SAAUD,EACrC46T,EAAQ56T,GAAK4Z,KAAK6uD,SAGnB67P,EAAqBiB,QAAQyK,SAAS,CACrCkC,YAAatX,EAAQzvE,SAAS,EAAG,IACjCgnF,YAAavX,EAAQzvE,SAAS,GAAI,MAIpC,IAAIgtD,EAAOj2S,KAAK2oU,cACZxjU,EAAOsqS,GAAGy6B,cACVH,EAAI5kU,MAAQA,IAEfA,EAAOsqS,GAAGygC,OAGNj6B,GAAQA,EAAK9wS,MAAQA,IACzBnF,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQ,EAAG,EAAG,CACzCzkU,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAGm7B,WAIb5qU,KAAKihU,UAAUsB,gBAAkB,EAE9BviU,KAAKkhB,WAAWohT,eAEbtiU,KAAKmwU,oBAAsBnwU,KAAKmwU,mBAAmBhrU,MAAQA,IAC/DnF,KAAKmwU,mBAAqB,IAAI5gC,GAAGq6B,QAAQ,IAAK,IAAK,CAClDzkU,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXklT,UAAWv8B,GAAGg9B,qBACdiD,UAAWjgC,GAAG26B,UAGhBL,EAAIkC,OAAQjsU,KAAKmwU,qBACjBpG,EAAM/pU,KAAKmwU,oBACP/0Q,KAAK,GACTq0O,GAAGi9B,eAAen9B,GAAGogC,YACrB3vU,KAAKihU,UAAUsB,gBAAkB,GAGlC,IAAI0K,EAAS7K,EAAqBiB,QAC9ByK,EAAW9tU,KAAKihU,UAQpB,GAPA6M,EAASvL,gBAAkBviU,KAAKkhB,WAAWkvT,cAC3C3gC,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGi+B,OACd1tU,KAAK2oU,cAAc4E,QAAO,WACzBxD,EAAIyF,WAAWvC,EAAQa,MAGpB9tU,KAAK4lS,kBAAkB,IAAM5lS,KAAK4lS,kBAAkB,GAAI,CAC3D,IAAIyqC,EAAQrwU,KAAK2oU,cAAc2H,YAC/B,GAAID,EAAO,CACV,IAAIjtU,EAAIpD,KAAKwiU,WACTr9T,EAAOnF,KAAK2oU,cAAcxjU,KAC9B/B,EAAEokC,IAAI6oS,GACFlrU,GAAQsqS,GAAGy6B,cACdhJ,KAAKxrO,MAAMtyF,EAAGA,EAAG,EAAI,KAErB+B,GAAQoqS,GAAGghC,YACHhhC,GAAGihC,mBAQfpO,EAAqBpB,aACpB,qpBAqBDzzC,EAAUkE,iBAAiB,kBAAmB2wC,GA0B9CK,EAAoBj7B,aAAe,CAClCv4R,KAAM,CAAE+tK,OAAQ,QAASx/J,OAAQ,CAAC,MAAM,MAAM,SAG/CilT,EAAoBxwS,MAAQ,SAC5BwwS,EAAoBxhU,KAAO,4BAE3BwhU,EAAoB/jU,UAAUg0R,UAAY,WACpC1yR,KAAKkhB,WAAWmhT,oBACpBriU,KAAKstL,SAGNttL,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,eAC3B3oU,KAAK4yR,cAAc,EAAG5yR,KAAKwiU,aAI5BC,EAAoB/jU,UAAUqxU,mBAAqB,WAClD/vU,KAAKstL,UAGNm1I,EAAoB/jU,UAAU4uL,OAAS,WAEtC,IADIy8I,EAAM/pU,KAAK2yR,aAAa,MAKtB3yR,KAAK4lS,kBAAkB,IAAO5lS,KAAK4lS,kBAAkB,IAA3D,CAIK68B,EAAoBY,UACxBZ,EAAoBY,QAAU,IAAI9zB,GAAG+zB,OAAQ/zB,GAAG+zB,OAAOC,qBAAsBd,EAAoBzB,eAGvFhhU,KAAK2oU,cAAhB,IACIxjU,EAAOsqS,GAAGy6B,cACVH,EAAI5kU,MAAQA,IAEfA,EAAOsqS,GAAGygC,OAGX,IAAIzjU,EAAO,IAEX,IAAKzM,KAAK2iU,gBAAgB5kU,QAAUiC,KAAK2iU,gBAAgB,GAAGx9T,MAAQA,EAGnE,KAAMrH,IAELkC,KAAK2iU,gBAAgB7kU,GAAK,IAAIyxS,GAAGq6B,QAASn9T,EAAMA,EAAM,CACrDtH,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAGm7B,UAGZ9sU,IACW,IAFX2O,IAAe,MAOjBs9T,EAAIkC,OAAQjsU,KAAK2iU,gBAAgB,IACtB3iU,KAAK2iU,gBAAgB,GAChC,IADA,IACQ7kU,EAAI,EAAGA,GAAKkC,KAAK2iU,gBAAgB5kU,SAAUD,EACnD,CACC,IAAIisU,IAAM/pU,KAAK2iU,gBAAgB7kU,GAKhC,IAAImvU,EAASxK,EAAoBY,QAC7ByK,EAAW9tU,KAAKihU,UACpB6M,EAASvL,gBAAkBviU,KAAKkhB,WAAWkvT,cAC3C3gC,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGi+B,OACd1tU,KAAK2oU,cAAc4E,QAAO,WACzBxD,EAAIyF,WAAWvC,EAAQa,QAIzBrL,EAAoBzB,aACnB,qpBAoCD4B,EAA4B3wS,MAAQ,SACpC2wS,EAA4B3hU,KAAO,2BAEnC2hU,EAA4BlkU,UAAUg0R,UAAY,WACjD,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAAQ/pU,KAAK4lS,kBAAkB,GAApC,CAIKg9B,EAA4BS,UAChCT,EAA4BS,QAAU,IAAI9zB,GAAG+zB,OAC5C/zB,GAAG+zB,OAAOC,qBACVX,EAA4B5B,eAI9B,IAAI/qB,EAAOj2S,KAAK2oU,cAChB,IACE1yB,GACDA,EAAK9wS,MAAQ4kU,EAAI5kU,MACjB8wS,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,OAClB,CACD,IAAIzF,EAAU,CACbF,KAAM4kU,EAAI5kU,KACVyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAGm7B,SAEZ5qU,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQzF,GAC3DrF,KAAKywU,eAAiB,IAAIlhC,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQzF,GAC5D0kU,EAAIkC,OAAOjsU,KAAKywU,gBAGjB,IAAIn0B,EAAQt8S,KAAK2oU,cACbpsB,EAAQv8S,KAAKywU,eAEbxD,EAASrK,EAA4BS,QACrCyK,EAAW9tU,KAAKihU,UACpB6M,EAASrM,SAAW,EAAMzhU,KAAKylS,mBAAmB,UAElDgK,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACdlxB,EAAMixB,QAAO,WACZhxB,EAAMnhP,KAAK,GACX2uQ,EAAIyF,WAAWvC,EAAQa,MAGxB9tU,KAAK4yR,cAAc,EAAG0pB,GAGtBt8S,KAAK2oU,cAAgBpsB,EACrBv8S,KAAKywU,eAAiBn0B,IAGvBsmB,EAA4B5B,aAC3B,kUAYDzzC,EAAUkE,iBAAkB,0BAA2BmxC,GAiBvDC,EAA6B5wS,MAAQ,oBACrC4wS,EAA6B5hU,KAAO,oCAEpC4hU,EAA6B,YAAc,CAAE19T,KAAM,SAAUua,IAAK,EAAG/H,IAAK,GAAI1V,KAAM,EAAGm/S,UAAW,GAElGyhB,EAA6BnkU,UAAU6tU,kBAAoB,WAE1D,OAAOvsU,KAAKywU,gBAGb5N,EAA6BnkU,UAAUg0R,UAAY,WAElD,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAAQ/pU,KAAK4lS,kBAAkB,GAApC,CAIKi9B,EAA6BQ,UACjCR,EAA6B6N,aAAe,IAAInhC,GAAG+zB,OAAQ/zB,GAAG+zB,OAAOC,qBAAsBV,EAA6B8N,mBACxH9N,EAA6B+N,YAAc,IAAIrhC,GAAG+zB,OAAQ/zB,GAAG+zB,OAAOC,qBAAsBV,EAA6BgO,mBAGxH,IAAInY,EAAUhhT,KAAKw6E,MAAMlyF,KAAKkhB,WAAWw3S,QAAQ,EAAE,IAC/C1sB,EAAQhsS,KAAKgsS,MACbpqO,EAAW5hE,KAAKkhB,WAAW4hT,gBAE/B,GAAgB,GAAZlhQ,GAAiBoqO,EAAQpqO,GAAY,EACzC,CACC,IAAIq0O,EAAOj2S,KAAK2oU,cAChB,IAAM1yB,GAAQA,EAAK9wS,MAAQ4kU,EAAI5kU,MAAQ8wS,EAAKprS,OAAS6tT,EAAU,CAC9D,IAAIrzT,EAAU,CACbF,KAAM4kU,EAAI5kU,KACVyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAGm7B,SAEZ5qU,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAASlR,EAAS,EAAGrzT,GACjDrF,KAAKywU,eAAiB,IAAIlhC,GAAGq6B,QAASlR,EAAS,EAAGrzT,GAClDrF,KAAK8wU,kBAAoB,IAAIvhC,GAAGq6B,QAAS,EAAG,EAAGvkU,GAGhD,IAAIi3S,EAAQt8S,KAAK2oU,cACbpsB,EAAQv8S,KAAKywU,eAEbM,EAAclO,EAA6B6N,aAC3CM,EAAanO,EAA6B+N,YAC1C9C,EAAW9tU,KAAKihU,UACpB6M,EAAS/K,UAAYrK,EACrBoV,EAAS9K,WAAa,EAAMtK,EAE5BjpB,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACdlxB,EAAMixB,QAAO,WACZhxB,EAAMnhP,KAAK,GACX2uQ,EAAIyF,WAAYuB,EAAajD,MAG9B9tU,KAAK8wU,kBAAkBvD,QAAO,WAC7BjxB,EAAMkzB,WAAYwB,EAAYlD,MAG/B9tU,KAAK4yR,cAAe,EAAG5yR,KAAK8wU,mBAG5B9wU,KAAK2oU,cAAgBpsB,EACrBv8S,KAAKywU,eAAiBn0B,OAGtBt8S,KAAK4yR,cAAc,EAAG5yR,KAAK8wU,mBAC5B9wU,KAAK4yR,cAAc,EAAG5yR,KAAKywU,gBAC3BzwU,KAAKgsS,UAGN62B,EAA6B8N,kBAC5B,uZAeD9N,EAA6BgO,iBAC5B,+cAoBDtjD,EAAUkE,iBAAkB,4BAA6BoxC,GASzDI,EAAqBhxS,MAAQ,mBAC7BgxS,EAAqBhiU,KAAO,8BAG5BgiU,EAAqBvkU,UAAUg0R,UAAY,WAC1C,IAAIuW,EAAMjpS,KAAK2yR,aAAa,GAC5B,GAAKsW,EAAL,CAIA,IAAIp+R,EAAQo+R,EAAIk1B,YAAcl1B,EAAIp+R,MAC9BC,EAASm+R,EAAIm1B,aAAen1B,EAAIn+R,OAGpC,GAAIm+R,EAAIgoC,UACPjxU,KAAK4yR,cAAc,EAAGqW,EAAIgoC,eAD3B,CAKA,IAAIh7B,EAAOj2S,KAAK2oU,cACX1yB,GAAQA,EAAKprS,OAASA,GAASorS,EAAKnrS,QAAUA,IAClD9K,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CAClD8W,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAIb,IACCpqU,KAAK2oU,cAAcuI,YAAYjoC,GAC9B,MAAOttR,GAKR,YAJA+B,QAAQ9Z,MACP,qEACC+X,GAKH3b,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,kBAG5Bp7C,EAAUkE,iBACT,yBACAwxC,GAgBDC,EAAiB17B,aAAe,CAC/B47B,QAAS,CAAEpmJ,OAAQ,WACnBokI,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDrG,EAAiBjxS,MAAQ,MACzBixS,EAAiBjiU,KAAO,uBAExBiiU,EAAiBxkU,UAAUg0R,UAAY,WACtC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,eAA4C,IAA5BnpU,KAAKkhB,WAAW8sE,SAKhF,GAAK+7O,EAAL,CAIA,IAAIoH,EAAUnxU,KAAK2yR,aAAa,GAMhC,GAJKw+C,IACJA,EAAUjR,EAAc4J,WAAW9pU,KAAKkhB,WAAWkiT,UAG/C+N,EAAL,CAKAA,EAAQ/1Q,KAAK,GACbq0O,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG+8B,mBAAoB/8B,GAAG26B,QAC1D36B,GAAG2hC,cACF3hC,GAAGkgC,WACHlgC,GAAG4hC,eACH5hC,GAAG6hC,eAEJ7hC,GAAG2hC,cACF3hC,GAAGkgC,WACHlgC,GAAG8hC,eACH9hC,GAAG6hC,eAEJ7hC,GAAG+hC,YAAY/hC,GAAGkgC,WAAY,MAE9B,IAAIxM,EAAYnjU,KAAKkhB,WAAWiiT,UAC5BnjU,KAAKqlS,iBAAiB,KACzBrlS,KAAKkhB,WAAWiiT,UAAYA,EAAYnjU,KAAK2yR,aAAa,IAG3D3yR,KAAK+sU,KAAO7M,EAAc8J,iBACzBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAKjBphT,KAAK+sU,KAAKQ,QAAO,WAChB4D,EAAQ/1Q,KAAK,GACb2uQ,EAAIyF,WAAWtM,EAAiBG,QAAS,CACxC9B,UAAW,EACXC,WAAY,EACZiQ,SAAUtO,OAIZnjU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,WAxC1B/sU,KAAK4yR,cAAc,EAAGm3C,SAftB/pU,KAAK4yR,cAAc,EAAGm3C,KA0DxB7G,EAAiBlC,aAChB,g1CA6BDzzC,EAAUkE,iBAAiB,cAAeyxC,GAuB1CM,EAAoBh8B,aAAe,CAClC47B,QAAS,CAAEpmJ,OAAQ,WACnBokI,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD/F,EAAoBvxS,MAAQ,SAC5BuxS,EAAoBviU,KAAO,4CAE3BuiU,EAAoB9kU,UAAUg0R,UAAY,WACzC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,eAA4C,IAA5BnpU,KAAKkhB,WAAW8sE,SAKhF,GAAK+7O,EAAL,CAIA,IAAI2H,EAAc1xU,KAAK2yR,aAAa,GAMpC,GAJK++C,IACJA,EAAcxR,EAAc4J,WAAW9pU,KAAKkhB,WAAWkiT,UAGnDsO,EAAL,CAKAA,EAAYt2Q,KAAK,GACjBq0O,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG27B,mBAAoBprU,KAAKkhB,WAAW8N,OAASygR,GAAG26B,OAAS36B,GAAGm7B,SAC/Fn7B,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG+8B,mBAAoBxsU,KAAKkhB,WAAW8N,OAASygR,GAAG26B,OAAS36B,GAAGm7B,SAC/Fn7B,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG4hC,eAAgB5hC,GAAG6hC,eACtD7hC,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG8hC,eAAgB9hC,GAAG6hC,eACtD7hC,GAAG+hC,YAAY/hC,GAAGkgC,WAAY,MAE9B,IAAI7B,EAAW9tU,KAAKihU,UACpB6M,EAAShK,cAAgBpsT,KAAKE,MAAM5X,KAAKkhB,WAAWuiT,iBACpDqK,EAAS6D,cAAgB3xU,KAAKkhB,WAAWwiT,YACzCoK,EAAS8D,aAAe5xU,KAAKkhB,WAAWyiT,WACxCmK,EAAS+D,SAAW7xU,KAAKkhB,WAAW2iT,OAAS,EAAI,EACjDiK,EAASgE,WAAa9xU,KAAKkhB,WAAW0iT,SAAW,EAAI,EAErD5jU,KAAK+sU,KAAO7M,EAAc8J,iBAAkBD,EAAK/pU,KAAK+sU,KAAM/sU,KAAKkhB,WAAWkgS,WAC5E0sB,EAAS9J,MAAM,GAAKhkU,KAAK+sU,KAAKliU,MAC9BijU,EAAS9J,MAAM,GAAKhkU,KAAK+sU,KAAKjiU,OAC9B9K,KAAK+sU,KAAK3xQ,KAAK,GACfq0O,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG27B,mBAAoB37B,GAAGm7B,SAC1Dn7B,GAAG2hC,cAAc3hC,GAAGkgC,WAAYlgC,GAAG+8B,mBAAoB/8B,GAAGm7B,SAE1D5qU,KAAK+sU,KAAKQ,QAAO,WAChBmE,EAAYt2Q,KAAK,GACjB2uQ,EAAIyF,WAAWhM,EAAoBH,QAASyK,MAGzC9tU,KAAKkhB,WAAWq/S,mBACnBvgU,KAAK+sU,KAAK3xQ,KAAK,GACfq0O,GAAGi9B,eAAe1sU,KAAK+sU,KAAKJ,cAC5B3sU,KAAK+sU,KAAKH,OAAO,IAGlB5sU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,WApC1B/sU,KAAK4yR,cAAc,EAAGm3C,SAftB/pU,KAAK4yR,cAAc,EAAGm3C,KAsDxBvG,EAAoBxC,aACnB,irCA8BDzzC,EAAUkE,iBAAiB,iBAAkB+xC,GAoB7CS,EAAsBhyS,MAAQ,sBAC9BgyS,EAAsBhjU,KAAO,yBAE7BgjU,EAAsBvlU,UAAUg0R,UAAY,WAC3C,IAAIq/C,EAAO/xU,KAAK2yR,aAAa,GAC7B,GAAKo/C,EAAL,CAIK/xU,KAAKgyU,YACThyU,KAAKgyU,UAAYvyU,MAAM,IAMxB,IAFA,IAAImiB,EAAS6tR,GAAG83B,IACZtjC,EAAc,EACTnmS,EAAI,EAAGA,EAAI,EAAGA,IAClBkC,KAAK4lS,kBAAkB9nS,IAExBkC,KAAKgyU,UAAUl0U,IAChBkC,KAAKgyU,UAAUl0U,GAAG+M,OAASknU,EAAKlnU,OAChC7K,KAAKgyU,UAAUl0U,GAAGgN,QAAUinU,EAAKjnU,QACjC9K,KAAKgyU,UAAUl0U,GAAGqH,MAAQ4sU,EAAK5sU,MAC/BnF,KAAKgyU,UAAUl0U,GAAG8jB,QAAUA,IAE5B5hB,KAAKgyU,UAAUl0U,GAAK,IAAIyxS,GAAGq6B,QAC1BmI,EAAKlnU,MACLknU,EAAKjnU,OACL,CACC3F,KAAM4sU,EAAK5sU,KACXyc,OAAQA,EACRoN,OAAQygR,GAAG26B,UAIdnmC,KAEAjkS,KAAKgyU,UAAUl0U,GAAK,KAItB,GAAKmmS,EAAL,CAIAwL,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOC,KAAKC,gBACZZ,EAAShJ,EAAsBZ,QAC/B4O,EAAQ,CACX,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IAGX,IAASn0U,EAAI,EAAGA,EAAI,EAAGA,IACjBkC,KAAKgyU,UAAUl0U,KAIpBkC,KAAKgyU,UAAUl0U,GAAGyvU,QAAO,WACxBwE,EAAK32Q,KAAK,GACV6xQ,EACEa,SAAS,CAAEvM,UAAW,EAAG2Q,OAAQD,EAAMn0U,KACvCkyS,KAAK29B,MAER3tU,KAAK4yR,cAAc90R,EAAGkC,KAAKgyU,UAAUl0U,QAIvCmmU,EAAsBjD,aACrB,+QAWDzzC,EAAUkE,iBACT,0BACAwyC,GA6BDC,EAAsBjyS,MAAQ,sBAC9BiyS,EAAsBjjU,KAAO,yBAC7BijU,EAAsB18B,aAAe,CACpC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDrF,EAAsBxlU,UAAUg0R,UAAY,WAC3C,IAAI9uQ,EAAQs8S,EAAcqK,kBACtB4H,EAAOnyU,KAAK2yR,aAAa,IAAM/uQ,EAC/BwuT,EAAOpyU,KAAK2yR,aAAa,IAAM/uQ,EAC/BopT,EAAOhtU,KAAK2yR,aAAa,IAAM/uQ,EAC/BmuT,EAAO/xU,KAAK2yR,aAAa,IAAM/uQ,EAEnC6rR,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOC,KAAKC,gBACX3J,EAAsBb,UAC1Ba,EAAsBb,QAAU,IAAI9zB,GAAG+zB,OACtCA,OAAOC,qBACPW,EAAsBlD,eAGxB,IAAIiM,EAAS/I,EAAsBb,QAE/BrzN,EAAIt4F,KAAKC,IAAIw6T,EAAKtnU,MAAOunU,EAAKvnU,MAAOmiU,EAAKniU,MAAOknU,EAAKlnU,OACtDqsD,EAAIx/C,KAAKC,IACZw6T,EAAKrnU,OACLsnU,EAAKtnU,OACLkiU,EAAKliU,OACLinU,EAAKjnU,QAEF3F,EACHnF,KAAKkhB,WAAWkgS,WAAa8e,EAAcmJ,KACxCnJ,EAAciK,sBACd16B,GAAGy6B,cAGLlqU,KAAKooU,UACNpoU,KAAKooU,SAASv9T,OAASmlG,GACvBhwG,KAAKooU,SAASt9T,QAAUosD,GACxBl3D,KAAKooU,SAASjjU,MAAQA,IAEtBnF,KAAKooU,SAAW,IAAI74B,GAAGq6B,QAAQ55N,EAAG94C,EAAG,CACpC/xD,KAAMA,EACNyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAIb,IAAI38S,EAAQztB,KAAK84K,OACjBrrJ,EAAM,GAAKztB,KAAKkhB,WAAWk5S,EAC3B3sS,EAAM,GAAKztB,KAAKkhB,WAAWijT,EAC3B12S,EAAM,GAAKztB,KAAKkhB,WAAWk9Q,EAC3B3wQ,EAAM,GAAKztB,KAAKkhB,WAAWi9Q,EAC3B,IAAI2vC,EAAW9tU,KAAKihU,UAEpBjhU,KAAKooU,SAASmF,QAAO,WACpB4E,EAAK/2Q,KAAK,GACVg3Q,EAAKh3Q,KAAK,GACV4xQ,EAAK5xQ,KAAK,GACV22Q,EAAK32Q,KAAK,GACV6xQ,EAAOa,SAASA,GAAU99B,KAAK29B,MAEhC3tU,KAAK4yR,cAAc,EAAG5yR,KAAKooU,WAG5BlE,EAAsBlD,aACrB,kfAkBDzzC,EAAUkE,iBACT,0BACAyyC,GAcDK,EAAmBtyS,MAAQ,QAC3BsyS,EAAmBtjU,KAClB,gDAEDsjU,EAAmB/8B,aAAe,CACjC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDhF,EAAmB7lU,UAAU46R,iBAAmB,SAASrgJ,GACxD,IAAI/3I,EAAIlB,KAAKkhB,WAAWuM,MACxBwrH,EAAI4+J,UACH,OACAngS,KAAKE,MAA+B,IAAzBF,KAAKw6E,MAAMhxF,EAAE,GAAI,EAAG,IAC/B,IACAwW,KAAKE,MAA+B,IAAzBF,KAAKw6E,MAAMhxF,EAAE,GAAI,EAAG,IAC/B,IACAwW,KAAKE,MAA+B,IAAzBF,KAAKw6E,MAAMhxF,EAAE,GAAI,EAAG,IAC/B,IACGlB,KAAK0iM,MAAM+vE,UACdzyQ,KAAKwkS,SAAWvrJ,EAAI4+J,UAEpB5+J,EAAI2gK,SAAS,EAAG,EAAG55S,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,KAI7C83T,EAAmB7lU,UAAUg0R,UAAY,WACxC,IAAIvtR,EACHnF,KAAKkhB,WAAWkgS,WAAa8e,EAAcmJ,KACxCnJ,EAAciK,sBACd16B,GAAGy6B,cAEFlqU,KAAK+sU,MAAQ/sU,KAAK+sU,KAAK5nU,MAAQA,IACnCnF,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQ,EAAG,EAAG,CAChChoT,OAAQ6tR,GAAG3oR,KACX3hB,KAAMA,EACN6mU,UAAWv8B,GAAGm7B,WAGhB,IAAIn9S,EAAQztB,KAAKkhB,WAAWuM,MAE5B,GAAIztB,KAAKm8R,OACR,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,OAAQD,IAAK,CAC5C,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBsF,EAAIpD,KAAK2yR,aAAa70R,GAC1B,QAAU+b,IAANzW,EAGJ,OAAQgsF,EAAMx4E,MACb,IAAK,MACL,IAAK,OACJ6W,EAAM+Z,IAAIpkC,GACV,MACD,IAAK,IACJqqB,EAAM,GAAKrqB,EACX,MACD,IAAK,IACJqqB,EAAM,GAAKrqB,EACX,MACD,IAAK,IACJqqB,EAAM,GAAKrqB,EACX,MACD,IAAK,IACJqqB,EAAM,GAAKrqB,GAMX89T,KAAKmR,QAAQryU,KAAKwkU,WAAY/2S,GAAS,OAC1CztB,KAAKwkU,WAAWh9R,IAAI/Z,GACpBztB,KAAK+sU,KAAKn1B,KAAKnqR,IAEhBztB,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,OAG5BxI,EAAmB7lU,UAAU4kT,YAAc,WAC1C,MAAO,CACN,CAAC,MAAO,QACR,CAAC,OAAQ,QACT,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,YAIR/1B,EAAUkE,iBAAiB,gBAAiB8yC,GA6B5CE,EAAsBxyS,MAAQ,WAC9BwyS,EAAsBxjU,KAAO,uBAC7BwjU,EAAsB,MAAQ,CAAEt/T,KAAM,SACtCs/T,EAAsB,MAAQ,CAAEt/T,KAAM,SACtCs/T,EAAsB,iBAAmB,CACxCt/T,KAAM,OACNqY,OAAQ,CAAC,GAAI,GAAI,IAAK,IAAK,MAG5BinT,EAAsB/lU,UAAUg0R,UAAY,WAC3C+c,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOp+B,GAAGq+B,KAAKC,gBACfZ,EAASxI,EAAsBpB,QAE/BllC,EAAIn+R,KAAK2yR,aAAa,GACrBwL,IACJA,EAAIn+R,KAAKkhB,WAAWi9Q,GAErB,IAAIC,EAAIp+R,KAAK2yR,aAAa,GACrByL,IACJA,EAAIp+R,KAAKkhB,WAAWk9Q,GAIrB,IAAK,IAAItgS,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,OAAQD,IAAK,CAC5C,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBsF,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IAGJpD,KAAKkhB,WAAWkuE,EAAMx4E,MAAQxT,GAG/B,IAAI0qU,EAAW9tU,KAAKihU,UACpBjhU,KAAKihU,UAAU0D,QAAU3kU,KAAKkhB,WAAWuxS,MAAQ4H,QACjDr6T,KAAKihU,UAAUS,QAAU1hU,KAAKkhB,WAAWw0E,MACzCgkO,KAAK/1O,KAAKmqP,EAASlJ,SAAUzmC,GAC7Bu7B,KAAK/1O,KAAKmqP,EAASjJ,SAAUzmC,GAE7B,IAAI3xR,EAAOgzB,SAASz/B,KAAKkhB,WAAWwjT,cAC/B1kU,KAAK+sU,MAAQ/sU,KAAK+sU,KAAKliU,OAAS4B,IACpCzM,KAAK+sU,KAAO,IAAIx9B,GAAGq6B,QAAQn9T,EAAMA,EAAM,CACtCmV,OAAQ6tR,GAAG83B,IACXv4S,OAAQygR,GAAG26B,UAIbpqU,KAAK+sU,KAAKQ,QAAO,WAChBN,EAAOa,SAASA,GAAU99B,KAAK29B,MAEhC3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,OAG5BtI,EAAsB/lU,UAAU4kT,YAAc,WAC7C,MAAO,CAAC,CAAC,QAAS,UAAW,CAAC,QAAS,YAGxCmhB,EAAsBzD,aACrB,kpBAwBDzzC,EAAUkE,iBAAiB,mBAAoBgzC,GAkB/CK,EAAiB7yS,MAAQ,MACzB6yS,EAAiB7jU,KAAO,0CAExB6jU,EAAiBt9B,aAAe,CAC/B4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDzE,EAAiBpmU,UAAUg0R,UAAY,WACtC,IAAIq/C,EAAO/xU,KAAK2yR,aAAa,GAE7B,GAAK3yR,KAAK4lS,kBAAkB,GAI5B,GAAI5lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,aAAhD,CAKA,IAAI6D,EAAOhtU,KAAK2yR,aAAa,GAC7B,GAAKo/C,GAAS/E,EAAd,CAIA,IAAIsF,EAAStyU,KAAK2yR,aAAa,GAE3B1lQ,EAASjtB,KAAK2yR,aAAa,GAE/B3yR,KAAK+sU,KAAO7M,EAAc8J,iBACzBhqU,KAAKkhB,WAAW6jT,mBAAqBiI,EAAKniU,MAAQknU,EAAKlnU,MAAQmiU,EAAO+E,EACtE/xU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAGjB3R,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOC,KAAKC,gBACZZ,EAAS,KACTa,EAAW9tU,KAAKihU,UACpB,GAAIqR,GACHrF,EAASnI,EAAiByN,eAEzBtF,EAASnI,EAAiByN,YAAc,IAAIhjC,GAAG+zB,OAC9CA,OAAOC,qBACPuB,EAAiB9D,aACjB,CAAEwR,QAAS,UAGP,EACNvF,EAASnI,EAAiB2N,kBAEzBxF,EAASnI,EAAiB2N,eAAiB,IAAIljC,GAAG+zB,OACjDA,OAAOC,qBACPuB,EAAiB9D,eAGnB,IAAIv+T,EAAc,MAAVwqB,EAAiBjtB,KAAKkhB,WAAW+L,OAASA,EAClD6gT,EAAS7I,MAAMz9R,IAAI,CAAC/kC,EAAGA,EAAGA,EAAGA,IAG9B,IAAIohU,EAAS7jU,KAAKkhB,WAAW2iT,OAE7B7jU,KAAK+sU,KAAKQ,QAAO,WAChBwE,EAAK32Q,KAAMyoQ,EAAS,EAAI,GACxBmJ,EAAK5xQ,KAAMyoQ,EAAS,EAAI,GACpByO,GACHA,EAAOl3Q,KAAK,GAEb6xQ,EAAOa,SAASA,GAAU99B,KAAK29B,MAGhC3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YAzD1B/sU,KAAK4yR,cAAc,EAAGm/C,IA4DxBjN,EAAiBpmU,UAAU4kT,YAAc,WACxC,MAAO,CAAC,CAAC,SAAU,YAGpBwhB,EAAiB9D,aAChB,0gBAqBDzzC,EAAUkE,iBAAiB,cAAeqzC,GAsB1CI,EAAmBjzS,MAAQ,QAC3BizS,EAAmBjkU,KAAO,gBAE1BikU,EAAmB19B,aAAe,CACjC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDrE,EAAmBxmU,UAAUg0R,UAAY,WACxC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,cAKhD,GAAKY,EAAL,CAIA/pU,KAAK+sU,KAAO7M,EAAc8J,iBACzBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAGjB3R,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOC,KAAKC,gBACZZ,EAAS/H,EAAmB7B,QAC5BQ,EAAS7jU,KAAKkhB,WAAW2iT,OACzB52S,EAASjtB,KAAKkhB,WAAW+L,OACzBimS,EAAYlzT,KAAKkhB,WAAWgyS,UAAY,EAAI,EAEhDlzT,KAAK+sU,KAAKQ,QAAO,WAChBxD,EAAI3uQ,KAAK,GACT6xQ,EACEa,SAAS,CACTvM,UAAW,EACXmR,QAAS,CAAC,EAAI3I,EAAIl/T,MAAO,EAAIk/T,EAAIj/T,QACjC22T,SAAUx0S,EACVk5S,YAAajT,EACb2e,SAAUhO,EAAS,EAAI,IAEvB7zB,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YApC1B/sU,KAAK4yR,cAAc,EAAGm3C,KAuCxB7E,EAAmBlE,aAClB,6gCA0BDzzC,EAAUkE,iBAAiB,gBAAiByzC,GAsB5CC,EAAwBlzS,MAAQ,cAChCkzS,EAAwBlkU,KAAO,yCAE/BkkU,EAAwBzmU,UAAUg0R,UAAY,WAC7C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,EAAL,CAIA,IAAI3oB,EAAY3R,GAAGy6B,cACflqU,KAAKkhB,WAAWmkT,iBACnBjkB,EAAY3R,GAAGkjC,eAAiBljC,GAAG+gC,eAAiB/gC,GAAGygC,OAItDlwU,KAAK2oU,eACN3oU,KAAK2oU,cAAcxjU,MAAQi8S,GAC3BphT,KAAK2oU,cAAc99T,OAASk/T,EAAIl/T,OAChC7K,KAAK2oU,cAAc79T,QAAUi/T,EAAIj/T,SAEjC9K,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CAC1D3F,KAAMi8S,EACNx/R,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAIb,IAAI0D,EAAW9tU,KAAKihU,UAGhBnuL,EAAW9yI,KAAKkhB,WAAW4xH,SAC3B9yI,KAAKqlS,iBAAiB,KACzBvyJ,EAAW9yI,KAAK2yR,aAAa,GAC7B3yR,KAAKkhB,WAAW4xH,SAAWA,GAG5B,IAAIj0H,EAAQ7e,KAAKkhB,WAAWrC,MACxB7e,KAAKqlS,iBAAiB,KACzBxmR,EAAQ7e,KAAK2yR,aAAa,GAC1B3yR,KAAKkhB,WAAWrC,MAAQA,GAGzBivT,EAASxI,WAAaxyL,EACtBg7L,EAASvI,QAAU1mT,EAEnB4wR,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACd,IAAIG,EAAOC,KAAKC,gBACX1I,EAAwB9B,UAC5B8B,EAAwB9B,QAAU,IAAI9zB,GAAG+zB,OACxCA,OAAOC,qBACP4B,EAAwBnE,cAEzBmE,EAAwByN,kBAAoB,IAAIrjC,GAAG+zB,OAClDA,OAAOC,qBACP4B,EAAwBnE,aACxB,CAAE6R,WAAY,MAGhB,IAAI5F,EAASjtU,KAAKkhB,WAAWkkT,WAC1BD,EAAwByN,kBACxBzN,EAAwB9B,QAGvByP,EAAS,KAEZA,EADG/I,EAAIgJ,gBACEhJ,EAAIgJ,gBACHpoU,OAAOqoU,IAAMA,GAAGC,SAASC,aAC1BF,GAAGC,SAASC,aAAajS,UAAUuE,gBAEnC,CAAC,GAAK,KAEhBsI,EAAStI,gBAAkBsN,EAE3B9yU,KAAK2oU,cAAc4E,QAAO,WACzBxD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAK29B,MAGhC3tU,KAAK2oU,cAAcoK,gBAAkBD,EACrC9yU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,kBAG5BxD,EAAwBnE,aACvB,s1BA+BDzzC,EAAUkE,iBAAkB,sBAAuB0zC,GAkBnDM,EAAyBj+B,aAAe,CACvC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD9D,EAAyBxzS,MAAQ,eACjCwzS,EAAyBxkU,KAAO,4CAEhCwkU,EAAyB/mU,UAAUg0R,UAAY,WAC9C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,IAAQA,EAAInoT,QAAU6tR,GAAGq8B,iBAAmB/B,EAAInoT,QAAU6tR,GAAG0jC,eAAlE,CAIA,IAAI/xB,EAAYphT,KAAKkhB,WAAWkgS,WAAa8e,EAAcmJ,KAAO55B,GAAG06B,sBAAwB16B,GAAGy6B,cAE1FlqU,KAAK2oU,eAAiB3oU,KAAK2oU,cAAcxjU,MAAQi8S,GAAaphT,KAAK2oU,cAAc99T,OAASk/T,EAAIl/T,OAAS7K,KAAK2oU,cAAc79T,QAAUi/T,EAAIj/T,SAC7I9K,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CAC1D3F,KAAMi8S,EACNx/R,OAAQ6tR,GAAG83B,IACXv4S,OAAQygR,GAAG26B,UAIb,IAAI0D,EAAW9tU,KAAKihU,UACpB6M,EAAS+D,SAAW7xU,KAAKkhB,WAAW2iT,OAAS,EAAI,EAEjDp0B,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACd,IAAIG,EAAOC,KAAKC,gBACZpI,EAAyBpC,UAC5BoC,EAAyBpC,QAAU,IAAI9zB,GAAG+zB,OAAQ/zB,GAAG+zB,OAAOC,qBAAsBkC,EAAyBzE,eAC5G,IAAIiM,EAASxH,EAAyBpC,QAGlCyP,EAAS,KAEZA,EADG/I,EAAIgJ,gBACEhJ,EAAIgJ,gBACHpoU,OAAOqoU,IAAMA,GAAGC,SAASC,aAC1BF,GAAGC,SAASC,aAAajS,UAAUuE,gBAEnC,CAAC,GAAK,KAEhBsI,EAAStI,gBAAkBsN,EAE3BhF,EAASpI,OAAOl+R,IAAI,CAAC,EAAE,IAEvBxnC,KAAK2oU,cAAc4E,QAAO,WACzBxD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAK29B,MAGhC3tU,KAAK2oU,cAAcoK,gBAAkBD,EACrC9yU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,kBAG5BlD,EAAyBzE,aACxB,0jBAmBDzzC,EAAUkE,iBAAkB,uBAAwBg0C,GAiBpDE,EAAkB1zS,MAAQ,OAC1B0zS,EAAkB1kU,KAAO,iBAEzB0kU,EAAkBn+B,aAAe,CAChC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD5D,EAAkByN,eAAiB,GAEnCzN,EAAkBjnU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIqQ,EAAOj2S,KAAKqzU,eAGdp9B,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAIjB8wS,EAAOj2S,KAAKqzU,eAAiB,IAAI9jC,GAAGq6B,QACnCG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAM4kU,EAAI5kU,KAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,UAKhD,IAAI1S,EAAa13T,KAAKkhB,WAAWw2S,WASjC,GARI13T,KAAKqlS,iBAAiB,KACzBqyB,EAAa13T,KAAK2yR,aAAa,GAC/B3yR,KAAKkhB,WAAWw2S,WAAaA,GAMZ,IAJlBA,EAAahgT,KAAKgI,IACjBhI,KAAKE,MAAM8/S,GACXiO,EAAkByN,iBAEnB,CAMA,IAAIjQ,EAAYnjU,KAAKkhB,WAAWiiT,UAC5BnjU,KAAKqlS,iBAAiB,KACzB89B,EAAYnjU,KAAK2yR,aAAa,GAC9B3yR,KAAKkhB,WAAWiiT,UAAYA,GAI7B,IAAImQ,EAAS/lD,EAAUgmD,cAClBD,QAAwBz5T,IAAdlP,OAAO8kS,KACrB6jC,EAAS7jC,GAAGrZ,OAAOtrR,OAAS2kS,GAAGrZ,OAAOvrR,OAElCyoU,IACJA,EAAS,GAEVA,EAAStzU,KAAKkhB,WAAW0kT,gBAAkB0N,EAAS,EAEpD,IAAI59O,EAAQ11F,KAAKkhB,WAAWw0E,OAAS,CAAC,EAAG,GACzCq0O,EAAIyJ,UAAUF,EAAS59O,EAAM,GAAIA,EAAM,GAAIytO,EAAWltB,GACtD,IAAK,IAAIn4S,EAAI,EAAGA,EAAI45T,IAAc55T,EACjCm4S,EAAKu9B,UACJF,EAAS59O,EAAM,IAAM53F,EAAI,GACzB43F,EAAM,IAAM53F,EAAI,GAChBqlU,GAIFnjU,KAAK4yR,cAAc,EAAGqjB,QA9BrBj2S,KAAK4yR,cAAc,EAAGm3C,KAyDxBx8C,EAAUkE,iBAAiB,eAAgBk0C,GAyB3CE,EAAOnnU,UAAU+0U,QAAU,SAAU1J,EAAK2J,EAAgBC,EAAcC,GAEvE,IAAI/oU,EAAQk/T,EAAIl/T,MACZC,EAASi/T,EAAIj/T,OAEb+oU,EAAe,CAClBjyT,OAAQmoT,EAAInoT,OACZzc,KAAM4kU,EAAI5kU,KACV6mU,UAAWz8B,GAAG66B,OACdsF,UAAWngC,GAAG66B,OACdM,KAAMj7B,GAAG6hC,eAGNxD,EAAW9tU,KAAKihU,UAChByI,EAAW1pU,KAAKgmU,WAGhBiH,EAASpH,EAAOiO,eAEnB7G,EAASpH,EAAOiO,YAAc,IAAIvkC,GAAG+zB,OACpC/zB,GAAG+zB,OAAOC,qBACVsC,EAAOkO,mBAITtkC,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGi+B,OAEdI,EAAS3H,YAAcnmU,KAAKkzT,UAC5B,IAAI8gB,EAAsBtK,EAAS,GAAKn6B,GAAGq6B,QAAQiG,aAClDhlU,EACAC,EACA+oU,GAED9J,EAAIkK,KAAMD,EAAoB/G,EAAOa,SAASA,IAC9C,IAAIoG,EAAgBF,EAEhBtc,EAAa13T,KAAK03T,WACtBA,EAA6C,EAAhChgT,KAAKw6E,MAAMwlO,EAAY,EAAG,IACvC,IAOIuV,EAPAkH,EAAarG,EAAS1H,aACtBjD,EAAYnjU,KAAKmjU,UAErB2K,EAAS7H,YAAc,EACvB6H,EAASsG,QAAUp0U,KAAK01F,OAGpBu3O,EAASpH,EAAOxC,WAEnB4J,EAASpH,EAAOxC,QAAU,IAAI9zB,GAAG+zB,OAChC/zB,GAAG+zB,OAAOC,qBACVsC,EAAOwO,qBAMT,IAFA,IAAIv2U,EAAI,EAEDA,EAAI45T,KAEI,EAAT5sT,GAAc,IAClBA,IAAmB,MAFpBD,IAAiB,GAIL,IALU/M,IAQtBk2U,EAAqBtK,EAAS5rU,GAAKyxS,GAAGq6B,QAAQiG,aAC7ChlU,EACAC,EACA+oU,GAEDM,EAAW,GAAK,EAAID,EAAcrpU,MAClCspU,EAAW,GAAK,EAAID,EAAcppU,OAClCopU,EAAcD,KACbD,EACA/G,EAAOa,SAASA,IAEjBoG,EAAgBF,EAmBjB,IAfIJ,IACHO,EAAW,GAAK,EAAID,EAAcrpU,MAClCspU,EAAW,GAAK,EAAID,EAAcppU,OAClCgjU,EAAS7H,YAAc9C,EACvB2K,EAASsG,QAAU,EACnBF,EAAcD,KAAKL,EAAiB3G,EAAOa,SAASA,KAIrDr+B,GAAG1oE,OAAO0oE,GAAGi+B,OACbj+B,GAAGk/B,UAAUl/B,GAAGo/B,IAAKp/B,GAAGo/B,KACxBf,EAAS7H,YAAcjmU,KAAKg4T,YAC5B8V,EAASsG,QAAU,GAGbt2U,GAAK,EAAGA,GAAK,EAAGA,IAErBk2U,EAAqBtK,EAAS5rU,GAC9B4rU,EAAS5rU,GAAK,KACdq2U,EAAW,GAAK,EAAID,EAAcrpU,MAClCspU,EAAW,GAAK,EAAID,EAAcppU,OAClCopU,EAAcD,KACbD,EACA/G,EAAOa,SAASA,IAEjBv+B,GAAGq6B,QAAQgG,iBAAiBsE,GAC5BA,EAAgBF,EAUjB,GARAvkC,GAAGzoE,QAAQyoE,GAAGi+B,OAGViG,GACHO,EAAcD,KAAKN,GAIfD,EAAiB,CACrB,IAAIY,EAAgBZ,EAChB5N,EAAe9lU,KAAK8lU,aACpBC,EAAc/lU,KAAK+lU,YACvB+H,EAAS7H,YAAc9C,GAEvB8J,EAASnH,EACND,EAAO0O,mBACP1O,EAAO2O,iBAGRvH,EADGnH,EACMD,EAAO0O,mBAAqB,IAAIhlC,GAAG+zB,OAC3C/zB,GAAG+zB,OAAOC,qBACVsC,EAAO4O,mBACP,CAAEC,SAAU,KAGJ7O,EAAO2O,cAAgB,IAAIjlC,GAAG+zB,OACtC/zB,GAAG+zB,OAAOC,qBACVsC,EAAO4O,qBAKVH,EAAc/G,QAAO,WACpBxD,EAAI3uQ,KAAK,GACT84Q,EAAc94Q,KAAK,GACf0qQ,IACHmH,EAAOwB,WAAW,gBAAiB1I,GACnCkH,EAAOwB,WACN,iBACA3I,EAAa1qQ,KAAK,KAGpB6xQ,EAAOuC,WAAW1B,MAIpBv+B,GAAGq6B,QAAQgG,iBAAiBsE,IAG7BrO,EAAOkO,iBACN,mOAQDlO,EAAOwO,mBACN,4gBAgBDxO,EAAO4O,mBACN,01BA8CDpO,EAAkBp0S,MAAQ,OAC1Bo0S,EAAkBplU,KAAO,4CAEzBolU,EAAkB7+B,aAAe,CAChCkwB,WAAY,CACXvyT,KAAM,SACNua,IAAK,EACL/H,IAAK,GACL1V,KAAM,EACNm/S,UAAW,GAEZ8R,UAAW,CACV/tT,KAAM,SACNua,IAAK,EACL/H,IAAK,GACL1V,KAAM,IACNm/S,UAAW,GAEZA,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDlD,EAAkB3nU,UAAU4kT,YAAc,WACzC,MAAO,CACN,CAAC,UAAW,WACZ,CAAC,YAAa,UACd,CAAC,YAAa,UACd,CAAC,cAAe,UAChB,CAAC,aAAc,UACf,CAAC,cAAe,YAIlB+iB,EAAkB3nU,UAAUglT,aAAe,WAC1C,MAAO,CAAC,CAAC,UAAW,aAGrB2iB,EAAkB3nU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK6lS,uBAIV,GACC7lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,eACL,IAAvCnpU,KAAKylS,mBAAmB,WAFzB,CAQYskC,EAAIl/T,MACHk/T,EAAIj/T,OADjB,IAGIw7T,EAAKtmU,KAAKsmU,GACdA,EAAGpT,UAAYlzT,KAAKylS,mBAAmB,aACvC6gC,EAAG5O,WAAa13T,KAAKylS,mBAAmB,cACxC6gC,EAAGnD,UAAYnjU,KAAKylS,mBAAmB,aACvC6gC,EAAGtO,YAAch4T,KAAKylS,mBAAmB,eACzC6gC,EAAGR,aAAe9lU,KAAK2yR,aAAa,GACpC2zC,EAAGP,YAAc/lU,KAAKylS,mBAAmB,eACzC6gC,EAAG5wO,MAAQ11F,KAAKkhB,WAAWw0E,MAE3B,IAAIvwF,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,UAAW2oB,GAEhE6J,EAAkB,KAClB5zU,KAAK4lS,kBAAkB,MAC1BguC,EAAkB5zU,KAAK20U,mBAGtBf,EAAgBzuU,MAAQ4kU,EAAI5kU,MAC5ByuU,EAAgBhyT,QAAUmoT,EAAInoT,SAE9BgyT,EAAkB5zU,KAAK20U,iBAAmB,IAAIplC,GAAGq6B,QAChD,EACA,EACA,CACCzkU,KAAM4kU,EAAI5kU,KACVyc,OAAQmoT,EAAInoT,OACZoN,OAAQygR,GAAG26B,WAMf,IAAIuJ,EAAe,KACf3zU,KAAK4lS,kBAAkB,MAC1B+tC,EAAe3zU,KAAK40U,gBAGnBjB,EAAa9oU,OAASk/T,EAAIl/T,OAC1B8oU,EAAa7oU,QAAUi/T,EAAIj/T,QAC3B6oU,EAAaxuU,MAAQA,GACrBwuU,EAAa/xT,QAAUmoT,EAAInoT,SAE3B+xT,EAAe3zU,KAAK40U,cAAgB,IAAIrlC,GAAGq6B,QAC1CG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAMA,EAAMyc,OAAQmoT,EAAInoT,OAAQoN,OAAQygR,GAAG26B,WAKhD,IAAIkK,EAAgB,KAChBt0U,KAAK4lS,kBAAkB,MAC1B0uC,EAAgBt0U,KAAKqzU,iBAGpBiB,EAAczpU,OAASk/T,EAAIl/T,OAC3BypU,EAAcxpU,QAAUi/T,EAAIj/T,QAC5BwpU,EAAcnvU,MAAQA,GACtBmvU,EAAc1yT,QAAUmoT,EAAInoT,SAE5B0yT,EAAgBt0U,KAAKqzU,eAAiB,IAAI9jC,GAAGq6B,QAC5CG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAMA,EAAMyc,OAAQmoT,EAAInoT,OAAQoN,OAAQygR,GAAG26B,WAOhD9D,EAAGmN,QAAQ1J,EAAKuK,EAAeX,EAAcC,GAEzC5zU,KAAK4lS,kBAAkB,IAC1B5lS,KAAK4yR,cAAc,EAAG0hD,GAEnBt0U,KAAK4lS,kBAAkB,IAC1B5lS,KAAK4yR,cAAc,EAAGghD,GAEnB5zU,KAAK4lS,kBAAkB,IAC1B5lS,KAAK4yR,cAAc,EAAG+gD,QArFtB3zU,KAAK4yR,cAAc,EAAGm3C,IAwFxBx8C,EAAUkE,iBAAiB,eAAgB40C,GAS3CE,EAA4Bt0S,MAAQ,kBACpCs0S,EAA4BtlU,KAC3B,2DAEDslU,EAA4BsO,WAAa,GACzCtO,EAA4BuO,SAAW,GAEvCvO,EAA4B7nU,UAAUg0R,UAAY,WACjD,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIqQ,EAAOj2S,KAAK2oU,cAGd1yB,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAEjBnF,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CAC1D3F,KAAM4kU,EAAI5kU,KACVyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAKb,IAAIphB,EAAShpT,KAAKkhB,WAAW8nS,OAK7B,GAAc,IAJdA,EAAStxS,KAAKgI,IACbhI,KAAKE,MAAMoxS,GACXud,EAA4BsO,aAE7B,CAMA,IAAI1R,EAAYnjU,KAAKkhB,WAAWiiT,UAG5BmQ,EAAS/lD,EAAUgmD,cAClBD,QAAwBz5T,IAAdlP,OAAO8kS,KACrB6jC,EAAS7jC,GAAGrZ,OAAOtrR,OAAS2kS,GAAGrZ,OAAOvrR,OAElCyoU,IACJA,EAAS,GAEVA,EAAStzU,KAAKkhB,WAAW0kT,gBAAkB0N,EAAS,EAE/C/M,EAA4BuO,SAAS9rB,KACzCud,EAA4BuO,SAAS9rB,GAAU,IAAIzZ,GAAG+zB,OACrDA,OAAOC,qBACPgD,EAA4BvF,aAC5B,CAAE+T,OAAQ/rB,EAAOhuR,QAAQ,MAI3B,IAAIiyS,EAAS1G,EAA4BuO,SAAS9rB,GAC9C2kB,EAAOp+B,GAAGq+B,KAAKC,gBACnB9D,EAAI3uQ,KAAK,GAETp7D,KAAK2oU,cAAc4E,QAAO,WACzBN,EACEa,SAAS,CACTvM,UAAW,EACX0E,YAAa9C,EACb6R,aAAc,CAACjL,EAAIl/T,MAAOk/T,EAAIj/T,QAC9BmqU,cAAe,CAAC,EAAIlL,EAAIl/T,MAAO,EAAIk/T,EAAIj/T,UAEvCklS,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,oBAvC1B3oU,KAAK4yR,cAAc,EAAGm3C,KA2CxBxD,EAA4BvF,aAC3B,kmEA8FDzzC,EAAUkE,iBACT,mBACA80C,GAgBDC,EAAwBv0S,MAAQ,cAChCu0S,EAAwBvlU,KACvB,iDAEDulU,EAAwBqO,WAAa,GACrCrO,EAAwBsO,SAAW,GAEnCtO,EAAwB9nU,UAAUg0R,UAAY,WAC7C,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIqQ,EAAOj2S,KAAK2oU,cAEd1yB,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAEjBnF,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CAC1D3F,KAAM4kU,EAAI5kU,KACVyc,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAIR5D,EAAwB0O,eAC5B1O,EAAwB0O,aAAe,IAAI3lC,GAAG+zB,OAC7CA,OAAOC,qBACPiD,EAAwB2O,oBAG1B,IAAIlI,EAASzG,EAAwB0O,aACjCvH,EAAOp+B,GAAGq+B,KAAKC,gBAEfpH,EAAQzmU,KAAKkhB,WAAWulT,MACxBxiU,EAAIjE,KAAKkhB,WAAWjd,EACpBvE,EAAIM,KAAKkhB,WAAWxhB,EACpBgnU,EAAU1mU,KAAKkhB,WAAWwlT,QAC1BC,EAAM3mU,KAAKkhB,WAAWylT,IAC1BoD,EAAI3uQ,KAAK,GACTp7D,KAAK2oU,cAAc4E,QAAO,WACzBN,EACEa,SAAS,CACTjiR,IAAK,EACL46Q,MAAOA,EACPxiU,EAAGA,EACHvE,EAAGA,EACHgnU,QAASA,EACTC,IAAKA,EACLyO,SAAUrL,EAAIl/T,MACdwqU,UAAWtL,EAAIj/T,SAEfklS,KAAK29B,MAGR3tU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,iBAI5BnC,EAAwB2O,kBACvB,wrDA2DD5nD,EAAUkE,iBAAiB,eAAgB+0C,GAU3CI,EAAoB30S,MAAQ,SAC5B20S,EAAoB3lU,KAAO,iBAE3B2lU,EAAoBzH,gBAAiB,EAErCyH,EAAoBloU,UAAU0gU,WAAa,WAC1C,GAAK5kQ,UAAU8kQ,aAAf,CAKAt/T,KAAKu/T,uBAAwB,EAG7B,IAAIx7P,EAAc,CACjBy7P,OAAO,EACPC,MAAO,CAAEzB,WAAYh+T,KAAKkhB,WAAW88S,aAEtCxjQ,UAAU6kQ,aACRC,aAAav7P,GACbzhE,KAAKtC,KAAK0/T,YAAYtkQ,KAAKp7D,OAF7B,OAMA,SAAsBW,GACrBimU,EAAoBzH,gBAAiB,EACrCzhT,QAAQ6oL,IAAI,kBAAmB5lM,GAC/B68Q,EAAKmiD,gBAAiB,EACtBniD,EAAKgnB,SAAW,MAChBhnB,EAAKz8M,QAAQ,mBANd,IAAIy8M,EAAOx9Q,OAUZ4mU,EAAoBloU,UAAUkhU,YAAc,WAC3C,GAAI5/T,KAAK2/T,eAAgB,CACxB,IAAIE,EAAS7/T,KAAK2/T,eAAeG,YACjC,GAAID,EAAO9hU,OACV,IAAK,IAAID,EAAI,EAAGA,EAAI+hU,EAAO9hU,SAAUD,EACpC+hU,EAAO/hU,GAAGiW,OAGZ6yT,EAAoBzH,gBAAiB,EACrCn/T,KAAK2/T,eAAiB,KACtB3/T,KAAKy+T,OAAS,KACdz+T,KAAKwkS,SAAW,QAChBxkS,KAAK+gE,QAAQ,mBAIf6lQ,EAAoBloU,UAAUghU,YAAc,SAASK,GACpD//T,KAAK2/T,eAAiBI,EAEtB//T,KAAKwkS,SAAW,QAChB,IAAIi7B,EAAQz/T,KAAKy+T,OACZgB,KACJA,EAAQr1T,SAASsF,cAAc,UACzBkvT,UAAW,EACjBa,EAAMO,UAAYD,EAClB//T,KAAKy+T,OAASgB,EAGdA,EAAMQ,iBAAmB,SAASt/T,GAEjCimU,EAAoBzH,gBAAiB,EACrCzhT,QAAQ6oL,IAAI5lM,KAGdX,KAAK+gE,QAAQ,eAAgB0+P,IAG9BmH,EAAoBloU,UAAUwlS,kBAAoB,SACjDttR,EACA5U,GAEY,cAAR4U,IACH5W,KAAKkhB,WAAW88S,WAAah8T,EAC7BhC,KAAK4/T,cACL5/T,KAAKo/T,eAIPwH,EAAoBloU,UAAU28R,UAAY,WACzC,GAAKr7R,KAAK2/T,eAAV,CAIA,IAAIE,EAAS7/T,KAAK2/T,eAAeG,YACjC,GAAID,EAAO9hU,OACV,IAAK,IAAID,EAAI,EAAGA,EAAI+hU,EAAO9hU,SAAUD,EACpC+hU,EAAO/hU,GAAGiW,OAIZ/T,KAAK2/T,eAAiB,KACtB3/T,KAAKy+T,OAAS,OAGfmI,EAAoBloU,UAAU46R,iBAAmB,SAASrgJ,GACrDj5I,KAAK0iM,MAAM+vE,WAAazyQ,KAAKyM,KAAK,IAAM,IAIvCzM,KAAKy+T,SAKVxlL,EAAIr9D,OACCq9D,EAAIy2J,MAIJ1vS,KAAKs1U,gBACRr8L,EAAI69J,UACH92S,KAAKs1U,eACL,EACA,EACAt1U,KAAKyM,KAAK,GACVzM,KAAKyM,KAAK,IARZwsI,EAAI69J,UAAU92S,KAAKy+T,OAAQ,EAAG,EAAGz+T,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IAY1DwsI,EAAIu9J,YAGLowB,EAAoBloU,UAAUg0R,UAAY,WAKzC,GAJ2B,MAAvB1yR,KAAK2/T,gBAA2B3/T,KAAKu/T,uBACxCv/T,KAAKo/T,aAGDp/T,KAAKy+T,QAAWz+T,KAAKy+T,OAAON,WAAjC,CAIA,IAAItzT,EAAQ7K,KAAKy+T,OAAON,WACpBrzT,EAAS9K,KAAKy+T,OAAOL,YAErBnoB,EAAOj2S,KAAKs1U,eAWhB,GAVKr/B,GAAQA,EAAKprS,OAASA,GAASorS,EAAKnrS,QAAUA,IAClD9K,KAAKs1U,eAAiB,IAAI/lC,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CACnD8W,OAAQ6tR,GAAG83B,IACXv4S,OAAQygR,GAAG26B,UAIbpqU,KAAKs1U,eAAepE,YAAYlxU,KAAKy+T,QACrCz+T,KAAKs1U,eAAepyC,UAAYljS,KAAKkjS,QAEjCljS,KAAKkhB,WAAW2lT,aACH3G,EAAcuJ,uBACpBzpU,KAAKkhB,WAAW2lT,cAAgB7mU,KAAKs1U,eAGhDt1U,KAAK4yR,cAAc,EAAG5yR,KAAKs1U,gBAC3B,IAAK,IAAIx3U,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAC1C,GAAKkC,KAAKo8R,QAAQt+R,GAGlB,OAAQkC,KAAKo8R,QAAQt+R,GAAG8Y,MACvB,IAAK,QACJ5W,KAAK4yR,cAAc90R,EAAGkC,KAAKy+T,OAAON,YAClC,MACD,IAAK,SACJn+T,KAAK4yR,cAAc90R,EAAGkC,KAAKy+T,OAAOL,gBAMtCwI,EAAoBloU,UAAUglT,aAAe,WAC5C,MAAO,CACN,CAAC,QAAS,UACV,CAAC,SAAU,UACX,CAAC,eAAgBn2B,EAAUuC,OAC3B,CAAC,gBAAiBvC,EAAUuC,OAC5B,CAAC,eAAgBvC,EAAUuC,SAI7BvC,EAAUkE,iBAAiB,iBAAkBm1C,GAgB7CE,EAAa70S,MAAQ,UACrB60S,EAAa7lU,KAAO,sCAEpB6lU,EAAat/B,aAAe,CAC3B4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDzC,EAAapoU,UAAU4kT,YAAc,WACpC,MAAO,CAAC,CAAC,UAAW,aAGrBwjB,EAAapoU,UAAUg0R,UAAY,WAClC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAI5B,GACC5lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,eACL,IAAvCnpU,KAAKylS,mBAAmB,WAFzB,CAQA,IAAIwQ,EAAOj2S,KAAK2oU,cAEd1yB,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAEjB8wS,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAClCG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAM4kU,EAAI5kU,KAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,UAIhD,IAAI6C,EAASnG,EAAazD,QACrB4J,IACJA,EAASnG,EAAazD,QAAU,IAAI9zB,GAAG+zB,OACtC/zB,GAAG+zB,OAAOC,qBACVuD,EAAa9F,eAIf,IAAI/zS,EAASjtB,KAAK2yR,aAAa,GACjB,MAAV1lQ,IACHA,EAASjtB,KAAKkhB,WAAW+L,QAG1B,IAAI6gT,EAAW9tU,KAAKihU,UACpB6M,EAASrM,SAAWx0S,EAGpBwiR,GAAGzoE,QAAQyoE,GAAG+9B,YACdv3B,EAAKs3B,QAAO,WACXxD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAGqjB,QAzCrBj2S,KAAK4yR,cAAc,EAAGm3C,IA4CxBjD,EAAa9F,aACZ,23CAoDDzzC,EAAUkE,iBAAiB,iBAAkBq1C,GAS7CE,EAAsB/0S,MAAQ,YAC9B+0S,EAAsB/lU,KAAO,4CAC7B+lU,EAAsBx/B,aAAe,CACpC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDvC,EAAsBtoU,UAAUg0R,UAAY,WAC3C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIzmS,EAAOa,KAAK2yR,aAAa,GAC7B,GAAIxzR,EAAJ,CAGA,IAAI8nU,EAAWjnU,KAAKkhB,WAAW+lT,SAC3Bj3N,EAAIhwG,KAAKkhB,WAAWrW,MACpBqsD,EAAIl3D,KAAKkhB,WAAWpW,OACpBklG,GAAM94C,IAET84C,EAAIt4F,KAAKE,MAAMzY,EAAKpB,OAASkpU,GAC7B/vQ,EAAI,GAEL,IAAIt1C,EAAS6tR,GAAG3oR,KACA,GAAZmgT,EACHrlT,EAAS6tR,GAAG83B,IACQ,GAAZN,IACRrlT,EAAS6tR,GAAG8lC,WAEb,IAAIt/B,EAAOj2S,KAAK2oU,cACZxjU,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,WACnDnL,GAAQA,EAAKprS,OAASmlG,GAAKimM,EAAKnrS,QAAUosD,GAAK++O,EAAK9wS,MAAQA,IACjE8wS,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAS55N,EAAG94C,EAAG,CAAE/xD,KAAMA,EAAMyc,OAAQA,EAAQoN,OAAQygR,GAAG26B,UAG5Fn0B,EAAKu/B,WAAYr2U,GACjBa,KAAK4yR,cAAc,EAAGqjB,MAGvB1oB,EAAUkE,iBAAiB,mBAAoBu1C,GAyB/CE,EAAmBj1S,MAAQ,QAC3Bi1S,EAAmBjmU,KAAO,4CAC1BimU,EAAmB1/B,aAAe,CACjC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDrC,EAAmBxoU,UAAUg0R,UAAY,WACxC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAExBsjB,EAAOj2S,KAAK2oU,cAChB,IAAIoB,EAKH,OAHG/pU,KAAKw5T,cAAiBx5T,KAAKonU,gBAC7BpnU,KAAKy1U,mBACNz1U,KAAK4yR,cAAc,EAAG5yR,KAAKonU,gBAI5B,IAAIjiU,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,UAAW2oB,GAG9D9zB,GAAQA,EAAK9wS,MAAQA,GAAQ8wS,EAAKprS,OAASk/T,EAAIl/T,OAASorS,EAAKnrS,QAAUi/T,EAAIj/T,QAAUmrS,EAAKr0R,QAAUmoT,EAAInoT,SAC7Gq0R,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAASG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CAAE3F,KAAMA,EAAMyc,OAAQmoT,EAAInoT,OAAQoN,OAAQygR,GAAG26B,UAEjH,IAAI6C,EAAS/F,EAAmB7D,QAC3B4J,IACJA,EAAS/F,EAAmB7D,QAAU,IAAI9zB,GAAG+zB,OAAQ/zB,GAAG+zB,OAAOC,qBAAsB2D,EAAmBlG,gBAGtGhhU,KAAKw5T,cAAiBx5T,KAAKonU,gBAC7BpnU,KAAKy1U,cAEN,IAAI3H,EAAW9tU,KAAKihU,UAChByU,EAAgB11U,KAAKonU,eAGzBnxB,EAAKs3B,QAAO,WACX99B,GAAGzoE,QAAQyoE,GAAG+9B,YACdzD,EAAI3uQ,KAAK,GACTs6Q,EAAct6Q,KAAK,GACnB6xQ,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAGqjB,KAGvBixB,EAAmBxoU,UAAUusT,YAAc,SAASxoT,EAAEo7S,GAGrD,GADIA,EAASA,GAAU79S,KAAKsnU,QAAQC,IACpC,CAEA,IAAI,IAAIzpU,EAAI,EAAGA,EAAI+/S,EAAO9/S,OAAS,IAAKD,EACxC,CACC,IAAI4B,EAAIm+S,EAAO//S,GACXotT,EAAKrN,EAAO//S,EAAE,GAClB,KAAGotT,EAAG,GAAKzoT,GAAX,CAEA,IAAItB,EAAK+pT,EAAG,GAAKxrT,EAAE,GACnB,GAAIgY,KAAKmgD,IAAI12D,GAAK,KACjB,OAAOzB,EAAE,GACV,IAAIyrT,GAAW1oT,EAAI/C,EAAE,IAAMyB,EAC3B,OAAOzB,EAAE,IAAM,EAAMyrT,GAAWD,EAAG,GAAKC,GAEzC,OAAO,IAGR+b,EAAmBxoU,UAAU+2U,YAAc,WAK1C,IAHA,IAAIj4T,EAASxd,KAAKyuF,QACduuM,EAAMx/Q,EAAOzf,OAAS,EACtBu7B,EAAQt5B,KAAKkhB,WAAWimT,eACpBrpU,EAAI,EAAGA,EAAIk/R,IAAOl/R,EAC1B,CACC,GAAGw7B,EAEF9b,EAAS,EAAF1f,GAAO4Z,KAAKw6E,MAA8C,IAAvClyF,KAAKirT,YAAYntT,EAAEk/R,EAAIh9R,KAAKsnU,QAAQlN,GAAO,EAAE,KACvE58S,EAAS,EAAF1f,EAAI,GAAK4Z,KAAKw6E,MAA8C,IAAvClyF,KAAKirT,YAAYntT,EAAEk/R,EAAIh9R,KAAKsnU,QAAQnD,GAAO,EAAE,KACzE3mT,EAAS,EAAF1f,EAAI,GAAK4Z,KAAKw6E,MAA8C,IAAvClyF,KAAKirT,YAAYntT,EAAEk/R,EAAIh9R,KAAKsnU,QAAQlpC,GAAO,EAAE,SAG1E,CACC,IAAIh7R,EAAIpD,KAAKirT,YAAYntT,EAAEk/R,GAC3Bx/Q,EAAS,EAAF1f,GAAO0f,EAAS,EAAF1f,EAAI,GAAK0f,EAAS,EAAF1f,EAAI,GAAK4Z,KAAKw6E,MAAQ,IAAF9uF,EAAM,EAAE,KAElEoa,EAAS,EAAF1f,EAAI,GAAK,IAEbkC,KAAKonU,iBACRpnU,KAAKonU,eAAiB,IAAI73B,GAAGq6B,QAAQ,IAAI,EAAE,CAAEhoT,OAAQ6tR,GAAG3oR,KAAM4oT,UAAWjgC,GAAG26B,OAAQM,KAAMj7B,GAAG6hC,iBAC9FtxU,KAAKonU,eAAeoO,WAAWh4T,EAAO,MAAK,IAG5C0pT,EAAmBxoU,UAAUykS,YAAc,SAAS1/R,GAEnD,IAAIkyU,EAAS,GACb,IAAI,IAAI73U,KAAKkC,KAAKsnU,QACjBqO,EAAO73U,GAAKkC,KAAKsnU,QAAQxpU,GAAGgG,SAC7BL,EAAEkyU,OAASA,GAGZzO,EAAmBxoU,UAAU+kS,YAAc,SAAShgS,GAEnDzD,KAAKsnU,QAAU7jU,EAAEkyU,OACd31U,KAAKwnU,eACPA,aAAa3pB,OAAS79S,KAAKsnU,SAC5BtnU,KAAKw5T,cAAe,GAGrB0N,EAAmBxoU,UAAU+pO,YAAc,SAAS9nO,EAAG2qT,EAAUhvB,GAEhE,GAAGt8R,KAAKwnU,aACR,CACC,IAAIrmU,EAAInB,KAAKwnU,aAAa/+F,YAAY,CAAC6iF,EAAS,GAAGA,EAAS,GAAGtrT,KAAKynU,cAAenrC,GAGnF,OAFGn7R,GACFnB,KAAKopS,cAAa,GACZjoS,IAIT+lU,EAAmBxoU,UAAUg0S,YAAc,SAAS/xS,EAAG2qT,EAAUhvB,GAEhE,GAAGt8R,KAAKwnU,aACP,OAAOxnU,KAAKwnU,aAAa90B,YAAY,CAAC4Y,EAAS,GAAGA,EAAS,GAAGtrT,KAAKynU,cAAenrC,IAGpF4qC,EAAmBxoU,UAAU80S,UAAY,SAAS7yS,EAAG2qT,EAAUhvB,GAE9D,GAAGt8R,KAAKwnU,aACP,OAAOxnU,KAAKwnU,aAAah0B,UAAU,CAAC8X,EAAS,GAAGA,EAAS,GAAGtrT,KAAKynU,cAAenrC,GACjFt8R,KAAKopS,cAAa,IAGnB89B,EAAmB0O,oBAAsB,CAAE,IAAM,OAAO,EAAI,OAAO,EAAI,OAAO,EAAI,QAElF1O,EAAmBxoU,UAAU46R,iBAAmB,SAASrgJ,EAAKqjJ,GAE7D,IAAGt8R,KAAK0iM,MAAM+vE,UAAd,CAGIzyQ,KAAKwnU,eACRxnU,KAAKwnU,aAAe,IAAIj6C,EAAUqwB,YAAY59S,KAAKsnU,QAAQlN,IAC5DnhL,EAAIr9D,OACJq9D,EAAIqyJ,UAAU,EAAEtrS,KAAKynU,cACrB,IAAIoO,EAAU71U,KAAKokS,QAAQ,GAAGpiS,MAE3BhC,KAAKkhB,WAAWimT,gBAEJ,OAAX0O,IAEF71U,KAAKokS,QAAQ,GAAGpiS,MAAQ6zU,EAAU,IAClC71U,KAAKokS,QAAQ,GAAG9kE,UAAW,GAE5Bt/N,KAAKwnU,aAAa3pB,OAAS79S,KAAKsnU,QAAQlN,EACxCp6T,KAAKwnU,aAAax3B,KAAM/2J,EAAK,CAACj5I,KAAKyM,KAAK,GAAGzM,KAAKyM,KAAK,GAAKzM,KAAKynU,cAAenrC,EAAa,OAAQ4qC,EAAmB0O,oBAAoBxb,GAAG,GAC7InhL,EAAI68L,yBAA2B,UAC/B91U,KAAKwnU,aAAa3pB,OAAS79S,KAAKsnU,QAAQnD,EACxCnkU,KAAKwnU,aAAax3B,KAAM/2J,EAAK,CAACj5I,KAAKyM,KAAK,GAAGzM,KAAKyM,KAAK,GAAKzM,KAAKynU,cAAenrC,EAAa,KAAM4qC,EAAmB0O,oBAAoBzR,GAAG,GAC3InkU,KAAKwnU,aAAa3pB,OAAS79S,KAAKsnU,QAAQlpC,EACxCp+R,KAAKwnU,aAAax3B,KAAM/2J,EAAK,CAACj5I,KAAKyM,KAAK,GAAGzM,KAAKyM,KAAK,GAAKzM,KAAKynU,cAAenrC,EAAa,KAAM4qC,EAAmB0O,oBAAoBx3C,GAAG,GAC3InlJ,EAAI68L,yBAA2B,gBAI/B91U,KAAKokS,QAAQ,GAAGpiS,MAAQ6zU,EAAU,MAClC71U,KAAKokS,QAAQ,GAAG9kE,UAAW,GAG5Bt/N,KAAKwnU,aAAa3pB,OAAS79S,KAAKsnU,QAAQuO,GACxC71U,KAAKwnU,aAAax3B,KAAM/2J,EAAK,CAACj5I,KAAKyM,KAAK,GAAGzM,KAAKyM,KAAK,GAAKzM,KAAKynU,cAAenrC,EAAat8R,KAAKkhB,WAAWimT,eAAiB,KAAO,OAAQD,EAAmB0O,oBAAoBC,IAClL58L,EAAIu9J,YAGL0wB,EAAmBlG,aAClB,4gBAeDzzC,EAAUkE,iBAAiB,gBAAiBy1C,GAW5CQ,EAAiBz1S,MAAQ,aACzBy1S,EAAiBzmU,KAAO,8BAExBymU,EAAiBlgC,aAAe,CAC/BmgC,WAAY,CAAE3qJ,OAAQ,SAAUt9J,IAAK,EAAG/H,IAAK,GAC7CypS,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD7B,EAAiBhpU,UAAUg0R,UAAY,WACtC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIqQ,EAAOj2S,KAAK2oU,cAEd1yB,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAEjB8wS,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAClCG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAM4kU,EAAI5kU,KAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,UAIhD,IAAI6C,EAASvF,EAAiBrE,QACzB4J,IACJA,EAASvF,EAAiBrE,QAAU,IAAI9zB,GAAG+zB,OAC1C/zB,GAAG+zB,OAAOC,qBACVmE,EAAiB1G,eAIThhU,KAAKkhB,WAAWymT,WAA1B,IACIoO,EAAY/1U,KAAK2yR,aAAa,GACjB,MAAbojD,IACG/1U,KAAKkhB,WAAWymT,WAAaoO,GAEpC,IAAIjI,EAAW9tU,KAAKihU,UAGpBhrB,EAAKs3B,QAAO,WACX99B,GAAGzoE,QAAQyoE,GAAG+9B,YACdzD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAGqjB,KAGvByxB,EAAiB1G,aAChB,6QAUDzzC,EAAUkE,iBAAiB,qBAAsBi2C,GAwBjDG,EAAkB51S,MAAQ,eAC1B41S,EAAkB5mU,KACjB,mDAED4mU,EAAkBrgC,aAAe,CAChC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrD1B,EAAkBnpU,UAAU4kT,YAAc,WACzC,MAAO,CAAC,CAAC,UAAW,aAGrBukB,EAAkBnpU,UAAUg0R,UAAY,WACvC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAKo3C,GAIA/pU,KAAK4lS,kBAAkB,GAI5B,GACC5lS,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,eACL,IAAvCnpU,KAAKylS,mBAAmB,WAFzB,CAQA,IAAIwQ,EAAOj2S,KAAK2oU,cAGd1yB,GACDA,EAAKprS,OAASk/T,EAAIl/T,OAClBorS,EAAKnrS,QAAUi/T,EAAIj/T,QACnBmrS,EAAK9wS,MAAQ4kU,EAAI5kU,OAEjB8wS,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAClCG,EAAIl/T,MACJk/T,EAAIj/T,OACJ,CAAE3F,KAAM4kU,EAAI5kU,KAAMyc,OAAQ6tR,GAAG3oR,KAAMkI,OAAQygR,GAAG26B,UAIhD,IAAIj9I,EAAMntL,KAAK2yR,aAAa,GACjB,MAAPxlG,IACHA,EAAMntL,KAAKkhB,WAAW4mT,aAGvB,IAAIgG,EAAW9tU,KAAKihU,UAChBgM,EAAS,KAET9/I,EAAIltL,cAAgB8sH,QACvB/sH,KAAKkhB,WAAW4mT,YAAc36I,EAC9B2gJ,EAAS5F,cAAgBloU,KAAKkhB,WAAW4mT,aACzCmF,EAASpF,EAAkBxE,WAE1B4J,EAASpF,EAAkBxE,QAAU,IAAI9zB,GAAG+zB,OAC3C/zB,GAAG+zB,OAAOC,qBACVsE,EAAkB7G,gBAGV7zI,EAAIltL,cAAgBsvS,GAAGq6B,UACjCkE,EAASkI,kBAAoB7oJ,EAAI/xH,KAAK,IACtC6xQ,EAASpF,EAAkBoO,mBAE1BhJ,EAASpF,EAAkBoO,gBAAkB,IAAI1mC,GAAG+zB,OACnD/zB,GAAG+zB,OAAOC,qBACVsE,EAAkB7G,aAClB,CAAEkV,YAAa,OAKlBpI,EAAS9F,YACRhoU,KAAKkhB,WAAW6mT,UAAY/nU,KAAKkhB,WAAW6mT,UAC7C+F,EAASpM,QAAU1hU,KAAKkhB,WAAWw0E,MACnCo4O,EAAS7F,SAAW,EAAIjoU,KAAKkhB,WAAW8gT,MAGxCvyB,GAAGzoE,QAAQyoE,GAAG+9B,YACdv3B,EAAKs3B,QAAO,WACXxD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,oBA7D1B3oU,KAAK4yR,cAAc,EAAGm3C,IAgExBlC,EAAkB7G,aACjB,i/CAiDDzzC,EAAUkE,iBAAiB,sBAAuBo2C,GA0BlDM,EAAoBl2S,MAAQ,SAC5Bk2S,EAAoBlnU,KAAO,mCAE3BknU,EAAoB3gC,aAAe,CAClC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,aACpD1+T,MAAO,CAAE1F,KAAM,SAAUi8S,UAAW,EAAGn/S,KAAM,GAC7C6I,OAAQ,CAAE3F,KAAM,SAAUi8S,UAAW,EAAGn/S,KAAM,GAC9C01T,QAAS,CAAExyT,KAAM,SAAUi8S,UAAW,EAAGn/S,KAAM,EAAGyd,IAAK,EAAG/H,IAAK,KAGhEwwT,EAAoBzpU,UAAU4kT,YAAc,WAC3C,MAAO,CACN,CAAC,OAAQ,UACT,CAAC,cAAe,UAChB,CAAC,UAAW,UACZ,CAAC,QAAS,UACV,CAAC,YAAa,UACd,CAAC,SAAU,UAIb6kB,EAAoBzpU,UAAUg0R,UAAY,WACzC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAI51L,EAA4B,EAAxBhwG,KAAKkhB,WAAWrW,MACpBqsD,EAA6B,EAAzBl3D,KAAKkhB,WAAWpW,OACf,GAALklG,IACHA,EAAIy/L,GAAGu/B,cAAc,IAEb,GAAL93Q,IACHA,EAAIu4O,GAAGu/B,cAAc,IAEtB,IAAI7pU,EAAO+6T,EAAcmK,eAAerqU,KAAKkhB,WAAWkgS,WAEpDnL,EAAOj2S,KAAKooU,SAEdnyB,GACDA,EAAKprS,OAASmlG,GACdimM,EAAKnrS,QAAUosD,GACf++O,EAAK9wS,MAAQA,IAEb8wS,EAAOj2S,KAAKooU,SAAW,IAAI74B,GAAGq6B,QAAQ55N,EAAG94C,EAAG,CAC3C/xD,KAAMA,EACNyc,OAAQ6tR,GAAG83B,IACXv4S,OAAQygR,GAAG26B,UAIb,IAAIpS,EAAch4T,KAAKylS,mBAAmB,eACtCkyB,EAAU33T,KAAKylS,mBAAmB,WAClCrlQ,EAASpgC,KAAKylS,mBAAmB,UACjC/vM,EAAQ11F,KAAKylS,mBAAmB,SAChCszB,EAAY/4T,KAAKylS,mBAAmB,aACpCoyB,EAAO73T,KAAKylS,mBAAmB,QAG/BnnS,EACH,GACA0xG,EACA94C,EACA/xD,EACA6yT,EACAL,EACAjiO,EACAmiO,EACAz3R,EAAO,GACPA,EAAO,GACP24R,EACD,GAAIz6T,GAAO0B,KAAKktL,KAAhB,CAIAltL,KAAKktL,KAAO5uL,EAGZ,IAAIwvU,EAAW9tU,KAAKihU,UACpB6M,EAASzF,cAAgBrQ,EACzB8V,EAASqI,UAAYxe,EACrBmW,EAASnM,SAASn6R,IAAIpH,GACtB0tS,EAASpM,QAAUhsO,EACnBo4O,EAASsI,YAAcrd,EACvB+U,EAASxF,OAAgB,IAAPzQ,EAClBiW,EAASvF,WAAW,GAAKv4N,EACzB89N,EAASvF,WAAW,GAAKrxQ,EAGzB,IAAI+1Q,EAAS9E,EAAoB9E,QAC5B4J,IACJA,EAAS9E,EAAoB9E,QAAU,IAAI9zB,GAAG+zB,OAC7C/zB,GAAG+zB,OAAOC,qBACV4E,EAAoBnH,eAItBvxB,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEdv3B,EAAKs3B,QAAO,WACXN,EAAOa,SAASA,GAAU99B,KAAKT,GAAGq+B,KAAKC,oBAGxC7tU,KAAK4yR,cAAc,EAAGqjB,QAhCrBj2S,KAAK4yR,cAAc,EAAGqjB,KAmCxBkyB,EAAoBnH,aACnB,8hDAqDDzzC,EAAUkE,iBAAiB,iBAAkB02C,GAkB7CK,EAAsBv2S,MAAQ,WAC9Bu2S,EAAsBvnU,KAAO,2DAC7BunU,EAAsB/iB,KAAO,oDAE7B+iB,EAAsBC,aAAe,4EAErCD,EAAsBhhC,aAAe,CACpC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,aACpDrmS,KAAM,CAAE/9B,KAAM,QACd0F,MAAO,CAAE1F,KAAM,SAAUi8S,UAAW,EAAGn/S,KAAM,GAC7C6I,OAAQ,CAAE3F,KAAM,SAAUi8S,UAAW,EAAGn/S,KAAM,IAG/CumU,EAAsB9pU,UAAUwlS,kBAAoB,SAAUttR,EAAM5U,GACvD,QAAR4U,GACH5W,KAAKmvT,YAAantT,IAGpBwmU,EAAsB9pU,UAAUywT,YAAc,SAAUjsR,GAEvD,GADAljC,KAAKwuT,MAAQ,KACRjhC,EAAU2D,cAGf,IACClxR,KAAKwuT,MAAQ,IAAIt8I,SAAU,SAAU,MAAO,OAAQ,SAAS,IAAKhvI,GAClEljC,KAAKwkS,SAAW,UACf,MAAO7oR,GACR3b,KAAKwkS,SAAW,UAChB9mR,QAAQ9Z,MAAM,wBACd8Z,QAAQ9Z,MAAM+X,KAIhB6sT,EAAsB9pU,UAAUg0R,UAAY,WAC3C,IAAIpgH,EAAOtyK,KAAKwuT,MACXl8I,GAAStyK,KAAK4lS,kBAAkB,IAGrC5lS,KAAKq2U,YAAa/jK,IAGnBk2J,EAAsB9pU,UAAU23U,YAAc,SAAUC,GAEvD,IAAIzrU,EAAQ7K,KAAKkhB,WAAWrW,OAAS4kS,GAAGrZ,OAAOvrR,MAC3CC,EAAS9K,KAAKkhB,WAAWpW,QAAU2kS,GAAGrZ,OAAOtrR,OAC7CmrS,EAAOj2S,KAAK2oU,cACZxjU,EAAO+6T,EAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,WACpDnL,GAAQA,EAAKprS,OAASA,GAASorS,EAAKnrS,QAAUA,GAAUmrS,EAAK9wS,MAAQA,IACzE8wS,EAAOj2S,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQ/+T,EAAOC,EAAQ,CACzD8W,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,OACXjlU,KAAMA,KAIR,IAAI/B,EAAIpD,KAAK2yR,aAAa,GAEtBzxQ,EAAalhB,KAAKkhB,WAClBs8P,EAAOx9Q,KACPowT,EAAOpwT,KAAKy3E,MAAMvvE,UAClB+wI,EAAMw2J,GACNrZ,EAASqZ,GAAGrZ,OAiBhB,IAhBIp2R,KAAKkhB,WAAWwnT,iBAAoBznS,EAAOuuQ,oBAE1CxvS,KAAKyrU,SAORr1C,EAASp2R,KAAKyrU,QACdxyL,EAAMj5I,KAAKu2U,OANXngD,EAASp2R,KAAKyrU,QAAUnN,aAAazzT,EAAMC,QAC3CmuI,EAAMj5I,KAAKu2U,KAAOngD,EAAOl9I,WAAW,OAOrCk9I,EAAOvrR,MAAQA,EACfurR,EAAOtrR,OAASA,GAGdmuI,GAAOw2J,GACTwG,EAAKs3B,QAAO,WACX99B,GAAG8G,UACAr1R,EAAW3D,QAEbkyR,GAAG+mC,WAAW,EAAE,EAAE,EAAE,GACpB/mC,GAAGlyR,MAAOkyR,GAAGgnC,mBAGd,IACKH,EAAatmC,KAChBsmC,EAAatmC,KAAKpwS,KAAK49Q,EAAM4Y,EAAQn9I,EAAKm3K,EAAMkmB,EAAclzU,GAE9DkzU,EAAa12U,KAAK49Q,EAAM4Y,EAAQn9I,EAAKm3K,EAAMkmB,EAAalzU,GAEzDo6Q,EAAKgnB,SAAW,UACf,MAAO7oR,GACR6hQ,EAAKgnB,SAAW,UAChB9mR,QAAQ9Z,MAAM,0BACd8Z,QAAQ9Z,MAAM+X,GAEf8zR,GAAG0I,kBAGL,CACIj3R,EAAW3D,OACb07H,EAAI49J,UAAU,EAAE,EAAEzgB,EAAOvrR,MAAMurR,EAAOtrR,QAEvC,IACKwrU,EAAatmC,KAChBsmC,EAAatmC,KAAKpwS,KAAKI,KAAMo2R,EAAQn9I,EAAKm3K,EAAMkmB,EAAclzU,GAE9DkzU,EAAa12U,KAAKI,KAAMo2R,EAAQn9I,EAAKm3K,EAAMkmB,EAAalzU,GAEzDpD,KAAKwkS,SAAW,UACf,MAAO7oR,GACR3b,KAAKwkS,SAAW,UAChB9mR,QAAQ9Z,MAAM,0BACd8Z,QAAQ9Z,MAAM+X,GAEfs6R,EAAKi7B,YAAa96C,GAGnBp2R,KAAK4yR,cAAc,EAAGqjB,IAGvB1oB,EAAUkE,iBAAiB,mBAAoB+2C,GAgB/CI,EAAmB32S,MAAQ,QAC3B22S,EAAmB3nU,KAAO,sBAE1B2nU,EAAmBphC,aAAe,CACjCqhC,UAAW,CAAE7rJ,OAAQ,SACrBokI,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGrDX,EAAmBlqU,UAAUg0R,UAAY,WACxC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,cAKhD,GAAKY,EAAL,CAIA/pU,KAAK+sU,KAAO7M,EAAc8J,iBACzBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAGjB3R,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAETxtU,KAAKihU,YACTjhU,KAAKihU,UAAY,CAChBM,UAAW,EACXmV,YAAa12U,KAAKkhB,WAAW2nT,UAC7B1C,YAAa,EACbwQ,QAAS,IAGX,IAAI7I,EAAW9tU,KAAKihU,UAEhB0M,EAAOC,KAAKC,gBACZZ,EAASrE,EAAmBvF,QAC3B4J,IACJA,EAASrE,EAAmBvF,QAAU,IAAI9zB,GAAG+zB,OAC5C/zB,GAAG+zB,OAAOC,qBACVqF,EAAmB5H,eAIrB8M,EAAS4I,YAAc12U,KAAKkhB,WAAW2nT,UACvCiF,EAAS3H,YAAcnmU,KAAKkhB,WAAWgyS,UACvC4a,EAAS6I,QAAU32U,KAAKkhB,WAAW4nT,MAEnC9oU,KAAK+sU,KAAKQ,QAAO,WAChBxD,EAAI3uQ,KAAK,GACT6xQ,EAAOa,SAASA,GAAU99B,KAAK29B,MAGhC3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YA7C1B/sU,KAAK4yR,cAAc,EAAGm3C,KAgDxBnB,EAAmB5H,aAClB,6eAeDzzC,EAAUkE,iBAAiB,gBAAiBm3C,GAU5CG,EAAyB92S,MAAQ,qBACjC82S,EAAyB9nU,KAAO,wEAEhC8nU,EAAyBrqU,UAAUg0R,UAAY,WAC9C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAGA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAMo3C,GAAOA,EAAI4C,cAAgBp9B,GAAGqnC,iBAApC,EAEI52U,KAAKkrU,WAAelrU,KAAKkrU,UAAUpgU,QAAUi/T,EAAIj/T,QAAU9K,KAAKkrU,UAAU/lU,MAAQ4kU,EAAI5kU,OACzFnF,KAAKkrU,UAAY,MAClB,IAAIlC,EAAMhpU,KAAKylS,mBAAmB,OAClCzlS,KAAKkrU,UAAY37B,GAAGq6B,QAAQiN,mBAAoB9M,EAAKA,EAAIj/T,OAAQ9K,KAAKkrU,WAAW,EAAMlC,GACvFhpU,KAAK4yR,cAAe,EAAG5yR,KAAKkrU,cAG7B39C,EAAUkE,iBAAkB,6BAA8Bs3C,IA92K3D,CA+2KG/oU,MAEH,SAAUihC,GAEN,GAAiB,oBAANsuQ,GAAX,CAGA,IAAIhiB,EAAYtsP,EAAOssP,UAGtBupD,GAFe71S,EAAOk1P,aAEF,QAEpB4gD,EAAYxpD,EAAUypD,QAAU,GAGhCC,GADaF,EAAUG,WAAa,CAAC,QAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,YAAY,eACzEH,EAAUE,iBAAmB,CAAC,QAAQ,OAAO,OAAO,SAEvEE,EAAsB,CACzB,QAAW,uBACX,QAAW,uBACX,IAAO,iBACP,IAAO,iBACP,IAAO,iBACP,KAAQ,cACR,KAAQ,cACR,KAAQ,cACR,MAAS,kBACT,IAAO,iBACP,IAAO,aACP,IAAO,aACP,KAAQ,cACR,KAAQ,cACR,KAAQ,cACR,YAAe,qBACf,IAAO,aACP,KAAQ,cACR,MAAS,eACT,MAAS,eACT,KAAQ,cACR,MAAS,eACT,IAAO,iBACP,IAAO,iBACP,IAAO,iBACP,MAAS,6CACT,IAAO,qBACP,KAAQ,+BACR,WAAc,qCACd,OAAS,oBACT,SAAW,6BACX,UAAY,mBACZ,IAAO,qBACP,MAAS,4BACT,QAAW,8BACX,QAAW,0CAIRC,EAAiB,GACjBC,EAAsB,GAC1BC,IAEAP,EAAUQ,UAAY,uBAmHtBR,EAAUS,mBAAqBA,EAC/BT,EAAUU,eAAiBA,EAC3BV,EAAUW,gBAAkBA,EAC5BX,EAAUY,qBAAuBA,EACjCZ,EAAUO,sBAAwBA,EAGlC,IAAIM,EAAcrqD,EAAUqqD,YAAc,SAAsBx0U,EAAG+B,EAAMi8S,GAExE,IAAI7gT,EAAI,EAGR,GAFgB,MAAb6gT,IACF7gT,EAAI6gT,IACDj8S,EAEH,GAAG/B,EAAEnD,cAAgB8sH,OACpB5nH,EAAO,YACH,KAAG/B,EAAErF,OAcT,KAAM,gCAAkCqF,EAAEnD,YAZ1C,OAAOmD,EAAErF,QAER,KAAK,EAAGoH,EAAO,OAAQ,MACvB,KAAK,EAAGA,EAAO,OAAQ,MACvB,KAAK,EAAGA,EAAO,OAAQ,MACvB,KAAK,EAAGA,EAAO,OAAQ,MACvB,KAAK,GAAIA,EAAO,OAAQ,MACxB,QACC,KAAM,oCAMV,OAAOA,GAEN,IAAK,QAAS,OAAO/B,EAAE43B,QAAQz6B,GAC/B,IAAK,OAAQ,MAAO,QAAU6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IACxE,IAAK,SACL,IAAK,OAAQ,MAAO,QAAU6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAChG,IAAK,SACL,IAAK,OAAQ,MAAO,QAAU6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IAAM6C,EAAE,GAAG43B,QAAQz6B,GAAK,IACxH,IAAK,OAAQ,MAAO,4CACpB,IAAK,OAAQ,MAAO,4EACpB,QACC,MAA2C4E,EAG7C,MAAO,IAIJ0yU,EAAgBtqD,EAAUsqD,cAAgB,SAAwBz0U,EAAG00U,EAAYC,GAEpF,GAAGD,GAAcC,EAChB,OAAO30U,EACR,GAAQ,MAALA,EACF,OAAO20U,GAEN,IAAK,QAAS,MAAO,MACrB,IAAK,OAAS,MAAO,YACrB,IAAK,OAAS,MAAO,YACrB,IAAK,OAAS,MAAO,wBACrB,QACC,OAAO,KAGV,IAAIA,EACH,KAAM,kCACP,GAAkB,SAAfA,EAEF,OAAOD,GAGN,IAAK,OACL,IAAK,OACL,IAAK,OACJ,OAAO10U,EAAI,KAEZ,QACC,MAAO,WAIL,GAAkB,QAAf20U,EAEP,OAAOD,GAEN,IAAK,QACJ,MAAO,QAAQ10U,EAAE,IAElB,IAAK,OACL,IAAK,OACJ,OAAOA,EAAI,MACZ,QACC,MAAO,iBAGL,GAAkB,QAAf20U,EAEP,OAAOD,GAEN,IAAK,QACJ,MAAO,QAAQ10U,EAAE,IAClB,IAAK,OACJ,MAAO,QAAUA,EAAI,QAEtB,IAAK,OACJ,OAAOA,EAAI,OACZ,QACC,MAAO,iBAGL,GAAkB,QAAf20U,EAEP,OAAOD,GAEN,IAAK,QACJ,MAAO,QAAQ10U,EAAE,IAClB,IAAK,OACJ,MAAO,QAAUA,EAAI,YACtB,IAAK,OACJ,MAAO,QAAUA,EAAI,QACtB,QACC,MAAO,wBAGV,KAAM,4BAKH40U,EAAuBzqD,EAAUyqD,qBAAuB,SAA+BjqB,EAAS5oT,EAAM8yU,GAEzG,GAAG9yU,GAAQ8yU,EACV,OAAOlqB,EACR,GAAW,SAAR5oT,EACF,OAAO8yU,EAAc,IAAMlqB,EAAU,IACtC,GAAkB,QAAfkqB,EACF,MAAO,QAAUlqB,EAAU,OAC5B,GAAkB,QAAfkqB,EACH,CACC,GAAW,QAAR9yU,EACF,MAAO,QAAU4oT,EAAU,QAC5B,GAAW,QAAR5oT,EACF,MAAO,QAAU4oT,EAAU,QAE7B,GAAkB,QAAfkqB,EACH,CACC,GAAW,QAAR9yU,EACF,MAAO,QAAU4oT,EAAU,YAC5B,GAAkB,QAAfkqB,EACF,MAAO,QAAUlqB,EAAU,QAE7B,OAAO,MAuBRmqB,EAAgBx5U,UAAU6e,MAAQ,WAEjCvd,KAAKihU,UAAY,GACjBjhU,KAAKm4U,WAAa,GAClBn4U,KAAKo4U,WAAa,GAClBp4U,KAAKq4U,eAAiB,KAEtBr4U,KAAKg8L,MAAQ,IAGdk8I,EAAgBx5U,UAAU45U,WAAa,SAAU1hU,EAAMzR,EAAMnD,GAE5DhC,KAAKihU,UAAWrqT,GAASzR,EACb,MAATnD,IAEEhC,KAAKq4U,iBACRr4U,KAAKq4U,eAAiB,IACvBr4U,KAAKq4U,eAAezhU,GAAQ5U,IAI9Bk2U,EAAgBx5U,UAAU65U,YAAc,SAAU3hU,EAAMssB,GAEvDljC,KAAKm4U,WAAWvhU,GAAQssB,GAGzBg1S,EAAgBx5U,UAAU85U,QAAU,SAAUC,EAAMv1S,EAAMw1S,GAGzD,IAAI,IAAI56U,KADR46U,EAAeA,GAAgB,CAAC,GAAG,IAEnC,CACC,IAAIxhR,EAAIp5D,EAAIA,EAAI,IAAM26U,EAAOA,EACzBz4U,KAAKo4U,WAAYlhR,GAGpBl3D,KAAKo4U,WAAYlhR,IAAOh0B,EAAO,KAF/BljC,KAAKo4U,WAAYlhR,GAAMh0B,EAAO,OAOjCg1S,EAAgBx5U,UAAUi6U,kBAAoB,SAAUlhQ,EAAOmhQ,GAG9D54U,KAAKud,QAGL,IAAIs7T,EAAYphQ,EAAMwoN,gBAAgB,yBACtC44C,EAAYA,GAAaA,EAAU96U,OAAS86U,EAAU,GAAK,KAC3D,IAAIC,EAAcrhQ,EAAMwoN,gBAAgB,4BAExC,KADA64C,EAAcA,GAAeA,EAAY/6U,OAAS+6U,EAAY,GAAK,MAElE,OAAO,KAGRrhQ,EAAMglN,oBAAqB,oBACxBo8C,GACFA,EAAUE,qBAAqB,MAC7BD,GACFA,EAAYC,qBAAqB,MAGlCthQ,EAAMglN,oBAAoB,YAAaz8R,MAEvC,IAAI8tU,EAAW,GACf,IAAI,IAAIhwU,KAAKkC,KAAKihU,UACjB6M,GAAY,WAAa9tU,KAAKihU,UAAUnjU,GAAK,IAAMA,EAAI,MACxD,GAAG86U,EACF,IAAI,IAAI96U,KAAK86U,EACZ9K,GAAY,WAAa8K,EAAe96U,GAAK,IAAMA,EAAI,MAEzD,IAAIk7U,EAAY,GAChB,IAAI,IAAIl7U,KAAKkC,KAAKm4U,WACjBa,GAAa,KAAOl7U,EAAI,KAAOkC,KAAKm4U,WAAWr6U,GAAK,KAErD,IAAIm7U,EAASj5U,KAAKo4U,WAGlB,OAFAa,EAAOnL,SAAWA,EAClBmL,EAAOD,UAAYA,EACZC,GAIRf,EAAgBx5U,UAAUw6U,kBAAoB,SAAUzhQ,GAEvD,IAAIwhQ,EAASj5U,KAAK24U,kBAAmBlhQ,GAGrC,MAAO,CACN0hQ,QAHa5pC,GAAG+zB,OAAO8V,wBAAyBp5U,KAAKq5U,YAAaJ,GAIlEK,QAHa/pC,GAAG+zB,OAAO8V,wBAAyBp5U,KAAKu5U,YAAaN,KAQpEf,EAAgBx5U,UAAU86U,cAAgB,SAAU/hQ,EAAOw1P,GAE1D,IAAIwM,EAAYz5U,KAAKk5U,kBAAmBzhQ,GAGxC,GAFA/5D,QAAQ6oL,IAAKkzI,EAAUN,QAASM,EAAUH,UAEtC/rD,EAAUyD,iBAQb,OANAhxR,KAAK05U,eAAgB,EAClBzM,EACFA,EAAO0M,aAAcF,EAAUN,QAASM,EAAUH,SAElDrM,EAAS,IAAI19B,GAAG+zB,OAAQmW,EAAUN,QAASM,EAAUH,SACtDt5U,KAAK05U,eAAgB,EACdzM,EAGR,IAOC,OALGA,EACFA,EAAO0M,aAAcF,EAAUN,QAASM,EAAUH,SAElDrM,EAAS,IAAI19B,GAAG+zB,OAAQmW,EAAUN,QAASM,EAAUH,SACtDt5U,KAAK05U,eAAgB,EACdzM,EAER,MAAOtxT,GAWN,OATI3b,KAAK05U,gBAERh8T,QAAQ9Z,MAAM+X,IACwB,GAAnCA,EAAI/a,QAAQ,mBACd8c,QAAQ6oL,IAAKkzI,EAAUH,QAAQhgT,MAAM,MAAMlX,KAAI,SAAShf,EAAEtF,GAAI,OAAOA,EAAI,MAAQsF,KAAMuZ,KAAK,OAE5Fe,QAAQ6oL,IAAKkzI,EAAUN,UAEzBn5U,KAAK05U,eAAgB,EACd,KAGR,OAAO,MAGRxB,EAAgBx5U,UAAUwvU,UAAY,SAAUz2P,GAG/C,GAAGz3E,KAAKqjU,SAAWrjU,KAAKqjU,QAAQloC,UAAY1jN,EAAM0jN,SACjD,OAAOn7R,KAAKqjU,QAGb,IAAI4J,EAASjtU,KAAKw5U,cAAe/hQ,EAAOz3E,KAAKqjU,SAC7C,OAAI4J,GAGJjtU,KAAKqjU,QAAU4J,EACfA,EAAO9xC,SAAW1jN,EAAM0jN,SACjB8xC,GAJC,MAQTiL,EAAgBx5U,UAAUk7U,aAAe,SAAU9L,EAAUntC,GAE5D,GAAI3gS,KAAKq4U,eAGT,IAAI,IAAIv6U,KAAKkC,KAAKq4U,eAClB,CACC,IAAIj1U,EAAIpD,KAAKq4U,eAAev6U,GACpB,MAALsF,IAEAA,EAAEnD,cAAgBiyK,SACpB47J,EAAShwU,GAAKsF,EAAExD,KAAMI,KAAM2gS,GACrBv9R,EAAEnD,cAAgBsvS,GAAGq6B,UAK5BkE,EAAShwU,GAAKsF,MAIjBmqR,EAAUssD,cAAgBtsD,EAAUypD,QAAQ/3L,QAAUi5L,EAyCtD4B,EAAkB/xF,SAAW,+QAiB7B+xF,EAAkBtyC,aAAe,CAChC4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,cAAcqJ,cAGrDuQ,EAAkB7nT,MAAQ,cAC1B6nT,EAAkB74U,KAAO,gCACzB64U,EAAkBnhC,gBAAkB,gBACpCmhC,EAAkBC,iBAAmB,mBACrCD,EAAkBp+B,YAAco7B,EAEhCgD,EAAkBp7U,UAAUykS,YAAc,SAAS1/R,GAElDA,EAAEsuS,SAAW/xS,KAAK+xS,SAAS7mQ,aAG5B4uS,EAAkBp7U,UAAU+kS,YAAc,SAAShgS,GAElDzD,KAAK+xS,SAAS7c,UAAUzxR,EAAEsuS,WAG3B+nC,EAAkBp7U,UAAUg0R,UAAY,WACvC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAIo0C,EAAQh6U,KAAK2yR,aAAa,GAC3BqnD,GAASA,EAAM/5U,aAAesvS,GAAGq6B,UACnCoQ,EAAQ,MAET,IAAIhqO,EAA4B,EAAxBhwG,KAAKkhB,WAAWrW,MACpBqsD,EAA6B,EAAzBl3D,KAAKkhB,WAAWpW,OACf,GAALklG,IACHA,EAAIgqO,EAAQA,EAAMnvU,MAAQ4kS,GAAGu/B,cAAc,IAEnC,GAAL93Q,IACHA,EAAI8iR,EAAQA,EAAMlvU,OAAS2kS,GAAGu/B,cAAc,IAG7C,IAAI7pU,EAAO+6T,cAAcmK,eAAgBrqU,KAAKkhB,WAAWkgS,UAAW44B,GAEhE5W,EAAUpjU,KAAKooU,SACbhF,GAAWA,EAAQv4T,OAASmlG,GAAKozN,EAAQt4T,QAAUosD,GAAKksQ,EAAQj+T,MAAQA,IAC7Ei+T,EAAUpjU,KAAKooU,SAAW,IAAI74B,GAAGq6B,QAAQ55N,EAAG94C,EAAG,CAC9C/xD,KAAMA,EACNyc,OAAQ5hB,KAAKukL,MAAQkrH,GAAG3oR,KAAO2oR,GAAG83B,IAClCv4S,OAAQygR,GAAG26B,UAIb,IAAI6C,EAASjtU,KAAKkuU,UAAWluU,KAAK+xS,UAClC,GAAIk7B,EAAJ,CAGA,IAAIa,EAAW9tU,KAAKihU,UACpBjhU,KAAKg7O,SAAS4+F,aAAc9L,GAE5B,IAAIS,EAAW,EACf,GAAGvuU,KAAKm8R,OACR,IAAI,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EACzC,CACC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBqB,EAAOa,KAAK2yR,aAAa70R,GACZ,WAAdsxF,EAAMjqF,OAEJhG,IACHA,EAAOowS,GAAGq6B,QAAQW,mBACnBprU,EAAOA,EAAKi8D,KAAKmzQ,MAGP,MAARpvU,IACF2uU,EAAU,KAAO1+O,EAAMx4E,MAASzX,GAGlC,IAAIwuU,EAAOp+B,GAAGq+B,KAAKC,gBAEnBp+B,GAAGzoE,QAASyoE,GAAG+9B,YACf/9B,GAAGzoE,QAASyoE,GAAGi+B,OAEftK,EAAQmK,QAAO,WACdN,EAAOa,SAAUA,GACjBb,EAAOj9B,KAAM29B,MAId3tU,KAAK4yR,cAAc,EAAGwwC,MAIvB0W,EAAkBp7U,UAAUsiS,aAAe,SAAUwE,GAEpD,IAAI4S,EAAU7qB,EAAUwF,WAAW,yBACnCqlB,EAAQzT,YAAY,OAAOa,EAAU5uR,MACrCwhS,EAAQzT,YAAY,OAAOa,EAAUrgS,MACrCnF,KAAK+xS,SAASv4R,IAAK4+R,IAIpB0hC,EAAkBp7U,UAAU+iS,eAAiB,SAAUjC,EAAMgG,GAG5D,IADA,IAAI/qL,EAAQz6G,KAAK+xS,SAAS9R,gBAAgB,yBAClCniS,EAAI,EAAGA,EAAI28G,EAAM18G,SAAUD,EACnC,CACC,IAAI8G,EAAO61G,EAAM38G,GACd8G,EAAKsc,WAAWtK,MAAQ4uR,EAAU5uR,MACpC5W,KAAK+xS,SAASjtS,OAAQF,KAIzBk1U,EAAkBp7U,UAAUu0R,YAAc,WAEzC,IAAIw7B,EAAazuT,KAAKm8R,OAASn8R,KAAKm8R,OAAOp+R,OAAS,EAChD2wT,EAAc1uT,KAAKo8R,QAAUp8R,KAAKo8R,QAAQr+R,OAAS,EACvD,MAAO,CAAE,IAAK2Z,KAAKC,IAAI82S,EAAWC,GAAenhC,EAAUK,iBAAmBL,EAAUG,kBAAoB,KAG7GosD,EAAkBp7U,UAAUwvU,UAAY,WAEvC,IAAIjB,EAASjtU,KAAKg7O,SAASkzF,UAAWluU,KAAK+xS,UAK3C,OADC/xS,KAAKwkS,SAHFyoC,EAGa,KAFA,MAGVA,GAGR6M,EAAkBp7U,UAAU46R,iBAAmB,SAASrgJ,EAAKqjJ,EAAalG,EAAQzjP,GAEjF,IAAG3yC,KAAK0iM,MAAM+vE,UAAd,CAIA,IAAIs3D,EAAM/pU,KAAK4hS,cAAc,GACzBq4C,EAAWj6U,KAAKm8R,OAASn8R,KAAKm8R,OAAOp+R,OAASwvR,EAAUK,iBAAmB,EAC3Em8C,GAAO9wL,GAAO8wL,EAAIt6B,IAAMzvS,KAAKyM,KAAK,GAAKwtU,EAAW1sD,EAAUG,mBAC/Dz0I,EAAI69J,UAAWizB,EAAK,GAAGrnU,EAAG1C,KAAKyM,KAAK,GAAK,GAAIzM,KAAKyM,KAAK,GAAKwtU,EAAW1sD,EAAUG,mBAGlF,IAAIhrR,EAAI1C,KAAKyM,KAAK,GAAK8gR,EAAUG,kBAAoB,GAGjDwuB,EAAO3uB,EAAU0a,kBAAkBt1P,EAAI,GAAGA,EAAI,GAAG3yC,KAAK2yC,IAAI,GAAG3yC,KAAK2yC,IAAI,GAAKjwC,EAAE1C,KAAKyM,KAAK,GAAG8gR,EAAUG,mBACxGz0I,EAAI4+J,UAAYqE,EAAO,OAAS,OAChCjjK,EAAI09J,YACA32S,KAAK8xR,QAAUvE,EAAUiC,UAC5Bv2I,EAAIyxJ,KAAK,EAAGhoS,EAAG1C,KAAKyM,KAAK,GAAG,EAAG8gR,EAAUG,mBAEzCz0I,EAAIq/J,UAAW,EAAG51S,EAAG1C,KAAKyM,KAAK,GAAG,EAAG8gR,EAAUG,kBAAmB,EAAG,GACtEz0I,EAAI2+J,OAGJ3+J,EAAIs/J,UAAY,SAChBt/J,EAAIpkF,KAAO,aACXokF,EAAI4+J,UAAYqE,EAAO,OAAS,OAChCjjK,EAAIu/J,SAAU,IAAoB,GAAfx4S,KAAKyM,KAAK,GAAU/J,EAAI,MAG5Co3U,EAAkBp7U,UAAU+pO,YAAc,SAAS9nO,EAAG2qT,EAAUhvB,GAE/D,IAAI55R,EAAI1C,KAAKyM,KAAK,GAAK8gR,EAAUG,kBAAoB,GAClD49B,EAAS,GAAK5oT,GAEhB45R,EAAYwc,6BAA6B94S,OAI3C85U,EAAkBp7U,UAAUw7U,yBAA2B,SAAS59C,KAKhEw9C,EAAkBp7U,UAAU2pT,oBAAsB,SAAS/rB,GAE1D,IAAI9e,EAAOx9Q,KAMX,MALc,CAAC,CAAEk/C,QAAS,aAAcz3C,SAAU,WACjD,IAAIy7B,EAAOs6O,EAAKxiC,SAASk+F,oBACzBx7T,QAAQ6oL,IAAKrjK,EAAKi2S,QAASj2S,EAAKo2S,aAMlC/rD,EAAUkE,iBAAkB,sBAAuBqoD,GAenDK,EAAoBloT,MAAQ,UAC5BkoT,EAAoBl5U,KAAO,4BAE3Bk5U,EAAoBz7U,UAAUgmS,SAAW,WAExC,OAAI1kS,KAAKkhB,WAAWtK,MAAQ5W,KAAK0iM,MAAM+vE,UAC/BzyQ,KAAKkhB,WAAW/b,KAAO,IAAMnF,KAAKkhB,WAAWtK,KAC9C,WAGRujU,EAAoBz7U,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAE/DhC,KAAKo8R,QAAQ,GAAGxlR,KAAO5W,KAAKkhB,WAAW/b,KAAO,IAAMnF,KAAKkhB,WAAWtK,MAGrEujU,EAAoBz7U,UAAU07U,UAAY,SAAUxwS,GAEnD,GAAI5pC,KAAKq6U,mBAAT,CAGA,IAAIl1U,EAAOnF,KAAKkhB,WAAW/b,KAC3B,IAAKA,EACL,CACC,IAAKykC,EAAQ69P,kBACZ,OACD,IAAI1sQ,EAAO6O,EAAQ69P,kBAAmBznS,KAAKotC,SAASx2B,MACpD,IAAImkB,EACH,OACD51B,EAAO41B,EAAK51B,KAEF,UAARA,EACFA,EAAO,QACQ,WAARA,IACPA,EAAO,cACoC,GAAvC4xU,EAAUG,WAAWt2U,QAAQuE,KAGlCykC,EAAQ0uS,WAAY,KAAOt4U,KAAKkhB,WAAWtK,KAAMzR,GACjDnF,KAAK4yR,cAAe,EAAGztR,MAGxBg1U,EAAoBz7U,UAAU47U,iBAAmB,SAAS96C,GAEzD,MAAO,KAAOx/R,KAAKkhB,WAAWtK,MAG/B4gU,EAAoB,gBAAiB2C,GAQrCI,EAAsBtoT,MAAQ,YAC9BsoT,EAAsBt5U,KAAO,iCAE7Bs5U,EAAsB77U,UAAUgmS,SAAW,WAE1C,MAAO,QAAU1kS,KAAKkhB,WAAWtK,MAGlC2jU,EAAsB77U,UAAU07U,UAAY,SAAUxwS,GAErD,GAAI5pC,KAAKq6U,mBAAT,CAGA,IAAIl1U,EAAOnF,KAAKkhB,WAAW/b,KACtBA,IAA+C,GAAvC4xU,EAAUG,WAAWt2U,QAAQuE,KAE/B,UAARA,IACFA,EAAO,SACoB,SAAxBnF,KAAKkhB,WAAWtK,MAEnBgzB,EAAQ4uS,QAAS,UAAW,YAAcrzU,EAAM,MAAQnF,KAAKkhB,WAAWtK,KAAO,KAIhF5W,KAAK4yR,cAAe,EAAGztR,MAGxBo1U,EAAsB77U,UAAU47U,iBAAmB,SAAS96C,GAE3D,MAAO,KAAOx/R,KAAKkhB,WAAWtK,MAG/B4gU,EAAoB,kBAAmB+C,GASvCC,EAAsBvoT,MAAQ,YAC9BuoT,EAAsBv5U,KAAO,+BAE7Bu5U,EAAsB97U,UAAU07U,UAAY,SAAUxwS,GAErD,GAAI5pC,KAAKq6U,mBAAT,CAGA,IAAII,EAAUhD,EAAgBz3U,KAAM,GAChC+tT,EAAU4pB,EAAqB33U,MAC/BkjC,EAAO,QAAU6qR,EAAU,kBAC/B,GAAG0sB,EAGFv3S,GAAQ6qR,EAAU,gBAAgB0sB,EAAQ,KAD7BhD,EAAgBz3U,KAAM,IAAO4pC,EAAQ8wS,aAAaC,KACV,OAG1CjD,EAAiB13U,KAAM,KAElCkjC,GAAQ,QAAUw0S,EAAiB13U,KAAM,GAAM,MAAM+tT,EAAQ,OAElD2pB,EAAiB13U,KAAM,KAElCkjC,GAAQ,QAAUw0S,EAAiB13U,KAAM,GAAM,MAAM+tT,EAAQ,WAE9DnkR,EAAQ4uS,QAAS,OAAQt1S,EAAMljC,KAAKq6U,oBACpCr6U,KAAK4yR,cAAe,EAAG,QACvB5yR,KAAK4yR,cAAe,EAAG,UAGxB4kD,EAAoB,oBAAqBgD,GAiBzCI,EAAqB3oT,MAAQ,QAE7B2oT,EAAqBl8U,UAAUgmS,SAAW,WAEzC,OAAG1kS,KAAK0iM,MAAM+vE,UACNmlE,EAAa53U,KAAKkhB,WAAWlf,MAAOhC,KAAKkhB,WAAW/b,KAAM,GAC3D,SAGRy1U,EAAqBl8U,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAGrD,QAAR4U,IAEC5W,KAAKo8R,QAAQ,GAAGj3R,MAAQnD,IAE1BhC,KAAK0/R,iBAAiB,GACtB1/R,KAAKo8R,QAAQ,GAAGj3R,KAAOnD,GAExBhC,KAAKokS,QAAQrmS,OAAS,EACtBiC,KAAK66U,iBAEK,SAARjkU,IAEE5U,EAAMjE,QAITiC,KAAKokS,QAAQ,GAAGpiS,MAAQA,EAAM,GAC3BA,EAAMjE,OAAS,IACjBiC,KAAKokS,QAAQ,GAAGpiS,MAAQA,EAAM,IAC5BA,EAAMjE,OAAS,IACjBiC,KAAKokS,QAAQ,GAAGpiS,MAAQA,EAAM,KAP/BhC,KAAKokS,QAAQ,GAAGpiS,MAAQA,IAY3B44U,EAAqBl8U,UAAUm8U,cAAgB,SAAUv5B,GAExD,IAAI9jC,EAAOx9Q,KAEPqF,GADAi8S,EAAYthT,KAAKkhB,WAAWlf,MAClB,CAAEC,KAAM,MACtB,OAAOjC,KAAKkhB,WAAW/b,MAEtB,IAAK,QACJnF,KAAKkhB,WAAWlf,MAAQ,EACxBhC,KAAK0nS,UAAU,SAAS,IAAI,EAAE,CAAEzlS,KAAK,IAAMmrC,SAAU,UACrD,MACD,IAAK,OACJptC,KAAKkhB,WAAWlf,MAAQs/S,GAAiC,GAApBA,EAAUvjT,OAAc,CAACujT,EAAU,GAAGA,EAAU,IAAM,CAAC,EAAE,EAAE,GAChGthT,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnG,MACD,IAAK,OACJrF,KAAKkhB,WAAWlf,MAAQs/S,GAAiC,GAApBA,EAAUvjT,OAAc,CAACujT,EAAU,GAAGA,EAAU,GAAGA,EAAU,IAAM,CAAC,EAAE,EAAE,GAC7GthT,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnG,MACD,IAAK,OACJrF,KAAKkhB,WAAWlf,MAAQs/S,GAAiC,GAApBA,EAAUvjT,OAAc,CAACujT,EAAU,GAAGA,EAAU,GAAGA,EAAU,GAAGA,EAAU,IAAM,CAAC,EAAE,EAAE,EAAE,GAC5HthT,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnGrF,KAAK0nS,UAAU,SAAS,IAAI1nS,KAAKkhB,WAAWlf,MAAM,IAAI,SAASoB,GAAIo6Q,EAAKt8P,WAAWlf,MAAM,GAAKoB,IAAKiC,GACnG,MACD,QACCqY,QAAQ9Z,MAAM,+BAIjBg3U,EAAqBl8U,UAAU07U,UAAY,SAAUxwS,GAEpD,GAAI5pC,KAAKq6U,mBAAT,CAGA,IAAIr4U,EAAQ41U,EAAa53U,KAAKkhB,WAAWlf,MAAOhC,KAAKkhB,WAAW/b,MAC5D21U,EAAYpD,EAAgB13U,KAAK,GACrC,GAAI86U,EAAJ,CAGA,IAAI53S,EAAO,KAAMljC,KAAKkhB,WAAW/b,KAAO,IAAM21U,EAAY,MAAQ94U,EAAQ,IAC1E4nC,EAAQ4uS,QAAS,OAAQt1S,EAAMljC,KAAKq6U,oBAEpCr6U,KAAK4yR,cAAe,EAAG5yR,KAAKkhB,WAAW/b,SAGxCqyU,EAAoB,cAAeoD,GAcnCG,EAAiB9oT,MAAQ,OACzB8oT,EAAiBC,SAAW,CAAC,KAAK,IAAI,KAEtCD,EAAiBr8U,UAAUwlS,kBAAoB,WAE3ClkS,KAAKy3E,OACNz3E,KAAKy3E,MAAM0jN,YAGd4/C,EAAiBr8U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,mBAAT,CAQA,IALA,IAAIx8U,EAAQmC,KAAKkhB,WAEb6sS,EAAU4pB,EAAqB33U,MAC/BkjC,EAAO,UAAW6qR,EAAU,MAAQ6pB,EAAY,CAAC/5U,EAAMoe,EAAEpe,EAAM6E,IAAM,MAEjE5E,EAAI,EAAEA,EAAIi9U,EAAiBC,SAASj9U,SAAUD,EACtD,CACC,IAAIm9U,EAAUF,EAAiBC,SAASl9U,GACpCo9U,EAASzD,EAAez3U,KAAKlC,GAC7Bo9U,IAEJh4S,GAAQ,KAAM6qR,EAAU,IAAIktB,EAAQ,MAAQC,EAAS,OAGtD,IAAQp9U,EAAI,EAAEA,EAAIi9U,EAAiBC,SAASj9U,SAAUD,EACtD,CACKm9U,EAAUF,EAAiBC,SAASl9U,GAAxC,IACIq9U,EAAUzD,EAAgB13U,KAAKlC,GACnC,GAAIq9U,EAAJ,CAEA,IAAIh2U,EAAO8xU,EAAiBgE,EAAQl9U,OAAS,GAC7CmlC,GAAQ,KAAI/9B,EAAK,IAAMg2U,EAAU,MAAQptB,EAAU,IAAMktB,EAAU,MACnEj7U,KAAK4yR,cAAe90R,EAAGqH,IAGxBykC,EAAQ4uS,QAAS,OAAQt1S,EAAMljC,KAAKq6U,sBAGrC7C,EAAoB,aAAcuD,GAsBlCK,EAAiBnpT,MAAQ,OACzBmpT,EAAiBJ,SAAW,CAAC,MAAM,IAAI,IAAI,IAAI,KAAK,KAAK,MAEzDI,EAAiB18U,UAAUwlS,kBAAoB,WAE3ClkS,KAAKy3E,OACPz3E,KAAKy3E,MAAM0jN,YAGbigD,EAAiB18U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,mBAAT,CAQA,IALA,IAAIx8U,EAAQmC,KAAKkhB,WAEb6sS,EAAU4pB,EAAqB33U,MAC/BkjC,EAAO,QAAU6qR,EAAU,MAAQ6pB,EAAY,CAAC/5U,EAAMoe,EAAEpe,EAAM6E,EAAE7E,EAAMwxG,IAAM,MAExEvxG,EAAI,EAAEA,EAAIs9U,EAAiBJ,SAASj9U,SAAUD,EACtD,CACC,IAAIm9U,EAAUG,EAAiBJ,SAASl9U,GACpCo9U,EAASzD,EAAez3U,KAAKlC,GAC7Bo9U,IAEJh4S,GAAQ,KAAM6qR,EAAU,IAAIktB,EAAQ,MAAQC,EAAS,OAGtD,IAAQp9U,EAAI,EAAGA,EAAIs9U,EAAiBJ,SAASj9U,SAAUD,EACvD,CACKm9U,EAAUG,EAAiBJ,SAASl9U,GAAxC,IACIq9U,EAAUzD,EAAgB13U,KAAKlC,GACnC,GAAIq9U,EAAJ,CAEA,IAAIh2U,EAAO8xU,EAAiBgE,EAAQl9U,OAAS,GAC7CmlC,GAAQ,KAAI/9B,EAAK,IAAMg2U,EAAU,MAAQptB,EAAU,IAAMktB,EAAU,MACnEj7U,KAAK4yR,cAAe90R,EAAGqH,IAGxBykC,EAAQ4uS,QAAS,OAAQt1S,EAAMljC,KAAKq6U,sBAGrC7C,EAAoB,aAAc4D,GA0BlCC,EAAiBppT,MAAQ,OACzBopT,EAAiBL,SAAW,CAAC,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,MAEpEK,EAAiB38U,UAAUwlS,kBAAoB,WAE3ClkS,KAAKy3E,OACPz3E,KAAKy3E,MAAM0jN,YAGbkgD,EAAiB38U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,mBAAT,CAQA,IALA,IAAIx8U,EAAQmC,KAAKkhB,WAEb6sS,EAAU4pB,EAAqB33U,MAC/BkjC,EAAO,QAAU6qR,EAAU,MAAQ6pB,EAAY,CAAC/5U,EAAMoe,EAAEpe,EAAM6E,EAAE7E,EAAMwxG,EAAExxG,EAAMmyG,IAAM,MAEhFlyG,EAAI,EAAEA,EAAIu9U,EAAiBL,SAASj9U,SAAUD,EACtD,CACC,IAAIm9U,EAAUI,EAAiBL,SAASl9U,GACpCo9U,EAASzD,EAAez3U,KAAKlC,GAC7Bo9U,IAEJh4S,GAAQ,KAAM6qR,EAAU,IAAIktB,EAAQ,MAAQC,EAAS,OAGtD,IAAQp9U,EAAI,EAAEA,EAAIu9U,EAAiBL,SAASj9U,SAAUD,EACtD,CACKm9U,EAAUI,EAAiBL,SAASl9U,GAAxC,IACIq9U,EAAUzD,EAAgB13U,KAAKlC,GACnC,GAAIq9U,EAAJ,CAEA,IAAIh2U,EAAO8xU,EAAiBgE,EAAQl9U,OAAS,GAC7CmlC,GAAQ,KAAI/9B,EAAK,IAAMg2U,EAAU,MAAQptB,EAAU,IAAMktB,EAAU,MACnEj7U,KAAK4yR,cAAe90R,EAAGqH,IAGxBykC,EAAQ4uS,QAAS,OAAQt1S,EAAMljC,KAAKq6U,sBAIrC7C,EAAoB,aAAc6D,GASlCC,EAAsBrpT,MAAQ,YAC9BqpT,EAAsBr6U,KAAO,oBAE7Bq6U,EAAsB58U,UAAU07U,UAAY,SAAUxwS,GAErD,IAAIkxS,EAAYrD,EAAgBz3U,KAAM,GACtC,GAAI86U,EAAJ,CAEA,IAAI31U,EAAOnF,KAAK2yR,aAAa,GACzBzvP,EAAO20S,EAAeiD,EAAW31U,EAAM,QAC3CykC,EAAQ4uS,QAAQ,UAAW,eAAiBt1S,EAAO,OAGpDs0S,EAAoB,mBAAoB8D,GA6CxCC,EAAsBtpT,MAAQ,YAC9BspT,EAAsB98N,WAAa,CAAC,IAAI,IAAI,IAAI,KAEhD88N,EAAsB78U,UAAUgmS,SAAW,WAE1C,OAAG1kS,KAAK0iM,MAAM+vE,UACN,IAAMzyQ,KAAKkhB,WAAWogG,UAAY,IAElC,aAGTi6N,EAAsB78U,UAAU07U,UAAY,SAAUxwS,GAErD,GAAI5pC,KAAKq6U,oBAGLr6U,KAAK4lS,kBAAkB,GAA3B,CAIA,IADA,IAAI41C,EAAU,GACN19U,EAAI,EAAGA,EAAI,IAAKA,EACvB09U,EAAQj4U,KAAM,CAAEqT,KAAM6gU,EAAez3U,KAAKlC,GAAIqH,KAAMnF,KAAK2yR,aAAa70R,IAAM,UAE7E,IAAIq9U,EAAUzD,EAAgB13U,KAAK,GACnC,GAAIm7U,EAAJ,CAIA,IAAIM,EAAYD,EAAQ,GAAGr2U,KACvBmtR,EAAcmpD,EACdp4U,EAAKrD,KAAKkhB,WAAWogG,UAErBwoG,EAAS,GACb,IAAQhsN,EAAI,EAAGA,EAAI,IAAKA,EACxB,CACC,IAAI49U,EAAaF,EAAQ19U,GAAG8Y,KACX,MAAd8kU,IAEFA,EAAwB,MAAXh8U,EAAEsC,MAAgBtC,EAAEsC,MAAQ,QACzCw5U,EAAQ19U,GAAGqH,KAAO,SAIfq2U,EAAQ19U,GAAGqH,MAAQs2U,IAEC,SAAnBD,EAAQ19U,GAAGqH,MAA0B,KAAN9B,GAAmB,KAANA,KAK/Cq4U,EAAa1D,EAAsB0D,EAAYF,EAAQ19U,GAAGqH,KAAMs2U,IAElE3xH,EAAOvmN,KAAMm4U,GAGd9xS,EAAQ4uS,QAAQ,OAAQlmD,EAAc,IAAM6oD,EAAU,MAAOrxH,EAAO,GAAKzmN,EAAKymN,EAAO,GAAK,IAAK9pN,KAAKq6U,oBACpGr6U,KAAK4yR,cAAe,EAAGN,MAGxBklD,EAAoB,iBAAkB+D,GAetCI,EAAiB1pT,MAAQ,OAEzB0pT,EAAiBj9U,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAK5D,GAHGhC,KAAKy3E,OACPz3E,KAAKy3E,MAAM0jN,WAED,QAARvkR,EACH,CACC,IAAIglU,EAAYxE,EAAgBp1U,GAChC,IAAI45U,EACH,OAGD,IAAI,IAAI99U,EAAI89U,EAAU9xH,OAAO/rN,OAAQD,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAC9DkC,KAAKwhS,YAAY1jS,GAGlB,IAAQA,EAAI,EAAGA,EAAI89U,EAAU9xH,OAAO/rN,SAAUD,EAC9C,CACC,IAAI4B,EAAIk8U,EAAU9xH,OAAOhsN,GACrBkC,KAAKm8R,OAAOr+R,GACfkC,KAAKm8R,OAAOr+R,GAAG8Y,KAAOlX,EAAEkX,MAAQlX,EAAEsC,MAAQ,KAAOtC,EAAEsC,MAAQ,IAAM,IAEjEhC,KAAK+gS,SAAUrhS,EAAEkX,KAAMmgU,EAAUQ,cAKrCoE,EAAiBj9U,UAAUgmS,SAAW,WAErC,OAAG1kS,KAAK0iM,MAAM+vE,UACNzyQ,KAAKkhB,WAAWoxJ,KAEhB,QAGTqpK,EAAiBj9U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,oBAGLr6U,KAAK4lS,kBAAkB,GAA3B,CAIA,IADA,IAAI41C,EAAU,GACN19U,EAAI,EAAGA,EAAI,IAAKA,EACvB09U,EAAQj4U,KAAM,CAAEqT,KAAM6gU,EAAez3U,KAAKlC,GAAIqH,KAAMnF,KAAK2yR,aAAa70R,IAAM,UAE7E,IAAIq9U,EAAUzD,EAAgB13U,KAAK,GACnC,GAAIm7U,EAAJ,CAGA,IAAIS,EAAYxE,EAAgBp3U,KAAKkhB,WAAWoxJ,MAChD,GAAIspK,EAAJ,CAIA,IAAIH,EAAYD,EAAQ,GAAGr2U,KACvBmtR,EAAcspD,EAAUtpD,YACT,KAAfA,IACHA,EAAcmpD,GAEf,IAAI3xH,EAAS,GACb,IAAQhsN,EAAI,EAAGA,EAAI89U,EAAU9xH,OAAO/rN,SAAUD,EAC9C,CACC,IAAI4B,EAAIk8U,EAAU9xH,OAAOhsN,GACrB49U,EAAaF,EAAQ19U,GAAG8Y,KACX,MAAd8kU,IAEFA,EAAwB,MAAXh8U,EAAEsC,MAAgBtC,EAAEsC,MAAQ,QACzCw5U,EAAQ19U,GAAGqH,KAAO,UAEJ,KAAVzF,EAAEyF,MAAeq2U,EAAQ19U,GAAGqH,MAAQs2U,GAC7B,KAAV/7U,EAAEyF,MAAeq2U,EAAQ19U,GAAGqH,MAAQs2U,KACrCC,EAAa1D,EAAsB0D,EAAYF,EAAQ19U,GAAGqH,KAAMs2U,IACjE3xH,EAAOvmN,KAAMm4U,GAGd9xS,EAAQ2uS,YAAY,QAAQ,sMAC5B3uS,EAAQ4uS,QAAQ,OAAQlmD,EAAc,IAAM6oD,EAAU,MAAMS,EAAUtpK,KAAK,IAAIw3C,EAAOntM,KAAK,KAAK,KAAM3c,KAAKq6U,oBAE3Gr6U,KAAK4yR,cAAe,EAAGN,OAGxBklD,EAAoB,YAAamE,GAiBjCE,EAAoB5pT,MAAQ,UAE5B4pT,EAAoBn9U,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAE5DhC,KAAKy3E,OACPz3E,KAAKy3E,MAAM0jN,WAED,QAARvkR,GAAiB5W,KAAKo8R,QAAQ,GAAGj3R,MAAQnD,IAE3ChC,KAAK0/R,iBAAiB,GACtB1/R,KAAKo8R,QAAQ,GAAGj3R,KAAOnD,IAIzB65U,EAAoBn9U,UAAUgmS,SAAW,WAExC,OAAG1kS,KAAK0iM,MAAM+vE,UACNzyQ,KAAKkhB,WAAWgiB,KAEhB,WAGT24S,EAAoBn9U,UAAU07U,UAAY,SAAUxwS,GAEnD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIk2C,EAAUrE,EAAez3U,KAAK,GAC9B87U,IACHA,EAAU,OACX,IAAIC,EAAUtE,EAAez3U,KAAK,GAC9B+7U,IACHA,EAAU,OACX,IAAIZ,EAAUzD,EAAgB13U,KAAK,GACnC,GAAIm7U,EAAJ,CAGA,IAAIa,EAAWh8U,KAAK2yR,aAAa,IAAM,QACnCspD,EAAWj8U,KAAK2yR,aAAa,IAAM,QACnCL,EAActyR,KAAKkhB,WAAW/b,KAGlC,GAAe,KAAZ62U,GAA+B,KAAZC,EAErB,OAAO,KAGR,IAAIC,EAAW,cAAgBl8U,KAAKuW,GAEhC4lU,EAAY,KAAO7pD,EAAc,IAAM4pD,EAAW,KAAOF,EAAW,OAASC,EAAW,UAC5FE,GAAa,KAAM7pD,EAAc,QAAUA,EAAc,WACzD6pD,GAAa,KAAMn8U,KAAKkhB,WAAWgiB,KAAO,MAC1Ci5S,GAAa,mBAEbvyS,EAAQ4uS,QAAQ,YAAa2D,EAAWn8U,KAAKq6U,oBAC7CzwS,EAAQ4uS,QAAQ,OAAQlmD,EAAc,IAAM6oD,EAAU,MAAMe,EAAS,IAAIJ,EAAQ,IAAIC,EAAQ,KAAM/7U,KAAKq6U,oBAExGr6U,KAAK4yR,cAAe,EAAGN,MAGxBklD,EAAoB,gBAAiBqE,GASrCO,EAAiBnqT,MAAQ,OAEzBmqT,EAAiB19U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIu1C,EAAUzD,EAAgB13U,KAAK,GAEnC4pC,EAAQ0uS,WAAY,SAAWt4U,KAAKuW,GAAI,SAAS,WAAY,OAAOmB,KAAK6uD,YACzE38B,EAAQ4uS,QAAQ,OAAQ,SAAW2C,EAAU,YAAcn7U,KAAKuW,GAAI,IAAKvW,KAAKq6U,oBAC9Er6U,KAAK4yR,cAAe,EAAG,WAGxB4kD,EAAoB,aAAc4E,GAiBlCC,EAAkBC,YAAc,CAAC,QAAQ,QAEzCD,EAAkBpqT,MAAQ,QAE1BoqT,EAAkB39U,UAAU07U,UAAY,SAAUxwS,GAEjD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIs1C,EAASzD,EAAez3U,KAAK,GAC7Bm7U,EAAUzD,EAAgB13U,KAAK,GAE/Bu8U,EAASv8U,KAAK2yR,aAAa,GAC3BuoD,IAEHqB,EAAS,OACTrB,EAAStxS,EAAQ8wS,aAAaC,KAG/B/wS,EAAQ2uS,YAAY,QAAQ8D,EAAkBG,kBAC9C5yS,EAAQ0uS,WAAY,gBAAkBt4U,KAAKuW,GAAI,QAASvW,KAAKkhB,WAAWw0E,OAC1D,SAAV6mP,EACH3yS,EAAQ4uS,QAAQ,OAAQ,SAAW2C,EAAU,mBAAqBD,EAAQ,oBAAsBl7U,KAAKuW,GAAI,KAAMvW,KAAKq6U,oBAClG,QAAVkC,GAA8B,QAAVA,EAC5B3yS,EAAQ4uS,QAAQ,OAAQ,SAAW2C,EAAU,aAAeD,EAAQ,mBAAqBl7U,KAAKuW,GAAI,KAAMvW,KAAKq6U,oBAC3F,QAAVkC,GACR3yS,EAAQ4uS,QAAQ,OAAQ,SAAW2C,EAAU,aAAeD,EAAQ,uBAAyBl7U,KAAKuW,GAAI,KAAMvW,KAAKq6U,oBAClHr6U,KAAK4yR,cAAe,EAAG,WAGxB4kD,EAAoB,aAAc6E,GAEnCA,EAAkBG,iBAAmB,w0HA6IpCC,EAAiBxqT,MAAQ,OAEzBwqT,EAAiB/9U,UAAU07U,UAAY,SAAUxwS,GAEhD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIu1C,EAAUzD,EAAgB13U,KAAK,GAEnC4pC,EAAQ0uS,WAAY,SAAWt4U,KAAKuW,GAAI,SAAS,WAAY,MAAmB,KAAZrO,aACpE0hC,EAAQ4uS,QAAQ,OAAQ,SAAW2C,EAAU,YAAcn7U,KAAKuW,GAAI,IAAKvW,KAAKq6U,oBAC9Er6U,KAAK4yR,cAAe,EAAG,WAGxB4kD,EAAoB,aAAciF,GASlCC,EAAmBzqT,MAAQ,SAE3ByqT,EAAmBh+U,UAAU07U,UAAY,SAAUxwS,GAElD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIs1C,EAASzD,EAAez3U,KAAK,GAC7BsyR,EAAc,QACd6oD,EAAUzD,EAAgB13U,KAAK,GAC/Bu8U,EAASv8U,KAAK2yR,aAAa,GAC/BuoD,EAASrD,EAAeqD,EAAQqB,EAAQ,SACxC3yS,EAAQ2uS,YAAY,YAAamE,EAAmBC,aACpD/yS,EAAQ4uS,QAAQ,OAAQlmD,SAAoB6oD,EAAU,gBAAiBD,EAAQ,KAAMl7U,KAAKq6U,oBAC1Fr6U,KAAK4yR,cAAe,EAAGN,KAGxBoqD,EAAmBE,cAAgB,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,IAAK,IAAK,KAAM,KAAM,OAAQ,OAAQ,OAAQ,OAAQ,OAAO,GAAI,KAAM,KAAM,OAAQ,OAAQ,OAAQ,QAExhBF,EAAmBC,YAAc,oWAY5BD,EAAmBE,cAAcx6T,KAAK,SAAShf,EAAEtF,GAAI,MAAO,oBAAoBA,EAAE,GAAG,aAAesF,EAAI,OAAMuZ,KAAK,MAAO,mEAK/H66T,EAAoB,cAAekF,GAkBnCG,EAAkB5qT,MAAQ,QAE1B4qT,EAAkBn+U,UAAUwlS,kBAAoB,WAE5ClkS,KAAKy3E,OACPz3E,KAAKy3E,MAAM0jN,YAGb0hD,EAAkBn+U,UAAUylS,oBAAsB,WAEjD,IAAI7R,EAActyR,KAAKilS,iBAAiB,GACxCjlS,KAAKo8R,QAAQ,GAAGj3R,KAAOmtR,GAAe,KAGvCuqD,EAAkBn+U,UAAU07U,UAAY,SAAUxwS,GAEjD,GAAI5pC,KAAKq6U,oBAAuBr6U,KAAK4lS,kBAAkB,GAAvD,CAGA,IAAIs1C,EAASzD,EAAez3U,KAAK,GAC7Bm7U,EAAUzD,EAAgB13U,KAAK,GACnC,GAAIk7U,GAAWC,EAAf,CAGA,IAAI7oD,EAActyR,KAAKilS,iBAAiB,GAExC,GADAjlS,KAAKo8R,QAAQ,GAAGj3R,KAAOmtR,EACL,KAAfA,EAMH,GAAI4oD,EAAJ,CAMA,IAAI4B,EAAOlF,EAAa53U,KAAKkhB,WAAW67T,WACpCC,EAAOpF,EAAa53U,KAAKkhB,WAAW+7T,WACpCC,EAAQtF,EAAa53U,KAAKkhB,WAAWi8T,YACrCC,EAAQxF,EAAa53U,KAAKkhB,WAAWm8T,YAEzCzzS,EAAQ4uS,QAAQ,OAAQlmD,EAAc,IAAM6oD,EAAU,SAAWD,EAAS,MAAM4B,EAAK,QAASE,EAAK,MAAMF,EAAK,UAAWM,EAAM,MAAMF,EAAM,OAASA,EAAQ,IAAKl9U,KAAKq6U,oBACtKr6U,KAAK4yR,cAAe,EAAGN,QAVtB1oP,EAAQ4uS,QAAQ,OAAO,KAAMlmD,EAAc,IAAM6oD,EAAU,MAAQ7oD,EAAc,iBANjF50Q,QAAQC,KAAK,4CAmBf65T,EAAoB,aAAcqF,GA7uDlC,SAASvF,IAIR,IAAI,IAAIx5U,KAFRu5U,EAAoBt5U,OAAS,EAEhBo5U,EACb,CACC,IAAI9zU,EAAK8zU,EAAoBr5U,GACzBmB,EAAQoE,EAAGzC,QAAQ,KACnB0xR,EAAcjvR,EAAG8lC,OAAO,EAAElqC,GAC1Bq+U,EAASj6U,EAAGzC,QAAQ,IAAI3B,GACxBs+U,EAAYl6U,EAAG8lC,OAAOlqC,EAAMq+U,EAAOr+U,GAAOwX,OAC1CqzM,EAASzmN,EAAG8lC,OAAOm0S,EAAS,EAAGj6U,EAAGtF,OAASu/U,EAAS,GAAGhkT,MAAM,KACjE,IAAI,IAAIn1B,KAAK2lN,EACb,CACC,IAAIpqN,EAAIoqN,EAAO3lN,GAAGm1B,MAAM,KAAKtK,QAAO,SAAS9qB,GAAI,OAAOA,KACxD4lN,EAAO3lN,GAAK,CAAEgB,KAAMzF,EAAE,GAAG+W,OAAQG,KAAMlX,EAAE,GAAG+W,QACjC,KAAR/W,EAAE,KACJoqN,EAAO3lN,GAAGnC,MAAQtC,EAAE,GAAG+W,QAEzB2gU,EAAet5U,GAAK,CAAEw0R,YAAaA,EAAahgH,KAAMirK,EAAWzzH,OAAQA,GACzEutH,EAAoB9zU,KAAMg6U,IAM5B,SAAS/F,EAAoBryU,EAAMq4U,GAGlCA,EAAU/vT,MAAQqpT,EAClB0G,EAAUxuT,OAAS,SAGnBwuT,EAAU9+U,UAAU++U,iBAAmB,WAAYz9U,KAAKq6U,mBAAqB,IAC7EmD,EAAU9+U,UAAUq6U,qBAAuB,SAA+B2E,GAGzE,GADA19U,KAAKq6U,mBAAoBqD,IAAc,EACpC19U,KAAKm8R,OACR,IAAI,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EACzC,CACC,IAAIy2S,EAAcv0S,KAAKy+R,aAAa3gS,GACjCy2S,GACFA,EAAYwkC,qBAAsB2E,KAGjCF,EAAU9+U,UAAUwlS,oBACvBs5C,EAAU9+U,UAAUwlS,kBAAoB,WAEpClkS,KAAKy3E,OACNz3E,KAAKy3E,MAAM0jN,aAiCf5N,EAAUkE,iBAAkB,WAAatsR,EAAMq4U,GAGhD,SAAS7F,EAAsB/yU,EAAMgS,GAEpC,MAAO,QAAUA,GAAQ,QAAU,IAAMhS,EAAK2R,GAG/C,SAASkhU,EAAgB7yU,EAAM46R,GAE9B,IAAI56R,EAAKu3R,OACR,OAAO,KACR,IAAIptO,EAAOnqD,EAAK2gS,aAAc/F,GAC9B,IAAKzwO,EACJ,OAAO,KACR,IAAIwlP,EAAc3vS,EAAK6yE,MAAMymN,YAAanvO,EAAKqmO,WAC/C,OAAKmf,EAEFA,EAAY+lC,iBACP/lC,EAAY+lC,iBAAiBvrR,EAAKsmO,aAEnC,QAAUkf,EAAYh+R,GAAK,IAAMw4C,EAAKsmO,YAJrC,KAOT,SAASqiD,EAAiB9yU,EAAM46R,GAE/B,OAAK56R,EAAKghS,kBAAkBpG,GAErB,QAAU56R,EAAK2R,GAAK,IAAMipR,EADzB,KAgKT,SAAS04C,IAGRl4U,KAAKq5U,YAAc,GACnBr5U,KAAKu5U,YAAc,GAGnBv5U,KAAK06U,aAAe,CACnBC,IAAK,WAGN36U,KAAKg8L,MAAQ,GAEbh8L,KAAKm4U,WAAa,GAClBn4U,KAAKihU,UAAY,GACjBjhU,KAAKo4U,WAAa,GAClBp4U,KAAKq4U,eAAiB,KAqLvB,SAASyB,IAGF95U,KAAK+xS,SAAW,IAAIxkB,EAAUyH,OAC9Bh1R,KAAK+xS,SAASvE,eAAiBxtS,KAC/BA,KAAK+xS,SAASia,cAAe,EACnChsT,KAAK+xS,SAAS/iR,OAAS,SAEvBhvB,KAAK+gS,SAAS,KAAM,WACpB/gS,KAAK0hS,UAAU,MAAO,WACtB1hS,KAAKkhB,WAAa,CAAErW,MAAO,EAAGC,OAAQ,EAAGy5K,OAAO,EAAO68H,UAAoC,oBAAlB8e,cAAgCA,cAAcS,QAAU,GAEjI,IAAIgd,EAAY39U,KAAK+xS,SAAS9R,gBAAgB,yBAAyB,GACvE09C,EAAUhrS,IAAM,CAAC,IAAI,KAErB,IAAIirS,EAAUrwD,EAAUwF,WAAW,6BACnC6qD,EAAQjrS,IAAM,CAAC,IAAI,KACnB3yC,KAAK+xS,SAASv4R,IAAKokU,GAEnB,IAAIC,EAAUtwD,EAAUwF,WAAW,4BACnC8qD,EAAQlrS,IAAM,CAAC,IAAI,KACnB3yC,KAAK+xS,SAASv4R,IAAKqkU,GAEnBF,EAAUp1C,QAAS,EAAGq1C,GACtBA,EAAQr1C,QAAS,EAAGs1C,GAEpB79U,KAAKyM,KAAO,CAAC,IAAI,IACjBzM,KAAKyyS,iBAAkB,EAEvBzyS,KAAKihU,UAAY,GACjBjhU,KAAKqjU,QAAU,KACfrjU,KAAKg7O,SAAW,IAAIk9F,EACpBl4U,KAAKg7O,SAASq+F,YAAc,mBAAqB9pC,GAAG+zB,OAAOC,qBAC3DvjU,KAAKg7O,SAASu+F,YAAcO,EAAkB/xF,SAmN/C,SAASoyF,IACRn6U,KAAK0hS,UAAU,MAAO,IACtB1hS,KAAKkhB,WAAa,CAAEtK,KAAM,GAAIzR,KAAM,IAoDrC,SAASo1U,IACRv6U,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CAAEtK,KAAM,QAASzR,KAAM,QAqC1C,SAASq1U,IACRx6U,KAAK+gS,SAAS,MAAO,aACrB/gS,KAAK+gS,SAAS,KAAM,QACpB/gS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAK0hS,UAAU,MAAO,QAqCvB,SAASk5C,IAER56U,KAAK0hS,UAAU,GAAG,SAElB1hS,KAAKkhB,WAAa,CACjB/b,KAAM,QACNnD,MAAO,GAGRhC,KAAK0nS,UAAU,QAAQ,OAAO,QAAQ,KAAM,CAAElqR,OAAQy5T,EAAkB7pS,SAAU,SAClFptC,KAAK66U,gBA4FN,SAASE,IAER/6U,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK0hS,UAAU,KAAK,QACpB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,IAAI,SAEnB1hS,KAAKkhB,WAAa,CAAEjF,EAAG,EAAGvZ,EAAG,GA+C9B,SAAS04U,IAERp7U,KAAK+gS,SAAS,MAAM,QACpB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK0hS,UAAU,MAAM,QACrB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,KAAK,QACpB1hS,KAAK0hS,UAAU,KAAK,QACpB1hS,KAAK0hS,UAAU,KAAK,QAEpB1hS,KAAKkhB,WAAa,CAAEjF,EAAE,EAAGvZ,EAAG,EAAG2sG,EAAG,GAgDnC,SAASgsO,IAERr7U,KAAK+gS,SAAS,OAAO,QACrB/gS,KAAK+gS,SAAS,MAAM,QACpB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,IAAI,SAClB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK+gS,SAAS,KAAK,QACnB/gS,KAAK0hS,UAAU,OAAO,QACtB1hS,KAAK0hS,UAAU,MAAM,QACrB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,IAAI,SACnB1hS,KAAK0hS,UAAU,KAAK,QACpB1hS,KAAK0hS,UAAU,KAAK,QACpB1hS,KAAK0hS,UAAU,KAAK,QAEpB1hS,KAAKkhB,WAAa,CAAEjF,EAAE,EAAGvZ,EAAG,EAAG2sG,EAAG,EAAGW,EAAG,GAkDzC,SAASsrO,IACRt7U,KAAK+gS,SAAS,QAASg2C,EAAUQ,WACjCv3U,KAAKy1S,cAAe,EAkDrB,SAAS8lC,IAERv7U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK0hS,UAAU,MAAM,IACrB1hS,KAAKkhB,WAAa,CACjBogG,UAAW,KAEZthH,KAAK0nS,UAAU,QAAQ,MAAM1nS,KAAKkhB,WAAWogG,UAAU,CAAEl0E,SAAU,YAAa5vB,OAAQ+9T,EAAsB98N,aAiE/G,SAASk9N,IAER37U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK0hS,UAAU,MAAM,IACrB1hS,KAAKkhB,WAAa,CACjBoxJ,KAAM,SAEPtyK,KAAKg2T,SAAW,QAChBh2T,KAAK0nS,UAAU,QAAQ,OAAO1nS,KAAKkhB,WAAWoxJ,KAAK,CAAEllI,SAAU,OAAQ5vB,OAAQ65T,IA4FhF,SAASwE,IAER77U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK+gS,SAAS,IAAKg2C,EAAUQ,WAC7Bv3U,KAAK0hS,UAAU,IAAI,QACnB1hS,KAAKkhB,WAAa,CACjBgiB,KAAK,UACL/9B,KAAM,QAEPnF,KAAK0nS,UAAU,OAAO,OAAO1nS,KAAKkhB,WAAWgiB,KAAK,CAAEkK,SAAU,SAC9DptC,KAAK0nS,UAAU,QAAQ,OAAO1nS,KAAKkhB,WAAW/b,KAAK,CAAEqY,OAAO,CAAC,QAAQ,OAAO,OAAO,QAAS4vB,SAAU,SAmEvG,SAASgvS,IAERp8U,KAAK0hS,UAAU,MAAM,SAqBtB,SAAS26C,IAERr8U,KAAK+gS,SAAS,MAAOg2C,EAAUQ,WAC/Bv3U,KAAK+gS,SAAS,QAAS,SACvB/gS,KAAK0hS,UAAU,MAAM,SACrB1hS,KAAKkhB,WAAa,CACjB/b,KAAM,QACNuwF,MAAO,GAER11F,KAAK0nS,UAAU,QAAQ,OAAQ1nS,KAAKkhB,WAAW/b,KAAM,CAAEioC,SAAU,OAAQ5vB,OAAQ6+T,EAAkBC,cACnGt8U,KAAK0nS,UAAU,SAAS,QAAS1nS,KAAKkhB,WAAWw0E,MAAO,CAAEtoD,SAAU,UA2KrE,SAASqvS,IAERz8U,KAAK0hS,UAAU,MAAM,SAoBtB,SAASg7C,IAER18U,KAAK+gS,SAAS,KAAK,KACnB/gS,KAAK0hS,UAAU,MAAM,SAyCtB,SAASm7C,IAER78U,KAAK+gS,SAAS,GAAIg2C,EAAUQ,WAC5Bv3U,KAAK0hS,UAAU,GAAG,IAClB1hS,KAAKkhB,WAAa,CACjB67T,UAAW,EACXE,UAAW,EACXE,WAAY,EACZE,WAAY,GAEbr9U,KAAK0nS,UAAU,SAAS,MAAM,EAAE,CAAEzlS,KAAM,GAAKmrC,SAAU,cACvDptC,KAAK0nS,UAAU,SAAS,MAAM,EAAE,CAAEzlS,KAAM,GAAKmrC,SAAU,cACvDptC,KAAK0nS,UAAU,SAAS,OAAO,EAAE,CAAEzlS,KAAM,GAAKmrC,SAAU,eACxDptC,KAAK0nS,UAAU,SAAS,OAAO,EAAE,CAAEzlS,KAAM,GAAKmrC,SAAU,gBAxvD1D,CA4yDGptC,MAIH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEtBuwD,EAAc,IAAItoD,aAAa,IAC/BuoD,EAAoB,IAAIvoD,aAAa,IACrCwoD,EAAwB,IAAIxoD,aAAa,IACzCyoD,EAAe,IAAIzoD,aAAa,IAChC0oD,EAAkB,CACrBC,OAAQL,EACRM,aAAcL,EACdM,iBAAkBL,EAClBM,QAASL,GAOV,SAASM,IACR,OAAwB,IAAhB7mU,KAAK6uD,SAAmB,EAGjC,SAASi4Q,IAERx+U,KAAK+gS,SAAS,MAAO,IACrB/gS,KAAK+gS,SAAS,SAAU,UAExB/gS,KAAK0hS,UAAU,MAAO,YACtB1hS,KAAK0hS,UAAU,SAAU,UACzB1hS,KAAKkhB,WAAa,CACjB8nS,OAAQ,EACRy1B,WAAY,KACZC,kBAAkB,EAClB3hS,SAAS,EACT9tC,KAAMuvU,EAAeG,OACrB55C,cAAc,GAGf/kS,KAAK69S,OAAS,IAAIroB,aAA2C,EAA7Bx1R,KAAKkhB,WAAWu9T,YAChDz+U,KAAK4+U,QAAU,IAAIppD,aAA2C,EAA7Bx1R,KAAKkhB,WAAWu9T,YACjDz+U,KAAK89S,aAAc,EACnB99S,KAAKkjS,QAAU,EAEf,IAAI1lB,EAAOx9Q,KACXA,KAAK0nS,UAAU,SAAS,SAAS,MAAM,WAAYlqB,EAAKsgC,aAAc,KAEtE99S,KAAK6+U,SAAW,CACfC,SAAU,KACV98K,IAAKu8K,KAGNv+U,KAAK++U,SAAW,KAChB/+U,KAAKg/U,aAAe,KA8SrB,SAASC,EAAoBC,EAAOz8U,GAEnC,IAAIgC,EAAIy6U,EAAMnhV,OACVohV,EAAO,EACPC,EAAO,EACPC,EAAO56U,EAEX,GAAQ,GAALA,EACF,OAAQ,EACT,GAAQ,GAALA,EACF,OAAO,EAER,KAAO46U,GAAQF,GACf,CAEC,IAAI9+U,EAAI6+U,EADRE,EAAsB,IAAbC,EAAOF,GAAW,GAE3B,GAAI9+U,GAAKoC,EACR,OAAO28U,EACR,GAAID,GAASE,EAAO,EACnB,OAAOF,EACJ9+U,EAAIoC,EACP08U,EAAOC,EAEPC,EAAOD,EAET,OAAOA,EAkIR,SAASE,IACRt/U,KAAK+gS,SAAS,SAAU,YACxB/gS,KAAK0hS,UAAU,YAAa,UAC5B1hS,KAAKkhB,WAAa,CACjBjS,KAAM,EACNswU,YAAY,GAGbv/U,KAAK89S,aAAc,EACnB99S,KAAKw/U,SAAW,GAChBx/U,KAAKy/U,YAAa,EAiInB,SAASC,IACR1/U,KAAK+gS,SAAS,KAAM,mBACpB/gS,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,MAAO,YACtB1hS,KAAKkhB,WAAa,GAElBlhB,KAAK6+U,SAAW,CACf15U,KAAM,YACN25U,SAAU,KACV98K,IAAKu8K,IACLpjD,SAAU,GAGXn7R,KAAK2/U,mBAAqB,EAC1B3/U,KAAK4/U,eAAiB,EACtB5/U,KAAK6/U,UAAY,GAEjB7/U,KAAK89S,aAAc,EA4GpB,SAASgiC,IACR9/U,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,MAAO,YACtB1hS,KAAKkhB,WAAa,CAAE6+T,MAAO,EAAG/2B,OAAQ,EAAG2xB,KAAK,GAE9C36U,KAAK6+U,SAAW,CACf15U,KAAM,YACN25U,SAAU,KACV98K,IAAKu8K,KAENv+U,KAAKggV,aAAe,EACpBhgV,KAAKkjS,SAAW,EAChBljS,KAAK89S,aAAc,EAEnB99S,KAAKigV,UAAY,CAAEF,OAAQ,EAAG/2B,QAAS,GA2DxC,SAASk3B,IAERlgV,KAAK+gS,SAAS,GAAI,YAClB/gS,KAAK0hS,UAAU,GAAI,YACnB1hS,KAAKkhB,WAAa,CAAEi/T,SAAS,EAAMC,YAAY,EAAMhgT,OAAQ,CAAC,EAAE,IAAI,IACpEpgC,KAAKkjS,SAAW,EAEhBljS,KAAKqgV,mBAAqB,EAC1BrgV,KAAKw5T,cAAe,EAiFrB,SAAS8mB,IACRtgV,KAAK+gS,SAAS,KAAM,YACpB/gS,KAAK0hS,UAAU,MAAO,YAEtB1hS,KAAKkhB,WAAa,CACjBgiB,KAAM,wCACNq9S,qBAAqB,GAGtBvgV,KAAK6+U,SAAW,KAChB7+U,KAAKggV,aAAe,EACpBhgV,KAAKkjS,SAAW,EAChBljS,KAAK89S,aAAc,EAEnB99S,KAAK8+U,SAAW,KAChB9+U,KAAKsyK,KAAO,KA6Kb,SAASkuK,IACRxgV,KAAK+gS,SAAS,KAAM,YACpB/gS,KAAK0hS,UAAU,MAAO,YAEtB1hS,KAAKkhB,WAAa,CACjB0qS,SAAU,GACVL,SAAU,GACVk1B,gBAAiB,EACjBC,YAAa,GAGd1gV,KAAKggV,aAAe,EACpBhgV,KAAKkjS,SAAW,EAChBljS,KAAK2gV,WAAa,EAClB3gV,KAAK89S,aAAc,EA2EpB,SAAS8iC,IACR5gV,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,MAAO,YAEtB1hS,KAAK6+U,SAAW,GAChB7+U,KAAK6gV,UAAY,KAiClB,SAASC,IACR9gV,KAAK+gS,SAAS,KAAM,YACpB/gS,KAAK0hS,UAAU,OAAQ,QACvB1hS,KAAKkhB,WAAa,GAClBlhB,KAAKkjS,SAAW,EAChBljS,KAAK2tU,KAAO,KAgEb,SAASoT,IACR/gV,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK+gS,SAAS,MAAO,WAErB/gS,KAAKkhB,WAAa,CACjB8sE,SAAS,EACTgzP,UAAWzxC,GAAG0xC,UACdpf,UAAU,EACVp0S,MAAO,CAAC,EAAE,EAAE,GACZsmB,QAAS,GAGV/zC,KAAKytB,MAAQyzS,KAAKhhU,OAAO,CAAC,EAAE,EAAE,EAAE,IAChCF,KAAKi+U,aAAe1kB,KAAKr5T,SACzBF,KAAK8tU,SAAW,CACf/M,QAAS/gU,KAAKytB,MACd6wT,QAASt+U,KAAKi+U,cAuFhB,SAASiD,IACRlhV,KAAK+gS,SAAS,OAAQ,UACtB/gS,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CAAE/b,KAAM,EAAGsH,KAAM,EAAG00U,aAAc,IAEpDnhV,KAAKkjS,QAA2B,IAAhBxrR,KAAK6uD,SAAmB,EACxCvmE,KAAKigV,UAAY,CAAE96U,MAAO,EAAGsH,MAAO,EAAG00U,cAAe,GAoEvD,SAASC,IACRphV,KAAK+gS,SAAS,KAAM,YACpB/gS,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK+gS,SAAS,MAAO,WACrB/gS,KAAKkhB,WAAa,CACjB8sE,SAAS,EACTqzP,WAAY,GACZC,YAAY,EACZzf,UAAU,EACVp0S,MAAO,CAAC,EAAE,EAAE,GACZsmB,QAAS,GAGV/zC,KAAKytB,MAAQyzS,KAAKhhU,OAAO,CAAC,EAAE,EAAE,EAAE,IAEhCF,KAAK8tU,SAAW,CACfyT,aAAc,EACdC,cAAe,EACfC,oBAAqB,EACrB1gB,QAAS/gU,KAAKytB,OAGfztB,KAAKggV,aAAe,EACpBhgV,KAAKkjS,SAAW,EAChBljS,KAAK2tU,KAAO,KAp+CbpgD,EAAUm0D,aAAe,CACxBC,wBAAyB,MAwC1B1gT,EAAOu9S,eAAiBA,EAExBA,EAAeoD,UAAY,EAC3BpD,EAAeqD,OAAS,EAExBrD,EAAesD,KAAO,GACtBtD,EAAeG,OAAS,GACxBH,EAAeuD,WAAa,GAC5BvD,EAAewD,cAAgB,GAE/BxD,EAAeyD,OAAS,GACxBzD,EAAe0D,iBAAmB,GAClC1D,EAAe2D,cAAgB,GAE/B3D,EAAejV,YAAc,CAAE,UAAYiV,EAAeoD,UAAW,OAASpD,EAAeqD,OAAQ,KAAOrD,EAAesD,KAAM,OAAStD,EAAeG,OAAQ,WAAaH,EAAeuD,WAAY,cAAgBvD,EAAewD,cAAe,OAASxD,EAAeyD,OAAQ,iBAAmBzD,EAAe0D,iBAAkB,cAAgB1D,EAAe2D,eAE1W3D,EAAeh3C,aAAe,CAC7Bv4R,KAAM,CAAE+tK,OAAQ,QAASx/J,OAAQghU,EAAejV,cAGjDiV,EAAevsT,MAAQ,iBACvBusT,EAAev9U,KAAO,6BAEtBu9U,EAAe9/U,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAE1DhC,KAAK89S,aAAc,GAGpB0gC,EAAe9/U,UAAUg0R,UAAY,WAEpC,IAAI9mR,EAAM5L,KAAK2yR,aAAa,IACxB/mR,GAAO5L,KAAK++U,UAAanzU,GAAOA,EAAIuvR,UAAYn7R,KAAKoiV,oBAExDpiV,KAAK++U,SAAWnzU,EAChB5L,KAAK89S,aAAc,GAGpB,IAAIkL,EAAShpT,KAAK2yR,aAAa,GAClB,MAAVq2B,IACFA,EAAShpT,KAAKkhB,WAAW8nS,QACtBhpT,KAAKg/U,cAAgBh2B,IAExBhpT,KAAKg/U,aAAeh2B,EACpBhpT,KAAK89S,aAAc,IAGjB99S,KAAK89S,aAAe99S,KAAKkhB,WAAW6jR,gBAEtC/kS,KAAK89S,aAAc,EACnB99S,KAAKqiV,gBAGNriV,KAAK6+U,SAASC,SAAW9+U,KAAK69S,OAC9B79S,KAAK6+U,SAASD,QAAU5+U,KAAK4+U,QAC7B5+U,KAAK6+U,SAAS1jD,SAAWn7R,KAAKkjS,QAE9BljS,KAAK4yR,cAAe,EAAG5yR,KAAK6+U,WAG7BL,EAAe9/U,UAAU2jV,aAAe,WACvC,IAAI5D,EAAwC,EAA3Bz+U,KAAKkhB,WAAWu9T,WAC9BA,EAAa,IACfA,EAAa,GAEVz+U,KAAK69S,QAAU79S,KAAK69S,OAAO9/S,QAAuB,EAAb0gV,IACxCz+U,KAAK69S,OAAS,IAAIroB,aAA2B,EAAbipD,IAE9Bz+U,KAAKkhB,WAAWw9T,iBAEb1+U,KAAK4+U,SAAW5+U,KAAK4+U,QAAQ7gV,QAAUiC,KAAK69S,OAAO9/S,SACvDiC,KAAK4+U,QAAU,IAAIppD,aAAcx1R,KAAK69S,OAAO9/S,SAG9CiC,KAAK4+U,QAAU,KAEhB,IAAI51B,EAAShpT,KAAKg/U,cAAgBh/U,KAAKkhB,WAAW8nS,OAC9C/5S,EAAOjP,KAAKkhB,WAAWjS,KAEvBrD,EAAM5L,KAAK2yR,aAAa,GAC5B3yR,KAAKoiV,iBAAmBx2U,EAAMA,EAAIuvR,SAAW,KAE7Cn7R,KAAK69S,OAAS2gC,EAAe8D,eAAgBt5B,EAAQy1B,EAAYxvU,EAAMjP,KAAK69S,OAAQ79S,KAAK4+U,QAAS5+U,KAAKkhB,WAAW67B,QAASnxC,GAE3H5L,KAAKkjS,WAINs7C,EAAe8D,eAAiB,SAAUt5B,EAAQy1B,EAAYxvU,EAAM4uS,EAAQ+gC,EAAS7hS,EAASnxC,GAE7F,IAAIa,EAAoB,EAAbgyU,EACP5gC,GAAUA,EAAO9/S,QAAU0O,IAC9BoxS,EAAS,IAAIroB,aAAc/oR,IAC5B,IAAIwpS,EAAO,IAAIzgB,aAAa,GACxBpF,EAAK,IAAIoF,aAAa,CAAC,EAAE,EAAE,IAE/B,GAAGz4O,GAEF,GAAI9tC,GAAQuvU,EAAeoD,UAC3B,CAEC,IADA,IAAItsP,EAAO59E,KAAKE,MAAMF,KAAK8kS,KAAKiiC,IACxB3gV,EAAI,EAAGA,EAAIw3F,IAAQx3F,EAC3B,IAAI,IAAIqG,EAAI,EAAGA,EAAImxF,IAAQnxF,EAC3B,CAEC05S,EADIlrQ,EAAQ,EAAF70C,EAAQ,EAAFqG,EAAImxF,IACJx3F,EAAEw3F,EAAQ,IAAO0zN,EAAS,EAC1CnL,EAAOlrQ,EAAI,GAAK,EAChBkrQ,EAAOlrQ,EAAI,IAAOxuC,EAAEmxF,EAAQ,IAAO0zN,EAAS,EAG7C,GADAnL,EAAS,IAAIroB,aAAcqoB,EAAO50D,SAAS,EAAE3zJ,EAAKA,EAAK,IACpDspP,EAEF,IAAQ9gV,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAG,EACrC8gV,EAAQp3S,IAAI4oP,EAAItyR,QAGd,GAAImR,GAAQuvU,EAAeG,OAChC,CAEC,IADIrpP,EAAO59E,KAAKE,MAAMF,KAAK8kS,KAAKiiC,IACxB3gV,EAAI,EAAGA,EAAIw3F,IAAQx3F,EAC3B,IAAQqG,EAAI,EAAGA,EAAImxF,IAAQnxF,EAC3B,CACC,IAAIwuC,EAAQ,EAAF70C,EAAQ,EAAFqG,EAAImxF,EACpBitP,iBAAkBtsC,EAAOn4S,EAAEw3F,EAAQ,EAAI59E,KAAKigS,GAAuB,GAAjBxzS,EAAEmxF,EAAQ,IAAW59E,KAAKigS,GAAIqR,GAChFnL,EAAOlrQ,GAAOsjQ,EAAK,GACnB4H,EAAOlrQ,EAAI,GAAKsjQ,EAAK,GACrB4H,EAAOlrQ,EAAI,GAAKsjQ,EAAK,GAEtB4H,EAAS,IAAIroB,aAAcqoB,EAAO50D,SAAS,EAAE3zJ,EAAKA,EAAK,IACpDspP,GACFJ,EAAegE,yBAA0B3kC,EAAQ+gC,QAE9C,GAAI3vU,GAAQuvU,EAAeqD,OAChC,CACC,IAAQ/jV,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAI20T,EAAQ,EAAI/6S,KAAKigS,IAAM75S,EAAE2O,GAC7BoxS,EAAO//S,GAAK4Z,KAAKg7S,IAAKD,GAAUzJ,EAChCnL,EAAO//S,EAAE,GAAK,EACd+/S,EAAO//S,EAAE,GAAK4Z,KAAKi7S,IAAKF,GAAUzJ,EAEnC,GAAG41B,EAEF,IAAQ9gV,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAG,EACrC8gV,EAAQp3S,IAAI4oP,EAAItyR,SAMnB,GAAImR,GAAQuvU,EAAeoD,UAC3B,CACC,IAAQ9jV,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAE3B+/S,EAAO//S,IAAM4Z,KAAK6uD,SAAW,IAAOyiP,EAAS,EAC7CnL,EAAO//S,EAAE,GAAK,EACd+/S,EAAO//S,EAAE,IAAM4Z,KAAK6uD,SAAW,IAAOyiP,EAAS,EAEhD,GAAG41B,EAEF,IAAQ9gV,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAG,EACrC8gV,EAAQp3S,IAAI4oP,EAAItyR,QAGd,GAAImR,GAAQuvU,EAAesD,KAChC,CACC,IAAQhkV,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAE3B+/S,EAAO//S,IAAM4Z,KAAK6uD,SAAW,IAAOyiP,EAAS,EAC7CnL,EAAO//S,EAAE,IAAM4Z,KAAK6uD,SAAW,IAAOyiP,EAAS,EAC/CnL,EAAO//S,EAAE,IAAM4Z,KAAK6uD,SAAW,IAAOyiP,EAAS,EAEhD,GAAG41B,EAEF,IAAQ9gV,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAG,EACrC8gV,EAAQp3S,IAAI4oP,EAAItyR,QAGVmR,GAAQuvU,EAAeG,QAE/BH,EAAeiE,eAAgB5kC,EAAQpxS,EAAMu8S,GAC1C41B,GACFJ,EAAegE,yBAA0B3kC,EAAQ+gC,IAE1C3vU,GAAQuvU,EAAeuD,YAE/BvD,EAAekE,mBAAoB7kC,EAAQpxS,EAAMu8S,GAC9C41B,GACFJ,EAAegE,yBAA0B3kC,EAAQ+gC,IAE1C3vU,GAAQuvU,EAAeqD,QAE/BrD,EAAemE,qBAAsB9kC,EAAQpxS,EAAMu8S,GAChD41B,GACFJ,EAAegE,yBAA0B3kC,EAAQ+gC,IAE1C3vU,GAAQuvU,EAAewD,eAE/BxD,EAAeoE,qBAAsB/kC,EAAQpxS,EAAMu8S,GAChD41B,GACFJ,EAAegE,yBAA0B3kC,EAAQ+gC,IAE1C3vU,GAAQuvU,EAAeyD,OAE/BzD,EAAeqE,mBAAoBhlC,EAAQ+gC,EAASnyU,EAAMb,GAAK,GAEvDqD,GAAQuvU,EAAe0D,iBAE/B1D,EAAeqE,mBAAoBhlC,EAAQ+gC,EAASnyU,EAAMb,GAAK,GAEvDqD,GAAQuvU,EAAe2D,cAE/B3D,EAAesE,yBAA0BjlC,EAAQpxS,EAAMb,GAKvD8R,QAAQC,KAAK,gCAGf,OAAOkgS,GAGR2gC,EAAegE,yBAA2B,SAAS3kC,EAAQ+gC,GAG1D,IADA,IAAI3oC,EAAO,IAAIzgB,aAAa,GACpB13R,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAG,EAErCm4S,EAAK,GAAK4H,EAAO//S,GACjBm4S,EAAK,GAAK4H,EAAO//S,EAAE,GACnBm4S,EAAK,GAAK4H,EAAO//S,EAAE,GACnB47T,KAAKzkQ,UAAUghP,EAAKA,GACpB2oC,EAAQp3S,IAAIyuQ,EAAKn4S,IAInB0gV,EAAeiE,eAAiB,SAAU5kC,EAAQpxS,EAAMu8S,GAEvD,IAAI,IAAIlrT,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAIq4I,EAAKz+H,KAAK6uD,SACV6vE,EAAK1+H,KAAK6uD,SACVtqD,EAAI,EAAIvE,KAAKg7S,IAAK,EAAIh7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAMpmK,GAAM,EAAEA,IAC1D1zI,EAAI,EAAI,EAAI0zI,EACZ/mC,EAAI,EAAI33F,KAAKi7S,IAAK,EAAIj7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAMpmK,GAAM,EAAEA,IAC9DynK,EAAO//S,GAAKme,EAAI+sS,EAChBnL,EAAO//S,EAAE,GAAK4E,EAAIsmT,EAClBnL,EAAO//S,EAAE,GAAKuxG,EAAI25M,IAIpBw1B,EAAekE,mBAAqB,SAAU7kC,EAAQpxS,EAAMu8S,GAE3D,IAAI,IAAIlrT,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAIq4I,EAAKz+H,KAAK6uD,SACV6vE,EAAK1+H,KAAK6uD,SACVtqD,EAAIvE,KAAKg7S,IAAK,EAAIh7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAK,EAAIpmK,EAAGA,GACpD1zI,EAAI0zI,EACJ/mC,EAAI33F,KAAKi7S,IAAK,EAAIj7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAK,EAAIpmK,EAAGA,GACxDynK,EAAO//S,GAAKme,EAAI+sS,EAChBnL,EAAO//S,EAAE,GAAK4E,EAAIsmT,EAClBnL,EAAO//S,EAAE,GAAKuxG,EAAI25M,IAIpBw1B,EAAemE,qBAAuB,SAAU9kC,EAAQpxS,EAAMu8S,GAE7D,IAAI,IAAIlrT,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAIq4I,EAAKz+H,KAAK6uD,SACV6vE,EAAK1+H,KAAK6uD,SACVtqD,EAAIvE,KAAKg7S,IAAK,EAAIh7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAK,EAAIpmK,EAAGA,GAEpD/mC,EAAI33F,KAAKi7S,IAAK,EAAIj7S,KAAKigS,GAAKxhK,GAAOz+H,KAAK8kS,KAAK,EAAIpmK,EAAGA,GACxDynK,EAAO//S,GAAKme,EAAI+sS,EAChBnL,EAAO//S,EAAE,GAAK,EACd+/S,EAAO//S,EAAE,GAAKuxG,EAAI25M,IAIpBw1B,EAAeoE,qBAAuB,SAAU/kC,EAAQpxS,EAAMu8S,GAE7D,IAAI,IAAIlrT,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAIilV,EAAIrrU,KAAK6uD,SACTnjE,EAAIsU,KAAK6uD,SACTy8Q,EAAY,EAAJD,EAAUrrU,KAAKigS,GACvBgvB,EAAMjvT,KAAKwhT,KAAK,EAAM91T,EAAI,GAC1BjC,EAAIuW,KAAKurU,KAAKvrU,KAAK6uD,UAAYyiP,EAC/Bk6B,EAAWxrU,KAAKi7S,IAAIqwB,GACpBG,EAAWzrU,KAAKg7S,IAAIswB,GACpBI,EAAS1rU,KAAKi7S,IAAIgU,GAClB0c,EAAS3rU,KAAKg7S,IAAIiU,GACtB9oB,EAAO//S,GAAKqD,EAAIiiV,EAASD,EACzBtlC,EAAO//S,EAAE,GAAKqD,EAAIiiV,EAASF,EAC3BrlC,EAAO//S,EAAE,GAAKqD,EAAIkiV,IAgCpB7E,EAAeqE,mBAAqB,SAAUhlC,EAAQ+gC,EAASnyU,EAAMb,EAAK03U,GAEzE,GAAI13U,EAAJ,CAGA,IAAIkzU,EAAW,KACXyE,EAAe,KACfC,EAAU,KACVtE,EAAQ,KASZ,GARItzU,EAAI3L,cAAgBsvS,GAAGq+B,OAE1BkR,EAAWlzU,EAAI63U,cAAc3E,SAAS3/U,KACtCokV,EAAe33U,EAAI63U,cAAc7E,QAAUhzU,EAAI63U,cAAc7E,QAAQz/U,KAAO,MAC5EqkV,EAAU53U,EAAI83U,aAAaF,QAAU53U,EAAI83U,aAAaF,QAAQrkV,KAAO,QAEpEqkV,EAAU53U,EAAI83U,aAAaC,UAAY/3U,EAAI83U,aAAaC,UAAUxkV,KAAO,QAEvE2/U,EACH,OAAO,KACR,IAAI8E,EAAgBJ,EAAUA,EAAQzlV,OAAS,EAAI+gV,EAAS/gV,OAAT,EAC/C8lV,EAAa,EAEjB,GAAGP,EACH,CACCpE,EAAQ,IAAI1pD,aAAaouD,GACzB,IAAI,IAAI9lV,EAAI,EAAGA,EAAI8lV,IAAiB9lV,EACpC,CACI0lV,GAEFt/U,EAAiB,EAAbs/U,EAAU,EAAF1lV,GACZwB,EAAmB,EAAfkkV,EAAU,EAAF1lV,EAAI,GAChBoD,EAAmB,EAAfsiV,EAAU,EAAF1lV,EAAI,KAIhBoG,EAAM,EAAFpG,EACJwB,EAAM,EAAFxB,EAAI,EACRoD,EAAM,EAAFpD,EAAI,GAET,IAAIgmV,EAAKhF,EAAS71F,SAAS/kP,EAAEA,EAAE,GAC3B6/U,EAAKjF,EAAS71F,SAAS3pP,EAAEA,EAAE,GAC3B0kV,EAAKlF,EAAS71F,SAAS/nP,EAAEA,EAAE,GAC3B+iV,EAAKvqB,KAAK5mL,SAAUgxM,EAAIC,GACxBG,EAAKxqB,KAAK5mL,SAAUixM,EAAIC,GACxBG,EAAKzqB,KAAK5mL,SAAUkxM,EAAIF,GACxBxjV,GAAK2jV,EAAKC,EAAIC,GAAM,EACxBN,GAAcnsU,KAAK8kS,KAAKl8S,GAAKA,EAAI2jV,IAAO3jV,EAAI4jV,IAAO5jV,EAAI6jV,IACvDjF,EAAMphV,GAAK+lV,EAEZ,IAAQ/lV,EAAI,EAAGA,EAAI8lV,IAAiB9lV,EACnCohV,EAAMphV,IAAM+lV,EAGd,IAAQ/lV,EAAI,EAAGA,EAAI2O,EAAM3O,GAAG,EAC5B,CACC,IAAIqD,EAAIuW,KAAK6uD,SACTtnE,EAAQqkV,EAASrE,EAAoBC,EAAO/9U,GAAMuW,KAAKE,MAAMzW,EAAIyiV,GAEjE1/U,EAAI,EACJ5E,EAAI,EACJ4B,EAAI,EACLsiV,GAEFt/U,EAAqB,EAAjBs/U,EAAc,EAANvkV,GACZK,EAAuB,EAAnBkkV,EAAc,EAANvkV,EAAQ,GACpBiC,EAAuB,EAAnBsiV,EAAc,EAANvkV,EAAQ,KAIpBiF,EAAU,EAANjF,EACJK,EAAU,EAANL,EAAQ,EACZiC,EAAU,EAANjC,EAAQ,GAETqB,EAAIoX,KAAK6uD,SAAb,IACIlmE,EAAIqX,KAAK6uD,SACT69Q,EAAS1sU,KAAK8kS,KAAKl8S,GACnB+jV,EAAK,EAAID,EACT/1K,EAAK+1K,GAAW,EAAI/jV,GACpBikV,EAAKjkV,EAAI+jV,EAIb,GAHAvmC,EAAO//S,GAAKumV,EAAKvF,EAAS56U,GAAKmqK,EAAGywK,EAASx/U,GAAKglV,EAAGxF,EAAS59U,GAC5D28S,EAAO//S,EAAE,GAAKumV,EAAKvF,EAAS56U,EAAE,GAAKmqK,EAAGywK,EAASx/U,EAAE,GAAKglV,EAAGxF,EAAS59U,EAAE,GACpE28S,EAAO//S,EAAE,GAAKumV,EAAKvF,EAAS56U,EAAE,GAAKmqK,EAAGywK,EAASx/U,EAAE,GAAKglV,EAAGxF,EAAS59U,EAAE,GACjE09U,GAAW2E,EACd,CACC3E,EAAQ9gV,GAAKumV,EAAKd,EAAar/U,GAAKmqK,EAAGk1K,EAAajkV,GAAKglV,EAAGf,EAAariV,GACzE09U,EAAQ9gV,EAAE,GAAKumV,EAAKd,EAAar/U,EAAE,GAAKmqK,EAAGk1K,EAAajkV,EAAE,GAAKglV,EAAGf,EAAariV,EAAE,GACjF09U,EAAQ9gV,EAAE,GAAKumV,EAAKd,EAAar/U,EAAE,GAAKmqK,EAAGk1K,EAAajkV,EAAE,GAAKglV,EAAGf,EAAariV,EAAE,GACjF,IAAImtP,EAAIuwF,EAAQ31F,SAASnrP,EAAEA,EAAE,GAC7B47T,KAAKzkQ,UAAUo5L,EAAEA,OAKpBmwF,EAAesE,yBAA2B,SAAUjlC,EAAQpxS,EAAMkhU,GAEjE,GAAIA,GAAQA,EAAK1tU,cAAgBsvS,GAAGq+B,KAApC,CAGA,IAAI2W,EAAO5W,EAAK6W,iBACZ7W,EAAK8W,SACR9W,EAAK8W,OAAS,IAAIl1C,GAAGm1C,OAAQ/W,IAO9B,IANA,IAAI8W,EAAS9W,EAAK8W,OACdtyL,EAASunK,KAAKx5T,SACdmM,EAAYqtT,KAAKuB,WAAW,EAAE,EAAE,GAChChlB,EAAOyjB,KAAKx5T,SACZpC,EAAI,EACJirL,EAAQ,EACNjrL,EAAI2O,GAAQs8K,EAAwB,GAAhB80H,EAAO9/S,QACjC,CACCgrL,GAAS,EACT,IAAI5nL,EAAIu4T,KAAKnzP,OAAO0vO,GACpB90S,EAAE,IAAa,EAAPA,EAAE,GAAS,GAAKojV,EAAK,GAAKA,EAAK,GACvCpjV,EAAE,IAAa,EAAPA,EAAE,GAAS,GAAKojV,EAAK,GAAKA,EAAK,GACvCpjV,EAAE,IAAa,EAAPA,EAAE,GAAS,GAAKojV,EAAK,GAAKA,EAAK,GACvCpyL,EAAO3qH,IAAIrmC,GACX,IAAIwjV,EAAMF,EAAOG,QAASzyL,EAAQ9lJ,EAAW,EAAG,KAAO,EAAMkjS,GAAGm1C,OAAOG,KACnEF,GAAOA,EAAI5mV,OAAS,GAAK,IAE7B8/S,EAAOr2Q,IAAKrmC,EAAGrD,GACfA,GAAG,MAILyvR,EAAUkE,iBAAkB,oBAAqB+sD,GAiBjDc,EAAwBwF,OAAS,EACjCxF,EAAwByF,SAAW,EACnCzF,EAAwB0F,UAAY,EACpC1F,EAAwB2F,OAAS,EACjC3F,EAAwB4F,gBAAkB,EAE1C5F,EAAwB18L,MAAQ,CAAC,OAAS,EAAE,SAAW,EAAE,UAAY,EAAE,OAAS,EAAE,gBAAkB,GACpG08L,EAAwB93C,aAAe,CACtCv4R,KAAM,CAAE+tK,OAAQ,QAASx/J,OAAQ8hU,EAAwB18L,QAG1D08L,EAAwBrtT,MAAQ,iBAEhCqtT,EAAwB5gV,UAAUg0R,UAAY,WAE7C,IAAIyyD,EAAMnlV,KAAK2yR,aAAa,GACvBwyD,EAMAnlV,KAAK4lS,kBAAkB,OAGTu/C,EAAIhqD,UAAYn7R,KAAKm7R,UAAYgqD,EAAInjL,KAAOhiK,KAAKolV,eAEjDplV,KAAKkhB,WAAWq+T,YAAcv/U,KAAKy/U,cAErDz/U,KAAKy/U,YAAa,EAClBz/U,KAAKqlV,gBAAiBF,IAGvBnlV,KAAK4yR,cAAe,EAAG5yR,KAAKw/U,WAf3Bx/U,KAAK4yR,cAAc,EAAE,OAkBvB0sD,EAAwB5gV,UAAU2mV,gBAAkB,SAAUxG,GAE7D,IAAIC,EAAWD,EAASC,SACxB,IAAIA,EACH,OAAO,KACR,IAAIF,EAAUC,EAASD,QAEnBY,EAAWx/U,KAAKw/U,SAChBf,EAAaK,EAAS/gV,OAAS,EAC/ByhV,EAASzhV,QAAU0gV,IACtBe,EAASzhV,OAAS0gV,GAanB,IAZA,IAAIxrE,EAAWsmD,KAAKr5T,SAChB+1S,EAAOyjB,KAAKx5T,SAEZkwR,GADOspC,KAAKx5T,SACPw5T,KAAKuB,WAAW,EAAE,EAAE,IACzBqqB,EAAQ5rB,KAAKuB,WAAW,EAAE,GAAG,GAE7Bb,GADQV,KAAKuB,WAAW,EAAE,EAAE,GACxBX,KAAKp6T,UAETqlV,EAAQ7rB,KAAKx5T,SACb6rC,EAAQ2tR,KAAKx5T,SACb6L,EAAM2tT,KAAKx5T,SAEPpC,EAAI,EAAGA,EAAIghV,EAAS/gV,OAAQD,GAAK,EACzC,CACC,IAAImB,EAAQnB,EAAE,EACV4F,EAAI87U,EAASvgV,GACbyE,IACHA,EAAI87U,EAASvgV,GAASs6T,KAAKr5T,UAC5BwD,EAAE8jC,IAAKyrO,GACP,IAAIq8B,EAAQwvC,EAAS71F,SAASnrP,EAAEA,EAAE,GAElC,OAAOkC,KAAKkhB,WAAWjS,MAEtB,KAAKqwU,EAAwBwF,OAE5B,GADAvrB,KAAKisB,eAAgB9hV,EAAG4rS,GACrBsvC,EACH,CACC,IAAI6G,EAAS7G,EAAQ31F,SAASnrP,EAAEA,EAAE,GAClCiO,EAAIy7B,IAAKi+S,GACT/rB,KAAKzkQ,UAAWlpD,EAAKA,GACrB2tT,KAAKmB,MAAO9uR,EAAOu5S,EAAOv5U,GAC1B2tT,KAAKzkQ,UAAWlpB,EAAOA,GACvB2tR,KAAKmB,MAAO0qB,EAAOx5S,EAAOhgC,GAC1B2tT,KAAKzkQ,UAAWswR,EAAOA,GACvB7hV,EAAE8jC,IAAIuE,EAAM,GACZroC,EAAE8jC,IAAIz7B,EAAI,GACVrI,EAAE8jC,IAAI+9S,EAAM,GACZhsB,KAAKisB,eAAgB9hV,EAAG4rS,GAEzB,MACD,KAAKgwC,EAAwByF,SAC5BxrB,KAAKisB,eAAgB9hV,EAAG4rS,GACxB,MACD,KAAKgwC,EAAwB0F,UAC5BO,EAAM/9S,IAAK8nQ,GACXoqB,KAAKzkQ,UAAWswR,EAAOA,GACvB7rB,KAAKmB,MAAO9uR,EAAOqkP,EAAIm1D,GACvB7rB,KAAKzkQ,UAAWlpB,EAAOA,GACvB2tR,KAAKmB,MAAO9uT,EAAKw5U,EAAOx5S,GACxB2tR,KAAKzkQ,UAAWlpD,EAAKA,GACrBrI,EAAE8jC,IAAIuE,EAAM,GACZroC,EAAE8jC,IAAIz7B,EAAI,GACVrI,EAAE8jC,IAAI+9S,EAAM,GACZhsB,KAAKisB,eAAgB9hV,EAAG4rS,GACxB,MACD,KAAKgwC,EAAwB2F,OAC5BhvC,EAAK,GAAmB,EAAdv+R,KAAK6uD,SAAa,EAC5B0vO,EAAK,GAAmB,EAAdv+R,KAAK6uD,SAAa,EAC5B0vO,EAAK,GAAmB,EAAdv+R,KAAK6uD,SAAa,EAC5BmzP,KAAKzkQ,UAAWghP,EAAMA,GACtBqkB,KAAK2B,aAAc7B,EAAGnkB,EAAsB,EAAhBv+R,KAAK6uD,SAAe7uD,KAAKigS,IACrD4hB,KAAKiB,SAAS92T,EAAG02T,GACjBb,KAAKisB,eAAgB9hV,EAAG4rS,GACxB,MACD,KAAKgwC,EAAwB4F,gBAC5B5qB,KAAK2B,aAAc7B,EAAGhqC,EAAoB,EAAhB14Q,KAAK6uD,SAAe7uD,KAAKigS,IACnD4hB,KAAKiB,SAAS92T,EAAG02T,GACjBb,KAAKisB,eAAgB9hV,EAAG4rS,IAK3BtvS,KAAKm7R,SAAW0jD,EAAS1jD,SACzBn7R,KAAKolV,aAAevG,EAAS78K,KAG9BurH,EAAUkE,iBAAkB,+BAAgC6tD,GAuB5DI,EAAwBztT,MAAQ,YAEhCytT,EAAwBhhV,UAAUg0R,UAAY,WAE7C,IAAItjM,EAAQpvF,KAAK2yR,aAAa,GAC1B79P,EAAQ90B,KAAK2yR,aAAa,GAE9B,GAAIvjM,EAIJ,GAAGA,EAAMnvF,cAAgBR,OA8BzB,GAAI2vF,EAAM0vP,UAAa1vP,EAAM0vP,SAAS/gV,OAAtC,CAEA,IAAIonV,EAAM/1P,EAEV,GADApvF,KAAKo8R,QAAQ,GAAGj3R,KAAO,WAClBnF,KAAK4lS,kBAAkB,GAE5B,GAAI9wQ,EAAJ,CAMA,IAAIx2B,EAAMonV,kBAAkB5wT,GAAOnY,KAAK,MAEpC3c,KAAK89S,aAAeqnC,EAAInjL,KAAOhiK,KAAK2/U,mBAAqBwF,EAAIhqD,UAAYn7R,KAAK4/U,eAAiBthV,GAAO0B,KAAK6/U,aAE9G7/U,KAAK2lV,eAAeR,EAAKrwT,GACzB90B,KAAK6/U,UAAYvhV,EACjB0B,KAAK4/U,cAAgBuF,EAAIhqD,SACzBn7R,KAAK2/U,kBAAoBwF,EAAInjL,IAC7BhiK,KAAK89S,aAAc,GAGpB99S,KAAK4yR,cAAc,EAAE5yR,KAAK6+U,eAfzB7+U,KAAK4yR,cAAc,EAAEuyD,QAtCtB,CAEC,GAAmB,GAAhB/1P,EAAMrxF,OACR,OAED,GADAiC,KAAKo8R,QAAQ,GAAGj3R,KAAO,UAClBnF,KAAK4lS,kBAAkB,GAC3B,OAED,IAAI9wQ,EAGH,YADA90B,KAAK4yR,cAAc,EAAExjM,GAIlBpvF,KAAK64B,UACR74B,KAAK64B,QAAU,IAAIp5B,OACjBO,KAAK64B,QAAQ96B,QAAUqxF,EAAMrxF,SAC/BiC,KAAK64B,QAAQ96B,OAASqxF,EAAMrxF,QAC7B,IAAI,IAAID,EAAI,EAAGA,EAAIsxF,EAAMrxF,SAAUD,EACnC,CACC,IAAI4F,EAAI1D,KAAK64B,QAAQ/6B,GACjB4F,IACHA,EAAI1D,KAAK64B,QAAQ/6B,GAAKy7T,KAAKr5T,UAC5Bq5T,KAAKkB,SAAS/2T,EAAE0rF,EAAMtxF,GAAGg3B,GAE1B90B,KAAK4yR,cAAc,EAAE5yR,KAAK64B,WA+B5B6mT,EAAwBhhV,UAAUinV,eAAiB,SAAS9G,EAAU/pT,GACrE,IAAI8wT,EAAe/G,EAASC,SACxBA,EAAW9+U,KAAK6+U,SAASC,SACxBA,GAAYA,EAAS/gV,QAAU6nV,EAAa7nV,SAChD+gV,EAAW9+U,KAAK6+U,SAASC,SAAW,IAAItpD,aAAcowD,EAAa7nV,SAGpE,IAFA,IAAIk4S,EAAOyjB,KAAKx5T,SAERpC,EAAI,EAAG2G,EAAIq6U,EAAS/gV,OAAQD,EAAI2G,EAAG3G,GAAG,EAE7Cm4S,EAAK,GAAK2vC,EAAa9nV,GAAIm4S,EAAK,GAAK2vC,EAAa9nV,EAAE,GAAIm4S,EAAK,GAAK2vC,EAAa9nV,EAAE,GACjFy7T,KAAKssB,aAAc5vC,EAAMnhR,EAAOmhR,GAChC6oC,EAAShhV,GAAKm4S,EAAK,GAAI6oC,EAAShhV,EAAE,GAAKm4S,EAAK,GAAI6oC,EAAShhV,EAAE,GAAKm4S,EAAK,GAGtE,GAAG4oC,EAASD,QACZ,CACM5+U,KAAK6+U,SAASD,SAAW5+U,KAAK6+U,SAASD,QAAQ7gV,QAAU8gV,EAASD,QAAQ7gV,SAC9EiC,KAAK6+U,SAASD,QAAU,IAAIppD,aAAcqpD,EAASD,QAAQ7gV,SAC5D,IAAI6gV,EAAU5+U,KAAK6+U,SAASD,QACxBkH,EAAevsB,KAAKsK,OAAOtK,KAAKr5T,SAAU40B,GAC3CgxT,GACFvsB,KAAKwsB,UAAUD,EAAcA,GAC9B,IAAIE,EAAcnH,EAASD,QAC3B,IAAQ9gV,EAAI,EAAG2G,EAAIm6U,EAAQ7gV,OAAQD,EAAI2G,EAAG3G,GAAG,EAE5Cm4S,EAAK,GAAK+vC,EAAYloV,GAAIm4S,EAAK,GAAK+vC,EAAYloV,EAAE,GAAIm4S,EAAK,GAAK+vC,EAAYloV,EAAE,GAC9Ey7T,KAAKssB,aAAc5vC,EAAM6vC,EAAc7vC,GACvC2oC,EAAQ9gV,GAAKm4S,EAAK,GAAI2oC,EAAQ9gV,EAAE,GAAKm4S,EAAK,GAAI2oC,EAAQ9gV,EAAE,GAAKm4S,EAAK,GAIpEj2S,KAAK6+U,SAAS15U,KAAO05U,EAAS15U,KAC9BnF,KAAK6+U,SAAS1jD,YAGf5N,EAAUkE,iBAAkB,qBAAsBiuD,GAqBlDI,EAAsB7tT,MAAQ,UAE9B6tT,EAAsBphV,UAAUg0R,UAAY,WAE3C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAGA,IAAIm6C,EAAQ//U,KAAKylS,mBAAmB,SAChCujB,EAAShpT,KAAKylS,mBAAmB,UACrCs6C,EAA0B,EAAlBroU,KAAKC,IAAI,EAAEooU,GAGf//U,KAAKigV,UAAUF,OAASA,GAAS//U,KAAKigV,UAAUj3B,QAAUA,GAC7DhpT,KAAK2lV,eAAe5F,EAAO/2B,GAE5BhpT,KAAK4yR,cAAc,EAAE5yR,KAAK6+U,YAG3BiB,EAAsBphV,UAAUinV,eAAiB,SAAS5F,EAAO/2B,GAChE,IAAIhsB,EAAM,EAAE+iD,EACRjB,EAAW9+U,KAAK6+U,SAASC,SACxBA,GAAYA,EAAS/gV,QAAUi/R,IACnC8hD,EAAW9+U,KAAK6+U,SAASC,SAAW,IAAItpD,aAAc,EAAEuqD,IACzD,IAAIpoR,EAAmB,EAAVjgD,KAAKigS,GAAUooC,EACxBkG,EAAUjmV,KAAKkhB,WAAWy5T,IAC3BsL,IAEFtL,IAAM36U,KAAK6+U,SAASqH,OAAS,IAAI1wD,aAAc,EAAEuqD,IAIlD,IAAI,IAAIjiV,EAAI,EAAGA,EAAIiiV,IAASjiV,EAC5B,CACC,IAAI20T,EAAQ96P,GAAS75D,EACjBme,EAAIvE,KAAKg7S,IAAKD,GAAUzJ,EAExB35M,EAAI33F,KAAKi7S,IAAKF,GAAUzJ,EAC5B81B,EAAW,EAAFhhV,GAAOme,EAChB6iU,EAAW,EAAFhhV,EAAI,GAHL,EAIRghV,EAAW,EAAFhhV,EAAI,GAAKuxG,EAQnBrvG,KAAK6+U,SAAS78K,MAAQhiK,KAAKggV,YAC3BhgV,KAAK6+U,SAAS1jD,WAAan7R,KAAKkjS,QAChCljS,KAAKigV,UAAUF,MAAQA,EACvB//U,KAAKigV,UAAUj3B,OAASA,GAGzBz7B,EAAUkE,iBAAkB,mBAAoBquD,GAchDI,EAAsBjuT,MAAQ,UAE9BiuT,EAAsBxhV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAElEhC,KAAKw5T,cAAe,GAGrB0mB,EAAsBxhV,UAAUg0R,UAAY,WAE3C,IAAIyyD,EAAMnlV,KAAK2yR,aAAa,GACvBwyD,GAAQnlV,KAAK4lS,kBAAkB,MAGjCu/C,EAAIjiD,SAAWljS,KAAKqgV,mBAAqBrgV,KAAKw5T,gBAEhDx5T,KAAKmmV,KAAOnmV,KAAKomV,gBAAiBjB,EAAKnlV,KAAKmmV,MACzCnmV,KAAKmmV,OACPnmV,KAAKmmV,KAAKjjD,QAAUljS,KAAKkjS,WAC1BljS,KAAKw5T,cAAe,GAGrBx5T,KAAK4yR,cAAc,EAAG5yR,KAAKmmV,QAG5BjG,EAAsBxhV,UAAU0nV,gBAAkB,SAAUjB,GAG3D,IAAIrG,EAAWqG,EAAIrG,SACfL,EAAaK,EAAS/gV,OAAS,EAE/Bu+S,EAAQod,KAAKx5T,SACbq8S,EAAQmd,KAAKx5T,SACbmmV,EAAQ3sB,KAAKx5T,SACbomV,EAAQ5sB,KAAKx5T,SACbkgC,EAAS,IAAIo1P,aAAcx1R,KAAKkhB,WAAWkf,QAE/C,GAAe,aAAZ+kT,EAAIhgV,KAIN,IAFA,IAAIohV,EAAe,IAAI/wD,aAA2B,EAAbipD,EAAiB,GAClD+H,EAAO,EACH1oV,EAAI,EAAG2G,EAAIq6U,EAAS/gV,OAAQD,EAAI2G,EAAG3G,GAAK,EAE/Cw+S,EAAM,GAAKwiC,EAAShhV,GAAIw+S,EAAM,GAAKwiC,EAAShhV,EAAE,GAAIw+S,EAAM,GAAKwiC,EAAShhV,EAAE,GAEpEA,EAAE,EAAI2G,GAET83S,EAAM,GAAKuiC,EAAShhV,EAAE,GAAIy+S,EAAM,GAAKuiC,EAAShhV,EAAE,GAAIy+S,EAAM,GAAKuiC,EAAShhV,EAAE,KAI1Ey+S,EAAM,GAAKuiC,EAAS,GAAIviC,EAAM,GAAKuiC,EAAS,GAAIviC,EAAM,GAAKuiC,EAAS,IAGrEplB,KAAKlgT,IAAK6sU,EAAO/pC,EAAOl8Q,GACxBs5R,KAAKlgT,IAAK8sU,EAAO/pC,EAAOn8Q,GAExBmmT,EAAa/+S,IAAK80Q,EAAOkqC,GAAQA,GAAQ,EACzCD,EAAa/+S,IAAK+0Q,EAAOiqC,GAAQA,GAAQ,EACzCD,EAAa/+S,IAAK6+S,EAAOG,GAAQA,GAAQ,EAEzCD,EAAa/+S,IAAK+0Q,EAAOiqC,GAAQA,GAAQ,EACzCD,EAAa/+S,IAAK8+S,EAAOE,GAAQA,GAAQ,EACzCD,EAAa/+S,IAAK6+S,EAAOG,GAAQA,GAAQ,EAU3C,MANc,CACbxkL,IAAKu8K,IACLp5U,KAAM,YACN25U,SAAUyH,IAMZh5D,EAAUkE,iBAAkB,mBAAoByuD,GAqBhDI,EAAmBruT,MAAQ,UAC3BquT,EAAmBr/U,KAAO,YAE1Bq/U,EAAmB94C,aAAe,CACjCtkQ,KAAM,CAAE85I,OAAQ,SAGjBsjK,EAAmB5hV,UAAU+kS,YAAc,SAAShgS,GAEnDzD,KAAKmvT,eAGNmxB,EAAmB5hV,UAAUywT,YAAc,WAE1C,GAAInvT,KAAKkhB,WAAWgiB,KAGpB,IAECljC,KAAKsyK,KAAO,IAAIJ,SAAS,IAAI,IAAI,IAAKlyK,KAAKkhB,WAAWgiB,MACtDljC,KAAKwkS,SAAW,OAChBxkS,KAAK89S,aAAc,EAEpB,MAAOniS,GAEN3b,KAAKwkS,SAAW,QAIlB87C,EAAmB5hV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAEpD,QAAR4U,IAEF5W,KAAKkhB,WAAWgiB,KAAOlhC,EACvBhC,KAAKmvT,gBAIPmxB,EAAmB5hV,UAAUg0R,UAAY,WACxC,IAAImsD,EAAW7+U,KAAK2yR,aAAa,GACjC,GAAIksD,EAGJ,GAAI7+U,KAAKsyK,KAAT,CAMA,GAAItyK,KAAKggV,aAAenB,EAAS78K,KAAOhiK,KAAKkjS,SAAW27C,EAAS1jD,UAAYn7R,KAAK89S,aAAe99S,KAAKkhB,WAAWq/T,oBACjH,CACCvgV,KAAK89S,aAAc,EACnB99S,KAAKggV,YAAcnB,EAAS78K,IACzBhiK,KAAKkhB,WAAWq/T,oBAClBvgV,KAAKkjS,UAELljS,KAAKkjS,QAAU27C,EAAS1jD,SACzB,IAAI7oH,EAAOtyK,KAAKsyK,KACZzlE,EAAI3kG,UAKR,IAAI,IAAIpK,KAFJkC,KAAK6+U,WACR7+U,KAAK6+U,SAAW,IACJA,EAEM,MAAfA,EAAS/gV,KAER+gV,EAAS/gV,GAAGmC,aAAeu1R,aAC9Bx1R,KAAK6+U,SAAS/gV,GAAK,IAAI03R,aAAcqpD,EAAS/gV,IAE9CkC,KAAK6+U,SAAS/gV,GAAK+gV,EAAS/gV,IAE9BkC,KAAK6+U,SAAS78K,IAAM68K,EAAS78K,IAC1BhiK,KAAKkhB,WAAWq/T,oBAClBvgV,KAAK6+U,SAAS1jD,SAAWn7R,KAAKkjS,QAE9BljS,KAAK6+U,SAAS1jD,SAAW0jD,EAAS1jD,SAAW,EAE9C,IAAIy9B,EAAIc,KAAKx5T,SACT4+U,EAAW9+U,KAAK8+U,SAChBA,GAAY9+U,KAAK8+U,SAAS/gV,QAAU8gV,EAASC,SAAS/gV,OAGzD+gV,EAASt3S,IAAKq3S,EAASC,UAFvBA,EAAW9+U,KAAK8+U,SAAW,IAAItpD,aAAcqpD,EAASC,UAGvD,IAAQhhV,EAAI,EAAGA,EAAIghV,EAAS/gV,OAAQD,GAAG,EAEtC86T,EAAE,GAAKkmB,EAAShhV,GAChB86T,EAAE,GAAKkmB,EAAShhV,EAAE,GAClB86T,EAAE,GAAKkmB,EAAShhV,EAAE,GAClBw0K,EAAKsmJ,EAAE96T,EAAE,EAAE+uG,GACXiyO,EAAShhV,GAAK86T,EAAE,GAChBkmB,EAAShhV,EAAE,GAAK86T,EAAE,GAClBkmB,EAAShhV,EAAE,GAAK86T,EAAE,GAEnB54T,KAAK6+U,SAASC,SAAWA,EAG1B9+U,KAAK4yR,cAAc,EAAE5yR,KAAK6+U,eApDzB7+U,KAAK4yR,cAAc,EAAEisD,IAuDvBtxD,EAAUkE,iBAAkB,gBAAiB6uD,GAuF7CE,EAAoBvuT,MAAQ,iBAC5BuuT,EAAoBv/U,KAAO,mCAE3Bu/U,EAAoB9hV,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAE/DhC,KAAK89S,aAAc,GAGpB0iC,EAAoB9hV,UAAUg0R,UAAY,WACzC,IAAImsD,EAAW7+U,KAAK2yR,aAAa,GACjC,GAAIksD,EAAJ,CAGA,GAAI7+U,KAAKggV,aAAenB,EAAS78K,KAAOhiK,KAAKkjS,SAAW27C,EAAS1jD,UAAYn7R,KAAK89S,YAClF,CAOC,IAAI,IAAIhgT,KANRkC,KAAK89S,aAAc,EACnB99S,KAAKggV,YAAcnB,EAAS78K,IAC5BhiK,KAAKkjS,QAAU27C,EAAS1jD,SAGxBn7R,KAAK6+U,SAAW,GACHA,EACZ7+U,KAAK6+U,SAAS/gV,GAAK+gV,EAAS/gV,GAC7BkC,KAAK6+U,SAAS78K,IAAMu8K,IACpBv+U,KAAK6+U,SAAS1jD,SAAWn7R,KAAK2gV,aAE9B,IAAI7B,EAAWD,EAASC,SACpBr6U,EAAIq6U,EAAS/gV,OACb6tT,EAAW5rT,KAAKkhB,WAAW0qS,SAC3BL,EAAWvrT,KAAKkhB,WAAWqqS,SAC3Bm1B,EAAc1gV,KAAKkhB,WAAWw/T,YAC9BD,EAAkBzgV,KAAKkhB,WAAWu/T,gBAClC+C,EAAU,GAEd,IAAQ1lV,EAAI,EAAGA,EAAI2G,EAAG3G,GAAG,EAMxB,IAJA,IAAIme,EAAI6iU,EAAShhV,GACb4E,EAAIo8U,EAAShhV,EAAE,GACfuxG,EAAIyvO,EAAShhV,EAAE,GACfmmS,EAAc,EACV9/R,EAAIrG,EAAE,EAAGqG,EAAIM,EAAGN,GAAG,EAC3B,CACC,IAAIsiV,EAAK3H,EAAS36U,GACduiV,EAAK5H,EAAS36U,EAAE,GAChBwiV,EAAK7H,EAAS36U,EAAE,GAChBu6S,EAAOhnS,KAAK8kS,MAAOvgS,EAAEwqU,IAAKxqU,EAAEwqU,IAAO/jV,EAAEgkV,IAAKhkV,EAAEgkV,IAAOr3O,EAAEs3O,IAAKt3O,EAAEs3O,IAChE,KAAGjoC,EAAO6M,GAAY7M,EAAOkN,GAAa80B,EAAc,GAAKA,EAAchpU,KAAK6uD,YAEhFi9Q,EAAQjgV,KAAKzF,EAAE,EAAEqG,EAAE,GACnB8/R,GAAe,EACZw8C,GAAmBx8C,EAAcw8C,GACnC,MAGHzgV,KAAK6+U,SAAS2E,QAAUxjV,KAAKwjV,QAAU,IAAIhyO,YAAYgyO,GAGrDxjV,KAAKwjV,SAAWxjV,KAAKwjV,QAAQzlV,QAE/BiC,KAAK6+U,SAAS2E,QAAUxjV,KAAKwjV,QAC7BxjV,KAAK4yR,cAAe,EAAG5yR,KAAK6+U,WAG5B7+U,KAAK4yR,cAAe,EAAG,QAGzBrF,EAAUkE,iBAAkB,yBAA0B+uD,GAGlC,oBAANjxC,KAWdqxC,EAAiB3uT,MAAQ,cACzB2uT,EAAiB3/U,KAAO,8BAExB2/U,EAAiBliV,UAAUg0R,UAAY,WACtC,IAAIi7C,EAAO3tU,KAAK2yR,aAAa,GAC7B,GAAIg7C,EAAJ,CAGA,GAAGA,GAAQ3tU,KAAK6gV,UAChB,CAEC,IAAI/iV,KADJkC,KAAK6gV,UAAYlT,EACRA,EAAK8V,cACd,CACC,IAAIjqT,EAASm0S,EAAK8V,cAAc3lV,GAChCkC,KAAK6+U,SAAS/gV,GAAK07B,EAAOr6B,KAExBwuU,EAAK+V,aAAL,YACF1jV,KAAK6+U,SAAS2E,QAAU7V,EAAK+V,aAAL,UAA+BvkV,MAExDa,KAAK6+U,SAAS78K,IAAMu8K,IACpBv+U,KAAK6+U,SAAS1jD,SAAW,EAG1Bn7R,KAAK4yR,cAAc,EAAE5yR,KAAK6+U,UACvB7+U,KAAK6+U,UACP7+U,KAAK4yR,cAAc,EAAE5yR,KAAK6+U,SAASC,YAGrCvxD,EAAUkE,iBAAkB,sBAAuBmvD,GAUnDE,EAAqB7uT,MAAQ,cAE7B6uT,EAAqBpiV,UAAUkoV,WAAa,SAAS/H,GAKpD,IAAI,IAAI/gV,KAHJkC,KAAK2tU,OACR3tU,KAAK2tU,KAAO,IAAIp+B,GAAGq+B,MAEPiR,EAEZ,GAAW,KAAR/gV,EAAE,GAAL,CAGA,IAAI+oV,EAAchI,EAAS/gV,GAEvBi9B,EAAOw0Q,GAAGq+B,KAAKkZ,eAAehpV,GAClC,GAAIi9B,GAAa,WAALj9B,EAAZ,CAEA,IAAIo2D,EAAUn5B,EAAOA,EAAKm5B,QAAU,EAChC6yR,EAAc/mV,KAAK2tU,KAAK8V,cAAc3lV,GAEtCipV,GAAeA,EAAY5nV,KAAKpB,QAAU8oV,EAAY9oV,QAMzDgpV,EAAY5nV,KAAKqoC,IAAKq/S,GACtBE,EAAYC,OAAOz3C,GAAG03C,eALtBF,EAAc,IAAIx3C,GAAGntH,OAAa,WAALtkL,EAAiByxS,GAAG23C,qBAAuB33C,GAAG43C,aAAcN,EAAa3yR,EAASq7O,GAAG03C,cAQnHjnV,KAAK2tU,KAAKyZ,UAAWtpV,EAAGipV,IAGzB,GAAG/mV,KAAK2tU,KAAK8V,cAAc7E,SAAU5+U,KAAK2tU,KAAK8V,cAAc7E,QAAQz/U,KAAKpB,QAAUiC,KAAK2tU,KAAK8V,cAAc3E,SAAS3/U,KAAKpB,OAC1H,CACC,IAAIwC,EAAI,IAAIi1R,aAAa,CAAC,EAAE,EAAE,IAC1BopD,EAAU,IAAIppD,aAAcx1R,KAAK2tU,KAAK8V,cAAc3E,SAAS3/U,KAAKpB,QACtE,IAAQD,EAAI,EAAGA,EAAI8gV,EAAQ7gV,OAAQD,GAAI,EACtC8gV,EAAQp3S,IAAKjnC,EAAGzC,GACjBipV,EAAc,IAAIx3C,GAAGntH,OAAQmtH,GAAG43C,aAAcvI,EAAS,GACvD5+U,KAAK2tU,KAAKyZ,UAAW,UAAWL,GAMjC,OAHA/mV,KAAK2tU,KAAK0Z,oBACVrnV,KAAKggV,YAAchgV,KAAK2tU,KAAKp3T,GAAKsoU,EAAS78K,IAC3ChiK,KAAKkjS,QAAUljS,KAAK2tU,KAAKzqC,QAAU27C,EAAS1jD,SACrCn7R,KAAK2tU,MAGbmT,EAAqBpiV,UAAUg0R,UAAY,WAE1C,IAAImsD,EAAW7+U,KAAK2yR,aAAa,GAC7BksD,IAEA7+U,KAAKkjS,SAAW27C,EAAS1jD,UAAYn7R,KAAKggV,aAAenB,EAAS78K,KACrEhiK,KAAK4mV,WAAY/H,GAClB7+U,KAAK4yR,cAAc,EAAG5yR,KAAK2tU,QAG5BpgD,EAAUkE,iBAAkB,kBAAmBqvD,GAuB/CC,EAAiB9uT,MAAQ,cACzB8uT,EAAiB9/U,KAAO,sBAExB8/U,EAAiBuG,iBAAmB,CAAE,OAAS/3C,GAAGg4C,OAAQ,MAAQh4C,GAAGi4C,MAAO,UAAYj4C,GAAGk4C,UAAU,WAAal4C,GAAGm4C,WAAY,UAAYn4C,GAAG0xC,UAAW,aAAe1xC,GAAGo4C,aAAc,eAAiBp4C,GAAGq4C,gBAE/M7G,EAAiBv5C,aAAe,CAC/Bw5C,UAAW,CAAEhkK,OAAQ,QAASx/J,OAAQujU,EAAiBuG,kBACvD75T,MAAO,CAAEuvJ,OAAQ,UAGlB+jK,EAAiBriV,UAAUg0R,UAAY,WAEtC,GAAI1yR,KAAKkhB,WAAW8sE,QAApB,CAGA,IAAI2/O,EAAO3tU,KAAK2yR,aAAa,GAC7B,GAAIg7C,EAGJ,GAAIpgD,EAAUm0D,aAAaC,wBAA3B,CAMAp0D,EAAUm0D,aAAaC,wBAAyB7D,EAAaC,EAAkBC,GAC/E,IAAI/Q,EAAS,KACCjtU,KAAK2yR,aAAa,IAG/Bs6C,EAASx9B,GAAGo4C,QAAH,YAER5a,EAASx9B,GAAGo4C,QAAH,SAAyB,IAAIt4C,GAAG+zB,OAAQ8d,EAAmB0G,mBAAoB1G,EAAmB2G,qBAAsB,CAAEC,YAAY,OAIhJ/a,EAASx9B,GAAGo4C,QAAH,QAER5a,EAASx9B,GAAGo4C,QAAH,KAAqB,IAAIt4C,GAAG+zB,OAAQ8d,EAAmB0G,mBAAoB1G,EAAmB2G,uBAGzG/nV,KAAKytB,MAAM+Z,IAAKxnC,KAAKkhB,WAAWuM,OAChCztB,KAAKytB,MAAM,GAAKztB,KAAKkhB,WAAW6yB,QAEhC,IAAIkqS,EAAej+U,KAAKi+U,aACpBv6U,EAAI1D,KAAK2yR,aAAa,GACvBjvR,EACFu6U,EAAaz2S,IAAI9jC,GAEjB61T,KAAKtmD,SAAUgrE,GAEhBj+U,KAAK8tU,SAASyT,aAAe,EAC7B,IAAIP,EAAYhhV,KAAKkhB,WAAW8/T,UAEhC/T,EAAOa,SAAUoQ,GACjBjR,EAAOa,SAAU9tU,KAAK8tU,UAEnB9tU,KAAKkhB,WAAW6yB,SAAW,EAC7B07P,GAAGzoE,QAASyoE,GAAGi+B,OAEfj+B,GAAG1oE,OAAQ0oE,GAAGi+B,OACfj+B,GAAG1oE,OAAQ0oE,GAAG+9B,YACVxtU,KAAKkhB,WAAW2gT,UAEnBpyB,GAAGk/B,UAAWl/B,GAAGm/B,UAAWn/B,GAAGo/B,KAC/Bp/B,GAAGw4C,WAAW,IAGdx4C,GAAGk/B,UAAWl/B,GAAGm/B,UAAWn/B,GAAGq/B,qBAEhC,IAAI0U,EAAU,UACV7V,EAAK+V,aAAaC,YACrBH,EAAU,aACXvW,EAAOj9B,KAAM29B,EAAMqT,EAAWwC,GAC9B/zC,GAAGzoE,QAASyoE,GAAGi+B,OACfj+B,GAAGw4C,WAAW,QAtDbvqU,QAAQC,KAAK,uMAyDf4vQ,EAAUkE,iBAAkB,uBAAwBsvD,GAcpDG,EAAwBjvT,MAAQ,YAEhCivT,EAAwBgH,MAAQ,CAAE,KAAO,EAAG,MAAQ,EAAG,SAAW,EAAG,OAAS,EAAG,OAAS,EAAG,WAAa,EAAG,YAAc,EAAG,KAAO,EAAG,KAAO,GAC/IhH,EAAwB15C,aAAe,CACtCriS,KAAM,CAAE63K,OAAQ,QAASx/J,OAAQ0jU,EAAwBgH,QAG1DhH,EAAwBxiV,UAAUg0R,UAAY,WAE7C,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAGA,IAAIn5R,EAAOzM,KAAKylS,mBAAmB,QAG/BzlS,KAAKigV,UAAU96U,MAAQnF,KAAKkhB,WAAW/b,MAAQnF,KAAKigV,UAAUxzU,MAAQA,GAAQzM,KAAKigV,UAAUkB,cAAgBnhV,KAAKkhB,WAAWigU,cAChInhV,KAAK4mV,WAAY5mV,KAAKkhB,WAAW/b,KAAMsH,EAAMzM,KAAKkhB,WAAWigU,cAE9DnhV,KAAK4yR,cAAc,EAAE5yR,KAAKmoV,SAG3BjH,EAAwBxiV,UAAUkoV,WAAa,SAASzhV,EAAMsH,EAAM00U,GAInE,OAFAA,EAAwC,EAAzBzpU,KAAKC,IAAI,EAAEwpU,GAElBh8U,GAEP,KAAK,EACJnF,KAAKmoV,MAAQ54C,GAAGq+B,KAAKwa,KAAK,CAAC37U,KAAMA,EAAMmyU,SAAQ,EAAKsH,QAAO,IAC3D,MACD,KAAK,EACJlmV,KAAKmoV,MAAQ54C,GAAGq+B,KAAKya,MAAM,CAAC57U,KAAMA,EAAM67U,IAAI,EAAM36J,OAAQwzJ,EAAcvC,SAAQ,EAAKsH,QAAO,IAC5F,MACD,KAAK,EACJlmV,KAAKmoV,MAAQ54C,GAAGq+B,KAAK2a,SAAS,CAAC97U,KAAMA,EAAM00U,aAAcA,EAAcvC,SAAQ,EAAKsH,QAAO,IAC3F,MACD,KAAK,EACJlmV,KAAKmoV,MAAQ54C,GAAGq+B,KAAK4a,OAAO,CAAC/7U,KAAMA,EAAM,KAAQ00U,EAAcsH,IAAKtH,EAAcvC,SAAQ,EAAKsH,QAAO,IACtG,MACD,KAAK,EACJlmV,KAAKmoV,MAAQ54C,GAAGq+B,KAAK8a,OAAO,CAACj8U,KAAMA,EAAMk8U,OAAQxH,EAAcvC,SAAQ,EAAMsH,QAAO,IACpF,MACD,KAAK,EACJlmV,KAAKmoV,MAAQ54C,GAAGq+B,KAAK4a,OAAO,CAAC/7U,KAAMA,EAAM,KAAQ00U,EAAcsH,IAAKtH,EAAcvC,SAAQ,EAAMsH,QAAO,EAAM0C,MAAM,IACnH,MACD,KAAK,EACJ5oV,KAAKmoV,MAAQ54C,GAAGq+B,KAAKib,YAAY,CAACp8U,KAAMA,EAAM00U,aAAaA,IAC3D,MACD,KAAK,EACJnhV,KAAKmoV,MAAQ54C,GAAGq+B,KAAKkb,KAAK,CAAC9/B,OAAQv8S,EAAM3B,OAAQ2B,EAAM00U,aAAaA,IACpE,MACD,KAAK,EACJnhV,KAAKmoV,MAAQ54C,GAAGq+B,KAAKya,MAAM,CAAC57U,KAAMA,EAAM67U,IAAI,EAAO36J,OAAQwzJ,EAAcvC,SAAQ,EAAMsH,QAAO,IAIhGlmV,KAAKigV,UAAU96U,KAAOA,EACtBnF,KAAKigV,UAAUxzU,KAAOA,EACtBzM,KAAKigV,UAAUkB,aAAeA,EAC9BnhV,KAAKmoV,MAAMjlD,QAAUljS,KAAKkjS,WAG3B3V,EAAUkE,iBAAkB,0BAA2ByvD,GA8BvDE,EAAmBnvT,MAAQ,eAC3BmvT,EAAmBngV,KAAO,+BAE1BmgV,EAAmB55C,aAAe,CACjC/5Q,MAAO,CAAEuvJ,OAAQ,UAGlBokK,EAAmB1iV,UAAUkoV,WAAa,SAAS/H,GAErC7+U,KAAKw5B,OACdx5B,KAAKw5B,QAAWx5B,KAAKw5B,OAAOr6B,MAAQa,KAAKw5B,OAAOr6B,KAAKpB,QAAU8gV,EAASC,SAAS/gV,QAIpFiC,KAAKw5B,OAAOr6B,KAAKqoC,IAAKq3S,EAASC,UAC/B9+U,KAAKw5B,OAAOwtT,OAAOz3C,GAAG03C,eAJtBjnV,KAAKw5B,OAAS,IAAI+1Q,GAAGntH,OAAQmtH,GAAG43C,aAActI,EAASC,SAAS,EAAEvvC,GAAG03C,cAOlEjnV,KAAK2tU,OACR3tU,KAAK2tU,KAAO,IAAIp+B,GAAGq+B,MAEpB5tU,KAAK2tU,KAAKyZ,UAAU,WAAWpnV,KAAKw5B,QACpCx5B,KAAKggV,YAAchgV,KAAK2tU,KAAKp3T,GAAKsoU,EAAS78K,IAC3ChiK,KAAKkjS,QAAUljS,KAAK2tU,KAAKzqC,QAAU27C,EAAS1jD,UAG7CimD,EAAmB1iV,UAAUg0R,UAAY,WAExC,GAAI1yR,KAAKkhB,WAAW8sE,QAApB,CAGA,IAAI6wP,EAAW7+U,KAAK2yR,aAAa,GACjC,GAAIksD,EAKJ,GAHG7+U,KAAKkjS,SAAW27C,EAAS1jD,UAAYn7R,KAAKggV,aAAenB,EAAS78K,KACpEhiK,KAAK4mV,WAAY/H,GAEdtxD,EAAUm0D,aAAaC,wBAA3B,CAMAp0D,EAAUm0D,aAAaC,wBAAyB7D,EAAaC,EAAkBC,GAC/E,IAAI/Q,EAAS,KAECjtU,KAAK2yR,aAAa,IAI/Bs6C,EAASx9B,GAAGo4C,QAAH,mBAER5a,EAASx9B,GAAGo4C,QAAH,gBAAgC,IAAIt4C,GAAG+zB,OAAQ8d,EAAmB0G,mBAAoB1G,EAAmB2G,qBAAsB,CAAEgB,oBAAoB,OAI/J9b,EAASx9B,GAAGo4C,QAAH,UAER5a,EAASx9B,GAAGo4C,QAAH,OAAuB,IAAIt4C,GAAG+zB,OAAQ8d,EAAmB0G,mBAAoB1G,EAAmB2G,qBAAsB,CAAEiB,WAAY,MAG/IhpV,KAAKytB,MAAM+Z,IAAKxnC,KAAKkhB,WAAWuM,OAChCztB,KAAKytB,MAAM,GAAKztB,KAAKkhB,WAAW6yB,QAEhC,IAAIrwC,EAAI1D,KAAK2yR,aAAa,GACvBjvR,EACFu6U,EAAaz2S,IAAI9jC,GAEjB61T,KAAKtmD,SAAUgrE,GAEhBj+U,KAAK8tU,SAASyT,aAAevhV,KAAKkhB,WAAWmgU,WAC7CrhV,KAAK8tU,SAAS2T,oBAAsBzhV,KAAKkhB,WAAWogU,WAAa,EAAI,EACrEthV,KAAK8tU,SAAS0T,cAAgB/xC,GAAGu/B,cAAc,GAAK+O,EAAkB,GAEtE9Q,EAAOa,SAAUoQ,GACjBjR,EAAOa,SAAU9tU,KAAK8tU,UAEnB9tU,KAAKkhB,WAAW6yB,SAAW,EAC7B07P,GAAGzoE,QAASyoE,GAAGi+B,OAEfj+B,GAAG1oE,OAAQ0oE,GAAGi+B,OAEfj+B,GAAG1oE,OAAQ0oE,GAAG+9B,YACVxtU,KAAKkhB,WAAW2gT,UAEnBpyB,GAAGk/B,UAAWl/B,GAAGm/B,UAAWn/B,GAAGo/B,KAC/Bp/B,GAAGw4C,WAAW,IAGdx4C,GAAGk/B,UAAWl/B,GAAGm/B,UAAWn/B,GAAGq/B,qBAEhC7B,EAAOj9B,KAAMhwS,KAAK2tU,KAAMp+B,GAAGg4C,QAE3B93C,GAAGzoE,QAASyoE,GAAGi+B,OACfj+B,GAAGw4C,WAAW,QAvDbvqU,QAAQC,KAAK,uMA0Df4vQ,EAAUkE,iBAAkB,yBAA0B2vD,GAEtDA,EAAmB0G,mBAAqB,owCA+CxC1G,EAAmB2G,qBAAuB,mvBAvoD3C,CAq3DG/nV,MACH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UACnB2yC,EAAgBj/R,EAAOi/R,cAG3B,GAAiB,oBAAN3wB,GAAmB,KAEjB05C,EAAT,SAASA,IACLjpV,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,aAAc,UAC5B/gS,KAAK+gS,SAAS,aAAc,UAC5B/gS,KAAK+gS,SAAS,OAAQ,UACtB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACdgoU,WAAY,EACZC,WAAY,EACZ9rG,KAAM,EACN+jE,UAAW8e,EAAcS,SAGxBsoB,EAAa5lB,UACd4lB,EAAa5lB,QAAU,IAAI9zB,GAAG+zB,OAC1B/zB,GAAG+zB,OAAOC,qBACV0lB,EAAajoB,cAEjBioB,EAAa7gB,SAAW,IAAI74B,GAAGq6B,QAAQ,EAAG,EAAG,CACzChoT,OAAQ6tR,GAAG83B,IACXmD,KAAMj7B,GAAG6hC,cACT5B,UAAWjgC,GAAG26B,OACd4B,UAAWv8B,GAAG26B,OACdgf,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,SA0N5CC,EAAT,WACIrpV,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK+gS,SAAS,YAAa,UAC3B/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACdujR,MAAO,GACPh4R,KAAM,GACN83K,MAAO,EACP2uI,UAAW,EACXmS,gBAAgB,IA2OfikB,EAAT,WACItpV,KAAK+gS,SAAS,UAAW,WACzB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACdolT,GAAI,WACJx5R,OAAQ,EACRC,OAAQ,EACRq0Q,UAAW8e,EAAcS,UA+LxB4oB,EAAT,SAASA,IACLvpV,KAAK+gS,SAAS,OAAQ,WACtB/gS,KAAK+gS,SAAS,YAAa,UAE3B/gS,KAAK0hS,UAAU,UAAW,WAC1B1hS,KAAKkhB,WAAa,CACdiiT,UAAW,EACXU,QAAQ,EACRziB,UAAW8e,EAAcS,SAGxB4oB,EAAkBlmB,UACnBkmB,EAAkBlmB,QAAU,IAAI9zB,GAAG+zB,OAC/BA,OAAOC,qBACPgmB,EAAkBvoB,gBAjqB9BioB,EAAah3T,MAAQ,OACrBg3T,EAAahoV,KAAO,yBACpBgoV,EAAazhD,aAAe,CACxB4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGxD0f,EAAavqV,UAAUg0R,UAAY,WAC/B,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,cAKhD,GAAKY,EAAL,CAIA/pU,KAAK+sU,KAAO7M,EAAc8J,iBACtBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAGpB,IAAI8nC,EAAalpV,KAAKkhB,WAAWgoU,WAC7BlpV,KAAKqlS,iBAAiB,KACtB6jD,EAAalpV,KAAK2yR,aAAa,GAC/B3yR,KAAKkhB,WAAWgoU,WAAaA,GAGjC,IAAIC,EAAanpV,KAAKkhB,WAAWioU,WAC7BnpV,KAAKqlS,iBAAiB,KACtB8jD,EAAanpV,KAAK2yR,aAAa,GAC/B3yR,KAAKkhB,WAAWioU,WAAaA,GAGjC,IAAI9rG,EAAOr9O,KAAKkhB,WAAWm8N,KACvBr9O,KAAKqlS,iBAAiB,KACtBhoD,EAAOr9O,KAAK2yR,aAAa,GACzB3yR,KAAKkhB,WAAWm8N,KAAOA,GAG3BoyD,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACd,IAAIG,EAAOC,KAAKC,gBACZZ,EAASgc,EAAa5lB,QAG1BrjU,KAAK+sU,KAAKQ,QAAO,WACbxD,EAAI3uQ,KAAK,GACT6xQ,EACKa,SAAS,CACNvM,UAAW,EACXioB,aAAcN,EACdO,aAAcN,EACdO,OAAQrsG,IAEX2yD,KAAK29B,MAGd3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YAlDvB/sU,KAAK4yR,cAAc,EAAGm3C,IAqD9Bkf,EAAajoB,aACT,k3BAgCJzzC,EAAUkE,iBAAiB,UAAWw3D,GACtChoT,EAAOgoT,aAAeA,EAoItBI,EAAcp3T,MAAQ,QACtBo3T,EAAcpoV,KAAO,0BAErBooV,EAAc7hD,aAAe,CAAE/C,MAAO,CAAEznH,OAAQ,YAEhDqsK,EAAc3qV,UAAUg0R,UAAY,WAChC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GACxBg3D,EAAc3pV,KAAK2yR,aAAa,GAChCi3D,EAAW5pV,KAAK2yR,aAAa,GACjC,GAAKo3C,GAAQ6f,GAAa5pV,KAAKkhB,WAAWujR,MAA1C,CAKKklD,IACDA,EAAc5f,GAGlB,IAAI8f,EAAY3pB,EAAc4J,WAAW9pU,KAAKkhB,WAAWujR,OACzD,GAAKolD,EAAL,CAIA,IAAI32B,EAAYlzT,KAAKkhB,WAAWgyS,UAC5BlzT,KAAKqlS,iBAAiB,KACtB6tB,EAAYlzT,KAAK2yR,aAAa,GAC9B3yR,KAAKkhB,WAAWgyS,UAAYA,GAGhC,IAAI9R,EAAY3R,GAAGy6B,cACflqU,KAAKkhB,WAAWmkT,iBAChBjkB,EAAY3R,GAAGkjC,eAAiBljC,GAAG+gC,eAAiB/gC,GAAGygC,OAGtDlwU,KAAK2oU,eACN3oU,KAAK2oU,cAAcxjU,MAAQi8S,GAC3BphT,KAAK2oU,cAAc99T,OAASk/T,EAAIl/T,OAChC7K,KAAK2oU,cAAc79T,QAAUi/T,EAAIj/T,SAEjC9K,KAAK2oU,cAAgB,IAAIp5B,GAAGq6B,QAAQG,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,CACvD3F,KAAMi8S,EACNx/R,OAAQ6tR,GAAG3oR,KACXkI,OAAQygR,GAAG26B,UAKRpqU,KAAKkhB,WAAWzU,KAA3B,IAEIq9U,EAAeT,EAAcU,cAC5BD,IACDA,EAAeT,EAAcU,cAAgB,IAAIx6C,GAAG+zB,OAChDA,OAAOC,qBACP8lB,EAAcW,sBAItB,IAAIC,EAAgBZ,EAAca,eAC7BD,IACDA,EAAgBZ,EAAca,eAAiB,IAAI36C,GAAG+zB,OAClD+lB,EAAcc,sBACdd,EAAce,uBAItB,IAAIC,EAAcrqV,KAAKsqV,aAElBD,GACDA,EAAYhtM,QAAU0sL,EAAIl/T,OAC1Bw/U,EAAY/sM,SAAWysL,EAAIj/T,QACH,GAAxBu/U,EAAYE,WAEZF,EAAcrqV,KAAKwqV,iBAAiBzgB,EAAIl/T,MAAOk/T,EAAIj/T,OAAQ,IAG/D,IAAI2/U,EAAc7c,KAAKC,gBAEnBwT,EAAarhV,KAAKkhB,WAAWzU,KAE7B83K,GADYvkL,KAAKkhB,WAAWwpU,UACpB1qV,KAAKkhB,WAAWqjK,OAE5BkrH,GAAGzoE,QAAQyoE,GAAG+9B,YACd/9B,GAAGzoE,QAAQyoE,GAAGi+B,OAEd1tU,KAAK2oU,cAAc4E,QAAO,WACtBxD,EAAI3uQ,KAAK,GACTuuR,EAAYvuR,KAAK,GACjBwuR,EAASxuR,KAAK,GACd0uR,EACKhc,SAAS,CACNvM,UAAW,EACXopB,eAAgB,EAChBzY,OAAQ,EACR0Y,UAAW,CAAC7gB,EAAIl/T,MAAOk/T,EAAIj/T,UAE9BklS,KAAKy6C,MAGdzqV,KAAK2oU,cAAc4E,QAAO,WAItB99B,GAAG1oE,OAAO0oE,GAAGi+B,OACbj+B,GAAGk/B,UAAUl/B,GAAGo/B,IAAKp/B,GAAGo/B,KAExB9E,EAAI3uQ,KAAK,GACTyuR,EAAUzuR,KAAK,GACf6uR,EACKnc,SAAS,CACNvM,UAAW,EACX2Q,OAAQ,EACR2Y,QAAS,EACTC,QAASvmK,EACT4hJ,YAAajT,EACb63B,YAAa1J,EACb2J,WAAY,CAAC,EAAMjhB,EAAIl/T,MAAO,EAAMk/T,EAAIj/T,UAE3CklS,KAAKq6C,EAAa56C,GAAG83C,WAG9BvnV,KAAK4yR,cAAc,EAAG5yR,KAAK2oU,qBA9GvB3oU,KAAK4yR,cAAc,EAAGm3C,IAiH9Bsf,EAAc3qV,UAAU8rV,iBAAmB,SACvC3/U,EACAC,EACAopD,GAUA,IARA,IAAI+2R,EAASvzU,KAAKq/C,MAAMlsD,EAAQqpD,GAC5Bg3R,EAAUxzU,KAAKq/C,MAAMjsD,EAASopD,GAE9B4qR,EAAW,IAAItpD,aAAay1D,EAASC,EAAU,GAE/CC,GAAM,EACNC,EAAM,EAAIvgV,EAASqpD,EACnBm3R,EAAM,EAAIvgV,EAAUopD,EACfxxD,EAAI,EAAGA,EAAIwoV,IAAWxoV,EAAG,CAE9B,IADA,IAAI4oV,GAAM,EACDrvU,EAAI,EAAGA,EAAIgvU,IAAUhvU,EAAG,CAC7B,IAAI02B,EAAMjwC,EAAIuoV,EAAS,EAAQ,EAAJhvU,EAC3B6iU,EAASnsS,GAAO24S,EAChBxM,EAASnsS,EAAM,GAAKw4S,EACpBG,GAAMF,EAEVD,GAAME,EAQV,OALArrV,KAAKsqV,aAAe/6C,GAAGq+B,KAAKlqC,KAAK,CAAE6nD,WAAYzM,IAC/C9+U,KAAKsqV,aAAajtM,OAASxyI,EAC3B7K,KAAKsqV,aAAahtM,QAAUxyI,EAC5B9K,KAAKsqV,aAAaC,SAAWr2R,EAEtBl0D,KAAKsqV,cAgBhBjB,EAAcW,oBACV,qdAeJX,EAAcc,sBACV,2/BA6BJd,EAAce,qBACV,6RAWJ78D,EAAUkE,iBAAiB,WAAY43D,GACvCpoT,EAAOooT,cAAgBA,EAiBvBC,EAAgBr3T,MAAQ,KACxBq3T,EAAgBroV,KAAO,4BAEvBqoV,EAAgB9hD,aAAe,CAC3B8+B,GAAI,CACAtpJ,OAAQ,QACRx/J,OAAQ,CAAC,WAAY,WAAY,aAAc,QAAS,UAE5D4jS,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAExD+f,EAAgBzB,QAAU,GAE1ByB,EAAgB5qV,UAAUg0R,UAAY,WAClC,GAAK1yR,KAAK4lS,kBAAkB,GAA5B,CAIA,IAAImkC,EAAM/pU,KAAK2yR,aAAa,GAC5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,cAKhD,GAAKY,EAAL,CAIA/pU,KAAK+sU,KAAO7M,EAAc8J,iBACtBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAIpB,IAAIt0Q,EAAS9sC,KAAKkhB,WAAW4rB,OACzB9sC,KAAKqlS,iBAAiB,KACtBv4P,EAAS9sC,KAAK2yR,aAAa,GAC3B3yR,KAAKkhB,WAAW4rB,OAASA,GAG7B,IAAIC,EAAS/sC,KAAKkhB,WAAW6rB,OACzB/sC,KAAKqlS,iBAAiB,KACtBt4P,EAAS/sC,KAAK2yR,aAAa,GAC3B3yR,KAAKkhB,WAAW6rB,OAASA,GAG7B,IAAIu5R,EAAKtmU,KAAKkhB,WAAWolT,GACrB2G,EAASqc,EAAgBzB,QAAQvhB,GACrC,IAAK2G,EAAQ,CACT,IAAIue,EAAoBlC,EAAgB,gBAAkBhjB,GAC1D,IAAKklB,EACD,OAGJve,EAASqc,EAAgBzB,QAAQvhB,GAAM,IAAI/2B,GAAG+zB,OAC1CA,OAAOC,qBACPioB,GAIR/7C,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YACd,IAEIie,EAFA9d,EAAOC,KAAKC,gBACZ6d,EAASzqT,EAAO+xS,GAAKA,GAAGC,SAAS0Y,gBAAkB,KAGnDF,EADAC,EACgB,CACZ1Y,GAAGC,SAAS0Y,gBAAgBC,KAC5B5Y,GAAGC,SAAS0Y,gBAAgBE,KAGhB,CAAC,EAAG,KAGxB,IAAI9gB,EAAQ,KACF,SAANzE,IACAyE,EAAQ7K,EAAc2K,mBAG1B7qU,KAAK+sU,KAAKQ,QAAO,WACbxD,EAAI3uQ,KAAK,GACC,SAANkrQ,GACAyE,EAAM3vQ,KAAK,GAGf6xQ,EACKa,SAAS,CACNvM,UAAW,EACXuqB,QAAS,EACTC,OAAQ,CAAChiB,EAAIl/T,MAAOk/T,EAAIj/T,QACxBkhV,OAAQ,CAACt0U,KAAK6uD,SAAU7uD,KAAK6uD,UAC7B0lR,SAAUn/S,EACVo/S,SAAUn/S,EACVy4R,gBAAiBimB,IAEpBz7C,KAAK29B,MAGd3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YA/EvB/sU,KAAK4yR,cAAc,EAAGm3C,KAkF9Buf,EAAgB6C,sBACZ,owBAuBJ7C,EAAgB8C,sBACZ,icAcJ9C,EAAgB+C,wBACZ,kXAaJ/C,EAAgBgD,mBACZ,6gBAeJhD,EAAgBiD,mBACZ,qUAWJh/D,EAAUkE,iBAAiB,aAAc63D,GACzCroT,EAAOqoT,gBAAkBA,EAuBzBC,EAAkBt3T,MAAQ,YAC1Bs3T,EAAkBtoV,KAAO,YAEzBsoV,EAAkB/hD,aAAe,CAC7B4Z,UAAW,CAAEpkI,OAAQ,QAASx/J,OAAQ0iT,EAAcqJ,cAGxDggB,EAAkB7qV,UAAUg0R,UAAY,WACpC,IAAIq3C,EAAM/pU,KAAK2yR,aAAa,GAE5B,GAAI3yR,KAAKkhB,WAAWkgS,YAAc8e,EAAciJ,cAKhD,GAAKY,EAAL,CAIA/pU,KAAK+sU,KAAO7M,EAAc8J,iBACtBD,EACA/pU,KAAK+sU,KACL/sU,KAAKkhB,WAAWkgS,WAGpB,IAAI+hB,EAAYnjU,KAAKkhB,WAAWiiT,UAC5BnjU,KAAKqlS,iBAAiB,KACtB89B,EAAYnjU,KAAK2yR,aAAa,GAC9B3yR,KAAKkhB,WAAWiiT,UAAYA,GAGhC1zB,GAAGzoE,QAAQyoE,GAAGi+B,OACdj+B,GAAGzoE,QAAQyoE,GAAG+9B,YAEd,IAAIG,EAAOC,KAAKC,gBACZZ,EAASsc,EAAkBlmB,QAC3BQ,EAAS7jU,KAAKkhB,WAAW2iT,OAE7B7jU,KAAK+sU,KAAKQ,QAAO,WACbxD,EAAI3uQ,KAAK,GACT6xQ,EACKa,SAAS,CACNvM,UAAW,EACX0E,YAAa9C,EACbuP,QAAS,CAAC,EAAI3I,EAAIl/T,MAAO,EAAIk/T,EAAIj/T,QACjC+mU,SAAUhO,EAAS,EAAI,IAE1B7zB,KAAK29B,MAGd3tU,KAAK4yR,cAAc,EAAG5yR,KAAK+sU,YAvCvB/sU,KAAK4yR,cAAc,EAAGm3C,IA0C9Bwf,EAAkBvoB,aACd,4hBAiBJzzC,EAAUkE,iBAAiB,eAAgB83D,GAC3CtoT,EAAOsoT,kBAAoBA,GAjxBnC,CAmxBGvpV,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UACnBi/D,EAAa,OAEjB,SAASC,EAAUttV,GACfa,KAAK61U,QAAU,EACf71U,KAAK0sV,IAAM,EACX1sV,KAAKb,KAAO,IAAIqyG,YAAY,GAExBryG,GACAa,KAAK2sV,MAAMxtV,GA4TnB,IAAK,IAAIrB,KAxTTyvR,EAAUk/D,UAAYA,EAEtBA,EAAU/tV,UAAUkuV,SAAW,SAASnpV,GACpCzD,KAAK2sV,MAAMlpV,EAAEtE,OAGjBstV,EAAU/tV,UAAUiuV,MAAQ,SAASxtV,GACjC,IAAI0tV,EAAW1tV,EACXA,EAAKc,cAAgB7B,SACrByuV,EAAW1tV,EAAKA,MAGpBa,KAAKb,KAAKqoC,IAAIqlT,GAEd,IAAIC,EAAaD,EAAS,GAC1B7sV,KAAK4sK,OAASkgL,EAEd,IAAIC,EAA2B,IAAbD,EAGd9sV,KAAK0sV,IADLI,GAAc,IACHA,EAEAC,EAGX/sV,KAAK0sV,KAAOD,EAAUO,QAA2B,GAAjBhtV,KAAKitV,WACrCjtV,KAAK0sV,IAAMD,EAAUS,SAGzBltV,KAAKmtV,QAAUV,EAAUjiQ,SAASxqF,KAAK0sV,MAAQ,IAG3CK,GAAeN,EAAUO,QACzBD,GAAeN,EAAUS,WAEzBltV,KAAK61U,QAAuB,GAAbiX,IAIvB1uV,OAAOC,eAAeouV,EAAU/tV,UAAW,WAAY,CACnD+zB,IAAK,WACD,OAAIzyB,KAAK0sV,KAAOD,EAAUO,OACfhtV,KAAKb,KAAK,IAEb,GAEZqoC,IAAK,SAASpkC,GACVpD,KAAKb,KAAK,GAAKiE,GAEnBnF,YAAY,IAGhBwuV,EAAUW,MAAQ,CACd,IACA,KACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,MAEJX,EAAUY,cAAgB,CACtBlvD,EAAG,EACH,KAAM,EACNC,EAAG,EACHzxE,EAAG,EACH,KAAM,EACN2gI,EAAG,EACH,KAAM,EACNC,EAAG,EACH9xU,EAAG,EACH,KAAM,EACN0oT,EAAG,GACH,KAAM,IAGV/lU,OAAOC,eAAeouV,EAAU/tV,UAAW,OAAQ,CAC/C+zB,IAAK,WACD,OAAIzyB,KAAK0sV,KAAOD,EAAUO,QACd,EAELP,EAAUe,aAAaxtV,KAAKb,KAAK,IAAI,IAEhDqoC,IAAK,SAASpkC,GACV,KAAM,8DAEVnF,YAAY,IAGhBG,OAAOC,eAAeouV,EAAU/tV,UAAW,SAAU,CACjD+zB,IAAK,WACD,GAAIzyB,KAAK0sV,KAAOD,EAAUO,OACtB,OAAQ,EAEZ,IAAIS,EAASztV,KAAKb,KAAK,GAAK,GAC5B,OAAOuY,KAAKE,MAAM61U,EAAS,GAAK,IAEpCjmT,IAAK,SAASpkC,GACV,KAAM,+DAEVnF,YAAY,IAIhBwuV,EAAU/tV,UAAUgvV,SAAW,WAC3B,OAA+C,IAAxCh2U,KAAKo/C,IAAI,GAAI92D,KAAKb,KAAK,GAAK,IAAM,KAG7CstV,EAAUkB,aAAe,SAASl0Q,GAC9B,OAAuC,IAAhC/hE,KAAKo/C,IAAI,GAAI2iB,EAAO,IAAM,KAGrCgzQ,EAAU/tV,UAAUkvV,MAAQ,WACxB,OAAO5tV,KAAKb,KAAK,IAGrBstV,EAAU/tV,UAAUmvV,WAAa,WAC7B,OAAO7tV,KAAKb,KAAK,IAIrBstV,EAAU/tV,UAAUovV,aAAe,WAC/B,OAAO9tV,KAAKb,KAAK,IAAMa,KAAKb,KAAK,IAAM,GAAK,MAGhDstV,EAAUsB,iBAAmB,SAAS31B,EAAIC,GACtC,OAAOD,GAAMC,GAAM,GAAK,MAG5Bo0B,EAAU/tV,UAAUsvV,qBAAuB,SAAS1uT,GAChDt/B,KAAK0sV,IAAMD,EAAUwB,yBAAyB3uT,IAGlDmtT,EAAUwB,yBAA2B,SAAS3uT,GAC1C,IAAKA,EACD,OAAO,EAGX,GAAIA,GAAOA,EAAIr/B,cAAgB8sH,OAC3B,OAAOztF,EAIX,OADAA,EAAMA,EAAIy1B,eAEN,IAAK,UACL,IAAK,SAGL,IAAK,WACL,IAAK,UACD,OAAO03R,EAAUO,OAErB,IAAK,eACL,IAAK,cACD,OAAOP,EAAUyB,YAErB,IAAK,oBACL,IAAK,mBACL,IAAK,KACD,OAAOzB,EAAU0B,iBAErB,IAAK,iBACL,IAAK,gBACL,IAAK,KACD,OAAO1B,EAAU2B,cAErB,IAAK,mBACL,IAAK,kBACD,OAAO3B,EAAU4B,gBAErB,IAAK,aACL,IAAK,YACD,OAAO5B,EAAU6B,UAErB,IAAK,YACL,IAAK,WACD,OAAO7B,EAAU8B,SAErB,QACI,OAAOxhO,OAAOztF,KAK1BmtT,EAAUe,aAAe,SAASnuV,EAAGmvV,GAEjC,IAAI/0Q,GADJp6E,EAAIqY,KAAKq/C,MAAM13D,IACA,GACXouV,EAAS/1U,KAAKE,OAAOvY,EAAI,IAAM,GAAK,GAKxC,OAJAo6E,GAAc,IACH,IACPA,EAAO,GAAKA,GAETgzQ,EAAUW,MAAM3zQ,IAAS+0Q,EAAc,GAAKf,IAGvDhB,EAAUgC,kBAAoB,SAASnvT,GAEnC,IAAIm6C,GADJn6C,EAAMA,EAAIy1B,eACK,GACX04R,EAAS,EAEC,KAAVnuT,EAAI,IACJm6C,GAAQ,IACJn6C,EAAIvhC,OAAS,IACb0vV,EAAS1gO,OAAOztF,EAAI,MAGpBA,EAAIvhC,OAAS,IACb0vV,EAAS1gO,OAAOztF,EAAI,KAG5B,IAAIovT,EAAQjC,EAAUY,cAAc5zQ,GACpC,OAAa,MAATi1Q,EACO,KAEW,IAAdjB,EAAS,GAAUiB,EAAQ,IAGvCjC,EAAU/tV,UAAU+Z,SAAW,WAC3B,IAAI6mB,EAAWt/B,KAAK61U,QAAU,KAC9B,OAAQ71U,KAAK0sV,KACT,KAAKD,EAAUO,OACX1tT,GAAO,UAAYmtT,EAAUe,aAAaxtV,KAAKb,KAAK,IACpD,MACJ,KAAKstV,EAAUS,QACX5tT,GAAO,WAAamtT,EAAUe,aAAaxtV,KAAKb,KAAK,IACrD,MACJ,KAAKstV,EAAU0B,iBACX7uT,GAAO,MAAQt/B,KAAKb,KAAK,GAAK,IAAMa,KAAKb,KAAK,GAC9C,MACJ,KAAKstV,EAAU2B,cACX9uT,GAAO,MAAQt/B,KAAKb,KAAK,GACzB,MACJ,KAAKstV,EAAU6B,UACXhvT,GAAO,aAAet/B,KAAK8tV,eAC3B,MACJ,KAAKrB,EAAUyB,YACX5uT,GAAO,YAAct/B,KAAKb,KAAK,GAIvC,OAAOmgC,GAGXmtT,EAAU/tV,UAAUiwV,YAAc,WAE9B,IADA,IACS7wV,EAAI,EAAGA,EAAIkC,KAAKb,KAAKpB,OAAQD,IAC3BkC,KAAKb,KAAKrB,GAAG2a,SAAS,IAAM,KAI3Cg0U,EAAU/tV,UAAUkwV,OAAS,WACzB,MAAO,CACHzvV,KAAM,CAACa,KAAKb,KAAK,GAAIa,KAAKb,KAAK,GAAIa,KAAKb,KAAK,IAC7C0vV,aAAc,cAItBpC,EAAUS,QAAU,IACpBT,EAAUO,OAAS,IACnBP,EAAUyB,YAAc,IACxBzB,EAAU0B,iBAAmB,IAC7B1B,EAAU2B,cAAgB,IAC1B3B,EAAU4B,gBAAkB,IAC5B5B,EAAU6B,UAAY,IACtB7B,EAAU8B,SAAW,IAErB9B,EAAUjiQ,SAAW,CACjB,IAAM,WACN,IAAM,UACN,IAAM,eACN,IAAM,oBACN,IAAM,iBACN,IAAM,mBACN,IAAM,aACN,IAAM,SACN,IAAM,WACN,IAAM,cACN,IAAM,eACN,IAAM,YACN,IAAM,aACN,IAAM,gBACN,IAAM,YACN,IAAM,UACN,IAAM,SAGViiQ,EAAUqC,eAAiB,CACvB,IAAM,UACN,IAAM,UACN,IAAM,OACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,MACN,IAAM,MACN,IAAM,SACN,IAAM,UACN,IAAM,KACN,IAAM,QACN,IAAM,WACN,IAAM,OACN,IAAM,OACN,IAAM,SAGVrC,EAAUsC,kBAAoB,GAChBtC,EAAUjiQ,SACpBiiQ,EAAUsC,kBAAkBtC,EAAUjiQ,SAAS1sF,IAAMA,EAIzD,SAASkxV,EAAcC,EAAU36D,GAC7B,IAAK95N,UAAU00R,kBAOX,OANAlvV,KAAK4D,MAAQ,sBACT0wR,EACAA,EAAS,iBAET52Q,QAAQ9Z,MAAM,iDAKtB5D,KAAKivV,SAAWA,EAEhBjvV,KAAKsU,MAAQ,CACTmlE,KAAM,GACN01Q,GAAI,IAGdnvV,KAAKovV,YAAc,KACnBpvV,KAAKqvV,iBAAmB,GACxBrvV,KAAKsvV,aAAe,KACpBtvV,KAAKuvV,kBAAoB,GAEnB/0R,UAAU00R,oBAAoB5sV,KAAKtC,KAAKwvV,cAAcp0R,KAAKp7D,MAAOA,KAAKyvV,cAAcr0R,KAAKp7D,OAgH9F,SAAS0vV,IACL1vV,KAAK0hS,UAAU,UAAWnU,EAAUuC,OACpC9vR,KAAK0hS,UAAU,MAAO,QACtB1hS,KAAKkhB,WAAa,CAAE0wI,KAAM,GAC1B5xJ,KAAK2vV,iBAAmB,KACxB3vV,KAAK4vV,oBAAsB,KAC3B5vV,KAAKwkS,SAAW,OAChBxkS,KAAK2iS,WAAa,EAElB,IAAInlB,EAAOx9Q,KACX,IAAIgvV,GAAc,SAASa,GAEvBryE,EAAKsyE,MAAQD,EACTryE,EAAKuyE,UACLvyE,EAAKmzC,UAETnzC,EAAKuyE,UAAW,KA8GxB,SAASC,IACLhwV,KAAK+gS,SAAS,OAAQxT,EAAUuC,OAChC9vR,KAAKkhB,WAAa,CAAE0wI,KAAM,GAE1B,IAAI4rH,EAAOx9Q,KACX,IAAIgvV,GAAc,SAASa,GACvBryE,EAAKsyE,MAAQD,EACtBryE,EAAKxgG,OAAO33K,QAAQmY,OAASggQ,EAAKyyE,oBAEnCjwV,KAAKg9K,OAASh9K,KAAK0nS,UAAU,QAAQ,SAAS1nS,KAAKkhB,WAAW0wI,KAAK,CAAExkH,SAAU,OAAQ5vB,OAAQxd,KAAKiwV,eAAe70R,KAAKp7D,QACxHA,KAAKyM,KAAO,CAAC,IAAI,IA2Df,SAASyjV,IACLlwV,KAAK+gS,SAAS,UAAWxT,EAAUuC,OACnC9vR,KAAKs8T,KAAO,GACZt8T,KAAKyM,KAAO,CAAC,IAAK,IA4CtB,SAAS0jV,IACLnwV,KAAKkhB,WAAa,CACd20T,SAAU,EACV6W,KAAM,EACN3P,WAAY,EACZE,WAAY,GAGhB,IAAIz/D,EAAOx9Q,KACXA,KAAKowV,WAAY,EACjBpwV,KAAK0nS,UAAU,SAAU,QAAS,IAAI,WAClClqB,EAAK4yE,WAAY,EACjB5yE,EAAKgnB,SAAW,UAGpBxkS,KAAK+gS,SAAS,KAAMxT,EAAUuC,OAC9B9vR,KAAK0hS,UAAU,UAAWnU,EAAUuC,OACpC9vR,KAAKwkS,SAAW,OA2FpB,SAAS6rD,IACLrwV,KAAKkhB,WAAa,CACd20T,QAAS,EACT6W,IAAK,IACL5/S,OAAQ,EACRC,OAAQ,GAGZ/sC,KAAK+gS,SAAS,OAAQxT,EAAUuC,OAChC9vR,KAAK+gS,SAAS,SAAUxT,EAAUuC,OAClC9vR,KAAK0hS,UAAU,UAAWnU,EAAUuC,OAEpC9vR,KAAKswV,WAAa,IAAI7D,EACtBzsV,KAAKuwV,MAAO,EAiKhB,SAASC,IACLxwV,KAAKkhB,WAAa,CAEdiuU,GAAI,EACJntV,MAAO,GAGXhC,KAAK0hS,UAAU,QAAS,UAkB5B,SAAS+uD,IACLzwV,KAAK+gS,SAAS,WAAYxT,EAAUwC,QACpC/vR,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,OAAQnU,EAAUuC,OACjC9vR,KAAKkhB,WAAa,CACdksU,MAAO,+BACPK,OAAQ,EACRjrM,SAAU,GACVvzI,KAAM,YAGVjP,KAAK0wV,cAAgBD,EAAgBE,aACjC3wV,KAAKkhB,WAAWksU,OAEpBptV,KAAK4wV,eAAiB,EA4E1B,SAASC,IACL7wV,KAAKkhB,WAAa,CACd4vU,OAAQ,GAEZ9wV,KAAK+gS,SAAS,KAAMxT,EAAUwC,QAC9B/vR,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK0hS,UAAU,MAAOnU,EAAUuC,OAEhC9vR,KAAKswV,WAAa,IAAI7D,EAoC1B,SAASsE,IACL/wV,KAAKkhB,WAAa,CACdw0E,MAAO,gCAEX11F,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK+gS,SAAS,QAAS,UACvB/gS,KAAK0hS,UAAU,MAAOnU,EAAUuC,OAEhC9vR,KAAKgxV,YAAc,IAAIvxV,MAAM,IAC7BO,KAAKixV,aAAe,IAAIxxV,MAAM,IAC9BO,KAAK2wV,aAAa3wV,KAAKkhB,WAAWw0E,OAmEzC,SAASw7P,IACFlxV,KAAKkhB,WAAa,CACdpJ,IAAK,GACd8mT,UAAU,GAGL5+T,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,OAAQnU,EAAUuC,OACvC9vR,KAAK8vV,MAAQ,KACb9vV,KAAKmxV,cAAgB,EACrBnxV,KAAKoxV,UAAW,EAEe,oBAAdC,aACP3zU,QAAQ9Z,MACJ,4IAEJ5D,KAAKwkS,SAAW,OAmGxB,SAAS8sD,IAUL,GATAtxV,KAAKkhB,WAAa,CACdqwU,OAAQ,GACR/uM,SAAU,GAEdxiJ,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK+gS,SAAS,SAAU,UACxB/gS,KAAK+gS,SAAS,WAAY,UAC1B/gS,KAAK0hS,UAAU,OAAQnU,EAAUuC,OAER,oBAAd0hE,WACP9zU,QAAQ9Z,MACJ,gEAEJ5D,KAAKwkS,SAAW,UACb,CACH,IAAIitD,EAASzxV,KAAK0xV,MAAQ,IAAIF,WAC9BxxV,KAAK2xV,WAAaF,EAAMG,iBAAiB,UA0CjD,SAASC,IACL7xV,KAAKkhB,WAAa,CACd4wU,YAAa,EACbC,aAAc,GAElB/xV,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK+gS,SAAS,QAASxT,EAAUwC,QACjC/vR,KAAK0hS,UAAU,OAAQnU,EAAUuC,OACjC9vR,KAAKyM,KAAO,CAAC,IAAK,KAClBzM,KAAK0W,KAAO,GACZ1W,KAAK6/U,WAAa,EA/hCtBmP,EAAc5/P,MAAQ,KAEtB4/P,EAAcvC,UAAYA,EAE1BuC,EAActwV,UAAU8wV,cAAgB,SAASwC,GAC7Ct0U,QAAQ6oL,IAAI,eACZ7oL,QAAQ6oL,IAAIyrJ,GACZhyV,KAAK6vV,KAAOmC,EACZhyV,KAAKiyV,cAEDjyV,KAAKivV,UACLjvV,KAAKivV,SAASjvV,OAItBgvV,EAActwV,UAAUuzV,YAAc,WAClC,IAAIpC,EAAO7vV,KAAK6vV,KAChB7vV,KAAKovV,YAAcS,EAAK1zD,OAC9Bn8R,KAAKqvV,iBAAmB,GAClBrvV,KAAKsvV,aAAeO,EAAKzzD,QAC/Bp8R,KAAKuvV,kBAAoB,GAMnB,IAJA,IAAIvyD,EAAM,EAGNk1D,GADA32U,EAAKvb,KAAKovV,YAAY5xU,UACRtb,OACXgwV,IAA8B,IAAlBA,EAAS7vV,MAAgB,CACxC,IAAI8vV,EAAYD,EAASlwV,MAClChC,KAAKqvV,iBAAiB9rV,KAAK4uV,GAClBz0U,QAAQ6oL,IAAK,qBAAuB4rJ,EAAUhtV,KAAO,UAAYgtV,EAAU57U,GAAK,mBAAqB47U,EAAUC,aAAe,WAAaD,EAAUv7U,KAAO,cAAgBu7U,EAAUjvD,QAAU,KAChMlG,IACAk1D,EAAW32U,EAAGrZ,OAElBlC,KAAKqyV,gBAAkBr1D,EAEvBA,EAAM,EACN,IAAIzhR,EAEJ,IADI22U,GADA32U,EAAKvb,KAAKsvV,aAAa9xU,UACTtb,OACXgwV,IAA8B,IAAlBA,EAAS7vV,MAAgB,CACpC8vV,EAAYD,EAASlwV,MAClChC,KAAKuvV,kBAAkBhsV,KAAK4uV,GACnBz0U,QAAQ6oL,IAAK,sBAAwB4rJ,EAAUhtV,KAAO,UAAYgtV,EAAU57U,GAAK,mBAAqB47U,EAAUC,aAAe,WAAaD,EAAUv7U,KAAO,cAAgBu7U,EAAUjvD,QAAU,KACjMlG,IACAk1D,EAAW32U,EAAGrZ,OAElBlC,KAAKsyV,iBAAmBt1D,GAG5BgyD,EAActwV,UAAU+wV,cAAgB,SAAS1mL,GAC7CrrJ,QAAQ9Z,MAAM,+BAAiCmlK,IAGnDimL,EAActwV,UAAU6zV,cAAgB,SAAS3gM,EAAMnqJ,GACnD,IAAI+qV,EAAaxyV,KAAKovV,YAAY38T,IAAI,SAAWm/H,GACjD,IAAK4gM,EACD,OAAO,EAEXxD,EAAc5/P,MAAQpvF,KACtB,IAAIw9Q,EAAOx9Q,KAaX,OAXAwyV,EAAWC,cAAgB,SAASvuV,GAChC,IAAIosV,EAAa,IAAI7D,EAAUvoV,EAAE/E,MACjCq+Q,EAAKk1E,YAAYpC,GACb7oV,GACAA,EAASvD,EAAE/E,KAAMmxV,GAEjBtB,EAAc2D,YACd3D,EAAc2D,WAAWzuV,EAAE/E,KAAMmxV,IAGzC5yU,QAAQ6oL,IAAI,cAAeisJ,IACpB,GAGXxD,EAAc4D,SAAW,SAASzzV,KAElC6vV,EAActwV,UAAUg0V,YAAc,SAASpC,GAC3C,OAAQA,EAAW5D,KACf,KAAKD,EAAUO,OACXhtV,KAAKsU,MAAMmlE,KAAyB,EAApB62Q,EAAWxjT,QAAcwjT,EAAWvjT,OACpD,MACJ,KAAK0/S,EAAUS,QACXltV,KAAKsU,MAAMmlE,KAAyB,EAApB62Q,EAAWxjT,QAAc,EACzC,MACJ,KAAK2/S,EAAU0B,iBACXnuV,KAAKsU,MAAM66U,GAAGmB,EAAW1C,SAAW0C,EAAWzC,eAK3DmB,EAActwV,UAAUm0V,SAAW,SAASjhM,EAAMkhM,GAC9C,GAAKA,EAAL,CAIA,IAAIC,EAAc/yV,KAAKuvV,kBAAkB39L,GACpCmhM,IAIL/D,EAAch3T,OAASh4B,KAEnB8yV,EAAU7yV,cAAgBwsV,EAC1BsG,EAAYlvD,KAAKivD,EAAU3zV,MAE3B4zV,EAAYlvD,KAAKivD,MAwBzBpD,EAASV,cAAgBA,EAEzBU,EAASz9T,MAAQ,aACjBy9T,EAASzuV,KAAO,+BAChByuV,EAASjiU,MAAQ++T,EAEjBkD,EAAShxV,UAAU6oS,gBAAkB,SAAS3wR,GAC1C,GAAK5W,KAAK8vV,OAIE,QAARl5U,EAAgB,CAEhB,IADA,IAAI4G,EAAS,GACJ1f,EAAI,EAAGA,EAAIkC,KAAK8vV,MAAMT,iBAAiBtxV,SAAUD,EAAG,CACzD,IAAIsxF,EAAQpvF,KAAK8vV,MAAMT,iBAAiBvxV,GACxC0f,EAAO1f,GAAKA,EAAI,MAAQsxF,EAAMx4E,KAAO,YAAcw4E,EAAM8zM,QAE7D,MAAO,CAAE/9R,KAAM,OAAQqY,OAAQA,KAIvCkyU,EAAShxV,UAAUiyT,QAAU,WACrB3wT,KAAK8vV,MACL9vV,KAAK8vV,MAAMyC,cACPvyV,KAAKkhB,WAAW0wI,KAChB5xJ,KAAKgzV,YAAY53R,KAAKp7D,OAG1BA,KAAK+vV,UAAW,GAIxBL,EAAShxV,UAAUs0V,YAAc,SAAS7zV,EAAMmxV,GAC5CtwV,KAAK2vV,iBAAmBW,EACxBtwV,KAAKwkS,SAAW,OAChBxkS,KAAK2iS,WAAapV,EAAUrlR,UAC5BlI,KAAK+gE,QAAQ,UAAWuvR,GACpBA,EAAW5D,KAAOD,EAAUO,OAC5BhtV,KAAK+gE,QAAQ,YAAauvR,GACnBA,EAAW5D,KAAOD,EAAUS,QACnCltV,KAAK+gE,QAAQ,aAAcuvR,GACpBA,EAAW5D,KAAOD,EAAU0B,iBACnCnuV,KAAK+gE,QAAQ,QAASuvR,GACfA,EAAW5D,KAAOD,EAAU2B,cACnCpuV,KAAK+gE,QAAQ,QAASuvR,GACfA,EAAW5D,KAAOD,EAAU6B,WACnCtuV,KAAK+gE,QAAQ,eAAgBuvR,IAIrCZ,EAAShxV,UAAU46R,iBAAmB,SAASrgJ,GAE3C,GADAj5I,KAAKwkS,SAAW,QACXxkS,KAAK0iM,MAAM+vE,WAAazyQ,KAAK2vV,iBAAkB,CAChD12M,EAAI4+J,UAAY,QAChB,IAAIz1O,EAAMmrN,EAAUrlR,UAChBzF,EAAI,EAAMiV,KAAKC,IAAI,EAA6B,MAAzByqD,EAAMpiE,KAAK2iS,aACtC,GAAIlgS,EAAI,EAAG,CACP,IAAIpC,EAAI44I,EAAIo/J,YACZp/J,EAAIo/J,aAAe51S,EACnBw2I,EAAIpkF,KAAO,cACXokF,EAAIu/J,SACAx4S,KAAK2vV,iBAAiBl3U,WACtB,EACe,GAAfzY,KAAKyM,KAAK,GAAW,GAGzBwsI,EAAIo/J,YAAch4S,KAK9BqvV,EAAShxV,UAAUg0R,UAAY,WAC3B,GAAI1yR,KAAKo8R,QAEL,IADA,IAAIlkI,EAAOl4J,KAAK2vV,iBACP7xV,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAC1C,IACIsF,EAAI,KACR,OAFapD,KAAKo8R,QAAQt+R,GAEX8Y,MACX,IAAK,OACDxT,EAAIpD,KAAK8vV,MACT,MACJ,IAAK,YACD1sV,EAAI80J,EACJ,MACJ,QACI,SAERl4J,KAAK4yR,cAAc90R,EAAGsF,KAKlCssV,EAAShxV,UAAUglT,aAAe,WAC9B,MAAO,CACH,CAAC,YAAa,QACd,CAAC,UAAWn2B,EAAUuC,OACtB,CAAC,YAAavC,EAAUuC,OACxB,CAAC,aAAcvC,EAAUuC,OACzB,CAAC,QAASvC,EAAUuC,OACpB,CAAC,QAASvC,EAAUuC,OACpB,CAAC,eAAgBvC,EAAUuC,SAInCvC,EAAUkE,iBAAiB,aAAci+D,GAezCM,EAAUhB,cAAgBA,EAE1BgB,EAAU/9T,MAAQ,cAClB+9T,EAAU/uV,KAAO,+BACjB+uV,EAAUviU,MAAQ++T,EAElBwD,EAAUtxV,UAAU+oS,kBAAoB,SAAS7wR,GAC7C,GAAK5W,KAAK8vV,OAIE,QAARl5U,EAEA,MAAO,CAAEzR,KAAM,OAAQqY,OADnBxd,KAAKiwV,mBAIpBD,EAAUiD,cAAgB,CAAC,EAAE,WAE7BjD,EAAUtxV,UAAUuxV,eAAiB,WAEpC,IAAIzyU,EAAS,GACb,IAAIxd,KAAK8vV,MACR,OAAOE,EAAUiD,cAClB,GAAGjzV,KAAK8vV,MAAMP,kBACd,IAAK,IAAIzxV,EAAI,EAAGA,EAAIkC,KAAK8vV,MAAMP,kBAAkBxxV,SAAUD,EAAG,CAC7D,IAAIk6B,EAASh4B,KAAK8vV,MAAMP,kBAAkBzxV,GAC1C,GAAIk6B,EAAJ,CAEA,IAAIphB,EAAO9Y,EAAI,MAAQk6B,EAAOphB,KAAO,YAAcohB,EAAOkrQ,QAC1D1lR,EAAO1f,GAAK8Y,GAEb,OAAO4G,GAGLwyU,EAAUtxV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAEtCtwV,KAAK8vV,QAGG,QAATn7U,GACA3U,KAAK8vV,MAAM+C,SAAS7yV,KAAKkhB,WAAW0wI,KAAM0+L,GAE9CtwV,KAAK+gE,QAAQ,OAAQuvR,KAGzBN,EAAUtxV,UAAU4kT,YAAc,WAC9B,MAAO,CAAC,CAAC,OAAQ/1B,EAAUwC,UAG/BigE,EAAUtxV,UAAUglT,aAAe,WAC/B,MAAO,CAAC,CAAC,UAAWn2B,EAAUuC,SAGlCvC,EAAUkE,iBAAiB,cAAeu+D,GAS1CE,EAAWj+T,MAAQ,YACnBi+T,EAAWjvV,KAAO,0BAClBivV,EAAWziU,MAAQ++T,EAEnB0D,EAAWxxV,UAAUgmS,SAAW,WAC5B,OAAI1kS,KAAK0iM,MAAM+vE,UACJzyQ,KAAKs8T,KAETt8T,KAAKiyB,OAGhBi+T,EAAWxxV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GACvCA,IAGDA,EAAWrwV,cAAgBwsV,EAC3BzsV,KAAKs8T,KAAOg0B,EAAW73U,WAEvBzY,KAAKs8T,KAAO,QAIpB4zB,EAAWxxV,UAAU66R,iBAAmB,SAAStgJ,GACxCj5I,KAAKs8T,OAAQt8T,KAAK0iM,MAAM+vE,YAI7Bx5H,EAAIpkF,KAAO,aACXokF,EAAIu/J,SAASx4S,KAAKs8T,KAAM,GAAmB,GAAft8T,KAAKyM,KAAK,MAG1CyjV,EAAWxxV,UAAU4kT,YAAc,WAC/B,MAAO,CAAC,CAAC,KAAM/1B,EAAUwC,UAG7BmgE,EAAWxxV,UAAUglT,aAAe,WAChC,MAAO,CAAC,CAAC,UAAWn2B,EAAUuC,SAGlCvC,EAAUkE,iBAAiB,YAAay+D,GAsBxCC,EAAal+T,MAAQ,cACrBk+T,EAAalvV,KAAO,wBACpBkvV,EAAa1iU,MAAQ++T,EAErB2D,EAAa,QAAU,CACnBhrV,KAAM,OACN8sB,MAAO,UACPzU,OAAQivU,EAAUsC,mBAGtBoB,EAAazxV,UAAUgmS,SAAW,WAC9B,IAAIplQ,EAAM,KAoBV,OAlBIA,GADwB,GAAxBt/B,KAAKkhB,WAAWwrU,IACV,UAEAD,EAAUqC,eAAe9uV,KAAKkhB,WAAWwrU,MAAQ,WAIzB,GAA9B1sV,KAAKkhB,WAAW67T,YACc,GAA9B/8U,KAAKkhB,WAAW+7T,YAEhB39S,GACI,KACCt/B,KAAKkhB,WAAW67T,WAAa/8U,KAAKkhB,WAAW+7T,UACxCj9U,KAAKkhB,WAAW+7T,UAChBj9U,KAAKkhB,WAAW67T,UAChB,KACA/8U,KAAKkhB,WAAW+7T,YAGvB,WAAa39S,GAGxB6wT,EAAazxV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACtD,GAAY,OAAR4U,EAAe,CACf,IAAIomR,EAAMjwK,OAAO/qH,GACb09B,MAAMs9P,KACNA,EAAMyvD,EAAUjiQ,SAASxoF,IAAU,GAEvChC,KAAKkhB,WAAWwrU,IAAM1vD,IAI9BmzD,EAAazxV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAC9C,GAAKA,GAAcA,EAAWrwV,cAAgBwsV,EAA9C,CAIA,GAAIzsV,KAAKowV,UACLpwV,KAAKowV,WAAY,EACjBpwV,KAAKwkS,SAAW,OAChBxkS,KAAKkhB,WAAW20T,QAAUya,EAAWza,QACrC71U,KAAKkhB,WAAWwrU,IAAM4D,EAAW5D,IACjC1sV,KAAKkhB,WAAW67T,UAAY/8U,KAAKkhB,WAAW+7T,UACxCqT,EAAWnxV,KAAK,OACjB,CACH,IACgC,GAA5Ba,KAAKkhB,WAAW20T,SAChBya,EAAWza,SAAW71U,KAAKkhB,WAAW20T,QAEtC,OAEJ,IAC4B,GAAxB71U,KAAKkhB,WAAWwrU,KAChB4D,EAAW5D,KAAO1sV,KAAKkhB,WAAWwrU,IAElC,OAEJ,IACkC,GAA9B1sV,KAAKkhB,WAAW67T,WAChBuT,EAAWnxV,KAAK,GAAKa,KAAKkhB,WAAW67T,UAErC,OAEJ,IACkC,GAA9B/8U,KAAKkhB,WAAW+7T,WAChBqT,EAAWnxV,KAAK,GAAKa,KAAKkhB,WAAW+7T,UAErC,OAIRj9U,KAAK+gE,QAAQ,UAAWuvR,KAG5B/iE,EAAUkE,iBAAiB,cAAe0+D,GAkB1CE,EAAYp+T,MAAQ,YACpBo+T,EAAYpvV,KAAO,sBACnBovV,EAAY5iU,MAAQ++T,EAEpB6D,EAAY3xV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAC7C,GAAa,UAAT37U,EAUA,OATA3U,KAAKkhB,WAAW20T,QAAUya,EAAWza,QACrC71U,KAAKkhB,WAAWwrU,IAAM4D,EAAW5D,IACjC1sV,KAAKkhB,WAAW4rB,OAASwjT,EAAWnxV,KAAK,GACzCa,KAAKkhB,WAAW6rB,OAASujT,EAAWnxV,KAAK,QACrCmxV,EAAW5D,KAAOD,EAAUO,OAC5BhtV,KAAKuwV,MAAO,EACLD,EAAW5D,KAAOD,EAAUS,UACnCltV,KAAKuwV,MAAO,KAMhBD,EAAatwV,KAAKswV,YACXza,QAAU71U,KAAKkhB,WAAW20T,QACjC71U,KAAKkhB,WAAWwrU,KAAO1sV,KAAKkhB,WAAWwrU,IAAIzsV,cAAgBH,OAC3DwwV,EAAWtC,qBAAqBhuV,KAAKkhB,WAAWwrU,KAEhD4D,EAAW5D,IAAM1sV,KAAKkhB,WAAWwrU,IAErC4D,EAAWnxV,KAAK,GAAKmxV,EAAW5D,IAAM4D,EAAWza,QACjDya,EAAWnxV,KAAK,GAAK4tH,OAAO/sH,KAAKkhB,WAAW4rB,QAC5CwjT,EAAWnxV,KAAK,GAAK4tH,OAAO/sH,KAAKkhB,WAAW6rB,QAE5C/sC,KAAK+gE,QAAQ,UAAWuvR,IAG5BD,EAAY3xV,UAAUg0R,UAAY,WAC9B,IAAI70R,EAAQmC,KAAKkhB,WAEjB,GAAIlhB,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,IAAmB,GAAfsxF,EAAMrgC,KAGV,OAAQqgC,EAAMx4E,MACV,IAAK,OAEQ,OADLxT,EAAIpD,KAAK2yR,aAAa70R,MAElBsF,EAAEnD,cAAgBH,SAClBsD,EAAIqpV,EAAUgC,kBAAkBrrV,IAEpCpD,KAAKkhB,WAAW4rB,QAAc,EAAJ1pC,GAAS,KAEvC,MACJ,IAAK,MAEQ,OADLA,EAAIpD,KAAK2yR,aAAa70R,MAEtBkC,KAAKkhB,WAAWwrU,IAAMtpV,GAE1B,MACJ,IAAK,SAEQ,OADLA,EAAIpD,KAAK2yR,aAAa70R,MAEtBkC,KAAKkhB,WAAW4rB,OAASp1B,KAAKw6E,MAAQ,EAAF9uF,EAAI,EAAE,MAE9C,MACJ,IAAK,SAEQ,OADLA,EAAIpD,KAAK2yR,aAAa70R,MAEtBkC,KAAKkhB,WAAW6rB,OAASr1B,KAAKw6E,MAAQ,EAAF9uF,EAAI,EAAE,OAO9D,GAAIpD,KAAKo8R,QACL,IAASt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAC1C,IACIsF,EAAI,KACR,OAFapD,KAAKo8R,QAAQt+R,GAEX8Y,MACX,IAAK,QACDxT,EAAI,IAAIqpV,GACNE,MAAM,CAAC9uV,EAAM6uV,IAAK7uV,EAAMivC,OAAQjvC,EAAMkvC,SACxC3pC,EAAEyyU,QAAUh4U,EAAMg4U,QAClB,MACJ,IAAK,UACDzyU,EAAIvF,EAAM6uV,IACV,MACJ,IAAK,KACDtpV,EAAIvF,EAAMivC,OACV,MACJ,IAAK,WACD1pC,EAAIvF,EAAMkvC,OACV,MACJ,IAAK,OACD3pC,EACIvF,EAAM6uV,KAAOD,EAAUO,QACvBnvV,EAAM6uV,KAAOD,EAAUS,QACjBrvV,EAAMivC,OACN,KACV,MACJ,IAAK,WACD1pC,EAAIvF,EAAM6uV,KAAOD,EAAUO,OAASnvV,EAAMkvC,OAAS,KACnD,MACJ,IAAK,QACD3pC,EACIvF,EAAM6uV,KAAOD,EAAUO,OACjBP,EAAUkB,aAAa9vV,EAAMivC,QAC7B,KACV,MACJ,IAAK,YACD1pC,EACIvF,EAAM6uV,KAAOD,EAAU6B,UACjB7B,EAAUsB,iBACNlwV,EAAMivC,OACNjvC,EAAMkvC,QAEV,KACV,MACJ,IAAK,OACD3pC,EAAIpD,KAAKuwV,KACT,MACJ,QACI,SAEE,OAANntV,GACApD,KAAK4yR,cAAc90R,EAAGsF,KAMtCitV,EAAY3xV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACzC,OAAR4U,IACA5W,KAAKkhB,WAAWwrU,IAAMD,EAAUwB,yBAAyBjsV,KAIjEquV,EAAY3xV,UAAU4kT,YAAc,WAChC,MAAO,CAAC,CAAC,MAAO,UAAU,CAAC,OAAQ,UAAU,CAAC,SAAU,UAAU,CAAC,SAAU,YAGjF+sC,EAAY3xV,UAAUglT,aAAe,WACjC,MAAO,CACH,CAAC,OAAQ,QACT,CAAC,UAAWn2B,EAAUuC,OACtB,CAAC,UAAW,UACZ,CAAC,OAAQ,UACT,CAAC,WAAY,UACb,CAAC,KAAM,UACP,CAAC,WAAY,UACb,CAAC,QAAS,UACV,CAAC,OAAQ,QACT,CAAC,YAAa,YAItBvC,EAAUkE,iBAAiB,aAAc4+D,GAYzCG,EAASv+T,MAAQ,SACjBu+T,EAASvvV,KAAO,2BAChBuvV,EAAS/iU,MAAQ++T,EAEjBgE,EAAS9xV,UAAUg0R,UAAY,WACf1yR,KAAKkhB,WACb8tU,EAAc5/P,QACdpvF,KAAKkhB,WAAWlf,MACZgtV,EAAc5/P,MAAM96E,MAAM66U,GAAGnvV,KAAKkhB,WAAWiuU,KAErDnvV,KAAK4yR,cAAc,EAAG5yR,KAAKkhB,WAAWlf,QAG1CurR,EAAUkE,iBAAiB,UAAW++D,GAoBtCC,EAAgBx+T,MAAQ,iBACxBw+T,EAAgBxvV,KAAO,+BACvBwvV,EAAgBhjU,MAAQ++T,EAExBiE,EAAgBE,aAAe,SAASj7P,GAEpC,IADA,IAAI03P,EAAQ13P,EAAMp8D,MAAM,KACfx7B,EAAI,EAAGA,EAAIsvV,EAAMrvV,SAAUD,EAAG,CACnC,IAAIyC,EAAI6sV,EAAMtvV,GACG,GAAZyC,EAAExC,QAAuB,KAARwC,EAAE,IAAcA,EAAExC,OAAS,EAC7CqvV,EAAMtvV,IAAMyvR,EAAUk/D,UAAUgC,kBAAkBluV,GAElD6sV,EAAMtvV,GAAK2uV,EAAUY,cAAc9sV,IAAM,EAGjD,OAAO6sV,GAGXqD,EAAgB/xV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC7C,SAAR4U,IACA5W,KAAK0wV,cAAgBD,EAAgBE,aAAa3uV,KAI1DyuV,EAAgB/xV,UAAUg0R,UAAY,WAClC,IAAI+6D,EAASztV,KAAK2yR,aAAa,GACjB,MAAV86D,IACAztV,KAAKkhB,WAAWusU,OAASA,GAG7B,IAAI/3P,EAAQ11F,KAAK2yR,aAAa,GAC1Bj9L,IACA11F,KAAK0wV,cAAgBD,EAAgBE,aAAaj7P,KAI1D+6P,EAAgB/xV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAGjD,IAAI5B,EAAQ,EACR7vU,EAAQ7e,KAAK0wV,cAAc3yV,OAC3BkB,EAAQ,EAEgB,YAAxBe,KAAKkhB,WAAWjS,KAChBhQ,EAAQe,KAAK4wV,gBAAkB5wV,KAAK4wV,eAAiB,GAAK/xU,EAC3B,UAAxB7e,KAAKkhB,WAAWjS,OACvBhQ,EAAQyY,KAAKE,MAAMF,KAAK6uD,SAAW1nD,IAGvC,IAAI46D,EAAOz5E,KAAK0wV,cAAczxV,GAE1ByvV,EADAj1Q,GAAQ,EACAA,EAAsC,IAA9Bz5E,KAAKkhB,WAAWusU,OAAS,GAAU,IAE1Ch0Q,GAGT62Q,EAAa,IAAI7D,GACVE,MAAM,CAACF,EAAUO,OAAQ0B,EAAO,KAC3C,IAAIlsM,EAAWxiJ,KAAKkhB,WAAWshI,UAAY,EAC3CxiJ,KAAK+gE,QAAQ,OAAQuvR,GAGrBtoV,WACI,WACI,IAAIsoV,EAAa,IAAI7D,EACrB6D,EAAW3D,MAAM,CAACF,EAAUS,QAASwB,EAAO,IAC5C1uV,KAAK+gE,QAAQ,OAAQuvR,IACvBl1R,KAAKp7D,MACI,IAAXwiJ,IAIR+qI,EAAUkE,iBAAiB,iBAAkBg/D,GAa7CI,EAAgB5+T,MAAQ,iBACxB4+T,EAAgB5vV,KAAO,wBACvB4vV,EAAgBpjU,MAAQ++T,EAExBqE,EAAgBnyV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAC5CA,GAAcA,EAAWrwV,cAAgBwsV,IAK1C6D,EAAWnxV,KAAK,IAAMstV,EAAUO,QAChCsD,EAAWnxV,KAAK,IAAMstV,EAAUS,SAEhCltV,KAAKswV,WAAa,IAAI7D,EACtBzsV,KAAKswV,WAAW3D,MAAM2D,EAAWnxV,MACjCa,KAAKswV,WAAWnxV,KAAK,GAAKuY,KAAKq/C,MAC3B/2D,KAAKswV,WAAWnxV,KAAK,GAAKa,KAAKkhB,WAAW4vU,QAE9C9wV,KAAK+gE,QAAQ,MAAO/gE,KAAKswV,aAEzBtwV,KAAK+gE,QAAQ,MAAOuvR,KAI5BO,EAAgBnyV,UAAUg0R,UAAY,WAClC,IAAIo+D,EAAS9wV,KAAK2yR,aAAa,GACjB,MAAVm+D,IACA9wV,KAAKkhB,WAAW4vU,OAASA,IAIjCvjE,EAAUkE,iBAAiB,iBAAkBo/D,GAe7CE,EAAe9+T,MAAQ,sBACvB8+T,EAAe9vV,KAAO,wCACtB8vV,EAAetjU,MAAQ++T,EAEvBuE,EAAeryV,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC5C,SAAR4U,GACA5W,KAAK2wV,aAAa3uV,IAI1B+uV,EAAeryV,UAAUiyV,aAAe,SAASj7P,GAC7C11F,KAAKkzV,eAAiBx9P,EACtB11F,KAAK0wV,cAAgBD,EAAgBE,aAAaj7P,GAClD,IAAK,IAAI53F,EAAI,EAAGA,EAAI,KAAMA,EACtBkC,KAAKgxV,YAAYlzV,IAAuC,GAAlCkC,KAAK0wV,cAAc9vV,QAAQ9C,GAErD,IAASA,EAAI,EAAGA,EAAI,KAAMA,EACtB,GAAIkC,KAAKgxV,YAAYlzV,GACjBkC,KAAKixV,aAAanzV,GAAK,OAG3B,IAAK,IAAIqG,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACzB,GAAInE,KAAKgxV,aAAalzV,EAAIqG,GAAK,IAAK,CAChCnE,KAAKixV,aAAanzV,IAAMqG,EACxB,MAEJ,GAAInE,KAAKgxV,aAAalzV,EAAIqG,GAAK,IAAK,CAChCnE,KAAKixV,aAAanzV,GAAKqG,EACvB,SAMhB4sV,EAAeryV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAChD,GAAKA,GAAcA,EAAWrwV,cAAgBwsV,EAI9C,GACI6D,EAAWnxV,KAAK,IAAMstV,EAAUO,QAChCsD,EAAWnxV,KAAK,IAAMstV,EAAUS,QAClC,CACEltV,KAAKswV,WAAa,IAAI7D,EACtBzsV,KAAKswV,WAAW3D,MAAM2D,EAAWnxV,MACjC,IAAIs6E,EAAO62Q,EAAW72Q,KAClBx6E,EAAQwtV,EAAUY,cAAc5zQ,GAChCr5C,EAASpgC,KAAKixV,aAAahyV,GAC/Be,KAAKswV,WAAWnxV,KAAK,IAAMihC,EAC3BpgC,KAAK+gE,QAAQ,MAAO/gE,KAAKswV,iBAEzBtwV,KAAK+gE,QAAQ,MAAOuvR,IAI5BS,EAAeryV,UAAUg0R,UAAY,WACjC,IAAIh9L,EAAQ11F,KAAK2yR,aAAa,GACjB,MAATj9L,GAAiBA,GAAS11F,KAAKkzV,gBAC/BlzV,KAAK2wV,aAAaj7P,IAI1B63L,EAAUkE,iBAAiB,gBAAiBs/D,GAwB5CG,EAAej/T,MAAQ,gBACvBi/T,EAAejwV,KAAO,oBACtBiwV,EAAezjU,MAAQ++T,EAE1B0E,EAAexyV,UAAUgiS,SAAW,SAAU9pR,GAElC,QAARA,EACF5W,KAAK+5E,OACU,SAARnjE,IACP5W,KAAKoxV,UAAYpxV,KAAKoxV,WAGxBF,EAAexyV,UAAUwlS,kBAAoB,SAASttR,EAAK5U,GAE/C,OAAR4U,GACF5W,KAAKmzV,aAAanxV,IAGjBkvV,EAAexyV,UAAUg0R,UAAY,WACvC,GAAI1yR,KAAK8vV,OAGL9vV,KAAKoxV,SAAT,CAGApxV,KAAKmxV,eAAiBnxV,KAAKy3E,MAAMskN,aAGjC,IAFA,IAAIq3D,EAAoC,IAArBpzV,KAAKmxV,cAEhBrzV,EAAI,EAAGA,EAAIkC,KAAK8vV,MAAMjwB,SAAU/hU,EACxC,CACC,IAAIu1V,EAAQrzV,KAAK8vV,MAAMuD,MAAMv1V,GACzBu1V,EAAMC,YAETD,EAAMC,UAAY,EAClBD,EAAMhnK,MAAQ,GAGf,IAAIiwD,EAAO+2G,EAAM1+U,MAAO0+U,EAAMC,WAC9B,GAAGh3G,GAAS+2G,EAAMhnK,MAAQiwD,EAAKi3G,WAAcH,IAE5CC,EAAMC,YACND,EAAMhnK,OAASiwD,EAAKi3G,UAEjBj3G,EAAKn9O,MACR,CACC,IAAIq0V,EAAWl3G,EAAKn3O,MAAQ,EAAIm3O,EAAKu5F,QACjCya,EAAa,IAAI7D,EACrB6D,EAAW3D,MAAM,CAAC6G,EAAUl3G,EAAKn9O,KAAK,GAAIm9O,EAAKn9O,KAAK,KACpDa,KAAK+gE,QAAQ,OAAQuvR,OAOzBY,EAAexyV,UAAUq7E,KAAO,WAI/B,GAFA/5E,KAAKoxV,UAAW,EAChBpxV,KAAKmxV,cAAgB,EACjBnxV,KAAK8vV,MAGT,IAAI,IAAIhyV,EAAI,EAAGA,EAAIkC,KAAK8vV,MAAMjwB,SAAU/hU,EACxC,CACC,IAAIu1V,EAAQrzV,KAAK8vV,MAAMuD,MAAMv1V,GAC7Bu1V,EAAMC,UAAY,EAClBD,EAAMhnK,MAAQ,IAIhB6kK,EAAexyV,UAAUy0V,aAAe,SAASr7U,GAEhD,IAAI0lQ,EAAOx9Q,KACXutR,EAAU6G,UAAWt8Q,EAAK,eAAe,SAAS3Y,GAEjDq+Q,EAAKgnB,SAAW,OAChBhnB,EAAKsyE,MAAQuB,WAAW3qT,MAAO,IAAIs1B,WAAW78D,IAC3Cq+Q,EAAKt8P,WAAW09S,UAClBphD,EAAKzjM,UACJ,SAASp+D,GACX6hQ,EAAKgnB,SAAW,OAChBhnB,EAAKsyE,MAAQ,SAIfoB,EAAexyV,UAAUg2S,WAAa,SAAS/mO,GAE9C3tE,KAAKkhB,WAAWpJ,IAAM,GACtB9X,KAAKmzV,aAAcxlR,IAGjB4/M,EAAUkE,iBAAiB,gBAAiBy/D,GAwB5CI,EAAWr/T,MAAQ,YACnBq/T,EAAWrwV,KAAO,oBAClBqwV,EAAW7jU,MAAQ++T,EAEnB8E,EAAW5yV,UAAUgiS,SAAW,SAAS/rR,EAAO27U,GAC5C,GAAKA,GAAcA,EAAWrwV,cAAgBwsV,EAA9C,CAIA,GAAIzsV,KAAK2xV,YAAcrB,EAAWnxV,KAAK,IAAMstV,EAAUO,OAAQ,CAC3D,IAAIvzQ,EAAO62Q,EAAW72Q,KACtB,IAAKA,GAAgB,aAARA,GAAuBA,EAAKx5E,cAAgBH,OACrD,OAEJE,KAAK2xV,WAAW53Q,KACZN,EACA62Q,EAAW7C,OACXztV,KAAKkhB,WAAWshI,SAChBxiJ,KAAKkhB,WAAWqwU,QAGxBvxV,KAAK+gE,QAAQ,OAAQuvR,KAGzBgB,EAAW5yV,UAAUg0R,UAAY,WAC7B,IAAI6+D,EAASvxV,KAAK2yR,aAAa,GACjB,MAAV4+D,IACAvxV,KAAKkhB,WAAWqwU,OAASA,GAG7B,IAAI/uM,EAAWxiJ,KAAK2yR,aAAa,GACjB,MAAZnwI,IACAxiJ,KAAKkhB,WAAWshI,SAAWA,IAInC+qI,EAAUkE,iBAAiB,YAAa6/D,GAexCO,EAAW5/T,MAAQ,YACnB4/T,EAAW5wV,KAAO,yBAClB4wV,EAAWpkU,MAAQ++T,EAEnBqF,EAAWn7U,KAAO,CACd,CAAEuF,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,IAAM+zF,EAAG,GAAK94C,EAAG,GAAK72D,EAAG,GAC9B,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,KAAM+zF,EAAG,GAAK94C,EAAG,GAAK72D,EAAG,GAC9B,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,KAAM+zF,EAAG,GAAK94C,EAAG,GAAK72D,EAAG,GAC9B,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,KAAM+zF,EAAG,GAAK94C,EAAG,GAAK72D,EAAG,GAC9B,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,GACvB,CAAE4b,EAAG,KAAM+zF,EAAG,GAAK94C,EAAG,GAAK72D,EAAG,GAC9B,CAAE4b,EAAG,EAAG+zF,EAAG,EAAG94C,EAAG,EAAG72D,EAAG,IAG3BwxV,EAAWnzV,UAAU66R,iBAAmB,SAAStgJ,GAC7C,IAAIj5I,KAAK0iM,MAAM+vE,UAAf,CAIA,IAAIghF,EAAyC,GAA9BzzV,KAAKkhB,WAAW4wU,YAC/B9xV,KAAK0W,KAAK3Y,OAAS01V,EACnB,IAAIC,EAAY1zV,KAAKyM,KAAK,IAAoC,EAA9BzM,KAAKkhB,WAAW4wU,aAC5C6B,EAAa3zV,KAAKyM,KAAK,GAE3BwsI,EAAIo/J,YAAc,EAElB,IACI,IAAIp0S,EAAI,EACRA,EAAI,EACJA,IAEA,IAAK,IAAInG,EAAI,EAAGA,EAAI21V,IAAY31V,EAAG,CAC/B,IAAI81V,EAAW/B,EAAWn7U,KAAK5Y,EAAI,IACnC,GAAI81V,EAASvzV,GAAK4D,EAAlB,CAGA,IACIgY,EAAa,EADJvE,KAAKE,MAAM9Z,EAAI,IACP41V,EAAYE,EAAS33U,EAAIy3U,EAE1Cz6M,EAAI4+J,UADC,GAAL5zS,EACgBjE,KAAK0W,KAAK5Y,GAAK,OAAS,QAExBkC,KAAK0W,KAAK5Y,GAAK,OAAS,QAE5Cm7I,EAAI2gK,SACA39R,EAAI,EACJ,EACAy3U,EAAYE,EAAS5jP,EAAI,EACzB2jP,EAAaC,EAAS18R,OAMtC26R,EAAWnzV,UAAUm1V,YAAc,SAASlhT,GACzB3yC,KAAKkhB,WAAW4wU,YAI/B,IAJA,IACI4B,EAAY1zV,KAAKyM,KAAK,IAAoC,EAA9BzM,KAAKkhB,WAAW4wU,aAC5C6B,EAAa3zV,KAAKyM,KAAK,GAGnBxI,EAAI,EACRA,GAAK,EACLA,IAEA,IAAK,IAAInG,EAAI,EAAGA,EAAIkC,KAAK0W,KAAK3Y,SAAUD,EAAG,CACvC,IAAI81V,EAAW/B,EAAWn7U,KAAK5Y,EAAI,IACnC,GAAI81V,EAASvzV,GAAK4D,EAAlB,CAGA,IACIgY,EAAa,EADJvE,KAAKE,MAAM9Z,EAAI,IACP41V,EAAYE,EAAS33U,EAAIy3U,EAC1C1jP,EAAI0jP,EAAYE,EAAS5jP,EACzB94C,EAAIy8R,EAAaC,EAAS18R,EAC9B,KAAIvkB,EAAI,GAAK12B,GAAK02B,EAAI,GAAK12B,EAAI+zF,GAAKr9D,EAAI,GAAKukB,GAG7C,OAAOp5D,GAGf,OAAQ,GAGZ+zV,EAAWnzV,UAAUgiS,SAAW,SAAS/rR,EAAOm1M,GAC5C,GAAa,SAATn1M,GAOJ,GAAKm1M,GAAUA,EAAO7pN,cAAgBwsV,EAAtC,CAGA,IAAI6D,EAAaxmI,EACbgqI,EAAkD,IAApC9zV,KAAKkhB,WAAW6wU,aAAe,GAAU,GACvD9yV,EAAQqxV,EAAWnxV,KAAK,GAAK20V,EAC7B70V,GAAS,GAAKA,EAAQe,KAAK0W,KAAK3Y,SAC5BuyV,EAAWnxV,KAAK,IAAMstV,EAAUO,OAChChtV,KAAK0W,KAAKzX,IAAS,EACZqxV,EAAWnxV,KAAK,IAAMstV,EAAUS,UACvCltV,KAAK0W,KAAKzX,IAAS,IAI3Be,KAAK+gE,QAAQ,OAAQuvR,SApBjB,IAAK,IAAIxyV,EAAI,EAAGA,EAAIkC,KAAK0W,KAAK3Y,SAAUD,EACpCkC,KAAK0W,KAAK5Y,IAAK,GAsB3B+zV,EAAWnzV,UAAU+pO,YAAc,SAAS9nO,EAAGgyC,GAC3C,KAAIA,EAAI,GAAK,GAAb,CAGA,IAAI1zC,EAAQe,KAAK6zV,YAAYlhT,GAC7B3yC,KAAK0W,KAAKzX,IAAS,EACnBe,KAAK6/U,UAAY5gV,EACjB,IAAIyvV,EAA6C,IAApC1uV,KAAKkhB,WAAW6wU,aAAe,GAAU,GAAK9yV,EACvDqxV,EAAa,IAAI7D,EAGrB,OAFA6D,EAAW3D,MAAM,CAACF,EAAUO,OAAQ0B,EAAO,MAC3C1uV,KAAK+gE,QAAQ,OAAQuvR,IACd,IAGXuB,EAAWnzV,UAAUg0S,YAAc,SAAS/xS,EAAGgyC,GAC3C,KAAIA,EAAI,GAAK,IAAwB,GAAnB3yC,KAAK6/U,WAAvB,CAGA7/U,KAAK6+R,gBAAe,GACpB,IAAI5/R,EAAQe,KAAK6zV,YAAYlhT,GAC7B,GAAI3yC,KAAK6/U,WAAa5gV,EAClB,OAAO,EAEXe,KAAK0W,KAAK1W,KAAK6/U,YAAa,EAC5B,IAAI6O,EACqC,IAApC1uV,KAAKkhB,WAAW6wU,aAAe,GAAU,GAAK/xV,KAAK6/U,WACpDyQ,EAAa,IAAI7D,GACVE,MAAM,CAACF,EAAUS,QAASwB,EAAO,MAC5C1uV,KAAK+gE,QAAQ,OAAQuvR,GAErBtwV,KAAK0W,KAAKzX,IAAS,EACnB,IACIqxV,EADA5B,EAA6C,IAApC1uV,KAAKkhB,WAAW6wU,aAAe,GAAU,GAAK9yV,EAM3D,OALIqxV,EAAa,IAAI7D,GACVE,MAAM,CAACF,EAAUO,OAAQ0B,EAAO,MAC3C1uV,KAAK+gE,QAAQ,OAAQuvR,GAErBtwV,KAAK6/U,UAAY5gV,GACV,IAGX4yV,EAAWnzV,UAAU80S,UAAY,SAAS7yS,EAAGgyC,GACzC,KAAIA,EAAI,GAAK,GAAb,CAGA,IAAI1zC,EAAQe,KAAK6zV,YAAYlhT,GAC7B3yC,KAAK0W,KAAKzX,IAAS,EACnBe,KAAK6/U,WAAa,EAClB,IAAI6O,EAA6C,IAApC1uV,KAAKkhB,WAAW6wU,aAAe,GAAU,GAAK9yV,EACvDqxV,EAAa,IAAI7D,EAGrB,OAFA6D,EAAW3D,MAAM,CAACF,EAAUS,QAASwB,EAAO,MAC5C1uV,KAAK+gE,QAAQ,OAAQuvR,IACd,IAGX/iE,EAAUkE,iBAAiB,YAAaogE,GA5iD5C,CAijDG7xV,MAEH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEnBwmE,EAAU,GAmPd,SAASC,IACLh0V,KAAKkhB,WAAa,CACd2qC,IAAK,GACLooS,KAAM,GACN3yR,MAAM,EACNs9P,UAAU,EACVs1B,aAAc,GAGlBl0V,KAAKm0V,gBAAiB,EACtBn0V,KAAKo0V,aAAe,KACpBp0V,KAAKq0V,YAAc,GACnBr0V,KAAKs0V,iBAAmB,KAExBt0V,KAAK0hS,UAAU,MAAO,SACtB1hS,KAAK+gS,SAAS,OAAQ,UAGtB,IAAIn3P,EAAUmqT,EAAQQ,kBAGtBv0V,KAAKw0V,UAAY5qT,EAAQ6qT,aACzBz0V,KAAKw0V,UAAUE,UAAY10V,KAC3BA,KAAKw0V,UAAUP,KAAKjyV,MAAQhC,KAAKkhB,WAAW+yU,KAGxCj0V,KAAKkhB,WAAW2qC,KAChB7rD,KAAK20V,UAAU30V,KAAKkhB,WAAW2qC,KA2NvC,SAAS+oS,IACL50V,KAAKkhB,WAAa,CACd+yU,KAAM,IAGVj0V,KAAKq0V,YAAc,GACnBr0V,KAAK60V,cAAgB,KAErB70V,KAAK0hS,UAAU,MAAO,SACtB1hS,KAAK+gS,SAAS,OAAQ,UAGtB,IAAIn3P,EAAUmqT,EAAQQ,kBACtBv0V,KAAKw0V,UAAY5qT,EAAQ6qT,aACzBz0V,KAAKw0V,UAAUE,UAAY10V,KAC3BA,KAAKw0V,UAAUP,KAAKjyV,MAAQhC,KAAKkhB,WAAW+yU,KAwIhD,SAASa,IACL90V,KAAKkhB,WAAa,CACd6zU,QAAS,KACTC,aAAc,IACdC,aAAc,GACdC,sBAAuB,IAG3B,IAAItrT,EAAUmqT,EAAQQ,kBAEtBv0V,KAAKw0V,UAAY5qT,EAAQurT,iBACzBn1V,KAAKw0V,UAAUE,UAAY10V,KAC3BA,KAAKw0V,UAAUO,QAAU/0V,KAAKkhB,WAAW6zU,QACzC/0V,KAAKw0V,UAAUQ,YAAch1V,KAAKkhB,WAAW8zU,YAC7Ch1V,KAAKw0V,UAAUS,YAAcj1V,KAAKkhB,WAAW+zU,YAC7Cj1V,KAAKw0V,UAAUU,sBAAwBl1V,KAAKkhB,WAAWg0U,sBAEvDl1V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK0hS,UAAU,QAAS,SACxB1hS,KAAK0hS,UAAU,UAAW,SAE1B1hS,KAAKo1V,UAAY,KACjBp1V,KAAKq1V,UAAY,KA+DrB,SAASC,IAELt1V,KAAKkhB,WAAa,CACd+yU,KAAM,GAGVj0V,KAAKw0V,UAAYT,EAAQQ,kBAAkBE,aAC3Cz0V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK+gS,SAAS,OAAQ,UACtB/gS,KAAK0hS,UAAU,MAAO,SAuB1B,SAAS6zD,IAELv1V,KAAKkhB,WAAa,CACds0U,YAAa,GACbvgS,WAAW,GAGfj1D,KAAKw0V,UAAYT,EAAQQ,kBAAkBkB,kBAC3Cz1V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK0hS,UAAU,MAAO,SA6D1B,SAASg0D,IAEL11V,KAAKkhB,WAAa,CACdgyS,WAAY,GACZyiC,KAAM,GACNxlL,MAAO,GACPylL,WAAY,GACZC,OAAQ,EACRC,QAAS,KAGb91V,KAAKw0V,UAAYT,EAAQQ,kBAAkBwB,2BAC3C/1V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK0hS,UAAU,MAAO,SAuC1B,SAASs0D,IAELh2V,KAAKkhB,WAAa,GAElBlhB,KAAKw0V,UAAYT,EAAQQ,kBAAkB0B,mBAC3Cj2V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK+gS,SAAS,QAAS,aACvB/gS,KAAK0hS,UAAU,MAAO,SA0B1B,SAASw0D,IAELl2V,KAAKkhB,WAAa,CACdi1U,MAAO,GACPC,MAAO,IAGXp2V,KAAKw0V,UAAYT,EAAQQ,kBAAkBE,aAE3Cz0V,KAAKq2V,WAAatC,EAAQQ,kBAAkBE,aAC5Cz0V,KAAKq2V,WAAWpC,KAAKjyV,MAAQhC,KAAKkhB,WAAWi1U,MAC7Cn2V,KAAKs2V,WAAavC,EAAQQ,kBAAkBE,aAC5Cz0V,KAAKs2V,WAAWrC,KAAKjyV,MAAQhC,KAAKkhB,WAAWk1U,MAE7Cp2V,KAAKq2V,WAAW9tD,QAAQvoS,KAAKw0V,WAC7Bx0V,KAAKs2V,WAAW/tD,QAAQvoS,KAAKw0V,WAE7Bx0V,KAAK+gS,SAAS,MAAO,SACrB/gS,KAAK+gS,SAAS,WAAY,UAC1B/gS,KAAK+gS,SAAS,MAAO,SACrB/gS,KAAK+gS,SAAS,WAAY,UAE1B/gS,KAAK0hS,UAAU,MAAO,SAkD1B,SAAS60D,IAELv2V,KAAKkhB,WAAa,CACdi9Q,EAAG,GACHmvD,EAAG,GACH3vD,EAAG,GACHy8B,EAAG,IAGPp6T,KAAKw0V,UAAYT,EAAQQ,kBAAkBE,aAC3Cz0V,KAAKw0V,UAAUP,KAAKjyV,MAAQ,EAC5BhC,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK+gS,SAAS,OAAQ,QACtB/gS,KAAK0hS,UAAU,MAAO,SACtB1hS,KAAKuwV,MAAO,EA4ChB,SAASiG,IAELx2V,KAAKkhB,WAAa,CACdu1U,UAAW,IAGfz2V,KAAKw0V,UAAYT,EAAQQ,kBAAkBmC,YAAY,IACvD12V,KAAKw0V,UAAUiC,UAAUz0V,MAAQhC,KAAKkhB,WAAWu1U,UACjDz2V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK+gS,SAAS,OAAQ,UACtB/gS,KAAK0hS,UAAU,MAAO,SAgB1B,SAASi1D,IAEL32V,KAAKkhB,WAAa,CACd01U,UAAW,IACXC,OAAQ,EACR18B,EAAG,GAEPn6T,KAAKqmS,YAAY,OAAQ,UAAW,OAAQ,CACxC7oR,OAAQ,CACJ,UACA,WACA,WACA,WACA,YACA,UACA,QACA,aAKRxd,KAAKw0V,UAAYT,EAAQQ,kBAAkBuC,qBAG3C92V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK0hS,UAAU,MAAO,SA8B1B,SAASq1D,IAEL/2V,KAAKkhB,WAAa,CACd01U,UAAW,IACXC,OAAQ,EACR1xV,KAAM,QAEVnF,KAAKqmS,YAAY,OAAQ,OAAQ,OAAQ,CACrC7oR,OAAQ,CAAC,OAAQ,SAAU,WAAY,WAAY,YAIvDxd,KAAKw0V,UAAYT,EAAQQ,kBAAkByC,mBAG3Ch3V,KAAK0hS,UAAU,MAAO,SA8D1B,SAASu1D,IACLj3V,KAAKkhB,WAAa,CACdg2U,YAAY,EACZC,MAAO,GAGXn3V,KAAK+gS,SAAS,OAAQ,SACtB/gS,KAAK+gS,SAAS,OAAQ,UACtB/gS,KAAKyM,KAAO,CAAC,IAAK,KAClBzM,KAAKo3V,aAAe,KA+DxB,SAASC,IAELr3V,KAAKkhB,WAAa,CACdo2U,KAAM,IACNv+B,UAAW,GAGf/4T,KAAK+gS,SAAS,QAAS,SACvB/gS,KAAK0hS,UAAU,SAAU,UA2C7B,SAAS61D,IACL,IAAKA,EAAc9uB,aAAc,CAC7B,IAAIvlS,EAAOq0T,EAAcC,iBAAiB/+U,WACtCxZ,EAAQikC,EAAKtiC,QAAQ,KAAO,EAC5B08U,EAASp6S,EAAK3C,YAAY,KAC9Bg3T,EAAc9uB,aAAevlS,EAAKiG,OAAOlqC,EAAOq+U,EAASr+U,GAI7De,KAAKkhB,WAAa,CACdgiB,KAAMq0T,EAAc9uB,cAIxB,IAAIxvL,EAAM86M,EAAQQ,kBACdt7M,EAAIw+M,sBACJz3V,KAAKw0V,UAAYv7M,EAAIw+M,sBAAsB,KAAM,EAAG,IAIpD/5U,QAAQC,KAAK,kCACb3d,KAAKw0V,UAAYv7M,EAAIw7M,cAGzBz0V,KAAK03V,cACAH,EAAcI,mBACfJ,EAAcI,iBAAmB33V,KAAKw0V,UAAUoD,gBAIpD53V,KAAK+gS,SAAS,KAAM,SACpB/gS,KAAK0hS,UAAU,MAAO,SA0F1B,SAASm2D,IACL73V,KAAKw0V,UAAYT,EAAQQ,kBAAkBx/L,YAC3C/0J,KAAK+gS,SAAS,KAAM,SAr6CxB9/P,EAAO8yT,QAAUA,EAEjBA,EAAQQ,gBAAkB,WACtB,IAAKv0V,KAAK83V,eAAgB,CAGtB,GAFAntV,OAAOotV,aACHptV,OAAOotV,cAAgBptV,OAAOqtV,oBAC7BrtV,OAAOotV,aAER,OADAr6U,QAAQ9Z,MAAM,yCACP,KAEX5D,KAAK83V,eAAiB,IAAIC,aAC1B/3V,KAAK83V,eAAeG,UAAY,SAASlvL,GACrCrrJ,QAAQ6oL,IAAI,MAAOx9B,IAEvB/oK,KAAK83V,eAAeI,QAAU,SAASnvL,GACnCrrJ,QAAQ6oL,IAAI,QAASx9B,IAEzB/oK,KAAK83V,eAAeK,WAAa,SAASpvL,GACtCrrJ,QAAQ6oL,IAAI,WAAYx9B,IAOhC,OAAO/oK,KAAK83V,gBAGhB/D,EAAQxrD,QAAU,SAAS6vD,EAAYC,GACnC,IACID,EAAW7vD,QAAQ8vD,GACrB,MAAO18U,GACL+B,QAAQC,KAAK,eAAgBhC,KAIrCo4U,EAAQuE,WAAa,SAASF,EAAYC,GACtC,IACID,EAAWE,WAAWD,GACxB,MAAO18U,GACL+B,QAAQC,KAAK,eAAgBhC,KAIrCo4U,EAAQwE,2BAA6B,SAAS3zV,EAAM2jS,GAChD,GAAI3jS,EAAKu3R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAI8G,EAAKu3R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQxqF,EAAKu3R,OAAOr+R,GAExB,GADIykS,EAAY39R,EAAK6yE,MAAM8pB,MAAMnS,EAAMrgC,MACvC,CAIA,IAAIwlP,EAAc3vS,EAAK6yE,MAAMymN,YAAYqE,EAAUnN,WAC/CojE,EAAmB,KAEnBA,EADAjkD,EAAYkkD,yBACOlkD,EAAYkkD,yBAC3Bl2D,EAAUlN,aAGKkf,EAAYigD,UAGnC,IAAIkE,EAAmB,KAEnBA,EADA9zV,EAAK+zV,wBACc/zV,EAAK+zV,wBAAwB76V,GAE7B8G,EAAK4vV,UAGxBjsD,EACAwrD,EAAQxrD,QAAQiwD,EAAkBE,GAElC3E,EAAQuE,WAAWE,EAAkBE,IAKjD,GAAI9zV,EAAKw3R,QACL,IAASt+R,EAAI,EAAGA,EAAI8G,EAAKw3R,QAAQr+R,SAAUD,EAEvC,IADA,IAAIk6B,EAASpzB,EAAKw3R,QAAQt+R,GACjBqG,EAAI,EAAGA,EAAI6zB,EAAOupE,MAAMxjG,SAAUoG,EAAG,CAC1C,IAAIo+R,EACJ,GADIA,EAAY39R,EAAK6yE,MAAM8pB,MAAMvpE,EAAOupE,MAAMp9F,IAC9C,CAIIq0V,EAAmB,KAEnBA,EADA5zV,EAAK6zV,yBACc7zV,EAAK6zV,yBAAyB36V,GAE9B8G,EAAK4vV,UAG5B,IAAIv2D,EAAcr5R,EAAK6yE,MAAMymN,YACzBqE,EAAUjN,WAEVojE,EAAmB,KAEnBA,EADAz6D,EAAY06D,wBACO16D,EAAY06D,wBAC3Bp2D,EAAUhN,aAGK0I,EAAYu2D,UAG/BjsD,EACAwrD,EAAQxrD,QAAQiwD,EAAkBE,GAElC3E,EAAQuE,WAAWE,EAAkBE,MAQzD3E,EAAQ5vD,oBAAsB,SAC1By0D,EACAp5D,EACAq5D,EACAt2D,GAGA,GAAIq2D,GAAcrrE,EAAUsC,OAA5B,CAIA,IAAIoO,EAAc,KAKlB,GAJIsE,IACAtE,EAAcj+R,KAAKy3E,MAAMymN,YAAYqE,EAAUjN,YAG9C2I,EAAL,CAKA,IAAI66D,EAAkB,KAElBA,EADA94V,KAAKy4V,yBACaz4V,KAAKy4V,yBAAyBj5D,GAE9Bx/R,KAAKw0V,UAI3B,IAAIkE,EAAmB,KAEnBA,EADAz6D,EAAY06D,wBACO16D,EAAY06D,wBAC3Bp2D,EAAUhN,aAGK0I,EAAYu2D,UAI/BqE,EACA9E,EAAQxrD,QAAQuwD,EAAiBJ,GAEjC3E,EAAQuE,WAAWQ,EAAiBJ,MAK5C3E,EAAQgF,uBAAyB,SAASC,GACtC,IAAIC,EAAWD,EAAat6V,UAAUwlS,kBAEtC80D,EAAat6V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAClDi3V,GACAA,EAASr5V,KAAKI,KAAM4W,EAAM5U,GAGzBhC,KAAKw0V,gBAImB36U,IAAzB7Z,KAAKw0V,UAAU59U,UAIgBiD,IAA/B7Z,KAAKw0V,UAAU59U,GAAM5U,MACrBhC,KAAKw0V,UAAU59U,GAAM5U,MAAQA,EAE7BhC,KAAKw0V,UAAU59U,GAAQ5U,IAI/Bg3V,EAAat6V,UAAUylS,oBACnB4vD,EAAQ5vD,qBAIhB4vD,EAAQmF,cAAgB,GAExBnF,EAAQY,UAAY,SAAS78U,EAAKu8Q,EAAaC,GAC3C,IAAIy/D,EAAQmF,cAAcphV,KAAiC,GAAzBA,EAAIlX,QAAQ,SAA9C,CAOImzV,EAAQoF,oBACRrhV,EAAMi8U,EAAQoF,kBAAkBrhV,IAIpC,IAAIy/K,EAAU,IAAIqsG,eAClBrsG,EAAQx/K,KAAK,MAAOD,GAAK,GACzBy/K,EAAQ6hK,aAAe,cAEvB,IAAIxvT,EAAUmqT,EAAQQ,kBA0BtB,OAvBAh9J,EAAQq9F,OAAS,WACbl3Q,QAAQ6oL,IAAI,sBACZ38J,EAAQyvT,gBACJ9hK,EAAQi9F,UACR,SAASh7P,GACL9b,QAAQ6oL,IAAI,uBACZwtJ,EAAQmF,cAAcphV,GAAO0hB,EACzB66P,GACAA,EAAY76P,KAGpB8/T,IAGR/hK,EAAQssG,OASDtsG,EAPP,SAAS+hK,EAAQ39U,GACb+B,QAAQ6oL,IAAI,8BAA+B5qL,GACvC24Q,GACAA,EAAS34Q,GArCT04Q,GACAA,EAAY0/D,EAAQmF,cAAcphV,KA4EjDk8U,EAAc/yV,KAAO,sBAClB+yV,EAAc,QAAU,CAAEh3K,OAAQ,YAClCg3K,EAAchiE,qBAAuB,CAAC,MAAO,MAAO,OAEpDgiE,EAAct1V,UAAUygS,QAAU,SAAS1nN,GACnCA,EAAMm1F,SAAWooH,OAAOgG,gBACxBh7R,KAAK2wT,WAIbqjC,EAAct1V,UAAUiyT,QAAU,WACzB3wT,KAAKo0V,cAINp0V,KAAKkhB,WAAW09S,UACzB5+T,KAAKu5V,WAAWv5V,KAAKo0V,eAIpBJ,EAAct1V,UAAUggU,OAAS,WAC7B1+T,KAAKw5V,iBAGTxF,EAAct1V,UAAU+6V,QAAU,WAC9Bz5V,KAAK05V,kBAGT1F,EAAct1V,UAAUi7V,UAAY,WAChC35V,KAAK45V,oBAIT5F,EAAct1V,UAAU28R,UAAY,WAChCr7R,KAAKw5V,gBACDx5V,KAAK65V,cACLhgH,IAAIq1E,gBAAgBlvT,KAAK8uT,OAIjCklC,EAAct1V,UAAU86V,cAAgB,WAEpC,IAAK,IAAI17V,EAAI,EAAGA,EAAIkC,KAAKq0V,YAAYt2V,SAAUD,EACvCkC,KAAKq0V,YAAYv2V,GAAGg8V,UACpB95V,KAAKq0V,YAAYv2V,GAAGg8V,SAAU,EAC9B95V,KAAKq0V,YAAYv2V,GAAGiW,QAI5B/T,KAAKq0V,YAAYt2V,OAAS,GAG9Bi2V,EAAct1V,UAAUg7V,eAAiB,WACrC3F,EAAQQ,kBAAkBwF,WAG9B/F,EAAct1V,UAAUk7V,iBAAmB,WACvC7F,EAAQQ,kBAAkBl4T,UAG9B23T,EAAct1V,UAAUg0R,UAAY,WAChC,GAAI1yR,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,GAC1B,QAAU+b,IAANzW,EAGJ,GAAkB,QAAdgsF,EAAMx4E,KACN5W,KAAKw0V,UAAUP,KAAKjyV,MAAQoB,OAC3B,GAAkB,OAAdgsF,EAAMx4E,KACX5W,KAAK2kS,YAAY,MAAMvhS,QACpB,GAAkB,gBAAdgsF,EAAMx4E,KAAwB,CACrC5W,KAAKkhB,WAAWgzU,aAAe9wV,EAC/B,IAAK,IAAIe,EAAI,EAAGA,EAAInE,KAAKq0V,YAAYt2V,SAAUoG,EAC3CnE,KAAKq0V,YAAYlwV,GAAG+vV,aAAalyV,MAAQoB,IAMzD,GAAIpD,KAAKo8R,QACL,IAASt+R,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAEvB,UADNkC,KAAKo8R,QAAQt+R,GACf8Y,MAAoB5W,KAAKo0V,cAChCp0V,KAAK4yR,cAAc90R,EAAGkC,KAAKo0V,gBAM3CJ,EAAct1V,UAAUgiS,SAAW,SAAS/rR,GACpC3U,KAAKo0V,eACQ,QAATz/U,EACA3U,KAAKu5V,WAAWv5V,KAAKo0V,cACL,QAATz/U,GACP3U,KAAKw5V,kBAKjBxF,EAAct1V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACvD,GAAY,OAAR4U,EACA5W,KAAK20V,UAAU3yV,QACZ,GAAY,QAAR4U,EACP5W,KAAKw0V,UAAUP,KAAKjyV,MAAQA,OACzB,GAAY,gBAAR4U,EACP,IAAK,IAAIzS,EAAI,EAAGA,EAAInE,KAAKq0V,YAAYt2V,SAAUoG,EAC3CnE,KAAKq0V,YAAYlwV,GAAG+vV,aAAalyV,MAAQA,GAKrDgyV,EAAct1V,UAAU66V,WAAa,SAAS//T,GAC1C,IAAIgkP,EAAOx9Q,KAIPw0V,EAHUT,EAAQQ,kBAGEyF,qBA2BxB,OA1BAh6V,KAAKs0V,iBAAmBE,EACxBA,EAAUE,UAAY10V,KACtBw0V,EAAUh7T,OAASA,EACnBg7T,EAAUlzR,KAAOthE,KAAKkhB,WAAWogD,KACjCkzR,EAAUN,aAAalyV,MAAQhC,KAAKkhB,WAAWgzU,aAC/Cl0V,KAAKq0V,YAAY9wV,KAAKixV,GACtBA,EAAUjsD,QAAQvoS,KAAKw0V,WAE7Bx0V,KAAKq0V,YAAY9wV,KAAKixV,GAEtBx0V,KAAK+gE,QAAQ,SAEPyzR,EAAU0D,QAAU,WAEhB16E,EAAKz8M,QAAQ,SAEb,IAAI9hE,EAAQu+Q,EAAK62E,YAAYzzV,QAAQ4zV,IACvB,GAAVv1V,GACAu+Q,EAAK62E,YAAY9hU,OAAOtzB,EAAO,IAIlCu1V,EAAUsF,UACXtF,EAAUsF,SAAU,EACpBtF,EAAUp0U,SAEPo0U,GAGXR,EAAct1V,UAAUi2V,UAAY,SAAS78U,GACzC,IAAI0lQ,EAAOx9Q,KAGPA,KAAKi6V,WACLj6V,KAAKi6V,SAASC,QACdl6V,KAAKi6V,SAAW,MAGpBj6V,KAAKo0V,aAAe,KACpBp0V,KAAKm0V,gBAAiB,EAEjBr8U,IAIL9X,KAAKi6V,SAAWlG,EAAQY,UAAU78U,GAKlC,SAAe0hB,GACXx5B,KAAKwkS,SAAWjX,EAAUkB,sBAC1BjR,EAAK42E,aAAe56T,EACpBgkP,EAAK22E,gBAAiB,EAElB32E,EAAK/lM,OAAS+lM,EAAK/lM,MAAMm1F,SAAWooH,OAAOgG,gBAC3Cxd,EAAKmzC,aATb3wT,KAAKm0V,gBAAiB,EACtBn0V,KAAKwkS,SAAW,SAcpBwvD,EAAct1V,UAAUylS,oBAAsB4vD,EAAQ5vD,oBAEtD6vD,EAAct1V,UAAU4kT,YAAc,WAClC,MAAO,CACH,CAAC,eAAgB,UAC1B,CAAC,MAAM,UACE,CAAC,OAAQ/1B,EAAUwC,QACnB,CAAC,OAAQxC,EAAUwC,UAI3BikE,EAAct1V,UAAUglT,aAAe,WACnC,MAAO,CAAC,CAAC,SAAU,eAAgB,CAAC,QAASn2B,EAAUuC,OAAQ,CAAC,QAASvC,EAAUuC,SAGvFkkE,EAAct1V,UAAUg2S,WAAa,SAAS/mO,GACtC3tE,KAAK65V,cACLhgH,IAAIq1E,gBAAgBlvT,KAAK65V,cAE7B,IAAI/hV,EAAM+hO,IAAIC,gBAAgBnsK,GAC9B3tE,KAAKkhB,WAAW2qC,IAAM/zC,EACtB9X,KAAK20V,UAAU78U,GACf9X,KAAK65V,aAAe/hV,GAGxBk8U,EAAc/hU,MAAQ,SACtB+hU,EAAc/yV,KAAO,cACrBssR,EAAUkE,iBAAiB,eAAgBuiE,GAsB3CY,EAAmBl2V,UAAUygS,QAAU,SAAS1nN,GACxCA,EAAMm1F,SAAWooH,OAAOgG,gBACxBh7R,KAAK2wT,WAIbikC,EAAmBl2V,UAAUiyT,QAAU,WACT,MAAtB3wT,KAAK60V,eAA0B70V,KAAKu/T,uBACpCv/T,KAAKo/T,cAIbw1B,EAAmBl2V,UAAUggU,OAAS,WAClC1+T,KAAKw0V,UAAUP,KAAKjyV,MAAQ,GAGhC4yV,EAAmBl2V,UAAU+6V,QAAU,WACnCz5V,KAAKw0V,UAAUP,KAAKjyV,MAAQ,GAGhC4yV,EAAmBl2V,UAAUi7V,UAAY,WACrC35V,KAAKw0V,UAAUP,KAAKjyV,MAAQhC,KAAKkhB,WAAW+yU,MAGhDW,EAAmBl2V,UAAU28R,UAAY,WAMrC,GALAr7R,KAAKw0V,UAAUP,KAAKjyV,MAAQ,EACxBhC,KAAKm6V,mBACLn6V,KAAKm6V,iBAAiB7B,WAAWt4V,KAAKw0V,WACtCx0V,KAAKm6V,iBAAmB,MAExBn6V,KAAK60V,cAAe,CACpB,IAAIh1B,EAAS7/T,KAAK60V,cAAc/0B,YAC5BD,EAAO9hU,QACP8hU,EAAO,GAAG9rT,SAKtB6gV,EAAmBl2V,UAAU0gU,WAAa,WACtC,GAAK5kQ,UAAU6kQ,aAAf,CAOAr/T,KAAKu/T,uBAAwB,EAG7B/kQ,UAAU6kQ,aACLC,aAAa,CAAEE,OAAO,EAAMC,OAAO,IACnCn9T,KAAKtC,KAAK0/T,YAAYtkQ,KAAKp7D,OAFhC,OAMA,SAAsB2b,GAClB+B,QAAQ6oL,IAAI,iBAAkB5qL,GAC9B6hQ,EAAKq3E,eAAgB,EACrBr3E,EAAKgnB,SAAW,SAJpB,IAAIhnB,EAAOx9Q,UAdP0d,QAAQ6oL,IACJ,qGAqBZquJ,EAAmBl2V,UAAUghU,YAAc,SAASK,GAChD//T,KAAK60V,cAAgB90B,EAIjB//T,KAAKm6V,kBACLn6V,KAAKm6V,iBAAiB7B,WAAWt4V,KAAKw0V,WAE1C,IAAI5qT,EAAUmqT,EAAQQ,kBACtBv0V,KAAKm6V,iBAAmBvwT,EAAQwwT,wBAC5Br6B,GAEJ//T,KAAKm6V,iBAAiBzF,UAAY10V,KAClCA,KAAKm6V,iBAAiB5xD,QAAQvoS,KAAKw0V,WACnCx0V,KAAKwkS,SAAW,SAGpBowD,EAAmBl2V,UAAUg0R,UAAY,WAKrC,GAJ0B,MAAtB1yR,KAAK60V,eAA0B70V,KAAKu/T,uBACpCv/T,KAAKo/T,aAGLp/T,KAAKm8R,OACL,IAAK,IAAIr+R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,GAGc,QAAdgsF,EAAMx4E,OACN5W,KAAKw0V,UAAUP,KAAKjyV,MAAQhC,KAAKkhB,WAAW+yU,KAAO7wV,MAMnEwxV,EAAmBl2V,UAAUgiS,SAAW,SAAS/rR,GAChC,QAATA,EACA3U,KAAKw0V,UAAUP,KAAKjyV,MAAQhC,KAAKkhB,WAAW+yU,KAC5B,QAATt/U,IACP3U,KAAKw0V,UAAUP,KAAKjyV,MAAQ,IAIpC4yV,EAAmBl2V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAChD,QAAR4U,IACA5W,KAAKw0V,UAAUP,KAAKjyV,MAAQA,IAKpC4yV,EAAmBl2V,UAAUylS,oBACzB4vD,EAAQ5vD,oBAEZywD,EAAmBl2V,UAAU4kT,YAAc,WACvC,MAAO,CACH,CAAC,eAAgB,UACjB,CAAC,OAAQ/1B,EAAUwC,QACnB,CAAC,OAAQxC,EAAUwC,UAI3B6kE,EAAmB3iU,MAAQ,cAC3B2iU,EAAmB3zV,KAAO,mBAC1BssR,EAAUkE,iBAAiB,qBAAsBmjE,GA6BjDE,EAAgBp2V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACzDhC,KAAKw0V,UAAU59U,GAAQ5U,GAG3B8yV,EAAgBp2V,UAAUg0R,UAAY,WAClC,GAAI1yR,KAAK4lS,kBAAkB,GAAI,CAE3B,IAAIy0D,EAAer6V,KAAKw0V,UAAU8F,kBAC7Bt6V,KAAKo1V,WAAap1V,KAAKo1V,UAAUr3V,QAAUs8V,IAC5Cr6V,KAAKo1V,UAAY,IAAIp5R,WAAWq+R,IAEpCr6V,KAAKw0V,UAAU+F,qBAAqBv6V,KAAKo1V,WACzCp1V,KAAK4yR,cAAc,EAAG5yR,KAAKo1V,WAI/B,GAAIp1V,KAAK4lS,kBAAkB,GAAI,CAEvBy0D,EAAer6V,KAAKw0V,UAAU8F,kBAC7Bt6V,KAAKq1V,WAAar1V,KAAKq1V,UAAUt3V,QAAUs8V,IAC5Cr6V,KAAKq1V,UAAY,IAAIr5R,WAAWq+R,IAEpCr6V,KAAKw0V,UAAUgG,sBAAsBx6V,KAAKq1V,WAC1Cr1V,KAAK4yR,cAAc,EAAG5yR,KAAKq1V,WAI/B,IAAK,IAAIv3V,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IACApD,KAAKw0V,UAAUplQ,EAAMx4E,MAAM5U,MAAQoB,MAQ/C0xV,EAAgBp2V,UAAU4kT,YAAc,WACpC,MAAO,CACH,CAAC,cAAe,UAChB,CAAC,cAAe,UAChB,CAAC,wBAAyB,YAIlCwxC,EAAgBp2V,UAAUglT,aAAe,WACrC,MAAO,CAAC,CAAC,QAAS,SAAU,CAAC,UAAW,WAG5CoxC,EAAgB7iU,MAAQ,WACxB6iU,EAAgB7zV,KAAO,iBACvBssR,EAAUkE,iBAAiB,iBAAkBqjE,GAgB7CQ,EAAY52V,UAAUg0R,UAAY,WAC9B,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAIjC,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACpBsF,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IACApD,KAAKw0V,UAAUplQ,EAAMx4E,MAAM5U,MAAQoB,KAK/C2wV,EAAQgF,uBAAuBzD,GAE/BA,EAAYrjU,MAAQ,OACpBqjU,EAAYr0V,KAAO,aACnBssR,EAAUkE,iBAAiB,aAAc6jE,GAczCvB,EAAQgF,uBAAuBxD,GAE/BA,EAAiB72V,UAAU+7V,SAAW,WAC9Bz6V,KAAK65V,cACLhgH,IAAIq1E,gBAAgBlvT,KAAK65V,eAIjCtE,EAAiB72V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC9C,eAAR4U,EACA5W,KAAK06V,YAAY14V,GACF,aAAR4U,IACP5W,KAAKw0V,UAAUv/R,UAAYjzD,IAInCuzV,EAAiB72V,UAAUg2S,WAAa,SAAS/mO,GACzC3tE,KAAK65V,cACLhgH,IAAIq1E,gBAAgBlvT,KAAK65V,cAE7B75V,KAAK65V,aAAehgH,IAAIC,gBAAgBnsK,GACxC3tE,KAAKkhB,WAAWs0U,YAAcx1V,KAAK65V,aACnC75V,KAAK06V,YAAY16V,KAAK65V,eAG1BtE,EAAiB72V,UAAUg8V,YAAc,SAAS5iV,GAC9C,IAAI0lQ,EAAOx9Q,KAGPA,KAAKi6V,WACLj6V,KAAKi6V,SAASC,QACdl6V,KAAKi6V,SAAW,MAGpBj6V,KAAK26V,gBAAkB,KACvB36V,KAAK46V,kBAAmB,EAEnB9iV,IAKL9X,KAAKi6V,SAAWlG,EAAQY,UAAU78U,GAIlC,SAAe0hB,GACXgkP,EAAKm9E,gBAAkBnhU,EACvBgkP,EAAKg3E,UAAUh7T,OAASA,EACxB9b,QAAQ6oL,IAAI,sBACZi3E,EAAKo9E,kBAAmB,KAP5B56V,KAAK46V,kBAAmB,IAW5BrF,EAAiBtjU,MAAQ,YACzBsjU,EAAiBt0V,KAAO,yCACxBssR,EAAUkE,iBAAiB,kBAAmB8jE,GAkB9CxB,EAAQgF,uBAAuBrD,GAE/BA,EAA0Bh3V,UAAUg0R,UAAY,WAC5C,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAGjC,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IACApD,KAAKw0V,UAAUplQ,EAAMx4E,MAAM5U,MAAQoB,MAK/CsyV,EAA0Bh3V,UAAU4kT,YAAc,WAC9C,MAAO,CACH,CAAC,YAAa,UACd,CAAC,OAAQ,UACT,CAAC,QAAS,UACV,CAAC,YAAa,UACd,CAAC,SAAU,UACX,CAAC,UAAW,YAIpBoyC,EAA0BzjU,MAAQ,qBAClCyjU,EAA0Bz0V,KAAO,sBACjCssR,EAAUkE,iBACN,2BACAikE,GAaJM,EAAkBt3V,UAAUg0R,UAAY,WACpC,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAAjC,CAGA,IAAIqF,EAAIpD,KAAK2yR,aAAa,QAChB94Q,IAANzW,IAGJpD,KAAKw0V,UAAUqG,MAAQz3V,KAG3B4yV,EAAkBt3V,UAAUo8V,aAAe,SAASr2D,GAChDzkS,KAAKw0V,UAAUqG,MAAQp2D,GAG3BsvD,EAAQgF,uBAAuB/C,GAiC/BE,EAAax3V,UAAUi6V,wBAA0B,SAASn5D,GACtD,OAAY,GAARA,EACOx/R,KAAKq2V,WACG,GAAR72D,EACAx/R,KAAKs2V,gBADT,GAKXJ,EAAax3V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC1C,SAAR4U,EACA5W,KAAKq2V,WAAWpC,KAAKjyV,MAAQA,EACd,SAAR4U,IACP5W,KAAKs2V,WAAWrC,KAAKjyV,MAAQA,IAIrCk0V,EAAax3V,UAAUg0R,UAAY,WAC/B,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAIjC,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GAExB,GAAkB,MAAdsxF,EAAMrgC,MAA8B,SAAdqgC,EAAMjqF,KAAhC,CAIA,IAAI/B,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IAIK,GAALtF,EACAkC,KAAKq2V,WAAWpC,KAAKjyV,MAAQoB,EACjB,GAALtF,IACPkC,KAAKs2V,WAAWrC,KAAKjyV,MAAQoB,OAKzC2wV,EAAQgF,uBAAuB7C,GAE/BA,EAAajkU,MAAQ,QACrBikU,EAAaj1V,KAAO,cACpBssR,EAAUkE,iBAAiB,cAAeykE,GAmB1CK,EAAY73V,UAAUg0R,UAAY,WAC9B,IACItwN,EADe2xR,EAAQQ,kBACJz2L,YAEnBm2L,EADOj0V,KAAKw0V,UACAP,KACZ8G,EAAe/6V,KAAK2yR,aAAa,GAEjCwL,EAAIn+R,KAAKylS,mBAAmB,KAC5B6nD,EAAIttV,KAAKylS,mBAAmB,KAC5B9H,EAAI39R,KAAKylS,mBAAmB,KAC5B20B,EAAIp6T,KAAKylS,mBAAmB,MAE3BzlS,KAAKuwV,MAAQwK,GACd9G,EAAK+G,sBAAsB,GAC3B/G,EAAKgH,eAAe,EAAG74R,GACvB6xR,EAAKiH,wBAAwB,EAAG94R,EAAM+7N,GACtC81D,EAAKiH,wBAAwBv9D,EAAGv7N,EAAM+7N,EAAImvD,IACnCttV,KAAKuwV,OAASwK,IACrB9G,EAAK+G,sBAAsB,GAC3B/G,EAAKgH,eAAehH,EAAKjyV,MAAOogE,GAChC6xR,EAAKiH,wBAAwB,EAAG94R,EAAMg4P,IAG1Cp6T,KAAKuwV,KAAOwK,GAGhBxE,EAAY73V,UAAU4kT,YAAc,WAChC,MAAO,CACH,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,UACN,CAAC,IAAK,YAIdywC,EAAQgF,uBAAuBxC,GAE/BA,EAAYtkU,MAAQ,OACpBskU,EAAYt1V,KAAO,iBACnBssR,EAAUkE,iBAAiB,aAAc8kE,GAezCxC,EAAQgF,uBAAuBvC,GAE/BA,EAAa93V,UAAUg0R,UAAY,WAC/B,IAAItvR,EAAIpD,KAAK2yR,aAAa,QAChB94Q,IAANzW,IACApD,KAAKw0V,UAAUiC,UAAUz0V,MAAQoB,IAIzCozV,EAAavkU,MAAQ,QACrBukU,EAAav1V,KAAO,cACpBssR,EAAUkE,iBAAiB,cAAe+kE,GA8B1CG,EAAoBj4V,UAAUg0R,UAAY,WACtC,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAIjC,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IACApD,KAAKw0V,UAAUplQ,EAAMx4E,MAAM5U,MAAQoB,MAK/CuzV,EAAoBj4V,UAAU4kT,YAAc,WACxC,MAAO,CAAC,CAAC,YAAa,UAAW,CAAC,SAAU,UAAW,CAAC,IAAK,YAGjEywC,EAAQgF,uBAAuBpC,GAE/BA,EAAoB1kU,MAAQ,eAC5B0kU,EAAoB11V,KAAO,eAC3BssR,EAAUkE,iBAAiB,qBAAsBklE,GAoBjDI,EAAsBr4V,UAAUiyT,QAAU,WACtC,IAAK3wT,KAAKw0V,UAAUsF,QAAS,CACzB95V,KAAKw0V,UAAUsF,SAAU,EACzB,IACI95V,KAAKw0V,UAAUp0U,QACjB,MAAOzE,OAIjBo7U,EAAsBr4V,UAAUggU,OAAS,WACjC1+T,KAAKw0V,UAAUsF,UACf95V,KAAKw0V,UAAUsF,SAAU,EACzB95V,KAAKw0V,UAAUzgV,SAIvBgjV,EAAsBr4V,UAAU+6V,QAAU,WACtCz5V,KAAK0+T,UAGTq4B,EAAsBr4V,UAAUi7V,UAAY,WACxC35V,KAAK2wT,WAGTomC,EAAsBr4V,UAAUg0R,UAAY,WACxC,GAAK1yR,KAAKm8R,QAAWn8R,KAAKm8R,OAAOp+R,OAIjC,IAAK,IAAID,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIsxF,EAAQpvF,KAAKm8R,OAAOr+R,GACxB,GAAkB,MAAdsxF,EAAMrgC,KAAV,CAGA,IAAI3rD,EAAIpD,KAAK2yR,aAAa70R,QAChB+b,IAANzW,IACApD,KAAKw0V,UAAUplQ,EAAMx4E,MAAM5U,MAAQoB,MAK/C2zV,EAAsBr4V,UAAU4kT,YAAc,WAC1C,MAAO,CACH,CAAC,YAAa,UACd,CAAC,SAAU,UACX,CAAC,OAAQ,YAIjBywC,EAAQgF,uBAAuBhC,GAE/BA,EAAsB9kU,MAAQ,aAC9B8kU,EAAsB91V,KAAO,aAC7BssR,EAAUkE,iBAAiB,mBAAoBslE,GAkB/CE,EAAqBv4V,UAAUg0R,UAAY,WACvC1yR,KAAKo3V,aAAep3V,KAAK2yR,aAAa,GACtC,IAAIvvR,EAAIpD,KAAK2yR,aAAa,QAChB94Q,IAANzW,IACApD,KAAKkhB,WAAWi2U,KAAO/zV,GAE3BpD,KAAK6+R,gBAAe,GAAM,IAG9Bo4D,EAAqBv4V,UAAU66R,iBAAmB,SAAStgJ,GACvD,GAAKj5I,KAAKo3V,aAAV,CAIA,IAAI59T,EAASx5B,KAAKo3V,aAGdz/R,EAAQn+B,EAAOz7B,OAASiC,KAAKyM,KAAK,GAClCyqD,EAAIl3D,KAAKyM,KAAK,GAElBwsI,EAAI4+J,UAAY,QAChB5+J,EAAI2gK,SAAS,EAAG,EAAG55S,KAAKyM,KAAK,GAAIzM,KAAKyM,KAAK,IAC3CwsI,EAAI6+J,YAAc,QAClB7+J,EAAI09J,YACJ,IAAI16R,EAAI,EAER,GAAIjc,KAAKkhB,WAAWg2U,WAAY,CAC5Bj+M,EAAI8mE,OAAO9jM,EAAGi7C,GACd,IAAK,IAAIp5D,EAAI,EAAGA,EAAI07B,EAAOz7B,OAAQD,GAAK65D,EACpCshF,EAAIu+J,OAAOv7R,EAAGi7C,EAAK19B,EAAW,EAAJ17B,GAAS,IAAOo5D,GAC1Cj7C,SAGJ,IAASne,EAAI,EAAGA,EAAI07B,EAAOz7B,OAAQD,GAAK65D,EACpCshF,EAAI8mE,OAAO9jM,EAAI,GAAKi7C,GACpB+hF,EAAIu+J,OAAOv7R,EAAI,GAAKi7C,EAAK19B,EAAW,EAAJ17B,GAAS,IAAOo5D,GAChDj7C,IAKR,GAFAg9H,EAAI6hK,SAEA96S,KAAKkhB,WAAWi2U,MAAQ,EAAG,CAC3B,IACIgE,EADapH,EAAQQ,kBAAkB6G,WAChB5hU,EAAOz7B,QAC9Bke,EAAUjc,KAAKkhB,WAAWi2U,KAAOgE,EAA5B,EAAwCxjS,IACxC33D,KAAKyM,KAAK,KACfwP,EAAIjc,KAAKyM,KAAK,GAAK,GAEvBwsI,EAAI6+J,YAAc,MAClB7+J,EAAI09J,YACJ19J,EAAI8mE,OAAO9jM,EAAGi7C,GACd+hF,EAAIu+J,OAAOv7R,EAAG,GACdg9H,EAAI6hK,YAIZm8C,EAAqBhlU,MAAQ,gBAC7BglU,EAAqBh2V,KAAO,sBAC5BssR,EAAUkE,iBAAiB,sBAAuBwlE,GAalDI,EAAkB34V,UAAUg0R,UAAY,WAEpC,GADA1yR,KAAKq7V,OAASr7V,KAAK2yR,aAAa,GAC3B3yR,KAAKq7V,OAAV,CAIA,IAAI/D,EAAOt3V,KAAKkhB,WAAWo2U,UAEjBz9U,KADNzW,EAAIpD,KAAK2yR,aAAa,MAEtB2kE,EAAOl0V,GAGX,IAEInE,EAAaq4V,GAFAvD,EAAQQ,kBAAkB6G,WAChBp7V,KAAKq7V,OAAOt9V,QAC3B,EACRqF,EAAI,EAIR,GAHInE,EAAQ,IACRmE,EAAIpD,KAAKq7V,OAAO,IAEhBp8V,GAASe,KAAKq7V,OAAOt9V,OACrBqF,EAAIpD,KAAKq7V,OAAOr7V,KAAKq7V,OAAOt9V,OAAS,OAClC,CACH,IAAI40C,EAAc,EAAR1zC,EAGNwD,EAAIxD,EAAQ0zC,EAChBvvC,EAHSpD,KAAKq7V,OAAO1oT,IAGX,EAAIlwC,GAFLzC,KAAKq7V,OAAO1oT,EAAM,GAEHlwC,EAG5BzC,KAAK4yR,cAAc,EAAIxvR,EAAI,IAAOpD,KAAKkhB,WAAW63S,aAGtDs+B,EAAkB34V,UAAU4kT,YAAc,WACtC,MAAO,CAAC,CAAC,OAAQ,YAGrB+zC,EAAkBplU,MAAQ,SAC1BolU,EAAkBp2V,KAAO,uCACzBssR,EAAUkE,iBAAiB,eAAgB4lE,GAoC3CE,EAAc74V,UAAUygS,QAAU,SAAS1nN,GACnCA,EAAMm1F,QAAUooH,OAAOgG,iBACvBh7R,KAAKw0V,UAAUoD,eAAiB53V,KAAK2zB,YAI7C4jU,EAAc,SAAW,CAAEv6K,OAAQ,OAAQ73K,KAAM,QAEjDoyV,EAAc74V,UAAUiyT,QAAU,WAC9B3wT,KAAKw0V,UAAUoD,eAAiB53V,KAAK2zB,WAGzC4jU,EAAc74V,UAAUggU,OAAS,WAC7B1+T,KAAKw0V,UAAUoD,eAAiBL,EAAcI,kBAGlDJ,EAAc74V,UAAU+6V,QAAU,WAC9Bz5V,KAAKw0V,UAAUoD,eAAiBL,EAAcI,kBAGlDJ,EAAc74V,UAAUi7V,UAAY,WAChC35V,KAAKw0V,UAAUoD,eAAiB53V,KAAK2zB,WAGzC4jU,EAAc74V,UAAUg0R,UAAY,aAIpC6kE,EAAc74V,UAAU28R,UAAY,WAChCr7R,KAAKw0V,UAAUoD,eAAiBL,EAAcI,kBAGlDJ,EAAc74V,UAAUg5V,YAAc,WAClC,IACI,IAAIplL,EAAO,IAAIJ,SAAS,aAAclyK,KAAKkhB,WAAWgiB,MACtDljC,KAAKs7V,QAAU,IAAIhpL,EAAKtyK,KAAKkhB,YAC7BlhB,KAAKu7V,UAAYv7V,KAAKkhB,WAAWgiB,KACjCljC,KAAK2zB,UAAY3zB,KAAKs7V,QAAQ1D,eAChC,MAAOj8U,GACL+B,QAAQ9Z,MAAM,+BAAgC+X,GAC9C3b,KAAK2zB,UAAY4jU,EAAcI,iBAC/B33V,KAAKw0V,UAAUoD,eAAiB53V,KAAK2zB,YAI7C4jU,EAAc74V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC3C,QAAR4U,IACA5W,KAAKkhB,WAAWgiB,KAAOlhC,EACvBhC,KAAK03V,cACD13V,KAAKy3E,OAASz3E,KAAKy3E,MAAMm1F,QAAUooH,OAAOgG,iBAC1Ch7R,KAAKw0V,UAAUoD,eAAiB53V,KAAK2zB,aAKjD4jU,EAAcC,iBAAmB,WAC7Bx3V,KAAK43V,eAAiB,SAAS4D,GAQ3B,IANA,IAAIC,EAAcD,EAAqBC,YAGnCC,EAAeF,EAAqBE,aAIhC7lB,EAAU,EACdA,EAAU6lB,EAAaC,iBACvB9lB,IAMA,IAJA,IAAI+lB,EAAYH,EAAYI,eAAehmB,GACvCimB,EAAaJ,EAAaG,eAAehmB,GAGpCkmB,EAAS,EAAGA,EAASN,EAAY19V,OAAQg+V,IAE9CD,EAAWC,GAAUH,EAAUG,KAM/ChI,EAAQgF,uBAAuBxB,GAE/BA,EAActlU,MAAQ,SACtBslU,EAAct2V,KAAO,yBACrBssR,EAAUkE,iBAAiB,eAAgB8lE,GAO3CM,EAAmB5lU,MAAQ,cAC3B4lU,EAAmB52V,KAAO,eAC1BssR,EAAUkE,iBAAiB,oBAAqBomE,GA96CpD,CA+6CG73V,MAGH,SAAUihC,GACN,IAAIssP,EAAYtsP,EAAOssP,UAEvB,SAASyuE,IACLh8V,KAAKyM,KAAO,CAAC,GAAI,IACjBzM,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK0hS,UAAU,WAAYnU,EAAUuC,OACrC9vR,KAAK+gS,SAAS,KAAM,GACpB/gS,KAAK0hS,UAAU,MAAO,GACtB1hS,KAAKkhB,WAAa,CACdpJ,IAAK,GACLmkV,KAAM,SACNC,mBAAmB,GAEvBl8V,KAAKm8V,IAAM,KACXn8V,KAAKo8V,gBAAkB,GACvBp8V,KAAKq8V,oBAAsB,GAuI/B,SAASC,IAELt8V,KAAKu8V,YAAcv8V,KAAK0nS,UACpB,OACA,OACA,SACA1nS,KAAKw8V,QAAQphS,KAAKp7D,OAEtBA,KAAK0nS,UACD,SACA,YACA,KACA1nS,KAAKy8V,cAAcrhS,KAAKp7D,OAG5BA,KAAK+gS,SAAS,OAAQxT,EAAUwC,QAChC/vR,KAAK0hS,UAAU,WAAYnU,EAAUuC,OACrC9vR,KAAK+gS,SAAS,KAAM,GACpB/gS,KAAK0hS,UAAU,MAAO,GACtB1hS,KAAKkhB,WAAa,CACdpJ,IAAK,mBACLmkV,KAAM,SACNC,mBAAmB,GAGvBl8V,KAAK08V,QAAU,KACf18V,KAAKy8V,gBACLz8V,KAAKo8V,gBAAkB,GACvBp8V,KAAKq8V,oBAAsB,GAEP,oBAAhBM,aACTj/U,QAAQC,KAAK,8GAnKZq+U,EAAY/pU,MAAQ,YACpB+pU,EAAY/6V,KAAO,gCAEnB+6V,EAAYt9V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GACzC,OAAR4U,GACA5W,KAAKy8V,iBAIbT,EAAYt9V,UAAUg0R,UAAY,WAK9B,IAJK1yR,KAAKm8V,KAAOn8V,KAAKkhB,WAAWpJ,KAC7B9X,KAAKy8V,gBAGJz8V,KAAKm8V,KAAOn8V,KAAKm8V,IAAIS,YAAcC,UAAUC,KAAlD,CAOA,IAHA,IAAIb,EAAOj8V,KAAKkhB,WAAW+6U,KACvBc,EAAe/8V,KAAKkhB,WAAWg7U,kBAE1Bp+V,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIqB,EAAOa,KAAK2yR,aAAa70R,GAC7B,GAAY,MAARqB,EAAJ,CAGA,IAAIk5E,EACJ,IACIA,EAAO5xC,KAAK0xH,UAAU,CAClBhzJ,KAAM,EACN82V,KAAMA,EACNpmB,QAAS/3U,EACTqB,KAAMA,IAEZ,MAAOwc,GACL,SAEAohV,GAAgB/8V,KAAKo8V,gBAAgBt+V,IAAMu6E,IAI/Cr4E,KAAKo8V,gBAAgBt+V,GAAKu6E,EAC1Br4E,KAAKm8V,IAAIt4D,KAAKxrN,KAGlB,IAASv6E,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EACvCkC,KAAK4yR,cAAc90R,EAAGkC,KAAKq8V,oBAAoBv+V,IAG9B,QAAjBkC,KAAKwkS,WACLxkS,KAAKwkS,SAAW,UAIxBw3D,EAAYt9V,UAAU+9V,cAAgB,WAClC,IAAIj/E,EAAOx9Q,KACP8X,EAAM9X,KAAKkhB,WAAWpJ,IACF,MAApBA,EAAIqxB,OAAO,EAAG,KACdrxB,EAAM,QAAUA,GAEpB9X,KAAKm8V,IAAM,IAAIU,UAAU/kV,GACzB9X,KAAKm8V,IAAIa,OAAS,WACdt/U,QAAQ6oL,IAAI,SACZi3E,EAAKgnB,SAAW,QAEpBxkS,KAAKm8V,IAAIlE,UAAY,SAASt3V,GAC1B68Q,EAAKgnB,SAAW,OAChB,IAAIrlS,EAAOsnC,KAAKC,MAAM/lC,EAAExB,MACxB,IAAIA,EAAK88V,MAAQ98V,EAAK88V,MAAQz+E,EAAKt8P,WAAW+6U,KAG9C,GAAiB,GAAb98V,EAAKgG,KACL,GACIhG,EAAKA,KAAK0vV,cACVthE,EAAUpuR,EAAKA,KAAK0vV,cACtB,CACE,IAAIjjV,EAAM,KACV,IACIA,EAAM,IAAI2hR,EAAUpuR,EAAKA,KAAK0vV,cAAc1vV,EAAKA,MACjDq+Q,EAAKwoB,YAAY,EAAGp6R,GACtB,MAAO+P,GACL,aAGJ6hQ,EAAKwoB,YAAY,EAAG7mS,EAAKA,WAG7Bq+Q,EAAK6+E,oBAAoBl9V,EAAK02U,SAAW,GAAK12U,EAAKA,MAG3Da,KAAKm8V,IAAIp4D,QAAU,SAASpjS,GACxB+c,QAAQ6oL,IAAI,gCACZi3E,EAAKgnB,SAAW,QAEpBxkS,KAAKm8V,IAAIn2C,QAAU,SAASrlT,GACxB+c,QAAQ6oL,IAAI,qBACZi3E,EAAKgnB,SAAW,SAIxBw3D,EAAYt9V,UAAUmlS,KAAO,SAAS1kS,GAC7Ba,KAAKm8V,KAAOn8V,KAAKm8V,IAAIS,YAAcC,UAAUC,MAGlD98V,KAAKm8V,IAAIt4D,KAAKp9P,KAAK0xH,UAAU,CAAEhzJ,KAAM,EAAG4jK,IAAK5pK,MAGjD68V,EAAYt9V,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GACzC3gS,KAAKm8V,KAAOn8V,KAAKm8V,IAAIS,YAAcC,UAAUC,MAGlD98V,KAAKm8V,IAAIt4D,KAAK,CACV1+R,KAAM,EACN82V,KAAMj8V,KAAKkhB,WAAW+6U,KACtBnmU,OAAQA,EACR32B,KAAMwhS,KAIdq7D,EAAYt9V,UAAU4kT,YAAc,WAChC,MAAO,CAAC,CAAC,KAAM,KAGnB04C,EAAYt9V,UAAUglT,aAAe,WACjC,MAAO,CAAC,CAAC,MAAO,KAGpBn2B,EAAUkE,iBAAiB,oBAAqBuqE,GAuChDM,EAAcrqU,MAAQ,cACtBqqU,EAAcr7V,KAAO,gDAErBq7V,EAAc59V,UAAUwlS,kBAAoB,SAASttR,EAAM5U,GAC3C,QAAR4U,IACA5W,KAAKu8V,YAAYv6V,MAAQA,GAE7BhC,KAAKy8V,iBAGTH,EAAc59V,UAAU89V,QAAU,SAASS,GACvCj9V,KAAKkhB,WAAW+6U,KAAOgB,EACvBj9V,KAAKu8V,YAAYv6V,MAAQi7V,EACzBj9V,KAAKy8V,iBAITH,EAAc59V,UAAU66R,iBAAmB,WACvC,IAAK,IAAIz7R,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CAC9BkC,KAAKm8R,OAAOr+R,GAClB+E,MAAQ,MAAQ/E,EAEzB,IAASA,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EAAG,CAC/BkC,KAAKo8R,QAAQt+R,GACnB+E,MAAQ,OAAS/E,IAI9Bw+V,EAAc59V,UAAUg0R,UAAY,WAChC,GAAK1yR,KAAK08V,SAAY18V,KAAK08V,QAAQQ,aAAnC,CAMA,IAFA,IAAIhB,EAAoBl8V,KAAKkhB,WAAWg7U,kBAE/Bp+V,EAAI,EAAGA,EAAIkC,KAAKm8R,OAAOp+R,SAAUD,EAAG,CACzC,IAAIqB,EAAOa,KAAK2yR,aAAa70R,GAClCq/V,EAAYn9V,KAAKo8V,gBAAgBt+V,GAC5B,GAAY,MAARqB,EAAc,CACd,GAAI+8V,EAChB,CACC,IAAIkB,GAAW,EACf,GAAIj+V,GAAQA,EAAKpB,QAAUo/V,GAAaA,EAAUp/V,QAAUoB,EAAKpB,QAAUoB,EAAKc,cAAgBH,QAE/F,IAAI,IAAIqE,EAAI,EAAGA,EAAIhF,EAAKpB,SAAUoG,EACjC,GAAIg5V,EAAUh5V,IAAMhF,EAAKgF,GACzB,CACCi5V,GAAW,EACX,YAGKp9V,KAAKo8V,gBAAgBt+V,IAAMqB,IAClCi+V,GAAW,GACZ,GAAGA,EACD,SAGH,GADYp9V,KAAK08V,QAAQW,YAAY,CAAEl4V,KAAM,EAAG0wU,QAAS/3U,EAAGqB,KAAMA,IAC9DA,EAAKpB,QAAUoB,EAAKc,cAAgBH,OAEvC,GAAIE,KAAKo8V,gBAAgBt+V,GACzB,CACCkC,KAAKo8V,gBAAgBt+V,GAAGC,OAASoB,EAAKpB,OACtC,IAAQoG,EAAI,EAAGA,EAAIhF,EAAKpB,SAAUoG,EACjCnE,KAAKo8V,gBAAgBt+V,GAAGqG,GAAKhF,EAAKgF,QAIhChF,EAAKc,cAAgBR,MACvBO,KAAKo8V,gBAAgBt+V,GAAKqB,EAAK2E,SAE/B9D,KAAKo8V,gBAAgBt+V,GAAK,IAAIqB,EAAKc,YAAad,QAItCa,KAAKo8V,gBAAgBt+V,GAAKqB,GAInC,IAASrB,EAAI,EAAGA,EAAIkC,KAAKo8R,QAAQr+R,SAAUD,EACvCkC,KAAK4yR,cAAc90R,EAAGkC,KAAKq8V,oBAAoBv+V,IAG9B,QAAjBkC,KAAKwkS,WACLxkS,KAAKwkS,SAAW,UAIxB83D,EAAc59V,UAAU+9V,cAAgB,WACpC,IAAIj/E,EAAOx9Q,KACX,GAA0B,oBAAf28V,YAOP,OANK38V,KAAK6iE,QACNnlD,QAAQ9Z,MACJ,yEAGR5D,KAAK6iE,QAAS,GAgDlB,GA5CA7iE,KAAK08V,QAAU,IAAIC,YACnB38V,KAAK08V,QAAQzN,SAAW,WACpBvxU,QAAQ6oL,IAAI,SACZi3E,EAAKgnB,SAAW,QAEpBxkS,KAAK08V,QAAQ/J,WAAa,SAASp8U,EAAIwyJ,GACnC,IAAI5pK,EAAO,KACX,IACIA,EAAOsnC,KAAKC,MAAMqiI,GACpB,MAAOptJ,GACL,OAGJ,GAAiB,GAAbxc,EAAKgG,KAEL,GACIhG,EAAKA,KAAK0vV,cACVthE,EAAUpuR,EAAKA,KAAK0vV,cACtB,CACE,IAAIjjV,EAAM,KACV,IACIA,EAAM,IAAI2hR,EAAUpuR,EAAKA,KAAK0vV,cAAc1vV,EAAKA,MACjDq+Q,EAAKwoB,YAAY,EAAGp6R,GACtB,MAAO+P,GACL,aAGJ6hQ,EAAKwoB,YAAY,EAAG7mS,EAAKA,WAI7Bq+Q,EAAK6+E,oBAAoBl9V,EAAK02U,SAAW,GAAK12U,EAAKA,KAEvDq+Q,EAAKgnB,SAAW,QAEpBxkS,KAAK08V,QAAQpoE,SAAW,SAAS3zR,GAC7B+c,QAAQ6oL,IAAI,gCACZi3E,EAAKgnB,SAAW,QAEpBxkS,KAAK08V,QAAQY,SAAW,SAAS38V,GAC7B+c,QAAQ6oL,IAAI,qBACZi3E,EAAKgnB,SAAW,QAGhBxkS,KAAKkhB,WAAWpJ,KAAO9X,KAAKkhB,WAAW+6U,KAAM,CAC7C,IACIj8V,KAAK08V,QAAQn0D,QAAQvoS,KAAKkhB,WAAWpJ,IAAK9X,KAAKkhB,WAAW+6U,MAC5D,MAAOtgV,GAGL,OAFA+B,QAAQ9Z,MAAM,sBAAwB+X,QACtC3b,KAAK08V,QAAU,MAGnB18V,KAAKu9V,WAAav9V,KAAKkhB,WAAWpJ,IAAM,IAAM9X,KAAKkhB,WAAW+6U,OAItEK,EAAc59V,UAAUmlS,KAAO,SAAS1kS,GAC/Ba,KAAK08V,SAAY18V,KAAK08V,QAAQQ,cAGnCl9V,KAAK08V,QAAQW,YAAY,CAAEl4V,KAAM,EAAGhG,KAAMA,KAG9Cm9V,EAAc59V,UAAUgiS,SAAW,SAAS5qQ,EAAQ6qQ,GAC3C3gS,KAAK08V,SAAY18V,KAAK08V,QAAQQ,cAGnCl9V,KAAK08V,QAAQW,YAAY,CAAEl4V,KAAM,EAAG2wB,OAAQA,EAAQ32B,KAAMwhS,KAG9D27D,EAAc59V,UAAU4kT,YAAc,WAClC,MAAO,CAAC,CAAC,KAAM,KAGnBg5C,EAAc59V,UAAUglT,aAAe,WACnC,MAAO,CAAC,CAAC,MAAO,KAGpBn2B,EAAUkE,iBAAiB,sBAAuB6qE,GA1WtD,CA2WGt8V,Q,iZCxq9BUw9V,EAAb,WACI,WAAY96R,GAAU,oBAClB1iE,KAAK0iE,SAAWA,EAChB1iE,KAAK2iE,SAAU,EAHvB,4CAWI,WACI,IAAK3iE,KAAK2iE,QACN,IACI3iE,KAAKie,OAASje,KAAK0iE,WAEvB,MAAO/mD,GACH3b,KAAK6iE,OAASlnD,EAJlB,QAOI3b,KAAK2iE,SAAU,EAGvB,GAAI3iE,KAAK6iE,OACL,MAAM7iE,KAAK6iE,OAEf,OAAO7iE,KAAKie,SA1BpB,oBA+BI,WAAiB,OAAOje,KAAKie,WA/BjC,K,2JCAIld,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAchEu7V,E,kDACF,WAAY3nU,EAAQruB,GAAU,kCAC1B,cAAMquB,EAAO9D,QAAU8D,EAAO9D,QAAQzb,GAAKuf,EAAO7D,MAAqB6D,EAAO7D,MAKvEnzB,QAAQ,cAAe,UALwD+a,GAAYic,EAAOwpM,SAAU73N,IAC9GquB,OAASA,EAFY,E,UADH8rI,KAS/B,IAAI87L,EAAc,kDACd,WAAYhlL,EAAS/mB,EAAWgsM,EAAqBh0E,GAAmB,kCACpE,gBACKjxG,QAAUA,EACf,EAAK/mB,UAAYA,EACjB,EAAKgsM,oBAAsBA,EAC3B,EAAKC,UAAW,EAChB,EAAKC,gBAAkB,EAAKn0V,UAAU,IAAIsU,KAC1C,EAAK8/U,oBAAsB,IAAIC,EAA6B,CACxDC,eAAgB,kBAAMr0E,EAAkBq0E,oBARwB,EAD1D,2CAYd,WACI,OAAOh+V,KAAK49V,WAbF,kBAed,SAAK78R,EAASk9R,EAAajqM,EAAI3uJ,GAC3B,OAAO9D,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,uGAC7Bk+V,EAAgB74V,EAAQ84V,uBAAyBF,EAAYruH,WAAaquH,EAAYnuH,cACzE/xO,OAFgB,uBAG/BiC,KAAK49V,UAAW,EAHe,6BAM9B59V,KAAK04K,QAAQ0lL,aANiB,sBAQ/Bp+V,KAAK49V,UAAW,EACV1+R,cATyB,OAWnCl/D,KAAK49V,UAAW,EAChB59V,KAAK69V,gBAAgB77V,MAAQi8V,EACvBI,EAAcr+V,KAAKs+V,eAAev9R,EAASm9R,EAAeD,EAAYtuH,eACtE7/B,EAAS3vL,IAAS0U,YAAYm/H,GAAMh0J,KAAKu+V,UAAUvqM,GAAMA,GAAM,CAAE/3I,EAAG,EAAGvZ,EAAG,GAC1EojP,EAAW9lP,KAAK89V,oBAAoBU,cACpCp6P,EAAepkG,KAAK04K,QAAQsC,UAAU,KAC5Ch7K,KAAK29V,oBAAoBc,gBAAgB,CACrCC,iBAAkBt6P,EAAepkG,KAAK04K,QAAQ0lL,kBAAevkV,EAC7D2vN,UAAW,kBAAM15B,GACjBxiH,WAAY,kBAAM+wQ,GAClBM,OAAQ,WACJ,EAAKf,UAAW,EAChB,EAAKllL,QAAQ17I,SAEjB4hU,qBAAqB,EACrBC,cAAe,SAAA/oU,GAAM,OAAIA,aAAkB2nU,EAAmB33G,EAAShwN,EAAOA,aAAUjc,KA1BzD,mDAhB7B,4BA8Cd,SAAeknD,EAASm9R,EAAevuH,GAAe,IAC9C3qO,EAAIgL,EAD0C,OAE5C8uV,EAAqB,SAAC71V,GAAD,OAAU,IAAIw0V,EAAiBx0V,EAAK6sB,QAAQ,kBAAM,EAAK67H,UAAUotM,mBAAmB91V,OACzG7G,EAAS87V,EACV97U,IAAI08U,GACH/tH,EAAmB,YAAIpB,GACvB76M,EAAQ90B,KAAK04K,QAAQ1jJ,WAC3B,GAAIF,GAAS1yB,EAAOrE,OAAQ,qBACDyzC,IAA2B3F,IAAI/W,IAD9B,IACxB,2BAA8D,KAAnD+qH,EAAmD,QACtDA,EAASm/M,yBACTjuH,EAAiBxtO,KAAjB,MAAAwtO,EAAgB,YAASlxF,EAASm/M,wBAAwB,CAAEj+R,QAASA,EAAQ57D,KAAMmrO,KAAuF,QAAhFtgO,EAA+B,QAAzBhL,EAAK+7D,EAAQ/xC,cAA2B,IAAPhqB,OAAgB,EAASA,EAAGooG,eAA4B,IAAPp9F,OAAgB,EAASA,EAAGhO,OAASk8V,EAAc97U,KAAI,SAAAnZ,GAAI,OAAIA,EAAK6sB,cAHtO,+BAa5B,OANIi7M,EAAiBhzO,QACjBqE,EAAOmB,KAAP,MAAAnB,EAAM,CAAM,IAAIorF,KAAV,mBAA0BujJ,EAAiB3uN,KAAI,SAAA4P,GAAO,OAAI8sU,EAAmB,IAAItvH,IAAe,CAClGv9M,MAAOD,EAAQC,MACfD,QAASA,QACVnY,UAEAzX,IAlEG,uBAoEd,SAAUuc,GACN,IAAK3e,KAAK04K,QAAQqwC,WACd,MAAO,CAAE9sM,EAAG,EAAGvZ,EAAG,GAEtB1C,KAAK04K,QAAQumL,eAAetgV,EAAU,GACtC3e,KAAK04K,QAAQ0xC,SAEb,IAAM80I,EAAel/V,KAAK04K,QAAQymL,2BAA2BxgV,GACvDygV,EAAezyV,iCAAuB3M,KAAK04K,QAAQ0lL,cAGzD,MAAO,CAAEniV,EAFCmjV,EAAanzV,KAAOizV,EAAajzV,KAE/BvJ,EADF08V,EAAarzV,IAAMmzV,EAAanzV,IAAMmzV,EAAap0V,YA9EnD,GAAgCd,KAkFlD0zV,EAAiB38V,EAAW,CACxBsqF,EAAQ,EAAGu7G,KACXv7G,EAAQ,EAAG8tE,MACZukM,GAEI,IAAMK,EAAb,WACI,WAAYsB,GAAqB,oBAC7Br/V,KAAKq/V,oBAAsBA,EAFnC,+CAII,WAAc,WAEJC,EAAwB,IAAI9B,GAAK,kBAAM,EAAK6B,oBAAoBrB,iBACjEhvU,QAAO,SAAA/lB,GAAI,OAAI80V,EAA6BwB,mBAAmB3+V,QAAQqI,EAAK+oB,UAAY,KACxFhD,QAAO,SAAA/lB,GAAI,OAAIA,EAAKu2V,sBACpBp9U,KAAI,SAACnZ,GAEN,IAAIglM,EAAchlM,EAAKglM,YAOvB,OANIhlM,EAAK+oB,UAAYs9M,IACjBrhC,EAAc,CAAEh/J,KAAMwxI,IAAegB,sBAAsBz/K,OAEtDiH,EAAK+oB,UAAYu9M,MACtBthC,EAAc,CAAEh/J,KAAMwxI,IAAeiB,aAAa1/K,QAE/C5D,OAAOgC,OAAO,CAAEo/V,mBAAoBv2V,EAAKu2V,oBAAsB79K,IAAsB89K,SAASxxJ,EAAa,CAC9Gh/J,KAAMwxI,IAAe3iK,KACrBrd,MAAO,iBAGf,OAAO,SAACq1B,GACJ,GAAIA,EAAOmZ,KAAM,CACb,IAAMywT,EAAU,EAAKC,4BAA4B7pU,EAAQwpU,EAAsBr1T,YAC/E,OAAmB,OAAZy1T,QAAgC,IAAZA,OAAqB,EAASA,EAAQF,uBA1BjF,yCA+BI,SAA4B1pU,EAAQ2/N,GAChC,GAAK3/N,EAAOmZ,KAAZ,CAGA,IAAMA,EAAO,IAAIwxI,IAAe3qJ,EAAOmZ,MACvC,OAAOwmN,EACFzmO,QAAO,SAAAsU,GAAS,OAAIA,EAAU2L,KAAKngC,SAASmgC,MAC5CjgB,QAAO,SAAAsU,GACR,OAAIA,EAAUs+I,WAEH9rJ,EAAOurJ,eAIjBu+K,aAAY,SAAC5uH,EAAa1tM,GAC3B,OAAK0tM,EAIEA,EAAY/hM,KAAKngC,SAASw0B,EAAU2L,MAAQ3L,EAAY0tM,EAHpD1tM,SAIZzpB,QAnDX,KAsDAkkV,EAA6BwB,mBAAqB,CAC9CnwH,IACAD,IACAE,IACAC,IACAC,K,ICnKAswH,E,yEArBA9+V,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,MAe3D,SAAWu0Q,GACPA,EAAeC,OAAS,CAAE36V,KAAM,GAUhC06V,EAAeE,QARX,WAAYxyQ,EAASxsB,EAAS9rC,EAAgB+qU,GAAgB,oBAC1DhgW,KAAKutF,QAAUA,EACfvtF,KAAK+gE,QAAUA,EACf/gE,KAAKi1B,eAAiBA,EACtBj1B,KAAKggW,eAAiBA,EACtBhgW,KAAKmF,KAAO,GARxB,CAYG06V,IAAmBA,EAAiB,KACvC,IAAII,EAAe,kDACf,WAAYvnL,EAASwnL,EAAmBC,EAAuBC,GAAoB,kCAC/E,gBACK1nL,QAAUA,EACf,EAAKwnL,kBAAoBA,EACzB,EAAKC,sBAAwBA,EAC7B,EAAKC,mBAAqBA,EAC1B,EAAKC,SAAW,EAAK32V,UAAU,IAAI+K,KACnC,EAAKw9N,QAAU,EAAKouH,SAAS1rV,MAC7B,EAAK+6J,OAASmwL,EAAeC,OAC7B,EAAKtnL,SAAWpuK,SAASsF,cAAc,OACvC,EAAK8oK,SAAShiK,UAAY44B,IAAQ06B,UAAUx6B,WAC5C,EAAKopI,QAAQ4nL,iBAAb,gBACA,EAAK52V,UAAU,EAAKgvK,QAAQ6qB,yBAAwB,SAAA3gM,GAEhD,IAAM29V,EAAc,EAAK7nL,QAAQ1jJ,YACT,IAApB,EAAK1gB,MAAMnP,OAA6Bo7V,GAAe,EAAKjsV,MAAM2gB,eAAe1V,YAAcghV,EAAYz2P,iBAC3G,EAAK1yF,WAGbikJ,IAAQsjC,aAAa,EAAKnmB,UAC1B,EAAK9uK,UAAUgjK,+CAAiD,EAAK8L,UAAU,SAAA73K,GAC3E,GAAwB,IAApB,EAAK2T,MAAMnP,KAAf,CAIA,EAAKuzK,QAAQ17I,QACbr8B,EAAEsT,iBAGF,MAAwBy4J,yBAA2B,EAAK8L,UAAhDzsK,EAAR,EAAQA,IAAKjB,EAAb,EAAaA,OACP07E,EAAa,EAAKkyF,QAAQsC,UAAU,IACtCwlL,EAAM9oV,KAAKE,MAAM4uE,EAAa,GACS,OAAvC,EAAKlyE,MAAM0rV,eAAerhV,UAAqB,EAAKrK,MAAM0rV,eAAerhV,SAASY,WAAa,EAAKjL,MAAM2gB,eAAe1V,aACzHihV,GAAOh6Q,GAEX,EAAK65Q,SAASprV,KAAK,CACfgH,EAAGtb,EAAEitL,KACLlrL,EAAGqJ,EAAMjB,EAAS01V,EAClBjzQ,QAAS,EAAKj5E,MAAMi5E,QACpBxsB,QAAS,EAAKzsD,MAAMysD,eAG5B,EAAKr3D,UAAUgjK,wBAA0B,EAAK8L,SAAU,cAAc,SAAC73K,GACnE,GAAwB,KAAP,EAAZA,EAAEoZ,SAAP,CAMA,EAAK3C,OACL,IAAMqpV,EAAU,IAAI7wI,IACpB6wI,EAAQvwI,gBAAgBvvN,EAAE/C,OAAQ+C,EAAEoZ,QAASo2M,KAAyB,eAAW,WAC7EswI,EAAQroV,kBAGhB,EAAK1O,UAAU,EAAKgvK,QAAQ3vB,0BAAyB,SAAApoJ,GAE7CA,EAAEynF,WAAW,MAAwB,EAAKswF,QAAQsC,UAAU,IAAoBhtF,SAChF,EAAK52E,WAGb,EAAKspV,+BACL,EAAKh3V,UAAU,EAAK02V,mBAAmBO,uBAAuB,EAAKD,6BAApD,iBA9DgE,EADpE,2CAiEf,WACI,gEACA1gW,KAAK04K,QAAQkoL,oBAAoB5gW,QAnEtB,mBAqEf,WACI,MAAO,oBAtEI,wBAwEf,WACI,OAAOA,KAAKw4K,WAzED,yBA2Ef,WACI,OAA4B,IAArBx4K,KAAK0vK,OAAOvqK,KAA2BnF,KAAK0vK,OAAOswL,eAAiB,OA5EhE,oBA8Ef,SAAOzyQ,EAASxsB,EAAS8/R,GAAY,WACjC,GAAItzQ,EAAQuiJ,aAAa/xO,QAAU,EAC/B,OAAOiC,KAAKoX,OAEhB,IAAM/R,EAAUrF,KAAK04K,QAAQnpD,aAC7B,IAAKlqH,EAAQotB,IAAI,IAAoBu7D,QACjC,OAAOhuF,KAAKoX,OAEhB,IAAM0d,EAAQ90B,KAAK04K,QAAQ1jJ,WAC3B,IAAKF,EACD,OAAO90B,KAAKoX,OAEhB,MAA+B0d,EAAMowG,iBAAiB27N,GAA9CthV,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,OACd4mE,EAAUtxD,EAAMy6F,aAAanpC,QAC7B2L,EAAW1sF,EAAQotB,IAAI,IACvBmrF,EAAc9oF,EAAM01E,eAAejrF,GACnC6yH,EAASlqD,IAAUwpD,mBAAmB9zB,EAAax3B,GAEnD06Q,EAAW,SAACvhV,GACd,OAAOA,EAAa,GAAK,EAAKm5J,QAAQwrB,oBAAoB3kL,KAAgB,EAAKm5J,QAAQwrB,oBAAoB3kL,EAAa,IAExHwhV,EAAsBxhV,EAC1B,KALqBwyE,EAAS6mG,WAAaxmD,EAAS,IAMhD,GAAI7yH,EAAa,IAAMuhV,EAASvhV,EAAa,GACzCwhV,GAAuB,OAEtB,GAAKD,EAASvhV,EAAa,IAG3B,GAAIC,EAASuyE,EAAS6mG,WAAa,GAGpC,OAAO54L,KAAKoX,YALZ2pV,GAAuB,EAQ/B/gW,KAAKsU,MAAQ,IAAIurV,EAAeE,QAAQxyQ,EAASxsB,EAAS8/R,EAAY,CAClEliV,SAAU,CAAEY,WAAYwhV,EAAqBvhV,OAAQ,GACrDwhV,WAAYf,EAAgBgB,WAEhCjhW,KAAK04K,QAAQwoL,oBAAoBlhW,QArHtB,kBAuHf,WACIA,KAAKsU,MAAQurV,EAAeC,OAC5B9/V,KAAK04K,QAAQwoL,oBAAoBlhW,QAzHtB,iBA2Hf,WAAc,OAAOA,KAAK0vK,QA3HX,IA4Hf,SAAU1tK,GACNhC,KAAK0vK,OAAS1tK,EACdhC,KAAK0gW,iCA9HM,0CAgIf,WAA+B,QAC3B,GAAwB,IAApB1gW,KAAKsU,MAAMnP,MAA4BnF,KAAKsU,MAAMi5E,QAAQ4zQ,WAAY,UAEtE,EAAAnhW,KAAKw4K,SAAS3pK,WAAU/J,OAAxB,oBAAkCsqC,IAAQ06B,UAAU4lJ,mBACpD,EAAA1vN,KAAKw4K,SAAS3pK,WAAU2K,IAAxB,oBAA+B41B,IAAQopC,iBAAiBk3I,kBACxD,IAAM0xI,EAAcphW,KAAKogW,mBAAmBiB,iBAAiBrhW,KAAKmgW,uBAClE,GAAIiB,EAEA,YADAphW,KAAKiyB,MAAQnP,IAAa,4BAA6B,yDAA0Ds+U,EAAYE,cAKrI,EAAAthW,KAAKw4K,SAAS3pK,WAAU/J,OAAxB,oBAAkCsqC,IAAQopC,iBAAiBk3I,mBAC3D,EAAA1vN,KAAKw4K,SAAS3pK,WAAU2K,IAAxB,oBAA+B41B,IAAQ06B,UAAU4lJ,kBACjD,IAAMlhB,EAAKxuM,KAAKogW,mBAAmBiB,iBAAiBrhW,KAAKkgW,mBAErDlgW,KAAKiyB,MADLu8K,EACa1rL,IAAa,mBAAoB,0BAA2B0rL,EAAG8yJ,YAG/Dx+U,IAAa,aAAc,uBAnJjC,iBAsJf,SAAU9gB,GACNhC,KAAKw4K,SAASvmJ,MAAQjwB,MAvJX,GAAiCgI,KA0JpDi2V,EAAgBgB,SAAW,CAAC,GAC5BhB,EAAkBl/V,EAAW,CACzBsqF,EAAQ,EAAG8tE,MACZ8mM,GAEHjiS,aAA2B,SAACl8C,EAAOu4G,GAC/B,IAAIr1H,EACEu8V,EAAoE,QAA3Cv8V,EAAK8c,EAAMwL,SAASjH,YAAsC,IAAPrhB,OAAgB,EAASA,EAAG0e,YAAY,IAEpH89U,EAAiC1/U,EAAMwL,SAASvE,KAClDy4U,GACAnnO,EAAUQ,QAAV,+CAC2BzrF,IAAQ06B,UAAUkyM,YAD7C,4BAEIwlF,EAFJ,sCAGeD,EAHf,aAOJ,IAAME,EAAwC3/U,EAAMwL,SAAStE,KACzDy4U,GACApnO,EAAUQ,QAAV,+CAC2BzrF,IAAQopC,iBAAiBwjM,YADpD,4BAEIylF,EAFJ,sCAGeF,EAHf,gBCjNR,IA6BIG,EA7BA3gW,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAGlEy/V,GAAkE,SAAUt0T,EAAU/4B,EAAOtS,EAAOitC,EAAMxsC,GAC1G,GAAa,MAATwsC,EAAc,MAAM,IAAIvxC,UAAU,kCACtC,GAAa,MAATuxC,IAAiBxsC,EAAG,MAAM,IAAI/E,UAAU,iDAC5C,GAAqB,oBAAV4W,EAAuB+4B,IAAa/4B,IAAU7R,GAAK6R,EAAMguC,IAAIjV,GAAW,MAAM,IAAI3vC,UAAU,2EACvG,MAAiB,MAATuxC,EAAexsC,EAAE7C,KAAKytC,EAAUrrC,GAASS,EAAIA,EAAET,MAAQA,EAAQsS,EAAMkzB,IAAI6F,EAAUrrC,GAASA,GAEpG4/V,GAAkE,SAAUv0T,EAAU/4B,EAAO26B,EAAMxsC,GACnG,GAAa,MAATwsC,IAAiBxsC,EAAG,MAAM,IAAI/E,UAAU,iDAC5C,GAAqB,oBAAV4W,EAAuB+4B,IAAa/4B,IAAU7R,GAAK6R,EAAMguC,IAAIjV,GAAW,MAAM,IAAI3vC,UAAU,4EACvG,MAAgB,MAATuxC,EAAexsC,EAAa,MAATwsC,EAAexsC,EAAE7C,KAAKytC,GAAY5qC,EAAIA,EAAET,MAAQsS,EAAMme,IAAI4a,IAUpFw0T,GAAY,kDACZ,WAAYnpL,EAASopL,EAAkBC,EAAsBv7H,EAAU3oD,GAAsB,kCACzF,gBACKnF,QAAUA,EACf,EAAK8tD,SAAWA,EAChB,EAAKw7H,mBAAqB,EAAKt4V,UAAU,IAAIsU,KAC7C0jV,EAAuBl6T,IAAvB,gBAAiC,GACjC,EAAKy6T,kBAAoB,IAAIzE,GAAK,WAC9B,OAAO,EAAK9zV,UAAUm0K,EAAqBqkL,eAAexE,EAAgB,EAAKhlL,QAAS,CACpFqmL,mBAAoB,SAACjpU,GAAD,OAAYv0B,EAAU,oBAAM,OAAQ,EAAf,UAAuB,8EAC5DvB,KAAKwmO,SAAS27H,gBAAgBrsU,GAAwB,GADM,uDAKxE,EAAKssU,iBAAmB,IAAI5E,GAAK,WAC7B,IAAMxgL,EAAS,EAAKtzK,UAAUm0K,EAAqBqkL,eAAejC,EAAiB,EAAKvnL,QAASopL,EAAkBC,IAEnH,OADA,EAAKr4V,UAAUszK,EAAOi1D,SAAQ,SAAAtxO,GAAC,OAAI,EAAK0hW,mBAAmB1hW,EAAEogE,QAASpgE,EAAE4sF,QAAS5sF,EAAG,CAAEw9V,wBAAwB,QACvGnhL,KAhB8E,EADjF,2CAoBZ,WACI2kL,GAAuB3hW,KAAM0hW,GAAwB,EAAM,KAC3D,kEAtBQ,oBAwBZ,SAAOzhO,GACH,IAAIj7H,EAAIgL,EAAIwd,EACZ,OAAOjsB,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,6FACb,IAAlBigI,EAAS96H,KADsB,uBAEW,QAAzCH,EAAKhF,KAAKoiW,iBAAiBE,gBAA6B,IAAPt9V,GAAyBA,EAAGoS,OAF/C,0BAOrB,OAPqB,kBAOf6oH,EAAS1yC,QAPM,OAO/BA,EAP+B,8DAU/B/kF,YAAkB,EAAD,IAVc,+BAa/Bo5V,GAAuB5hW,KAAM0hW,EAAwB,KAbtB,sDAgBnC1hW,KAAKoiW,iBAAiBn4T,WAAWqjJ,OAAO//F,EAAS0yC,EAASl/D,QAASk/D,EAASthH,UAC9C,IAA1BshH,EAASl/D,QAAQ57D,KAjBc,sBAkBQ,QAAlC6K,EAAKiwH,EAASl/D,QAAQ/xC,cAA2B,IAAPhf,OAAgB,EAASA,EAAGo9F,SAlB5C,sBAoBrBm1P,EAAqBviW,KAAKwiW,yBAAyBviO,EAASl/D,QAASwsB,IApBhD,iBAwBnB,OAxBmB,UAuBnBvtF,KAAKoiW,iBAAiBn4T,WAAW7yB,OAvBd,UAwBbpX,KAAKwmO,SAAS27H,gBAAgBI,GAAoB,GAxBrC,yBA2BnBh1Q,EAAQn1E,UA3BW,2DAgCvB6nH,EAASl/D,QAAQn3B,QAhCM,sBAiCjB64T,EAAgBziW,KAAK0iW,yCAAyCziO,EAASl/D,QAASwsB,MACjEk1Q,EAAc3sU,OAAOwpM,SAlCnB,wBAmCnBqjI,IAAkBlwU,IAAIzyB,KAAK04K,SAASkqL,YAAYH,EAAc3sU,OAAOwpM,SAAUr/F,EAASl/D,QAAQn3B,QAAQjrB,UACxG4uE,EAAQn1E,UApCW,8BAyCzB+lV,KAA+D,QAAlC3wU,EAAKyyG,EAASl/D,QAAQ/xC,cAA2B,IAAPxB,OAAgB,EAASA,EAAG4/E,UACrG6yB,EAASl/D,QAAQn3B,QA1CU,oBA2CtB2jD,EAAQqiJ,WAAW7xO,SAAWogW,GAA2B5wQ,EAAQuiJ,aAAa/xO,QA3CxD,wBA4CvB4kW,IAAkBlwU,IAAIzyB,KAAK04K,SAASkqL,YAAY3iO,EAASl/D,QAAQn3B,QAAQi5T,oBAAqB5iO,EAASl/D,QAAQn3B,QAAQjrB,UACvH3e,KAAKgiW,mBAAmBhgW,MAAQurF,EAChCA,EAAQn1E,UA9Ce,2BAkD/BpY,KAAKgiW,mBAAmBhgW,MAAQurF,EAChCvtF,KAAKiiW,kBAAkBh4T,WAAWjzB,KAAKipH,EAASl/D,QAASwsB,EAAS0yC,EAASthH,SAAU,CAAEw/U,2BAnDxD,wBAuD3Bn+V,KAAKiiW,kBAAkBh4T,WAAW64T,UAElCv1Q,EAAQn1E,UAGRpY,KAAKgiW,mBAAmBhgW,MAAQurF,EA5DL,uEA1B/B,sDA2FZ,SAAyCxsB,EAASwsB,GAC9C,GAAKA,EAAQqiJ,WAAW7xO,OAGxB,MAA2B,UAAtBgjE,EAAQgiS,WAAqE,IAAhCx1Q,EAAQuiJ,aAAa/xO,QACzC,aAAtBgjE,EAAQgiS,WAAyE,IAA9Bx1Q,EAAQqiJ,WAAW7xO,OACnEwvF,EAAQqiJ,WAAWnvI,MAAK,qBAAG3qE,OAAoBwpM,iBAF1D,IA/FQ,sCAqGZ,SAAyBv+J,EAASwsB,GAC9B,GAAKA,EAAQuiJ,aAAa/xO,OAG1B,MAA2B,UAAtBgjE,EAAQgiS,WAAqCx1Q,EAAQuiJ,aAAa/xO,OAAS,GAClD,aAAtBgjE,EAAQgiS,WAA2E,IAAhCx1Q,EAAQuiJ,aAAa/xO,OACrEwvF,EAAQuiJ,aAAa,QAFhC,IAzGQ,gCA+GZ,SAAmB/uK,EAASwsB,EAASymE,EAAI3uJ,GACrC,OAAO9D,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,8EACnCA,KAAKiiW,kBAAkBh4T,WAAWjzB,KAAK+pD,EAASwsB,EAASymE,EAAI3uJ,GAD1B,oDAhH/B,GAA8B2E,KAqH9C03V,EAAyB,IAAIjgT,QAC7BogT,GAAe9gW,EAAW,CACtBsqF,EAAQ,EAAGnmB,MACZ28R,I,IClJCmB,GA4GOC,G,mFAvHPrB,GAAkE,SAAUv0T,EAAU/4B,EAAO26B,EAAMxsC,GACnG,GAAa,MAATwsC,IAAiBxsC,EAAG,MAAM,IAAI/E,UAAU,iDAC5C,GAAqB,oBAAV4W,EAAuB+4B,IAAa/4B,IAAU7R,GAAK6R,EAAMguC,IAAIjV,GAAW,MAAM,IAAI3vC,UAAU,4EACvG,MAAgB,MAATuxC,EAAexsC,EAAa,MAATwsC,EAAexsC,EAAE7C,KAAKytC,GAAY5qC,EAAIA,EAAET,MAAQsS,EAAMme,IAAI4a,IAEpFs0T,GAAkE,SAAUt0T,EAAU/4B,EAAOtS,EAAOitC,EAAMxsC,GAC1G,GAAa,MAATwsC,EAAc,MAAM,IAAIvxC,UAAU,kCACtC,GAAa,MAATuxC,IAAiBxsC,EAAG,MAAM,IAAI/E,UAAU,iDAC5C,GAAqB,oBAAV4W,EAAuB+4B,IAAa/4B,IAAU7R,GAAK6R,EAAMguC,IAAIjV,GAAW,MAAM,IAAI3vC,UAAU,2EACvG,MAAiB,MAATuxC,EAAexsC,EAAE7C,KAAKytC,EAAUrrC,GAASS,EAAIA,EAAET,MAAQA,EAAQsS,EAAMkzB,IAAI6F,EAAUrrC,GAASA,GAa3FkhW,GAAyB,IAAIpmU,KAAc,sBAAuB,IACzEqmU,G,kDACF,WAAYzqL,EAAS0qL,EAAgBC,GAA6B,MAAdnnU,EAAc,uDAAL,IAAK,4BAC9D,gBACKw8I,QAAUA,EACf,EAAK0qL,eAAiBA,EACtB,EAAKC,cAAgBA,EACrB,EAAKnnU,OAASA,EACd,EAAKonU,kBAAoB,EAAK55V,UAAU,IAAIC,MAC5C,EAAKD,UAAU,EAAK05V,eAAeG,iBAAgB,SAAA5iW,GAAC,OAAI,EAAK6iW,iBAAiB7iW,OAC9E,EAAK+I,UAAU,EAAKgvK,QAAQyqB,2BAA0B,kBAAM,EAAKsgK,sBARH,E,2CAUlE,SAAQ1iS,GACJ,IAAMoe,EAAYn/E,KAAK0jW,6CAA6C3iS,GACpE,OAAO/gE,KAAK2jW,4BAA4B5iS,EAASoe,K,8BAErD,SAAiBykR,GAAW,WAClB9uU,EAAQ90B,KAAK04K,QAAQ1jJ,WACtBF,GAGD8uU,EAAU36M,MAAK,SAAAx0H,GAAQ,OAAI2oC,aAAQ3oC,EAAUK,EAAMxc,SACnDtY,KAAKsjW,kBAAkBrzI,cAAa,WAChC,EAAKlvJ,QAAQ,CAAE57D,KAAM,MACtBnF,KAAKk8B,U,6BAGhB,WAAkB,WACdl8B,KAAKsjW,kBAAkBrzI,cAAa,WAChC,EAAKlvJ,QAAQ,CAAE57D,KAAM,MACtBnF,KAAKk8B,U,+BAEZ,SAAkBijD,GACd,IAAMrqD,EAAQ90B,KAAK04K,QAAQ1jJ,WAC3B,GAAKF,EAAL,CAFyB,oBAKJ90B,KAAKojW,eAAexyO,KAAK,CAAEn8F,SAAUK,EAAMxc,OALvC,IAKzB,2BAAwE,KAA7D2sO,EAA6D,QAC9D4+G,EAAc/uU,EAAMkuG,cAAciiH,GACxC,GAAI5mO,KAAMY,gBAAgB4kV,EAAa1kR,GACnC,OAAO9gE,KAAM6W,KAAK2uU,IARD,kC,0DAa7B,SAA6C9iS,GACzC,GAAK/gE,KAAK04K,QAAQqwC,WAAlB,CAGA,IAAMj0L,EAAQ90B,KAAK04K,QAAQ1jJ,WACrBmqD,EAAYn/E,KAAK04K,QAAQmqB,eAC/B,GAAI1jH,EAAUzgE,WAA8B,IAAjBqiD,EAAQ57D,KAAuB,CACtD,MAA+Bg6E,EAAUyjH,cAAjCrjL,EAAR,EAAQA,WAAYC,EAApB,EAAoBA,OACdo0F,EAAO9+E,EAAM01E,eAAejrF,GAClC,GAAoB,IAAhBq0F,EAAK71G,OAEL,OAEC,GAAe,IAAXyhB,GAEL,GAAI,KAAK3I,KAAK+8F,EAAK,IACf,YAGH,GAAIp0F,IAAWsV,EAAMgsG,iBAAiBvhH,IAEvC,GAAI,KAAK1I,KAAK+8F,EAAKA,EAAK71G,OAAS,IAC7B,YAKJ,GAAI,KAAK8Y,KAAK+8F,EAAKp0F,EAAS,KAAO,KAAK3I,KAAK+8F,EAAKp0F,EAAS,IACvD,OAIZ,OAAO2/D,K,yCAEX,SAA4Bpe,EAASoe,GACjC,IAAMrqD,EAAQ90B,KAAK04K,QAAQ1jJ,WAC3B,GAAKmqD,GAAcrqD,EAAnB,CAKA,IAAM+uU,EAAc7jW,KAAK8jW,kBAAkB3kR,GACrCxgE,EAAWklV,EAAcA,EAAYxkV,mBAAqB8/D,EAAU9/D,mBACpE1e,EAAI,CACNogE,UACAoe,YACAxgE,YAGJ,OADA3e,KAAKqjW,cAAc1iW,GACZA,EAXHX,KAAKqjW,mBAAcxpV,O,GAlFA7P,MAiG/B,SAAWi5V,GACPA,EAAiB3hL,MAAQ,CAAEn8K,KAAM,GADR,IAEnB4+V,EAFmB,WAGrB,WAAYhjS,EAASovK,EAAkBxxN,EAAUqlV,GAAqB,oBAClEhkW,KAAK+gE,QAAUA,EACf/gE,KAAKmwO,iBAAmBA,EACxBnwO,KAAK2e,SAAWA,EAChB3e,KAAKgkW,oBAAsBA,EAC3BhkW,KAAKmF,KAAO,EACZnF,KAAKutF,QAAUy2Q,EAAmB,OAAO,SAACrjW,GACtC,GAAIi+D,YAAuBj+D,GACvB,OAAOsjW,GAEX,MAAMtjW,KAbO,0CAgBrB,WACIX,KAAKgkW,oBAAoBl6V,aAjBR,KAoBzBm5V,EAAiBc,UAAYA,EApBjC,CAqBGd,KAAqBA,GAAmB,KAC3C,IAAMgB,GAAqB,CACvBr0H,WAAY,GACZE,aAAc,GACd13N,QAAS,aACTu3N,cAAe,GACfwxH,YAAY,GAEH+C,GAAb,kDACI,WAAYxrL,EAAS0qL,EAAgBz1Q,EAAmBw2Q,GAAkB,kCACtE,gBACKzrL,QAAUA,EACf,EAAK0qL,eAAiBA,EACtB,EAAKe,iBAAmBA,EACxB,EAAKC,kBAAoB,EAAK16V,UAAU,IAAIsU,KAC5C,EAAK0xJ,OAASuzL,GAAiB3hL,MAC/B,EAAK+iL,kBAAoB,EAAK36V,UAAU,IAAI+K,KAC5C,EAAK6vV,iBAAmB,EAAKD,kBAAkB1vV,MAC/CquV,GAA4Bx7T,IAA5B,gBAAsC,GACtC,EAAK+8T,sBAAwBrB,GAAuB5lL,OAAO3vF,GAC3D,EAAKjkF,UAAU,EAAKgvK,QAAQ4qB,kBAAiB,kBAAM,EAAKkhK,cACxD,EAAK96V,UAAU,EAAKgvK,QAAQ+rL,0BAAyB,kBAAM,EAAKD,cAChE,EAAK96V,UAAU8nC,IAA2BzD,aAAY,kBAAM,EAAKy2T,cACjE,EAAKA,UAdiE,EAD9E,2CAiBI,WACQ5C,GAAuB5hW,KAAMgjW,GAA6B,OAG9DrB,GAAuB3hW,KAAMgjW,IAA6B,EAAM,KAChE,gEACAhjW,KAAK8pQ,SAASm5F,GAAiB3hL,OAAO,MAvB9C,qBAyBI,WAAU,WACN,IAAIsgL,GAAuB5hW,KAAMgjW,GAA6B,KAA9D,CAGAhjW,KAAKokW,kBAAkBpiW,WAAQ6X,EAC/B7Z,KAAK8pQ,SAASm5F,GAAiB3hL,OAC/B,IAAMxsJ,EAAQ90B,KAAK04K,QAAQ1jJ,WAC3B,GAAIF,GACG0c,IAA2B8Q,IAAIxtB,KAC9B90B,KAAK04K,QAAQsC,UAAU,IAAoB,CAC/C,IAD+C,EACzC0pL,EAAmB,GADsB,cAExBlzT,IAA2B3F,IAAI/W,IAFP,IAE/C,2BAA8D,KAAnD+qH,EAAmD,QACtDpgJ,MAAM+b,QAAQqkI,EAAS2wF,0BACvBk0H,EAAiBnhW,KAAjB,MAAAmhW,EAAgB,YAAS7kN,EAAS2wF,2BAJK,8BAO/CxwO,KAAKukW,sBAAsB/8T,IAAIk9T,EAAiB/nV,KAAK,MACrD3c,KAAKokW,kBAAkBpiW,MAAQ,IAAImhW,GAAiBnjW,KAAK04K,QAAS14K,KAAKojW,gBAAgB,SAAAriS,GACnF,IAAI/7D,EACJ,GAAK+7D,EAAL,CAIA,IAAMwsB,EAAUhuB,cAAwB,SAAAG,GAAK,OAAIwwK,YAAep7M,EAAOisC,EAAQoe,UAAWpe,EAAQA,QAASmhI,KAASpkL,KAAM4hD,MAC7F,IAAzBqB,EAAQA,QAAQ57D,OACiB,QAAhCH,EAAK,EAAKm/V,wBAAqC,IAAPn/V,GAAyBA,EAAG2/V,UAAUp3Q,EAAS,MAE5F,EAAKu8K,SAAS,IAAIm5F,GAAiBc,UAAUhjS,EAAQA,QAASA,EAAQoe,UAAWpe,EAAQpiD,SAAU4uE,SAP/F,EAAKu8K,SAASm5F,GAAiB3hL,cAQpCznK,GACH7Z,KAAKokW,kBAAkBpiW,MAAM++D,QAAQ,CAAE57D,KAAM,SAG7CnF,KAAKukW,sBAAsB5uV,WAzDvC,qBA4DI,SAAQorD,GACA/gE,KAAKokW,kBAAkBpiW,OACvBhC,KAAKokW,kBAAkBpiW,MAAM++D,QAAQA,KA9DjD,sBAiEI,SAASk/D,EAAU2kO,GACX3kO,IAAajgI,KAAK0vK,SAIG,IAArB1vK,KAAK0vK,OAAOvqK,MACZnF,KAAK0vK,OAAO5lK,SAEhB9J,KAAK0vK,OAASzvC,EACT2kO,GAAehD,GAAuB5hW,KAAMgjW,GAA6B,MAC1EhjW,KAAKqkW,kBAAkBpvV,KAAKgrH,QA3ExC,GAAqCj2H,KA+ErCg5V,GAA8B,IAAIvhT,QCpOlC,IAAI1gD,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,GAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAuBtE,SAAS2iW,GAA8B51T,GACnC,OAAOpe,KAAe8pD,MAAMuoR,GAAuBxsV,OAAO,GAAI,IAAI2qB,OAAO,UAAYxB,YAAuBoP,EAAKjtC,OAAS,QAE9H,IAAM8iW,GAAa,CACf3/V,KAAM,SACN0c,gBAAiB,CAAC,CAAErf,KAAM,CAAEysC,KAAM,MAClC/tB,WAAY,CACR,KAAQ,CACJ/b,KAAM,SACN8Q,YAAa6M,IAAa,mBAAoB,oCAElD,MAAS,CACL3d,KAAM,SACN8Q,YAAa6M,IAAa,oBAAqB,mDAC/C4tE,QAAS,WACTtvE,KAAM,CAAC,QAAqB,WAA2B,SACvDC,iBAAkB,CACdyB,IAAa,0BAA2B,gDACxCA,IAAa,6BAA8B,+DAC3CA,IAAa,0BAA2B,6CAGhD,UAAa,CACT3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,wBAAyB,kEAI3DiiV,GAAkB,kDAClB,WAAY9xU,EAAQ+xU,EAAer3Q,EAAmBs3Q,EAAiBC,GAAuB,kCAC1F,gBACKA,sBAAwBA,EAC7B,EAAKxsL,QAAUzlJ,EACf,EAAKm8O,OAAS,EAAK1lQ,UAAU,IAAIw6V,GAAgB,EAAKxrL,QAASssL,EAAer3Q,EAAmBs3Q,IACjG,EAAKv7V,UAAU,EAAK0lQ,OAAOk1F,kBAAiB,SAAArkO,GAAQ,OAAI,EAAKqtD,OAAOrtD,OACpE,EAAKklO,IAAM,IAAI3H,GAAK,kBAAM,EAAK9zV,UAAU,IAAIm4V,GAAa5uU,EAAQmyU,GAAeC,GAAIC,GAAcD,GAAI,CACnGlD,gBAAiB,SAACrsU,EAAQyvU,GAAT,OAAuBhkW,GAAU,oBAAM,OAAQ,EAAf,UAAuB,8EAEhE,OAFgE,kBAE1DvB,KAAKwlW,iBAAiB1vU,GAFoC,uBAK5DyvU,GACAvlW,KAAKylW,SAAS,CAAEtgW,KAAM,EAAc6pB,OAAQ,KANgB,yEAUzE,EAAKk2U,2BAjBkF,EAD5E,0CAuBlB,SAAOjlO,GACHjgI,KAAKmlW,IAAIl7T,WAAWqjJ,OAAOrtD,KAxBb,6BA0BlB,SAAgBl/D,EAASwsB,EAASymE,GAC9B,OAAOh0J,KAAKmlW,IAAIl7T,WAAWo4T,mBAAmBthS,EAASwsB,EAASymE,EAAI,CAAEmqM,wBAAwB,MA3BhF,4CA6BlB,SAA+B0E,EAAqB7zU,EAAQ+zU,GACxD,GAAK/iW,KAAK04K,QAAQqwC,WAAlB,CAGA45I,IAAkBlwU,IAAIzyB,KAAK04K,SAASgtL,eACpC,IAAMC,EAAkB3lW,KAAK04K,QAAQkqB,cACrC5iM,KAAKylW,SAAS,CAAEtgW,KAAM,EAAgB6pB,SAAQ+zU,YAAWn5T,QAAS,CAAEi5T,sBAAqBlkV,SAAUgnV,QAnCrF,sBAqClB,SAAS5kS,GACL,OAAO/gE,KAAKovQ,OAAOruM,QAAQA,KAtCb,8BAwClB,SAAiBjrC,GACb,OAAO91B,KAAKklW,sBAAsBU,eAAezD,GAAiBrsU,EAAQ91B,KAAK04K,YAzCjE,kBAoBlB,SAAWzlJ,GACP,OAAOA,EAAO6wH,gBAAgBihN,EAAmB7hM,QArBnC,GAAoCl5J,KAoDnD,SAASm4V,GAAgBzwU,EAAUzoB,EAAMgqB,GAC5C,OAAO1xB,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,4FAUnC,OATM6lW,EAAkBn0U,EAASe,IAAIqzU,KAC/BC,EAAiBr0U,EAASe,IAAI67D,MAC9B03Q,EAAmBt0U,EAASe,IAAIwB,MAChCgyU,EAAsBv0U,EAASe,IAAIgvI,MACzCukM,EAAiB9xU,WAAW,6BAA8B,CACtDgyU,gBAAiBj9V,EAAK6sB,OAAO7D,MAC7Bk0U,eAAgBl9V,EAAK6sB,OAAOmZ,KAC5Bm3T,wBAAyBn9V,EAAK6sB,OAAOurJ,cARN,SAU7Bp4K,EAAKpH,QAAQ0mG,IAAkBzqF,MAVF,WAW/B7U,EAAK6sB,OAAO42C,KAXmB,iBAY/B,OAZ+B,UAYzBm5R,EAAgBplW,MAAM4lW,IAAa/1Q,QAAQrnF,EAAK6sB,OAAO42C,MAAO,CAAEz5C,SAAQpwB,MAAOoG,EAAK6sB,OAAO7D,QAZlE,YAc/BhpB,EAAK6sB,OAAO9D,QAdmB,iBAgB3B,OAhB2B,oBAgBrB+zU,EAAe13Q,eAAf,MAAA03Q,EAAc,CAAgB98V,EAAK6sB,OAAO9D,QAAQzb,IAApC,mBAA4CtN,EAAK6sB,OAAO9D,QAAQxxB,WAAa,MAhBtE,2DAmBrB5B,EAAU0nW,GAAU,EAAD,IACzBL,EAAoBriW,MAAyB,kBAAZhF,EAC3BA,EACAkkB,IAAa,wBAAyB,6DAtBjB,2DA2B3C,SAASwjV,GAAU3qV,GACf,MAAmB,kBAARA,EACAA,EAEFA,aAAezQ,OAAgC,kBAAhByQ,EAAI/c,QACjC+c,EAAI/c,aAGX,EAGR,SAAS2nW,GAAqCtzU,EAAQ4vU,EAAqB7zU,EAAQ+zU,GAC/E,GAAI9vU,EAAO81L,WAAY,CACnB,IAAMy9I,EAAazB,GAAmBtyU,IAAIQ,GACtCuzU,GACAA,EAAWC,+BAA+B5D,EAAqB7zU,EAAQ+zU,IAnDnFgC,GAAmB7hM,GAAK,oCACxB6hM,GAAqBhkW,GAAW,CAC5BsqF,GAAQ,EAAG6qF,MACX7qF,GAAQ,EAAG/3D,MACX+3D,GAAQ,EAAG82G,MACX92G,GAAQ,EAAGnmB,MACZ6/R,IAiDI,IAAMK,GAAb,kDACI,aAAc,uCACJ,CACF7uV,GAAI6uV,EAAeC,GACnBxiW,MAAOigB,IAAa,yBAA0B,gBAC9CgR,MAAO,eACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUy+B,IAAkBwB,wBAC/E/N,OAAQ,CACJO,OAAQgM,IAAkBG,gBAC1B9L,QAAS,KACTF,OAAQ,OAVxB,uCAcI,SAAI21U,EAAWzzU,GACX,OAAOszU,GAAqCtzU,EAAQnQ,IAAa,qCAAsC,kCAA8BjJ,OAAWA,OAfxJ,GAAoC+Z,KAkBpCwxU,GAAeC,GAAK,yBACb,IAAMsB,GAAb,kDACI,aAAc,uCACJ,CACFpwV,GAAI44N,IACJh/M,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUy+B,IAAkBwB,wBAC/EnoB,YAAa,CACTA,YAAa,wBACbpX,KAAM,CAAC,CAAE+X,KAAM,OAAQq4E,OAAQ61Q,QAP/C,oDAWI,SAAiB4B,EAAWzzU,EAAQ2zU,GAChC,IAAM/nW,EAAO8iL,IAAsB89K,SAASmH,EAAU,CAClD33T,KAAMwxI,IAAea,MACrB7gL,MAAO,aAEX,OAAO8lW,GAAqCtzU,EAAuF,kBAA1D,OAAb2zU,QAAkC,IAAbA,OAAsB,EAASA,EAAS33T,MACnHpwC,EAAK+iL,UACD9+J,IAAa,sDAAuD,gDAAiD8jV,EAAS33T,MAC9HnsB,IAAa,4CAA6C,sCAAuC8jV,EAAS33T,MAC9GpwC,EAAK+iL,UACD9+J,IAAa,iDAAkD,uCAC/DA,IAAa,uCAAwC,6BAA8B,CACzFsqF,QAASvuG,EAAKowC,KACd+xI,sBAAsB,EACtBI,4BAA6BviL,EAAK+iL,WACnC/iL,EAAK4B,WA1BhB,GAAuCqyB,KA6B1B+zU,GAAb,kDACI,aAAc,uCACJ,CACFtwV,GAAI64N,IACJvsO,MAAOigB,IAAa,iBAAkB,eACtCgR,MAAO,cACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUy+B,IAAkBwB,wBAC/E/N,OAAQ,CACJO,OAAQgM,IAAkBG,gBAC1B9L,QAAS,KACTI,IAAK,CACDJ,QAAS,MAEbF,OAAQ,KAEZuD,gBAAiB,CACbvC,MAAO,iBACPI,MAAO,EACPnB,KAAMH,KAAeC,IAAI8L,IAAkBz+B,SAAU0mW,GAA8BpkL,IAAee,YAEtGvrK,YAAa,CACTA,YAAa,cACbpX,KAAM,CAAC,CAAE+X,KAAM,OAAQq4E,OAAQ61Q,QAtB/C,uCA0BI,SAAI4B,EAAWzzU,EAAQ2zU,GACnB,IAAM/nW,EAAO8iL,IAAsB89K,SAASmH,EAAU,CAClD33T,KAAMwxI,IAAee,SACrB/gL,MAAO,UAEX,OAAO8lW,GAAqCtzU,EAAuF,kBAA1D,OAAb2zU,QAAkC,IAAbA,OAAsB,EAASA,EAAS33T,MACnHpwC,EAAK+iL,UACD9+J,IAAa,oDAAqD,gDAAiD8jV,EAAS33T,MAC5HnsB,IAAa,0CAA2C,sCAAuC8jV,EAAS33T,MAC5GpwC,EAAK+iL,UACD9+J,IAAa,+CAAgD,uCAC7DA,IAAa,qCAAsC,6BAA8B,CACvFsqF,QAASqzE,IAAee,SAAS1yK,SAASjQ,EAAKowC,MAAQpwC,EAAKowC,KAAOwxI,IAAe3iK,KAClFsjK,4BAA6BviL,EAAK+iL,WACnC/iL,EAAK4B,WAxChB,GAAoCmzB,KA2CvBkzU,GAAb,kDACI,aAAc,uCACJ,CACFvwV,GAAI84N,IACJxsO,MAAOigB,IAAa,eAAgB,oBACpCgR,MAAO,mBACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUy+B,IAAkBwB,wBAC/E9J,gBAAiB,CACbvC,MAAO,iBACPI,MAAO,IACPnB,KAAMH,KAAeC,IAAI8L,IAAkBz+B,SAAU0mW,GAA8BpkL,IAAeQ,UAEtGhrK,YAAa,CACTA,YAAa,mBACbpX,KAAM,CAAC,CAAE+X,KAAM,OAAQq4E,OAAQ61Q,QAd/C,uCAkBI,SAAI4B,EAAWzzU,EAAQ2zU,GACnB,IAAM/nW,EAAO8iL,IAAsB89K,SAASmH,EAAU,CAClD33T,KAAMwxI,IAAeQ,OACrBxgL,MAAO,UAEX,OAAO8lW,GAAqCtzU,EAAuF,kBAA1D,OAAb2zU,QAAkC,IAAbA,OAAsB,EAASA,EAAS33T,MACnHpwC,EAAK+iL,UACD9+J,IAAa,kDAAmD,kDAAmD8jV,EAAS33T,MAC5HnsB,IAAa,wCAAyC,wCAAyC8jV,EAAS33T,MAC5GpwC,EAAK+iL,UACD9+J,IAAa,6CAA8C,yCAC3DA,IAAa,mCAAoC,+BAAgC,CACvFsqF,QAASqzE,IAAeQ,OAAOnyK,SAASjQ,EAAKowC,MAAQpwC,EAAKowC,KAAOwxI,IAAe3iK,KAChFkjK,sBAAsB,EACtBI,4BAA6BviL,EAAK+iL,WACnC/iL,EAAK4B,WAjChB,GAAkCmzB,KAoCrBmzU,GAAb,kDACI,aAAc,uCACJ,CACFxwV,GAAI+4N,IACJzsO,MAAOigB,IAAa,wBAAyB,oBAC7CgR,MAAO,mBACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAU0mW,GAA8BpkL,IAAegB,wBAC1GpxJ,OAAQ,CACJO,OAAQgM,IAAkBG,gBAC1B9L,QAAS,KACTF,OAAQ,OAVxB,uCAcI,SAAI21U,EAAWzzU,GACX,OAAOszU,GAAqCtzU,EAAQnQ,IAAa,qCAAsC,wCAAyC,CAAEsqF,QAASqzE,IAAegB,sBAAuBT,sBAAsB,GAAQ,gBAfvO,GAA2CptJ,KAkB9BozU,GAAb,kDACI,aAAc,uCACJ,CACFzwV,GAAIg5N,IACJ1sO,MAAOigB,IAAa,eAAgB,WACpCgR,MAAO,UACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAU0mW,GAA8BpkL,IAAeiB,iBANtH,uCASI,SAAIglL,EAAWzzU,GACX,OAAOszU,GAAqCtzU,EAAQnQ,IAAa,qBAAsB,+BAAgC,CAAEsqF,QAASqzE,IAAeiB,aAAcV,sBAAsB,GAAQ,gBAVrM,GAAkCptJ,KAarB0xU,GAAb,kDACI,aAAc,uCACJ,CACF/uV,GAAI+uV,EAAcD,GAClBxiW,MAAOigB,IAAa,gBAAiB,eACrCgR,MAAO,cACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAU0mW,GAA8BpkL,IAAec,WAC1GlxJ,OAAQ,CACJO,OAAQgM,IAAkBG,gBAC1B9L,QAAS,KACTI,IAAK,CACDJ,QAAS,MAEbF,OAAQ,OAbxB,uCAiBI,SAAI21U,EAAWzzU,GACX,OAAOszU,GAAqCtzU,EAAQnQ,IAAa,oCAAqC,2BAA4B,CAC9HsqF,QAASqzE,IAAec,SACxBH,6BAA6B,GAC9B,gBArBX,GAAmCxtJ,KAwBnC0xU,GAAcD,GAAK,yB,6BC/EnB,oEAGO,IAmBK4B,EAnBCC,EAA4B,CAEvCC,KAAM,EAGNt7T,IAAK,EAGLu7T,UAAW,IAWb,SAAYH,GAEV,2BAGA,+BAGA,qCAMA,2BAdF,CAAYA,MAAkB,M,+LC/RvB,SAASxtH,EAAK7tO,GACjB,OAAOohL,EAAOphL,EAAK,GAEhB,SAASohL,EAAOphL,EAAKmhL,GACxB,cAAenhL,GACX,IAAK,SACD,OAAY,OAARA,EACOy7V,EAAW,IAAKt6K,GAElBttL,MAAM+b,QAAQ5P,IA6BhB2jB,EA5Bc3jB,EA6B7B07V,EAAiBD,EAAW,OADRC,EA5Bcv6K,GA8B3Bx9J,EAAIsI,QAAO,SAACk1J,EAAS9jL,GAAV,OAAmB+jL,EAAO/jL,EAAM8jL,KAAUu6K,IAEhE,SAAoB17V,EAAK07V,GAErB,OADAA,EAAiBD,EAAW,OAAQC,GAC7BlpW,OAAOsY,KAAK9K,GAAK9C,OAAO+uB,QAAO,SAACk1J,EAASzuL,GAE5C,OADAyuL,EAAUw6K,EAAWjpW,EAAKyuL,GACnBC,EAAOphL,EAAItN,GAAMyuL,KACzBu6K,GAnCYE,CAAW57V,EAAKmhL,GAC3B,IAAK,SACD,OAAOw6K,EAAW37V,EAAKmhL,GAC3B,IAAK,UACD,OAYZ,SAAqBztL,EAAGgoW,GACpB,OAAOD,EAAW/nW,EAAI,IAAM,IAAKgoW,GAblBG,CAAY77V,EAAKmhL,GAC5B,IAAK,SACD,OAAOs6K,EAAWz7V,EAAKmhL,GAC3B,IAAK,YACD,OAAOs6K,EAAW,IAAKt6K,GAC3B,QACI,OAAOs6K,EAAW,IAAKt6K,GAgBnC,IAAmBx9J,EAAK+3U,EAbjB,SAASD,EAAW9kT,EAAK+kT,GAC5B,OAAUA,GAAkB,GAAKA,EAAkB/kT,EAAO,EAKvD,SAASglT,EAAWjnW,EAAGysL,GAC1BA,EAAUs6K,EAAW,OAAQt6K,GAC7B,IAAK,IAAIjvL,EAAI,EAAGC,EAASuC,EAAEvC,OAAQD,EAAIC,EAAQD,IAC3CivL,EAAUs6K,EAAW/mW,EAAEyhC,WAAWjkC,GAAIivL,GAE1C,OAAOA,EAaX,SAASp9E,EAAW3tG,EAAO0lW,GAAsB,IAAhBC,EAAgB,uDAAJ,GAEnChwS,EAAQgwS,EAAYD,EAEpBE,KAAU,GAAKjwS,GAAS,GAE9B,OAAS31D,GAAS0lW,GAAUE,EAAO5lW,KAAW21D,KAAY,EAE9D,SAASigP,EAAKvqD,GACV,IAD+D,IAA/CpuP,EAA+C,uDAAvC,EAAG0gH,EAAoC,uDAA5B0tI,EAAK/qE,WAAYtgL,EAAW,uDAAH,EACnDlE,EAAI,EAAGA,EAAI6hH,EAAO7hH,IACvBuvP,EAAKpuP,EAAQnB,GAAKkE,EAG1B,SAAS6lW,EAAQ7lW,EAAOjE,GACpB,IADwC,IAAZkqF,EAAY,uDAAL,IAC5BjmF,EAAMjE,OAASA,GAClBiE,EAAQimF,EAAOjmF,EAEnB,OAAOA,EAEJ,SAAS2sV,EAAYmZ,GAA6B,IAAdC,EAAc,uDAAJ,GACjD,OAAID,aAAyBE,YAClBvoW,MAAM8E,KAAK,IAAIy3D,WAAW8rS,IAAgB1lV,KAAI,SAAA9iB,GAAC,OAAIA,EAAEmZ,SAAS,IAAIwkM,SAAS,EAAG,QAAMtgM,KAAK,IAE7FkrV,GAASC,IAAkB,GAAGrvV,SAAS,IAAKsvV,EAAU,GAK1D,IAAME,EAAb,WACI,aAAc,oBACVjoW,KAAKkoW,IAAM,WACXloW,KAAKmoW,IAAM,WACXnoW,KAAKooW,IAAM,WACXpoW,KAAKqoW,IAAM,UACXroW,KAAKsoW,IAAM,WACXtoW,KAAKuoW,MAAQ,IAAIvsS,WAAW,IAC5Bh8D,KAAKwoW,QAAU,IAAIC,SAASzoW,KAAKuoW,MAAM/uU,QACvCx5B,KAAK0oW,SAAW,EAChB1oW,KAAK2oW,UAAY,EACjB3oW,KAAK4oW,uBAAyB,EAC9B5oW,KAAK6oW,WAAY,EAZzB,0CAcI,SAAOvpU,GACH,IAAMgzN,EAAShzN,EAAIvhC,OACnB,GAAe,IAAXu0P,EAAJ,CAGA,IAGIzuN,EACAzD,EAJE0oU,EAAO9oW,KAAKuoW,MACdQ,EAAU/oW,KAAK0oW,SACfM,EAAwBhpW,KAAK4oW,uBAYjC,IAT8B,IAA1BI,GACAnlU,EAAWmlU,EACX5oU,GAAU,EACV4oU,EAAwB,IAGxBnlU,EAAWvE,EAAIyC,WAAW,GAC1B3B,EAAS,KAEA,CACT,IAAIiG,EAAYxC,EAChB,GAAI41D,IAAwB51D,GAAW,CACnC,KAAIzD,EAAS,EAAIkyN,GAWZ,CAED02G,EAAwBnlU,EACxB,MAbA,IAAMM,EAAe7E,EAAIyC,WAAW3B,EAAS,GACzCq5D,IAAuBt1D,IACvB/D,IACAiG,EAAYozD,IAAyB51D,EAAUM,IAI/CkC,EAAY,WASfozD,IAAuB51D,KAE5BwC,EAAY,OAIhB,GAFA0iU,EAAU/oW,KAAKipW,MAAMH,EAAMC,EAAS1iU,OACpCjG,EACakyN,GAIT,MAHAzuN,EAAWvE,EAAIyC,WAAW3B,GAMlCpgC,KAAK0oW,SAAWK,EAChB/oW,KAAK4oW,uBAAyBI,KAnEtC,mBAqEI,SAAMF,EAAMC,EAAS1iU,GA4BjB,OA3BIA,EAAY,IACZyiU,EAAKC,KAAa1iU,EAEbA,EAAY,MACjByiU,EAAKC,KAAa,KAA2B,KAAZ1iU,KAAoD,EACrFyiU,EAAKC,KAAa,KAA2B,GAAZ1iU,KAAoD,GAEhFA,EAAY,OACjByiU,EAAKC,KAAa,KAA2B,MAAZ1iU,KAAoD,GACrFyiU,EAAKC,KAAa,KAA2B,KAAZ1iU,KAAoD,EACrFyiU,EAAKC,KAAa,KAA2B,GAAZ1iU,KAAoD,IAGrFyiU,EAAKC,KAAa,KAA2B,QAAZ1iU,KAAoD,GACrFyiU,EAAKC,KAAa,KAA2B,OAAZ1iU,KAAoD,GACrFyiU,EAAKC,KAAa,KAA2B,KAAZ1iU,KAAoD,EACrFyiU,EAAKC,KAAa,KAA2B,GAAZ1iU,KAAoD,GAErF0iU,GAAW,KACX/oW,KAAKkpW,QACLH,GAAW,GACX/oW,KAAK2oW,WAAa,GAElBG,EAAK,GAAKA,EAAK,IACfA,EAAK,GAAKA,EAAK,IACfA,EAAK,GAAKA,EAAK,KAEZC,IAjGf,oBAmGI,WAWI,OAVK/oW,KAAK6oW,YACN7oW,KAAK6oW,WAAY,EACb7oW,KAAK4oW,yBAEL5oW,KAAK4oW,uBAAyB,EAC9B5oW,KAAK0oW,SAAW1oW,KAAKipW,MAAMjpW,KAAKuoW,MAAOvoW,KAAK0oW,SAAU,QAE1D1oW,KAAK2oW,WAAa3oW,KAAK0oW,SACvB1oW,KAAKmpW,WAEFxa,EAAY3uV,KAAKkoW,KAAOvZ,EAAY3uV,KAAKmoW,KAAOxZ,EAAY3uV,KAAKooW,KAAOzZ,EAAY3uV,KAAKqoW,KAAO1Z,EAAY3uV,KAAKsoW,OA9GhI,qBAgHI,WACItoW,KAAKuoW,MAAMvoW,KAAK0oW,YAAc,IAC9B9wD,EAAK53S,KAAKuoW,MAAOvoW,KAAK0oW,UAClB1oW,KAAK0oW,SAAW,KAChB1oW,KAAKkpW,QACLtxD,EAAK53S,KAAKuoW,QAGd,IAAMa,EAAK,EAAIppW,KAAK2oW,UACpB3oW,KAAKwoW,QAAQa,UAAU,GAAI3xV,KAAKE,MAAMwxV,EAAK,aAAa,GACxDppW,KAAKwoW,QAAQa,UAAU,GAAID,EAAK,YAAY,GAC5CppW,KAAKkpW,UA3Hb,mBA6HI,WAGI,IAFA,IAAMI,EAAarB,EAAWsB,YACxBpqW,EAAOa,KAAKwoW,QACTrkW,EAAI,EAAGA,EAAI,GAAeA,GAAK,EACpCmlW,EAAWD,UAAUllW,EAAGhF,EAAKqqW,UAAUrlW,GAAG,IAAQ,GAEtD,IAAK,IAAIA,EAAI,GAAIA,EAAI,IAAgBA,GAAK,EACtCmlW,EAAWD,UAAUllW,EAAGwrG,EAAY25P,EAAWE,UAAUrlW,EAAI,IAAI,GAASmlW,EAAWE,UAAUrlW,EAAI,IAAI,GAASmlW,EAAWE,UAAUrlW,EAAI,IAAI,GAASmlW,EAAWE,UAAUrlW,EAAI,IAAI,GAAS,IAAI,GASpM,IAPA,IAKI1B,EAAGwB,EACHgyS,EANA/xS,EAAIlE,KAAKkoW,IACT5oW,EAAIU,KAAKmoW,IACTjnW,EAAIlB,KAAKooW,IACT/oW,EAAIW,KAAKqoW,IACT1nW,EAAIX,KAAKsoW,IAGJnkW,EAAI,EAAGA,EAAI,GAAIA,IAChBA,EAAI,IACJ1B,EAAKnD,EAAI4B,GAAQ5B,EAAKD,EACtB4E,EAAI,YAECE,EAAI,IACT1B,EAAInD,EAAI4B,EAAI7B,EACZ4E,EAAI,YAECE,EAAI,IACT1B,EAAKnD,EAAI4B,EAAM5B,EAAID,EAAM6B,EAAI7B,EAC7B4E,EAAI,aAGJxB,EAAInD,EAAI4B,EAAI7B,EACZ4E,EAAI,YAERgyS,EAAQtmM,EAAWzrG,EAAG,GAAKzB,EAAI9B,EAAIsD,EAAIqlW,EAAWE,UAAc,EAAJrlW,GAAO,GAAU,WAC7ExD,EAAItB,EACJA,EAAI6B,EACJA,EAAIyuG,EAAWrwG,EAAG,IAClBA,EAAI4E,EACJA,EAAI+xS,EAERj2S,KAAKkoW,IAAOloW,KAAKkoW,IAAMhkW,EAAK,WAC5BlE,KAAKmoW,IAAOnoW,KAAKmoW,IAAM7oW,EAAK,WAC5BU,KAAKooW,IAAOpoW,KAAKooW,IAAMlnW,EAAK,WAC5BlB,KAAKqoW,IAAOroW,KAAKqoW,IAAMhpW,EAAK,WAC5BW,KAAKsoW,IAAOtoW,KAAKsoW,IAAM3nW,EAAK,eAzKpC,KA4KAsnW,EAAWsB,YAAc,IAAId,SAAS,IAAIT,YAAY,O,kGC3PhDyB,EAAsB,IAAIpoU,OAAJ,wBAA4By7B,IAAQC,mBAApC,cAA4DD,IAAQE,uBAApE,UAAoG,KACzH,SAAS0sS,EAAqBvgS,GAIjC,IAHA,IACIpqE,EADEkY,EAAW,IAAIxX,MAEjBkqW,EAAY,EAAGC,EAAW,EACsB,QAA5C7qW,EAAQ0qW,EAAoBtzV,KAAKgzD,KAAiB,CACtDygS,EAAW7qW,EAAME,OAAS,EAC1BgY,EAAS1T,KAAK4lE,EAAK9oC,UAAUspU,EAAWC,IACxCD,GAAa5qW,EAAME,OAAS,GAAKF,EAAM,GAAGhB,OAC1C,MAA6BgB,EAA7B,mBAASuoG,EAAT,KAAkBp4D,EAAlB,KACAj4B,EAAS1T,KAAK+jG,EAAU,KAAH,OAAQp4D,EAAR,KAAqB26T,EAAW,CAAEtzV,GAAI24B,KAK/D,OAHIy6T,EAAYxgS,EAAKprE,QACjBkZ,EAAS1T,KAAK4lE,EAAK9oC,UAAUspU,IAE1B1yV,EAEJ,SAAS4yV,EAAW33U,GAAM,MACvBttB,EAAO8nK,IAAA,QAEb,OADA,EAAA9nK,EAAKiK,WAAU2K,IAAf,oBAAsBsjD,IAAQU,iBAAiBtrC,KACxCttB,I,6BC1BX,8CAKaklW,EAA0Bp9T,YAAgB,iB,+ICoEvD,IAsJIq9T,EACAC,EAvJJ,0BAGU,KAAAC,MAAQ,IAAK,IAAgBC,QAAU7sV,KAGvC,KAAAwvK,KAAO,IAAI,IAIhB,KAQK,KAAAs9K,OAAS,IAAI1oT,QAiGb,KAAA2oT,WAAa,IAAI7iU,IAGT,KAAA+Z,MAAQthD,KAAKqqW,MAAM,IACrC,OA3GS,YAAAC,QAAP,SAAetoW,GACb,OAAO,YAAgBA,IAAUhC,KAAKiqW,MAAM3nT,IAAItgD,IAO3C,YAAAm/E,KAAP,SAAYn/E,GACV,GAAI,YAAgBA,GAAQ,CAC1B,IAAM2hF,EAtFZ,SAAwB3hF,GACtB,OAAI,YAAgBA,GACXvC,MAAM+b,QAAQxZ,GACjBA,EAAM0C,MAAM,GACb,aAAGlF,UAAWpB,OAAO8c,eAAelZ,IAAWA,GAE7CA,EAgFUuoW,CAAYvoW,GAEzB,OADAhC,KAAKmqW,OAAO3iU,IAAIm8C,EAAM3hF,GACf2hF,EAET,OAAO3hF,GAKF,YAAAqoW,MAAP,SAAaroW,GAAb,WACE,GAAI,YAAgBA,GAAQ,CAC1B,IAAMwoW,EAAWxqW,KAAKmqW,OAAO13U,IAAIzwB,GACjC,GAAIwoW,EAAU,OAAOA,EAGrB,OADcpsW,OAAO8c,eAAelZ,IAElC,KAAKvC,MAAMf,UACT,GAAIsB,KAAKiqW,MAAM3nT,IAAItgD,GAAQ,OAAOA,EAClC,IAAMmhE,EAAgBnhE,EAAgBogB,IAAIpiB,KAAKqqW,MAAOrqW,MActD,OAVM4E,EAAO5E,KAAK6sL,KAAK49K,YAAYtnS,IACzBA,QACRnjE,KAAKiqW,MAAMzwV,IAAI5U,EAAKu+D,MAAQA,GAIxBgoB,SACF/sF,OAAO2f,OAAOolD,IAGXv+D,EAAKu+D,MAGd,KAAK,KACL,KAAK/kE,OAAOM,UACV,GAAIsB,KAAKiqW,MAAM3nT,IAAItgD,GAAQ,OAAOA,EAClC,IAAM,EAAQ5D,OAAO8c,eAAelZ,GAC9B,EAAQ,CAAC,GACT0U,EAAO1W,KAAK0qW,WAAW1oW,GAC7B,EAAMuB,KAAKmT,EAAK2hE,MAChB,IAYMzzE,EAZA,EAAkB,EAAM7G,OAa9B,GAZA2Y,EAAKi0V,OAAOh0V,SAAQ,SAAArY,GAClB,EAAMiF,KAAK,EAAK8mW,MAAOroW,EAAc1D,UAUjCsG,EAAO5E,KAAK6sL,KAAK49K,YAAY,IACzBrsV,OAAQ,CAChB,IAAM,EAAMxZ,EAAKwZ,OAAShgB,OAAO8B,OAAO,GACxCF,KAAKiqW,MAAMzwV,IAAI,GACf9C,EAAKi0V,OAAOh0V,SAAQ,SAACrY,EAAKR,GACxB,EAAIQ,GAAO,EAAM,EAAkBR,MAKjCqtF,SACF/sF,OAAO2f,OAAO,GAGlB,OAAOnZ,EAAKwZ,QAIlB,OAAOpc,GAOD,YAAA0oW,WAAR,SAAmB9+V,GACjB,IAAM8K,EAAOtY,OAAOsY,KAAK9K,GACnBhH,EAAO5E,KAAK6sL,KAAK49K,YAAY/zV,GACnC,IAAK9R,EAAK8R,KAAM,CACdA,EAAK5N,OACL,IAAMuvE,EAAO5xC,KAAK0xH,UAAUzhJ,IACtB9R,EAAK8R,KAAO1W,KAAKoqW,WAAW33U,IAAI4lD,KACpCr4E,KAAKoqW,WAAW5iU,IAAI6wC,EAAMzzE,EAAK8R,KAAO,CAAEi0V,OAAQj0V,EAAM2hE,KAAI,IAG9D,OAAOzzE,EAAK8R,MAQhB,EAvHA,GAiIak0V,EAAqBxsW,OAAOgC,QAAO,SAAU4B,GACxD,GAAI,YAAgBA,GAAQ,MACH,IAAnB+nW,GACFc,IAEF,IAAMC,EAAYf,EAAeM,MAAMroW,GACnCq2E,EAAO2xR,EAAev3U,IAAIq4U,GAO9B,YANa,IAATzyR,GACF2xR,EAAexiU,IACbsjU,EACAzyR,EAAO5xC,KAAK0xH,UAAU2yM,IAGnBzyR,EAET,OAAO5xC,KAAK0xH,UAAUn2J,KACrB,CACD2T,MAAOk1V,IAOT,SAASA,IACPd,EAAiB,IAAIgB,EACrBf,EAAiB,IAAK,IAAgBvoT,QAAUla,O,6HC5N5C,SAAUyjU,EAAcrvV,GAC5B,OAAOA,EAAIhc,eAAe,iBAO5B,IA2BA,cAcE,WAAY,G,IACVsrW,EAAa,gBACbC,EAAY,eACZC,EAAY,eACZ74Q,EAAY,eACZ84Q,EAAS,YALX,EAaE,YAAM94Q,IAAa,K,OACnB,EAAK24Q,cAAgBA,GAAiB,GACtC,EAAKC,aAAeA,GAAgB,GACpC,EAAKC,aAAeA,GAAgB,KACpC,EAAKvsW,QAAU0zF,GA1DU,SAAC32E,GAC5B,IAAI/c,EAAU,GAmBd,OAjBI,YAAgB+c,EAAIsvV,gBAAkB,YAAgBtvV,EAAIuvV,iBAC3CvvV,EAAIsvV,eAAiB,IACnCnnW,OAAO6X,EAAIuvV,cAAgB,IACvBv0V,SAAQ,SAAC/S,GACd,IAAM0uF,EAAe1uF,EACjBA,EAAMhF,QACN,2BACJA,GAAW,UAAG0zF,EAAY,SAI1B32E,EAAIwvV,eACNvsW,GAAW,UAAG+c,EAAIwvV,aAAavsW,QAAO,OAIxCA,EAAUA,EAAQE,QAAQ,MAAO,IAuCAusW,CAAqB,GACpD,EAAKD,UAAYA,EAIhB,EAAa5rW,UAAY8rW,EAAY5sW,U,EAE1C,OAtCiC,iBAsCjC,EAtCA,CAAiCwM,Q,mF/S7B7B23C,EAAW,EAmCf,2BAoDA,OAnDgB,EAAA5Y,SAAd,SAA0B3rC,EAAa8tC,GACrC,IAAM0W,EAAiBC,IAMvB,YAJ4BlpC,IAAxBipC,EAAexkD,KACjBwkD,EAAexkD,GAA+B,oBAAjB8tC,EAA+BA,IAA8BA,GAGrF0W,EAAexkD,IAGV,EAAA0kD,SAAd,SAA0B1kD,EAAa0D,GACrC,IAAM8gD,EAAiBC,IACjBE,EAAYH,EAAc,cAC5B5kC,EAAW4kC,EAAexkD,GAE9B,GAAI0D,IAAUkc,EAAU,CACtB4kC,EAAexkD,GAAO0D,EAEtB,IAAIkhD,EAAoB,CACtBhlC,SAAQ,EACRlc,MAAK,EACL1D,IAAG,GAGL,IAAK,IAAIiY,KAAM0sC,EACTA,EAAUtjD,eAAe4W,IAC3B0sC,EAAU1sC,GAAI2sC,GAKpB,OAAOlhD,GAGK,EAAAmhD,kBAAd,SAAgCvB,GAG9B,IAAIrrC,EAAKqrC,EAAGwB,OACNH,EAAYI,IAEb9sC,IACHA,EAAKqrC,EAAGwB,OAAStjD,OAAO+iD,MAG1BI,EAAU1sC,GAAMqrC,GAGJ,EAAA0B,qBAAd,SAAmC1B,UACfyB,IACDzB,EAAGwB,SAExB,EApDA,GAuDA,SAASL,I,MAGDQ,EAFM,OAAArF,EAAA,MAEqC,GAQjD,OANKqF,EAAS,qBACZA,EAAS,qBAA2B,MAClC,cAA4B,GAC7B,IAGIA,EAAS,mBAGlB,SAASF,IAEP,OADuBN,IACF,cClGvB,IACMU,EAAoB,CAAEC,SAAU,GAAIC,eAAgB,GAAIC,qBAAqB,GAE/EC,EAAeC,EAAe7Z,SAHF,iBAGqD,CACnFyZ,SAAU,GACVC,eAAgB,GAChBC,qBAAqB,IAGnBG,EAA0B,GAE9B,2BA4EA,OAzEgB,EAAApuC,MAAd,WACEkuC,EAAaH,SAAW,GACxBG,EAAaF,eAAiB,IAMlB,EAAAK,cAAd,SAA4BN,GAC1BG,EAAaH,SAAQ,2BAAQG,EAAaH,UAAaA,GACvDO,EAAeC,gBAMH,EAAAC,oBAAd,SAAkCC,EAAmBV,GACnDG,EAAaF,eAAeS,GAAU,2BAAQP,EAAaF,eAAeS,IAAeV,GACzFO,EAAeC,gBAGH,EAAAG,YAAd,SACEnjC,EACAkjC,EACAE,QAAA,IAAAA,MAAA,GAOA,IAJA,IAAMZ,EAAsB,GACtBa,EAAuBH,GAAaE,EAAcX,eAAeS,IAAe,GAChFI,EAAwBJ,GAAaP,EAAaF,eAAeS,IAAe,GAEjE,MAAAljC,EAAA,eAAY,CAA5B,IAAIksB,EAAQ,KACfsW,EAAStW,GACPmX,EAAoBnX,IACpBkX,EAAcZ,SAAStW,IACvBoX,EAAqBpX,IACrByW,EAAaH,SAAStW,GAG1B,OAAOsW,GAQK,EAAAe,oBAAd,SAAkCvhB,EAAkBwhB,GAClDT,EAAeU,kBAAmB,EAClC,IACEzhB,IACA,UAGF+gB,EAAeU,kBAAmB,EAC7BD,GACHT,EAAeC,gBAIL,EAAAU,QAAd,SAAsBC,GACpBd,EAAQxgD,KAAKshD,IAGD,EAAAC,UAAd,SAAwBD,GACtBd,EAAUA,EAAQ/0B,QAAO,SAAC4yB,GAAmB,OAAAA,IAAA,MAGhC,EAAAsC,aAAf,WACOD,EAAeU,kBAClBZ,EAAQptC,SAAQ,SAACirC,GAAmB,OAAAA,QAG1C,EA5EA,I,6B+SjCA,+CAkDA,aA6FE,WAAmBtsC,GAzFX,KAAA0sJ,IAAcupM,EAAWC,YA0F/BxrW,KAAKyrW,QAAUn2V,EACftV,KAAK0rW,cAAgB,GAsLzB,OAxQgB,EAAAC,MAAd,SAAoB/tW,EAAao8B,EAAmB4xU,EAAiBC,GACnE,IAAIC,EAEJ,GAAIP,EAAWQ,WAAWnuW,IACxB,GAAwB,qBAAbwM,UAA4BA,SAASuzJ,YAAa,CAC3D,IAAIgxB,EAAKvkL,SAASuzJ,YAAY,cAE9BgxB,EAAG/wB,UAAU5jI,EAAW6xU,IAAe,GAAO,GAE9C,YAAOl9K,EAAIi9K,GAEXE,EAASluW,EAAOk/J,cAAc6xB,QACzB,GAAwB,qBAAbvkL,UAA6BA,SAAiB4hW,kBAAmB,CAEjF,IAAIC,EAAS7hW,SAAiB4hW,kBAAkBJ,GAEhDhuW,EAAOsuW,UAAU,KAAOlyU,EAAWiyU,SAKrC,KAAOruW,IAAqB,IAAXkuW,GAAkB,CACjC,IAAIzyU,EAA8Bz7B,EAAOuuW,WACrCC,EAAe/yU,EAASA,EAAOW,GAAa,KAEhD,GAAIoyU,EACF,IAAK,IAAI71V,KAAM61V,EACb,GAAIA,EAAazsW,eAAe4W,GAK9B,IAJA,IAAI81V,EAAkCD,EAAa71V,GAI1C+9P,EAAY,GAAc,IAAXw3F,GAAoBx3F,EAAY+3F,EAAgBtuW,OAAQu2Q,IAAa,CAC3F,IAAIhzL,EAAS+qR,EAAgB/3F,GAEzBhzL,EAAOgrR,iBACTR,EAASxqR,EAAOgrR,eAAe1sW,KAAK0hF,EAAOhsE,OAAQs2V,IAQ7DhuW,EAASiuW,EAAcjuW,EAAO0X,OAAS,KAI3C,OAAOw2V,GAGK,EAAAS,WAAd,SAAyB3uW,EAAao8B,GACpC,IAAIX,EAASz7B,GAA+BA,EAAOuuW,WAEnD,QAAS9yU,KAAYA,EAAOW,IAIhB,EAAAwyU,WAAd,SAAyB5uW,EAAao8B,GACpC,IAAIyyU,EAAiB7uW,GAAiCA,EAAO8uW,iBAE7D,QAASD,KAAoBA,EAAezyU,IAGhC,EAAA7lB,gBAAd,SAA8BQ,GACxBA,EAAMR,gBACRQ,EAAMR,kBAGNQ,EAAMX,cAAe,GAIV,EAAA+3V,WAAf,SAA0BnuW,GACxB,QACIA,MAAaA,EAAO8H,kBAA4C,qBAAhBqL,aAA+BnT,aAAkBmT,cAUhG,YAAAqH,QAAP,WACOpY,KAAKsd,cACRtd,KAAKsd,aAAc,EAEnBtd,KAAKihT,MACLjhT,KAAKyrW,QAAU,OAKZ,YAAAkB,MAAP,SAAa/uW,EAAay7B,EAAiDpzB,GACzE,IAAK,IAAI+zB,KAAaX,EAChBA,EAAO15B,eAAeq6B,IACxBh6B,KAAKi6B,GAAGr8B,EAAQo8B,EAAWX,EAAOW,GAAY/zB,IAS7C,YAAAg0B,GAAP,SACEr8B,EACAo8B,EACAvyB,EACApC,GAJF,WAME,GAAI20B,EAAUp5B,QAAQ,MAAQ,EAG5B,IAFA,IAAIy4B,EAASW,EAAUV,MAAM,SAEpBx7B,EAAI,EAAGA,EAAIu7B,EAAOt7B,OAAQD,IACjCkC,KAAKi6B,GAAGr8B,EAAQy7B,EAAOv7B,GAAI2J,EAAUpC,OAElC,CACL,IAAI,EAASrF,KAAKyrW,QACdmB,EAA4B,CAC9BhvW,OAAQA,EACRo8B,UAAWA,EACX1kB,OAAQ,EACR7N,SAAUA,EACVpC,QAAO,GAcT,IAVIg0B,EAA+Bz7B,EAAOuuW,WAAavuW,EAAOuuW,YAAc,IACrEnyU,GACLX,EAAOW,IACW,CAChB2lF,MAAO,GAEXtmF,EAAOW,GAAWh6B,KAAKgiK,KAAO3oI,EAAOW,GAAWh6B,KAAKgiK,MAAQ,GAC5C3oI,EAAOW,GAAWh6B,KAAKgiK,KAAMz+J,KAAKqpW,GACnDvzU,EAAOW,GAAW2lF,QAEd4rP,EAAWQ,WAAWnuW,GAAS,CACjC,IAAIivW,EAAsB,W,IAAC,sDACzB,IAAI,EAAKvvV,YAAT,CAIA,IAAIlb,EACJ,IAIE,IAAe,KAHfA,EAASqF,EAAShH,MAAM,EAAQ5B,KAGRA,EAAK,GAAI,CAC/B,IAAI8B,EAAI9B,EAAK,GAET8B,EAAEsT,gBACJtT,EAAEsT,iBAGAtT,EAAEwT,iBACJxT,EAAEwT,kBAGJxT,EAAEqT,cAAe,GAEnB,MAAOrT,IAIT,OAAOyB,IAGTwqW,EAAYE,gBAAkBD,EAE1BjvW,EAAO8H,iBACK9H,EAAQ8H,iBAAiBs0B,EAAW6yU,EAAqBxnW,GAC9DzH,EAAOmvW,aAEhBnvW,EAAOmvW,YAAY,KAAO/yU,EAAW6yU,OAElC,CASLD,EAAYN,eARa,W,IAAC,sDACxB,IAAI,EAAKhvV,YAIT,OAAO7V,EAAShH,MAAM,EAAQ5B,IAOlCmB,KAAK0rW,cAAcnoW,KAAKqpW,KAIrB,YAAA3rD,IAAP,SACErjT,EACAo8B,EACAvyB,EACApC,GAEA,IAAK,IAAIvH,EAAI,EAAGA,EAAIkC,KAAK0rW,cAAc3tW,OAAQD,IAAK,CAClD,IAAI8uW,EAAc5sW,KAAK0rW,cAAc5tW,GACrC,KACIF,GAAUA,IAAWgvW,EAAYhvW,WACjCo8B,GAAaA,IAAc4yU,EAAY5yU,cACvCvyB,GAAYA,IAAamlW,EAAYnlW,YACnB,mBAAZpC,GAAyBA,IAAYunW,EAAYvnW,SACzD,CACA,IAAIg0B,EAA8BuzU,EAAYhvW,OAAOuuW,WACjDa,EAAoB3zU,EAAOuzU,EAAY5yU,WACvCizU,EAAcD,EAAoCA,EAAkBhtW,KAAKgiK,KAAO,KAGhFirM,IACyB,IAAvBA,EAAYlvW,QAAiB0J,GAI/BulW,EAAkBrtP,QAClBstP,EAAY16U,OAAO06U,EAAYrsW,QAAQgsW,GAAc,KAJrDI,EAAkBrtP,OAASstP,EAAYlvW,cAChCs7B,EAAOuzU,EAAY5yU,WAAWh6B,KAAKgiK,MAMvCgrM,EAAkBrtP,cACdtmF,EAAOuzU,EAAY5yU,YAI1B4yU,EAAYE,kBACVF,EAAYhvW,OAAO+H,oBACrBinW,EAAYhvW,OAAO+H,oBACjBinW,EAAY5yU,UACZ4yU,EAAYE,gBACZF,EAAYvnW,SAELunW,EAAYhvW,OAAOsvW,aAE5BN,EAAYhvW,OAAOsvW,YAAY,KAAON,EAAY5yU,UAAW4yU,EAAYE,kBAI7E9sW,KAAK0rW,cAAcn5U,OAAOz0B,IAAK,MAM9B,YAAA6tW,MAAP,SAAa3xU,EAAmB4xU,EAAiBC,GAC/C,OAAON,EAAWI,MAAM3rW,KAAKyrW,QAASzxU,EAAW4xU,EAAWC,IAIvD,YAAAsB,QAAP,SAAex4V,GACb,IAAI83V,EAAkBzsW,KAAKyrW,QAAQiB,iBAAmB1sW,KAAKyrW,QAAQiB,kBAAoB,GAEvF,GAAqB,kBAAV/3V,EACT83V,EAAe93V,IAAS,OAExB,IAAK,IAAI7W,EAAI,EAAGA,EAAI6W,EAAM5W,OAAQD,IAChC2uW,EAAe93V,EAAM7W,KAAM,GAhRlB,EAAA0tW,UAAoB,EAoRrC,EArRA,I,8BClDA,sHAKI4B,EALJ,QAOA,GAA8B,qBAAnBnzS,IAAQE,QAA4D,qBAA3BF,IAAQE,OAAOC,QAAyB,CACxF,IAAMizS,EAAiBpzS,IAAQE,OAAOC,QACtCgzS,EAAc,CACN7mW,eAAa,OAAO8mW,EAAe9mW,UACnC+mW,WAAS,OAAOD,EAAeC,MAC/B7yS,UAAQ,OAAO4yS,EAAe5yS,KAClC8yS,IAJU,WAIF,OAAOF,EAAeE,OAC9B9zU,SALU,SAKDhyB,GAAY,OAAO0zD,YAAa1zD,UAK7C2lW,EADwB,qBAAZhzS,EACE,CACN7zD,eAAa,OAAO6zD,EAAQ7zD,UAC5B+mW,WAAS,OAAOlzS,EAAQkzS,MACxB7yS,UAAQ,OAAOL,mKACnBmzS,IAJU,WAIF,OAAOnzS,kKAAA,YAA6BA,EAAQmzS,OACpD9zU,SALU,SAKDhyB,GAAY,OAAO2yD,EAAQ3gC,SAAShyB,KAKnC,CAENlB,eAAa,OAAOohC,IAAY,QAAUF,IAAc,SAAW,SACnE6lU,aACJ7zU,SAJU,SAIDhyB,GAAY,OAAO0zD,YAAa1zD,IAErCgzD,UAAQ,MAAO,IACnB8yS,IAPU,WAOF,MAAO,MAShB,IAAMA,EAAMH,EAAYG,IAOlB9yS,EAAM2yS,EAAY3yS,IAKlBl0D,EAAW6mW,EAAY7mW,W,gDCzDpC,kCAMA,IAAMinW,EAAkB,WAAM,OAAApvW,OAAO8B,OAAO,OAGtC,EAAqBT,MAAMf,UAAzBiY,EAAO,UAAEjS,EAAK,Q,aAUpB,WACU+oW,EACAC,QADA,IAAAD,OAAA,QACA,IAAAC,MAAA,GADA,KAAAD,WACA,KAAAC,WAqBZ,OAlBS,YAAAC,OAAP,W,IAA+B,sDAC7B,OAAO3tW,KAAKyqW,YAAYtnS,IAGnB,YAAAsnS,YAAP,SAAiDtnS,GAC/C,IAAIv+D,EAAmB5E,KAEvB,OADA2W,EAAQ/W,KAAKujE,GAAO,SAAA7kE,GAAO,OAAAsG,EAAOA,EAAKgpW,aAAatvW,MAC7CsG,EAAKzF,OAASyF,EAAKzF,KAAOa,KAAK0tW,SAAShpW,EAAM9E,KAAKujE,MAGpD,YAAAyqS,aAAR,SAAqBtvW,GACnB,IAAM8jB,EAAMpiB,KAAKytW,UASrB,SAAkBzrW,GAChB,cAAeA,GACf,IAAK,SACH,GAAc,OAAVA,EAAgB,MAEtB,IAAK,WACH,OAAO,EAET,OAAO,EAjBwB6rW,CAASvvW,GAClC0B,KAAK8tW,OAAS9tW,KAAK8tW,KAAO,IAAIrsT,SAC9BzhD,KAAK+tW,SAAW/tW,KAAK+tW,OAAS,IAAIxmU,KAClC9xB,EAAQ2M,EAAIqQ,IAAIn0B,GAEpB,OADKmX,GAAO2M,EAAIolB,IAAIlpC,EAAKmX,EAAQ,IAAIu4V,EAAWhuW,KAAKytW,SAAUztW,KAAK0tW,WAC7Dj4V,GAEX,E,2HCnCA,SAASw4V,KAET,I,EAAA,aAKE,WACUt2V,EACDS,QADC,IAAAT,MAAA,UACD,IAAAS,MAAA,GADC,KAAAT,MACD,KAAAS,UAND,KAAAgK,IAAM,IAAImlB,IACV,KAAA2mU,OAA4B,KAC5B,KAAAC,OAA4B,KAsGtC,OA/FS,YAAA7rT,IAAP,SAAWhkD,GACT,OAAO0B,KAAKoiB,IAAIkgC,IAAIhkD,IAGf,YAAAm0B,IAAP,SAAWn0B,GACT,IAAMsG,EAAO5E,KAAKo4Q,QAAQ95Q,GAC1B,OAAOsG,GAAQA,EAAK5C,OAGd,YAAAo2Q,QAAR,SAAgB95Q,GACd,IAAMsG,EAAO5E,KAAKoiB,IAAIqQ,IAAIn0B,GAE1B,GAAIsG,GAAQA,IAAS5E,KAAKkuW,OAAQ,CACxB,IAAAE,EAAiBxpW,EAAZ,MAAEypW,EAAUzpW,EAAL,MAEhBypW,IACFA,EAAMD,MAAQA,GAGZA,IACFA,EAAMC,MAAQA,GAGhBzpW,EAAKwpW,MAAQpuW,KAAKkuW,OAClBtpW,EAAKwpW,MAAOC,MAAQzpW,EAEpBA,EAAKypW,MAAQ,KACbruW,KAAKkuW,OAAStpW,EAEVA,IAAS5E,KAAKmuW,SAChBnuW,KAAKmuW,OAASE,GAIlB,OAAOzpW,GAGF,YAAA4iC,IAAP,SAAWlpC,EAAQ0D,GACjB,IAAI4C,EAAO5E,KAAKo4Q,QAAQ95Q,GACxB,OAAIsG,EACKA,EAAK5C,MAAQA,GAGtB4C,EAAO,CACLtG,IAAG,EACH0D,MAAK,EACLqsW,MAAO,KACPD,MAAOpuW,KAAKkuW,QAGVluW,KAAKkuW,SACPluW,KAAKkuW,OAAOG,MAAQzpW,GAGtB5E,KAAKkuW,OAAStpW,EACd5E,KAAKmuW,OAASnuW,KAAKmuW,QAAUvpW,EAE7B5E,KAAKoiB,IAAIolB,IAAIlpC,EAAKsG,GAEXA,EAAK5C,QAGP,YAAAssW,MAAP,WACE,KAAOtuW,KAAKmuW,QAAUnuW,KAAKoiB,IAAI3V,KAAOzM,KAAK2X,KACzC3X,KAAA,OAAYA,KAAKmuW,OAAO7vW,MAIrB,mBAAP,SAAcA,GACZ,IAAMsG,EAAO5E,KAAKoiB,IAAIqQ,IAAIn0B,GAC1B,QAAIsG,IACEA,IAAS5E,KAAKkuW,SAChBluW,KAAKkuW,OAAStpW,EAAKwpW,OAGjBxpW,IAAS5E,KAAKmuW,SAChBnuW,KAAKmuW,OAASvpW,EAAKypW,OAGjBzpW,EAAKypW,QACPzpW,EAAKypW,MAAMD,MAAQxpW,EAAKwpW,OAGtBxpW,EAAKwpW,QACPxpW,EAAKwpW,MAAMC,MAAQzpW,EAAKypW,OAG1BruW,KAAKoiB,IAAL,OAAgB9jB,GAChB0B,KAAKoY,QAAQxT,EAAK5C,MAAO1D,IAElB,IAKb,EAzGA,GCNa,EAAkB,IAAI,ICFjCqB,EACEvB,OAAOM,UADK,eASR6vW,OAIL,KAJD,EAKE9uW,MADD,MAJe,SAAC+uW,GACf,IAAMrrS,EAAe,GAErB,OADAqrS,EAAW73V,SAAQ,SAAA1N,GAAQ,OAAAk6D,EAAM5/D,KAAK0F,MAC/Bk6D,GACR,E,SAOasrS,EAAiBC,GACvB,IAAAt9K,EAAgBs9K,EAAL,YACQ,oBAAhBt9K,IACTs9K,EAAWt9K,iBAAc,EACzBA,KCpBJ,IAAMu9K,EAA2B,GAKjC,SAASC,EAAOjrS,EAAgBkrS,GAC9B,IAAMlrS,EACJ,MAAM,IAAIz4D,MAAM2jW,GAAmB,qBAuBvC,SAASC,EAAY9sW,GACnB,OAAQA,EAAMjE,QACZ,KAAK,EAAG,MAAM,IAAImN,MAAM,iBACxB,KAAK,EAAG,OAAOlJ,EAAM,GACrB,KAAK,EAAG,MAAMA,EAAM,IAUxB,iBAkBE,WACkBiW,GAAA,KAAAA,KAbF,KAAA48G,QAAU,IAAIx3G,IACd,KAAA0xV,YAAc,IAAIxnU,IAK3B,KAAAynU,cAAsC,KAEtC,KAAA/wC,OAAQ,EACR,KAAAgxC,aAAc,EACL,KAAAjtW,MAAuB,GAwE/B,KAAAmtF,KAA6B,OAnEjC+/Q,EAAMvvP,MAqFZ,OAlFS,YAAA+W,KAAP,WACE,GAA0B,IAAtB12H,KAAKgC,MAAMjE,SAAiBoxW,EAAanvW,MAE3C,OADAovW,EAAepvW,MACRA,KAAKgC,MAAM,IAUf,YAAAqtW,UAAP,SAAiBxwW,GAGf,OAFA+vW,GAAS5uW,KAAKivW,YAAa,uBAC3BG,EAAepvW,MACRmvW,EAAanvW,MAuFxB,SAAyBqzG,EAAiBx0G,GACxCywW,EAAej8P,GAGfk8P,EAAgBC,UAAUn8P,EAAOo8P,EAAmB,CAACp8P,EAAOx0G,IAsJ9D,SAAwBw0G,EAAiBx0G,GACvC,GAA+B,oBAApBw0G,EAAM09E,UACf,IACE09K,EAAiBp7P,GACjBA,EAAM+9E,YAAc/9E,EAAM09E,UAAUtwL,MAAM,KAAM5B,GAChD,MAAO8B,GAMP,OADA0yG,EAAM65L,YACC,EAMX,OAAO,EArKHwiE,CAAer8P,EAAOx0G,IA4B5B,SAAkBw0G,GAGhB,GAFAA,EAAM4qN,OAAQ,EAEVkxC,EAAa97P,GAGf,OAGFs8P,EAAYt8P,GAlCVu8P,CAASv8P,GAGX,OAAOy7P,EAASz7P,EAAMrxG,OAlGhB6tW,CAAgB7vW,KAAMnB,GACtBiwW,EAAS9uW,KAAKgC,QAGb,YAAAkrS,SAAP,WACMltS,KAAKi+T,QACTj+T,KAAKi+T,OAAQ,EACbj+T,KAAKgC,MAAMjE,OAAS,EACpB+xW,EAAY9vW,MAIZyuW,EAAiBzuW,QAGZ,YAAAoY,QAAP,sBACEpY,KAAKktS,WAKLoiE,EAAetvW,MAaf+vW,EAAW/vW,MAAM,SAACsV,EAAQG,GACxBH,EAAO43R,WACP8iE,EAAY16V,EAAQ,OAIjB,YAAA26V,OAAP,WAIEjwW,KAAKoY,WAKA,YAAA83V,SAAP,SAAgBxjT,GACdA,EAAIlzC,IAAIxZ,MACFA,KAAKmvF,OACTnvF,KAAKmvF,KAAOw/Q,EAAarrW,OAAS,IAAI+Z,KAExCrd,KAAKmvF,KAAK31E,IAAIkzC,IAGT,YAAAyjT,WAAP,sBACMnwW,KAAKmvF,OACPo/Q,EAAQvuW,KAAKmvF,MAAMx4E,SAAQ,SAAA+1C,GAAO,OAAAA,EAAG,OAAQ,MAC7C1sD,KAAKmvF,KAAK5xE,QACVoxV,EAAaprW,KAAKvD,KAAKmvF,MACvBnvF,KAAKmvF,KAAO,OAtGF,EAAAwwB,MAAQ,EAyGxB,EA1GA,GA4GA,SAASyvP,EAAe35V,GACtB,IAAMH,EAASi6V,EAAgBtlU,WAC/B,GAAI30B,EAaF,OAZAG,EAAMo/G,QAAQr7G,IAAIlE,GAEZA,EAAOy5V,YAAYzsT,IAAI7sC,IAC3BH,EAAOy5V,YAAYvnU,IAAI/xB,EAAO,IAG5B05V,EAAa15V,GACf26V,EAAiB96V,EAAQG,GAEzB46V,EAAiB/6V,EAAQG,GAGpBH,EAmBX,SAASm6V,EAAkBp8P,EAAiBx0G,GAC1Cw0G,EAAM47P,aAAc,EAEpB57P,EAAMrxG,MAAMjE,OAAS,EACrB,IAEEs1G,EAAMrxG,MAAM,GAAKqxG,EAAMp7F,GAAGxX,MAAM,KAAM5B,GACtC,MAAO8B,GAEP0yG,EAAMrxG,MAAM,GAAKrB,EAGnB0yG,EAAM47P,aAAc,EAGtB,SAASE,EAAa97P,GACpB,OAAOA,EAAM4qN,UAAY5qN,EAAM27P,gBAAiB37P,EAAM27P,cAAcviW,MAetE,SAASqjW,EAAYr6V,GACnBs6V,EAAWt6V,EAAO26V,GAGpB,SAAST,EAAYl6V,GACnBs6V,EAAWt6V,EAAO46V,GAGpB,SAASN,EACPt6V,EACAhO,GAEA,IAAM6oW,EAAc76V,EAAMo/G,QAAQpoH,KAClC,GAAI6jW,EAEF,IADA,IAAMz7O,EAAU05O,EAAQ94V,EAAMo/G,SACrB/2H,EAAI,EAAGA,EAAIwyW,IAAexyW,EACjC2J,EAASotH,EAAQ/2H,GAAI2X,GAM3B,SAAS26V,EAAiB96V,EAAkBG,GAG1Cm5V,EAAOt5V,EAAOy5V,YAAYzsT,IAAI7sC,IAC9Bm5V,EAAOO,EAAa15V,IACpB,IAAM86V,GAAkBpB,EAAa75V,GAErC,GAAMA,EAAO05V,eAGN,GAAI15V,EAAO05V,cAAc1sT,IAAI7sC,GAIlC,YANAH,EAAO05V,cAAgBL,EAAarrW,OAAS,IAAI+Z,IASnD/H,EAAO05V,cAAcx1V,IAAI/D,GAIrB86V,GACFT,EAAYx6V,GAKhB,SAAS+6V,EAAiB/6V,EAAkBG,GAG1Cm5V,EAAOt5V,EAAOy5V,YAAYzsT,IAAI7sC,IAC9Bm5V,GAASO,EAAa15V,IAEtB,IAAM+6V,EAAal7V,EAAOy5V,YAAYt8U,IAAIhd,GAChB,IAAtB+6V,EAAWzyW,OACbuX,EAAOy5V,YAAYvnU,IAAI/xB,EAAiBA,EAAMzT,MA3OnC0C,MAAM,IArBrB,SAAiBR,EAAe5E,GAC9B,IAAMuiC,EAAM39B,EAAEnG,OACd,OAEE8jC,EAAM,GAENA,IAAQviC,EAAEvB,QAEVmG,EAAE29B,EAAM,KAAOviC,EAAEuiC,EAAM,GAyPZ4uU,CAAQD,EAAY/6V,EAAMzT,QACrCsT,EAAO43R,WAGTwjE,EAAiBp7V,EAAQG,GAErB05V,EAAa75V,IAIjBq6V,EAAYr6V,GAGd,SAASo7V,EAAiBp7V,EAAkBG,GAC1C,IAAMk7V,EAAKr7V,EAAO05V,cACd2B,IACFA,EAAE,OAAQl7V,GACM,IAAZk7V,EAAGlkW,OACDkiW,EAAa5wW,OApSE,KAqSjB4wW,EAAaprW,KAAKotW,GAEpBr7V,EAAO05V,cAAgB,OAO7B,SAASM,EAAeh6V,GAClBA,EAAOy5V,YAAYtiW,KAAO,GAC5B6I,EAAOy5V,YAAYp4V,SAAQ,SAACsH,EAAQxI,GAClCu6V,EAAY16V,EAAQG,MAMxBH,EAAO66V,aAIPvB,EAAgC,OAAzBt5V,EAAO05V,eAGhB,SAASgB,EAAY16V,EAAkBG,GACrCA,EAAMo/G,QAAN,OAAqBv/G,GACrBA,EAAOy5V,YAAP,OAA0Bt5V,GAC1Bi7V,EAAiBp7V,EAAQG,GCjU3B,IAAMm7V,EAAe,CACnB1jE,UAAU,EACV90R,SAAS,EACT63V,QAAQ,G,SAYMvjT,EAAUrnD,GAGxB,IAAMwrW,EAAY,IAAItpU,IAChBwpJ,EAAY1rL,GAAWA,EAAQ0rL,UAErC,SAAS+/K,EAAOxyW,GACd,IAAMgX,EAASi6V,EAAgBtlU,WAC/B,GAAI30B,EAAQ,CACV,IAAI,EAAMu7V,EAAUp+U,IAAIn0B,GACnB,GACHuyW,EAAUrpU,IAAIlpC,EAAK,EAAM,IAAI+e,KAE/B/H,EAAO46V,SAAS,GACS,oBAAdn/K,IACT09K,EAAiB,GACjB,EAAIr9K,YAAcL,EAAUzyL,KAwBlC,OAnBAwyW,EAAO7yC,MAAQ,SACb3/T,EACAyyW,GAEA,IAAMrkT,EAAMmkT,EAAUp+U,IAAIn0B,GAC1B,GAAIouD,EAAK,CACP,IAAM,EACJqkT,GACApxW,EAAeC,KAAKgxW,EAAcG,GAChCA,EAAkB,WAItBxC,EAAQ7hT,GAAK/1C,SAAQ,SAAA08F,GAAS,OAAAA,EAAM,QACpCw9P,EAAS,OAAQvyW,GACjBmwW,EAAiB/hT,KAIdokT,EjSpCT,SAAS,IAIL,IAAI,EAAU,IAAI,IAAmC,oBAAZ,SACzC,OAAK,WACD,OAAG,EAAQ,YAAY,YAWI,I,IAoE7B,EAAS,IAAI,I,SAEH,EAMd,EACA,kBAAkD,OAAO,OAAO,OAEhE,IAAM,EAAQ,IAAI,EAChB,EAAQ,KAAO,KAAK,IAAI,EAAG,KAC3B,YAAS,SAAM,aAGX,EAAU,EAAQ,QAClB,EAAe,EAAQ,cAC3B,IAEI,EAAa,WACjB,IAAM,EAAM,EAAa,MACvB,KACA,EAAU,EAAQ,MAAM,KAAM,WAAoB,WAGpD,QAAY,IAAR,EACF,OAAO,EAAiB,MAAM,KAAM,WAGtC,IAAI,EAAQ,EAAM,IAAI,GACjB,IACH,EAAM,IAAI,EAAK,EAAQ,IAAI,EAAM,IACjC,EAAM,UAAY,EAAQ,UAG1B,EAAM,OAAS,WAAM,SAAK,OAAQ,KAGpC,IAAM,EAAQ,EAAM,UAClB,MAAM,UAAU,MAAM,KAAK,YAiB7B,OAZA,EAAM,IAAI,EAAK,GAEf,EAAO,IAAI,GAKL,EAAgB,aACpB,EAAO,SAAQ,YAAS,SAAM,WAC9B,EAAO,SAGF,GAWT,SAAS,EAAS,GAChB,IAAM,EAAQ,EAAM,IAAI,GACpB,GACF,EAAM,WAQV,SAAS,EAAQ,GACf,IAAM,EAAQ,EAAM,IAAI,GACxB,GAAI,EACF,OAAO,EAAM,OAQjB,SAAS,EAAU,GACjB,OAAO,EAAK,OAAQ,GAYtB,OA3CA,OAAO,eAAe,EAAY,OAAQ,CACxC,IAAG,WACD,OAAO,EAAK,IAAQ,MAEtB,cAAc,EACd,YAAY,IASd,EAAW,SAAW,EACtB,EAAW,MAAQ,WACjB,EAAS,EAAa,MAAM,KAAM,aASpC,EAAW,QAAU,EACrB,EAAW,KAAO,WAChB,OAAO,EAAQ,EAAa,MAAM,KAAM,aAM1C,EAAW,UAAY,EACvB,EAAW,OAAS,WAClB,OAAO,EAAU,EAAa,MAAM,KAAM,aAG5C,EAAW,aAAe,EAC1B,EAAW,OAAS,EAAU,WAC5B,OAAO,EAAa,MAAM,KAAM,EAAQ,MAAM,KAAM,aAClD,EAEG,OAAO,OAAO,K,6BkSlNhB,SAASn0S,EAAal5D,GACzB,OAAOA,GAAqB,kBAATA,EAAE8S,GAJzB,oEASO,IAAMy6V,EAAa,CACtBn4H,YAAa,wBACbE,YAAa,0B,6BCXjB,6CAKak4H,EAAmC,4B,6BCLjC,SAAS3oQ,EAAgB18F,EAAKtN,EAAK0D,GAYhD,OAXI1D,KAAOsN,EACTxN,OAAOC,eAAeuN,EAAKtN,EAAK,CAC9B0D,MAAOA,EACP/D,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZyN,EAAItN,GAAO0D,EAGN4J,EAZT,mC,6BCAO,SAAS+R,IACd,GAAID,SAAWA,QAAQC,KAAM,CAG3B,IAFA,IAAIuzV,EAEKltP,EAAOxjH,UAAUzC,OAAQc,EAAO,IAAIY,MAAMukH,GAAOkpE,EAAO,EAAGA,EAAOlpE,EAAMkpE,IAC/EruL,EAAKquL,GAAQ1sL,UAAU0sL,GAGF,kBAAZruL,EAAK,KAAiBA,EAAK,GAAK,mBAAmBiF,OAAOjF,EAAK,MAEzEqyW,EAAWxzV,SAASC,KAAKld,MAAMywW,EAAUryW,IAV9C,wIAaA,IAAIsyW,EAAgB,GACb,SAASC,IACd,IAAK,IAAIC,EAAQ7wW,UAAUzC,OAAQc,EAAO,IAAIY,MAAM4xW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFzyW,EAAKyyW,GAAS9wW,UAAU8wW,GAGH,kBAAZzyW,EAAK,IAAmBsyW,EAActyW,EAAK,MAC/B,kBAAZA,EAAK,KAAiBsyW,EAActyW,EAAK,IAAM,IAAIoJ,MAC9D0V,EAAKld,WAAM,EAAQ5B,IAEd,SAAS0yW,EAAeC,EAAMC,EAAI7vT,GACvC4vT,EAAKD,eAAeE,GAAI,WACtB,GAAID,EAAKE,cACP9vT,QACK,CAQL4vT,EAAKv3U,GAAG,eAPU,SAAS03U,IACzB3pW,YAAW,WACTwpW,EAAKvwD,IAAI,cAAe0wD,KACvB,GACH/vT,WAOD,SAASgwT,EAAmBH,EAAID,GACrC,IAAInsW,EAAU7E,UAAUzC,OAAS,QAAsB8b,IAAjBrZ,UAAU,GAAmBA,UAAU,GAAK,GAElF,IAAKgxW,EAAKvjU,YAAcujU,EAAKvjU,UAAUlwC,OAErC,OADAqzW,EAAS,yCAA0CI,EAAKvjU,YACjD,EAGT,IAAI4jU,EAAML,EAAKvjU,UAAU,GACrB6jU,IAAcN,EAAKnsW,SAAUmsW,EAAKnsW,QAAQysW,YAC1CC,EAAUP,EAAKvjU,UAAUujU,EAAKvjU,UAAUlwC,OAAS,GACrD,GAA0B,WAAtB8zW,EAAI9uU,cAA4B,OAAO,EAE3C,IAAIivU,EAAiB,SAAwBvtW,EAAGlE,GAC9C,IAAI0xW,EAAYT,EAAKU,SAASC,iBAAiB79V,MAAM,GAAGxQ,OAAOW,EAAG,KAAKX,OAAOvD,IAC9E,OAAsB,IAAf0xW,GAAkC,IAAdA,GAG7B,QAAI5sW,EAAQ+sW,UAAY/sW,EAAQ+sW,SAASxxW,QAAQ,qBAAuB,GAAK4wW,EAAKU,SAASC,iBAAiBE,SAAWb,EAAKc,uBAAyBN,EAAeR,EAAKc,qBAAsBb,QAC3LD,EAAKe,kBAAkBV,EAAKJ,MAC3BD,EAAKU,SAASC,iBAAiBE,YAChCL,EAAeH,EAAKJ,IAASK,IAAeE,EAAeD,EAASN,Q,4GC5DpEe,EAAiB,sBAErB,EAIEp0W,OADD,eAHDmB,OAAc,IAAG,WAAUqM,EAAUw4D,GAEnC,OADAx4D,EAAIpM,UAAY4kE,EACTx4D,GACR,E,cAMD,WAAYhN,QAAA,IAAAA,MAAA,GAAZ,MACE,YACqB,kBAAZA,EACA4zW,EAAc,KAAK5zW,EAAO,6DAC7BA,IACL,K,OAPH,EAAA6zW,YAAc,EACd,EAAA77V,KAAO47V,EAOLjzW,EAAe,EAAMmzW,EAAeh0W,W,EAExC,OAXoC,iBAWpC,E,CAXoCwM,O,SAapBohN,EACd3oJ,EACA/kE,GAEA,IAAK+kE,EACH,MAAM,IAAI+uS,EAAe9zW,GAI7B,IAAM+zW,EAAkB,CAAC,QAAS,MAAO,OAAQ,QAAS,UAGtDC,EAAiBD,EAAgB/xW,QAAQ,OAE7C,SAASiyW,EAA+Cj8V,GACtD,OAAO,WACL,GAAI+7V,EAAgB/xW,QAAQgW,IAASg8V,EAAgB,CAGnD,IAAMjuS,EAASjnD,QAAQ9G,IAAS8G,QAAQ6oL,IACxC,OAAO5hI,EAAOlkE,MAAMid,QAASld,cAKnC,SAAiB8rN,GACF,EAAAr3I,MAAQ49R,EAAkB,SAC1B,EAAAtsK,IAAMssK,EAAkB,OACxB,EAAAl1V,KAAOk1V,EAAkB,QACzB,EAAAjvW,MAAQivW,EAAkB,SAJzC,CAAiBvmJ,MAAS,M,6BC9C1B,8CACawmJ,EAAgBpmU,YAAgB,iB,6BCD7C,8CACaqmU,EAAiBrmU,YAAgB,kB,6BCD9C,8CAQM,SAAUsmU,EAAiB7xW,EAAWwB,EAAWrD,EAAW4E,EAAuBs0D,GACvF,OAAOt0D,IAAM,KAAgC,kBAANA,EAAiB,IAAIs0D,EAAQ,QAAQr3D,EAAC,KAAKwB,EAAC,KAAKrD,EAAC,KAAK4E,EAAI,IAAe,M,iHCLnH,IAAIvE,EAAiBvB,OAAOuB,eACxBJ,EAAiBnB,OAAOmB,eACxBi1J,EAAWp2J,OAAOo2J,SAClBt5I,EAAiB9c,OAAO8c,eACxB9Z,EAA2BhD,OAAOgD,yBAClC2c,EAAS3f,OAAO2f,OAChBk1V,EAAO70W,OAAO60W,KACd/yW,EAAS9B,OAAO8B,OAEhB8xL,EAA0B,qBAAZ3wL,SAA2BA,QACzCZ,EAAQuxL,EAAKvxL,MACb2a,EAAY42K,EAAK52K,UAEhB3a,IACHA,EAAQ,SAAeyyW,EAAKC,EAAWt0W,GACrC,OAAOq0W,EAAIzyW,MAAM0yW,EAAWt0W,KAI3Bkf,IACHA,EAAS,SAAgB9B,GACvB,OAAOA,IAINg3V,IACHA,EAAO,SAAch3V,GACnB,OAAOA,IAINb,IACHA,EAAY,SAAmBg4V,EAAMv0W,GACnC,OAAO,IAAKqzK,SAASxzK,UAAU08D,KAAK36D,MAAM2yW,EAAM,CAAC,MAAMtvW,OAnC3D,SAA4ByrB,GAAO,GAAI9vB,MAAM+b,QAAQ+T,GAAM,CAAE,IAAK,IAAIzxB,EAAI,EAAGu1W,EAAO5zW,MAAM8vB,EAAIxxB,QAASD,EAAIyxB,EAAIxxB,OAAQD,IAAOu1W,EAAKv1W,GAAKyxB,EAAIzxB,GAAM,OAAOu1W,EAAe,OAAO5zW,MAAM8E,KAAKgrB,GAmCxHqjB,CAAmB/zC,QAIrF,IAwBqByzK,EAxBjBghM,EAAeC,EAAQ9zW,MAAMf,UAAUiY,SACvC68V,EAAWD,EAAQ9zW,MAAMf,UAAU4E,KACnCmwW,EAAYF,EAAQ9zW,MAAMf,UAAU6E,MAEpCmwW,EAAoBH,EAAQzzW,OAAOpB,UAAUqkC,aAC7C4wU,EAAcJ,EAAQzzW,OAAOpB,UAAUK,OACvC60W,EAAgBL,EAAQzzW,OAAOpB,UAAUI,SACzC+0W,EAAgBN,EAAQzzW,OAAOpB,UAAUkC,SACzCkzW,EAAaP,EAAQzzW,OAAOpB,UAAU+X,MAEtCs9V,EAAaR,EAAQlyU,OAAO3iC,UAAUmY,MAEtCm9V,GAYiB1hM,EAZa50K,UAazB,WACL,IAAK,IAAI2zW,EAAQ7wW,UAAUzC,OAAQc,EAAOY,MAAM4xW,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFzyW,EAAKyyW,GAAS9wW,UAAU8wW,GAG1B,OAAOl2V,EAAUk3J,EAAMzzK,KAhB3B,SAAS00W,EAAQjhM,GACf,OAAO,SAAU9wK,GACf,IAAK,IAAIwiH,EAAOxjH,UAAUzC,OAAQc,EAAOY,MAAMukH,EAAO,EAAIA,EAAO,EAAI,GAAIkpE,EAAO,EAAGA,EAAOlpE,EAAMkpE,IAC9FruL,EAAKquL,EAAO,GAAK1sL,UAAU0sL,GAG7B,OAAOzsL,EAAM6xK,EAAM9wK,EAAS3C,IAehC,SAASo1W,EAASzsU,EAAK27B,GACjB5jE,GAIFA,EAAeioC,EAAK,MAItB,IADA,IAAI/iC,EAAI0+D,EAAMplE,OACP0G,KAAK,CACV,IAAI8F,EAAU44D,EAAM1+D,GACpB,GAAuB,kBAAZ8F,EAAsB,CAC/B,IAAI2pW,EAAYR,EAAkBnpW,GAC9B2pW,IAAc3pW,IAEXiqJ,EAASrxF,KACZA,EAAM1+D,GAAKyvW,GAGb3pW,EAAU2pW,GAId1sU,EAAIj9B,IAAW,EAGjB,OAAOi9B,EAIT,SAAS6lC,EAAMjvD,GACb,IAAI+1V,EAAYj0W,EAAO,MAEnBktC,OAAW,EACf,IAAKA,KAAYhvB,EACX3d,EAAMd,EAAgBye,EAAQ,CAACgvB,MACjC+mU,EAAU/mU,GAAYhvB,EAAOgvB,IAIjC,OAAO+mU,EAOT,SAASC,EAAah2V,EAAQg1B,GAC5B,KAAkB,OAAXh1B,GAAiB,CACtB,IAAInd,EAAOG,EAAyBgd,EAAQg1B,GAC5C,GAAInyC,EAAM,CACR,GAAIA,EAAKwxB,IACP,OAAO8gV,EAAQtyW,EAAKwxB,KAGtB,GAA0B,oBAAfxxB,EAAKe,MACd,OAAOuxW,EAAQtyW,EAAKe,OAIxBoc,EAASlD,EAAekD,GAQ1B,OALA,SAAuB7T,GAErB,OADAmT,QAAQC,KAAK,qBAAsBpT,GAC5B,MAMX,IAAIq1B,EAAO7hB,EAAO,CAAC,IAAK,OAAQ,UAAW,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,MAAO,MAAO,MAAO,QAAS,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,SAAU,OAAQ,OAAQ,MAAO,WAAY,UAAW,OAAQ,WAAY,KAAM,YAAa,MAAO,UAAW,MAAO,SAAU,MAAO,MAAO,KAAM,KAAM,UAAW,KAAM,WAAY,aAAc,SAAU,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,MAAO,QAAS,MAAO,MAAO,QAAS,SAAU,KAAM,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,QAAS,MAAO,OAAQ,KAAM,WAAY,SAAU,SAAU,IAAK,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,UAAW,SAAU,SAAU,QAAS,SAAU,SAAU,OAAQ,SAAU,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,WAAY,QAAS,KAAM,QAAS,OAAQ,KAAM,QAAS,KAAM,IAAK,KAAM,MAAO,QAAS,QAGj+Bs2V,EAAMt2V,EAAO,CAAC,MAAO,IAAK,WAAY,cAAe,eAAgB,eAAgB,gBAAiB,mBAAoB,SAAU,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,iBAAkB,SAAU,OAAQ,WAAY,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAEzcu2V,EAAav2V,EAAO,CAAC,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,iBAMrWw2V,EAAgBx2V,EAAO,CAAC,UAAW,gBAAiB,SAAU,UAAW,eAAgB,UAAW,YAAa,mBAAoB,iBAAkB,gBAAiB,gBAAiB,gBAAiB,QAAS,YAAa,OAAQ,eAAgB,YAAa,UAAW,gBAAiB,SAAU,MAAO,aAAc,UAAW,QAE3Uy2V,EAASz2V,EAAO,CAAC,OAAQ,WAAY,SAAU,UAAW,QAAS,SAAU,KAAM,aAAc,gBAAiB,KAAM,KAAM,QAAS,UAAW,WAAY,QAAS,OAAQ,KAAM,SAAU,QAAS,SAAU,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,MAAO,SAAU,eAIxR02V,EAAmB12V,EAAO,CAAC,UAAW,cAAe,aAAc,WAAY,YAAa,UAAW,UAAW,SAAU,SAAU,QAAS,YAAa,aAAc,iBAAkB,cAAe,SAE3MorD,EAAOprD,EAAO,CAAC,UAEf22V,EAAS32V,EAAO,CAAC,SAAU,SAAU,QAAS,MAAO,iBAAkB,eAAgB,uBAAwB,WAAY,aAAc,UAAW,SAAU,UAAW,cAAe,cAAe,UAAW,OAAQ,QAAS,QAAS,QAAS,OAAQ,UAAW,WAAY,eAAgB,SAAU,cAAe,WAAY,WAAY,UAAW,MAAO,WAAY,0BAA2B,wBAAyB,WAAY,YAAa,UAAW,eAAgB,OAAQ,MAAO,UAAW,SAAU,SAAU,OAAQ,OAAQ,WAAY,KAAM,YAAa,YAAa,QAAS,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,MAAO,MAAO,YAAa,QAAS,SAAU,MAAO,YAAa,WAAY,QAAS,OAAQ,UAAW,aAAc,SAAU,OAAQ,UAAW,UAAW,cAAe,cAAe,SAAU,UAAW,UAAW,aAAc,WAAY,MAAO,WAAY,MAAO,WAAY,OAAQ,OAAQ,UAAW,aAAc,QAAS,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,UAAW,WAAY,QAAS,YAAa,OAAQ,SAAU,SAAU,QAAS,QAAS,QAAS,SAE1pC42V,EAAQ52V,EAAO,CAAC,gBAAiB,aAAc,WAAY,qBAAsB,SAAU,gBAAiB,gBAAiB,UAAW,gBAAiB,iBAAkB,QAAS,OAAQ,KAAM,QAAS,OAAQ,gBAAiB,YAAa,YAAa,QAAS,sBAAuB,8BAA+B,gBAAiB,kBAAmB,KAAM,KAAM,IAAK,KAAM,KAAM,kBAAmB,YAAa,UAAW,UAAW,MAAO,WAAY,YAAa,MAAO,OAAQ,eAAgB,YAAa,SAAU,cAAe,cAAe,gBAAiB,cAAe,YAAa,mBAAoB,eAAgB,aAAc,eAAgB,cAAe,KAAM,KAAM,KAAM,KAAM,aAAc,WAAY,gBAAiB,oBAAqB,SAAU,OAAQ,KAAM,kBAAmB,KAAM,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,UAAW,YAAa,aAAc,WAAY,OAAQ,eAAgB,iBAAkB,eAAgB,mBAAoB,iBAAkB,QAAS,aAAc,aAAc,eAAgB,eAAgB,cAAe,cAAe,mBAAoB,YAAa,MAAO,OAAQ,QAAS,SAAU,OAAQ,MAAO,OAAQ,aAAc,SAAU,WAAY,UAAW,QAAS,SAAU,cAAe,SAAU,WAAY,cAAe,OAAQ,aAAc,sBAAuB,mBAAoB,eAAgB,SAAU,gBAAiB,sBAAuB,iBAAkB,IAAK,KAAM,KAAM,SAAU,OAAQ,OAAQ,cAAe,YAAa,UAAW,SAAU,SAAU,QAAS,OAAQ,kBAAmB,mBAAoB,mBAAoB,eAAgB,cAAe,eAAgB,cAAe,aAAc,eAAgB,mBAAoB,oBAAqB,iBAAkB,kBAAmB,oBAAqB,iBAAkB,SAAU,eAAgB,QAAS,eAAgB,iBAAkB,WAAY,UAAW,UAAW,YAAa,cAAe,kBAAmB,iBAAkB,aAAc,OAAQ,KAAM,KAAM,UAAW,SAAU,UAAW,aAAc,UAAW,aAAc,gBAAiB,gBAAiB,QAAS,eAAgB,OAAQ,eAAgB,mBAAoB,mBAAoB,IAAK,KAAM,KAAM,QAAS,IAAK,KAAM,KAAM,IAAK,eAE5uE62V,EAAW72V,EAAO,CAAC,SAAU,cAAe,QAAS,WAAY,QAAS,eAAgB,cAAe,aAAc,aAAc,QAAS,MAAO,UAAW,eAAgB,WAAY,QAAS,QAAS,SAAU,OAAQ,KAAM,UAAW,SAAU,gBAAiB,SAAU,SAAU,iBAAkB,YAAa,WAAY,cAAe,UAAW,UAAW,gBAAiB,WAAY,WAAY,OAAQ,WAAY,WAAY,aAAc,UAAW,SAAU,SAAU,cAAe,gBAAiB,uBAAwB,YAAa,YAAa,aAAc,WAAY,iBAAkB,iBAAkB,YAAa,UAAW,QAAS,UAEvpB82V,EAAM92V,EAAO,CAAC,aAAc,SAAU,cAAe,YAAa,gBAGlE+2V,EAAgB7B,EAAK,6BACrB8B,EAAW9B,EAAK,yBAChB+B,EAAY/B,EAAK,8BACjBgC,EAAYhC,EAAK,kBACjBiC,EAAiBjC,EAAK,yFAEtBkC,EAAoBlC,EAAK,yBACzBmC,EAAkBnC,EAAK,+DAGvBv4V,EAA4B,oBAAXxX,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUyI,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAX1I,QAAyB0I,EAAI3L,cAAgBiD,QAAU0I,IAAQ1I,OAAOxE,UAAY,gBAAkBkN,GAEtQ,SAASypW,GAAqB9lV,GAAO,GAAI9vB,MAAM+b,QAAQ+T,GAAM,CAAE,IAAK,IAAIzxB,EAAI,EAAGu1W,EAAO5zW,MAAM8vB,EAAIxxB,QAASD,EAAIyxB,EAAIxxB,OAAQD,IAAOu1W,EAAKv1W,GAAKyxB,EAAIzxB,GAAM,OAAOu1W,EAAe,OAAO5zW,MAAM8E,KAAKgrB,GAE5L,IAAI+lV,GAAY,WACd,MAAyB,qBAAX3qW,OAAyB,KAAOA,QAW5C4qW,GAA4B,SAAmCC,EAAcprW,GAC/E,GAAoF,YAAvD,qBAAjBorW,EAA+B,YAAc96V,EAAQ86V,KAAoE,oBAA9BA,EAAaC,aAClH,OAAO,KAMT,IAAInrL,EAAS,KACTorL,EAAY,wBACZtrW,EAASurW,eAAiBvrW,EAASurW,cAAcC,aAAaF,KAChEprL,EAASlgL,EAASurW,cAAclqW,aAAaiqW,IAG/C,IAAIG,EAAa,aAAevrL,EAAS,IAAMA,EAAS,IAExD,IACE,OAAOkrL,EAAaC,aAAaI,EAAY,CAC3CC,WAAY,SAAoBC,GAC9B,OAAOA,KAGX,MAAOnzW,GAKP,OADA8a,QAAQC,KAAK,uBAAyBk4V,EAAa,0BAC5C,OA+mCX,IAAIG,GA3mCJ,SAASC,IACP,IAAItrW,EAASnK,UAAUzC,OAAS,QAAsB8b,IAAjBrZ,UAAU,GAAmBA,UAAU,GAAK80W,KAE7EY,EAAY,SAAmBzpQ,GACjC,OAAOwpQ,EAAgBxpQ,IAezB,GARAypQ,EAAUhzE,QAAU,QAMpBgzE,EAAUC,QAAU,IAEfxrW,IAAWA,EAAOP,UAAyC,IAA7BO,EAAOP,SAASuE,SAKjD,OAFAunW,EAAUE,aAAc,EAEjBF,EAGT,IAAIG,EAAmB1rW,EAAOP,SAE1BA,EAAWO,EAAOP,SAClBksW,EAAmB3rW,EAAO2rW,iBAC1BC,EAAsB5rW,EAAO4rW,oBAC7B94M,EAAO9yJ,EAAO8yJ,KACdw/G,EAAUtyQ,EAAOsyQ,QACjBu5F,EAAa7rW,EAAO6rW,WACpBC,EAAuB9rW,EAAO+rW,aAC9BA,OAAwC78V,IAAzB48V,EAAqC9rW,EAAO+rW,cAAgB/rW,EAAOgsW,gBAAkBF,EACpGjyH,EAAO75O,EAAO65O,KACdn0M,EAAU1lC,EAAO0lC,QACjBumU,EAAYjsW,EAAOisW,UACnBpB,EAAe7qW,EAAO6qW,aAGtBqB,EAAmB55F,EAAQv+Q,UAE3Bo4W,EAAY1C,EAAayC,EAAkB,aAC3CE,EAAiB3C,EAAayC,EAAkB,eAChDG,EAAgB5C,EAAayC,EAAkB,cAC/CI,EAAgB7C,EAAayC,EAAkB,cAQnD,GAAmC,oBAAxBN,EAAoC,CAC7C,IAAIxuH,GAAW39O,EAASsF,cAAc,YAClCq4O,GAAS7oM,SAAW6oM,GAAS7oM,QAAQd,gBACvCh0C,EAAW29O,GAAS7oM,QAAQd,eAIhC,IAAI84T,GAAqB3B,GAA0BC,EAAca,GAC7Dc,GAAYD,IAAsBE,GAAsBF,GAAmBpB,WAAW,IAAM,GAE5FuB,GAAYjtW,EACZkoB,GAAiB+kV,GAAU/kV,eAC3BglV,GAAqBD,GAAUC,mBAC/BC,GAAyBF,GAAUE,uBACnC9nW,GAAuB4nW,GAAU5nW,qBACjC+nW,GAAanB,EAAiBmB,WAG9BC,GAAe,GACnB,IACEA,GAAepqS,EAAMjjE,GAAUqtW,aAAertW,EAASqtW,aAAe,GACtE,MAAO70W,KAET,IAAI80W,GAAQ,GAKZxB,EAAUE,YAAuC,oBAAlBa,GAAgC3kV,IAA+D,qBAAtCA,GAAeqlV,oBAAuD,IAAjBF,GAE7I,IAAIG,GAAmB9C,EACnB+C,GAAc9C,EACd+C,GAAe9C,EACf+C,GAAe9C,EACf+C,GAAuB7C,EACvB8C,GAAqB7C,EACrB8C,GAAoBhD,EASpBiD,GAAe,KACfC,GAAuBnE,EAAS,GAAI,GAAGnwW,OAAOuxW,GAAqBz1U,GAAOy1U,GAAqBhB,GAAMgB,GAAqBf,GAAae,GAAqBb,GAASa,GAAqBlsS,KAG1LkvS,GAAe,KACfC,GAAuBrE,EAAS,GAAI,GAAGnwW,OAAOuxW,GAAqBX,GAASW,GAAqBV,GAAQU,GAAqBT,GAAWS,GAAqBR,KAG9J0D,GAAc,KAGdC,GAAc,KAGdC,IAAkB,EAGlBC,IAAkB,EAGlBC,IAA0B,EAK1BC,IAAqB,EAGrBC,IAAiB,EAGjBC,IAAa,EAIbC,IAAa,EAMbC,IAAa,EAIbC,IAAsB,EAWtBC,IAAoB,EAIpB9B,IAAsB,EAGtB+B,IAAe,EAGfC,IAAe,EAIfC,IAAW,EAGXC,GAAe,GAGfC,GAAkB,KAClBC,GAA0BvF,EAAS,GAAI,CAAC,iBAAkB,QAAS,WAAY,OAAQ,gBAAiB,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,QAAS,UAAW,WAAY,WAAY,YAAa,SAAU,QAAS,MAAO,WAAY,QAAS,QAAS,QAAS,QAGpRwF,GAAgB,KAChBC,GAAwBzF,EAAS,GAAI,CAAC,QAAS,QAAS,MAAO,SAAU,QAAS,UAGlF0F,GAAsB,KACtBC,GAA8B3F,EAAS,GAAI,CAAC,MAAO,QAAS,MAAO,KAAM,QAAS,OAAQ,UAAW,cAAe,OAAQ,UAAW,QAAS,QAAS,QAAS,UAElK4F,GAAmB,qCACnBC,GAAgB,6BAChBC,GAAiB,+BAEjBC,GAAYD,GACZE,IAAiB,EAGjBC,GAAS,KAKTC,GAAc/vW,EAASsF,cAAc,QAQrC0qW,GAAe,SAAsBC,GACnCH,IAAUA,KAAWG,IAKpBA,GAAqE,YAA9C,qBAARA,EAAsB,YAAc3/V,EAAQ2/V,MAC9DA,EAAM,IAIRA,EAAMhtS,EAAMgtS,GAGZlC,GAAe,iBAAkBkC,EAAMpG,EAAS,GAAIoG,EAAIlC,cAAgBC,GACxEC,GAAe,iBAAkBgC,EAAMpG,EAAS,GAAIoG,EAAIhC,cAAgBC,GACxEqB,GAAsB,sBAAuBU,EAAMpG,EAAS5mS,EAAMusS,IAA8BS,EAAIC,mBAAqBV,GACzHH,GAAgB,sBAAuBY,EAAMpG,EAAS5mS,EAAMqsS,IAAwBW,EAAIE,mBAAqBb,GAC7GH,GAAkB,oBAAqBc,EAAMpG,EAAS,GAAIoG,EAAId,iBAAmBC,GACjFjB,GAAc,gBAAiB8B,EAAMpG,EAAS,GAAIoG,EAAI9B,aAAe,GACrEC,GAAc,gBAAiB6B,EAAMpG,EAAS,GAAIoG,EAAI7B,aAAe,GACrEc,GAAe,iBAAkBe,GAAMA,EAAIf,aAC3Cb,IAA0C,IAAxB4B,EAAI5B,gBACtBC,IAA0C,IAAxB2B,EAAI3B,gBACtBC,GAA0B0B,EAAI1B,0BAA2B,EACzDC,GAAqByB,EAAIzB,qBAAsB,EAC/CC,GAAiBwB,EAAIxB,iBAAkB,EACvCG,GAAaqB,EAAIrB,aAAc,EAC/BC,GAAsBoB,EAAIpB,sBAAuB,EACjDC,IAA8C,IAA1BmB,EAAInB,kBACxB9B,GAAsBiD,EAAIjD,sBAAuB,EACjD2B,GAAasB,EAAItB,aAAc,EAC/BI,IAAoC,IAArBkB,EAAIlB,aACnBC,IAAoC,IAArBiB,EAAIjB,aACnBC,GAAWgB,EAAIhB,WAAY,EAC3BnB,GAAoBmC,EAAIG,oBAAsBtC,GAC9C8B,GAAYK,EAAIL,WAAaD,GACzBnB,KACFF,IAAkB,GAGhBO,KACFD,IAAa,GAIXM,KACFnB,GAAelE,EAAS,GAAI,GAAGnwW,OAAOuxW,GAAqBlsS,KAC3DkvS,GAAe,IACW,IAAtBiB,GAAa15U,OACfq0U,EAASkE,GAAcv4U,GACvBq0U,EAASoE,GAAc3D,KAGA,IAArB4E,GAAajF,MACfJ,EAASkE,GAAc9D,GACvBJ,EAASoE,GAAc1D,GACvBV,EAASoE,GAAcxD,KAGO,IAA5ByE,GAAahF,aACfL,EAASkE,GAAc7D,GACvBL,EAASoE,GAAc1D,GACvBV,EAASoE,GAAcxD,KAGG,IAAxByE,GAAa9E,SACfP,EAASkE,GAAc3D,GACvBP,EAASoE,GAAczD,GACvBX,EAASoE,GAAcxD,KAKvBwF,EAAII,WACFtC,KAAiBC,KACnBD,GAAe9qS,EAAM8qS,KAGvBlE,EAASkE,GAAckC,EAAII,WAGzBJ,EAAIK,WACFrC,KAAiBC,KACnBD,GAAehrS,EAAMgrS,KAGvBpE,EAASoE,GAAcgC,EAAIK,WAGzBL,EAAIC,mBACNrG,EAAS0F,GAAqBU,EAAIC,mBAGhCD,EAAId,kBACFA,KAAoBC,KACtBD,GAAkBlsS,EAAMksS,KAG1BtF,EAASsF,GAAiBc,EAAId,kBAI5BH,KACFjB,GAAa,UAAW,GAItBU,IACF5E,EAASkE,GAAc,CAAC,OAAQ,OAAQ,SAItCA,GAAa71R,QACf2xR,EAASkE,GAAc,CAAC,iBACjBI,GAAYoC,OAKjB58V,GACFA,EAAOs8V,GAGTH,GAASG,IAGPO,GAAiC3G,EAAS,GAAI,CAAC,KAAM,KAAM,KAAM,KAAM,UAEvE4G,GAA0B5G,EAAS,GAAI,CAAC,gBAAiB,OAAQ,QAAS,mBAK1E6G,GAAe7G,EAAS,GAAII,GAChCJ,EAAS6G,GAAcxG,GACvBL,EAAS6G,GAAcvG,GAEvB,IAAIwG,GAAkB9G,EAAS,GAAIO,GACnCP,EAAS8G,GAAiBtG,GAU1B,IAAIuG,GAAuB,SAA8BzwW,GACvD,IAAI+K,EAAS2hW,EAAc1sW,GAItB+K,GAAWA,EAAOc,UACrBd,EAAS,CACP2lW,aAAclB,GACd3jW,QAAS,aAIb,IAAIA,EAAUs9V,EAAkBnpW,EAAQ6L,SACpC8kW,EAAgBxH,EAAkBp+V,EAAOc,SAE7C,GAAI7L,EAAQ0wW,eAAiBnB,GAI3B,OAAIxkW,EAAO2lW,eAAiBlB,GACP,QAAZ3jW,EAMLd,EAAO2lW,eAAiBpB,GACP,QAAZzjW,IAAwC,mBAAlB8kW,GAAsCN,GAA+BM,IAK7FhwR,QAAQ4vR,GAAa1kW,IAG9B,GAAI7L,EAAQ0wW,eAAiBpB,GAI3B,OAAIvkW,EAAO2lW,eAAiBlB,GACP,SAAZ3jW,EAKLd,EAAO2lW,eAAiBnB,GACP,SAAZ1jW,GAAsBykW,GAAwBK,GAKhDhwR,QAAQ6vR,GAAgB3kW,IAGjC,GAAI7L,EAAQ0wW,eAAiBlB,GAAgB,CAI3C,GAAIzkW,EAAO2lW,eAAiBnB,KAAkBe,GAAwBK,GACpE,OAAO,EAGT,GAAI5lW,EAAO2lW,eAAiBpB,KAAqBe,GAA+BM,GAC9E,OAAO,EAOT,IAAIC,EAA2BlH,EAAS,GAAI,CAAC,QAAS,QAAS,OAAQ,IAAK,WAI5E,OAAQ8G,GAAgB3kW,KAAa+kW,EAAyB/kW,KAAa0kW,GAAa1kW,IAM1F,OAAO,GAQLglW,GAAe,SAAsBx2W,GACvC6uW,EAAUyC,EAAUC,QAAS,CAAE5rW,QAAS3F,IACxC,IAEEA,EAAKuC,WAAW23I,YAAYl6I,GAC5B,MAAOhC,IACP,IACEgC,EAAKy2W,UAAYlE,GACjB,MAAOv0W,IACPgC,EAAKE,YAWPw2W,GAAmB,SAA0B1kW,EAAMhS,GACrD,IACE6uW,EAAUyC,EAAUC,QAAS,CAC3BoF,UAAW32W,EAAK42W,iBAAiB5kW,GACjCrS,KAAMK,IAER,MAAOhC,IACP6wW,EAAUyC,EAAUC,QAAS,CAC3BoF,UAAW,KACXh3W,KAAMK,IAOV,GAHAA,EAAKuS,gBAAgBP,GAGR,OAATA,IAAkByhW,GAAazhW,GACjC,GAAIoiW,IAAcC,GAChB,IACEmC,GAAax2W,GACb,MAAOhC,UAET,IACEgC,EAAKkS,aAAaF,EAAM,IACxB,MAAOhU,OAWX64W,GAAgB,SAAuBx9C,GAEzC,IAAI9yQ,OAAM,EACNuwT,OAAoB,EAExB,GAAI3C,GACF96C,EAAQ,oBAAsBA,MACzB,CAEL,IAAI97L,EAAUwxO,EAAY11C,EAAO,eACjCy9C,EAAoBv5O,GAAWA,EAAQ,GAGzC,IAAIw5O,EAAezE,GAAqBA,GAAmBpB,WAAW73C,GAASA,EAK/E,GAAI+7C,KAAcD,GAChB,IACE5uT,GAAM,IAAIyrT,GAAYgF,gBAAgBD,EAAc,aACpD,MAAO/4W,KAIX,IAAKuoD,IAAQA,EAAIlgD,gBAAiB,CAChCkgD,EAAM74B,GAAeupV,eAAe7B,GAAW,WAAY,MAC3D,IACE7uT,EAAIlgD,gBAAgBoyS,UAAY48D,GAAiB,GAAK0B,EACtD,MAAO/4W,MAKX,IAAIJ,EAAO2oD,EAAI3oD,MAAQ2oD,EAAIlgD,gBAO3B,OALIgzT,GAASy9C,GACXl5W,EAAKkT,aAAatL,EAAS0xW,eAAeJ,GAAoBl5W,EAAKk0Q,WAAW,IAAM,MAIlFsjG,KAAcD,GACTtqW,GAAqB7P,KAAKurD,EAAK0tT,GAAiB,OAAS,QAAQ,GAGnEA,GAAiB1tT,EAAIlgD,gBAAkBzI,GAS5Cu5W,GAAkB,SAAyBtvQ,GAC7C,OAAO6qQ,GAAmB13W,KAAK6sG,EAAKruD,eAAiBquD,EAAMA,EAAM+pQ,EAAWwF,aAAexF,EAAWyF,aAAezF,EAAW0F,UAAW,MAAM,IAS/IC,GAAe,SAAsBC,GACvC,QAAIA,aAAe53H,GAAQ43H,aAAe/rU,MAId,kBAAjB+rU,EAAIprW,UAAoD,kBAApBorW,EAAI3vM,aAAuD,oBAApB2vM,EAAIt9N,aAAgCs9N,EAAIC,sBAAsB3F,GAAgD,oBAAxB0F,EAAIjlW,iBAA8D,oBAArBilW,EAAItlW,cAA2D,kBAArBslW,EAAInB,cAAyD,oBAArBmB,EAAI1mW,eAa7S4mW,GAAU,SAAiBl+V,GAC7B,MAAuE,YAA/C,qBAATq/I,EAAuB,YAAc/iJ,EAAQ+iJ,IAAsBr/I,aAAkBq/I,EAAOr/I,GAA8E,YAAjD,qBAAXA,EAAyB,YAAc1D,EAAQ0D,KAAoD,kBAApBA,EAAOzP,UAAoD,kBAApByP,EAAOpN,UAWxPurW,GAAe,SAAsBC,EAAYr6T,EAAahjD,GAC3Du4W,GAAM8E,IAIXlJ,EAAaoE,GAAM8E,IAAa,SAAU/jC,GACxCA,EAAK74U,KAAKs2W,EAAW/zT,EAAahjD,EAAM+6W,QAcxCuC,GAAoB,SAA2Bt6T,GACjD,IAAIjD,OAAU,EAMd,GAHAq9T,GAAa,yBAA0Bp6T,EAAa,MAGhDg6T,GAAah6T,GAEf,OADAi5T,GAAaj5T,IACN,EAIT,GAAIwxT,EAAYxxT,EAAYnxC,SAAU,mBAEpC,OADAoqW,GAAaj5T,IACN,EAIT,IAAI/rC,EAAUs9V,EAAkBvxT,EAAYnxC,UAS5C,GANAurW,GAAa,sBAAuBp6T,EAAa,CAC/C/rC,QAASA,EACTsmW,YAAavE,MAIVmE,GAAQn6T,EAAYu4N,sBAAwB4hG,GAAQn6T,EAAYjD,WAAao9T,GAAQn6T,EAAYjD,QAAQw7N,qBAAuBq5F,EAAW,UAAW5xT,EAAYk7P,YAAc02D,EAAW,UAAW5xT,EAAYsqH,aAErN,OADA2uM,GAAaj5T,IACN,EAIT,GAAgB,WAAZ/rC,GAAwB29V,EAAW,aAAc5xT,EAAYk7P,WAE/D,OADA+9D,GAAaj5T,IACN,EAIT,IAAKg2T,GAAa/hW,IAAYmiW,GAAYniW,GAAU,CAElD,GAAIgjW,KAAiBG,GAAgBnjW,GAAU,CAC7C,IAAIjP,EAAa8vW,EAAc90T,IAAgBA,EAAYh7C,WACvDuvQ,EAAasgG,EAAc70T,IAAgBA,EAAYu0N,WAE3D,GAAIA,GAAcvvQ,EAGhB,IAFA,IAESrJ,EAFQ44Q,EAAW34Q,OAEF,EAAGD,GAAK,IAAKA,EACrCqJ,EAAWuO,aAAaohW,EAAUpgG,EAAW54Q,IAAI,GAAOi5W,EAAe50T,IAM7E,OADAi5T,GAAaj5T,IACN,EAIT,OAAIA,aAAuB86N,IAAY+9F,GAAqB74T,IAC1Di5T,GAAaj5T,IACN,GAGQ,aAAZ/rC,GAAsC,YAAZA,IAA0B29V,EAAW,uBAAwB5xT,EAAYk7P,YAMpGu7D,IAA+C,IAAzBz2T,EAAYxzC,WAEpCuwC,EAAUiD,EAAYsqH,YACtBvtH,EAAU00T,EAAc10T,EAAS04T,GAAkB,KACnD14T,EAAU00T,EAAc10T,EAAS24T,GAAa,KAC1C11T,EAAYsqH,cAAgBvtH,IAC9Bu0T,EAAUyC,EAAUC,QAAS,CAAE5rW,QAAS43C,EAAY20T,cACpD30T,EAAYsqH,YAAcvtH,IAK9Bq9T,GAAa,wBAAyBp6T,EAAa,OAE5C,IAnBLi5T,GAAaj5T,IACN,IA8BPw6T,GAAoB,SAA2BC,EAAOC,EAAQ76W,GAEhE,GAAIm3W,KAA4B,OAAX0D,GAA8B,SAAXA,KAAuB76W,KAASoI,GAAYpI,KAASm4W,IAC3F,OAAO,EAOT,GAAIzB,KAAoBF,GAAYqE,IAAW9I,EAAW+D,GAAc+E,SAAgB,GAAIpE,IAAmB1E,EAAWgE,GAAc8E,QAAgB,KAAKxE,GAAawE,IAAWrE,GAAYqE,GAC/L,OAAO,EAGF,GAAIlD,GAAoBkD,SAAgB,GAAI9I,EAAWmE,GAAmBtE,EAAc5xW,EAAOi2W,GAAoB,WAAa,GAAgB,QAAX4E,GAA+B,eAAXA,GAAsC,SAAXA,GAAgC,WAAVD,GAAwD,IAAlC/I,EAAc7xW,EAAO,WAAkBy3W,GAAcmD,IAAe,GAAIjE,KAA4B5E,EAAWiE,GAAsBpE,EAAc5xW,EAAOi2W,GAAoB,WAAa,GAAKj2W,EACra,OAAO,QAGT,OAAO,GAaL86W,GAAsB,SAA6B36T,GACrD,IAAI46T,OAAO,EACP/6W,OAAQ,EACR66W,OAAS,EACTp4W,OAAI,EAER83W,GAAa,2BAA4Bp6T,EAAa,MAEtD,IAAIk6T,EAAal6T,EAAYk6T,WAI7B,GAAKA,EAAL,CAIA,IAAIW,EAAY,CACdC,SAAU,GACVC,UAAW,GACXC,UAAU,EACVC,kBAAmB/E,IAKrB,IAHA5zW,EAAI43W,EAAWt+W,OAGR0G,KAAK,CAEV,IAAI44W,EADJN,EAAOV,EAAW53W,GAEdmS,EAAOymW,EAAMzmW,KACbqkW,EAAeoC,EAAMpC,aAazB,GAXAj5W,EAAQ8xW,EAAWiJ,EAAK/6W,OACxB66W,EAASnJ,EAAkB98V,GAG3BomW,EAAUC,SAAWJ,EACrBG,EAAUE,UAAYl7W,EACtBg7W,EAAUG,UAAW,EACrBH,EAAUM,mBAAgBzjW,EAC1B0iW,GAAa,wBAAyBp6T,EAAa66T,GACnDh7W,EAAQg7W,EAAUE,WAEdF,EAAUM,gBAKdhC,GAAiB1kW,EAAMurC,GAGlB66T,EAAUG,UAKf,GAAIpJ,EAAW,OAAQ/xW,GACrBs5W,GAAiB1kW,EAAMurC,OADzB,CAMIy2T,KACF52W,EAAQ4xW,EAAc5xW,EAAO41W,GAAkB,KAC/C51W,EAAQ4xW,EAAc5xW,EAAO61W,GAAa,MAI5C,IAAI+E,EAAQz6T,EAAYnxC,SAAS+xB,cACjC,GAAK45U,GAAkBC,EAAOC,EAAQ76W,GAKtC,IACMi5W,EACF94T,EAAYo7T,eAAetC,EAAcrkW,EAAM5U,GAG/CmgD,EAAYrrC,aAAaF,EAAM5U,GAGjCwxW,EAAS0C,EAAUC,SACnB,MAAOvzW,OAIX25W,GAAa,0BAA2Bp6T,EAAa,QAQnDq7T,GAAqB,SAASA,EAAmBh4Q,GACnD,IAAIi4Q,OAAa,EACbC,EAAiB3B,GAAgBv2Q,GAKrC,IAFA+2Q,GAAa,0BAA2B/2Q,EAAU,MAE3Ci4Q,EAAaC,EAAelhQ,YAEjC+/P,GAAa,yBAA0BkB,EAAY,MAG/ChB,GAAkBgB,KAKlBA,EAAWv+T,mBAAmBo3T,GAChCkH,EAAmBC,EAAWv+T,SAIhC49T,GAAoBW,IAItBlB,GAAa,yBAA0B/2Q,EAAU,OAyQnD,OA9PA0wQ,EAAUyH,SAAW,SAAU1/C,EAAOo8C,GACpC,IAAI73W,OAAO,EACPo7W,OAAe,EACfz7T,OAAc,EACdg0E,OAAU,EACV0nP,OAAa,EAUjB,IANA5D,IAAkBh8C,KAEhBA,EAAQ,eAIW,kBAAVA,IAAuBq+C,GAAQr+C,GAAQ,CAEhD,GAA8B,oBAAnBA,EAAMxlT,SACf,MAAMu7V,EAAgB,8BAGtB,GAAqB,kBADrB/1C,EAAQA,EAAMxlT,YAEZ,MAAMu7V,EAAgB,mCAM5B,IAAKkC,EAAUE,YAAa,CAC1B,GAAqC,WAAjC17V,EAAQ/P,EAAOmzW,eAA6D,oBAAxBnzW,EAAOmzW,aAA6B,CAC1F,GAAqB,kBAAV7/C,EACT,OAAOtzT,EAAOmzW,aAAa7/C,GAG7B,GAAIq+C,GAAQr+C,GACV,OAAOtzT,EAAOmzW,aAAa7/C,EAAMo9C,WAIrC,OAAOp9C,EAgBT,GAZK66C,IACHsB,GAAaC,GAIfnE,EAAUC,QAAU,GAGC,kBAAVl4C,IACTo7C,IAAW,GAGTA,SAAiB,GAAIp7C,aAAiBxgK,EAKV,KAD9BmgN,GADAp7W,EAAOi5W,GAAc,kBACDr9T,cAAco5T,WAAWv5C,GAAO,IACnCtvT,UAA4C,SAA1BivW,EAAa5sW,UAGX,SAA1B4sW,EAAa5sW,SADtBxO,EAAOo7W,EAKPp7W,EAAKoN,YAAYguW,OAEd,CAEL,IAAK5E,KAAeJ,KAAuBC,KAEnB,IAAxB56C,EAAMr9T,QAAQ,KACZ,OAAOs2W,IAAsBE,GAAsBF,GAAmBpB,WAAW73C,GAASA,EAO5F,KAHAz7T,EAAOi5W,GAAcx9C,IAInB,OAAO+6C,GAAa,KAAO7B,GAK3B30W,GAAQu2W,IACVqC,GAAa54W,EAAKqC,YAOpB,IAHA,IAAIk5W,EAAehC,GAAgB1C,GAAWp7C,EAAQz7T,GAG/C2/C,EAAc47T,EAAavhQ,YAEH,IAAzBr6D,EAAYxzC,UAAkBwzC,IAAgBg0E,GAK9CsmP,GAAkBt6T,KAKlBA,EAAYjD,mBAAmBo3T,GACjCkH,GAAmBr7T,EAAYjD,SAIjC49T,GAAoB36T,GAEpBg0E,EAAUh0E,GAMZ,GAHAg0E,EAAU,KAGNkjP,GACF,OAAOp7C,EAIT,GAAI+6C,GAAY,CACd,GAAIC,GAGF,IAFA4E,EAAatG,GAAuB33W,KAAK4C,EAAK47C,eAEvC57C,EAAKqC,YAEVg5W,EAAWjuW,YAAYpN,EAAKqC,iBAG9Bg5W,EAAar7W,EAcf,OAXI02W,KAQF2E,EAAarG,GAAW53W,KAAKy2W,EAAkBwH,GAAY,IAGtDA,EAGT,IAAIG,EAAiBnF,GAAiBr2W,EAAK64W,UAAY74W,EAAK66S,UAQ5D,OALIu7D,KACFoF,EAAiBpK,EAAcoK,EAAgBpG,GAAkB,KACjEoG,EAAiBpK,EAAcoK,EAAgBnG,GAAa,MAGvDX,IAAsBE,GAAsBF,GAAmBpB,WAAWkI,GAAkBA,GASrG9H,EAAU+H,UAAY,SAAU5D,GAC9BD,GAAaC,GACbvB,IAAa,GAQf5C,EAAUgI,YAAc,WACtBhE,GAAS,KACTpB,IAAa,GAaf5C,EAAUiI,iBAAmB,SAAU9mW,EAAK0lW,EAAM/6W,GAE3Ck4W,IACHE,GAAa,IAGf,IAAIwC,EAAQlJ,EAAkBr8V,GAC1BwlW,EAASnJ,EAAkBqJ,GAC/B,OAAOJ,GAAkBC,EAAOC,EAAQ76W,IAU1Ck0W,EAAUkI,QAAU,SAAU5B,EAAY6B,GACZ,oBAAjBA,IAIX3G,GAAM8E,GAAc9E,GAAM8E,IAAe,GACzC/I,EAAUiE,GAAM8E,GAAa6B,KAU/BnI,EAAUoI,WAAa,SAAU9B,GAC3B9E,GAAM8E,IACRhJ,EAASkE,GAAM8E,KAUnBtG,EAAUqI,YAAc,SAAU/B,GAC5B9E,GAAM8E,KACR9E,GAAM8E,GAAc,KASxBtG,EAAUsI,eAAiB,WACzB9G,GAAQ,IAGHxB,EAGID,GAUA0H,IAFU3H,GAAO9yE,QACH8yE,GAAOI,YACVJ,GAAO2H,UAIlBS,IAHYpI,GAAOiI,UACLjI,GAAOkI,YACFlI,GAAOmI,iBAChBnI,GAAOoI,SACjBE,GAAatI,GAAOsI,W,IACNtI,GAAOuI,YACJvI,GAAOwI,e,iLC9mCrC,SAASC,GAAyBp5W,EAASq5W,GACvC,MAuCJ,SAA6Br5W,GACzB,IAAMs5W,EAAiB,CACnB9uN,KAAQK,KACRL,KAAQM,MACRN,KAAQO,OACRP,KAAQ1wJ,KACR0wJ,KAAQliF,KACRkiF,KAAQyB,mBACRzB,KAAQS,aACRT,KAAQU,sBAERlrJ,EAAQgzL,WACRsmL,EAAep7W,KAAKssJ,KAAQ79H,SAEhC,MAAO,CACHkzH,OAAQ,CAKJizN,aAAc,CAAC,KAAM,KAAM,IAAK,IAAK,IAAK,OAAQ,aAAc,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,QAAS,QAAS,QAAS,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,SAAU,KAAM,MAAO,QACpNE,aAAc,CAAC,OAAQ,YAAa,SAAU,QAAS,MAAO,MAAO,QAAS,QAAS,YAAa,QAAS,SAAU,SACvHM,yBAAyB,GAE7BgG,kBA/D+BC,CAAoBv5W,GAA/C6/I,EAAR,EAAQA,OAAQy5N,EAAhB,EAAgBA,eAChBE,GAAkB,yBAAyB,SAACt0W,EAAS5J,GACjD,GAAmB,UAAfA,EAAEs8W,UAAuC,UAAft8W,EAAEs8W,cAAhC,CACI,GAAwB,SAApB1yW,EAAQ6L,QAAoB,CAC5B,GAAmB,UAAfzV,EAAEs8W,SAEF,YADAt8W,EAAEw8W,SAAW,gEAAgEtmW,KAAKlW,EAAEu8W,YAGnF,GAAmB,UAAfv8W,EAAEs8W,SAEP,YADAt8W,EAAEw8W,SAAW,0DAA0DtmW,KAAKlW,EAAEu8W,YAItFv8W,EAAEw8W,UAAW,MAKrB,IAAMrtK,EAAS1lM,SAASsF,cAAc,KAEtCmvW,GAAkB,2BAA2B,SAACj6W,GAE1C,cAAmB,CAAC,OAAQ,OAA5B,eAAoC,CAA/B,IAAMm4W,EAAI,KACPn4W,EAAKgxW,aAAamH,KAClBjtK,EAAO/2L,KAAOnU,EAAK6G,aAAasxW,GAC3B4B,EAAe38N,SAAS8tD,EAAO4pC,SAAS56O,QAAQ,KAAM,MACvD8F,EAAKuS,gBAAgB4lW,QAKrC,IACI,OAAO8B,GAAmBH,EAAkBtgX,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAI8kJ,GAAS,CAAEkyN,qBAAqB,KADhH,QAIIyH,GAAqB,yBACrBA,GAAqB,4B,ICvQzB75W,G,iDAlBAjE,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,GAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAiBlE48W,GAAgB,WAChB,WAAYr5W,EAAUw2H,EAAc8iP,GAAgB,oBAChD/+W,KAAKyF,SAAWA,EAChBzF,KAAKi8H,aAAeA,EACpBj8H,KAAK++W,eAAiBA,EACtB/+W,KAAKg/W,kBAAoB,IAAIvqW,KAC7BzU,KAAKi/W,iBAAmBj/W,KAAKg/W,kBAAkBrqW,MANnC,2CAQhB,WACI3U,KAAKg/W,kBAAkB5mW,YATX,oBAWhB,SAAO4gE,EAAU3zE,EAAS65W,GACtB,IAAKlmS,EAED,MAAO,CAAEzuE,QADOH,SAASsF,cAAc,QACrB0I,QAAS,cAE/B,IAAM8E,EAAc,IAAIhE,KAClBsqN,EAAWtmN,EAAY1D,IDtB9B,SAAwBw/D,GAA4C,IACnEh0E,EAoDAm6W,EArDiC95W,EAAkC,uDAAxB,GAAI65W,EAAoB,uDAAJ,GAE7DhiW,EAAc,IAAIhE,KACpBs1B,GAAa,EACX8zJ,EAAMplL,EAAY1D,IAAI,IAAIgmD,MAC1Bj1D,EAAUmF,aAAcrK,GACxB+5W,EAAc,SAAUz+L,GAC1B,IAAIxhL,EACJ,IACIA,EAAOunC,aAAMkhE,mBAAmB+4E,IAEpC,MAAOhgL,IAGP,OAAKxB,GAGLA,EAAOs1J,aAAet1J,GAAM,SAAA6C,GACxB,OAAIg3E,EAASqmS,MAAQrmS,EAASqmS,KAAKr9W,GACxB2yB,KAAI2qV,OAAOtmS,EAASqmS,KAAKr9W,SAGhC,KAGDqlG,mBAAmB5gE,KAAK0xH,UAAUh5J,KAV9BwhL,GAYT4+L,EAAQ,SAAUxmW,EAAMymW,GAC1B,IAAMrgX,EAAO65E,EAASqmS,MAAQrmS,EAASqmS,KAAKtmW,GAC5C,IAAK5Z,EACD,OAAO4Z,EAEX,IAAIT,EAAMqc,KAAI2qV,OAAOngX,GACrB,OAAIqgX,EACIzmW,EAAK2nK,WAAW7wB,KAAQ1wJ,KAAO,KACxB4Z,EAMJR,KAAWC,aAAaF,GAAKG,UAAS,GAE7Ckc,KAAI+R,MAAM3tB,GAAMN,aAAeH,EAAIG,WAC5BM,GAEPT,EAAI6B,QACJ7B,EAAMA,EAAG,KAAM,CAAE6B,MAAOilW,EAAY9mW,EAAI6B,UAErC7B,EAAIG,aAKTgnW,EAAgB,IAAI79W,SAAQ,SAAAV,GAAC,OAAIi+W,EAAkBj+W,KACnDgjO,EAAW,IAAIw7I,KAkFrB,GAjFAx7I,EAASy7I,MAAQ,SAAC5mW,EAAMkZ,EAAOk3C,GAC3B,IAAIk8H,EAAa,GACbg3K,EAAa,GACjB,GAAItjW,EAAM,OACkBqsL,aAAuBrsL,GAA5CA,EADG,EACHA,KAAMssL,EADH,EACGA,WACTtsL,EAAOwmW,EAAMxmW,GAAM,GACnB,IACI,IAAM6mW,EAAYjrV,KAAI+R,MAAM3tB,GACxB1T,EAAQ2mD,SAAW4zT,EAAUv6Q,SAAWwqD,KAAQliF,OAChD50D,EAAOyhJ,aAAYn1J,EAAQ2mD,QAASjzC,GAAMN,YAGlD,MAAOkD,IACP0gW,EAAW94W,KAAX,eAAwBwV,EAAxB,MAWJ,OATIowD,GACAkzS,EAAW94W,KAAX,eAAwB4lE,EAAxB,MAEAl3C,GACAoqV,EAAW94W,KAAX,iBAA0B0uB,EAA1B,MAEAozK,EAAWtnM,SACXs+W,EAAaA,EAAWv4W,OAAOuhM,IAE5B,QAAUg3K,EAAW1/V,KAAK,KAAO,KAE5CunN,EAASn1K,KAAO,SAACh2C,EAAMkZ,EAAOk3C,GAc1B,OAZIpwD,IAASowD,IACTA,EAAOg8H,aAAsBh8H,IAEjCpwD,EAAOwmW,EAAMxmW,GAAM,GACf1T,EAAQ2mD,UACU,iBAAiBn1C,KAAKkC,KAEpCA,EAAOyhJ,aAAYn1J,EAAQ2mD,QAASjzC,GAAMN,aAGlDwZ,EAAQkzK,aAAsBlzK,KAC9BlZ,EAAOosL,aAAsBpsL,KAEtBA,EAAKha,MAAM,wBACVga,EAAKha,MAAM,gBAAkBi6E,EAASq/G,WACvCt/K,EAAKha,MAAM,mDAEPoqE,GAIPpwD,EAAOA,EAAKja,QAAQ,KAAM,SACrBA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACnB,iCAAiCia,EAAjC,oBAAiDkZ,GAASlZ,EAA1D,aAAmEowD,EAAnE,UAGR+6J,EAAS27I,UAAY,SAAC12S,GAClB,mBAAaA,EAAb,SAEA9jE,EAAQy6W,oBACR57I,EAAShhM,KAAO,SAACA,EAAM4nB,GACnB,IAAM9oD,EAAQqD,EAAQy6W,kBAAkBh1T,EAAM5nB,GAGxC3sB,EAAKkqL,KAAiB5nB,SAa5B,OAZAh5G,aAAiBj+D,QAAQiqC,IAAI,CAAC7pC,EAAOy9W,IAAiBn9K,EAAI5iI,OAAOp9D,MAAK,SAAAkb,GAClE,IAAIxY,EACJ,IAAKwpC,GAAchxB,EAAQ,CACvB,IAAMuiW,EAAOx1W,EAAQy9N,cAAR,yBAAwCzxN,EAAxC,OACTwpW,GACApkI,QAAUokI,EAAMviW,EAAO,IAEY,QAAtCxY,EAAKK,EAAQ26W,2BAAwC,IAAPh7W,GAAyBA,EAAGpF,KAAKyF,OAPxF,OASS,eAGT,uCAAuCkR,EAAvC,aAA8CopB,aAAOuD,GAArD,YAGJ79B,EAAQ46W,cAAe,CACvB,IAAMhuI,EAAU5sO,EAAQ46W,cAAc/iW,YAAY1D,IAAI,IAAI4sJ,KAAW77J,EAAS,UACxE21W,EAAa76W,EAAQ46W,cAAc/iW,YAAY1D,IAAI,IAAI4sJ,KAAW77J,EAAS,aACjFlF,EAAQ46W,cAAc/iW,YAAY1D,IAAI+d,KAAM6B,IAAI64M,EAAQt9N,MAAOurW,EAAWvrW,MAApC4iB,EAA2C,SAAA52B,GAC7E,IAAMmiT,EAAa,IAAI/8S,KAAmBpF,GAC1C,GAAKmiT,EAAWv1H,YAAeu1H,EAAWr1H,aAA1C,CAGA,IAAI7vL,EAASklT,EAAWllT,OACxB,GAAuB,MAAnBA,EAAOwY,UACPxY,EAASA,EAAOqnO,gBACkB,MAAnBrnO,EAAOwY,QAI1B,IACI,IAAM2C,EAAOnb,EAAO8nT,QAAP,KACT3sS,GACA1T,EAAQ46W,cAAcx4W,SAASsR,EAAM+pS,GAG7C,MAAOnnS,GACHnT,aAAkBmT,GAPtB,QAUImnS,EAAW7uS,uBAIlB+kE,EAAS0rH,cAOVw6K,EAAciB,UAAY,SAACvgV,GAEvB,OADco5C,EAASq/G,UAAYz4J,EAAK7gC,MAAM,sCAAmC8a,GAClE+lB,EAAO,IAE1Bs/U,EAAcvB,UAAW,EACzBuB,EAAc3hG,QAAS,GAE3B2hG,EAAch7I,SAAWA,EAEzB,IAAIliO,EAAkC,QAAzBgD,EAAKg0E,EAASh3E,aAA0B,IAAPgD,EAAgBA,EAAK,GAC/DhD,EAAMjE,OAAS,MACfiE,EAAQ,GAAH,OAAMA,EAAMmnC,OAAO,EAAG,KAAtB,WAGL6vC,EAASyrH,oBACTziM,EAAQs1O,aAA2Bt1O,IAEvC,IAAI08W,EAAmBgB,KAAa19W,EAAOk9W,GAE3C,GAAIlmS,EAASyrH,kBAAmB,CAE5Bi6K,EADiBhV,aAAqBgV,GACVt8V,KAAI,SAAAzhB,GAAC,MAAiB,kBAANA,EAAiBA,EAAIA,EAAE06W,aAAW1+V,KAAK,IAMvF,GAJApS,EAAQ8yS,UAAYohE,GAAyBzlS,EAAU0lS,GAEvDS,IAEI95W,EAAQ26W,oBAAqB,qBACXz1W,EAAQkF,qBAAqB,QADlB,yBAClBw5R,EADkB,QAEnBzxQ,EAAWta,EAAY1D,IAAImiO,wBAA0BstD,EAAK,QAAQ,WACpEzxQ,EAASpf,UACT/S,EAAQ26W,2BAHhB,2BAAuD,IAD1B,+BAQjC,MAAO,CACHz1W,UACA6N,QAAS,WACLo2B,GAAa,EACb8zJ,EAAIx4L,SACJoT,EAAY9E,YC/LiBgoW,CAAepnS,EAAU56E,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIJ,KAAKqgX,kBAAkBrnS,EAAU97D,IAAe7X,GAAU65W,IACpJ,MAAO,CACH30W,QAASi5N,EAASj5N,QAClB6N,QAAS,kBAAM8E,EAAY9E,cApBnB,+BAuBhB,SAAkB4gE,EAAUsnS,GAAc,WACtC,MAAO,CACHt0T,QAAShsD,KAAKyF,SAASumD,QACvB8zT,kBAAmB,SAACS,EAAev+W,GAAhB,OAA0BT,GAAU,OAAM,OAAQ,EAAf,UAAuB,kGAgB9C,OAVvBg/W,EACAriV,EAAal+B,KAAKi8H,aAAaukP,yBAAyBD,GAEnDvgX,KAAKyF,SAASwtB,SACnBiL,EAAwD,QAA1Cl5B,EAAKhF,KAAKyF,SAASwtB,OAAO+B,kBAA+B,IAAPhwB,OAAgB,EAASA,EAAG4gH,iBAE3F1nF,IACDA,EAAa,aAEjBl+B,KAAKi8H,aAAawkP,YAAYviV,GAf2C,SAgBxCgU,KAAqBwuU,WAAWxiV,GAhBQ,eAgBnDluB,EAhBmD,YAgBS,OAhBT,qCAgBwB,IAAPA,EAhBjB,sCAgBiCA,EAhBjC,kCAgBsC6J,EAhBtC,eAgBnE8mW,EAhBmE,MAiBnEp2W,EAAUH,SAASsF,cAAc,SAC/B2tS,UAAyK,QAA3J1tR,EAA+C,QAAzCnC,EAAKsxV,EAAiB8B,qBAAkC,IAAPpzV,OAAgB,EAASA,EAAGsoV,WAAW9zW,EAAOhC,KAAKi8H,aAAa/T,gBAAiBy4P,UAAkC,IAAPhxV,EAAgBA,EAAKkxV,aAAiB7+W,EAAOhC,KAAKi8H,aAAa/T,gBAAiBy4P,GAErQ3gX,KAAKyF,SAASwtB,QACR8+D,EAAW/xF,KAAKyF,SAASwtB,OAAO+nJ,UAAU,IAChDniB,KAAcioN,kBAAkBv2W,EAASwnF,IAEpC/xF,KAAKyF,SAASs7W,sBACnBx2W,EAAQmC,MAAM09C,WAAapqD,KAAKyF,SAASs7W,qBAzB4B,kBA2BlEx2W,GA3BkE,kDA6B7Ey1W,oBAAqB,kBAAM,EAAKhB,kBAAkB/pW,QAClDgrW,cAAe,CACXx4W,SAAU,SAACy3C,GAAD,OAAa,EAAK6/T,eAAehnW,KAAKmnC,EAAS,CAAE8hU,iBAAiB,EAAMC,yBAAyB,EAAMC,cAAeloS,EAASq/G,YAAlH,MAAqI7vL,OAC5J0U,YAAaojW,QA1DT,KA+DpBxB,GAAiB8B,cAA+C,QAA9B57W,GAAK2F,OAAO6qW,oBAAiC,IAAPxwW,QAAgB,EAASA,GAAGywW,aAAa,mBAAoB,CACjIK,WADiI,SACtH9zW,EAAOkmH,EAAiBgO,GAC/B,OAAO2qP,aAAiB7+W,EAAOkmH,EAAiBgO,MAGxD4oP,GAAmB/9W,GAAW,CAC1BsqF,GAAQ,EAAGoqD,MACXpqD,GAAQ,EAAG0kG,OACZ+uL,K,6BCtGG,SAAUqC,EAAO3jK,GACjB4jK,IAAS5jK,IACX4jK,EAAO5jK,GAOL,SAAU6jK,IAOd,YANaxnW,IAATunW,IACFA,EACsB,qBAAbh3W,YACLA,SAASa,iBACsC,QAAjDb,SAASa,gBAAgBQ,aAAa,QAEnC21W,EAMT,IAAIA,EAGE,SAAUE,IACd,MAAO,CACLntT,IAAKktT,KA9BT,oEA0BAD,EAAOC,K,6BC5BD,SAAUj2R,EAASm2R,GACvB,IAAM,OAAOA,IAAU,WADzB,mC,6BAAM,SAAUn2R,EAASm2R,GACvB,IAAM,OAAOA,IAAU,WADzB,mC,2LCOazb,EAAmBp5T,YAAgB,yBAOzC,IAAM25T,EAAb,WACI,WAAYz3T,GAAU,oBAClB5uC,KAAK4uC,SAAWA,EAFxB,gDAII,SAAe89B,GACX,OAAOA,EAAKy9C,MAAM/nG,KAAI,SAAAsqD,GAClB,GATiB7vD,EASO6vD,EARzBrJ,YAASxmD,IAAU8X,IAAIC,MAAM/X,EAAM4X,WAAa4uC,YAASxmD,EAAM6vD,MAS1D,OAAO,IAAI80S,EAAiB90S,EAAKj4C,SAAUi4C,EAAKA,KAAMA,EAAKi2H,eAAgBj2H,EAAK99B,UAVhG,IAA6B/xB,EAYjB,GAfZ,SAA6BA,GACzB,OAAOwmD,YAASxmD,KAAWquE,QAAQruE,EAAM4kW,SAAWv2R,QAAQruE,EAAM6kW,SActDC,CAAoBj1S,GACpB,OAAO,IAAIk1S,EAAiBl1S,EAAKg1S,OAAQh1S,EAAK+0S,OAAQ/0S,EAAKrnE,QAASqnE,EAAK99B,UAE7E,MAAM,IAAI1jC,MAAM,2BAZ5B,KAgBas2W,EAAb,kDACI,WAAY/sV,EAAUotV,EAAU11Q,EAAWv9D,GAAU,kCACjD,cAAMA,IACDna,SAAWA,EAChB,EAAKotV,SAAWA,EAChB,EAAK11Q,UAAYA,EAJgC,EADzD,UAAsCk6P,GAQzBub,EAAb,kDACI,WAAYE,EAAaC,EAAa18W,EAASupC,GAAU,kCACrD,cAAMA,IACDkzU,YAAcA,EACnB,EAAKC,YAAcA,EACnB,EAAK18W,QAAUA,EAJsC,EAD7D,UAAsCghW,I,0KClClCtlW,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAavDq3Q,EAAiB,WACjB,WAAY1vU,EAAQ06D,GAAmB,+BACnC3tF,KAAKgiX,eAAiB,IAAIhkW,IAC1Bhe,KAAKiiX,kBAAoB,IAAI/oW,IAC7BlZ,KAAK04K,QAAUzlJ,EACfjzB,KAAK49V,SAAW+E,EAAkBuf,gBAAgB5kM,OAAO3vF,GACzD3tF,KAAKmiX,gBAAkBniX,KAAK04K,QAAQ0pM,0BAAyB,kBAAM,EAAKC,+BAN3D,2CAWjB,WACIriX,KAAKmiX,gBAAgB/pW,UACrBpY,KAAKiiX,kBAAkB7pW,UACvBpY,KAAKgiX,eAAe5pW,UACpBpY,KAAK49V,SAASjoV,UAfD,yBAiBjB,SAAY/W,EAAS+f,GAAU,IAcvB2jW,EAduB,OAC3B92S,YAAM5sE,GACNoB,KAAK49V,SAASp2T,KAAI,GAClBxnC,KAAKgiX,eAAezkW,QACpBvd,KAAKiiX,kBAAkB1kW,QACvBvd,KAAKgiX,eAAehgX,MAAQ,IAAIugX,EAAcviX,KAAK04K,QAAS/5J,EAAU/f,GAEtEoB,KAAKiiX,kBAAkBzoW,IAAIxZ,KAAK04K,QAAQ8pM,qBAAoB,kBAAM,EAAK9c,mBACvE1lW,KAAKiiX,kBAAkBzoW,IAAIxZ,KAAK04K,QAAQyqB,2BAA0B,kBAAM,EAAKuiK,mBAC7E1lW,KAAKiiX,kBAAkBzoW,IAAIxZ,KAAK04K,QAAQqzD,cAAa,kBAAM,EAAK25H,mBAChE1lW,KAAKiiX,kBAAkBzoW,IAAIxZ,KAAK04K,QAAQ4qB,kBAAiB,kBAAM,EAAKoiK,mBAEpE1lW,KAAKiiX,kBAAkBzoW,IAAI,IAAI7P,KAAa,kBAAM,EAAK+7V,iBAAgB,MAGvE1lW,KAAKiiX,kBAAkBzoW,IAAIxZ,KAAK04K,QAAQg6H,aAAY,SAAA/xS,GAE3CA,EAAE/C,OAAO+gB,WAGT2jW,EAIKA,EAAO1jW,iBAAiBje,EAAE/C,OAAO+gB,WAEvC,EAAK+mV,eAJL4c,EAAS,IAAIjkW,IAAMM,EAASY,WAAa,EAAG,EAAG5e,EAAE/C,OAAO+gB,SAASY,WAAa,EAAG,UAvC5E,0BA+CjB,WACIvf,KAAK49V,SAASjoV,QACd3V,KAAKiiX,kBAAkB1kW,QACnBvd,KAAKgiX,eAAehgX,OACpBhC,KAAKiiX,kBAAkBzoW,IAAI+oW,EAAcE,QAAQziX,KAAKgiX,eAAehgX,UAnD5D,uCAsDjB,WACQhC,KAAK04K,QAAQqwC,YACb/oN,KAAK4iW,YAAY9/U,IAAa,kBAAmB,mCAAoC9iB,KAAK04K,QAAQkqB,kBAxDzF,kBAQjB,SAAW3vK,GACP,OAAOA,EAAO6wH,gBAAgB6+M,EAAkBz/L,QATnC,KA4DrBy/L,EAAkBz/L,GAAK,mCACvBy/L,EAAkBuf,gBAAkB,IAAIplV,IAAc,kBAAkB,EAAOha,IAAa,iBAAkB,8DAC9G6/U,EAAoB5hW,EAAW,CAC3BsqF,EAAQ,EAAG/3D,MACZqvU,GAEH,IAAM+f,EAAiB5vV,IAAc6vV,mBAAmBhgB,EAAkBlwU,KAC1E+C,YAAsB,IAAIktV,EAAe,CACrCnsW,GAAI,qBACJ4Z,aAAcwyU,EAAkBuf,gBAChC98W,QAAS,SAAAlE,GAAC,OAAIA,EAAEwkW,gBAChBr1U,OAAQ,CACJU,OAAQ,IACRE,QAAS,M,IAGXsxV,E,WACF,WAAYtvV,EAAZ,EAA4Ck2C,GAAM,IAA5B5pD,EAA4B,EAA5BA,WAAYC,EAAgB,EAAhBA,OAAgB,oBAE9Cxf,KAAK4iX,qBAAsB,EAC3B5iX,KAAK6iX,mBAAoB,EACzB7iX,KAAK04K,QAAUzlJ,EACfjzB,KAAK04K,QAAQoqM,qCAAqCvjW,EAAYA,EAAY,GAC1Evf,KAAK0tI,UAAY,CAAEnuH,aAAYC,OAAQA,EAAS,GAChDxf,KAAKw4K,SAAWpuK,SAASsF,cAAc,OACvC1P,KAAKw4K,SAAS3pK,UAAU2K,IAAI,gCAC5B,IAAMupW,EAAY34W,SAASsF,cAAc,OACzCqzW,EAAUl0W,UAAU2K,IAAI,SAAU,OAClCxZ,KAAKw4K,SAAS5oK,YAAYmzW,GAC1B,IAAMnkX,EAAUwL,SAASsF,cAAc,OACvC9Q,EAAQiQ,UAAU2K,IAAI,WACtB5a,EAAQ6tK,YAActjG,EACtBnpE,KAAKw4K,SAAS5oK,YAAYhR,GAC1B,IAAMokX,EAAe54W,SAASsF,cAAc,OAC5CszW,EAAan0W,UAAU2K,IAAI,SAAU,SACrCxZ,KAAKw4K,SAAS5oK,YAAYozW,GAC1BhjX,KAAK04K,QAAQ4nL,iBAAiBtgW,MAC9BA,KAAKw4K,SAAS3pK,UAAU2K,IAAI,U,2CAchC,WACIxZ,KAAK04K,QAAQkoL,oBAAoB5gW,Q,mBAErC,WACI,MAAO,mB,wBAEX,WACI,OAAOA,KAAKw4K,W,yBAEhB,WACI,MAAO,CAAE75J,SAAU3e,KAAK0tI,UAAWszN,WAAY,CAAC,EAAe,M,yBAEnE,SAAYriV,GACR3e,KAAKw4K,SAAS3pK,UAAU8vI,OAAO,QAAsB,IAAbhgI,M,sBAzB5C,SAAeskW,GACX,IAAIxqV,EACErgB,EAAU,SAAVA,IACF6qW,EAAc7qW,UACdwgB,aAAaH,GACbwqV,EAAc7kB,aAAaz4V,oBAAoB,eAAgByS,IAKnE,OAHAqgB,EAASzwB,WAAWoQ,EAAS,KAC7B6qW,EAAc7kB,aAAa14V,iBAAiB,eAAgB0S,GAC5D6qW,EAAc7kB,aAAavvV,UAAU2K,IAAI,WAClC,CAAEpB,e,KAkBjB8d,YAA2BysU,EAAkBz/L,GAAIy/L,GACjD3kS,aAA2B,SAACl8C,EAAOu4G,GAC/B,IAAM7sH,EAASsU,EAAMwL,SAASlJ,MAC9B,GAAI5W,EAAQ,CACR,IAAI8yC,EAAcx+B,EAAM3c,OAASq3D,IAAYE,cAAgB,EAAI,EACjE29D,EAAUQ,QAAV,yFAAoGrtH,EAApG,QACA6sH,EAAUQ,QAAV,0FAAqGrtH,EAArG,QACA6sH,EAAUQ,QAAV,0EAAqFv6E,EAArF,oBAA4G9yC,EAA5G,QAEJ,IAAM6f,EAAavL,EAAMwL,SAASpJ,MAC9BmJ,GACAgtG,EAAUQ,QAAV,oFAA+FxtG,EAA/F,QAEJ,IAAM3K,EAAaZ,EAAMwL,SAASnJ,MAC9BzB,GACA23G,EAAUQ,QAAV,yEAAoFn4G,EAApF,Y,6BCvJF,SAAU,EAAgB,GAE5B,IADA,IAAE,EAAM,GACD,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,GAAO,OAAO,aAAa,EAAM,IAEnC,OAAO,KAAK,GAOR,SAAU,EAAa,GAGzB,IAFA,IAAI,EAAa,KAAK,GAClB,EAAM,IAAI,WAAW,EAAW,QAC7B,EAAI,EAAG,EAAI,EAAW,OAAQ,IACrC,EAAI,GAAK,EAAW,WAAW,GAEjC,OAAO,E,iFC3BT,aACI,SAAF,EACkB,EACA,QADA,kCACA,aAsOlB,OAnOE,EAAF,uCAAoB,EAAgB,EAAY,GAC1C,IAAE,EAAiB,SAAC,EAAyC,GAC/D,MAAM,IAAI,MACR,IAAI,EAAU,iBAAiB,EAAK,oCAAoC,EAAc,MAAM,EAAe,MAG3G,KAAO,kBAAwB,GAAT,EAAoB,CACtC,MAYF,EAAO,YAXT,EAAgB,mBAChB,EAAgB,mBAChB,EAAgB,mBAChB,EAAgB,mBAChB,EAAQ,WACR,EAAS,YACT,EAAQ,WACR,EAAS,YACT,EAAU,aACV,EAAO,UACP,EAAW,cA6Bb,QA3BwB,GAApB,GAAiC,GAAS,GAC5C,EAAe,mBAAoB,QAEb,GAApB,GAAiC,GAAS,GAC5C,EAAe,mBAAoB,QAEb,GAApB,GAAiC,EAAQ,GAC3C,EAAe,mBAAoB,QAEb,GAApB,GAAiC,EAAQ,GAC3C,EAAe,mBAAoB,QAErB,GAAZ,GAAyB,EAAM,OAAS,GAClC,EAAO,WAAY,QAEZ,GAAb,GAA0B,EAAM,OAAS,GAC3C,EAAe,YAAa,QAEd,GAAZ,GAAyB,EAAM,OAAS,GAClCwgW,EAAO,WAAY,QAEZ,GAAb,GAA0B,EAAM,OAAS,GAC3C,EAAe,YAAa,QAEZ,GAAd,GAA2B,EAAQ,IAAe,GACpD,EAAe,aAAc,GAE3B,EAAS,CACX,IAAM,EAAqC,kBAAZ,EAAuB,IAAI,OAAO,GAAW,EACvD,kBAAV,GAA+C,OAAzB,EAAM,MAAM,IAC3C,EAAe,UAAW,GAI5B,GACA,EAAM,MAAK,SAAC,EAAW,EAAW,GAAmB,SAAG,QAAQ,KAAX,MAErD,EAAe,cAAe,KAgBlC,EAAF,6BAAU,EAAgB,EAAa,GACjC,MAAe,GACb,EAAaC,EAAO,KAAK,KAC1B,IACG,EAAO,EAAO,gBAEmB,OAArC,EAAW,MAAM,kBACb,EAAI,IAGR,EAAO,aACT,EAAS,EAAO,cAaV,MAAuB,EAAf,SAAE,EAAa,EAAL,SAEtB,MAAY,QAAuB,IAAX,EACpB,UAAI,MAAS,EAAU,yBAE3B,OAAa,QAAsB,GAAV,EACrB,UAAI,MAAS,EAAU,iCAE3B,IAAC,IAAyB,IAAb,GAAiC,OAAX,EAC/B,UAAI,MAAS,EAAU,oBAG3B,QAAU,GAAV,EACI,EAAI,OAIJ,GADA,KAAD,oBAAoB,EAAQ,EAAQ,GACL,OAAhC,EAAW,MAAM,WACnB,EAAU,OACL,GAA2E,OAAvE,EAAW,MAAM,kDAClBC,EAwLhB,SAA6B,EAAkB,EAAoB,GAC/D,GAAY,OAAV,QAA4B,IAAV,EAChB,GAAiC,OAAjC,EAAS,MAAM,eACX,GAAe,kBAAV,EACD,MAAF,IAAI,MAAS,EAAU,eAAe,EAAK,iCAE9C,GAAqC,OAAjC,EAAS,MAAM,eAClB,GAAyB,kBAApB,EAAM,UACf,MAAM,IAAI,MAAS,EAAU,gBAAgB,EAAK,kCAE/C,GAAmC,OAA/B,EAAS,MAAM,aACxB,GAAiC,kBAApB,EAAM,YAA0B,IAAkB,GAC7D,MAAM,IAAI,MACL,EAAU,gBAAgB,EAAK,mDAGjC,GAAsC,OAAlC,EAAS,MAAM,gBACxB,GAAqB,mBAAV,EACT,MAAM,IAAI,MAAS,EAAU,eAAe,EAAK,kCAE9C,GAAqC,OAAjC,EAAS,MAAM,cAAwB,CAChD,IAAM,SAAoB,EAC1B,GACiB,WAAf,GACe,aAAf,KACE,aAAiB,eAClB,YAAY,OAAO,MACF,oBAAT,MAAuB,aAAiB,MAEjD,MAAM,IAAI,MACL,EAAU,yGAKrB,OAAO,EA3NS,CAAoB,EAAY,EAAY,QACjD,GAAqC,OAAjC,EAAW,MAAM,YAAsB,CAEhD,EA2NR,SAA2B,EAAoB,EAA2B,GACtE,IAAG,EACC,MAAE,IAAI,MACR,qDAAqD,EAAU,qBASjE,IANgB,EAAc,MAAK,SAAC,GACpC,MAA8B,kBAAnB,EAAK,UACP,EAAK,gBAAkB,EAAM,cAE/B,IAAS,KAGZ,MAAE,IAAI,MACL,EAAK,6BAA6B,EAAU,2BAA2B,KAAK,UAC7E,GACD,KAGH,OAAK,EA9OS,CAAkB,EADG,EACoB,KAAK,cAAe,QAEO,OAA9E,EAAW,MAAM,yDAEjB,EAiQR,SAA4B,EAAkB,EAAY,GACtD,QAAW,GAAT,EACE,GAA+B,OAA/B,EAAS,MAAM,YAAsB,CACjC,KAEF,aAAiB,MACW,kBAApB,EAAM,YAA2B,MAAM,KAAK,MAAM,KAG5D,MAAM,IAAI,MAAS,EAAU,8DAE/B,EACE,aAAiB,KACb,EAAM,cAAc,UAAU,EAAG,IACjC,IAAI,KAAK,GAAO,cAAc,UAAU,EAAG,SAC5C,GAAuC,OAAnC,EAAS,MAAM,gBAA0B,CAClD,KAEI,aAAiB,MACW,kBAApB,EAAM,YAA2B,MAAM,KAAK,MAAM,KAG5D,MAAM,IAAI,MAAS,EAAU,8DAE/B,EAAQ,aAAiB,KAAO,EAAM,cAAgB,IAAI,KAAK,GAAO,mBACjE,GAA8C,OAA1C,EAAS,MAAM,uBAAiC,CACzD,KAEI,aAAiB,MACW,kBAApB,EAAM,YAA2B,MAAM,KAAK,MAAM,KAG5D,MAAM,IAAI,MAAS,EAAU,+DAE/B,EAAQ,aAAiB,KAAO,EAAM,cAAgB,IAAI,KAAK,GAAO,mBACjE,GAAuC,OAAnC,EAAS,MAAM,gBAA0B,CAClD,KAEI,aAAiB,MACW,kBAApB,EAAM,YAA2B,MAAM,KAAK,MAAM,KAG5D,MAAM,IAAI,MACL,0HAIP,EAjJN,SAAwB,GACpB,IAAG,EACC,OAGqB,kBAAhB,EAAE,YACP,MAAI,KAAK,IAEb,OAAK,KAAK,MAAO,EAAW,UAAY,KAyI9B,CAAe,QAClB,GAAuC,OAAnC,EAAS,MAAM,gBAA0B,CAC5C,IAAD,IAAiB,GACpB,MAAM,IAAI,MACL,EAAU,sDAAsD,EAAK,MAG5E,EAAQ,EAGV,OAAK,EA1TS,CAAmB,EAAY,EAAQ,GACF,OAAtC,EAAW,MAAM,iBAC1B,EA2OR,SAAgCC,EAAoB,GAChD,QAAW,GAAT,EAAoB,CAClB,KAAE,aAAiB,YACrB,MAAM,IAAI,MAAS,EAAU,gCAE3B,EAAI,EAAuB,GAE/B,OAAK,EAlPS,CAAuB,EAAY,GACE,OAAtC,EAAW,MAAM,iBAC1B,EAmPR,SAAgC,EAAoB,GAChD,QAAW,GAAT,EAAoB,CAClB,KAAE,aAAiB,YACf,UAAI,MAAS,EAAU,gCAE3B,EA3IR,SAA2B,GACvB,IAAG,EACH,OAEA,KAAI,aAAkB,YACtB,MAAM,IAAI,MAAM,2EAKhB,OAlBJ,SAAiB,EAAa,GAC1B,IAAE,EAAM,EAAI,OACd,KAAO,EAAM,GAAK,GAAK,EAAI,EAAM,KAAO,KACpC,EAEF,OAAK,EAAI,OAAO,EAAG,GAad,CAFK,EAAuB,GAEf,KAAK,QAAQ,MAAO,KAAK,QAAQ,MAAO,KAiIlD,CAAkB,GAE1B,OAAK,EA1PS,CAAuB,EAAY,GACC,OAArC,EAAW,MAAM,gBAC1B,EAuTR,SACE,EACA,EACA,EACA,GAEE,IAAG,MAAM,QAAQ,GACjB,MAAM,IAAI,MAAS,EAAU,2BAE7B,IAAI,EAAc,EAAO,KAAK,QAC9B,IAAG,GAAsC,kBAAhB,EACrB,MAAE,IAAI,MACR,gGAC4C,EAAU,KAIxD,IADA,IAAI,EAAY,GACT,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC7B,EAAM,GAAK,EAAW,UAAU,EAAa,EAAO,GAAI,GAE5D,OAAK,EA3US,CAAsB,KAAM,EAA0B,EAAQ,GACxB,OAAvC,EAAW,MAAM,kBAC1B,EA4UR,SACE,EACA,EACA,EACA,GAEE,GAAoB,kBAAX,EACL,MAAE,IAAI,MAAS,EAAU,4BAE7B,IAAI,EAAY,EAAO,KAAK,MAC5B,IAAG,GAAkC,kBAAd,EACnB,MAAE,IAAI,MACR,mGAC4C,EAAU,KAIxD,IADA,IAAI,EAAyC,GAC7B,aAAO,KAAK,GAAZ,eAAqB,CAA9B,IAAE,EAAG,KACR,EAAW,GAAO,EAAW,UAAU,EAAW,EAAO,GAAM,EAAa,IAAM,GAEtF,OAAK,EAhWS,CAAwB,KAAM,EAA4B,EAAQ,GAC7B,OAAtC,EAAW,MAAM,mBAC1B,EA0YR,SACE,EACA,EACA,EACA,G,MAEI,EAAuC,EAAY,KACrD,EAAS,EAAqB,EAAY,EAAQ,EAAQ,eAG1D,QAAY,GAAV,EAAqB,CAGnB,IAFA,IAAE,EAAe,GACf,EAAa,EAAuB,EAAY,EAAQ,GAC5C,aAAO,KAAK,GAAZ,eAAyB,CAAtC,IAAM,EAAG,KACN,EAAiB,EAAW,GAClC,IAAI,EAAe,SAAnB,CAIA,IAAI,OAAQ,EACR,EAAoB,EAClB,GAAF,EAAW,MAEX,EADE,EAAe,aACN,EAAe,QAEf,EAAe,gBAAkB,EAAe,YAExD,CACL,IAAM,EAAQ,EAAmB,EAAe,gBAChD,EAAW,EAAM,MAEjB,IAAuB,2BAAO,CAAzB,IAAM,EAAQ,UAEE,GADC,EAAa,SACc,GAAf,EAAO,KACrC,EAAa,GAAY,IAE3B,EAAe,EAAa,IAI1B,QAAc,GAAhB,EAA2B,CACrB,IAAF,EAC8B,KAAlC,EAAe,eACX,EAAa,IAAM,EAAe,eAClC,EAEF,EAAc,EAAO,GACnB,EAA2B,EAAuC,EAAY,GAElF,GACA,EAAyB,aAAe,QACzB,GAAf,IAEA,EAAc,EAAO,gBAGf,IAAF,EAAkB,EAAW,UACjC,EACA,EACA,QAEsB,IAApB,QAA6C,GAAZ,IAC/B,EAAe,gBAIjB,EAAa,EAAI,EAAa,GAAK,GACnC,EAAa,EAAE,GAAY,GAClB,EAAe,aACxB,EAAa,KAAS,MAAM,EAAe,gBAAkB,EAAe,GAE5E,EAAa,GAAY,KAM7B,IAAE,EAA6B,EAAO,KAAK,qBAC3C,KAA4B,CACxB,MAAY,OAAO,KAAK,G,WACnB,GACoB,EAAU,OAAM,SAAC,GAAO,kBAEzC,EAAF,GAAkB,EAAW,UACnC,EACA,EAAO,GACP,EAAa,KAAO,EAAiB,QANrC,IAAD,IAAM,KAAkB,E,EAAlB,GAYT,OAAG,EAEP,OAAK,EAxeS,CAAuB,KAAM,EAA2B,EAAQ,IAG1E,OAAG,GAcP,EAAF,+BAAY,EAAgB,EAAmB,GACzC,QAAgB,GAAhB,EAWI,OAVF,KAAK,OAA8B,aAArB,EAAO,KAAK,OAAwB,EAAO,eAInD,EAAO,SAGW,IAAxB,EAAO,eACD,EAAO,EAAO,cAEjB,EAGL,MACE,EAAa,EAAO,KAAK,KA0D3B,OAzDC,IACG,EAAO,EAAO,gBAGoB,OAAtC,EAAW,MAAM,iBACb,EAwcZ,SACE,EACA,EACA,EACA,GAEI,EAAuC,EAAY,KACjD,EAAK,EAAqB,EAAY,EAAQ,EAAc,mBAOhE,IAJA,IAAI,EAAa,EAAuB,EAAY,EAAQ,GAC1D,EAAmC,GACjC,EAAiC,GAErB,aAAO,KAAK,GAAZ,eAAyB,CAAlC,IAAE,EAAG,KACN,EAAiB,EAAW,GAC5B,EAAQ,EAAmB,EAAW,GAAK,gBAC7C,EAAiB,KAAK,EAAM,IACpB,IAAJ,EAA4C,EAA9B,eAAE,EAA4B,EAArB,QAAE,EAAmB,EAAL,eAC3C,EAAqB,EACF,KAAnB,QAA4C,IAAnB,IAC3B,EAAqB,EAAa,IAAM,GAG1C,IAAM,EAA0B,EAAoC,uBACpE,GAAI,EAAwB,CAE1B,IADA,IAAM,EAAkB,GACA,aAAO,KAAK,GAAZ,eAA2B,CAA9C,IAAM,EAAS,KACd,EAAU,WAAW,KACvB,EAAW,EAAU,UAAU,EAAuB,SAAW,EAAW,YACzE,EAAoC,KAAK,MAC1C,EAAa,GACb,IAIJ,EAAqB,KAAK,GAE5B,EAAS,GAAO,OACX,GAAI,EAAW,MACpB,GAAI,EAAe,gBAAkB,EAAa,EAChD,EAAS,GAAO,EAAW,YACzB,EACA,EAAa,EAAE,GACf,OAEG,CACL,IACI,EAAoB,EADH,GAAkB,GAAW,GAElD,GAAI,EAAe,kBAIgC,KAFjD,GADA,EAAoB,EAAa,KACQ,EAAkB,MAIzD,EAAoB,IAGxB,EAAS,GAAO,EAAW,YACzB,EACA,EACA,OAGC,CAKC,IAHA,IAAF,OAAgB,EAChB,EAAM,EAES,uBAAO,CAArB,IAAM,EAAI,KACL,IAAH,EAAK,MACF,EAAF,EAAI,GAEN,EAAa,EACb,MAA2B,EAAO,KAAK,yBAW3C,GACA,IAAQ,EAAyB,iBACb,GAApB,IAEA,EAAmB,EAAO,gBAG5B,IAAI,OAAe,EAEnB,GAAI,MAAM,QAAQ,EAAa,KAA4C,KAAnC,EAAW,GAAK,eAAuB,CAC7E,EAAmB,EAAa,GAQhC,IAPA,IAAM,EAAgB,EAAW,YAC/B,EACA,EACA,GAIyB,aAAO,QAAQ,GAAf,eAA0B,CAA1C,WAAC,EAAG,KAAE,EAAK,KACf,EAAc,eAAe,KAChC,EAAc,GAAO,GAGzB,EAAW,YACmB,IAArB,QAAkE,IAAhC,EAAe,eAC1D,EAAkB,EAAW,YAC3B,EACA,EACA,GAEF,EAAS,GAAO,IAKtB,IAAM,EAA6B,EAAO,KAAK,qBAC/C,GAAI,EAA4B,CAC9B,IAAM,EAAuB,SAAC,GAC5B,IAAK,IAAM,KAAkB,EAAY,CAEvC,GADc,EAAmB,EAAW,GAAgB,gBAClD,KAAO,EACf,OAAO,EAGX,OAAO,GAGT,IAAK,IAAM,KAAoB,EACzB,EAAqB,KACvB,EAAS,GAAoB,EAAW,YACtC,EACA,EAAa,GACb,EAAa,KAAO,EAAmB,YAIxC,GAAI,EACT,IAAkB,iBAAO,KAAK,GAAZ,eAA2B,MAEvB,IAAlB,EAFO,EAAG,OAGT,EAAqB,SAAS,IAC9B,EAAqB,KAEtB,EAAS,GAAO,EAAa,IAKnC,OAAO,EAjmBO,CAAyB,KAAM,EAA2B,EAAc,IAE9E,KAAK,YAMkB,GAArB,EAAY,QAA2C,GAArB,EAAY,IAChD,EAAe,EAAY,GAIQ,OAAnC,EAAW,MAAM,eACXD,EAAE,WAAW,GACjB,MAAM,KACR,EAAU,IAEiC,OAApC,EAAW,MAAM,eAExB,EADmB,SAAjB,GAEwB,UAAjB,GAGC,EAEuE,OAA1E,EAAW,MAAM,qDAC1B,EAAU,EAC2D,OAA5D,EAAW,MAAM,uCAClBA,EAAE,IAAI,KAAK,GAC2B,OAArC,EAAW,MAAM,gBAC1B,EA0FR,SAAwB,GACpB,IAAG,EACC,OAEJ,OAAK,IAAI,KAAS,IAAJ,GA9FA,CAAe,GACsB,OAAtC,EAAW,MAAM,iBAC1B,EAAU,EAAoB,GACiB,OAAtC,EAAW,MAAM,iBAC1B,EA0CR,SAA8B,GAC1B,IAAG,EACC,OAEJ,GAAE,GAAgC,kBAAlB,EAAI,UAChB,MAAE,IAAI,MAAM,uEAKhB,OAAK,EAFL,EAAI,EAAI,QAAQ,MAAO,KAAK,QAAQ,MAAO,MAlD7B,CAAqB,GACe,OAArC,EAAW,MAAM,gBAC1B,EAulBR,SACE,EACA,EACA,EACA,GAGA,IAAM,EAAU,EAAO,KAAK,QAC5B,IAAK,GAA8B,kBAAZ,EACrB,MAAM,IAAI,MACR,gGAC4C,GAGhD,GAAI,EAAc,CACX,MAAM,QAAQ,KAEjB,EAAe,CAAC,IAIlB,IADA,IAAM,EAAY,GACT,EAAI,EAAG,EAAI,EAAa,OAAQ,IACvC,EAAU,GAAK,EAAW,YAAY,EAAS,EAAa,GAAO,EAAU,IAAI,EAAC,KAEpF,OAAO,EAET,OAAO,EAjnBS,CAAwB,KAAM,EAA0B,EAAc,GAChC,OAAvC,EAAW,MAAM,oBAC1B,EA6jBR,SACE,EACA,EACA,EACA,GAGA,IAAM,EAAQ,EAAO,KAAK,MAC1B,IAAK,GAA0B,kBAAV,EACnB,MAAM,IAAI,MACR,mGAC4C,GAGhD,GAAI,EAAc,CAEhB,IADA,IAAM,EAAyC,GAC7B,aAAO,KAAK,GAAZ,eAA2B,CAAxC,IAAM,EAAG,KACZ,EAAe,GAAO,EAAW,YAAY,EAAO,EAAa,GAAM,GAEzE,OAAO,EAET,OAAO,EAllBS,CACR,KACA,EACA,EACA,KAKF,EAAO,aACT,EAAU,EAAO,cAGZ,GAEX,EAzOA,GA6QA,SAAS,EAAmB,GACxB,IAAI,EAAoB,GACtB,EAAe,GACjB,GAAE,EAGF,IAFA,IAEmB,MAFF,EAAK,MAAM,KAET,eAAU,CAAxB,IAAM,EAAI,KACwB,OAAjC,EAAK,OAAO,EAAK,OAAS,GAC5B,GAAgB,EAAK,OAAO,EAAG,EAAK,OAAS,GAAK,KAElD,GAAgB,EAChB,EAAQ,KAAK,GACb,EAAe,IAKnB,OAAK,EAoNT,SAAS,EACP,EACA,EACA,GAEE,IAAE,EAAa,EAAO,KAAK,gBAC3B,IAAG,EAAY,CACX,IAAE,EAAY,EAAO,KAAK,UAC1B,IAAC,EACG,UAAI,MACR,yBAAyB,EAAU,oCAAoC,KAAK,UAC1E,OACA,EACA,GACD,MAID,IAAE,EAAc,EAAW,aAAa,GACxC,IAAC,EACG,UAAI,MAAM,mDAAmD,EAAS,MAG1E,KADA,EAAS,EAAY,KAAK,iBAEtB,UAAI,MACR,8DACa,KAAK,UACd,GACD,cAAc,EAAS,iBAAiB,EAAU,MAK3D,OAAO,EAoGT,SAAS,EAAqB,GAC1B,MAAK,CAAC,IAAK,KAAK,SAAS,GAoN7B,SAAS,EACP,EACA,EACA,EACA,GAEA,IAAM,EAA2B,EAAuC,EAAY,GACpF,GAAI,EAA0B,CAC5B,IAAM,EAAoB,EAAyB,GACnD,QAAyB,GAArB,EAAgC,CAClC,IAAM,EAAqB,EAAO,GAClC,QAA0B,GAAtB,EAAiC,CACnC,IAAM,EAAW,EAAO,KAAK,YAAc,EAAO,KAAK,UACjD,EACJ,IAAuB,EACnB,EACA,EAAW,IAAM,EACjB,EAAoB,EAAW,aAAa,eAAe,GAC7D,IACF,EAAS,KAKjB,OAAO,EAGT,SAAS,EACP,EACA,GAEA,OACE,EAAO,KAAK,0BACZ,EAAkC,EAAY,EAAO,KAAK,aAC1D,EAAkC,EAAY,EAAO,KAAK,WAI9D,SAAS,EAAkC,EAAwB,GACjE,OACE,GACA,EAAW,aAAa,IACxB,EAAW,aAAa,GAAU,KAAK,yBAyJpC,IAAM,EARb,SAAmC,GAEjC,IADA,IAAM,EAAc,GACF,uBAAG,CAAhB,IAAM,EAAG,KACZ,EAAO,GAAO,EAEhB,OAAO,EAGiB,CAAQ,CAChC,YACA,UACA,YACA,YACA,OACA,WACA,kBACA,aACA,OACA,SACA,SACA,WACA,SACA,SACA,WACA,c,6BCriCF,kHAIa9zU,EAAa,YAAe,CACvCm9D,KAAM,CACJv1F,QAAS,gBAEXkvO,YAAa,CACX,sBACA,CACEv7O,MAAO,QAGX80W,MAAO,CACL,yBACA,CACE1/T,SAAU,aAKHqjU,EAAU,UAEVC,EAAY,SAAC1lX,GAChB,IAAA2Y,EAA6D3Y,EAApD,UAAEuhO,EAAkDvhO,EAArC,cAAE2lX,EAAmC3lX,EAAtB,cAAE4lX,EAAoB5lX,EAAb,QAAEo8C,EAAWp8C,EAAL,OAEhE,MAAO,CACL4uG,KAAM,CACJ+2Q,GAAiBl0U,EAAW82M,YAC5B92M,EAAWm9D,KACXg3Q,GAAWn0U,EAAWqwU,MACtBvgJ,EACA5oN,EACAyjC,GAAUA,EAAOwyD,KAEjBxyD,GAAUA,EAAOypU,mB,6BCuCvB,IAAYC,EAgCAC,EApCZ,oEAIA,SAAYD,GAIV,uBAKA,qBAKA,uBAKA,qBAnBF,CAAYA,MAAW,KAgCvB,SAAYC,GAIV,uBAKA,qBATF,CAAYA,MAAW,M,0ECvGVzwI,EACT,WAAYt9M,GAAkE,IAA5DguV,EAA4D,uDAA1C,GAAI3wI,EAAsC,4EAC1ElzO,KAAK61B,KAAOA,EACZ71B,KAAK6jX,gBAAkBA,EACvB7jX,KAAKkzO,6BAA+BA,I,+eCJ/B4wI,EAAwB,qC,wFCGxBC,EAAb,WACI,WAAYxkW,EAAY8uL,GAAwC,IAAjC21K,EAAiC,uDAAH,EAAG,oBAC5DhkX,KAAKuf,WAAaA,EAClBvf,KAAKquM,MAAQA,EACbruM,KAAKgkX,4BAA8BA,EAJ3C,yDAMI,SAAsB52O,GAClB,GAA0B,IAAtBptI,KAAKquM,MAAMtwM,OACX,MAAO,GAEX,IAAMkmX,EAAWjkX,KAAKquM,MAAMruM,KAAKquM,MAAMtwM,OAAS,GAMhD,OAiBR,SAAoBorE,EAAMghD,GACtB,IAAM+5P,EAAc,IAAIC,EAA0Bh7S,GAC5Ci7S,EAAcj6P,EAAM/nG,KAAI,SAAAzhB,GAC1B,IAAMke,EAAQR,IAAM6W,KAAKv0B,EAAEke,OAC3B,MAAQ,CACJ62F,YAAawuQ,EAAYG,UAAUxlW,EAAMQ,oBACzCi7F,UAAW4pQ,EAAYG,UAAUxlW,EAAMO,kBACvC+pD,KAAMxoE,EAAEwoE,SAGhBi7S,EAAYt7W,MAAK,SAAC5E,EAAG5E,GAAJ,OAAUA,EAAEo2G,YAAcxxG,EAAEwxG,eAVhB,oBAWV0uQ,GAXU,IAW7B,2BAAgC,KAArB13S,EAAqB,QAC5BvD,EAAOA,EAAK9oC,UAAU,EAAGqsC,EAAKgpC,aAAehpC,EAAKvD,KAAOA,EAAK9oC,UAAUqsC,EAAK4tC,YAZpD,8BAc7B,OAAOnxC,EAnCU+8C,CADUknB,EAASjkG,OAAO,EAAG86U,EAASzkW,OAAS,GACpBxf,KAAKquM,MAAMjsL,KAAI,SAAA1iB,GAAC,MAAK,CACzDmf,MAAO,CAAEP,gBAAiB,EAAGE,cAAe,EAAGD,YAAa7e,EAAE8f,OAAQf,UAAW/e,EAAE8f,QACnF2pD,KAAMzpE,EAAEi1D,MAAMh4C,KAAK,WAEX0jB,UAAUrgC,KAAKquM,MAAM,GAAG7uL,OAAS,OAhBrD,KAmBM2kW,E,WACF,WAAYh7S,GAAM,oBACdnpE,KAAKskX,yBAA2B,GAChCtkX,KAAKskX,yBAAyB/gX,KAAK,GACnC,IAAK,IAAIzF,EAAI,EAAGA,EAAIqrE,EAAKprE,OAAQD,IACN,OAAnBqrE,EAAKpoC,OAAOjjC,IACZkC,KAAKskX,yBAAyB/gX,KAAKzF,EAAI,G,6CAInD,SAAU6gB,GACN,OAAO3e,KAAKskX,yBAAyB3lW,EAASY,WAAa,GAAKZ,EAASa,OAAS,M,KAmBnF,IAAM+kW,EACT,WAAY/kW,EAAQm1C,EAIpBulB,GAAS,oBACLl6E,KAAKwf,OAASA,EACdxf,KAAK20D,MAAQA,EACb30D,KAAKk6E,QAAUA,GAGVsqS,EAAb,kDACI,WAAYvxV,GAAQ,kCAChB,gBACKA,OAASA,EACd,EAAKwxV,eAAY5qW,EACjB,EAAK29G,mBAAqB,IAAI/iH,IAC9B,EAAKs5B,YAAc,EAAKypF,mBAAmB7iH,MAC3C,EAAKjL,UAAUupB,EAAO81H,0BAAyB,SAACpoJ,GACxCA,EAAEynF,WAAW,WAAyCvuE,IAAnB,EAAK4qW,WACxC,EAAKjtP,mBAAmBviH,WARhB,EADxB,+CAaI,SAAYuqN,GACRx/N,KAAKykX,WAAY,EACjBzkX,KAAKw3H,mBAAmBviH,WAfhC,GAA8CjL,K,iBC9CvC,SAAS06W,EAA4BC,EAAkBr+P,EAAWr3G,EAAM21W,GAAyC,IAAzBC,EAAyB,uDAAH,EACjH,GAAIF,EAAiB9lW,MAAMP,kBAAoBqmW,EAAiB9lW,MAAML,cAAtE,CAIA,IAAMsmW,EAAax+P,EAAU9b,eAAem6Q,EAAiB9lW,MAAMP,iBAC7DymW,EAA0BtrR,IAA6BqrR,GAAY/mX,OACnEinX,EAA+BL,EAAiB9lW,MAAMN,YAAc,GAAKwmW,EAC/E,GAAIC,EAA8B,CAQ9B,IAAMC,EAAmCxrR,IAA6BkrR,EAAiBx7S,MAAMprE,OACvFmnX,EAAsBJ,EAAWzkV,UAAUskV,EAAiB9lW,MAAMN,YAAc,EAAGwmW,GACnFI,EAAqC9mW,IAAMq1H,cAAcixO,EAAiB9lW,MAAMQ,mBAAmBs4C,MAAM,EAAGutT,EAAoBnnX,QAAS4mX,EAAiB9lW,MAAMO,kBAChKgmW,EAAqCT,EAAiBx7S,KAAKu3G,WAAWwkM,GAEtEP,EAAiBx7S,KAAK9oC,UAAU6kV,EAAoBnnX,QAEpD4mX,EAAiBx7S,KAAK9oC,UAAU4kV,GACtCN,EAAmB,CACf9lW,MAAOsmW,EACPh8S,KAAMi8S,EACNpzV,QAAS2yV,EAAiB3yV,SAIlC,IAAMqzV,EAAoB/+P,EAAU7I,gBAAgBknQ,EAAiB9lW,OAC/DonG,EAAUq/P,EAAYD,EAAmBV,EAAiBx7S,MAChE,GAAK88C,EAAL,CAIA,IAAM1mG,EAAaolW,EAAiB9lW,MAAMP,gBACpC+vL,EAAQ,IAAI5uM,MAClB,GAAa,WAATwP,EAAmB,CACnB,IAAMs2W,EAAkBt/P,EAAQj3F,QAAO,SAAA9tB,GAAC,OAAyB,IAArBA,EAAEknE,kBAC9C,GAAIm9S,EAAgBxnX,OAAS,GAAgC,IAA3BwnX,EAAgBxnX,QAAgBwnX,EAAgB,GAAGtxG,gBAAkBoxG,EAAkBtnX,OAErH,OAGR,IA9CoH,EA8C9GynX,EAA+Bb,EAAiBx7S,KAAKprE,OAAS8mX,EA9CgD,cA+CpG5+P,GA/CoG,IA+CpH,2BAAyB,KAAd/kH,EAAc,QACfukX,EAAed,EAAiB9lW,MAAMN,YAAcrd,EAAE+yQ,cAAgB/yQ,EAAEknE,eAC9E,GAAa,iBAATn5D,GAA2B21W,GAAkBA,EAAerlW,aAAeolW,EAAiB9lW,MAAMP,iBAAmBmnW,EAAeb,EAAeplW,OAEnJ,OAEJ,GAAIte,EAAEknE,eAAiB,EACnB,OAEJ,GAAyB,IAArBlnE,EAAEizQ,eAAN,CAGA,IAAMuxG,EAAcxkX,EAAEgzQ,cAAgBhzQ,EAAEizQ,eAClCwxG,EAAoBjuW,KAAKC,IAAIzW,EAAEgzQ,cAAex8P,KAAKgI,IAAIgmW,EAAaF,IACpEI,EAAiBjB,EAAiBx7S,KAAK9oC,UAAUn/B,EAAEgzQ,cAAeyxG,GAClEE,EAAalB,EAAiBx7S,KAAK9oC,UAAUslV,EAAmBjuW,KAAKC,IAAIzW,EAAEgzQ,cAAewxG,IAChG,GAAIE,EAAe7nX,OAAS,EAAG,CAC3B,IAAM42D,EAAQ8kC,IAAmBmsR,GACjCv3K,EAAM9qM,KAAK,IAAIghX,EAAckB,EAAc9wT,GAAO,IAEtD,GAAIkxT,EAAW9nX,OAAS,EAAG,CACvB,IAAM42D,EAAQ8kC,IAAmBosR,GACjCx3K,EAAM9qM,KAAK,IAAIghX,EAAckB,EAAc9wT,GAAO,OArE0D,8BAwEpH,OAAO,IAAIovT,EAAUxkW,EAAY8uL,EAAO,KAE5C,IAAIy3K,OAAcjsW,EAClB,SAASyrW,EAAYS,EAAeC,GAChC,IAAqB,OAAhBF,QAAwC,IAAhBA,OAAyB,EAASA,EAAYC,iBAAmBA,IAAkC,OAAhBD,QAAwC,IAAhBA,OAAyB,EAASA,EAAYE,YAAcA,EAChM,OAAuB,OAAhBF,QAAwC,IAAhBA,OAAyB,EAASA,EAAY7/P,QAG7E,IAAMA,EAiBd,SAAmB8/P,EAAeC,GAC9B,GAAID,EAAchoX,OAAS,KAAQioX,EAASjoX,OAAS,IAEjD,OAEJ,SAASkoX,EAAe1jU,GAEpB,IADA,IAAI2jU,EAAc,EACTpoX,EAAI,EAAG+jC,EAAM0gB,EAAIxkD,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC5C,IAAM+lC,EAAW0e,EAAIxgB,WAAWjkC,GAC5B+lC,EAAWqiV,IACXA,EAAcriV,GAGtB,OAAOqiV,EAEX,IAAMA,EAAcxuW,KAAKC,IAAIsuW,EAAeF,GAAgBE,EAAeD,IAC3E,SAASG,EAAkB5vW,GACvB,GAAIA,EAAK,EACL,MAAM,IAAIrL,MAAM,cAEpB,OAAOg7W,EAAc3vW,EAAK,EAE9B,SAASi9P,EAAYrkP,GAIjB,IAHA,IAAIqqG,EAAQ,EACRznG,EAAQ,EACNq0V,EAAa,IAAIC,WAAWl3V,EAAOpxB,QAChCD,EAAI,EAAG+jC,EAAM1S,EAAOpxB,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC/C,IAAMyY,EAAa,IAARwb,EAAcynG,EAEP,MAAdrqG,EAAOrxB,IACPsoX,EAAWtoX,GAAKqoX,EAAkB,EAAI5vW,GACtCijH,KAEmB,MAAdrqG,EAAOrxB,IACZsoX,EAAWtoX,GAAKqoX,EAAkB,EAAI5vW,EAAK,GAC7B,IAAVijH,GACAznG,IAEJynG,EAAQ9hH,KAAKC,IAAI6hH,EAAQ,EAAG,IAG5B4sP,EAAWtoX,GAAKqxB,EAAO4S,WAAWjkC,GAG1C,OAAOsoX,EAEX,IAAME,EAAY9yG,EAAYuyG,GACxBQ,EAAY/yG,EAAYwyG,GAC9B,OAAO,IAAIzyG,IAAQ,CAAEC,YAAa,kBAAM8yG,IAAa,CAAE9yG,YAAa,kBAAM+yG,KAAa9yG,aAAY,GAAOxtJ,QAjEtFugQ,CAAUT,EAAeC,GAMzC,OALAF,EAAc,CACVC,gBACAC,WACA//P,WAEGA,ECvGf,IAAIllH,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAkBlEukX,EAAsB,kDACtB,WAAYxzV,EAAQ8F,EAAOgtU,GAAgB,kCACvC,gBACK9yU,OAASA,EACd,EAAK8F,MAAQA,EACb,EAAKgtU,eAAiBA,EACtB,EAAKvuO,mBAAqB,IAAI/iH,IAC9B,EAAKs5B,YAAc,EAAKypF,mBAAmB7iH,MAC3C,EAAK+xW,kBAAoB,EAAKh9W,UAAU,IAAIsU,KAC5C,EAAK2oW,QAAS,EACd,EAAKpkT,UAAW,EAChB,EAAK74D,UAAUq8V,EAAe6gB,qBAAoB,SAAAjmX,GAE7B,IAAI0c,IAAI,CACrB2Z,IAAYzgB,GACZ6gB,IAAY7gB,GACZmxM,sBAAoBW,IAAI9xM,GACxBmxM,sBAAoBY,WAAW/xM,GAC/BmxM,sBAAoBkB,YAAYryM,GAChCutW,EACA,6BAESxhU,IAAI3hD,EAAEy1B,YAAcnD,EAAOusL,gBACpC,EAAKqnK,sBAGb,EAAKn9W,UAAU,EAAKupB,OAAO6zV,WAAU,SAACnmX,GAClC,EAAKkmX,sBAET,EAAKn9W,UAAU,EAAKupB,OAAOkwK,2BAA0B,SAACxiM,GAC9C,EAAKomX,UAAY,EAAKA,QAAQC,SAC9B,EAAK5vW,WAGb,EAAK1N,UAAUyO,aAAa,WACxB,EAAKoqD,UAAW,MAEpB,EAAK74D,UAAU,EAAKupB,OAAOg0V,uBAAsB,WAC7C,EAAK7vW,WArC8B,EADrB,mDAyCtB,WAAkB,WACVpX,KAAK+mX,UAAY/mX,KAAK+mX,QAAQC,SAC9BhnX,KAAKoX,OAETpP,YAAW,WACH,EAAKu6D,UAIT,EAAK2kT,4BACN,KAnDe,mBAqDtB,WACI,OAAOlnX,KAAK0mX,kBAAkB1kX,QAtDZ,qBAwDtB,WACI,IAAIgD,EACJ,OAA+B,QAAvBA,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,OAAgB,EAASA,EAAGmiX,YA1DjD,gCA4DtB,WACI,OAAOnnX,KAAK+mX,QAAU/mX,KAAK+mX,QAAQK,qBAAuB,IA7DxC,yBA+DtB,SAAY5nJ,GACR,IAAIx6N,EACoB,QAAvBA,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,GAAyBA,EAAGqiX,YAAY7nJ,KAjEtD,uBAmEtB,SAAUmnJ,GACN,IAAI3hX,EACJhF,KAAK2mX,OAASA,EACVA,IACwB,QAAvB3hX,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,GAAyBA,EAAGsiX,6BAvE9C,qCA0EtB,WAC2BtnX,KAAKizB,OAAO+nJ,UAAU,IACzBhtF,UAGhBhuF,KAAK+mX,SAAW/mX,KAAK+mX,QAAQC,SAGjChnX,KAAK+gE,QAAQxzB,IAA4Bg6U,cAlFvB,qBAoFtB,SAAQ/lO,GAAa,WACbxhJ,KAAK0mX,kBAAkB1kX,MACnBw/I,IAAgBj0G,IAA4Bi6U,UACvCxnX,KAAK0mX,kBAAkB1kX,MAAMylX,mCAI1CznX,KAAK0mX,kBAAkB1kX,MAAQ,IAAI0lX,EAAyB1nX,KAAKizB,OAAQjzB,KAAKizB,OAAO2vK,eAAe,kBAAM,EAAK+jL,SAAQ3mX,KAAK+lW,eAAgB/lW,KAAK+4B,MAAOyoH,GACxJxhJ,KAAK0mX,kBAAkB1kX,MAAM2lX,cAAc3nX,KAAK0mX,kBAAkB1kX,MAAM+rC,aAAY,WAChF,EAAKypF,mBAAmBviH,cA7FV,kBAgGtB,WACIjV,KAAK0mX,kBAAkBnpW,QACvBvd,KAAKw3H,mBAAmBviH,SAlGN,qCAoGtB,WACI,IAAIjQ,EAEoB,QAAvBA,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,GAAyBA,EAAG4iX,4BAvG1C,sBAyGtB,WACI,IAAI5iX,EACoB,QAAvBA,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,GAAyBA,EAAG6iX,6BA3G1C,0BA6GtB,WACI,IAAI7iX,EACoB,QAAvBA,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,GAAyBA,EAAG8iX,iCA/G1C,0CAiHtB,WACI,IAAI9iX,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,oFACpB,OADoB,SACW,QAAvBgF,EAAKhF,KAAK+mX,eAA4B,IAAP/hX,OAAgB,EAASA,EAAG+iX,+BAD/C,cAC7B3lX,EAD6B,8BAEjByX,IAAXzX,GAAuBA,GAFK,oDAnHrB,GAAwC4H,KAyHlEy8W,EAAyB1lX,EAAW,CAChCsqF,EAAQ,EAAGiD,MACZm4R,GAEI,IAAMiB,EAAb,kDACI,WAAYz0V,EAAQ0yU,EAAiBqiB,EAAcjiB,EAAgBhtU,EAAOkvV,GAAoB,2BAC1F,cAAMh1V,IACD0yU,gBAAkBA,EACvB,EAAKqiB,aAAeA,EACpB,EAAKjiB,eAAiBA,EACtB,EAAKhtU,MAAQA,EACb,EAAKkvV,mBAAqBA,EAC1B,EAAKb,qBAAuB,EAC5B,EAAKc,gBAAkB,EAAKx+W,UAAU,IAAIsU,KAC1C,EAAKmqW,WAAa,EAAKz+W,UAAU,IAAI+kB,KAAiB,WAClD,IAAI+yH,EAAc,EAAKymO,mBAGvB,OADA,EAAKA,mBAAqB16U,IAA4Bg6U,UAC/C,EAAKj6L,OAAO9rC,KACpB,KAGH,EAAK4mO,mCAAgCvuW,EACrC,IAAIwuW,OAAqBxuW,EAlBiE,OAmB1F,EAAKnQ,UAAU,EAAKqkC,aAAY,WAC5B,IAAMu6U,EAAoB,EAAKA,kBAC/B,GAAIA,GAAqBA,EAAkBC,yBAA2BF,EAAoB,CACtFA,EAAqBC,EAAkBC,uBACvC,IAAM1oO,EAAWyoO,EAAkBE,eAC/B3oO,EAAS4oO,mBACT5oO,EAAS4oO,kBAAkBH,EAAkBI,wBAAyBL,QAIlF,EAAK3+W,UAAUyO,aAAa,WACxB,EAAK4gB,MAAMxb,YAEf,EAAK7T,UAAU,EAAKupB,OAAOkwK,2BAA0B,SAACxiM,GAC9C,EAAKo4B,MAAM/2B,OACX,EAAKw1H,mBAAmBviH,WAGhC,EAAKvL,UAAU,EAAKupB,OAAOswK,yBAAwB,SAAC5iM,GAChD,EAAK2mX,8BAET,EAAK59W,UAAUknC,IAAkC7C,aAAY,WACzD,EAAKo6U,WAAWv5V,eAEpB,EAAK04V,0BA3CqF,EADlG,oEA8CI,WAAmC,WAC/B,IAAKtnX,KAAKooX,gCAAkCpoX,KAAK+4B,MAAM/2B,MACnD,OAAO,EAEX,GAA4C,IAAxChC,KAAK+4B,MAAM/2B,MAAM0hJ,YAAY3lJ,OAE7B,OAAO,EAEX,IAAMyhC,EAAMx/B,KAAK+4B,MAAM/2B,MAAM0hJ,YAAY6/E,WAAU,SAAAngO,GAAC,OAAIA,EAAEulX,aAAe,EAAKP,iCAC9E,OAAa,IAAT5oV,GAEAx/B,KAAKooX,mCAAgCvuW,EAC9B,GAEJ2lB,IA5Df,mCA8DI,WACI,GAAKx/B,KAAK+4B,MAAM/2B,MAGhB,OAAOhC,KAAK+4B,MAAM/2B,MAAM0hJ,YAAY1jJ,KAAK4oX,sCAlEjD,sCAoEI,WACI,IAAI5jX,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,sFACnC,OADmC,SAC7BA,KAAKynX,kCADwB,QAE7B/jO,GAA2C,QAA3B1+I,EAAKhF,KAAK+4B,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAG0+I,cAAgB,IACrF3lJ,OAAS,GACf8qX,GAAU7oX,KAAK4oX,mCAAqC,GAAKllO,EAAY3lJ,OAC3EiC,KAAKooX,8BAAgC1kO,EAAYmlO,GAAQF,YAGzD3oX,KAAKooX,mCAAgCvuW,EAEzC7Z,KAAKw3H,mBAAmBviH,OAVW,kDAtE/C,0CAmFI,WACI,IAAIjQ,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,sFACnC,OADmC,SAC7BA,KAAKynX,kCADwB,QAE7B/jO,GAA2C,QAA3B1+I,EAAKhF,KAAK+4B,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAG0+I,cAAgB,IACrF3lJ,OAAS,GACf8qX,GAAU7oX,KAAK4oX,mCAAqCllO,EAAY3lJ,OAAS,GAAK2lJ,EAAY3lJ,OAChGiC,KAAKooX,8BAAgC1kO,EAAYmlO,GAAQF,YAGzD3oX,KAAKooX,mCAAgCvuW,EAEzC7Z,KAAKw3H,mBAAmBviH,OAVW,kDArF/C,6CAkGI,WACI,IAAIjQ,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,kFAC/BA,KAAKkoX,gBAAgBlmX,MADU,oBAG3BhC,KAAKkoX,gBAAgBlmX,MAAMw/I,cAAgBj0G,IAA4Bi6U,SAH5C,gBAI3B,OAJ2B,SAIrBxnX,KAAKkoX,gBAAgBlmX,MAAMysC,QAJN,6BAO3B,OAP2B,SAOrBzuC,KAAKstL,OAAO//I,IAA4Bi6U,UAPnB,mCAUG,QAA3BxiX,EAAKhF,KAAK+4B,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAGw8I,eAAiBj0G,IAA4Bi6U,SAVpF,iBAY/B,OAZ+B,UAYzBxnX,KAAKstL,OAAO//I,IAA4Bi6U,UAZf,mDApG/C,0CAoHI,WACI,IAAIxiX,EACJ,OAAOzD,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,8EACnC,OADmC,SAC7BA,KAAKynX,kCADwB,kCAEE,QAA3BziX,EAAKhF,KAAK+4B,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAG0+I,YAAY3lJ,SAAW,GAAK,GAFlE,kDAtH/C,qBA4HI,WACI,IAAMuqX,EAAoBtoX,KAAKsoX,kBACzBr5W,EAAOjP,KAAKizB,OAAOs8F,aAAa98F,IAAI,IAAwBxjB,KAClE,OAAOq5W,EAAoB5D,EAA4B4D,EAAmBtoX,KAAKizB,OAAO+B,WAAY/lB,EAAMjP,KAAKizB,OAAO2vK,oBAAiB/oL,IA/H7I,6BAiII,WACI,IAAM+lI,EAAa5/I,KAAK8oX,wBACxB,GAAKlpO,EAGL,OAAOA,EAAWmpO,2BAtI1B,mBAwII,WACI,OAAO/oX,KAAKizB,OAAO2vK,cAAcrjL,aAAevf,KAAK2lW,gBAAgBpmV,aAzI7E,qCA2II,WAGIvf,KAAKkoX,gBAAgB3qW,QACrBvd,KAAKmoX,WAAWv5V,aA/IxB,oBAiJI,SAAO4yH,GACH,OAAOjgJ,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,kGAC9BA,KAAKgoX,eADyB,iDAsBnC,OAlBMrpW,EAAW3e,KAAKizB,OAAO2vK,cACvBn0J,EAAU8wB,aAAwB,SAACG,GAAD,OAAWn+D,EAAU,OAAM,OAAQ,EAAf,UAAuB,oFAGlE,OAHkE,kBAG5DynX,EAAyBrqW,EAAU3e,KAAKizB,OAAO+B,WAAY,CAAEwsH,cAAaynO,4BAAwBpvW,GAAa6lD,GAHnD,OAG3Et9D,EAH2E,8DAM3EoG,YAAkB,EAAD,IAN0D,+BAS3Ek3D,EAAMkpC,wBATqE,mDAY/E5oG,KAAK+4B,MAAMiqB,SAAShjD,KAAKizB,OAAQ7wB,EAAQo/I,GACzCxhJ,KAAKw3H,mBAAmBviH,OAbuD,4DAe7EqsG,EAAY,IAAI4nQ,EAAgBz6U,EAAS+yG,GAC/CxhJ,KAAKkoX,gBAAgBlmX,MAAQs/G,EArBM,SAsB7B7yE,EAtB6B,OAuB/BzuC,KAAKkoX,gBAAgBlmX,QAAUs/G,GAC/BthH,KAAKkoX,gBAAgB3qW,QAxBU,kDAlJ/C,2BA8KI,SAAcpB,GACVnc,KAAK0J,UAAUyS,KA/KvB,qCAiLI,WACI,GAAKnc,KAAKmnX,UAAV,CAKA,IAAMvnO,EAAa5/I,KAAKsoX,kBACpB1oO,GACA5/I,KAAKmpX,OAAOvpO,MAzLxB,oBA4LI,SAAOA,GAGH,IAIwB,EAJlB7mH,EAAQ/4B,KAAK+4B,MAAMqwV,gBACzBppX,KAAKizB,OAAOo2V,aAAa,0BAA2B,CAChD73M,IAAc83M,YAAY1pO,EAAW/gI,MAAO+gI,EAAWz2E,QAEvDy2E,EAAW5tH,UACX,EAAAhyB,KAAK+lW,gBACA13Q,eADL,SACoBuxD,EAAW5tH,QAAQzb,IADvC,mBAC+CqpI,EAAW5tH,QAAQxxB,WAAa,MAD/E,SAEa,WACC,OAAVu4B,QAA4B,IAAVA,GAA4BA,EAAM3gB,aAEnD9V,UAAKuX,EAAWglD,KAGX,OAAV9lC,QAA4B,IAAVA,GAA4BA,EAAM3gB,UAExDpY,KAAKw3H,mBAAmBviH,WA9MhC,GAA8CuvW,GAiNjC0E,EAAb,WACI,WAAYz6U,EAAS+yG,GAAa,oBAC9BxhJ,KAAKyuC,QAAUA,EACfzuC,KAAKwhJ,YAAcA,EAH3B,2CAKI,WACIxhJ,KAAKyuC,QAAQ3kC,aANrB,KAaay/W,EAAb,kDACI,WAAYt2V,EAAQu2V,EAAmB3kU,EAAU28F,GAAa,2BAC1D,gBACKA,YAAcA,EACnB,IAAMioO,EAAgBx2V,EAAOg3G,iBAAiB,GAAIu/O,EAAkBhhT,MAAMpmD,KAAI,SAAAtkB,GAAC,MAAK,CAChF+gB,MAAO/gB,EAAE+gB,MACTxZ,QAAS,CACL4Q,YAAa,yCANqC,OAS1D,EAAKvM,UAAUyO,aAAa,WACxB8a,EAAOg3G,iBAAiBw/O,EAAe,QAE3C,EAAK/lO,YAAc8lO,EAAkBhhT,MAAMpmD,KAAI,SAAClhB,EAAGs+B,GAAJ,OAAY,IAAIkqV,EAAuBxoX,EAAGuoX,EAAcjqV,OACvG,EAAK91B,UAAUupB,EAAOswK,yBAAwB,WAC1C,IADgD,EAC5Cn7G,GAAa,EACXtzD,EAAQ7B,EAAO+B,WAF2B,cAGhC,EAAK0uH,aAH2B,IAGhD,2BAAkC,KAAvBxiJ,EAAuB,QACxByoI,EAAW70G,EAAMs1G,mBAAmBlpI,EAAEupI,cACvCd,EAIAzoI,EAAEyoX,kBAAkBxqW,YAAYwqH,KACjCvhD,GAAa,EACblnF,EAAEyoX,kBAAoBhgP,GALtBnhI,YAAkB,IAAI0C,MAAM,6BANY,8BAc5Ck9E,GACAvjC,QAGR,EAAKn7C,UAAU8/W,GA/B2C,EADlE,UAAwDx/W,KAmClD0/W,E,WACF,WAAY/E,EAAkBl6O,GAAc,oBACxCzqI,KAAK2kX,iBAAmBA,EACxB3kX,KAAKyqI,aAAeA,EACpBzqI,KAAK2oX,WAAaliV,KAAK0xH,UAAU,CAC7BhvF,KAAMnpE,KAAK2kX,iBAAiBx7S,KAC5Bw8L,UAAW3lQ,KAAK2kX,iBAAiB9lW,MAAMP,gBACvCC,YAAave,KAAK2kX,iBAAiB9lW,MAAMN,YACzCyT,QAAShyB,KAAK2kX,iBAAiB3yV,UAEnChyB,KAAK2pX,kBAAoBhF,EAAiB9lW,M,0DAE9C,WACI,MAAO,CACHsqD,KAAMnpE,KAAK2kX,iBAAiBx7S,KAC5BtqD,MAAO7e,KAAK2pX,kBACZ33V,QAAShyB,KAAK2kX,iBAAiB3yV,QAC/Bw2V,eAAgBxoX,KAAK2kX,iBAAiB6D,eACtCE,wBAAyB1oX,KAAK2kX,iBAAiB+D,wBAC/CH,uBAAwBvoX,KAAK2kX,iBAAiB4D,4B,KAI1D,SAASqB,EAAgBjrW,EAAUmW,GAC/B,IAAMy5G,EAAOz5G,EAAMw5G,kBAAkB3vH,GAC/B82E,EAAY3gE,EAAMgsG,iBAAiBniH,EAASY,YAGlD,OAAOgvH,EACD,IAAIlwH,IAAMM,EAASY,WAAYgvH,EAAKhwH,YAAaI,EAASY,WAAYk2E,GACtEp3E,IAAMq1H,cAAc/0H,EAAUA,EAAQ,UAAM9E,EAAW47E,IAE1D,SAASuzR,EAAyBrqW,EAAUmW,EAAO8U,GAAyC,IAAhC81B,EAAgC,uDAAxB6oC,IAAkBzqF,KACzF,OAAOvc,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,uGAGnB,OAFVyhJ,EAAsBmoO,EAAgBjrW,EAAUmW,GAChDy7M,EAAY3/L,IAAkC/E,IAAI/W,GAFrB,SAGblzB,QAAQiqC,IAAI0kM,EAAUnuN,KAAI,SAACy9H,GAAD,OAAct+I,EAAU,OAAM,OAAQ,EAAf,UAAuB,oFACtE,OADsE,SAChEs+I,EAASmpO,yBAAyBl0V,EAAOnW,EAAUirB,EAAS81B,GADI,cACpFgkF,EADoF,yBAElF,CACJA,cACA7D,WACAznI,QAAS,WACDsrI,GACA7D,EAASgqO,sBAAsBnmO,MAP+C,+CAH3D,OAG7BomO,EAH6B,OAe7BC,EAAc,IAAIxiV,IAfW,cAgBduiV,GAhBc,IAgBnC,IAhBmC,iBAgBxB1nX,EAhBwB,QAiBzBshJ,EAActhJ,EAAOshJ,YAC3B,GAAIA,EAAa,qBACMA,EAAYl7E,MAAMpmD,KAAI,SAAAnZ,GAAI,MAAK,CAC9CkgE,KAAMlgE,EAAKkgE,KACXtqD,MAAO5V,EAAK4V,MAAQR,IAAM6W,KAAKjsB,EAAK4V,OAAS4iI,EAC7CzvH,QAAS/oB,EAAK+oB,QACdw2V,eAAgBpmX,EAAOy9I,SACvB6oO,wBAAyBhlO,EACzB6kO,uBAAwBt/W,OAPf,IACb,2BAOK,KAPMA,EAON,QACGA,EAAK4V,MAAMP,kBAAoBrV,EAAK4V,MAAML,eAI9CurW,EAAYviV,IAAIf,KAAK0xH,UAAU,CAAEhvF,KAAMlgE,EAAKkgE,KAAMtqD,MAAO5V,EAAK4V,QAAU5V,IAb/D,iCAFrB,uBAA8B,IAhBK,0BAAAxG,IAAA,yBAmC5B,CACH+lE,MAAO,YAAIuhT,EAAYvsW,UACvBpF,QAAS,WAAM,oBACU0xW,GADV,IACX,2BAA8B,SACnB1xW,WAFA,kCArCgB,2CA6CpC,SAAS4xW,EAAyBl1V,EAAO6vV,GAC5C,IAAKA,EACD,OAAOA,EAEX,IAAMsF,EAAiBn1V,EAAM2oF,gBAAgBknQ,EAAiB9lW,OACxDqrW,EAAkB1mV,YAAmBymV,EAAgBtF,EAAiBx7S,MACtEusC,EAAc5gF,EAAMqgF,YAAYwvQ,EAAiB9lW,MAAMQ,oBAAsB6qW,EAC7E9pW,EAAQ0U,EAAMwoF,cAAc5H,GAC5By0Q,EAA0BF,EAAe9gV,OAAO+gV,GAChDE,EAAkB3mV,YAAmB0mV,EAAyBxF,EAAiBx7S,MAC/E9oD,EAAMyU,EAAMwoF,cAAc5lG,KAAKC,IAAI+9F,EAAa5gF,EAAMqgF,YAAYwvQ,EAAiB9lW,MAAMO,kBAAoBgrW,IACnH,MAAO,CACHvrW,MAAOR,IAAMq1H,cAActzH,EAAOC,GAClC8oD,KAAMw7S,EAAiBx7S,KAAKhgC,OAAO+gV,EAAiBvF,EAAiBx7S,KAAKprE,OAASmsX,EAAkBE,I,+BC/etG,IAAMC,EAAb,kDACI,WAAYp3V,EAAQq3V,GAA8B,2BAC9C,gBACKr3V,OAASA,EACd,EAAKq3V,6BAA+BA,EACpC,EAAKC,wBAAyB,EAC9B,EAAKC,mBAAoB,EACzB,EAAKC,WAAY,EACjB,EAAKC,8BAA2B7wW,EAChC,EAAK29G,mBAAqB,IAAI/iH,IAC9B,EAAKs5B,YAAc,EAAKypF,mBAAmB7iH,MAE3C,EAAKg2W,mBAAqB,EAAKjhX,UAAU,IAAI+kB,KAAiB,WACrD,EAAK87V,wBACF,EAAKE,YACL,EAAKA,WAAY,EACjB,EAAKjzP,mBAAmBviH,UAGjC,MAEH,EAAKvL,UAAUupB,EAAOoyM,WAAU,SAAA1kO,GACxBA,EAAE0Y,WAAa,EAAKmxW,oBACpB,EAAKA,mBAAoB,EACzB,EAAKl9L,OAAO,EAAKm9L,gBAGzB,EAAK/gX,UAAUupB,EAAO8gR,SAAQ,SAAApzS,GACtBA,EAAE0Y,UAAY,EAAKmxW,oBACnB,EAAKA,mBAAoB,EACzB,EAAKl9L,OAAO,EAAKm9L,gBAGzB,IAAMG,EAAoBC,oBAAkBp4V,IAAI,EAAKQ,QACrD,GAAI23V,EAAmB,CACnB,EAAKlhX,UAAUkhX,EAAkBE,iBAAiB,CAC9CziX,SAAU,IACV4jM,OAAQ,SAACn3K,EAAO6d,EAAKo4U,GACjB,IAAMzkQ,EAAY,EAAKrzF,OAAO+B,WACxBg2V,EAA4BhB,EAAyB1jQ,EAAW,EAAKgkQ,gCAC3E,IAAKU,EACD,OAAQ,EAEZ,IChDM36W,EAAUy1D,EDgDVnnD,EAAWwB,IAAS+U,KAAKyd,GAazBvwC,ECvDnB,SAAmBomE,EAAO1C,GAC7B,IADyC,EACrCpmD,OAAM7F,EAD+B,cAEtB2uD,GAFsB,IAEzC,2BAA0B,KAAfv/D,EAAe,cACV4Q,IAAR6F,GAAqBomD,EAAW78D,EAAMyW,GAAO,KAC7CA,EAAMzW,IAJ2B,8BAOzC,OAAOyW,EDgDwBurW,CAZIF,EACd3oW,KAAI,SAAC8oW,EAAajsX,GACnB,IA4FCksX,EAAa3jH,EA5FR4jH,EAAoBC,EAA6BT,EAAmBjsW,EAAUusW,EAAa,EAAKV,mBAChGc,EAAwBtB,EAAyB1jQ,EAAW8kQ,GAClE,GAAKE,EAKL,MAAO,CAAErsX,QAAOulH,OAqFf2mQ,EAvF6BH,EAA0BnsW,MAuF1C2oP,EAvFiD8jH,EAAsBzsW,MAwFjGssW,EAAY7sW,kBAAoBkpP,EAAOlpP,iBAC3C6sW,EAAY5sW,cAAgBipP,EAAOjpP,cAClC4sW,EAAY3sW,cAAgBgpP,EAAOhpP,eAC/B2sW,EAAY3sW,gBAAkBgpP,EAAOhpP,eAClC2sW,EAAY1sW,WAAa+oP,EAAO/oP,YA3FpBusW,EAA0B7hT,KAAKu3G,WAAW4qM,EAAsBniT,OAC7CioI,aAAck6K,EAAsBniT,KAAKprE,OAAQmtX,kBAEvEl8V,QAAO,SAAA/lB,GAAI,OAAIA,GAAQA,EAAKu7G,UC5D3Bn0G,ED6DyC,SAAA/P,GAAC,OAAIA,EAAE8wM,cC7DtCtrI,EAIzB,SAAC5hE,EAAG5E,GAAJ,OAAU4E,EAAI5E,GAHd,SAAC4E,EAAG5E,GAAJ,OAAUwmE,EAAWz1D,EAASnM,GAAImM,EAAS/Q,OD6DlC,OAAO8C,EAASA,EAAOnD,OAAS,MAGxC,IAAIssX,GAAyB,EAoB7B,EAAK7hX,UAAU6tB,IAAMpa,KAAKytW,EAAkB91V,MAAM02V,aAAnCj0V,EAAiD,SAAA52B,GAlBxD4qX,IAGJA,GAAyB,EACzB,EAAK7hX,UAAUkhX,EAAkB5tM,OAAOh7K,MAAMypX,WAAU,WACpD,EAAKlB,wBAAyB,EAC9B,EAAKj9L,QAAO,OAEhB,EAAK5jL,UAAUkhX,EAAkB5tM,OAAOh7K,MAAM0pX,WAAU,WACpD,EAAKnB,wBAAyB,EAC9B,EAAKI,mBAAmB/7V,WACxB,EAAK0+J,OAAO,EAAKm9L,eAErB,EAAK/gX,UAAUkhX,EAAkB5tM,OAAOh7K,MAAM0S,YAAW,WACrD,EAAK61W,wBAAyB,EAC9B,EAAKj9L,QAAO,YA5EsB,OAmF9C,EAAKA,OAAO,EAAKm9L,WAnF6B,EADtD,uCAyFI,WACI,GAAKzqX,KAAKyqX,UAGV,MAAO,CAAEkB,+BAAgC3rX,KAAK0qX,4BA7FtD,oBA+FI,SAAOkB,GACH,IFvG0C1nX,EAAG5E,EEuGvCusX,EAAsB7rX,KAAK8rX,sBAC7BC,GAAa,GFxGyB7nX,EEyGHlE,KAAK0qX,6BFzGCprX,EEyGyBusX,IFrGrE3nX,GAAM5E,GAGJ4E,EAAE2a,MAAMM,YAAY7f,EAAEuf,QAAU3a,EAAEilE,OAAS7pE,EAAE6pE,MAAQjlE,EAAE8tB,UAAY1yB,EAAE0yB,UEmGpEhyB,KAAK0qX,yBAA2BmB,EAChCE,GAAa,GAEb/rX,KAAKyqX,YAAcmB,IACnB5rX,KAAKyqX,UAAYmB,EACjBG,GAAa,GAEbA,GACA/rX,KAAKw3H,mBAAmBviH,SA3GpC,iCA8GI,WACI,IAAM21W,EAAoBC,oBAAkBp4V,IAAIzyB,KAAKizB,QACrD,GAAK23V,GAGA5qX,KAAKuqX,uBAAV,CAGA,IAAM9uI,EAAcmvI,EAAkB5tM,OAAOh7K,MAAMgqX,iBACnD,GAAKvwI,EAIL,OAAO4vI,EAA6BT,EAAmB5qX,KAAKizB,OAAO2vK,cAAe64C,EAAYxyO,KAAMjJ,KAAKwqX,sBA3HjH,qCA6HI,WACI,IAAMI,EAAoBC,oBAAkBp4V,IAAIzyB,KAAKizB,QACjD23V,GACAA,EAAkBqB,4BAhI9B,iCAmII,WACI,IAAMrB,EAAoBC,oBAAkBp4V,IAAIzyB,KAAKizB,QACjD23V,GACAA,EAAkBsB,0BAtI9B,GAA2DliX,KAiJ3D,SAASqhX,EAA6BT,EAAmBjsW,EAAU1V,EAAMkjX,GAErE,GAAI1sX,MAAM+b,QAAQvS,EAAK22I,WAAWwsO,sBAAwBnjX,EAAK22I,WAAWwsO,oBAAoBruX,OAAS,EAEnG,MAAO,CACHorE,KAAM,GACNtqD,MAAOR,IAAMq1H,cAAc/0H,EAAUA,IAG7C,IAAMyjI,EAAen5I,EAAK22I,WAApBwC,WACN,GAAsC,EAAlCn5I,EAAK22I,WAAWqC,gBAA2C,CAC3D,IAAMukG,GAAU,IAAItkG,KAAgBx7G,MAAM07G,GACpCttH,EAAQ81V,EAAkB33V,OAAO+B,WAGvC,GAAIwxN,EAAQjxO,SAASxX,OAAS,IAC1B,OAEJsuX,IAAeC,iBAAiBx3V,EAAOnW,EAAU6nO,GAAS,GAAM,GAChEpkG,EAAaokG,EAAQ/tO,WAEzB,IAAMsiB,EAAO6vV,EAAkB2B,iBAAiBtjX,EAAMkjX,GACtD,MAAO,CACHhjT,KAAMi5E,EACNvjI,MAAOR,IAAMq1H,cAAc/0H,EAASg5C,MAAM,GAAI58B,EAAKyxV,iBAAkB7tW,EAASg5C,MAAM,EAAGjgD,KAAKC,IAAIojB,EAAK0xV,eAAgB,MEpL7H,IAAIlrX,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAWzDwqX,EAAb,kDACI,WAAYz5V,EAAQ8F,GAAO,kCACvB,cAAM9F,IACD8F,MAAQA,EACb,EAAK4zV,iCAAmC,EAAKjjX,UAAU,IAAI2gX,EAAsC,EAAKp3V,QAEtG,WAAQ,IAAIjuB,EAAIgL,EAAI,OAAiG,QAAzFA,EAAiC,QAA3BhL,EAAK,EAAK+zB,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAG0+I,YAAY,UAAuB,IAAP1zI,OAAgB,EAASA,EAAG+4W,6BACzJ,EAAKb,gBAAkB,EAAKx+W,UAAU,IAAIsU,KAC1C,EAAK4uW,gBAAkB,EAAKljX,UAAU,IAAI+kB,KAAiB,kBAAM,EAAKkpG,gBAAe,KACrF,EAAKyvP,qBAAuB,EAC5B,EAAK19W,UAAU,EAAKijX,iCAAiC5+U,aAAY,WAC7D,EAAK6+U,gBAAgBh+V,WACM,EAAK+9V,iCAAiCr4W,QAE7D,EAAK8yW,qBAAuB,GAEhC,IAAMyF,EAAe,EAAK1F,UACtB0F,IACA,EAAKzF,qBAAuB1vW,KAAKC,IAAI,EAAKyvW,qBAA0ByF,EAAax+K,MAAMjsL,KAAI,SAAA1iB,GAAC,OAAIA,EAAEi1D,MAAM52D,OAAS,KA0FlH85B,QAAO,SAAC3zB,EAAG5E,GAAJ,OAAU4E,EAAI5E,IAAG,KAxFvB,EAAK8nX,sBAAwB,GAAK,EAAK0F,6BACvC,EAAKH,iCAAiCT,sBAGtC,EAAKS,iCAAiCV,0BAE1C,EAAKz0P,mBAAmBviH,WAE5B,EAAKvL,UAAU,EAAKqvB,MAAMgV,aAAY,WAClC,EAAKypF,mBAAmBviH,WAE5B,EAAKvL,UAAU,EAAKupB,OAAOkwK,2BAA0B,SAACxiM,GAC9C,EAAKmsX,+BACL,EAAK1F,qBAAuB,EAC5B,EAAKwF,gBAAgBh+V,WACrB,EAAK4oG,mBAAmBviH,YAGhC,EAAKvL,UAAUyO,aAAa,kBAAM,EAAKw0W,iCAAiCV,8BArCjD,EAD/B,0CAwCI,WACI,YAAuDpyW,IAAhD7Z,KAAK2sX,iCAAiCr4W,QAzCrD,wCA2CI,WAEI,OADuBtU,KAAKizB,OAAO+nJ,UAAU,KACvB9gG,UA7C9B,yBA+CI,WACI,OAAO34E,EAAUvB,UAAM,OAAQ,EAAf,UAAuB,uGAC7BsU,EAAQtU,KAAK2sX,iCAAiCr4W,QACrCA,EAAMq3W,+BAFc,iDA2BnC,OAtBM5wV,EAAO,CACTouC,KAAM70D,EAAMq3W,+BAA+BxiT,KAC3CtqD,MAAOvK,EAAMq3W,+BAA+B9sW,OAE1CF,EAAW3e,KAAKizB,OAAO2vK,cACvBn0J,EAAU8wB,aAAwB,SAACG,GAAD,OAAWn+D,EAAU,OAAM,OAAQ,EAAf,UAAuB,oFAGlE,OAHkE,kBAG5DynX,EAAyBrqW,EAAU3e,KAAKizB,OAAO+B,WAAY,CAAEwsH,YAAaj0G,IAA4Bg6U,UAAW0B,uBAAwBluV,GAAQ2kC,GAHrF,OAG3Et9D,EAH2E,8DAM3EoG,YAAkB,EAAD,IAN0D,+BAS3Ek3D,EAAMkpC,wBATqE,mDAY/E5oG,KAAK+4B,MAAMiqB,SAAShjD,KAAKizB,OAAQ7wB,EAAQmrC,IAA4Bg6U,WACrEvnX,KAAKw3H,mBAAmBviH,OAbuD,4DAe7EqsG,EAAY,IAAI4nQ,EAAgBz6U,EAASlB,IAA4Bg6U,WAC3EvnX,KAAKkoX,gBAAgBlmX,MAAQs/G,EA1BM,UA2B7B7yE,EA3B6B,QA4B/BzuC,KAAKkoX,gBAAgBlmX,QAAUs/G,GAC/BthH,KAAKkoX,gBAAgB3qW,QA7BU,mDAhD/C,qBAiFI,WAAgB,IACRvY,EAAIgL,EADI,OAEZ,GAAKhQ,KAAK8sX,6BAAV,CAGA,IAAMC,EAAqB/sX,KAAK2sX,iCAAiCr4W,MAC3D04W,EAA2BhD,EAAyBhqX,KAAKizB,OAAO+B,WAAmC,OAAvB+3V,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBpB,gCACvKsB,EAAsBjD,EAAyBhqX,KAAKizB,OAAO+B,WAAsG,QAAzFhlB,EAAiC,QAA3BhL,EAAKhF,KAAK+4B,MAAM/2B,aAA0B,IAAPgD,OAAgB,EAASA,EAAG0+I,YAAY,UAAuB,IAAP1zI,OAAgB,EAASA,EAAG+4W,0BACrMmE,EAAkBD,GACjBD,GACAC,EAAoB9jT,KAAKu3G,WAAWssM,EAAyB7jT,OAC7D8jT,EAAoBpuW,MAAMM,YAAY6tW,EAAyBnuW,OAChEouW,EAAuBD,GAA4BC,EACnDE,EAAgCH,IAAiD,OAApBE,QAAgD,IAApBA,OAA6B,EAASA,EAAgB/jT,KAAKprE,SAAW,GAAMivX,EAAyB7jT,KAAKprE,OAAU,EAUnN,OAToB,SAAC6hJ,GACjB,IAAM3wI,EAAO,EAAKgkB,OAAOs8F,aAAa98F,IAAI,KAAmBwpE,YAC7D,OAAO2jD,EACA8kO,EAA4B9kO,EAAY,EAAK3sH,OAAO+B,WAAY/lB,EAAM,EAAKgkB,OAAO2vK,cAAeuqL,IAEhG,IAAIpJ,EAAUnkO,EAAW/gI,MAAML,cAAe,GAAI,EAAK4oW,2BACzDvtW,EAEWuzW,CAAYF,QAvGzC,GAA+C1I,GCjB/C,IAAIzjX,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,GAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAWzDmrX,GAAb,kDACI,aAAc,kCACV,eAAS7sX,YACJg3H,mBAAqB,IAAI/iH,IAC9B,EAAKs5B,YAAc,EAAKypF,mBAAmB7iH,MAC3C,EAAK24W,oBAAqB,EAC1B,EAAKC,gBAAkB,EAAK7jX,UAAU,IAAIsU,KALhC,EADlB,6CAQI,WACI,IAAIhZ,EACJ,OAA6C,QAArCA,EAAKhF,KAAKutX,gBAAgBvrX,aAA0B,IAAPgD,OAAgB,EAASA,EAAGoZ,SAVzF,4BAYI,SAAe0W,GAAO,IACd9vB,EFvCwBoZ,EAAQjC,EEsClB,QAEyB,QAArCnX,EAAKhF,KAAKutX,gBAAgBvrX,aAA0B,IAAPgD,OAAgB,EAASA,EAAGoZ,UAAY0W,IAG3F90B,KAAKutX,gBAAgBhwW,QACrBvd,KAAKutX,gBAAgBvrX,MAAQ8yB,GF5CD1W,EE4C6B0W,EF5CrB3Y,EE4C4B2Y,EAAMiZ,aAAY,WAC9E,EAAKu/U,oBAAqB,EAC1B,EAAK91P,mBAAmBviH,UF7CzB,CACHmJ,SACAhG,QAAS,kBAAqB,OAAf+D,QAAsC,IAAfA,OAAwB,EAASA,EAAW/D,kBE4C5EyB,EACN7Z,KAAKstX,oBAAqB,EAC1BttX,KAAKw3H,mBAAmBviH,UAvBhC,qBAyBI,WACI,IAAIjQ,EAAIgL,EAKR,OAJKhQ,KAAKstX,qBACNttX,KAAKwtX,gBAA8G,QAA3Fx9W,EAA2C,QAArChL,EAAKhF,KAAKutX,gBAAgBvrX,aAA0B,IAAPgD,OAAgB,EAASA,EAAGoZ,cAA2B,IAAPpO,OAAgB,EAASA,EAAGm3W,UACvJnnX,KAAKstX,oBAAqB,GAEvBttX,KAAKwtX,kBA/BpB,yBAiCI,SAAYhuJ,GACR,IAAIx6N,EACwB,QAA3BA,EAAKhF,KAAKytX,mBAAgC,IAAPzoX,GAAyBA,EAAGqiX,YAAY7nJ,KAnCpF,gCAqCI,WACI,OAAOx/N,KAAKytX,YAAcztX,KAAKytX,YAAYrG,qBAAuB,MAtC1E,GAAqCp9W,KA4CjC0jX,GAAc,kDACd,WAAYz6V,EAAQ8yU,GAAgB,kCAChC,gBACK9yU,OAASA,EACd,EAAK8yU,eAAiBA,EACtB,EAAK4nB,YAAc,EAAKjkX,UAAU,IAAIkkX,IACtC,EAAKC,0BAA4B,EAAKnkX,UAAU,IAAIgjX,EAA0B,EAAKz5V,OAAQ,EAAK06V,cAChG,EAAKG,uBAAyB,EAAKpkX,UAAU,IAAI+8W,EAAuB,EAAKxzV,OAAQ,EAAK06V,YAAa,EAAK5nB,iBAC5G,EAAKr8V,UAAU,EAAKmkX,0BAA0B9/U,aAAY,WACtD,EAAKggV,kBAET,EAAKA,cAV2B,EADtB,8DAad,WACI,GAAI/tX,KAAKytX,cAAgBztX,KAAK8tX,uBAC1B,OAAO9tX,KAAK8tX,yBAfN,yBAmBd,WACI9tX,KAAKguX,eAAehuX,KAAK6tX,0BAA0Bx5O,SAC7Cr0I,KAAK6tX,0BACL7tX,KAAK8tX,wBACX9tX,KAAK8tX,uBAAuBG,UAAUjuX,KAAKytX,cAAgBztX,KAAK8tX,0BAvBtD,+BAyBd,SAAkBI,GACd,IAAIlpX,EACEmiX,EAAyD,QAA5CniX,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,OAAgB,EAASA,EAAGmiX,UACnG,QAAIA,GACOA,EAAU94K,MAAMplD,MAAK,SAAAvpJ,GAAC,OAAIwuX,EAAWtvW,iBAAiB,IAAIuB,IAASgnW,EAAU5nW,WAAY7f,EAAE8f,cA7B5F,qCAiCd,WACI,IAAIxa,EACyC,QAA5CA,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,GAAyBA,EAAG+7D,QAAQxzB,IAA4Bi6U,YAnC3G,oCAqCd,WACI,IAAIxiX,EACyC,QAA5CA,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,GAAyBA,EAAGopX,4BAvCvE,kCAyCd,WACI,IAAIppX,EACyC,QAA5CA,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,GAAyBA,EAAGoS,SA3CvE,sCA6Cd,WACI,IAAIpS,EACyC,QAA5CA,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,GAAyBA,EAAGqpX,aA/CvE,0CAiDd,WACI,IAAIrpX,EACyC,QAA5CA,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,GAAyBA,EAAGspX,iBAnDvE,0CAqDd,WACI,IAAItpX,EACJ,OAAOzD,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,oFACpB,OADoB,SACgC,QAA5CgF,EAAKhF,KAAKmuX,oCAAiD,IAAPnpX,OAAgB,EAASA,EAAG+iX,+BADpE,cAC7B3lX,EAD6B,8BAEjByX,IAAXzX,GAAuBA,GAFK,oDAvD7B,GAAgCirX,IA6DlDK,GAAiB3sX,EAAW,CACxBsqF,GAAQ,EAAGiD,MACZo/R,IAEI,IC9HH1oX,GD8HS4oX,GAAb,kDACI,aAAc,kCACV,eAASptX,YACJg3H,mBAAqB,IAAI/iH,IAC9B,EAAKs5B,YAAc,EAAKypF,mBAAmB7iH,MAC3C,EAAKokB,MAAQ,EAAKrvB,UAAU,IAAIsU,KAJtB,EADlB,uCAOI,WACI,OAAOhe,KAAK+4B,MAAM/2B,QAR1B,sBAUI,SAASixB,EAAQu2V,EAAmBhoO,GAAa,WAC7CxhJ,KAAK+4B,MAAM/2B,MAAQ,IAAIunX,EAAmCt2V,EAAQu2V,GAAmB,kBAAM,EAAKhyP,mBAAmBviH,SAAQusI,KAXnI,0BAaI,WACI,OAAOxhJ,KAAK+4B,MAAMqwV,iBAd1B,mBAgBI,WACIppX,KAAK+4B,MAAMxb,YAjBnB,GAAiDvT,K,8JCvI7CjJ,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAuBrDijS,GAA0C,QAA9BvpX,GAAK2F,OAAO6qW,oBAAiC,IAAPxwW,QAAgB,EAASA,GAAGywW,aAAa,kBAAmB,CAAEK,WAAY,SAAA9zW,GAAK,OAAIA,KACvIwsX,GAAe,kDACf,WAAYv7V,EAAQ6B,EAAO+oJ,EAAsBl1B,GAAa,kCAC1D,gBACK11H,OAASA,EACd,EAAK6B,MAAQA,EACb,EAAK+oJ,qBAAuBA,EAC5B,EAAKl1B,YAAcA,EACnB,EAAKpmF,UAAW,EAChB,EAAKksT,YAAc,EAAK/kX,UAAU,EAAKm0K,qBAAqBqkL,eAAewsB,GAAmB,EAAKz7V,SACnG,EAAK07V,sBAAwB,EAAKjlX,UAAU,IAAIklX,GAAsB,EAAK37V,OAAQ,EAAK01H,YAAYzgC,kBACpG,EAAK2mQ,2BAAwBh1W,EAC7B,EAAKnQ,UAAU,EAAKupB,OAAO81H,0BAAyB,SAACpoJ,IAC7CA,EAAEynF,WAAW,KACVznF,EAAEynF,WAAW,MACbznF,EAAEynF,WAAW,KACbznF,EAAEynF,WAAW,KACbznF,EAAEynF,WAAW,KACbznF,EAAEynF,WAAW,KACbznF,EAAEynF,WAAW,MAChB,EAAKklG,aAGb,EAAK5jL,UAAUyO,aAAa,WACxB,IAAInT,EACJ,EAAKu9D,UAAW,EAChB,EAAK+qH,SACiC,QAArCtoL,EAAK,EAAK6pX,6BAA0C,IAAP7pX,GAAyBA,EAAGoT,UAC1E,EAAKy2W,2BAAwBh1W,MAEjC,EAAKnQ,UAAUorB,EAAMiZ,aAAY,WAC7B,EAAKu/I,aAET,EAAKA,SA/BqD,EAD/C,6DAkCf,SAA0BwhM,GACtB,OAAQ9uX,KAAK2uX,sBAAsBG,aAAeA,IAnCvC,oBAqCf,WACI,IAAI9pX,EACEmiX,EAAYnnX,KAAK80B,MAAMqyV,UAC7B,IAAKnnX,KAAKizB,OAAO81L,aAAeo+J,GAAannX,KAAKuiE,SAG9C,OAFAviE,KAAKyuX,YAAYlxW,aACjBvd,KAAK2uX,sBAAsBpxW,QAG/B,IAAMwxW,EAAc,IAAItvX,MAClBuvX,EAAkB,IAAIvvX,MAC5B,SAASwvX,EAAqBt6T,EAAOn+C,GACjC,GAAIw4W,EAAgBjxX,OAAS,EAAG,CAC5B,IAAMo0M,EAAW68K,EAAgBA,EAAgBjxX,OAAS,GACtDyY,GACA27L,EAASrnE,YAAYvnI,KAAK,IAAIwzM,KAAe5E,EAASjzJ,QAAQnhD,OAAS,EAAGo0M,EAASjzJ,QAAQnhD,OAAS,EAAI42D,EAAM,GAAG52D,OAAQyY,EAAW,IAExI27L,EAASjzJ,SAAWyV,EAAM,GAC1BA,EAAQA,EAAMjwD,MAAM,GAPoB,oBASzBiwD,GATyB,IAS5C,2BAA0B,KAAfi/C,EAAe,QACtBo7Q,EAAgBzrX,KAAK,CACjB27C,QAAS00D,EACTk3B,YAAat0H,EAAY,CAAC,IAAIugM,KAAe,EAAGnjG,EAAK71G,OAAS,EAAGyY,EAAW,IAAoB,MAZ5D,+BAgBhD,IAAM04W,EAAiBlvX,KAAKizB,OAAO+B,WAAWw1E,eAAe28Q,EAAU5nW,YACvEvf,KAAKizB,OAAO+B,WAAWm8F,cAAcg2P,EAAU5nW,YAC/C,IA5BK,EA4BD4vW,OAAwBt1W,EACxB6uD,EAAU,EA7BT,cA8Bcy+S,EAAU94K,OA9BxB,IA8BL,2BAAoC,KAAzB1tB,EAAyB,QAC5BhsH,EAAQgsH,EAAKhsH,WACa96C,IAA1Bs1W,GACAJ,EAAYxrX,KAAK,CACbic,OAAQmhK,EAAKnhK,OACb2pD,KAAMxU,EAAM,GACZulB,QAASymG,EAAKzmG,UAElBvlB,EAAQA,EAAMjwD,MAAM,IAGpBuqX,EAAqB,CAACC,EAAe7uV,UAAUqoC,EAASi4G,EAAKnhK,OAAS,SAAK3F,GAE3E86C,EAAM52D,OAAS,IACfkxX,EAAqBt6T,EAAO,mBACE96C,IAA1Bs1W,GAAuCxuM,EAAKnhK,QAAU0vW,EAAenxX,SACrEoxX,EAAwBxuM,EAAKnhK,SAGrCkpD,EAAUi4G,EAAKnhK,OAAS,GAjDvB,mCAmDyB3F,IAA1Bs1W,GACAF,EAAqB,CAACC,EAAe7uV,UAAUqoC,SAAW7uD,GAE9D7Z,KAAKyuX,YAAYW,SAASjI,EAAU5nW,WAAYwvW,OAAuCl1W,IAA1Bs1W,EAAsC,CAAE3vW,OAAQ2vW,EAAuBpxX,OAAQmxX,EAAenxX,OAAS,EAAIoxX,QAA0Bt1W,GAClM7Z,KAAK2uX,sBAAsBU,YAAYlI,EAAU5nW,WAAYyvW,EAAiB7H,EAAUnD,6BACpFmD,EAAU94K,MAAMplD,MAAK,SAAAvpJ,GAAC,OAAIA,EAAEi1D,MAAM52D,OAAS,KAE3CiC,KAAK6uX,sBAAwB7uX,KAAKsvX,oBAAoB,IAAInvW,IAASgnW,EAAU5nW,WAAYvf,KAAKizB,OAAO+B,WAAW8rG,iBAAiBqmP,EAAU5nW,aAAc,GAAI,IAGvH,QAArCva,EAAKhF,KAAK6uX,6BAA0C,IAAP7pX,GAAyBA,EAAGoT,UAC1EpY,KAAK6uX,2BAAwBh1W,KAnGtB,iCAsGf,SAAoB8E,EAAU4wW,EAAeC,GAAsB,WACzDz9R,EAAW/xF,KAAKizB,OAAO+nJ,UAAU,IACjCpuK,EAAUxC,SAASsF,cAAc,OACvC9C,EAAQ4J,UAAY,oCACpBqiJ,KAAcioN,kBAAkBl0W,EAASmlF,GACzC,IAAM09R,EAASrlX,SAASsF,cAAc,QACtC+/W,EAAOj5W,UAAY,iBACnBi5W,EAAOp6W,OAAOk6W,GACd3iX,EAAQyI,OAAOo6W,GACf,IAAMC,EAAUtlX,SAASsF,cAAc,QACvCggX,EAAQl5W,UAAY,uCACpBk5W,EAAQr6W,OAAO,YACfzI,EAAQyI,OAAOq6W,GACf,IAAMn1G,EAAkB,IAAIrhQ,IACtBs0K,EAASpjL,SAASsF,cAAc,OAUtC,OATA89K,EAAOh3K,UAAY,8BACnBg3K,EAAOn4K,OAAP,WAAkBm6W,EAAlB,iBACAj1G,EAAgB/gQ,IAAIkzJ,iCAAkC8gB,EAAQ,aAAa,SAAC7sL,GACxE,IAAIqE,EACkB,QAArBA,EAAK,EAAK8vB,aAA0B,IAAP9vB,GAAyBA,EAAGqiX,aAAY,GACtE1mX,EAAEsT,iBACF,EAAKgf,OAAO+J,YAEhBpwB,EAAQyI,OAAOm4K,GACR,IAAImiM,GAA2B3vX,KAAKizB,OAAQtU,EAAU/R,EAAS2tQ,OA9H3D,GAAiCvwQ,KAiIpDwkX,GAAkBztX,GAAW,CACzBsqF,GAAQ,EAAGnmB,MACXmmB,GAAQ,EAAGoqD,OACZ+4O,IAEH,IAAIE,GAAiB,WACjB,WAAYz7V,EAAQF,EAAmBorC,EAAcwvB,GAAmB,oBACpE3tF,KAAKizB,OAASA,EACdjzB,KAAK+yB,kBAAoBA,EACzB/yB,KAAKm+D,aAAeA,EACpBn+D,KAAK2tF,kBAAoBA,EACzB3tF,KAAKypX,cAAgB,GACrBzpX,KAAKu6Q,gBAAkB,IAAIrhQ,IAPd,2CASjB,WACIlZ,KAAKud,QACLvd,KAAKu6Q,gBAAgBniQ,YAXR,mBAajB,WACIpY,KAAKizB,OAAOg3G,iBAAiBjqI,KAAKypX,cAAe,IACjDzpX,KAAKu6Q,gBAAgBh9P,UAfR,sBAiBjB,SAASgC,EAAY8uL,EAAOuhL,GAAY,WACpC5vX,KAAKu6Q,gBAAgBh9P,QACrB,IAAMsyW,EAAa7vX,KAAKm+D,aAAaC,gBAC/B17C,EAAamtW,EAAWviW,SAASquH,MACnC5nG,OAAUl6B,EACV4T,OAAQ5T,EACR6I,IACAqxB,EAAUj0C,OAAO4iB,EAAW00C,KAAKlzD,GACjCupB,EAAQlK,KAAM+0C,OAAOC,IAAI32C,OAAOkuW,GAAOptW,KAE3C,IAAM+7B,EAAcoxU,EAAWviW,SAASouH,MACpCluI,OAASqM,EACT4kC,IACAjxC,EAAS,cAAH,OAAiBixC,IAE3B,IAAM6nE,EAAYtmH,KAAKizB,OAAO+B,WAC9B,GAAKsxF,EAAL,CAGA,IAAQlgC,EAAYkgC,EAAUiJ,aAAtBnpC,QACFwtB,EAAO0S,EAAU9b,eAAejrF,IAAe,GACjDiiB,EAAY,EACZuuV,EAAoB,GAClBC,EAAwB,IAAIvwX,MAC9BmwX,GACAI,EAAsBzsX,KAAK,CACvBsb,MAAOR,IAAMq1H,cAAc,IAAIvzH,IAASZ,EAAYqwW,EAAWpwW,QAAS,IAAIW,IAASZ,EAAYqwW,EAAWpwW,OAASowW,EAAW7xX,SAChIsH,QAAS,CACL20H,gBAAiB,oBACjB/jH,YAAa,uBAIzB,IAAM3X,EAAM0B,KAAK2tF,kBAAkBlhD,mBAAmB,iCAChDwjV,OAAgCp2W,IAARvb,KAA6BA,EAC3D0B,KAAKypX,cAAgBzpX,KAAKizB,OAAOg3G,iBAAiBjqI,KAAKypX,cAAep7K,EAAMjsL,KAAI,SAAA1iB,GAC5EqwX,GAAqBn8Q,EAAKvzE,UAAUmB,EAAW9hC,EAAE8f,OAAS,GAC1DgiB,EAAY9hC,EAAE8f,OAAS,EAEvB,IAAM0wW,EAAcD,EAAwBvwX,EAAEypE,KAAO,EAAKgnT,qBAAqBzwX,EAAEypE,KAAM4mT,EAAmB3pS,GAAS,GAC7GgqS,EAAiB,EAAK71G,gBAAgB/gQ,IA0IxD,SAAgC62W,EAASp6W,EAAaq6W,EAAWjrX,GAC7D,IAAM/G,EAAMgyX,EAAaC,KAEzB,OADAF,EAAQG,uBAAuBv6W,EAAa3X,EAAK+G,GAC1C,CACH+S,QADG,WAECi4W,EAAQI,qBAAqBnyX,IAEjCuD,QAJG,WAKC,OAAOwuX,EAAQK,yBAAyBpyX,GAAK,KAlJGkyX,CAAuB,EAAKz9V,kBAAmB,aAAc,gBAAiB,CAC1H60C,MAAO,CAEHsoT,cACAn8U,UACAtmB,QACAjgB,SACAg9C,WAAY9qD,EAAEw6E,QAAU,OAAS,aAGzC,MAAQ,CACJr7D,MAAOR,IAAMq1H,cAAc,IAAIvzH,IAASZ,EAAY7f,EAAE8f,SACtDna,QAAS4qX,EAAwB,CAC7Bh6W,YAAa,aACb2xD,MAAO,CAAE1oB,QAASgxU,EAAal2P,gBAAiBt6H,EAAEw6E,QAAU,gCAAkC,yBAC9Fm8D,iBAAiB,GACjBj4I,OAAOgC,OAAO,GAAIgwX,EAAevuX,eAE1CiC,OAAOksX,OA3EG,kCA6EjB,SAAqB7mT,EAAMwnT,EAAWvqS,EAASwc,GAC3C,IAD6D,EACvDguR,EAAUD,EAAYxnT,EACtB0nT,EAA0BxhQ,KAAcwhQ,wBAAwBD,EAASxqS,GAC3E8pS,EAAc,GACdY,EAASH,EAAU5yX,OAAS,EAJ6B,cAK7CorE,GAL6C,IAK7D,2BAAsB,KAAXjoE,EAAW,QAClB,GAAU,OAANA,EAAY,CACZ,IAAM2J,EAAQgmX,EAAwBC,EAAS,GAAKD,EAAwBC,GAC5E,GAAIluR,EAAkB,CAClBstR,GAAe,SACf,IAAK,IAAIpyX,EAAI,EAAGA,EAAI+M,EAAO/M,IACvBoyX,GAAe,YAInB,IAAK,IAAIpyX,EAAI,EAAGA,EAAI+M,EAAO/M,IACvBoyX,GAAe,YAMnBA,GAFO,MAANhvX,EACD0hG,EACe,OAGA,OAIJ1hG,EAEnB4vX,GAAU,GA/B+C,8BAiC7D,OAAOZ,MA9GM,KAsHrB,SAASJ,GAAOriW,GACZ,MAAoBA,EAAM2pC,KAAlBj2D,EAAR,EAAQA,EAAG7B,EAAX,EAAWA,EAAGqD,EAAd,EAAcA,EACd,OAAO,IAAI4gB,KAAM,IAAIuD,KAAK3lB,EAAGwB,EAAGrD,EAAG,MAPvCovX,GAAoB3tX,GAAW,CAC3BsqF,GAAQ,EAAGr4D,MACXq4D,GAAQ,EAAGhvB,MACXgvB,GAAQ,EAAG/3D,OACZo7V,I,IAKGE,G,WACF,WAAY37V,EAAQi1F,GAAiB,oBACjCloH,KAAKizB,OAASA,EACdjzB,KAAKkoH,gBAAkBA,EACvBloH,KAAK+wX,iBAAcl3W,E,4CAEvB,WAAmB,OAAO7Z,KAAK+wX,c,qBAC/B,WACI/wX,KAAKud,U,mBAET,WAAQ,WACJvd,KAAKizB,OAAOinJ,iBAAgB,SAAC3wC,GACrB,EAAKwnP,cACLxnP,EAAe4wC,WAAW,EAAK42M,aAC/B,EAAKA,iBAAcl3W,Q,yBAI/B,SAAY0F,EAAYyvW,EAAiB5H,GAAsB,WACrD9gQ,EAAYtmH,KAAKizB,OAAO+B,WAC9B,GAAKsxF,EAAL,CAGA,IAAQlgC,EAAYkgC,EAAUiJ,aAAtBnpC,QACRpmF,KAAKizB,OAAOinJ,iBAAgB,SAAC3wC,GACrB,EAAKwnP,cACLxnP,EAAe4wC,WAAW,EAAK42M,aAC/B,EAAKA,iBAAcl3W,GAEvB,IAAMq+J,EAAgBxgK,KAAKC,IAAIq3W,EAAgBjxX,OAAQqpX,GACvD,GAAIlvM,EAAgB,EAAG,CACnB,IAAMtrK,EAAUxC,SAASsF,cAAc,QAWvD,SAAqB9C,EAASw5E,EAASzxB,EAAOzkC,EAAMg4F,GAChD,IAAM7nB,EAAgCnwE,EAAKuC,IAAI,IACzCixE,EAAyBxzE,EAAKuC,IAAI,KAElCmwE,EAAmB,OACnBL,EAA0BryE,EAAKuC,IAAI,IACnCokL,EAAgB3mL,EAAKuC,IAAI,IACzBs/D,EAAW7hE,EAAKuC,IAAI,IACpB+zD,EAAat2D,EAAKuC,IAAI,IACtBqmL,EAAKiE,aAAoB,KAC/BjE,EAAGC,kBAAkB,sCACrB,IAAK,IAAIj7M,EAAI,EAAG+jC,EAAM8yB,EAAM52D,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC9C,IAAMkzX,EAAWr8T,EAAM72D,GACjB81G,EAAOo9Q,EAAS9xU,QACtB45J,EAAGC,kBAAkB,yBACrBD,EAAGC,kBAAkB,iBACrBD,EAAGC,kBAAkBj5M,OAAOhC,EAAI0oF,IAChCsyH,EAAGC,kBAAkB,yBACrB,IAAMtzK,EAAeg0D,IAAqBma,GACpCvuE,EAAco0D,IAAoBma,GAClCmd,EAAaxI,KAAW0oQ,YAAYr9Q,EAAMsU,GAChD2wF,aAAe,IAAIpC,KAAiB1kH,EAASgnG,cAAgB14F,EAAgCtO,EAASinG,+BAAgCplF,GAAM,EAAOnuE,EAAcJ,EAAa,EAAG0rF,EAAYigQ,EAASlmP,YAAa1kD,EAAS,EAAG2L,EAAS6mG,WAAY7mG,EAASknG,YAAalnG,EAASmnG,cAAex1F,EAAwBd,EAAkBL,EAAyBs0G,IAAkBnlH,KAAoBC,IAAK,MAAOmnH,GACvZA,EAAGC,kBAAkB,UAEzBD,EAAGC,kBAAkB,UACrBlgD,KAAcioN,kBAAkBl0W,EAASmlF,GACzC,IAAMnyD,EAAOk5K,EAAGkE,QACVk0K,EAAc3C,GAAWA,GAASzY,WAAWl2U,GAAQA,EAC3DhzB,EAAQywS,UAAY6zE,EAtCRC,CAAYvkX,EAASw5E,EAAS4oS,EAAiB,EAAK/7V,OAAOs8F,aAAc,EAAKrH,iBAC9E,EAAK6oQ,YAAcxnP,EAAegyC,QAAQ,CACtCvD,gBAAiBz4J,EACjB24J,cAAeA,EACftrK,qB,KAoCpB,IAAI2jX,GAAa,E,IAaXZ,G,kDACF,WAAY18V,EAAQtU,EAAU/R,EAAS2tQ,GAAiB,kCACpD,gBACKtnP,OAASA,EACd,EAAKtU,SAAWA,EAChB,EAAK/R,QAAUA,EACf,EAAKg2W,qBAAsB,EAC3B,EAAKC,mBAAoB,EACzB,EAAKn5W,UAAU6wQ,GACf,EAAK7wQ,UAAUyO,aAAa,WACxB,EAAK8a,OAAO2tU,oBAAZ,qBAEJ,EAAK3tU,OAAOqtU,iBAAZ,iBAXoD,E,yCAaxD,WACI,MAAO,sC,wBAEX,WACI,OAAOtgW,KAAK4M,U,yBAEhB,WACI,MAAO,CACH+R,SAAU3e,KAAK2e,SACfqiV,WAAY,CAAC,Q,GAvBgBh3V,KA2BzCg0D,cAA2B,SAACl8C,EAAOu4G,GAC/B,IAAM33G,EAAaZ,EAAMwL,SAASquH,MAClC,GAAIj5H,EAAY,CACZ,IAAMqxB,EAAUj0C,OAAO4iB,EAAW00C,KAAKlzD,GACjCupB,EAAQlK,KAAM+0C,OAAOC,IAAI32C,OAAOkuW,GAAOptW,IAE7C23G,EAAUQ,QAAV,2DAAsE9mF,EAAtE,+BAAoGtmB,EAApG,mBACA4sG,EAAUQ,QAAV,iEAA4En4G,EAAWjK,WAAvF,mBACA4hH,EAAUQ,QAAV,sEAAiF9mF,EAAjF,+BAA+GtmB,EAA/G,mBAEJ,IAAMjgB,EAASsU,EAAMwL,SAASouH,MAC1BluI,IACA6sH,EAAUQ,QAAV,+EAA0FrtH,EAA1F,QACA6sH,EAAUQ,QAAV,oEAA+ErtH,EAA/E,QACA6sH,EAAUQ,QAAV,4EAAuFrtH,EAAvF,Y,sBC7ZJzM,GAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,GAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAEvD/pF,GAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOrB,GAAKmB,EAAOnB,IACpF,SAASwB,EAASH,GAAS,IAAMC,EAAKN,EAAS,MAAUK,IAAW,MAAOrB,GAAKmB,EAAOnB,IACvF,SAASsB,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUlB,MAAMe,EAASC,GAAc,KAAKS,YAelEkvX,GAAmB,kDACnB,WAAYn+V,EAAQ4qJ,GAAsB,kCACtC,gBACK5qJ,OAASA,EACd,EAAK4qJ,qBAAuBA,EAC5B,EAAKwzM,qBAAsB,EAC3B,EAAKC,iBAAmB,EAAK5nX,UAAU,IAAIsU,KAC3C,EAAKtU,UAAU,EAAKupB,OAAOqwK,kBAAiB,WACxC,EAAKiuL,4BAET,EAAK7nX,UAAU,EAAKupB,OAAO81H,0BAAyB,SAACpoJ,GAC7CA,EAAEynF,WAAW,MACb,EAAKmpS,wBAEL5wX,EAAEynF,WAAW,KACb,EAAKmpS,4BAGb,EAAKA,wBAjBiC,EADvB,6CAuBnB,WACI,IAAIvsX,EACJ,OAA8C,QAAtCA,EAAKhF,KAAKsxX,iBAAiBtvX,aAA0B,IAAPgD,OAAgB,EAASA,EAAG8vB,QAzBnE,mCA4BnB,WACI,IAAM08V,EAAiBxxX,KAAKizB,OAAO+nJ,UAAU,KACvCy2M,EAAuBzxX,KAAKizB,OAAO+nJ,UAAU,IACnDh7K,KAAKsxX,iBAAiBtvX,WAAQ6X,EAE9B7Z,KAAKsxX,iBAAiBtvX,MAClBhC,KAAKizB,OAAO81L,aAAeyoK,EAAet3S,SAAWu3S,EAAqBzjS,SAAWhuF,KAAKqxX,qBACpFrxX,KAAK69K,qBAAqBqkL,eAAewvB,GAA2B1xX,KAAKizB,aACzEpZ,IApCK,+BAsCnB,SAAkBq0W,GACd,IAAIlpX,EACJ,OAAoC,QAA3BA,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,OAAgB,EAASA,EAAG4sX,kBAAkB1D,MAAgB,IAxC3F,uCA0CnB,SAA0BY,GACtB,IAAI9pX,EAAIgL,EACR,OAAqG,QAA5FA,EAA4C,QAAtChL,EAAKhF,KAAKsxX,iBAAiBtvX,aAA0B,IAAPgD,OAAgB,EAASA,EAAGg4K,cAA2B,IAAPhtK,OAAgB,EAASA,EAAG6hX,0BAA0B/C,MAAgB,IA5CpK,qBA8CnB,WACI,IAAI9pX,EACJhF,KAAKqxX,qBAAsB,EACtBrxX,KAAKsxX,iBAAiBtvX,OACvBhC,KAAKuxX,wBAEmB,QAA3BvsX,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,GAAyBA,EAAG8sX,4BApDjD,oBAsDnB,WACI,IAAI9sX,EACwB,QAA3BA,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,GAAyBA,EAAG+sX,2BAxDjD,kBA0DnB,WACI,IAAI/sX,EACwB,QAA3BA,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,GAAyBA,EAAGgtX,yBA5DjD,sCA8DnB,WACI,IAAIhtX,EACwB,QAA3BA,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,GAAyBA,EAAG6iX,6BAhEjD,0CAkEnB,WACI,IAAI7iX,EACwB,QAA3BA,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,GAAyBA,EAAG8iX,iCApEjD,0CAsEnB,WACI,IAAI9iX,EACJ,OAAOzD,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,oFACpB,OADoB,SACe,QAA3BgF,EAAKhF,KAAK2xX,mBAAgC,IAAP3sX,OAAgB,EAASA,EAAG+iX,+BADnD,cAC7B3lX,EAD6B,8BAEjByX,IAAXzX,GAAuBA,GAFK,mDAxExB,kBAoBnB,SAAW6wB,GACP,OAAOA,EAAO6wH,gBAAgBstO,EAAoBluN,QArBnC,GAAqCl5J,KA8E5DonX,GAAoBa,wBAA0B,IAAIn1V,KAAc,2BAA2B,EAAOha,KAAa,0BAA2B,4CAC1IsuW,GAAoBc,+BAAiC,IAAIp1V,KAAc,kCAAkC,EAAOha,KAAa,iCAAkC,yDAC/JsuW,GAAoBe,8CAAgD,IAAIr1V,KAAc,iDAAiD,EAAMha,KAAa,gDAAiD,yGAC3MsuW,GAAoBluN,GAAK,qCACzBkuN,GAAsBrwX,GAAW,CAC7BsqF,GAAQ,EAAGnmB,OACZksT,I,IAEGgB,GACF,WAAYzkS,GAAmB,oBAC3B3tF,KAAK2tF,kBAAoBA,EACzB3tF,KAAKqyX,wBAA0BjB,GAAoBa,wBAAwB30M,OAAOt9K,KAAK2tF,mBACvF3tF,KAAKsyX,oCAAsClB,GAAoBc,+BAA+B50M,OAAOt9K,KAAK2tF,mBAC1G3tF,KAAKuyX,mDAAqDnB,GAAoBe,8CAA8C70M,OAAOt9K,KAAK2tF,oBAO5I+jS,GAAyB,kDACzB,WAAYz+V,EAAQ4qJ,EAAsBlwF,GAAmB,kCACzD,gBACK16D,OAASA,EACd,EAAK4qJ,qBAAuBA,EAC5B,EAAKlwF,kBAAoBA,EACzB,EAAK6kS,YAAc,IAAIJ,GAAqB,EAAKzkS,mBACjD,EAAK74D,MAAQ,EAAKprB,UAAU,EAAKm0K,qBAAqBqkL,eAAewrB,GAAgB,EAAKz6V,SAC1F,EAAK+pJ,OAAS,EAAKtzK,UAAU,EAAKm0K,qBAAqBqkL,eAAessB,GAAiB,EAAKv7V,OAAQ,EAAK6B,QACzG,EAAKprB,UAAUyO,aAAa,WACxB,EAAKq6W,YAAYH,wBAAwB7qV,KAAI,GAC7C,EAAKgrV,YAAYF,oCAAoC9qV,KAAI,GACzD,EAAKgrV,YAAYD,mDAAmD/qV,KAAI,OAE5E,EAAK99B,UAAU,EAAKorB,MAAMiZ,aAAY,WAClC,EAAK0kV,wBAET,EAAKA,oBAhBoD,EADpC,qDAmBzB,WACI,IAAIztX,EACJhF,KAAKwyX,YAAYH,wBAAwB7qV,SAA2G3tB,KAAnD,QAAlD7U,EAAKhF,KAAK80B,MAAMq5V,oCAAiD,IAAPnpX,OAAgB,EAASA,EAAGmiX,YACrI,IAAIuL,GAAwB,EACxBC,GAAuC,EACrCxL,EAAYnnX,KAAK80B,MAAMg5V,uBAAuB3G,UACpD,GAAMnnX,KAAK80B,MAAMq5V,8BAAgChH,GAAaA,EAAU94K,MAAMtwM,OAAS,EAAG,CACtF,MAA0BopX,EAAU94K,MAAM,GAAlC7uL,EAAR,EAAQA,OACFu/N,EADN,EAAgBpqL,MACQ,GAGxB,GADsBn1C,GADOxf,KAAKizB,OAAO+B,WAAW2/J,oBAAoBwyL,EAAU5nW,YAE/D,CACf,IAAIqzW,EAAgBhxV,YAAwBm9M,IACrB,IAAnB6zI,IACAA,EAAgB7zI,EAAUhhP,OAAS,GAEvC20X,EAAwBE,EAAgB,EACxC,IAAMxsS,EAAUpmF,KAAKizB,OAAO+B,WAAWu6F,aAAanpC,QAEpDusS,EADiCtjQ,IAAcC,wBAAwByvH,EAAW6zI,EAAgB,EAAGxsS,GACnCA,GAG1EpmF,KAAKwyX,YAAYF,oCAAoC9qV,IAAIkrV,GACzD1yX,KAAKwyX,YAAYD,mDAAmD/qV,IAAImrV,OA1CnD,GAA2C3oX,KA6CxE0nX,GAA4B3wX,GAAW,CACnCsqF,GAAQ,EAAGnmB,MACXmmB,GAAQ,EAAG/3D,OACZo+V,IAEH,IAAMmB,GAAmB//V,IAAc6vV,mBAAmByO,GAAoB3+V,KACjEqgW,GAA+B,IAAID,GAAiB,CAC7Dt8W,GAAIutW,EACJ3zV,aAAcihW,GAAoBa,wBAClC7sX,QAH6D,SAGrD6W,GACJA,EAAEktW,SACFltW,EAAEgX,OAAO+J,WAGjBxH,YAAsBs9V,IACtBxhW,KAAoBC,uBAAuB,CACvCN,QAAS,EACTF,OAAQ,IACRxa,GAAIu8W,GAA6Bv8W,GACjCya,KAAMH,KAAeC,IAAIgiW,GAA6B3iW,aAAcyM,IAAkBc,cAAcL,YAAa+zV,GAAoBe,iDAEzI38V,YAAsB,IAAIq9V,GAAiB,CACvCt8W,GAAI,mCACJ4Z,aAAcihW,GAAoBa,wBAClC5hW,OAAQ,CACJU,OAAQ,IACRE,QAAS,GAEb7rB,QAPuC,SAO/B6W,GACJA,EAAE7E,WAGH,IAAM27W,GAAb,kDACI,aAAc,uCACJ,CACFx8W,GAAIw8W,EAA+B7vN,GACnCrgK,MAAOigB,KAAa,gCAAiC,+BACrDgR,MAAO,8BACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUizX,GAAoBa,yBACjF5hW,OAAQ,CACJU,OAAQ,IACRE,QAAS,OATzB,uCAaI,SAAIS,EAAUuB,GACV,OAAO1xB,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,qFAC7BwmW,EAAa4qB,GAAoB3+V,IAAIQ,MAEvCuzU,EAAWqhB,2BACX50V,EAAO+J,SAJwB,+CAd/C,GAAoDpJ,KAuBpDm/V,GAA+B7vN,GAAK,uCAC7B,IAAM8vN,GAAb,kDACI,aAAc,uCACJ,CACFz8W,GAAIy8W,EAAmC9vN,GACvCrgK,MAAOigB,KAAa,oCAAqC,mCACzDgR,MAAO,kCACP3D,aAAcU,KAAeC,IAAI8L,IAAkBz+B,SAAUizX,GAAoBa,yBACjF5hW,OAAQ,CACJU,OAAQ,IACRE,QAAS,OATzB,uCAaI,SAAIS,EAAUuB,GACV,OAAO1xB,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,qFAC7BwmW,EAAa4qB,GAAoB3+V,IAAIQ,MAEvCuzU,EAAWshB,+BACX70V,EAAO+J,SAJwB,+CAd/C,GAAwDpJ,KAuBxDo/V,GAAmC9vN,GAAK,2CACjC,IAAM+vN,GAAb,kDACI,aAAc,uCACJ,CACF18W,GAAI,sCACJ1T,MAAOigB,KAAa,+BAAgC,6BACpDgR,MAAO,4BACP3D,aAAcyM,IAAkBz+B,WAN5C,uCASI,SAAIuzB,EAAUuB,GACV,OAAO1xB,GAAUvB,UAAM,OAAQ,EAAf,UAAuB,qFAC7BwmW,EAAa4qB,GAAoB3+V,IAAIQ,KAEvCuzU,EAAWzlS,UAHoB,+CAV/C,GAAmDntC,KAkBnDsC,YAA2Bk7V,GAAoBluN,GAAIkuN,IACnDx7V,YAAqBq9V,IACrBr9V,YAAqBm9V,IACrBn9V,YAAqBo9V,K,8BCjRrB,kCAGA,IAAIE,EAAiC,KAI/BC,EAAqB,GAEvBC,EAAY,EAuHVC,EAAY,oBACZrkX,EAAOvP,MAEA6zX,EAAyCtkX,EAAKqkX,IAAc,WACvE,IAAMC,EAtHoB,wBAIV,KAAA/8W,GAAK,CACnB,OACA68W,IACAnrX,KAAKm6D,MACL1qD,KAAK6uD,SAAS9tD,SAAS,IAAI/T,MAAM,IACjCiY,KAAK,KA+FT,OA7FS,YAAA42W,SAAP,WACE,IAAK,IAAI,EAAUL,EAAgB,EAAS,EAAU,EAAQ59W,OAG5D,GAAItV,KAAKuW,MAAM,EAAQi9W,MAAO,CAC5B,IAAMxxX,EAAQ,EAAQwxX,MAAMxzX,KAAKuW,IACjC,GAAIvU,IAAUmxX,EAAe,MAO7B,OANI,IAAYD,IAIdA,EAAgBM,MAAMxzX,KAAKuW,IAAMvU,IAE5B,EASX,OANIkxX,IAIFA,EAAeM,MAAMxzX,KAAKuW,IAAM48W,IAE3B,GAGF,YAAAlpV,SAAP,WACE,GAAIjqC,KAAKuzX,WACP,OAAOL,EAAgBM,MAAMxzX,KAAKuW,KAI/B,YAAAi5V,UAAP,SACExtW,EACAyF,EAGA5I,EACA2C,G,MAEMgyX,IAAK,GACTh0X,UAAW,OACVQ,KAAKuW,IAAKvU,EACZ,GACKsT,EAAS49W,EACfA,EAAiB,CAAE59W,OAAM,EAAEk+W,MAAK,GAChC,IAGE,OAAO/rX,EAAShH,MAAMe,EAAU3C,GAHlC,QAKEq0X,EAAiB59W,IAMd,EAAA8lD,KAAP,SACE3zD,GAEA,IAAMmiC,EAAUspV,EAChB,OAAO,WACL,IAAMO,EAAQP,EACd,IAEE,OADAA,EAAiBtpV,EACVniC,EAAShH,MAAMT,KAAMQ,WAF9B,QAIE0yX,EAAiBO,KAMhB,EAAAC,UAAP,SACEjsX,EAGA5I,EACA2C,GAEA,IAAI0xX,EAWF,OAAOzrX,EAAShH,MAAMe,EAAU3C,GAVhC,IAAM40X,EAAQP,EACd,IAIE,OAHAA,EAAiB,KAGVzrX,EAAShH,MAAMe,EAAU3C,GAJlC,QAMEq0X,EAAiBO,IAMzB,EAxG4B,GAuH1B,IACEr1X,OAAOC,eAAe2Q,EAAMqkX,EAAW,CACrCrxX,MAAOgN,EAAKqkX,GAAaC,EACzBr1X,YAAY,EACZE,UAAU,EACVD,cAAc,IALlB,QAQE,OAAOo1X,GAV8D,GlCtItCA,EAAhB,KAAgBA,EAAI,W,6BmCFvC,kCAGO,IAAM,EAAY,CAMrB,cAAa,QAQb,KAAI,QAQJ,MAAK,SAQL,WAAU,aAQV,YAAW,cAKX,SAAQ,WAKR,UAAS,YAET,cAAa,CAOT,UAAO,CACT,IAAK,MACC,IAAD,MACL,OAAQ,SACR,KAAM,OACN,MAAO,QACP,KAAM,OACN,MAAO,SAGL,YAAS,CACX,gBAAiB,MAOnB,gBAAe,CAOX,cAAW,gBAEX,qBAAkB,SAUtB,YAAa,cAQb,WAAY,gB,iMCrGZvyX,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAWvD+xF,EAAwB,kDACxB,WAAYyqD,EAAYziO,EAASsuX,EAAc91M,EAAsB9qJ,EAAmBgzU,EAAgBp4Q,EAAmBxvB,EAAc8nS,EAAqBrrK,GAAsB,oCAChL,cAAMktC,EAAY1pO,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIuzX,EAAaC,iBAAkB,CAAEC,uBAAwBF,EAAaG,8BAAgC,GAAIj2M,EAAsB9qJ,EAAmBgzU,EAAgBp4Q,EAAmBxvB,EAAc8nS,EAAqBrrK,IACtQm5L,cAAgBJ,EACrB,EAAKK,kBAAoB3uX,EAEzB,kFAAoB,EAAK2uX,mBACzB,EAAKtqX,UAAUiqX,EAAa5qO,0BAAyB,SAACpoJ,GAAD,OAAO,EAAKszX,8BAA8BtzX,OANiF,EAD5J,mDASxB,WACI,OAAOX,KAAK+zX,gBAVQ,2CAYxB,SAA8BpzX,GAC1B,qEAAoBX,KAAK+zX,cAAcH,iBACvC,qEAAoB5zX,KAAKg0X,qBAdL,2BAgBxB,SAAc13J,GACV3iD,IAAc35K,KAAKg0X,kBAAmB13J,GAAY,GAClD,qEAAoBt8N,KAAKg0X,uBAlBL,GAA0CE,KAqBtE72M,EAA2Bt8K,EAAW,CAClCsqF,EAAQ,EAAGnmB,KACXmmB,EAAQ,EAAGr4D,KACXq4D,EAAQ,EAAGiD,KACXjD,EAAQ,EAAG/3D,KACX+3D,EAAQ,EAAGhvB,KACXgvB,EAAQ,EAAGo2E,KACXp2E,EAAQ,EAAG4jG,MACZ5R,I,yFC/CU82M,EAAb,WACI,aAAwB,oBACpBn0X,KAAKmqJ,SAAW,IAAI5iH,IADA,2BAAT07G,EAAS,yBAATA,EAAS,gBAEpB,cAA0BA,EAA1B,eAAmC,CAA9B,0BAAK1sI,EAAL,KAAS85W,EAAT,KACDrwX,KAAKwnC,IAAIjxB,EAAI85W,IAJzB,uCAOI,SAAI95W,EAAI69W,GACJ,IAAMhyX,EAASpC,KAAKmqJ,SAAS13H,IAAIlc,GAEjC,OADAvW,KAAKmqJ,SAAS3iH,IAAIjxB,EAAI69W,GACfhyX,IAVf,iBAYI,SAAImU,GACA,OAAOvW,KAAKmqJ,SAAS7nG,IAAI/rC,KAbjC,iBAeI,SAAIA,GACA,OAAOvW,KAAKmqJ,SAAS13H,IAAIlc,OAhBjC,M,6BCJA,gFACa89W,EAAoC3nV,YAAgB,oCACpD4nV,EAAiC5nV,YAAgB,kC,yKCK1D6nV,E,gBCPE,EAAmC,GAEnC,SAAUC,EAAWC,EAAgCx1X,GACzD,IAAM0R,EAAe8jX,EAAUx1X,GAER,MAAnB0R,EAAKowB,OAAO,KACd0zV,EAAUx1X,GAAS,EAAM0R,GAAQ,EAAMA,IAASA,EAAK7R,QAAQ,WAAY,OAAOikC,eCJpF,IAAM2xV,EAA6C,CACjD,cAAe,GAGX,SAAUC,EAAYF,EAAgCx1X,GAC1D,IAAM21X,EFEF,W,MACJ,IAAKL,EAAiB,CACpB,IAAMppU,EAA0B,qBAAb/gD,SAA2BA,cAAWyP,EACnDg7W,EAA2B,qBAAdr6T,UAA4BA,eAAY3gD,EACrDwtB,EAA0B,QAAjB,EAAM,OAAHwtV,QAAG,IAAHA,OAAG,EAAHA,EAAK,iBAAS,eAAE,cAUhCN,EARGppU,EAQe,CAChB2pU,YAAa3pU,KAAO,qBAAsBA,EAAIlgD,gBAAgByB,QAC9DqoX,SAAU1tV,GAAaA,EAAUzmC,QAAQ,YAAc,GACvDo0X,WAAY3tV,GAAaA,EAAUzmC,QAAQ,UAAY,GACvDq0X,QAASJ,IAAQ,WAAWh+W,KAAKg+W,EAAIxtV,aAAc,aAAaxwB,KAAK2jD,UAAUnzB,aAX/D,CAChBytV,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,MAAM,GAYZ,OAAOV,EEzBgBW,GAEjBt+W,EAAO69W,EAAUx1X,GAEvB,GAAIy1X,EAAgB99W,GAAO,CACzB,IAAM5U,EAAQyyX,EAAUx1X,EAAQ,GAE5By1X,EAAgB99W,KACdg+W,EAAeE,UACjBL,EAAUlxX,KAAK,WAAaqT,EAAM5U,GAEhC4yX,EAAeG,OACjBN,EAAUlxX,KAAK,QAAUqT,EAAM5U,GAE7B4yX,EAAeK,MACjBR,EAAUlxX,KAAK,OAASqT,EAAM5U,GAE5B4yX,EAAeI,SACjBP,EAAUlxX,KAAK,MAAQqT,EAAM5U,KCzBrC,I,EAAMmzX,EAAyB,CAC7B,eACA,cACA,OACA,YACA,cACA,eACA,UACA,QACA,UACA,QAGI,SAAUC,EAAaX,EAAgCx1X,GAC3D,IAAM2X,EAAO69W,EAAUx1X,GACjB+C,EAAQyyX,EAAUx1X,EAAQ,GAEhC,GAAqB,kBAAV+C,EAAoB,CAC7B,IAAMqzX,EAAiBF,EAAuBv0X,QAAQgW,IAAmB,EACnE0+W,EAAuB1+W,EAAKhW,QAAQ,OAAS,EAC7C4oM,EAAO6rL,GAAkBC,EAAuB,GAAK,KAE3Db,EAAUx1X,EAAQ,GAAK,GAAG+C,EAAQwnM,GCpBtC,IAAM79J,EAAO,OACPC,EAAQ,QAER2pV,IAAiB,MACrB,KAAQ3pV,EACR,QAASD,EACV,GACK6pV,EAAgD,CACpD,WAAY,WACZ,YAAa,YACb,YAAa,aAOT,SAAUC,EAAYpwX,EAAwBovX,EAAgCx1X,GAClF,GAAIoG,EAAQ8uD,IAAK,CACf,IAAM,EAAOsgU,EAAUx1X,GAEvB,IAAK,EACH,OAGF,IAAM+C,EAAQyyX,EAAUx1X,EAAQ,GAEhC,GAAqB,kBAAV+C,GAAsBA,EAAMpB,QAzB3B,YAyB+C,EACzD6zX,EAAUx1X,EAAQ,GAAK+C,EAAMlD,QAAQ,6CAA8C,SAC9E,GAAI,EAAK8B,QAAQ+qC,IAAS,EAC/B8oV,EAAUx1X,GAAS,EAAKH,QAAQ6sC,EAAMC,QACjC,GAAI,EAAKhrC,QAAQgrC,IAAU,EAChC6oV,EAAUx1X,GAAS,EAAKH,QAAQ8sC,EAAOD,QAClC,GAAI7rC,OAAOkC,GAAOpB,QAAQ+qC,IAAS,EACxC8oV,EAAUx1X,EAAQ,GAAK+C,EAAMlD,QAAQ6sC,EAAMC,QACtC,GAAI9rC,OAAOkC,GAAOpB,QAAQgrC,IAAU,EACzC6oV,EAAUx1X,EAAQ,GAAK+C,EAAMlD,QAAQ8sC,EAAOD,QACvC,GAAI4pV,EAAkB,GAC3Bd,EAAUx1X,GAASs2X,EAAkB,QAChC,GAAIC,EAAmBxzX,GAC5ByyX,EAAUx1X,EAAQ,GAAKu2X,EAAmBxzX,QAE1C,OAAQ,GACN,IAAK,SACL,IAAK,UACHyyX,EAAUx1X,EAAQ,GAyB5B,SAAkB+C,GAChB,GAAqB,kBAAVA,EAAoB,CAC7B,IAAMqsM,EAAQrsM,EAAMs3B,MAAM,KAE1B,GAAqB,IAAjB+0K,EAAMtwM,OACR,OAAUswM,EAAM,GAAE,IAAIA,EAAM,GAAE,IAAIA,EAAM,GAAE,IAAIA,EAAM,GAIxD,OAAOrsM,EAlCwB0zX,CAAS1zX,GAChC,MACF,IAAK,aACHyyX,EAAUx1X,EAAQ,GAU5B,SAAmB+C,EAAes1M,GAChC,IAAMjJ,EAAQrsM,EAAMs3B,MAAM,KACpBq8V,EAAYl2V,SAAS4uK,EAAMiJ,GAAY,IAI7C,OAFAjJ,EAAM,GAAKA,EAAM,GAAGvvM,QAAQgB,OAAO61X,GAAY71X,QAAoB,EAAb61X,IAE/CtnL,EAAM1xL,KAAK,KAhBai5W,CAAU5zX,EAAO,KC9BlD,SAAS,EAAe,GACtB,IAAM,EAAoB,GAAS,EAAM,KAEzC,OAAO,EAAa,EAAwB,iBAAc,EAG5D,IAAM,EAAuB,qBAgD7B,SAAS,EAAe,EAAqB,GACzC,OAAE,EAAY,QAAQ,aAAe,EAC9B,EAAY,QAAQ,EAAsB,MACX,IAA7B,EAAY,QAAQ,KACtB,EAAkB,EAChB,EAAY,QAAQ,KAAO,EAC7B,EAAkB,IAAM,EAG1B,EAGT,SAAS,EAAgB,EAAyB,EAAmC,EAAkB,QAArD,WAAoB,QAAS,KAC/C,IAA1B,EAAS,QAAQ,KAEnB,EAAa,CAAC,GAAQ,EADtB,EAAW,EAAW,IAAM,GAEnB,EAAS,QAAQ,MAAQ,EArDtC,SAAqC,GAEjC,IAAG,EAAqB,KAAK,GAC7B,OAAO,EAQP,IALF,IAAM,EAAqC,GAErC,EAAa,qBACf,EAAQ,KAEJ,EAAQ,EAAW,KAAK,IAE1B,EAAM,GAAG,QAAQ,MAAQ,GAC3B,EAAgB,KAAK,CACnBjD,EAAME,MACN,EAAM,MAAQ,EAAM,GAAG,OAEvB,EAAM,GACH,MAAM,KACN,KAAI,SAAC,GAAc,iBAAW,EAAE,OAAb,OACnB,KAAK,QAMZ,OAAK,EACJ,UACA,QAAO,SAAC,EAAkB,G,IAAC,EAAU,KAAE,EAAa,KAAE,EAAW,KAIhE,OAHeoR,EAAS3L,MAAM,EAAG,GAGjB,EAFD,EAAS,MAAM,KAG7B,GAoBH,CAA4B,GACzB,MAAM,KACN,KAAI,SAAC,GAAc,mBACnB,SAAQ,SAAC,GACR,SAAa,CAAC,GAAQ,EAAO,EAAe,EAAmB,OAGnE,EAAa,CAAC,GAAQ,EAAO,EAAe,EAAU,IAI1D,SAAS,EAAa,EAAgB,EAAmC,QAAnC,WAAoB,QAAS,UAAM,eACvE,IAAM,EAAa,IAAW,cAC1B,EAAwC,EAAM,GAE7C,IACH,EAAe,GACfwL,EAAM,GAAmB,EACzB,EAAM,QAAQ,KAAK,IAGnB,IAAgB,2BAAM,CAAnB,IAAM,EAAG,KAEZ,GAAmB,kBAAR,EAAkB,CAC3B,IAAM,EAAgB,EAAW,kBAAkB,GAE/C,GACF,EAAa,EAAe,EAAO,QAGhC,GAAI,MAAM,QAAQ,GACvB,EAAa,EAAK,EAAO,QAEzB,IAAK,IAAM,KAAQ,EACjB,GAAK,EAAY,eAAe,GAAO,CACrC,IAAM,EAAa,EAAY,GAE/B,GAAa,cAAT,EAAsB,CAExB,IAAM,EAAwC,EAAY,UAE1D,IAAK,IAAM,KAAe,EACpB,EAAU,eAAe,IAC3B,EAAgB,EAAiB,EAAO,EAAa,EAAU,QAGrC,kBAAd,EAEE,OAAd,GACF,EAAgB,EAAiB,EAAO,EAAM,QAG9B,IAAd,IAEW,WAAT,GAA8B,YAAT,EACvB,EAAY,EAAc,EAAM,GAE/B,EAAqB,GAAQ,IAS5C,OAAO,EAGT,SAAS,EAAY,EAA2B,EAAc,GAC5D,IAAI,EAAyB,kBAAV,ECpJf,SAAkClO,GAKtC,IAJA,IAAMqsM,EAAQ,GACVwnL,EAAY,EACZC,EAAS,EAEJh4X,EAAI,EAAGA,EAAIkE,EAAMjE,OAAQD,IAChC,OAAQkE,EAAMlE,IACZ,IAAK,IACHg4X,IACA,MACF,IAAK,IACCA,GACFA,IAEF,MACF,IAAK,KACL,IAAK,IACEA,IAECh4X,EAAI+3X,GACNxnL,EAAM9qM,KAAKvB,EAAMq+B,UAAUw1V,EAAW/3X,IAExC+3X,EAAY/3X,EAAI,GAWxB,OAJI+3X,EAAY7zX,EAAMjE,QACpBswM,EAAM9qM,KAAKvB,EAAMq+B,UAAUw1V,IAGtBxnL,EDmHiC,CAAwB,GAAS,CAAC,GAErD,IAAjB,EAAM,QACR,EAAM,KAAK,GAGmB,eAA5B,EAAM,EAAM,OAAS,KAEvB,EAAQ,EAAM,MAAM,GAAI,GAAG,KAAI,YAAK,2BAGtC,EAAa,EAAO,OAAS,EAAM,GACjC,EAAW,EAAO,SAAW,EAAM,IAAM,EAAM,GAC/C,EAAW,EAAO,UAAY,EAAM,IAAM,EAAM,GAClD,EAAa,EAAO,QAAU,EAAM,IAAM,EAAM,IAAM,EAAM,GAG9D,SAAS,EAAe,EAAwB,GAI9C,IAHE,IAAIjmK,EAAuB,CAAC,EAAQ,IAAM,MAAQ,OAChD,GAAW,EAEQ,QAAM,QAAN,eAAe,CAAjC,IAAM,EAAQ,KACjB,EAAW,KAAK,GAChB,IAAM,EAAmB,EAAM,GAE/B,IAAK,IAAM,KAAY,EACjB,EAAiB,eAAe,SAA4C,IAA/B,EAAiB,KAChE,GAAW,EACX,EAAW,KAAK,EAAU,EAAiB,KAKjD,OAAO,EAAW,EAAW,KAAK,SAAM,EAG1C,SAAS,EAAa,EAAgB,GACpC,OAAI,GAAS,EACJ,GAGK,IAAV,EACK,EAGF,EAAS,EAAa,EAAQ,EAAQ,GAGzC,SAAU,EAAqB,EAAwB,GAC3D,IAAK,EACH,MAAO,GAGP,IAAI,EAAkC,GAEtC,IAAG,IAAM,KAAS,EACd,EAAY,eAAe,IA9Md,gBA8MwB,QAAiD,IAAvB,EAAY,IAC7E,EAAW,KAAK,EAAO,EAAY,IAKvC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EAC1C,EAAW,EAAY,GACvB,EAAa,EAAY,GACzB,EAAY,EAAS,EAAY,GACjC,EAAY,EAAY,GAI1B,IAAS,EAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EAC1C,EAAW,OAAO,EAAG,EAAG,IAAK,EAAW,GAAI,KAG9C,OAAO,EAAW,KAAK,IAUnB,SAAU,EAAoB,G,IAAwB,wDAC1D,IAAM,EAAkB,EAAa,GAC/B,EAAM,EAAe,EAAS,GAElC,GAAE,EAAK,CACP,IAAM,EAAa,IAAW,cACxB,EAAuC,CAC3C,UAAW,EAAW,iBAAiB,GACvC,IAAG,EACH,KAAI,GAGN,IAAK,EAAa,UAAW,CAC3B,EAAa,UAAY,EAAW,aAAa,EAAe,IAGhE,IAFA,IAAM,EAA0B,GAET,QAAM,QAAN,eAAe,CAAjC,IAAM,EAAQ,KACjB,EAAc,KAAK,EAAU,EAAqB,EAAS,EAAM,KAEnE,EAAa,cAAgB,EAG/B,OAAO,GAYL,SAAU,EAAkB,EAA6B,qBAC7D,IAAM,EAAa,IAAW,cACtB,EAAwC,EAA/B,UAAE,EAA6B,EAA1B,IAAE,EAAwB,EAApB,KAAE,EAAkB,EAAL,cAEzC,GAAE,EAAe,CAEjB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAc,OAAQ,GAAK,EAAG,CAChD,IAAM,EAAQ,EAAc,EAAI,GAChC,GAAI,EAAO,CACT,IAAI,EAAW,EAAc,GAIvB,GAHN,EAAW,EAAS,QAAQ,KAAM,EAAa,IAAI,EAAa,UAAa,KAG5C,IAAI,EAAK,KAA8B,IAA1B,EAAS,QAAQ,KAAa,IAAM,IAClF,EAAW,WAAW,IAG1B,EAAW,eAAe,EAAY,EAAM,EAAO,IAIjD,SAAU,EAAiB,G,IAAwB,wDACvD,IAAM,EAAe,EAAmB,0BAAC,GAAY,IACrD,OAAI,GACF,EAAkB,EAAc,EAAQ,uBAEjC,EAAa,WAGf,K,6BE9ST,SAAS,EAAa,GACpB,OAAO,EAAW,cA6Ed,SAAU,EAAkB,GAC9B,SAAG,GAA4B,kBAAX,KAKS,oBAAtB,EAAO,YACU,oBAAjB,EAAO,OACQ,oBAAf,EAAO,KACQ,oBAAf,EAAO,KACa,oBAApB,EAAO,UACW,oBAAlB,EAAO,QACiB,oBAAxB,EAAO,cACiB,oBAAxB,EAAO,cACgB,oBAAvB,EAAO,aACW,oBAAlB,EAAO,QAnGlB,oEA6GA,iBAGI,SAAF,EAAY,GAEN,GADA,KAAC,YAAc,GACf,EACF,IAAK,IAAM,KAAc,EACvB,KAAK,IAAI,EAAY,EAAW,IAiHxC,OAtGS,gBAAP,SAAW,EAAoB,GACzB,KAAC,YAAY,EAAa,IAAe,CAC3C,KAAM,EACN,MAAO,EAAY,aAShB,gBAAP,SAAW,GACT,IAAM,EAAqB,KAAK,YAAY,EAAa,IACzD,OAAQ,EAAqB,EAAO,WAAnB,GAMZ,qBAAP,SAAgB,GACd,QAAS,KAAK,YAAY,EAAa,KAQlC,mBAAP,SAAc,GACZ,IAAM,EAAkB,KAAK,SAAS,GAEtC,cADO,KAAK,YAAY,EAAa,IAC9B,GAMF,uBAAP,WACE,IAAM,EAAyB,GAC/B,IAAK,IAAM,KAAa,KAAK,YAAa,CACxC,IAAM,EAAqB,KAAK,YAAY,GAC5C,EAAO,EAAO,KAAK,eAAiB,EAAO,MAE7C,OAAO,GAMF,yBAAP,WACE,IAAM,EAAwB,GAC9B,IAAK,IAAM,KAAa,KAAK,YAC3B,EAAQ,KAAK,KAAK,YAAY,IAEhC,OAAO,GAMF,wBAAP,WAGE,IAFA,IAAM,EAAwB,GACxB,EAAwB,KAAK,eAC1B,EAAI,EAAG,EAAI,EAAQ,SAAU,EACpC,EAAY,KAAK,EAAQ,GAAG,MAE9B,OAAO,GAMF,yBAAP,WAGE,IAFA,IAAM,EAAyB,GACzB,EAAwB,KAAK,eAC1B,EAAI,EAAG,EAAI,EAAQ,SAAU,EACpC,EAAa,KAAK,EAAQ,GAAG,OAE/B,OAAO,GAMF,mBAAP,WACE,OAAO,KAAK,cAMP,qBAAP,WACE,OAAO,KAAK,UAAU,KAAK,WAMtB,kBAAP,WACE,OAAO,IAAI,EAAY,KAAK,eAEhC,EAxHA,I,yKC9FW2tV,E,8IACX,SAAWA,GACPA,EAAwB/6N,IAAM,iCADlC,CAEG+6N,IAA4BA,EAA0B,KAClD,IAAMC,EAAc,CACvBC,iCAAiC,GAOxBC,EAAb,WACI,aAAc,oBACVl2X,KAAKm2X,WAAa,KAF1B,uCAII,SAAIC,EAAiBj3X,GACjBa,KAAKm2X,WAAa,CAAEC,kBAAiBj3X,UAL7C,iBAOI,SAAIk3X,GACA,OAAIr2X,KAAKm2X,YAAcn2X,KAAKm2X,WAAWC,kBAAoBC,EAEhDr2X,KAAKm2X,WAAWh3X,MAE3Ba,KAAKm2X,WAAa,KACX,UAbf,KAgBAD,EAAiCvgW,SAAW,IAAIugW,EASzC,IAAMI,EAAb,kDACI,WAAYtnX,EAAMygM,GAAU,2BACxB,gBACKA,SAAWA,EAChB,EAAK8mL,SAAW,EAAK7sX,UAAU,IAAI+K,KACnC,EAAKO,QAAU,EAAKuhX,SAAS5hX,MAC7B,EAAK6hX,QAAU,EAAK9sX,UAAU,IAAI+K,KAClC,EAAKS,OAAS,EAAKshX,QAAQ7hX,MAC3B,EAAK8hX,WAAa,EAAK/sX,UAAU,IAAI+K,KACrC,EAAK4wN,UAAY,EAAKoxJ,WAAW9hX,MACjC,EAAK+hX,SAAW,EAAKhtX,UAAU,IAAI+K,KACnC,EAAKs/R,QAAU,EAAK2iF,SAAS/hX,MAC7B,EAAKgiX,OAAS,EAAKjtX,UAAU,IAAI+K,KACjC,EAAKmiX,MAAQ,EAAKD,OAAOhiX,MACzB,EAAKkiX,SAAW,EAAKntX,UAAU,IAAI+K,KACnC,EAAKqiX,QAAU,EAAKD,SAASliX,MAC7B,EAAKoiX,QAAU,EAAKrtX,UAAU,IAAI+K,KAClC,EAAKuiX,OAAS,EAAKD,QAAQpiX,MAC3B,EAAKsiX,oBAAsB,EAAKvtX,UAAU,IAAI+K,KAC9C,EAAKyiX,mBAAqB,EAAKD,oBAAoBtiX,MACnD,EAAKwiX,qBAAuB,EAAKztX,UAAU,IAAI+K,KAC/C,EAAK2iX,oBAAsB,EAAKD,qBAAqBxiX,MACrD,EAAK0iX,kBAAoB,EAAK3tX,UAAU,IAAI+K,KAC5C,EAAK6iX,iBAAmB,EAAKD,kBAAkB1iX,MAC/C,EAAK4iX,0BAA4B,EAAK7tX,UAAU,IAAI+K,KACpD,EAAK+iX,yBAA2B,EAAKD,0BAA0B5iX,MAC/D,EAAKk9M,MAAQ7iN,EACb,EAAKyoX,UAAY,EAAK/tX,UAAU,IAAIguX,EAAgBjoL,IACpD,EAAKkoL,iBAAmB,EAAKjuX,UAAU,IAAI+kB,KAAiB,kBAAM,EAAKkoW,OAAO1hX,SAAQ,IACtF,EAAK2iX,wCAA0C,EAAKluX,UAAU,IAAI+kB,KAAiB,kBAAM,EAAKopW,yBAAyB,oBAAmB,IAC1I,EAAKC,eAAiB1oL,IAAct3D,MACpC,EAAKigP,yBAA2B,KAChC,EAAKF,yBAAyB,QAC9B,EAAKG,WAAY,EACjB,EAAKC,qBAAsB,EAC3B,EAAKC,aAAe,EACpB,IAAIC,EAAc,KAClB,EAAKzuX,UAAUgjK,gCAAkC+iC,EAAS7iM,QAAS,WAAW,SAACjM,IACzD,MAAdA,EAAE+Y,SACE,EAAKu+W,qBAAqC,IAAdt3X,EAAE+Y,UAElC/Y,EAAEwT,kBAEFxT,EAAEq4B,OAAO,IAGTr4B,EAAEsT,iBAENkkX,EAAcx3X,EACd,EAAK81X,WAAWxhX,KAAKtU,OAEzB,EAAK+I,UAAUgjK,gCAAkC+iC,EAAS7iM,QAAS,SAAS,SAACjM,GACzE,EAAK+1X,SAASzhX,KAAKtU,OAEvB,EAAK+I,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,oBAAoB,SAACjM,GAI5E,GAHIwuM,KACAzxL,QAAQ6oL,IAAR,qBAAkC5lM,IAElC,EAAKs3X,oBAAT,CAIA,GADA,EAAKA,qBAAsB,EACvB1xX,KACG,EAAKuxX,eAAelvS,iBAAmB,EAAKkvS,eAAezoL,cAC3D,EAAKyoL,eAAelvS,eAAiB,GACrC,EAAKkvS,eAAe91X,MAAMmnC,OAAO,EAAK2uV,eAAelvS,eAAiB,EAAG,KAAOjoF,EAAExB,KAGrF,GAFoBg5X,GAAeA,EAAYn/V,OAAO,OACzB,eAArBm/V,EAAYj1V,MAA8C,cAArBi1V,EAAYj1V,OACvCvvB,IAQd,OALIw7L,KACAzxL,QAAQ6oL,IAAR,8EAA2F5lM,GAE/F,EAAKm3X,eAAiB,IAAI1oL,IAAc,EAAK0oL,eAAe91X,MAAO,EAAK81X,eAAelvS,eAAiB,EAAG,EAAKkvS,eAAezoL,aAAc,EAAKyoL,eAAexoL,uBAAyB,IAAInvL,IAAS,EAAK23W,eAAexoL,uBAAuB/vL,WAAY,EAAKu4W,eAAexoL,uBAAuB9vL,OAAS,GAAK,KAAM,EAAKs4W,eAAevoL,2BACjV,EAAK0nL,oBAAoBhiX,KAAK,CAAEmjX,oBAAqB,IAIzDzkX,IAGA,EAAKsjX,oBAAoBhiX,KAAK,CAAEmjX,oBAAqB,EAAKN,eAAelvS,kBAG7E,EAAKyvS,0BAA0B,mBAAoBjpL,IAAct3D,OACjE,EAAKm/O,oBAAoBhiX,KAAK,CAAEmjX,mBAAoB,UAKxD,IAKME,EAAgC,WAClC,IAAMC,EAAW,EAAKT,eAChB73P,EAAWmvE,IAAcopL,iBAAiB,EAAKf,WACrD,MAAO,CAACx3P,EAAUmvE,IAAckpL,8BAA8BC,EAAUt4P,KAKtEw4P,EAAoB,SAACtvT,GACvB,IAAMovT,EAAW,EAAKT,eAChB73P,EAAWmvE,IAAcyrD,aAAa1xL,GAO5C,MAAO,CAAC82D,EANU,CACd92D,KAAM82D,EAASj+H,MACfsuM,mBAAoBioL,EAASlpL,aAAekpL,EAAS3vS,eACrD2nH,mBAAoB,EACpBC,cAAe,KA9GC,OAkHxB,EAAK9mM,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,qBAAqB,SAACjM,GAI7E,GAHIwuM,KACAzxL,QAAQ6oL,IAAR,sBAAmC5lM,GAEnCgT,IAAmB,CAKnB,MAA8B2kX,IAA9B,mBAAOr4P,EAAP,KAAiBy4P,EAAjB,KAIA,OAHA,EAAKZ,eAAiB73P,EACtB,EAAK82P,QAAQ9hX,KAAKyjX,QAClB,EAAKvB,qBAAqBliX,KAAKtU,GAGnC,MAA8B83X,EAAkB93X,EAAExB,MAAQ,IAA1D,mBAAO8gI,EAAP,KAAiBy4P,EAAjB,KACA,EAAKZ,eAAiB73P,EACtB,EAAK82P,QAAQ9hX,KAAKyjX,GAClB,EAAKvB,qBAAqBliX,KAAKtU,OAEnC,EAAK+I,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,kBAAkB,SAACjM,GAM1E,GALIwuM,KACAzxL,QAAQ6oL,IAAR,mBAAgC5lM,GAI/B,EAAKs3X,oBAAV,CAIA,GADA,EAAKA,qBAAsB,EACvBtkX,IAAmB,CAKnB,MAA8B2kX,IAA9B,mBAAOr4P,EAAP,KAAiBy4P,EAAjB,KAIA,OAHA,EAAKZ,eAAiB73P,EACtB,EAAK82P,QAAQ9hX,KAAKyjX,QAClB,EAAKrB,kBAAkBpiX,OAG3B,MAA8BwjX,EAAkB93X,EAAExB,MAAQ,IAA1D,mBAAO8gI,EAAP,KAAiBy4P,EAAjB,KACA,EAAKZ,eAAiB73P,EACtB,EAAK82P,QAAQ9hX,KAAKyjX,IAId/kX,KAAoBA,OACpB,EAAKmkX,eAAiB1oL,IAAcopL,iBAAiB,EAAKf,YAE9D,EAAKJ,kBAAkBpiX,YAE3B,EAAKvL,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,SAAS,WAIhE,GADA,EAAK6qX,UAAUkB,6BAA6B,yBACxC,EAAKV,oBAAT,CAGA,MAnFiC,SAAC5nL,GAClC,IAAMkoL,EAAW,EAAKT,eAChB73P,EAAWmvE,IAAcopL,iBAAiB,EAAKf,WACrD,MAAO,CAACx3P,EAAUmvE,IAAcwpL,YAAYL,EAAUt4P,EAAUowE,IAgFlCwoL,CAAmDtyX,KAAjF,mBAAO05H,EAAP,KAAiBy4P,EAAjB,KACqC,IAAjCA,EAAUpoL,oBAAsD,IAA1BooL,EAAUvvT,KAAKprE,QAAgB07F,IAAwBi/R,EAAUvvT,KAAKpnC,WAAW,MAI3H,EAAK+1V,eAAiB73P,EACI,IAAtB,EAAKi4P,aACkB,KAAnBQ,EAAUvvT,MAAgD,IAAjCuvT,EAAUpoL,oBACnC,EAAKymL,QAAQ9hX,KAAKyjX,IAIC,KAAnBA,EAAUvvT,MAAgD,IAAjCuvT,EAAUpoL,oBACnC,EAAKwoL,WAAWJ,EAAUvvT,KAAM,MAEpC,EAAK+uT,aAAe,SAI5B,EAAKxuX,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,OAAO,SAACjM,GAG/D,EAAK82X,UAAUkB,6BAA6B,sBAC5C,EAAKI,oCAAoCp4X,GACzC,EAAKg3X,iBAAiB/oW,eAE1B,EAAKllB,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,QAAQ,SAACjM,GAChE,EAAKo4X,oCAAoCp4X,OAE7C,EAAK+I,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,SAAS,SAACjM,GAIjE,GADA,EAAK82X,UAAUkB,6BAA6B,wBACxCK,EAAoBC,eAAet4X,GAAI,CACvC,MAAmCq4X,EAAoBE,YAAYv4X,GAAnE,mBAAOw4X,EAAP,KAAuBvqV,EAAvB,KACuB,KAAnBuqV,GACA,EAAKL,WAAWK,EAAgBvqV,QAIhC,EAAK6oV,UAAUvnL,sBAAwB,EAAKunL,UAAUtnL,mBAEtD,EAAKkoL,0BAA0B,QAASjpL,IAAct3D,OAE1D,EAAKogP,aAAe,MAG5B,EAAKxuX,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,SAAS,WAChE,IAAMwsX,EAAW,EAAKpB,UACtB,EAAKqB,cAAa,GACd1lX,MAAqBylX,GAAY,EAAKpB,WAGtC,EAAKJ,wCAAwChpW,eAGrD,EAAKllB,UAAUgjK,wBAA0B+iC,EAAS7iM,QAAS,QAAQ,WAC3D,EAAKqrX,sBAKL,EAAKA,qBAAsB,EAE3B,EAAKJ,yBAAyB,6BAE9B,EAAKR,kBAAkBpiX,QAE3B,EAAKokX,cAAa,OAEtB,EAAK3vX,UAAUgjK,wBAA0B+iC,EAAS7iM,QAASmpX,EAAwB/6N,KAAK,WAChFrnJ,KAAqB,EAAKskX,sBAI1B,EAAKA,qBAAsB,EAE3B,EAAKJ,yBAAyB,4BAE9B,EAAKR,kBAAkBpiX,YA5PP,EADhC,mEAiQI,WAAkC,WAkB1BqkX,EAAmC,EACvC,OAAO5sN,wBAA0BtiK,SAAU,mBAAmB,SAACzJ,GAC3D,GAAK,EAAKq3X,YAGN,EAAKC,qBAGJtkX,IAAL,CAIA,IAAMyuD,EAAMn6D,KAAKm6D,MACXm3T,EAASn3T,EAAMk3T,EAErB,GADAA,EAAmCl3T,IAC/Bm3T,EAAS,GAAb,CAKA,IAAMC,EAASp3T,EAAM,EAAKq1T,UAAUgC,+BAEpC,GADA,EAAKhC,UAAUiC,6BACXF,EAAS,MAKR,EAAK1B,eAAexoL,wBAA2B,EAAKwoL,eAAevoL,qBAAxE,CAIA,IAAMy2K,EAAW,EAAKyR,UAAUxtV,WAChC,GAAI,EAAK6tV,eAAe91X,QAAUgkX,EAAlC,CAIA,IAAM2T,EAAoB,EAAKlC,UAAUvnL,oBACnC0pL,EAAkB,EAAKnC,UAAUtnL,kBACvC,GAAI,EAAK2nL,eAAelvS,iBAAmB+wS,GAAqB,EAAK7B,eAAezoL,eAAiBuqL,EAArG,CAIA,IAAMC,EAA6B,EAAK/B,eAAegC,qBAAqBH,GACtEI,EAA4B,EAAKloK,MAAMmoK,oBAAoBH,EAA2B,GAAIA,EAA2B,GAAIA,EAA2B,IACpJI,EAA2B,EAAKnC,eAAegC,qBAAqBF,GACpEM,EAA0B,EAAKroK,MAAMmoK,oBAAoBC,EAAyB,GAAIA,EAAyB,GAAIA,EAAyB,IAC5IpwJ,EAAe,IAAI3gJ,IAAU6wS,EAA0Bx6W,WAAYw6W,EAA0Bv6W,OAAQ06W,EAAwB36W,WAAY26W,EAAwB16W,QACvK,EAAK+3W,0BAA0BtiX,KAAK40N,aAlUhD,qBAqUI,WACI,gEACI7pO,KAAK+3X,2BACL/3X,KAAK+3X,yBAAyB3/W,UAC9BpY,KAAK+3X,yBAA2B,QAzU5C,2BA4UI,WAGI/3X,KAAKq5X,cAAa,GAElBr5X,KAAKm6X,sBAjVb,uBAmVI,WACI,OAAOn6X,KAAKg4X,YApVpB,+BAsVI,WACI,IAAM1oX,EAAao9J,gBAAkB1sK,KAAKyvM,SAAS7iM,SAC/C0C,EACAtP,KAAKq5X,aAAa/pX,EAAWD,gBAAkBrP,KAAKyvM,SAAS7iM,SAExD8/J,UAAY1sK,KAAKyvM,SAAS7iM,SAC/B5M,KAAKq5X,aAAajvX,SAASiF,gBAAkBrP,KAAKyvM,SAAS7iM,SAG3D5M,KAAKq5X,cAAa,KA/V9B,0BAkWI,SAAae,GACLp6X,KAAKg4X,YAAcoC,IAIvBp6X,KAAKg4X,UAAYoC,EACbp6X,KAAK+3X,2BACL/3X,KAAK+3X,yBAAyB3/W,UAC9BpY,KAAK+3X,yBAA2B,MAEhC/3X,KAAKg4X,YACLh4X,KAAK+3X,yBAA2B/3X,KAAKq6X,mCAErCr6X,KAAKg4X,WACLh4X,KAAK63X,yBAAyB,aAE9B73X,KAAKg4X,UACLh4X,KAAKu2X,SAASthX,OAGdjV,KAAKw2X,QAAQvhX,UAtXzB,uCAyXI,SAA0Bu6L,EAAQ8qL,GACzBt6X,KAAKg4X,YACNsC,EAAgBA,EAAcC,qBAElCD,EAAcE,gBAAgBhrL,EAAQxvM,KAAKy3X,UAAWz3X,KAAKg4X,WAC3Dh4X,KAAK83X,eAAiBwC,IA9X9B,sCAgYI,SAAyB9qL,GACjBxvM,KAAKi4X,qBAITj4X,KAAKq4X,0BAA0B7oL,EAAQxvM,KAAK6xN,MAAM4oK,uBAAuBz6X,KAAK83X,mBArYtF,iDAuYI,SAAoCn3X,GAChC,IAAM+5X,EAAa16X,KAAK6xN,MAAM8oK,cAAc3B,EAAoBC,eAAet4X,IACzEi6X,EAAiB,CACnB13F,QAAS,EACT23F,qBAAsBH,EAAWG,qBACjCtjI,gBAAiBmjI,EAAWnjI,gBAC5BtoP,KAAMyrX,EAAWzrX,MAErBinX,EAAiCvgW,SAAS6R,IAGzC7zB,IAAoB+mX,EAAWvxT,KAAKrqE,QAAQ,QAAS,MAAQ47X,EAAWvxT,KAAOyxT,GAC3E5B,EAAoBC,eAAet4X,GAMxCq4X,EAAoB8B,YAAYn6X,EAAG+5X,EAAWvxT,KAAMuxT,EAAW96V,KAAMg7V,GAHjE56X,KAAKq4X,0BAA0B,cAAejpL,IAAcyrD,aAAa6/H,EAAWvxT,SAtZhG,wBA2ZI,SAAWA,EAAMv6B,GACRA,IAEDA,EAAWsnV,EAAiCvgW,SAASlD,IAAI02C,IAE7DnpE,KAAK62X,SAAS5hX,KAAK,CACfk0D,KAAMA,EACNv6B,SAAUA,QAlatB,GAAmC5kC,KAsa7BgvX,E,mGACF,SAAsBr4X,GAClB,QAAIA,EAAEo6X,gB,yBAKV,SAAmBp6X,GACf,GAAIA,EAAEo6X,cAAe,CACjBp6X,EAAEsT,iBACF,IAAMk1D,EAAOxoE,EAAEo6X,cAAcC,QAAQx9I,IAAMr0K,MACvCv6B,EAAW,KACTqsV,EAAct6X,EAAEo6X,cAAcC,QAAQ,sBAC5C,GAA2B,kBAAhBC,EACP,IAE6B,KADzBrsV,EAAWnI,KAAKC,MAAMu0V,IACT/3F,UACTt0P,EAAW,MAGnB,MAAOjzB,IAIX,MAAO,CAACwtD,EAAMv6B,GAElB,MAAM,IAAI1jC,MAAM,4D,yBAEpB,SAAmBvK,EAAGwoE,EAAMvpC,EAAMgP,GAC9B,GAAIjuC,EAAEo6X,cAOF,OANAp6X,EAAEo6X,cAAc56I,QAAQ3C,IAAMr0K,KAAMA,GAChB,kBAATvpC,GACPj/B,EAAEo6X,cAAc56I,QAAQ,YAAavgN,GAEzCj/B,EAAEo6X,cAAc56I,QAAQ,qBAAsB15M,KAAK0xH,UAAUvpH,SAC7DjuC,EAAEsT,iBAGN,MAAM,IAAI/I,MAAM,8D,KAGlBwsX,E,kDACF,WAAYD,GAAW,kCACnB,gBACKntV,QAAUmtV,EACf,EAAKyD,2BAA6B,EAHf,E,gEAKvB,SAA6B1rL,GACzBxvM,KAAKk7X,2BAA6BjzX,KAAKm6D,Q,0CAE3C,WACI,OAAOpiE,KAAKk7X,6B,sCAEhB,WACIl7X,KAAKk7X,2BAA6B,I,sBAEtC,WAEI,OAAOl7X,KAAKsqC,QAAQ19B,QAAQ5K,Q,sBAEhC,SAASwtM,EAAQxtM,GACb,IAAMytM,EAAWzvM,KAAKsqC,QAAQ19B,QAC1B6iM,EAASztM,QAAUA,IAKvBhC,KAAK24X,6BAA6B,YAClClpL,EAASztM,MAAQA,K,+BAErB,WACI,MAAmD,aAA5ChC,KAAKsqC,QAAQ19B,QAAQuuX,mBAAoCn7X,KAAKsqC,QAAQ19B,QAAQyiM,aAAervM,KAAKsqC,QAAQ19B,QAAQg8E,iB,6BAE7H,WACI,MAAmD,aAA5C5oF,KAAKsqC,QAAQ19B,QAAQuuX,mBAAoCn7X,KAAKsqC,QAAQ19B,QAAQg8E,eAAiB5oF,KAAKsqC,QAAQ19B,QAAQyiM,e,+BAE/H,SAAkBG,EAAQ5mH,EAAgBymH,GACtC,IAAMI,EAAWzvM,KAAKsqC,QAAQ19B,QAExB0C,EAAao9J,gBAAkB+iC,GAO/B2rL,GANF9rX,EACgBA,EAAWD,cAGXjF,SAASiF,iBAEeogM,EACtCoB,EAAwBpB,EAAS7mH,eACjCkoH,EAAsBrB,EAASJ,aACrC,GAAI+rL,GAAoBvqL,IAA0BjoH,GAAkBkoH,IAAwBzB,EAGpF17L,KAAqBhJ,OAAO2K,SAAW3K,QACvC8kM,EAASzyK,YAJjB,CASA,GAAIo+V,EAOA,OALAp7X,KAAK24X,6BAA6B,qBAClClpL,EAASC,kBAAkB9mH,EAAgBymH,QACvC17L,KAAqBhJ,OAAO2K,SAAW3K,QACvC8kM,EAASzyK,SAMjB,IACI,IAAMsgM,EAAc5wD,uBAAyB+iC,GAC7CzvM,KAAK24X,6BAA6B,qBAClClpL,EAASzyK,QACTyyK,EAASC,kBAAkB9mH,EAAgBymH,GAC3C3iC,0BAA4B+iC,EAAU6tB,GAE1C,MAAO38N,U,GA3EeqJ,M,wHC5fjBqxX,EAAb,WACI,WAAY7rX,EAAW8rX,GAAc,oBACjCt7X,KAAKs7X,aAAeA,EACpBt7X,KAAKmpE,KAAO,GACZnpE,KAAKiyB,MAAQ,GACbjyB,KAAKu7X,WAAa,GAClBv7X,KAAKw7X,eAAgB,EACrBx7X,KAAK4M,QAAUxC,SAASsF,cAAc,QACtC1P,KAAK4M,QAAQ4J,UAAY,2BACzBhH,EAAUI,YAAY5P,KAAK4M,SATnC,yCAWI,WACI,OAAO5M,KAAK4M,UAZpB,iBAcI,SAAIu8D,GAAmD,IAA7CoyT,EAA6C,uDAAhC,GAAItpW,EAA4B,uDAApB,GAAIwpW,EAAgB,uCAC9CtyT,IACDA,EAAO,IAEPsyT,IAEAtyT,EAAOkyT,EAAiBI,eAAetyT,EAAMoyT,IAE7Cv7X,KAAKw7X,eAAiBx7X,KAAKmpE,OAASA,GAAQnpE,KAAKiyB,QAAUA,GAAS0nJ,IAAe35K,KAAKu7X,WAAYA,KAGxGv7X,KAAKmpE,KAAOA,EACZnpE,KAAKiyB,MAAQA,EACbjyB,KAAKu7X,WAAaA,EAClBv7X,KAAKoqN,YA5Bb,oBA8BI,WACI,IADK,EACC70M,EAAW,GACbo9B,EAAM,EAFL,cAGmB3yC,KAAKu7X,YAHxB,IAGL,2BAAyC,KAA9Bt6L,EAA8B,QACrC,GAAIA,EAAU5gL,MAAQ4gL,EAAU7gL,MAAhC,CAGA,GAAIuyB,EAAMsuJ,EAAU7gL,MAAO,CACvB,IAAMigB,EAAYrgC,KAAKmpE,KAAK9oC,UAAUsS,EAAKsuJ,EAAU7gL,OACrD7K,EAAShS,KAAKmpK,IAAA,MAAAA,EAAG,CAAG,YAAQ7yJ,GAAX,mBAAyB7Z,KAAKs7X,aAAe5xB,YAAqBrpU,GAAa,CAACA,OACjGsS,EAAMsuJ,EAAU5gL,IAEpB,IAAMggB,EAAYrgC,KAAKmpE,KAAK9oC,UAAU4gK,EAAU7gL,MAAO6gL,EAAU5gL,KAC3D9V,EAAUmiK,IAAA,MAAAA,EAAG,CAAG,sBAAkB7yJ,GAArB,mBAAmC7Z,KAAKs7X,aAAe5xB,YAAqBrpU,GAAa,CAACA,MACzG4gK,EAAUy6L,cACVnxX,EAAQsE,UAAU2K,IAAIynL,EAAUy6L,cAEpCnmX,EAAShS,KAAKgH,GACdooC,EAAMsuJ,EAAU5gL,MAlBf,8BAoBL,GAAIsyB,EAAM3yC,KAAKmpE,KAAKprE,OAAQ,CACxB,IAAMsiC,EAAYrgC,KAAKmpE,KAAK9oC,UAAUsS,GACtCp9B,EAAShS,KAAKmpK,IAAA,MAAAA,EAAG,CAAG,YAAQ7yJ,GAAX,mBAAyB7Z,KAAKs7X,aAAe5xB,YAAqBrpU,GAAa,CAACA,OAErGqsI,QAAA,MAAAA,EAAG,CAAO1sK,KAAK4M,SAAZ,OAAwB2I,IACvBvV,KAAKiyB,MACLjyB,KAAK4M,QAAQqlB,MAAQjyB,KAAKiyB,MAG1BjyB,KAAK4M,QAAQuK,gBAAgB,SAEjCnX,KAAKw7X,eAAgB,KA7D7B,6BA+DI,SAAsBryT,EAAMoyT,GACxB,IAAII,EAAQ,EACR3/L,EAAQ,EACZ,OAAO7yH,EAAKrqE,QAAQ,eAAe,SAACC,EAAOqhC,GACvC47J,EAAkB,SAAVj9L,GAAoB,EAAI,EAChCqhC,GAAUu7V,EAFwC,oBAG1BJ,GAH0B,IAGlD,2BAAoC,KAAzBt6L,EAAyB,QAC5BA,EAAU5gL,KAAO+f,IAGjB6gK,EAAU7gL,OAASggB,IACnB6gK,EAAU7gL,OAAS47K,GAEnBiF,EAAU5gL,KAAO+f,IACjB6gK,EAAU5gL,KAAO27K,KAXyB,8BAelD,OADA2/L,GAAS3/L,EACF,gBAjFnB,M,+GCAI,EACF,SAAF,KACI,IAAJ,OACA,OACA,kCACA,+BACI,EAAJ,WACI,EAAJ,qBACM,OAAN,GAEI,EAAJ,mBACM,OAAN,GAEI,EAAJ,oBACM,EAAN,GAEI,EAAJ,+BACA,IAEQ,EAAR,GAEM,IAAN,wCACM,OAAN,IAAM,CAAN,4BAAQ,OAAR,oCACQ,GAAR,MACU,EAAV,WACU,IAIE,EAAZ,WACA,GAEc,EAAd,iBAGY,IAAZ,cACY,EAAZ,sBAEA,SACY,IAAZ,eACA,MAGc,EAAd,uIAEA,OAGc,EAAd,4BAIA,IACU,EAAV,WAGU,EAAV,0BAEA,WAAQ,MAAR,CAAU,KAAV,gBCxDA,SAAS4/L,EAAkBC,EAASC,GAClC,IAAF,KACE,GAAF,cAGI,IADA,IAAJ,OACA,oBACM,IAAN,OACM,GAAN,oCAEQ,IAAR,aACQ,EAAR,QACA,GAEU,EAAV,WAEQ,EAAR,GAIE,OAAF,qBAwCA,IAAI,EAOF,SAAF,WACI,IAAJ,OACA,OAEA,WACA,4BAEQ,EApDR,SAAyBhrG,EAAOgrG,EAASC,GACvC,IAAF,KACA,KACE,GAAF,EACI,KAAJ,IACM,IAAN,iBACA,YACQ,GAAR,EACQ,EAAR,SAEM,EAAN,YAME,OAHF,GACI,EAAJ,QAEA,OAoCA,uBAIA,EACU,EAvCV,SAA0BC,EAAYF,EAASC,GAC7C,IAAF,IACA,KAgBE,OAfF,OACI,EAAJ,GACI,OAAJ,IAAI,CAAJ,gBACA,YACQ,GAAR,EACQ,EAAR,aAIA,QACA,IACM,EAAN,IAEI,EAAJ,SAEA,OAqBA,QAEA,iBAEU,EAAV,SAII,EAAJ,gBACM,OAAN,GAEI,EAAJ,mBACM,OAAN,kBAEI,EAAJ,kBACM,OAAN,GAEI,EAAJ,wBAEM,IAAN,EACM,QAFN,QAAQ,EAAR,IAEA,GACQ,IAAR,oBACA,OACU,EAAV,MAGM,OAAN,MAEI,EAAJ,0BAEM,IAAN,OADA,QAAQ,GAAR,GAEM,IAAN,sBAOM,OANN,sBACQ,EAAR,KAEA,wBACQ,EAAR,MAEA,oBAEI,EAAJ,mBACM,OAAN,SAEI,EAAJ,mBACM,OAAN,GAEI,EAAJ,oBACM,EAAN,GAEI,EAAJ,wBACM,IAAN,IACA,IAEQ,EAAR,YACQ,EAAR,wBAGI,EAAJ,wBAEM,YADN,QAAQ,EAAR,MACA,qB,6BClJA,2OAIA,SAASltW,EAAQzQ,EAAQ0Q,GAAkB,IAAIpY,EAAOtY,OAAOsY,KAAK0H,GAAS,GAAIhgB,OAAOyC,sBAAuB,CAAE,IAAIkuB,EAAU3wB,OAAOyC,sBAAsBud,GAAa0Q,IAAkBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7wB,OAAOgD,yBAAyBgd,EAAQ6Q,GAAKhxB,eAAkByY,EAAKnT,KAAK9C,MAAMiW,EAAMqY,GAAY,OAAOrY,EAElV,SAASulX,EAAcr+X,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAI0C,UAAUzC,OAAQD,IAAK,CAAE,IAAIqxB,EAAyB,MAAhB3uB,UAAU1C,GAAa0C,UAAU1C,GAAK,GAAQA,EAAI,EAAK+wB,EAAQzwB,OAAO+wB,IAAS,GAAMxY,SAAQ,SAAUrY,GAAOgqG,IAAgB1qG,EAAQU,EAAK6wB,EAAO7wB,OAAsBF,OAAOgxB,0BAA6BhxB,OAAOixB,iBAAiBzxB,EAAQQ,OAAOgxB,0BAA0BD,IAAmBN,EAAQzwB,OAAO+wB,IAASxY,SAAQ,SAAUrY,GAAOF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOgD,yBAAyB+tB,EAAQ7wB,OAAe,OAAOV,EAG7gB,IASIs+X,EATAzkN,EAAiB,CACnB26L,SAAU,kBACV+pB,cAAe,GACfC,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClDC,aAAa,GAGJC,EAnBX,OAmByB/rM,EAAMC,gBAKxB,SAAS+rM,IACd,OAAOjlN,EAEF,IAAIklN,EAAmB,WAC5B,SAASA,IACPp/X,IAAgByC,KAAM28X,GAEtB38X,KAAK48X,eAAiB,GAmBxB,OAhBAr+X,IAAao+X,EAAkB,CAAC,CAC9Br+X,IAAK,oBACL0D,MAAO,SAA2B66X,GAChC,IAAIviJ,EAAQt6O,KAEZ68X,EAAWlmX,SAAQ,SAAU86V,GACtBn3H,EAAMsiJ,eAAenrB,KAAKn3H,EAAMsiJ,eAAenrB,IAAM,QAG7D,CACDnzW,IAAK,oBACL0D,MAAO,WACL,OAAO5D,OAAOsY,KAAK1W,KAAK48X,oBAIrBD,EAvBqB,GA4BvB,SAASG,IACd,OAAOZ,EAEF,IAAIa,EAAmB,CAC5B53X,KAAM,WACN63X,KAAM,SAAcx/X,IAxCf,WACL,IAAI6H,EAAU7E,UAAUzC,OAAS,QAAsB8b,IAAjBrZ,UAAU,GAAmBA,UAAU,GAAK,GAClFi3K,EAAiBwkN,EAAcA,EAAc,GAAIxkN,GAAiBpyK,GAuChE43X,CAAYz/X,EAAS6H,QAAQ63X,OAT1B,SAAiB1/X,GACtB0+X,EAAe1+X,EASb2/X,CAAQ3/X,M,6BC9DZ,oZA6BM,SAAU4/X,EAAc7mX,GAC5B,MAAO,CAAE8mX,MAAOv9X,OAAOyW,IAGnB,SAAU+mX,EAAY1xX,GAC1B,OAAOs/E,QAAQt/E,GAAsB,kBAARA,GAAyC,kBAAdA,EAAIyxX,OAmBxD,SAAUE,EAAev7X,GAC7B,OACE,YAAgBA,IACiB,aAAhCA,EAAuBitC,MACxBxvC,MAAM+b,QAASxZ,EAAuBm6L,aAwCpC,SAAUqhM,EACdC,EACA7mX,EACA5U,EACA07X,GAEA,GAlCF,SAAoB17X,GAClB,MAAsB,aAAfA,EAAMitC,KAiCT0uV,CAAW37X,IA9BjB,SAAsBA,GACpB,MAAsB,eAAfA,EAAMitC,KA6BY2uV,CAAa57X,GACpCy7X,EAAO7mX,EAAK5U,OAAS+qH,OAAO/qH,EAAMA,YAC7B,GAxCT,SAAwBA,GACtB,MAAsB,iBAAfA,EAAMitC,KAuCF4uV,CAAe77X,IA5C5B,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMitC,KA2CuB6uV,CAAc97X,GAChDy7X,EAAO7mX,EAAK5U,OAASA,EAAMA,WACtB,GA1BT,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMitC,KAyBF8uV,CAAc/7X,GAAQ,CAC/B,IAAM,EAAe,GACrBA,EAAMg8X,OAAO57W,KAAI,SAAAxW,GACf,OAAA4xX,EAA4B,EAAc5xX,EAAIgL,KAAMhL,EAAI5J,MAAO07X,MAEjED,EAAO7mX,EAAK5U,OAAS,OAChB,GApCT,SAAoBA,GAClB,MAAsB,aAAfA,EAAMitC,KAmCFgvV,CAAWj8X,GAAQ,CAC5B,IAAMk8X,GAAiBR,GAAc,IAAY17X,EAAM4U,KAAK5U,OAC5Dy7X,EAAO7mX,EAAK5U,OAASk8X,OAChB,GA/BT,SAAqBl8X,GACnB,MAAsB,cAAfA,EAAMitC,KA8BFkvV,CAAYn8X,GACrBy7X,EAAO7mX,EAAK5U,OAASA,EAAMwb,OAAO4E,KAAI,SAAAg8W,GACpC,IAAMC,EAAoB,GAO1B,OANAb,EACEa,EACAznX,EACAwnX,EACAV,GAEMW,EAA0BznX,EAAK5U,eAEpC,GAtCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMitC,KAqCFqvV,CAAYt8X,GACrBy7X,EAAO7mX,EAAK5U,OAAUA,EAAwBA,UACzC,KApCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMitC,KAmCFsvV,CAAYv8X,GAGrB,MAAM,QAAI,QACR,wBAAwB,OAAU,uBAAe,OAAkB,OAAG,KAAtE,4FAGA,YANFy7X,EAAO7mX,EAAK5U,OAAS,MAUnB,SAAUw8X,EACdC,EACAf,GAEA,IAAIgB,EAAqB,KACrBD,EAAME,aACRD,EAAgB,GAChBD,EAAME,WAAWhoX,SAAQ,SAAAioX,GACvBF,EAAcE,EAAUhoX,KAAK5U,OAAS,GAElC48X,EAAUp+X,WACZo+X,EAAUp+X,UAAUmW,SAAQ,SAAC,G,IAAEC,EAAI,OAAE5U,EAAK,QACxC,OAAAw7X,EACEkB,EAAcE,EAAUhoX,KAAK5U,OAC7B4U,EACA5U,EACA07X,UAOV,IAAID,EAAc,KAQlB,OAPIgB,EAAMj+X,WAAai+X,EAAMj+X,UAAUzC,SACrC0/X,EAAS,GACTgB,EAAMj+X,UAAUmW,SAAQ,SAAC,G,IAAEC,EAAI,OAAE5U,EAAK,QACpC,OAAAw7X,EAA4BC,EAAQ7mX,EAAM5U,EAAO07X,OAI9CmB,EAAgBJ,EAAM7nX,KAAK5U,MAAOy7X,EAAQiB,GASnD,IAAMI,EAA6B,CACjC,aACA,UACA,OACA,SACA,OACA,UAGWD,EAAkBzgY,OAAOgC,QAAO,SAC3C2+X,EACAlgY,EACA8/X,GAEA,GACE9/X,GACA8/X,GACAA,EAAU,YACVA,EAAU,WAAV,IACA,CACA,GACEA,EAAU,WAAV,QACCA,EAAU,WAAV,OAAgD5gY,OAAS,EAC1D,CACA,IAAMihY,EAAaL,EAAU,WAAV,OACdA,EAAU,WAAV,OACD,GACJK,EAAWl2X,OAEX,IAAM,EAAe,GAKrB,OAJAk2X,EAAWroX,SAAQ,SAAArY,GACjB,EAAaA,GAAOO,EAAKP,MAGpB,UAAGqgY,EAAU,WAAV,IAA+B,YAAIxmO,EAC3C,GACD,KAED,OAAOwmO,EAAU,WAAV,IAIX,IAAIM,EAA4BF,EAEhC,GAAIlgY,EAAM,CAIR,IAAMqgY,EAA0B/mO,EAAUt5J,GAC1CogY,GAAqB,WAAIC,EAAe,KAc1C,OAXIP,GACFvgY,OAAOsY,KAAKioX,GAAYhoX,SAAQ,SAAArY,IACS,IAAnCwgY,EAAiBl+X,QAAQtC,KACzBqgY,EAAWrgY,IAAQF,OAAOsY,KAAKioX,EAAWrgY,IAAMP,OAClDkhY,GAAqB,WAAI3gY,EAAG,YAAI65J,EAAUwmO,EAAWrgY,IAAK,KAE1D2gY,GAAqB,WAAI3gY,OAKxB2gY,IACN,CACDE,aAAA,SAAa7+X,GACX,IAAMqvK,EAAWxX,EAEjB,OADAA,EAAY73J,EACLqvK,KAMPxX,EAAY,SAA0Bn2J,GACxC,OAAOykC,KAAK0xH,UAAUn2J,EAAOo9X,IAG/B,SAASA,EAAkBlyM,EAAclrL,GAOvC,OANI,YAAgBA,KAAWvC,MAAM+b,QAAQxZ,KAC3CA,EAAQ5D,OAAOsY,KAAK1U,GAAO8G,OAAO+uB,QAAO,SAAC8rD,EAAMrlF,GAE9C,OADAqlF,EAAKrlF,GAAO0D,EAAM1D,GACXqlF,IACN,KAEE3hF,EAGH,SAAUq9X,EACdZ,EACAf,GAEA,GAAIe,EAAMj+X,WAAai+X,EAAMj+X,UAAUzC,OAAQ,CAC7C,IAAM,EAAiB,GAIvB,OAHA0gY,EAAMj+X,UAAUmW,SAAQ,SAAC,G,IAAEC,EAAI,OAAE5U,EAAK,QACpC,OAAAw7X,EAA4B,EAAQ5mX,EAAM5U,EAAO07X,MAE5C,EAET,OAAO,KAGH,SAAU4B,EAAuBb,GACrC,OAAOA,EAAM3qW,MAAQ2qW,EAAM3qW,MAAM9xB,MAAQy8X,EAAM7nX,KAAK5U,MAGhD,SAAUu9X,EACdn9X,EACAo9X,EACAC,GAEA,GAAiC,kBAAtBr9X,EAAOs9X,WAChB,OAAOt9X,EAAOs9X,WAGhB,IAAwB,UAAAF,EAAat9P,WAAb,eAAyB,CAA5C,IAAM/iD,EAAS,KAClB,GAAIwgT,EAAQxgT,IACV,GAA6B,eAAzBA,EAAUvoE,KAAK5U,MACjB,OAAOI,EAAOk9X,EAAuBngT,QAElC,CACL,IAAMygT,EAAWL,EACfn9X,EACA,YAAyB+8E,EAAWsgT,GAAcD,aAClDC,GAEF,GAAwB,kBAAbG,EACT,OAAOA,IAMT,SAAUD,EAAQxgT,GACtB,MAA0B,UAAnBA,EAAUlwC,KAGb,SAAU4wV,EACd1gT,GAEA,MAA0B,mBAAnBA,EAAUlwC,O,mLCrTnB,SAAS6wV,EAAoBrrW,GACzB,OAAOA,EAAShc,WAEb,IAAMsnX,EAAb,WACI,WAAYC,EAAiBC,EAAgBC,EAAWC,EAAUz6P,EAAmB06P,EAAkBn6Q,GAAS,oBAC5GjmH,KAAKggY,gBAAkBA,EACvBhgY,KAAKigY,eAAiBA,EACtBjgY,KAAKkgY,UAAYA,EACjBlgY,KAAKmgY,SAAWA,EAChBngY,KAAK0lI,kBAAoBA,EACzB1lI,KAAKogY,iBAAmBA,EACxBpgY,KAAKimH,QAAUA,EARvB,0CAeI,SAAOnxF,EAAOurW,EAAaF,EAAUF,EAAgBG,GAC7CC,EAAYtiY,OAAS,IACrBiC,KAAKimH,QAAUq6Q,YAA+BtgY,KAAKimH,QAASo6Q,IAEhErgY,KAAKmgY,SAAWA,EAChBngY,KAAKigY,eAAiBA,EACtBjgY,KAAKogY,iBAAmBA,IArBhC,uBA2DI,WACI,IADQ,EACJG,EAAiB,GAIfR,EAAyBS,qBAAqBxgY,KAAK0lI,mBACnDq6P,EAAyBS,qBAAqBxgY,KAAKogY,kBACnD,EAPE,cASapgY,KAAKimH,SATlB,IASR,2BAAmC,CAC/Bs6Q,GAD+B,QACPE,aAVpB,8BAYR,IAAMnhY,EAAI,IAAI08D,WAAWukU,GACrBngW,EAAS,EACb5G,IAAqBl6B,EAAGU,KAAKggY,gBAAiB5/V,GAC9CA,GAAU,EACV5G,IAAqBl6B,EAAGU,KAAKigY,eAAgB7/V,GAC7CA,GAAU,EACV5G,IAAkBl6B,EAAGU,KAAKkgY,UAAW9/V,GACrCA,GAAU,EACV5G,IAAkBl6B,EAAGU,KAAKmgY,SAAU//V,GACpCA,GAAU,EACVA,EAAS2/V,EAAyBW,iBAAiBphY,EAAGU,KAAK0lI,kBAAmBtlG,GAC9EA,EAAS2/V,EAAyBW,iBAAiBphY,EAAGU,KAAKogY,iBAAkBhgW,GAC7E5G,IAAqBl6B,EAAGU,KAAKimH,QAAQloH,OAAQqiC,GAC7CA,GAAU,EAzBF,oBA0BapgC,KAAKimH,SA1BlB,IA0BR,2BAAmC,CAC/B7lF,EAD+B,QACfugW,MAAMrhY,EAAG8gC,IA3BrB,8BA6BR,OAAO9gC,EAAEk6B,UAxFjB,qBAUI,SAAc1E,EAAO4wG,GACjB,IAAMk7P,EAAuB9rW,EAAM+rW,0BAC7BrtR,EAAMstR,EAAYhsW,GACxB,OAAO,IAAIirW,EAAyBa,EAAsBA,EAAsBptR,EAAKA,EAAKkyB,EAAmBA,EAAmB,MAbxI,kCAuBI,SAA4BxD,GACxB,OAAO,EAAI,IAASA,EAAaA,EAAWnkI,OAAS,KAxB7D,8BA0BI,SAAwBuB,EAAG4iI,EAAY9hG,GAGnC,GAFA5G,IAAqBl6B,EAAI4iI,EAAaA,EAAWnkI,OAAS,EAAIqiC,GAC9DA,GAAU,EACN8hG,EAAY,qBACYA,GADZ,IACZ,2BAAoC,KAAzB/iD,EAAyB,QAChC3lD,IAAqBl6B,EAAG6/E,EAAU4K,yBAA0B3pD,GAC5DA,GAAU,EACV5G,IAAqBl6B,EAAG6/E,EAAU6K,qBAAsB5pD,GACxDA,GAAU,EACV5G,IAAqBl6B,EAAG6/E,EAAU8K,mBAAoB7pD,GACtDA,GAAU,EACV5G,IAAqBl6B,EAAG6/E,EAAU+K,eAAgB9pD,GAClDA,GAAU,GATF,+BAYhB,OAAOA,IAzCf,6BA2CI,SAAuB9gC,EAAG8gC,EAAQitN,GAC9B,IAAM1tI,EAAQnmF,IAAoBl6B,EAAG8gC,GACrCA,GAAU,EACV,IAAK,IAAItiC,EAAI,EAAGA,EAAI6hH,EAAO7hH,IAAK,CAC5B,IAAMisF,EAA2BvwD,IAAoBl6B,EAAG8gC,GACxDA,GAAU,EACV,IAAM4pD,EAAuBxwD,IAAoBl6B,EAAG8gC,GACpDA,GAAU,EACV,IAAM6pD,EAAqBzwD,IAAoBl6B,EAAG8gC,GAClDA,GAAU,EACV,IAAM8pD,EAAiB1wD,IAAoBl6B,EAAG8gC,GAC9CA,GAAU,EACVitN,EAAK9pP,KAAK,IAAI2lF,IAAUa,EAA0BC,EAAsBC,EAAoBC,IAEhG,OAAO9pD,IAzDf,yBA0FI,SAAmBjR,GACf,IAAM7vB,EAAI,IAAI08D,WAAW7sC,GACrBiR,EAAS,EACP4/V,EAAkBxmW,IAAoBl6B,EAAG8gC,GAC/CA,GAAU,EACV,IAAM6/V,EAAiBzmW,IAAoBl6B,EAAG8gC,GAC9CA,GAAU,EACV,IAAM8/V,EAAY1mW,IAAiBl6B,EAAG8gC,GACtCA,GAAU,EACV,IAAM+/V,EAAW3mW,IAAiBl6B,EAAG8gC,GACrCA,GAAU,EACV,IAAMslG,EAAoB,GAC1BtlG,EAAS2/V,EAAyBgB,gBAAgBzhY,EAAG8gC,EAAQslG,GAC7D,IAAM06P,EAAmB,GACzBhgW,EAAS2/V,EAAyBgB,gBAAgBzhY,EAAG8gC,EAAQggW,GAC7D,IAAMY,EAAcxnW,IAAoBl6B,EAAG8gC,GAC3CA,GAAU,EAEV,IADA,IAAM6lF,EAAU,GACPnoH,EAAI,EAAGA,EAAIkjY,EAAaljY,IAC7BsiC,EAASsgF,IAAWkQ,KAAKtxH,EAAG8gC,EAAQ6lF,GAExC,OAAO,IAAI85Q,EAAyBC,EAAiBC,EAAgBC,EAAWC,EAAUz6P,EAAmB06P,EAAkBn6Q,OA/GvI,KAkHag7Q,EAAb,WACI,WAAYnsW,EAAO4wG,GAAmB,oBAClC1lI,KAAK80B,MAAQA,EACb90B,KAAKwmC,MAAQu5V,EAAyB7/X,OAAO40B,EAAO4wG,GAH5D,sCAKI,WACI,OAAO,IANf,oBAQI,WACI,OAAI/wG,IAAIC,MAAM50B,KAAK80B,OACR90B,KAAK80B,MAET90B,KAAK80B,MAAMxc,MAZ1B,iBAcI,WACI,OAAOwK,IAAa,OAAQ,YAfpC,sBAiBI,WAEI,OADc9iB,KAAKwmC,iBAAiBu5V,EAA2B//X,KAAKwmC,MAAQu5V,EAAyBmB,YAAYlhY,KAAKwmC,QAC1Gy/E,QAAQ7jG,KAAI,SAAA4jF,GAAM,OAAIA,EAAOvtF,cAAYkE,KAAK,QAnBlE,6BAqBI,SAAgB8X,GAEZ,OADaE,IAAIC,MAAM50B,KAAK80B,OAAS90B,KAAK80B,MAAQ90B,KAAK80B,MAAMxc,KACjDG,aAAegc,EAAShc,aAvB5C,sBAyBI,SAASqc,GACL90B,KAAK80B,MAAQA,IA1BrB,uBA4BI,SAAUA,GACN,OAAQ90B,KAAK80B,QAAUA,GAAS90B,KAAKwmC,iBAAiBu5V,IA7B9D,oBA+BI,SAAOjrW,EAAOurW,EAAaF,EAAUF,EAAgBG,GAC7CpgY,KAAKwmC,iBAAiBu5V,GACtB//X,KAAKwmC,MAAMnxB,OAAOyf,EAAOurW,EAAaF,EAAUF,EAAgBG,KAjC5E,mBAoCI,WACQpgY,KAAKwmC,iBAAiBu5V,IACtB//X,KAAKwmC,MAAQxmC,KAAKwmC,MAAM0E,eAtCpC,kBAyCI,WACUlrC,KAAKwmC,iBAAiBu5V,IACxB//X,KAAKwmC,MAAQu5V,EAAyBmB,YAAYlhY,KAAKwmC,UA3CnE,kBA8CI,WACI,GAAI7R,IAAIC,MAAM50B,KAAK80B,OAEf,MAAM,IAAI5pB,MAAJ,uCAENlL,KAAKwmC,iBAAiBu5V,IACtB//X,KAAKwmC,MAAQxmC,KAAKwmC,MAAM0E,aAE5B,IAAM/rC,EAAO4gY,EAAyBmB,YAAYlhY,KAAKwmC,OACvDxmC,KAAK80B,MAAMqsW,WAAWhiY,EAAK8mH,QAAS9mH,EAAK+gY,UAAW/gY,EAAK6gY,gBAAiB7gY,EAAKumI,qBAvDvF,kBAyDI,WACI,GAAI/wG,IAAIC,MAAM50B,KAAK80B,OAEf,MAAM,IAAI5pB,MAAJ,uCAENlL,KAAKwmC,iBAAiBu5V,IACtB//X,KAAKwmC,MAAQxmC,KAAKwmC,MAAM0E,aAE5B,IAAM/rC,EAAO4gY,EAAyBmB,YAAYlhY,KAAKwmC,OACvDxmC,KAAK80B,MAAMssW,WAAWjiY,EAAK8mH,QAAS9mH,EAAKghY,SAAUhhY,EAAK8gY,eAAgB9gY,EAAKihY,oBAlErF,sBAoEI,WAII,OAHIpgY,KAAKwmC,iBAAiBu5V,IACtB//X,KAAKwmC,MAAQxmC,KAAKwmC,MAAM0E,aAErBlrC,KAAKwmC,MAAM87I,WAAa,QAxEvC,KA2Ea++M,EAAb,WACI,WAAYx+X,EAAOy+X,GAAmB,oBAClCthY,KAAKmF,KAAO,EACZnF,KAAK6C,MAAQA,EACb7C,KAAKuhY,SAAU,EACfvhY,KAAKwhY,sBAAwBF,EAAkB58X,MAAM,GACrD1E,KAAKyhY,sBAAwB,IAAIl6V,IALC,oBAMHvnC,KAAKwhY,uBANF,IAMlC,2BAA2D,KAAhDE,EAAgD,QACjDpjY,EAAMwhY,EAAoB4B,EAAiBjtW,UACjDz0B,KAAKyhY,sBAAsBj6V,IAAIlpC,EAAKojY,IARN,8BAUlC1hY,KAAK2xJ,UAAY,KAXzB,2CAaI,WACI,OAAO3xJ,KAAKwhY,sBAAsBp/W,KAAI,SAAAs/W,GAAgB,OAAIA,EAAiBjtW,cAdnF,6BAgBI,WACI,GAAIz0B,KAAK2xJ,UACL,OAAO3xJ,KAAK2xJ,UAAUgwO,gBAAgB3hY,QAlBlD,6BAqBI,SAAgBy0B,GACZ,IAAMn2B,EAAMwhY,EAAoBrrW,GAChC,OAAQz0B,KAAKyhY,sBAAsBn/U,IAAIhkD,KAvB/C,sBAyBI,SAASw2B,GACL,IAAMx2B,EAAMwhY,EAAoBnrW,IAAIC,MAAME,GAASA,EAAQA,EAAMxc,KAC7DtY,KAAKyhY,sBAAsBn/U,IAAIhkD,IAC/B0B,KAAKyhY,sBAAsBhvW,IAAIn0B,GAAKsjY,SAAS9sW,KA5BzD,uBA+BI,SAAUA,GACN,IAAK90B,KAAKuhY,QACN,OAAO,EAEX,IAAMjjY,EAAMwhY,EAAoBhrW,EAAMxc,KACtC,QAAItY,KAAKyhY,sBAAsBn/U,IAAIhkD,IACN0B,KAAKyhY,sBAAsBhvW,IAAIn0B,GAChCujY,UAAU/sW,KAtC9C,oBA0CI,SAAOA,EAAOurW,EAAaF,EAAUF,EAAgBG,GACjD,IAAM9hY,EAAMwhY,EAAoBhrW,EAAMxc,KACbtY,KAAKyhY,sBAAsBhvW,IAAIn0B,GACvC+W,OAAOyf,EAAOurW,EAAaF,EAAUF,EAAgBG,KA7C9E,mBA+CI,WACIpgY,KAAKuhY,SAAU,IAhDvB,kBAkDI,cAlDJ,kBAqDI,WACIvhY,KAAKuhY,SAAU,EADZ,oBAE4BvhY,KAAKwhY,uBAFjC,IAEH,2BAA2D,SACtCt4P,QAHlB,iCArDX,kBA2DI,WAAO,oBAC4BlpI,KAAKwhY,uBADjC,IACH,2BAA2D,SACtC1/S,QAFlB,iCA3DX,sBAgEI,SAASrtD,GACL,IAAMn2B,EAAMwhY,EAAoBrrW,GAChC,OAAIz0B,KAAKyhY,sBAAsBn/U,IAAIhkD,GACN0B,KAAKyhY,sBAAsBhvW,IAAIn0B,GAChCwjY,WAErB,IAtEf,mBAwEI,WACI,OAAO9hY,KAAKwhY,wBAzEpB,sBA2EI,WACI,IADO,EACHp/X,EAAS,GADN,cAEwBpC,KAAKwhY,uBAF7B,IAEP,2BAA2D,KAAhDE,EAAgD,QACvDt/X,EAAOmB,KAAP,UAAey2J,YAAS0nO,EAAiBjtW,UAAzC,aAAuDitW,KAHpD,8BAKP,iBAAWt/X,EAAOua,KAAK,MAAvB,SAhFR,KAmFA,SAASmkX,EAAYhsW,GAEjB,MAAY,OADAA,EAAM2gF,SAEP,EAGA,EAGR,SAASssR,EAAmBx3X,GAC/B,QAAKA,IAGIA,aAAmB02X,GAAiC12X,aAAmB82X,GAE7E,IAAMpiQ,EAAb,WACI,WAAYnqG,EAAOktW,GAAiB,oBAChChiY,KAAKovQ,OAASt6O,EACd90B,KAAKg8H,iBAAmBgmQ,EAHhC,oDAKI,WACI,IAAMz2V,EAAcvrC,KAAKg8H,iBAAiBimQ,eAAejiY,KAAKovQ,OAAO92P,KACjEypX,EAAmBx2V,IACnBA,EAAY0hC,UARxB,6BAWI,WACI,IAAM1hC,EAAcvrC,KAAKg8H,iBAAiBimQ,eAAejiY,KAAKovQ,OAAO92P,KACjEypX,EAAmBx2V,IACnBA,EAAYxzB,SAdxB,mBAiBI,WACI/X,KAAKg8H,iBAAiBkmQ,eAAeliY,KAAKovQ,OAAO92P,OAlBzD,0CAoBI,SAA6BotH,GACzB,IAAMn6F,EAAcvrC,KAAKg8H,iBAAiBimQ,eAAejiY,KAAKovQ,OAAO92P,KACrE,GAAIypX,EAAmBx2V,IAAgBA,EAAYs2V,UAAU7hY,KAAKovQ,QAC9D,OAAO7jO,EAEX,IAAM42V,EAAa,IAAIlB,EAA4BjhY,KAAKovQ,OAAQ1pI,GAEhE,OADA1lI,KAAKg8H,iBAAiBomQ,YAAYD,GAC3BA,IA3Bf,qBA6BI,SAAQ3uR,GACJ,IAAMkuR,EAAmB1hY,KAAKqiY,6BAA6B,MAC3DriY,KAAKovQ,OAAOnxJ,OAAOzK,GACnBkuR,EAAiBrsX,OAAOrV,KAAKovQ,OAAQ,GAAI0xH,EAAY9gY,KAAKovQ,QAASpvQ,KAAKovQ,OAAOyxH,0BAA2B,QAhClH,+BAkCI,SAAkBn7P,EAAmBC,EAAgBC,GACjD,IAAM87P,EAAmB1hY,KAAKqiY,6BAA6B38P,GACrDsxH,EAAwBh3P,KAAKovQ,OAAOlpJ,WAAWyf,GAAgB,GAC/Dy6P,EAAmBnhQ,EAAUqjQ,oBAAoB18P,EAAqBoxH,GACtEqpI,EAAcrpI,EAAsB50O,KAAI,SAAC/e,EAAIpE,GAAL,MAAgB,CAAEA,MAAOA,EAAOwhH,WAAYp9G,EAAGo9G,eAQ7F,OAPA4/Q,EAAYv3X,MAAK,SAAC5E,EAAG5E,GACjB,OAAI4E,EAAEu8G,WAAWwmB,cAAgB3nI,EAAEmhH,WAAWwmB,YACnC/iI,EAAEjF,MAAQK,EAAEL,MAEhBiF,EAAEu8G,WAAWwmB,YAAc3nI,EAAEmhH,WAAWwmB,eAEnDy6P,EAAiBrsX,OAAOrV,KAAKovQ,OAAQixH,EAAYj+W,KAAI,SAAA/e,GAAE,OAAIA,EAAGo9G,cAAaqgR,EAAY9gY,KAAKovQ,QAASpvQ,KAAKovQ,OAAOyxH,0BAA2BT,GACrIA,KA9Cf,kCAgDI,SAA2Bx6P,EAAqBoxH,GAC5C,IACI,OAAOpxH,EAAsBA,EAAoBoxH,GAAyB,KAE9E,MAAOr2P,GAEH,OADA6H,YAAkB7H,GACX,UAtDnB,M,cC5SA,IAOI4hY,EACAC,EARApoU,EAAUh9D,EAAOC,QAAU,GAU/B,SAASolY,IACL,MAAM,IAAIv3X,MAAM,mCAEpB,SAASw3X,IACL,MAAM,IAAIx3X,MAAM,qCAsBpB,SAASy3X,EAAWzvB,GAChB,GAAIqvB,IAAqBv6X,WAErB,OAAOA,WAAWkrW,EAAK,GAG3B,IAAKqvB,IAAqBE,IAAqBF,IAAqBv6X,WAEhE,OADAu6X,EAAmBv6X,WACZA,WAAWkrW,EAAK,GAE3B,IAEI,OAAOqvB,EAAiBrvB,EAAK,GAC/B,MAAMvyW,GACJ,IAEI,OAAO4hY,EAAiB3iY,KAAK,KAAMszW,EAAK,GAC1C,MAAMvyW,GAEJ,OAAO4hY,EAAiB3iY,KAAKI,KAAMkzW,EAAK,MAvCnD,WACG,IAEQqvB,EADsB,oBAAfv6X,WACYA,WAEAy6X,EAEzB,MAAO9hY,GACL4hY,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjB5pW,aACcA,aAEA8pW,EAE3B,MAAO/hY,GACL6hY,EAAqBE,GAjB5B,GAwED,IAEIE,EAFAviU,EAAQ,GACRwiU,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAa7kY,OACbsiE,EAAQuiU,EAAa9+X,OAAOu8D,GAE5ByiU,GAAc,EAEdziU,EAAMtiE,QACNilY,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIp5X,EAAUk5X,EAAWI,GACzBF,GAAW,EAGX,IADA,IAAIhhW,EAAMw+B,EAAMtiE,OACV8jC,GAAK,CAGP,IAFA+gW,EAAeviU,EACfA,EAAQ,KACCyiU,EAAajhW,GACd+gW,GACAA,EAAaE,GAAY9uW,MAGjC8uW,GAAc,EACdjhW,EAAMw+B,EAAMtiE,OAEhB6kY,EAAe,KACfC,GAAW,EAnEf,SAAyB59I,GACrB,GAAIu9I,IAAuB5pW,aAEvB,OAAOA,aAAaqsN,GAGxB,IAAKu9I,IAAuBE,IAAwBF,IAAuB5pW,aAEvE,OADA4pW,EAAqB5pW,aACdA,aAAaqsN,GAExB,IAEWu9I,EAAmBv9I,GAC5B,MAAOtkP,GACL,IAEI,OAAO6hY,EAAmB5iY,KAAK,KAAMqlP,GACvC,MAAOtkP,GAGL,OAAO6hY,EAAmB5iY,KAAKI,KAAMilP,KAgD7Cg+I,CAAgBx5X,IAiBpB,SAASy5X,EAAKhwB,EAAK/vS,GACfnjE,KAAKkzW,IAAMA,EACXlzW,KAAKmjE,MAAQA,EAYjB,SAASopJ,KA5BTnyJ,EAAQ3gC,SAAW,SAAUy5U,GACzB,IAAIr0W,EAAO,IAAIY,MAAMe,UAAUzC,OAAS,GACxC,GAAIyC,UAAUzC,OAAS,EACnB,IAAK,IAAID,EAAI,EAAGA,EAAI0C,UAAUzC,OAAQD,IAClCe,EAAKf,EAAI,GAAK0C,UAAU1C,GAGhCuiE,EAAM98D,KAAK,IAAI2/X,EAAKhwB,EAAKr0W,IACJ,IAAjBwhE,EAAMtiE,QAAiB8kY,GACvBF,EAAWK,IASnBE,EAAKxkY,UAAUs1B,IAAM,WACjBh0B,KAAKkzW,IAAIzyW,MAAM,KAAMT,KAAKmjE,QAE9B/I,EAAQnoC,MAAQ,UAChBmoC,EAAQzmD,SAAU,EAClBymD,EAAQK,IAAM,GACdL,EAAQ+oU,KAAO,GACf/oU,EAAQ8oO,QAAU,GAClB9oO,EAAQE,SAAW,GAInBF,EAAQngC,GAAKsyL,EACbnyJ,EAAQ9/C,YAAciyM,EACtBnyJ,EAAQj9C,KAAOovM,EACfnyJ,EAAQ6mP,IAAM10F,EACdnyJ,EAAQlgC,eAAiBqyL,EACzBnyJ,EAAQgpU,mBAAqB72K,EAC7BnyJ,EAAQuE,KAAO4tJ,EACfnyJ,EAAQipU,gBAAkB92K,EAC1BnyJ,EAAQkpU,oBAAsB/2K,EAE9BnyJ,EAAQqE,UAAY,SAAU7nD,GAAQ,MAAO,IAE7CwjD,EAAQslS,QAAU,SAAU9oV,GACxB,MAAM,IAAI1L,MAAM,qCAGpBkvD,EAAQmzS,IAAM,WAAc,MAAO,KACnCnzS,EAAQmpU,MAAQ,SAAU15N,GACtB,MAAM,IAAI3+J,MAAM,mCAEpBkvD,EAAQopU,MAAQ,WAAa,OAAO,I,yFC/KvBn0Q,EAAb,4GACI,SAA+BzR,EAAap+F,EAAQ4mE,GAKhD,IAJA,IAAMmuK,EAAoB32I,EAAY7/G,OAChCu8G,EAAY96F,EAAS,EAAI+0O,EAAoB/0O,EAAS,EAAI+0O,EAC5DnyP,EAAS,EACTtE,EAAI,EACDA,EAAIw8G,GAAW,CAClB,IAAMj0E,EAAYozD,IAAyBmkB,EAAatD,EAAWx8G,GAEnE,GADAA,GAAMuoC,GAAa,MAAgD,EAAI,EACrD,IAAdA,EACAjkC,EAASitH,EAAcq3I,kBAAkBtkQ,EAAQgkF,OAEhD,CAED,IADA,IAAIxhD,EAAoB60D,IAA6BpzD,GAC9CvoC,EAAIw8G,GAAW,CAClB,IAAMx1E,EAAgB20D,IAAyBmkB,EAAatD,EAAWx8G,GACjEinC,EAAwB00D,IAA6B30D,GAC3D,GAAI20D,IAAsC70D,EAAmBG,GACzD,MAEJjnC,GAAMgnC,GAAiB,MAAgD,EAAI,EAC3EF,EAAoBG,EAEpB00D,IAA6BpzD,IAAcozD,IAAyBpzD,GACpEjkC,GAAkB,EAGlBA,GAAkB,GAI9B,OAAOA,IA/Bf,qCAoCI,SAA+Bw7G,EAAax3B,GACxC,IAAMk0B,EAAYsD,EAAY7/G,OAC1BqE,EAAS,IAAI3C,MACjB2C,EAAOmB,MAAM,GAGb,IAFA,IAAIovC,EAAM,EACN70C,EAAI,EACDA,EAAIw8G,GAAW,CAClB,IAAMj0E,EAAYozD,IAAyBmkB,EAAatD,EAAWx8G,GAMnE,GALAA,GAAMuoC,GAAa,MAAgD,EAAI,EACvEjkC,EAAOmB,KAAKovC,GACRtM,GAAa,OACbjkC,EAAOmB,KAAKovC,GAEE,IAAdtM,EACAsM,EAAM08E,EAAcq3I,kBAAkB/zN,EAAKyzC,OAE1C,CAED,IADA,IAAIxhD,EAAoB60D,IAA6BpzD,GAC9CvoC,EAAIw8G,GAAW,CAClB,IAAMx1E,EAAgB20D,IAAyBmkB,EAAatD,EAAWx8G,GACjEinC,EAAwB00D,IAA6B30D,GAC3D,GAAI20D,IAAsC70D,EAAmBG,GACzD,MAEJjnC,GAAMgnC,GAAiB,MAAgD,EAAI,EAC3E1iC,EAAOmB,KAAKovC,GACRtM,GAAa,OACbjkC,EAAOmB,KAAKovC,GAEhB/N,EAAoBG,EAEpB00D,IAA6BpzD,IAAcozD,IAAyBpzD,GACpEsM,GAAY,EAGZA,GAAY,GAKxB,OADAvwC,EAAOmB,KAAKovC,GACLvwC,IA5Ef,sCA8EI,SAAgC8iJ,EAAQpwH,EAAOnW,GAC3C,OAAO3e,KAAKsvH,wBAAwBx6F,EAAM01E,eAAe7rF,EAASY,YAAaZ,EAASa,OAAQ0lI,EAAO9+D,WA/E/G,qCAiFI,SAA+Bw3B,EAAawR,EAAehpC,GACvD,GAAIgpC,GAAiB,EACjB,OAAO,EAMX,IAJA,IAAMuS,EAAa/jB,EAAY7/G,OAC3B0lY,EAAsB,EACtBC,EAAe,EACf5lY,EAAI,EACDA,EAAI6jI,GAAY,CACnB,IAAMt7F,EAAYozD,IAAyBmkB,EAAa+jB,EAAY7jI,GACpEA,GAAMuoC,GAAa,MAAgD,EAAI,EACvE,IAAIs9V,OAAkB,EACtB,GAAkB,IAAdt9V,EACAs9V,EAAqBt0Q,EAAcq3I,kBAAkB+8H,EAAqBr9S,OAEzE,CAED,IADA,IAAIxhD,EAAoB60D,IAA6BpzD,GAC9CvoC,EAAI6jI,GAAY,CACnB,IAAM78F,EAAgB20D,IAAyBmkB,EAAa+jB,EAAY7jI,GAClEinC,EAAwB00D,IAA6B30D,GAC3D,GAAI20D,IAAsC70D,EAAmBG,GACzD,MAEJjnC,GAAMgnC,GAAiB,MAAgD,EAAI,EAC3EF,EAAoBG,EAGpB4+V,EADAlqS,IAA6BpzD,IAAcozD,IAAyBpzD,GAC/Co9V,EAAsB,EAGtBA,EAAsB,EAGnD,IAAMxrN,EAAcn6K,EAAI,EACxB,GAAI6lY,GAAsBv0Q,EAGtB,OADmBu0Q,EAAqBv0Q,EADpBA,EAAgBq0Q,EAGzBxrN,EAGAyrN,EAGfD,EAAsBE,EACtBD,EAAezrN,EAGnB,OAAOt2C,EAAa,IAjI5B,sCAmII,SAAgCujB,EAAQpwH,EAAOvV,EAAY6vG,GACvD,IAAIhtH,EAASpC,KAAK4jY,wBAAwB9uW,EAAM01E,eAAejrF,GAAa6vG,EAAe81B,EAAO9+D,SAC9Fs/E,EAAY5wI,EAAM4/J,iBAAiBn1K,GACvC,GAAInd,EAASsjK,EACT,OAAOA,EAEX,IAAIjwE,EAAY3gE,EAAMgsG,iBAAiBvhH,GACvC,OAAInd,EAASqzF,EACFA,EAEJrzF,IA7If,+BAkJI,SAAyBgtH,EAAehpC,GACpC,OAAOgpC,EAAgBhpC,EAAUgpC,EAAgBhpC,IAnJzD,+BAwJI,SAAyBgpC,EAAe/oC,GACpC,OAAO+oC,EAAgB/oC,EAAa+oC,EAAgB/oC,IAzJ5D,+BA8JI,SAAyB7mE,EAAQ4mE,GAC7B,OAAO1uE,KAAKC,IAAI,EAAG6H,EAAS,GAAKA,EAAS,GAAK4mE,KA/JvD,+BAoKI,SAAyB5mE,EAAQ6mE,GAC7B,OAAO3uE,KAAKC,IAAI,EAAG6H,EAAS,GAAKA,EAAS,GAAK6mE,OArKvD,M,8BrVRA,gF,oNA4GM,EAA+B,qBAAX,OAAyB,EAAS,OAGtD,EAAsB,GAAS,EAAM,aAAe,EAAM,YAAY,MAEtE,EAqBN,WACE,IAAI,EAAqB,EAAM,gBAAkB,CAC/C,WAAO,EACP,sBAAkB,EAClB,iBAAkB,IAGf,EAAM,WACT,EAAK,OACA,GAAK,CACR,KAAM,CACJ,MAAO,EACP,SAAU,GAEZ,SAAU,CACR,WAAY,EACZ,KAAI,EACJ,OAAQ,OAIT,EAAM,2BACT,EAAK,OACA,GAAK,CACR,yBAA0B,MAI9B,OADA,EAAM,eAAiB,EAChB,EAjDwB,GAK3B,EACJ,iHAEI,EAAoB,WACxB,MAAuB,qBAAhB,aAAiC,YAAY,IAAM,YAAY,MAAQ,KAAK,OAErF,SAAS,EAAQ,GACf,IAAM,EAAgB,IACtB,IACA,IAAM,EAAc,IACpB,EAAY,KAAK,UAAY,EAAM,EA2C/B,SAAU,EAAW,EAAgC,sBACzD,GAAQ,WACN,IAAM,EAA4B,MAAM,QAAQ,GAAU,EAAS,EAAY,GACzE,EAA+B,EAAY,SAAzC,EAAI,OAAE,EAAM,SAAE,EAAU,aAC5B,GAAiB,IAAJ,GACf,EAAO,KAAK,GACP,IACH,EAAY,SAAS,WA6CpB,YAAW,WAChB,EAAY,SAAS,WAAa,EAfpC,GAAQ,WACN,IAAM,EAA+B,EAAY,SAAS,OAAO,QACjE,EAAY,SAAS,OAAS,GAC9B,IAAM,EAAmC,GAAqB,OAAO,MAAM,GAAI,GAC3E,EAAiB,OAAS,GAC5B,EAAoB,QAYrB,KA7CC,EAAoB,MAsD1B,SAAS,EAAoB,EAA4B,GACnD,EAAY,WACd,EAAY,WAAW,EAAqB,GAAa,YAAa,GA6J1E,SAAwB,GACtB,GAAwB,qBAAb,SACT,OAEF,IAAM,EAAwB,SAAS,qBAAqB,QAAQ,GAC9D,EAAiC,SAAS,cAAc,SACxD,EAA4B,EAAqB,GAA/C,EAAW,cAAE,EAAQ,WAE7B,EAAa,aAAa,0BAA2B,QACjD,GACF,EAAa,aAAa,QAAS,GAErC,EAAa,YAAY,SAAS,eAAe,IACjD,EAAY,KAAK,QACjB,EAAK,YAAY,GAEjB,IAAM,EAAmD,SAAS,YAAY,cAC9E,EAAG,UAAU,eAAe,GAAwB,GACpD,EAAG,KAAO,CACR,SAAU,GAEZ,SAAS,cAAc,GAEvB,IAAM,EAAuB,CAC3B,aAAc,EACd,cAAe,GAGb,EACF,EAAY,yBAAyB,KAAK,GAE1C,EAAY,iBAAiB,KAAK,GA1LlC,CAAe,GASb,SAAU,EAAU,GACxB,EAAY,MAAQ,EAkCtB,WACE,GAAI,EAAY,MAAO,CAErB,IADA,IAAM,EAAkC,GACd,QAAY,yBAAZ,eAAsC,CAA3D,IAAM,EAAW,KACpB,EAAe,KAAK,EAAY,eAE9B,EAAe,OAAS,KA7B1B,SAAsB,qBAChB,IAAN,GAA0C,IAAN,IACtC,EAAoB,EAAY,kBAChC,EAAY,iBAAmB,IAEvB,IAAN,GAA0C,IAAN,IACtC,EAAoB,EAAY,0BAChC,EAAY,yBAA2B,IAuBrC,CAAW,GACX,EAAqB,GAAqB,OAAO,MAAM,GAAI,MAvC/D,GAmBF,SAAS,EAAoB,GAC3B,EAAQ,SAAQ,SAAC,GACf,IAAM,EAAiC,GAAgB,EAAY,aAC/D,GAAgB,EAAa,eAC/B,EAAa,cAAc,YAAY,MAqC7C,SAAS,EAAqB,GACpB,MAAuB,EAAlB,MACT,GAAoB,EAiCxB,MAAO,CACL,aA/B6C,GAAmB,IAAI,KACpE,SAAC,GACC,IAAM,EAAgC,EAAa,MACnD,GAAI,EAAW,CACb,GAAW,EAEX,IAAM,EAAkC,EAAQ,EAAM,QAAa,EAC7D,EAAuB,EAAa,cAAgB,UAe1D,OAVE,IACC,GACD,WACE,KAAa,IACE,qBAAV,OACP,OAEA,QAAQ,KAAK,mCAAmC,EAAS,uBAAuB,EAAY,MAGvF,GAAe,EAGtB,OAAO,EAAa,aAMG,KAAK,IAChC,SAAU,GAQR,SAAU,EAAY,GAC1B,IAAM,EAAwB,GAC9B,GAAI,EAAQ,CAGV,IAFA,IAAI,EAAc,EACd,OAAU,EACN,EAAa,EAAiB,KAAK,IAAU,CACnD,IAAM,EAAqB,EAAW,MAClC,EAAa,GACf,EAAO,KAAK,CACV,UAAW,EAAO,UAAU,EAAK,KAIrC,EAAO,KAAK,CACV,MAAO,EAAW,GAClB,aAAc,EAAW,KAI3B,EAAM,EAAiB,UAIzB,EAAO,KAAK,CACV,UAAW,EAAO,UAAU,KAIhC,OAAO,K,gDsVjYT,+CACe,SAASw9S,EAA4BpgY,EAAGqgY,GACrD,GAAKrgY,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGqgY,GACtD,IAAIvjY,EAAInC,OAAOM,UAAU+Z,SAAS7Y,KAAK6D,GAAGiB,MAAM,GAAI,GAEpD,MADU,WAANnE,GAAkBkD,EAAExD,cAAaM,EAAIkD,EAAExD,YAAY2W,MAC7C,QAANrW,GAAqB,QAANA,EAAoBd,MAAM8E,KAAKd,GACxC,cAANlD,GAAqB,2CAA2CsW,KAAKtW,GAAW,YAAiBkD,EAAGqgY,QAAxG,K,6BCPF,uDAKMC,EAAuB,CAC3B/kV,QAAS,GAGLglV,EAAY,SAACz5U,GACjB,MAAO,CACLA,SAAUA,EACVp9C,OAAQ,QACRrC,OAAQ,OACR07E,WAAY,OACZ+xN,UAAW,SACX0rF,WAAY,IASH1gB,EAAY,aACvB,SAACzhW,G,QACS+xC,EAAmC/xC,EAArB,eAAEgyC,EAAmBhyC,EAAZ,QAAEkyC,EAAUlyC,EAAL,MAEhCtU,EAASqmD,EAAerB,aACxB7B,EAAqBkD,EAAelD,mBACpCW,EAAeuC,EAAevC,aAC9B4yU,EAA0B,CAC9Bj4X,MAAO,EACPF,KAAM,EACNozC,QAAS,EACTpT,OAAQ,EACR2S,aAAc,cAGhB,MAAO,CACL+tD,KAAM,CACJ,YAAc3qF,EAAO,CAAE+8B,MAAO,EAAGL,kBAAmB0lV,EAAyBzlV,YAAa,gBAC1F38B,EAAMkyC,MAAM3X,OACZ,CACE8Y,UAAW,aACX3nD,OAAQ,aAAeA,EACvB22X,WAAY,OACZjtX,QAAS,eACTktX,eAAgB,OAChB7rF,UAAW,SACX/9L,OAAQ,UACR9sG,QAAS,SACTkyC,aAAckU,EAAQrL,eAEtBxJ,UAAW,CAET,cAAe,CACbtgC,SAAU,WACV1S,KAAM,EACNF,IAAK,MAMbk0N,aAAc,CACZ,YAAcn+M,EAAO,CAAE+8B,MAAO,EAAGL,kBAAmB0lV,EAAyBzlV,YAAa,gBAC1F,CACE9wB,gBAAiBgjC,EACjBlS,YAAakS,EACbljC,MAAO6jC,EACPkpD,OAAQ,UACRv7D,UAAW,CACT,SAAU8kV,EACV,SAAUA,KAKhB5iK,aAAc,CACZ1zM,MAAO6jC,EACPrS,WAAS,KACP,EAAC,KAAuB,CACtBxxB,MAAO,YAEV,IAGH8zM,iBAAkB,CAChB9zM,MAAO6jC,EACPrS,WAAS,KACP,EAAC,KAAuB,CACtBxxB,MAAO,YAEV,IAGHszM,cAAe,CACb7pN,QAAS,OACTpM,OAAQ,OACRu5X,SAAU,SACVC,eAAgB,SAChBC,WAAY,UAEdtuX,YAAa,CACXiB,QAAS,SAGX8pN,cAAe,CACbwjK,SAAU,EACVttX,QAAS,SAGXgb,KAAM8xW,EAAUhwU,EAAM1X,WAAWiO,UAEjC6E,SAAU40U,EAAUhwU,EAAM7X,MAAMoO,UAEhC1nD,MAAO,CACLsK,OAAQ,QACRq5E,WAAY,OACZtvE,QAAS,SAGXyqN,iBAAkB,S,+HCtHX8iK,EAAb,WACI,WAAY55X,EAAOstN,EAAa7rN,EAAYxB,EAAQyuN,EAAcptN,GAAW,oBACzEnM,KAAK0kY,uBAAoB7qX,EACzBhP,GAAgB,EAChBstN,GAA4B,EAC5B7rN,GAA0B,EAC1BxB,GAAkB,EAClByuN,GAA8B,EAC9BptN,GAAwB,EACxBnM,KAAK2kY,cAAgBr4X,EACrBtM,KAAK4kY,aAAez4X,EAChBtB,EAAQ,IACRA,EAAQ,GAERyB,EAAazB,EAAQstN,IACrB7rN,EAAa6rN,EAActtN,GAE3ByB,EAAa,IACbA,EAAa,GAEbxB,EAAS,IACTA,EAAS,GAETqB,EAAYrB,EAASyuN,IACrBptN,EAAYotN,EAAezuN,GAE3BqB,EAAY,IACZA,EAAY,GAEhBnM,KAAK6K,MAAQA,EACb7K,KAAKm4N,YAAcA,EACnBn4N,KAAKsM,WAAaA,EAClBtM,KAAK8K,OAASA,EACd9K,KAAKu5N,aAAeA,EACpBv5N,KAAKmM,UAAYA,EAlCzB,0CAoCI,SAAO+S,GACH,OAAQlf,KAAK2kY,gBAAkBzlX,EAAMylX,eAC9B3kY,KAAK4kY,eAAiB1lX,EAAM0lX,cAC5B5kY,KAAK6K,QAAUqU,EAAMrU,OACrB7K,KAAKm4N,cAAgBj5M,EAAMi5M,aAC3Bn4N,KAAKsM,aAAe4S,EAAM5S,YAC1BtM,KAAK8K,SAAWoU,EAAMpU,QACtB9K,KAAKu5N,eAAiBr6M,EAAMq6M,cAC5Bv5N,KAAKmM,YAAc+S,EAAM/S,YA5CxC,kCA8CI,SAAqBmhL,EAAQu3M,GACzB,OAAO,IAAIJ,EAAqC,qBAAjBn3M,EAAOziL,MAAwByiL,EAAOziL,MAAQ7K,KAAK6K,MAAuC,qBAAvByiL,EAAO6qC,YAA8B7qC,EAAO6qC,YAAcn4N,KAAKm4N,YAAc0sK,EAAwB7kY,KAAK2kY,cAAgB3kY,KAAKsM,WAAsC,qBAAlBghL,EAAOxiL,OAAyBwiL,EAAOxiL,OAAS9K,KAAK8K,OAAyC,qBAAxBwiL,EAAOisC,aAA+BjsC,EAAOisC,aAAev5N,KAAKu5N,aAAesrK,EAAwB7kY,KAAK4kY,aAAe5kY,KAAKmM,aA/Cpc,gCAiDI,SAAmBmhL,GACf,OAAO,IAAIm3M,EAAYzkY,KAAK6K,MAAO7K,KAAKm4N,YAA2C,qBAAtB7qC,EAAOhhL,WAA6BghL,EAAOhhL,WAAatM,KAAK2kY,cAAgB3kY,KAAK8K,OAAQ9K,KAAKu5N,aAA2C,qBAArBjsC,EAAOnhL,UAA4BmhL,EAAOnhL,UAAYnM,KAAK4kY,gBAlDrP,+BAoDI,SAAkBj1N,EAAUm1N,GACxB,IAAMC,EAAgB/kY,KAAK6K,QAAU8kK,EAAS9kK,MACxCm6X,EAAsBhlY,KAAKm4N,cAAgBxoD,EAASwoD,YACpDkG,EAAqBr+N,KAAKsM,aAAeqjK,EAASrjK,WAClD24X,EAAiBjlY,KAAK8K,SAAW6kK,EAAS7kK,OAC1Co6X,EAAuBllY,KAAKu5N,eAAiB5pD,EAAS4pD,aACtD6E,EAAoBp+N,KAAKmM,YAAcwjK,EAASxjK,UACtD,MAAO,CACH24X,kBAAmBA,EACnBK,SAAUx1N,EAAS9kK,MACnBu6X,eAAgBz1N,EAASwoD,YACzBktK,cAAe11N,EAASrjK,WACxBzB,MAAO7K,KAAK6K,MACZstN,YAAan4N,KAAKm4N,YAClB7rN,WAAYtM,KAAKsM,WACjBg5X,UAAW31N,EAAS7kK,OACpBy6X,gBAAiB51N,EAAS4pD,aAC1BisK,aAAc71N,EAASxjK,UACvBrB,OAAQ9K,KAAK8K,OACbyuN,aAAcv5N,KAAKu5N,aACnBptN,UAAWnM,KAAKmM,UAChB44X,aAAcA,EACdC,mBAAoBA,EACpB3mK,kBAAmBA,EACnB4mK,cAAeA,EACfC,oBAAqBA,EACrB9mK,iBAAkBA,OA9E9B,KAkFaJ,EAAb,kDACI,WAAYynK,EAAsBn+X,GAA8B,kCAC5D,gBACKo+X,sBAAmB7rX,EACxB,EAAKwgN,UAAY,EAAK3wN,UAAU,IAAI+K,KACpC,EAAK6lN,SAAW,EAAKD,UAAU1lN,MAC/B,EAAKgxX,sBAAwBF,EAC7B,EAAKG,8BAAgCt+X,EACrC,EAAKooK,OAAS,IAAI+0N,EAAY,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7C,EAAKoB,iBAAmB,KARoC,EADpE,2CAWI,WACQ7lY,KAAK6lY,mBACL7lY,KAAK6lY,iBAAiBztX,UACtBpY,KAAK6lY,iBAAmB,MAE5B,kEAhBR,qCAkBI,SAAwBJ,GACpBzlY,KAAK2lY,sBAAwBF,IAnBrC,oCAqBI,SAAuBrvK,GACnB,OAAOp2N,KAAK0vK,OAAOo2N,mBAAmB1vK,KAtB9C,iCAwBI,WACI,OAAOp2N,KAAK0vK,SAzBpB,iCA2BI,SAAoB21B,EAAYw/L,GAC5B,IAAM5kQ,EAAWjgI,KAAK0vK,OAAOq2N,qBAAqB1gM,EAAYw/L,GAC9D7kY,KAAKgmY,UAAU/lQ,EAAU/0C,QAAQlrF,KAAK6lY,mBAElC7lY,KAAK6lY,kBACL7lY,KAAK6lY,iBAAiBI,uBAAuBjmY,KAAK0vK,UAhC9D,qCAuCI,WACI,OAAI1vK,KAAK6lY,iBACE7lY,KAAK6lY,iBAAiBvhY,GAE1BtE,KAAK0vK,SA3CpB,sCAiDI,WACI,OAAO1vK,KAAK0vK,SAlDpB,kCAoDI,SAAqB4d,GAEjB,IAAMrtD,EAAWjgI,KAAK0vK,OAAOo2N,mBAAmBx4M,GAE5CttL,KAAK6lY,mBACL7lY,KAAK6lY,iBAAiBztX,UACtBpY,KAAK6lY,iBAAmB,MAE5B7lY,KAAKgmY,UAAU/lQ,GAAU,KA5DjC,qCA8DI,SAAwBqtD,EAAQ4wC,GAAgB,WAC5C,GAAmC,IAA/Bl+N,KAAK2lY,sBAEL,OAAO3lY,KAAK61N,qBAAqBvoC,GAErC,GAAIttL,KAAK6lY,iBAAkB,CAEvBv4M,EAAS,CACLhhL,WAA0C,qBAAtBghL,EAAOhhL,WAA6BtM,KAAK6lY,iBAAiBvhY,GAAGgI,WAAaghL,EAAOhhL,WACrGH,UAAwC,qBAArBmhL,EAAOnhL,UAA4BnM,KAAK6lY,iBAAiBvhY,GAAG6H,UAAYmhL,EAAOnhL,WAGtG,IAKI+5X,EALEC,EAAcnmY,KAAK0vK,OAAOo2N,mBAAmBx4M,GACnD,GAAIttL,KAAK6lY,iBAAiBvhY,GAAGgI,aAAe65X,EAAY75X,YAActM,KAAK6lY,iBAAiBvhY,GAAG6H,YAAcg6X,EAAYh6X,UAErH,OAIA+5X,EADAhoK,EACqB,IAAIkoK,EAAyBpmY,KAAK6lY,iBAAiBthY,KAAM4hY,EAAanmY,KAAK6lY,iBAAiBx0P,UAAWrxI,KAAK6lY,iBAAiBrjP,UAG7HxiJ,KAAK6lY,iBAAiBzjT,QAAQpiF,KAAK0vK,OAAQy2N,EAAanmY,KAAK2lY,uBAEtF3lY,KAAK6lY,iBAAiBztX,UACtBpY,KAAK6lY,iBAAmBK,MAEvB,CAED,IAAMC,EAAcnmY,KAAK0vK,OAAOo2N,mBAAmBx4M,GACnDttL,KAAK6lY,iBAAmBO,EAAyBhmX,MAAMpgB,KAAK0vK,OAAQy2N,EAAanmY,KAAK2lY,uBAG1F3lY,KAAK6lY,iBAAiBQ,yBAA2BrmY,KAAK4lY,+BAA8B,WAC3E,EAAKC,mBAGV,EAAKA,iBAAiBQ,yBAA2B,KACjD,EAAKC,gCApGjB,qCAuGI,WAA0B,WACtB,GAAKtmY,KAAK6lY,iBAAV,CAGA,IAAMv4M,EAASttL,KAAK6lY,iBAAiBU,OAC/BtmQ,EAAWjgI,KAAK0vK,OAAOo2N,mBAAmBx4M,GAEhD,GADAttL,KAAKgmY,UAAU/lQ,GAAU,GACpBjgI,KAAK6lY,iBAKV,OAAIv4M,EAAOk5M,QACPxmY,KAAK6lY,iBAAiBztX,eACtBpY,KAAK6lY,iBAAmB,YAI5B7lY,KAAK6lY,iBAAiBQ,yBAA2BrmY,KAAK4lY,+BAA8B,WAC3E,EAAKC,mBAGV,EAAKA,iBAAiBQ,yBAA2B,KACjD,EAAKC,kCA9HjB,uBAiII,SAAUrmQ,EAAU6kQ,GAChB,IAAMvM,EAAWv4X,KAAK0vK,OAClB6oN,EAASv/V,OAAOinG,KAIpBjgI,KAAK0vK,OAASzvC,EACdjgI,KAAKq6N,UAAUplN,KAAKjV,KAAK0vK,OAAO+2N,kBAAkBlO,EAAUuM,SAxIpE,GAAgC96X,KA2InB08X,EACT,WAAYp6X,EAAYH,EAAWq6X,GAAQ,oBACvCxmY,KAAKsM,WAAaA,EAClBtM,KAAKmM,UAAYA,EACjBnM,KAAKwmY,OAASA,GAGtB,SAASG,EAAmBpiY,EAAMD,GAC9B,IAAMqzD,EAAQrzD,EAAKC,EACnB,OAAO,SAAUq7I,GACb,OAAOr7I,EAAOozD,GA6EX,EAJX,SAAqBt3D,GACjB,OAAOqX,KAAKo/C,IAAIz2D,EAAG,GAGRumY,CAAY,EA7EgBhnP,KAWpC,IAAMwmP,EAAb,WACI,WAAY7hY,EAAMD,EAAI+sI,EAAWmR,GAAU,oBACvCxiJ,KAAKuE,KAAOA,EACZvE,KAAKsE,GAAKA,EACVtE,KAAKwiJ,SAAWA,EAChBxiJ,KAAKqxI,UAAYA,EACjBrxI,KAAKqmY,yBAA2B,KAChCrmY,KAAK6mY,kBAPb,mDASI,WACI7mY,KAAKsM,WAAatM,KAAK8mY,eAAe9mY,KAAKuE,KAAK+H,WAAYtM,KAAKsE,GAAGgI,WAAYtM,KAAKsE,GAAGuG,OACxF7K,KAAKmM,UAAYnM,KAAK8mY,eAAe9mY,KAAKuE,KAAK4H,UAAWnM,KAAKsE,GAAG6H,UAAWnM,KAAKsE,GAAGwG,UAX7F,4BAaI,SAAevG,EAAMD,EAAIyiY,GACrB,IAEQC,EAAOC,EAxBC/iY,EAAG5E,EAAG4nY,EAuBtB,OADcxvX,KAAKmgD,IAAItzD,EAAOD,GAClB,IAAMyiY,GAEVxiY,EAAOD,GAEP0iY,EAAQziY,EAAO,IAAOwiY,EACtBE,EAAQ3iY,EAAK,IAAOyiY,IAGpBC,EAAQziY,EAAO,IAAOwiY,EACtBE,EAAQ3iY,EAAK,IAAOyiY,GAhCZ7iY,EAkCUyiY,EAAmBpiY,EAAMyiY,GAlChC1nY,EAkCwCqnY,EAAmBM,EAAO3iY,GAlC/D4iY,EAkCoE,IAjCvF,SAAUtnP,GACb,OAAIA,EAAasnP,EACNhjY,EAAE07I,EAAasnP,GAEnB5nY,GAAGsgJ,EAAasnP,IAAQ,EAAIA,MA+B5BP,EAAmBpiY,EAAMD,KA5BxC,qBA8BI,WAC0C,OAAlCtE,KAAKqmY,2BACLrmY,KAAKqmY,yBAAyBjuX,UAC9BpY,KAAKqmY,yBAA2B,QAjC5C,oCAoCI,SAAuB/xX,GACnBtU,KAAKsE,GAAKgQ,EAAMwxX,mBAAmB9lY,KAAKsE,IACxCtE,KAAK6mY,oBAtCb,kBAwCI,WACI,OAAO7mY,KAAKmnY,MAAMl/X,KAAKm6D,SAzC/B,mBA2CI,SAAMA,GACF,IAAMw9E,GAAcx9E,EAAMpiE,KAAKqxI,WAAarxI,KAAKwiJ,SACjD,GAAI5C,EAAa,EAAG,CAChB,IAAMwnP,EAAgBpnY,KAAKsM,WAAWszI,GAChCynP,EAAernY,KAAKmM,UAAUyzI,GACpC,OAAO,IAAI8mP,EAAsBU,EAAeC,GAAc,GAElE,OAAO,IAAIX,EAAsB1mY,KAAKsE,GAAGgI,WAAYtM,KAAKsE,GAAG6H,WAAW,KAlDhF,qBAoDI,SAAQ5H,EAAMD,EAAIk+I,GACd,OAAO4jP,EAAyBhmX,MAAM7b,EAAMD,EAAIk+I,MArDxD,oBAuDI,SAAaj+I,EAAMD,EAAIk+I,GAInB,OAFAA,GAAsB,GAEf,IAAI4jP,EAAyB7hY,EAAMD,EADxB2D,KAAKm6D,MAAQ,GAC0BogF,OA3DjE,M,mHCpPay2B,EAAb,WACI,WAAYuuF,GAAQ,oBAChBxnQ,KAAKsnY,QAAU9/H,EACfxnQ,KAAKunY,QAAU,EAHvB,0CAKI,WACI,OAAOvnY,KAAKsnY,WAAatnY,KAAKunY,YANtC,KASa9mM,EAAmB,IAAIxnB,EAAY,Q,6BCbhD,8CAIM,SAAUuuN,EAAQtwU,EAAW52D,EAAW8C,GAI5C,IAAIqkY,EAAgB,GAEdvmY,GAJNkC,GAAQ,MADR9C,GAAQ,KAMFonY,EAAKxwU,EAAI,GACTj7C,EAAI/a,GAAK,EAAIwW,KAAKmgD,IAAK6vU,EAAK,EAAK,IACjChkY,EAAIN,EAAIlC,EAEd,OAAQwW,KAAKE,MAAM8vX,IACjB,KAAK,EACHD,EAAM,CAACvmY,EAAG+a,EAAG,GACb,MAEF,KAAK,EACHwrX,EAAM,CAACxrX,EAAG/a,EAAG,GACb,MAEF,KAAK,EACHumY,EAAM,CAAC,EAAGvmY,EAAG+a,GACb,MAEF,KAAK,EACHwrX,EAAM,CAAC,EAAGxrX,EAAG/a,GACb,MAEF,KAAK,EACHumY,EAAM,CAACxrX,EAAG,EAAG/a,GACb,MAEF,KAAK,EACHumY,EAAM,CAACvmY,EAAG,EAAG+a,GAIjB,MAAO,CACL9a,EAAGuW,KAAKq/C,MAAM,KAAiB0wU,EAAI,GAAK/jY,IACxCf,EAAG+U,KAAKq/C,MAAM,KAAiB0wU,EAAI,GAAK/jY,IACxCpE,EAAGoY,KAAKq/C,MAAM,KAAiB0wU,EAAI,GAAK/jY,O,6BC5C5C,uDAIM,SAAUikY,EAAQxmY,EAAWwB,EAAWrD,GAC5C,MAAO,CAACsoY,EAAgBzmY,GAAIymY,EAAgBjlY,GAAIilY,EAAgBtoY,IAAIqd,KAAK,IAI3E,SAASirX,EAAgB5qG,GAEvB,IAAMxkO,GADNwkO,EAAM,YAAMA,EAAK,MACDvkR,SAAS,IAEzB,OAAsB,IAAf+/C,EAAIz6D,OAAe,IAAMy6D,EAAMA,I,8QCF3B,EAAsD,SAAA36D,GACzD,IAAA2Y,EAA0B3Y,EAAjB,UAAEgqY,EAAehqY,EAAL,WAEvBiqY,EAAc,YAAqDjqY,EAAO,IAAuB,CACrG,aACA,kBACA,QACA,qBAEIkqY,EAAUF,EAAW96S,KAAOlvF,EAAM,cAClCmqY,EACJD,GACAlqY,EAAM,oBACNA,EAAMo0B,OACN41W,EAAW,eACXA,EAAW,oBACXA,EAAW51W,MAGPg2W,EAAiB,CACrB,kBAAmBpqY,EAAM,mBACzB,mBAAoBA,EAAM,oBAC1Bo0B,MAAOp0B,EAAMo0B,OAGTi2W,EAAiBF,EACnB,GACA,CACE,eAAe,GAGrB,OACE,qCAASE,EAAoBJ,EAAW,CAAEtxX,UAAW,OAAA2xX,EAAA,GAAI,IAAS,IAAW17R,KAAM,IAAWkzQ,MAAOnpW,KACnG,gBAAC0yR,EAAA,EAAK,eAAK++F,EAAoBJ,EAAU,CAAE96S,IAAKi7S,EAAUD,EAAU,Q,kCChC7D,EAA2B,OAAAlpO,EAAA,IACtC,SACE5kH,EACAqlL,EACAE,EACAvxI,EACAm6S,GAEA,MAAO,CACL37R,KAAM,YACJxyD,EAAOouV,sBACP7oK,GAAY,CAACvlL,EAAOquV,+BACpBhpK,GAAY,CAACrlL,EAAOsuV,+BACpBt6S,IAAYqxI,GAAY,CAACrlL,EAAOuuV,8BAChCJ,IACG9oK,GAAY,CACX,CACErgL,UAAW,CACT,SAAUhF,EAAOwuV,2BAM3BC,qBAAsB,YACpBzuV,EAAOyuV,sBACNppK,GACCrxI,GAAW,CACTh0C,EAAO0uV,4BACP,CACE1pV,UAAW,CACT,SAAUhF,EAAO2uV,uCAIxBtpK,IACErxI,GAAW,CACV,CACEhvC,UAAW,CACT,SAAUhF,EAAO4uV,4BACjB,SAAU5uV,EAAO6uV,+BAIzBxpK,GAAYrlL,EAAO8uV,8BAGrB72W,KAAM,YACJ+nB,EAAO+uV,oBACP1pK,GAAYrlL,EAAOgvV,6BAClB3pK,GAAY8oK,GAAmBnuV,EAAO+uV,qBAGzCjoK,cAAe,YAAY9mL,EAAOivV,0BAElCC,QAAS,YACPlvV,EAAOmvV,oBACNhB,GAAmB9oK,IAAarlL,EAAOovV,gC,SClB1CC,EAAiB,aAKvB,cAmCE,WAAYzrY,GAAZ,MACE,YAAMA,IAAM,K,OAvBN,EAAA0rY,eAAiB,cACjB,EAAAC,sBAAwB,cACxB,EAAAC,WAAa,OAAAC,EAAA,KAOb,EAAAC,sBAAgC,EAMhC,EAAAC,kCAAoC,OAAA/qO,EAAA,IAAgB,SAACgrO,GAC3D,kCACKA,GAAW,CACdtqK,SAAS,OAqTL,EAAAuqK,cAAgB,SACtBC,EACAC,GAEQ,IAAAC,EAAc,EAAKpsY,MAAV,UAEjB,GAAIosY,SAAqCpwX,IAAvBowX,EAAU/zU,UAA0B+zU,EAAUpC,YAAa,CACnE,IAAArxX,EAAmCyzX,EAA1B,UAAEpC,EAAwBoC,EAAd,WAAKjrY,EAAI,YAAKirY,EAArC,4BAIN,GAAIA,EAAUhwV,OACZ,OAAO,gBAACiwV,EAAA,EAAI,aAAC1zX,UAAW,OAAA2xX,EAAA,GAAI,EAAKgC,YAAYj4W,KAAM1b,GAAYqxX,WAAYA,GAAgB7oY,IAE7F,GAAIirY,EAAU/zU,SACZ,OAAO,gBAACk0U,EAAA,EAAQ,aAAC5zX,UAAW,OAAA2xX,EAAA,GAAI,EAAKgC,YAAYj4W,KAAM1b,IAAgBxX,IAEzE,GAAI6oY,EACF,OAAO,gBAAC,EAAS,aAACrxX,UAAW,OAAA2xX,EAAA,GAAI,EAAKgC,YAAYj4W,KAAM1b,GAAYqxX,WAAYA,GAAgB7oY,IAGpG,OAAO,MAGD,EAAAqrY,sBAAwB,WACxB,MAOF,EAAKxsY,MANPsrE,EAAI,OACJ5zD,EAAQ,WAER,IAAA+0X,qBAAa,IAAG,IAAKzsY,MAAMoY,YAAW,EACtC,IAAAs0X,oBAAY,IAAG,IAAKC,cAAa,EACjC,IAAAC,2BAAmB,IAAG,IAAKC,qBAAoB,EAGjD,OAAIvhU,GAA4B,kBAAb5zD,GAAyB+0X,EAExC,wBAAM9zX,UAAW,EAAK2zX,YAAYnpK,eAC/BupK,EAAa,EAAK1sY,MAAO,EAAK2sY,eAC9BC,EAAoB,EAAK5sY,MAAO,EAAK6sY,uBAIrC,CAACH,EAAa,EAAK1sY,MAAO,EAAK2sY,eAAgBC,EAAoB,EAAK5sY,MAAO,EAAK6sY,wBAGrF,EAAAF,cAAgB,WAChB,IAAArhU,EAAS,EAAKtrE,MAAV,KACF0X,EAAa,EAAK1X,MAAV,SAOhB,YAJagc,IAATsvD,GAA0C,kBAAb5zD,IAC/B4zD,EAAO5zD,GAGL,EAAKo1X,WAEL,wBAAMrsY,IAAK,EAAKssY,SAAUp0X,UAAW,EAAK2zX,YAAYtnY,MAAO0T,GAAI,EAAKq0X,UACnEzhU,GAKA,MAWD,EAAA0hU,kBAAoB,WAClB,IAAAt1X,EAAa,EAAK1X,MAAV,SAIhB,MAAwB,kBAAb0X,EACF,KAGFA,GAGD,EAAAm1X,qBAAuB,SAAC7sY,GAEtB,MAA2CA,EAAL,cAAtCysY,OAAa,IAAG,IAAKzsY,MAAMoY,YAAW,EAI9C,OAAOq0X,EACL,wBAAMhsY,IAAK,EAAKwsY,eAAgBt0X,UAAW,EAAK2zX,YAAYl0X,YAAaM,GAAI,EAAKu0X,gBAC/ER,GAED,MAGE,EAAAS,yBAA2B,WACzB,IAAAC,EAAoB,EAAKntY,MAAV,gBAIvB,OAAOmtY,EACL,wBAAMx0X,UAAW,EAAK2zX,YAAYxoK,iBAAkBprN,GAAI,EAAK00X,oBAC1DD,GAED,MAGE,EAAAE,kBAAoB,SAACrtY,GACnB,IAAAstY,EAAkB,EAAKttY,MAAV,cAErB,OAAO,gBAACusY,EAAA,EAAQ,aAACl0U,SAAS,eAAkBi1U,EAAa,CAAE30X,UAAW,EAAK2zX,YAAY/6U,aAGjF,EAAAg8U,cAAgB,SAACC,GACf,IAAAC,EAAgB,EAAKztY,MAAV,YACX0tY,EAAe,EAAKj3X,MAAV,WACZk3X,EAAW,EAAK3tY,MAAM4tY,QAAWC,EAAA,EASvC,OAJKL,EAAUvsS,WAAcusS,EAAUM,iBAAkB,EAAKhB,aAC5DU,EAAY,OAAH,IAAG,CAAH,eAAQA,GAAS,CAAEM,eAAgB,EAAKf,YAIjD,gBAACY,EAAQ,aACPj1X,GAAI,EAAKq0X,SAAW,QACpBgB,gBAAiBn7N,EAAA,EAAgBK,gBAC7Bu6N,EAAS,CACbQ,uBAAwB,EAAKC,4BAC7BC,mBAAoB,EAAKC,wBACzBxpJ,OAAQ8oJ,EAAcC,OAAa1xX,EACnCrD,UAAW,OAAA2xX,EAAA,GAAI,yBAA0BkD,EAAU70X,WACnD5Y,OAAQ,EAAKquY,eAAiB,EAAKzC,sBAAsB/wO,QAAU,EAAK8wO,eAAe9wO,QACvFyzO,UAAW,EAAKC,mBAKd,EAAAA,eAAoD,SAAAx9M,GAClD,IAAA08M,EAAc,EAAKxtY,MAAV,UAEbwtY,GAAaA,EAAUa,WACzBb,EAAUa,UAAUv9M,GAEjBA,GAAOA,EAAGl1K,kBACb,EAAK2yX,gBAID,EAAAA,aAAe,WACrB,EAAKJ,6BAA0BnyX,EAC/B,EAAKiyX,iCAA8BjyX,EACnC,EAAKiwP,SAAS,CAAEyhI,YAAY,KAGtB,EAAAc,UAAY,SAACR,EAAkCE,QAAA,IAAAA,OAAA,GACjD,EAAKluY,MAAMwtY,YACb,EAAKS,4BAA8BD,EACnC,EAAKG,wBAA0BD,EAC/B,EAAKpC,sBAAuB,EAC5B,EAAK7/H,SAAS,CAAEyhI,YAAY,MAIxB,EAAAe,cAAgB,SAACT,GACvB,IAAIE,GAAqB,EACrB,EAAKluY,MAAMwtY,YAAyD,IAA5C,EAAKxtY,MAAMwtY,UAAUU,qBAC/CA,GAAqB,GAGvB,EAAKz3X,MAAMi3X,WAAa,EAAKc,UAAUR,EAAwBE,GAAsB,EAAKK,gBAkFpF,EAAAG,8BAAgC,SAAC59M,GACvC,IAAMn/K,EAAY,EAAKg6X,sBAAsB/wO,SAGxCjpJ,GAAcm/K,EAAG/wL,QAAU,OAAA4uY,EAAA,GAAsB79M,EAAG/wL,OAAQ4R,IAMjEA,EAAUwtB,SAGJ,EAAAyvW,2BAA6B,SAAC99M,GAC/B,EAAKr6K,MAAMi3X,YACd,EAAKa,gBAGF,EAAKM,kBAAoB,EAAK7uY,MAAMo0O,QACvC,EAAKp0O,MAAMo0O,QAAQtjD,GACV,EAAK+9M,kBACd,EAAKC,aAAah+M,IA6Dd,EAAA8nM,WAAa,SAAC9nM,IAGhB,EAAK9wL,MAAMyhO,UAAa3wC,EAAGoiH,QAAUxzG,EAAA,EAASG,OAAS/O,EAAGoiH,QAAUxzG,EAAA,EAAS/D,MAGrE,EAAK37L,MAAMyhO,WACjB,EAAKzhO,MAAMwtY,UACb,EAAKuB,eAAej+M,QACc90K,IAAzB,EAAKhc,MAAMwnO,WACpB,EAAKxnO,MAAMwnO,UAAU12C,KANvBA,EAAG16K,iBACH06K,EAAGx6K,oBAUC,EAAAuiX,SAAW,SACjB/nM,GAEK,EAAK9wL,MAAMyhO,eAAmCzlN,IAAvB,EAAKhc,MAAMk2S,SACrC,EAAKl2S,MAAMk2S,QAAQplH,IAIf,EAAAk+M,YAAc,SACpBl+M,GAEK,EAAK9wL,MAAMyhO,eAAsCzlN,IAA1B,EAAKhc,MAAMivY,YACrC,EAAKjvY,MAAMivY,WAAWn+M,IAIlB,EAAAo+M,WAAa,SACnBp+M,GAEK,EAAK9wL,MAAMyhO,eAAqCzlN,IAAzB,EAAKhc,MAAM21S,WACrC,EAAK31S,MAAM21S,UAAU7kH,IAIjB,EAAAolC,aAAe,SACrBplC,GAEK,EAAK9wL,MAAMyhO,eAAuCzlN,IAA3B,EAAKhc,MAAM4qO,aACrC,EAAK5qO,MAAM4qO,YAAY95C,IAInB,EAAA0xK,SAAW,SACjB1xK,GAEK,EAAK9wL,MAAMyhO,WACV,EAAKzhO,MAAMwtY,UACb,EAAKsB,aAAah+M,QACc90K,IAAvB,EAAKhc,MAAMo0O,SACpB,EAAKp0O,MAAMo0O,QAAQtjD,KAKjB,EAAAq+M,+BAAiC,SAACr+M,GAEpCA,EAAGoiH,QAAUxzG,EAAA,EAASG,OAAS/O,EAAGoiH,QAAUxzG,EAAA,EAAS/D,MACnD,EAAK+vM,eAAe9wO,UACtB,EAAK8wO,eAAe9wO,QAAQw2J,QAC5BtgI,EAAG16K,iBACH06K,EAAGx6K,mBAGL,EAAKy4X,eAAej+M,IAIhB,EAAAi+M,eAAiB,SAACj+M,GACxB,IAAI,EAAK9wL,MAAMyhO,SAAf,CAII,EAAKzhO,MAAMwnO,WACb,EAAKxnO,MAAMwnO,UAAU12C,GAIvB,IAAMs+M,EAAOt+M,EAAGoiH,QAAUxzG,EAAA,EAAStH,GAE7Bi3M,EAASv+M,EAAGoiH,QAAUxzG,EAAA,EAASxH,KAErC,IAAKpH,EAAGl1K,kBAAoB,EAAK0zX,oBAAoBx+M,GAAK,CAChD,IAAAy+M,EAAgB,EAAKvvY,MAAV,YACfuvY,GACFA,EAAYz+M,EAAI,EAAK9wL,OAGvB,EAAKyuY,eAAc,GACnB39M,EAAG16K,iBACH06K,EAAGx6K,kBAWL,GAPIw6K,EAAGoiH,QAAUxzG,EAAA,EAASG,OAAS/O,EAAGoiH,QAAUxzG,EAAA,EAAS/D,OAIvD,OAAA6zM,EAAA,IAAmB,EAAM1+M,EAAG/wL,SAGxB+wL,EAAGv1K,SAAUu1K,EAAGp1K,UAAa0zX,GAAQC,GAIzC,IAAK,EAAK54X,MAAMi3X,YAAc,EAAK1tY,MAAMwtY,gBAEJxxX,IAAjC,EAAKmyX,wBACD,EAAKA,wBACL,EAAKnuY,MAAMwtY,UAAUU,sBAEzBp9M,EAAG16K,iBACH06K,EAAGx6K,kBACH,EAAK63X,yBAA0B,EAC/B,EAAKsB,iBAML,EAAAC,cAA4B,WAEhC,EAAKtB,gBACL,EAAKzC,sBAAsB/wO,WACzB,kBAAmB,EAAK+wO,sBAAsB/wO,UAEhD,EAAK+0O,+BA6DD,EAAAb,aAAe,SACrBh+M,GAEQ,IAAAy+M,EAAgB,EAAKvvY,MAAV,YAKnB,GAJIuvY,GACFA,EAAYz+M,EAAI,EAAK9wL,QAGlB8wL,EAAGl1K,iBAAkB,CAOxB,IAAMoyX,EACsB,IAA1Bl9M,EAAG8+M,YAAY9/M,QAAiE,UAAhDgB,EAAG8+M,YAA6BC,YAClE,EAAKpB,cAAcT,GACnBl9M,EAAG16K,iBACH06K,EAAGx6K,oBAn1BL,OAAAw5X,EAAA,GAAuB,GACvB,EAAKC,OAAS,IAAIC,EAAA,EAAM,GACxB,EAAK9pV,QAAU,IAAIwnT,EAAA,EAAW,GAE9B,OAAAuiC,EAAA,GAA+BxE,EAAgBzrY,EAAO,CAAC,YAAa,WAAY,QAAS,EAAKA,MAAMy7B,OAEpG,OAAAy0W,EAAA,GAAiBzE,EAAgBzrY,EAAO,CACtCmwY,eAAWn0X,EACX5D,YAAa,gBACbi4E,QAAS,YAEX,EAAK08S,SAAW,OAAAr3Q,EAAA,KAChB,EAAKu3Q,eAAiB,OAAAv3Q,EAAA,KACtB,EAAK03Q,mBAAqB,OAAA13Q,EAAA,KAE1B,EAAKj/G,MAAQ,CACXi3X,YAAY,G,EAs0BlB,OA53BgC,iBAC9B,sBAAY,6BAAc,C,IAA1B,WACE,QAASvrY,KAAKnC,MAAMwtY,aAAerrY,KAAKnC,MAAMo0O,UAAgC,IAArBjyO,KAAKnC,MAAMy7B,O,gCAwD/D,YAAA8wL,OAAP,W,MACQ,EAoBFpqN,KAAKnC,MAnBPmtY,EAAe,kBACflsS,EAAS,YACTmvS,EAAU,aACVz3X,EAAS,YACT8oN,EAAQ,WACR4uK,EAAkB,qBAClB9F,EAAe,kBAEf,IAAAkC,qBAAa,IAAG,EAAAtqY,KAAKnC,MAAMoY,YAAW,EACtC8C,EAAI,OACJkxX,EAAS,YACTkB,EAAa,gBACblxV,EAAM,SACNg0C,EAAO,UACPkxI,EAAgB,mBAChBr9M,EAAK,QACL68H,EAAM,SACNwvP,EAAa,gBACbniK,EAAI,OAGEu/J,EAAevrY,KAAKsU,MAAV,WAGZ85X,EAA0B9uK,GAAY8oK,EAE5CpoY,KAAKmqY,YAAcgE,EACfA,EACErsX,EACAtL,EACA2oN,EACA8qK,GAAaA,EAAUzzX,UACvB20X,GAAiBA,EAAc30X,UAC/B43X,EACAngT,GACCs9S,IACCvrY,KAAKnC,MAAMwtY,UACbrrY,KAAKnC,MAAMy7B,QACT40W,GAEJ,YACEpsX,EACAm4B,EACAzjC,EACA2oN,EACA8qK,GAAaA,EAAUzzX,UACvB20X,GAAiBA,EAAc30X,UAC/B43X,IACEpuY,KAAKnC,MAAMwtY,UACbp9S,GACCs9S,EACDvrY,KAAKnC,MAAMy7B,OAGX,MAAmDt5B,KAAjDirY,EAAkB,qBAAEL,EAAQ,WAAEE,EAAc,iBAG9CuD,GAA2BD,KAA6Br1X,EACxD1B,EAAMg3X,EAAiB,IAAM,SAE7BvG,EAAc,YAElB,YAAOuG,EAAiB,GAAK,CAAElpY,KAAM,UAAYnF,KAAKnC,MAAMmwY,UAAWhuY,KAAKnC,OAC5EwwY,EAAiB,IAAmB,IACpC,CACE,aAKEC,EAAoBxvS,GAAcgpS,EAAoB,cAIxDyG,OAAkB10X,EAClBmxX,EACFuD,EAAkBtD,EACTX,GAAiBtqY,KAAKnC,MAAM4sY,sBAAwB,IAG7D8D,EAAkBzD,EACRhD,EAAoB,sBAC9ByG,EAAmBzG,EAAoB,qBAOzC,IAAI0G,OAAiB30X,EAChBiuX,EAAoB,mBACvB0G,EAAkB1G,EAAoB,mBAC7ByG,IAAoBD,IAC7BE,EAAiBxuY,KAAK2qY,WAAaC,OAAW/wX,GAGhD,IAAM40X,KACyC,IAA5CzuY,KAAKnC,MAAc,sBAAmCyhO,IAAa4uK,GAAuBluY,KAAKisY,gBAI5FyC,EAA8B,qBAAT1iK,GAAwC,aAATA,EAKpD2iK,EAAwBD,IAA4C,IAAX/vP,IAAV1wD,OAAwCp0E,EAEvFkwX,EAAc,YAAOjC,IAAW,GACpCtxX,UAAWxW,KAAKmqY,YAAY19R,KAE5B82C,IAAKvjJ,KAAKypY,WAAWzpY,KAAKnC,MAAM+wY,WAAY5uY,KAAKupY,gBACjDjqK,SAAU8uK,IAA4BF,EACtC7oK,UAAWrlO,KAAKy2X,WAChBqW,WAAY9sY,KAAK6sY,YACjB94F,QAAS/zS,KAAK02X,SACdjuJ,YAAazoO,KAAK+zN,aAClBy/E,UAAWxzS,KAAK+sY,WAChB96J,QAASjyO,KAAKqgW,SACd,aAAciuC,EACd,kBAAmBE,EACnB,mBAAoBD,EACpB,gBAAiBH,EACjB,oBAAqBK,IAGpBC,EAAqB,eAAiB,gBAAiBC,EACxD,IAMF,GAJIV,IACFlE,EAAY,gBAAiB,GAG3B/pY,KAAKisY,eACP,OAAOjsY,KAAK6uY,4BAA4Bx3X,EAAK0yX,GACxC,GAAI/pY,KAAKnC,MAAMwtY,UAAW,CACvB,MAAiCrrY,KAAKnC,MAAMwtY,UAAhB,GAA5B90X,OAAE,IAAG,EAAGvW,KAAK4qY,SAAQ,QAAO,EACpC,YAAOb,EAAa,CAClB,iBAAkBwB,EAClB,gBAAkBA,EAAkB,KAALh1X,EAC/B,iBAAiB,IAIrB,OAAOvW,KAAK8uY,iBAAiBz3X,EAAK0yX,IAG7B,YAAA9/K,kBAAP,WAIMjqN,KAAKisY,gBAAkBjsY,KAAKwpY,sBAAsB/wO,UAChD,kBAAmBz4J,KAAKwpY,sBAAsB/wO,SAChDz4J,KAAK+jD,QAAQ9pB,GAAGj6B,KAAKwpY,sBAAsB/wO,QAAS,cAAez4J,KAAK+uY,gBAAgB,GAEtF,gBAAiB/uY,KAAKwpY,sBAAsB/wO,SAAWz4J,KAAKnC,MAAMqjP,aACpElhP,KAAK+jD,QAAQ9pB,GAAGj6B,KAAKwpY,sBAAsB/wO,QAAS,YAAaz4J,KAAKnC,MAAMqjP,aAAa,KAKxF,YAAAv2B,mBAAP,SAA0BE,EAA6BmkL,GAEjDhvY,KAAKnC,MAAMoxY,qBAAuBD,EAAUzD,YAAcvrY,KAAKsU,MAAMi3X,YACvEvrY,KAAKnC,MAAMoxY,sBAIR,YAAA9kL,qBAAP,WACEnqN,KAAK4tY,OAAOx1X,UACZpY,KAAK+jD,QAAQ3rC,WAGR,YAAA4kB,MAAP,WACMh9B,KAAKisY,gBAAkBjsY,KAAKwpY,sBAAsB/wO,SACpD,OAAA40O,EAAA,IAAmB,GACnBrtY,KAAKwpY,sBAAsB/wO,QAAQz7H,SAC1Bh9B,KAAKupY,eAAe9wO,UAC7B,OAAA40O,EAAA,IAAmB,GACnBrtY,KAAKupY,eAAe9wO,QAAQz7H,UAIzB,YAAAkyW,YAAP,WACElvY,KAAKosY,gBAGA,YAAA+C,SAAP,SAAgBtD,EAAkCE,GAChD/rY,KAAKqsY,UAAUR,EAAwBE,IAGjC,YAAA+C,iBAAR,SAAyBz3X,EAAU0yX,GAAnC,WACQlsY,EAAQmC,KAAKnC,MACbuxY,EAAM/3X,EAEV8zX,EASEttY,EATW,cACbwtY,EAQExtY,EARO,UACT,EAOEA,EAP+B,aAAjCwxY,OAAY,IAAG,EAAArvY,KAAK8pY,cAAa,EACjC,EAMEjsY,EANqD,wBAAvDyxY,OAAuB,IAAG,EAAAtvY,KAAK+qY,yBAAwB,EACvD,EAKEltY,EALuC,iBAAzC0xY,OAAgB,IAAG,EAAAvvY,KAAK6qY,kBAAiB,EAEzC,EAGEhtY,EAH+B,aAAjC2xY,OAAY,IAAG,EAAAxvY,KAAKorY,cAAa,EACjC,EAEEvtY,EAFuC,iBAAzC4xY,OAAgB,IAAG,EAAAzvY,KAAKkrY,kBAAiB,EACzC5rK,EACEzhO,EADM,SAEJgsY,EAAgBhsY,EAAL,YACbgsY,GAAewB,IACjBxB,EAAc7pY,KAAK4pY,kCAAkCC,IAGvD,IAAM6F,EAAS,SAACC,GAAwC,OACtD,gBAACP,EAAG,eAAKrF,EAAiB4F,GACxB,wBAAMn5X,UAAW,EAAK2zX,YAAYppK,cAAa,oBAAoB,sBAChEsuK,EAAaxxY,EAAO,EAAKisY,eACzB,EAAKO,wBACLiF,EAAwBzxY,EAAO,EAAKktY,0BACpCwE,EAAiB1xY,EAAO,EAAKgtY,oBAC5B,EAAKoB,iBACJZ,GAAaF,GAAiB,EAAKttY,MAAM4xY,mBAC1CA,EAAiB,EAAK5xY,MAAO,EAAKqtY,mBACnCG,IACEA,EAAUuE,YACX,EAAKC,qBACLL,EAAanE,EAAW,EAbwB,kBAkBlDyE,EAAUjG,EAEd,gBAACkG,EAAA,EAAU,CACTlG,YAAc7pY,KAAKisY,oBAA+BpyX,EAAdgwX,EACpC0E,gBAAkBxE,EAAoB,oBACtCzqK,SAAUA,IAET,SAACqwK,GAAuC,OAAAD,EAAA,MAG3CA,IAGF,OAAIrE,GAAaA,EAAUuE,WAEvB,gCACGE,EACA9vY,KAAK6vY,qBAAuBL,EAAanE,EAAWrrY,KAAKorY,gBAM9D,gCACG0E,EACD,gBAAC,IAAU,QAUT,YAAAD,kBAAR,WACU,IAAAtE,EAAevrY,KAAKsU,MAAV,WAEZ,EAAoDtU,KAAKnC,MAAvDytY,EAAW,cAAE0E,EAAgC,mCAErD,OAAKzE,MAGMD,IAAgBtrY,KAAK2pY,uBAAwBqG,IA0ElD,YAAArF,SAAR,WAKE,OAA2B,OAApB3qY,KAAKnC,MAAMsrE,YAAsCtvD,IAApB7Z,KAAKnC,MAAMsrE,MAAqD,kBAAxBnpE,KAAKnC,MAAM0X,WA4GjF,YAAAs5X,4BAAR,SAAoCx3X,EAAU0yX,GAA9C,WACQ,EAWF/pY,KAAKnC,MAVP,IAAAo8C,cAAM,IAAG,KAAE,EACXqlL,EAAQ,WACR4uK,EAAkB,qBAClBjgT,EAAO,UACPgiT,EAAwB,2BACxB7H,EAAe,kBACfiD,EAAS,YACT1sP,EAAM,SACNqtF,EAAI,OACJkkK,EAAwB,2BAEpBrG,EAAgB7pY,KAAKnC,MAAV,YACT0tY,EAAevrY,KAAKsU,MAAV,WAEZg7B,EAAa2gW,EACfA,IAA2B3wK,GAAWisK,IAAct9S,IAAWigT,GAC/Dj0V,GAAU,EAA6BA,IAAWqlL,GAAWisK,IAAct9S,IAAWm6S,GAE1F,YAAO2B,EAAa,CAClB93J,aAASp4N,EACTs2X,mBAAet2X,EACfqnO,iBAAarnO,EACbqqF,UAAW,EACX,qBAAqB,IAGnB2lS,GAAewB,IACjBxB,EAAc7pY,KAAK4pY,kCAAkCC,IAGvD,IAAM3B,EAAiB,YAAsD6B,EAAa,GAAI,CAAC,aAG3FmG,GACF,YAAOnG,EAAamG,GAGtB,IAAME,EAAc,SAACT,GAAwC,OAC3D,qCACMzH,EAAc,mBACDyH,EAAmBA,EAAiB,wBAAqB91X,EAC1EmyN,KAAMA,GAAc,SAAQ,gBACb1M,EAAQ,iBACR,EAAI,iBACHisK,EAAU,eACZ5sP,IAAW1wD,OAAUp0E,EAAS,mBAC1B,YAChBkwX,EAAY,oBACZ4F,EAAmBA,EAAiB,yBAAsB91X,GAE5DrD,UAAW84B,GAAcA,EAAWo5V,qBACpCrjK,UAAW,EAAK2nK,+BAChBpxO,aAAc,EAAK2xO,cACnBhqP,IAAK,EAAKimP,sBAAqB,qBACZ,EACnBv3J,QAAU3S,GAAa8oK,OAAoDvuX,EAAlC,EAAK4yX,2BAC9CvoS,UAAYo7H,IAAa8oK,GAAoB8F,EAAqB,OAAIr0X,EAAS,uBACzDkwX,EAAY,wBAClCsG,eAAgB,EAAK9D,gCAErB,wBAAM7/X,MAAO,CAAEwK,QAAS,SACrB,EAAK43X,iBAAiBz3X,EAAK0yX,GAC3B,EAAKuG,+BAA+BhhW,EAAYqgW,GAChD,EAAKY,4BA1BiD,MA+B7D,OAAO1G,EACL,gBAACkG,EAAA,EAAU,CAAClG,YAAaA,EAAavqK,SAAUA,IAC7C,SAACqwK,GAAuC,OAAAS,EAAA,MAG3CA,KA6BI,YAAAG,4BAAR,SAAoCjhW,GAClC,GAAIA,GAAcA,EAAW65V,QAAS,CAIpC,OAAO,wBAAM3yX,UAAW84B,EAAW65V,QAAO,eAAe,EAAMl3J,QAH/C,SAACtjD,GACfA,EAAGx6K,qBAIP,OAAO,MAGD,YAAAm8X,+BAAR,SACEhhW,EACAqgW,GAEM,MAOF3vY,KAAKnC,MANPqwY,EAAkB,qBAClBjgT,EAAO,UACPqxI,EAAQ,WACRkxK,EAAoB,uBACpBC,EAAoB,uBACpBrI,EAAe,kBAETmD,EAAevrY,KAAKsU,MAAV,WACd62X,EAAgBnrY,KAAKnC,MAAMstY,mBAETtxX,IAAlBsxX,IACFA,EAAgB,CACdj1U,SAAU,gBAId,IAAMw6U,EAAmB,OAAH,IAAG,CAAH,eACjBF,GAAoB,CACvBv2V,OAAQ3K,EACR2+C,QAASA,EACTqxI,SAAUA,EACV4uK,mBAAoBA,EACpBj8J,QAASjyO,KAAK2sY,aACdtB,eAAWxxX,EACXowX,UAAW,OAAF,IAAE,CAAF,eAAOkB,GAAa,CAAE30X,UAAWxW,KAAKmqY,YAAY/6U,WAC3D0vC,UAAW2xS,EACX,iBAAiB,EACjB,iBAAkBlF,EAClB,qBAAqB,IAIvB,OACE,gBAACoF,EAAU,eACLD,EAAgB,2BACKf,EAAmBA,EAAiB,2BAA6BA,EAC1FlnK,YAAazoO,KAAK+zN,aAClB7vH,SAAUkkS,IAAoB8F,EAAqB,GAAK,MA2ItD,YAAAa,eAAR,SACEpgN,GAGQ,IAAAwhN,EAAkBnwY,KAAKnC,MAAV,cACjBsyY,GACFA,EAAcxhN,GAGO,UAAnBA,EAAG++M,cACL1tY,KAAKwtY,8BAEL7+M,EAAG16K,iBACH06K,EAAGqlH,6BAIC,YAAAw5F,4BAAR,2BAGmC3zX,IAA7B7Z,KAAK4wY,sBACP5wY,KAAK4tY,OAAOh1W,aAAa54B,KAAK4wY,qBAC9B5wY,KAAK4wY,yBAAsB/2X,GAE7B7Z,KAAK0sY,kBAAmB,EAExB1sY,KAAK4wY,oBAAsB5wY,KAAK4tY,OAAO5lY,YAAW,WAChD,EAAK0kY,kBAAmB,EACxB,EAAKkE,yBAAsB/2X,EAI3B,EAAKmjB,UAn1BY,MA41Bb,YAAAmwW,oBAAR,SACEx+M,GAEA,OAAI3uL,KAAKnC,MAAMgzY,mBAENliN,EAAGoiH,QAAU/wS,KAAKnC,MAAMgzY,qBACtB7wY,KAAKnC,MAAMwtY,YAEb18M,EAAGoiH,QAAUxzG,EAAA,EAASxH,OAASpH,EAAGv1K,QAAUu1K,EAAGp1K,WAz1B5C,EAAAu3X,aAA0C,CACtDC,cAAe,YACf92V,OAAQ,GACR3gB,OAAO,GAo3BX,EA53BA,CAAgC,c,2HCjDnB03W,EAAb,WAKI,WAAY/8H,EAAe7rM,EAAgB8rM,EAAeC,GAAgB,oBAEtEn0Q,KAAKi0Q,cAAgBA,EACrBj0Q,KAAKooE,eAAiBA,EACtBpoE,KAAKk0Q,cAAgBA,EACrBl0Q,KAAKm0Q,eAAiBA,EAV9B,kDAeI,WACI,OAAOn0Q,KAAKi0Q,cAAgBj0Q,KAAKooE,iBAhBzC,4BAqBI,WACI,OAAOpoE,KAAKk0Q,cAAgBl0Q,KAAKm0Q,mBAtBzC,K,SCDa88H,EAAb,WACI,WAAY9hX,GAAQ,oBAChBnvB,KAAKmvB,OAASA,EAFtB,+CAII,WAGI,IAFA,IAAMA,EAASnvB,KAAKmvB,OACdi3V,EAAa,IAAIC,WAAWl3V,EAAOpxB,QAChCD,EAAI,EAAG+jC,EAAM1S,EAAOpxB,OAAQD,EAAI+jC,EAAK/jC,IAC1CsoX,EAAWtoX,GAAKqxB,EAAO4S,WAAWjkC,GAEtC,OAAOsoX,MAVf,KAaO,SAAS8qB,EAAW1mC,EAAU9lD,EAAUv5F,GAC3C,OAAO,IAAIooD,EAAQ,IAAI09H,EAAmBzmC,GAAW,IAAIymC,EAAmBvsF,IAAWjxC,YAAYtoD,GAAQllG,QAKxG,IAAMugF,EAAb,2FACI,SAAc7iI,EAAW/kE,GACrB,IAAK+kE,EACD,MAAM,IAAIz4D,MAAMtM,OAH5B,KAOauyY,EAAb,yFAgBI,SAAYC,EAAaC,EAAaC,EAAkBC,EAAkBxzY,GACtE,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAQD,IACxBwzY,EAAiBC,EAAmBzzY,GAAKszY,EAAYC,EAAcvzY,KAlB/E,mBAqBI,SAAaszY,EAAaC,EAAaC,EAAkBC,EAAkBxzY,GACvE,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAQD,IACxBwzY,EAAiBC,EAAmBzzY,GAAKszY,EAAYC,EAAcvzY,OAvB/E,KAmCM0zY,E,WAIF,aAAc,oBACVxxY,KAAKyxY,UAAY,GACjBzxY,KAAK0xY,gBAAkB,WACvB1xY,KAAK2xY,gBAAkB,WACvB3xY,KAAK4xY,gBAAkB,EACvB5xY,KAAK6xY,gBAAkB,E,kDAK3B,YAEQ7xY,KAAK4xY,gBAAkB,GAAK5xY,KAAK6xY,gBAAkB,IAEnD7xY,KAAKyxY,UAAUluY,KAAK,IAAIytY,EAAWhxY,KAAK0xY,gBAAiB1xY,KAAK4xY,gBAAiB5xY,KAAK2xY,gBAAiB3xY,KAAK6xY,kBAG9G7xY,KAAK4xY,gBAAkB,EACvB5xY,KAAK6xY,gBAAkB,EACvB7xY,KAAK0xY,gBAAkB,WACvB1xY,KAAK2xY,gBAAkB,a,gCAS3B,SAAmBG,EAAeC,GAE9B/xY,KAAK0xY,gBAAkBh6X,KAAKgI,IAAI1f,KAAK0xY,gBAAiBI,GACtD9xY,KAAK2xY,gBAAkBj6X,KAAKgI,IAAI1f,KAAK2xY,gBAAiBI,GACtD/xY,KAAK4xY,oB,gCAST,SAAmBE,EAAeC,GAE9B/xY,KAAK0xY,gBAAkBh6X,KAAKgI,IAAI1f,KAAK0xY,gBAAiBI,GACtD9xY,KAAK2xY,gBAAkBj6X,KAAKgI,IAAI1f,KAAK2xY,gBAAiBI,GACtD/xY,KAAK6xY,oB,wBAKT,WAKI,OAJI7xY,KAAK4xY,gBAAkB,GAAK5xY,KAAK6xY,gBAAkB,IAEnD7xY,KAAKgyY,iBAEFhyY,KAAKyxY,Y,+BAKhB,WAMI,OALIzxY,KAAK4xY,gBAAkB,GAAK5xY,KAAK6xY,gBAAkB,IAEnD7xY,KAAKgyY,iBAEThyY,KAAKyxY,UAAUt+Q,UACRnzH,KAAKyxY,c,KAOPl+H,EAAb,WAII,WAAY0+H,EAAkBC,GAAsD,IAApCC,EAAoC,uDAAN,KAAM,oBAChFnyY,KAAKoyY,4BAA8BD,EACnCnyY,KAAKqyY,kBAAoBJ,EACzBjyY,KAAKsyY,kBAAoBJ,EACzB,MAA6E3+H,EAAQg/H,aAAaN,GAAlG,mBAAOO,EAAP,KAA+BC,EAA/B,KAAuDC,EAAvD,KACA,EAA6En/H,EAAQg/H,aAAaL,GAAlG,mBAAOS,EAAP,KAA+BC,EAA/B,KAAuDC,EAAvD,KACA7yY,KAAK8yY,YAAeJ,GAAsBG,EAC1C7yY,KAAK+yY,wBAA0BP,EAC/BxyY,KAAKgzY,wBAA0BP,EAC/BzyY,KAAKizY,wBAA0BN,EAC/B3yY,KAAKkzY,wBAA0BN,EAC/B5yY,KAAKmzY,iBAAmB,GACxBnzY,KAAKozY,iBAAmB,GAhBhC,oDAmCI,SAAiBtB,EAAeuB,GAC5B,OAAIrzY,KAAKgzY,wBAAwBlB,KAAmB9xY,KAAKkzY,wBAAwBG,MAGzErzY,KAAK8yY,aAAc9yY,KAAK+yY,wBAAwBjB,KAAmB9xY,KAAKizY,wBAAwBI,MAvChH,oCAyCI,SAAuBvB,EAAeuB,GAClC,QAAKrzY,KAAKszY,iBAAiBxB,EAAeuB,IAGlB9/H,EAAQggI,kBAAkBvzY,KAAKqyY,kBAAmBP,KAClDv+H,EAAQggI,kBAAkBvzY,KAAKsyY,kBAAmBe,KA9ClF,sCAuDI,SAAyBG,EAAQl2D,GAC7B,OAAIt9U,KAAKgzY,wBAAwBQ,KAAYxzY,KAAKgzY,wBAAwB11D,MAGlEt9U,KAAK8yY,aAAc9yY,KAAK+yY,wBAAwBS,KAAYxzY,KAAK+yY,wBAAwBz1D,MA3DzG,sCA6DI,SAAyBk2D,EAAQl2D,GAC7B,OAAIt9U,KAAKkzY,wBAAwBM,KAAYxzY,KAAKkzY,wBAAwB51D,MAGlEt9U,KAAK8yY,aAAc9yY,KAAKizY,wBAAwBO,KAAYxzY,KAAKizY,wBAAwB31D,MAjEzG,yBAmEI,SAAYnyH,GACR,OAAOnrN,KAAKyzY,aAAa,EAAGzzY,KAAKgzY,wBAAwBj1Y,OAAS,EAAG,EAAGiC,KAAKkzY,wBAAwBn1Y,OAAS,EAAGotN,KApEzH,0BA2EI,SAAa8oD,EAAey/H,EAAax/H,EAAewxG,EAAav6J,GACjE,IAAMwoL,EAAe,EAAC,GAClB1tR,EAAUjmH,KAAK4zY,qBAAqB3/H,EAAey/H,EAAax/H,EAAewxG,EAAaiuB,GAOhG,OANIxoL,IAIAllG,EAAUjmH,KAAK6zY,gBAAgB5tR,IAE5B,CACHytJ,UAAWigI,EAAa,GACxB1tR,QAASA,KAtFrB,kCA8FI,SAAqBguJ,EAAey/H,EAAax/H,EAAewxG,EAAaiuB,GAGzE,IAFAA,EAAa,IAAK,EAEX1/H,GAAiBy/H,GAAex/H,GAAiBwxG,GAAe1lX,KAAKszY,iBAAiBr/H,EAAeC,IACxGD,IACAC,IAGJ,KAAOw/H,GAAez/H,GAAiByxG,GAAexxG,GAAiBl0Q,KAAKszY,iBAAiBI,EAAahuB,IACtGguB,IACAhuB,IAIA,IAAIz/P,EADR,GAAIguJ,EAAgBy/H,GAAex/H,EAAgBwxG,EAsB/C,OApBIxxG,GAAiBwxG,GACjBl/K,EAAMptC,OAAO66G,IAAkBy/H,EAAc,EAAG,0DAEhDztR,EAAU,CACN,IAAI+qR,EAAW/8H,EAAe,EAAGC,EAAewxG,EAAcxxG,EAAgB,KAG7ED,GAAiBy/H,GACtBltM,EAAMptC,OAAO86G,IAAkBwxG,EAAc,EAAG,0DAEhDz/P,EAAU,CACN,IAAI+qR,EAAW/8H,EAAey/H,EAAcz/H,EAAgB,EAAGC,EAAe,MAIlF1tE,EAAMptC,OAAO66G,IAAkBy/H,EAAc,EAAG,0DAChDltM,EAAMptC,OAAO86G,IAAkBwxG,EAAc,EAAG,0DAEhDz/P,EAAU,IAEPA,EAGX,IAAM6tR,EAAiB,CAAC,GAClBC,EAAiB,CAAC,GAClB3xY,EAASpC,KAAKg0Y,sBAAsB//H,EAAey/H,EAAax/H,EAAewxG,EAAaouB,EAAgBC,EAAgBJ,GAC5HM,EAAcH,EAAe,GAC7BI,EAAcH,EAAe,GACnC,GAAe,OAAX3xY,EAGA,OAAOA,EAEN,IAAKuxY,EAAa,GAAI,CAKvB,IAAMQ,EAAcn0Y,KAAK4zY,qBAAqB3/H,EAAeggI,EAAa//H,EAAeggI,EAAaP,GAClGS,EAAe,GAWnB,OAJIA,EANCT,EAAa,GAMC,CACX,IAAI3C,EAAWiD,EAAc,EAAGP,GAAeO,EAAc,GAAK,EAAGC,EAAc,EAAGxuB,GAAewuB,EAAc,GAAK,IAN7Gl0Y,KAAK4zY,qBAAqBK,EAAc,EAAGP,EAAaQ,EAAc,EAAGxuB,EAAaiuB,GASlG3zY,KAAKq0Y,mBAAmBF,EAAaC,GAGhD,MAAO,CACH,IAAIpD,EAAW/8H,EAAey/H,EAAcz/H,EAAgB,EAAGC,EAAewxG,EAAcxxG,EAAgB,MAnKxH,uBAsKI,SAAUogI,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAeC,EAAejD,EAAe4B,EAAaI,EAAgB/B,EAAersB,EAAaquB,EAAgBiB,EAAarB,GACrT,IAAIsB,EACAC,EAAiB,KAEjBC,EAAe,IAAI3D,EACnB4D,EAAcb,EACdc,EAAcb,EACdc,EAAoBxB,EAAe,GAAKC,EAAe,GAAMU,EAC7Dc,GAAqB,WACrBC,EAAex1Y,KAAKmzY,iBAAiBp1Y,OAAS,EAClD,EAAG,CAEC,IAAM03Y,EAAWH,EAAmBhB,EAEhCmB,IAAaL,GAAgBK,EAAWJ,GAAeP,EAAcW,EAAW,GAAKX,EAAcW,EAAW,IAG9G1D,GADAD,EAAgBgD,EAAcW,EAAW,IACTH,EAAmBb,EAC/C3C,EAAgByD,GAChBJ,EAAanD,iBAEjBuD,EAAoBzD,EACpBqD,EAAaO,mBAAmB5D,EAAgB,EAAGC,GACnDuD,EAAoBG,EAAW,EAAKnB,IAKpCvC,GADAD,EAAgBgD,EAAcW,EAAW,GAAK,GACdH,EAAmBb,EAC/C3C,EAAgByD,GAChBJ,EAAanD,iBAEjBuD,EAAoBzD,EAAgB,EACpCqD,EAAaQ,mBAAmB7D,EAAeC,EAAgB,GAC/DuD,EAAoBG,EAAW,EAAKnB,GAEpCkB,GAAgB,IAEhBlB,GADAQ,EAAgB90Y,KAAKmzY,iBAAiBqC,IACF,GACpCJ,EAAc,EACdC,EAAcP,EAAc/2Y,OAAS,WAElCy3Y,IAAiB,GAI5B,GADAP,EAAiBE,EAAaS,oBAC1BjC,EAAa,GAAI,CAGjB,IAAIkC,EAAqB/B,EAAe,GAAK,EACzCgC,EAAqB/B,EAAe,GAAK,EAC7C,GAAuB,OAAnBkB,GAA2BA,EAAel3Y,OAAS,EAAG,CACtD,IAAMg4Y,EAAoBd,EAAeA,EAAel3Y,OAAS,GACjE83Y,EAAqBn+X,KAAKC,IAAIk+X,EAAoBE,EAAkBC,kBACpEF,EAAqBp+X,KAAKC,IAAIm+X,EAAoBC,EAAkBE,kBAExEf,EAAiB,CACb,IAAIlE,EAAW6E,EAAoBnC,EAAcmC,EAAqB,EAAGC,EAAoBpwB,EAAcowB,EAAqB,QAGnI,CAEDX,EAAe,IAAI3D,EACnB4D,EAAcT,EACdU,EAAcT,EACdU,EAAoBxB,EAAe,GAAKC,EAAe,GAAMc,EAC7DU,EAAoB,WACpBC,EAAgBR,EAAeh1Y,KAAKozY,iBAAiBr1Y,OAAS,EAAIiC,KAAKozY,iBAAiBr1Y,OAAS,EACjG,EAAG,CAEC,IAAM03Y,EAAWH,EAAmBZ,EAEhCe,IAAaL,GAAgBK,EAAWJ,GAAeN,EAAcU,EAAW,IAAMV,EAAcU,EAAW,IAG/G1D,GADAD,EAAgBiD,EAAcU,EAAW,GAAK,GACdH,EAAmBT,EAC/C/C,EAAgByD,GAChBJ,EAAanD,iBAEjBuD,EAAoBzD,EAAgB,EACpCqD,EAAaQ,mBAAmB7D,EAAgB,EAAGC,EAAgB,GACnEuD,EAAoBG,EAAW,EAAKf,IAKpC3C,GADAD,EAAgBiD,EAAcU,EAAW,IACTH,EAAmBT,EAC/C/C,EAAgByD,GAChBJ,EAAanD,iBAEjBuD,EAAoBzD,EACpBqD,EAAaO,mBAAmB5D,EAAgB,EAAGC,EAAgB,GACnEuD,EAAoBG,EAAW,EAAKf,GAEpCc,GAAgB,IAEhBd,GADAK,EAAgB/0Y,KAAKozY,iBAAiBoC,IACF,GACpCJ,EAAc,EACdC,EAAcN,EAAch3Y,OAAS,WAElCy3Y,IAAiB,GAG5BN,EAAiBC,EAAae,aAElC,OAAOl2Y,KAAKq0Y,mBAAmBY,EAAgBC,KA/QvD,mCAiSI,SAAsBjhI,EAAey/H,EAAax/H,EAAewxG,EAAaouB,EAAgBC,EAAgBJ,GAC1G,IAAI7B,EAAgB,EAAGC,EAAgB,EACnCwC,EAAuB,EAAGC,EAAqB,EAC/CG,EAAuB,EAAGC,EAAqB,EAGnD3gI,IACAC,IAGA4/H,EAAe,GAAK,EACpBC,EAAe,GAAK,EAEpB/zY,KAAKmzY,iBAAmB,GACxBnzY,KAAKozY,iBAAmB,GAKxB,IAAM+C,EAAkBzC,EAAcz/H,GAAkByxG,EAAcxxG,GAChEkiI,EAAeD,EAAiB,EAChCrB,EAAgB,IAAIzuB,WAAW+vB,GAC/BrB,EAAgB,IAAI1uB,WAAW+vB,GAG/B9B,EAAuB5uB,EAAcxxG,EACrCwgI,EAAuBhB,EAAcz/H,EAKrCwgI,EAAyBxgI,EAAgBC,EACzC2gI,EAAyBnB,EAAchuB,EAKvCsvB,GADQN,EAAsBJ,GACP,IAAM,EAGnCQ,EAAcR,GAAuBrgI,EACrC8gI,EAAcL,GAAuBhB,EAErCC,EAAa,IAAK,EAQlB,IAAK,IAAI0C,EAAiB,EAAGA,GAAmBF,EAAiB,EAAK,EAAGE,IAAkB,CACvF,IAAIC,EAAwB,EACxBC,EAAwB,EAE5BhC,EAAuBv0Y,KAAKw2Y,kBAAkBlC,EAAsB+B,EAAgBA,EAAgB/B,EAAqB8B,GACzH5B,EAAqBx0Y,KAAKw2Y,kBAAkBlC,EAAsB+B,EAAgBA,EAAgB/B,EAAqB8B,GACvH,IAAK,IAAIX,EAAWlB,EAAsBkB,GAAYjB,EAAoBiB,GAAY,EAAG,CAUrF1D,GALID,EADA2D,IAAalB,GAAyBkB,EAAWjB,GAAsBM,EAAcW,EAAW,GAAKX,EAAcW,EAAW,GAC9GX,EAAcW,EAAW,GAGzBX,EAAcW,EAAW,GAAK,IAEjBA,EAAWnB,GAAuBG,EAKnE,IAHA,IAAMgC,EAAoB3E,EAGnBA,EAAgB4B,GAAe3B,EAAgBrsB,GAAe1lX,KAAKszY,iBAAiBxB,EAAgB,EAAGC,EAAgB,IAC1HD,IACAC,IAWJ,GATA+C,EAAcW,GAAY3D,EACtBA,EAAgBC,EAAgBuE,EAAwBC,IACxDD,EAAwBxE,EACxByE,EAAwBxE,IAMvBiD,GAAet9X,KAAKmgD,IAAI49U,EAAWf,IAAyB2B,EAAiB,GAC1EvE,GAAiBiD,EAAcU,GAG/B,OAFA3B,EAAe,GAAKhC,EACpBiC,EAAe,GAAKhC,EAChB0E,GAAqB1B,EAAcU,IAAqDY,GAAmB,KAEpGr2Y,KAAK02Y,UAAUpC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAeC,EAAejD,EAAe4B,EAAaI,EAAgB/B,EAAersB,EAAaquB,EAAgBiB,EAAarB,GAK9T,KAMvB,IAAMgD,GAAyBL,EAAwBriI,GAAkBsiI,EAAwBriI,GAAiBmiI,GAAkB,EACpI,GAAyC,OAArCr2Y,KAAKoyY,8BAAyCpyY,KAAKoyY,4BAA4BkE,EAAuBK,GAMtG,OAJAhD,EAAa,IAAK,EAElBG,EAAe,GAAKwC,EACpBvC,EAAe,GAAKwC,EAChBI,EAAuB,GAA6CN,GAAmB,KAEhFr2Y,KAAK02Y,UAAUpC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAeC,EAAejD,EAAe4B,EAAaI,EAAgB/B,EAAersB,EAAaquB,EAAgBiB,EAAarB,IAMrU1/H,IACAC,IACO,CACH,IAAI88H,EAAW/8H,EAAey/H,EAAcz/H,EAAgB,EAAGC,EAAewxG,EAAcxxG,EAAgB,KAKxHygI,EAAuB30Y,KAAKw2Y,kBAAkB9B,EAAsB2B,EAAgBA,EAAgB3B,EAAqB0B,GACzHxB,EAAqB50Y,KAAKw2Y,kBAAkB9B,EAAsB2B,EAAgBA,EAAgB3B,EAAqB0B,GACvH,IAAK,IAAIX,EAAWd,EAAsBc,GAAYb,EAAoBa,GAAY,EAAG,CAUrF1D,GALID,EADA2D,IAAad,GAAyBc,EAAWb,GAAsBG,EAAcU,EAAW,IAAMV,EAAcU,EAAW,GAC/GV,EAAcU,EAAW,GAAK,EAG9BV,EAAcU,EAAW,KAEZA,EAAWf,GAAuBG,EAKnE,IAHA,IAAM4B,EAAoB3E,EAGnBA,EAAgB79H,GAAiB89H,EAAgB79H,GAAiBl0Q,KAAKszY,iBAAiBxB,EAAeC,IAC1GD,IACAC,IAMJ,GAJAgD,EAAcU,GAAY3D,EAItBkD,GAAet9X,KAAKmgD,IAAI49U,EAAWnB,IAAwB+B,GACvDvE,GAAiBgD,EAAcW,GAG/B,OAFA3B,EAAe,GAAKhC,EACpBiC,EAAe,GAAKhC,EAChB0E,GAAqB3B,EAAcW,IAAqDY,GAAmB,KAEpGr2Y,KAAK02Y,UAAUpC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAeC,EAAejD,EAAe4B,EAAaI,EAAgB/B,EAAersB,EAAaquB,EAAgBiB,EAAarB,GAK9T,KAMvB,GAAI0C,GAAkB,KAAkC,CAGpD,IAAIpgG,EAAO,IAAIowE,WAAWmuB,EAAqBD,EAAuB,GACtEt+F,EAAK,GAAKq+F,EAAsBC,EAAuB,EACvDpD,EAAQyF,MAAM9B,EAAeP,EAAsBt+F,EAAM,EAAGu+F,EAAqBD,EAAuB,GACxGv0Y,KAAKmzY,iBAAiB5vY,KAAK0yS,IAC3BA,EAAO,IAAIowE,WAAWuuB,EAAqBD,EAAuB,IAC7D,GAAKD,EAAsBC,EAAuB,EACvDxD,EAAQyF,MAAM7B,EAAeJ,EAAsB1+F,EAAM,EAAG2+F,EAAqBD,EAAuB,GACxG30Y,KAAKozY,iBAAiB7vY,KAAK0yS,IAKnC,OAAOj2S,KAAK02Y,UAAUpC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAqBC,EAAsBC,EAAoBC,EAAuBC,EAAeC,EAAejD,EAAe4B,EAAaI,EAAgB/B,EAAersB,EAAaquB,EAAgBiB,EAAarB,KAvd7U,6BAieI,SAAgB1tR,GAEZ,IAAK,IAAInoH,EAAI,EAAGA,EAAImoH,EAAQloH,OAAQD,IAAK,CAMrC,IALA,IAAMkoG,EAASigB,EAAQnoH,GACjB+4Y,EAAgB/4Y,EAAImoH,EAAQloH,OAAS,EAAKkoH,EAAQnoH,EAAI,GAAGm2Q,cAAgBj0Q,KAAKgzY,wBAAwBj1Y,OACtG+4Y,EAAgBh5Y,EAAImoH,EAAQloH,OAAS,EAAKkoH,EAAQnoH,EAAI,GAAGo2Q,cAAgBl0Q,KAAKkzY,wBAAwBn1Y,OACtGg5Y,EAAgB/wS,EAAO59B,eAAiB,EACxC4uU,EAAgBhxS,EAAOmuK,eAAiB,EACvCnuK,EAAOiuK,cAAgBjuK,EAAO59B,eAAiByuU,GAC/C7wS,EAAOkuK,cAAgBluK,EAAOmuK,eAAiB2iI,KAC7CC,GAAiB/2Y,KAAKi3Y,yBAAyBjxS,EAAOiuK,cAAejuK,EAAOiuK,cAAgBjuK,EAAO59B,oBACnG4uU,GAAiBh3Y,KAAKk3Y,yBAAyBlxS,EAAOkuK,cAAeluK,EAAOkuK,cAAgBluK,EAAOmuK,kBAAkB,CAC1H,IAAMgjI,EAAmBn3Y,KAAKo3Y,uBAAuBpxS,EAAOiuK,cAAejuK,EAAOkuK,eAElF,GADuBl0Q,KAAKo3Y,uBAAuBpxS,EAAOiuK,cAAgBjuK,EAAO59B,eAAgB49B,EAAOkuK,cAAgBluK,EAAOmuK,kBACxGgjI,EAEnB,MAEJnxS,EAAOiuK,gBACPjuK,EAAOkuK,gBAEX,IAAImjI,EAAkB,CAAC,MACnBv5Y,EAAImoH,EAAQloH,OAAS,GAAKiC,KAAKs3Y,eAAerxR,EAAQnoH,GAAImoH,EAAQnoH,EAAI,GAAIu5Y,KAC1EpxR,EAAQnoH,GAAKu5Y,EAAgB,GAC7BpxR,EAAQ1zF,OAAOz0B,EAAI,EAAG,GACtBA,KAKR,IAAK,IAAIA,EAAImoH,EAAQloH,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC1C,IAAMkoG,EAASigB,EAAQnoH,GACnB+4Y,EAAe,EACfC,EAAe,EACnB,GAAIh5Y,EAAI,EAAG,CACP,IAAMy5Y,EAAatxR,EAAQnoH,EAAI,GAC/B+4Y,EAAeU,EAAWtjI,cAAgBsjI,EAAWnvU,eACrD0uU,EAAeS,EAAWrjI,cAAgBqjI,EAAWpjI,eAMzD,IAJA,IAAM4iI,EAAgB/wS,EAAO59B,eAAiB,EACxC4uU,EAAgBhxS,EAAOmuK,eAAiB,EAC1CqjI,EAAY,EACZC,EAAYz3Y,KAAK03Y,eAAe1xS,EAAOiuK,cAAejuK,EAAO59B,eAAgB49B,EAAOkuK,cAAeluK,EAAOmuK,gBACrGx8M,EAAQ,GAAIA,IAAS,CAC1B,IAAMs8M,EAAgBjuK,EAAOiuK,cAAgBt8M,EACvCu8M,EAAgBluK,EAAOkuK,cAAgBv8M,EAC7C,GAAIs8M,EAAgB4iI,GAAgB3iI,EAAgB4iI,EAChD,MAEJ,GAAIC,IAAkB/2Y,KAAKi3Y,yBAAyBhjI,EAAeA,EAAgBjuK,EAAO59B,gBACtF,MAEJ,GAAI4uU,IAAkBh3Y,KAAKk3Y,yBAAyBhjI,EAAeA,EAAgBluK,EAAOmuK,gBACtF,MAEJ,IACMr0H,GAD0Bm0H,IAAkB4iI,GAAgB3iI,IAAkB4iI,EAC3C,EAAI,GACvC92Y,KAAK03Y,eAAezjI,EAAejuK,EAAO59B,eAAgB8rM,EAAeluK,EAAOmuK,gBAClFr0H,EAAQ23P,IACRA,EAAY33P,EACZ03P,EAAY7/U,GAGpBquC,EAAOiuK,eAAiBujI,EACxBxxS,EAAOkuK,eAAiBsjI,EACxB,IAAMH,EAAkB,CAAC,MACrBv5Y,EAAI,GAAKkC,KAAKs3Y,eAAerxR,EAAQnoH,EAAI,GAAImoH,EAAQnoH,GAAIu5Y,KACzDpxR,EAAQnoH,EAAI,GAAKu5Y,EAAgB,GACjCpxR,EAAQ1zF,OAAOz0B,EAAG,GAClBA,KAMR,GAAIkC,KAAK8yY,YACL,IAAK,IAAIh1Y,EAAI,EAAG+jC,EAAMokF,EAAQloH,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAChD,IAAM65Y,EAAU1xR,EAAQnoH,EAAI,GACtB85Y,EAAU3xR,EAAQnoH,GAClB+5Y,EAAgBD,EAAQ3jI,cAAgB0jI,EAAQ1jI,cAAgB0jI,EAAQvvU,eACxE0vU,EAAiBH,EAAQ1jI,cACzB8jI,EAAeH,EAAQ3jI,cAAgB2jI,EAAQxvU,eAC/C4vU,EAAmBD,EAAeD,EAClCG,EAAiBN,EAAQzjI,cACzBgkI,EAAeN,EAAQ1jI,cAAgB0jI,EAAQzjI,eAC/CgkI,EAAmBD,EAAeD,EAExC,GAAIJ,EAAgB,GAAKG,EAAmB,IAAMG,EAAmB,GAAI,CACrE,IAAM93Y,EAAIL,KAAKo4Y,8BAA8BN,EAAgBE,EAAkBC,EAAgBE,EAAkBN,GACjH,GAAIx3Y,EAAG,CACH,kBAAiDA,EAAjD,GAAOg4Y,EAAP,KAA2BC,EAA3B,KACID,IAAuBV,EAAQ1jI,cAAgB0jI,EAAQvvU,gBAAkBkwU,IAAuBX,EAAQzjI,cAAgByjI,EAAQxjI,iBAEhIwjI,EAAQvvU,eAAiBiwU,EAAqBV,EAAQ1jI,cACtD0jI,EAAQxjI,eAAiBmkI,EAAqBX,EAAQzjI,cACtD0jI,EAAQ3jI,cAAgBokI,EAAqBR,EAC7CD,EAAQ1jI,cAAgBokI,EAAqBT,EAC7CD,EAAQxvU,eAAiB2vU,EAAeH,EAAQ3jI,cAChD2jI,EAAQzjI,eAAiB+jI,EAAeN,EAAQ1jI,iBAMpE,OAAOjuJ,IAzkBf,2CA2kBI,SAA8BguJ,EAAe7rM,EAAgB8rM,EAAeC,EAAgBokI,GACxF,GAAInwU,EAAiBmwU,GAAiBpkI,EAAiBokI,EACnD,OAAO,KAOX,IALA,IAAMC,EAAcvkI,EAAgB7rM,EAAiBmwU,EAAgB,EAC/DE,EAAcvkI,EAAgBC,EAAiBokI,EAAgB,EACjEd,EAAY,EACZiB,EAAoB,EACpBC,EAAoB,EACf76Y,EAAIm2Q,EAAen2Q,EAAI06Y,EAAa16Y,IACzC,IAAK,IAAIqG,EAAI+vQ,EAAe/vQ,EAAIs0Y,EAAat0Y,IAAK,CAC9C,IAAM27I,EAAQ9/I,KAAK44Y,yBAAyB96Y,EAAGqG,EAAGo0Y,GAC9Cz4P,EAAQ,GAAKA,EAAQ23P,IACrBA,EAAY33P,EACZ44P,EAAoB56Y,EACpB66Y,EAAoBx0Y,GAIhC,OAAIszY,EAAY,EACL,CAACiB,EAAmBC,GAExB,OAjmBf,sCAmmBI,SAAyB1kI,EAAeC,EAAen2Q,GAEnD,IADA,IAAI+hJ,EAAQ,EACHr7I,EAAI,EAAGA,EAAI1G,EAAQ0G,IAAK,CAC7B,IAAKzE,KAAKszY,iBAAiBr/H,EAAgBxvQ,EAAGyvQ,EAAgBzvQ,GAC1D,OAAO,EAEXq7I,GAAS9/I,KAAK+yY,wBAAwB9+H,EAAgBxvQ,GAAG1G,OAE7D,OAAO+hJ,IA3mBf,iCA6mBI,SAAoB7gJ,GAChB,OAAIA,GAAS,GAAKA,GAASe,KAAKgzY,wBAAwBj1Y,OAAS,GAGzDiC,KAAK8yY,aAAe,QAAQj8X,KAAK7W,KAAK+yY,wBAAwB9zY,MAjnB9E,uCAmnBI,SAA0Bg1Q,EAAe7rM,GACrC,GAAIpoE,KAAK64Y,oBAAoB5kI,IAAkBj0Q,KAAK64Y,oBAAoB5kI,EAAgB,GACpF,OAAO,EAEX,GAAI7rM,EAAiB,EAAG,CACpB,IAAMsrU,EAAcz/H,EAAgB7rM,EACpC,GAAIpoE,KAAK64Y,oBAAoBnF,EAAc,IAAM1zY,KAAK64Y,oBAAoBnF,GACtE,OAAO,EAGf,OAAO,IA7nBf,iCA+nBI,SAAoBz0Y,GAChB,OAAIA,GAAS,GAAKA,GAASe,KAAKkzY,wBAAwBn1Y,OAAS,GAGzDiC,KAAK8yY,aAAe,QAAQj8X,KAAK7W,KAAKizY,wBAAwBh0Y,MAnoB9E,uCAqoBI,SAA0Bi1Q,EAAeC,GACrC,GAAIn0Q,KAAK84Y,oBAAoB5kI,IAAkBl0Q,KAAK84Y,oBAAoB5kI,EAAgB,GACpF,OAAO,EAEX,GAAIC,EAAiB,EAAG,CACpB,IAAMuxG,EAAcxxG,EAAgBC,EACpC,GAAIn0Q,KAAK84Y,oBAAoBpzB,EAAc,IAAM1lX,KAAK84Y,oBAAoBpzB,GACtE,OAAO,EAGf,OAAO,IA/oBf,4BAipBI,SAAezxG,EAAe7rM,EAAgB8rM,EAAeC,GAGzD,OAFuBn0Q,KAAK+4Y,0BAA0B9kI,EAAe7rM,GAAkB,EAAI,IACpEpoE,KAAKg5Y,0BAA0B9kI,EAAeC,GAAkB,EAAI,KAnpBnG,gCA6pBI,SAAmBloQ,EAAM8/B,GACrB,IAAIsrW,EAAkB,GACtB,GAAoB,IAAhBprY,EAAKlO,QAAiC,IAAjBguC,EAAMhuC,OAC3B,OAAQguC,EAAMhuC,OAAS,EAAKguC,EAAQ9/B,EAEnC,GAAIjM,KAAKs3Y,eAAerrY,EAAKA,EAAKlO,OAAS,GAAIguC,EAAM,GAAIsrW,GAAkB,CAK5E,IAAMj1Y,EAAS,IAAI3C,MAAMwM,EAAKlO,OAASguC,EAAMhuC,OAAS,GAItD,OAHAozY,EAAQ8H,KAAKhtY,EAAM,EAAG7J,EAAQ,EAAG6J,EAAKlO,OAAS,GAC/CqE,EAAO6J,EAAKlO,OAAS,GAAKs5Y,EAAgB,GAC1ClG,EAAQ8H,KAAKltW,EAAO,EAAG3pC,EAAQ6J,EAAKlO,OAAQguC,EAAMhuC,OAAS,GACpDqE,EAGP,IAAMA,EAAS,IAAI3C,MAAMwM,EAAKlO,OAASguC,EAAMhuC,QAG7C,OAFAozY,EAAQ8H,KAAKhtY,EAAM,EAAG7J,EAAQ,EAAG6J,EAAKlO,QACtCozY,EAAQ8H,KAAKltW,EAAO,EAAG3pC,EAAQ6J,EAAKlO,OAAQguC,EAAMhuC,QAC3CqE,IAjrBnB,4BA4rBI,SAAe6J,EAAM8/B,EAAOsrW,GAGxB,GAFA7wM,EAAMptC,OAAOntJ,EAAKgoQ,eAAiBloO,EAAMkoO,cAAe,yDACxDztE,EAAMptC,OAAOntJ,EAAKioQ,eAAiBnoO,EAAMmoO,cAAe,yDACpDjoQ,EAAKgoQ,cAAgBhoQ,EAAKm8D,gBAAkBr8B,EAAMkoO,eAAiBhoQ,EAAKioQ,cAAgBjoQ,EAAKkoQ,gBAAkBpoO,EAAMmoO,cAAe,CACpI,IAAMD,EAAgBhoQ,EAAKgoQ,cACvB7rM,EAAiBn8D,EAAKm8D,eACpB8rM,EAAgBjoQ,EAAKioQ,cACvBC,EAAiBloQ,EAAKkoQ,eAQ1B,OAPIloQ,EAAKgoQ,cAAgBhoQ,EAAKm8D,gBAAkBr8B,EAAMkoO,gBAClD7rM,EAAiBr8B,EAAMkoO,cAAgBloO,EAAMq8B,eAAiBn8D,EAAKgoQ,eAEnEhoQ,EAAKioQ,cAAgBjoQ,EAAKkoQ,gBAAkBpoO,EAAMmoO,gBAClDC,EAAiBpoO,EAAMmoO,cAAgBnoO,EAAMooO,eAAiBloQ,EAAKioQ,eAEvEmjI,EAAgB,GAAK,IAAIrG,EAAW/8H,EAAe7rM,EAAgB8rM,EAAeC,IAC3E,EAIP,OADAkjI,EAAgB,GAAK,MACd,IA/sBnB,+BA8tBI,SAAkB5B,EAAUY,EAAgB6C,EAAmB9C,GAC3D,GAAIX,GAAY,GAAKA,EAAWW,EAE5B,OAAOX,EAIX,IAEM0D,EAAY9C,EAAiB,IAAM,EACzC,OAAIZ,EAAW,EAEH0D,KALWD,EAIsB,IAAM,GACR,EAAI,EAInCC,MARW/C,EAAe8C,EAAoB,GAOb,IAAM,GACR9C,EAAe,EAAIA,EAAe,KA9uBrF,6BAkBI,SAAsB7mX,GAClB,OAAQA,EAAIxxB,OAAS,GAAuB,kBAAXwxB,EAAI,KAnB7C,0BAqBI,SAAoBmtS,GAChB,IAAMzlT,EAAWylT,EAASlpD,cAC1B,GAAID,EAAQ6lI,eAAeniY,GAAW,CAElC,IADA,IAAMoiY,EAAS,IAAIhzB,WAAWpvW,EAASlZ,QAC9BD,EAAI,EAAG+jC,EAAM5qB,EAASlZ,OAAQD,EAAI+jC,EAAK/jC,IAC5Cu7Y,EAAOv7Y,GAAKypW,YAAWtwV,EAASnZ,GAAI,GAExC,MAAO,CAACmZ,EAAUoiY,GAAQ,GAE9B,OAAIpiY,aAAoBovW,WACb,CAAC,GAAIpvW,GAAU,GAEnB,CAAC,GAAI,IAAIovW,WAAWpvW,IAAW,KAjC9C,+BAiDI,SAAyBylT,EAAUz9T,GAC/B,MAAyC,oBAA9By9T,EAAS48E,iBACT58E,EAAS48E,iBAAiBr6Y,GAE9B,SArDf,M,6BCjJA,6CAOas6Y,EAAoB,gBAAwC,CACvEC,eAAgB,CACd51V,qBAAqB,EACrBF,SAAU,GACVC,eAAgB,O,uSCIP81V,EAAW,eACpB,aAAc,oBACVz5Y,KAAK05Y,WAAY,EACjB15Y,KAAK25Y,qBAAuB,IAAIllY,IAChCzU,KAAK45Y,oBAAsB55Y,KAAK25Y,qBAAqBhlY,MAJrC,mDAMpB,WACI,OAAO3U,KAAK05Y,YAPI,6BASpB,SAAgBx7S,GACRl+F,KAAK05Y,YAAcx7S,IAGvBl+F,KAAK05Y,UAAYx7S,EACjBl+F,KAAK25Y,qBAAqB1kY,KAAKjV,KAAK05Y,gBAdpB,EAAI,IAiBtB/5Y,EAAiBvB,OAAOuB,eACjBk6Y,EAAb,WACI,aAAc,oBACV75Y,KAAKyuF,QAAU,GAFvB,yCAII,SAAMl4E,GACF,OAAOvW,KAAKyuF,QAAQl4E,KAL5B,iBAOI,SAAIA,GACA,OAAOvW,KAAKyuF,QAAQl4E,KAR5B,oBAUI,SAAOA,EAAIvU,GACPhC,KAAKyuF,QAAQl4E,GAAMvU,MAX3B,KAcM83Y,E,WACF,aAAc,oBACV95Y,KAAKyuF,QAAU,G,yCAEnB,SAAMl4E,GACF,OAAOvW,KAAKyuF,QAAQl4E,K,oBAExB,SAAOA,EAAIvU,GACPhC,KAAKyuF,QAAQl4E,GAAMvU,M,KAGrB+3Y,E,gGACF,SAAmBt0Y,GACf,IADyB,EACnBJ,EAAUI,EACVrD,EAAS,IAAI03Y,EAFM,cAGEt7S,KAHF,IAGzB,2BAAkD,KAAvCw7S,EAAuC,QACxCh4Y,EAA+B,YAAtBg4Y,EAAapjY,UAAqBiD,EAAYxU,EAAQ20Y,EAAapjY,MAClFxU,EAAO63Y,OAAOD,EAAazjY,GAAIvU,IALV,8BAOzB,OAAOI,I,6BAEX,SAAuBiD,GACnB,IAD4B,EACtBjD,EAAS,IAAIssF,IADS,cAED8P,KAFC,IAE5B,2BAAkD,KAAvCw7S,EAAuC,QAC9C53Y,EAAO63Y,OAAOD,EAAazjY,GAAIyjY,EAAa1hS,SAASjzG,EAAQ60Y,MAAMF,EAAazjY,OAHxD,8BAK5B,OAAOnU,I,4BAEX,SAAsBiD,EAASo1D,GAC3B,IADgC,EAC1Br4D,EAAS,IAAIy3Y,EADa,cAELr7S,KAFK,IAEhC,2BAAkD,KAAvCw7S,EAAuC,QAC9C53Y,EAAO63Y,OAAOD,EAAazjY,GAAIyjY,EAAaG,QAAQ1/U,EAAKr4D,EAAQiD,EAAQ60Y,MAAMF,EAAazjY,OAHhE,8BAKhC,OAAOnU,I,yBAEX,SAAmB8B,EAAG5E,GAClB,GAAiB,kBAAN4E,GAA+B,kBAAN5E,EAChC,OAAQ4E,IAAM5E,EAElB,GAAIG,MAAM+b,QAAQtX,IAAMzE,MAAM+b,QAAQlc,GAClC,SAAQG,MAAM+b,QAAQtX,KAAMzE,MAAM+b,QAAQlc,KAAKmlH,IAAcvgH,EAAG5E,GAEpE,IAAK,IAAIhB,KAAO4F,EACZ,IAAK61Y,EAAqBK,YAAYl2Y,EAAE5F,GAAMgB,EAAEhB,IAC5C,OAAO,EAGf,OAAO,I,yBAEX,SAAmB4F,EAAG5E,GAClB,IADqB,EACf8C,EAAS,GACXi4Y,GAAmB,EAFF,cAGM77S,KAHN,IAGrB,2BAAkD,KAAvCw7S,EAAuC,QACxCplP,GAAWmlP,EAAqBK,YAAYl2Y,EAAEg2Y,MAAMF,EAAazjY,IAAKjX,EAAE46Y,MAAMF,EAAazjY,KACjGnU,EAAO43Y,EAAazjY,IAAMq+I,EACtBA,IACAylP,GAAmB,IAPN,8BAUrB,OAAQA,EAAmB,IAAI7rT,IAA0BpsF,GAAU,S,KA+I3E,SAASk4Y,EAA2B70Y,GAChC,IAAMJ,EAAUs0K,IAAkBl0K,GAElC,OA5IJ,SAAwBJ,GACpB,IAAMw5E,EAAWx5E,EAAQw5E,UACR,IAAbA,EACAx5E,EAAQw5E,SAAW,MAED,IAAbA,IACLx5E,EAAQw5E,SAAW,OAEvB,IAAM+a,EAAcv0F,EAAQu0F,aACR,IAAhBA,EACAv0F,EAAQu0F,YAAc,MAED,IAAhBA,IACLv0F,EAAQu0F,YAAc,QAGE,IADAv0F,EAAQ2hF,sBAEhC3hF,EAAQ2hF,oBAAsB,QAC9B3hF,EAAQ4hF,kBAAoB,QAC5B5hF,EAAQ+hF,aAAe,SAGJ,YADA/hF,EAAQk6F,iBAE3Bl6F,EAAQk6F,eAAiB,SAE7B,IAAMqD,EAAmBv9F,EAAQu9F,kBACR,IAArBA,EACAv9F,EAAQu9F,iBAAmB,YAED,IAArBA,IACLv9F,EAAQu9F,iBAAmB,QAE/B,IAAMF,EAAsBr9F,EAAQq9F,qBACR,IAAxBA,EACAr9F,EAAQq9F,oBAAsB,QAED,IAAxBA,IACLr9F,EAAQq9F,oBAAsB,QAElC,IAAM/D,EAA0Bt5F,EAAQs5F,yBACR,IAA5BA,EACAt5F,EAAQs5F,wBAA0B,MAED,IAA5BA,IACLt5F,EAAQs5F,wBAA0B,OAEtC,IAAMsF,EAAgB5+F,EAAQ4+F,eACR,IAAlBA,EACA5+F,EAAQ4+F,cAAgB,OAED,IAAlBA,IACL5+F,EAAQ4+F,cAAgB,gBAE5B,IAAMN,EAAUt+F,EAAQs+F,QACxB,GAAIA,GAA4C,kBAA1BA,EAAQ42S,eAA8B52S,EAAQ42S,cAAe,CAC/E,IAAM9yO,EAAU,CAChBA,OAAoB,cACpBA,SAAsB,gBACtBA,YAAyB,mBACzBA,WAAwB,iBACxBA,MAAmB,aACnBA,SAAsB,gBACtBA,MAAmB,cACnBA,OAAoB,cACpBA,UAAuB,iBACvBA,OAAoB,cACpBA,SAAsB,iBACtBA,MAAmB,aACnBA,SAAsB,gBACtBA,KAAkB,YAClBA,MAAmB,aACnBA,SAAsB,gBACtBA,KAAkB,YAClBA,WAAwB,kBACxBA,QAAqB,eACrBA,KAAkB,YAClBA,MAAmB,aACnBA,KAAkB,YAClBA,UAAuB,iBACvBA,OAAoB,cACpBA,cAA2B,qBAC3BA,QAAqB,gBACrB9wJ,YAAQ8wJ,GAAS,SAAAp0D,GACb,IAAMrxG,EAAQ2hG,EAAQ42S,cAAclnS,EAAM/0G,MAC5B,IAAV0D,IACA2hG,EAAQ0P,EAAMrxG,OAASA,MAKnC,IAAMq/F,EAAQh8F,EAAQg8F,OACR,IAAVA,EACAh8F,EAAQg8F,MAAQ,CACZrT,SAAS,IAGE,IAAVqT,IACLh8F,EAAQg8F,MAAQ,CACZrT,SAAS,IAGjB,IAAMgU,EAAiB38F,EAAQ28F,gBACR,IAAnBA,EACA38F,EAAQ28F,eAAiB,CACrBhU,SAAS,IAGW,IAAnBgU,IACL38F,EAAQ28F,eAAiB,CACrBhU,SAAS,IAGjB,IAAM3G,EAAahiF,EAAQgiF,YACR,IAAfA,EACAhiF,EAAQgiF,WAAa,QAED,IAAfA,IACLhiF,EAAQgiF,WAAa,YAEzB,IAAMma,EAAgBn8F,EAAQm8F,eACR,IAAlBA,EACAn8F,EAAQm8F,cAAgB,UAED,IAAlBA,IACLn8F,EAAQm8F,cAAgB,SAE5B,IAAQw4K,EAAmD30Q,EAAnD20Q,mBAAoBwgI,EAA+Bn1Y,EAA/Bm1Y,2BACvBn1Y,EAAQyuI,SACTzuI,EAAQyuI,OAAS,SAEMj6H,IAAvBmgQ,IACA30Q,EAAQyuI,OAAOx4C,cAAgB0+K,QAEAngQ,IAA/B2gY,IACAn1Y,EAAQyuI,OAAOv4C,6BAA+Bi/S,GAKlDC,CAAep1Y,GACRA,EAEJ,IAAM42L,EAAb,kDACI,WAAYvB,EAAgBj1L,GAAU,kCAClC,gBACKqoC,aAAe,EAAKpkC,UAAU,IAAI+K,KACvC,EAAKs5B,YAAc,EAAKD,aAAan5B,MACrC,EAAK+lY,iBAAmB,EAAKhxY,UAAU,IAAI+K,KAC3C,EAAKkmY,gBAAkB,EAAKD,iBAAiB/lY,MAC7C,EAAK+lL,eAAiBA,EACtB,EAAKkgN,yBAA0B,EAC/B,EAAKC,sBAAwB,IAAIjsT,IACjC,EAAKksT,eAAiB,EACtB,EAAKC,uBAAyB,EAC9B,EAAKC,YAAcV,EAA2B70Y,GAC9C,EAAKw1Y,aAAelB,EAAqBmB,YAAY,EAAKF,aAC1D,EAAK//M,kBAAoB8+M,EAAqBoB,gBAAgB,EAAKF,cACnE,EAAKvxY,UAAUilQ,IAAW51H,sBAAqB,SAAAn2I,GAAC,OAAI,EAAKo4L,wBACzD,EAAKtxL,UAAU+vY,EAASG,qBAAoB,SAAAh3Y,GAAC,OAAI,EAAKo4L,wBAfpB,EAD1C,2DAkBI,SAAwBD,MAlB5B,8BAoBI,cApBJ,+BAsBI,WACI,IAAMqgN,EAAap7Y,KAAKqF,QAClBi3N,EAAat8N,KAAKq7Y,0BACxB,GAAKD,EAGA,CACD,IAAME,EAAcvB,EAAqBwB,YAAYH,EAAY9+K,GACjE,GAAoB,OAAhBg/K,EAEA,OAEJt7Y,KAAKqF,QAAUi3N,EACft8N,KAAK06Y,iBAAiBzlY,KAAKqmY,GAC3Bt7Y,KAAK8tC,aAAa74B,KAAKqmY,QAVvBt7Y,KAAKqF,QAAUi3N,IA1B3B,2BAuCI,WACI,OAAOt8N,KAAKg7Y,cAxCpB,qCA0CI,WACI,IAAMQ,EAAax7Y,KAAKy7Y,uBAClB/kN,EAAeglN,IAAaC,4BAA4B37Y,KAAKi7L,kBAAmBugN,EAAW1iN,UAAW0iN,EAAWrnT,WAAYn0F,KAAK06L,gBAClIjgI,EAAM,CACRk5B,OAAQ3zF,KAAK66Y,sBACbjnT,WAAY4nT,EAAW5nT,WACvBC,YAAa2nT,EAAW3nT,YACxB9B,SAAU/xF,KAAKy7L,kBAAkB/E,GACjCzlG,qBAAsBuqT,EAAWvqT,qBACjC6C,uBAAwB9zF,KAAK46Y,wBAC7B7mT,cAAe/zF,KAAK86Y,eACpB9mT,sBAAuBh0F,KAAK+6Y,uBAC5Bn0T,wBAAyB40T,EAAW50T,wBACpCuN,WAAYqnT,EAAWrnT,WACvB+J,aAAcu7S,EAASmC,kBACvBjrT,qBAAsB6qT,EAAW7qT,sBAErC,OAAOopT,EAAqB8B,eAAe77Y,KAAKi7L,kBAAmBxgI,KA3D3E,2BAsFI,SAAcqhV,GACV,GAA2B,qBAAhBA,EAAX,CAGA,IAAMx/K,EAAag+K,EAA2BwB,GAC1C7/M,EAA0B8/M,cAAc/7Y,KAAKg7Y,YAAa1+K,KAG9Dt8N,KAAKg7Y,YAAcrhO,IAAc35K,KAAKg7Y,YAAa1+K,GAAc,IACjEt8N,KAAKi7Y,aAAelB,EAAqBmB,YAAYl7Y,KAAKg7Y,aAC1Dh7Y,KAAKi7L,kBAAoB8+M,EAAqBoB,gBAAgBn7Y,KAAKi7Y,cACnEj7Y,KAAKg7L,wBAjGb,uCAmGI,SAA0BlnG,GACtB9zF,KAAK46Y,wBAA0B9mT,EAC/B9zF,KAAKg7L,sBArGb,8BAuGI,SAAiBppD,GACb,IAAM59C,EAAwBioG,EAA0B+/M,YAAYpqQ,GAChE5xI,KAAK+6Y,yBAA2B/mT,IAGpCh0F,KAAK+6Y,uBAAyB/mT,EAC9Bh0F,KAAKg7L,uBA7Gb,8BA+GI,SAAiBjnG,GACT/zF,KAAK86Y,iBAAmB/mT,IAG5B/zF,KAAK86Y,eAAiB/mT,EACtB/zF,KAAKg7L,wBApHb,4BA6DI,SAAqB1tJ,EAAMsoB,GACvB,IAAK,IAAMt3D,KAAOs3D,EACd,GAAIj2D,EAAeC,KAAKg2D,EAAQt3D,GAAM,CAClC,IAAM29Y,EAAcrmV,EAAOt3D,GACrB49Y,EAAY5uW,EAAKhvC,GACvB,GAAI49Y,IAAcD,EACd,SAEJ,GAAIx8Y,MAAM+b,QAAQ0gY,IAAcz8Y,MAAM+b,QAAQygY,GAAc,CACxD,IAAKx3R,IAAcy3R,EAAWD,GAC1B,OAAO,EAEX,SAEJ,GAAIC,GAAkC,kBAAdA,GAA0BD,GAAsC,kBAAhBA,EAA0B,CAC9F,IAAKj8Y,KAAK+7Y,cAAcG,EAAWD,GAC/B,OAAO,EAEX,SAEJ,OAAO,EAGf,OAAO,IApFf,yBAsHI,SAAmB17Y,GAEf,IADA,IAAIY,EAAI,EACDZ,GACHA,EAAImX,KAAKE,MAAMrX,EAAI,IACnBY,IAEJ,OAAOA,GAAQ,MA5HvB,GAA+C6I,KA+HlCmyY,EAA8B/9Y,OAAO2f,OAAO,CACrDxH,GAAI,SACJ4b,MAAO,EACPhtB,KAAM,SACN8sB,MAAOnP,IAAa,2BAA4B,UAChD8xL,MAAO,IAELsrD,EAAwBnpO,IAAS5I,GAAGvN,IAAWi4I,eAC/CujP,EAAsBh+Y,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAI+7Y,GAA8B,CAAEj7X,WAAY,CAChG,iBAAkB,CACd/b,KAAM,SACNurF,QAASsK,IAAsB5U,QAC/BqJ,QAAS,EACTuJ,oBAAqBl2E,IAAa,UAAW,2IAgBjD,sBAAuB,CACnB3d,KAAM,UACNurF,QAASsK,IAAsB1U,aAC/B0S,oBAAqBl2E,IAAa,eAAgB,sIAEtD,2BAA4B,CACxB3d,KAAM,UACNurF,QAASsK,IAAsBqD,kBAC/BrF,oBAAqBl2E,IAAa,oBAAqB,qJAE3D,4BAA6B,CACzB3d,KAAM,UACNurF,QAASsK,IAAsBsD,mBAC/BroF,YAAa6M,IAAa,qBAAsB,8CAEpD,gCAAiC,CAC7B3d,KAAM,UACNurF,QAASsK,IAAsBuD,uBAC/BtoF,YAAa6M,IAAa,yBAA0B,mFAExD,8BAA+B,CAC3B3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,uBAAwB,oFAEtD,kCAAmC,CAC/B1B,KAAM,CAAC,kBAAmB,oBAAqB,gBAC/CsvE,QAAS,oBACTrvE,iBAAkB,CACdyB,IAAa,2CAA4C,gDACzDA,IAAa,6CAA8C,+DAC3DA,IAAa,wCAAyC,2CAE1D7M,YAAa6M,IAAa,2BAA4B,uEAE1D,sCAAuC,CACnC1B,KAAM,EAAC,GAAM,EAAO,qBACpBC,iBAAkB,CACdyB,IAAa,4BAA6B,uDAC1CA,IAAa,6BAA8B,wDAC3CA,IAAa,yCAA0C,qGAE3D4tE,QAAS,oBACTz6E,YAAa6M,IAAa,+BAAgC,0FAE9D,oBAAqB,CACjB3d,KAAM,UACNurF,SAAS,EACTsI,oBAAqBl2E,IAAa,aAAc,6FAEpD,mCAAoC,CAChC3d,KAAM,UACNurF,QAAS,IACTz6E,YAAa6M,IAAa,4BAA6B,0EAE3D,2BAA4B,CACxB3d,KAAM,QACNurF,SAAS,EACTz6E,YAAa6M,IAAa,kBAAmB,0EAC7C0lD,MAAO,CACHrjE,KAAM,QACNqjE,MAAO,CACH,CACIrjE,KAAM,SACN8Q,YAAa6M,IAAa,qBAAsB,sDAEpD,CACI3d,KAAM,SACN8Q,YAAa6M,IAAa,sBAAuB,yDAKjE,wCAAyC,CACrC3d,KAAM,QACNurF,SAAS,EACTz6E,YAAa6M,IAAa,+BAAgC,gHAC1D0lD,MAAO,CACHrjE,KAAM,QACNqjE,MAAO,CACH,CACIrjE,KAAM,SACN8Q,YAAa6M,IAAa,qBAAsB,sDAEpD,CACI3d,KAAM,SACN8Q,YAAa6M,IAAa,sBAAuB,yDAKjE,gCAAiC,CAC7B3d,KAAM,SACNurF,QAAS,IACTz6E,YAAa6M,IAAa,qBAAsB,6FAEpD,yBAA0B,CACtB3d,KAAM,SACNurF,QAAS,GACTz6E,YAAa6M,IAAa,cAAe,4EAE7C,8BAA+B,CAC3B3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,aAAc,4EAE5C,kCAAmC,CAC/B3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,uBAAwB,qFAEtD,8BAA+B,CAC3B3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,mBAAoB,qFAElD,sBAAuB,CACnB3d,KAAM,UACNurF,SAAS,EACTz6E,YAAa6M,IAAa,WAAY,gDAE1C,sBAAuB,CACnB3d,KAAM,SACNic,KAAM,CAAC,MAAO,KAAM,WACpBsvE,QAAS,UACTkO,yBAA0B,CACtB97E,IAAa,eAAgB,0BAC7BA,IAAa,cAAe,0CAC5BA,IAAa,mBAAoB,sE,MAIV7G,E,cAIZuiF,K,IAA3B,2BAAkD,KAAvCw7S,EAAuC,QACxC/qT,EAAS+qT,EAAa/qT,OAC5B,GAAsB,qBAAXA,EACP,GANsB,qBADShzE,EAOGgzE,GANrB9pF,MAA2C,qBAAZ8W,EAAE21E,MAQ1CwqT,EAAoBl7X,WAApB,iBAAyC84X,EAAapjY,OAAUq4E,OAGhE,IAAK,IAAI3wF,KAAO2wF,EACRtvF,EAAeC,KAAKqvF,EAAQ3wF,KAC5B89Y,EAAoBl7X,WAAW5iB,GAAO2wF,EAAO3wF,K,8BAMjE,IAAI+9Y,EAAgC,KACpC,SAASC,IAOL,OANsC,OAAlCD,IACAA,EAAgCj+Y,OAAO8B,OAAO,MAC9C9B,OAAOsY,KAAK0lY,EAAoBl7X,YAAYvK,SAAQ,SAACy8B,GACjDipW,EAA8BjpW,IAAQ,MAGvCipW,EAEJ,SAASE,EAAyBj+Y,GAErC,OADgCg+Y,IACA,UAAD,OAAWh+Y,MAAU,EAEjD,SAASk+Y,EAA6Bl+Y,GAEzC,OADgCg+Y,IACA,cAAD,OAAeh+Y,MAAU,EAE5D4hQ,EAAsBmtB,sBAAsB+uH,I,kJC1jBtCK,EAA2Bl2Y,IAAuB,IAAM,KAKjDm1Y,EAAb,WAII,WAAYxrX,GAAM,oBACdlwB,KAAK08Y,wBAAqB7iY,EAC1B7Z,KAAK84L,UAAY5oK,EAAK4oK,UACtB94L,KAAKm0F,WAAajkE,EAAKikE,WACvBn0F,KAAKoqD,WAAatqD,OAAOowB,EAAKk6B,YAC9BpqD,KAAKwqD,WAAa1qD,OAAOowB,EAAKs6B,YAC9BxqD,KAAKuqD,SAAWr6B,EAAKq6B,SACrBvqD,KAAKy+I,oBAAsBvuH,EAAKuuH,oBAChCz+I,KAAKwmF,WAA+B,EAAlBt2D,EAAKs2D,WACvBxmF,KAAKo+F,cAAgBluE,EAAKkuE,cAblC,yCA4DI,WACI,OAAOp+F,KAAK84L,UAAY,IAAM94L,KAAKm0F,WAAa,IAAMn0F,KAAKoqD,WAAa,IAAMpqD,KAAKwqD,WAAa,IAAMxqD,KAAKuqD,SAAW,IAAMvqD,KAAKy+I,oBAAsB,IAAMz+I,KAAKwmF,WAAa,IAAMxmF,KAAKo+F,gBA7DlM,mCAkEI,SAAsBu+S,GAClB,IAAMvyV,EAAasxV,EAAakB,cAAc58Y,KAAKoqD,YACnD,OAAIuyV,GAAsB38Y,KAAKoqD,aAAeuyV,EAC1C,UAAUvyV,EAAV,aAAyBuyV,GAEtBvyV,KAvEf,0CAkBI,SAAmC/kD,EAASyzL,EAAW3kG,EAAY0oT,GAC/D,IAAMzyV,EAAa/kD,EAAQotB,IAAI,IACzB+3B,EAAanlD,EAAQotB,IAAI,IACzB83B,EAAWllD,EAAQotB,IAAI,IACvBgsH,EAAsBp5I,EAAQotB,IAAI,IAClC+zD,EAAanhF,EAAQotB,IAAI,IACzB2rE,EAAgB/4F,EAAQotB,IAAI,IAClC,OAAOipX,EAAaoB,QAAQ1yV,EAAYI,EAAYD,EAAUk0F,EAAqBj4D,EAAY4X,EAAe06F,EAAW3kG,EAAY0oT,KAzB7I,qBA8BI,SAAezyV,EAAYI,EAAYD,EAAUk0F,EAAqBj4D,EAAY4X,EAAe06F,EAAW3kG,EAAY0oT,GACjG,IAAfr2T,EACAA,EAAai2T,EAA2BlyV,EAEnCi8B,EAnCW,IAqChBA,GAA0Bj8B,IAG9Bi8B,EAAa9uE,KAAKq/C,MAAMyvB,IAxCJ,IA0ChBA,EA1CgB,GA4CpB,IAAMu2T,EAA4B,GAAKF,EAAmB,EAAgC,GAA5BluI,IAAWn1H,gBAGzE,OAAO,IAAIkiQ,EAAa,CACpB5iN,UAAWA,EACX3kG,WAAYA,EACZ/pC,WAAYA,EACZI,WAAYA,EACZD,SAPJA,GAAYwyV,EAQRt+P,oBAAqBA,EACrBj4D,WARJA,GAAcu2T,EASV3+S,cAAeA,MAtD3B,2BAyEI,SAAqBh0C,GACjB,MAAI,QAAQvzC,KAAKuzC,GAENA,EAEP,OAAOvzC,KAAKuzC,GAEZ,WAAWA,EAAX,KAEGA,MAlFf,KAuFayuI,EAAb,kDAII,WAAY3oK,EAAMmoK,GAAW,kCACzB,cAAMnoK,IACD8sX,yBAAsBnjY,EAC3B,EAAKqpR,QAR+B,EASpC,EAAK7qG,UAAYA,EACjB,EAAKU,YAAc7oK,EAAK6oK,YACxB,EAAK9kG,+BAAiC/jE,EAAK+jE,+BAC3C,EAAK0kG,+BAAiCzoK,EAAKyoK,+BAC3C,EAAKK,+BAAiC9oK,EAAK8oK,+BAC3C,EAAKJ,WAAa1oK,EAAK0oK,WACvB,EAAKK,YAAc/oK,EAAK+oK,YACxB,EAAKC,cAAgBhpK,EAAKgpK,cAC1B,EAAKhlG,cAAgBhkE,EAAKgkE,cAZD,EAJjC,0CAqBI,SAAOh1E,GACH,OAAQlf,KAAKoqD,aAAelrC,EAAMkrC,YAC3BpqD,KAAKwqD,aAAetrC,EAAMsrC,YAC1BxqD,KAAKuqD,WAAarrC,EAAMqrC,UACxBvqD,KAAKy+I,sBAAwBv/H,EAAMu/H,qBACnCz+I,KAAKwmF,aAAetnE,EAAMsnE,YAC1BxmF,KAAKo+F,gBAAkBl/E,EAAMk/E,eAC7Bp+F,KAAKi0F,iCAAmC/0E,EAAM+0E,gCAC9Cj0F,KAAK24L,iCAAmCz5K,EAAMy5K,gCAC9C34L,KAAKg5L,iCAAmC95K,EAAM85K,gCAC9Ch5L,KAAK44L,aAAe15K,EAAM05K,YAC1B54L,KAAKi5L,cAAgB/5K,EAAM+5K,aAC3Bj5L,KAAKk5L,gBAAkBh6K,EAAMg6K,eAC7Bl5L,KAAKk0F,gBAAkBh1E,EAAMg1E,kBAlC5C,GAA8BwnT,I,4JCjGjBuB,EAAb,WACI,WAAY5rX,EAAK6rX,GAA0B,IAAjB9rX,EAAiB,uDAAT8rX,EAAS,oBACvCl9Y,KAAKm9Y,eAAiB,CAAC,MACvBn9Y,KAAKm9Y,eAAe,GAAqB9rX,EACzCrxB,KAAKm9Y,eAAe,GAAmBD,EACvCl9Y,KAAKm9Y,eAAe,GAAiB/rX,EAL7C,2CAOI,SAAQwqC,EAAIyyI,EAAO+uM,GACf,GAAqB,IAAjB/uM,EAAMtwM,OACN,OAAO,KAGX,IADA,IAAMqE,EAAS,GACNtE,EAAI,EAAG+jC,EAAMwsK,EAAMtwM,OAAQD,EAAI+jC,EAAK/jC,IAAK,CAC9C,IAAM6iL,EAAO0tB,EAAMvwM,GACb+1O,EAAWupK,EAAiBz8N,GAClC,GAAiB,OAAbkzD,EAEA,OAAO,KAEXzxO,EAAOtE,GAAKu/Y,EAAgB18N,EAAMkzD,EAAU7zO,KAAKm9Y,eAAevhV,IAEpE,OAAOx5D,EAAOua,KAAK,SArB3B,KA2Ba2gY,EAAkB,IAAIL,EAAsB,CACrD3jY,QAAS,SACTD,SAAU,SACVD,OAAQ,SACRG,QAAS,SACT+vJ,UAAW,IACZ,CACChwJ,QAASwJ,IAAa,CAAExkB,IAAK,UAAW44B,QAAS,CAAC,+DAAiE,QACnH7d,SAAUyJ,IAAa,CAAExkB,IAAK,WAAY44B,QAAS,CAAC,6DAA+D,SACnH9d,OAAQ0J,IAAa,CAAExkB,IAAK,SAAU44B,QAAS,CAAC,2DAA6D,OAC7G3d,QAASuJ,IAAa,CAAExkB,IAAK,aAAc44B,QAAS,CAAC,+DAAiE,WACtHoyI,UAAW,KACZ,CACChwJ,QAASwJ,IAAa,CAAExkB,IAAK,UAAW44B,QAAS,CAAC,+DAAiE,QACnH7d,SAAUyJ,IAAa,CAAExkB,IAAK,WAAY44B,QAAS,CAAC,6DAA+D,SACnH9d,OAAQ0J,IAAa,CAAExkB,IAAK,SAAU44B,QAAS,CAAC,2DAA6D,OAC7G3d,QAASuJ,IAAa,CAAExkB,IAAK,WAAY44B,QAAS,CAAC,6DAA+D,SAClHoyI,UAAW,MAKFi0O,EAAoB,IAAIN,EAAsB,CACvD3jY,QAASwJ,IAAa,CAAExkB,IAAK,eAAgB44B,QAAS,CAAC,8DAAgE,WACvH7d,SAAUyJ,IAAa,CAAExkB,IAAK,gBAAiB44B,QAAS,CAAC,4DAA8D,SACvH9d,OAAQ0J,IAAa,CAAExkB,IAAK,cAAe44B,QAAS,CAAC,0DAA4D,OACjH3d,QAASuJ,IAAa,CAAExkB,IAAK,cAAe44B,QAAS,CAAC,8DAAgE,WACtHoyI,UAAW,KACZ,CACChwJ,QAASwJ,IAAa,CAAExkB,IAAK,eAAgB44B,QAAS,CAAC,8DAAgE,WACvH7d,SAAUyJ,IAAa,CAAExkB,IAAK,gBAAiB44B,QAAS,CAAC,4DAA8D,SACvH9d,OAAQ0J,IAAa,CAAExkB,IAAK,cAAe44B,QAAS,CAAC,0DAA4D,OACjH3d,QAASuJ,IAAa,CAAExkB,IAAK,kBAAmB44B,QAAS,CAAC,8DAAgE,WAC1HoyI,UAAW,KACZ,CACChwJ,QAASwJ,IAAa,CAAExkB,IAAK,eAAgB44B,QAAS,CAAC,8DAAgE,WACvH7d,SAAUyJ,IAAa,CAAExkB,IAAK,gBAAiB44B,QAAS,CAAC,4DAA8D,SACvH9d,OAAQ0J,IAAa,CAAExkB,IAAK,cAAe44B,QAAS,CAAC,0DAA4D,OACjH3d,QAASuJ,IAAa,CAAExkB,IAAK,gBAAiB44B,QAAS,CAAC,4DAA8D,SACtHoyI,UAAW,MAMFk0O,EAAmC,IAAIP,EAAsB,CACtE3jY,QAAS,OACTD,SAAU,QACVD,OAAQ,MACRG,QAAS,MACT+vJ,UAAW,KACZ,CACChwJ,QAAS,OACTD,SAAU,QACVD,OAAQ,MACRG,QAAS,QACT+vJ,UAAW,MAEf,SAAS+zO,EAAgBr8W,EAAW1iC,EAAK48Q,GACrC,GAAY,OAAR58Q,EACA,MAAO,GAEX,IAAM8D,EAAS,GAkBf,OAhBI4+B,EAAU1nB,SACVlX,EAAOmB,KAAK23Q,EAAO5hQ,SAEnB0nB,EAAU3nB,UACVjX,EAAOmB,KAAK23Q,EAAO7hQ,UAEnB2nB,EAAU5nB,QACVhX,EAAOmB,KAAK23Q,EAAO9hQ,QAEnB4nB,EAAUznB,SACVnX,EAAOmB,KAAK23Q,EAAO3hQ,SAGX,KAARjb,GACA8D,EAAOmB,KAAKjF,GAET8D,EAAOua,KAAKu+P,EAAO5xG,a,kMC5G1BvoK,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAE5DkqF,EAAoC,SAAUC,EAAYC,GAC1D,OAAO,SAAU3tF,EAAQU,GAAOitF,EAAU3tF,EAAQU,EAAKgtF,KAYrDmyT,EAAkB,CACpBjxB,gBAAiB,EACjBC,eAAgB,EAChBixB,gBAAgB,EAChBC,eAAe,EACfrxB,kBAAkB,EAClBsxB,mBAAe/jY,EACfgkY,wBAAoBhkY,GAEpBikY,EAAkB,WAClB,WAAYplO,EAASqlO,EAAapwT,GAAmB,oBACjD3tF,KAAK04K,QAAUA,EACf14K,KAAK+9Y,YAAcA,EACnB/9Y,KAAKg+Y,iBAAmB,IAAI9kY,IAC5BlZ,KAAKi+Y,iBAAmB,EACxBj+Y,KAAKk+Y,WAAaJ,EAAmBK,cAAc7gO,OAAO3vF,GAC1D3tF,KAAKo+Y,gBAAkBN,EAAmBO,eAAe/gO,OAAO3vF,GAChE3tF,KAAKs+Y,gBAAkBR,EAAmBS,eAAejhO,OAAO3vF,GARlD,2CAalB,WACI,IAAI3oF,EACJhF,KAAKk+Y,WAAWvoY,QAChB3V,KAAKs+Y,gBAAgB3oY,QACrB3V,KAAKo+Y,gBAAgBzoY,QACI,QAAxB3Q,EAAKhF,KAAKw+Y,gBAA6B,IAAPx5Y,GAAyBA,EAAGoT,UAC7DpY,KAAKg+Y,iBAAiB5lY,YAnBR,oBAqBlB,SAAO2vO,EAAU73N,GAIb,IACIlwB,KAAKy+Y,UAAU12J,EAA0B,qBAAT73N,EAAuButX,EAAkBr/Y,OAAOgC,OAAOhC,OAAOgC,OAAO,GAAIq9Y,GAAkBvtX,IAE/H,MAAOvvB,GACHX,KAAK8J,SACL9J,KAAK+9Y,YAAYn6Y,MAAMjD,GACvBX,KAAK+9Y,YAAYn6Y,MAAM,iBACvB5D,KAAK+9Y,YAAYn6Y,MAAM,mBAAoBmkP,GAC3C/nP,KAAK+9Y,YAAYn6Y,MAAM,qBAAsB5D,KAAKw+Y,SAAWx+Y,KAAKw+Y,SAASE,WAAa,mBAjC9E,uBAoClB,SAAU32J,EAAU73N,GAAM,WACjBlwB,KAAK04K,QAAQqwC,aAKlB/oN,KAAKg+Y,iBAAiBzgY,QAClB2S,EAAKwtX,gBACL19Y,KAAK04K,QAAQ1jJ,WAAWqwG,mBAEvBrlI,KAAKw+Y,SAMNx+Y,KAAKw+Y,SAAS1mX,MAAMiwN,EAAU73N,IAL9BlwB,KAAKi+Y,gBAAkBj+Y,KAAK04K,QAAQ1jJ,WAAW6rW,0BAC/C7gY,KAAKw+Y,SAAW,IAAInyB,IAAersX,KAAK04K,QAASqvE,EAAU73N,GAC3DlwB,KAAKw+Y,SAASh9R,UAKdtxF,EAAKytX,eACL39Y,KAAK04K,QAAQ1jJ,WAAWqwG,mBAE5BrlI,KAAK2+Y,eACL3+Y,KAAKg+Y,iBAAiBxkY,IAAIxZ,KAAK04K,QAAQ6qB,yBAAwB,SAAA5iM,GAAC,OAAIA,EAAEqlH,SAAW,EAAKl8G,aACtF9J,KAAKg+Y,iBAAiBxkY,IAAIxZ,KAAK04K,QAAQ4qB,kBAAiB,kBAAM,EAAKx5L,aACnE9J,KAAKg+Y,iBAAiBxkY,IAAIxZ,KAAK04K,QAAQ0qB,4BAA2B,kBAAM,EAAKu7M,sBA5D/D,0BA8DlB,WACI,GAAK3+Y,KAAKw+Y,UAAax+Y,KAAK04K,QAAQqwC,WAApC,CAIA,GAAI/oN,KAAKi+Y,kBAAoBj+Y,KAAK04K,QAAQ1jJ,WAAW6rW,0BAGjD,OAAO7gY,KAAK8J,SAEhB,IAAK9J,KAAKw+Y,SAASI,eAGf,OAAO5+Y,KAAK8J,SAEhB,GAAI9J,KAAKw+Y,SAASK,sBAAwB7+Y,KAAKw+Y,SAASM,gCACpD,OAAO9+Y,KAAK8J,SAEhB9J,KAAKk+Y,WAAW12W,KAAI,GACpBxnC,KAAKs+Y,gBAAgB92W,KAAKxnC,KAAKw+Y,SAASO,sBACxC/+Y,KAAKo+Y,gBAAgB52W,KAAKxnC,KAAKw+Y,SAASK,qBACxC7+Y,KAAKg/Y,mBAnFS,2BAqFlB,WAAgB,WACZ,GAAKh/Y,KAAKw+Y,UAAax+Y,KAAK04K,QAAQqwC,WAApC,CAIA,IAAQw+B,EAAWvnP,KAAKw+Y,SAAhBj3J,OACR,GAAKA,GAIL,GAAIvnP,KAAKi/Y,iBAAmB13J,EAAQ,CAChCvnP,KAAKi/Y,eAAiB13J,EACtBvnP,KAAK04K,QAAQwmO,cAAcl/Y,KAAK04K,QAAQymO,gBACnC/8X,KAAI,SAAA9hB,GAAC,OAAI4oF,IAAUwqD,cAAcpzI,EAAE+e,wBACxC,IAAO8hD,EAAP,YAAgBomL,EAAOliP,QAAvB,MACAw+I,YAAsB7jJ,KAAK04K,QAAS6uE,EAAOliP,QAAQ+c,KAAI,SAACusE,EAAQ7wF,GAG5D,MAAO,CACHmxC,KAAM,GACNpsC,MAAO8rF,EAAO3sF,MACdogJ,WAAYzzD,EAAO3sF,MAGnBo+I,SAAU,IAAIzmI,OAAO7b,EAAI,GACzB+gB,MAAOR,IAAMq1H,cAAc,EAAKglC,QAAQkqB,cAAe,EAAKlqB,QAAQkqB,cAAcjrI,MAAM,EAAGwJ,EAAMn/D,MAAMjE,oBAlB/GiC,KAAKi/Y,oBAAiBplY,OALtB7Z,KAAKi/Y,oBAAiBplY,IAvFZ,oBAmHlB,WACI,KAAO7Z,KAAKk+Y,WAAWzrX,OACnBzyB,KAAKkC,SArHK,oBAwHlB,WAA+B,IACvB8C,EADDo6Y,EAAwB,wDAE3Bp/Y,KAAKk+Y,WAAWvoY,QAChB3V,KAAKs+Y,gBAAgB3oY,QACrB3V,KAAKo+Y,gBAAgBzoY,QACrB3V,KAAKg+Y,iBAAiBzgY,QACG,QAAxBvY,EAAKhF,KAAKw+Y,gBAA6B,IAAPx5Y,GAAyBA,EAAGoT,UAC7DpY,KAAKw+Y,cAAW3kY,EAChB7Z,KAAKi+Y,iBAAmB,EACpBmB,GAIAp/Y,KAAK04K,QAAQwmO,cAAc,CAACl/Y,KAAK04K,QAAQmqB,mBArI/B,kBAwIlB,WACQ7iM,KAAKw+Y,UACLx+Y,KAAKw+Y,SAASvkS,OAElBj6G,KAAK2+Y,iBA5IS,kBA8IlB,WACQ3+Y,KAAKw+Y,UACLx+Y,KAAKw+Y,SAASt8Y,OAElBlC,KAAK2+Y,iBAlJS,yBAoJlB,WACI,OAAOzzT,QAAQlrF,KAAKk+Y,WAAWzrX,UArJjB,kBAUlB,SAAWQ,GACP,OAAOA,EAAO6wH,gBAAgBg6P,EAAmB56O,QAXnC,KAwJtB46O,EAAmB56O,GAAK,qBACxB46O,EAAmBK,cAAgB,IAAIrhX,IAAc,iBAAiB,EAAO59B,YAAS,gBAAiB,kDACvG4+Y,EAAmBO,eAAiB,IAAIvhX,IAAc,kBAAkB,EAAO59B,YAAS,iBAAkB,0DAC1G4+Y,EAAmBS,eAAiB,IAAIzhX,IAAc,kBAAkB,EAAO59B,YAAS,iBAAkB,8DAC1G4+Y,EAAqB/8Y,EAAW,CAC5BsqF,EAAQ,EAAG34D,KACX24D,EAAQ,EAAG/3D,MACZwqX,GAEH5nX,YAA2B4nX,EAAmB56O,GAAI46O,GAClD,IAAMuB,EAAcvsX,IAAc6vV,mBAAmBm7B,EAAmBrrX,KACxE+C,YAAsB,IAAI6pX,EAAY,CAClC9oY,GAAI,+BACJ4Z,aAAcU,IAAeC,IAAIgtX,EAAmBK,cAAeL,EAAmBO,gBACtFj5Y,QAAS,SAAAu4L,GAAI,OAAIA,EAAKz7L,QACtBmuB,OAAQ,CACJU,OAAQ,IACRH,OAAQgM,IAAkBG,gBAC1B9L,QAAS,MAGjBuE,YAAsB,IAAI6pX,EAAY,CAClC9oY,GAAI,+BACJ4Z,aAAcU,IAAeC,IAAIgtX,EAAmBK,cAAeL,EAAmBS,gBACtFn5Y,QAAS,SAAAu4L,GAAI,OAAIA,EAAK1jF,QACtB5pF,OAAQ,CACJU,OAAQ,IACRH,OAAQgM,IAAkBG,gBAC1B9L,QAAS,SAGjBuE,YAAsB,IAAI6pX,EAAY,CAClC9oY,GAAI,eACJ4Z,aAAc2tX,EAAmBK,cACjC/4Y,QAAS,SAAAu4L,GAAI,OAAIA,EAAK7zL,QAAO,IAC7BumB,OAAQ,CACJU,OAAQ,IACRH,OAAQgM,IAAkBG,gBAC1B9L,QAAS,EACTC,UAAW,CAAC,UAGpBsE,YAAsB,IAAI6pX,EAAY,CAClC9oY,GAAI,gBACJ4Z,aAAc2tX,EAAmBK,cACjC/4Y,QAAS,SAAAu4L,GAAI,OAAIA,EAAKziE,c,mE3HxItBokR,E,QA3FSv+I,EAIL,EAJKA,EASC,EATDA,EAcE,EAkETw+I,EAAwC,qBAAd/kV,WAA6B,UAAU3jD,KAAK2jD,UAAUnzB,WAElFm4W,EAAkC,GAGtC,IACEA,EAAU70Y,OACV,UAaF,iBA4BE,WAAYu6I,GAzBJ,KAAAu6P,OAAmB,GACnB,KAAAC,gBAA4B,GAE5B,KAAAC,eAA2B,GAC3B,KAAA98V,SAAW,EACX,KAAA+8V,gBAA6C,GAC7C,KAAAC,kBAAoC,GAEpC,KAAAC,iBAAsE,GAkB5E9/Y,KAAK+/Y,QAAO,aACVC,cAAej/I,EACfk/I,cAAe,MACfjqY,eAAW6D,EACXqmY,iBAAarmY,GACVqrI,GAGLllJ,KAAK4/Y,gBAAkB5/Y,KAAK+/Y,QAAQI,gBAAkB,GAwM1D,OA7NgB,EAAA17W,YAAd,W,MAGE,KAFA66W,EAAcE,EAAO,iBAEAF,EAAYc,mBAAqBd,EAAYc,kBAAkBhiW,gBAAkBh0C,SAAW,CAC/G,IAAM6oD,GAAsB,QAAP,EAAAusV,SAAO,eAAEtsV,eAAgB,GAE9CosV,EAAcE,EAAO,eAAuB,IAAItsW,EAAW+f,EAAa7Y,aAG1E,OAAOklW,GAkBF,YAAArhC,UAAP,SAAiB/4N,GACfllJ,KAAK+/Y,QAAO,2BACP//Y,KAAK+/Y,SACL76P,IASA,YAAAnjG,QAAP,SAAet6C,GACbzH,KAAK6/Y,kBAAkBt8Y,KAAKkE,IAQvB,YAAA6rC,aAAP,SAAoBo5K,GACV,IAAA12M,EAAA,aAAAA,UAGR,OAAUA,EAAYA,EAAY,IAAM,KAFzB02M,GAAe1sN,KAAK+/Y,QAAQE,eAEQ,IAAIjgZ,KAAK6iD,YAOvD,YAAAtP,eAAP,SAAsB/8B,EAAmBlY,EAAaO,EAAgBqR,GACpElQ,KAAK4/Y,gBAAgBthZ,GAAOkY,EAC5BxW,KAAK8/Y,iBAAiBtpY,GAAa,CACjC3X,KAAI,EACJqR,MAAK,IAQF,YAAAmjC,iBAAP,SAAwB/0C,GACtB,OAAO0B,KAAK4/Y,gBAAgBthZ,IAMvB,YAAA+hZ,kBAAP,WACE,OAAOrgZ,KAAK4/Y,iBAOP,YAAAU,kBAAP,SAAyB9pY,GACvB,IAAM68F,EAAQrzG,KAAK8/Y,iBAAiBtpY,GAEpC,OAAO68F,GAASA,EAAMx0G,MAOjB,YAAA0hZ,2BAAP,SAAkC/pY,GAChC,IAAM68F,EAAQrzG,KAAK8/Y,iBAAiBtpY,GAEpC,OAAO68F,GAASA,EAAMnjG,OAOjB,YAAAK,WAAP,SAAkBI,EAAc6vY,GACtB,IACFj2Y,EADE,aAAAy1Y,gBAC0Bj/I,EAAqB/gQ,KAAKygZ,wBAAqB5mY,EAMjF,GAJI2mY,GACFxgZ,KAAK0/Y,gBAAgBn8Y,KAAKoN,GAGxBpG,EACF,OAAQvK,KAAK+/Y,QAAQC,eACnB,KAAKj/I,EACK,IAAA9wP,EAAA,EAAAA,MAER,IACGA,EAAwBM,WAAWI,EAAOV,EAAwBE,SAASpS,QAC5E,MAAO4C,IAKT,MAEF,KAAKogQ,EACHx2P,EAAQqF,YAAYxF,SAAS0xW,eAAenrW,SAIhD3Q,KAAKy/Y,OAAOl8Y,KAAKoN,GAGf3Q,KAAK+/Y,QAAQW,cACf1gZ,KAAK+/Y,QAAQW,aAAa/vY,IAQvB,YAAAgwY,SAAP,SAAgBC,GACd,OACGA,EAAwB5gZ,KAAK0/Y,gBAAgB/iY,KAAK,IAAM,IAAM3c,KAAKy/Y,OAAO9iY,KAAK,IAAM3c,KAAK2/Y,eAAehjY,KAAK,KAQ5G,YAAAhH,MAAP,WACE3V,KAAKy/Y,OAAS,GACdz/Y,KAAK2/Y,eAAiB,GACtB3/Y,KAAK6iD,SAAW,EAChB7iD,KAAK8/Y,iBAAmB,GACxB9/Y,KAAK4/Y,gBAAkB,GAEvB5/Y,KAAK6/Y,kBAAkBlpY,SAAQ,SAAClP,GAAyB,OAAAA,QAIpD,YAAAo5Y,UAAP,WACE7gZ,KAAK4/Y,gBAAkB,IAGjB,YAAAa,iBAAR,sBAWE,OAVKzgZ,KAAK8gZ,eAAqC,qBAAb12Y,WAChCpK,KAAK8gZ,cAAgB9gZ,KAAK+gZ,sBAErBxB,GAEH50Y,OAAOhD,uBAAsB,WAC3B,EAAKm5Y,mBAAgBjnY,MAIpB7Z,KAAK8gZ,eAGN,YAAAC,oBAAR,WACE,IAAMj9N,EAAwB15K,SAAS05K,KACjCimD,EAAe3/N,SAASsF,cAAc,SAE5Cq6N,EAAajzN,aAAa,oBAAqB,QAEvC,IAAAopY,EAAA,aAAAA,YAMR,GALIA,GACEA,EAAYc,OACdj3K,EAAajzN,aAAa,QAASopY,EAAYc,OAG/ChhZ,KAAKogZ,kBAGPt8N,EAAMpuK,aAAaq0N,EAAc/pO,KAAKogZ,kBAAkBa,wBACnD,CACL,IAAMC,EAAsClhZ,KAAKmhZ,2BAE7CD,EACFp9N,EAAMpuK,aAAaq0N,EAAcm3K,EAAoBD,oBAErDn9N,EAAMpuK,aAAaq0N,EAAcjmD,EAAK4yF,WAAW,IAKrD,OAFA12Q,KAAKogZ,kBAAoBr2K,EAElBA,GAGD,YAAAo3K,yBAAR,WACE,IAAMr9N,EAAwB15K,SAAS05K,KACvC,OAAIA,EACKA,EAAKkkD,cAAc,4BAErB,MAEX,EA7OA,I,sP4H7FO,SAASo5K,EAAeviY,EAAOwuE,GAClC,IAD0C,EACpCjrF,EAAS,GAD2B,cAE5BirF,GAF4B,IAE1C,2BAAsB,KAAblsF,EAAa,QAClB,KAAI0d,EAAMuB,OAASjf,EAAE0d,MAAMwB,KAA3B,CAGA,GAAIxB,EAAMwB,IAAMlf,EAAE0d,MAAMuB,MACpB,MAEJ,IAAMihY,EAAehjY,IAAMswM,UAAU9vM,EAAO1d,EAAE0d,OAC1CR,IAAMK,QAAQ2iY,IAGlBj/Y,EAAOmB,KAAK,CACRsb,MAAOwiY,EACP50Y,KAAMtL,EAAEsL,SAf0B,8BAkB1C,OAAOrK,EAKJ,SAAS2G,EAAT,EAA+Bu4Y,GAClC,MAAO,CAAElhY,MAD+B,EAApBA,MACIkhY,EAAMjhY,IADU,EAAbA,IACcihY,GAQtC,SAASC,EAAYl0T,GACxB,IADgC,EAC1BjrF,EAAS,GACXo/Y,EAAgB,KAFY,cAGdn0T,GAHc,IAGhC,2BAA0B,KAAjBt7D,EAAiB,QAChB3R,EAAQ2R,EAAMlT,MAAMuB,MACpBC,EAAM0R,EAAMlT,MAAMwB,IAClB5T,EAAOslB,EAAMtlB,KACf+0Y,GAAiB/0Y,IAAS+0Y,EAAc/0Y,KACxC+0Y,EAAc3iY,MAAMwB,IAAMA,GAG9BmhY,EAAgB,CAAE3iY,MAAO,CAAEuB,QAAOC,OAAO5T,QACzCrK,EAAOmB,KAAKi+Y,KAZgB,8BAchC,OAAOp/Y,EAMX,SAAS0B,IAAkB,2BAARupF,EAAQ,yBAARA,EAAQ,gBACvB,OAAOk0T,EAAYl0T,EAAOx1D,QAAO,SAAC12B,EAAGwB,GAAJ,OAAUxB,EAAE2C,OAAOnB,KAAI,KAErD,IAAM8+Y,EAAb,WACI,aAAc,oBACVzhZ,KAAKqtF,OAAS,GACdrtF,KAAKyvK,MAAQ,EAHrB,0CAKI,SAAOxwK,EAAO+oE,GAAyB,IAAZQ,EAAY,uDAAJ,GACzBvlC,EAAOulC,EAAMzqE,OAASiqE,EACtBL,EAASy5U,EAAe,CAAEhhY,MAAO,EAAGC,IAAKphB,GAASe,KAAKqtF,QACvDzlB,EAAQw5U,EAAe,CAAEhhY,MAAOnhB,EAAQ+oE,EAAa3nD,IAAK0sG,OAAO+mC,mBAAqB9zJ,KAAKqtF,QAC5FjrE,KAAI,SAAAzf,GAAC,MAAK,CAAEkc,MAAO9V,EAAMpG,EAAEkc,MAAOokB,GAAOx2B,KAAM9J,EAAE8J,SAChDi1Y,EAASl5U,EAAMpmD,KAAI,SAACnZ,EAAMnL,GAAP,MAAc,CACnC+gB,MAAO,CAAEuB,MAAOnhB,EAAQnB,EAAGuiB,IAAKphB,EAAQnB,EAAI,GAC5C2O,KAAMxD,EAAKwD,SAEfzM,KAAKqtF,OAASvpF,EAAO6jE,EAAQ+5U,EAAQ95U,GACrC5nE,KAAKyvK,MAAQzvK,KAAKqtF,OAAOx1D,QAAO,SAACx3B,EAAGsC,GAAJ,OAAUtC,EAAKsC,EAAE8J,MAAQ9J,EAAEkc,MAAMwB,IAAM1d,EAAEkc,MAAMuB,SAAS,KAfhG,iBAoBI,WACI,IAAMyhB,EAAM7hC,KAAKqtF,OAAOtvF,OACxB,OAAK8jC,EAGE7hC,KAAKqtF,OAAOxrD,EAAM,GAAGhjB,MAAMwB,IAFvB,IAvBnB,gBA8BI,WACI,OAAOrgB,KAAKyvK,QA/BpB,qBAoCI,SAAQ9wJ,GACJ,GAAIA,EAAW,EACX,OAAQ,EAEZ,IAJc,EAIV1f,EAAQ,EACRwN,EAAO,EALG,cAMIzM,KAAKqtF,QANT,IAMd,2BAA+B,KAAtBt7D,EAAsB,QACrB4tF,EAAQ5tF,EAAMlT,MAAMwB,IAAM0R,EAAMlT,MAAMuB,MACtC4vJ,EAAUvjK,EAAQkzG,EAAQ5tF,EAAMtlB,KACtC,GAAIkS,EAAWqxJ,EACX,OAAO/wK,EAAQyY,KAAKE,OAAO+G,EAAWlS,GAAQslB,EAAMtlB,MAExDxN,GAAS0gH,EACTlzG,EAAOujK,GAbG,8BAed,OAAO/wK,IAnDf,wBAyDI,SAAW0f,GACP,OAAOjH,KAAKgI,IAAI1f,KAAKguO,QAAQrvN,GAAY,EAAG3e,KAAK2/G,SA1DzD,wBA+DI,SAAW1gH,GACP,GAAIA,EAAQ,EACR,OAAQ,EAEZ,IAJc,EAIV0f,EAAW,EACXghG,EAAQ,EALE,cAMI3/G,KAAKqtF,QANT,IAMd,2BAA+B,KAAtBt7D,EAAsB,QACrB8vK,EAAa9vK,EAAMlT,MAAMwB,IAAM0R,EAAMlT,MAAMuB,MAC3CuhY,EAAWhiS,EAAQkiF,EACzB,GAAI5iM,EAAQ0iZ,EACR,OAAOhjY,GAAa1f,EAAQ0gH,GAAS5tF,EAAMtlB,KAE/CkS,GAAYkjL,EAAa9vK,EAAMtlB,KAC/BkzG,EAAQgiS,GAbE,8BAed,OAAQ,MA9EhB,KCjDO,IAAMC,EAAb,WACI,WAAYl3K,GAAW,oBACnB1qO,KAAK0qO,UAAYA,EACjB1qO,KAAK+4B,MAAQ,IAAIwO,IAHzB,yCASI,SAAMyjM,GACF,IAAI5oO,EAASpC,KAAK6hZ,iBAAiB72K,GAAY1nO,MAC/C,IAAKlB,EAAQ,CACT,IAAMwK,EAAUmK,YAAE,oBAGlB3U,EAAS,CAAEwK,UAASo+N,aAAY3H,aAFfrjO,KAAK8hZ,YAAY92K,GACJL,eAAe/9N,IAGjD,OAAOxK,IAjBf,qBAsBI,SAAQ+jL,GACCA,GAGLnmL,KAAK+hZ,WAAW57N,KA1BxB,wBA4BI,SAAWA,GACP,IAAQv5K,EAAwBu5K,EAAxBv5K,QAASo+N,EAAe7kD,EAAf6kD,WACbp+N,IACAA,EAAQiC,UAAU/J,OAAO,aAzCrC,SAA0ByF,GACtB,IACQA,EAAQ06N,eACR16N,EAAQ06N,cAAcnmF,YAAYv0I,GAG1C,MAAO5J,KAoCCqhZ,CAAiBp1Y,IAEP5M,KAAK6hZ,iBAAiB72K,GAC9BznO,KAAK4iL,KAnCnB,8BAqCI,SAAiB6kD,GACb,IAAI5oO,EAASpC,KAAK+4B,MAAMtG,IAAIu4M,GAK5B,OAJK5oO,IACDA,EAAS,GACTpC,KAAK+4B,MAAMyO,IAAIwjM,EAAY5oO,IAExBA,IA3Cf,qBA6CI,WAAU,WACNpC,KAAK+4B,MAAMpiB,SAAQ,SAACsrY,EAAYj3K,GAAe,oBACnBi3K,GADmB,IAC3C,2BAAoC,KAAzBC,EAAyB,QACf,EAAKJ,YAAY92K,GACzBF,gBAAgBo3K,EAAU7+K,cACnC6+K,EAAU7+K,aAAe,MAJc,kCAO/CrjO,KAAK+4B,MAAMxb,UArDnB,yBAuDI,SAAYytN,GACR,IAAM9G,EAAWlkO,KAAK0qO,UAAUj4M,IAAIu4M,GACpC,IAAK9G,EACD,MAAM,IAAIh5N,MAAJ,gCAAmC8/N,IAE7C,OAAO9G,MA5Df,KCXInjO,EAA0C,SAAUC,EAAYpD,EAAQU,EAAK2C,GAC7E,IAA2H5B,EAAvH6B,EAAIV,UAAUzC,OAAQoD,EAAID,EAAI,EAAItD,EAAkB,OAATqD,EAAgBA,EAAO7C,OAAOgD,yBAAyBxD,EAAQU,GAAO2C,EACrH,GAAuB,kBAAZI,SAAoD,oBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASN,EAAYpD,EAAQU,EAAK2C,QACpH,IAAK,IAAInD,EAAIkD,EAAWjD,OAAS,EAAGD,GAAK,EAAGA,KAASuB,EAAI2B,EAAWlD,MAAIqD,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAEzB,EAAQU,EAAK6C,GAAK9B,EAAEzB,EAAQU,KAAS6C,GAChJ,OAAOD,EAAI,GAAKC,GAAK/C,OAAOC,eAAeT,EAAQU,EAAK6C,GAAIA,GAkB1DgpO,EAAiB,CACnB5vI,YAAY,EACZ4nT,mBAAoB,EACpBC,kBAAkB,EAClBC,cAAc,EACdC,uBAAuB,EACvB5qP,IAAK,CACD6qP,gBADC,SACe5hZ,GAAK,MAAO,CAACA,IAC7B0pO,WAFC,WAEc,OAAO,MACtB5U,YAHC,aAID6U,WAJC,WAIc,OAAO,GACtBC,KALC,cAOLu/C,qBAAqB,EACrB04H,uBAAuB,EACvB5nT,yBAAyB,GAEhB08K,EAAb,WACI,WAAYrgQ,GAAU,oBAClBjX,KAAKiX,SAAWA,EAFxB,0CAII,cAJJ,qBAKI,WACI,OAAOjX,KAAKiX,aANpB,KASawrY,EAAb,WACI,WAAYxrY,GAAU,oBAClBjX,KAAKiX,SAAWA,EAFxB,0CAII,cAJJ,qBAKI,WACI,OAAOjX,KAAKiX,aANpB,KASayrY,EAAb,WACI,aAAc,oBACV1iZ,KAAK+rM,MAAQ,GACb/rM,KAAKu2E,MAAQ,GAHrB,0CAKI,SAAO2pK,GACqB,MAApBA,EAAan0C,QACb,EAAA/rM,KAAK+rM,OAAMx5K,OAAX,SAAkB,EAAGvyB,KAAK+rM,MAAMhuM,QAAhC,mBAA2CmiP,EAAan0C,SAE5D,GAAIm0C,EAAa3pK,MAAO,CACpBv2E,KAAKu2E,MAAMhkD,OAAO,EAAGvyB,KAAKu2E,MAAMx4E,QAChC,IAAK,IAAID,EAAI,EAAGA,EAAIoiP,EAAa3pK,MAAMx4E,OAAQD,IAAK,CAChD,IAAM6vE,EAAOuyK,EAAa3pK,MAAMttE,KAAKnL,GACjC6vE,IAASA,EAAKlhE,MAAQkhE,EAAKxoE,OAC3BnF,KAAKu2E,MAAMhzE,KAAKoqE,OAdpC,qBAmBI,WACI,MAAO,CACHo+H,MAAO/rM,KAAK+rM,MACZx1H,MAAOv2E,KAAKu2E,WAtBxB,K,IAgCMosU,EACF,WAAYt7K,GAAuB,qBACD,OAA1BA,QAA4D,IAA1BA,OAAmC,EAASA,EAAsBoxC,YACpGz4Q,KAAKy4Q,WAAapxC,EAAsBoxC,WAAWr9M,KAAKisK,GAGxDrnO,KAAKy4Q,WAAa,SAAC93Q,EAAG7C,EAAG2G,GAAP,OAAaA,IAEL,OAA1B4iO,QAA4D,IAA1BA,OAAmC,EAASA,EAAsBqxC,aACpG14Q,KAAK04Q,YAAcrxC,EAAsBqxC,YAAYt9M,KAAKisK,GAG1DrnO,KAAK04Q,YAAc,SAAC/3Q,EAAG7C,GAAJ,OAAUA,EAAI,IAEP,OAA1BupO,QAA4D,IAA1BA,OAAmC,EAASA,EAAsBuxC,SACpG54Q,KAAK44Q,QAAUvxC,EAAsBuxC,QAAQx9M,KAAKisK,GAGlDrnO,KAAK44Q,QAAU,SAAAh2Q,GAAC,MAAI,aAEM,OAA1BykO,QAA4D,IAA1BA,OAAmC,EAASA,EAAsBsxC,WACpG34Q,KAAK24Q,UAAYtxC,EAAsBsxC,UAAUv9M,KAAKisK,GAGtDrnO,KAAK24Q,UAAY,SAAA/1Q,MAIhBypO,EAAb,WACI,WAAY78N,EAAWm8N,EAAiBjB,GAAqC,WAA1BrlO,EAA0B,uDAAhB8kO,EAiBzD,GAjByE,oBACzEnqO,KAAK2rO,gBAAkBA,EACvB3rO,KAAKusO,MAAL,oBAA0BF,EAASkkC,eACnCvwQ,KAAK0qO,UAAY,IAAInjM,IACrBvnC,KAAK4iZ,YAAc,EACnB5iZ,KAAK6iZ,cAAgB,EACrB7iZ,KAAK8iZ,kCAAoC,KACzC9iZ,KAAK+iZ,8BAAgC,IAAIziV,IAAQ,IACjDtgE,KAAKgjZ,UAAW,EAChBhjZ,KAAKijZ,gCAAkCj5Y,IAAW8T,KAClD9d,KAAKkjZ,eAAiB,EACtBljZ,KAAKmjZ,SAAU,EACfnjZ,KAAKojZ,8BAAgCp5Y,IAAW8T,KAChD9d,KAAKqjZ,mBAAqBr5Y,IAAW8T,KACrC9d,KAAKkd,YAAc,IAAIhE,IACvBlZ,KAAKsjZ,0BAA4B,IAAI7uY,IACrCzU,KAAKujZ,sBAAuB,EACxBl+Y,EAAQykR,qBAAuBzkR,EAAQi9Y,sBACvC,MAAM,IAAIp3Y,MAAM,yEAEpBlL,KAAKwoE,MAAQ,GACbxoE,KAAK+3L,OAAS,EACd/3L,KAAKwjZ,SAAW,IAAI/B,EAtBqD,oBAuBlD/2K,GAvBkD,IAuBzE,2BAAkC,KAAvBxG,EAAuB,QAC9BlkO,KAAK0qO,UAAUljM,IAAI08L,EAAS8G,WAAY9G,IAxB6B,8BA0BzElkO,KAAK+4B,MAAQ/4B,KAAKkd,YAAY1D,IAAI,IAAIooY,EAAS5hZ,KAAK0qO,YACpD1qO,KAAKyjZ,cAAgB,EACrBzjZ,KAAK0jZ,iBAAmB,EACxB1jZ,KAAK4M,QAAUxC,SAASsF,cAAc,OACtC1P,KAAK4M,QAAQ4J,UAAY,cACzBxW,KAAK4M,QAAQiC,UAAU2K,IAAIxZ,KAAKusO,OAChCvsO,KAAK4M,QAAQs3F,SAAW,EACxBlkG,KAAK4M,QAAQiC,UAAU8vI,OAAO,gBAAiD,mBAAzBt5I,EAAQmjO,cAA6BnjO,EAAQmjO,cACnGxoO,KAAKujZ,qBAAuBpuP,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAEqmR,sBAAqB3/C,EAAe2/C,qBAC7F9pR,KAAK4M,QAAQiC,UAAU8vI,OAAO,uBAAwB3+I,KAAKujZ,sBAC3DvjZ,KAAKqkR,uBAAmE,qBAAnCh/Q,EAAQg/Q,uBAAyC,EAAIh/Q,EAAQg/Q,uBAClGrkR,KAAKqnO,sBAAwB,IAAIs7K,EAA8Bt9Y,EAAQgiO,uBACvErnO,KAAK2jZ,cAAgBv5Y,SAASsF,cAAc,OAC5C1P,KAAK2jZ,cAAcntY,UAAY,mBAC/B,IAAMgsY,EAAwBrtP,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE++Y,wBAAuBr4K,EAAeq4K,uBAC7FA,IACAxiZ,KAAK2jZ,cAAcj3Y,MAAM6gB,UAAY,8BAEzCvtB,KAAKkd,YAAY1D,IAAI6hJ,IAAQwtE,UAAU7oO,KAAK2jZ,gBAC5C3jZ,KAAK+xN,WAAa,IAAIiM,IAAW7oE,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAEggG,mBAAiB,GAAS,IAAM,GAAG,SAAA7hD,GAAE,OAAIt6C,uCAA6Bs6C,MACpI5hD,KAAK4jZ,kBAAoB5jZ,KAAKkd,YAAY1D,IAAI,IAAIykN,IAAwBj+N,KAAK2jZ,cAAe,CAC1F/oT,wBAAyBu6D,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAEm3F,0BAAyBuvI,EAAevvI,yBAC9FN,WAAY,EACZD,SAAU86D,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE0+Y,qBAAoBh4K,EAAeg4K,oBAC1E5nT,WAAY46D,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE82F,aAAY4vI,EAAe5vI,YACpEmH,4BAA6Br8F,EAAQq8F,4BACrClB,sBAAuBn7F,EAAQm7F,uBAChCxgG,KAAK+xN,aACR/xN,KAAK4M,QAAQgD,YAAY5P,KAAK4jZ,kBAAkBxlD,cAChD5uV,EAAUI,YAAY5P,KAAK4M,SAC3B5M,KAAK4jZ,kBAAkBtpL,SAASt6N,KAAKs6N,SAAUt6N,KAAMA,KAAKkd,aAC1Dld,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK2jZ,cAAerjK,IAAerlF,QAAQ,SAAAt6J,GAAC,OAAI,EAAKkjZ,cAAcljZ,OAG9GX,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4jZ,kBAAkBxlD,aAAc,UAAU,SAAAz9V,GAAC,OAAIA,EAAE/C,OAAOuO,UAAY,MACpHnM,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,YAAY,SAAAjM,GAAC,OAAI,EAAK2pO,WAAW,EAAKw5K,YAAYnjZ,QAC3GX,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,QAAQ,SAAAjM,GAAC,OAAI,EAAKojZ,OAAO,EAAKD,YAAYnjZ,QACnGX,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,aAAa,SAAAjM,GAAC,OAAI,EAAK8qO,YAAY,EAAKq4K,YAAYnjZ,QAC7GX,KAAKkd,YAAY1D,IAAI5T,gCAAsB5F,KAAK4M,QAAS,WAAW,SAAAjM,GAAC,OAAI,EAAK60N,UAAU70N,OACxFX,KAAKoiZ,iBAAmBjtP,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE2+Y,mBAAkBj4K,EAAei4K,kBACtFpiZ,KAAKqiZ,aAAeltP,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE4+Y,eAAcl4K,EAAek4K,cAC9EriZ,KAAKsiZ,sBAAwBntP,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAE6+Y,wBAAuBn4K,EAAem4K,uBAChGtiZ,KAAK03J,IAAMvC,YAAa9vJ,GAAS,SAAA5B,GAAC,OAAIA,EAAEi0J,MAAKyyE,EAAezyE,KAC5D13J,KAAK66K,SAtEb,+CAwEI,WAAsB,OAAO76K,KAAKwjZ,SAAS/2Y,OAxE/C,+BAyEI,WAA4B,OAAOzM,KAAKujZ,sBAzE5C,IA0EI,SAAwBvhZ,GACpB,GAAIA,IAAUhC,KAAKujZ,qBAAnB,CAGA,GAAIvhZ,GAAShC,KAAKsiZ,sBACd,MAAM,IAAIp3Y,MAAM,yEAIpB,GAFAlL,KAAKujZ,qBAAuBvhZ,EAC5BhC,KAAK4M,QAAQiC,UAAU8vI,OAAO,uBAAwB3+I,KAAKujZ,sBACvDvjZ,KAAKujZ,qBAAsB,qBACRvjZ,KAAKwoE,OADG,IAC3B,2BAA+B,KAApBv/D,EAAoB,QAC3BjJ,KAAKgkZ,iBAAiB/6Y,IAFC,8BAI3BjJ,KAAKikZ,oBACLjkZ,KAAK4jZ,kBAAkBxnL,oBAAoB,CAAEvxN,MAAO0C,0BAAgBvN,KAAK4M,WACzE5M,KAAK2jZ,cAAcj3Y,MAAM7B,MAAzB,UAAoC6M,KAAKC,IAAI3X,KAAKm4N,aAAe,EAAGn4N,KAAK4iZ,aAAzE,WAGA5iZ,KAAK+iZ,8BAA8Bj5Y,SACnC9J,KAAK4jZ,kBAAkBxnL,oBAAoB,CAAEvxN,MAAO7K,KAAK4iZ,YAAazqL,YAAan4N,KAAK4iZ,cACxF5iZ,KAAK2jZ,cAAcj3Y,MAAM7B,MAAQ,MA9F7C,2BAiGI,SAAcxF,QAC6BwU,IAAnCxU,EAAQg/Q,yBACRrkR,KAAKqkR,uBAAyBh/Q,EAAQg/Q,uBACtCrkR,KAAK4jZ,kBAAkBxnL,oBAAoB,CAAE7C,aAAcv5N,KAAKu5N,qBAEpC1/M,IAA5BxU,EAAQo+F,iBACRzjG,KAAK+xN,WAAWmyL,wBAAwB7+Y,EAAQo+F,gBAAkB,IAAM,QAExC5pF,IAAhCxU,EAAQykR,sBACR9pR,KAAK8pR,oBAAsBzkR,EAAQykR,0BAEKjwQ,IAAxCxU,EAAQq8F,6BACR1hG,KAAK4jZ,kBAAkB3hR,cAAc,CAAEvgC,4BAA6Br8F,EAAQq8F,mCAE1C7nF,IAAlCxU,EAAQm7F,uBACRxgG,KAAK4jZ,kBAAkB3hR,cAAc,CAAEzhC,sBAAuBn7F,EAAQm7F,0BAhHlF,oBAmHI,SAAOpgF,EAAO4nD,GAA4B,IAAf/wD,EAAe,uDAAJ,GAClC,GAAIjX,KAAKgjZ,SACL,MAAM,IAAI93Y,MAAM,gCAEpBlL,KAAKgjZ,UAAW,EAChB,IACI,OAAOhjZ,KAAKmkZ,QAAQ/jY,EAAO4nD,EAAa/wD,GAD5C,QAIIjX,KAAKgjZ,UAAW,EAChBhjZ,KAAKsjZ,0BAA0BruY,KAAKjV,KAAK2tO,kBA7HrD,qBAgII,SAAQvtN,EAAO4nD,GAMX,IANuC,WAAf/wD,EAAe,uDAAJ,GAC7BmtY,EAAsBpkZ,KAAKqkZ,eAAerkZ,KAAKyjZ,cAAezjZ,KAAK0jZ,kBACnEY,EAAc,CAAElkY,QAAOC,IAAKD,EAAQ4nD,GACpCu8U,EAAclmY,IAAMswM,UAAUy1L,EAAqBE,GAEnDE,EAAgB,IAAIj9W,IACjBzpC,EAAIymZ,EAAYnkY,MAAOtiB,EAAIymZ,EAAYlkY,IAAKviB,IAAK,CACtD,IAAMmL,EAAOjJ,KAAKwoE,MAAM1qE,GAExB,GADAmL,EAAKw7Y,oBAAoBrsY,UACrBnP,EAAKk9K,IAAK,CACV,IAAIwgH,EAAO69G,EAAc/xX,IAAIxpB,EAAK+hO,YAC7B27D,IACDA,EAAO,GACP69G,EAAch9W,IAAIv+B,EAAK+hO,WAAY27D,IAEvC,IAAMziE,EAAWlkO,KAAK0qO,UAAUj4M,IAAIxpB,EAAK+hO,YACrC9G,GAAYA,EAAS2G,gBACrB3G,EAAS2G,eAAe5hO,EAAKsB,QAASzM,EAAGmL,EAAKk9K,IAAIk9C,aAAcp6N,EAAKwD,MAEzEk6R,EAAKpjS,KAAK0F,EAAKk9K,KAEnBl9K,EAAKk9K,IAAM,KAEf,IAgBImtB,EAQC,EAxBCoxM,EAAoB,CAAEtkY,MAAOA,EAAQ4nD,EAAa3nD,IAAKrgB,KAAKwoE,MAAMzqE,QAClE4mZ,EAA4BtmY,IAAMswM,UAAU+1L,EAAmBN,GAC/DQ,EAA+BvmY,IAAMuwM,mBAAmB81L,EAAmBN,GAC3ES,EAAW5tY,EAASmL,KAAI,SAAA7X,GAAO,MAAK,CACtCgM,GAAIzW,OAAO,EAAKi4L,UAChBxtL,UACAygO,WAAY,EAAKW,gBAAgBslC,cAAc1mQ,GAC/CkC,KAAM,EAAKk/N,gBAAgBrwC,UAAU/wL,GACrCM,WAAOgP,EACPm/P,mBAAoB,EAAKrtC,gBAAgBqtC,kBAAoB,EAAKrtC,gBAAgBqtC,iBAAiBzuQ,GACnGu6Y,4BAAwBjrY,EACxBssK,IAAK,KACL7tK,SAAKuB,EACLkrY,YAAY,EACZN,oBAAqBz6Y,IAAW8T,SAItB,IAAVsC,GAAe4nD,GAAehoE,KAAKwoE,MAAMzqE,QACzCiC,KAAKwjZ,SAAW,IAAI/B,EACpBzhZ,KAAKwjZ,SAASjxX,OAAO,EAAG,EAAGsyX,GAC3BvxM,EAAUtzM,KAAKwoE,MACfxoE,KAAKwoE,MAAQq8U,IAGb7kZ,KAAKwjZ,SAASjxX,OAAOnS,EAAO4nD,EAAa68U,GACzCvxM,GAAU,EAAAtzM,KAAKwoE,OAAMj2C,OAAX,SAAkBnS,EAAO4nD,GAAzB,mBAAyC68U,MAMvD,IAJA,IAAMltV,EAAQ1gD,EAASlZ,OAASiqE,EAC1Bg9U,EAAchlZ,KAAKqkZ,eAAerkZ,KAAKyjZ,cAAezjZ,KAAK0jZ,kBAC3DuB,EAAoBl8Y,EAAM47Y,EAA2BhtV,GACrDutV,EAAc7mY,IAAMswM,UAAUq2L,EAAaC,GACxCnnZ,EAAIonZ,EAAY9kY,MAAOtiB,EAAIonZ,EAAY7kY,IAAKviB,IACjDkC,KAAKmlZ,gBAAgBnlZ,KAAKwoE,MAAM1qE,GAAIA,GAExC,IA1DuC,EA0DjCsnZ,EAAe/mY,IAAMuwM,mBAAmBq2L,EAAmBD,GA1D1B,cA2DnBI,GA3DmB,IA2DvC,2BACI,IAD8B,IAAvBvmY,EAAuB,QACrB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IACrCkC,KAAKqlZ,kBAAkBvnZ,GA7DQ,8BAgEvC,IAhEuC,EAgEjCwnZ,EAAuBV,EAA6BxiY,KAAI,SAAAjhB,GAAC,OAAI4H,EAAM5H,EAAGw2D,MACtE4tV,EAAgB,CAAEnlY,QAAOC,IAAKD,EAAQnJ,EAASlZ,QAC/CynZ,EAAe,CAACD,GAAD,mBAAmBD,IAAsBljY,KAAI,SAAAjhB,GAAC,OAAIkd,IAAMswM,UAAUq2L,EAAa7jZ,MAC9FskZ,EAAgBzlZ,KAAK0lZ,qBAAqBF,GAnET,cAoEnBA,GApEmB,IAoEvC,2BACI,IAD8B,IAAvB3mY,EAAuB,QACrB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IAAK,CAC1C,IAAMmL,EAAOjJ,KAAKwoE,MAAM1qE,GAClB6oS,EAAO69G,EAAc/xX,IAAIxpB,EAAK+hO,YAC9B7kD,EAAe,OAATwgH,QAA0B,IAATA,OAAkB,EAASA,EAAKrjS,MAC7DtD,KAAK2lZ,gBAAgB7nZ,EAAG2nZ,EAAet/N,IAzER,kDA4EpBq+N,EAAchnY,UA5EM,IA4EvC,2BAA2C,OAAhCmpR,EAAgC,sBACrBA,GADqB,IACvC,2BAAwB,KAAbxgH,EAAa,QACpBnmL,KAAK+4B,MAAM+8T,QAAQ3vK,IAFgB,gCA5EJ,8BAqFvC,OAJAnmL,KAAK4lZ,mCACD5lZ,KAAKsiZ,uBACLtiZ,KAAK6lZ,UAAU7lZ,KAAKmM,UAAWnM,KAAKiuO,cAEjC36B,EAAQlxL,KAAI,SAAAtkB,GAAC,OAAIA,EAAEyM,aArNlC,8CAuNI,WAAmC,WAC/BvK,KAAK6iZ,cAAgB7iZ,KAAK2tO,cAC1B3tO,KAAK2jZ,cAAcj3Y,MAAM5B,OAAzB,UAAqC9K,KAAK6iZ,cAA1C,MACK7iZ,KAAK8iZ,oCACN9iZ,KAAK8iZ,kCAAoCx7Y,wCAA6B,WAClE,EAAKs8Y,kBAAkBxnL,oBAAoB,CAAE7C,aAAc,EAAKA,eAChE,EAAK0qL,oBACL,EAAKnB,kCAAoC,WA9NzD,yCAkOI,WAA8B,WACrB9iZ,KAAK8pR,oBAIV9pR,KAAK+iZ,8BAA8BhiV,SAAQ,kBAAM,EAAKkjV,uBAHlDjkZ,KAAK+iZ,8BAA8Bj5Y,WApO/C,+BAyOI,WACI,GAAK9J,KAAK8pR,oBAAV,CAGA,IAJgB,EAIZ3xD,EAAc,EAJF,cAKGn4N,KAAKwoE,OALR,IAKhB,2BAA+B,KAApBv/D,EAAoB,QACD,qBAAfA,EAAK4B,QACZstN,EAAczgN,KAAKC,IAAIwgN,EAAalvN,EAAK4B,SAPjC,8BAUhB7K,KAAKm4N,YAAcA,EACnBn4N,KAAK4jZ,kBAAkBxnL,oBAAoB,CAAEjE,YAA6B,IAAhBA,EAAoB,EAAKA,EAAc,QApPzG,sBAsPI,WACI,GAAKn4N,KAAKsiZ,sBAAV,CADO,oBAIYtiZ,KAAKwoE,OAJjB,IAIP,2BAA+B,SACtBs8U,4BAAyBjrY,GAL3B,8BAOP7Z,KAAK6lZ,UAAU7lZ,KAAKyjZ,cAAezjZ,KAAK0jZ,qBA7PhD,kBA+PI,WACI,OAAO1jZ,KAAKwoE,MAAMzqE,SAhQ1B,wBAkQI,WAEI,OADyBiC,KAAK4jZ,kBAAkB3rL,sBACxBntN,SApQhC,qBAsQI,SAAQ7L,GACJ,OAAOe,KAAKwoE,MAAMvpE,GAAOsL,UAvQjC,wBAyQI,SAAWtL,GACP,IAAMknL,EAAMnmL,KAAKwoE,MAAMvpE,GAAOknL,IAC9B,OAAOA,GAAOA,EAAIv5K,UA3Q1B,2BA6QI,SAAc3N,GACV,OAAOe,KAAKwoE,MAAMvpE,GAAOwN,OA9QjC,wBAgRI,SAAWxN,GACP,OAAOe,KAAKwjZ,SAASsC,WAAW7mZ,KAjRxC,qBAmRI,SAAQ0f,GACJ,OAAO3e,KAAKwjZ,SAASx1K,QAAQrvN,KApRrC,wBAsRI,SAAWA,GACP,OAAO3e,KAAKwjZ,SAAS/0K,WAAW9vN,KAvRxC,oBAyRI,SAAO7T,EAAQD,GACX,IAAImtN,EAAmB,CACnBltN,OAA0B,kBAAXA,EAAsBA,EAAS+C,2BAAiB7N,KAAK4M,UAEpE5M,KAAK8iZ,oCACL9iZ,KAAK8iZ,kCAAkC1qY,UACvCpY,KAAK8iZ,kCAAoC,KACzC9qL,EAAiBuB,aAAev5N,KAAKu5N,cAEzCv5N,KAAK4jZ,kBAAkBxnL,oBAAoBpE,GACtB,qBAAVntN,IACP7K,KAAK4iZ,YAAc/3Y,EACf7K,KAAKsiZ,uBACLtiZ,KAAK6lZ,UAAU7lZ,KAAKmM,UAAWnM,KAAKiuO,eAGxCjuO,KAAK8pR,qBACL9pR,KAAK4jZ,kBAAkBxnL,oBAAoB,CACvCvxN,MAAwB,kBAAVA,EAAqBA,EAAQ0C,0BAAgBvN,KAAK4M,aA3ShF,oBAgTI,SAAOw3Y,EAAqB2B,EAAW93K,EAAc+3K,EAAY7tL,GAAuC,IAA1B8tL,EAA0B,wDAC9FjB,EAAchlZ,KAAKqkZ,eAAe0B,EAAW93K,GAC7Ci4K,EAAiB7nY,IAAMuwM,mBAAmBo2L,EAAaZ,GACvD+B,EAAiB9nY,IAAMuwM,mBAAmBw1L,EAAqBY,GAC/DS,EAAgBzlZ,KAAK0lZ,qBAAqBQ,GAChD,GAAID,EAEA,IADA,IAAMG,EAAiB/nY,IAAMswM,UAAUy1L,EAAqBY,GACnDlnZ,EAAIsoZ,EAAehmY,MAAOtiB,EAAIsoZ,EAAe/lY,IAAKviB,IACvDkC,KAAKmlZ,gBAAgBnlZ,KAAKwoE,MAAM1qE,GAAIA,GARwD,oBAWhFooZ,GAXgF,IAWpG,2BACI,IADgC,IAAzBrnY,EAAyB,QACvB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IACrCkC,KAAK2lZ,gBAAgB7nZ,EAAG2nZ,GAboE,kDAgBhFU,GAhBgF,IAgBpG,2BACI,IADgC,IAAzBtnY,EAAyB,QACvB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IACrCkC,KAAKqlZ,kBAAkBvnZ,GAlBqE,mCAqBjF+b,IAAfmsY,IACAhmZ,KAAK2jZ,cAAcj3Y,MAAMT,KAAzB,WAAoC+5Y,EAApC,OAEJhmZ,KAAK2jZ,cAAcj3Y,MAAMX,IAAzB,WAAmCg6Y,EAAnC,MACI/lZ,KAAK8pR,0BAAuCjwQ,IAAhBs+M,IAC5Bn4N,KAAK2jZ,cAAcj3Y,MAAM7B,MAAzB,UAAoC6M,KAAKC,IAAIwgN,EAAan4N,KAAK4iZ,aAA/D,OAEJ5iZ,KAAKyjZ,cAAgBsC,EACrB/lZ,KAAK0jZ,iBAAmBz1K,IA7UhC,6BAgVI,SAAgBhvO,EAAOwmZ,EAAet/N,GAAK,WACjCl9K,EAAOjJ,KAAKwoE,MAAMvpE,GACnBgK,EAAKk9K,MACNl9K,EAAKk9K,IAAc,OAARA,QAAwB,IAARA,EAAiBA,EAAMnmL,KAAK+4B,MAAMstX,MAAMp9Y,EAAK+hO,aAE5E,IAAMgB,EAAOhsO,KAAKqnO,sBAAsBuxC,QAAQ3vQ,EAAKsB,UAAY,WACjEtB,EAAKk9K,IAAIv5K,QAAQkK,aAAa,OAAQk1N,GACtC,IAAM/9I,EAAUjuF,KAAKqnO,sBAAsBsxC,UAAU1vQ,EAAKsB,SACnC,qBAAZ0jF,GACPhlF,EAAKk9K,IAAIv5K,QAAQkK,aAAa,eAAgBhX,SAASmuF,IAEtDhlF,EAAKk9K,IAAIv5K,QAAQq4N,gBACdwgL,EACAzlZ,KAAK2jZ,cAAcjuY,aAAazM,EAAKk9K,IAAIv5K,QAAS64Y,GAGlDzlZ,KAAK2jZ,cAAc/zY,YAAY3G,EAAKk9K,IAAIv5K,UAGhD5M,KAAKmlZ,gBAAgBl8Y,EAAMhK,GAC3B,IAAMilO,EAAWlkO,KAAK0qO,UAAUj4M,IAAIxpB,EAAK+hO,YACzC,IAAK9G,EACD,MAAM,IAAIh5N,MAAJ,4CAA+CjC,EAAK+hO,aAE1D9G,GACAA,EAAS0G,cAAc3hO,EAAKsB,QAAStL,EAAOgK,EAAKk9K,IAAIk9C,aAAcp6N,EAAKwD,MAE5E,IAAM6L,EAAMtY,KAAK03J,IAAI2yE,WAAWphO,EAAKsB,SACrCtB,EAAKw7Y,oBAAoBrsY,UACzBnP,EAAKk9K,IAAIv5K,QAAQqzO,YAAc3nO,EAC3BA,IACArP,EAAKw7Y,oBAAsB7+Y,gCAAsBqD,EAAKk9K,IAAIv5K,QAAS,aAAa,SAAA+H,GAAK,OAAI,EAAK8gN,YAAYxsN,EAAKsB,QAAS+N,EAAK3D,OAE7H3U,KAAK8pR,sBACL9pR,KAAKgkZ,iBAAiB/6Y,GACtBjJ,KAAKsmZ,iCAnXjB,8BAsXI,SAAiBr9Y,GACb,GAAKA,EAAKk9K,KAAQl9K,EAAKk9K,IAAIv5K,QAA3B,CAGA3D,EAAKk9K,IAAIv5K,QAAQF,MAAM7B,MAAQ+uI,IAAY,mBAAqB,cAChE3wI,EAAK4B,MAAQ0C,0BAAgBtE,EAAKk9K,IAAIv5K,SACtC,IAAMF,EAAQ/B,OAAOT,iBAAiBjB,EAAKk9K,IAAIv5K,SAC3CF,EAAM0tQ,cACNnxQ,EAAK4B,OAASO,WAAWsB,EAAM0tQ,cAE/B1tQ,EAAM65Y,eACNt9Y,EAAK4B,OAASO,WAAWsB,EAAM65Y,eAEnCt9Y,EAAKk9K,IAAIv5K,QAAQF,MAAM7B,MAAQ,MAnYvC,6BAqYI,SAAgB5B,EAAMhK,GAClBgK,EAAKk9K,IAAIv5K,QAAQF,MAAMX,IAAvB,UAAgC/L,KAAK8uO,WAAW7vO,GAAhD,MACIe,KAAKqiZ,eACLp5Y,EAAKk9K,IAAIv5K,QAAQF,MAAM5B,OAAvB,UAAmC7B,EAAKwD,KAAxC,OAEAzM,KAAKoiZ,mBACLn5Y,EAAKk9K,IAAIv5K,QAAQF,MAAM85E,WAAvB,UAAuCv9E,EAAKwD,KAA5C,OAEJxD,EAAKk9K,IAAIv5K,QAAQkK,aAAa,aAA9B,UAA+C7X,IAC/CgK,EAAKk9K,IAAIv5K,QAAQkK,aAAa,oBAAqB7X,IAAUe,KAAKjC,OAAS,EAAI,OAAS,SACxFkL,EAAKk9K,IAAIv5K,QAAQkK,aAAa,cAAe7X,EAAQ,IAAM,EAAI,OAAS,OACxEgK,EAAKk9K,IAAIv5K,QAAQkK,aAAa,eAAgBhX,OAAOE,KAAKqnO,sBAAsBoxC,WAAWxvQ,EAAKsB,QAAStL,EAAOe,KAAKjC,UACrHkL,EAAKk9K,IAAIv5K,QAAQkK,aAAa,gBAAiBhX,OAAOE,KAAKqnO,sBAAsBqxC,YAAYzvQ,EAAKsB,QAAStL,KAC3GgK,EAAKk9K,IAAIv5K,QAAQkK,aAAa,KAAM9W,KAAKkvO,gBAAgBjwO,IACzDgK,EAAKk9K,IAAIv5K,QAAQiC,UAAU8vI,OAAO,cAAe11I,EAAK87Y,cAnZ9D,+BAqZI,SAAkB9lZ,GACd,IAAMgK,EAAOjJ,KAAKwoE,MAAMvpE,GAExB,GADAgK,EAAKw7Y,oBAAoBrsY,UACrBnP,EAAKk9K,IAAK,CACV,IAAM+9C,EAAWlkO,KAAK0qO,UAAUj4M,IAAIxpB,EAAK+hO,YACrC9G,GAAYA,EAAS2G,gBACrB3G,EAAS2G,eAAe5hO,EAAKsB,QAAStL,EAAOgK,EAAKk9K,IAAIk9C,aAAcp6N,EAAKwD,MAE7EzM,KAAK+4B,MAAM+8T,QAAQ7sV,EAAKk9K,KACxBl9K,EAAKk9K,IAAM,KAEXnmL,KAAK8pR,qBACL9pR,KAAKsmZ,gCAjajB,0BAoaI,WAEI,OADuBtmZ,KAAK4jZ,kBAAkBvuL,oBACxBlpN,YAta9B,0BAwaI,SAAaA,EAAW+xN,GAChBl+N,KAAK8iZ,oCACL9iZ,KAAK8iZ,kCAAkC1qY,UACvCpY,KAAK8iZ,kCAAoC,KACzC9iZ,KAAK4jZ,kBAAkBxnL,oBAAoB,CAAE7C,aAAcv5N,KAAKu5N,gBAEpEv5N,KAAK4jZ,kBAAkBrwL,kBAAkB,CAAEpnN,YAAW+xN,qBA9a9D,qBAgbI,WACI,OAAOl+N,KAAK+iM,gBAjbpB,IAmbI,SAAc52L,GACVnM,KAAKgkM,aAAa73L,KApb1B,wBAsbI,WACI,OAAOnM,KAAK6iZ,eAAiB7iZ,KAAK8pR,oBAAsB,GAAK,GAAK9pR,KAAKqkR,yBAvb/E,wBA0bI,WAAmB,WAAE,OAAO9sP,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,UAAU+H,OAAO,SAAAhU,GAAC,OAAI,EAAK6lZ,aAAa7lZ,QA1bpI,2BA2bI,WAAsB,WAAE,OAAO42B,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,aAAa+H,OAAO,SAAAhU,GAAC,OAAI,EAAK6lZ,aAAa7lZ,QA3b1I,8BA4bI,WAAyB,WAAE,OAAO42B,IAAMvI,OAAOuI,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,aAAa+H,OAAO,SAAAhU,GAAC,OAAI,EAAK6lZ,aAAa7lZ,OAAK,SAAAA,GAAC,OAA8B,IAA1BA,EAAE6iK,aAAagqB,YA5bnL,uBA6bI,WAAkB,WAAE,OAAOj2J,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,cAAc+H,OAAO,SAAAhU,GAAC,OAAI,EAAK6lZ,aAAa7lZ,QA7bvI,yBA8bI,WAAoB,WAAE,OAAO42B,IAAM6B,IAAI7B,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,gBAAgB+H,OAAO,SAAAhU,GAAC,OAAI,EAAK6lZ,aAAa7lZ,MAAK42B,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS0zO,IAAellF,cAAczmJ,OAAO,SAAAhU,GAAC,OAAI,EAAK8lZ,eAAe9lZ,SA9bnR,wBA+bI,WAAmB,WAAE,OAAO42B,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK4M,QAAS,eAAe+H,OAAO,SAAAhU,GAAC,OAAI,EAAK+lZ,aAAa/lZ,QA/bzI,iBAgcI,WAAY,WAAE,OAAO42B,IAAMnV,IAAIpiB,KAAKkd,YAAY1D,IAAI,IAAI4sJ,IAAWpmK,KAAK2jZ,cAAerjK,IAAetlF,MAAMrmJ,OAAO,SAAAhU,GAAC,OAAI,EAAK8lZ,eAAe9lZ,QAhchJ,0BAicI,SAAa6iK,GACT,IAAMvkK,EAAQe,KAAK2mZ,4BAA4BnjP,EAAa5lK,QAAU,MAChEqL,EAAwB,qBAAVhK,OAAwB4a,EAAY7Z,KAAKwoE,MAAMvpE,GAEnE,MAAO,CAAEukK,eAAcvkK,QAAOsL,QADdtB,GAAQA,EAAKsB,WApcrC,0BAucI,SAAai5J,GACT,IAAMvkK,EAAQe,KAAK2mZ,4BAA4BnjP,EAAa5lK,QAAU,MAChEqL,EAAwB,qBAAVhK,OAAwB4a,EAAY7Z,KAAKwoE,MAAMvpE,GAEnE,MAAO,CAAEukK,eAAcvkK,QAAOsL,QADdtB,GAAQA,EAAKsB,WA1crC,4BA6cI,SAAei5J,GACX,IAAMvkK,EAAQe,KAAK2mZ,4BAA4BnjP,EAAarH,eAAiB,MACvElzJ,EAAwB,qBAAVhK,OAAwB4a,EAAY7Z,KAAKwoE,MAAMvpE,GAEnE,MAAO,CAAEukK,eAAcvkK,QAAOsL,QADdtB,GAAQA,EAAKsB,WAhdrC,yBAmdI,SAAYi5J,GACR,IAAMvkK,EAAQe,KAAK2mZ,4BAA4BnjP,EAAa5lK,QAAU,MAChEqL,EAAwB,qBAAVhK,OAAwB4a,EAAY7Z,KAAKwoE,MAAMvpE,GAEnE,MAAO,CAAEukK,eAAcvkK,QAAOsL,QADdtB,GAAQA,EAAKsB,WAtdrC,sBAydI,SAAS5J,GACL,IACI,IAAMyjZ,EAAsBpkZ,KAAKqkZ,eAAerkZ,KAAKyjZ,cAAezjZ,KAAK0jZ,kBACzE1jZ,KAAKoqN,OAAOg6L,EAAqBzjZ,EAAEwL,UAAWxL,EAAEmK,OAAQnK,EAAE2L,WAAY3L,EAAEw3N,aACpEn4N,KAAKsiZ,uBACLtiZ,KAAK6lZ,UAAUllZ,EAAEwL,UAAWxL,EAAEmK,OAAQnK,EAAEmkY,mBAGhD,MAAOnpX,GAEH,MADA+B,QAAQ9Z,MAAM,wBAAyBjD,GACjCgb,KAnelB,2BAseI,SAAchH,GACVA,EAAMV,iBACNU,EAAMR,kBACNnU,KAAKmM,WAAawI,EAAMgqJ,eAzehC,yBA4eI,SAAYp0J,EAAS+N,EAAK3D,GACtB,GAAKA,EAAMurO,aAAX,CAGA,IAAMjpO,EAAWjX,KAAK03J,IAAI6qP,gBAAgBh4Y,GAG1C,GAFAoK,EAAMurO,aAAa0mK,cAAgB,WACnCjyY,EAAMurO,aAAaC,QAAQC,IAAcC,KAAM/nO,GAC3C3D,EAAMurO,aAAa2mK,aAAc,CACjC,IAAIhkZ,EACA7C,KAAK03J,IAAI4zE,eACTzoO,EAAQ7C,KAAK03J,IAAI4zE,aAAar0N,EAAUtC,IAEvB,qBAAV9R,IACPA,EAAQ/C,OAAOmX,EAASlZ,SAE5B,IAAM+oZ,EAAY/vY,YAAE,sBACpB+vY,EAAUr6O,YAAc5pK,EACxBuH,SAAS5H,KAAKoN,YAAYk3Y,GAC1BnyY,EAAMurO,aAAa2mK,aAAaC,GAAY,IAAK,IACjD9+Y,YAAW,kBAAMoC,SAAS5H,KAAKs8I,YAAYgoQ,KAAY,GAE3D9mZ,KAAK+mZ,gBAAkB,IAAIzvI,EAAwBrgQ,GACnDw/O,IAAUC,uBAAyB,IAAI+rJ,EAAgCxrY,GACnEjX,KAAK03J,IAAI+9D,aACTz1N,KAAK03J,IAAI+9D,YAAYz1N,KAAK+mZ,gBAAiBpyY,MApgBvD,wBAugBI,SAAWA,GAAO,WAGd,GAFAA,EAAM6uJ,aAAavvJ,iBACnBjU,KAAKqjZ,mBAAmBjrY,UACpBq+O,IAAUC,wBAAyE,cAA/CD,IAAUC,uBAAuBskI,UACrE,OAAO,EAGX,GADAh7X,KAAKgnZ,mCAAmCryY,EAAM6uJ,eACzC7uJ,EAAM6uJ,aAAa08E,aACpB,OAAO,EAGX,IAAKlgP,KAAK+mZ,gBACN,GAAItwJ,IAAUC,uBAEV12P,KAAK+mZ,gBAAkBtwJ,IAAUC,2BAEhC,CAED,IAAK/hP,EAAM6uJ,aAAa08E,aAAan0C,MACjC,OAAO,EAEX/rM,KAAK+mZ,gBAAkB,IAAIrE,EAGnC,IAQIriU,EAzkBgB4mU,EAAIC,EAikBlB9kZ,EAASpC,KAAK03J,IAAI4yE,WAAWtqO,KAAK+mZ,gBAAiBpyY,EAAMpK,QAASoK,EAAM1V,MAAO0V,EAAM6uJ,cAE3F,GADAxjK,KAAKmjZ,QAA4B,mBAAX/gZ,EAAuBA,EAASA,EAAOixM,QACxDrzM,KAAKmjZ,QAGN,OAFAnjZ,KAAKmnZ,yBAAsBttY,EAC3B7Z,KAAKojZ,8BAA8BhrY,WAC5B,EAkBX,GAhBAzD,EAAM6uJ,aAAa08E,aAAaw8B,WAAgC,mBAAXt6Q,GAA0C,IAAlBA,EAAO61Q,OAA2B,OAAS,OAGpH53L,EADkB,mBAAXj+E,GAAwBA,EAAOi+E,SAC3Bj+E,EAAOi+E,SAGS,qBAAhB1rE,EAAM1V,MACF,EAAE,GAGF,CAAC0V,EAAM1V,OAK1BohF,GAA4B,KAD5BA,EAAWrZ,YAASqZ,GAAUrxD,QAAO,SAAAlxB,GAAC,OAAIA,IAAM,GAAKA,EAAI,EAAKC,UAAQ+K,MAAK,SAAC5E,EAAG5E,GAAJ,OAAU4E,EAAI5E,MACrE,GAAY,EAAE,GAAK+gF,EAvlBnB4mU,EAwlBGjnZ,KAAKmnZ,oBAxlBJD,EAwlByB7mU,EAvlBjD5gF,MAAM+b,QAAQyrY,IAAOxnZ,MAAM+b,QAAQ0rY,GAC5BluX,YAAOiuX,EAAIC,GAEfD,IAAOC,EAqlBN,OAAO,EAIX,GAFAlnZ,KAAKmnZ,oBAAsB9mU,EAC3BrgF,KAAKojZ,8BAA8BhrY,WACd,IAAjBioE,EAAS,GACTrgF,KAAK4M,QAAQiC,UAAU2K,IAAI,eAC3BxZ,KAAK2jZ,cAAc90Y,UAAU2K,IAAI,eACjCxZ,KAAKojZ,8BAAgCjrY,aAAa,WAC9C,EAAKvL,QAAQiC,UAAU/J,OAAO,eAC9B,EAAK6+Y,cAAc90Y,UAAU/J,OAAO,sBAGvC,qBACmBu7E,GADnB,IACD,2BAA8B,KAAnBphF,EAAmB,QACpBgK,EAAOjJ,KAAKwoE,MAAMvpE,GACxBgK,EAAK87Y,YAAa,EACd97Y,EAAKk9K,KACLl9K,EAAKk9K,IAAIv5K,QAAQiC,UAAU2K,IAAI,gBALtC,8BAQDxZ,KAAKojZ,8BAAgCjrY,aAAa,WAAM,oBAChCkoE,GADgC,IACpD,2BAA8B,KAAnBphF,EAAmB,QACpBgK,EAAO,EAAKu/D,MAAMvpE,GACxBgK,EAAK87Y,YAAa,EACd97Y,EAAKk9K,KACLl9K,EAAKk9K,IAAIv5K,QAAQiC,UAAU/J,OAAO,gBALU,kCAU5D,OAAO,IArlBf,yBAulBI,SAAY6P,GAAO,IACX3P,EAAIgL,EADO,OAEfhQ,KAAKqjZ,mBAAmBjrY,UACxBpY,KAAKqjZ,mBAAqBpiV,aAAkB,kBAAM,EAAKmmV,0BAAyB,KAC5EpnZ,KAAK+mZ,kBACkC,QAAtC/2Y,GAAMhL,EAAKhF,KAAK03J,KAAK+zE,mBAAgC,IAAPz7N,GAAyBA,EAAGpQ,KAAKoF,EAAIhF,KAAK+mZ,gBAAiBpyY,EAAMpK,QAASoK,EAAM1V,MAAO0V,EAAM6uJ,iBA5lBxJ,oBA+lBI,SAAO7uJ,GACH,GAAK3U,KAAKmjZ,QAAV,CAGA,IAAMkE,EAAWrnZ,KAAK+mZ,gBACtB/mZ,KAAKsnZ,wCACLtnZ,KAAKonZ,wBACLpnZ,KAAK+mZ,qBAAkBltY,EACvB48O,IAAUC,4BAAyB78O,EAC9BwtY,GAAa1yY,EAAM6uJ,aAAa08E,eAGrCvrO,EAAM6uJ,aAAavvJ,iBACnBozY,EAAS/5N,OAAO34K,EAAM6uJ,aAAa08E,cACnClgP,KAAK03J,IAAI6yE,KAAK88K,EAAU1yY,EAAMpK,QAASoK,EAAM1V,MAAO0V,EAAM6uJ,kBA7mBlE,uBA+mBI,SAAU7uJ,GACN3U,KAAKmjZ,SAAU,EACfnjZ,KAAKsnZ,wCACLtnZ,KAAKonZ,wBACLpnZ,KAAK+mZ,qBAAkBltY,EACvB48O,IAAUC,4BAAyB78O,EAC/B7Z,KAAK03J,IAAI89D,WACTx1N,KAAK03J,IAAI89D,UAAU7gN,KAtnB/B,mCAynBI,WACI3U,KAAKmnZ,yBAAsBttY,EAC3B7Z,KAAKojZ,8BAA8BhrY,UACnCpY,KAAKojZ,8BAAgCp5Y,IAAW8T,OA5nBxD,gDA+nBI,SAAmCnJ,GAAO,WACtC,IAAK3U,KAAKunZ,4BAA6B,CACnC,IAAMC,EAAU37Y,2BAAiB7L,KAAK4M,SAASb,IAC/C/L,KAAKunZ,4BAA8BvvY,kBAAQhY,KAAKynZ,4BAA4BrsV,KAAKp7D,KAAMwnZ,IAE3FxnZ,KAAKijZ,gCAAgC7qY,UACrCpY,KAAKijZ,gCAAkChiV,aAAkB,WACjD,EAAKsmV,8BACL,EAAKA,4BAA4BnvY,UACjC,EAAKmvY,iCAA8B1tY,KAExC,KACH7Z,KAAKkjZ,eAAiBvuY,EAAM6nJ,QA3oBpC,yCA6oBI,SAA4BgrP,GACxB,QAA4B3tY,IAAxB7Z,KAAKkjZ,eAAT,CAGA,IAAMjgX,EAAOjjC,KAAKkjZ,eAAiBsE,EAC7BE,EAAa1nZ,KAAKiuO,aAAe,GACnChrM,EAAO,GACPjjC,KAAKmM,WAAauL,KAAKC,KAAK,GAAID,KAAKE,MAAM,IAAOqrB,EAAO,MAEpDA,EAAOykX,IACZ1nZ,KAAKmM,WAAauL,KAAKgI,IAAI,GAAIhI,KAAKE,MAAM,IAAOqrB,EAAOykX,SAvpBpE,mDA0pBI,WACI1nZ,KAAKijZ,gCAAgC7qY,UACjCpY,KAAKunZ,8BACLvnZ,KAAKunZ,4BAA4BnvY,UACjCpY,KAAKunZ,iCAA8B1tY,KA9pB/C,yCAkqBI,SAA4Bjc,GAGxB,IAFA,IAAMgmZ,EAAoB5jZ,KAAK4jZ,kBAAkBxlD,aAC7C7zV,EAAU3M,EACP2M,aAAmBwG,aAAexG,IAAYvK,KAAK2jZ,eAAiBC,EAAkB90Y,SAASvE,IAAU,CAC5G,IAAMo9Y,EAAWp9Y,EAAQkB,aAAa,cACtC,GAAIk8Y,EAAU,CACV,IAAM1oZ,EAAQ8tH,OAAO46R,GACrB,IAAKjoX,MAAMzgC,GACP,OAAOA,EAGfsL,EAAUA,EAAQ06N,iBA7qB9B,4BAirBI,SAAe8gL,EAAW93K,GACtB,MAAO,CACH7tN,MAAOpgB,KAAKwjZ,SAASx1K,QAAQ+3K,GAC7B1lY,IAAKrgB,KAAKwjZ,SAAS/0K,WAAWs3K,EAAY93K,EAAe,MAprBrE,uBA2rBI,SAAU83K,EAAW93K,EAAc62J,GAC/B,IAGI8iB,EACAC,EAJEzD,EAAsBpkZ,KAAKqkZ,eAAe0B,EAAW93K,GAKvD83K,IAAc/lZ,KAAK8uO,WAAWs1K,EAAoBhkY,QAClDwnY,EAAqBxD,EAAoBhkY,MACzCynY,EAAwB,GAEnBzD,EAAoB/jY,IAAM+jY,EAAoBhkY,MAAQ,IAC3DwnY,EAAqBxD,EAAoBhkY,MAAQ,EACjDynY,EAAwB7nZ,KAAK8uO,WAAW84K,GAAsB7B,GAGlE,IADA,IAAIxxR,EAAa,IACJ,CAGT,IAFA,IAAMywR,EAAchlZ,KAAKqkZ,eAAe0B,EAAW93K,GAC/CxhJ,GAAY,EACP3uF,EAAIknZ,EAAY5kY,MAAOtiB,EAAIknZ,EAAY3kY,IAAKviB,IAAK,CACtD,IAAMmlC,EAAOjjC,KAAK8nZ,mBAAmBhqZ,GACxB,IAATmlC,GACAjjC,KAAKwjZ,SAASjxX,OAAOz0B,EAAG,EAAG,CAACkC,KAAKwoE,MAAM1qE,KAE3Cy2H,GAActxF,EACdwpD,EAAYA,GAAsB,IAATxpD,EAE7B,IAAKwpD,EAAW,CACO,IAAf8nC,GACAv0H,KAAK4lZ,mCAET,IAJY,EAINmC,EAAiB1pY,IAAMuwM,mBAAmBw1L,EAAqBY,GAJzD,cAKQ+C,GALR,IAKZ,2BACI,IADgC,IAAzBlpY,EAAyB,QACvB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IACjCkC,KAAKwoE,MAAM1qE,GAAGqoL,KACdnmL,KAAKqlZ,kBAAkBvnZ,GARvB,8BAYZ,IAZY,EAYNkqZ,EAAe3pY,IAAMuwM,mBAAmBo2L,EAAaZ,GAZ/C,cAaQ4D,GAbR,IAaZ,2BACI,IAD8B,IAAvBnpY,EAAuB,QACrB/gB,EAAI+gB,EAAMuB,MAAOtiB,EAAI+gB,EAAMwB,IAAKviB,IAAK,CAC1C,IAAMmqZ,EAAanqZ,EAAI,EACjBoqZ,EAAYD,EAAajoZ,KAAKwoE,MAAMzqE,OAASiC,KAAKwoE,MAAMy/U,GAAY9hO,IAAM,KAC1Es/N,EAAgByC,EAAYA,EAAUt7Y,QAAU,KACtD5M,KAAK2lZ,gBAAgB7nZ,EAAG2nZ,IAlBpB,8BAqBZ,IAAK,IAAI3nZ,EAAIknZ,EAAY5kY,MAAOtiB,EAAIknZ,EAAY3kY,IAAKviB,IAC7CkC,KAAKwoE,MAAM1qE,GAAGqoL,KACdnmL,KAAKmlZ,gBAAgBnlZ,KAAKwoE,MAAM1qE,GAAIA,GAG5C,GAAkC,kBAAvB8pZ,EAAiC,CAMxC,IAAM9qL,EAAiB98N,KAAK+xN,WAAW8K,0BAA0B1wN,UAAY45Y,EACvE1e,EAAernY,KAAK8uO,WAAW84K,GAAsBC,EAAwB/qL,EACnF98N,KAAKgkM,aAAaqjM,EAAcvC,GAGpC,YADA9kY,KAAKsjZ,0BAA0BruY,KAAKjV,KAAK2tO,mBAzvBzD,gCA8vBI,SAAmB1uO,GACf,IAAMgK,EAAOjJ,KAAKwoE,MAAMvpE,GACxB,GAAMe,KAAK2rO,gBAAgBw8K,iBAAkB,CACzC,IAAMn4O,EAAUhwK,KAAK2rO,gBAAgBw8K,iBAAiBl/Y,EAAKsB,SAC3D,GAAgB,OAAZylK,EAAkB,CAClB,IAAMvjK,EAAOxD,EAAKwD,KAGlB,OAFAxD,EAAKwD,KAAOujK,EACZ/mK,EAAK67Y,uBAAyB9kZ,KAAK4iZ,YAC5B5yO,EAAUvjK,GAGzB,IAAKxD,EAAK+vQ,kBAAoB/vQ,EAAK67Y,yBAA2B9kZ,KAAK4iZ,YAC/D,OAAO,EAEX,GAAM5iZ,KAAK2rO,gBAAgBqtC,mBAAqBh5Q,KAAK2rO,gBAAgBqtC,iBAAiB/vQ,EAAKsB,SACvF,OAAO,EAEX,IAAMkC,EAAOxD,EAAKwD,KAClB,IAAKzM,KAAKqiZ,cAAgBp5Y,EAAKk9K,IAAK,CAChC,IAAInW,EAAU/mK,EAAKk9K,IAAIv5K,QAAQqB,aAG/B,OAFAhF,EAAKwD,KAAOujK,EACZ/mK,EAAK67Y,uBAAyB9kZ,KAAK4iZ,YAC5B5yO,EAAUvjK,EAErB,IAAM05K,EAAMnmL,KAAK+4B,MAAMstX,MAAMp9Y,EAAK+hO,YAClC7kD,EAAIv5K,QAAQF,MAAM5B,OAAS,GAC3B9K,KAAK2jZ,cAAc/zY,YAAYu2K,EAAIv5K,SACnC,IAAMs3N,EAAWlkO,KAAK0qO,UAAUj4M,IAAIxpB,EAAK+hO,YAczC,OAbI9G,IACAA,EAAS0G,cAAc3hO,EAAKsB,QAAStL,EAAOknL,EAAIk9C,kBAAcxpN,GAC1DqqN,EAAS2G,gBACT3G,EAAS2G,eAAe5hO,EAAKsB,QAAStL,EAAOknL,EAAIk9C,kBAAcxpN,IAGvE5Q,EAAKwD,KAAO05K,EAAIv5K,QAAQqB,aACpBjO,KAAK2rO,gBAAgBstC,kBACrBj5Q,KAAK2rO,gBAAgBstC,iBAAiBhwQ,EAAKsB,QAAStB,EAAKwD,MAE7DxD,EAAK67Y,uBAAyB9kZ,KAAK4iZ,YACnC5iZ,KAAK2jZ,cAAc7kQ,YAAYqnC,EAAIv5K,SACnC5M,KAAK+4B,MAAM+8T,QAAQ3vK,GACZl9K,EAAKwD,KAAOA,IAvyB3B,kCAyyBI,SAAqBisH,GACjB,IAAM0vR,EAAY1vR,EAAOA,EAAO36H,OAAS,GACzC,IAAKqqZ,EACD,OAAO,KAEX,IAAMC,EAAiBroZ,KAAKwoE,MAAM4/U,EAAU/nY,KAC5C,OAAKgoY,GAGAA,EAAeliO,IAGbkiO,EAAeliO,IAAIv5K,QALf,OAhzBnB,6BAuzBI,SAAgB3N,GACZ,gBAAUe,KAAKusO,MAAf,YAAwBttO,KAxzBhC,qBA2zBI,WACI,GAAIe,KAAKwoE,MAAO,qBACOxoE,KAAKwoE,OADZ,IACZ,2BAA+B,KAApBv/D,EAAoB,QAC3B,GAAIA,EAAKk9K,IAAK,CACV,IAAM+9C,EAAWlkO,KAAK0qO,UAAUj4M,IAAIxpB,EAAKk9K,IAAI6kD,YACzC9G,IACIA,EAAS2G,gBACT3G,EAAS2G,eAAe5hO,EAAKsB,SAAU,EAAGtB,EAAKk9K,IAAIk9C,kBAAcxpN,GAErEqqN,EAAS4G,gBAAgB7hO,EAAKk9K,IAAIk9C,iBARlC,8BAYZrjO,KAAKwoE,MAAQ,GAEbxoE,KAAK4M,SAAW5M,KAAK4M,QAAQzF,YAC7BnH,KAAK4M,QAAQzF,WAAW23I,YAAY9+I,KAAK4M,SAE7CwL,YAAQpY,KAAKkd,iBA70BrB,KAg1BAmvN,EAASkkC,cAAgB,EACzBxvQ,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,eAAgB,MACvCqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,kBAAmB,MAC1CqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,qBAAsB,MAC7CqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,cAAe,MACtCqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,gBAAiB,MACxCqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,eAAgB,MACvCqC,EAAW,CACP89J,KACDwtE,EAAS3tO,UAAW,QAAS,O,cC99BhC,SAASgc,EAAQ9O,GAiBf,MAdsB,oBAAX1I,QAAoD,kBAApBA,OAAOC,UAChD/F,EAAOC,QAAUqd,EAAU,SAAiB9O,GAC1C,cAAcA,GAGhBxO,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQirZ,YAAa,IAExElrZ,EAAOC,QAAUqd,EAAU,SAAiB9O,GAC1C,OAAOA,GAAyB,oBAAX1I,QAAyB0I,EAAI3L,cAAgBiD,QAAU0I,IAAQ1I,OAAOxE,UAAY,gBAAkBkN,GAG3HxO,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQirZ,YAAa,GAGnE5tY,EAAQ9O,GAGjBxO,EAAOC,QAAUqd,EACjBtd,EAAOC,QAAiB,QAAID,EAAOC,QAASD,EAAOC,QAAQirZ,YAAa,G,6BCrBxE,SAAS5tY,EAAQ9O,GAAmV,OAAtO8O,EAArD,oBAAXxX,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiByI,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX1I,QAAyB0I,EAAI3L,cAAgBiD,QAAU0I,IAAQ1I,OAAOxE,UAAY,gBAAkBkN,GAAiB8O,EAAQ9O,GAAnX,sGAEA,IAAI2jB,EAAM,GACNqI,EAAOrI,EAAI5Y,QACXjS,EAAQ6qB,EAAI7qB,MACT,SAAS6c,EAAS3V,GAQvB,OAPAgsB,EAAKh4B,KAAK8E,EAAM9E,KAAKY,UAAW,IAAI,SAAU2uB,GAC5C,GAAIA,EACF,IAAK,IAAIikB,KAAQjkB,OACGtV,IAAdjO,EAAIwnC,KAAqBxnC,EAAIwnC,GAAQjkB,EAAOikB,OAI/CxnC,EAEF,SAAS28Y,IACd,MAAiC,oBAAnB3kH,gBAAqH,YAAzD,qBAAnBA,eAAiC,YAAclpR,EAAQkpR,iBAOzG,SAAS4kH,EAAYC,GAC1B,OALF,SAAmBA,GACjB,QAASA,GAA6C,oBAAtBA,EAAanmZ,KAIzComZ,CAAUD,GACLA,EAGF7mZ,QAAQC,QAAQ4mZ,K,iBC5BzB,qBAQE,WAGA,IAAI5uY,EAUA8uY,EAAkB,sBAIlBC,EAAiB,4BAMjBC,EAAc,yBAgBdC,EAAwB,GACxBC,EAAoB,GACpBC,EAA0B,GAC1BC,EAAgB,IAChBC,EAAkB,IAiBlBC,EAAW,IACXn8R,EAAmB,iBAEnBo8R,EAAM,IAGNC,EAAmB,WAKnBC,EAAY,CACd,CAAC,MAAOL,GACR,CAAC,OAtCkB,GAuCnB,CAAC,UAtCsB,GAuCvB,CAAC,QArCmB,GAsCpB,CAAC,aAAcH,GACf,CAAC,OAjCkB,KAkCnB,CAAC,UAAWC,GACZ,CAAC,eAAgBC,GACjB,CAAC,QAASE,IAIRK,EAAU,qBACVC,EAAW,iBAEXC,EAAU,mBACVC,EAAU,gBAEVC,EAAW,iBACXC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eACTC,EAAY,kBAEZC,EAAY,kBACZC,EAAa,mBAEbC,EAAY,kBACZC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBAEZC,EAAa,mBAGbC,EAAiB,uBACjBC,EAAc,oBACdC,EAAa,wBACbC,EAAa,wBACbC,EAAU,qBACVC,EAAW,sBACXC,EAAW,sBACXC,EAAW,sBACXC,EAAkB,6BAClBC,EAAY,uBACZC,EAAY,uBAGZC,EAAuB,iBACvBC,EAAsB,qBACtBC,EAAwB,gCAGxBC,EAAgB,4BAChBC,EAAkB,WAClBC,EAAmBlqX,OAAOgqX,EAAcl8X,QACxCq8X,EAAqBnqX,OAAOiqX,EAAgBn8X,QAG5Cs8X,EAAW,mBACXC,GAAa,kBACbC,GAAgB,mBAGhBC,GAAe,mDACfC,GAAgB,QAChBC,GAAa,mGAMbC,GAAe,sBACfC,GAAkB3qX,OAAO0qX,GAAa58X,QAGtC88X,GAAc,OAGdC,GAAe,KAGfC,GAAgB,4CAChBC,GAAgB,oCAChBC,GAAiB,QAGjBC,GAAc,4CAYdC,GAA6B,mBAG7BC,GAAe,WAMfC,GAAe,kCAGfC,GAAU,OAGVC,GAAa,qBAGbC,GAAa,aAGbC,GAAe,8BAGfC,GAAY,cAGZC,GAAW,mBAGXC,GAAU,8CAGVC,GAAY,OAGZC,GAAoB,yBAOpBC,GAAeC,gDACfC,GAAiB,kBACjBC,GAAe,4BAKfC,GAAe,4BACfC,GAAa,iBACbC,GAAeC,8OAGfC,GAAS,YACTC,GAAW,oBACXC,GAAU,IAAMJ,GAAe,IAC/BK,GAAU,IAAMX,GAAe,IAC/BY,GAAW,OACXC,GAAY,oBACZC,GAAU,IAAMX,GAAe,IAC/BY,GAAS,oBAAuBT,GAAeM,GAAWV,GAAiBC,GAAeC,GAAe,IACzGY,GAAS,2BAETC,GAAc,qBACdC,GAAa,kCACbC,GAAa,qCACbC,GAAU,IAAMhB,GAAe,IAI/BiB,GAAc,MAAQP,GAAU,IAAMC,GAAS,IAC/CO,GAAc,MAAQF,GAAU,IAAML,GAAS,IAC/CQ,GAAkB,qCAClBC,GAAkB,qCAClBC,GAZa,MAAQd,GAAU,IAAMK,GAAS,IAYtB,IACxBU,GAAW,oBAIXC,GAAQD,GAAWD,IAHP,gBAAwB,CAACR,GAAaC,GAAYC,IAAY3xY,KAAK,KAAO,IAAMkyY,GAAWD,GAAW,MAIlHG,GAAU,MAAQ,CAACf,GAAWK,GAAYC,IAAY3xY,KAAK,KAAO,IAAMmyY,GACxEE,GAAW,MAAQ,CAACZ,GAAcN,GAAU,IAAKA,GAASO,GAAYC,GAAYV,IAAUjxY,KAAK,KAAO,IAGxGsyY,GAAS5tX,OAAOssX,GAAQ,KAMxBuB,GAAc7tX,OAAOysX,GAAS,KAG9BqB,GAAY9tX,OAAO8sX,GAAS,MAAQA,GAAS,KAAOa,GAAWF,GAAO,KAGtEM,GAAgB/tX,OAAO,CACzBktX,GAAU,IAAMN,GAAU,IAAMS,GAAkB,MAAQ,CAACb,GAASU,GAAS,KAAK5xY,KAAK,KAAO,IAC9F8xY,GAAc,IAAME,GAAkB,MAAQ,CAACd,GAASU,GAAUC,GAAa,KAAK7xY,KAAK,KAAO,IAChG4xY,GAAU,IAAMC,GAAc,IAAME,GACpCH,GAAU,IAAMI,GAtBD,mDADA,mDA0BfZ,GACAgB,IACApyY,KAAK,KAAM,KAGT0yY,GAAehuX,OAAO,0BAA+B8rX,GAAeK,GAAa,KAGjF8B,GAAmB,qEAGnBC,GAAe,CACjB,QAAS,SAAU,WAAY,OAAQ,QAAS,eAAgB,eAChE,WAAY,YAAa,aAAc,aAAc,MAAO,OAAQ,SACpE,UAAW,SAAU,MAAO,SAAU,SAAU,YAAa,aAC7D,oBAAqB,cAAe,cAAe,UACnD,IAAK,eAAgB,WAAY,WAAY,cAI3CC,IAAmB,EAGnBC,GAAiB,GACrBA,GAAehF,GAAcgF,GAAe/E,GAC5C+E,GAAe9E,GAAW8E,GAAe7E,GACzC6E,GAAe5E,GAAY4E,GAAe3E,GAC1C2E,GAAe1E,GAAmB0E,GAAezE,GACjDyE,GAAexE,IAAa,EAC5BwE,GAAelG,GAAWkG,GAAejG,GACzCiG,GAAelF,GAAkBkF,GAAehG,GAChDgG,GAAejF,GAAeiF,GAAe/F,GAC7C+F,GAAe9F,GAAY8F,GAAe7F,GAC1C6F,GAAe3F,GAAU2F,GAAe1F,GACxC0F,GAAezF,GAAayF,GAAevF,GAC3CuF,GAAetF,GAAUsF,GAAerF,GACxCqF,GAAenF,IAAc,EAG7B,IAAIoF,GAAgB,GACpBA,GAAcnG,GAAWmG,GAAclG,GACvCkG,GAAcnF,GAAkBmF,GAAclF,GAC9CkF,GAAcjG,GAAWiG,GAAchG,GACvCgG,GAAcjF,GAAciF,GAAchF,GAC1CgF,GAAc/E,GAAW+E,GAAc9E,GACvC8E,GAAc7E,GAAY6E,GAAc5F,GACxC4F,GAAc3F,GAAa2F,GAAc1F,GACzC0F,GAAcxF,GAAawF,GAAcvF,GACzCuF,GAActF,GAAasF,GAAcrF,GACzCqF,GAAc5E,GAAY4E,GAAc3E,GACxC2E,GAAc1E,GAAa0E,GAAczE,IAAa,EACtDyE,GAAc/F,GAAY+F,GAAc9F,GACxC8F,GAAcpF,IAAc,EAG5B,IA4EIqF,GAAgB,CAClB,KAAM,KACN,IAAK,IACL,KAAM,IACN,KAAM,IACN,SAAU,QACV,SAAU,SAIRC,GAAiBxkZ,WACjBykZ,GAAepwX,SAGfqwX,GAA8B,iBAAV7uX,GAAsBA,GAAUA,EAAO7iC,SAAWA,QAAU6iC,EAGhF8uX,GAA0B,iBAARroZ,MAAoBA,MAAQA,KAAKtJ,SAAWA,QAAUsJ,KAGxE+kG,GAAOqjT,IAAcC,IAAY79O,SAAS,cAATA,GAGjC89O,GAA4C3yZ,IAAYA,EAAQsR,UAAYtR,EAG5E4yZ,GAAaD,IAAgC,iBAAV5yZ,GAAsBA,IAAWA,EAAOuR,UAAYvR,EAGvF8yZ,GAAgBD,IAAcA,GAAW5yZ,UAAY2yZ,GAGrDG,GAAcD,IAAiBJ,GAAW11V,QAG1Cg2V,GAAY,WACd,IAEE,IAAIrkN,EAAQkkN,IAAcA,GAAW3yZ,SAAW2yZ,GAAW3yZ,QAAQ,QAAQyuM,MAE3E,OAAIA,GAKGokN,IAAeA,GAAYzwD,SAAWywD,GAAYzwD,QAAQ,QACjE,MAAO/+V,KAXK,GAeZ0vZ,GAAoBD,IAAYA,GAASE,cACzCC,GAAaH,IAAYA,GAASI,OAClCC,GAAYL,IAAYA,GAASnmO,MACjCymO,GAAeN,IAAYA,GAASO,SACpCC,GAAYR,IAAYA,GAASS,MACjCC,GAAmBV,IAAYA,GAASW,aAc5C,SAAStwZ,GAAM6xK,EAAM9wK,EAAS3C,GAC5B,OAAQA,EAAKd,QACX,KAAK,EAAG,OAAOu0K,EAAK1yK,KAAK4B,GACzB,KAAK,EAAG,OAAO8wK,EAAK1yK,KAAK4B,EAAS3C,EAAK,IACvC,KAAK,EAAG,OAAOyzK,EAAK1yK,KAAK4B,EAAS3C,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOyzK,EAAK1yK,KAAK4B,EAAS3C,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOyzK,EAAK7xK,MAAMe,EAAS3C,GAa7B,SAASmyZ,GAAgB7tV,EAAO8tV,EAAQC,EAAUC,GAIhD,IAHA,IAAIlyZ,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,SAE9BkB,EAAQlB,GAAQ,CACvB,IAAIiE,EAAQmhE,EAAMlkE,GAClBgyZ,EAAOE,EAAanvZ,EAAOkvZ,EAASlvZ,GAAQmhE,GAE9C,OAAOguV,EAYT,SAASC,GAAUjuV,EAAO+tV,GAIxB,IAHA,IAAIjyZ,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,SAE9BkB,EAAQlB,IAC8B,IAAzCmzZ,EAAS/tV,EAAMlkE,GAAQA,EAAOkkE,KAIpC,OAAOA,EAYT,SAASkuV,GAAeluV,EAAO+tV,GAG7B,IAFA,IAAInzZ,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OAEhCA,MAC0C,IAA3CmzZ,EAAS/tV,EAAMplE,GAASA,EAAQolE,KAItC,OAAOA,EAaT,SAASmuV,GAAWnuV,EAAOiE,GAIzB,IAHA,IAAInoE,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,SAE9BkB,EAAQlB,GACf,IAAKqpE,EAAUjE,EAAMlkE,GAAQA,EAAOkkE,GAClC,OAAO,EAGX,OAAO,EAYT,SAASouV,GAAYpuV,EAAOiE,GAM1B,IALA,IAAInoE,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OACnCyzZ,EAAW,EACXpvZ,EAAS,KAEJnD,EAAQlB,GAAQ,CACvB,IAAIiE,EAAQmhE,EAAMlkE,GACdmoE,EAAUplE,EAAO/C,EAAOkkE,KAC1B/gE,EAAOovZ,KAAcxvZ,GAGzB,OAAOI,EAYT,SAASqvZ,GAActuV,EAAOnhE,GAE5B,SADsB,MAATmhE,EAAgB,EAAIA,EAAMplE,SACpB2zZ,GAAYvuV,EAAOnhE,EAAO,IAAM,EAYrD,SAAS2vZ,GAAkBxuV,EAAOnhE,EAAO8jE,GAIvC,IAHA,IAAI7mE,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,SAE9BkB,EAAQlB,GACf,GAAI+nE,EAAW9jE,EAAOmhE,EAAMlkE,IAC1B,OAAO,EAGX,OAAO,EAYT,SAAS2yZ,GAASzuV,EAAO+tV,GAKvB,IAJA,IAAIjyZ,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OACnCqE,EAAS3C,MAAM1B,KAEVkB,EAAQlB,GACfqE,EAAOnD,GAASiyZ,EAAS/tV,EAAMlkE,GAAQA,EAAOkkE,GAEhD,OAAO/gE,EAWT,SAASqxW,GAAUtwS,EAAO3lD,GAKxB,IAJA,IAAIve,GAAS,EACTlB,EAASyf,EAAOzf,OAChBqiC,EAAS+iC,EAAMplE,SAEVkB,EAAQlB,GACfolE,EAAM/iC,EAASnhC,GAASue,EAAOve,GAEjC,OAAOkkE,EAeT,SAAS0uV,GAAY1uV,EAAO+tV,EAAUC,EAAaW,GACjD,IAAI7yZ,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OAKvC,IAHI+zZ,GAAa/zZ,IACfozZ,EAAchuV,IAAQlkE,MAEfA,EAAQlB,GACfozZ,EAAcD,EAASC,EAAahuV,EAAMlkE,GAAQA,EAAOkkE,GAE3D,OAAOguV,EAeT,SAASY,GAAiB5uV,EAAO+tV,EAAUC,EAAaW,GACtD,IAAI/zZ,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OAIvC,IAHI+zZ,GAAa/zZ,IACfozZ,EAAchuV,IAAQplE,IAEjBA,KACLozZ,EAAcD,EAASC,EAAahuV,EAAMplE,GAASA,EAAQolE,GAE7D,OAAOguV,EAaT,SAASa,GAAU7uV,EAAOiE,GAIxB,IAHA,IAAInoE,GAAS,EACTlB,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,SAE9BkB,EAAQlB,GACf,GAAIqpE,EAAUjE,EAAMlkE,GAAQA,EAAOkkE,GACjC,OAAO,EAGX,OAAO,EAUT,IAAI8uV,GAAYC,GAAa,UAmC7B,SAASC,GAAY3jD,EAAYpnS,EAAWgrV,GAC1C,IAAIhwZ,EAOJ,OANAgwZ,EAAS5jD,GAAY,SAASxsW,EAAO1D,EAAKkwW,GACxC,GAAIpnS,EAAUplE,EAAO1D,EAAKkwW,GAExB,OADApsW,EAAS9D,GACF,KAGJ8D,EAcT,SAASiwZ,GAAclvV,EAAOiE,EAAWmjH,EAAW2yD,GAIlD,IAHA,IAAIn/O,EAASolE,EAAMplE,OACfkB,EAAQsrL,GAAa2yD,EAAY,GAAK,GAElCA,EAAYj+O,MAAYA,EAAQlB,GACtC,GAAIqpE,EAAUjE,EAAMlkE,GAAQA,EAAOkkE,GACjC,OAAOlkE,EAGX,OAAQ,EAYV,SAASyyZ,GAAYvuV,EAAOnhE,EAAOuoL,GACjC,OAAOvoL,IAAUA,EAidnB,SAAuBmhE,EAAOnhE,EAAOuoL,GACnC,IAAItrL,EAAQsrL,EAAY,EACpBxsL,EAASolE,EAAMplE,OAEnB,OAASkB,EAAQlB,GACf,GAAIolE,EAAMlkE,KAAW+C,EACnB,OAAO/C,EAGX,OAAQ,EAzdJqzZ,CAAcnvV,EAAOnhE,EAAOuoL,GAC5B8nO,GAAclvV,EAAOovV,GAAWhoO,GAatC,SAASioO,GAAgBrvV,EAAOnhE,EAAOuoL,EAAWzkH,GAIhD,IAHA,IAAI7mE,EAAQsrL,EAAY,EACpBxsL,EAASolE,EAAMplE,SAEVkB,EAAQlB,GACf,GAAI+nE,EAAW3C,EAAMlkE,GAAQ+C,GAC3B,OAAO/C,EAGX,OAAQ,EAUV,SAASszZ,GAAUvwZ,GACjB,OAAOA,IAAUA,EAYnB,SAASywZ,GAAStvV,EAAO+tV,GACvB,IAAInzZ,EAAkB,MAATolE,EAAgB,EAAIA,EAAMplE,OACvC,OAAOA,EAAU20Z,GAAQvvV,EAAO+tV,GAAYnzZ,EAAUqrZ,EAUxD,SAAS8I,GAAa5zZ,GACpB,OAAO,SAAS8f,GACd,OAAiB,MAAVA,EAAiBvE,EAAYuE,EAAO9f,IAW/C,SAASq0Z,GAAev0Y,GACtB,OAAO,SAAS9f,GACd,OAAiB,MAAV8f,EAAiBvE,EAAYuE,EAAO9f,IAiB/C,SAASs0Z,GAAWpkD,EAAY0iD,EAAUC,EAAaW,EAAWM,GAMhE,OALAA,EAAS5jD,GAAY,SAASxsW,EAAO/C,EAAOuvW,GAC1C2iD,EAAcW,GACTA,GAAY,EAAO9vZ,GACpBkvZ,EAASC,EAAanvZ,EAAO/C,EAAOuvW,MAEnC2iD,EAgCT,SAASuB,GAAQvvV,EAAO+tV,GAKtB,IAJA,IAAI9uZ,EACAnD,GAAS,EACTlB,EAASolE,EAAMplE,SAEVkB,EAAQlB,GAAQ,CACvB,IAAI06J,EAAUy4P,EAAS/tV,EAAMlkE,IACzBw5J,IAAY5+I,IACdzX,EAASA,IAAWyX,EAAY4+I,EAAWr2J,EAASq2J,GAGxD,OAAOr2J,EAYT,SAASywZ,GAAUtyZ,EAAG2wZ,GAIpB,IAHA,IAAIjyZ,GAAS,EACTmD,EAAS3C,MAAMc,KAEVtB,EAAQsB,GACf6B,EAAOnD,GAASiyZ,EAASjyZ,GAE3B,OAAOmD,EAyBT,SAAS0wZ,GAAS/iU,GAChB,OAAOA,EACHA,EAAOrrF,MAAM,EAAGquZ,GAAgBhjU,GAAU,GAAGjxF,QAAQmtZ,GAAa,IAClEl8T,EAUN,SAASijU,GAAU1gP,GACjB,OAAO,SAAStwK,GACd,OAAOswK,EAAKtwK,IAchB,SAASixZ,GAAW70Y,EAAQvgB,GAC1B,OAAO+zZ,GAAS/zZ,GAAO,SAASS,GAC9B,OAAO8f,EAAO9f,MAYlB,SAAS40Z,GAASn6X,EAAOz6B,GACvB,OAAOy6B,EAAMupB,IAAIhkD,GAYnB,SAAS60Z,GAAgBC,EAAYC,GAInC,IAHA,IAAIp0Z,GAAS,EACTlB,EAASq1Z,EAAWr1Z,SAEfkB,EAAQlB,GAAU2zZ,GAAY2B,EAAYD,EAAWn0Z,GAAQ,IAAM,IAC5E,OAAOA,EAYT,SAASq0Z,GAAcF,EAAYC,GAGjC,IAFA,IAAIp0Z,EAAQm0Z,EAAWr1Z,OAEhBkB,KAAWyyZ,GAAY2B,EAAYD,EAAWn0Z,GAAQ,IAAM,IACnE,OAAOA,EAWT,SAASs0Z,GAAapwV,EAAOijL,GAI3B,IAHA,IAAIroP,EAASolE,EAAMplE,OACfqE,EAAS,EAENrE,KACDolE,EAAMplE,KAAYqoP,KAClBhkP,EAGN,OAAOA,EAWT,IAAIoxZ,GAAeb,GAjxBG,CAEpB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IACnC,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAER,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAC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gBAAe,CACf,KACA,KAEA,iBAAgB,CAChB,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KAEA,UAAS,CACL,IAAC,CACH,cAAe,KAEjB,QAAS,CACP,WAAY,MAGd,OAAK,EACL,WAAQ,GAGN,EAAsD,CACxD,WAAU,OACV,KAAI,sBACJ,cAAa,CACb,MAEA,gBAAe,CACf,KACA,KACA,KAEA,iBAAgB,CAChB,KACA,KACA,IACA,IACA,IACA,IACA,KAEA,UAAS,CACL,IAAC,CACH,cAAe,KAEb,QAAK,CACP,WAAY,MAGd,OAAK,EACL,WAAQ,GAGN,EAA4C,CAC9C,WAAU,MACV,KAAI,sBACJ,cAAa,CACb,MAEF,gBAAiB,CACf,KACA,MAEF,iBAAkB,CAChB,KACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,MAEF,UAAW,CACT,IAAK,CACH,cAAe,KAEjB,QAAS,CACP,WAAY,MAGhB,OAAO,EACP,WAAU,GAGN,EAA8C,CAClD,WAAY,MACZ,KAAM,yBACN,cAAe,CACb,MAEF,gBAAiB,CACf,KACA,KAEF,iBAAkB,CAChB,KACA,MAEF,UAAW,CACT,IAAK,CACH,cAAe,KAEjB,QAAS,CACP,WAAY,OAGhB,OAAO,EACP,WAAU,GAGN,EAAoD,CACxD,WAAY,MACZ,KAAM,yBACN,cAAe,CACb,MAEF,gBAAiB,CACf,KACA,KAEF,iBAAkB,CAChB,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,UAAW,CACT,IAAK,CACH,cAAe,KAEjB,QAAS,CACP,WAAY,OAGhB,OAAO,EACP,WAAU,GAGN,EAAiD,CACrD,WAAY,MACZ,KAAM,yBACN,cAAe,CACb,MAEF,gBAAiB,CACf,KACA,KAEF,iBAAkB,CAChB,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEF,UAAW,CACT,IAAK,CACH,cAAe,KAEjB,QAAS,CACP,WAAY,OAGhB,OAAO,EACP,WAA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KAAK410B,qB,IAEhB,SAAuB0B,GACnBt30B,KAAK410B,oBAAsB0B,I,0BAE/B,WACI,OAAOt30B,KAAK610B,iB,IAEhB,SAAmB0B,GACfv30B,KAAK610B,gBAAkB0B,I,uBAE3B,WACI,OAAOv30B,KAAK+10B,c,IAEhB,SAAgByB,GACZx30B,KAAK+10B,aAAeyB,EACpBx30B,KAAKg20B,oBAAqB,EAC1Bh20B,KAAKstL,W,yBAET,WACI,OAAOttL,KAAKm20B,gB,IAEhB,SAAkB10Q,GACdzhkB,KAAKm20B,eAAiB10Q,EACtBzhkB,KAAKo20B,sBAAuB,EAC5Bp20B,KAAKstL,W,mBAET,WACI,OAAIttL,KAAKi30B,eAKE9glB,KAEJn2P,KAAK0wuB,GAAG+mG,U,0BAEnB,SAAmBC,GACf130B,KAAK230B,gBAAkBD,EACvB130B,KAAKw20B,uBAAwB,EAC7Bx20B,KAAKstL,W,wBAET,WACI,OAAOttL,KAAK020B,e,IAEhB,SAAiBkB,GACb530B,KAAK020B,cAAgBkB,EACrB530B,KAAKstL,W,uBAET,WACI,OAAOttL,KAAK630B,oB,IAEhB,SAAgBh10B,GACZ7C,KAAK630B,mBAAqBh10B,EAC1B7C,KAAKstL,W,uBAET,WACI,OAAOttL,KAAK830B,oB,IAEhB,SAAgBz2uB,GACZrhG,KAAK830B,mBAAqBz2uB,EAC1BrhG,KAAKstL,W,cAET,WACI,OAAOttL,KAAKy20B,K,IAEhB,SAAOsB,GACH/30B,KAAKy20B,IAAMsB,EACX/30B,KAAKstL,W,qBAET,WACI,QAASttL,KAAKg40B,Y,IAElB,SAAcC,GACVj40B,KAAKg40B,WAAaC,EAClBj40B,KAAKstL,W,4BAET,WACQttL,KAAKq30B,kBACAr30B,KAAKo30B,eACNp30B,KAAK0wuB,GAAG7jpB,KAAK7vD,MAAMuyyB,GAAoB+B,U,kBAInD,WAAO,WACEtx0B,KAAK2yQ,UACN3yQ,KAAKqz0B,mBAAmB75zB,IAAIxZ,KAAK0wuB,GAAG/8L,SAAS5lgB,aAAY,SAAA/rC,GACjDA,IAAU,EAAKA,QAGnB,EAAKic,OAAS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EAoBEx45B,EApBgB,mBAClBy45B,EAmBEz45B,EAnBa,gBACf045B,EAkBE145B,EAlBoB,uBACtBw/nB,EAiBEx/nB,EAjBG,MACLyxC,EAgBEzxC,EAhBQ,WACVw0nB,EAeEx0nB,EAfC,IACH245B,EAcE345B,EAdM,SACR445B,EAaE545B,EAbO,UACT645B,EAYE745B,EAZS,YACXowY,EAWEpwY,EAXQ,WACV845B,EAUE945B,EAVc,iBAChBs05B,EASEt05B,EATW,cACbw05B,EAQEx05B,EARmB,sBACrB+45B,EAOE/45B,EAPU,aACZy35B,EAMEz35B,EANa,gBACfs35B,EAKEt35B,EALK,QACPu35B,EAIEv35B,EAJK,QACPg55B,EAGEh55B,EAHY,eACdi55B,EAEEj55B,EAFqB,wBACvBk55B,EACEl55B,EADiB,oBAEfm55B,EAAsD,QAA3C,EAAc,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAcD,EAAY,IAAMD,UAAQ,QAAK,GAC3DS,EAAkBpF,EAAa8B,EAAethS,EAAIujS,cAmKpD92zB,EACFuzhB,EAAIujS,aAAatxU,UACjB,KACA7qf,EAAQozhB,OAAOwF,EAAIujS,aAAavxU,YAChC,KACAguC,EAAIujS,aAAaxxU,cAMnB,OAJIiuC,EAAI6kS,WACNp4zB,EAAYA,EAAY,KAAOrF,EAAQ03zB,oBAIvC,sBACE364B,UAAW,OAAA2xX,EAAA,GACT74V,EAAWwm3B,QACXY,GAAeM,EACf3kS,EAAI71D,YAAclthB,EAAW6n3B,YAC7B9kS,EAAI71D,YAAc,8BACjB61D,EAAI+kS,YAAc9n3B,EAAW+n3B,kBAC7BhlS,EAAIilS,WAAaho3B,EAAWio3B,0BAE/Bh0wB,IAAK,SAACh5I,GACY,OAAhBos5B,QAAgB,IAAhBA,KAAmBps5B,EAAS8nnB,EAAIujS,aAActm3B,GAC9C+ilB,EAAImlS,OAAOjt5B,IACZ,cACY0jY,EAAU,iBACPA,IAAeokP,EAAI+kS,WACnCnlrB,QAASogZ,EAAI+kS,aAAenphB,EAAaokP,EAAIh9U,gBAAax7R,EAC1D2iwB,YAAcvuY,OAA8Bp0X,E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6zO,EAAiB,CAAE3zO,YAAW,KAG/G,EAAO2zO,EAAiBrq3B,EAAQ4q3B,SAGzBP,EAsBT,SAASI,EACPjy3B,EACAikB,G,IACA,wDAIA,IAFA,IAAMslG,EAAS,GAEW,MAAA8owB,EAAA,eAAW,CAAhC,IAAIC,EAAa,KAChBA,IAEFA,EAC2B,oBAAlBA,EACFA,EAAsDty3B,EAAOikB,GAC9Dqu2B,EAEF1w3B,MAAM+b,QAAQ202B,KAChBA,EAAgBL,EAAc,0BAACjy3B,EAAOikB,GAAUqu2B,KAGlD,EAAO/owB,EAAQ+owB,IAInB,OAAO/owB,Eh9BpJT,IAAM+nE,EAAc,W,IAAC,sDAGnB,IAFA,IAAM/sL,EAAiC,GAEpB,MAAAomE,EAAA,eAGjB,IAHG,IAAMv/D,EAAI,KACPyN,EAAOjX,MAAM+b,QAAQvS,GAAQA,EAAO7K,OAAOsY,KAAKzN,GAEpC,MAAAyN,EAAA,eAAM,CAAnB,IAAMpY,EAAG,KACZ8D,EAAO9D,GAAO,EAIlB,OAAO8D,GAQIgtL,EAAoBD,EAAY,CAC3C,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAQWE,EAAwBF,EAAY,CAC/C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAQWG,EAAwBH,EAAYE,EAAuBD,GAgB3DI,GATkBL,EAAYG,EAAuB,CAChE,SAQ6BH,EAAYG,EAAuB,CAChE,SACA,O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ACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCtKK,SAASC,EAAMC,GACpB,OAAO95qB,YAAM85qB,EAAKC,GAEpB,IACMA,EAAqB,CACzB5srB,KAAM,CACJ0qW,MAAO,SAACpomB,GAAD,OAAUA,EAAK5C,QAExB6jP,SAAU,CACRmnX,MAAO,SAACpomB,GAAD,MAAU,IAAMA,EAAKgS,OAG9B2rP,SAAU,CACRyqW,MAAO,SAACpomB,GAAD,OAAU+X,EAAK/X,EAAKu3L,YAAa,UAE1CqmE,oBAAqB,CACnBwqW,MADmB,SACbpomB,GACJ,IAAMuq7B,EAAUzknB,EAAK,IAAK/tT,EAAK/X,EAAK89a,oBAAqB,MAAO,KAC1Dl7K,EAAS7qP,EACb,CACE/X,EAAK08G,UACL3kG,EAAK,CAAC/X,EAAKgS,KAAMu46B,IACjBxy6B,EAAK/X,EAAK+5X,WAAY,MAExB,KAIF,OAAmB,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","file":"static/js/2.eb67bef8.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction _format(message, args) {\n let result;\n if (args.length === 0) {\n result = message;\n }\n else {\n result = message.replace(/\\{(\\d+)\\}/g, function (match, rest) {\n const index = rest[0];\n return typeof args[index] !== 'undefined' ? args[index] : match;\n });\n }\n return result;\n}\nexport function localize(data, message, ...args) {\n return _format(message, args);\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { BrowserFeatures } from './canIUse.js';\nimport { StandardKeyboardEvent } from './keyboardEvent.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { TimeoutTimer } from '../common/async.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { Emitter } from '../common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../common/lifecycle.js';\nimport { FileAccess, RemoteAuthorities } from '../common/network.js';\nimport * as platform from '../common/platform.js';\nexport function clearNode(node) {\n while (node.firstChild) {\n node.firstChild.remove();\n }\n}\n/**\n * @deprecated Use node.isConnected directly\n */\nexport function isInDOM(node) {\n var _a;\n return (_a = node === null || node === void 0 ? void 0 : node.isConnected) !== null && _a !== void 0 ? _a : false;\n}\nclass DomListener {\n constructor(node, type, handler, options) {\n this._node = node;\n this._type = type;\n this._handler = handler;\n this._options = (options || false);\n this._node.addEventListener(this._type, this._handler, this._options);\n }\n dispose() {\n if (!this._handler) {\n // Already disposed\n return;\n }\n this._node.removeEventListener(this._type, this._handler, this._options);\n // Prevent leakers from holding on to the dom or handler func\n this._node = null;\n this._handler = null;\n }\n}\nexport function addDisposableListener(node, type, handler, useCaptureOrOptions) {\n return new DomListener(node, type, handler, useCaptureOrOptions);\n}\nfunction _wrapAsStandardMouseEvent(handler) {\n return function (e) {\n return handler(new StandardMouseEvent(e));\n };\n}\nfunction _wrapAsStandardKeyboardEvent(handler) {\n return function (e) {\n return handler(new StandardKeyboardEvent(e));\n };\n}\nexport let addStandardDisposableListener = function addStandardDisposableListener(node, type, handler, useCapture) {\n let wrapHandler = handler;\n if (type === 'click' || type === 'mousedown') {\n wrapHandler = _wrapAsStandardMouseEvent(handler);\n }\n else if (type === 'keydown' || type === 'keypress' || type === 'keyup') {\n wrapHandler = _wrapAsStandardKeyboardEvent(handler);\n }\n return addDisposableListener(node, type, wrapHandler, useCapture);\n};\nexport let addStandardDisposableGenericMouseDownListner = function addStandardDisposableListener(node, handler, useCapture) {\n let wrapHandler = _wrapAsStandardMouseEvent(handler);\n return addDisposableGenericMouseDownListner(node, wrapHandler, useCapture);\n};\nexport function addDisposableGenericMouseDownListner(node, handler, useCapture) {\n return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);\n}\nexport function addDisposableGenericMouseUpListner(node, handler, useCapture) {\n return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);\n}\nexport function addDisposableNonBubblingMouseOutListener(node, handler) {\n return addDisposableListener(node, 'mouseout', (e) => {\n // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements\n let toElement = (e.relatedTarget);\n while (toElement && toElement !== node) {\n toElement = toElement.parentNode;\n }\n if (toElement === node) {\n return;\n }\n handler(e);\n });\n}\nexport function addDisposableNonBubblingPointerOutListener(node, handler) {\n return addDisposableListener(node, 'pointerout', (e) => {\n // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements\n let toElement = (e.relatedTarget);\n while (toElement && toElement !== node) {\n toElement = toElement.parentNode;\n }\n if (toElement === node) {\n return;\n }\n handler(e);\n });\n}\nlet _animationFrame = null;\nfunction doRequestAnimationFrame(callback) {\n if (!_animationFrame) {\n const emulatedRequestAnimationFrame = (callback) => {\n return setTimeout(() => callback(new Date().getTime()), 0);\n };\n _animationFrame = (self.requestAnimationFrame\n || self.msRequestAnimationFrame\n || self.webkitRequestAnimationFrame\n || self.mozRequestAnimationFrame\n || self.oRequestAnimationFrame\n || emulatedRequestAnimationFrame);\n }\n return _animationFrame.call(self, callback);\n}\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed immediately.\n * @return token that can be used to cancel the scheduled runner (only if `runner` was not executed immediately).\n */\nexport let runAtThisOrScheduleAtNextAnimationFrame;\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed at the next animation frame.\n * @return token that can be used to cancel the scheduled runner.\n */\nexport let scheduleAtNextAnimationFrame;\nclass AnimationFrameQueueItem {\n constructor(runner, priority = 0) {\n this._runner = runner;\n this.priority = priority;\n this._canceled = false;\n }\n dispose() {\n this._canceled = true;\n }\n execute() {\n if (this._canceled) {\n return;\n }\n try {\n this._runner();\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n // Sort by priority (largest to lowest)\n static sort(a, b) {\n return b.priority - a.priority;\n }\n}\n(function () {\n /**\n * The runners scheduled at the next animation frame\n */\n let NEXT_QUEUE = [];\n /**\n * The runners scheduled at the current animation frame\n */\n let CURRENT_QUEUE = null;\n /**\n * A flag to keep track if the native requestAnimationFrame was already called\n */\n let animFrameRequested = false;\n /**\n * A flag to indicate if currently handling a native requestAnimationFrame callback\n */\n let inAnimationFrameRunner = false;\n let animationFrameRunner = () => {\n animFrameRequested = false;\n CURRENT_QUEUE = NEXT_QUEUE;\n NEXT_QUEUE = [];\n inAnimationFrameRunner = true;\n while (CURRENT_QUEUE.length > 0) {\n CURRENT_QUEUE.sort(AnimationFrameQueueItem.sort);\n let top = CURRENT_QUEUE.shift();\n top.execute();\n }\n inAnimationFrameRunner = false;\n };\n scheduleAtNextAnimationFrame = (runner, priority = 0) => {\n let item = new AnimationFrameQueueItem(runner, priority);\n NEXT_QUEUE.push(item);\n if (!animFrameRequested) {\n animFrameRequested = true;\n doRequestAnimationFrame(animationFrameRunner);\n }\n return item;\n };\n runAtThisOrScheduleAtNextAnimationFrame = (runner, priority) => {\n if (inAnimationFrameRunner) {\n let item = new AnimationFrameQueueItem(runner, priority);\n CURRENT_QUEUE.push(item);\n return item;\n }\n else {\n return scheduleAtNextAnimationFrame(runner, priority);\n }\n };\n})();\nconst MINIMUM_TIME_MS = 8;\nconst DEFAULT_EVENT_MERGER = function (lastEvent, currentEvent) {\n return currentEvent;\n};\nclass TimeoutThrottledDomListener extends Disposable {\n constructor(node, type, handler, eventMerger = DEFAULT_EVENT_MERGER, minimumTimeMs = MINIMUM_TIME_MS) {\n super();\n let lastEvent = null;\n let lastHandlerTime = 0;\n let timeout = this._register(new TimeoutTimer());\n let invokeHandler = () => {\n lastHandlerTime = (new Date()).getTime();\n handler(lastEvent);\n lastEvent = null;\n };\n this._register(addDisposableListener(node, type, (e) => {\n lastEvent = eventMerger(lastEvent, e);\n let elapsedTime = (new Date()).getTime() - lastHandlerTime;\n if (elapsedTime >= minimumTimeMs) {\n timeout.cancel();\n invokeHandler();\n }\n else {\n timeout.setIfNotSet(invokeHandler, minimumTimeMs - elapsedTime);\n }\n }));\n }\n}\nexport function addDisposableThrottledListener(node, type, handler, eventMerger, minimumTimeMs) {\n return new TimeoutThrottledDomListener(node, type, handler, eventMerger, minimumTimeMs);\n}\nexport function getComputedStyle(el) {\n return document.defaultView.getComputedStyle(el, null);\n}\nexport function getClientArea(element) {\n // Try with DOM clientWidth / clientHeight\n if (element !== document.body) {\n return new Dimension(element.clientWidth, element.clientHeight);\n }\n // If visual view port exits and it's on mobile, it should be used instead of window innerWidth / innerHeight, or document.body.clientWidth / document.body.clientHeight\n if (platform.isIOS && window.visualViewport) {\n return new Dimension(window.visualViewport.width, window.visualViewport.height);\n }\n // Try innerWidth / innerHeight\n if (window.innerWidth && window.innerHeight) {\n return new Dimension(window.innerWidth, window.innerHeight);\n }\n // Try with document.body.clientWidth / document.body.clientHeight\n if (document.body && document.body.clientWidth && document.body.clientHeight) {\n return new Dimension(document.body.clientWidth, document.body.clientHeight);\n }\n // Try with document.documentElement.clientWidth / document.documentElement.clientHeight\n if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) {\n return new Dimension(document.documentElement.clientWidth, document.documentElement.clientHeight);\n }\n throw new Error('Unable to figure out browser width and height');\n}\nclass SizeUtils {\n // Adapted from WinJS\n // Converts a CSS positioning string for the specified element to pixels.\n static convertToPixels(element, value) {\n return parseFloat(value) || 0;\n }\n static getDimension(element, cssPropertyName, jsPropertyName) {\n let computedStyle = getComputedStyle(element);\n let value = '0';\n if (computedStyle) {\n if (computedStyle.getPropertyValue) {\n value = computedStyle.getPropertyValue(cssPropertyName);\n }\n else {\n // IE8\n value = computedStyle.getAttribute(jsPropertyName);\n }\n }\n return SizeUtils.convertToPixels(element, value);\n }\n static getBorderLeftWidth(element) {\n return SizeUtils.getDimension(element, 'border-left-width', 'borderLeftWidth');\n }\n static getBorderRightWidth(element) {\n return SizeUtils.getDimension(element, 'border-right-width', 'borderRightWidth');\n }\n static getBorderTopWidth(element) {\n return SizeUtils.getDimension(element, 'border-top-width', 'borderTopWidth');\n }\n static getBorderBottomWidth(element) {\n return SizeUtils.getDimension(element, 'border-bottom-width', 'borderBottomWidth');\n }\n static getPaddingLeft(element) {\n return SizeUtils.getDimension(element, 'padding-left', 'paddingLeft');\n }\n static getPaddingRight(element) {\n return SizeUtils.getDimension(element, 'padding-right', 'paddingRight');\n }\n static getPaddingTop(element) {\n return SizeUtils.getDimension(element, 'padding-top', 'paddingTop');\n }\n static getPaddingBottom(element) {\n return SizeUtils.getDimension(element, 'padding-bottom', 'paddingBottom');\n }\n static getMarginLeft(element) {\n return SizeUtils.getDimension(element, 'margin-left', 'marginLeft');\n }\n static getMarginTop(element) {\n return SizeUtils.getDimension(element, 'margin-top', 'marginTop');\n }\n static getMarginRight(element) {\n return SizeUtils.getDimension(element, 'margin-right', 'marginRight');\n }\n static getMarginBottom(element) {\n return SizeUtils.getDimension(element, 'margin-bottom', 'marginBottom');\n }\n}\nexport class Dimension {\n constructor(width, height) {\n this.width = width;\n this.height = height;\n }\n with(width = this.width, height = this.height) {\n if (width !== this.width || height !== this.height) {\n return new Dimension(width, height);\n }\n else {\n return this;\n }\n }\n static is(obj) {\n return typeof obj === 'object' && typeof obj.height === 'number' && typeof obj.width === 'number';\n }\n static lift(obj) {\n if (obj instanceof Dimension) {\n return obj;\n }\n else {\n return new Dimension(obj.width, obj.height);\n }\n }\n static equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.width === b.width && a.height === b.height;\n }\n}\nexport function getTopLeftOffset(element) {\n // Adapted from WinJS.Utilities.getPosition\n // and added borders to the mix\n let offsetParent = element.offsetParent;\n let top = element.offsetTop;\n let left = element.offsetLeft;\n while ((element = element.parentNode) !== null\n && element !== document.body\n && element !== document.documentElement) {\n top -= element.scrollTop;\n const c = isShadowRoot(element) ? null : getComputedStyle(element);\n if (c) {\n left -= c.direction !== 'rtl' ? element.scrollLeft : -element.scrollLeft;\n }\n if (element === offsetParent) {\n left += SizeUtils.getBorderLeftWidth(element);\n top += SizeUtils.getBorderTopWidth(element);\n top += element.offsetTop;\n left += element.offsetLeft;\n offsetParent = element.offsetParent;\n }\n }\n return {\n left: left,\n top: top\n };\n}\nexport function size(element, width, height) {\n if (typeof width === 'number') {\n element.style.width = `${width}px`;\n }\n if (typeof height === 'number') {\n element.style.height = `${height}px`;\n }\n}\n/**\n * Returns the position of a dom node relative to the entire page.\n */\nexport function getDomNodePagePosition(domNode) {\n let bb = domNode.getBoundingClientRect();\n return {\n left: bb.left + StandardWindow.scrollX,\n top: bb.top + StandardWindow.scrollY,\n width: bb.width,\n height: bb.height\n };\n}\nexport const StandardWindow = new class {\n get scrollX() {\n if (typeof window.scrollX === 'number') {\n // modern browsers\n return window.scrollX;\n }\n else {\n return document.body.scrollLeft + document.documentElement.scrollLeft;\n }\n }\n get scrollY() {\n if (typeof window.scrollY === 'number') {\n // modern browsers\n return window.scrollY;\n }\n else {\n return document.body.scrollTop + document.documentElement.scrollTop;\n }\n }\n};\n// Adapted from WinJS\n// Gets the width of the element, including margins.\nexport function getTotalWidth(element) {\n let margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);\n return element.offsetWidth + margin;\n}\nexport function getContentWidth(element) {\n let border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);\n let padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);\n return element.offsetWidth - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the content of the specified element. The content height does not include borders or padding.\nexport function getContentHeight(element) {\n let border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);\n let padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);\n return element.offsetHeight - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the element, including its margins.\nexport function getTotalHeight(element) {\n let margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);\n return element.offsetHeight + margin;\n}\n// ----------------------------------------------------------------------------------------\nexport function isAncestor(testChild, testAncestor) {\n while (testChild) {\n if (testChild === testAncestor) {\n return true;\n }\n testChild = testChild.parentNode;\n }\n return false;\n}\nexport function findParentWithClass(node, clazz, stopAtClazzOrNode) {\n while (node && node.nodeType === node.ELEMENT_NODE) {\n if (node.classList.contains(clazz)) {\n return node;\n }\n if (stopAtClazzOrNode) {\n if (typeof stopAtClazzOrNode === 'string') {\n if (node.classList.contains(stopAtClazzOrNode)) {\n return null;\n }\n }\n else {\n if (node === stopAtClazzOrNode) {\n return null;\n }\n }\n }\n node = node.parentNode;\n }\n return null;\n}\nexport function hasParentWithClass(node, clazz, stopAtClazzOrNode) {\n return !!findParentWithClass(node, clazz, stopAtClazzOrNode);\n}\nexport function isShadowRoot(node) {\n return (node && !!node.host && !!node.mode);\n}\nexport function isInShadowDOM(domNode) {\n return !!getShadowRoot(domNode);\n}\nexport function getShadowRoot(domNode) {\n while (domNode.parentNode) {\n if (domNode === document.body) {\n // reached the body\n return null;\n }\n domNode = domNode.parentNode;\n }\n return isShadowRoot(domNode) ? domNode : null;\n}\nexport function getActiveElement() {\n let result = document.activeElement;\n while (result === null || result === void 0 ? void 0 : result.shadowRoot) {\n result = result.shadowRoot.activeElement;\n }\n return result;\n}\nexport function createStyleSheet(container = document.getElementsByTagName('head')[0]) {\n let style = document.createElement('style');\n style.type = 'text/css';\n style.media = 'screen';\n container.appendChild(style);\n return style;\n}\nlet _sharedStyleSheet = null;\nfunction getSharedStyleSheet() {\n if (!_sharedStyleSheet) {\n _sharedStyleSheet = createStyleSheet();\n }\n return _sharedStyleSheet;\n}\nfunction getDynamicStyleSheetRules(style) {\n var _a, _b;\n if ((_a = style === null || style === void 0 ? void 0 : style.sheet) === null || _a === void 0 ? void 0 : _a.rules) {\n // Chrome, IE\n return style.sheet.rules;\n }\n if ((_b = style === null || style === void 0 ? void 0 : style.sheet) === null || _b === void 0 ? void 0 : _b.cssRules) {\n // FF\n return style.sheet.cssRules;\n }\n return [];\n}\nexport function createCSSRule(selector, cssText, style = getSharedStyleSheet()) {\n if (!style || !cssText) {\n return;\n }\n style.sheet.insertRule(selector + '{' + cssText + '}', 0);\n}\nexport function removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {\n if (!style) {\n return;\n }\n let rules = getDynamicStyleSheetRules(style);\n let toDelete = [];\n for (let i = 0; i < rules.length; i++) {\n let rule = rules[i];\n if (rule.selectorText.indexOf(ruleName) !== -1) {\n toDelete.push(i);\n }\n }\n for (let i = toDelete.length - 1; i >= 0; i--) {\n style.sheet.deleteRule(toDelete[i]);\n }\n}\nexport function isHTMLElement(o) {\n if (typeof HTMLElement === 'object') {\n return o instanceof HTMLElement;\n }\n return o && typeof o === 'object' && o.nodeType === 1 && typeof o.nodeName === 'string';\n}\nexport const EventType = {\n // Mouse\n CLICK: 'click',\n AUXCLICK: 'auxclick',\n DBLCLICK: 'dblclick',\n MOUSE_UP: 'mouseup',\n MOUSE_DOWN: 'mousedown',\n MOUSE_OVER: 'mouseover',\n MOUSE_MOVE: 'mousemove',\n MOUSE_OUT: 'mouseout',\n MOUSE_ENTER: 'mouseenter',\n MOUSE_LEAVE: 'mouseleave',\n MOUSE_WHEEL: 'wheel',\n POINTER_UP: 'pointerup',\n POINTER_DOWN: 'pointerdown',\n POINTER_MOVE: 'pointermove',\n CONTEXT_MENU: 'contextmenu',\n WHEEL: 'wheel',\n // Keyboard\n KEY_DOWN: 'keydown',\n KEY_PRESS: 'keypress',\n KEY_UP: 'keyup',\n // HTML Document\n LOAD: 'load',\n BEFORE_UNLOAD: 'beforeunload',\n UNLOAD: 'unload',\n ABORT: 'abort',\n ERROR: 'error',\n RESIZE: 'resize',\n SCROLL: 'scroll',\n FULLSCREEN_CHANGE: 'fullscreenchange',\n WK_FULLSCREEN_CHANGE: 'webkitfullscreenchange',\n // Form\n SELECT: 'select',\n CHANGE: 'change',\n SUBMIT: 'submit',\n RESET: 'reset',\n FOCUS: 'focus',\n FOCUS_IN: 'focusin',\n FOCUS_OUT: 'focusout',\n BLUR: 'blur',\n INPUT: 'input',\n // Local Storage\n STORAGE: 'storage',\n // Drag\n DRAG_START: 'dragstart',\n DRAG: 'drag',\n DRAG_ENTER: 'dragenter',\n DRAG_LEAVE: 'dragleave',\n DRAG_OVER: 'dragover',\n DROP: 'drop',\n DRAG_END: 'dragend',\n // Animation\n ANIMATION_START: browser.isWebKit ? 'webkitAnimationStart' : 'animationstart',\n ANIMATION_END: browser.isWebKit ? 'webkitAnimationEnd' : 'animationend',\n ANIMATION_ITERATION: browser.isWebKit ? 'webkitAnimationIteration' : 'animationiteration'\n};\nexport const EventHelper = {\n stop: function (e, cancelBubble) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n else {\n // IE8\n e.returnValue = false;\n }\n if (cancelBubble) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n else {\n // IE8\n e.cancelBubble = true;\n }\n }\n }\n};\nexport function saveParentsScrollTop(node) {\n let r = [];\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n r[i] = node.scrollTop;\n node = node.parentNode;\n }\n return r;\n}\nexport function restoreParentsScrollTop(node, state) {\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n if (node.scrollTop !== state[i]) {\n node.scrollTop = state[i];\n }\n node = node.parentNode;\n }\n}\nclass FocusTracker extends Disposable {\n constructor(element) {\n super();\n this._onDidFocus = this._register(new Emitter());\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = this._register(new Emitter());\n this.onDidBlur = this._onDidBlur.event;\n let hasFocus = isAncestor(document.activeElement, element);\n let loosingFocus = false;\n const onFocus = () => {\n loosingFocus = false;\n if (!hasFocus) {\n hasFocus = true;\n this._onDidFocus.fire();\n }\n };\n const onBlur = () => {\n if (hasFocus) {\n loosingFocus = true;\n window.setTimeout(() => {\n if (loosingFocus) {\n loosingFocus = false;\n hasFocus = false;\n this._onDidBlur.fire();\n }\n }, 0);\n }\n };\n this._refreshStateHandler = () => {\n let currentNodeHasFocus = isAncestor(document.activeElement, element);\n if (currentNodeHasFocus !== hasFocus) {\n if (hasFocus) {\n onBlur();\n }\n else {\n onFocus();\n }\n }\n };\n this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));\n this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));\n }\n}\nexport function trackFocus(element) {\n return new FocusTracker(element);\n}\nexport function append(parent, ...children) {\n parent.append(...children);\n if (children.length === 1 && typeof children[0] !== 'string') {\n return children[0];\n }\n}\nexport function prepend(parent, child) {\n parent.insertBefore(child, parent.firstChild);\n return child;\n}\n/**\n * Removes all children from `parent` and appends `children`\n */\nexport function reset(parent, ...children) {\n parent.innerText = '';\n append(parent, ...children);\n}\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\nexport var Namespace;\n(function (Namespace) {\n Namespace[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n Namespace[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n})(Namespace || (Namespace = {}));\nfunction _$(namespace, description, attrs, ...children) {\n let match = SELECTOR_REGEX.exec(description);\n if (!match) {\n throw new Error('Bad use of emmet');\n }\n attrs = Object.assign({}, (attrs || {}));\n let tagName = match[1] || 'div';\n let result;\n if (namespace !== Namespace.HTML) {\n result = document.createElementNS(namespace, tagName);\n }\n else {\n result = document.createElement(tagName);\n }\n if (match[3]) {\n result.id = match[3];\n }\n if (match[4]) {\n result.className = match[4].replace(/\\./g, ' ').trim();\n }\n Object.keys(attrs).forEach(name => {\n const value = attrs[name];\n if (typeof value === 'undefined') {\n return;\n }\n if (/^on\\w+$/.test(name)) {\n result[name] = value;\n }\n else if (name === 'selected') {\n if (value) {\n result.setAttribute(name, 'true');\n }\n }\n else {\n result.setAttribute(name, value);\n }\n });\n result.append(...children);\n return result;\n}\nexport function $(description, attrs, ...children) {\n return _$(Namespace.HTML, description, attrs, ...children);\n}\n$.SVG = function (description, attrs, ...children) {\n return _$(Namespace.SVG, description, attrs, ...children);\n};\nexport function show(...elements) {\n for (let element of elements) {\n element.style.display = '';\n element.removeAttribute('aria-hidden');\n }\n}\nexport function hide(...elements) {\n for (let element of elements) {\n element.style.display = 'none';\n element.setAttribute('aria-hidden', 'true');\n }\n}\nexport function getElementsByTagName(tag) {\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\n}\n/**\n * Find a value usable for a dom node size such that the likelihood that it would be\n * displayed with constant screen pixels size is as high as possible.\n *\n * e.g. We would desire for the cursors to be 2px (CSS px) wide. Under a devicePixelRatio\n * of 1.25, the cursor will be 2.5 screen pixels wide. Depending on how the dom node aligns/\"snaps\"\n * with the screen pixels, it will sometimes be rendered with 2 screen pixels, and sometimes with 3 screen pixels.\n */\nexport function computeScreenAwareSize(cssPx) {\n const screenPx = window.devicePixelRatio * cssPx;\n return Math.max(1, Math.floor(screenPx)) / window.devicePixelRatio;\n}\n/**\n * Open safely a new window. This is the best way to do so, but you cannot tell\n * if the window was opened or if it was blocked by the browser's popup blocker.\n * If you want to tell if the browser blocked the new window, use `windowOpenNoOpenerWithSuccess`.\n *\n * See https://github.com/microsoft/monaco-editor/issues/601\n * To protect against malicious code in the linked site, particularly phishing attempts,\n * the window.opener should be set to null to prevent the linked site from having access\n * to change the location of the current page.\n * See https://mathiasbynens.github.io/rel-noopener/\n */\nexport function windowOpenNoOpener(url) {\n // By using 'noopener' in the `windowFeatures` argument, the newly created window will\n // not be able to use `window.opener` to reach back to the current page.\n // See https://stackoverflow.com/a/46958731\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/open#noopener\n // However, this also doesn't allow us to realize if the browser blocked\n // the creation of the window.\n window.open(url, '_blank', 'noopener');\n}\nexport function animate(fn) {\n const step = () => {\n fn();\n stepDisposable = scheduleAtNextAnimationFrame(step);\n };\n let stepDisposable = scheduleAtNextAnimationFrame(step);\n return toDisposable(() => stepDisposable.dispose());\n}\nRemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href) ? 'https' : 'http');\n/**\n * returns url('...')\n */\nexport function asCSSUrl(uri) {\n if (!uri) {\n return `url('')`;\n }\n return `url('${FileAccess.asBrowserUri(uri).toString(true).replace(/'/g, '%27')}')`;\n}\nexport function asCSSPropertyValue(value) {\n return `'${value.replace(/'/g, '%27')}'`;\n}\nexport class ModifierKeyEmitter extends Emitter {\n constructor() {\n super();\n this._subscriptions = new DisposableStore();\n this._keyStatus = {\n altKey: false,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false\n };\n this._subscriptions.add(addDisposableListener(window, 'keydown', e => {\n if (e.defaultPrevented) {\n return;\n }\n const event = new StandardKeyboardEvent(e);\n // If Alt-key keydown event is repeated, ignore it #112347\n // Only known to be necessary for Alt-Key at the moment #115810\n if (event.keyCode === 6 /* Alt */ && e.repeat) {\n return;\n }\n if (e.altKey && !this._keyStatus.altKey) {\n this._keyStatus.lastKeyPressed = 'alt';\n }\n else if (e.ctrlKey && !this._keyStatus.ctrlKey) {\n this._keyStatus.lastKeyPressed = 'ctrl';\n }\n else if (e.metaKey && !this._keyStatus.metaKey) {\n this._keyStatus.lastKeyPressed = 'meta';\n }\n else if (e.shiftKey && !this._keyStatus.shiftKey) {\n this._keyStatus.lastKeyPressed = 'shift';\n }\n else if (event.keyCode !== 6 /* Alt */) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n else {\n return;\n }\n this._keyStatus.altKey = e.altKey;\n this._keyStatus.ctrlKey = e.ctrlKey;\n this._keyStatus.metaKey = e.metaKey;\n this._keyStatus.shiftKey = e.shiftKey;\n if (this._keyStatus.lastKeyPressed) {\n this._keyStatus.event = e;\n this.fire(this._keyStatus);\n }\n }, true));\n this._subscriptions.add(addDisposableListener(window, 'keyup', e => {\n if (e.defaultPrevented) {\n return;\n }\n if (!e.altKey && this._keyStatus.altKey) {\n this._keyStatus.lastKeyReleased = 'alt';\n }\n else if (!e.ctrlKey && this._keyStatus.ctrlKey) {\n this._keyStatus.lastKeyReleased = 'ctrl';\n }\n else if (!e.metaKey && this._keyStatus.metaKey) {\n this._keyStatus.lastKeyReleased = 'meta';\n }\n else if (!e.shiftKey && this._keyStatus.shiftKey) {\n this._keyStatus.lastKeyReleased = 'shift';\n }\n else {\n this._keyStatus.lastKeyReleased = undefined;\n }\n if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n this._keyStatus.altKey = e.altKey;\n this._keyStatus.ctrlKey = e.ctrlKey;\n this._keyStatus.metaKey = e.metaKey;\n this._keyStatus.shiftKey = e.shiftKey;\n if (this._keyStatus.lastKeyReleased) {\n this._keyStatus.event = e;\n this.fire(this._keyStatus);\n }\n }, true));\n this._subscriptions.add(addDisposableListener(document.body, 'mousedown', () => {\n this._keyStatus.lastKeyPressed = undefined;\n }, true));\n this._subscriptions.add(addDisposableListener(document.body, 'mouseup', () => {\n this._keyStatus.lastKeyPressed = undefined;\n }, true));\n this._subscriptions.add(addDisposableListener(document.body, 'mousemove', e => {\n if (e.buttons) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n }, true));\n this._subscriptions.add(addDisposableListener(window, 'blur', () => {\n this.resetKeyStatus();\n }));\n }\n get keyStatus() {\n return this._keyStatus;\n }\n /**\n * Allows to explicitly reset the key status based on more knowledge (#109062)\n */\n resetKeyStatus() {\n this.doResetKeyStatus();\n this.fire(this._keyStatus);\n }\n doResetKeyStatus() {\n this._keyStatus = {\n altKey: false,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false\n };\n }\n static getInstance() {\n if (!ModifierKeyEmitter.instance) {\n ModifierKeyEmitter.instance = new ModifierKeyEmitter();\n }\n return ModifierKeyEmitter.instance;\n }\n dispose() {\n super.dispose();\n this._subscriptions.dispose();\n }\n}\nexport function addMatchMediaChangeListener(query, callback) {\n const mediaQueryList = window.matchMedia(query);\n if (typeof mediaQueryList.addEventListener === 'function') {\n mediaQueryList.addEventListener('change', callback);\n }\n else {\n // Safari 13.x\n mediaQueryList.addListener(callback);\n }\n}\n","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","module.exports = require(\"regenerator-runtime\");\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { once } from './functional.js';\nimport { Iterable } from './iterator.js';\n/**\n * Enables logging of potentially leaked disposables.\n *\n * A disposable is considered leaked if it is not disposed or not registered as the child of\n * another disposable. This tracking is very simple an only works for classes that either\n * extend Disposable or use a DisposableStore. This means there are a lot of false positives.\n */\nconst TRACK_DISPOSABLES = false;\nlet disposableTracker = null;\nexport function setDisposableTracker(tracker) {\n disposableTracker = tracker;\n}\nif (TRACK_DISPOSABLES) {\n const __is_disposable_tracked__ = '__is_disposable_tracked__';\n setDisposableTracker(new class {\n trackDisposable(x) {\n const stack = new Error('Potentially leaked disposable').stack;\n setTimeout(() => {\n if (!x[__is_disposable_tracked__]) {\n console.log(stack);\n }\n }, 3000);\n }\n setParent(child, parent) {\n if (child && child !== Disposable.None) {\n try {\n child[__is_disposable_tracked__] = true;\n }\n catch (_a) {\n // noop\n }\n }\n }\n markAsDisposed(disposable) {\n if (disposable && disposable !== Disposable.None) {\n try {\n disposable[__is_disposable_tracked__] = true;\n }\n catch (_a) {\n // noop\n }\n }\n }\n markAsSingleton(disposable) { }\n });\n}\nfunction trackDisposable(x) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.trackDisposable(x);\n return x;\n}\nfunction markAsDisposed(disposable) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsDisposed(disposable);\n}\nfunction setParentOfDisposable(child, parent) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.setParent(child, parent);\n}\nfunction setParentOfDisposables(children, parent) {\n if (!disposableTracker) {\n return;\n }\n for (const child of children) {\n disposableTracker.setParent(child, parent);\n }\n}\n/**\n * Indicates that the given object is a singleton which does not need to be disposed.\n*/\nexport function markAsSingleton(singleton) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsSingleton(singleton);\n return singleton;\n}\nexport class MultiDisposeError extends Error {\n constructor(errors) {\n super(`Encountered errors while disposing of store. Errors: [${errors.join(', ')}]`);\n this.errors = errors;\n }\n}\nexport function isDisposable(thing) {\n return typeof thing.dispose === 'function' && thing.dispose.length === 0;\n}\nexport function dispose(arg) {\n if (Iterable.is(arg)) {\n let errors = [];\n for (const d of arg) {\n if (d) {\n try {\n d.dispose();\n }\n catch (e) {\n errors.push(e);\n }\n }\n }\n if (errors.length === 1) {\n throw errors[0];\n }\n else if (errors.length > 1) {\n throw new MultiDisposeError(errors);\n }\n return Array.isArray(arg) ? [] : arg;\n }\n else if (arg) {\n arg.dispose();\n return arg;\n }\n}\nexport function combinedDisposable(...disposables) {\n const parent = toDisposable(() => dispose(disposables));\n setParentOfDisposables(disposables, parent);\n return parent;\n}\nexport function toDisposable(fn) {\n const self = trackDisposable({\n dispose: once(() => {\n markAsDisposed(self);\n fn();\n })\n });\n return self;\n}\nexport class DisposableStore {\n constructor() {\n this._toDispose = new Set();\n this._isDisposed = false;\n trackDisposable(this);\n }\n /**\n * Dispose of all registered disposables and mark this object as disposed.\n *\n * Any future disposables added to this object will be disposed of on `add`.\n */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n markAsDisposed(this);\n this._isDisposed = true;\n this.clear();\n }\n /**\n * Dispose of all registered disposables but do not mark this object as disposed.\n */\n clear() {\n try {\n dispose(this._toDispose.values());\n }\n finally {\n this._toDispose.clear();\n }\n }\n add(o) {\n if (!o) {\n return o;\n }\n if (o === this) {\n throw new Error('Cannot register a disposable on itself!');\n }\n setParentOfDisposable(o, this);\n if (this._isDisposed) {\n if (!DisposableStore.DISABLE_DISPOSED_WARNING) {\n console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack);\n }\n }\n else {\n this._toDispose.add(o);\n }\n return o;\n }\n}\nDisposableStore.DISABLE_DISPOSED_WARNING = false;\nexport class Disposable {\n constructor() {\n this._store = new DisposableStore();\n trackDisposable(this);\n setParentOfDisposable(this._store, this);\n }\n dispose() {\n markAsDisposed(this);\n this._store.dispose();\n }\n _register(o) {\n if (o === this) {\n throw new Error('Cannot register a disposable on itself!');\n }\n return this._store.add(o);\n }\n}\nDisposable.None = Object.freeze({ dispose() { } });\n/**\n * Manages the lifecycle of a disposable value that may be changed.\n *\n * This ensures that when the disposable value is changed, the previously held disposable is disposed of. You can\n * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up.\n */\nexport class MutableDisposable {\n constructor() {\n this._isDisposed = false;\n trackDisposable(this);\n }\n get value() {\n return this._isDisposed ? undefined : this._value;\n }\n set value(value) {\n var _a;\n if (this._isDisposed || value === this._value) {\n return;\n }\n (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n if (value) {\n setParentOfDisposable(value, this);\n }\n this._value = value;\n }\n clear() {\n this.value = undefined;\n }\n dispose() {\n var _a;\n this._isDisposed = true;\n markAsDisposed(this);\n (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n this._value = undefined;\n }\n /**\n * Clears the value, but does not dispose it.\n * The old value is returned.\n */\n clearAndLeak() {\n const oldValue = this._value;\n this._value = undefined;\n if (oldValue) {\n setParentOfDisposable(oldValue, null);\n }\n return oldValue;\n }\n}\nexport class ImmortalReference {\n constructor(object) {\n this.object = object;\n }\n dispose() { }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\n/**\n * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)\n */\nexport class Range {\n constructor(startLineNumber, startColumn, endLineNumber, endColumn) {\n if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) {\n this.startLineNumber = endLineNumber;\n this.startColumn = endColumn;\n this.endLineNumber = startLineNumber;\n this.endColumn = startColumn;\n }\n else {\n this.startLineNumber = startLineNumber;\n this.startColumn = startColumn;\n this.endLineNumber = endLineNumber;\n this.endColumn = endColumn;\n }\n }\n /**\n * Test if this range is empty.\n */\n isEmpty() {\n return Range.isEmpty(this);\n }\n /**\n * Test if `range` is empty.\n */\n static isEmpty(range) {\n return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn);\n }\n /**\n * Test if position is in this range. If the position is at the edges, will return true.\n */\n containsPosition(position) {\n return Range.containsPosition(this, position);\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return true.\n */\n static containsPosition(range, position) {\n if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\n return false;\n }\n if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) {\n return false;\n }\n if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * Test if range is in this range. If the range is equal to this range, will return true.\n */\n containsRange(range) {\n return Range.containsRange(this, range);\n }\n /**\n * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n */\n static containsRange(range, otherRange) {\n if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) {\n return false;\n }\n if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n */\n strictContainsRange(range) {\n return Range.strictContainsRange(this, range);\n }\n /**\n * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n */\n static strictContainsRange(range, otherRange) {\n if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) {\n return false;\n }\n if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n plusRange(range) {\n return Range.plusRange(this, range);\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n static plusRange(a, b) {\n let startLineNumber;\n let startColumn;\n let endLineNumber;\n let endColumn;\n if (b.startLineNumber < a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = b.startColumn;\n }\n else if (b.startLineNumber === a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = Math.min(b.startColumn, a.startColumn);\n }\n else {\n startLineNumber = a.startLineNumber;\n startColumn = a.startColumn;\n }\n if (b.endLineNumber > a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = b.endColumn;\n }\n else if (b.endLineNumber === a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = Math.max(b.endColumn, a.endColumn);\n }\n else {\n endLineNumber = a.endLineNumber;\n endColumn = a.endColumn;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n /**\n * A intersection of the two ranges.\n */\n intersectRanges(range) {\n return Range.intersectRanges(this, range);\n }\n /**\n * A intersection of the two ranges.\n */\n static intersectRanges(a, b) {\n let resultStartLineNumber = a.startLineNumber;\n let resultStartColumn = a.startColumn;\n let resultEndLineNumber = a.endLineNumber;\n let resultEndColumn = a.endColumn;\n let otherStartLineNumber = b.startLineNumber;\n let otherStartColumn = b.startColumn;\n let otherEndLineNumber = b.endLineNumber;\n let otherEndColumn = b.endColumn;\n if (resultStartLineNumber < otherStartLineNumber) {\n resultStartLineNumber = otherStartLineNumber;\n resultStartColumn = otherStartColumn;\n }\n else if (resultStartLineNumber === otherStartLineNumber) {\n resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n }\n if (resultEndLineNumber > otherEndLineNumber) {\n resultEndLineNumber = otherEndLineNumber;\n resultEndColumn = otherEndColumn;\n }\n else if (resultEndLineNumber === otherEndLineNumber) {\n resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n }\n // Check if selection is now empty\n if (resultStartLineNumber > resultEndLineNumber) {\n return null;\n }\n if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {\n return null;\n }\n return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);\n }\n /**\n * Test if this range equals other.\n */\n equalsRange(other) {\n return Range.equalsRange(this, other);\n }\n /**\n * Test if range `a` equals `b`.\n */\n static equalsRange(a, b) {\n return (!!a &&\n !!b &&\n a.startLineNumber === b.startLineNumber &&\n a.startColumn === b.startColumn &&\n a.endLineNumber === b.endLineNumber &&\n a.endColumn === b.endColumn);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n getEndPosition() {\n return Range.getEndPosition(this);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n static getEndPosition(range) {\n return new Position(range.endLineNumber, range.endColumn);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n getStartPosition() {\n return Range.getStartPosition(this);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n static getStartPosition(range) {\n return new Position(range.startLineNumber, range.startColumn);\n }\n /**\n * Transform to a user presentable string representation.\n */\n toString() {\n return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']';\n }\n /**\n * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n */\n setEndPosition(endLineNumber, endColumn) {\n return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n }\n /**\n * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n */\n setStartPosition(startLineNumber, startColumn) {\n return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n collapseToStart() {\n return Range.collapseToStart(this);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n static collapseToStart(range) {\n return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\n }\n // ---\n static fromPositions(start, end = start) {\n return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n }\n static lift(range) {\n if (!range) {\n return null;\n }\n return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n }\n /**\n * Test if `obj` is an `IRange`.\n */\n static isIRange(obj) {\n return (obj\n && (typeof obj.startLineNumber === 'number')\n && (typeof obj.startColumn === 'number')\n && (typeof obj.endLineNumber === 'number')\n && (typeof obj.endColumn === 'number'));\n }\n /**\n * Test if the two ranges are touching in any way.\n */\n static areIntersectingOrTouching(a, b) {\n // Check if `a` is before `b`\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) {\n return false;\n }\n // Check if `b` is before `a`\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n */\n static areIntersecting(a, b) {\n // Check if `a` is before `b`\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) {\n return false;\n }\n // Check if `b` is before `a`\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the startPosition and then on the endPosition\n */\n static compareRangesUsingStarts(a, b) {\n if (a && b) {\n const aStartLineNumber = a.startLineNumber | 0;\n const bStartLineNumber = b.startLineNumber | 0;\n if (aStartLineNumber === bStartLineNumber) {\n const aStartColumn = a.startColumn | 0;\n const bStartColumn = b.startColumn | 0;\n if (aStartColumn === bStartColumn) {\n const aEndLineNumber = a.endLineNumber | 0;\n const bEndLineNumber = b.endLineNumber | 0;\n if (aEndLineNumber === bEndLineNumber) {\n const aEndColumn = a.endColumn | 0;\n const bEndColumn = b.endColumn | 0;\n return aEndColumn - bEndColumn;\n }\n return aEndLineNumber - bEndLineNumber;\n }\n return aStartColumn - bStartColumn;\n }\n return aStartLineNumber - bStartLineNumber;\n }\n const aExists = (a ? 1 : 0);\n const bExists = (b ? 1 : 0);\n return aExists - bExists;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the endPosition and then on the startPosition\n */\n static compareRangesUsingEnds(a, b) {\n if (a.endLineNumber === b.endLineNumber) {\n if (a.endColumn === b.endColumn) {\n if (a.startLineNumber === b.startLineNumber) {\n return a.startColumn - b.startColumn;\n }\n return a.startLineNumber - b.startLineNumber;\n }\n return a.endColumn - b.endColumn;\n }\n return a.endLineNumber - b.endLineNumber;\n }\n /**\n * Test if the range spans multiple lines.\n */\n static spansMultipleLines(range) {\n return range.endLineNumber > range.startLineNumber;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Color, RGBA } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { assertNever } from '../../../base/common/types.js';\nimport * as nls from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n// color registry\nexport const Extensions = {\n ColorContribution: 'base.contributions.colors'\n};\nclass ColorRegistry {\n constructor() {\n this._onDidChangeSchema = new Emitter();\n this.onDidChangeSchema = this._onDidChangeSchema.event;\n this.colorSchema = { type: 'object', properties: {} };\n this.colorReferenceSchema = { type: 'string', enum: [], enumDescriptions: [] };\n this.colorsById = {};\n }\n registerColor(id, defaults, description, needsTransparency = false, deprecationMessage) {\n let colorContribution = { id, description, defaults, needsTransparency, deprecationMessage };\n this.colorsById[id] = colorContribution;\n let propertySchema = { type: 'string', description, format: 'color-hex', defaultSnippets: [{ body: '${1:#ff0000}' }] };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n this.colorSchema.properties[id] = propertySchema;\n this.colorReferenceSchema.enum.push(id);\n this.colorReferenceSchema.enumDescriptions.push(description);\n this._onDidChangeSchema.fire();\n return id;\n }\n resolveDefaultColor(id, theme) {\n const colorDesc = this.colorsById[id];\n if (colorDesc && colorDesc.defaults) {\n const colorValue = colorDesc.defaults[theme.type];\n return resolveColorValue(colorValue, theme);\n }\n return undefined;\n }\n getColorSchema() {\n return this.colorSchema;\n }\n toString() {\n let sorter = (a, b) => {\n let cat1 = a.indexOf('.') === -1 ? 0 : 1;\n let cat2 = b.indexOf('.') === -1 ? 0 : 1;\n if (cat1 !== cat2) {\n return cat1 - cat2;\n }\n return a.localeCompare(b);\n };\n return Object.keys(this.colorsById).sort(sorter).map(k => `- \\`${k}\\`: ${this.colorsById[k].description}`).join('\\n');\n }\n}\nconst colorRegistry = new ColorRegistry();\nplatform.Registry.add(Extensions.ColorContribution, colorRegistry);\nexport function registerColor(id, defaults, description, needsTransparency, deprecationMessage) {\n return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);\n}\n// ----- base colors\nexport const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hc: '#FFFFFF' }, nls.localize('foreground', \"Overall foreground color. This color is only used if not overridden by a component.\"));\nexport const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hc: '#F48771' }, nls.localize('errorForeground', \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\nexport const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hc: '#FFFFFF' }, nls.localize('iconForeground', \"The default color for icons in the workbench.\"));\nexport const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hc: '#F38518' }, nls.localize('focusBorder', \"Overall border color for focused elements. This color is only used if not overridden by a component.\"));\nexport const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hc: '#6FC3DF' }, nls.localize('contrastBorder', \"An extra border around elements to separate them from others for greater contrast.\"));\nexport const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hc: focusBorder }, nls.localize('activeContrastBorder', \"An extra border around active elements to separate them from others for greater contrast.\"));\nexport const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hc: '#3794FF' }, nls.localize('textLinkForeground', \"Foreground color for links in text.\"));\nexport const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hc: '#3794FF' }, nls.localize('textLinkActiveForeground', \"Foreground color for links in text when clicked on and on mouse hover.\"));\nexport const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hc: Color.black }, nls.localize('textCodeBlockBackground', \"Background color for code blocks in text.\"));\n// ----- widgets\nexport const widgetShadow = registerColor('widget.shadow', { dark: transparent(Color.black, .36), light: transparent(Color.black, .16), hc: null }, nls.localize('widgetShadow', 'Shadow color of widgets such as find/replace inside the editor.'));\nexport const inputBackground = registerColor('input.background', { dark: '#3C3C3C', light: Color.white, hc: Color.black }, nls.localize('inputBoxBackground', \"Input box background.\"));\nexport const inputForeground = registerColor('input.foreground', { dark: foreground, light: foreground, hc: foreground }, nls.localize('inputBoxForeground', \"Input box foreground.\"));\nexport const inputBorder = registerColor('input.border', { dark: null, light: null, hc: contrastBorder }, nls.localize('inputBoxBorder', \"Input box border.\"));\nexport const inputActiveOptionBorder = registerColor('inputOption.activeBorder', { dark: '#007ACC00', light: '#007ACC00', hc: contrastBorder }, nls.localize('inputBoxActiveOptionBorder', \"Border color of activated options in input fields.\"));\nexport const inputActiveOptionBackground = registerColor('inputOption.activeBackground', { dark: transparent(focusBorder, 0.4), light: transparent(focusBorder, 0.2), hc: Color.transparent }, nls.localize('inputOption.activeBackground', \"Background color of activated options in input fields.\"));\nexport const inputActiveOptionForeground = registerColor('inputOption.activeForeground', { dark: Color.white, light: Color.black, hc: null }, nls.localize('inputOption.activeForeground', \"Foreground color of activated options in input fields.\"));\nexport const inputValidationInfoBackground = registerColor('inputValidation.infoBackground', { dark: '#063B49', light: '#D6ECF2', hc: Color.black }, nls.localize('inputValidationInfoBackground', \"Input validation background color for information severity.\"));\nexport const inputValidationInfoForeground = registerColor('inputValidation.infoForeground', { dark: null, light: null, hc: null }, nls.localize('inputValidationInfoForeground', \"Input validation foreground color for information severity.\"));\nexport const inputValidationInfoBorder = registerColor('inputValidation.infoBorder', { dark: '#007acc', light: '#007acc', hc: contrastBorder }, nls.localize('inputValidationInfoBorder', \"Input validation border color for information severity.\"));\nexport const inputValidationWarningBackground = registerColor('inputValidation.warningBackground', { dark: '#352A05', light: '#F6F5D2', hc: Color.black }, nls.localize('inputValidationWarningBackground', \"Input validation background color for warning severity.\"));\nexport const inputValidationWarningForeground = registerColor('inputValidation.warningForeground', { dark: null, light: null, hc: null }, nls.localize('inputValidationWarningForeground', \"Input validation foreground color for warning severity.\"));\nexport const inputValidationWarningBorder = registerColor('inputValidation.warningBorder', { dark: '#B89500', light: '#B89500', hc: contrastBorder }, nls.localize('inputValidationWarningBorder', \"Input validation border color for warning severity.\"));\nexport const inputValidationErrorBackground = registerColor('inputValidation.errorBackground', { dark: '#5A1D1D', light: '#F2DEDE', hc: Color.black }, nls.localize('inputValidationErrorBackground', \"Input validation background color for error severity.\"));\nexport const inputValidationErrorForeground = registerColor('inputValidation.errorForeground', { dark: null, light: null, hc: null }, nls.localize('inputValidationErrorForeground', \"Input validation foreground color for error severity.\"));\nexport const inputValidationErrorBorder = registerColor('inputValidation.errorBorder', { dark: '#BE1100', light: '#BE1100', hc: contrastBorder }, nls.localize('inputValidationErrorBorder', \"Input validation border color for error severity.\"));\nexport const selectBackground = registerColor('dropdown.background', { dark: '#3C3C3C', light: Color.white, hc: Color.black }, nls.localize('dropdownBackground', \"Dropdown background.\"));\nexport const selectForeground = registerColor('dropdown.foreground', { dark: '#F0F0F0', light: null, hc: Color.white }, nls.localize('dropdownForeground', \"Dropdown foreground.\"));\nexport const buttonForeground = registerColor('button.foreground', { dark: Color.white, light: Color.white, hc: Color.white }, nls.localize('buttonForeground', \"Button foreground color.\"));\nexport const buttonBackground = registerColor('button.background', { dark: '#0E639C', light: '#007ACC', hc: null }, nls.localize('buttonBackground', \"Button background color.\"));\nexport const buttonHoverBackground = registerColor('button.hoverBackground', { dark: lighten(buttonBackground, 0.2), light: darken(buttonBackground, 0.2), hc: null }, nls.localize('buttonHoverBackground', \"Button background color when hovering.\"));\nexport const badgeBackground = registerColor('badge.background', { dark: '#4D4D4D', light: '#C4C4C4', hc: Color.black }, nls.localize('badgeBackground', \"Badge background color. Badges are small information labels, e.g. for search results count.\"));\nexport const badgeForeground = registerColor('badge.foreground', { dark: Color.white, light: '#333', hc: Color.white }, nls.localize('badgeForeground', \"Badge foreground color. Badges are small information labels, e.g. for search results count.\"));\nexport const scrollbarShadow = registerColor('scrollbar.shadow', { dark: '#000000', light: '#DDDDDD', hc: null }, nls.localize('scrollbarShadow', \"Scrollbar shadow to indicate that the view is scrolled.\"));\nexport const scrollbarSliderBackground = registerColor('scrollbarSlider.background', { dark: Color.fromHex('#797979').transparent(0.4), light: Color.fromHex('#646464').transparent(0.4), hc: transparent(contrastBorder, 0.6) }, nls.localize('scrollbarSliderBackground', \"Scrollbar slider background color.\"));\nexport const scrollbarSliderHoverBackground = registerColor('scrollbarSlider.hoverBackground', { dark: Color.fromHex('#646464').transparent(0.7), light: Color.fromHex('#646464').transparent(0.7), hc: transparent(contrastBorder, 0.8) }, nls.localize('scrollbarSliderHoverBackground', \"Scrollbar slider background color when hovering.\"));\nexport const scrollbarSliderActiveBackground = registerColor('scrollbarSlider.activeBackground', { dark: Color.fromHex('#BFBFBF').transparent(0.4), light: Color.fromHex('#000000').transparent(0.6), hc: contrastBorder }, nls.localize('scrollbarSliderActiveBackground', \"Scrollbar slider background color when clicked on.\"));\nexport const progressBarBackground = registerColor('progressBar.background', { dark: Color.fromHex('#0E70C0'), light: Color.fromHex('#0E70C0'), hc: contrastBorder }, nls.localize('progressBarBackground', \"Background color of the progress bar that can show for long running operations.\"));\nexport const editorErrorBackground = registerColor('editorError.background', { dark: null, light: null, hc: null }, nls.localize('editorError.background', 'Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorErrorForeground = registerColor('editorError.foreground', { dark: '#F14C4C', light: '#E51400', hc: null }, nls.localize('editorError.foreground', 'Foreground color of error squigglies in the editor.'));\nexport const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hc: Color.fromHex('#E47777').transparent(0.8) }, nls.localize('errorBorder', 'Border color of error boxes in the editor.'));\nexport const editorWarningBackground = registerColor('editorWarning.background', { dark: null, light: null, hc: null }, nls.localize('editorWarning.background', 'Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#CCA700', light: '#BF8803', hc: null }, nls.localize('editorWarning.foreground', 'Foreground color of warning squigglies in the editor.'));\nexport const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hc: Color.fromHex('#FFCC00').transparent(0.8) }, nls.localize('warningBorder', 'Border color of warning boxes in the editor.'));\nexport const editorInfoBackground = registerColor('editorInfo.background', { dark: null, light: null, hc: null }, nls.localize('editorInfo.background', 'Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#3794FF', light: '#1a85ff', hc: '#3794FF' }, nls.localize('editorInfo.foreground', 'Foreground color of info squigglies in the editor.'));\nexport const editorInfoBorder = registerColor('editorInfo.border', { dark: null, light: null, hc: Color.fromHex('#3794FF').transparent(0.8) }, nls.localize('infoBorder', 'Border color of info boxes in the editor.'));\nexport const editorHintForeground = registerColor('editorHint.foreground', { dark: Color.fromHex('#eeeeee').transparent(0.7), light: '#6c6c6c', hc: null }, nls.localize('editorHint.foreground', 'Foreground color of hint squigglies in the editor.'));\nexport const editorHintBorder = registerColor('editorHint.border', { dark: null, light: null, hc: Color.fromHex('#eeeeee').transparent(0.8) }, nls.localize('hintBorder', 'Border color of hint boxes in the editor.'));\n/**\n * Editor background color.\n * Because of bug https://monacotools.visualstudio.com/DefaultCollection/Monaco/_workitems/edit/13254\n * we are *not* using the color white (or #ffffff, rgba(255,255,255)) but something very close to white.\n */\nexport const editorBackground = registerColor('editor.background', { light: '#fffffe', dark: '#1E1E1E', hc: Color.black }, nls.localize('editorBackground', \"Editor background color.\"));\n/**\n * Editor foreground color.\n */\nexport const editorForeground = registerColor('editor.foreground', { light: '#333333', dark: '#BBBBBB', hc: Color.white }, nls.localize('editorForeground', \"Editor default foreground color.\"));\n/**\n * Editor widgets\n */\nexport const editorWidgetBackground = registerColor('editorWidget.background', { dark: '#252526', light: '#F3F3F3', hc: '#0C141F' }, nls.localize('editorWidgetBackground', 'Background color of editor widgets, such as find/replace.'));\nexport const editorWidgetForeground = registerColor('editorWidget.foreground', { dark: foreground, light: foreground, hc: foreground }, nls.localize('editorWidgetForeground', 'Foreground color of editor widgets, such as find/replace.'));\nexport const editorWidgetBorder = registerColor('editorWidget.border', { dark: '#454545', light: '#C8C8C8', hc: contrastBorder }, nls.localize('editorWidgetBorder', 'Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.'));\nexport const editorWidgetResizeBorder = registerColor('editorWidget.resizeBorder', { light: null, dark: null, hc: null }, nls.localize('editorWidgetResizeBorder', \"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));\n/**\n * Quick pick widget\n */\nexport const quickInputBackground = registerColor('quickInput.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hc: editorWidgetBackground }, nls.localize('pickerBackground', \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputForeground = registerColor('quickInput.foreground', { dark: editorWidgetForeground, light: editorWidgetForeground, hc: editorWidgetForeground }, nls.localize('pickerForeground', \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputTitleBackground = registerColor('quickInputTitle.background', { dark: new Color(new RGBA(255, 255, 255, 0.105)), light: new Color(new RGBA(0, 0, 0, 0.06)), hc: '#000000' }, nls.localize('pickerTitleBackground', \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const pickerGroupForeground = registerColor('pickerGroup.foreground', { dark: '#3794FF', light: '#0066BF', hc: Color.white }, nls.localize('pickerGroupForeground', \"Quick picker color for grouping labels.\"));\nexport const pickerGroupBorder = registerColor('pickerGroup.border', { dark: '#3F3F46', light: '#CCCEDB', hc: Color.white }, nls.localize('pickerGroupBorder', \"Quick picker color for grouping borders.\"));\n/**\n * Keybinding label\n */\nexport const keybindingLabelBackground = registerColor('keybindingLabel.background', { dark: new Color(new RGBA(128, 128, 128, 0.17)), light: new Color(new RGBA(221, 221, 221, 0.4)), hc: Color.transparent }, nls.localize('keybindingLabelBackground', \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelForeground = registerColor('keybindingLabel.foreground', { dark: Color.fromHex('#CCCCCC'), light: Color.fromHex('#555555'), hc: Color.white }, nls.localize('keybindingLabelForeground', \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBorder = registerColor('keybindingLabel.border', { dark: new Color(new RGBA(51, 51, 51, 0.6)), light: new Color(new RGBA(204, 204, 204, 0.4)), hc: new Color(new RGBA(111, 195, 223)) }, nls.localize('keybindingLabelBorder', \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBottomBorder = registerColor('keybindingLabel.bottomBorder', { dark: new Color(new RGBA(68, 68, 68, 0.6)), light: new Color(new RGBA(187, 187, 187, 0.4)), hc: new Color(new RGBA(111, 195, 223)) }, nls.localize('keybindingLabelBottomBorder', \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\"));\n/**\n * Editor selection colors.\n */\nexport const editorSelectionBackground = registerColor('editor.selectionBackground', { light: '#ADD6FF', dark: '#264F78', hc: '#f3f518' }, nls.localize('editorSelectionBackground', \"Color of the editor selection.\"));\nexport const editorSelectionForeground = registerColor('editor.selectionForeground', { light: null, dark: null, hc: '#000000' }, nls.localize('editorSelectionForeground', \"Color of the selected text for high contrast.\"));\nexport const editorInactiveSelection = registerColor('editor.inactiveSelectionBackground', { light: transparent(editorSelectionBackground, 0.5), dark: transparent(editorSelectionBackground, 0.5), hc: transparent(editorSelectionBackground, 0.5) }, nls.localize('editorInactiveSelection', \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorSelectionHighlight = registerColor('editor.selectionHighlightBackground', { light: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), dark: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), hc: null }, nls.localize('editorSelectionHighlight', 'Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSelectionHighlightBorder = registerColor('editor.selectionHighlightBorder', { light: null, dark: null, hc: activeContrastBorder }, nls.localize('editorSelectionHighlightBorder', \"Border color for regions with the same content as the selection.\"));\n/**\n * Editor find match colors.\n */\nexport const editorFindMatch = registerColor('editor.findMatchBackground', { light: '#A8AC94', dark: '#515C6A', hc: null }, nls.localize('editorFindMatch', \"Color of the current search match.\"));\nexport const editorFindMatchHighlight = registerColor('editor.findMatchHighlightBackground', { light: '#EA5C0055', dark: '#EA5C0055', hc: null }, nls.localize('findMatchHighlight', \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindRangeHighlight = registerColor('editor.findRangeHighlightBackground', { dark: '#3a3d4166', light: '#b4b4b44d', hc: null }, nls.localize('findRangeHighlight', \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchBorder = registerColor('editor.findMatchBorder', { light: null, dark: null, hc: activeContrastBorder }, nls.localize('editorFindMatchBorder', \"Border color of the current search match.\"));\nexport const editorFindMatchHighlightBorder = registerColor('editor.findMatchHighlightBorder', { light: null, dark: null, hc: activeContrastBorder }, nls.localize('findMatchHighlightBorder', \"Border color of the other search matches.\"));\nexport const editorFindRangeHighlightBorder = registerColor('editor.findRangeHighlightBorder', { dark: null, light: null, hc: transparent(activeContrastBorder, 0.4) }, nls.localize('findRangeHighlightBorder', \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n/**\n * Editor hover\n */\nexport const editorHoverHighlight = registerColor('editor.hoverHighlightBackground', { light: '#ADD6FF26', dark: '#264f7840', hc: '#ADD6FF26' }, nls.localize('hoverHighlight', 'Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorHoverBackground = registerColor('editorHoverWidget.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hc: editorWidgetBackground }, nls.localize('hoverBackground', 'Background color of the editor hover.'));\nexport const editorHoverForeground = registerColor('editorHoverWidget.foreground', { light: editorWidgetForeground, dark: editorWidgetForeground, hc: editorWidgetForeground }, nls.localize('hoverForeground', 'Foreground color of the editor hover.'));\nexport const editorHoverBorder = registerColor('editorHoverWidget.border', { light: editorWidgetBorder, dark: editorWidgetBorder, hc: editorWidgetBorder }, nls.localize('hoverBorder', 'Border color of the editor hover.'));\nexport const editorHoverStatusBarBackground = registerColor('editorHoverWidget.statusBarBackground', { dark: lighten(editorHoverBackground, 0.2), light: darken(editorHoverBackground, 0.05), hc: editorWidgetBackground }, nls.localize('statusBarBackground', \"Background color of the editor hover status bar.\"));\n/**\n * Editor link colors\n */\nexport const editorActiveLinkForeground = registerColor('editorLink.activeForeground', { dark: '#4E94CE', light: Color.blue, hc: Color.cyan }, nls.localize('activeLinkForeground', 'Color of active links.'));\n/**\n * Inline hints\n */\nexport const editorInlayHintForeground = registerColor('editorInlayHint.foreground', { dark: transparent(badgeForeground, .8), light: transparent(badgeForeground, .8), hc: badgeForeground }, nls.localize('editorInlayHintForeground', 'Foreground color of inline hints'));\nexport const editorInlayHintBackground = registerColor('editorInlayHint.background', { dark: transparent(badgeBackground, .6), light: transparent(badgeBackground, .3), hc: badgeBackground }, nls.localize('editorInlayHintBackground', 'Background color of inline hints'));\nexport const editorInlayHintTypeForeground = registerColor('editorInlayHint.typeForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hc: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundTypes', 'Foreground color of inline hints for types'));\nexport const editorInlayHintTypeBackground = registerColor('editorInlayHint.typeBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hc: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundTypes', 'Background color of inline hints for types'));\nexport const editorInlayHintParameterForeground = registerColor('editorInlayHint.parameterForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hc: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundParameter', 'Foreground color of inline hints for parameters'));\nexport const editorInlayHintParameterBackground = registerColor('editorInlayHint.parameterBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hc: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundParameter', 'Background color of inline hints for parameters'));\n/**\n * Editor lighbulb icon colors\n */\nexport const editorLightBulbForeground = registerColor('editorLightBulb.foreground', { dark: '#FFCC00', light: '#DDB100', hc: '#FFCC00' }, nls.localize('editorLightBulbForeground', \"The color used for the lightbulb actions icon.\"));\nexport const editorLightBulbAutoFixForeground = registerColor('editorLightBulbAutoFix.foreground', { dark: '#75BEFF', light: '#007ACC', hc: '#75BEFF' }, nls.localize('editorLightBulbAutoFixForeground', \"The color used for the lightbulb auto fix actions icon.\"));\n/**\n * Diff Editor Colors\n */\nexport const defaultInsertColor = new Color(new RGBA(155, 185, 85, 0.2));\nexport const defaultRemoveColor = new Color(new RGBA(255, 0, 0, 0.2));\nexport const diffInserted = registerColor('diffEditor.insertedTextBackground', { dark: defaultInsertColor, light: defaultInsertColor, hc: null }, nls.localize('diffEditorInserted', 'Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemoved = registerColor('diffEditor.removedTextBackground', { dark: defaultRemoveColor, light: defaultRemoveColor, hc: null }, nls.localize('diffEditorRemoved', 'Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedOutline = registerColor('diffEditor.insertedTextBorder', { dark: null, light: null, hc: '#33ff2eff' }, nls.localize('diffEditorInsertedOutline', 'Outline color for the text that got inserted.'));\nexport const diffRemovedOutline = registerColor('diffEditor.removedTextBorder', { dark: null, light: null, hc: '#FF008F' }, nls.localize('diffEditorRemovedOutline', 'Outline color for text that got removed.'));\nexport const diffBorder = registerColor('diffEditor.border', { dark: null, light: null, hc: contrastBorder }, nls.localize('diffEditorBorder', 'Border color between the two text editors.'));\nexport const diffDiagonalFill = registerColor('diffEditor.diagonalFill', { dark: '#cccccc33', light: '#22222233', hc: null }, nls.localize('diffDiagonalFill', \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));\n/**\n * List and tree colors\n */\nexport const listFocusBackground = registerColor('list.focusBackground', { dark: null, light: null, hc: null }, nls.localize('listFocusBackground', \"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusForeground = registerColor('list.focusForeground', { dark: null, light: null, hc: null }, nls.localize('listFocusForeground', \"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusOutline = registerColor('list.focusOutline', { dark: focusBorder, light: focusBorder, hc: activeContrastBorder }, nls.localize('listFocusOutline', \"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionBackground = registerColor('list.activeSelectionBackground', { dark: '#094771', light: '#0060C0', hc: null }, nls.localize('listActiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionForeground = registerColor('list.activeSelectionForeground', { dark: Color.white, light: Color.white, hc: null }, nls.localize('listActiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionIconForeground = registerColor('list.activeSelectionIconForeground', { dark: null, light: null, hc: null }, nls.localize('listActiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionBackground = registerColor('list.inactiveSelectionBackground', { dark: '#37373D', light: '#E4E6F1', hc: null }, nls.localize('listInactiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionForeground = registerColor('list.inactiveSelectionForeground', { dark: null, light: null, hc: null }, nls.localize('listInactiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionIconForeground = registerColor('list.inactiveSelectionIconForeground', { dark: null, light: null, hc: null }, nls.localize('listInactiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusBackground = registerColor('list.inactiveFocusBackground', { dark: null, light: null, hc: null }, nls.localize('listInactiveFocusBackground', \"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusOutline = registerColor('list.inactiveFocusOutline', { dark: null, light: null, hc: null }, nls.localize('listInactiveFocusOutline', \"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listHoverBackground = registerColor('list.hoverBackground', { dark: '#2A2D2E', light: '#F0F0F0', hc: null }, nls.localize('listHoverBackground', \"List/Tree background when hovering over items using the mouse.\"));\nexport const listHoverForeground = registerColor('list.hoverForeground', { dark: null, light: null, hc: null }, nls.localize('listHoverForeground', \"List/Tree foreground when hovering over items using the mouse.\"));\nexport const listDropBackground = registerColor('list.dropBackground', { dark: '#062F4A', light: '#D6EBFF', hc: null }, nls.localize('listDropBackground', \"List/Tree drag and drop background when moving items around using the mouse.\"));\nexport const listHighlightForeground = registerColor('list.highlightForeground', { dark: '#18A3FF', light: '#0066BF', hc: focusBorder }, nls.localize('highlight', 'List/Tree foreground color of the match highlights when searching inside the list/tree.'));\nexport const listFocusHighlightForeground = registerColor('list.focusHighlightForeground', { dark: listHighlightForeground, light: ifDefinedThenElse(listActiveSelectionBackground, listHighlightForeground, '#9DDDFF'), hc: listHighlightForeground }, nls.localize('listFocusHighlightForeground', 'List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.'));\nexport const listFilterWidgetBackground = registerColor('listFilterWidget.background', { light: '#efc1ad', dark: '#653723', hc: Color.black }, nls.localize('listFilterWidgetBackground', 'Background color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetOutline = registerColor('listFilterWidget.outline', { dark: Color.transparent, light: Color.transparent, hc: '#f38518' }, nls.localize('listFilterWidgetOutline', 'Outline color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetNoMatchesOutline = registerColor('listFilterWidget.noMatchesOutline', { dark: '#BE1100', light: '#BE1100', hc: contrastBorder }, nls.localize('listFilterWidgetNoMatchesOutline', 'Outline color of the type filter widget in lists and trees, when there are no matches.'));\nexport const treeIndentGuidesStroke = registerColor('tree.indentGuidesStroke', { dark: '#585858', light: '#a9a9a9', hc: '#a9a9a9' }, nls.localize('treeIndentGuidesStroke', \"Tree stroke color for the indentation guides.\"));\nexport const tableColumnsBorder = registerColor('tree.tableColumnsBorder', { dark: '#CCCCCC20', light: '#61616120', hc: null }, nls.localize('treeIndentGuidesStroke', \"Tree stroke color for the indentation guides.\"));\n/**\n * Quick pick widget (dependent on List and tree colors)\n */\nexport const _deprecatedQuickInputListFocusBackground = registerColor('quickInput.list.focusBackground', { dark: null, light: null, hc: null }, '', undefined, nls.localize('quickInput.list.focusBackground deprecation', \"Please use quickInputList.focusBackground instead\"));\nexport const quickInputListFocusForeground = registerColor('quickInputList.focusForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hc: listActiveSelectionForeground }, nls.localize('quickInput.listFocusForeground', \"Quick picker foreground color for the focused item.\"));\nexport const quickInputListFocusIconForeground = registerColor('quickInputList.focusIconForeground', { dark: listActiveSelectionIconForeground, light: listActiveSelectionIconForeground, hc: listActiveSelectionIconForeground }, nls.localize('quickInput.listFocusIconForeground', \"Quick picker icon foreground color for the focused item.\"));\nexport const quickInputListFocusBackground = registerColor('quickInputList.focusBackground', { dark: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), light: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), hc: null }, nls.localize('quickInput.listFocusBackground', \"Quick picker background color for the focused item.\"));\n/**\n * Menu colors\n */\nexport const menuBorder = registerColor('menu.border', { dark: null, light: null, hc: contrastBorder }, nls.localize('menuBorder', \"Border color of menus.\"));\nexport const menuForeground = registerColor('menu.foreground', { dark: selectForeground, light: foreground, hc: selectForeground }, nls.localize('menuForeground', \"Foreground color of menu items.\"));\nexport const menuBackground = registerColor('menu.background', { dark: selectBackground, light: selectBackground, hc: selectBackground }, nls.localize('menuBackground', \"Background color of menu items.\"));\nexport const menuSelectionForeground = registerColor('menu.selectionForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hc: listActiveSelectionForeground }, nls.localize('menuSelectionForeground', \"Foreground color of the selected menu item in menus.\"));\nexport const menuSelectionBackground = registerColor('menu.selectionBackground', { dark: listActiveSelectionBackground, light: listActiveSelectionBackground, hc: listActiveSelectionBackground }, nls.localize('menuSelectionBackground', \"Background color of the selected menu item in menus.\"));\nexport const menuSelectionBorder = registerColor('menu.selectionBorder', { dark: null, light: null, hc: activeContrastBorder }, nls.localize('menuSelectionBorder', \"Border color of the selected menu item in menus.\"));\nexport const menuSeparatorBackground = registerColor('menu.separatorBackground', { dark: '#BBBBBB', light: '#888888', hc: contrastBorder }, nls.localize('menuSeparatorBackground', \"Color of a separator menu item in menus.\"));\n/**\n * Toolbar colors\n */\nexport const toolbarHoverBackground = registerColor('toolbar.hoverBackground', { dark: '#5a5d5e50', light: '#b8b8b850', hc: null }, nls.localize('toolbarHoverBackground', \"Toolbar background when hovering over actions using the mouse\"));\n/**\n * Snippet placeholder colors\n */\nexport const snippetTabstopHighlightBackground = registerColor('editor.snippetTabstopHighlightBackground', { dark: new Color(new RGBA(124, 124, 124, 0.3)), light: new Color(new RGBA(10, 50, 100, 0.2)), hc: new Color(new RGBA(124, 124, 124, 0.3)) }, nls.localize('snippetTabstopHighlightBackground', \"Highlight background color of a snippet tabstop.\"));\nexport const snippetTabstopHighlightBorder = registerColor('editor.snippetTabstopHighlightBorder', { dark: null, light: null, hc: null }, nls.localize('snippetTabstopHighlightBorder', \"Highlight border color of a snippet tabstop.\"));\nexport const snippetFinalTabstopHighlightBackground = registerColor('editor.snippetFinalTabstopHighlightBackground', { dark: null, light: null, hc: null }, nls.localize('snippetFinalTabstopHighlightBackground', \"Highlight background color of the final tabstop of a snippet.\"));\nexport const snippetFinalTabstopHighlightBorder = registerColor('editor.snippetFinalTabstopHighlightBorder', { dark: '#525252', light: new Color(new RGBA(10, 50, 100, 0.5)), hc: '#525252' }, nls.localize('snippetFinalTabstopHighlightBorder', \"Highlight border color of the final tabstop of a snippet.\"));\nexport const overviewRulerFindMatchForeground = registerColor('editorOverviewRuler.findMatchForeground', { dark: '#d186167e', light: '#d186167e', hc: '#AB5A00' }, nls.localize('overviewRulerFindMatchForeground', 'Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerSelectionHighlightForeground = registerColor('editorOverviewRuler.selectionHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hc: '#A0A0A0CC' }, nls.localize('overviewRulerSelectionHighlightForeground', 'Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const minimapFindMatch = registerColor('minimap.findMatchHighlight', { light: '#d18616', dark: '#d18616', hc: '#AB5A00' }, nls.localize('minimapFindMatchHighlight', 'Minimap marker color for find matches.'), true);\nexport const minimapSelectionOccurrenceHighlight = registerColor('minimap.selectionOccurrenceHighlight', { light: '#c9c9c9', dark: '#676767', hc: '#ffffff' }, nls.localize('minimapSelectionOccurrenceHighlight', 'Minimap marker color for repeating editor selections.'), true);\nexport const minimapSelection = registerColor('minimap.selectionHighlight', { light: '#ADD6FF', dark: '#264F78', hc: '#ffffff' }, nls.localize('minimapSelectionHighlight', 'Minimap marker color for the editor selection.'), true);\nexport const minimapError = registerColor('minimap.errorHighlight', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hc: new Color(new RGBA(255, 50, 50, 1)) }, nls.localize('minimapError', 'Minimap marker color for errors.'));\nexport const minimapWarning = registerColor('minimap.warningHighlight', { dark: editorWarningForeground, light: editorWarningForeground, hc: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Minimap marker color for warnings.'));\nexport const minimapBackground = registerColor('minimap.background', { dark: null, light: null, hc: null }, nls.localize('minimapBackground', \"Minimap background color.\"));\nexport const minimapForegroundOpacity = registerColor('minimap.foregroundOpacity', { dark: Color.fromHex('#000f'), light: Color.fromHex('#000f'), hc: Color.fromHex('#000f') }, nls.localize('minimapForegroundOpacity', 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));\nexport const minimapSliderBackground = registerColor('minimapSlider.background', { light: transparent(scrollbarSliderBackground, 0.5), dark: transparent(scrollbarSliderBackground, 0.5), hc: transparent(scrollbarSliderBackground, 0.5) }, nls.localize('minimapSliderBackground', \"Minimap slider background color.\"));\nexport const minimapSliderHoverBackground = registerColor('minimapSlider.hoverBackground', { light: transparent(scrollbarSliderHoverBackground, 0.5), dark: transparent(scrollbarSliderHoverBackground, 0.5), hc: transparent(scrollbarSliderHoverBackground, 0.5) }, nls.localize('minimapSliderHoverBackground', \"Minimap slider background color when hovering.\"));\nexport const minimapSliderActiveBackground = registerColor('minimapSlider.activeBackground', { light: transparent(scrollbarSliderActiveBackground, 0.5), dark: transparent(scrollbarSliderActiveBackground, 0.5), hc: transparent(scrollbarSliderActiveBackground, 0.5) }, nls.localize('minimapSliderActiveBackground', \"Minimap slider background color when clicked on.\"));\nexport const problemsErrorIconForeground = registerColor('problemsErrorIcon.foreground', { dark: editorErrorForeground, light: editorErrorForeground, hc: editorErrorForeground }, nls.localize('problemsErrorIconForeground', \"The color used for the problems error icon.\"));\nexport const problemsWarningIconForeground = registerColor('problemsWarningIcon.foreground', { dark: editorWarningForeground, light: editorWarningForeground, hc: editorWarningForeground }, nls.localize('problemsWarningIconForeground', \"The color used for the problems warning icon.\"));\nexport const problemsInfoIconForeground = registerColor('problemsInfoIcon.foreground', { dark: editorInfoForeground, light: editorInfoForeground, hc: editorInfoForeground }, nls.localize('problemsInfoIconForeground', \"The color used for the problems info icon.\"));\n// ----- color functions\nexport function executeTransform(transform, theme) {\n var _a, _b, _c;\n switch (transform.op) {\n case 0 /* Darken */:\n return (_a = resolveColorValue(transform.value, theme)) === null || _a === void 0 ? void 0 : _a.darken(transform.factor);\n case 1 /* Lighten */:\n return (_b = resolveColorValue(transform.value, theme)) === null || _b === void 0 ? void 0 : _b.lighten(transform.factor);\n case 2 /* Transparent */:\n return (_c = resolveColorValue(transform.value, theme)) === null || _c === void 0 ? void 0 : _c.transparent(transform.factor);\n case 3 /* OneOf */:\n for (const candidate of transform.values) {\n const color = resolveColorValue(candidate, theme);\n if (color) {\n return color;\n }\n }\n return undefined;\n case 5 /* IfDefinedThenElse */:\n return resolveColorValue(theme.defines(transform.if) ? transform.then : transform.else, theme);\n case 4 /* LessProminent */:\n const from = resolveColorValue(transform.value, theme);\n if (!from) {\n return undefined;\n }\n const backgroundColor = resolveColorValue(transform.background, theme);\n if (!backgroundColor) {\n return from.transparent(transform.factor * transform.transparency);\n }\n return from.isDarkerThan(backgroundColor)\n ? Color.getLighterColor(from, backgroundColor, transform.factor).transparent(transform.transparency)\n : Color.getDarkerColor(from, backgroundColor, transform.factor).transparent(transform.transparency);\n default:\n throw assertNever(transform);\n }\n}\nexport function darken(colorValue, factor) {\n return { op: 0 /* Darken */, value: colorValue, factor };\n}\nexport function lighten(colorValue, factor) {\n return { op: 1 /* Lighten */, value: colorValue, factor };\n}\nexport function transparent(colorValue, factor) {\n return { op: 2 /* Transparent */, value: colorValue, factor };\n}\nexport function oneOf(...colorValues) {\n return { op: 3 /* OneOf */, values: colorValues };\n}\nexport function ifDefinedThenElse(ifArg, thenArg, elseArg) {\n return { op: 5 /* IfDefinedThenElse */, if: ifArg, then: thenArg, else: elseArg };\n}\nfunction lessProminent(colorValue, backgroundColorValue, factor, transparency) {\n return { op: 4 /* LessProminent */, value: colorValue, background: backgroundColorValue, factor, transparency };\n}\n// ----- implementation\n/**\n * @param colorValue Resolve a color value in the context of a theme\n */\nexport function resolveColorValue(colorValue, theme) {\n if (colorValue === null) {\n return undefined;\n }\n else if (typeof colorValue === 'string') {\n if (colorValue[0] === '#') {\n return Color.fromHex(colorValue);\n }\n return theme.getColor(colorValue);\n }\n else if (colorValue instanceof Color) {\n return colorValue;\n }\n else if (typeof colorValue === 'object') {\n return executeTransform(colorValue, theme);\n }\n return undefined;\n}\nexport const workbenchColorsSchemaId = 'vscode://schemas/workbench-colors';\nlet schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(workbenchColorsSchemaId, colorRegistry.getColorSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId), 200);\ncolorRegistry.onDidChangeSchema(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n// setTimeout(_ => console.log(colorRegistry.toString()), 5000);\n","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nimport { URI } from '../../base/common/uri.js';\nimport { ICodeEditorService } from './services/codeEditorService.js';\nimport { Position } from '../common/core/position.js';\nimport { IModelService } from '../common/services/modelService.js';\nimport { ITextModelService } from '../common/services/resolverService.js';\nimport { MenuId, MenuRegistry } from '../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../platform/commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../platform/contextkey/common/contextkey.js';\nimport { KeybindingsRegistry } from '../../platform/keybinding/common/keybindingsRegistry.js';\nimport { Registry } from '../../platform/registry/common/platform.js';\nimport { ITelemetryService } from '../../platform/telemetry/common/telemetry.js';\nimport { withNullAsUndefined, assertType } from '../../base/common/types.js';\nimport { ILogService } from '../../platform/log/common/log.js';\nexport class Command {\n constructor(opts) {\n this.id = opts.id;\n this.precondition = opts.precondition;\n this._kbOpts = opts.kbOpts;\n this._menuOpts = opts.menuOpts;\n this._description = opts.description;\n }\n register() {\n if (Array.isArray(this._menuOpts)) {\n this._menuOpts.forEach(this._registerMenuItem, this);\n }\n else if (this._menuOpts) {\n this._registerMenuItem(this._menuOpts);\n }\n if (this._kbOpts) {\n const kbOptsArr = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts];\n for (const kbOpts of kbOptsArr) {\n let kbWhen = kbOpts.kbExpr;\n if (this.precondition) {\n if (kbWhen) {\n kbWhen = ContextKeyExpr.and(kbWhen, this.precondition);\n }\n else {\n kbWhen = this.precondition;\n }\n }\n const desc = {\n id: this.id,\n weight: kbOpts.weight,\n args: kbOpts.args,\n when: kbWhen,\n primary: kbOpts.primary,\n secondary: kbOpts.secondary,\n win: kbOpts.win,\n linux: kbOpts.linux,\n mac: kbOpts.mac,\n };\n KeybindingsRegistry.registerKeybindingRule(desc);\n }\n }\n CommandsRegistry.registerCommand({\n id: this.id,\n handler: (accessor, args) => this.runCommand(accessor, args),\n description: this._description\n });\n }\n _registerMenuItem(item) {\n MenuRegistry.appendMenuItem(item.menuId, {\n group: item.group,\n command: {\n id: this.id,\n title: item.title,\n icon: item.icon,\n precondition: this.precondition\n },\n when: item.when,\n order: item.order\n });\n }\n}\nexport class MultiCommand extends Command {\n constructor() {\n super(...arguments);\n this._implementations = [];\n }\n /**\n * A higher priority gets to be looked at first\n */\n addImplementation(priority, name, implementation) {\n this._implementations.push({ priority, name, implementation });\n this._implementations.sort((a, b) => b.priority - a.priority);\n return {\n dispose: () => {\n for (let i = 0; i < this._implementations.length; i++) {\n if (this._implementations[i].implementation === implementation) {\n this._implementations.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n runCommand(accessor, args) {\n const logService = accessor.get(ILogService);\n logService.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);\n for (const impl of this._implementations) {\n const result = impl.implementation(accessor, args);\n if (result) {\n logService.trace(`Command '${this.id}' was handled by '${impl.name}'.`);\n if (typeof result === 'boolean') {\n return;\n }\n return result;\n }\n }\n logService.trace(`The Command '${this.id}' was not handled by any implementation.`);\n }\n}\n//#endregion\n/**\n * A command that delegates to another command's implementation.\n *\n * This lets different commands be registered but share the same implementation\n */\nexport class ProxyCommand extends Command {\n constructor(command, opts) {\n super(opts);\n this.command = command;\n }\n runCommand(accessor, args) {\n return this.command.runCommand(accessor, args);\n }\n}\nexport class EditorCommand extends Command {\n /**\n * Create a command class that is bound to a certain editor contribution.\n */\n static bindToContribution(controllerGetter) {\n return class EditorControllerCommandImpl extends EditorCommand {\n constructor(opts) {\n super(opts);\n this._callback = opts.handler;\n }\n runEditorCommand(accessor, editor, args) {\n const controller = controllerGetter(editor);\n if (controller) {\n this._callback(controllerGetter(editor), args);\n }\n }\n };\n }\n runCommand(accessor, args) {\n const codeEditorService = accessor.get(ICodeEditorService);\n // Find the editor with text focus or active\n const editor = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();\n if (!editor) {\n // well, at least we tried...\n return;\n }\n return editor.invokeWithinContext((editorAccessor) => {\n const kbService = editorAccessor.get(IContextKeyService);\n if (!kbService.contextMatchesRules(withNullAsUndefined(this.precondition))) {\n // precondition does not hold\n return;\n }\n return this.runEditorCommand(editorAccessor, editor, args);\n });\n }\n}\nexport class EditorAction extends EditorCommand {\n constructor(opts) {\n super(EditorAction.convertOptions(opts));\n this.label = opts.label;\n this.alias = opts.alias;\n }\n static convertOptions(opts) {\n let menuOpts;\n if (Array.isArray(opts.menuOpts)) {\n menuOpts = opts.menuOpts;\n }\n else if (opts.menuOpts) {\n menuOpts = [opts.menuOpts];\n }\n else {\n menuOpts = [];\n }\n function withDefaults(item) {\n if (!item.menuId) {\n item.menuId = MenuId.EditorContext;\n }\n if (!item.title) {\n item.title = opts.label;\n }\n item.when = ContextKeyExpr.and(opts.precondition, item.when);\n return item;\n }\n if (Array.isArray(opts.contextMenuOpts)) {\n menuOpts.push(...opts.contextMenuOpts.map(withDefaults));\n }\n else if (opts.contextMenuOpts) {\n menuOpts.push(withDefaults(opts.contextMenuOpts));\n }\n opts.menuOpts = menuOpts;\n return opts;\n }\n runEditorCommand(accessor, editor, args) {\n this.reportTelemetry(accessor, editor);\n return this.run(accessor, editor, args || {});\n }\n reportTelemetry(accessor, editor) {\n accessor.get(ITelemetryService).publicLog2('editorActionInvoked', { name: this.label, id: this.id });\n }\n}\nexport class MultiEditorAction extends EditorAction {\n constructor() {\n super(...arguments);\n this._implementations = [];\n }\n /**\n * A higher priority gets to be looked at first\n */\n addImplementation(priority, implementation) {\n this._implementations.push([priority, implementation]);\n this._implementations.sort((a, b) => b[0] - a[0]);\n return {\n dispose: () => {\n for (let i = 0; i < this._implementations.length; i++) {\n if (this._implementations[i][1] === implementation) {\n this._implementations.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n run(accessor, editor, args) {\n for (const impl of this._implementations) {\n const result = impl[1](accessor, editor, args);\n if (result) {\n if (typeof result === 'boolean') {\n return;\n }\n return result;\n }\n }\n }\n}\n//#endregion\n// --- Registration of commands and actions\nexport function registerModelAndPositionCommand(id, handler) {\n CommandsRegistry.registerCommand(id, function (accessor, ...args) {\n const [resource, position] = args;\n assertType(URI.isUri(resource));\n assertType(Position.isIPosition(position));\n const model = accessor.get(IModelService).getModel(resource);\n if (model) {\n const editorPosition = Position.lift(position);\n return handler(model, editorPosition, ...args.slice(2));\n }\n return accessor.get(ITextModelService).createModelReference(resource).then(reference => {\n return new Promise((resolve, reject) => {\n try {\n const result = handler(reference.object.textEditorModel, Position.lift(position), args.slice(2));\n resolve(result);\n }\n catch (err) {\n reject(err);\n }\n }).finally(() => {\n reference.dispose();\n });\n });\n });\n}\nexport function registerModelCommand(id, handler) {\n CommandsRegistry.registerCommand(id, function (accessor, ...args) {\n const [resource] = args;\n assertType(URI.isUri(resource));\n const model = accessor.get(IModelService).getModel(resource);\n if (model) {\n return handler(model, ...args.slice(1));\n }\n return accessor.get(ITextModelService).createModelReference(resource).then(reference => {\n return new Promise((resolve, reject) => {\n try {\n const result = handler(reference.object.textEditorModel, args.slice(1));\n resolve(result);\n }\n catch (err) {\n reject(err);\n }\n }).finally(() => {\n reference.dispose();\n });\n });\n });\n}\nexport function registerEditorCommand(editorCommand) {\n EditorContributionRegistry.INSTANCE.registerEditorCommand(editorCommand);\n return editorCommand;\n}\nexport function registerEditorAction(ctor) {\n const action = new ctor();\n EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n return action;\n}\nexport function registerMultiEditorAction(action) {\n EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n return action;\n}\nexport function registerInstantiatedEditorAction(editorAction) {\n EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction);\n}\nexport function registerEditorContribution(id, ctor) {\n EditorContributionRegistry.INSTANCE.registerEditorContribution(id, ctor);\n}\nexport var EditorExtensionsRegistry;\n(function (EditorExtensionsRegistry) {\n function getEditorCommand(commandId) {\n return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId);\n }\n EditorExtensionsRegistry.getEditorCommand = getEditorCommand;\n function getEditorActions() {\n return EditorContributionRegistry.INSTANCE.getEditorActions();\n }\n EditorExtensionsRegistry.getEditorActions = getEditorActions;\n function getEditorContributions() {\n return EditorContributionRegistry.INSTANCE.getEditorContributions();\n }\n EditorExtensionsRegistry.getEditorContributions = getEditorContributions;\n function getSomeEditorContributions(ids) {\n return EditorContributionRegistry.INSTANCE.getEditorContributions().filter(c => ids.indexOf(c.id) >= 0);\n }\n EditorExtensionsRegistry.getSomeEditorContributions = getSomeEditorContributions;\n function getDiffEditorContributions() {\n return EditorContributionRegistry.INSTANCE.getDiffEditorContributions();\n }\n EditorExtensionsRegistry.getDiffEditorContributions = getDiffEditorContributions;\n})(EditorExtensionsRegistry || (EditorExtensionsRegistry = {}));\n// Editor extension points\nconst Extensions = {\n EditorCommonContributions: 'editor.contributions'\n};\nclass EditorContributionRegistry {\n constructor() {\n this.editorContributions = [];\n this.diffEditorContributions = [];\n this.editorActions = [];\n this.editorCommands = Object.create(null);\n }\n registerEditorContribution(id, ctor) {\n this.editorContributions.push({ id, ctor: ctor });\n }\n getEditorContributions() {\n return this.editorContributions.slice(0);\n }\n getDiffEditorContributions() {\n return this.diffEditorContributions.slice(0);\n }\n registerEditorAction(action) {\n action.register();\n this.editorActions.push(action);\n }\n getEditorActions() {\n return this.editorActions.slice(0);\n }\n registerEditorCommand(editorCommand) {\n editorCommand.register();\n this.editorCommands[editorCommand.id] = editorCommand;\n }\n getEditorCommand(commandId) {\n return (this.editorCommands[commandId] || null);\n }\n}\nEditorContributionRegistry.INSTANCE = new EditorContributionRegistry();\nRegistry.add(Extensions.EditorCommonContributions, EditorContributionRegistry.INSTANCE);\nfunction registerCommand(command) {\n command.register();\n return command;\n}\nexport const UndoCommand = registerCommand(new MultiCommand({\n id: 'undo',\n precondition: undefined,\n kbOpts: {\n weight: 0 /* EditorCore */,\n primary: 2048 /* CtrlCmd */ | 56 /* KeyZ */\n },\n menuOpts: [{\n menuId: MenuId.MenubarEditMenu,\n group: '1_do',\n title: nls.localize({ key: 'miUndo', comment: ['&& denotes a mnemonic'] }, \"&&Undo\"),\n order: 1\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('undo', \"Undo\"),\n order: 1\n }]\n}));\nregisterCommand(new ProxyCommand(UndoCommand, { id: 'default:undo', precondition: undefined }));\nexport const RedoCommand = registerCommand(new MultiCommand({\n id: 'redo',\n precondition: undefined,\n kbOpts: {\n weight: 0 /* EditorCore */,\n primary: 2048 /* CtrlCmd */ | 55 /* KeyY */,\n secondary: [2048 /* CtrlCmd */ | 1024 /* Shift */ | 56 /* KeyZ */],\n mac: { primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 56 /* KeyZ */ }\n },\n menuOpts: [{\n menuId: MenuId.MenubarEditMenu,\n group: '1_do',\n title: nls.localize({ key: 'miRedo', comment: ['&& denotes a mnemonic'] }, \"&&Redo\"),\n order: 2\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('redo', \"Redo\"),\n order: 1\n }]\n}));\nregisterCommand(new ProxyCommand(RedoCommand, { id: 'default:redo', precondition: undefined }));\nexport const SelectAllCommand = registerCommand(new MultiCommand({\n id: 'editor.action.selectAll',\n precondition: undefined,\n kbOpts: {\n weight: 0 /* EditorCore */,\n kbExpr: null,\n primary: 2048 /* CtrlCmd */ | 31 /* KeyA */\n },\n menuOpts: [{\n menuId: MenuId.MenubarSelectionMenu,\n group: '1_basic',\n title: nls.localize({ key: 'miSelectAll', comment: ['&& denotes a mnemonic'] }, \"&&Select All\"),\n order: 1\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('selectAll', \"Select All\"),\n order: 1\n }]\n}));\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for\n * license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is\n * regenerated.\n */\nimport * as msRest from \"@azure/ms-rest-js\";\nexport var access = {\n parameterPath: [\n \"options\",\n \"access\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var action0 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'acquire',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action1 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'release',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action2 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'renew',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action3 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'break',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action4 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-lease-action\",\n defaultValue: 'change',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action5 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"action\",\n defaultValue: 'setAccessControl',\n type: {\n name: \"String\"\n }\n }\n};\nexport var action6 = {\n parameterPath: \"action\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"action\",\n defaultValue: 'getAccessControl',\n type: {\n name: \"String\"\n }\n }\n};\nexport var appendPosition = {\n parameterPath: [\n \"options\",\n \"appendPositionAccessConditions\",\n \"appendPosition\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-condition-appendpos\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var blobCacheControl = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobCacheControl\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobContentDisposition = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentDisposition\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobContentEncoding = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentEncoding\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobContentLanguage = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentLanguage\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobContentLength = {\n parameterPath: \"blobContentLength\",\n mapper: {\n required: true,\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var blobContentMD5 = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport var blobContentType = {\n parameterPath: [\n \"options\",\n \"blobHTTPHeaders\",\n \"blobContentType\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobSequenceNumber = {\n parameterPath: [\n \"options\",\n \"blobSequenceNumber\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-sequence-number\",\n defaultValue: 0,\n type: {\n name: \"Number\"\n }\n }\n};\nexport var blobType0 = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'PageBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobType1 = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'AppendBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport var blobType2 = {\n parameterPath: \"blobType\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-blob-type\",\n defaultValue: 'BlockBlob',\n type: {\n name: \"String\"\n }\n }\n};\nexport var blockId = {\n parameterPath: \"blockId\",\n mapper: {\n required: true,\n serializedName: \"blockid\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var breakPeriod = {\n parameterPath: [\n \"options\",\n \"breakPeriod\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-break-period\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var cacheControl = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"cacheControl\"\n ],\n mapper: {\n serializedName: \"x-ms-cache-control\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp0 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'properties',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp1 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'stats',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp10 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'copy',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp11 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'tier',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp12 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'page',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp13 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'pagelist',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp14 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'incrementalcopy',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp15 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'appendblock',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp16 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'block',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp17 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'blocklist',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp2 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'list',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp3 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'userdelegationkey',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp4 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'batch',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp5 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'metadata',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp6 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'acl',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp7 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'lease',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp8 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'undelete',\n type: {\n name: \"String\"\n }\n }\n};\nexport var comp9 = {\n parameterPath: \"comp\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"comp\",\n defaultValue: 'snapshot',\n type: {\n name: \"String\"\n }\n }\n};\nexport var contentDisposition = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentDisposition\"\n ],\n mapper: {\n serializedName: \"x-ms-content-disposition\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var contentEncoding = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentEncoding\"\n ],\n mapper: {\n serializedName: \"x-ms-content-encoding\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var contentLanguage = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentLanguage\"\n ],\n mapper: {\n serializedName: \"x-ms-content-language\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var contentLength = {\n parameterPath: \"contentLength\",\n mapper: {\n required: true,\n serializedName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var contentType = {\n parameterPath: [\n \"options\",\n \"directoryHttpHeaders\",\n \"contentType\"\n ],\n mapper: {\n serializedName: \"x-ms-content-type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var copyActionAbortConstant = {\n parameterPath: \"copyActionAbortConstant\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-copy-action\",\n defaultValue: 'abort',\n type: {\n name: \"String\"\n }\n }\n};\nexport var copyId = {\n parameterPath: \"copyId\",\n mapper: {\n required: true,\n serializedName: \"copyid\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var copySource = {\n parameterPath: \"copySource\",\n mapper: {\n required: true,\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var deleteSnapshots = {\n parameterPath: [\n \"options\",\n \"deleteSnapshots\"\n ],\n mapper: {\n serializedName: \"x-ms-delete-snapshots\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"include\",\n \"only\"\n ]\n }\n }\n};\nexport var delimiter = {\n parameterPath: \"delimiter\",\n mapper: {\n required: true,\n serializedName: \"delimiter\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var directoryProperties = {\n parameterPath: [\n \"options\",\n \"directoryProperties\"\n ],\n mapper: {\n serializedName: \"x-ms-properties\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var duration = {\n parameterPath: [\n \"options\",\n \"duration\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var encryptionAlgorithm = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionAlgorithm\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-algorithm\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"AES256\"\n ]\n }\n }\n};\nexport var encryptionKey = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionKey\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-key\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var encryptionKeySha256 = {\n parameterPath: [\n \"options\",\n \"cpkInfo\",\n \"encryptionKeySha256\"\n ],\n mapper: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var group = {\n parameterPath: [\n \"options\",\n \"group\"\n ],\n mapper: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var ifMatch = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifMatch\"\n ],\n mapper: {\n serializedName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var ifModifiedSince = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifModifiedSince\"\n ],\n mapper: {\n serializedName: \"If-Modified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport var ifNoneMatch = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifNoneMatch\"\n ],\n mapper: {\n serializedName: \"If-None-Match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var ifSequenceNumberEqualTo = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-eq\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var ifSequenceNumberLessThan = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThan\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-lt\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var ifSequenceNumberLessThanOrEqualTo = {\n parameterPath: [\n \"options\",\n \"sequenceNumberAccessConditions\",\n \"ifSequenceNumberLessThanOrEqualTo\"\n ],\n mapper: {\n serializedName: \"x-ms-if-sequence-number-le\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var ifUnmodifiedSince = {\n parameterPath: [\n \"options\",\n \"modifiedAccessConditions\",\n \"ifUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"If-Unmodified-Since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport var include0 = {\n parameterPath: [\n \"options\",\n \"include\"\n ],\n mapper: {\n serializedName: \"include\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"metadata\"\n ]\n }\n }\n};\nexport var include1 = {\n parameterPath: [\n \"options\",\n \"include\"\n ],\n mapper: {\n serializedName: \"include\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Enum\",\n allowedValues: [\n \"copy\",\n \"deleted\",\n \"metadata\",\n \"snapshots\",\n \"uncommittedblobs\"\n ]\n }\n }\n }\n },\n collectionFormat: msRest.QueryCollectionFormat.Csv\n};\nexport var leaseId0 = {\n parameterPath: [\n \"options\",\n \"leaseAccessConditions\",\n \"leaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var leaseId1 = {\n parameterPath: \"leaseId\",\n mapper: {\n required: true,\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var listType = {\n parameterPath: \"listType\",\n mapper: {\n required: true,\n serializedName: \"blocklisttype\",\n defaultValue: 'committed',\n type: {\n name: \"Enum\",\n allowedValues: [\n \"committed\",\n \"uncommitted\",\n \"all\"\n ]\n }\n }\n};\nexport var marker0 = {\n parameterPath: [\n \"options\",\n \"marker\"\n ],\n mapper: {\n serializedName: \"marker\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var marker1 = {\n parameterPath: [\n \"options\",\n \"marker\"\n ],\n mapper: {\n serializedName: \"continuation\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var maxresults = {\n parameterPath: [\n \"options\",\n \"maxresults\"\n ],\n mapper: {\n serializedName: \"maxresults\",\n constraints: {\n InclusiveMinimum: 1\n },\n type: {\n name: \"Number\"\n }\n }\n};\nexport var maxSize = {\n parameterPath: [\n \"options\",\n \"appendPositionAccessConditions\",\n \"maxSize\"\n ],\n mapper: {\n serializedName: \"x-ms-blob-condition-maxsize\",\n type: {\n name: \"Number\"\n }\n }\n};\nexport var metadata = {\n parameterPath: [\n \"options\",\n \"metadata\"\n ],\n mapper: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n }\n};\nexport var multipartContentType = {\n parameterPath: \"multipartContentType\",\n mapper: {\n required: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var owner = {\n parameterPath: [\n \"options\",\n \"owner\"\n ],\n mapper: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var pageWrite0 = {\n parameterPath: \"pageWrite\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n defaultValue: 'update',\n type: {\n name: \"String\"\n }\n }\n};\nexport var pageWrite1 = {\n parameterPath: \"pageWrite\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-page-write\",\n defaultValue: 'clear',\n type: {\n name: \"String\"\n }\n }\n};\nexport var pathRenameMode = {\n parameterPath: \"pathRenameMode\",\n mapper: {\n serializedName: \"mode\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"legacy\",\n \"posix\"\n ]\n }\n }\n};\nexport var posixAcl = {\n parameterPath: [\n \"options\",\n \"posixAcl\"\n ],\n mapper: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var posixPermissions = {\n parameterPath: [\n \"options\",\n \"posixPermissions\"\n ],\n mapper: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var posixUmask = {\n parameterPath: [\n \"options\",\n \"posixUmask\"\n ],\n mapper: {\n serializedName: \"x-ms-umask\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var prefix = {\n parameterPath: [\n \"options\",\n \"prefix\"\n ],\n mapper: {\n serializedName: \"prefix\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var prevsnapshot = {\n parameterPath: [\n \"options\",\n \"prevsnapshot\"\n ],\n mapper: {\n serializedName: \"prevsnapshot\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var proposedLeaseId0 = {\n parameterPath: [\n \"options\",\n \"proposedLeaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var proposedLeaseId1 = {\n parameterPath: \"proposedLeaseId\",\n mapper: {\n required: true,\n serializedName: \"x-ms-proposed-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var range0 = {\n parameterPath: [\n \"options\",\n \"range\"\n ],\n mapper: {\n serializedName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var range1 = {\n parameterPath: \"range\",\n mapper: {\n required: true,\n serializedName: \"x-ms-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var rangeGetContentCRC64 = {\n parameterPath: [\n \"options\",\n \"rangeGetContentCRC64\"\n ],\n mapper: {\n serializedName: \"x-ms-range-get-content-crc64\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport var rangeGetContentMD5 = {\n parameterPath: [\n \"options\",\n \"rangeGetContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-range-get-content-md5\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport var recursiveDirectoryDelete = {\n parameterPath: \"recursiveDirectoryDelete\",\n mapper: {\n required: true,\n serializedName: \"recursive\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport var rehydratePriority = {\n parameterPath: [\n \"options\",\n \"rehydratePriority\"\n ],\n mapper: {\n serializedName: \"x-ms-rehydrate-priority\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var renameSource = {\n parameterPath: \"renameSource\",\n mapper: {\n required: true,\n serializedName: \"x-ms-rename-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var requestId = {\n parameterPath: [\n \"options\",\n \"requestId\"\n ],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var resource = {\n parameterPath: \"resource\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"resource\",\n defaultValue: 'directory',\n type: {\n name: \"String\"\n }\n }\n};\nexport var restype0 = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'service',\n type: {\n name: \"String\"\n }\n }\n};\nexport var restype1 = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'account',\n type: {\n name: \"String\"\n }\n }\n};\nexport var restype2 = {\n parameterPath: \"restype\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"restype\",\n defaultValue: 'container',\n type: {\n name: \"String\"\n }\n }\n};\nexport var sequenceNumberAction = {\n parameterPath: \"sequenceNumberAction\",\n mapper: {\n required: true,\n serializedName: \"x-ms-sequence-number-action\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"max\",\n \"update\",\n \"increment\"\n ]\n }\n }\n};\nexport var snapshot = {\n parameterPath: [\n \"options\",\n \"snapshot\"\n ],\n mapper: {\n serializedName: \"snapshot\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceContentCrc64 = {\n parameterPath: [\n \"options\",\n \"sourceContentCrc64\"\n ],\n mapper: {\n serializedName: \"x-ms-source-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport var sourceContentMD5 = {\n parameterPath: [\n \"options\",\n \"sourceContentMD5\"\n ],\n mapper: {\n serializedName: \"x-ms-source-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport var sourceIfMatch = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceIfModifiedSince = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfModifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-modified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport var sourceIfNoneMatch = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfNoneMatch\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-none-match\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceIfUnmodifiedSince = {\n parameterPath: [\n \"options\",\n \"sourceModifiedAccessConditions\",\n \"sourceIfUnmodifiedSince\"\n ],\n mapper: {\n serializedName: \"x-ms-source-if-unmodified-since\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n};\nexport var sourceLeaseId = {\n parameterPath: [\n \"options\",\n \"sourceLeaseId\"\n ],\n mapper: {\n serializedName: \"x-ms-source-lease-id\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceRange0 = {\n parameterPath: \"sourceRange\",\n mapper: {\n required: true,\n serializedName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceRange1 = {\n parameterPath: [\n \"options\",\n \"sourceRange\"\n ],\n mapper: {\n serializedName: \"x-ms-source-range\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var sourceUrl = {\n parameterPath: \"sourceUrl\",\n mapper: {\n required: true,\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var tier0 = {\n parameterPath: [\n \"options\",\n \"tier\"\n ],\n mapper: {\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var tier1 = {\n parameterPath: \"tier\",\n mapper: {\n required: true,\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n }\n};\nexport var timeout = {\n parameterPath: [\n \"options\",\n \"timeout\"\n ],\n mapper: {\n serializedName: \"timeout\",\n constraints: {\n InclusiveMinimum: 0\n },\n type: {\n name: \"Number\"\n }\n }\n};\nexport var transactionalContentCrc64 = {\n parameterPath: [\n \"options\",\n \"transactionalContentCrc64\"\n ],\n mapper: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport var transactionalContentMD5 = {\n parameterPath: [\n \"options\",\n \"transactionalContentMD5\"\n ],\n mapper: {\n serializedName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n }\n};\nexport var upn = {\n parameterPath: [\n \"options\",\n \"upn\"\n ],\n mapper: {\n serializedName: \"upn\",\n type: {\n name: \"Boolean\"\n }\n }\n};\nexport var url = {\n parameterPath: \"url\",\n mapper: {\n required: true,\n serializedName: \"url\",\n defaultValue: '',\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\nexport var version = {\n parameterPath: \"version\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-version\",\n defaultValue: '2019-02-02',\n type: {\n name: \"String\"\n }\n }\n};\nexport var xMsRequiresSync = {\n parameterPath: \"xMsRequiresSync\",\n mapper: {\n required: true,\n isConstant: true,\n serializedName: \"x-ms-requires-sync\",\n defaultValue: 'true',\n type: {\n name: \"String\"\n }\n }\n};\n//# sourceMappingURL=parameters.js.map","import { onUnexpectedError } from './errors.js';\nimport { combinedDisposable, Disposable, DisposableStore, toDisposable } from './lifecycle.js';\nimport { LinkedList } from './linkedList.js';\nimport { StopWatch } from './stopwatch.js';\nexport var Event;\n(function (Event) {\n Event.None = () => Disposable.None;\n /**\n * Given an event, returns another event which only fires once.\n */\n function once(event) {\n return (listener, thisArgs = null, disposables) => {\n // we need this, in case the event fires during the listener call\n let didFire = false;\n let result;\n result = event(e => {\n if (didFire) {\n return;\n }\n else if (result) {\n result.dispose();\n }\n else {\n didFire = true;\n }\n return listener.call(thisArgs, e);\n }, null, disposables);\n if (didFire) {\n result.dispose();\n }\n return result;\n };\n }\n Event.once = once;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function map(event, map) {\n return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables));\n }\n Event.map = map;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function forEach(event, each) {\n return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables));\n }\n Event.forEach = forEach;\n function filter(event, filter) {\n return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables));\n }\n Event.filter = filter;\n /**\n * Given an event, returns the same event but typed as `Event`.\n */\n function signal(event) {\n return event;\n }\n Event.signal = signal;\n function any(...events) {\n return (listener, thisArgs = null, disposables) => combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e), null, disposables)));\n }\n Event.any = any;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function reduce(event, merge, initial) {\n let output = initial;\n return map(event, e => {\n output = merge(output, e);\n return output;\n });\n }\n Event.reduce = reduce;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function snapshot(event) {\n let listener;\n const emitter = new Emitter({\n onFirstListenerAdd() {\n listener = event(emitter.fire, emitter);\n },\n onLastListenerRemove() {\n listener.dispose();\n }\n });\n return emitter.event;\n }\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function debounce(event, merge, delay = 100, leading = false, leakWarningThreshold) {\n let subscription;\n let output = undefined;\n let handle = undefined;\n let numDebouncedCalls = 0;\n const emitter = new Emitter({\n leakWarningThreshold,\n onFirstListenerAdd() {\n subscription = event(cur => {\n numDebouncedCalls++;\n output = merge(output, cur);\n if (leading && !handle) {\n emitter.fire(output);\n output = undefined;\n }\n clearTimeout(handle);\n handle = setTimeout(() => {\n const _output = output;\n output = undefined;\n handle = undefined;\n if (!leading || numDebouncedCalls > 1) {\n emitter.fire(_output);\n }\n numDebouncedCalls = 0;\n }, delay);\n });\n },\n onLastListenerRemove() {\n subscription.dispose();\n }\n });\n return emitter.event;\n }\n Event.debounce = debounce;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function latch(event, equals = (a, b) => a === b) {\n let firstCall = true;\n let cache;\n return filter(event, value => {\n const shouldEmit = firstCall || !equals(value, cache);\n firstCall = false;\n cache = value;\n return shouldEmit;\n });\n }\n Event.latch = latch;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function split(event, isT) {\n return [\n Event.filter(event, isT),\n Event.filter(event, e => !isT(e)),\n ];\n }\n Event.split = split;\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function buffer(event, nextTick = false, _buffer = []) {\n let buffer = _buffer.slice();\n let listener = event(e => {\n if (buffer) {\n buffer.push(e);\n }\n else {\n emitter.fire(e);\n }\n });\n const flush = () => {\n if (buffer) {\n buffer.forEach(e => emitter.fire(e));\n }\n buffer = null;\n };\n const emitter = new Emitter({\n onFirstListenerAdd() {\n if (!listener) {\n listener = event(e => emitter.fire(e));\n }\n },\n onFirstListenerDidAdd() {\n if (buffer) {\n if (nextTick) {\n setTimeout(flush);\n }\n else {\n flush();\n }\n }\n },\n onLastListenerRemove() {\n if (listener) {\n listener.dispose();\n }\n listener = null;\n }\n });\n return emitter.event;\n }\n Event.buffer = buffer;\n class ChainableEvent {\n constructor(event) {\n this.event = event;\n }\n map(fn) {\n return new ChainableEvent(map(this.event, fn));\n }\n forEach(fn) {\n return new ChainableEvent(forEach(this.event, fn));\n }\n filter(fn) {\n return new ChainableEvent(filter(this.event, fn));\n }\n reduce(merge, initial) {\n return new ChainableEvent(reduce(this.event, merge, initial));\n }\n latch() {\n return new ChainableEvent(latch(this.event));\n }\n debounce(merge, delay = 100, leading = false, leakWarningThreshold) {\n return new ChainableEvent(debounce(this.event, merge, delay, leading, leakWarningThreshold));\n }\n on(listener, thisArgs, disposables) {\n return this.event(listener, thisArgs, disposables);\n }\n once(listener, thisArgs, disposables) {\n return once(this.event)(listener, thisArgs, disposables);\n }\n }\n /**\n * @deprecated DO NOT use, this leaks memory\n */\n function chain(event) {\n return new ChainableEvent(event);\n }\n Event.chain = chain;\n function fromNodeEventEmitter(emitter, eventName, map = id => id) {\n const fn = (...args) => result.fire(map(...args));\n const onFirstListenerAdd = () => emitter.on(eventName, fn);\n const onLastListenerRemove = () => emitter.removeListener(eventName, fn);\n const result = new Emitter({ onFirstListenerAdd, onLastListenerRemove });\n return result.event;\n }\n Event.fromNodeEventEmitter = fromNodeEventEmitter;\n function fromDOMEventEmitter(emitter, eventName, map = id => id) {\n const fn = (...args) => result.fire(map(...args));\n const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn);\n const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn);\n const result = new Emitter({ onFirstListenerAdd, onLastListenerRemove });\n return result.event;\n }\n Event.fromDOMEventEmitter = fromDOMEventEmitter;\n function toPromise(event) {\n return new Promise(resolve => once(event)(resolve));\n }\n Event.toPromise = toPromise;\n})(Event || (Event = {}));\nclass EventProfiling {\n constructor(name) {\n this._listenerCount = 0;\n this._invocationCount = 0;\n this._elapsedOverall = 0;\n this._name = `${name}_${EventProfiling._idPool++}`;\n }\n start(listenerCount) {\n this._stopWatch = new StopWatch(true);\n this._listenerCount = listenerCount;\n }\n stop() {\n if (this._stopWatch) {\n const elapsed = this._stopWatch.elapsed();\n this._elapsedOverall += elapsed;\n this._invocationCount += 1;\n console.info(`did FIRE ${this._name}: elapsed_ms: ${elapsed.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`);\n this._stopWatch = undefined;\n }\n }\n}\nEventProfiling._idPool = 0;\nlet _globalLeakWarningThreshold = -1;\nclass LeakageMonitor {\n constructor(customThreshold, name = Math.random().toString(18).slice(2, 5)) {\n this.customThreshold = customThreshold;\n this.name = name;\n this._warnCountdown = 0;\n }\n dispose() {\n if (this._stacks) {\n this._stacks.clear();\n }\n }\n check(listenerCount) {\n let threshold = _globalLeakWarningThreshold;\n if (typeof this.customThreshold === 'number') {\n threshold = this.customThreshold;\n }\n if (threshold <= 0 || listenerCount < threshold) {\n return undefined;\n }\n if (!this._stacks) {\n this._stacks = new Map();\n }\n const stack = new Error().stack.split('\\n').slice(3).join('\\n');\n const count = (this._stacks.get(stack) || 0);\n this._stacks.set(stack, count + 1);\n this._warnCountdown -= 1;\n if (this._warnCountdown <= 0) {\n // only warn on first exceed and then every time the limit\n // is exceeded by 50% again\n this._warnCountdown = threshold * 0.5;\n // find most frequent listener and print warning\n let topStack;\n let topCount = 0;\n for (const [stack, count] of this._stacks) {\n if (!topStack || topCount < count) {\n topStack = stack;\n topCount = count;\n }\n }\n console.warn(`[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`);\n console.warn(topStack);\n }\n return () => {\n const count = (this._stacks.get(stack) || 0);\n this._stacks.set(stack, count - 1);\n };\n }\n}\n/**\n * The Emitter can be used to expose an Event to the public\n * to fire it from the insides.\n * Sample:\n class Document {\n\n private readonly _onDidChange = new Emitter<(value:string)=>any>();\n\n public onDidChange = this._onDidChange.event;\n\n // getter-style\n // get onDidChange(): Event<(value:string)=>any> {\n // \treturn this._onDidChange.event;\n // }\n\n private _doIt() {\n //...\n this._onDidChange.fire(value);\n }\n }\n */\nexport class Emitter {\n constructor(options) {\n var _a;\n this._disposed = false;\n this._options = options;\n this._leakageMon = _globalLeakWarningThreshold > 0 ? new LeakageMonitor(this._options && this._options.leakWarningThreshold) : undefined;\n this._perfMon = ((_a = this._options) === null || _a === void 0 ? void 0 : _a._profName) ? new EventProfiling(this._options._profName) : undefined;\n }\n /**\n * For the public to allow to subscribe\n * to events from this Emitter\n */\n get event() {\n if (!this._event) {\n this._event = (listener, thisArgs, disposables) => {\n var _a;\n if (!this._listeners) {\n this._listeners = new LinkedList();\n }\n const firstListener = this._listeners.isEmpty();\n if (firstListener && this._options && this._options.onFirstListenerAdd) {\n this._options.onFirstListenerAdd(this);\n }\n const remove = this._listeners.push(!thisArgs ? listener : [listener, thisArgs]);\n if (firstListener && this._options && this._options.onFirstListenerDidAdd) {\n this._options.onFirstListenerDidAdd(this);\n }\n if (this._options && this._options.onListenerDidAdd) {\n this._options.onListenerDidAdd(this, listener, thisArgs);\n }\n // check and record this emitter for potential leakage\n const removeMonitor = (_a = this._leakageMon) === null || _a === void 0 ? void 0 : _a.check(this._listeners.size);\n const result = toDisposable(() => {\n if (removeMonitor) {\n removeMonitor();\n }\n if (!this._disposed) {\n remove();\n if (this._options && this._options.onLastListenerRemove) {\n const hasListeners = (this._listeners && !this._listeners.isEmpty());\n if (!hasListeners) {\n this._options.onLastListenerRemove(this);\n }\n }\n }\n });\n if (disposables instanceof DisposableStore) {\n disposables.add(result);\n }\n else if (Array.isArray(disposables)) {\n disposables.push(result);\n }\n return result;\n };\n }\n return this._event;\n }\n /**\n * To be kept private to fire an event to\n * subscribers\n */\n fire(event) {\n var _a, _b;\n if (this._listeners) {\n // put all [listener,event]-pairs into delivery queue\n // then emit all event. an inner/nested event might be\n // the driver of this\n if (!this._deliveryQueue) {\n this._deliveryQueue = new LinkedList();\n }\n for (let listener of this._listeners) {\n this._deliveryQueue.push([listener, event]);\n }\n // start/stop performance insight collection\n (_a = this._perfMon) === null || _a === void 0 ? void 0 : _a.start(this._deliveryQueue.size);\n while (this._deliveryQueue.size > 0) {\n const [listener, event] = this._deliveryQueue.shift();\n try {\n if (typeof listener === 'function') {\n listener.call(undefined, event);\n }\n else {\n listener[0].call(listener[1], event);\n }\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n (_b = this._perfMon) === null || _b === void 0 ? void 0 : _b.stop();\n }\n }\n dispose() {\n var _a, _b, _c, _d, _e;\n if (!this._disposed) {\n this._disposed = true;\n (_a = this._listeners) === null || _a === void 0 ? void 0 : _a.clear();\n (_b = this._deliveryQueue) === null || _b === void 0 ? void 0 : _b.clear();\n (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onLastListenerRemove) === null || _d === void 0 ? void 0 : _d.call(_c);\n (_e = this._leakageMon) === null || _e === void 0 ? void 0 : _e.dispose();\n }\n }\n}\nexport class PauseableEmitter extends Emitter {\n constructor(options) {\n super(options);\n this._isPaused = 0;\n this._eventQueue = new LinkedList();\n this._mergeFn = options === null || options === void 0 ? void 0 : options.merge;\n }\n pause() {\n this._isPaused++;\n }\n resume() {\n if (this._isPaused !== 0 && --this._isPaused === 0) {\n if (this._mergeFn) {\n // use the merge function to create a single composite\n // event. make a copy in case firing pauses this emitter\n const events = Array.from(this._eventQueue);\n this._eventQueue.clear();\n super.fire(this._mergeFn(events));\n }\n else {\n // no merging, fire each event individually and test\n // that this emitter isn't paused halfway through\n while (!this._isPaused && this._eventQueue.size !== 0) {\n super.fire(this._eventQueue.shift());\n }\n }\n }\n }\n fire(event) {\n if (this._listeners) {\n if (this._isPaused !== 0) {\n this._eventQueue.push(event);\n }\n else {\n super.fire(event);\n }\n }\n }\n}\nexport class DebounceEmitter extends PauseableEmitter {\n constructor(options) {\n var _a;\n super(options);\n this._delay = (_a = options.delay) !== null && _a !== void 0 ? _a : 100;\n }\n fire(event) {\n if (!this._handle) {\n this.pause();\n this._handle = setTimeout(() => {\n this._handle = undefined;\n this.resume();\n }, this._delay);\n }\n super.fire(event);\n }\n}\n/**\n * The EventBufferer is useful in situations in which you want\n * to delay firing your events during some code.\n * You can wrap that code and be sure that the event will not\n * be fired during that wrap.\n *\n * ```\n * const emitter: Emitter;\n * const delayer = new EventDelayer();\n * const delayedEvent = delayer.wrapEvent(emitter.event);\n *\n * delayedEvent(console.log);\n *\n * delayer.bufferEvents(() => {\n * emitter.fire(); // event will not be fired yet\n * });\n *\n * // event will only be fired at this point\n * ```\n */\nexport class EventBufferer {\n constructor() {\n this.buffers = [];\n }\n wrapEvent(event) {\n return (listener, thisArgs, disposables) => {\n return event(i => {\n const buffer = this.buffers[this.buffers.length - 1];\n if (buffer) {\n buffer.push(() => listener.call(thisArgs, i));\n }\n else {\n listener.call(thisArgs, i);\n }\n }, undefined, disposables);\n };\n }\n bufferEvents(fn) {\n const buffer = [];\n this.buffers.push(buffer);\n const r = fn();\n this.buffers.pop();\n buffer.forEach(flush => flush());\n return r;\n }\n}\n/**\n * A Relay is an event forwarder which functions as a replugabble event pipe.\n * Once created, you can connect an input event to it and it will simply forward\n * events from that input event through its own `event` property. The `input`\n * can be changed at any point in time.\n */\nexport class Relay {\n constructor() {\n this.listening = false;\n this.inputEvent = Event.None;\n this.inputEventListener = Disposable.None;\n this.emitter = new Emitter({\n onFirstListenerDidAdd: () => {\n this.listening = true;\n this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);\n },\n onLastListenerRemove: () => {\n this.listening = false;\n this.inputEventListener.dispose();\n }\n });\n this.event = this.emitter.event;\n }\n set input(event) {\n this.inputEvent = event;\n if (this.listening) {\n this.inputEventListener.dispose();\n this.inputEventListener = event(this.emitter.fire, this.emitter);\n }\n }\n dispose() {\n this.inputEventListener.dispose();\n this.emitter.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nimport { RawContextKey } from '../../platform/contextkey/common/contextkey.js';\nexport var EditorContextKeys;\n(function (EditorContextKeys) {\n EditorContextKeys.editorSimpleInput = new RawContextKey('editorSimpleInput', false, true);\n /**\n * A context key that is set when the editor's text has focus (cursor is blinking).\n * Is false when focus is in simple editor widgets (repl input, scm commit input).\n */\n EditorContextKeys.editorTextFocus = new RawContextKey('editorTextFocus', false, nls.localize('editorTextFocus', \"Whether the editor text has focus (cursor is blinking)\"));\n /**\n * A context key that is set when the editor's text or an editor's widget has focus.\n */\n EditorContextKeys.focus = new RawContextKey('editorFocus', false, nls.localize('editorFocus', \"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\"));\n /**\n * A context key that is set when any editor input has focus (regular editor, repl input...).\n */\n EditorContextKeys.textInputFocus = new RawContextKey('textInputFocus', false, nls.localize('textInputFocus', \"Whether an editor or a rich text input has focus (cursor is blinking)\"));\n EditorContextKeys.readOnly = new RawContextKey('editorReadonly', false, nls.localize('editorReadonly', \"Whether the editor is read only\"));\n EditorContextKeys.inDiffEditor = new RawContextKey('inDiffEditor', false, nls.localize('inDiffEditor', \"Whether the context is a diff editor\"));\n EditorContextKeys.columnSelection = new RawContextKey('editorColumnSelection', false, nls.localize('editorColumnSelection', \"Whether `editor.columnSelection` is enabled\"));\n EditorContextKeys.writable = EditorContextKeys.readOnly.toNegated();\n EditorContextKeys.hasNonEmptySelection = new RawContextKey('editorHasSelection', false, nls.localize('editorHasSelection', \"Whether the editor has text selected\"));\n EditorContextKeys.hasOnlyEmptySelection = EditorContextKeys.hasNonEmptySelection.toNegated();\n EditorContextKeys.hasMultipleSelections = new RawContextKey('editorHasMultipleSelections', false, nls.localize('editorHasMultipleSelections', \"Whether the editor has multiple selections\"));\n EditorContextKeys.hasSingleSelection = EditorContextKeys.hasMultipleSelections.toNegated();\n EditorContextKeys.tabMovesFocus = new RawContextKey('editorTabMovesFocus', false, nls.localize('editorTabMovesFocus', \"Whether `Tab` will move focus out of the editor\"));\n EditorContextKeys.tabDoesNotMoveFocus = EditorContextKeys.tabMovesFocus.toNegated();\n EditorContextKeys.isInWalkThroughSnippet = new RawContextKey('isInEmbeddedEditor', false, true);\n EditorContextKeys.canUndo = new RawContextKey('canUndo', false, true);\n EditorContextKeys.canRedo = new RawContextKey('canRedo', false, true);\n EditorContextKeys.hoverVisible = new RawContextKey('editorHoverVisible', false, nls.localize('editorHoverVisible', \"Whether the editor hover is visible\"));\n /**\n * A context key that is set when an editor is part of a larger editor, like notebooks or\n * (future) a diff editor\n */\n EditorContextKeys.inCompositeEditor = new RawContextKey('inCompositeEditor', undefined, nls.localize('inCompositeEditor', \"Whether the editor is part of a larger editor (e.g. notebooks)\"));\n EditorContextKeys.notInCompositeEditor = EditorContextKeys.inCompositeEditor.toNegated();\n // -- mode context keys\n EditorContextKeys.languageId = new RawContextKey('editorLangId', '', nls.localize('editorLangId', \"The language identifier of the editor\"));\n EditorContextKeys.hasCompletionItemProvider = new RawContextKey('editorHasCompletionItemProvider', false, nls.localize('editorHasCompletionItemProvider', \"Whether the editor has a completion item provider\"));\n EditorContextKeys.hasCodeActionsProvider = new RawContextKey('editorHasCodeActionsProvider', false, nls.localize('editorHasCodeActionsProvider', \"Whether the editor has a code actions provider\"));\n EditorContextKeys.hasCodeLensProvider = new RawContextKey('editorHasCodeLensProvider', false, nls.localize('editorHasCodeLensProvider', \"Whether the editor has a code lens provider\"));\n EditorContextKeys.hasDefinitionProvider = new RawContextKey('editorHasDefinitionProvider', false, nls.localize('editorHasDefinitionProvider', \"Whether the editor has a definition provider\"));\n EditorContextKeys.hasDeclarationProvider = new RawContextKey('editorHasDeclarationProvider', false, nls.localize('editorHasDeclarationProvider', \"Whether the editor has a declaration provider\"));\n EditorContextKeys.hasImplementationProvider = new RawContextKey('editorHasImplementationProvider', false, nls.localize('editorHasImplementationProvider', \"Whether the editor has an implementation provider\"));\n EditorContextKeys.hasTypeDefinitionProvider = new RawContextKey('editorHasTypeDefinitionProvider', false, nls.localize('editorHasTypeDefinitionProvider', \"Whether the editor has a type definition provider\"));\n EditorContextKeys.hasHoverProvider = new RawContextKey('editorHasHoverProvider', false, nls.localize('editorHasHoverProvider', \"Whether the editor has a hover provider\"));\n EditorContextKeys.hasDocumentHighlightProvider = new RawContextKey('editorHasDocumentHighlightProvider', false, nls.localize('editorHasDocumentHighlightProvider', \"Whether the editor has a document highlight provider\"));\n EditorContextKeys.hasDocumentSymbolProvider = new RawContextKey('editorHasDocumentSymbolProvider', false, nls.localize('editorHasDocumentSymbolProvider', \"Whether the editor has a document symbol provider\"));\n EditorContextKeys.hasReferenceProvider = new RawContextKey('editorHasReferenceProvider', false, nls.localize('editorHasReferenceProvider', \"Whether the editor has a reference provider\"));\n EditorContextKeys.hasRenameProvider = new RawContextKey('editorHasRenameProvider', false, nls.localize('editorHasRenameProvider', \"Whether the editor has a rename provider\"));\n EditorContextKeys.hasSignatureHelpProvider = new RawContextKey('editorHasSignatureHelpProvider', false, nls.localize('editorHasSignatureHelpProvider', \"Whether the editor has a signature help provider\"));\n EditorContextKeys.hasInlayHintsProvider = new RawContextKey('editorHasInlayHintsProvider', false, nls.localize('editorHasInlayHintsProvider', \"Whether the editor has an inline hints provider\"));\n // -- mode context keys: formatting\n EditorContextKeys.hasDocumentFormattingProvider = new RawContextKey('editorHasDocumentFormattingProvider', false, nls.localize('editorHasDocumentFormattingProvider', \"Whether the editor has a document formatting provider\"));\n EditorContextKeys.hasDocumentSelectionFormattingProvider = new RawContextKey('editorHasDocumentSelectionFormattingProvider', false, nls.localize('editorHasDocumentSelectionFormattingProvider', \"Whether the editor has a document selection formatting provider\"));\n EditorContextKeys.hasMultipleDocumentFormattingProvider = new RawContextKey('editorHasMultipleDocumentFormattingProvider', false, nls.localize('editorHasMultipleDocumentFormattingProvider', \"Whether the editor has multiple document formatting providers\"));\n EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider = new RawContextKey('editorHasMultipleDocumentSelectionFormattingProvider', false, nls.localize('editorHasMultipleDocumentSelectionFormattingProvider', \"Whether the editor has multiple document selection formatting providers\"));\n})(EditorContextKeys || (EditorContextKeys = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function isFalsyOrWhitespace(str) {\n if (!str || typeof str !== 'string') {\n return true;\n }\n return str.trim().length === 0;\n}\nconst _formatRegexp = /{(\\d+)}/g;\n/**\n * Helper to produce a string with a variable number of arguments. Insert variable segments\n * into the string using the {n} notation where N is the index of the argument following the string.\n * @param value string to which formatting is applied\n * @param args replacements for {n}-entries\n */\nexport function format(value, ...args) {\n if (args.length === 0) {\n return value;\n }\n return value.replace(_formatRegexp, function (match, group) {\n const idx = parseInt(group, 10);\n return isNaN(idx) || idx < 0 || idx >= args.length ?\n match :\n args[idx];\n });\n}\n/**\n * Converts HTML characters inside the string to use entities instead. Makes the string safe from\n * being used e.g. in HTMLElement.innerHTML.\n */\nexport function escape(html) {\n return html.replace(/[<>&]/g, function (match) {\n switch (match) {\n case '<': return '<';\n case '>': return '>';\n case '&': return '&';\n default: return match;\n }\n });\n}\n/**\n * Escapes regular expression characters in a given string\n */\nexport function escapeRegExpCharacters(value) {\n return value.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, '\\\\$&');\n}\n/**\n * Removes all occurrences of needle from the beginning and end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim (default is a blank)\n */\nexport function trim(haystack, needle = ' ') {\n const trimmed = ltrim(haystack, needle);\n return rtrim(trimmed, needle);\n}\n/**\n * Removes all occurrences of needle from the beginning of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function ltrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length;\n if (needleLen === 0 || haystack.length === 0) {\n return haystack;\n }\n let offset = 0;\n while (haystack.indexOf(needle, offset) === offset) {\n offset = offset + needleLen;\n }\n return haystack.substring(offset);\n}\n/**\n * Removes all occurrences of needle from the end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function rtrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length, haystackLen = haystack.length;\n if (needleLen === 0 || haystackLen === 0) {\n return haystack;\n }\n let offset = haystackLen, idx = -1;\n while (true) {\n idx = haystack.lastIndexOf(needle, offset - 1);\n if (idx === -1 || idx + needleLen !== offset) {\n break;\n }\n if (idx === 0) {\n return '';\n }\n offset = idx;\n }\n return haystack.substring(0, offset);\n}\nexport function convertSimple2RegExpPattern(pattern) {\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function stripWildcards(pattern) {\n return pattern.replace(/\\*/g, '');\n}\nexport function createRegExp(searchString, isRegex, options = {}) {\n if (!searchString) {\n throw new Error('Cannot create regex from empty string');\n }\n if (!isRegex) {\n searchString = escapeRegExpCharacters(searchString);\n }\n if (options.wholeWord) {\n if (!/\\B/.test(searchString.charAt(0))) {\n searchString = '\\\\b' + searchString;\n }\n if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\n searchString = searchString + '\\\\b';\n }\n }\n let modifiers = '';\n if (options.global) {\n modifiers += 'g';\n }\n if (!options.matchCase) {\n modifiers += 'i';\n }\n if (options.multiline) {\n modifiers += 'm';\n }\n if (options.unicode) {\n modifiers += 'u';\n }\n return new RegExp(searchString, modifiers);\n}\nexport function regExpLeadsToEndlessLoop(regexp) {\n // Exit early if it's one of these special cases which are meant to match\n // against an empty string\n if (regexp.source === '^' || regexp.source === '^$' || regexp.source === '$' || regexp.source === '^\\\\s*$') {\n return false;\n }\n // We check against an empty string. If the regular expression doesn't advance\n // (e.g. ends in an endless loop) it will match an empty string.\n const match = regexp.exec('');\n return !!(match && regexp.lastIndex === 0);\n}\nexport function regExpFlags(regexp) {\n return (regexp.global ? 'g' : '')\n + (regexp.ignoreCase ? 'i' : '')\n + (regexp.multiline ? 'm' : '')\n + (regexp /* standalone editor compilation */.unicode ? 'u' : '');\n}\nexport function splitLines(str) {\n return str.split(/\\r\\n|\\r|\\n/);\n}\n/**\n * Returns first index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function firstNonWhitespaceIndex(str) {\n for (let i = 0, len = str.length; i < len; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Returns the leading whitespace of the string.\n * If the string contains only whitespaces, returns entire string\n */\nexport function getLeadingWhitespace(str, start = 0, end = str.length) {\n for (let i = start; i < end; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\n return str.substring(start, i);\n }\n }\n return str.substring(start, end);\n}\n/**\n * Returns last index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function lastNonWhitespaceIndex(str, startIndex = str.length - 1) {\n for (let i = startIndex; i >= 0; i--) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* Space */ && chCode !== 9 /* Tab */) {\n return i;\n }\n }\n return -1;\n}\nexport function compare(a, b) {\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n else {\n return 0;\n }\n}\nexport function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n let codeA = a.charCodeAt(aStart);\n let codeB = b.charCodeAt(bStart);\n if (codeA < codeB) {\n return -1;\n }\n else if (codeA > codeB) {\n return 1;\n }\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function compareIgnoreCase(a, b) {\n return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);\n}\nexport function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n let codeA = a.charCodeAt(aStart);\n let codeB = b.charCodeAt(bStart);\n if (codeA === codeB) {\n // equal\n continue;\n }\n if (codeA >= 128 || codeB >= 128) {\n // not ASCII letters -> fallback to lower-casing strings\n return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);\n }\n // mapper lower-case ascii letter onto upper-case varinats\n // [97-122] (lower ascii) --> [65-90] (upper ascii)\n if (isLowerAsciiLetter(codeA)) {\n codeA -= 32;\n }\n if (isLowerAsciiLetter(codeB)) {\n codeB -= 32;\n }\n // compare both code points\n const diff = codeA - codeB;\n if (diff === 0) {\n continue;\n }\n return diff;\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function isLowerAsciiLetter(code) {\n return code >= 97 /* a */ && code <= 122 /* z */;\n}\nexport function isUpperAsciiLetter(code) {\n return code >= 65 /* A */ && code <= 90 /* Z */;\n}\nexport function equalsIgnoreCase(a, b) {\n return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0;\n}\nexport function startsWithIgnoreCase(str, candidate) {\n const candidateLength = candidate.length;\n if (candidate.length > str.length) {\n return false;\n }\n return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0;\n}\n/**\n * @returns the length of the common prefix of the two strings.\n */\nexport function commonPrefixLength(a, b) {\n let i, len = Math.min(a.length, b.length);\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(i) !== b.charCodeAt(i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * @returns the length of the common suffix of the two strings.\n */\nexport function commonSuffixLength(a, b) {\n let i, len = Math.min(a.length, b.length);\n const aLastIndex = a.length - 1;\n const bLastIndex = b.length - 1;\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isHighSurrogate(charCode) {\n return (0xD800 <= charCode && charCode <= 0xDBFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isLowSurrogate(charCode) {\n return (0xDC00 <= charCode && charCode <= 0xDFFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function computeCodePoint(highSurrogate, lowSurrogate) {\n return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000;\n}\n/**\n * get the code point that begins at offset `offset`\n */\nexport function getNextCodePoint(str, len, offset) {\n const charCode = str.charCodeAt(offset);\n if (isHighSurrogate(charCode) && offset + 1 < len) {\n const nextCharCode = str.charCodeAt(offset + 1);\n if (isLowSurrogate(nextCharCode)) {\n return computeCodePoint(charCode, nextCharCode);\n }\n }\n return charCode;\n}\n/**\n * get the code point that ends right before offset `offset`\n */\nfunction getPrevCodePoint(str, offset) {\n const charCode = str.charCodeAt(offset - 1);\n if (isLowSurrogate(charCode) && offset > 1) {\n const prevCharCode = str.charCodeAt(offset - 2);\n if (isHighSurrogate(prevCharCode)) {\n return computeCodePoint(prevCharCode, charCode);\n }\n }\n return charCode;\n}\nexport function nextCharLength(str, offset) {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const initialOffset = offset;\n const len = str.length;\n const initialCodePoint = getNextCodePoint(str, len, offset);\n offset += (initialCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(initialCodePoint);\n while (offset < len) {\n const nextCodePoint = getNextCodePoint(str, len, offset);\n const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(nextCodePoint);\n if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n break;\n }\n offset += (nextCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n graphemeBreakType = nextGraphemeBreakType;\n }\n return (offset - initialOffset);\n}\nexport function prevCharLength(str, offset) {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const initialOffset = offset;\n const initialCodePoint = getPrevCodePoint(str, offset);\n offset -= (initialCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(initialCodePoint);\n while (offset > 0) {\n const prevCodePoint = getPrevCodePoint(str, offset);\n const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(prevCodePoint);\n if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {\n break;\n }\n offset -= (prevCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n graphemeBreakType = prevGraphemeBreakType;\n }\n return (initialOffset - offset);\n}\n/**\n * Generated using https://github.com/alexdima/unicode-utils/blob/master/generate-rtl-test.js\n */\nconst CONTAINS_RTL = /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n/**\n * Returns true if `str` contains any Unicode character that is classified as \"R\" or \"AL\".\n */\nexport function containsRTL(str) {\n return CONTAINS_RTL.test(str);\n}\n/**\n * Generated using https://github.com/alexdima/unicode-utils/blob/master/generate-emoji-test.js\n */\nconst CONTAINS_EMOJI = /(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDED6])/;\nexport function containsEmoji(str) {\n return CONTAINS_EMOJI.test(str);\n}\nconst IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n/**\n * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \\n, \\r, \\t\n */\nexport function isBasicASCII(str) {\n return IS_BASIC_ASCII.test(str);\n}\nexport const UNUSUAL_LINE_TERMINATORS = /[\\u2028\\u2029]/; // LINE SEPARATOR (LS) or PARAGRAPH SEPARATOR (PS)\n/**\n * Returns true if `str` contains unusual line terminators, like LS or PS\n */\nexport function containsUnusualLineTerminators(str) {\n return UNUSUAL_LINE_TERMINATORS.test(str);\n}\nexport function containsFullWidthCharacter(str) {\n for (let i = 0, len = str.length; i < len; i++) {\n if (isFullWidthCharacter(str.charCodeAt(i))) {\n return true;\n }\n }\n return false;\n}\nexport function isFullWidthCharacter(charCode) {\n // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns\n // http://jrgraphix.net/research/unicode_blocks.php\n // 2E80 — 2EFF CJK Radicals Supplement\n // 2F00 — 2FDF Kangxi Radicals\n // 2FF0 — 2FFF Ideographic Description Characters\n // 3000 — 303F CJK Symbols and Punctuation\n // 3040 — 309F Hiragana\n // 30A0 — 30FF Katakana\n // 3100 — 312F Bopomofo\n // 3130 — 318F Hangul Compatibility Jamo\n // 3190 — 319F Kanbun\n // 31A0 — 31BF Bopomofo Extended\n // 31F0 — 31FF Katakana Phonetic Extensions\n // 3200 — 32FF Enclosed CJK Letters and Months\n // 3300 — 33FF CJK Compatibility\n // 3400 — 4DBF CJK Unified Ideographs Extension A\n // 4DC0 — 4DFF Yijing Hexagram Symbols\n // 4E00 — 9FFF CJK Unified Ideographs\n // A000 — A48F Yi Syllables\n // A490 — A4CF Yi Radicals\n // AC00 — D7AF Hangul Syllables\n // [IGNORE] D800 — DB7F High Surrogates\n // [IGNORE] DB80 — DBFF High Private Use Surrogates\n // [IGNORE] DC00 — DFFF Low Surrogates\n // [IGNORE] E000 — F8FF Private Use Area\n // F900 — FAFF CJK Compatibility Ideographs\n // [IGNORE] FB00 — FB4F Alphabetic Presentation Forms\n // [IGNORE] FB50 — FDFF Arabic Presentation Forms-A\n // [IGNORE] FE00 — FE0F Variation Selectors\n // [IGNORE] FE20 — FE2F Combining Half Marks\n // [IGNORE] FE30 — FE4F CJK Compatibility Forms\n // [IGNORE] FE50 — FE6F Small Form Variants\n // [IGNORE] FE70 — FEFF Arabic Presentation Forms-B\n // FF00 — FFEF Halfwidth and Fullwidth Forms\n // [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]\n // of which FF01 - FF5E fullwidth ASCII of 21 to 7E\n // [IGNORE] and FF65 - FFDC halfwidth of Katakana and Hangul\n // [IGNORE] FFF0 — FFFF Specials\n charCode = +charCode; // @perf\n return ((charCode >= 0x2E80 && charCode <= 0xD7AF)\n || (charCode >= 0xF900 && charCode <= 0xFAFF)\n || (charCode >= 0xFF01 && charCode <= 0xFF5E));\n}\n/**\n * A fast function (therefore imprecise) to check if code points are emojis.\n * Generated using https://github.com/alexdima/unicode-utils/blob/master/generate-emoji-test.js\n */\nexport function isEmojiImprecise(x) {\n return ((x >= 0x1F1E6 && x <= 0x1F1FF) || (x === 8986) || (x === 8987) || (x === 9200)\n || (x === 9203) || (x >= 9728 && x <= 10175) || (x === 11088) || (x === 11093)\n || (x >= 127744 && x <= 128591) || (x >= 128640 && x <= 128764)\n || (x >= 128992 && x <= 129003) || (x >= 129280 && x <= 129535)\n || (x >= 129648 && x <= 129750));\n}\n// -- UTF-8 BOM\nexport const UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* UTF8_BOM */);\nexport function startsWithUTF8BOM(str) {\n return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* UTF8_BOM */);\n}\nexport function containsUppercaseCharacter(target, ignoreEscapedChars = false) {\n if (!target) {\n return false;\n }\n if (ignoreEscapedChars) {\n target = target.replace(/\\\\./g, '');\n }\n return target.toLowerCase() !== target;\n}\n/**\n * Produces 'a'-'z', followed by 'A'-'Z'... followed by 'a'-'z', etc.\n */\nexport function singleLetterHash(n) {\n const LETTERS_CNT = (90 /* Z */ - 65 /* A */ + 1);\n n = n % (2 * LETTERS_CNT);\n if (n < LETTERS_CNT) {\n return String.fromCharCode(97 /* a */ + n);\n }\n return String.fromCharCode(65 /* A */ + n - LETTERS_CNT);\n}\n//#region Unicode Grapheme Break\nexport function getGraphemeBreakType(codePoint) {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n return graphemeBreakTree.getGraphemeBreakType(codePoint);\n}\nexport function breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {\n // http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules\n // !!! Let's make the common case a bit faster\n if (breakTypeA === 0 /* Other */) {\n // see https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest-13.0.0d10.html#table\n return (breakTypeB !== 5 /* Extend */ && breakTypeB !== 7 /* SpacingMark */);\n }\n // Do not break between a CR and LF. Otherwise, break before and after controls.\n // GB3 CR × LF\n // GB4 (Control | CR | LF) ÷\n // GB5 ÷ (Control | CR | LF)\n if (breakTypeA === 2 /* CR */) {\n if (breakTypeB === 3 /* LF */) {\n return false; // GB3\n }\n }\n if (breakTypeA === 4 /* Control */ || breakTypeA === 2 /* CR */ || breakTypeA === 3 /* LF */) {\n return true; // GB4\n }\n if (breakTypeB === 4 /* Control */ || breakTypeB === 2 /* CR */ || breakTypeB === 3 /* LF */) {\n return true; // GB5\n }\n // Do not break Hangul syllable sequences.\n // GB6 L × (L | V | LV | LVT)\n // GB7 (LV | V) × (V | T)\n // GB8 (LVT | T) × T\n if (breakTypeA === 8 /* L */) {\n if (breakTypeB === 8 /* L */ || breakTypeB === 9 /* V */ || breakTypeB === 11 /* LV */ || breakTypeB === 12 /* LVT */) {\n return false; // GB6\n }\n }\n if (breakTypeA === 11 /* LV */ || breakTypeA === 9 /* V */) {\n if (breakTypeB === 9 /* V */ || breakTypeB === 10 /* T */) {\n return false; // GB7\n }\n }\n if (breakTypeA === 12 /* LVT */ || breakTypeA === 10 /* T */) {\n if (breakTypeB === 10 /* T */) {\n return false; // GB8\n }\n }\n // Do not break before extending characters or ZWJ.\n // GB9 × (Extend | ZWJ)\n if (breakTypeB === 5 /* Extend */ || breakTypeB === 13 /* ZWJ */) {\n return false; // GB9\n }\n // The GB9a and GB9b rules only apply to extended grapheme clusters:\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a × SpacingMark\n // GB9b Prepend ×\n if (breakTypeB === 7 /* SpacingMark */) {\n return false; // GB9a\n }\n if (breakTypeA === 1 /* Prepend */) {\n return false; // GB9b\n }\n // Do not break within emoji modifier sequences or emoji zwj sequences.\n // GB11 \\p{Extended_Pictographic} Extend* ZWJ × \\p{Extended_Pictographic}\n if (breakTypeA === 13 /* ZWJ */ && breakTypeB === 14 /* Extended_Pictographic */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB11\n }\n // GB12 sot (RI RI)* RI × RI\n // GB13 [^RI] (RI RI)* RI × RI\n if (breakTypeA === 6 /* Regional_Indicator */ && breakTypeB === 6 /* Regional_Indicator */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB12 & GB13\n }\n // GB999 Any ÷ Any\n return true;\n}\nclass GraphemeBreakTree {\n constructor() {\n this._data = getGraphemeBreakRawData();\n }\n static getInstance() {\n if (!GraphemeBreakTree._INSTANCE) {\n GraphemeBreakTree._INSTANCE = new GraphemeBreakTree();\n }\n return GraphemeBreakTree._INSTANCE;\n }\n getGraphemeBreakType(codePoint) {\n // !!! Let's make 7bit ASCII a bit faster: 0..31\n if (codePoint < 32) {\n if (codePoint === 10 /* LineFeed */) {\n return 3 /* LF */;\n }\n if (codePoint === 13 /* CarriageReturn */) {\n return 2 /* CR */;\n }\n return 4 /* Control */;\n }\n // !!! Let's make 7bit ASCII a bit faster: 32..126\n if (codePoint < 127) {\n return 0 /* Other */;\n }\n const data = this._data;\n const nodeCount = data.length / 3;\n let nodeIndex = 1;\n while (nodeIndex <= nodeCount) {\n if (codePoint < data[3 * nodeIndex]) {\n // go left\n nodeIndex = 2 * nodeIndex;\n }\n else if (codePoint > data[3 * nodeIndex + 1]) {\n // go right\n nodeIndex = 2 * nodeIndex + 1;\n }\n else {\n // hit\n return data[3 * nodeIndex + 2];\n }\n }\n return 0 /* Other */;\n }\n}\nGraphemeBreakTree._INSTANCE = null;\nfunction getGraphemeBreakRawData() {\n // generated using https://github.com/alexdima/unicode-utils/blob/master/generate-grapheme-break.js\n return JSON.parse('[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2259,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6848,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9776,9783,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]');\n}\n//#endregion\n/**\n * Computes the offset after performing a left delete on the given string,\n * while considering unicode grapheme/emoji rules.\n*/\nexport function getLeftDeleteOffset(offset, str) {\n if (offset === 0) {\n return 0;\n }\n // Try to delete emoji part.\n const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);\n if (emojiOffset !== undefined) {\n return emojiOffset;\n }\n // Otherwise, just skip a single code point.\n const codePoint = getPrevCodePoint(str, offset);\n offset -= getUTF16Length(codePoint);\n return offset;\n}\nfunction getOffsetBeforeLastEmojiComponent(offset, str) {\n // See https://www.unicode.org/reports/tr51/tr51-14.html#EBNF_and_Regex for the\n // structure of emojis.\n let codePoint = getPrevCodePoint(str, offset);\n offset -= getUTF16Length(codePoint);\n // Skip modifiers\n while ((isEmojiModifier(codePoint) || codePoint === 65039 /* emojiVariantSelector */ || codePoint === 8419 /* enclosingKeyCap */)) {\n if (offset === 0) {\n // Cannot skip modifier, no preceding emoji base.\n return undefined;\n }\n codePoint = getPrevCodePoint(str, offset);\n offset -= getUTF16Length(codePoint);\n }\n // Expect base emoji\n if (!isEmojiImprecise(codePoint)) {\n // Unexpected code point, not a valid emoji.\n return undefined;\n }\n if (offset >= 0) {\n // Skip optional ZWJ code points that combine multiple emojis.\n // In theory, we should check if that ZWJ actually combines multiple emojis\n // to prevent deleting ZWJs in situations we didn't account for.\n const optionalZwjCodePoint = getPrevCodePoint(str, offset);\n if (optionalZwjCodePoint === 8205 /* zwj */) {\n offset -= getUTF16Length(optionalZwjCodePoint);\n }\n }\n return offset;\n}\nfunction getUTF16Length(codePoint) {\n return codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1;\n}\nfunction isEmojiModifier(codePoint) {\n return 0x1F3FB <= codePoint && codePoint <= 0x1F3FF;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isLinux, isMacintosh, isWeb, isWindows, userAgent } from '../../../base/common/platform.js';\nimport { isFalsyOrWhitespace } from '../../../base/common/strings.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nlet _userAgent = userAgent || '';\nconst CONSTANT_VALUES = new Map();\nCONSTANT_VALUES.set('false', false);\nCONSTANT_VALUES.set('true', true);\nCONSTANT_VALUES.set('isMac', isMacintosh);\nCONSTANT_VALUES.set('isLinux', isLinux);\nCONSTANT_VALUES.set('isWindows', isWindows);\nCONSTANT_VALUES.set('isWeb', isWeb);\nCONSTANT_VALUES.set('isMacNative', isMacintosh && !isWeb);\nCONSTANT_VALUES.set('isEdge', _userAgent.indexOf('Edg/') >= 0);\nCONSTANT_VALUES.set('isFirefox', _userAgent.indexOf('Firefox') >= 0);\nCONSTANT_VALUES.set('isChrome', _userAgent.indexOf('Chrome') >= 0);\nCONSTANT_VALUES.set('isSafari', _userAgent.indexOf('Safari') >= 0);\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport class ContextKeyExpr {\n static has(key) {\n return ContextKeyDefinedExpr.create(key);\n }\n static equals(key, value) {\n return ContextKeyEqualsExpr.create(key, value);\n }\n static regex(key, value) {\n return ContextKeyRegexExpr.create(key, value);\n }\n static not(key) {\n return ContextKeyNotExpr.create(key);\n }\n static and(...expr) {\n return ContextKeyAndExpr.create(expr, null);\n }\n static or(...expr) {\n return ContextKeyOrExpr.create(expr, null, true);\n }\n static deserialize(serialized, strict = false) {\n if (!serialized) {\n return undefined;\n }\n return this._deserializeOrExpression(serialized, strict);\n }\n static _deserializeOrExpression(serialized, strict) {\n let pieces = serialized.split('||');\n return ContextKeyOrExpr.create(pieces.map(p => this._deserializeAndExpression(p, strict)), null, true);\n }\n static _deserializeAndExpression(serialized, strict) {\n let pieces = serialized.split('&&');\n return ContextKeyAndExpr.create(pieces.map(p => this._deserializeOne(p, strict)), null);\n }\n static _deserializeOne(serializedOne, strict) {\n serializedOne = serializedOne.trim();\n if (serializedOne.indexOf('!=') >= 0) {\n let pieces = serializedOne.split('!=');\n return ContextKeyNotEqualsExpr.create(pieces[0].trim(), this._deserializeValue(pieces[1], strict));\n }\n if (serializedOne.indexOf('==') >= 0) {\n let pieces = serializedOne.split('==');\n return ContextKeyEqualsExpr.create(pieces[0].trim(), this._deserializeValue(pieces[1], strict));\n }\n if (serializedOne.indexOf('=~') >= 0) {\n let pieces = serializedOne.split('=~');\n return ContextKeyRegexExpr.create(pieces[0].trim(), this._deserializeRegexValue(pieces[1], strict));\n }\n if (serializedOne.indexOf(' in ') >= 0) {\n let pieces = serializedOne.split(' in ');\n return ContextKeyInExpr.create(pieces[0].trim(), pieces[1].trim());\n }\n if (/^[^<=>]+>=[^<=>]+$/.test(serializedOne)) {\n const pieces = serializedOne.split('>=');\n return ContextKeyGreaterEqualsExpr.create(pieces[0].trim(), pieces[1].trim());\n }\n if (/^[^<=>]+>[^<=>]+$/.test(serializedOne)) {\n const pieces = serializedOne.split('>');\n return ContextKeyGreaterExpr.create(pieces[0].trim(), pieces[1].trim());\n }\n if (/^[^<=>]+<=[^<=>]+$/.test(serializedOne)) {\n const pieces = serializedOne.split('<=');\n return ContextKeySmallerEqualsExpr.create(pieces[0].trim(), pieces[1].trim());\n }\n if (/^[^<=>]+<[^<=>]+$/.test(serializedOne)) {\n const pieces = serializedOne.split('<');\n return ContextKeySmallerExpr.create(pieces[0].trim(), pieces[1].trim());\n }\n if (/^\\!\\s*/.test(serializedOne)) {\n return ContextKeyNotExpr.create(serializedOne.substr(1).trim());\n }\n return ContextKeyDefinedExpr.create(serializedOne);\n }\n static _deserializeValue(serializedValue, strict) {\n serializedValue = serializedValue.trim();\n if (serializedValue === 'true') {\n return true;\n }\n if (serializedValue === 'false') {\n return false;\n }\n let m = /^'([^']*)'$/.exec(serializedValue);\n if (m) {\n return m[1].trim();\n }\n return serializedValue;\n }\n static _deserializeRegexValue(serializedValue, strict) {\n if (isFalsyOrWhitespace(serializedValue)) {\n if (strict) {\n throw new Error('missing regexp-value for =~-expression');\n }\n else {\n console.warn('missing regexp-value for =~-expression');\n }\n return null;\n }\n let start = serializedValue.indexOf('/');\n let end = serializedValue.lastIndexOf('/');\n if (start === end || start < 0 /* || to < 0 */) {\n if (strict) {\n throw new Error(`bad regexp-value '${serializedValue}', missing /-enclosure`);\n }\n else {\n console.warn(`bad regexp-value '${serializedValue}', missing /-enclosure`);\n }\n return null;\n }\n let value = serializedValue.slice(start + 1, end);\n let caseIgnoreFlag = serializedValue[end + 1] === 'i' ? 'i' : '';\n try {\n return new RegExp(value, caseIgnoreFlag);\n }\n catch (e) {\n if (strict) {\n throw new Error(`bad regexp-value '${serializedValue}', parse error: ${e}`);\n }\n else {\n console.warn(`bad regexp-value '${serializedValue}', parse error: ${e}`);\n }\n return null;\n }\n }\n}\nexport function expressionsAreEqualWithConstantSubstitution(a, b) {\n const aExpr = a ? a.substituteConstants() : undefined;\n const bExpr = b ? b.substituteConstants() : undefined;\n if (!aExpr && !bExpr) {\n return true;\n }\n if (!aExpr || !bExpr) {\n return false;\n }\n return aExpr.equals(bExpr);\n}\nfunction cmp(a, b) {\n return a.cmp(b);\n}\nexport class ContextKeyFalseExpr {\n constructor() {\n this.type = 0 /* False */;\n }\n cmp(other) {\n return this.type - other.type;\n }\n equals(other) {\n return (other.type === this.type);\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return false;\n }\n serialize() {\n return 'false';\n }\n keys() {\n return [];\n }\n negate() {\n return ContextKeyTrueExpr.INSTANCE;\n }\n}\nContextKeyFalseExpr.INSTANCE = new ContextKeyFalseExpr();\nexport class ContextKeyTrueExpr {\n constructor() {\n this.type = 1 /* True */;\n }\n cmp(other) {\n return this.type - other.type;\n }\n equals(other) {\n return (other.type === this.type);\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return true;\n }\n serialize() {\n return 'true';\n }\n keys() {\n return [];\n }\n negate() {\n return ContextKeyFalseExpr.INSTANCE;\n }\n}\nContextKeyTrueExpr.INSTANCE = new ContextKeyTrueExpr();\nexport class ContextKeyDefinedExpr {\n constructor(key, negated) {\n this.key = key;\n this.negated = negated;\n this.type = 2 /* Defined */;\n }\n static create(key, negated = null) {\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n }\n return new ContextKeyDefinedExpr(key, negated);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp1(this.key, other.key);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n }\n return this;\n }\n evaluate(context) {\n return (!!context.getValue(this.key));\n }\n serialize() {\n return this.key;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotExpr.create(this.key, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyEqualsExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 4 /* Equals */;\n }\n static create(key, value, negated = null) {\n if (typeof value === 'boolean') {\n return (value ? ContextKeyDefinedExpr.create(key, negated) : ContextKeyNotExpr.create(key, negated));\n }\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n const trueValue = constantValue ? 'true' : 'false';\n return (value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n }\n return new ContextKeyEqualsExpr(key, value, negated);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n const trueValue = constantValue ? 'true' : 'false';\n return (this.value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n // Intentional ==\n // eslint-disable-next-line eqeqeq\n return (context.getValue(this.key) == this.value);\n }\n serialize() {\n return `${this.key} == '${this.value}'`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyInExpr {\n constructor(key, valueKey) {\n this.key = key;\n this.valueKey = valueKey;\n this.type = 10 /* In */;\n this.negated = null;\n }\n static create(key, valueKey) {\n return new ContextKeyInExpr(key, valueKey);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.valueKey, other.key, other.valueKey);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.valueKey === other.valueKey);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n const source = context.getValue(this.valueKey);\n const item = context.getValue(this.key);\n if (Array.isArray(source)) {\n return (source.indexOf(item) >= 0);\n }\n if (typeof item === 'string' && typeof source === 'object' && source !== null) {\n return hasOwnProperty.call(source, item);\n }\n return false;\n }\n serialize() {\n return `${this.key} in '${this.valueKey}'`;\n }\n keys() {\n return [this.key, this.valueKey];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotInExpr.create(this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotInExpr {\n constructor(_actual) {\n this._actual = _actual;\n this.type = 11 /* NotIn */;\n //\n }\n static create(actual) {\n return new ContextKeyNotInExpr(actual);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return this._actual.cmp(other._actual);\n }\n equals(other) {\n if (other.type === this.type) {\n return this._actual.equals(other._actual);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return !this._actual.evaluate(context);\n }\n serialize() {\n throw new Error('Method not implemented.');\n }\n keys() {\n return this._actual.keys();\n }\n negate() {\n return this._actual;\n }\n}\nexport class ContextKeyNotEqualsExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 5 /* NotEquals */;\n }\n static create(key, value, negated = null) {\n if (typeof value === 'boolean') {\n if (value) {\n return ContextKeyNotExpr.create(key, negated);\n }\n return ContextKeyDefinedExpr.create(key, negated);\n }\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n const falseValue = constantValue ? 'true' : 'false';\n return (value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return new ContextKeyNotEqualsExpr(key, value, negated);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n const falseValue = constantValue ? 'true' : 'false';\n return (this.value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n // Intentional !=\n // eslint-disable-next-line eqeqeq\n return (context.getValue(this.key) != this.value);\n }\n serialize() {\n return `${this.key} != '${this.value}'`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotExpr {\n constructor(key, negated) {\n this.key = key;\n this.negated = negated;\n this.type = 3 /* Not */;\n }\n static create(key, negated = null) {\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return new ContextKeyNotExpr(key, negated);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp1(this.key, other.key);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n return (!context.getValue(this.key));\n }\n serialize() {\n return `!${this.key}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyDefinedExpr.create(this.key, this);\n }\n return this.negated;\n }\n}\nfunction withFloatOrStr(value, callback) {\n if (typeof value === 'string') {\n const n = parseFloat(value);\n if (!isNaN(n)) {\n value = n;\n }\n }\n if (typeof value === 'string' || typeof value === 'number') {\n return callback(value);\n }\n return ContextKeyFalseExpr.INSTANCE;\n}\nexport class ContextKeyGreaterExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 12 /* Greater */;\n }\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeyGreaterExpr(key, value, negated));\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) > this.value);\n }\n serialize() {\n return `${this.key} > ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeySmallerEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyGreaterEqualsExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 13 /* GreaterEquals */;\n }\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeyGreaterEqualsExpr(key, value, negated));\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) >= this.value);\n }\n serialize() {\n return `${this.key} >= ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeySmallerExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeySmallerExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 14 /* Smaller */;\n }\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeySmallerExpr(key, value, negated));\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) < this.value);\n }\n serialize() {\n return `${this.key} < ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyGreaterEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeySmallerEqualsExpr {\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 15 /* SmallerEquals */;\n }\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeySmallerEqualsExpr(key, value, negated));\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) <= this.value);\n }\n serialize() {\n return `${this.key} <= ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyGreaterExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyRegexExpr {\n constructor(key, regexp) {\n this.key = key;\n this.regexp = regexp;\n this.type = 7 /* Regex */;\n this.negated = null;\n //\n }\n static create(key, regexp) {\n return new ContextKeyRegexExpr(key, regexp);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.key < other.key) {\n return -1;\n }\n if (this.key > other.key) {\n return 1;\n }\n const thisSource = this.regexp ? this.regexp.source : '';\n const otherSource = other.regexp ? other.regexp.source : '';\n if (thisSource < otherSource) {\n return -1;\n }\n if (thisSource > otherSource) {\n return 1;\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n const thisSource = this.regexp ? this.regexp.source : '';\n const otherSource = other.regexp ? other.regexp.source : '';\n return (this.key === other.key && thisSource === otherSource);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n let value = context.getValue(this.key);\n return this.regexp ? this.regexp.test(value) : false;\n }\n serialize() {\n const value = this.regexp\n ? `/${this.regexp.source}/${this.regexp.ignoreCase ? 'i' : ''}`\n : '/invalid/';\n return `${this.key} =~ ${value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotRegexExpr.create(this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotRegexExpr {\n constructor(_actual) {\n this._actual = _actual;\n this.type = 8 /* NotRegex */;\n //\n }\n static create(actual) {\n return new ContextKeyNotRegexExpr(actual);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return this._actual.cmp(other._actual);\n }\n equals(other) {\n if (other.type === this.type) {\n return this._actual.equals(other._actual);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return !this._actual.evaluate(context);\n }\n serialize() {\n throw new Error('Method not implemented.');\n }\n keys() {\n return this._actual.keys();\n }\n negate() {\n return this._actual;\n }\n}\n/**\n * @returns the same instance if nothing changed.\n */\nfunction eliminateConstantsInArray(arr) {\n // Allocate array only if there is a difference\n let newArr = null;\n for (let i = 0, len = arr.length; i < len; i++) {\n const newExpr = arr[i].substituteConstants();\n if (arr[i] !== newExpr) {\n // something has changed!\n // allocate array on first difference\n if (newArr === null) {\n newArr = [];\n for (let j = 0; j < i; j++) {\n newArr[j] = arr[j];\n }\n }\n }\n if (newArr !== null) {\n newArr[i] = newExpr;\n }\n }\n if (newArr === null) {\n return arr;\n }\n return newArr;\n}\nclass ContextKeyAndExpr {\n constructor(expr, negated) {\n this.expr = expr;\n this.negated = negated;\n this.type = 6 /* And */;\n }\n static create(_expr, negated) {\n return ContextKeyAndExpr._normalizeArr(_expr, negated);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.expr.length < other.expr.length) {\n return -1;\n }\n if (this.expr.length > other.expr.length) {\n return 1;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n const r = cmp(this.expr[i], other.expr[i]);\n if (r !== 0) {\n return r;\n }\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n if (this.expr.length !== other.expr.length) {\n return false;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].equals(other.expr[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n substituteConstants() {\n const exprArr = eliminateConstantsInArray(this.expr);\n if (exprArr === this.expr) {\n // no change\n return this;\n }\n return ContextKeyAndExpr.create(exprArr, this.negated);\n }\n evaluate(context) {\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].evaluate(context)) {\n return false;\n }\n }\n return true;\n }\n static _normalizeArr(arr, negated) {\n const expr = [];\n let hasTrue = false;\n for (const e of arr) {\n if (!e) {\n continue;\n }\n if (e.type === 1 /* True */) {\n // anything && true ==> anything\n hasTrue = true;\n continue;\n }\n if (e.type === 0 /* False */) {\n // anything && false ==> false\n return ContextKeyFalseExpr.INSTANCE;\n }\n if (e.type === 6 /* And */) {\n expr.push(...e.expr);\n continue;\n }\n expr.push(e);\n }\n if (expr.length === 0 && hasTrue) {\n return ContextKeyTrueExpr.INSTANCE;\n }\n if (expr.length === 0) {\n return undefined;\n }\n if (expr.length === 1) {\n return expr[0];\n }\n expr.sort(cmp);\n // eliminate duplicate terms\n for (let i = 1; i < expr.length; i++) {\n if (expr[i - 1].equals(expr[i])) {\n expr.splice(i, 1);\n i--;\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // We must distribute any OR expression because we don't support parens\n // OR extensions will be at the end (due to sorting rules)\n while (expr.length > 1) {\n const lastElement = expr[expr.length - 1];\n if (lastElement.type !== 9 /* Or */) {\n break;\n }\n // pop the last element\n expr.pop();\n // pop the second to last element\n const secondToLastElement = expr.pop();\n const isFinished = (expr.length === 0);\n // distribute `lastElement` over `secondToLastElement`\n const resultElement = ContextKeyOrExpr.create(lastElement.expr.map(el => ContextKeyAndExpr.create([el, secondToLastElement], null)), null, isFinished);\n if (resultElement) {\n expr.push(resultElement);\n expr.sort(cmp);\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n return new ContextKeyAndExpr(expr, negated);\n }\n serialize() {\n return this.expr.map(e => e.serialize()).join(' && ');\n }\n keys() {\n const result = [];\n for (let expr of this.expr) {\n result.push(...expr.keys());\n }\n return result;\n }\n negate() {\n if (!this.negated) {\n const result = [];\n for (let expr of this.expr) {\n result.push(expr.negate());\n }\n this.negated = ContextKeyOrExpr.create(result, this, true);\n }\n return this.negated;\n }\n}\nclass ContextKeyOrExpr {\n constructor(expr, negated) {\n this.expr = expr;\n this.negated = negated;\n this.type = 9 /* Or */;\n }\n static create(_expr, negated, extraRedundantCheck) {\n return ContextKeyOrExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.expr.length < other.expr.length) {\n return -1;\n }\n if (this.expr.length > other.expr.length) {\n return 1;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n const r = cmp(this.expr[i], other.expr[i]);\n if (r !== 0) {\n return r;\n }\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n if (this.expr.length !== other.expr.length) {\n return false;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].equals(other.expr[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n substituteConstants() {\n const exprArr = eliminateConstantsInArray(this.expr);\n if (exprArr === this.expr) {\n // no change\n return this;\n }\n return ContextKeyOrExpr.create(exprArr, this.negated, false);\n }\n evaluate(context) {\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (this.expr[i].evaluate(context)) {\n return true;\n }\n }\n return false;\n }\n static _normalizeArr(arr, negated, extraRedundantCheck) {\n let expr = [];\n let hasFalse = false;\n if (arr) {\n for (let i = 0, len = arr.length; i < len; i++) {\n const e = arr[i];\n if (!e) {\n continue;\n }\n if (e.type === 0 /* False */) {\n // anything || false ==> anything\n hasFalse = true;\n continue;\n }\n if (e.type === 1 /* True */) {\n // anything || true ==> true\n return ContextKeyTrueExpr.INSTANCE;\n }\n if (e.type === 9 /* Or */) {\n expr = expr.concat(e.expr);\n continue;\n }\n expr.push(e);\n }\n if (expr.length === 0 && hasFalse) {\n return ContextKeyFalseExpr.INSTANCE;\n }\n expr.sort(cmp);\n }\n if (expr.length === 0) {\n return undefined;\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // eliminate duplicate terms\n for (let i = 1; i < expr.length; i++) {\n if (expr[i - 1].equals(expr[i])) {\n expr.splice(i, 1);\n i--;\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // eliminate redundant terms\n if (extraRedundantCheck) {\n for (let i = 0; i < expr.length; i++) {\n for (let j = i + 1; j < expr.length; j++) {\n if (implies(expr[i], expr[j])) {\n expr.splice(j, 1);\n j--;\n }\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n }\n return new ContextKeyOrExpr(expr, negated);\n }\n serialize() {\n return this.expr.map(e => e.serialize()).join(' || ');\n }\n keys() {\n const result = [];\n for (let expr of this.expr) {\n result.push(...expr.keys());\n }\n return result;\n }\n negate() {\n if (!this.negated) {\n let result = [];\n for (let expr of this.expr) {\n result.push(expr.negate());\n }\n // We don't support parens, so here we distribute the AND over the OR terminals\n // We always take the first 2 AND pairs and distribute them\n while (result.length > 1) {\n const LEFT = result.shift();\n const RIGHT = result.shift();\n const all = [];\n for (const left of getTerminals(LEFT)) {\n for (const right of getTerminals(RIGHT)) {\n all.push(ContextKeyAndExpr.create([left, right], null));\n }\n }\n const isFinished = (result.length === 0);\n result.unshift(ContextKeyOrExpr.create(all, null, isFinished));\n }\n this.negated = result[0];\n }\n return this.negated;\n }\n}\nexport class RawContextKey extends ContextKeyDefinedExpr {\n constructor(key, defaultValue, metaOrHide) {\n super(key, null);\n this._defaultValue = defaultValue;\n // collect all context keys into a central place\n if (typeof metaOrHide === 'object') {\n RawContextKey._info.push(Object.assign(Object.assign({}, metaOrHide), { key }));\n }\n else if (metaOrHide !== true) {\n RawContextKey._info.push({ key, description: metaOrHide, type: defaultValue !== null && defaultValue !== undefined ? typeof defaultValue : undefined });\n }\n }\n static all() {\n return RawContextKey._info.values();\n }\n bindTo(target) {\n return target.createKey(this.key, this._defaultValue);\n }\n getValue(target) {\n return target.getContextKeyValue(this.key);\n }\n toNegated() {\n return this.negate();\n }\n isEqualTo(value) {\n return ContextKeyEqualsExpr.create(this.key, value);\n }\n}\nRawContextKey._info = [];\nexport const IContextKeyService = createDecorator('contextKeyService');\nexport const SET_CONTEXT_COMMAND_ID = 'setContext';\nfunction cmp1(key1, key2) {\n if (key1 < key2) {\n return -1;\n }\n if (key1 > key2) {\n return 1;\n }\n return 0;\n}\nfunction cmp2(key1, value1, key2, value2) {\n if (key1 < key2) {\n return -1;\n }\n if (key1 > key2) {\n return 1;\n }\n if (value1 < value2) {\n return -1;\n }\n if (value1 > value2) {\n return 1;\n }\n return 0;\n}\n/**\n * Returns true if it is provable `p` implies `q`.\n */\nexport function implies(p, q) {\n if (q.type === 6 /* And */ && (p.type !== 9 /* Or */ && p.type !== 6 /* And */)) {\n // covers the case: A implies A && B\n for (const qTerm of q.expr) {\n if (p.equals(qTerm)) {\n return true;\n }\n }\n }\n const notP = p.negate();\n const expr = getTerminals(notP).concat(getTerminals(q));\n expr.sort(cmp);\n for (let i = 0; i < expr.length; i++) {\n const a = expr[i];\n const notA = a.negate();\n for (let j = i + 1; j < expr.length; j++) {\n const b = expr[j];\n if (notA.equals(b)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction getTerminals(node) {\n if (node.type === 9 /* Or */) {\n return node.expr;\n }\n return [node];\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import superPropBase from \"@babel/runtime/helpers/esm/superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { URI } from '../../base/common/uri.js';\nimport { Range } from './core/range.js';\nimport { LanguageFeatureRegistry } from './modes/languageFeatureRegistry.js';\nimport { TokenizationRegistryImpl } from './modes/tokenizationRegistry.js';\nimport { iconRegistry, Codicon } from '../../base/common/codicons.js';\n/**\n * @internal\n */\nexport class TokenMetadata {\n static getLanguageId(metadata) {\n return (metadata & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(metadata) {\n return (metadata & 1792 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static getFontStyle(metadata) {\n return (metadata & 14336 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(metadata) {\n return (metadata & 8372224 /* FOREGROUND_MASK */) >>> 14 /* FOREGROUND_OFFSET */;\n }\n static getBackground(metadata) {\n return (metadata & 4286578688 /* BACKGROUND_MASK */) >>> 23 /* BACKGROUND_OFFSET */;\n }\n static getClassNameFromMetadata(metadata) {\n let foreground = this.getForeground(metadata);\n let className = 'mtk' + foreground;\n let fontStyle = this.getFontStyle(metadata);\n if (fontStyle & 1 /* Italic */) {\n className += ' mtki';\n }\n if (fontStyle & 2 /* Bold */) {\n className += ' mtkb';\n }\n if (fontStyle & 4 /* Underline */) {\n className += ' mtku';\n }\n return className;\n }\n static getInlineStyleFromMetadata(metadata, colorMap) {\n const foreground = this.getForeground(metadata);\n const fontStyle = this.getFontStyle(metadata);\n let result = `color: ${colorMap[foreground]};`;\n if (fontStyle & 1 /* Italic */) {\n result += 'font-style: italic;';\n }\n if (fontStyle & 2 /* Bold */) {\n result += 'font-weight: bold;';\n }\n if (fontStyle & 4 /* Underline */) {\n result += 'text-decoration: underline;';\n }\n return result;\n }\n}\n/**\n * @internal\n */\nexport const completionKindToCssClass = (function () {\n let data = Object.create(null);\n data[0 /* Method */] = 'symbol-method';\n data[1 /* Function */] = 'symbol-function';\n data[2 /* Constructor */] = 'symbol-constructor';\n data[3 /* Field */] = 'symbol-field';\n data[4 /* Variable */] = 'symbol-variable';\n data[5 /* Class */] = 'symbol-class';\n data[6 /* Struct */] = 'symbol-struct';\n data[7 /* Interface */] = 'symbol-interface';\n data[8 /* Module */] = 'symbol-module';\n data[9 /* Property */] = 'symbol-property';\n data[10 /* Event */] = 'symbol-event';\n data[11 /* Operator */] = 'symbol-operator';\n data[12 /* Unit */] = 'symbol-unit';\n data[13 /* Value */] = 'symbol-value';\n data[14 /* Constant */] = 'symbol-constant';\n data[15 /* Enum */] = 'symbol-enum';\n data[16 /* EnumMember */] = 'symbol-enum-member';\n data[17 /* Keyword */] = 'symbol-keyword';\n data[27 /* Snippet */] = 'symbol-snippet';\n data[18 /* Text */] = 'symbol-text';\n data[19 /* Color */] = 'symbol-color';\n data[20 /* File */] = 'symbol-file';\n data[21 /* Reference */] = 'symbol-reference';\n data[22 /* Customcolor */] = 'symbol-customcolor';\n data[23 /* Folder */] = 'symbol-folder';\n data[24 /* TypeParameter */] = 'symbol-type-parameter';\n data[25 /* User */] = 'account';\n data[26 /* Issue */] = 'issues';\n return function (kind) {\n const name = data[kind];\n let codicon = name && iconRegistry.get(name);\n if (!codicon) {\n console.info('No codicon found for CompletionItemKind ' + kind);\n codicon = Codicon.symbolProperty;\n }\n return codicon.classNames;\n };\n})();\n/**\n * @internal\n */\nexport let completionKindFromString = (function () {\n let data = Object.create(null);\n data['method'] = 0 /* Method */;\n data['function'] = 1 /* Function */;\n data['constructor'] = 2 /* Constructor */;\n data['field'] = 3 /* Field */;\n data['variable'] = 4 /* Variable */;\n data['class'] = 5 /* Class */;\n data['struct'] = 6 /* Struct */;\n data['interface'] = 7 /* Interface */;\n data['module'] = 8 /* Module */;\n data['property'] = 9 /* Property */;\n data['event'] = 10 /* Event */;\n data['operator'] = 11 /* Operator */;\n data['unit'] = 12 /* Unit */;\n data['value'] = 13 /* Value */;\n data['constant'] = 14 /* Constant */;\n data['enum'] = 15 /* Enum */;\n data['enum-member'] = 16 /* EnumMember */;\n data['enumMember'] = 16 /* EnumMember */;\n data['keyword'] = 17 /* Keyword */;\n data['snippet'] = 27 /* Snippet */;\n data['text'] = 18 /* Text */;\n data['color'] = 19 /* Color */;\n data['file'] = 20 /* File */;\n data['reference'] = 21 /* Reference */;\n data['customcolor'] = 22 /* Customcolor */;\n data['folder'] = 23 /* Folder */;\n data['type-parameter'] = 24 /* TypeParameter */;\n data['typeParameter'] = 24 /* TypeParameter */;\n data['account'] = 25 /* User */;\n data['issue'] = 26 /* Issue */;\n return function (value, strict) {\n let res = data[value];\n if (typeof res === 'undefined' && !strict) {\n res = 9 /* Property */;\n }\n return res;\n };\n})();\n/**\n * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered automatically while editing.\n * It is sufficient to return a single completion item in this case.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n /**\n * Completion was triggered explicitly by a user gesture.\n * Return multiple completion items to enable cycling through them.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"Invoke\"] = 1] = \"Invoke\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Text\"] = 0] = \"Text\";\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Read\"] = 1] = \"Read\";\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * @internal\n */\nexport function isLocationLink(thing) {\n return thing\n && URI.isUri(thing.uri)\n && Range.isIRange(thing.range)\n && (Range.isIRange(thing.originSelectionRange) || Range.isIRange(thing.targetSelectionRange));\n}\n/**\n * @internal\n */\nexport var SymbolKinds;\n(function (SymbolKinds) {\n const byName = new Map();\n byName.set('file', 0 /* File */);\n byName.set('module', 1 /* Module */);\n byName.set('namespace', 2 /* Namespace */);\n byName.set('package', 3 /* Package */);\n byName.set('class', 4 /* Class */);\n byName.set('method', 5 /* Method */);\n byName.set('property', 6 /* Property */);\n byName.set('field', 7 /* Field */);\n byName.set('constructor', 8 /* Constructor */);\n byName.set('enum', 9 /* Enum */);\n byName.set('interface', 10 /* Interface */);\n byName.set('function', 11 /* Function */);\n byName.set('variable', 12 /* Variable */);\n byName.set('constant', 13 /* Constant */);\n byName.set('string', 14 /* String */);\n byName.set('number', 15 /* Number */);\n byName.set('boolean', 16 /* Boolean */);\n byName.set('array', 17 /* Array */);\n byName.set('object', 18 /* Object */);\n byName.set('key', 19 /* Key */);\n byName.set('null', 20 /* Null */);\n byName.set('enum-member', 21 /* EnumMember */);\n byName.set('struct', 22 /* Struct */);\n byName.set('event', 23 /* Event */);\n byName.set('operator', 24 /* Operator */);\n byName.set('type-parameter', 25 /* TypeParameter */);\n const byKind = new Map();\n byKind.set(0 /* File */, 'file');\n byKind.set(1 /* Module */, 'module');\n byKind.set(2 /* Namespace */, 'namespace');\n byKind.set(3 /* Package */, 'package');\n byKind.set(4 /* Class */, 'class');\n byKind.set(5 /* Method */, 'method');\n byKind.set(6 /* Property */, 'property');\n byKind.set(7 /* Field */, 'field');\n byKind.set(8 /* Constructor */, 'constructor');\n byKind.set(9 /* Enum */, 'enum');\n byKind.set(10 /* Interface */, 'interface');\n byKind.set(11 /* Function */, 'function');\n byKind.set(12 /* Variable */, 'variable');\n byKind.set(13 /* Constant */, 'constant');\n byKind.set(14 /* String */, 'string');\n byKind.set(15 /* Number */, 'number');\n byKind.set(16 /* Boolean */, 'boolean');\n byKind.set(17 /* Array */, 'array');\n byKind.set(18 /* Object */, 'object');\n byKind.set(19 /* Key */, 'key');\n byKind.set(20 /* Null */, 'null');\n byKind.set(21 /* EnumMember */, 'enum-member');\n byKind.set(22 /* Struct */, 'struct');\n byKind.set(23 /* Event */, 'event');\n byKind.set(24 /* Operator */, 'operator');\n byKind.set(25 /* TypeParameter */, 'type-parameter');\n /**\n * @internal\n */\n function fromString(value) {\n return byName.get(value);\n }\n SymbolKinds.fromString = fromString;\n /**\n * @internal\n */\n function toString(kind) {\n return byKind.get(kind);\n }\n SymbolKinds.toString = toString;\n /**\n * @internal\n */\n function toCssClassName(kind, inline) {\n const symbolName = byKind.get(kind);\n let codicon = symbolName && iconRegistry.get('symbol-' + symbolName);\n if (!codicon) {\n console.info('No codicon found for SymbolKind ' + kind);\n codicon = Codicon.symbolProperty;\n }\n return `${inline ? 'inline' : 'block'} ${codicon.classNames}`;\n }\n SymbolKinds.toCssClassName = toCssClassName;\n})(SymbolKinds || (SymbolKinds = {}));\nexport class FoldingRangeKind {\n /**\n * Creates a new {@link FoldingRangeKind}.\n *\n * @param value of the kind.\n */\n constructor(value) {\n this.value = value;\n }\n}\n/**\n * Kind for folding range representing a comment. The value of the kind is 'comment'.\n */\nFoldingRangeKind.Comment = new FoldingRangeKind('comment');\n/**\n * Kind for folding range representing a import. The value of the kind is 'imports'.\n */\nFoldingRangeKind.Imports = new FoldingRangeKind('imports');\n/**\n * Kind for folding range representing regions (for example marked by `#region`, `#endregion`).\n * The value of the kind is 'region'.\n */\nFoldingRangeKind.Region = new FoldingRangeKind('region');\nexport var InlayHintKind;\n(function (InlayHintKind) {\n InlayHintKind[InlayHintKind[\"Other\"] = 0] = \"Other\";\n InlayHintKind[InlayHintKind[\"Type\"] = 1] = \"Type\";\n InlayHintKind[InlayHintKind[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind || (InlayHintKind = {}));\n// --- feature registries ------\n/**\n * @internal\n */\nexport const ReferenceProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const RenameProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const CompletionProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const InlineCompletionsProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const SignatureHelpProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const HoverProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentSymbolProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentHighlightProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const LinkedEditingRangeProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DefinitionProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DeclarationProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const ImplementationProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const TypeDefinitionProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const CodeLensProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const InlayHintsProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const CodeActionProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentFormattingEditProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentRangeFormattingEditProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const OnTypeFormattingEditProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const LinkProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const ColorProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const SelectionRangeRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const FoldingRangeProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentSemanticTokensProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const DocumentRangeSemanticTokensProviderRegistry = new LanguageFeatureRegistry();\n/**\n * @internal\n */\nexport const TokenizationRegistry = new TokenizationRegistryImpl();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nexport class TokenizationRegistryImpl {\n constructor() {\n this._map = new Map();\n this._promises = new Map();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._colorMap = null;\n }\n fire(languages) {\n this._onDidChange.fire({\n changedLanguages: languages,\n changedColorMap: false\n });\n }\n register(language, support) {\n this._map.set(language, support);\n this.fire([language]);\n return toDisposable(() => {\n if (this._map.get(language) !== support) {\n return;\n }\n this._map.delete(language);\n this.fire([language]);\n });\n }\n registerPromise(language, supportPromise) {\n let registration = null;\n let isDisposed = false;\n this._promises.set(language, supportPromise.then(support => {\n this._promises.delete(language);\n if (isDisposed || !support) {\n return;\n }\n registration = this.register(language, support);\n }));\n return toDisposable(() => {\n isDisposed = true;\n if (registration) {\n registration.dispose();\n }\n });\n }\n getPromise(language) {\n const support = this.get(language);\n if (support) {\n return Promise.resolve(support);\n }\n const promise = this._promises.get(language);\n if (promise) {\n return promise.then(_ => this.get(language));\n }\n return null;\n }\n get(language) {\n return (this._map.get(language) || null);\n }\n setColorMap(colorMap) {\n this._colorMap = colorMap;\n this._onDidChange.fire({\n changedLanguages: Array.from(this._map.keys()),\n changedColorMap: true\n });\n }\n getColorMap() {\n return this._colorMap;\n }\n getDefaultBackground() {\n if (this._colorMap && this._colorMap.length > 2 /* DefaultBackground */) {\n return this._colorMap[2 /* DefaultBackground */];\n }\n return null;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A position in the editor.\n */\nexport class Position {\n constructor(lineNumber, column) {\n this.lineNumber = lineNumber;\n this.column = column;\n }\n /**\n * Create a new position from this position.\n *\n * @param newLineNumber new line number\n * @param newColumn new column\n */\n with(newLineNumber = this.lineNumber, newColumn = this.column) {\n if (newLineNumber === this.lineNumber && newColumn === this.column) {\n return this;\n }\n else {\n return new Position(newLineNumber, newColumn);\n }\n }\n /**\n * Derive a new position from this position.\n *\n * @param deltaLineNumber line number delta\n * @param deltaColumn column delta\n */\n delta(deltaLineNumber = 0, deltaColumn = 0) {\n return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn);\n }\n /**\n * Test if this position equals other position\n */\n equals(other) {\n return Position.equals(this, other);\n }\n /**\n * Test if position `a` equals position `b`\n */\n static equals(a, b) {\n if (!a && !b) {\n return true;\n }\n return (!!a &&\n !!b &&\n a.lineNumber === b.lineNumber &&\n a.column === b.column);\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be false.\n */\n isBefore(other) {\n return Position.isBefore(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be false.\n */\n static isBefore(a, b) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column < b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be true.\n */\n isBeforeOrEqual(other) {\n return Position.isBeforeOrEqual(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be true.\n */\n static isBeforeOrEqual(a, b) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column <= b.column;\n }\n /**\n * A function that compares positions, useful for sorting\n */\n static compare(a, b) {\n let aLineNumber = a.lineNumber | 0;\n let bLineNumber = b.lineNumber | 0;\n if (aLineNumber === bLineNumber) {\n let aColumn = a.column | 0;\n let bColumn = b.column | 0;\n return aColumn - bColumn;\n }\n return aLineNumber - bLineNumber;\n }\n /**\n * Clone this position.\n */\n clone() {\n return new Position(this.lineNumber, this.column);\n }\n /**\n * Convert to a human-readable representation.\n */\n toString() {\n return '(' + this.lineNumber + ',' + this.column + ')';\n }\n // ---\n /**\n * Create a `Position` from an `IPosition`.\n */\n static lift(pos) {\n return new Position(pos.lineNumber, pos.column);\n }\n /**\n * Test if `obj` is an `IPosition`.\n */\n static isIPosition(obj) {\n return (obj\n && (typeof obj.lineNumber === 'number')\n && (typeof obj.column === 'number'));\n }\n}\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { IKeyframes } from './IKeyframes';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline: IKeyframes): string {\n const stylesheet = Stylesheet.getInstance();\n const rulesArray: string[] = [];\n\n for (const prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n const rules = rulesArray.join('');\n\n const className = stylesheet.classNameFromKey(rules);\n\n if (className) {\n return className;\n }\n\n const name = stylesheet.getClassName();\n stylesheet.insertRule(`@keyframes ${name}{${rules}}`, true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n\n return name;\n}\n","import { keyframes } from '@fluentui/merge-styles';\nimport type { IAnimationStyles, IAnimationVariables } from '../types/IAnimationStyles';\nimport type { IRawStyle } from '@fluentui/merge-styles';\n\n/* Register the keyframes */\n\nconst EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nconst EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nconst DURATION_1 = '0.167s';\nconst DURATION_2 = '0.267s';\nconst DURATION_3 = '0.367s';\nconst DURATION_4 = '0.467s';\n\nconst FADE_IN: string = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\n\nconst FADE_OUT: string = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\n\nconst SLIDE_RIGHT_IN10: string = _createSlideInX(-10);\nconst SLIDE_RIGHT_IN20: string = _createSlideInX(-20);\nconst SLIDE_RIGHT_IN40: string = _createSlideInX(-40);\nconst SLIDE_RIGHT_IN400: string = _createSlideInX(-400);\nconst SLIDE_LEFT_IN10: string = _createSlideInX(10);\nconst SLIDE_LEFT_IN20: string = _createSlideInX(20);\nconst SLIDE_LEFT_IN40: string = _createSlideInX(40);\nconst SLIDE_LEFT_IN400: string = _createSlideInX(400);\nconst SLIDE_UP_IN10: string = _createSlideInY(10);\nconst SLIDE_UP_IN20: string = _createSlideInY(20);\nconst SLIDE_DOWN_IN10: string = _createSlideInY(-10);\nconst SLIDE_DOWN_IN20: string = _createSlideInY(-20);\n\nconst SLIDE_RIGHT_OUT10: string = _createSlideOutX(10);\nconst SLIDE_RIGHT_OUT20: string = _createSlideOutX(20);\nconst SLIDE_RIGHT_OUT40: string = _createSlideOutX(40);\nconst SLIDE_RIGHT_OUT400: string = _createSlideOutX(400);\nconst SLIDE_LEFT_OUT10: string = _createSlideOutX(-10);\nconst SLIDE_LEFT_OUT20: string = _createSlideOutX(-20);\nconst SLIDE_LEFT_OUT40: string = _createSlideOutX(-40);\nconst SLIDE_LEFT_OUT400: string = _createSlideOutX(-400);\nconst SLIDE_UP_OUT10: string = _createSlideOutY(-10);\nconst SLIDE_UP_OUT20: string = _createSlideOutY(-20);\nconst SLIDE_DOWN_OUT10: string = _createSlideOutY(10);\nconst SLIDE_DOWN_OUT20: string = _createSlideOutY(20);\n\nconst SCALE_UP100: string = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_DOWN98: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\n\nconst SCALE_DOWN100: string = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\n\nconst SCALE_UP103: string = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\n\nconst ROTATE90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\n\nconst ROTATE_N90: string = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport const AnimationVariables: IAnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport const AnimationStyles: IAnimationStyles = {\n slideRightIn10: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(`${FADE_IN},${SLIDE_RIGHT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(`${FADE_IN},${SLIDE_LEFT_IN400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(`${FADE_IN},${SLIDE_UP_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(`${FADE_IN},${SLIDE_UP_IN20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(`${FADE_IN},${SLIDE_DOWN_IN20}`, DURATION_3, EASING_FUNCTION_1),\n\n slideRightOut10: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(`${FADE_OUT},${SLIDE_RIGHT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT40}`, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(`${FADE_OUT},${SLIDE_LEFT_OUT400}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(`${FADE_OUT},${SLIDE_UP_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT10}`, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(`${FADE_OUT},${SLIDE_DOWN_OUT20}`, DURATION_3, EASING_FUNCTION_1),\n\n scaleUpIn100: _createAnimation(`${FADE_IN},${SCALE_UP100}`, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(`${FADE_IN},${SCALE_DOWN100}`, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(`${FADE_OUT},${SCALE_UP103}`, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(`${FADE_OUT},${SCALE_DOWN98}`, DURATION_1, EASING_FUNCTION_2),\n\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n\n // expandCollapse 100/200/400, delay 100/200\n};\n\nfunction _createAnimation(\n animationName: string,\n animationDuration: string,\n animationTimingFunction: string,\n): IRawStyle {\n return {\n animationName,\n animationDuration,\n animationTimingFunction,\n animationFillMode: 'both',\n };\n}\n\nfunction _createSlideInX(fromX: number): string {\n return keyframes({\n from: { transform: `translate3d(${fromX}px,0,0)`, pointerEvents: 'none' },\n to: { transform: `translate3d(0,0,0)`, pointerEvents: 'auto' },\n });\n}\n\nfunction _createSlideInY(fromY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,${fromY}px,0)`, pointerEvents: 'none' },\n to: { transform: `translate3d(0,0,0)`, pointerEvents: 'auto' },\n });\n}\n\nfunction _createSlideOutX(toX: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(${toX}px,0,0)` },\n });\n}\n\nfunction _createSlideOutY(toY: number): string {\n return keyframes({\n from: { transform: `translate3d(0,0,0)` },\n to: { transform: `translate3d(0,${toY}px,0)` },\n });\n}\n","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\nimport type { IAnimationStyles } from '../interfaces/index';\n\n/**\n * {@docCategory AnimationClassNames}\n */\nexport const AnimationClassNames: { [key in keyof IAnimationStyles]?: string } = buildClassMap(AnimationStyles);\n","import type { IFontWeight } from '@fluentui/merge-styles';\n\n// Font face names to be registered.\nexport namespace LocalizedFontNames {\n export const Arabic = 'Segoe UI Web (Arabic)';\n export const Cyrillic = 'Segoe UI Web (Cyrillic)';\n export const EastEuropean = 'Segoe UI Web (East European)';\n export const Greek = 'Segoe UI Web (Greek)';\n export const Hebrew = 'Segoe UI Web (Hebrew)';\n export const Thai = 'Leelawadee UI Web';\n export const Vietnamese = 'Segoe UI Web (Vietnamese)';\n export const WestEuropean = 'Segoe UI Web (West European)';\n export const Selawik = 'Selawik Web';\n export const Armenian = 'Segoe UI Web (Armenian)';\n export const Georgian = 'Segoe UI Web (Georgian)';\n}\n\n// Font families with fallbacks, for the general regions.\nexport namespace LocalizedFontFamilies {\n export const Arabic = `'${LocalizedFontNames.Arabic}'`;\n export const ChineseSimplified = `'Microsoft Yahei UI', Verdana, Simsun`;\n export const ChineseTraditional = `'Microsoft Jhenghei UI', Pmingliu`;\n export const Cyrillic = `'${LocalizedFontNames.Cyrillic}'`;\n export const EastEuropean = `'${LocalizedFontNames.EastEuropean}'`;\n export const Greek = `'${LocalizedFontNames.Greek}'`;\n export const Hebrew = `'${LocalizedFontNames.Hebrew}'`;\n export const Hindi = `'Nirmala UI'`;\n export const Japanese = `'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka`;\n export const Korean = `'Malgun Gothic', Gulim`;\n export const Selawik = `'${LocalizedFontNames.Selawik}'`;\n export const Thai = `'Leelawadee UI Web', 'Kmer UI'`;\n export const Vietnamese = `'${LocalizedFontNames.Vietnamese}'`;\n export const WestEuropean = `'${LocalizedFontNames.WestEuropean}'`;\n export const Armenian = `'${LocalizedFontNames.Armenian}'`;\n export const Georgian = `'${LocalizedFontNames.Georgian}'`;\n}\n\n// Standard font sizes.\nexport namespace FontSizes {\n export const size10 = '10px';\n export const size12 = '12px';\n export const size14 = '14px';\n export const size16 = '16px';\n export const size18 = '18px';\n export const size20 = '20px';\n export const size24 = '24px';\n export const size28 = '28px';\n export const size32 = '32px';\n export const size42 = '42px';\n export const size68 = '68px';\n\n export const mini: string = '10px';\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const smallPlus: string = '12px';\n export const medium: string = '14px';\n export const mediumPlus: string = '16px';\n export const icon: string = '16px';\n export const large: string = '18px';\n export const xLarge: string = '20px';\n export const xLargePlus: string = '24px';\n export const xxLarge: string = '28px';\n export const xxLargePlus: string = '32px';\n export const superLarge: string = '42px';\n export const mega: string = '68px';\n}\n\n// Standard font weights.\nexport namespace FontWeights {\n export const light: IFontWeight = 100;\n export const semilight: IFontWeight = 300;\n export const regular: IFontWeight = 400;\n export const semibold: IFontWeight = 600;\n export const bold: IFontWeight = 700;\n}\n\n// Standard Icon Sizes.\nexport namespace IconFontSizes {\n export const xSmall: string = '10px';\n export const small: string = '12px';\n export const medium: string = '16px';\n export const large: string = '20px';\n}\n","import { mergeStyles } from '../MergeStyles';\n\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles: T): { [key in keyof T]?: string } {\n let classes: { [key in keyof T]?: string } = {};\n\n for (let styleName in styles) {\n if (styles.hasOwnProperty(styleName)) {\n let className: string;\n\n Object.defineProperty(classes, styleName, {\n get: (): string => {\n if (className === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className = mergeStyles(styles[styleName] as any).toString();\n }\n return className;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n return classes;\n}\n","import { IRawStyle } from '../MergeStyles';\n\nexport const HighContrastSelector = '@media screen and (-ms-high-contrast: active), (forced-colors: active)';\nexport const HighContrastSelectorWhite =\n '@media screen and (-ms-high-contrast: black-on-white), (forced-colors: black-on-white)';\nexport const HighContrastSelectorBlack =\n '@media screen and (-ms-high-contrast: white-on-black), (forced-colors: white-on-black)';\nexport const EdgeChromiumHighContrastSelector = '@media screen and (forced-colors: active)';\n\nexport const ScreenWidthMinSmall = 320;\nexport const ScreenWidthMinMedium = 480;\nexport const ScreenWidthMinLarge = 640;\nexport const ScreenWidthMinXLarge = 1024;\nexport const ScreenWidthMinXXLarge = 1366;\nexport const ScreenWidthMinXXXLarge = 1920;\nexport const ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport const ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport const ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport const ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport const ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\n\nexport const ScreenWidthMinUhfMobile = 768;\n\nexport function getScreenSelector(min: number | undefined, max: number | undefined): string {\n const minSelector = typeof min === 'number' ? ` and (min-width: ${min}px)` : '';\n const maxSelector = typeof max === 'number' ? ` and (max-width: ${max}px)` : '';\n return `@media only screen${minSelector}${maxSelector}`;\n}\n\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle(): IRawStyle {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\nexport function getEdgeChromiumNoHighContrastAdjustSelector(): { [EdgeChromiumHighContrastSelector]: IRawStyle } {\n return {\n [EdgeChromiumHighContrastSelector]: {\n forcedColorAdjust: 'none',\n },\n };\n}\n","export let _isSSR = false;\n\n/**\n * Helper to set ssr mode to simulate no window object returned from getWindow helper.\n *\n * @public\n */\nexport function setSSR(isEnabled: boolean): void {\n _isSSR = isEnabled;\n}\n","import { _isSSR } from './setSSR';\n\nlet _window: Window | undefined = undefined;\n\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n} catch (e) {\n /* no-op */\n}\n\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement?: Element | null): Window | undefined {\n if (_isSSR || typeof _window === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n","import { getWindow } from './dom/getWindow';\nexport const IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport const IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\n\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - whether to remove or add focus\n * @param target - optional target\n */\nexport function setFocusVisibility(enabled: boolean, target?: Element): void {\n const win = target ? getWindow(target) : getWindow();\n\n if (win) {\n const { classList } = win.document.body;\n classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n","export namespace ZIndexes {\n export const Nav: number = 1;\n /**\n * @deprecated Do not use\n */\n export const ScrollablePane: number = 1;\n export const FocusStyle: number = 1;\n export const Coachmark: number = 1000;\n export const Layer: number = 1000000;\n export const KeytipLayer: number = 1000001;\n}\n","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nimport type { IRawStyle } from '@fluentui/merge-styles';\nimport type { IGetFocusStylesOptions, ITheme } from '../interfaces/index';\n\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param options - Options to customize the focus border.\n * @returns The style object.\n */\nexport function getFocusStyle(theme: ITheme, options?: IGetFocusStylesOptions): IRawStyle;\n/**\n * Generates a focus style which can be used to define an :after focus border.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border.\n * @param position - The positioning applied to the container. Must\n * be 'relative' or 'absolute' so that the focus border can live around it.\n * @param highContrastStyle - Style for high contrast mode.\n * @param borderColor - Color of the border.\n * @param outlineColor - Color of the outline.\n * @param isFocusedOnly - If the styles should apply on focus or not.\n * @returns The style object.\n * @deprecated Use the object parameter version instead.\n */\nexport function getFocusStyle(\n theme: ITheme,\n inset?: number,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle | undefined,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle;\nexport function getFocusStyle(\n theme: ITheme,\n insetOrOptions?: number | IGetFocusStylesOptions,\n position?: 'relative' | 'absolute',\n highContrastStyle?: IRawStyle,\n borderColor?: string,\n outlineColor?: string,\n isFocusedOnly?: boolean,\n): IRawStyle {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position,\n highContrastStyle,\n borderColor,\n outlineColor,\n isFocusedOnly,\n });\n } else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\n\nfunction _getFocusStyleInternal(theme: ITheme, options: IGetFocusStylesOptions = {}): IRawStyle {\n const {\n inset = 0,\n width = 1,\n position = 'relative',\n highContrastStyle,\n borderColor = theme.palette.white,\n outlineColor = theme.palette.neutralSecondary,\n isFocusedOnly = true,\n } = options;\n\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position,\n\n selectors: {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n },\n\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n [`.${IsFocusVisibleClassName} &${isFocusedOnly ? ':focus' : ''}:after`]: {\n content: '\"\"',\n position: 'absolute',\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: `${width}px solid ${borderColor}`,\n outline: `${width}px solid ${outlineColor}`,\n zIndex: ZIndexes.FocusStyle,\n selectors: {\n [HighContrastSelector]: highContrastStyle,\n },\n },\n },\n };\n}\n\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear(): IRawStyle {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme: ITheme, inset: number = 0, width: number = 1, color?: string): IRawStyle {\n return {\n selectors: {\n [`:global(${IsFocusVisibleClassName}) &:focus`]: {\n outline: `${width} solid ${color || theme.palette.neutralSecondary}`,\n outlineOffset: `${-inset}px`,\n },\n },\n };\n}\n\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport const getInputFocusStyle = (\n borderColor: string,\n borderRadius: string | number,\n borderType: 'border' | 'borderBottom' = 'border',\n borderPosition: number = -1,\n): IRawStyle => {\n const isBorderBottom = borderType === 'borderBottom';\n\n return {\n borderColor,\n selectors: {\n ':after': {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition,\n [borderType]: `2px solid ${borderColor}`,\n borderRadius,\n width: borderType === 'borderBottom' ? '100%' : undefined,\n selectors: {\n [HighContrastSelector]: {\n [borderType === 'border' ? 'borderColor' : 'borderBottomColor']: 'Highlight',\n },\n },\n },\n },\n };\n};\n","import type { IRawStyle } from '@fluentui/merge-styles';\n\nexport const hiddenContentStyle: IRawStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n","import { keyframes } from '@fluentui/merge-styles';\nimport type { IRawStyle } from '@fluentui/merge-styles';\n\nconst DEFAULT_DURATION = '14s';\nconst DEFAULT_DELAY = '2s';\nconst DEFAULT_ITERATION_COUNT = '1';\n\nfunction _continuousPulseStepOne(beaconColorOne: string, innerDimension: string): IRawStyle {\n return {\n borderColor: beaconColorOne,\n borderWidth: '0px',\n width: innerDimension,\n height: innerDimension,\n };\n}\n\nfunction _continuousPulseStepTwo(borderWidth: string): IRawStyle {\n return {\n opacity: 1,\n borderWidth: borderWidth,\n };\n}\n\nfunction _continuousPulseStepThree(): IRawStyle {\n return {\n opacity: 1,\n };\n}\n\nfunction _continuousPulseStepFour(beaconColorTwo: string, outerDimension: string): IRawStyle {\n return {\n borderWidth: '0',\n width: outerDimension,\n height: outerDimension,\n opacity: 0,\n borderColor: beaconColorTwo,\n };\n}\n\nfunction _continuousPulseStepFive(beaconColorOne: string, innerDimension: string): IRawStyle {\n return {\n ..._continuousPulseStepOne(beaconColorOne, innerDimension),\n ...{\n opacity: 0,\n },\n };\n}\n\nfunction _continuousPulseAnimationDouble(\n beaconColorOne: string,\n beaconColorTwo: string,\n innerDimension: string,\n outerDimension: string,\n borderWidth: string,\n): string {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '1.42%': _continuousPulseStepTwo(borderWidth),\n '3.57%': _continuousPulseStepThree(),\n '7.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '8%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '29.99%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '30%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '31.42%': _continuousPulseStepTwo(borderWidth),\n '33.57%': _continuousPulseStepThree(),\n '37.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '38%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.42%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.43': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '81.85': _continuousPulseStepTwo(borderWidth),\n '83.42': _continuousPulseStepThree(),\n '87%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\n\nfunction _continuousPulseAnimationSingle(\n beaconColorOne: string,\n beaconColorTwo: string,\n innerDimension: string,\n outerDimension: string,\n borderWidth: string,\n): string {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '14.2%': _continuousPulseStepTwo(borderWidth),\n '35.7%': _continuousPulseStepThree(),\n '71.4%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\n\nfunction _createDefaultAnimation(animationName: string, delayLength?: string): IRawStyle {\n return {\n animationName,\n animationIterationCount: DEFAULT_ITERATION_COUNT,\n animationDuration: DEFAULT_DURATION,\n animationDelay: delayLength || DEFAULT_DELAY,\n };\n}\n\nexport const PulsingBeaconAnimationStyles = {\n continuousPulseAnimationDouble: _continuousPulseAnimationDouble,\n continuousPulseAnimationSingle: _continuousPulseAnimationSingle,\n createDefaultAnimation: _createDefaultAnimation,\n};\n","import { Stylesheet } from '@uifabric/merge-styles';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\ndeclare class WeakMap {\n public get(key: any): any;\n public set(key: any, value: any): void;\n public has(key: any): boolean;\n}\n\nlet _initializedStylesheetResets = false;\nlet _resetCounter = 0;\nconst _emptyObject = { empty: true };\nconst _dictionary: any = {};\nlet _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n\ninterface IMemoizeNode {\n map: WeakMap | null;\n value?: any;\n}\n\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap: any): void {\n _weakMap = weakMap;\n}\n\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations(): void {\n _resetCounter++;\n}\n\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(\n target: any,\n key: string,\n descriptor: TypedPropertyDescriptor,\n): {\n configurable: boolean;\n get(): T;\n} {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n let fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n\n return {\n configurable: true,\n get(): T {\n return fn;\n },\n };\n}\n\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction RetType, RetType>(\n cb: T,\n maxCacheSize: number = 100,\n ignoreNullOrUndefinedResult: boolean = false,\n): T {\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n\n if (!_initializedStylesheetResets) {\n const stylesheet = Stylesheet.getInstance();\n\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n\n let rootNode: any;\n let cacheSize = 0;\n let localResetCounter = _resetCounter;\n\n return function memoizedFunction(...args: any[]): RetType {\n let currentNode: any = rootNode;\n\n if (\n rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)\n ) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n\n currentNode = rootNode;\n\n // Traverse the tree until we find the match.\n for (let i = 0; i < args.length; i++) {\n let arg = _normalizeArg(args[i]);\n\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n\n currentNode = currentNode.map.get(arg);\n }\n\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb(...args);\n cacheSize++;\n }\n\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb(...args);\n }\n\n return currentNode.value;\n } as any;\n}\n\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer any>(getValue: F): F {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n\n const cache = new _weakMap();\n\n function memoizedGetValue(input: any): any {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n\n if (cache.has(input)) {\n return cache.get(input)!;\n }\n\n const value = getValue(input);\n\n cache.set(input, value);\n\n return value;\n }\n\n return memoizedGetValue as F;\n}\n\nfunction _normalizeArg(val: null | undefined): { empty: boolean } | any;\nfunction _normalizeArg(val: object): any;\nfunction _normalizeArg(val: any): any {\n if (!val) {\n return _emptyObject;\n } else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n } else if (!_dictionary[val]) {\n _dictionary[val] = { val };\n }\n\n return _dictionary[val];\n}\n\nfunction _createNode(): IMemoizeNode {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n","import { ITheme } from '../interfaces/index';\nimport { Stylesheet } from '@uifabric/merge-styles';\nimport { memoizeFunction } from '@uifabric/utilities';\n\nexport type GlobalClassNames = Record;\n\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nconst _getGlobalClassNames = memoizeFunction(\n (classNames: GlobalClassNames, disableGlobalClassNames?: boolean): GlobalClassNames => {\n const styleSheet = Stylesheet.getInstance();\n\n if (disableGlobalClassNames) {\n // disable global classnames\n return (Object.keys(classNames) as (keyof T)[]).reduce((acc, className) => {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {} as GlobalClassNames);\n }\n\n // use global classnames\n return classNames;\n },\n);\n\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(\n classNames: GlobalClassNames,\n theme: ITheme,\n disableGlobalClassNames?: boolean,\n): GlobalClassNames {\n return _getGlobalClassNames(\n classNames,\n disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames,\n );\n}\n","import { getWindow } from './dom/getWindow';\n\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\n\nconst GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nconst CALLBACK_STATE_PROP_NAME = '__callbacks__';\n\nlet _counter = 0;\n\n/**\n * Change description used for change callbacks in GlobalSettings.\n *\n * @public\n * {@docCategory IChangeDescription}\n */\nexport interface IChangeDescription {\n key: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n oldValue: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n}\n\n/**\n * Change event callback.\n *\n * @public\n * {@docCategory IChangeEventCallback}\n */\nexport interface IChangeEventCallback {\n __id__?: string;\n (changeDescription?: IChangeDescription): void;\n}\n\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nexport class GlobalSettings {\n public static getValue(key: string, defaultValue?: T | (() => T)): T {\n const globalSettings = _getGlobalSettings();\n\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? (defaultValue as Function)() : defaultValue;\n }\n\n return globalSettings[key];\n }\n\n public static setValue(key: string, value: T): T {\n const globalSettings = _getGlobalSettings();\n const callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n let oldValue = globalSettings[key];\n\n if (value !== oldValue) {\n globalSettings[key] = value;\n\n let changeDescription = {\n oldValue,\n value,\n key,\n };\n\n for (let id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n\n return value;\n }\n\n public static addChangeListener(cb: IChangeEventCallback): void {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n let id = cb.__id__;\n const callbacks = _getCallbacks();\n\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n\n callbacks[id] = cb;\n }\n\n public static removeChangeListener(cb: IChangeEventCallback): void {\n const callbacks = _getCallbacks();\n delete callbacks[cb.__id__ as string];\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings(): { [key: string]: any } {\n const win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObj: { [key: string]: any } = win || {};\n\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = {\n [CALLBACK_STATE_PROP_NAME]: {},\n };\n }\n\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\n\nfunction _getCallbacks(): { [key: string]: () => void } {\n const globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n","import { GlobalSettings } from '../GlobalSettings';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ISettings = { [key: string]: any };\nexport type ISettingsFunction = (settings: ISettings) => ISettings;\n\n/**\n * @deprecated Use ISettings.\n */\nexport type Settings = ISettings;\n\n/**\n * @deprecated Use ISettingsFunction.\n */\nexport type SettingsFunction = ISettingsFunction;\n\nexport interface ICustomizations {\n settings: ISettings;\n scopedSettings: { [key: string]: ISettings };\n inCustomizerContext?: boolean;\n}\n\nconst CustomizationsGlobalKey = 'customizations';\nconst NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\n\nlet _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\n\nlet _events: (() => void)[] = [];\n\nexport class Customizations {\n private static _suppressUpdates: boolean;\n\n public static reset(): void {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n }\n\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n public static applySettings(settings: ISettings): void {\n _allSettings.settings = { ..._allSettings.settings, ...settings };\n Customizations._raiseChange();\n }\n\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n public static applyScopedSettings(scopeName: string, settings: ISettings): void {\n _allSettings.scopedSettings[scopeName] = { ..._allSettings.scopedSettings[scopeName], ...settings };\n Customizations._raiseChange();\n }\n\n public static getSettings(\n properties: string[],\n scopeName?: string,\n localSettings: ICustomizations = NO_CUSTOMIZATIONS,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any {\n const settings: ISettings = {};\n const localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n const globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n\n for (let property of properties) {\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n\n return settings;\n }\n\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n public static applyBatchedUpdates(code: () => void, suppressUpdate?: boolean): void {\n Customizations._suppressUpdates = true;\n try {\n code();\n } catch {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n }\n\n public static observe(onChange: () => void): void {\n _events.push(onChange);\n }\n\n public static unobserve(onChange: () => void): void {\n _events = _events.filter((cb: () => void) => cb !== onChange);\n }\n\n private static _raiseChange(): void {\n if (!Customizations._suppressUpdates) {\n _events.forEach((cb: () => void) => cb());\n }\n }\n}\n","export namespace Depths {\n export const depth0 = '0 0 0 0 transparent';\n export const depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n export const depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n export const depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n export const depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n}\n","import type { IPalette } from '../types/index';\n\n// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport const DefaultPalette: IPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n","import { Depths } from './FluentDepths';\nimport type { IEffects } from '../types/index';\n\nexport const DefaultEffects: IEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n\n// Default to undefined so that we initialize on first read.\nlet _language: string | null;\n\nconst STORAGE_KEY = 'language';\n\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(\n persistenceType: 'localStorage' | 'sessionStorage' | 'none' = 'sessionStorage',\n): string | null {\n if (_language === undefined) {\n let doc = getDocument();\n const savedLanguage =\n persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n\n if (savedLanguage) {\n _language = savedLanguage;\n }\n\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n\n if (_language === undefined) {\n _language = 'en';\n }\n }\n\n return _language;\n}\n\n/**\n * Sets the language for the page (by adjusting the lang attribute of the html element).\n * @param language - Language to set.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function setLanguage(language: string, persistenceType?: 'localStorage' | 'sessionStorage' | 'none'): void;\n/**\n * Sets the language for the page (by adjusting the lang attribute of the html element).\n * @deprecated Use string parameter version.\n * @param language - Language to set.\n * @param avoidPersisting - If true, don't store the value.\n */\nexport function setLanguage(language: string, avoidPersisting?: boolean): void;\nexport function setLanguage(\n language: string,\n persistenceParam?: 'localStorage' | 'sessionStorage' | 'none' | boolean,\n): void {\n let doc = getDocument();\n\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n\n const persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n } else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n\n _language = language;\n}\n","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport type { IFontWeight, IRawStyle } from '@fluentui/merge-styles';\nimport type { IFontStyles } from '../types/IFontStyles';\n\n// Fallback fonts, if specified system or web fonts are unavailable.\nconst FontFamilyFallbacks = `'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif`;\n\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nconst defaultFontFamily = `'Segoe UI', '${LocalizedFontNames.WestEuropean}'`;\n\n// Mapping of language prefix to to font family.\nconst LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\n\nfunction _fontFamilyWithFallbacks(fontFamily: string): string {\n return `${fontFamily}, ${FontFamilyFallbacks}`;\n}\n\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language: string | null): string {\n for (const lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (LanguageToFontMap as any)[lang];\n }\n }\n\n return defaultFontFamily;\n}\n\nfunction _createFont(size: string, weight: IFontWeight, fontFamily: string): IRawStyle {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\n\nexport function createFontStyles(localeCode: string | null): IFontStyles {\n const localizedFont = _getLocalizedFontFamily(localeCode);\n const fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n\n const fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n\n return fontStyles;\n}\n","import { _isSSR } from './setSSR';\n\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth. Also note that the SSR flag is used to test ssr scenarios even if\n * document is defined (from JSDOM for example.)\n *\n * @public\n */\nexport function getDocument(rootElement?: HTMLElement | null): Document | undefined {\n if (_isSSR || typeof document === 'undefined') {\n return undefined;\n } else {\n const el = rootElement as Element;\n\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\nimport type { IFontWeight } from '@fluentui/merge-styles';\nimport type { IFontStyles } from '../types/IFontStyles';\nimport type { IFabricConfig } from '../types/IFabricConfig';\n\n// Default urls.\nconst DefaultBaseUrl = 'https://static2.sharepointonline.com/files/fabric/assets';\n\n// Standard font styling.\nexport const DefaultFontStyles: IFontStyles = createFontStyles(getLanguage());\n\nfunction _registerFontFace(fontFamily: string, url: string, fontWeight?: IFontWeight, localFontName?: string): void {\n fontFamily = `'${fontFamily}'`;\n\n const localFontSrc = localFontName !== undefined ? `local('${localFontName}'),` : '';\n\n fontFace({\n fontFamily,\n src: localFontSrc + `url('${url}.woff2') format('woff2'),` + `url('${url}.woff') format('woff')`,\n fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\n\nfunction _registerFontFaceSet(\n baseUrl: string,\n fontFamily: string,\n cdnFolder: string,\n cdnFontName: string = 'segoeui',\n localFontName?: string,\n): void {\n const urlBase = `${baseUrl}/${cdnFolder}/${cdnFontName}`;\n\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(\n fontFamily,\n urlBase + '-semilight',\n FontWeights.semilight,\n localFontName && localFontName + ' SemiLight',\n );\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(\n fontFamily,\n urlBase + '-semibold',\n FontWeights.semibold,\n localFontName && localFontName + ' SemiBold',\n );\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\n\nexport function registerDefaultFontFaces(baseUrl: string): void {\n if (baseUrl) {\n const fontUrl = `${baseUrl}/fonts`;\n\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-semilight`, FontWeights.light);\n\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', `${fontUrl}/leelawadeeui-thai/leelawadeeui-bold`, FontWeights.semibold);\n }\n}\n\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl(): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const fabricConfig: IFabricConfig | undefined = (getWindow() as any)?.FabricConfig;\n\n return fabricConfig?.fontBaseUrl ?? DefaultBaseUrl;\n}\n\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n","import { getWindow } from './dom/getWindow';\n\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key: string): string | null {\n let result = null;\n try {\n const win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n } catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key: string, data: string): void {\n try {\n const win = getWindow();\n\n win && win.localStorage.setItem(key, data);\n } catch (e) {\n /* Eat the exception */\n }\n}\n","import { getWindow } from './dom/getWindow';\n\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key: string): string | null {\n let result = null;\n try {\n const win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n } catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key: string, data: string): void {\n try {\n getWindow()?.sessionStorage.setItem(key, data);\n } catch (e) {\n /* Eat the exception */\n }\n}\n","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target: Partial, ...args: (Partial | null | undefined | false)[]): T {\n for (const arg of args) {\n _merge(target || {}, arg as Partial);\n }\n\n return target as T;\n}\n\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target: T, source: T, circularReferences: any[] = []): T {\n circularReferences.push(source);\n\n for (let name in source) {\n if (source.hasOwnProperty(name)) {\n if (name !== '__proto__' && name !== 'constructor' && name !== 'prototype') {\n const value: T[Extract] = source[name];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n const isCircularReference = circularReferences.indexOf(value) > -1;\n target[name] = (isCircularReference\n ? value\n : _merge(target[name] || {}, value, circularReferences)) as T[Extract];\n } else {\n target[name] = value;\n }\n }\n }\n }\n\n circularReferences.pop();\n\n return target;\n}\n","import type { IEffects, IPalette, ISemanticColors } from '../types/index';\n\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(\n p: IPalette,\n e: IEffects,\n s: Partial | undefined,\n isInverted: boolean,\n depComments: boolean = false,\n): ISemanticColors {\n const semanticColors: Partial = {\n primaryButtonBorder: 'transparent',\n\n errorText: !isInverted ? '#a4262c' : '#F1707B',\n\n messageText: !isInverted ? '#323130' : '#F3F2F1',\n messageLink: !isInverted ? '#005A9E' : '#6CB8F6',\n messageLinkHovered: !isInverted ? '#004578' : '#82C7FF',\n\n infoIcon: !isInverted ? '#605e5c' : '#C8C6C4',\n errorIcon: !isInverted ? '#A80000' : '#F1707B',\n blockingIcon: !isInverted ? '#FDE7E9' : '#442726',\n warningIcon: !isInverted ? '#797775' : '#C8C6C4',\n severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100',\n successIcon: !isInverted ? '#107C10' : '#92C353',\n\n infoBackground: !isInverted ? '#f3f2f1' : '#323130',\n errorBackground: !isInverted ? '#FDE7E9' : '#442726',\n blockingBackground: !isInverted ? '#FDE7E9' : '#442726',\n warningBackground: !isInverted ? '#FFF4CE' : '#433519',\n severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F',\n successBackground: !isInverted ? '#DFF6DD' : '#393D1B',\n\n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100',\n successText: !isInverted ? '#107C10' : '#92c353',\n\n ...s,\n };\n\n const fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors>(\n p: Partial | undefined,\n e: Partial | undefined,\n s: Partial | undefined,\n isInverted: boolean,\n depComments: boolean = false,\n): TResult {\n let result: Partial = {};\n\n // map palette\n const {\n white,\n black,\n themePrimary,\n themeDark,\n themeDarker,\n themeDarkAlt,\n themeLighter,\n neutralLight,\n neutralLighter,\n neutralDark,\n neutralQuaternary,\n neutralQuaternaryAlt,\n neutralPrimary,\n neutralSecondary,\n neutralSecondaryAlt,\n neutralTertiary,\n neutralTertiaryAlt,\n neutralLighterAlt,\n accent,\n } = p || {};\n\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = s?.variantBorderHovered || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n\n // map effects\n if (e?.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && e?.elevation8) {\n result.cardShadowHovered = e.elevation8;\n } else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n\n result = {\n ...result,\n // mix in customized semantic slots\n ...s,\n };\n\n return result as TResult;\n}\n\nfunction _fixDeprecatedSlots(s: ISemanticColors, depComments: boolean): ISemanticColors {\n // Add @deprecated tag as comment if enabled\n let dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n","import type { ISpacing } from '../types/index';\n\nexport const DefaultSpacing: ISpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\nimport type { PartialTheme, Theme } from './types/index';\n\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme: PartialTheme = {}, depComments: boolean = false): Theme {\n const isInverted = !!theme.isInverted;\n const baseTheme: Theme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n\n return mergeThemes(baseTheme, theme);\n}\n","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\nimport type { IFontStyles, PartialTheme, Theme } from './types/index';\n\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme: Theme, partialTheme: PartialTheme = {}): Theme {\n const mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(\n partialTheme.palette,\n partialTheme.effects,\n partialTheme.semanticColors,\n partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted,\n ),\n }) as Theme;\n\n if (partialTheme.palette?.themePrimary && !partialTheme.palette?.accent) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n\n if (partialTheme.defaultFontStyle) {\n for (const fontStyle of Object.keys(mergedTheme.fonts) as (keyof IFontStyles)[]) {\n mergedTheme.fonts[fontStyle] = merge(\n mergedTheme.fonts[fontStyle],\n partialTheme.defaultFontStyle,\n partialTheme?.fonts?.[fontStyle],\n );\n }\n }\n\n return mergedTheme;\n}\n","import { Customizations, getWindow } from '@uifabric/utilities';\nimport { ITheme, IPartialTheme, IFontStyles } from '../interfaces/index';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { IRawStyle } from '@uifabric/merge-styles';\nimport { createTheme } from '@fluentui/theme/lib/createTheme';\n\nexport { createTheme } from '@fluentui/theme/lib/createTheme';\n\nlet _theme: ITheme = createTheme({});\nlet _onThemeChangeCallbacks: Array<(theme: ITheme) => void> = [];\n\nexport const ThemeSettingName = 'theme';\n\nexport function initializeThemeInCustomizations(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const win: any = getWindow();\n\n if (win?.FabricConfig?.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n } else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if (win?.FabricConfig?.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n\n // Set the default theme.\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n }\n}\n\ninitializeThemeInCustomizations();\n\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments: boolean = false): ITheme {\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback: (theme: ITheme) => void): void {\n const i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n\n _onThemeChangeCallbacks.splice(i, 1);\n}\n\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme: IPartialTheme, depComments: boolean = false): ITheme {\n _theme = createTheme(theme, depComments);\n\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme({ ..._theme.palette, ..._theme.semanticColors, ..._theme.effects, ..._loadFonts(_theme) });\n\n Customizations.applySettings({ [ThemeSettingName]: _theme });\n\n _onThemeChangeCallbacks.forEach((callback: (theme: ITheme) => void) => {\n try {\n callback(_theme);\n } catch (e) {\n // don't let a bad callback break everything else\n }\n });\n\n return _theme;\n}\n\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme: ITheme): { [name: string]: string } {\n const lines: { [key: string]: string } = {};\n\n for (const fontName of Object.keys(theme.fonts)) {\n const font: IRawStyle = theme.fonts[fontName as keyof IFontStyles];\n\n for (const propName of Object.keys(font)) {\n const name: string = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n let value = font[propName as keyof IRawStyle] as string;\n\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name] = value;\n }\n }\n return lines;\n}\n","import type { IRawStyle } from '@fluentui/merge-styles';\n\n// This file mimics styles and mixins from _General.Mixins.scss\nexport const normalize: IRawStyle = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\n\nexport const noWrap: IRawStyle = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n","import type { IStyle } from '@fluentui/merge-styles';\n\n/**\n * Generates placeholder style for each of the browsers supported by `@fluentui/react`.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles: IStyle): IStyle {\n return {\n selectors: {\n '::placeholder': styles, // Chrome, Safari, Opera, Firefox\n ':-ms-input-placeholder': styles, // IE 10+\n '::-ms-input-placeholder': styles, // Edge\n },\n };\n}\n","/* eslint-disable no-console */\n\nlet _warningCallback: ((message: string) => void) | undefined = undefined;\n\nexport type ISettingsMap = { [P in keyof T]?: string };\n\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message: string): void {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n } else if (console && console.warn) {\n console.warn(message);\n }\n}\n\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback?: (message: string) => void): void {\n _warningCallback = warningCallback;\n}\n","import { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nimport type { IRawStyle, IFontFace } from '@fluentui/merge-styles';\n\nexport interface IIconSubset {\n fontFace?: IFontFace;\n icons: {\n [key: string]: string | JSX.Element;\n };\n\n style?: IRawStyle;\n /**\n * Indicates to the icon renderer that it is safe to merge any props on the original `Icon` element\n * onto the child content element registered for the icon which are valid for HTML images.\n */\n mergeImageProps?: boolean;\n}\n\nexport interface IIconSubsetRecord extends IIconSubset {\n isRegistered?: boolean;\n className?: string;\n}\n\nexport interface IIconRecord {\n code: string | undefined;\n subset: IIconSubsetRecord;\n}\n\nexport interface IIconOptions {\n /**\n * By default, registering the same set of icons will generate a console warning per duplicate icon\n * registered, because this scenario can create unexpected consequences.\n *\n * Some scenarios include:\n *\n * Icon set was previously registered using a different base url.\n * Icon set was previously registered but a different version was provided.\n * Icons in a previous registered set overlap with a new set.\n *\n * To simply ignore previously registered icons, you can specify to disable warnings. This means\n * that if an icon which was previous registered is registered again, it will be silently ignored.\n * However, consider whether the problems listed above will cause issues.\n **/\n disableWarnings: boolean;\n\n /**\n * @deprecated Use `disableWarnings` instead.\n */\n warnOnMissingIcons?: boolean;\n}\n\nexport interface IIconRecords {\n __options: IIconOptions;\n __remapped: { [key: string]: string };\n [key: string]: IIconRecord | {};\n}\n\nconst ICON_SETTING_NAME = 'icons';\n\nconst _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n\n// Reset icon registration on stylesheet resets.\nconst stylesheet = Stylesheet.getInstance();\n\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(() => {\n for (const name in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name) && !!(_iconSettings[name] as IIconRecord).subset) {\n (_iconSettings[name] as IIconRecord).subset.className = undefined;\n }\n }\n });\n}\n\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nconst normalizeIconName = (name: string): string => name.toLowerCase();\n\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset: IIconSubset, options?: Partial): void {\n let subset = {\n ...iconSubset,\n isRegistered: false,\n className: undefined,\n };\n let { icons } = iconSubset;\n\n // Grab options, optionally mix user provided ones on top.\n options = options ? { ..._iconSettings.__options, ...options } : _iconSettings.__options;\n\n for (const iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n const code = icons[iconName];\n const normalizedIconName = normalizeIconName(iconName);\n\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n } else {\n _iconSettings[normalizedIconName] = {\n code,\n subset,\n } as IIconRecord;\n }\n }\n }\n}\n\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames: string[]): void {\n const options = _iconSettings.__options;\n\n for (const iconName of iconNames) {\n const normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n } else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(`The icon \"${iconName}\" tried to unregister but was not registered.`);\n }\n }\n\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach((key: string) => {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n }\n}\n\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName: string, mappedToName: string): void {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name?: string): IIconRecord | undefined {\n let icon: IIconRecord | undefined = undefined;\n const options = _iconSettings.__options;\n\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n\n if (name) {\n icon = _iconSettings[name!] as IIconRecord;\n\n if (icon) {\n let { subset } = icon;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n } else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\n `The icon \"${name}\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.`,\n );\n }\n }\n }\n\n return icon;\n}\n\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options: Partial): void {\n _iconSettings.__options = {\n ..._iconSettings.__options,\n ...options,\n };\n}\n\nlet _missingIcons: string[] = [];\nlet _missingIconsTimer: number | undefined = undefined;\n\nfunction _warnDuplicateIcon(iconName: string): void {\n const options = _iconSettings.__options;\n const warningDelay = 2000;\n const maxIconsInMessage = 10;\n\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(() => {\n warn(\n `Some icons were re-registered. Applications should only call registerIcons for any given ` +\n `icon once. Redefining what an icon is may have unintended consequences. Duplicates ` +\n `include: \\n` +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? ` (+ ${_missingIcons.length - maxIconsInMessage} more)` : ''),\n );\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/font-icons-mdl2', '8.1.18');","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n//# sourceMappingURL=index.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction roundFloat(number, decimalPoints) {\n const decimal = Math.pow(10, decimalPoints);\n return Math.round(number * decimal) / decimal;\n}\nexport class RGBA {\n constructor(r, g, b, a = 1) {\n this._rgbaBrand = undefined;\n this.r = Math.min(255, Math.max(0, r)) | 0;\n this.g = Math.min(255, Math.max(0, g)) | 0;\n this.b = Math.min(255, Math.max(0, b)) | 0;\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.r === b.r && a.g === b.g && a.b === b.b && a.a === b.a;\n }\n}\nexport class HSLA {\n constructor(h, s, l, a) {\n this._hslaBrand = undefined;\n this.h = Math.max(Math.min(360, h), 0) | 0;\n this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n this.l = roundFloat(Math.max(Math.min(1, l), 0), 3);\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.h === b.h && a.s === b.s && a.l === b.l && a.a === b.a;\n }\n /**\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h in the set [0, 360], s, and l in the set [0, 1].\n */\n static fromRGBA(rgba) {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const a = rgba.a;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (min + max) / 2;\n const chroma = max - min;\n if (chroma > 0) {\n s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1);\n switch (max) {\n case r:\n h = (g - b) / chroma + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / chroma + 2;\n break;\n case b:\n h = (r - g) / chroma + 4;\n break;\n }\n h *= 60;\n h = Math.round(h);\n }\n return new HSLA(h, s, l, a);\n }\n static _hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n /**\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n */\n static toRGBA(hsla) {\n const h = hsla.h / 360;\n const { s, l, a } = hsla;\n let r, g, b;\n if (s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = HSLA._hue2rgb(p, q, h + 1 / 3);\n g = HSLA._hue2rgb(p, q, h);\n b = HSLA._hue2rgb(p, q, h - 1 / 3);\n }\n return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a);\n }\n}\nexport class HSVA {\n constructor(h, s, v, a) {\n this._hsvaBrand = undefined;\n this.h = Math.max(Math.min(360, h), 0) | 0;\n this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n this.v = roundFloat(Math.max(Math.min(1, v), 0), 3);\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.h === b.h && a.s === b.s && a.v === b.v && a.a === b.a;\n }\n // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm\n static fromRGBA(rgba) {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const cmax = Math.max(r, g, b);\n const cmin = Math.min(r, g, b);\n const delta = cmax - cmin;\n const s = cmax === 0 ? 0 : (delta / cmax);\n let m;\n if (delta === 0) {\n m = 0;\n }\n else if (cmax === r) {\n m = ((((g - b) / delta) % 6) + 6) % 6;\n }\n else if (cmax === g) {\n m = ((b - r) / delta) + 2;\n }\n else {\n m = ((r - g) / delta) + 4;\n }\n return new HSVA(Math.round(m * 60), s, cmax, rgba.a);\n }\n // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm\n static toRGBA(hsva) {\n const { h, s, v, a } = hsva;\n const c = v * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = v - c;\n let [r, g, b] = [0, 0, 0];\n if (h < 60) {\n r = c;\n g = x;\n }\n else if (h < 120) {\n r = x;\n g = c;\n }\n else if (h < 180) {\n g = c;\n b = x;\n }\n else if (h < 240) {\n g = x;\n b = c;\n }\n else if (h < 300) {\n r = x;\n b = c;\n }\n else if (h <= 360) {\n r = c;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return new RGBA(r, g, b, a);\n }\n}\nexport class Color {\n constructor(arg) {\n if (!arg) {\n throw new Error('Color needs a value');\n }\n else if (arg instanceof RGBA) {\n this.rgba = arg;\n }\n else if (arg instanceof HSLA) {\n this._hsla = arg;\n this.rgba = HSLA.toRGBA(arg);\n }\n else if (arg instanceof HSVA) {\n this._hsva = arg;\n this.rgba = HSVA.toRGBA(arg);\n }\n else {\n throw new Error('Invalid color ctor argument');\n }\n }\n static fromHex(hex) {\n return Color.Format.CSS.parseHex(hex) || Color.red;\n }\n get hsla() {\n if (this._hsla) {\n return this._hsla;\n }\n else {\n return HSLA.fromRGBA(this.rgba);\n }\n }\n get hsva() {\n if (this._hsva) {\n return this._hsva;\n }\n return HSVA.fromRGBA(this.rgba);\n }\n equals(other) {\n return !!other && RGBA.equals(this.rgba, other.rgba) && HSLA.equals(this.hsla, other.hsla) && HSVA.equals(this.hsva, other.hsva);\n }\n /**\n * http://www.w3.org/TR/WCAG20/#relativeluminancedef\n * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.\n */\n getRelativeLuminance() {\n const R = Color._relativeLuminanceForComponent(this.rgba.r);\n const G = Color._relativeLuminanceForComponent(this.rgba.g);\n const B = Color._relativeLuminanceForComponent(this.rgba.b);\n const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n return roundFloat(luminance, 4);\n }\n static _relativeLuminanceForComponent(color) {\n const c = color / 255;\n return (c <= 0.03928) ? c / 12.92 : Math.pow(((c + 0.055) / 1.055), 2.4);\n }\n /**\n *\thttp://24ways.org/2010/calculating-color-contrast\n * Return 'true' if lighter color otherwise 'false'\n */\n isLighter() {\n const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1000;\n return yiq >= 128;\n }\n isLighterThan(another) {\n const lum1 = this.getRelativeLuminance();\n const lum2 = another.getRelativeLuminance();\n return lum1 > lum2;\n }\n isDarkerThan(another) {\n const lum1 = this.getRelativeLuminance();\n const lum2 = another.getRelativeLuminance();\n return lum1 < lum2;\n }\n lighten(factor) {\n return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor, this.hsla.a));\n }\n darken(factor) {\n return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor, this.hsla.a));\n }\n transparent(factor) {\n const { r, g, b, a } = this.rgba;\n return new Color(new RGBA(r, g, b, a * factor));\n }\n isTransparent() {\n return this.rgba.a === 0;\n }\n isOpaque() {\n return this.rgba.a === 1;\n }\n opposite() {\n return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));\n }\n toString() {\n if (!this._toString) {\n this._toString = Color.Format.CSS.format(this);\n }\n return this._toString;\n }\n static getLighterColor(of, relative, factor) {\n if (of.isLighterThan(relative)) {\n return of;\n }\n factor = factor ? factor : 0.5;\n const lum1 = of.getRelativeLuminance();\n const lum2 = relative.getRelativeLuminance();\n factor = factor * (lum2 - lum1) / lum2;\n return of.lighten(factor);\n }\n static getDarkerColor(of, relative, factor) {\n if (of.isDarkerThan(relative)) {\n return of;\n }\n factor = factor ? factor : 0.5;\n const lum1 = of.getRelativeLuminance();\n const lum2 = relative.getRelativeLuminance();\n factor = factor * (lum1 - lum2) / lum1;\n return of.darken(factor);\n }\n}\nColor.white = new Color(new RGBA(255, 255, 255, 1));\nColor.black = new Color(new RGBA(0, 0, 0, 1));\nColor.red = new Color(new RGBA(255, 0, 0, 1));\nColor.blue = new Color(new RGBA(0, 0, 255, 1));\nColor.cyan = new Color(new RGBA(0, 255, 255, 1));\nColor.lightgrey = new Color(new RGBA(211, 211, 211, 1));\nColor.transparent = new Color(new RGBA(0, 0, 0, 0));\n(function (Color) {\n let Format;\n (function (Format) {\n let CSS;\n (function (CSS) {\n function formatRGB(color) {\n if (color.rgba.a === 1) {\n return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`;\n }\n return Color.Format.CSS.formatRGBA(color);\n }\n CSS.formatRGB = formatRGB;\n function formatRGBA(color) {\n return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+(color.rgba.a).toFixed(2)})`;\n }\n CSS.formatRGBA = formatRGBA;\n function formatHSL(color) {\n if (color.hsla.a === 1) {\n return `hsl(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%)`;\n }\n return Color.Format.CSS.formatHSLA(color);\n }\n CSS.formatHSL = formatHSL;\n function formatHSLA(color) {\n return `hsla(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%, ${color.hsla.a.toFixed(2)})`;\n }\n CSS.formatHSLA = formatHSLA;\n function _toTwoDigitHex(n) {\n const r = n.toString(16);\n return r.length !== 2 ? '0' + r : r;\n }\n /**\n * Formats the color as #RRGGBB\n */\n function formatHex(color) {\n return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`;\n }\n CSS.formatHex = formatHex;\n /**\n * Formats the color as #RRGGBBAA\n * If 'compact' is set, colors without transparancy will be printed as #RRGGBB\n */\n function formatHexA(color, compact = false) {\n if (compact && color.rgba.a === 1) {\n return Color.Format.CSS.formatHex(color);\n }\n return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`;\n }\n CSS.formatHexA = formatHexA;\n /**\n * The default format will use HEX if opaque and RGBA otherwise.\n */\n function format(color) {\n if (color.isOpaque()) {\n return Color.Format.CSS.formatHex(color);\n }\n return Color.Format.CSS.formatRGBA(color);\n }\n CSS.format = format;\n /**\n * Converts an Hex color value to a Color.\n * returns r, g, and b are contained in the set [0, 255]\n * @param hex string (#RGB, #RGBA, #RRGGBB or #RRGGBBAA).\n */\n function parseHex(hex) {\n const length = hex.length;\n if (length === 0) {\n // Invalid color\n return null;\n }\n if (hex.charCodeAt(0) !== 35 /* Hash */) {\n // Does not begin with a #\n return null;\n }\n if (length === 7) {\n // #RRGGBB format\n const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n return new Color(new RGBA(r, g, b, 1));\n }\n if (length === 9) {\n // #RRGGBBAA format\n const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8));\n return new Color(new RGBA(r, g, b, a / 255));\n }\n if (length === 4) {\n // #RGB format\n const r = _parseHexDigit(hex.charCodeAt(1));\n const g = _parseHexDigit(hex.charCodeAt(2));\n const b = _parseHexDigit(hex.charCodeAt(3));\n return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b));\n }\n if (length === 5) {\n // #RGBA format\n const r = _parseHexDigit(hex.charCodeAt(1));\n const g = _parseHexDigit(hex.charCodeAt(2));\n const b = _parseHexDigit(hex.charCodeAt(3));\n const a = _parseHexDigit(hex.charCodeAt(4));\n return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255));\n }\n // Invalid color\n return null;\n }\n CSS.parseHex = parseHex;\n function _parseHexDigit(charCode) {\n switch (charCode) {\n case 48 /* Digit0 */: return 0;\n case 49 /* Digit1 */: return 1;\n case 50 /* Digit2 */: return 2;\n case 51 /* Digit3 */: return 3;\n case 52 /* Digit4 */: return 4;\n case 53 /* Digit5 */: return 5;\n case 54 /* Digit6 */: return 6;\n case 55 /* Digit7 */: return 7;\n case 56 /* Digit8 */: return 8;\n case 57 /* Digit9 */: return 9;\n case 97 /* a */: return 10;\n case 65 /* A */: return 10;\n case 98 /* b */: return 11;\n case 66 /* B */: return 11;\n case 99 /* c */: return 12;\n case 67 /* C */: return 12;\n case 100 /* d */: return 13;\n case 68 /* D */: return 13;\n case 101 /* e */: return 14;\n case 69 /* E */: return 14;\n case 102 /* f */: return 15;\n case 70 /* F */: return 15;\n }\n return 0;\n }\n })(CSS = Format.CSS || (Format.CSS = {}));\n })(Format = Color.Format || (Color.Format = {}));\n})(Color || (Color = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nconst LANGUAGE_DEFAULT = 'en';\nlet _isWindows = false;\nlet _isMacintosh = false;\nlet _isLinux = false;\nlet _isLinuxSnap = false;\nlet _isNative = false;\nlet _isWeb = false;\nlet _isIOS = false;\nlet _locale = undefined;\nlet _language = LANGUAGE_DEFAULT;\nlet _translationsConfigFile = undefined;\nlet _userAgent = undefined;\nexport const globals = (typeof self === 'object' ? self : typeof global === 'object' ? global : {});\nlet nodeProcess = undefined;\nif (typeof globals.vscode !== 'undefined' && typeof globals.vscode.process !== 'undefined') {\n // Native environment (sandboxed)\n nodeProcess = globals.vscode.process;\n}\nelse if (typeof process !== 'undefined') {\n // Native environment (non-sandboxed)\n nodeProcess = process;\n}\nconst isElectronRenderer = typeof ((_a = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _a === void 0 ? void 0 : _a.electron) === 'string' && nodeProcess.type === 'renderer';\n// Web environment\nif (typeof navigator === 'object' && !isElectronRenderer) {\n _userAgent = navigator.userAgent;\n _isWindows = _userAgent.indexOf('Windows') >= 0;\n _isMacintosh = _userAgent.indexOf('Macintosh') >= 0;\n _isIOS = (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;\n _isLinux = _userAgent.indexOf('Linux') >= 0;\n _isWeb = true;\n _locale = navigator.language;\n _language = _locale;\n}\n// Native environment\nelse if (typeof nodeProcess === 'object') {\n _isWindows = (nodeProcess.platform === 'win32');\n _isMacintosh = (nodeProcess.platform === 'darwin');\n _isLinux = (nodeProcess.platform === 'linux');\n _isLinuxSnap = _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION'];\n _locale = LANGUAGE_DEFAULT;\n _language = LANGUAGE_DEFAULT;\n const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG'];\n if (rawNlsConfig) {\n try {\n const nlsConfig = JSON.parse(rawNlsConfig);\n const resolved = nlsConfig.availableLanguages['*'];\n _locale = nlsConfig.locale;\n // VSCode's default language is 'en'\n _language = resolved ? resolved : LANGUAGE_DEFAULT;\n _translationsConfigFile = nlsConfig._translationsConfigFile;\n }\n catch (e) {\n }\n }\n _isNative = true;\n}\n// Unknown environment\nelse {\n console.error('Unable to resolve platform.');\n}\nlet _platform = 0 /* Web */;\nif (_isMacintosh) {\n _platform = 1 /* Mac */;\n}\nelse if (_isWindows) {\n _platform = 3 /* Windows */;\n}\nelse if (_isLinux) {\n _platform = 2 /* Linux */;\n}\nexport const isWindows = _isWindows;\nexport const isMacintosh = _isMacintosh;\nexport const isLinux = _isLinux;\nexport const isNative = _isNative;\nexport const isWeb = _isWeb;\nexport const isIOS = _isIOS;\nexport const userAgent = _userAgent;\nexport const setImmediate = (function defineSetImmediate() {\n if (globals.setImmediate) {\n return globals.setImmediate.bind(globals);\n }\n if (typeof globals.postMessage === 'function' && !globals.importScripts) {\n let pending = [];\n globals.addEventListener('message', (e) => {\n if (e.data && e.data.vscodeSetImmediateId) {\n for (let i = 0, len = pending.length; i < len; i++) {\n const candidate = pending[i];\n if (candidate.id === e.data.vscodeSetImmediateId) {\n pending.splice(i, 1);\n candidate.callback();\n return;\n }\n }\n }\n });\n let lastId = 0;\n return (callback) => {\n const myId = ++lastId;\n pending.push({\n id: myId,\n callback: callback\n });\n globals.postMessage({ vscodeSetImmediateId: myId }, '*');\n };\n }\n if (typeof (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.nextTick) === 'function') {\n return nodeProcess.nextTick.bind(nodeProcess);\n }\n const _promise = Promise.resolve();\n return (callback) => _promise.then(callback);\n})();\nexport const OS = (_isMacintosh || _isIOS ? 2 /* Macintosh */ : (_isWindows ? 1 /* Windows */ : 3 /* Linux */));\nlet _isLittleEndian = true;\nlet _isLittleEndianComputed = false;\nexport function isLittleEndian() {\n if (!_isLittleEndianComputed) {\n _isLittleEndianComputed = true;\n const test = new Uint8Array(2);\n test[0] = 1;\n test[1] = 2;\n const view = new Uint16Array(test.buffer);\n _isLittleEndian = (view[0] === (2 << 8) + 1);\n }\n return _isLittleEndian;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CSSIcon } from '../../../base/common/codicons.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport * as platform from '../../registry/common/platform.js';\nimport { ColorScheme } from './theme.js';\nexport const IThemeService = createDecorator('themeService');\nexport var ThemeColor;\n(function (ThemeColor) {\n function isThemeColor(obj) {\n return obj && typeof obj === 'object' && typeof obj.id === 'string';\n }\n ThemeColor.isThemeColor = isThemeColor;\n})(ThemeColor || (ThemeColor = {}));\nexport function themeColorFromId(id) {\n return { id };\n}\nexport var ThemeIcon;\n(function (ThemeIcon) {\n function isThemeIcon(obj) {\n return obj && typeof obj === 'object' && typeof obj.id === 'string' && (typeof obj.color === 'undefined' || ThemeColor.isThemeColor(obj.color));\n }\n ThemeIcon.isThemeIcon = isThemeIcon;\n const _regexFromString = new RegExp(`^\\\\$\\\\((${CSSIcon.iconNameExpression}(?:${CSSIcon.iconModifierExpression})?)\\\\)$`);\n function fromString(str) {\n const match = _regexFromString.exec(str);\n if (!match) {\n return undefined;\n }\n let [, name] = match;\n return { id: name };\n }\n ThemeIcon.fromString = fromString;\n function modify(icon, modifier) {\n let id = icon.id;\n const tildeIndex = id.lastIndexOf('~');\n if (tildeIndex !== -1) {\n id = id.substring(0, tildeIndex);\n }\n if (modifier) {\n id = `${id}~${modifier}`;\n }\n return { id };\n }\n ThemeIcon.modify = modify;\n function isEqual(ti1, ti2) {\n var _a, _b;\n return ti1.id === ti2.id && ((_a = ti1.color) === null || _a === void 0 ? void 0 : _a.id) === ((_b = ti2.color) === null || _b === void 0 ? void 0 : _b.id);\n }\n ThemeIcon.isEqual = isEqual;\n function asThemeIcon(codicon, color) {\n return { id: codicon.id, color: color ? themeColorFromId(color) : undefined };\n }\n ThemeIcon.asThemeIcon = asThemeIcon;\n ThemeIcon.asClassNameArray = CSSIcon.asClassNameArray;\n ThemeIcon.asClassName = CSSIcon.asClassName;\n ThemeIcon.asCSSSelector = CSSIcon.asCSSSelector;\n})(ThemeIcon || (ThemeIcon = {}));\nexport function getThemeTypeSelector(type) {\n switch (type) {\n case ColorScheme.DARK: return 'vs-dark';\n case ColorScheme.HIGH_CONTRAST: return 'hc-black';\n default: return 'vs';\n }\n}\n// static theming participant\nexport const Extensions = {\n ThemingContribution: 'base.contributions.theming'\n};\nclass ThemingRegistry {\n constructor() {\n this.themingParticipants = [];\n this.themingParticipants = [];\n this.onThemingParticipantAddedEmitter = new Emitter();\n }\n onColorThemeChange(participant) {\n this.themingParticipants.push(participant);\n this.onThemingParticipantAddedEmitter.fire(participant);\n return toDisposable(() => {\n const idx = this.themingParticipants.indexOf(participant);\n this.themingParticipants.splice(idx, 1);\n });\n }\n getThemingParticipants() {\n return this.themingParticipants;\n }\n}\nlet themingRegistry = new ThemingRegistry();\nplatform.Registry.add(Extensions.ThemingContribution, themingRegistry);\nexport function registerThemingParticipant(participant) {\n return themingRegistry.onColorThemeChange(participant);\n}\n/**\n * Utility base class for all themable components.\n */\nexport class Themable extends Disposable {\n constructor(themeService) {\n super();\n this.themeService = themeService;\n this.theme = themeService.getColorTheme();\n // Hook up to theme changes\n this._register(this.themeService.onDidColorThemeChange(theme => this.onThemeChange(theme)));\n }\n onThemeChange(theme) {\n this.theme = theme;\n this.updateStyles();\n }\n updateStyles() {\n // Subclasses to override\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString().toLowerCase() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = \"\" + totalms % 1000;\r\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n constructor() {\n this.listeners = [];\n this.unexpectedErrorHandler = function (e) {\n setTimeout(() => {\n if (e.stack) {\n throw new Error(e.message + '\\n\\n' + e.stack);\n }\n throw e;\n }, 0);\n };\n }\n emit(e) {\n this.listeners.forEach((listener) => {\n listener(e);\n });\n }\n onUnexpectedError(e) {\n this.unexpectedErrorHandler(e);\n this.emit(e);\n }\n // For external errors, we don't want the listeners to be called\n onUnexpectedExternalError(e) {\n this.unexpectedErrorHandler(e);\n }\n}\nexport const errorHandler = new ErrorHandler();\nexport function onUnexpectedError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n errorHandler.onUnexpectedError(e);\n }\n return undefined;\n}\nexport function onUnexpectedExternalError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n errorHandler.onUnexpectedExternalError(e);\n }\n return undefined;\n}\nexport function transformErrorForSerialization(error) {\n if (error instanceof Error) {\n let { name, message } = error;\n const stack = error.stacktrace || error.stack;\n return {\n $isError: true,\n name,\n message,\n stack\n };\n }\n // return as is\n return error;\n}\nconst canceledName = 'Canceled';\n/**\n * Checks if the given error is a promise in canceled state\n */\nexport function isPromiseCanceledError(error) {\n return error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\n/**\n * Returns an error that signals cancellation.\n */\nexport function canceled() {\n const error = new Error(canceledName);\n error.name = error.message;\n return error;\n}\nexport function illegalArgument(name) {\n if (name) {\n return new Error(`Illegal argument: ${name}`);\n }\n else {\n return new Error('Illegal argument');\n }\n}\nexport function illegalState(name) {\n if (name) {\n return new Error(`Illegal state: ${name}`);\n }\n else {\n return new Error('Illegal state');\n }\n}\nexport class NotSupportedError extends Error {\n constructor(message) {\n super('NotSupported');\n if (message) {\n this.message = message;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { CancellationTokenSource } from './cancellation.js';\nimport { canceled } from './errors.js';\nimport { toDisposable } from './lifecycle.js';\nexport function isThenable(obj) {\n return !!obj && typeof obj.then === 'function';\n}\nexport function createCancelablePromise(callback) {\n const source = new CancellationTokenSource();\n const thenable = callback(source.token);\n const promise = new Promise((resolve, reject) => {\n const subscription = source.token.onCancellationRequested(() => {\n subscription.dispose();\n source.dispose();\n reject(canceled());\n });\n Promise.resolve(thenable).then(value => {\n subscription.dispose();\n source.dispose();\n resolve(value);\n }, err => {\n subscription.dispose();\n source.dispose();\n reject(err);\n });\n });\n return new class {\n cancel() {\n source.cancel();\n }\n then(resolve, reject) {\n return promise.then(resolve, reject);\n }\n catch(reject) {\n return this.then(undefined, reject);\n }\n finally(onfinally) {\n return promise.finally(onfinally);\n }\n };\n}\nexport function raceCancellation(promise, token, defaultValue) {\n return Promise.race([promise, new Promise(resolve => token.onCancellationRequested(() => resolve(defaultValue)))]);\n}\n/**\n * A helper to prevent accumulation of sequential async tasks.\n *\n * Imagine a mail man with the sole task of delivering letters. As soon as\n * a letter submitted for delivery, he drives to the destination, delivers it\n * and returns to his base. Imagine that during the trip, N more letters were submitted.\n * When the mail man returns, he picks those N letters and delivers them all in a\n * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.\n *\n * The throttler implements this via the queue() method, by providing it a task\n * factory. Following the example:\n *\n * \t\tconst throttler = new Throttler();\n * \t\tconst letters = [];\n *\n * \t\tfunction deliver() {\n * \t\t\tconst lettersToDeliver = letters;\n * \t\t\tletters = [];\n * \t\t\treturn makeTheTrip(lettersToDeliver);\n * \t\t}\n *\n * \t\tfunction onLetterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tthrottler.queue(deliver);\n * \t\t}\n */\nexport class Throttler {\n constructor() {\n this.activePromise = null;\n this.queuedPromise = null;\n this.queuedPromiseFactory = null;\n }\n queue(promiseFactory) {\n if (this.activePromise) {\n this.queuedPromiseFactory = promiseFactory;\n if (!this.queuedPromise) {\n const onComplete = () => {\n this.queuedPromise = null;\n const result = this.queue(this.queuedPromiseFactory);\n this.queuedPromiseFactory = null;\n return result;\n };\n this.queuedPromise = new Promise(resolve => {\n this.activePromise.then(onComplete, onComplete).then(resolve);\n });\n }\n return new Promise((resolve, reject) => {\n this.queuedPromise.then(resolve, reject);\n });\n }\n this.activePromise = promiseFactory();\n return new Promise((resolve, reject) => {\n this.activePromise.then((result) => {\n this.activePromise = null;\n resolve(result);\n }, (err) => {\n this.activePromise = null;\n reject(err);\n });\n });\n }\n}\n/**\n * A helper to delay (debounce) execution of a task that is being requested often.\n *\n * Following the throttler, now imagine the mail man wants to optimize the number of\n * trips proactively. The trip itself can be long, so he decides not to make the trip\n * as soon as a letter is submitted. Instead he waits a while, in case more\n * letters are submitted. After said waiting period, if no letters were submitted, he\n * decides to make the trip. Imagine that N more letters were submitted after the first\n * one, all within a short period of time between each other. Even though N+1\n * submissions occurred, only 1 delivery was made.\n *\n * The delayer offers this behavior via the trigger() method, into which both the task\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\n * the example:\n *\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\n * \t\tconst letters = [];\n *\n * \t\tfunction letterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\n * \t\t}\n */\nexport class Delayer {\n constructor(defaultDelay) {\n this.defaultDelay = defaultDelay;\n this.timeout = null;\n this.completionPromise = null;\n this.doResolve = null;\n this.doReject = null;\n this.task = null;\n }\n trigger(task, delay = this.defaultDelay) {\n this.task = task;\n this.cancelTimeout();\n if (!this.completionPromise) {\n this.completionPromise = new Promise((resolve, reject) => {\n this.doResolve = resolve;\n this.doReject = reject;\n }).then(() => {\n this.completionPromise = null;\n this.doResolve = null;\n if (this.task) {\n const task = this.task;\n this.task = null;\n return task();\n }\n return undefined;\n });\n }\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (this.doResolve) {\n this.doResolve(null);\n }\n }, delay);\n return this.completionPromise;\n }\n isTriggered() {\n return this.timeout !== null;\n }\n cancel() {\n this.cancelTimeout();\n if (this.completionPromise) {\n if (this.doReject) {\n this.doReject(canceled());\n }\n this.completionPromise = null;\n }\n }\n cancelTimeout() {\n if (this.timeout !== null) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n dispose() {\n this.cancel();\n }\n}\n/**\n * A helper to delay execution of a task that is being requested often, while\n * preventing accumulation of consecutive executions, while the task runs.\n *\n * The mail man is clever and waits for a certain amount of time, before going\n * out to deliver letters. While the mail man is going out, more letters arrive\n * and can only be delivered once he is back. Once he is back the mail man will\n * do one more trip to deliver the letters that have accumulated while he was out.\n */\nexport class ThrottledDelayer {\n constructor(defaultDelay) {\n this.delayer = new Delayer(defaultDelay);\n this.throttler = new Throttler();\n }\n trigger(promiseFactory, delay) {\n return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);\n }\n dispose() {\n this.delayer.dispose();\n }\n}\nexport function timeout(millis, token) {\n if (!token) {\n return createCancelablePromise(token => timeout(millis, token));\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(() => {\n disposable.dispose();\n resolve();\n }, millis);\n const disposable = token.onCancellationRequested(() => {\n clearTimeout(handle);\n disposable.dispose();\n reject(canceled());\n });\n });\n}\nexport function disposableTimeout(handler, timeout = 0) {\n const timer = setTimeout(handler, timeout);\n return toDisposable(() => clearTimeout(timer));\n}\nexport function first(promiseFactories, shouldStop = t => !!t, defaultValue = null) {\n let index = 0;\n const len = promiseFactories.length;\n const loop = () => {\n if (index >= len) {\n return Promise.resolve(defaultValue);\n }\n const factory = promiseFactories[index++];\n const promise = Promise.resolve(factory());\n return promise.then(result => {\n if (shouldStop(result)) {\n return Promise.resolve(result);\n }\n return loop();\n });\n };\n return loop();\n}\nexport class TimeoutTimer {\n constructor(runner, timeout) {\n this._token = -1;\n if (typeof runner === 'function' && typeof timeout === 'number') {\n this.setIfNotSet(runner, timeout);\n }\n }\n dispose() {\n this.cancel();\n }\n cancel() {\n if (this._token !== -1) {\n clearTimeout(this._token);\n this._token = -1;\n }\n }\n cancelAndSet(runner, timeout) {\n this.cancel();\n this._token = setTimeout(() => {\n this._token = -1;\n runner();\n }, timeout);\n }\n setIfNotSet(runner, timeout) {\n if (this._token !== -1) {\n // timer is already set\n return;\n }\n this._token = setTimeout(() => {\n this._token = -1;\n runner();\n }, timeout);\n }\n}\nexport class IntervalTimer {\n constructor() {\n this._token = -1;\n }\n dispose() {\n this.cancel();\n }\n cancel() {\n if (this._token !== -1) {\n clearInterval(this._token);\n this._token = -1;\n }\n }\n cancelAndSet(runner, interval) {\n this.cancel();\n this._token = setInterval(() => {\n runner();\n }, interval);\n }\n}\nexport class RunOnceScheduler {\n constructor(runner, delay) {\n this.timeoutToken = -1;\n this.runner = runner;\n this.timeout = delay;\n this.timeoutHandler = this.onTimeout.bind(this);\n }\n /**\n * Dispose RunOnceScheduler\n */\n dispose() {\n this.cancel();\n this.runner = null;\n }\n /**\n * Cancel current scheduled runner (if any).\n */\n cancel() {\n if (this.isScheduled()) {\n clearTimeout(this.timeoutToken);\n this.timeoutToken = -1;\n }\n }\n /**\n * Cancel previous runner (if any) & schedule a new runner.\n */\n schedule(delay = this.timeout) {\n this.cancel();\n this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n }\n get delay() {\n return this.timeout;\n }\n set delay(value) {\n this.timeout = value;\n }\n /**\n * Returns true if scheduled.\n */\n isScheduled() {\n return this.timeoutToken !== -1;\n }\n onTimeout() {\n this.timeoutToken = -1;\n if (this.runner) {\n this.doRun();\n }\n }\n doRun() {\n if (this.runner) {\n this.runner();\n }\n }\n}\n/**\n * Execute the callback the next time the browser is idle\n */\nexport let runWhenIdle;\n(function () {\n if (typeof requestIdleCallback !== 'function' || typeof cancelIdleCallback !== 'function') {\n runWhenIdle = (runner) => {\n const handle = setTimeout(() => {\n const end = Date.now() + 15; // one frame at 64fps\n runner(Object.freeze({\n didTimeout: true,\n timeRemaining() {\n return Math.max(0, end - Date.now());\n }\n }));\n });\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n clearTimeout(handle);\n }\n };\n };\n }\n else {\n runWhenIdle = (runner, timeout) => {\n const handle = requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n cancelIdleCallback(handle);\n }\n };\n };\n }\n})();\n/**\n * An implementation of the \"idle-until-urgent\"-strategy as introduced\n * here: https://philipwalton.com/articles/idle-until-urgent/\n */\nexport class IdleValue {\n constructor(executor) {\n this._didRun = false;\n this._executor = () => {\n try {\n this._value = executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n };\n this._handle = runWhenIdle(() => this._executor());\n }\n dispose() {\n this._handle.dispose();\n }\n get value() {\n if (!this._didRun) {\n this._handle.dispose();\n this._executor();\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n get isInitialized() {\n return this._didRun;\n }\n}\n//#endregion\n//#region Promises\nexport var Promises;\n(function (Promises) {\n /**\n * A drop-in replacement for `Promise.all` with the only difference\n * that the method awaits every promise to either fulfill or reject.\n *\n * Similar to `Promise.all`, only the first error will be returned\n * if any.\n */\n function settled(promises) {\n return __awaiter(this, void 0, void 0, function* () {\n let firstError = undefined;\n const result = yield Promise.all(promises.map(promise => promise.then(value => value, error => {\n if (!firstError) {\n firstError = error;\n }\n return undefined; // do not rethrow so that other promises can settle\n })));\n if (typeof firstError !== 'undefined') {\n throw firstError;\n }\n return result; // cast is needed and protected by the `throw` above\n });\n }\n Promises.settled = settled;\n /**\n * A helper to create a new `Promise` with a body that is a promise\n * itself. By default, an error that raises from the async body will\n * end up as a unhandled rejection, so this utility properly awaits the\n * body and rejects the promise as a normal promise does without async\n * body.\n *\n * This method should only be used in rare cases where otherwise `async`\n * cannot be used (e.g. when callbacks are involved that require this).\n */\n function withAsyncBody(bodyFn) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n yield bodyFn(resolve, reject);\n }\n catch (error) {\n reject(error);\n }\n }));\n }\n Promises.withAsyncBody = withAsyncBody;\n})(Promises || (Promises = {}));\n//#endregion\n","/**\n * @returns whether the provided parameter is a JavaScript Array or not.\n */\nexport function isArray(array) {\n return Array.isArray(array);\n}\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str) {\n return (typeof str === 'string');\n}\n/**\n *\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj) {\n // The method can't do a type cast since there are type (like strings) which\n // are subclasses of any put not positvely matched by the function. Hence type\n // narrowing results in wrong results.\n return typeof obj === 'object'\n && obj !== null\n && !Array.isArray(obj)\n && !(obj instanceof RegExp)\n && !(obj instanceof Date);\n}\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj) {\n return (typeof obj === 'number' && !isNaN(obj));\n}\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj) {\n return (obj === true || obj === false);\n}\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj) {\n return (typeof obj === 'undefined');\n}\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined(arg) {\n return !isUndefinedOrNull(arg);\n}\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj) {\n return (isUndefined(obj) || obj === null);\n}\nexport function assertType(condition, type) {\n if (!condition) {\n throw new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n }\n}\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n */\nexport function assertIsDefined(arg) {\n if (isUndefinedOrNull(arg)) {\n throw new Error('Assertion Failed: argument is undefined or null');\n }\n return arg;\n}\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj) {\n return (typeof obj === 'function');\n}\nexport function validateConstraints(args, constraints) {\n const len = Math.min(args.length, constraints.length);\n for (let i = 0; i < len; i++) {\n validateConstraint(args[i], constraints[i]);\n }\n}\nexport function validateConstraint(arg, constraint) {\n if (isString(constraint)) {\n if (typeof arg !== constraint) {\n throw new Error(`argument does not match constraint: typeof ${constraint}`);\n }\n }\n else if (isFunction(constraint)) {\n try {\n if (arg instanceof constraint) {\n return;\n }\n }\n catch (_a) {\n // ignore\n }\n if (!isUndefinedOrNull(arg) && arg.constructor === constraint) {\n return;\n }\n if (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n return;\n }\n throw new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n }\n}\nexport function getAllPropertyNames(obj) {\n let res = [];\n let proto = Object.getPrototypeOf(obj);\n while (Object.prototype !== proto) {\n res = res.concat(Object.getOwnPropertyNames(proto));\n proto = Object.getPrototypeOf(proto);\n }\n return res;\n}\nexport function getAllMethodNames(obj) {\n const methods = [];\n for (const prop of getAllPropertyNames(obj)) {\n if (typeof obj[prop] === 'function') {\n methods.push(prop);\n }\n }\n return methods;\n}\nexport function createProxyObject(methodNames, invoke) {\n const createProxyMethod = (method) => {\n return function () {\n const args = Array.prototype.slice.call(arguments, 0);\n return invoke(method, args);\n };\n };\n let result = {};\n for (const methodName of methodNames) {\n result[methodName] = createProxyMethod(methodName);\n }\n return result;\n}\n/**\n * Converts null to undefined, passes all other values through.\n */\nexport function withNullAsUndefined(x) {\n return x === null ? undefined : x;\n}\nexport function assertNever(value, message = 'Unreachable') {\n throw new Error(message);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// ------ internal util\nexport var _util;\n(function (_util) {\n _util.serviceIds = new Map();\n _util.DI_TARGET = '$di$target';\n _util.DI_DEPENDENCIES = '$di$dependencies';\n function getServiceDependencies(ctor) {\n return ctor[_util.DI_DEPENDENCIES] || [];\n }\n _util.getServiceDependencies = getServiceDependencies;\n})(_util || (_util = {}));\nexport const IInstantiationService = createDecorator('instantiationService');\nfunction storeServiceDependency(id, target, index, optional) {\n if (target[_util.DI_TARGET] === target) {\n target[_util.DI_DEPENDENCIES].push({ id, index, optional });\n }\n else {\n target[_util.DI_DEPENDENCIES] = [{ id, index, optional }];\n target[_util.DI_TARGET] = target;\n }\n}\n/**\n * The *only* valid way to create a {{ServiceIdentifier}}.\n */\nexport function createDecorator(serviceId) {\n if (_util.serviceIds.has(serviceId)) {\n return _util.serviceIds.get(serviceId);\n }\n const id = function (target, key, index) {\n if (arguments.length !== 3) {\n throw new Error('@IServiceName-decorator can only be used to decorate a parameter');\n }\n storeServiceDependency(id, target, index, false);\n };\n id.toString = () => serviceId;\n _util.serviceIds.set(serviceId, id);\n return id;\n}\n/**\n * Mark a service dependency as optional.\n * @deprecated Avoid, see https://github.com/microsoft/vscode/issues/119440\n */\nexport function optional(serviceIdentifier) {\n return function (target, key, index) {\n if (arguments.length !== 3) {\n throw new Error('@optional-decorator can only be used to decorate a parameter');\n }\n storeServiceDependency(serviceIdentifier, target, index, true);\n };\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/**\n * Returns the last element of an array.\n * @param array The array.\n * @param n Which element from the end (default is zero).\n */\nexport function tail(array, n = 0) {\n return array[array.length - (1 + n)];\n}\nexport function tail2(arr) {\n if (arr.length === 0) {\n throw new Error('Invalid tail call');\n }\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function equals(one, other, itemEquals = (a, b) => a === b) {\n if (one === other) {\n return true;\n }\n if (!one || !other) {\n return false;\n }\n if (one.length !== other.length) {\n return false;\n }\n for (let i = 0, len = one.length; i < len; i++) {\n if (!itemEquals(one[i], other[i])) {\n return false;\n }\n }\n return true;\n}\nexport function binarySearch(array, key, comparator) {\n let low = 0, high = array.length - 1;\n while (low <= high) {\n const mid = ((low + high) / 2) | 0;\n const comp = comparator(array[mid], key);\n if (comp < 0) {\n low = mid + 1;\n }\n else if (comp > 0) {\n high = mid - 1;\n }\n else {\n return mid;\n }\n }\n return -(low + 1);\n}\n/**\n * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false\n * are located before all elements where p(x) is true.\n * @returns the least x for which p(x) is true or array.length if no element fullfills the given function.\n */\nexport function findFirstInSorted(array, p) {\n let low = 0, high = array.length;\n if (high === 0) {\n return 0; // no children\n }\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (p(array[mid])) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n return low;\n}\nexport function quickSelect(nth, data, compare) {\n nth = nth | 0;\n if (nth >= data.length) {\n throw new TypeError('invalid index');\n }\n let pivotValue = data[Math.floor(data.length * Math.random())];\n let lower = [];\n let higher = [];\n let pivots = [];\n for (let value of data) {\n const val = compare(value, pivotValue);\n if (val < 0) {\n lower.push(value);\n }\n else if (val > 0) {\n higher.push(value);\n }\n else {\n pivots.push(value);\n }\n }\n if (nth < lower.length) {\n return quickSelect(nth, lower, compare);\n }\n else if (nth < lower.length + pivots.length) {\n return pivots[0];\n }\n else {\n return quickSelect(nth - (lower.length + pivots.length), higher, compare);\n }\n}\nexport function groupBy(data, compare) {\n const result = [];\n let currentGroup = undefined;\n for (const element of data.slice(0).sort(compare)) {\n if (!currentGroup || compare(currentGroup[0], element) !== 0) {\n currentGroup = [element];\n result.push(currentGroup);\n }\n else {\n currentGroup.push(element);\n }\n }\n return result;\n}\n/**\n * @returns New array with all falsy values removed. The original array IS NOT modified.\n */\nexport function coalesce(array) {\n return array.filter(e => !!e);\n}\n/**\n * @returns false if the provided object is an array and not empty.\n */\nexport function isFalsyOrEmpty(obj) {\n return !Array.isArray(obj) || obj.length === 0;\n}\nexport function isNonEmptyArray(obj) {\n return Array.isArray(obj) && obj.length > 0;\n}\n/**\n * Removes duplicates from the given array. The optional keyFn allows to specify\n * how elements are checked for equality by returning an alternate value for each.\n */\nexport function distinct(array, keyFn = value => value) {\n const seen = new Set();\n return array.filter(element => {\n const key = keyFn(element);\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n}\nexport function findLast(arr, predicate) {\n const idx = lastIndex(arr, predicate);\n if (idx === -1) {\n return undefined;\n }\n return arr[idx];\n}\nexport function lastIndex(array, fn) {\n for (let i = array.length - 1; i >= 0; i--) {\n const element = array[i];\n if (fn(element)) {\n return i;\n }\n }\n return -1;\n}\nexport function firstOrDefault(array, notFoundValue) {\n return array.length > 0 ? array[0] : notFoundValue;\n}\nexport function flatten(arr) {\n return [].concat(...arr);\n}\nexport function range(arg, to) {\n let from = typeof to === 'number' ? arg : 0;\n if (typeof to === 'number') {\n from = arg;\n }\n else {\n from = 0;\n to = arg;\n }\n const result = [];\n if (from <= to) {\n for (let i = from; i < to; i++) {\n result.push(i);\n }\n }\n else {\n for (let i = from; i > to; i--) {\n result.push(i);\n }\n }\n return result;\n}\n/**\n * Insert `insertArr` inside `target` at `insertIndex`.\n * Please don't touch unless you understand https://jsperf.com/inserting-an-array-within-an-array\n */\nexport function arrayInsert(target, insertIndex, insertArr) {\n const before = target.slice(0, insertIndex);\n const after = target.slice(insertIndex);\n return before.concat(insertArr, after);\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.unshift(value);\n }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.push(value);\n }\n}\nexport function asArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Insert the new items in the array.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start inserting elements.\n * @param newItems The items to be inserted\n */\nexport function insertInto(array, start, newItems) {\n const startIdx = getActualStartIndex(array, start);\n const originalLength = array.length;\n const newItemsLength = newItems.length;\n array.length = originalLength + newItemsLength;\n // Move the items after the start index, start from the end so that we don't overwrite any value.\n for (let i = originalLength - 1; i >= startIdx; i--) {\n array[i + newItemsLength] = array[i];\n }\n for (let i = 0; i < newItemsLength; i++) {\n array[i + startIdx] = newItems[i];\n }\n}\n/**\n * Removes elements from an array and inserts new elements in their place, returning the deleted elements. Alternative to the native Array.splice method, it\n * can only support limited number of items due to the maximum call stack size limit.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns An array containing the elements that were deleted.\n */\nexport function splice(array, start, deleteCount, newItems) {\n const index = getActualStartIndex(array, start);\n const result = array.splice(index, deleteCount);\n insertInto(array, index, newItems);\n return result;\n}\n/**\n * Determine the actual start index (same logic as the native splice() or slice())\n * If greater than the length of the array, start will be set to the length of the array. In this case, no element will be deleted but the method will behave as an adding function, adding as many element as item[n*] provided.\n * If negative, it will begin that many elements from the end of the array. (In this case, the origin -1, meaning -n is the index of the nth last element, and is therefore equivalent to the index of array.length - n.) If array.length + start is less than 0, it will begin from index 0.\n * @param array The target array.\n * @param start The operation index.\n */\nfunction getActualStartIndex(array, start) {\n return start < 0 ? Math.max(start + array.length, 0) : Math.min(start, array.length);\n}\nexport class ArrayQueue {\n /**\n * Constructs a queue that is backed by the given array. Runtime is O(1).\n */\n constructor(items) {\n this.items = items;\n this.firstIdx = 0;\n this.lastIdx = this.items.length - 1;\n }\n /**\n * Consumes elements from the beginning of the queue as long as the predicate returns true.\n * If no elements were consumed, `null` is returned. Has a runtime of O(result.length).\n */\n takeWhile(predicate) {\n // P(k) := k <= this.lastIdx && predicate(this.items[k])\n // Find s := min { k | k >= this.firstIdx && !P(k) } and return this.data[this.firstIdx...s)\n let startIdx = this.firstIdx;\n while (startIdx < this.items.length && predicate(this.items[startIdx])) {\n startIdx++;\n }\n const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx);\n this.firstIdx = startIdx;\n return result;\n }\n /**\n * Consumes elements from the end of the queue as long as the predicate returns true.\n * If no elements were consumed, `null` is returned.\n * The result has the same order as the underlying array!\n */\n takeFromEndWhile(predicate) {\n // P(k) := this.firstIdx >= k && predicate(this.items[k])\n // Find s := max { k | k <= this.lastIdx && !P(k) } and return this.data(s...this.lastIdx]\n let endIdx = this.lastIdx;\n while (endIdx >= 0 && predicate(this.items[endIdx])) {\n endIdx--;\n }\n const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1);\n this.lastIdx = endIdx;\n return result;\n }\n peek() {\n return this.items[this.firstIdx];\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nclass Registry {\n constructor() {\n this._icons = new Map();\n this._onDidRegister = new Emitter();\n }\n add(icon) {\n const existing = this._icons.get(icon.id);\n if (!existing) {\n this._icons.set(icon.id, icon);\n this._onDidRegister.fire(icon);\n }\n else if (icon.description) {\n existing.description = icon.description;\n }\n else {\n console.error(`Duplicate registration of codicon ${icon.id}`);\n }\n }\n get(id) {\n return this._icons.get(id);\n }\n get all() {\n return this._icons.values();\n }\n get onDidRegister() {\n return this._onDidRegister.event;\n }\n}\nconst _registry = new Registry();\nexport const iconRegistry = _registry;\nexport function registerCodicon(id, def) {\n return new Codicon(id, def);\n}\n// Selects all codicon names encapsulated in the `$()` syntax and wraps the\n// results with spaces so that screen readers can read the text better.\nexport function getCodiconAriaLabel(text) {\n if (!text) {\n return '';\n }\n return text.replace(/\\$\\((.*?)\\)/g, (_match, codiconName) => ` ${codiconName} `).trim();\n}\nexport class Codicon {\n constructor(id, definition, description) {\n this.id = id;\n this.definition = definition;\n this.description = description;\n _registry.add(this);\n }\n get classNames() { return 'codicon codicon-' + this.id; }\n // classNamesArray is useful for migrating to ES6 classlist\n get classNamesArray() { return ['codicon', 'codicon-' + this.id]; }\n get cssSelector() { return '.codicon.codicon-' + this.id; }\n}\nexport var CSSIcon;\n(function (CSSIcon) {\n CSSIcon.iconNameSegment = '[A-Za-z0-9]+';\n CSSIcon.iconNameExpression = '[A-Za-z0-9\\\\-]+';\n CSSIcon.iconModifierExpression = '~[A-Za-z]+';\n const cssIconIdRegex = new RegExp(`^(${CSSIcon.iconNameExpression})(${CSSIcon.iconModifierExpression})?$`);\n function asClassNameArray(icon) {\n if (icon instanceof Codicon) {\n return ['codicon', 'codicon-' + icon.id];\n }\n const match = cssIconIdRegex.exec(icon.id);\n if (!match) {\n return asClassNameArray(Codicon.error);\n }\n let [, id, modifier] = match;\n const classNames = ['codicon', 'codicon-' + id];\n if (modifier) {\n classNames.push('codicon-modifier-' + modifier.substr(1));\n }\n return classNames;\n }\n CSSIcon.asClassNameArray = asClassNameArray;\n function asClassName(icon) {\n return asClassNameArray(icon).join(' ');\n }\n CSSIcon.asClassName = asClassName;\n function asCSSSelector(icon) {\n return '.' + asClassNameArray(icon).join('.');\n }\n CSSIcon.asCSSSelector = asCSSSelector;\n})(CSSIcon || (CSSIcon = {}));\n(function (Codicon) {\n // built-in icons, with image name\n Codicon.add = new Codicon('add', { fontCharacter: '\\\\ea60' });\n Codicon.plus = new Codicon('plus', Codicon.add.definition);\n Codicon.gistNew = new Codicon('gist-new', Codicon.add.definition);\n Codicon.repoCreate = new Codicon('repo-create', Codicon.add.definition);\n Codicon.lightbulb = new Codicon('lightbulb', { fontCharacter: '\\\\ea61' });\n Codicon.lightBulb = new Codicon('light-bulb', { fontCharacter: '\\\\ea61' });\n Codicon.repo = new Codicon('repo', { fontCharacter: '\\\\ea62' });\n Codicon.repoDelete = new Codicon('repo-delete', { fontCharacter: '\\\\ea62' });\n Codicon.gistFork = new Codicon('gist-fork', { fontCharacter: '\\\\ea63' });\n Codicon.repoForked = new Codicon('repo-forked', { fontCharacter: '\\\\ea63' });\n Codicon.gitPullRequest = new Codicon('git-pull-request', { fontCharacter: '\\\\ea64' });\n Codicon.gitPullRequestAbandoned = new Codicon('git-pull-request-abandoned', { fontCharacter: '\\\\ea64' });\n Codicon.recordKeys = new Codicon('record-keys', { fontCharacter: '\\\\ea65' });\n Codicon.keyboard = new Codicon('keyboard', { fontCharacter: '\\\\ea65' });\n Codicon.tag = new Codicon('tag', { fontCharacter: '\\\\ea66' });\n Codicon.tagAdd = new Codicon('tag-add', { fontCharacter: '\\\\ea66' });\n Codicon.tagRemove = new Codicon('tag-remove', { fontCharacter: '\\\\ea66' });\n Codicon.person = new Codicon('person', { fontCharacter: '\\\\ea67' });\n Codicon.personFollow = new Codicon('person-follow', { fontCharacter: '\\\\ea67' });\n Codicon.personOutline = new Codicon('person-outline', { fontCharacter: '\\\\ea67' });\n Codicon.personFilled = new Codicon('person-filled', { fontCharacter: '\\\\ea67' });\n Codicon.gitBranch = new Codicon('git-branch', { fontCharacter: '\\\\ea68' });\n Codicon.gitBranchCreate = new Codicon('git-branch-create', { fontCharacter: '\\\\ea68' });\n Codicon.gitBranchDelete = new Codicon('git-branch-delete', { fontCharacter: '\\\\ea68' });\n Codicon.sourceControl = new Codicon('source-control', { fontCharacter: '\\\\ea68' });\n Codicon.mirror = new Codicon('mirror', { fontCharacter: '\\\\ea69' });\n Codicon.mirrorPublic = new Codicon('mirror-public', { fontCharacter: '\\\\ea69' });\n Codicon.star = new Codicon('star', { fontCharacter: '\\\\ea6a' });\n Codicon.starAdd = new Codicon('star-add', { fontCharacter: '\\\\ea6a' });\n Codicon.starDelete = new Codicon('star-delete', { fontCharacter: '\\\\ea6a' });\n Codicon.starEmpty = new Codicon('star-empty', { fontCharacter: '\\\\ea6a' });\n Codicon.comment = new Codicon('comment', { fontCharacter: '\\\\ea6b' });\n Codicon.commentAdd = new Codicon('comment-add', { fontCharacter: '\\\\ea6b' });\n Codicon.alert = new Codicon('alert', { fontCharacter: '\\\\ea6c' });\n Codicon.warning = new Codicon('warning', { fontCharacter: '\\\\ea6c' });\n Codicon.search = new Codicon('search', { fontCharacter: '\\\\ea6d' });\n Codicon.searchSave = new Codicon('search-save', { fontCharacter: '\\\\ea6d' });\n Codicon.logOut = new Codicon('log-out', { fontCharacter: '\\\\ea6e' });\n Codicon.signOut = new Codicon('sign-out', { fontCharacter: '\\\\ea6e' });\n Codicon.logIn = new Codicon('log-in', { fontCharacter: '\\\\ea6f' });\n Codicon.signIn = new Codicon('sign-in', { fontCharacter: '\\\\ea6f' });\n Codicon.eye = new Codicon('eye', { fontCharacter: '\\\\ea70' });\n Codicon.eyeUnwatch = new Codicon('eye-unwatch', { fontCharacter: '\\\\ea70' });\n Codicon.eyeWatch = new Codicon('eye-watch', { fontCharacter: '\\\\ea70' });\n Codicon.circleFilled = new Codicon('circle-filled', { fontCharacter: '\\\\ea71' });\n Codicon.primitiveDot = new Codicon('primitive-dot', { fontCharacter: '\\\\ea71' });\n Codicon.closeDirty = new Codicon('close-dirty', { fontCharacter: '\\\\ea71' });\n Codicon.debugBreakpoint = new Codicon('debug-breakpoint', { fontCharacter: '\\\\ea71' });\n Codicon.debugBreakpointDisabled = new Codicon('debug-breakpoint-disabled', { fontCharacter: '\\\\ea71' });\n Codicon.debugHint = new Codicon('debug-hint', { fontCharacter: '\\\\ea71' });\n Codicon.primitiveSquare = new Codicon('primitive-square', { fontCharacter: '\\\\ea72' });\n Codicon.edit = new Codicon('edit', { fontCharacter: '\\\\ea73' });\n Codicon.pencil = new Codicon('pencil', { fontCharacter: '\\\\ea73' });\n Codicon.info = new Codicon('info', { fontCharacter: '\\\\ea74' });\n Codicon.issueOpened = new Codicon('issue-opened', { fontCharacter: '\\\\ea74' });\n Codicon.gistPrivate = new Codicon('gist-private', { fontCharacter: '\\\\ea75' });\n Codicon.gitForkPrivate = new Codicon('git-fork-private', { fontCharacter: '\\\\ea75' });\n Codicon.lock = new Codicon('lock', { fontCharacter: '\\\\ea75' });\n Codicon.mirrorPrivate = new Codicon('mirror-private', { fontCharacter: '\\\\ea75' });\n Codicon.close = new Codicon('close', { fontCharacter: '\\\\ea76' });\n Codicon.removeClose = new Codicon('remove-close', { fontCharacter: '\\\\ea76' });\n Codicon.x = new Codicon('x', { fontCharacter: '\\\\ea76' });\n Codicon.repoSync = new Codicon('repo-sync', { fontCharacter: '\\\\ea77' });\n Codicon.sync = new Codicon('sync', { fontCharacter: '\\\\ea77' });\n Codicon.clone = new Codicon('clone', { fontCharacter: '\\\\ea78' });\n Codicon.desktopDownload = new Codicon('desktop-download', { fontCharacter: '\\\\ea78' });\n Codicon.beaker = new Codicon('beaker', { fontCharacter: '\\\\ea79' });\n Codicon.microscope = new Codicon('microscope', { fontCharacter: '\\\\ea79' });\n Codicon.vm = new Codicon('vm', { fontCharacter: '\\\\ea7a' });\n Codicon.deviceDesktop = new Codicon('device-desktop', { fontCharacter: '\\\\ea7a' });\n Codicon.file = new Codicon('file', { fontCharacter: '\\\\ea7b' });\n Codicon.fileText = new Codicon('file-text', { fontCharacter: '\\\\ea7b' });\n Codicon.more = new Codicon('more', { fontCharacter: '\\\\ea7c' });\n Codicon.ellipsis = new Codicon('ellipsis', { fontCharacter: '\\\\ea7c' });\n Codicon.kebabHorizontal = new Codicon('kebab-horizontal', { fontCharacter: '\\\\ea7c' });\n Codicon.mailReply = new Codicon('mail-reply', { fontCharacter: '\\\\ea7d' });\n Codicon.reply = new Codicon('reply', { fontCharacter: '\\\\ea7d' });\n Codicon.organization = new Codicon('organization', { fontCharacter: '\\\\ea7e' });\n Codicon.organizationFilled = new Codicon('organization-filled', { fontCharacter: '\\\\ea7e' });\n Codicon.organizationOutline = new Codicon('organization-outline', { fontCharacter: '\\\\ea7e' });\n Codicon.newFile = new Codicon('new-file', { fontCharacter: '\\\\ea7f' });\n Codicon.fileAdd = new Codicon('file-add', { fontCharacter: '\\\\ea7f' });\n Codicon.newFolder = new Codicon('new-folder', { fontCharacter: '\\\\ea80' });\n Codicon.fileDirectoryCreate = new Codicon('file-directory-create', { fontCharacter: '\\\\ea80' });\n Codicon.trash = new Codicon('trash', { fontCharacter: '\\\\ea81' });\n Codicon.trashcan = new Codicon('trashcan', { fontCharacter: '\\\\ea81' });\n Codicon.history = new Codicon('history', { fontCharacter: '\\\\ea82' });\n Codicon.clock = new Codicon('clock', { fontCharacter: '\\\\ea82' });\n Codicon.folder = new Codicon('folder', { fontCharacter: '\\\\ea83' });\n Codicon.fileDirectory = new Codicon('file-directory', { fontCharacter: '\\\\ea83' });\n Codicon.symbolFolder = new Codicon('symbol-folder', { fontCharacter: '\\\\ea83' });\n Codicon.logoGithub = new Codicon('logo-github', { fontCharacter: '\\\\ea84' });\n Codicon.markGithub = new Codicon('mark-github', { fontCharacter: '\\\\ea84' });\n Codicon.github = new Codicon('github', { fontCharacter: '\\\\ea84' });\n Codicon.terminal = new Codicon('terminal', { fontCharacter: '\\\\ea85' });\n Codicon.console = new Codicon('console', { fontCharacter: '\\\\ea85' });\n Codicon.repl = new Codicon('repl', { fontCharacter: '\\\\ea85' });\n Codicon.zap = new Codicon('zap', { fontCharacter: '\\\\ea86' });\n Codicon.symbolEvent = new Codicon('symbol-event', { fontCharacter: '\\\\ea86' });\n Codicon.error = new Codicon('error', { fontCharacter: '\\\\ea87' });\n Codicon.stop = new Codicon('stop', { fontCharacter: '\\\\ea87' });\n Codicon.variable = new Codicon('variable', { fontCharacter: '\\\\ea88' });\n Codicon.symbolVariable = new Codicon('symbol-variable', { fontCharacter: '\\\\ea88' });\n Codicon.array = new Codicon('array', { fontCharacter: '\\\\ea8a' });\n Codicon.symbolArray = new Codicon('symbol-array', { fontCharacter: '\\\\ea8a' });\n Codicon.symbolModule = new Codicon('symbol-module', { fontCharacter: '\\\\ea8b' });\n Codicon.symbolPackage = new Codicon('symbol-package', { fontCharacter: '\\\\ea8b' });\n Codicon.symbolNamespace = new Codicon('symbol-namespace', { fontCharacter: '\\\\ea8b' });\n Codicon.symbolObject = new Codicon('symbol-object', { fontCharacter: '\\\\ea8b' });\n Codicon.symbolMethod = new Codicon('symbol-method', { fontCharacter: '\\\\ea8c' });\n Codicon.symbolFunction = new Codicon('symbol-function', { fontCharacter: '\\\\ea8c' });\n Codicon.symbolConstructor = new Codicon('symbol-constructor', { fontCharacter: '\\\\ea8c' });\n Codicon.symbolBoolean = new Codicon('symbol-boolean', { fontCharacter: '\\\\ea8f' });\n Codicon.symbolNull = new Codicon('symbol-null', { fontCharacter: '\\\\ea8f' });\n Codicon.symbolNumeric = new Codicon('symbol-numeric', { fontCharacter: '\\\\ea90' });\n Codicon.symbolNumber = new Codicon('symbol-number', { fontCharacter: '\\\\ea90' });\n Codicon.symbolStructure = new Codicon('symbol-structure', { fontCharacter: '\\\\ea91' });\n Codicon.symbolStruct = new Codicon('symbol-struct', { fontCharacter: '\\\\ea91' });\n Codicon.symbolParameter = new Codicon('symbol-parameter', { fontCharacter: '\\\\ea92' });\n Codicon.symbolTypeParameter = new Codicon('symbol-type-parameter', { fontCharacter: '\\\\ea92' });\n Codicon.symbolKey = new Codicon('symbol-key', { fontCharacter: '\\\\ea93' });\n Codicon.symbolText = new Codicon('symbol-text', { fontCharacter: '\\\\ea93' });\n Codicon.symbolReference = new Codicon('symbol-reference', { fontCharacter: '\\\\ea94' });\n Codicon.goToFile = new Codicon('go-to-file', { fontCharacter: '\\\\ea94' });\n Codicon.symbolEnum = new Codicon('symbol-enum', { fontCharacter: '\\\\ea95' });\n Codicon.symbolValue = new Codicon('symbol-value', { fontCharacter: '\\\\ea95' });\n Codicon.symbolRuler = new Codicon('symbol-ruler', { fontCharacter: '\\\\ea96' });\n Codicon.symbolUnit = new Codicon('symbol-unit', { fontCharacter: '\\\\ea96' });\n Codicon.activateBreakpoints = new Codicon('activate-breakpoints', { fontCharacter: '\\\\ea97' });\n Codicon.archive = new Codicon('archive', { fontCharacter: '\\\\ea98' });\n Codicon.arrowBoth = new Codicon('arrow-both', { fontCharacter: '\\\\ea99' });\n Codicon.arrowDown = new Codicon('arrow-down', { fontCharacter: '\\\\ea9a' });\n Codicon.arrowLeft = new Codicon('arrow-left', { fontCharacter: '\\\\ea9b' });\n Codicon.arrowRight = new Codicon('arrow-right', { fontCharacter: '\\\\ea9c' });\n Codicon.arrowSmallDown = new Codicon('arrow-small-down', { fontCharacter: '\\\\ea9d' });\n Codicon.arrowSmallLeft = new Codicon('arrow-small-left', { fontCharacter: '\\\\ea9e' });\n Codicon.arrowSmallRight = new Codicon('arrow-small-right', { fontCharacter: '\\\\ea9f' });\n Codicon.arrowSmallUp = new Codicon('arrow-small-up', { fontCharacter: '\\\\eaa0' });\n Codicon.arrowUp = new Codicon('arrow-up', { fontCharacter: '\\\\eaa1' });\n Codicon.bell = new Codicon('bell', { fontCharacter: '\\\\eaa2' });\n Codicon.bold = new Codicon('bold', { fontCharacter: '\\\\eaa3' });\n Codicon.book = new Codicon('book', { fontCharacter: '\\\\eaa4' });\n Codicon.bookmark = new Codicon('bookmark', { fontCharacter: '\\\\eaa5' });\n Codicon.debugBreakpointConditionalUnverified = new Codicon('debug-breakpoint-conditional-unverified', { fontCharacter: '\\\\eaa6' });\n Codicon.debugBreakpointConditional = new Codicon('debug-breakpoint-conditional', { fontCharacter: '\\\\eaa7' });\n Codicon.debugBreakpointConditionalDisabled = new Codicon('debug-breakpoint-conditional-disabled', { fontCharacter: '\\\\eaa7' });\n Codicon.debugBreakpointDataUnverified = new Codicon('debug-breakpoint-data-unverified', { fontCharacter: '\\\\eaa8' });\n Codicon.debugBreakpointData = new Codicon('debug-breakpoint-data', { fontCharacter: '\\\\eaa9' });\n Codicon.debugBreakpointDataDisabled = new Codicon('debug-breakpoint-data-disabled', { fontCharacter: '\\\\eaa9' });\n Codicon.debugBreakpointLogUnverified = new Codicon('debug-breakpoint-log-unverified', { fontCharacter: '\\\\eaaa' });\n Codicon.debugBreakpointLog = new Codicon('debug-breakpoint-log', { fontCharacter: '\\\\eaab' });\n Codicon.debugBreakpointLogDisabled = new Codicon('debug-breakpoint-log-disabled', { fontCharacter: '\\\\eaab' });\n Codicon.briefcase = new Codicon('briefcase', { fontCharacter: '\\\\eaac' });\n Codicon.broadcast = new Codicon('broadcast', { fontCharacter: '\\\\eaad' });\n Codicon.browser = new Codicon('browser', { fontCharacter: '\\\\eaae' });\n Codicon.bug = new Codicon('bug', { fontCharacter: '\\\\eaaf' });\n Codicon.calendar = new Codicon('calendar', { fontCharacter: '\\\\eab0' });\n Codicon.caseSensitive = new Codicon('case-sensitive', { fontCharacter: '\\\\eab1' });\n Codicon.check = new Codicon('check', { fontCharacter: '\\\\eab2' });\n Codicon.checklist = new Codicon('checklist', { fontCharacter: '\\\\eab3' });\n Codicon.chevronDown = new Codicon('chevron-down', { fontCharacter: '\\\\eab4' });\n Codicon.dropDownButton = new Codicon('drop-down-button', Codicon.chevronDown.definition);\n Codicon.chevronLeft = new Codicon('chevron-left', { fontCharacter: '\\\\eab5' });\n Codicon.chevronRight = new Codicon('chevron-right', { fontCharacter: '\\\\eab6' });\n Codicon.chevronUp = new Codicon('chevron-up', { fontCharacter: '\\\\eab7' });\n Codicon.chromeClose = new Codicon('chrome-close', { fontCharacter: '\\\\eab8' });\n Codicon.chromeMaximize = new Codicon('chrome-maximize', { fontCharacter: '\\\\eab9' });\n Codicon.chromeMinimize = new Codicon('chrome-minimize', { fontCharacter: '\\\\eaba' });\n Codicon.chromeRestore = new Codicon('chrome-restore', { fontCharacter: '\\\\eabb' });\n Codicon.circleOutline = new Codicon('circle-outline', { fontCharacter: '\\\\eabc' });\n Codicon.debugBreakpointUnverified = new Codicon('debug-breakpoint-unverified', { fontCharacter: '\\\\eabc' });\n Codicon.circleSlash = new Codicon('circle-slash', { fontCharacter: '\\\\eabd' });\n Codicon.circuitBoard = new Codicon('circuit-board', { fontCharacter: '\\\\eabe' });\n Codicon.clearAll = new Codicon('clear-all', { fontCharacter: '\\\\eabf' });\n Codicon.clippy = new Codicon('clippy', { fontCharacter: '\\\\eac0' });\n Codicon.closeAll = new Codicon('close-all', { fontCharacter: '\\\\eac1' });\n Codicon.cloudDownload = new Codicon('cloud-download', { fontCharacter: '\\\\eac2' });\n Codicon.cloudUpload = new Codicon('cloud-upload', { fontCharacter: '\\\\eac3' });\n Codicon.code = new Codicon('code', { fontCharacter: '\\\\eac4' });\n Codicon.collapseAll = new Codicon('collapse-all', { fontCharacter: '\\\\eac5' });\n Codicon.colorMode = new Codicon('color-mode', { fontCharacter: '\\\\eac6' });\n Codicon.commentDiscussion = new Codicon('comment-discussion', { fontCharacter: '\\\\eac7' });\n Codicon.compareChanges = new Codicon('compare-changes', { fontCharacter: '\\\\eafd' });\n Codicon.creditCard = new Codicon('credit-card', { fontCharacter: '\\\\eac9' });\n Codicon.dash = new Codicon('dash', { fontCharacter: '\\\\eacc' });\n Codicon.dashboard = new Codicon('dashboard', { fontCharacter: '\\\\eacd' });\n Codicon.database = new Codicon('database', { fontCharacter: '\\\\eace' });\n Codicon.debugContinue = new Codicon('debug-continue', { fontCharacter: '\\\\eacf' });\n Codicon.debugDisconnect = new Codicon('debug-disconnect', { fontCharacter: '\\\\ead0' });\n Codicon.debugPause = new Codicon('debug-pause', { fontCharacter: '\\\\ead1' });\n Codicon.debugRestart = new Codicon('debug-restart', { fontCharacter: '\\\\ead2' });\n Codicon.debugStart = new Codicon('debug-start', { fontCharacter: '\\\\ead3' });\n Codicon.debugStepInto = new Codicon('debug-step-into', { fontCharacter: '\\\\ead4' });\n Codicon.debugStepOut = new Codicon('debug-step-out', { fontCharacter: '\\\\ead5' });\n Codicon.debugStepOver = new Codicon('debug-step-over', { fontCharacter: '\\\\ead6' });\n Codicon.debugStop = new Codicon('debug-stop', { fontCharacter: '\\\\ead7' });\n Codicon.debug = new Codicon('debug', { fontCharacter: '\\\\ead8' });\n Codicon.deviceCameraVideo = new Codicon('device-camera-video', { fontCharacter: '\\\\ead9' });\n Codicon.deviceCamera = new Codicon('device-camera', { fontCharacter: '\\\\eada' });\n Codicon.deviceMobile = new Codicon('device-mobile', { fontCharacter: '\\\\eadb' });\n Codicon.diffAdded = new Codicon('diff-added', { fontCharacter: '\\\\eadc' });\n Codicon.diffIgnored = new Codicon('diff-ignored', { fontCharacter: '\\\\eadd' });\n Codicon.diffModified = new Codicon('diff-modified', { fontCharacter: '\\\\eade' });\n Codicon.diffRemoved = new Codicon('diff-removed', { fontCharacter: '\\\\eadf' });\n Codicon.diffRenamed = new Codicon('diff-renamed', { fontCharacter: '\\\\eae0' });\n Codicon.diff = new Codicon('diff', { fontCharacter: '\\\\eae1' });\n Codicon.discard = new Codicon('discard', { fontCharacter: '\\\\eae2' });\n Codicon.editorLayout = new Codicon('editor-layout', { fontCharacter: '\\\\eae3' });\n Codicon.emptyWindow = new Codicon('empty-window', { fontCharacter: '\\\\eae4' });\n Codicon.exclude = new Codicon('exclude', { fontCharacter: '\\\\eae5' });\n Codicon.extensions = new Codicon('extensions', { fontCharacter: '\\\\eae6' });\n Codicon.eyeClosed = new Codicon('eye-closed', { fontCharacter: '\\\\eae7' });\n Codicon.fileBinary = new Codicon('file-binary', { fontCharacter: '\\\\eae8' });\n Codicon.fileCode = new Codicon('file-code', { fontCharacter: '\\\\eae9' });\n Codicon.fileMedia = new Codicon('file-media', { fontCharacter: '\\\\eaea' });\n Codicon.filePdf = new Codicon('file-pdf', { fontCharacter: '\\\\eaeb' });\n Codicon.fileSubmodule = new Codicon('file-submodule', { fontCharacter: '\\\\eaec' });\n Codicon.fileSymlinkDirectory = new Codicon('file-symlink-directory', { fontCharacter: '\\\\eaed' });\n Codicon.fileSymlinkFile = new Codicon('file-symlink-file', { fontCharacter: '\\\\eaee' });\n Codicon.fileZip = new Codicon('file-zip', { fontCharacter: '\\\\eaef' });\n Codicon.files = new Codicon('files', { fontCharacter: '\\\\eaf0' });\n Codicon.filter = new Codicon('filter', { fontCharacter: '\\\\eaf1' });\n Codicon.flame = new Codicon('flame', { fontCharacter: '\\\\eaf2' });\n Codicon.foldDown = new Codicon('fold-down', { fontCharacter: '\\\\eaf3' });\n Codicon.foldUp = new Codicon('fold-up', { fontCharacter: '\\\\eaf4' });\n Codicon.fold = new Codicon('fold', { fontCharacter: '\\\\eaf5' });\n Codicon.folderActive = new Codicon('folder-active', { fontCharacter: '\\\\eaf6' });\n Codicon.folderOpened = new Codicon('folder-opened', { fontCharacter: '\\\\eaf7' });\n Codicon.gear = new Codicon('gear', { fontCharacter: '\\\\eaf8' });\n Codicon.gift = new Codicon('gift', { fontCharacter: '\\\\eaf9' });\n Codicon.gistSecret = new Codicon('gist-secret', { fontCharacter: '\\\\eafa' });\n Codicon.gist = new Codicon('gist', { fontCharacter: '\\\\eafb' });\n Codicon.gitCommit = new Codicon('git-commit', { fontCharacter: '\\\\eafc' });\n Codicon.gitCompare = new Codicon('git-compare', { fontCharacter: '\\\\eafd' });\n Codicon.gitMerge = new Codicon('git-merge', { fontCharacter: '\\\\eafe' });\n Codicon.githubAction = new Codicon('github-action', { fontCharacter: '\\\\eaff' });\n Codicon.githubAlt = new Codicon('github-alt', { fontCharacter: '\\\\eb00' });\n Codicon.globe = new Codicon('globe', { fontCharacter: '\\\\eb01' });\n Codicon.grabber = new Codicon('grabber', { fontCharacter: '\\\\eb02' });\n Codicon.graph = new Codicon('graph', { fontCharacter: '\\\\eb03' });\n Codicon.gripper = new Codicon('gripper', { fontCharacter: '\\\\eb04' });\n Codicon.heart = new Codicon('heart', { fontCharacter: '\\\\eb05' });\n Codicon.home = new Codicon('home', { fontCharacter: '\\\\eb06' });\n Codicon.horizontalRule = new Codicon('horizontal-rule', { fontCharacter: '\\\\eb07' });\n Codicon.hubot = new Codicon('hubot', { fontCharacter: '\\\\eb08' });\n Codicon.inbox = new Codicon('inbox', { fontCharacter: '\\\\eb09' });\n Codicon.issueClosed = new Codicon('issue-closed', { fontCharacter: '\\\\eba4' });\n Codicon.issueReopened = new Codicon('issue-reopened', { fontCharacter: '\\\\eb0b' });\n Codicon.issues = new Codicon('issues', { fontCharacter: '\\\\eb0c' });\n Codicon.italic = new Codicon('italic', { fontCharacter: '\\\\eb0d' });\n Codicon.jersey = new Codicon('jersey', { fontCharacter: '\\\\eb0e' });\n Codicon.json = new Codicon('json', { fontCharacter: '\\\\eb0f' });\n Codicon.kebabVertical = new Codicon('kebab-vertical', { fontCharacter: '\\\\eb10' });\n Codicon.key = new Codicon('key', { fontCharacter: '\\\\eb11' });\n Codicon.law = new Codicon('law', { fontCharacter: '\\\\eb12' });\n Codicon.lightbulbAutofix = new Codicon('lightbulb-autofix', { fontCharacter: '\\\\eb13' });\n Codicon.linkExternal = new Codicon('link-external', { fontCharacter: '\\\\eb14' });\n Codicon.link = new Codicon('link', { fontCharacter: '\\\\eb15' });\n Codicon.listOrdered = new Codicon('list-ordered', { fontCharacter: '\\\\eb16' });\n Codicon.listUnordered = new Codicon('list-unordered', { fontCharacter: '\\\\eb17' });\n Codicon.liveShare = new Codicon('live-share', { fontCharacter: '\\\\eb18' });\n Codicon.loading = new Codicon('loading', { fontCharacter: '\\\\eb19' });\n Codicon.location = new Codicon('location', { fontCharacter: '\\\\eb1a' });\n Codicon.mailRead = new Codicon('mail-read', { fontCharacter: '\\\\eb1b' });\n Codicon.mail = new Codicon('mail', { fontCharacter: '\\\\eb1c' });\n Codicon.markdown = new Codicon('markdown', { fontCharacter: '\\\\eb1d' });\n Codicon.megaphone = new Codicon('megaphone', { fontCharacter: '\\\\eb1e' });\n Codicon.mention = new Codicon('mention', { fontCharacter: '\\\\eb1f' });\n Codicon.milestone = new Codicon('milestone', { fontCharacter: '\\\\eb20' });\n Codicon.mortarBoard = new Codicon('mortar-board', { fontCharacter: '\\\\eb21' });\n Codicon.move = new Codicon('move', { fontCharacter: '\\\\eb22' });\n Codicon.multipleWindows = new Codicon('multiple-windows', { fontCharacter: '\\\\eb23' });\n Codicon.mute = new Codicon('mute', { fontCharacter: '\\\\eb24' });\n Codicon.noNewline = new Codicon('no-newline', { fontCharacter: '\\\\eb25' });\n Codicon.note = new Codicon('note', { fontCharacter: '\\\\eb26' });\n Codicon.octoface = new Codicon('octoface', { fontCharacter: '\\\\eb27' });\n Codicon.openPreview = new Codicon('open-preview', { fontCharacter: '\\\\eb28' });\n Codicon.package_ = new Codicon('package', { fontCharacter: '\\\\eb29' });\n Codicon.paintcan = new Codicon('paintcan', { fontCharacter: '\\\\eb2a' });\n Codicon.pin = new Codicon('pin', { fontCharacter: '\\\\eb2b' });\n Codicon.play = new Codicon('play', { fontCharacter: '\\\\eb2c' });\n Codicon.run = new Codicon('run', { fontCharacter: '\\\\eb2c' });\n Codicon.plug = new Codicon('plug', { fontCharacter: '\\\\eb2d' });\n Codicon.preserveCase = new Codicon('preserve-case', { fontCharacter: '\\\\eb2e' });\n Codicon.preview = new Codicon('preview', { fontCharacter: '\\\\eb2f' });\n Codicon.project = new Codicon('project', { fontCharacter: '\\\\eb30' });\n Codicon.pulse = new Codicon('pulse', { fontCharacter: '\\\\eb31' });\n Codicon.question = new Codicon('question', { fontCharacter: '\\\\eb32' });\n Codicon.quote = new Codicon('quote', { fontCharacter: '\\\\eb33' });\n Codicon.radioTower = new Codicon('radio-tower', { fontCharacter: '\\\\eb34' });\n Codicon.reactions = new Codicon('reactions', { fontCharacter: '\\\\eb35' });\n Codicon.references = new Codicon('references', { fontCharacter: '\\\\eb36' });\n Codicon.refresh = new Codicon('refresh', { fontCharacter: '\\\\eb37' });\n Codicon.regex = new Codicon('regex', { fontCharacter: '\\\\eb38' });\n Codicon.remoteExplorer = new Codicon('remote-explorer', { fontCharacter: '\\\\eb39' });\n Codicon.remote = new Codicon('remote', { fontCharacter: '\\\\eb3a' });\n Codicon.remove = new Codicon('remove', { fontCharacter: '\\\\eb3b' });\n Codicon.replaceAll = new Codicon('replace-all', { fontCharacter: '\\\\eb3c' });\n Codicon.replace = new Codicon('replace', { fontCharacter: '\\\\eb3d' });\n Codicon.repoClone = new Codicon('repo-clone', { fontCharacter: '\\\\eb3e' });\n Codicon.repoForcePush = new Codicon('repo-force-push', { fontCharacter: '\\\\eb3f' });\n Codicon.repoPull = new Codicon('repo-pull', { fontCharacter: '\\\\eb40' });\n Codicon.repoPush = new Codicon('repo-push', { fontCharacter: '\\\\eb41' });\n Codicon.report = new Codicon('report', { fontCharacter: '\\\\eb42' });\n Codicon.requestChanges = new Codicon('request-changes', { fontCharacter: '\\\\eb43' });\n Codicon.rocket = new Codicon('rocket', { fontCharacter: '\\\\eb44' });\n Codicon.rootFolderOpened = new Codicon('root-folder-opened', { fontCharacter: '\\\\eb45' });\n Codicon.rootFolder = new Codicon('root-folder', { fontCharacter: '\\\\eb46' });\n Codicon.rss = new Codicon('rss', { fontCharacter: '\\\\eb47' });\n Codicon.ruby = new Codicon('ruby', { fontCharacter: '\\\\eb48' });\n Codicon.saveAll = new Codicon('save-all', { fontCharacter: '\\\\eb49' });\n Codicon.saveAs = new Codicon('save-as', { fontCharacter: '\\\\eb4a' });\n Codicon.save = new Codicon('save', { fontCharacter: '\\\\eb4b' });\n Codicon.screenFull = new Codicon('screen-full', { fontCharacter: '\\\\eb4c' });\n Codicon.screenNormal = new Codicon('screen-normal', { fontCharacter: '\\\\eb4d' });\n Codicon.searchStop = new Codicon('search-stop', { fontCharacter: '\\\\eb4e' });\n Codicon.server = new Codicon('server', { fontCharacter: '\\\\eb50' });\n Codicon.settingsGear = new Codicon('settings-gear', { fontCharacter: '\\\\eb51' });\n Codicon.settings = new Codicon('settings', { fontCharacter: '\\\\eb52' });\n Codicon.shield = new Codicon('shield', { fontCharacter: '\\\\eb53' });\n Codicon.smiley = new Codicon('smiley', { fontCharacter: '\\\\eb54' });\n Codicon.sortPrecedence = new Codicon('sort-precedence', { fontCharacter: '\\\\eb55' });\n Codicon.splitHorizontal = new Codicon('split-horizontal', { fontCharacter: '\\\\eb56' });\n Codicon.splitVertical = new Codicon('split-vertical', { fontCharacter: '\\\\eb57' });\n Codicon.squirrel = new Codicon('squirrel', { fontCharacter: '\\\\eb58' });\n Codicon.starFull = new Codicon('star-full', { fontCharacter: '\\\\eb59' });\n Codicon.starHalf = new Codicon('star-half', { fontCharacter: '\\\\eb5a' });\n Codicon.symbolClass = new Codicon('symbol-class', { fontCharacter: '\\\\eb5b' });\n Codicon.symbolColor = new Codicon('symbol-color', { fontCharacter: '\\\\eb5c' });\n Codicon.symbolConstant = new Codicon('symbol-constant', { fontCharacter: '\\\\eb5d' });\n Codicon.symbolEnumMember = new Codicon('symbol-enum-member', { fontCharacter: '\\\\eb5e' });\n Codicon.symbolField = new Codicon('symbol-field', { fontCharacter: '\\\\eb5f' });\n Codicon.symbolFile = new Codicon('symbol-file', { fontCharacter: '\\\\eb60' });\n Codicon.symbolInterface = new Codicon('symbol-interface', { fontCharacter: '\\\\eb61' });\n Codicon.symbolKeyword = new Codicon('symbol-keyword', { fontCharacter: '\\\\eb62' });\n Codicon.symbolMisc = new Codicon('symbol-misc', { fontCharacter: '\\\\eb63' });\n Codicon.symbolOperator = new Codicon('symbol-operator', { fontCharacter: '\\\\eb64' });\n Codicon.symbolProperty = new Codicon('symbol-property', { fontCharacter: '\\\\eb65' });\n Codicon.wrench = new Codicon('wrench', { fontCharacter: '\\\\eb65' });\n Codicon.wrenchSubaction = new Codicon('wrench-subaction', { fontCharacter: '\\\\eb65' });\n Codicon.symbolSnippet = new Codicon('symbol-snippet', { fontCharacter: '\\\\eb66' });\n Codicon.tasklist = new Codicon('tasklist', { fontCharacter: '\\\\eb67' });\n Codicon.telescope = new Codicon('telescope', { fontCharacter: '\\\\eb68' });\n Codicon.textSize = new Codicon('text-size', { fontCharacter: '\\\\eb69' });\n Codicon.threeBars = new Codicon('three-bars', { fontCharacter: '\\\\eb6a' });\n Codicon.thumbsdown = new Codicon('thumbsdown', { fontCharacter: '\\\\eb6b' });\n Codicon.thumbsup = new Codicon('thumbsup', { fontCharacter: '\\\\eb6c' });\n Codicon.tools = new Codicon('tools', { fontCharacter: '\\\\eb6d' });\n Codicon.triangleDown = new Codicon('triangle-down', { fontCharacter: '\\\\eb6e' });\n Codicon.triangleLeft = new Codicon('triangle-left', { fontCharacter: '\\\\eb6f' });\n Codicon.triangleRight = new Codicon('triangle-right', { fontCharacter: '\\\\eb70' });\n Codicon.triangleUp = new Codicon('triangle-up', { fontCharacter: '\\\\eb71' });\n Codicon.twitter = new Codicon('twitter', { fontCharacter: '\\\\eb72' });\n Codicon.unfold = new Codicon('unfold', { fontCharacter: '\\\\eb73' });\n Codicon.unlock = new Codicon('unlock', { fontCharacter: '\\\\eb74' });\n Codicon.unmute = new Codicon('unmute', { fontCharacter: '\\\\eb75' });\n Codicon.unverified = new Codicon('unverified', { fontCharacter: '\\\\eb76' });\n Codicon.verified = new Codicon('verified', { fontCharacter: '\\\\eb77' });\n Codicon.versions = new Codicon('versions', { fontCharacter: '\\\\eb78' });\n Codicon.vmActive = new Codicon('vm-active', { fontCharacter: '\\\\eb79' });\n Codicon.vmOutline = new Codicon('vm-outline', { fontCharacter: '\\\\eb7a' });\n Codicon.vmRunning = new Codicon('vm-running', { fontCharacter: '\\\\eb7b' });\n Codicon.watch = new Codicon('watch', { fontCharacter: '\\\\eb7c' });\n Codicon.whitespace = new Codicon('whitespace', { fontCharacter: '\\\\eb7d' });\n Codicon.wholeWord = new Codicon('whole-word', { fontCharacter: '\\\\eb7e' });\n Codicon.window = new Codicon('window', { fontCharacter: '\\\\eb7f' });\n Codicon.wordWrap = new Codicon('word-wrap', { fontCharacter: '\\\\eb80' });\n Codicon.zoomIn = new Codicon('zoom-in', { fontCharacter: '\\\\eb81' });\n Codicon.zoomOut = new Codicon('zoom-out', { fontCharacter: '\\\\eb82' });\n Codicon.listFilter = new Codicon('list-filter', { fontCharacter: '\\\\eb83' });\n Codicon.listFlat = new Codicon('list-flat', { fontCharacter: '\\\\eb84' });\n Codicon.listSelection = new Codicon('list-selection', { fontCharacter: '\\\\eb85' });\n Codicon.selection = new Codicon('selection', { fontCharacter: '\\\\eb85' });\n Codicon.listTree = new Codicon('list-tree', { fontCharacter: '\\\\eb86' });\n Codicon.debugBreakpointFunctionUnverified = new Codicon('debug-breakpoint-function-unverified', { fontCharacter: '\\\\eb87' });\n Codicon.debugBreakpointFunction = new Codicon('debug-breakpoint-function', { fontCharacter: '\\\\eb88' });\n Codicon.debugBreakpointFunctionDisabled = new Codicon('debug-breakpoint-function-disabled', { fontCharacter: '\\\\eb88' });\n Codicon.debugStackframeActive = new Codicon('debug-stackframe-active', { fontCharacter: '\\\\eb89' });\n Codicon.debugStackframeDot = new Codicon('debug-stackframe-dot', { fontCharacter: '\\\\eb8a' });\n Codicon.debugStackframe = new Codicon('debug-stackframe', { fontCharacter: '\\\\eb8b' });\n Codicon.debugStackframeFocused = new Codicon('debug-stackframe-focused', { fontCharacter: '\\\\eb8b' });\n Codicon.debugBreakpointUnsupported = new Codicon('debug-breakpoint-unsupported', { fontCharacter: '\\\\eb8c' });\n Codicon.symbolString = new Codicon('symbol-string', { fontCharacter: '\\\\eb8d' });\n Codicon.debugReverseContinue = new Codicon('debug-reverse-continue', { fontCharacter: '\\\\eb8e' });\n Codicon.debugStepBack = new Codicon('debug-step-back', { fontCharacter: '\\\\eb8f' });\n Codicon.debugRestartFrame = new Codicon('debug-restart-frame', { fontCharacter: '\\\\eb90' });\n Codicon.callIncoming = new Codicon('call-incoming', { fontCharacter: '\\\\eb92' });\n Codicon.callOutgoing = new Codicon('call-outgoing', { fontCharacter: '\\\\eb93' });\n Codicon.menu = new Codicon('menu', { fontCharacter: '\\\\eb94' });\n Codicon.expandAll = new Codicon('expand-all', { fontCharacter: '\\\\eb95' });\n Codicon.feedback = new Codicon('feedback', { fontCharacter: '\\\\eb96' });\n Codicon.groupByRefType = new Codicon('group-by-ref-type', { fontCharacter: '\\\\eb97' });\n Codicon.ungroupByRefType = new Codicon('ungroup-by-ref-type', { fontCharacter: '\\\\eb98' });\n Codicon.account = new Codicon('account', { fontCharacter: '\\\\eb99' });\n Codicon.bellDot = new Codicon('bell-dot', { fontCharacter: '\\\\eb9a' });\n Codicon.debugConsole = new Codicon('debug-console', { fontCharacter: '\\\\eb9b' });\n Codicon.library = new Codicon('library', { fontCharacter: '\\\\eb9c' });\n Codicon.output = new Codicon('output', { fontCharacter: '\\\\eb9d' });\n Codicon.runAll = new Codicon('run-all', { fontCharacter: '\\\\eb9e' });\n Codicon.syncIgnored = new Codicon('sync-ignored', { fontCharacter: '\\\\eb9f' });\n Codicon.pinned = new Codicon('pinned', { fontCharacter: '\\\\eba0' });\n Codicon.githubInverted = new Codicon('github-inverted', { fontCharacter: '\\\\eba1' });\n Codicon.debugAlt = new Codicon('debug-alt', { fontCharacter: '\\\\eb91' });\n Codicon.serverProcess = new Codicon('server-process', { fontCharacter: '\\\\eba2' });\n Codicon.serverEnvironment = new Codicon('server-environment', { fontCharacter: '\\\\eba3' });\n Codicon.pass = new Codicon('pass', { fontCharacter: '\\\\eba4' });\n Codicon.stopCircle = new Codicon('stop-circle', { fontCharacter: '\\\\eba5' });\n Codicon.playCircle = new Codicon('play-circle', { fontCharacter: '\\\\eba6' });\n Codicon.record = new Codicon('record', { fontCharacter: '\\\\eba7' });\n Codicon.debugAltSmall = new Codicon('debug-alt-small', { fontCharacter: '\\\\eba8' });\n Codicon.vmConnect = new Codicon('vm-connect', { fontCharacter: '\\\\eba9' });\n Codicon.cloud = new Codicon('cloud', { fontCharacter: '\\\\ebaa' });\n Codicon.merge = new Codicon('merge', { fontCharacter: '\\\\ebab' });\n Codicon.exportIcon = new Codicon('export', { fontCharacter: '\\\\ebac' });\n Codicon.graphLeft = new Codicon('graph-left', { fontCharacter: '\\\\ebad' });\n Codicon.magnet = new Codicon('magnet', { fontCharacter: '\\\\ebae' });\n Codicon.notebook = new Codicon('notebook', { fontCharacter: '\\\\ebaf' });\n Codicon.redo = new Codicon('redo', { fontCharacter: '\\\\ebb0' });\n Codicon.checkAll = new Codicon('check-all', { fontCharacter: '\\\\ebb1' });\n Codicon.pinnedDirty = new Codicon('pinned-dirty', { fontCharacter: '\\\\ebb2' });\n Codicon.passFilled = new Codicon('pass-filled', { fontCharacter: '\\\\ebb3' });\n Codicon.circleLargeFilled = new Codicon('circle-large-filled', { fontCharacter: '\\\\ebb4' });\n Codicon.circleLargeOutline = new Codicon('circle-large-outline', { fontCharacter: '\\\\ebb5' });\n Codicon.combine = new Codicon('combine', { fontCharacter: '\\\\ebb6' });\n Codicon.gather = new Codicon('gather', { fontCharacter: '\\\\ebb6' });\n Codicon.table = new Codicon('table', { fontCharacter: '\\\\ebb7' });\n Codicon.variableGroup = new Codicon('variable-group', { fontCharacter: '\\\\ebb8' });\n Codicon.typeHierarchy = new Codicon('type-hierarchy', { fontCharacter: '\\\\ebb9' });\n Codicon.typeHierarchySub = new Codicon('type-hierarchy-sub', { fontCharacter: '\\\\ebba' });\n Codicon.typeHierarchySuper = new Codicon('type-hierarchy-super', { fontCharacter: '\\\\ebbb' });\n Codicon.gitPullRequestCreate = new Codicon('git-pull-request-create', { fontCharacter: '\\\\ebbc' });\n Codicon.runAbove = new Codicon('run-above', { fontCharacter: '\\\\ebbd' });\n Codicon.runBelow = new Codicon('run-below', { fontCharacter: '\\\\ebbe' });\n Codicon.notebookTemplate = new Codicon('notebook-template', { fontCharacter: '\\\\ebbf' });\n Codicon.debugRerun = new Codicon('debug-rerun', { fontCharacter: '\\\\ebc0' });\n Codicon.workspaceTrusted = new Codicon('workspace-trusted', { fontCharacter: '\\\\ebc1' });\n Codicon.workspaceUntrusted = new Codicon('workspace-untrusted', { fontCharacter: '\\\\ebc2' });\n Codicon.workspaceUnspecified = new Codicon('workspace-unspecified', { fontCharacter: '\\\\ebc3' });\n Codicon.terminalCmd = new Codicon('terminal-cmd', { fontCharacter: '\\\\ebc4' });\n Codicon.terminalDebian = new Codicon('terminal-debian', { fontCharacter: '\\\\ebc5' });\n Codicon.terminalLinux = new Codicon('terminal-linux', { fontCharacter: '\\\\ebc6' });\n Codicon.terminalPowershell = new Codicon('terminal-powershell', { fontCharacter: '\\\\ebc7' });\n Codicon.terminalTmux = new Codicon('terminal-tmux', { fontCharacter: '\\\\ebc8' });\n Codicon.terminalUbuntu = new Codicon('terminal-ubuntu', { fontCharacter: '\\\\ebc9' });\n Codicon.terminalBash = new Codicon('terminal-bash', { fontCharacter: '\\\\ebca' });\n Codicon.arrowSwap = new Codicon('arrow-swap', { fontCharacter: '\\\\ebcb' });\n Codicon.copy = new Codicon('copy', { fontCharacter: '\\\\ebcc' });\n Codicon.personAdd = new Codicon('person-add', { fontCharacter: '\\\\ebcd' });\n Codicon.filterFilled = new Codicon('filter-filled', { fontCharacter: '\\\\ebce' });\n Codicon.wand = new Codicon('wand', { fontCharacter: '\\\\ebcf' });\n Codicon.debugLineByLine = new Codicon('debug-line-by-line', { fontCharacter: '\\\\ebd0' });\n Codicon.inspect = new Codicon('inspect', { fontCharacter: '\\\\ebd1' });\n Codicon.layers = new Codicon('layers', { fontCharacter: '\\\\ebd2' });\n Codicon.layersDot = new Codicon('layers-dot', { fontCharacter: '\\\\ebd3' });\n Codicon.layersActive = new Codicon('layers-active', { fontCharacter: '\\\\ebd4' });\n Codicon.compass = new Codicon('compass', { fontCharacter: '\\\\ebd5' });\n Codicon.compassDot = new Codicon('compass-dot', { fontCharacter: '\\\\ebd6' });\n Codicon.compassActive = new Codicon('compass-active', { fontCharacter: '\\\\ebd7' });\n Codicon.azure = new Codicon('azure', { fontCharacter: '\\\\ebd8' });\n Codicon.issueDraft = new Codicon('issue-draft', { fontCharacter: '\\\\ebd9' });\n Codicon.gitPullRequestClosed = new Codicon('git-pull-request-closed', { fontCharacter: '\\\\ebda' });\n Codicon.gitPullRequestDraft = new Codicon('git-pull-request-draft', { fontCharacter: '\\\\ebdb' });\n Codicon.debugAll = new Codicon('debug-all', { fontCharacter: '\\\\ebdc' });\n Codicon.debugCoverage = new Codicon('debug-coverage', { fontCharacter: '\\\\ebdd' });\n Codicon.runErrors = new Codicon('run-errors', { fontCharacter: '\\\\ebde' });\n Codicon.folderLibrary = new Codicon('folder-library', { fontCharacter: '\\\\ebdf' });\n Codicon.debugContinueSmall = new Codicon('debug-continue-small', { fontCharacter: '\\\\ebe0' });\n Codicon.beakerStop = new Codicon('beaker-stop', { fontCharacter: '\\\\ebe1' });\n Codicon.graphLine = new Codicon('graph-line', { fontCharacter: '\\\\ebe2' });\n Codicon.graphScatter = new Codicon('graph-scatter', { fontCharacter: '\\\\ebe3' });\n Codicon.pieChart = new Codicon('pie-chart', { fontCharacter: '\\\\ebe4' });\n Codicon.bracket = new Codicon('bracket', Codicon.json.definition);\n Codicon.bracketDot = new Codicon('bracket-dot', { fontCharacter: '\\\\ebe5' });\n Codicon.bracketError = new Codicon('bracket-error', { fontCharacter: '\\\\ebe6' });\n Codicon.lockSmall = new Codicon('lock-small', { fontCharacter: '\\\\ebe7' });\n Codicon.azureDevops = new Codicon('azure-devops', { fontCharacter: '\\\\ebe8' });\n Codicon.verifiedFilled = new Codicon('verified-filled', { fontCharacter: '\\\\ebe9' });\n})(Codicon || (Codicon = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { TextModel } from '../model/textModel.js';\nimport { LanguageConfigurationRegistry } from '../modes/languageConfigurationRegistry.js';\nexport { CursorColumns } from './cursorColumns.js';\nconst autoCloseAlways = () => true;\nconst autoCloseNever = () => false;\nconst autoCloseBeforeWhitespace = (chr) => (chr === ' ' || chr === '\\t');\nexport class CursorConfiguration {\n constructor(languageId, modelOptions, configuration) {\n this._cursorMoveConfigurationBrand = undefined;\n this._languageId = languageId;\n const options = configuration.options;\n const layoutInfo = options.get(129 /* layoutInfo */);\n this.readOnly = options.get(80 /* readOnly */);\n this.tabSize = modelOptions.tabSize;\n this.indentSize = modelOptions.indentSize;\n this.insertSpaces = modelOptions.insertSpaces;\n this.stickyTabStops = options.get(103 /* stickyTabStops */);\n this.lineHeight = options.get(58 /* lineHeight */);\n this.pageSize = Math.max(1, Math.floor(layoutInfo.height / this.lineHeight) - 2);\n this.useTabStops = options.get(114 /* useTabStops */);\n this.wordSeparators = options.get(115 /* wordSeparators */);\n this.emptySelectionClipboard = options.get(32 /* emptySelectionClipboard */);\n this.copyWithSyntaxHighlighting = options.get(21 /* copyWithSyntaxHighlighting */);\n this.multiCursorMergeOverlapping = options.get(68 /* multiCursorMergeOverlapping */);\n this.multiCursorPaste = options.get(70 /* multiCursorPaste */);\n this.autoClosingBrackets = options.get(5 /* autoClosingBrackets */);\n this.autoClosingQuotes = options.get(8 /* autoClosingQuotes */);\n this.autoClosingDelete = options.get(6 /* autoClosingDelete */);\n this.autoClosingOvertype = options.get(7 /* autoClosingOvertype */);\n this.autoSurround = options.get(11 /* autoSurround */);\n this.autoIndent = options.get(9 /* autoIndent */);\n this.surroundingPairs = {};\n this._electricChars = null;\n this.shouldAutoCloseBefore = {\n quote: CursorConfiguration._getShouldAutoClose(languageId, this.autoClosingQuotes),\n bracket: CursorConfiguration._getShouldAutoClose(languageId, this.autoClosingBrackets)\n };\n this.autoClosingPairs = LanguageConfigurationRegistry.getAutoClosingPairs(languageId);\n let surroundingPairs = CursorConfiguration._getSurroundingPairs(languageId);\n if (surroundingPairs) {\n for (const pair of surroundingPairs) {\n this.surroundingPairs[pair.open] = pair.close;\n }\n }\n }\n static shouldRecreate(e) {\n return (e.hasChanged(129 /* layoutInfo */)\n || e.hasChanged(115 /* wordSeparators */)\n || e.hasChanged(32 /* emptySelectionClipboard */)\n || e.hasChanged(68 /* multiCursorMergeOverlapping */)\n || e.hasChanged(70 /* multiCursorPaste */)\n || e.hasChanged(5 /* autoClosingBrackets */)\n || e.hasChanged(8 /* autoClosingQuotes */)\n || e.hasChanged(6 /* autoClosingDelete */)\n || e.hasChanged(7 /* autoClosingOvertype */)\n || e.hasChanged(11 /* autoSurround */)\n || e.hasChanged(114 /* useTabStops */)\n || e.hasChanged(58 /* lineHeight */)\n || e.hasChanged(80 /* readOnly */));\n }\n get electricChars() {\n if (!this._electricChars) {\n this._electricChars = {};\n let electricChars = CursorConfiguration._getElectricCharacters(this._languageId);\n if (electricChars) {\n for (const char of electricChars) {\n this._electricChars[char] = true;\n }\n }\n }\n return this._electricChars;\n }\n normalizeIndentation(str) {\n return TextModel.normalizeIndentation(str, this.indentSize, this.insertSpaces);\n }\n static _getElectricCharacters(languageId) {\n try {\n return LanguageConfigurationRegistry.getElectricCharacters(languageId);\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n }\n static _getShouldAutoClose(languageId, autoCloseConfig) {\n switch (autoCloseConfig) {\n case 'beforeWhitespace':\n return autoCloseBeforeWhitespace;\n case 'languageDefined':\n return CursorConfiguration._getLanguageDefinedShouldAutoClose(languageId);\n case 'always':\n return autoCloseAlways;\n case 'never':\n return autoCloseNever;\n }\n }\n static _getLanguageDefinedShouldAutoClose(languageId) {\n try {\n const autoCloseBeforeSet = LanguageConfigurationRegistry.getAutoCloseBeforeSet(languageId);\n return c => autoCloseBeforeSet.indexOf(c) !== -1;\n }\n catch (e) {\n onUnexpectedError(e);\n return autoCloseNever;\n }\n }\n static _getSurroundingPairs(languageId) {\n try {\n return LanguageConfigurationRegistry.getSurroundingPairs(languageId);\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n }\n}\n/**\n * Represents the cursor state on either the model or on the view model.\n */\nexport class SingleCursorState {\n constructor(selectionStart, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns) {\n this._singleCursorStateBrand = undefined;\n this.selectionStart = selectionStart;\n this.selectionStartLeftoverVisibleColumns = selectionStartLeftoverVisibleColumns;\n this.position = position;\n this.leftoverVisibleColumns = leftoverVisibleColumns;\n this.selection = SingleCursorState._computeSelection(this.selectionStart, this.position);\n }\n equals(other) {\n return (this.selectionStartLeftoverVisibleColumns === other.selectionStartLeftoverVisibleColumns\n && this.leftoverVisibleColumns === other.leftoverVisibleColumns\n && this.position.equals(other.position)\n && this.selectionStart.equalsRange(other.selectionStart));\n }\n hasSelection() {\n return (!this.selection.isEmpty() || !this.selectionStart.isEmpty());\n }\n move(inSelectionMode, lineNumber, column, leftoverVisibleColumns) {\n if (inSelectionMode) {\n // move just position\n return new SingleCursorState(this.selectionStart, this.selectionStartLeftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n }\n else {\n // move everything\n return new SingleCursorState(new Range(lineNumber, column, lineNumber, column), leftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n }\n }\n static _computeSelection(selectionStart, position) {\n let startLineNumber, startColumn, endLineNumber, endColumn;\n if (selectionStart.isEmpty()) {\n startLineNumber = selectionStart.startLineNumber;\n startColumn = selectionStart.startColumn;\n endLineNumber = position.lineNumber;\n endColumn = position.column;\n }\n else {\n if (position.isBeforeOrEqual(selectionStart.getStartPosition())) {\n startLineNumber = selectionStart.endLineNumber;\n startColumn = selectionStart.endColumn;\n endLineNumber = position.lineNumber;\n endColumn = position.column;\n }\n else {\n startLineNumber = selectionStart.startLineNumber;\n startColumn = selectionStart.startColumn;\n endLineNumber = position.lineNumber;\n endColumn = position.column;\n }\n }\n return new Selection(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n}\nexport class CursorContext {\n constructor(model, viewModel, coordinatesConverter, cursorConfig) {\n this._cursorContextBrand = undefined;\n this.model = model;\n this.viewModel = viewModel;\n this.coordinatesConverter = coordinatesConverter;\n this.cursorConfig = cursorConfig;\n }\n}\nexport class PartialModelCursorState {\n constructor(modelState) {\n this.modelState = modelState;\n this.viewState = null;\n }\n}\nexport class PartialViewCursorState {\n constructor(viewState) {\n this.modelState = null;\n this.viewState = viewState;\n }\n}\nexport class CursorState {\n constructor(modelState, viewState) {\n this._cursorStateBrand = undefined;\n this.modelState = modelState;\n this.viewState = viewState;\n }\n static fromModelState(modelState) {\n return new PartialModelCursorState(modelState);\n }\n static fromViewState(viewState) {\n return new PartialViewCursorState(viewState);\n }\n static fromModelSelection(modelSelection) {\n const selectionStartLineNumber = modelSelection.selectionStartLineNumber;\n const selectionStartColumn = modelSelection.selectionStartColumn;\n const positionLineNumber = modelSelection.positionLineNumber;\n const positionColumn = modelSelection.positionColumn;\n const modelState = new SingleCursorState(new Range(selectionStartLineNumber, selectionStartColumn, selectionStartLineNumber, selectionStartColumn), 0, new Position(positionLineNumber, positionColumn), 0);\n return CursorState.fromModelState(modelState);\n }\n static fromModelSelections(modelSelections) {\n let states = [];\n for (let i = 0, len = modelSelections.length; i < len; i++) {\n states[i] = this.fromModelSelection(modelSelections[i]);\n }\n return states;\n }\n equals(other) {\n return (this.viewState.equals(other.viewState) && this.modelState.equals(other.modelState));\n }\n}\nexport class EditOperationResult {\n constructor(type, commands, opts) {\n this._editOperationResultBrand = undefined;\n this.type = type;\n this.commands = commands;\n this.shouldPushStackElementBefore = opts.shouldPushStackElementBefore;\n this.shouldPushStackElementAfter = opts.shouldPushStackElementAfter;\n }\n}\nexport function isQuote(ch) {\n return (ch === '\\'' || ch === '\"' || ch === '`');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\nimport { Range } from './range.js';\n/**\n * A selection in the editor.\n * The selection is a range that has an orientation.\n */\nexport class Selection extends Range {\n constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) {\n super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn);\n this.selectionStartLineNumber = selectionStartLineNumber;\n this.selectionStartColumn = selectionStartColumn;\n this.positionLineNumber = positionLineNumber;\n this.positionColumn = positionColumn;\n }\n /**\n * Transform to a human-readable representation.\n */\n toString() {\n return '[' + this.selectionStartLineNumber + ',' + this.selectionStartColumn + ' -> ' + this.positionLineNumber + ',' + this.positionColumn + ']';\n }\n /**\n * Test if equals other selection.\n */\n equalsSelection(other) {\n return (Selection.selectionsEqual(this, other));\n }\n /**\n * Test if the two selections are equal.\n */\n static selectionsEqual(a, b) {\n return (a.selectionStartLineNumber === b.selectionStartLineNumber &&\n a.selectionStartColumn === b.selectionStartColumn &&\n a.positionLineNumber === b.positionLineNumber &&\n a.positionColumn === b.positionColumn);\n }\n /**\n * Get directions (LTR or RTL).\n */\n getDirection() {\n if (this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn) {\n return 0 /* LTR */;\n }\n return 1 /* RTL */;\n }\n /**\n * Create a new selection with a different `positionLineNumber` and `positionColumn`.\n */\n setEndPosition(endLineNumber, endColumn) {\n if (this.getDirection() === 0 /* LTR */) {\n return new Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n }\n return new Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn);\n }\n /**\n * Get the position at `positionLineNumber` and `positionColumn`.\n */\n getPosition() {\n return new Position(this.positionLineNumber, this.positionColumn);\n }\n /**\n * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.\n */\n setStartPosition(startLineNumber, startColumn) {\n if (this.getDirection() === 0 /* LTR */) {\n return new Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n }\n return new Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn);\n }\n // ----\n /**\n * Create a `Selection` from one or two positions\n */\n static fromPositions(start, end = start) {\n return new Selection(start.lineNumber, start.column, end.lineNumber, end.column);\n }\n /**\n * Create a `Selection` from an `ISelection`.\n */\n static liftSelection(sel) {\n return new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\n }\n /**\n * `a` equals `b`.\n */\n static selectionsArrEqual(a, b) {\n if (a && !b || !a && b) {\n return false;\n }\n if (!a && !b) {\n return true;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, len = a.length; i < len; i++) {\n if (!this.selectionsEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n /**\n * Test if `obj` is an `ISelection`.\n */\n static isISelection(obj) {\n return (obj\n && (typeof obj.selectionStartLineNumber === 'number')\n && (typeof obj.selectionStartColumn === 'number')\n && (typeof obj.positionLineNumber === 'number')\n && (typeof obj.positionColumn === 'number'));\n }\n /**\n * Create with a direction.\n */\n static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) {\n if (direction === 0 /* LTR */) {\n return new Selection(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n return new Selection(endLineNumber, endColumn, startLineNumber, startColumn);\n }\n}\n","import global from \"./global\";\nimport { maybe } from \"./maybe\";\n\n// To keep string-based find/replace minifiers from messing with __DEV__ inside\n// string literals or properties like global.__DEV__, we construct the \"__DEV__\"\n// string in a roundabout way that won't be altered by find/replace strategies.\nconst __ = \"__\";\nconst GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch {\n Object.defineProperty(global, GLOBAL_KEY, {\n // In a buildless browser environment, maybe(() => process.env.NODE_ENV)\n // evaluates as undefined, so __DEV__ becomes true by default, but can be\n // initialized to false instead by a script/module that runs earlier.\n value: maybe(() => process.env.NODE_ENV) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n // Using computed property access rather than global.__DEV__ here prevents\n // string-based find/replace strategies from munging this to global.false:\n return (global as any)[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();\n","// The ordering of these imports is important, because it ensures the temporary\n// process.env.NODE_ENV polyfill is defined globally (if necessary) before we\n// import { Source } from 'graphql'. The instanceOf function that we really care\n// about (the one that uses process.env.NODE_ENV) is not exported from the\n// top-level graphql package, but graphql/language/source uses instanceOf, and\n// has relatively few dependencies, so importing it here should not increase\n// bundle sizes as much as other options.\nimport { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\n\nexport function removeTemporaryGlobals() {\n // Using Source here here just to make sure it won't be tree-shaken away.\n return typeof Source === \"function\" ? remove() : remove();\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\n\n// Just in case the graphql package switches from process.env.NODE_ENV to\n// __DEV__, make sure __DEV__ is polyfilled before importing graphql.\nimport DEV from \"./DEV\";\nexport { DEV }\nexport function checkDEV() {\n invariant(\"boolean\" === typeof DEV, DEV);\n}\n\n// Import graphql/jsutils/instanceOf safely, working around its unchecked usage\n// of process.env.NODE_ENV and https://github.com/graphql/graphql-js/pull/2894.\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\n\n// Synchronously undo the global process.env.NODE_ENV polyfill that we created\n// temporarily while importing the offending graphql/jsutils/instanceOf module.\nremoveTemporaryGlobals();\n\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError }\n\n// Ensure __DEV__ was properly initialized, and prevent tree-shaking bundlers\n// from mistakenly pruning the ./DEV module (see issue #8674).\ncheckDEV();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Separator, SubmenuAction } from '../../../base/common/actions.js';\nimport { CSSIcon } from '../../../base/common/codicons.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { ThemeIcon } from '../../theme/common/themeService.js';\nexport function isIMenuItem(item) {\n return item.command !== undefined;\n}\nexport class MenuId {\n constructor(debugName) {\n this.id = MenuId._idPool++;\n this._debugName = debugName;\n }\n}\nMenuId._idPool = 0;\nMenuId.CommandPalette = new MenuId('CommandPalette');\nMenuId.EditorContext = new MenuId('EditorContext');\nMenuId.SimpleEditorContext = new MenuId('SimpleEditorContext');\nMenuId.EditorContextCopy = new MenuId('EditorContextCopy');\nMenuId.EditorContextPeek = new MenuId('EditorContextPeek');\nMenuId.MenubarEditMenu = new MenuId('MenubarEditMenu');\nMenuId.MenubarCopy = new MenuId('MenubarCopy');\nMenuId.MenubarGoMenu = new MenuId('MenubarGoMenu');\nMenuId.MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\nMenuId.InlineCompletionsActions = new MenuId('InlineCompletionsActions');\nexport const IMenuService = createDecorator('menuService');\nexport const MenuRegistry = new class {\n constructor() {\n this._commands = new Map();\n this._menuItems = new Map();\n this._onDidChangeMenu = new Emitter();\n this.onDidChangeMenu = this._onDidChangeMenu.event;\n this._commandPaletteChangeEvent = {\n has: id => id === MenuId.CommandPalette\n };\n }\n addCommand(command) {\n return this.addCommands(Iterable.single(command));\n }\n addCommands(commands) {\n for (const command of commands) {\n this._commands.set(command.id, command);\n }\n this._onDidChangeMenu.fire(this._commandPaletteChangeEvent);\n return toDisposable(() => {\n let didChange = false;\n for (const command of commands) {\n didChange = this._commands.delete(command.id) || didChange;\n }\n if (didChange) {\n this._onDidChangeMenu.fire(this._commandPaletteChangeEvent);\n }\n });\n }\n getCommand(id) {\n return this._commands.get(id);\n }\n getCommands() {\n const map = new Map();\n this._commands.forEach((value, key) => map.set(key, value));\n return map;\n }\n appendMenuItem(id, item) {\n return this.appendMenuItems(Iterable.single({ id, item }));\n }\n appendMenuItems(items) {\n const changedIds = new Set();\n const toRemove = new LinkedList();\n for (const { id, item } of items) {\n let list = this._menuItems.get(id);\n if (!list) {\n list = new LinkedList();\n this._menuItems.set(id, list);\n }\n toRemove.push(list.push(item));\n changedIds.add(id);\n }\n this._onDidChangeMenu.fire(changedIds);\n return toDisposable(() => {\n if (toRemove.size > 0) {\n for (let fn of toRemove) {\n fn();\n }\n this._onDidChangeMenu.fire(changedIds);\n toRemove.clear();\n }\n });\n }\n getMenuItems(id) {\n let result;\n if (this._menuItems.has(id)) {\n result = [...this._menuItems.get(id)];\n }\n else {\n result = [];\n }\n if (id === MenuId.CommandPalette) {\n // CommandPalette is special because it shows\n // all commands by default\n this._appendImplicitItems(result);\n }\n return result;\n }\n _appendImplicitItems(result) {\n const set = new Set();\n for (const item of result) {\n if (isIMenuItem(item)) {\n set.add(item.command.id);\n if (item.alt) {\n set.add(item.alt.id);\n }\n }\n }\n this._commands.forEach((command, id) => {\n if (!set.has(id)) {\n result.push({ command });\n }\n });\n }\n};\nexport class SubmenuItemAction extends SubmenuAction {\n constructor(item, _menuService, _contextKeyService, _options) {\n super(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, [], 'submenu');\n this.item = item;\n this._menuService = _menuService;\n this._contextKeyService = _contextKeyService;\n this._options = _options;\n }\n get actions() {\n const result = [];\n const menu = this._menuService.createMenu(this.item.submenu, this._contextKeyService);\n const groups = menu.getActions(this._options);\n menu.dispose();\n for (const [, actions] of groups) {\n if (actions.length > 0) {\n result.push(...actions);\n result.push(new Separator());\n }\n }\n if (result.length) {\n result.pop(); // remove last separator\n }\n return result;\n }\n}\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nlet MenuItemAction = class MenuItemAction {\n constructor(item, alt, options, contextKeyService, _commandService) {\n var _a, _b;\n this._commandService = _commandService;\n this.id = item.id;\n this.label = (options === null || options === void 0 ? void 0 : options.renderShortTitle) && item.shortTitle\n ? (typeof item.shortTitle === 'string' ? item.shortTitle : item.shortTitle.value)\n : (typeof item.title === 'string' ? item.title : item.title.value);\n this.tooltip = (_b = (typeof item.tooltip === 'string' ? item.tooltip : (_a = item.tooltip) === null || _a === void 0 ? void 0 : _a.value)) !== null && _b !== void 0 ? _b : '';\n this.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n this.checked = undefined;\n if (item.toggled) {\n const toggled = (item.toggled.condition ? item.toggled : { condition: item.toggled });\n this.checked = contextKeyService.contextMatchesRules(toggled.condition);\n if (this.checked && toggled.tooltip) {\n this.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n }\n if (toggled.title) {\n this.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n }\n }\n this.item = item;\n this.alt = alt ? new MenuItemAction(alt, undefined, options, contextKeyService, _commandService) : undefined;\n this._options = options;\n if (ThemeIcon.isThemeIcon(item.icon)) {\n this.class = CSSIcon.asClassName(item.icon);\n }\n }\n dispose() {\n // there is NOTHING to dispose and the MenuItemAction should\n // never have anything to dispose as it is a convenience type\n // to bridge into the rendering world.\n }\n run(...args) {\n var _a, _b;\n let runArgs = [];\n if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.arg) {\n runArgs = [...runArgs, this._options.arg];\n }\n if ((_b = this._options) === null || _b === void 0 ? void 0 : _b.shouldForwardArgs) {\n runArgs = [...runArgs, ...args];\n }\n return this._commandService.executeCommand(this.id, ...runArgs);\n }\n};\nMenuItemAction = __decorate([\n __param(3, IContextKeyService),\n __param(4, ICommandService)\n], MenuItemAction);\nexport { MenuItemAction };\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { USUAL_WORD_SEPARATORS } from '../model/wordHelper.js';\n/**\n * @internal\n * The width of the minimap gutter, in pixels.\n */\nexport const MINIMAP_GUTTER_WIDTH = 8;\n//#endregion\n/**\n * An event describing that the configuration of the editor has changed.\n */\nexport class ConfigurationChangedEvent {\n /**\n * @internal\n */\n constructor(values) {\n this._values = values;\n }\n hasChanged(id) {\n return this._values[id];\n }\n}\n/**\n * @internal\n */\nexport class ValidatedEditorOptions {\n constructor() {\n this._values = [];\n }\n _read(option) {\n return this._values[option];\n }\n get(id) {\n return this._values[id];\n }\n _write(option, value) {\n this._values[option] = value;\n }\n}\n/**\n * @internal\n */\nexport class ComputeOptionsMemory {\n constructor() {\n this.stableMinimapLayoutInput = null;\n this.stableFitMaxMinimapScale = 0;\n this.stableFitRemainingWidth = 0;\n }\n}\n/**\n * @internal\n */\nclass BaseEditorOption {\n constructor(id, name, defaultValue, schema) {\n this.id = id;\n this.name = name;\n this.defaultValue = defaultValue;\n this.schema = schema;\n }\n compute(env, options, value) {\n return value;\n }\n}\n/**\n * @internal\n */\nclass ComputedEditorOption {\n constructor(id, deps = null) {\n this.schema = undefined;\n this.id = id;\n this.name = '_never_';\n this.defaultValue = undefined;\n this.deps = deps;\n }\n validate(input) {\n return this.defaultValue;\n }\n}\nclass SimpleEditorOption {\n constructor(id, name, defaultValue, schema) {\n this.id = id;\n this.name = name;\n this.defaultValue = defaultValue;\n this.schema = schema;\n }\n validate(input) {\n if (typeof input === 'undefined') {\n return this.defaultValue;\n }\n return input;\n }\n compute(env, options, value) {\n return value;\n }\n}\n/**\n * @internal\n */\nexport function boolean(value, defaultValue) {\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n if (value === 'false') {\n // treat the string 'false' as false\n return false;\n }\n return Boolean(value);\n}\nclass EditorBooleanOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'boolean';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n }\n validate(input) {\n return boolean(input, this.defaultValue);\n }\n}\n/**\n * @internal\n */\nexport function clampedInt(value, defaultValue, minimum, maximum) {\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n let r = parseInt(value, 10);\n if (isNaN(r)) {\n return defaultValue;\n }\n r = Math.max(minimum, r);\n r = Math.min(maximum, r);\n return r | 0;\n}\nclass EditorIntOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, minimum, maximum, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'integer';\n schema.default = defaultValue;\n schema.minimum = minimum;\n schema.maximum = maximum;\n }\n super(id, name, defaultValue, schema);\n this.minimum = minimum;\n this.maximum = maximum;\n }\n static clampedInt(value, defaultValue, minimum, maximum) {\n return clampedInt(value, defaultValue, minimum, maximum);\n }\n validate(input) {\n return EditorIntOption.clampedInt(input, this.defaultValue, this.minimum, this.maximum);\n }\n}\nclass EditorFloatOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, validationFn, schema) {\n if (typeof schema !== 'undefined') {\n schema.type = 'number';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n this.validationFn = validationFn;\n }\n static clamp(n, min, max) {\n if (n < min) {\n return min;\n }\n if (n > max) {\n return max;\n }\n return n;\n }\n static float(value, defaultValue) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n const r = parseFloat(value);\n return (isNaN(r) ? defaultValue : r);\n }\n validate(input) {\n return this.validationFn(EditorFloatOption.float(input, this.defaultValue));\n }\n}\nclass EditorStringOption extends SimpleEditorOption {\n static string(value, defaultValue) {\n if (typeof value !== 'string') {\n return defaultValue;\n }\n return value;\n }\n constructor(id, name, defaultValue, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n }\n validate(input) {\n return EditorStringOption.string(input, this.defaultValue);\n }\n}\n/**\n * @internal\n */\nexport function stringSet(value, defaultValue, allowedValues) {\n if (typeof value !== 'string') {\n return defaultValue;\n }\n if (allowedValues.indexOf(value) === -1) {\n return defaultValue;\n }\n return value;\n}\nclass EditorStringEnumOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, allowedValues, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.enum = allowedValues;\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n this._allowedValues = allowedValues;\n }\n validate(input) {\n return stringSet(input, this.defaultValue, this._allowedValues);\n }\n}\nclass EditorEnumOption extends BaseEditorOption {\n constructor(id, name, defaultValue, defaultStringValue, allowedValues, convert, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.enum = allowedValues;\n schema.default = defaultStringValue;\n }\n super(id, name, defaultValue, schema);\n this._allowedValues = allowedValues;\n this._convert = convert;\n }\n validate(input) {\n if (typeof input !== 'string') {\n return this.defaultValue;\n }\n if (this._allowedValues.indexOf(input) === -1) {\n return this.defaultValue;\n }\n return this._convert(input);\n }\n}\n//#endregion\n//#region autoIndent\nfunction _autoIndentFromString(autoIndent) {\n switch (autoIndent) {\n case 'none': return 0 /* None */;\n case 'keep': return 1 /* Keep */;\n case 'brackets': return 2 /* Brackets */;\n case 'advanced': return 3 /* Advanced */;\n case 'full': return 4 /* Full */;\n }\n}\n//#endregion\n//#region accessibilitySupport\nclass EditorAccessibilitySupport extends BaseEditorOption {\n constructor() {\n super(2 /* accessibilitySupport */, 'accessibilitySupport', 0 /* Unknown */, {\n type: 'string',\n enum: ['auto', 'on', 'off'],\n enumDescriptions: [\n nls.localize('accessibilitySupport.auto', \"The editor will use platform APIs to detect when a Screen Reader is attached.\"),\n nls.localize('accessibilitySupport.on', \"The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled.\"),\n nls.localize('accessibilitySupport.off', \"The editor will never be optimized for usage with a Screen Reader.\"),\n ],\n default: 'auto',\n description: nls.localize('accessibilitySupport', \"Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.\")\n });\n }\n validate(input) {\n switch (input) {\n case 'auto': return 0 /* Unknown */;\n case 'off': return 1 /* Disabled */;\n case 'on': return 2 /* Enabled */;\n }\n return this.defaultValue;\n }\n compute(env, options, value) {\n if (value === 0 /* Unknown */) {\n // The editor reads the `accessibilitySupport` from the environment\n return env.accessibilitySupport;\n }\n return value;\n }\n}\nclass EditorComments extends BaseEditorOption {\n constructor() {\n const defaults = {\n insertSpace: true,\n ignoreEmptyLines: true,\n };\n super(19 /* comments */, 'comments', defaults, {\n 'editor.comments.insertSpace': {\n type: 'boolean',\n default: defaults.insertSpace,\n description: nls.localize('comments.insertSpace', \"Controls whether a space character is inserted when commenting.\")\n },\n 'editor.comments.ignoreEmptyLines': {\n type: 'boolean',\n default: defaults.ignoreEmptyLines,\n description: nls.localize('comments.ignoreEmptyLines', 'Controls if empty lines should be ignored with toggle, add or remove actions for line comments.')\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n insertSpace: boolean(input.insertSpace, this.defaultValue.insertSpace),\n ignoreEmptyLines: boolean(input.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines),\n };\n }\n}\nfunction _cursorBlinkingStyleFromString(cursorBlinkingStyle) {\n switch (cursorBlinkingStyle) {\n case 'blink': return 1 /* Blink */;\n case 'smooth': return 2 /* Smooth */;\n case 'phase': return 3 /* Phase */;\n case 'expand': return 4 /* Expand */;\n case 'solid': return 5 /* Solid */;\n }\n}\n//#endregion\n//#region cursorStyle\n/**\n * The style in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorStyle;\n(function (TextEditorCursorStyle) {\n /**\n * As a vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Line\"] = 1] = \"Line\";\n /**\n * As a block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Block\"] = 2] = \"Block\";\n /**\n * As a horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Underline\"] = 3] = \"Underline\";\n /**\n * As a thin vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"LineThin\"] = 4] = \"LineThin\";\n /**\n * As an outlined block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"BlockOutline\"] = 5] = \"BlockOutline\";\n /**\n * As a thin horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\nfunction _cursorStyleFromString(cursorStyle) {\n switch (cursorStyle) {\n case 'line': return TextEditorCursorStyle.Line;\n case 'block': return TextEditorCursorStyle.Block;\n case 'underline': return TextEditorCursorStyle.Underline;\n case 'line-thin': return TextEditorCursorStyle.LineThin;\n case 'block-outline': return TextEditorCursorStyle.BlockOutline;\n case 'underline-thin': return TextEditorCursorStyle.UnderlineThin;\n }\n}\n//#endregion\n//#region editorClassName\nclass EditorClassName extends ComputedEditorOption {\n constructor() {\n super(126 /* editorClassName */, [65 /* mouseStyle */, 33 /* extraEditorClassName */]);\n }\n compute(env, options, _) {\n const classNames = ['monaco-editor'];\n if (options.get(33 /* extraEditorClassName */)) {\n classNames.push(options.get(33 /* extraEditorClassName */));\n }\n if (env.extraEditorClassName) {\n classNames.push(env.extraEditorClassName);\n }\n if (options.get(65 /* mouseStyle */) === 'default') {\n classNames.push('mouse-default');\n }\n else if (options.get(65 /* mouseStyle */) === 'copy') {\n classNames.push('mouse-copy');\n }\n if (options.get(99 /* showUnused */)) {\n classNames.push('showUnused');\n }\n if (options.get(124 /* showDeprecated */)) {\n classNames.push('showDeprecated');\n }\n return classNames.join(' ');\n }\n}\n//#endregion\n//#region emptySelectionClipboard\nclass EditorEmptySelectionClipboard extends EditorBooleanOption {\n constructor() {\n super(32 /* emptySelectionClipboard */, 'emptySelectionClipboard', true, { description: nls.localize('emptySelectionClipboard', \"Controls whether copying without a selection copies the current line.\") });\n }\n compute(env, options, value) {\n return value && env.emptySelectionClipboard;\n }\n}\nclass EditorFind extends BaseEditorOption {\n constructor() {\n const defaults = {\n cursorMoveOnType: true,\n seedSearchStringFromSelection: 'always',\n autoFindInSelection: 'never',\n globalFindClipboard: false,\n addExtraSpaceOnTop: true,\n loop: true\n };\n super(35 /* find */, 'find', defaults, {\n 'editor.find.cursorMoveOnType': {\n type: 'boolean',\n default: defaults.cursorMoveOnType,\n description: nls.localize('find.cursorMoveOnType', \"Controls whether the cursor should jump to find matches while typing.\")\n },\n 'editor.find.seedSearchStringFromSelection': {\n type: 'string',\n enum: ['never', 'always', 'selection'],\n default: defaults.seedSearchStringFromSelection,\n enumDescriptions: [\n nls.localize('editor.find.seedSearchStringFromSelection.never', 'Never seed search string from the editor selection.'),\n nls.localize('editor.find.seedSearchStringFromSelection.always', 'Always seed search string from the editor selection, including word at cursor position.'),\n nls.localize('editor.find.seedSearchStringFromSelection.selection', 'Only seed search string from the editor selection.')\n ],\n description: nls.localize('find.seedSearchStringFromSelection', \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n },\n 'editor.find.autoFindInSelection': {\n type: 'string',\n enum: ['never', 'always', 'multiline'],\n default: defaults.autoFindInSelection,\n enumDescriptions: [\n nls.localize('editor.find.autoFindInSelection.never', 'Never turn on Find in Selection automatically (default).'),\n nls.localize('editor.find.autoFindInSelection.always', 'Always turn on Find in Selection automatically.'),\n nls.localize('editor.find.autoFindInSelection.multiline', 'Turn on Find in Selection automatically when multiple lines of content are selected.')\n ],\n description: nls.localize('find.autoFindInSelection', \"Controls the condition for turning on Find in Selection automatically.\")\n },\n 'editor.find.globalFindClipboard': {\n type: 'boolean',\n default: defaults.globalFindClipboard,\n description: nls.localize('find.globalFindClipboard', \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n included: platform.isMacintosh\n },\n 'editor.find.addExtraSpaceOnTop': {\n type: 'boolean',\n default: defaults.addExtraSpaceOnTop,\n description: nls.localize('find.addExtraSpaceOnTop', \"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\")\n },\n 'editor.find.loop': {\n type: 'boolean',\n default: defaults.loop,\n description: nls.localize('find.loop', \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n cursorMoveOnType: boolean(input.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n seedSearchStringFromSelection: typeof _input.seedSearchStringFromSelection === 'boolean'\n ? (_input.seedSearchStringFromSelection ? 'always' : 'never')\n : stringSet(input.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, ['never', 'always', 'selection']),\n autoFindInSelection: typeof _input.autoFindInSelection === 'boolean'\n ? (_input.autoFindInSelection ? 'always' : 'never')\n : stringSet(input.autoFindInSelection, this.defaultValue.autoFindInSelection, ['never', 'always', 'multiline']),\n globalFindClipboard: boolean(input.globalFindClipboard, this.defaultValue.globalFindClipboard),\n addExtraSpaceOnTop: boolean(input.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n loop: boolean(input.loop, this.defaultValue.loop),\n };\n }\n}\n//#endregion\n//#region fontLigatures\n/**\n * @internal\n */\nexport class EditorFontLigatures extends BaseEditorOption {\n constructor() {\n super(44 /* fontLigatures */, 'fontLigatures', EditorFontLigatures.OFF, {\n anyOf: [\n {\n type: 'boolean',\n description: nls.localize('fontLigatures', \"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.\"),\n },\n {\n type: 'string',\n description: nls.localize('fontFeatureSettings', \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n }\n ],\n description: nls.localize('fontLigaturesGeneral', \"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.\"),\n default: false\n });\n }\n validate(input) {\n if (typeof input === 'undefined') {\n return this.defaultValue;\n }\n if (typeof input === 'string') {\n if (input === 'false') {\n return EditorFontLigatures.OFF;\n }\n if (input === 'true') {\n return EditorFontLigatures.ON;\n }\n return input;\n }\n if (Boolean(input)) {\n return EditorFontLigatures.ON;\n }\n return EditorFontLigatures.OFF;\n }\n}\nEditorFontLigatures.OFF = '\"liga\" off, \"calt\" off';\nEditorFontLigatures.ON = '\"liga\" on, \"calt\" on';\n//#endregion\n//#region fontInfo\nclass EditorFontInfo extends ComputedEditorOption {\n constructor() {\n super(43 /* fontInfo */);\n }\n compute(env, options, _) {\n return env.fontInfo;\n }\n}\n//#endregion\n//#region fontSize\nclass EditorFontSize extends SimpleEditorOption {\n constructor() {\n super(45 /* fontSize */, 'fontSize', EDITOR_FONT_DEFAULTS.fontSize, {\n type: 'number',\n minimum: 6,\n maximum: 100,\n default: EDITOR_FONT_DEFAULTS.fontSize,\n description: nls.localize('fontSize', \"Controls the font size in pixels.\")\n });\n }\n validate(input) {\n let r = EditorFloatOption.float(input, this.defaultValue);\n if (r === 0) {\n return EDITOR_FONT_DEFAULTS.fontSize;\n }\n return EditorFloatOption.clamp(r, 6, 100);\n }\n compute(env, options, value) {\n // The final fontSize respects the editor zoom level.\n // So take the result from env.fontInfo\n return env.fontInfo.fontSize;\n }\n}\n//#endregion\n//#region fontWeight\nclass EditorFontWeight extends BaseEditorOption {\n constructor() {\n super(46 /* fontWeight */, 'fontWeight', EDITOR_FONT_DEFAULTS.fontWeight, {\n anyOf: [\n {\n type: 'number',\n minimum: EditorFontWeight.MINIMUM_VALUE,\n maximum: EditorFontWeight.MAXIMUM_VALUE,\n errorMessage: nls.localize('fontWeightErrorMessage', \"Only \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000 are allowed.\")\n },\n {\n type: 'string',\n pattern: '^(normal|bold|1000|[1-9][0-9]{0,2})$'\n },\n {\n enum: EditorFontWeight.SUGGESTION_VALUES\n }\n ],\n default: EDITOR_FONT_DEFAULTS.fontWeight,\n description: nls.localize('fontWeight', \"Controls the font weight. Accepts \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000.\")\n });\n }\n validate(input) {\n if (input === 'normal' || input === 'bold') {\n return input;\n }\n return String(EditorIntOption.clampedInt(input, EDITOR_FONT_DEFAULTS.fontWeight, EditorFontWeight.MINIMUM_VALUE, EditorFontWeight.MAXIMUM_VALUE));\n }\n}\nEditorFontWeight.SUGGESTION_VALUES = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\nEditorFontWeight.MINIMUM_VALUE = 1;\nEditorFontWeight.MAXIMUM_VALUE = 1000;\nclass EditorGoToLocation extends BaseEditorOption {\n constructor() {\n const defaults = {\n multiple: 'peek',\n multipleDefinitions: 'peek',\n multipleTypeDefinitions: 'peek',\n multipleDeclarations: 'peek',\n multipleImplementations: 'peek',\n multipleReferences: 'peek',\n alternativeDefinitionCommand: 'editor.action.goToReferences',\n alternativeTypeDefinitionCommand: 'editor.action.goToReferences',\n alternativeDeclarationCommand: 'editor.action.goToReferences',\n alternativeImplementationCommand: '',\n alternativeReferenceCommand: '',\n };\n const jsonSubset = {\n type: 'string',\n enum: ['peek', 'gotoAndPeek', 'goto'],\n default: defaults.multiple,\n enumDescriptions: [\n nls.localize('editor.gotoLocation.multiple.peek', 'Show peek view of the results (default)'),\n nls.localize('editor.gotoLocation.multiple.gotoAndPeek', 'Go to the primary result and show a peek view'),\n nls.localize('editor.gotoLocation.multiple.goto', 'Go to the primary result and enable peek-less navigation to others')\n ]\n };\n const alternativeCommandOptions = ['', 'editor.action.referenceSearch.trigger', 'editor.action.goToReferences', 'editor.action.peekImplementation', 'editor.action.goToImplementation', 'editor.action.peekTypeDefinition', 'editor.action.goToTypeDefinition', 'editor.action.peekDeclaration', 'editor.action.revealDeclaration', 'editor.action.peekDefinition', 'editor.action.revealDefinitionAside', 'editor.action.revealDefinition'];\n super(50 /* gotoLocation */, 'gotoLocation', defaults, {\n 'editor.gotoLocation.multiple': {\n deprecationMessage: nls.localize('editor.gotoLocation.multiple.deprecated', \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\"),\n },\n 'editor.gotoLocation.multipleDefinitions': Object.assign({ description: nls.localize('editor.editor.gotoLocation.multipleDefinitions', \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\") }, jsonSubset),\n 'editor.gotoLocation.multipleTypeDefinitions': Object.assign({ description: nls.localize('editor.editor.gotoLocation.multipleTypeDefinitions', \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\") }, jsonSubset),\n 'editor.gotoLocation.multipleDeclarations': Object.assign({ description: nls.localize('editor.editor.gotoLocation.multipleDeclarations', \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\") }, jsonSubset),\n 'editor.gotoLocation.multipleImplementations': Object.assign({ description: nls.localize('editor.editor.gotoLocation.multipleImplemenattions', \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\") }, jsonSubset),\n 'editor.gotoLocation.multipleReferences': Object.assign({ description: nls.localize('editor.editor.gotoLocation.multipleReferences', \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\") }, jsonSubset),\n 'editor.gotoLocation.alternativeDefinitionCommand': {\n type: 'string',\n default: defaults.alternativeDefinitionCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n },\n 'editor.gotoLocation.alternativeTypeDefinitionCommand': {\n type: 'string',\n default: defaults.alternativeTypeDefinitionCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeTypeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n },\n 'editor.gotoLocation.alternativeDeclarationCommand': {\n type: 'string',\n default: defaults.alternativeDeclarationCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeDeclarationCommand', \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n },\n 'editor.gotoLocation.alternativeImplementationCommand': {\n type: 'string',\n default: defaults.alternativeImplementationCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeImplementationCommand', \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n },\n 'editor.gotoLocation.alternativeReferenceCommand': {\n type: 'string',\n default: defaults.alternativeReferenceCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeReferenceCommand', \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n },\n });\n }\n validate(_input) {\n var _a, _b, _c, _d, _e;\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n multiple: stringSet(input.multiple, this.defaultValue.multiple, ['peek', 'gotoAndPeek', 'goto']),\n multipleDefinitions: (_a = input.multipleDefinitions) !== null && _a !== void 0 ? _a : stringSet(input.multipleDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleTypeDefinitions: (_b = input.multipleTypeDefinitions) !== null && _b !== void 0 ? _b : stringSet(input.multipleTypeDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleDeclarations: (_c = input.multipleDeclarations) !== null && _c !== void 0 ? _c : stringSet(input.multipleDeclarations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleImplementations: (_d = input.multipleImplementations) !== null && _d !== void 0 ? _d : stringSet(input.multipleImplementations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleReferences: (_e = input.multipleReferences) !== null && _e !== void 0 ? _e : stringSet(input.multipleReferences, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n alternativeDefinitionCommand: EditorStringOption.string(input.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n alternativeTypeDefinitionCommand: EditorStringOption.string(input.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n alternativeDeclarationCommand: EditorStringOption.string(input.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n alternativeImplementationCommand: EditorStringOption.string(input.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n alternativeReferenceCommand: EditorStringOption.string(input.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand),\n };\n }\n}\nclass EditorHover extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n delay: 300,\n sticky: true,\n above: true,\n };\n super(52 /* hover */, 'hover', defaults, {\n 'editor.hover.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('hover.enabled', \"Controls whether the hover is shown.\")\n },\n 'editor.hover.delay': {\n type: 'number',\n default: defaults.delay,\n description: nls.localize('hover.delay', \"Controls the delay in milliseconds after which the hover is shown.\")\n },\n 'editor.hover.sticky': {\n type: 'boolean',\n default: defaults.sticky,\n description: nls.localize('hover.sticky', \"Controls whether the hover should remain visible when mouse is moved over it.\")\n },\n 'editor.hover.above': {\n type: 'boolean',\n default: defaults.above,\n description: nls.localize('hover.above', \"Prefer showing hovers above the line, if there's space.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 10000),\n sticky: boolean(input.sticky, this.defaultValue.sticky),\n above: boolean(input.above, this.defaultValue.above),\n };\n }\n}\n/**\n * @internal\n */\nexport class EditorLayoutInfoComputer extends ComputedEditorOption {\n constructor() {\n super(129 /* layoutInfo */, [\n 49 /* glyphMargin */, 57 /* lineDecorationsWidth */, 37 /* folding */,\n 64 /* minimap */, 91 /* scrollbar */, 59 /* lineNumbers */,\n 60 /* lineNumbersMinChars */, 93 /* scrollBeyondLastLine */,\n 116 /* wordWrap */, 119 /* wordWrapColumn */, 120 /* wordWrapOverride1 */, 121 /* wordWrapOverride2 */,\n 2 /* accessibilitySupport */\n ]);\n }\n compute(env, options, _) {\n return EditorLayoutInfoComputer.computeLayout(options, {\n memory: env.memory,\n outerWidth: env.outerWidth,\n outerHeight: env.outerHeight,\n isDominatedByLongLines: env.isDominatedByLongLines,\n lineHeight: env.fontInfo.lineHeight,\n viewLineCount: env.viewLineCount,\n lineNumbersDigitCount: env.lineNumbersDigitCount,\n typicalHalfwidthCharacterWidth: env.fontInfo.typicalHalfwidthCharacterWidth,\n maxDigitWidth: env.fontInfo.maxDigitWidth,\n pixelRatio: env.pixelRatio\n });\n }\n static computeContainedMinimapLineCount(input) {\n const typicalViewportLineCount = input.height / input.lineHeight;\n const extraLinesBeyondLastLine = input.scrollBeyondLastLine ? (typicalViewportLineCount - 1) : 0;\n const desiredRatio = (input.viewLineCount + extraLinesBeyondLastLine) / (input.pixelRatio * input.height);\n const minimapLineCount = Math.floor(input.viewLineCount / desiredRatio);\n return { typicalViewportLineCount, extraLinesBeyondLastLine, desiredRatio, minimapLineCount };\n }\n static _computeMinimapLayout(input, memory) {\n const outerWidth = input.outerWidth;\n const outerHeight = input.outerHeight;\n const pixelRatio = input.pixelRatio;\n if (!input.minimap.enabled) {\n return {\n renderMinimap: 0 /* None */,\n minimapLeft: 0,\n minimapWidth: 0,\n minimapHeightIsEditorHeight: false,\n minimapIsSampling: false,\n minimapScale: 1,\n minimapLineHeight: 1,\n minimapCanvasInnerWidth: 0,\n minimapCanvasInnerHeight: Math.floor(pixelRatio * outerHeight),\n minimapCanvasOuterWidth: 0,\n minimapCanvasOuterHeight: outerHeight,\n };\n }\n // Can use memory if only the `viewLineCount` and `remainingWidth` have changed\n const stableMinimapLayoutInput = memory.stableMinimapLayoutInput;\n const couldUseMemory = (stableMinimapLayoutInput\n // && input.outerWidth === lastMinimapLayoutInput.outerWidth !!! INTENTIONAL OMITTED\n && input.outerHeight === stableMinimapLayoutInput.outerHeight\n && input.lineHeight === stableMinimapLayoutInput.lineHeight\n && input.typicalHalfwidthCharacterWidth === stableMinimapLayoutInput.typicalHalfwidthCharacterWidth\n && input.pixelRatio === stableMinimapLayoutInput.pixelRatio\n && input.scrollBeyondLastLine === stableMinimapLayoutInput.scrollBeyondLastLine\n && input.minimap.enabled === stableMinimapLayoutInput.minimap.enabled\n && input.minimap.side === stableMinimapLayoutInput.minimap.side\n && input.minimap.size === stableMinimapLayoutInput.minimap.size\n && input.minimap.showSlider === stableMinimapLayoutInput.minimap.showSlider\n && input.minimap.renderCharacters === stableMinimapLayoutInput.minimap.renderCharacters\n && input.minimap.maxColumn === stableMinimapLayoutInput.minimap.maxColumn\n && input.minimap.scale === stableMinimapLayoutInput.minimap.scale\n && input.verticalScrollbarWidth === stableMinimapLayoutInput.verticalScrollbarWidth\n // && input.viewLineCount === lastMinimapLayoutInput.viewLineCount !!! INTENTIONAL OMITTED\n // && input.remainingWidth === lastMinimapLayoutInput.remainingWidth !!! INTENTIONAL OMITTED\n && input.isViewportWrapping === stableMinimapLayoutInput.isViewportWrapping);\n const lineHeight = input.lineHeight;\n const typicalHalfwidthCharacterWidth = input.typicalHalfwidthCharacterWidth;\n const scrollBeyondLastLine = input.scrollBeyondLastLine;\n const minimapRenderCharacters = input.minimap.renderCharacters;\n let minimapScale = (pixelRatio >= 2 ? Math.round(input.minimap.scale * 2) : input.minimap.scale);\n const minimapMaxColumn = input.minimap.maxColumn;\n const minimapSize = input.minimap.size;\n const minimapSide = input.minimap.side;\n const verticalScrollbarWidth = input.verticalScrollbarWidth;\n const viewLineCount = input.viewLineCount;\n const remainingWidth = input.remainingWidth;\n const isViewportWrapping = input.isViewportWrapping;\n const baseCharHeight = minimapRenderCharacters ? 2 : 3;\n let minimapCanvasInnerHeight = Math.floor(pixelRatio * outerHeight);\n const minimapCanvasOuterHeight = minimapCanvasInnerHeight / pixelRatio;\n let minimapHeightIsEditorHeight = false;\n let minimapIsSampling = false;\n let minimapLineHeight = baseCharHeight * minimapScale;\n let minimapCharWidth = minimapScale / pixelRatio;\n let minimapWidthMultiplier = 1;\n if (minimapSize === 'fill' || minimapSize === 'fit') {\n const { typicalViewportLineCount, extraLinesBeyondLastLine, desiredRatio, minimapLineCount } = EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n viewLineCount: viewLineCount,\n scrollBeyondLastLine: scrollBeyondLastLine,\n height: outerHeight,\n lineHeight: lineHeight,\n pixelRatio: pixelRatio\n });\n // ratio is intentionally not part of the layout to avoid the layout changing all the time\n // when doing sampling\n const ratio = viewLineCount / minimapLineCount;\n if (ratio > 1) {\n minimapHeightIsEditorHeight = true;\n minimapIsSampling = true;\n minimapScale = 1;\n minimapLineHeight = 1;\n minimapCharWidth = minimapScale / pixelRatio;\n }\n else {\n let fitBecomesFill = false;\n let maxMinimapScale = minimapScale + 1;\n if (minimapSize === 'fit') {\n const effectiveMinimapHeight = Math.ceil((viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);\n if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n // There is a loop when using `fit` and viewport wrapping:\n // - view line count impacts minimap layout\n // - minimap layout impacts viewport width\n // - viewport width impacts view line count\n // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n fitBecomesFill = true;\n maxMinimapScale = memory.stableFitMaxMinimapScale;\n }\n else {\n fitBecomesFill = (effectiveMinimapHeight > minimapCanvasInnerHeight);\n }\n }\n if (minimapSize === 'fill' || fitBecomesFill) {\n minimapHeightIsEditorHeight = true;\n const configuredMinimapScale = minimapScale;\n minimapLineHeight = Math.min(lineHeight * pixelRatio, Math.max(1, Math.floor(1 / desiredRatio)));\n if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n // There is a loop when using `fill` and viewport wrapping:\n // - view line count impacts minimap layout\n // - minimap layout impacts viewport width\n // - viewport width impacts view line count\n // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n maxMinimapScale = memory.stableFitMaxMinimapScale;\n }\n minimapScale = Math.min(maxMinimapScale, Math.max(1, Math.floor(minimapLineHeight / baseCharHeight)));\n if (minimapScale > configuredMinimapScale) {\n minimapWidthMultiplier = Math.min(2, minimapScale / configuredMinimapScale);\n }\n minimapCharWidth = minimapScale / pixelRatio / minimapWidthMultiplier;\n minimapCanvasInnerHeight = Math.ceil((Math.max(typicalViewportLineCount, viewLineCount + extraLinesBeyondLastLine)) * minimapLineHeight);\n if (isViewportWrapping) {\n // remember for next time\n memory.stableMinimapLayoutInput = input;\n memory.stableFitRemainingWidth = remainingWidth;\n memory.stableFitMaxMinimapScale = minimapScale;\n }\n else {\n memory.stableMinimapLayoutInput = null;\n memory.stableFitRemainingWidth = 0;\n }\n }\n }\n }\n // Given:\n // (leaving 2px for the cursor to have space after the last character)\n // viewportColumn = (contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth\n // minimapWidth = viewportColumn * minimapCharWidth\n // contentWidth = remainingWidth - minimapWidth\n // What are good values for contentWidth and minimapWidth ?\n // minimapWidth = ((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth) * minimapCharWidth\n // typicalHalfwidthCharacterWidth * minimapWidth = (contentWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // typicalHalfwidthCharacterWidth * minimapWidth = (remainingWidth - minimapWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // (typicalHalfwidthCharacterWidth + minimapCharWidth) * minimapWidth = (remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // minimapWidth = ((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth)\n const minimapMaxWidth = Math.floor(minimapMaxColumn * minimapCharWidth);\n const minimapWidth = Math.min(minimapMaxWidth, Math.max(0, Math.floor(((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth))) + MINIMAP_GUTTER_WIDTH);\n let minimapCanvasInnerWidth = Math.floor(pixelRatio * minimapWidth);\n const minimapCanvasOuterWidth = minimapCanvasInnerWidth / pixelRatio;\n minimapCanvasInnerWidth = Math.floor(minimapCanvasInnerWidth * minimapWidthMultiplier);\n const renderMinimap = (minimapRenderCharacters ? 1 /* Text */ : 2 /* Blocks */);\n const minimapLeft = (minimapSide === 'left' ? 0 : (outerWidth - minimapWidth - verticalScrollbarWidth));\n return {\n renderMinimap,\n minimapLeft,\n minimapWidth,\n minimapHeightIsEditorHeight,\n minimapIsSampling,\n minimapScale,\n minimapLineHeight,\n minimapCanvasInnerWidth,\n minimapCanvasInnerHeight,\n minimapCanvasOuterWidth,\n minimapCanvasOuterHeight,\n };\n }\n static computeLayout(options, env) {\n const outerWidth = env.outerWidth | 0;\n const outerHeight = env.outerHeight | 0;\n const lineHeight = env.lineHeight | 0;\n const lineNumbersDigitCount = env.lineNumbersDigitCount | 0;\n const typicalHalfwidthCharacterWidth = env.typicalHalfwidthCharacterWidth;\n const maxDigitWidth = env.maxDigitWidth;\n const pixelRatio = env.pixelRatio;\n const viewLineCount = env.viewLineCount;\n const wordWrapOverride2 = options.get(121 /* wordWrapOverride2 */);\n const wordWrapOverride1 = (wordWrapOverride2 === 'inherit' ? options.get(120 /* wordWrapOverride1 */) : wordWrapOverride2);\n const wordWrap = (wordWrapOverride1 === 'inherit' ? options.get(116 /* wordWrap */) : wordWrapOverride1);\n const wordWrapColumn = options.get(119 /* wordWrapColumn */);\n const accessibilitySupport = options.get(2 /* accessibilitySupport */);\n const isDominatedByLongLines = env.isDominatedByLongLines;\n const showGlyphMargin = options.get(49 /* glyphMargin */);\n const showLineNumbers = (options.get(59 /* lineNumbers */).renderType !== 0 /* Off */);\n const lineNumbersMinChars = options.get(60 /* lineNumbersMinChars */);\n const scrollBeyondLastLine = options.get(93 /* scrollBeyondLastLine */);\n const minimap = options.get(64 /* minimap */);\n const scrollbar = options.get(91 /* scrollbar */);\n const verticalScrollbarWidth = scrollbar.verticalScrollbarSize;\n const verticalScrollbarHasArrows = scrollbar.verticalHasArrows;\n const scrollbarArrowSize = scrollbar.arrowSize;\n const horizontalScrollbarHeight = scrollbar.horizontalScrollbarSize;\n const rawLineDecorationsWidth = options.get(57 /* lineDecorationsWidth */);\n const folding = options.get(37 /* folding */);\n let lineDecorationsWidth;\n if (typeof rawLineDecorationsWidth === 'string' && /^\\d+(\\.\\d+)?ch$/.test(rawLineDecorationsWidth)) {\n const multiple = parseFloat(rawLineDecorationsWidth.substr(0, rawLineDecorationsWidth.length - 2));\n lineDecorationsWidth = EditorIntOption.clampedInt(multiple * typicalHalfwidthCharacterWidth, 0, 0, 1000);\n }\n else {\n lineDecorationsWidth = EditorIntOption.clampedInt(rawLineDecorationsWidth, 0, 0, 1000);\n }\n if (folding) {\n lineDecorationsWidth += 16;\n }\n let lineNumbersWidth = 0;\n if (showLineNumbers) {\n const digitCount = Math.max(lineNumbersDigitCount, lineNumbersMinChars);\n lineNumbersWidth = Math.round(digitCount * maxDigitWidth);\n }\n let glyphMarginWidth = 0;\n if (showGlyphMargin) {\n glyphMarginWidth = lineHeight;\n }\n let glyphMarginLeft = 0;\n let lineNumbersLeft = glyphMarginLeft + glyphMarginWidth;\n let decorationsLeft = lineNumbersLeft + lineNumbersWidth;\n let contentLeft = decorationsLeft + lineDecorationsWidth;\n const remainingWidth = outerWidth - glyphMarginWidth - lineNumbersWidth - lineDecorationsWidth;\n let isWordWrapMinified = false;\n let isViewportWrapping = false;\n let wrappingColumn = -1;\n if (accessibilitySupport !== 2 /* Enabled */) {\n // See https://github.com/microsoft/vscode/issues/27766\n // Never enable wrapping when a screen reader is attached\n // because arrow down etc. will not move the cursor in the way\n // a screen reader expects.\n if (wordWrapOverride1 === 'inherit' && isDominatedByLongLines) {\n // Force viewport width wrapping if model is dominated by long lines\n isWordWrapMinified = true;\n isViewportWrapping = true;\n }\n else if (wordWrap === 'on' || wordWrap === 'bounded') {\n isViewportWrapping = true;\n }\n else if (wordWrap === 'wordWrapColumn') {\n wrappingColumn = wordWrapColumn;\n }\n }\n const minimapLayout = EditorLayoutInfoComputer._computeMinimapLayout({\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n lineHeight: lineHeight,\n typicalHalfwidthCharacterWidth: typicalHalfwidthCharacterWidth,\n pixelRatio: pixelRatio,\n scrollBeyondLastLine: scrollBeyondLastLine,\n minimap: minimap,\n verticalScrollbarWidth: verticalScrollbarWidth,\n viewLineCount: viewLineCount,\n remainingWidth: remainingWidth,\n isViewportWrapping: isViewportWrapping,\n }, env.memory || new ComputeOptionsMemory());\n if (minimapLayout.renderMinimap !== 0 /* None */ && minimapLayout.minimapLeft === 0) {\n // the minimap is rendered to the left, so move everything to the right\n glyphMarginLeft += minimapLayout.minimapWidth;\n lineNumbersLeft += minimapLayout.minimapWidth;\n decorationsLeft += minimapLayout.minimapWidth;\n contentLeft += minimapLayout.minimapWidth;\n }\n const contentWidth = remainingWidth - minimapLayout.minimapWidth;\n // (leaving 2px for the cursor to have space after the last character)\n const viewportColumn = Math.max(1, Math.floor((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth));\n const verticalArrowSize = (verticalScrollbarHasArrows ? scrollbarArrowSize : 0);\n if (isViewportWrapping) {\n // compute the actual wrappingColumn\n wrappingColumn = Math.max(1, viewportColumn);\n if (wordWrap === 'bounded') {\n wrappingColumn = Math.min(wrappingColumn, wordWrapColumn);\n }\n }\n return {\n width: outerWidth,\n height: outerHeight,\n glyphMarginLeft: glyphMarginLeft,\n glyphMarginWidth: glyphMarginWidth,\n lineNumbersLeft: lineNumbersLeft,\n lineNumbersWidth: lineNumbersWidth,\n decorationsLeft: decorationsLeft,\n decorationsWidth: lineDecorationsWidth,\n contentLeft: contentLeft,\n contentWidth: contentWidth,\n minimap: minimapLayout,\n viewportColumn: viewportColumn,\n isWordWrapMinified: isWordWrapMinified,\n isViewportWrapping: isViewportWrapping,\n wrappingColumn: wrappingColumn,\n verticalScrollbarWidth: verticalScrollbarWidth,\n horizontalScrollbarHeight: horizontalScrollbarHeight,\n overviewRuler: {\n top: verticalArrowSize,\n width: verticalScrollbarWidth,\n height: (outerHeight - 2 * verticalArrowSize),\n right: 0\n }\n };\n }\n}\nclass EditorLightbulb extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: true };\n super(56 /* lightbulb */, 'lightbulb', defaults, {\n 'editor.lightbulb.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('codeActions', \"Enables the code action lightbulb in the editor.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled)\n };\n }\n}\nclass EditorInlayHints extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: true, fontSize: 0, fontFamily: '' };\n super(125 /* inlayHints */, 'inlayHints', defaults, {\n 'editor.inlayHints.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('inlayHints.enable', \"Enables the inlay hints in the editor.\")\n },\n 'editor.inlayHints.fontSize': {\n type: 'number',\n default: defaults.fontSize,\n markdownDescription: nls.localize('inlayHints.fontSize', \"Controls font size of inlay hints in the editor. A default of 90% of `#editor.fontSize#` is used when the configured value is less than `5` or greater than the editor font size.\")\n },\n 'editor.inlayHints.fontFamily': {\n type: 'string',\n default: defaults.fontFamily,\n markdownDescription: nls.localize('inlayHints.fontFamily', \"Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n fontSize: EditorIntOption.clampedInt(input.fontSize, this.defaultValue.fontSize, 0, 100),\n fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily)\n };\n }\n}\n//#endregion\n//#region lineHeight\nclass EditorLineHeight extends EditorFloatOption {\n constructor() {\n super(58 /* lineHeight */, 'lineHeight', EDITOR_FONT_DEFAULTS.lineHeight, x => EditorFloatOption.clamp(x, 0, 150), { markdownDescription: nls.localize('lineHeight', \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\") });\n }\n compute(env, options, value) {\n // The lineHeight is computed from the fontSize if it is 0.\n // Moreover, the final lineHeight respects the editor zoom level.\n // So take the result from env.fontInfo\n return env.fontInfo.lineHeight;\n }\n}\nclass EditorMinimap extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n size: 'proportional',\n side: 'right',\n showSlider: 'mouseover',\n renderCharacters: true,\n maxColumn: 120,\n scale: 1,\n };\n super(64 /* minimap */, 'minimap', defaults, {\n 'editor.minimap.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('minimap.enabled', \"Controls whether the minimap is shown.\")\n },\n 'editor.minimap.size': {\n type: 'string',\n enum: ['proportional', 'fill', 'fit'],\n enumDescriptions: [\n nls.localize('minimap.size.proportional', \"The minimap has the same size as the editor contents (and might scroll).\"),\n nls.localize('minimap.size.fill', \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"),\n nls.localize('minimap.size.fit', \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\"),\n ],\n default: defaults.size,\n description: nls.localize('minimap.size', \"Controls the size of the minimap.\")\n },\n 'editor.minimap.side': {\n type: 'string',\n enum: ['left', 'right'],\n default: defaults.side,\n description: nls.localize('minimap.side', \"Controls the side where to render the minimap.\")\n },\n 'editor.minimap.showSlider': {\n type: 'string',\n enum: ['always', 'mouseover'],\n default: defaults.showSlider,\n description: nls.localize('minimap.showSlider', \"Controls when the minimap slider is shown.\")\n },\n 'editor.minimap.scale': {\n type: 'number',\n default: defaults.scale,\n minimum: 1,\n maximum: 3,\n enum: [1, 2, 3],\n description: nls.localize('minimap.scale', \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n },\n 'editor.minimap.renderCharacters': {\n type: 'boolean',\n default: defaults.renderCharacters,\n description: nls.localize('minimap.renderCharacters', \"Render the actual characters on a line as opposed to color blocks.\")\n },\n 'editor.minimap.maxColumn': {\n type: 'number',\n default: defaults.maxColumn,\n description: nls.localize('minimap.maxColumn', \"Limit the width of the minimap to render at most a certain number of columns.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n size: stringSet(input.size, this.defaultValue.size, ['proportional', 'fill', 'fit']),\n side: stringSet(input.side, this.defaultValue.side, ['right', 'left']),\n showSlider: stringSet(input.showSlider, this.defaultValue.showSlider, ['always', 'mouseover']),\n renderCharacters: boolean(input.renderCharacters, this.defaultValue.renderCharacters),\n scale: EditorIntOption.clampedInt(input.scale, 1, 1, 3),\n maxColumn: EditorIntOption.clampedInt(input.maxColumn, this.defaultValue.maxColumn, 1, 10000),\n };\n }\n}\n//#endregion\n//#region multiCursorModifier\nfunction _multiCursorModifierFromString(multiCursorModifier) {\n if (multiCursorModifier === 'ctrlCmd') {\n return (platform.isMacintosh ? 'metaKey' : 'ctrlKey');\n }\n return 'altKey';\n}\nclass EditorPadding extends BaseEditorOption {\n constructor() {\n super(74 /* padding */, 'padding', { top: 0, bottom: 0 }, {\n 'editor.padding.top': {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 1000,\n description: nls.localize('padding.top', \"Controls the amount of space between the top edge of the editor and the first line.\")\n },\n 'editor.padding.bottom': {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 1000,\n description: nls.localize('padding.bottom', \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n top: EditorIntOption.clampedInt(input.top, 0, 0, 1000),\n bottom: EditorIntOption.clampedInt(input.bottom, 0, 0, 1000)\n };\n }\n}\nclass EditorParameterHints extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n cycle: false\n };\n super(75 /* parameterHints */, 'parameterHints', defaults, {\n 'editor.parameterHints.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('parameterHints.enabled', \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n },\n 'editor.parameterHints.cycle': {\n type: 'boolean',\n default: defaults.cycle,\n description: nls.localize('parameterHints.cycle', \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n cycle: boolean(input.cycle, this.defaultValue.cycle)\n };\n }\n}\n//#endregion\n//#region pixelRatio\nclass EditorPixelRatio extends ComputedEditorOption {\n constructor() {\n super(127 /* pixelRatio */);\n }\n compute(env, options, _) {\n return env.pixelRatio;\n }\n}\nclass EditorQuickSuggestions extends BaseEditorOption {\n constructor() {\n const defaults = {\n other: true,\n comments: false,\n strings: false\n };\n super(78 /* quickSuggestions */, 'quickSuggestions', defaults, {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n type: 'object',\n properties: {\n strings: {\n type: 'boolean',\n default: defaults.strings,\n description: nls.localize('quickSuggestions.strings', \"Enable quick suggestions inside strings.\")\n },\n comments: {\n type: 'boolean',\n default: defaults.comments,\n description: nls.localize('quickSuggestions.comments', \"Enable quick suggestions inside comments.\")\n },\n other: {\n type: 'boolean',\n default: defaults.other,\n description: nls.localize('quickSuggestions.other', \"Enable quick suggestions outside of strings and comments.\")\n },\n }\n }\n ],\n default: defaults,\n description: nls.localize('quickSuggestions', \"Controls whether suggestions should automatically show up while typing.\")\n });\n this.defaultValue = defaults;\n }\n validate(_input) {\n if (typeof _input === 'boolean') {\n return _input;\n }\n if (_input && typeof _input === 'object') {\n const input = _input;\n const opts = {\n other: boolean(input.other, this.defaultValue.other),\n comments: boolean(input.comments, this.defaultValue.comments),\n strings: boolean(input.strings, this.defaultValue.strings),\n };\n if (opts.other && opts.comments && opts.strings) {\n return true; // all on\n }\n else if (!opts.other && !opts.comments && !opts.strings) {\n return false; // all off\n }\n else {\n return opts;\n }\n }\n return this.defaultValue;\n }\n}\nclass EditorRenderLineNumbersOption extends BaseEditorOption {\n constructor() {\n super(59 /* lineNumbers */, 'lineNumbers', { renderType: 1 /* On */, renderFn: null }, {\n type: 'string',\n enum: ['off', 'on', 'relative', 'interval'],\n enumDescriptions: [\n nls.localize('lineNumbers.off', \"Line numbers are not rendered.\"),\n nls.localize('lineNumbers.on', \"Line numbers are rendered as absolute number.\"),\n nls.localize('lineNumbers.relative', \"Line numbers are rendered as distance in lines to cursor position.\"),\n nls.localize('lineNumbers.interval', \"Line numbers are rendered every 10 lines.\")\n ],\n default: 'on',\n description: nls.localize('lineNumbers', \"Controls the display of line numbers.\")\n });\n }\n validate(lineNumbers) {\n let renderType = this.defaultValue.renderType;\n let renderFn = this.defaultValue.renderFn;\n if (typeof lineNumbers !== 'undefined') {\n if (typeof lineNumbers === 'function') {\n renderType = 4 /* Custom */;\n renderFn = lineNumbers;\n }\n else if (lineNumbers === 'interval') {\n renderType = 3 /* Interval */;\n }\n else if (lineNumbers === 'relative') {\n renderType = 2 /* Relative */;\n }\n else if (lineNumbers === 'on') {\n renderType = 1 /* On */;\n }\n else {\n renderType = 0 /* Off */;\n }\n }\n return {\n renderType,\n renderFn\n };\n }\n}\n//#endregion\n//#region renderValidationDecorations\n/**\n * @internal\n */\nexport function filterValidationDecorations(options) {\n const renderValidationDecorations = options.get(86 /* renderValidationDecorations */);\n if (renderValidationDecorations === 'editable') {\n return options.get(80 /* readOnly */);\n }\n return renderValidationDecorations === 'on' ? false : true;\n}\nclass EditorRulers extends BaseEditorOption {\n constructor() {\n const defaults = [];\n const columnSchema = { type: 'number', description: nls.localize('rulers.size', \"Number of monospace characters at which this editor ruler will render.\") };\n super(90 /* rulers */, 'rulers', defaults, {\n type: 'array',\n items: {\n anyOf: [\n columnSchema,\n {\n type: [\n 'object'\n ],\n properties: {\n column: columnSchema,\n color: {\n type: 'string',\n description: nls.localize('rulers.color', \"Color of this editor ruler.\"),\n format: 'color-hex'\n }\n }\n }\n ]\n },\n default: defaults,\n description: nls.localize('rulers', \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n });\n }\n validate(input) {\n if (Array.isArray(input)) {\n let rulers = [];\n for (let _element of input) {\n if (typeof _element === 'number') {\n rulers.push({\n column: EditorIntOption.clampedInt(_element, 0, 0, 10000),\n color: null\n });\n }\n else if (_element && typeof _element === 'object') {\n const element = _element;\n rulers.push({\n column: EditorIntOption.clampedInt(element.column, 0, 0, 10000),\n color: element.color\n });\n }\n }\n rulers.sort((a, b) => a.column - b.column);\n return rulers;\n }\n return this.defaultValue;\n }\n}\nfunction _scrollbarVisibilityFromString(visibility, defaultValue) {\n if (typeof visibility !== 'string') {\n return defaultValue;\n }\n switch (visibility) {\n case 'hidden': return 2 /* Hidden */;\n case 'visible': return 3 /* Visible */;\n default: return 1 /* Auto */;\n }\n}\nclass EditorScrollbar extends BaseEditorOption {\n constructor() {\n const defaults = {\n vertical: 1 /* Auto */,\n horizontal: 1 /* Auto */,\n arrowSize: 11,\n useShadows: true,\n verticalHasArrows: false,\n horizontalHasArrows: false,\n horizontalScrollbarSize: 12,\n horizontalSliderSize: 12,\n verticalScrollbarSize: 14,\n verticalSliderSize: 14,\n handleMouseWheel: true,\n alwaysConsumeMouseWheel: true,\n scrollByPage: false\n };\n super(91 /* scrollbar */, 'scrollbar', defaults, {\n 'editor.scrollbar.vertical': {\n type: 'string',\n enum: ['auto', 'visible', 'hidden'],\n enumDescriptions: [\n nls.localize('scrollbar.vertical.auto', \"The vertical scrollbar will be visible only when necessary.\"),\n nls.localize('scrollbar.vertical.visible', \"The vertical scrollbar will always be visible.\"),\n nls.localize('scrollbar.vertical.fit', \"The vertical scrollbar will always be hidden.\"),\n ],\n default: 'auto',\n description: nls.localize('scrollbar.vertical', \"Controls the visibility of the vertical scrollbar.\")\n },\n 'editor.scrollbar.horizontal': {\n type: 'string',\n enum: ['auto', 'visible', 'hidden'],\n enumDescriptions: [\n nls.localize('scrollbar.horizontal.auto', \"The horizontal scrollbar will be visible only when necessary.\"),\n nls.localize('scrollbar.horizontal.visible', \"The horizontal scrollbar will always be visible.\"),\n nls.localize('scrollbar.horizontal.fit', \"The horizontal scrollbar will always be hidden.\"),\n ],\n default: 'auto',\n description: nls.localize('scrollbar.horizontal', \"Controls the visibility of the horizontal scrollbar.\")\n },\n 'editor.scrollbar.verticalScrollbarSize': {\n type: 'number',\n default: defaults.verticalScrollbarSize,\n description: nls.localize('scrollbar.verticalScrollbarSize', \"The width of the vertical scrollbar.\")\n },\n 'editor.scrollbar.horizontalScrollbarSize': {\n type: 'number',\n default: defaults.horizontalScrollbarSize,\n description: nls.localize('scrollbar.horizontalScrollbarSize', \"The height of the horizontal scrollbar.\")\n },\n 'editor.scrollbar.scrollByPage': {\n type: 'boolean',\n default: defaults.scrollByPage,\n description: nls.localize('scrollbar.scrollByPage', \"Controls whether clicks scroll by page or jump to click position.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n const horizontalScrollbarSize = EditorIntOption.clampedInt(input.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1000);\n const verticalScrollbarSize = EditorIntOption.clampedInt(input.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1000);\n return {\n arrowSize: EditorIntOption.clampedInt(input.arrowSize, this.defaultValue.arrowSize, 0, 1000),\n vertical: _scrollbarVisibilityFromString(input.vertical, this.defaultValue.vertical),\n horizontal: _scrollbarVisibilityFromString(input.horizontal, this.defaultValue.horizontal),\n useShadows: boolean(input.useShadows, this.defaultValue.useShadows),\n verticalHasArrows: boolean(input.verticalHasArrows, this.defaultValue.verticalHasArrows),\n horizontalHasArrows: boolean(input.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n handleMouseWheel: boolean(input.handleMouseWheel, this.defaultValue.handleMouseWheel),\n alwaysConsumeMouseWheel: boolean(input.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n horizontalScrollbarSize: horizontalScrollbarSize,\n horizontalSliderSize: EditorIntOption.clampedInt(input.horizontalSliderSize, horizontalScrollbarSize, 0, 1000),\n verticalScrollbarSize: verticalScrollbarSize,\n verticalSliderSize: EditorIntOption.clampedInt(input.verticalSliderSize, verticalScrollbarSize, 0, 1000),\n scrollByPage: boolean(input.scrollByPage, this.defaultValue.scrollByPage),\n };\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass InlineEditorSuggest extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n mode: 'subwordSmart'\n };\n super(54 /* inlineSuggest */, 'inlineSuggest', defaults, {\n 'editor.inlineSuggest.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('inlineSuggest.enabled', \"Controls whether to automatically show inline suggestions in the editor.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n mode: stringSet(input.mode, this.defaultValue.mode, ['prefix', 'subword', 'subwordSmart']),\n };\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass BracketPairColorization extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled\n };\n super(12 /* bracketPairColorization */, 'bracketPairColorization', defaults, {\n 'editor.bracketPairColorization.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('bracketPairColorization.enabled', \"Controls whether bracket pair colorization is enabled or not. Use 'workbench.colorCustomizations' to override the bracket highlight colors.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled)\n };\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass GuideOptions extends BaseEditorOption {\n constructor() {\n const defaults = {\n bracketPairs: false,\n bracketPairsHorizontal: 'active',\n highlightActiveBracketPair: true,\n indentation: true,\n highlightActiveIndentation: true\n };\n super(13 /* guides */, 'guides', defaults, {\n 'editor.guides.bracketPairs': {\n type: ['boolean', 'string'],\n enum: [true, 'active', false],\n enumDescriptions: [\n nls.localize('editor.guides.bracketPairs.true', \"Enables bracket pair guides.\"),\n nls.localize('editor.guides.bracketPairs.active', \"Enables bracket pair guides only for the active bracket pair.\"),\n nls.localize('editor.guides.bracketPairs.false', \"Disables bracket pair guides.\"),\n ],\n default: defaults.bracketPairs,\n description: nls.localize('editor.guides.bracketPairs', \"Controls whether bracket pair guides are enabled or not.\")\n },\n 'editor.guides.bracketPairsHorizontal': {\n type: ['boolean', 'string'],\n enum: [true, 'active', false],\n enumDescriptions: [\n nls.localize('editor.guides.bracketPairsHorizontal.true', \"Enables horizontal guides as addition to vertical bracket pair guides.\"),\n nls.localize('editor.guides.bracketPairsHorizontal.active', \"Enables horizontal guides only for the active bracket pair.\"),\n nls.localize('editor.guides.bracketPairsHorizontal.false', \"Disables horizontal bracket pair guides.\"),\n ],\n default: defaults.bracketPairsHorizontal,\n description: nls.localize('editor.guides.bracketPairsHorizontal', \"Controls whether horizontal bracket pair guides are enabled or not.\")\n },\n 'editor.guides.highlightActiveBracketPair': {\n type: 'boolean',\n default: defaults.highlightActiveBracketPair,\n description: nls.localize('editor.guides.highlightActiveBracketPair', \"Controls whether bracket pair guides are enabled or not.\")\n },\n 'editor.guides.indentation': {\n type: 'boolean',\n default: defaults.indentation,\n description: nls.localize('editor.guides.indentation', \"Controls whether the editor should render indent guides.\")\n },\n 'editor.guides.highlightActiveIndentation': {\n type: 'boolean',\n default: defaults.highlightActiveIndentation,\n description: nls.localize('editor.guides.highlightActiveIndentation', \"Controls whether the editor should highlight the active indent guide.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n bracketPairs: primitiveSet(input.bracketPairs, this.defaultValue.bracketPairs, [true, false, 'active']),\n bracketPairsHorizontal: primitiveSet(input.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [true, false, 'active']),\n highlightActiveBracketPair: boolean(input.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n indentation: boolean(input.indentation, this.defaultValue.indentation),\n highlightActiveIndentation: boolean(input.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation),\n };\n }\n}\nfunction primitiveSet(value, defaultValue, allowedValues) {\n const idx = allowedValues.indexOf(value);\n if (idx === -1) {\n return defaultValue;\n }\n return allowedValues[idx];\n}\nclass EditorSuggest extends BaseEditorOption {\n constructor() {\n const defaults = {\n insertMode: 'insert',\n filterGraceful: true,\n snippetsPreventQuickSuggestions: true,\n localityBonus: false,\n shareSuggestSelections: false,\n showIcons: true,\n showStatusBar: false,\n preview: false,\n previewMode: 'subwordSmart',\n showInlineDetails: true,\n showMethods: true,\n showFunctions: true,\n showConstructors: true,\n showDeprecated: true,\n showFields: true,\n showVariables: true,\n showClasses: true,\n showStructs: true,\n showInterfaces: true,\n showModules: true,\n showProperties: true,\n showEvents: true,\n showOperators: true,\n showUnits: true,\n showValues: true,\n showConstants: true,\n showEnums: true,\n showEnumMembers: true,\n showKeywords: true,\n showWords: true,\n showColors: true,\n showFiles: true,\n showReferences: true,\n showFolders: true,\n showTypeParameters: true,\n showSnippets: true,\n showUsers: true,\n showIssues: true,\n };\n super(105 /* suggest */, 'suggest', defaults, {\n 'editor.suggest.insertMode': {\n type: 'string',\n enum: ['insert', 'replace'],\n enumDescriptions: [\n nls.localize('suggest.insertMode.insert', \"Insert suggestion without overwriting text right of the cursor.\"),\n nls.localize('suggest.insertMode.replace', \"Insert suggestion and overwrite text right of the cursor.\"),\n ],\n default: defaults.insertMode,\n description: nls.localize('suggest.insertMode', \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n },\n 'editor.suggest.filterGraceful': {\n type: 'boolean',\n default: defaults.filterGraceful,\n description: nls.localize('suggest.filterGraceful', \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n },\n 'editor.suggest.localityBonus': {\n type: 'boolean',\n default: defaults.localityBonus,\n description: nls.localize('suggest.localityBonus', \"Controls whether sorting favors words that appear close to the cursor.\")\n },\n 'editor.suggest.shareSuggestSelections': {\n type: 'boolean',\n default: defaults.shareSuggestSelections,\n markdownDescription: nls.localize('suggest.shareSuggestSelections', \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n },\n 'editor.suggest.snippetsPreventQuickSuggestions': {\n type: 'boolean',\n default: defaults.snippetsPreventQuickSuggestions,\n description: nls.localize('suggest.snippetsPreventQuickSuggestions', \"Controls whether an active snippet prevents quick suggestions.\")\n },\n 'editor.suggest.showIcons': {\n type: 'boolean',\n default: defaults.showIcons,\n description: nls.localize('suggest.showIcons', \"Controls whether to show or hide icons in suggestions.\")\n },\n 'editor.suggest.showStatusBar': {\n type: 'boolean',\n default: defaults.showStatusBar,\n description: nls.localize('suggest.showStatusBar', \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n },\n 'editor.suggest.preview': {\n type: 'boolean',\n default: defaults.preview,\n description: nls.localize('suggest.preview', \"Controls whether to preview the suggestion outcome in the editor.\")\n },\n 'editor.suggest.showInlineDetails': {\n type: 'boolean',\n default: defaults.showInlineDetails,\n description: nls.localize('suggest.showInlineDetails', \"Controls whether suggest details show inline with the label or only in the details widget\")\n },\n 'editor.suggest.maxVisibleSuggestions': {\n type: 'number',\n deprecationMessage: nls.localize('suggest.maxVisibleSuggestions.dep', \"This setting is deprecated. The suggest widget can now be resized.\"),\n },\n 'editor.suggest.filteredTypes': {\n type: 'object',\n deprecationMessage: nls.localize('deprecated', \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n },\n 'editor.suggest.showMethods': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showMethods', \"When enabled IntelliSense shows `method`-suggestions.\")\n },\n 'editor.suggest.showFunctions': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFunctions', \"When enabled IntelliSense shows `function`-suggestions.\")\n },\n 'editor.suggest.showConstructors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showConstructors', \"When enabled IntelliSense shows `constructor`-suggestions.\")\n },\n 'editor.suggest.showDeprecated': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showDeprecated', \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n },\n 'editor.suggest.showFields': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFields', \"When enabled IntelliSense shows `field`-suggestions.\")\n },\n 'editor.suggest.showVariables': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showVariables', \"When enabled IntelliSense shows `variable`-suggestions.\")\n },\n 'editor.suggest.showClasses': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showClasss', \"When enabled IntelliSense shows `class`-suggestions.\")\n },\n 'editor.suggest.showStructs': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showStructs', \"When enabled IntelliSense shows `struct`-suggestions.\")\n },\n 'editor.suggest.showInterfaces': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showInterfaces', \"When enabled IntelliSense shows `interface`-suggestions.\")\n },\n 'editor.suggest.showModules': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showModules', \"When enabled IntelliSense shows `module`-suggestions.\")\n },\n 'editor.suggest.showProperties': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showPropertys', \"When enabled IntelliSense shows `property`-suggestions.\")\n },\n 'editor.suggest.showEvents': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEvents', \"When enabled IntelliSense shows `event`-suggestions.\")\n },\n 'editor.suggest.showOperators': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showOperators', \"When enabled IntelliSense shows `operator`-suggestions.\")\n },\n 'editor.suggest.showUnits': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showUnits', \"When enabled IntelliSense shows `unit`-suggestions.\")\n },\n 'editor.suggest.showValues': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showValues', \"When enabled IntelliSense shows `value`-suggestions.\")\n },\n 'editor.suggest.showConstants': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showConstants', \"When enabled IntelliSense shows `constant`-suggestions.\")\n },\n 'editor.suggest.showEnums': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEnums', \"When enabled IntelliSense shows `enum`-suggestions.\")\n },\n 'editor.suggest.showEnumMembers': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEnumMembers', \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n },\n 'editor.suggest.showKeywords': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showKeywords', \"When enabled IntelliSense shows `keyword`-suggestions.\")\n },\n 'editor.suggest.showWords': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showTexts', \"When enabled IntelliSense shows `text`-suggestions.\")\n },\n 'editor.suggest.showColors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showColors', \"When enabled IntelliSense shows `color`-suggestions.\")\n },\n 'editor.suggest.showFiles': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFiles', \"When enabled IntelliSense shows `file`-suggestions.\")\n },\n 'editor.suggest.showReferences': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showReferences', \"When enabled IntelliSense shows `reference`-suggestions.\")\n },\n 'editor.suggest.showCustomcolors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showCustomcolors', \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n },\n 'editor.suggest.showFolders': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFolders', \"When enabled IntelliSense shows `folder`-suggestions.\")\n },\n 'editor.suggest.showTypeParameters': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showTypeParameters', \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n },\n 'editor.suggest.showSnippets': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showSnippets', \"When enabled IntelliSense shows `snippet`-suggestions.\")\n },\n 'editor.suggest.showUsers': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showUsers', \"When enabled IntelliSense shows `user`-suggestions.\")\n },\n 'editor.suggest.showIssues': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showIssues', \"When enabled IntelliSense shows `issues`-suggestions.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, ['insert', 'replace']),\n filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),\n snippetsPreventQuickSuggestions: boolean(input.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),\n shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n showIcons: boolean(input.showIcons, this.defaultValue.showIcons),\n showStatusBar: boolean(input.showStatusBar, this.defaultValue.showStatusBar),\n preview: boolean(input.preview, this.defaultValue.preview),\n previewMode: stringSet(input.previewMode, this.defaultValue.previewMode, ['prefix', 'subword', 'subwordSmart']),\n showInlineDetails: boolean(input.showInlineDetails, this.defaultValue.showInlineDetails),\n showMethods: boolean(input.showMethods, this.defaultValue.showMethods),\n showFunctions: boolean(input.showFunctions, this.defaultValue.showFunctions),\n showConstructors: boolean(input.showConstructors, this.defaultValue.showConstructors),\n showDeprecated: boolean(input.showDeprecated, this.defaultValue.showDeprecated),\n showFields: boolean(input.showFields, this.defaultValue.showFields),\n showVariables: boolean(input.showVariables, this.defaultValue.showVariables),\n showClasses: boolean(input.showClasses, this.defaultValue.showClasses),\n showStructs: boolean(input.showStructs, this.defaultValue.showStructs),\n showInterfaces: boolean(input.showInterfaces, this.defaultValue.showInterfaces),\n showModules: boolean(input.showModules, this.defaultValue.showModules),\n showProperties: boolean(input.showProperties, this.defaultValue.showProperties),\n showEvents: boolean(input.showEvents, this.defaultValue.showEvents),\n showOperators: boolean(input.showOperators, this.defaultValue.showOperators),\n showUnits: boolean(input.showUnits, this.defaultValue.showUnits),\n showValues: boolean(input.showValues, this.defaultValue.showValues),\n showConstants: boolean(input.showConstants, this.defaultValue.showConstants),\n showEnums: boolean(input.showEnums, this.defaultValue.showEnums),\n showEnumMembers: boolean(input.showEnumMembers, this.defaultValue.showEnumMembers),\n showKeywords: boolean(input.showKeywords, this.defaultValue.showKeywords),\n showWords: boolean(input.showWords, this.defaultValue.showWords),\n showColors: boolean(input.showColors, this.defaultValue.showColors),\n showFiles: boolean(input.showFiles, this.defaultValue.showFiles),\n showReferences: boolean(input.showReferences, this.defaultValue.showReferences),\n showFolders: boolean(input.showFolders, this.defaultValue.showFolders),\n showTypeParameters: boolean(input.showTypeParameters, this.defaultValue.showTypeParameters),\n showSnippets: boolean(input.showSnippets, this.defaultValue.showSnippets),\n showUsers: boolean(input.showUsers, this.defaultValue.showUsers),\n showIssues: boolean(input.showIssues, this.defaultValue.showIssues),\n };\n }\n}\nclass SmartSelect extends BaseEditorOption {\n constructor() {\n super(101 /* smartSelect */, 'smartSelect', {\n selectLeadingAndTrailingWhitespace: true\n }, {\n 'editor.smartSelect.selectLeadingAndTrailingWhitespace': {\n description: nls.localize('selectLeadingAndTrailingWhitespace', \"Whether leading and trailing whitespace should always be selected.\"),\n default: true,\n type: 'boolean'\n }\n });\n }\n validate(input) {\n if (!input || typeof input !== 'object') {\n return this.defaultValue;\n }\n return {\n selectLeadingAndTrailingWhitespace: boolean(input.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace)\n };\n }\n}\n//#endregion\n//#region tabFocusMode\nclass EditorTabFocusMode extends ComputedEditorOption {\n constructor() {\n super(128 /* tabFocusMode */, [80 /* readOnly */]);\n }\n compute(env, options, _) {\n const readOnly = options.get(80 /* readOnly */);\n return (readOnly ? true : env.tabFocusMode);\n }\n}\nfunction _wrappingIndentFromString(wrappingIndent) {\n switch (wrappingIndent) {\n case 'none': return 0 /* None */;\n case 'same': return 1 /* Same */;\n case 'indent': return 2 /* Indent */;\n case 'deepIndent': return 3 /* DeepIndent */;\n }\n}\nclass EditorWrappingInfoComputer extends ComputedEditorOption {\n constructor() {\n super(130 /* wrappingInfo */, [129 /* layoutInfo */]);\n }\n compute(env, options, _) {\n const layoutInfo = options.get(129 /* layoutInfo */);\n return {\n isDominatedByLongLines: env.isDominatedByLongLines,\n isWordWrapMinified: layoutInfo.isWordWrapMinified,\n isViewportWrapping: layoutInfo.isViewportWrapping,\n wrappingColumn: layoutInfo.wrappingColumn,\n };\n }\n}\n//#endregion\nconst DEFAULT_WINDOWS_FONT_FAMILY = 'Consolas, \\'Courier New\\', monospace';\nconst DEFAULT_MAC_FONT_FAMILY = 'Menlo, Monaco, \\'Courier New\\', monospace';\nconst DEFAULT_LINUX_FONT_FAMILY = '\\'Droid Sans Mono\\', \\'monospace\\', monospace, \\'Droid Sans Fallback\\'';\n/**\n * @internal\n */\nexport const EDITOR_FONT_DEFAULTS = {\n fontFamily: (platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)),\n fontWeight: 'normal',\n fontSize: (platform.isMacintosh ? 12 : 14),\n lineHeight: 0,\n letterSpacing: 0,\n};\n/**\n * @internal\n */\nexport const EDITOR_MODEL_DEFAULTS = {\n tabSize: 4,\n indentSize: 4,\n insertSpaces: true,\n detectIndentation: true,\n trimAutoWhitespace: true,\n largeFileOptimizations: true,\n bracketPairColorizationOptions: { enabled: false }\n};\n/**\n * @internal\n */\nexport const editorOptionsRegistry = [];\nfunction register(option) {\n editorOptionsRegistry[option.id] = option;\n return option;\n}\nexport const EditorOptions = {\n acceptSuggestionOnCommitCharacter: register(new EditorBooleanOption(0 /* acceptSuggestionOnCommitCharacter */, 'acceptSuggestionOnCommitCharacter', true, { markdownDescription: nls.localize('acceptSuggestionOnCommitCharacter', \"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\") })),\n acceptSuggestionOnEnter: register(new EditorStringEnumOption(1 /* acceptSuggestionOnEnter */, 'acceptSuggestionOnEnter', 'on', ['on', 'smart', 'off'], {\n markdownEnumDescriptions: [\n '',\n nls.localize('acceptSuggestionOnEnterSmart', \"Only accept a suggestion with `Enter` when it makes a textual change.\"),\n ''\n ],\n markdownDescription: nls.localize('acceptSuggestionOnEnter', \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n })),\n accessibilitySupport: register(new EditorAccessibilitySupport()),\n accessibilityPageSize: register(new EditorIntOption(3 /* accessibilityPageSize */, 'accessibilityPageSize', 10, 1, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, {\n description: nls.localize('accessibilityPageSize', \"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.\")\n })),\n ariaLabel: register(new EditorStringOption(4 /* ariaLabel */, 'ariaLabel', nls.localize('editorViewAccessibleLabel', \"Editor content\"))),\n autoClosingBrackets: register(new EditorStringEnumOption(5 /* autoClosingBrackets */, 'autoClosingBrackets', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingBrackets.languageDefined', \"Use language configurations to determine when to autoclose brackets.\"),\n nls.localize('editor.autoClosingBrackets.beforeWhitespace', \"Autoclose brackets only when the cursor is to the left of whitespace.\"),\n '',\n ],\n description: nls.localize('autoClosingBrackets', \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n })),\n autoClosingDelete: register(new EditorStringEnumOption(6 /* autoClosingDelete */, 'autoClosingDelete', 'auto', ['always', 'auto', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingDelete.auto', \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"),\n '',\n ],\n description: nls.localize('autoClosingDelete', \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n })),\n autoClosingOvertype: register(new EditorStringEnumOption(7 /* autoClosingOvertype */, 'autoClosingOvertype', 'auto', ['always', 'auto', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingOvertype.auto', \"Type over closing quotes or brackets only if they were automatically inserted.\"),\n '',\n ],\n description: nls.localize('autoClosingOvertype', \"Controls whether the editor should type over closing quotes or brackets.\")\n })),\n autoClosingQuotes: register(new EditorStringEnumOption(8 /* autoClosingQuotes */, 'autoClosingQuotes', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingQuotes.languageDefined', \"Use language configurations to determine when to autoclose quotes.\"),\n nls.localize('editor.autoClosingQuotes.beforeWhitespace', \"Autoclose quotes only when the cursor is to the left of whitespace.\"),\n '',\n ],\n description: nls.localize('autoClosingQuotes', \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n })),\n autoIndent: register(new EditorEnumOption(9 /* autoIndent */, 'autoIndent', 4 /* Full */, 'full', ['none', 'keep', 'brackets', 'advanced', 'full'], _autoIndentFromString, {\n enumDescriptions: [\n nls.localize('editor.autoIndent.none', \"The editor will not insert indentation automatically.\"),\n nls.localize('editor.autoIndent.keep', \"The editor will keep the current line's indentation.\"),\n nls.localize('editor.autoIndent.brackets', \"The editor will keep the current line's indentation and honor language defined brackets.\"),\n nls.localize('editor.autoIndent.advanced', \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"),\n nls.localize('editor.autoIndent.full', \"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\"),\n ],\n description: nls.localize('autoIndent', \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n })),\n automaticLayout: register(new EditorBooleanOption(10 /* automaticLayout */, 'automaticLayout', false)),\n autoSurround: register(new EditorStringEnumOption(11 /* autoSurround */, 'autoSurround', 'languageDefined', ['languageDefined', 'quotes', 'brackets', 'never'], {\n enumDescriptions: [\n nls.localize('editor.autoSurround.languageDefined', \"Use language configurations to determine when to automatically surround selections.\"),\n nls.localize('editor.autoSurround.quotes', \"Surround with quotes but not brackets.\"),\n nls.localize('editor.autoSurround.brackets', \"Surround with brackets but not quotes.\"),\n ''\n ],\n description: nls.localize('autoSurround', \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n })),\n bracketPairColorization: register(new BracketPairColorization()),\n bracketPairGuides: register(new GuideOptions()),\n stickyTabStops: register(new EditorBooleanOption(103 /* stickyTabStops */, 'stickyTabStops', false, { description: nls.localize('stickyTabStops', \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\") })),\n codeLens: register(new EditorBooleanOption(14 /* codeLens */, 'codeLens', true, { description: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\") })),\n codeLensFontFamily: register(new EditorStringOption(15 /* codeLensFontFamily */, 'codeLensFontFamily', '', { description: nls.localize('codeLensFontFamily', \"Controls the font family for CodeLens.\") })),\n codeLensFontSize: register(new EditorIntOption(16 /* codeLensFontSize */, 'codeLensFontSize', 0, 0, 100, {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 100,\n markdownDescription: nls.localize('codeLensFontSize', \"Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used.\")\n })),\n colorDecorators: register(new EditorBooleanOption(17 /* colorDecorators */, 'colorDecorators', true, { description: nls.localize('colorDecorators', \"Controls whether the editor should render the inline color decorators and color picker.\") })),\n columnSelection: register(new EditorBooleanOption(18 /* columnSelection */, 'columnSelection', false, { description: nls.localize('columnSelection', \"Enable that the selection with the mouse and keys is doing column selection.\") })),\n comments: register(new EditorComments()),\n contextmenu: register(new EditorBooleanOption(20 /* contextmenu */, 'contextmenu', true)),\n copyWithSyntaxHighlighting: register(new EditorBooleanOption(21 /* copyWithSyntaxHighlighting */, 'copyWithSyntaxHighlighting', true, { description: nls.localize('copyWithSyntaxHighlighting', \"Controls whether syntax highlighting should be copied into the clipboard.\") })),\n cursorBlinking: register(new EditorEnumOption(22 /* cursorBlinking */, 'cursorBlinking', 1 /* Blink */, 'blink', ['blink', 'smooth', 'phase', 'expand', 'solid'], _cursorBlinkingStyleFromString, { description: nls.localize('cursorBlinking', \"Control the cursor animation style.\") })),\n cursorSmoothCaretAnimation: register(new EditorBooleanOption(23 /* cursorSmoothCaretAnimation */, 'cursorSmoothCaretAnimation', false, { description: nls.localize('cursorSmoothCaretAnimation', \"Controls whether the smooth caret animation should be enabled.\") })),\n cursorStyle: register(new EditorEnumOption(24 /* cursorStyle */, 'cursorStyle', TextEditorCursorStyle.Line, 'line', ['line', 'block', 'underline', 'line-thin', 'block-outline', 'underline-thin'], _cursorStyleFromString, { description: nls.localize('cursorStyle', \"Controls the cursor style.\") })),\n cursorSurroundingLines: register(new EditorIntOption(25 /* cursorSurroundingLines */, 'cursorSurroundingLines', 0, 0, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('cursorSurroundingLines', \"Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\") })),\n cursorSurroundingLinesStyle: register(new EditorStringEnumOption(26 /* cursorSurroundingLinesStyle */, 'cursorSurroundingLinesStyle', 'default', ['default', 'all'], {\n enumDescriptions: [\n nls.localize('cursorSurroundingLinesStyle.default', \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"),\n nls.localize('cursorSurroundingLinesStyle.all', \"`cursorSurroundingLines` is enforced always.\")\n ],\n description: nls.localize('cursorSurroundingLinesStyle', \"Controls when `cursorSurroundingLines` should be enforced.\")\n })),\n cursorWidth: register(new EditorIntOption(27 /* cursorWidth */, 'cursorWidth', 0, 0, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, { markdownDescription: nls.localize('cursorWidth', \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\") })),\n disableLayerHinting: register(new EditorBooleanOption(28 /* disableLayerHinting */, 'disableLayerHinting', false)),\n disableMonospaceOptimizations: register(new EditorBooleanOption(29 /* disableMonospaceOptimizations */, 'disableMonospaceOptimizations', false)),\n domReadOnly: register(new EditorBooleanOption(30 /* domReadOnly */, 'domReadOnly', false)),\n dragAndDrop: register(new EditorBooleanOption(31 /* dragAndDrop */, 'dragAndDrop', true, { description: nls.localize('dragAndDrop', \"Controls whether the editor should allow moving selections via drag and drop.\") })),\n emptySelectionClipboard: register(new EditorEmptySelectionClipboard()),\n extraEditorClassName: register(new EditorStringOption(33 /* extraEditorClassName */, 'extraEditorClassName', '')),\n fastScrollSensitivity: register(new EditorFloatOption(34 /* fastScrollSensitivity */, 'fastScrollSensitivity', 5, x => (x <= 0 ? 5 : x), { markdownDescription: nls.localize('fastScrollSensitivity', \"Scrolling speed multiplier when pressing `Alt`.\") })),\n find: register(new EditorFind()),\n fixedOverflowWidgets: register(new EditorBooleanOption(36 /* fixedOverflowWidgets */, 'fixedOverflowWidgets', false)),\n folding: register(new EditorBooleanOption(37 /* folding */, 'folding', true, { description: nls.localize('folding', \"Controls whether the editor has code folding enabled.\") })),\n foldingStrategy: register(new EditorStringEnumOption(38 /* foldingStrategy */, 'foldingStrategy', 'auto', ['auto', 'indentation'], {\n enumDescriptions: [\n nls.localize('foldingStrategy.auto', \"Use a language-specific folding strategy if available, else the indentation-based one.\"),\n nls.localize('foldingStrategy.indentation', \"Use the indentation-based folding strategy.\"),\n ],\n description: nls.localize('foldingStrategy', \"Controls the strategy for computing folding ranges.\")\n })),\n foldingHighlight: register(new EditorBooleanOption(39 /* foldingHighlight */, 'foldingHighlight', true, { description: nls.localize('foldingHighlight', \"Controls whether the editor should highlight folded ranges.\") })),\n foldingImportsByDefault: register(new EditorBooleanOption(40 /* foldingImportsByDefault */, 'foldingImportsByDefault', false, { description: nls.localize('foldingImportsByDefault', \"Controls whether the editor automatically collapses import ranges.\") })),\n unfoldOnClickAfterEndOfLine: register(new EditorBooleanOption(41 /* unfoldOnClickAfterEndOfLine */, 'unfoldOnClickAfterEndOfLine', false, { description: nls.localize('unfoldOnClickAfterEndOfLine', \"Controls whether clicking on the empty content after a folded line will unfold the line.\") })),\n fontFamily: register(new EditorStringOption(42 /* fontFamily */, 'fontFamily', EDITOR_FONT_DEFAULTS.fontFamily, { description: nls.localize('fontFamily', \"Controls the font family.\") })),\n fontInfo: register(new EditorFontInfo()),\n fontLigatures2: register(new EditorFontLigatures()),\n fontSize: register(new EditorFontSize()),\n fontWeight: register(new EditorFontWeight()),\n formatOnPaste: register(new EditorBooleanOption(47 /* formatOnPaste */, 'formatOnPaste', false, { description: nls.localize('formatOnPaste', \"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\") })),\n formatOnType: register(new EditorBooleanOption(48 /* formatOnType */, 'formatOnType', false, { description: nls.localize('formatOnType', \"Controls whether the editor should automatically format the line after typing.\") })),\n glyphMargin: register(new EditorBooleanOption(49 /* glyphMargin */, 'glyphMargin', true, { description: nls.localize('glyphMargin', \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\") })),\n gotoLocation: register(new EditorGoToLocation()),\n hideCursorInOverviewRuler: register(new EditorBooleanOption(51 /* hideCursorInOverviewRuler */, 'hideCursorInOverviewRuler', false, { description: nls.localize('hideCursorInOverviewRuler', \"Controls whether the cursor should be hidden in the overview ruler.\") })),\n hover: register(new EditorHover()),\n inDiffEditor: register(new EditorBooleanOption(53 /* inDiffEditor */, 'inDiffEditor', false)),\n letterSpacing: register(new EditorFloatOption(55 /* letterSpacing */, 'letterSpacing', EDITOR_FONT_DEFAULTS.letterSpacing, x => EditorFloatOption.clamp(x, -5, 20), { description: nls.localize('letterSpacing', \"Controls the letter spacing in pixels.\") })),\n lightbulb: register(new EditorLightbulb()),\n lineDecorationsWidth: register(new SimpleEditorOption(57 /* lineDecorationsWidth */, 'lineDecorationsWidth', 10)),\n lineHeight: register(new EditorLineHeight()),\n lineNumbers: register(new EditorRenderLineNumbersOption()),\n lineNumbersMinChars: register(new EditorIntOption(60 /* lineNumbersMinChars */, 'lineNumbersMinChars', 5, 1, 300)),\n linkedEditing: register(new EditorBooleanOption(61 /* linkedEditing */, 'linkedEditing', false, { description: nls.localize('linkedEditing', \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.\") })),\n links: register(new EditorBooleanOption(62 /* links */, 'links', true, { description: nls.localize('links', \"Controls whether the editor should detect links and make them clickable.\") })),\n matchBrackets: register(new EditorStringEnumOption(63 /* matchBrackets */, 'matchBrackets', 'always', ['always', 'near', 'never'], { description: nls.localize('matchBrackets', \"Highlight matching brackets.\") })),\n minimap: register(new EditorMinimap()),\n mouseStyle: register(new EditorStringEnumOption(65 /* mouseStyle */, 'mouseStyle', 'text', ['text', 'default', 'copy'])),\n mouseWheelScrollSensitivity: register(new EditorFloatOption(66 /* mouseWheelScrollSensitivity */, 'mouseWheelScrollSensitivity', 1, x => (x === 0 ? 1 : x), { markdownDescription: nls.localize('mouseWheelScrollSensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\") })),\n mouseWheelZoom: register(new EditorBooleanOption(67 /* mouseWheelZoom */, 'mouseWheelZoom', false, { markdownDescription: nls.localize('mouseWheelZoom', \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\") })),\n multiCursorMergeOverlapping: register(new EditorBooleanOption(68 /* multiCursorMergeOverlapping */, 'multiCursorMergeOverlapping', true, { description: nls.localize('multiCursorMergeOverlapping', \"Merge multiple cursors when they are overlapping.\") })),\n multiCursorModifier: register(new EditorEnumOption(69 /* multiCursorModifier */, 'multiCursorModifier', 'altKey', 'alt', ['ctrlCmd', 'alt'], _multiCursorModifierFromString, {\n markdownEnumDescriptions: [\n nls.localize('multiCursorModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n nls.localize('multiCursorModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n ],\n markdownDescription: nls.localize({\n key: 'multiCursorModifier',\n comment: [\n '- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n ]\n }, \"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n })),\n multiCursorPaste: register(new EditorStringEnumOption(70 /* multiCursorPaste */, 'multiCursorPaste', 'spread', ['spread', 'full'], {\n markdownEnumDescriptions: [\n nls.localize('multiCursorPaste.spread', \"Each cursor pastes a single line of the text.\"),\n nls.localize('multiCursorPaste.full', \"Each cursor pastes the full text.\")\n ],\n markdownDescription: nls.localize('multiCursorPaste', \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n })),\n occurrencesHighlight: register(new EditorBooleanOption(71 /* occurrencesHighlight */, 'occurrencesHighlight', true, { description: nls.localize('occurrencesHighlight', \"Controls whether the editor should highlight semantic symbol occurrences.\") })),\n overviewRulerBorder: register(new EditorBooleanOption(72 /* overviewRulerBorder */, 'overviewRulerBorder', true, { description: nls.localize('overviewRulerBorder', \"Controls whether a border should be drawn around the overview ruler.\") })),\n overviewRulerLanes: register(new EditorIntOption(73 /* overviewRulerLanes */, 'overviewRulerLanes', 3, 0, 3)),\n padding: register(new EditorPadding()),\n parameterHints: register(new EditorParameterHints()),\n peekWidgetDefaultFocus: register(new EditorStringEnumOption(76 /* peekWidgetDefaultFocus */, 'peekWidgetDefaultFocus', 'tree', ['tree', 'editor'], {\n enumDescriptions: [\n nls.localize('peekWidgetDefaultFocus.tree', \"Focus the tree when opening peek\"),\n nls.localize('peekWidgetDefaultFocus.editor', \"Focus the editor when opening peek\")\n ],\n description: nls.localize('peekWidgetDefaultFocus', \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n })),\n definitionLinkOpensInPeek: register(new EditorBooleanOption(77 /* definitionLinkOpensInPeek */, 'definitionLinkOpensInPeek', false, { description: nls.localize('definitionLinkOpensInPeek', \"Controls whether the Go to Definition mouse gesture always opens the peek widget.\") })),\n quickSuggestions: register(new EditorQuickSuggestions()),\n quickSuggestionsDelay: register(new EditorIntOption(79 /* quickSuggestionsDelay */, 'quickSuggestionsDelay', 10, 0, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('quickSuggestionsDelay', \"Controls the delay in milliseconds after which quick suggestions will show up.\") })),\n readOnly: register(new EditorBooleanOption(80 /* readOnly */, 'readOnly', false)),\n renameOnType: register(new EditorBooleanOption(81 /* renameOnType */, 'renameOnType', false, { description: nls.localize('renameOnType', \"Controls whether the editor auto renames on type.\"), markdownDeprecationMessage: nls.localize('renameOnTypeDeprecate', \"Deprecated, use `editor.linkedEditing` instead.\") })),\n renderControlCharacters: register(new EditorBooleanOption(82 /* renderControlCharacters */, 'renderControlCharacters', true, { description: nls.localize('renderControlCharacters', \"Controls whether the editor should render control characters.\"), restricted: true })),\n renderFinalNewline: register(new EditorBooleanOption(83 /* renderFinalNewline */, 'renderFinalNewline', true, { description: nls.localize('renderFinalNewline', \"Render last line number when the file ends with a newline.\") })),\n renderLineHighlight: register(new EditorStringEnumOption(84 /* renderLineHighlight */, 'renderLineHighlight', 'line', ['none', 'gutter', 'line', 'all'], {\n enumDescriptions: [\n '',\n '',\n '',\n nls.localize('renderLineHighlight.all', \"Highlights both the gutter and the current line.\"),\n ],\n description: nls.localize('renderLineHighlight', \"Controls how the editor should render the current line highlight.\")\n })),\n renderLineHighlightOnlyWhenFocus: register(new EditorBooleanOption(85 /* renderLineHighlightOnlyWhenFocus */, 'renderLineHighlightOnlyWhenFocus', false, { description: nls.localize('renderLineHighlightOnlyWhenFocus', \"Controls if the editor should render the current line highlight only when the editor is focused.\") })),\n renderValidationDecorations: register(new EditorStringEnumOption(86 /* renderValidationDecorations */, 'renderValidationDecorations', 'editable', ['editable', 'on', 'off'])),\n renderWhitespace: register(new EditorStringEnumOption(87 /* renderWhitespace */, 'renderWhitespace', 'selection', ['none', 'boundary', 'selection', 'trailing', 'all'], {\n enumDescriptions: [\n '',\n nls.localize('renderWhitespace.boundary', \"Render whitespace characters except for single spaces between words.\"),\n nls.localize('renderWhitespace.selection', \"Render whitespace characters only on selected text.\"),\n nls.localize('renderWhitespace.trailing', \"Render only trailing whitespace characters.\"),\n ''\n ],\n description: nls.localize('renderWhitespace', \"Controls how the editor should render whitespace characters.\")\n })),\n revealHorizontalRightPadding: register(new EditorIntOption(88 /* revealHorizontalRightPadding */, 'revealHorizontalRightPadding', 30, 0, 1000)),\n roundedSelection: register(new EditorBooleanOption(89 /* roundedSelection */, 'roundedSelection', true, { description: nls.localize('roundedSelection', \"Controls whether selections should have rounded corners.\") })),\n rulers: register(new EditorRulers()),\n scrollbar: register(new EditorScrollbar()),\n scrollBeyondLastColumn: register(new EditorIntOption(92 /* scrollBeyondLastColumn */, 'scrollBeyondLastColumn', 5, 0, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('scrollBeyondLastColumn', \"Controls the number of extra characters beyond which the editor will scroll horizontally.\") })),\n scrollBeyondLastLine: register(new EditorBooleanOption(93 /* scrollBeyondLastLine */, 'scrollBeyondLastLine', true, { description: nls.localize('scrollBeyondLastLine', \"Controls whether the editor will scroll beyond the last line.\") })),\n scrollPredominantAxis: register(new EditorBooleanOption(94 /* scrollPredominantAxis */, 'scrollPredominantAxis', true, { description: nls.localize('scrollPredominantAxis', \"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.\") })),\n selectionClipboard: register(new EditorBooleanOption(95 /* selectionClipboard */, 'selectionClipboard', true, {\n description: nls.localize('selectionClipboard', \"Controls whether the Linux primary clipboard should be supported.\"),\n included: platform.isLinux\n })),\n selectionHighlight: register(new EditorBooleanOption(96 /* selectionHighlight */, 'selectionHighlight', true, { description: nls.localize('selectionHighlight', \"Controls whether the editor should highlight matches similar to the selection.\") })),\n selectOnLineNumbers: register(new EditorBooleanOption(97 /* selectOnLineNumbers */, 'selectOnLineNumbers', true)),\n showFoldingControls: register(new EditorStringEnumOption(98 /* showFoldingControls */, 'showFoldingControls', 'mouseover', ['always', 'mouseover'], {\n enumDescriptions: [\n nls.localize('showFoldingControls.always', \"Always show the folding controls.\"),\n nls.localize('showFoldingControls.mouseover', \"Only show the folding controls when the mouse is over the gutter.\"),\n ],\n description: nls.localize('showFoldingControls', \"Controls when the folding controls on the gutter are shown.\")\n })),\n showUnused: register(new EditorBooleanOption(99 /* showUnused */, 'showUnused', true, { description: nls.localize('showUnused', \"Controls fading out of unused code.\") })),\n showDeprecated: register(new EditorBooleanOption(124 /* showDeprecated */, 'showDeprecated', true, { description: nls.localize('showDeprecated', \"Controls strikethrough deprecated variables.\") })),\n inlayHints: register(new EditorInlayHints()),\n snippetSuggestions: register(new EditorStringEnumOption(100 /* snippetSuggestions */, 'snippetSuggestions', 'inline', ['top', 'bottom', 'inline', 'none'], {\n enumDescriptions: [\n nls.localize('snippetSuggestions.top', \"Show snippet suggestions on top of other suggestions.\"),\n nls.localize('snippetSuggestions.bottom', \"Show snippet suggestions below other suggestions.\"),\n nls.localize('snippetSuggestions.inline', \"Show snippets suggestions with other suggestions.\"),\n nls.localize('snippetSuggestions.none', \"Do not show snippet suggestions.\"),\n ],\n description: nls.localize('snippetSuggestions', \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n })),\n smartSelect: register(new SmartSelect()),\n smoothScrolling: register(new EditorBooleanOption(102 /* smoothScrolling */, 'smoothScrolling', false, { description: nls.localize('smoothScrolling', \"Controls whether the editor will scroll using an animation.\") })),\n stopRenderingLineAfter: register(new EditorIntOption(104 /* stopRenderingLineAfter */, 'stopRenderingLineAfter', 10000, -1, 1073741824 /* MAX_SAFE_SMALL_INTEGER */)),\n suggest: register(new EditorSuggest()),\n inlineSuggest: register(new InlineEditorSuggest()),\n suggestFontSize: register(new EditorIntOption(106 /* suggestFontSize */, 'suggestFontSize', 0, 0, 1000, { markdownDescription: nls.localize('suggestFontSize', \"Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.\") })),\n suggestLineHeight: register(new EditorIntOption(107 /* suggestLineHeight */, 'suggestLineHeight', 0, 0, 1000, { markdownDescription: nls.localize('suggestLineHeight', \"Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.\") })),\n suggestOnTriggerCharacters: register(new EditorBooleanOption(108 /* suggestOnTriggerCharacters */, 'suggestOnTriggerCharacters', true, { description: nls.localize('suggestOnTriggerCharacters', \"Controls whether suggestions should automatically show up when typing trigger characters.\") })),\n suggestSelection: register(new EditorStringEnumOption(109 /* suggestSelection */, 'suggestSelection', 'recentlyUsed', ['first', 'recentlyUsed', 'recentlyUsedByPrefix'], {\n markdownEnumDescriptions: [\n nls.localize('suggestSelection.first', \"Always select the first suggestion.\"),\n nls.localize('suggestSelection.recentlyUsed', \"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"),\n nls.localize('suggestSelection.recentlyUsedByPrefix', \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\"),\n ],\n description: nls.localize('suggestSelection', \"Controls how suggestions are pre-selected when showing the suggest list.\")\n })),\n tabCompletion: register(new EditorStringEnumOption(110 /* tabCompletion */, 'tabCompletion', 'off', ['on', 'off', 'onlySnippets'], {\n enumDescriptions: [\n nls.localize('tabCompletion.on', \"Tab complete will insert the best matching suggestion when pressing tab.\"),\n nls.localize('tabCompletion.off', \"Disable tab completions.\"),\n nls.localize('tabCompletion.onlySnippets', \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\"),\n ],\n description: nls.localize('tabCompletion', \"Enables tab completions.\")\n })),\n tabIndex: register(new EditorIntOption(111 /* tabIndex */, 'tabIndex', 0, -1, 1073741824 /* MAX_SAFE_SMALL_INTEGER */)),\n unusualLineTerminators: register(new EditorStringEnumOption(112 /* unusualLineTerminators */, 'unusualLineTerminators', 'prompt', ['auto', 'off', 'prompt'], {\n enumDescriptions: [\n nls.localize('unusualLineTerminators.auto', \"Unusual line terminators are automatically removed.\"),\n nls.localize('unusualLineTerminators.off', \"Unusual line terminators are ignored.\"),\n nls.localize('unusualLineTerminators.prompt', \"Unusual line terminators prompt to be removed.\"),\n ],\n description: nls.localize('unusualLineTerminators', \"Remove unusual line terminators that might cause problems.\")\n })),\n useShadowDOM: register(new EditorBooleanOption(113 /* useShadowDOM */, 'useShadowDOM', true)),\n useTabStops: register(new EditorBooleanOption(114 /* useTabStops */, 'useTabStops', true, { description: nls.localize('useTabStops', \"Inserting and deleting whitespace follows tab stops.\") })),\n wordSeparators: register(new EditorStringOption(115 /* wordSeparators */, 'wordSeparators', USUAL_WORD_SEPARATORS, { description: nls.localize('wordSeparators', \"Characters that will be used as word separators when doing word related navigations or operations.\") })),\n wordWrap: register(new EditorStringEnumOption(116 /* wordWrap */, 'wordWrap', 'off', ['off', 'on', 'wordWrapColumn', 'bounded'], {\n markdownEnumDescriptions: [\n nls.localize('wordWrap.off', \"Lines will never wrap.\"),\n nls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n nls.localize({\n key: 'wordWrap.wordWrapColumn',\n comment: [\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Lines will wrap at `#editor.wordWrapColumn#`.\"),\n nls.localize({\n key: 'wordWrap.bounded',\n comment: [\n '- viewport means the edge of the visible window size.',\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\"),\n ],\n description: nls.localize({\n key: 'wordWrap',\n comment: [\n '- \\'off\\', \\'on\\', \\'wordWrapColumn\\' and \\'bounded\\' refer to values the setting can take and should not be localized.',\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Controls how lines should wrap.\")\n })),\n wordWrapBreakAfterCharacters: register(new EditorStringOption(117 /* wordWrapBreakAfterCharacters */, 'wordWrapBreakAfterCharacters', ' \\t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」')),\n wordWrapBreakBeforeCharacters: register(new EditorStringOption(118 /* wordWrapBreakBeforeCharacters */, 'wordWrapBreakBeforeCharacters', '([{‘“〈《「『【〔([{「£¥$£¥++')),\n wordWrapColumn: register(new EditorIntOption(119 /* wordWrapColumn */, 'wordWrapColumn', 80, 1, 1073741824 /* MAX_SAFE_SMALL_INTEGER */, {\n markdownDescription: nls.localize({\n key: 'wordWrapColumn',\n comment: [\n '- `editor.wordWrap` refers to a different setting and should not be localized.',\n '- \\'wordWrapColumn\\' and \\'bounded\\' refer to values the different setting can take and should not be localized.'\n ]\n }, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n })),\n wordWrapOverride1: register(new EditorStringEnumOption(120 /* wordWrapOverride1 */, 'wordWrapOverride1', 'inherit', ['off', 'on', 'inherit'])),\n wordWrapOverride2: register(new EditorStringEnumOption(121 /* wordWrapOverride2 */, 'wordWrapOverride2', 'inherit', ['off', 'on', 'inherit'])),\n wrappingIndent: register(new EditorEnumOption(122 /* wrappingIndent */, 'wrappingIndent', 1 /* Same */, 'same', ['none', 'same', 'indent', 'deepIndent'], _wrappingIndentFromString, {\n enumDescriptions: [\n nls.localize('wrappingIndent.none', \"No indentation. Wrapped lines begin at column 1.\"),\n nls.localize('wrappingIndent.same', \"Wrapped lines get the same indentation as the parent.\"),\n nls.localize('wrappingIndent.indent', \"Wrapped lines get +1 indentation toward the parent.\"),\n nls.localize('wrappingIndent.deepIndent', \"Wrapped lines get +2 indentation toward the parent.\"),\n ],\n description: nls.localize('wrappingIndent', \"Controls the indentation of wrapped lines.\"),\n })),\n wrappingStrategy: register(new EditorStringEnumOption(123 /* wrappingStrategy */, 'wrappingStrategy', 'simple', ['simple', 'advanced'], {\n enumDescriptions: [\n nls.localize('wrappingStrategy.simple', \"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\"),\n nls.localize('wrappingStrategy.advanced', \"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\")\n ],\n description: nls.localize('wrappingStrategy', \"Controls the algorithm that computes wrapping points.\")\n })),\n // Leave these at the end (because they have dependencies!)\n editorClassName: register(new EditorClassName()),\n pixelRatio: register(new EditorPixelRatio()),\n tabFocusMode: register(new EditorTabFocusMode()),\n layoutInfo: register(new EditorLayoutInfoComputer()),\n wrappingInfo: register(new EditorWrappingInfoComputer())\n};\n","import * as React from 'react';\nimport { ImageLoadState } from '../../Image';\nimport type { IRefObject, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IStyle, ITheme } from '../../Styling';\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersona {}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaSharedProps extends React.HTMLAttributes, React.RefAttributes {\n /**\n * Primary text to display, usually the name of the person.\n */\n text?: string;\n\n /**\n * Decides the size of the control.\n * @defaultvalue PersonaSize.size48\n */\n size?: PersonaSize;\n\n /**\n * Optional custom renderer for the coin\n * @deprecated Use `onRenderPersonaCoin` for custom rendering instead\n */\n onRenderCoin?: IRenderFunction;\n\n /**\n * Optional custom renderer for the coin\n */\n onRenderPersonaCoin?: IRenderFunction;\n\n /**\n * If true, adds the css class 'is-fadeIn' to the image.\n */\n imageShouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables imageShouldFadeIn.\n * @defaultvalue false\n */\n imageShouldStartVisible?: boolean;\n\n /**\n * Url to the image to use, should be a square aspect ratio and big enough to fit in the image area.\n */\n imageUrl?: string;\n\n /**\n * Alt text for the image to use.\n * @default `''` (empty string)\n */\n imageAlt?: string;\n\n /**\n * The user's initials to display in the image area when there is no image.\n * @defaultvalue Derived from `text`\n */\n imageInitials?: string;\n\n /**\n * Whether initials are calculated for phone numbers and number sequences.\n * Example: Set property to true to get initials for project names consisting of numbers only.\n * @defaultvalue false\n */\n allowPhoneInitials?: boolean;\n\n /**\n * Optional custom renderer for the initials\n */\n onRenderInitials?: IRenderFunction;\n\n /**\n * Optional callback for when loading state of the photo changes\n */\n onPhotoLoadingStateChange?: (newImageLoadState: ImageLoadState) => void;\n\n /**\n * The background color when the user's initials are displayed.\n * @defaultvalue Derived from `text`\n */\n initialsColor?: PersonaInitialsColor | string;\n\n /**\n * The text color when the user's initials are displayed\n */\n initialsTextColor?: string;\n\n /** The colors to be used for the presence-icon and it's background */\n presenceColors?: {\n available: string;\n away: string;\n busy: string;\n dnd: string;\n offline: string;\n oof: string;\n background: string;\n };\n\n /**\n * Presence of the person to display - will not display presence if undefined.\n * @defaultvalue PersonaPresence.none\n */\n presence?: PersonaPresence;\n\n /**\n * Presence title to be shown as a tooltip on hover over the presence icon.\n */\n presenceTitle?: string;\n\n /**\n * This flag can be used to signal the persona is out of office.\n * This will change the way the presence icon looks for statuses that support dual-presence.\n */\n isOutOfOffice?: boolean;\n\n /**\n * Secondary text to display, usually the role of the user.\n */\n secondaryText?: string;\n\n /**\n * Controls whether clipped overflow text should render in a tooltip\n * @defaultvalue true\n */\n showOverflowTooltip?: boolean;\n\n /**\n * Tertiary text to display, usually the status of the user.\n * The tertiary text will only be shown when using size72 or size100.\n */\n tertiaryText?: string;\n\n /**\n * Optional text to display, usually a custom message set. The optional text will only be shown when using size100.\n */\n optionalText?: string;\n\n /**\n * Whether to not render persona details, and just render the persona image/initials.\n */\n hidePersonaDetails?: boolean;\n\n /*\n * If true, show the secondary text line regardless of the size of the persona\n */\n showSecondaryText?: boolean;\n\n /**\n * If true, show the special coin for unknown persona.\n * It has '?' in place of initials, with static font and background colors\n */\n showUnknownPersonaCoin?: boolean;\n\n /**\n * If true renders the initials while the image is loading.\n * This only applies when an imageUrl is provided.\n * @defaultvalue false\n */\n showInitialsUntilImageLoads?: boolean;\n\n /**\n * Optional custom persona coin size in pixel.\n */\n coinSize?: number;\n\n /**\n * Optional HTML element props for Persona coin.\n */\n coinProps?: IPersonaCoinProps;\n\n /**\n * Theme provided by High-Order Component.\n */\n theme?: ITheme;\n\n /**\n * Primary text to display, usually the name of the person.\n * @deprecated Use `text` instead.\n */\n primaryText?: string;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaProps extends IPersonaSharedProps {\n /**\n * Optional callback to access the IPersona interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Additional CSS class(es) to apply to the Persona\n */\n className?: string;\n\n /**\n * Call to provide customized styling that will layer on top of variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Optional custom renderer for the primary text.\n */\n onRenderPrimaryText?: IRenderFunction;\n\n /**\n * Optional custom renderer for the secondary text.\n */\n onRenderSecondaryText?: IRenderFunction;\n\n /**\n * Optional custom renderer for the tertiary text.\n */\n onRenderTertiaryText?: IRenderFunction;\n\n /**\n * Optional custom renderer for the optional text.\n */\n onRenderOptionalText?: IRenderFunction;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaStyleProps {\n /**\n * Theme provided by High-Order Component.\n */\n theme: ITheme;\n\n /**\n * Custom class name.\n */\n className?: string;\n\n /**\n * Optional custom persona coin size in pixel.\n */\n coinSize?: number;\n\n /**\n * Decides the size of the control.\n * @defaultvalue PersonaSize.size48\n */\n size?: PersonaSize;\n\n /**\n * Presence of the person to display - will not display presence if undefined.\n * @defaultvalue PersonaPresence.none\n */\n presence?: PersonaPresence;\n\n /*\n * If true, show the secondary text line regardless of the size of the persona\n */\n showSecondaryText?: boolean;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaStyles {\n root: IStyle;\n details: IStyle;\n primaryText: IStyle;\n secondaryText: IStyle;\n tertiaryText: IStyle;\n optionalText: IStyle;\n textContent: IStyle;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaCoinProps extends IPersonaSharedProps {\n /**\n * Gets the component ref.\n */\n componentRef?: IRefObject<{}>;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Additional css class to apply to the PersonaCoin\n * @defaultvalue undefined\n */\n className?: string;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaCoinStyleProps {\n /**\n * Theme provided by High-Order Component.\n */\n theme: ITheme;\n\n /**\n * Custom class name.\n */\n className?: string;\n\n /**\n * Decides the size of the control.\n * @defaultvalue PersonaSize.size48\n */\n size?: PersonaSize;\n\n /**\n * Optional custom persona coin size in pixel.\n */\n coinSize?: number;\n\n /**\n * Decides whether to display coin for unknown persona\n */\n showUnknownPersonaCoin?: boolean;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaCoinStyles {\n coin: IStyle;\n imageArea: IStyle;\n image: IStyle;\n initials: IStyle;\n size10WithoutPresenceIcon: IStyle;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaPresenceProps extends IPersonaSharedProps {\n /**\n * Gets the component ref.\n */\n componentRef?: IRefObject<{}>;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport type IPersonaPresenceStyleProps = Required> &\n Pick &\n Pick;\n\n/**\n * {@docCategory Persona}\n */\nexport interface IPersonaPresenceStyles {\n presence: IStyle;\n presenceIcon: IStyle;\n}\n\n/**\n * {@docCategory Persona}\n */\nexport enum PersonaSize {\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size8` instead.\n */\n tiny = 0,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size24` instead.\n */\n extraExtraSmall = 1,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size32` instead.\n */\n extraSmall = 2,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size40` instead.\n */\n small = 3,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size48` instead.\n */\n regular = 4,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size72` instead.\n */\n large = 5,\n\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size100` instead.\n */\n extraLarge = 6,\n\n /**\n * No `PersonaCoin` is rendered.\n */\n size8 = 17,\n\n /**\n * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n * @deprecated Use `size8` instead.\n */\n size10 = 9,\n\n /**\n * Renders a 16px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n size16 = 8,\n\n /**\n * Renders a 24px `PersonaCoin`.\n */\n size24 = 10,\n\n /**\n * Renders a 28px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n size28 = 7,\n\n /**\n * Renders a 32px `PersonaCoin`.\n */\n size32 = 11,\n\n /**\n * Renders a 40px `PersonaCoin`.\n */\n size40 = 12,\n\n /**\n * Renders a 48px `PersonaCoin`.\n */\n size48 = 13,\n\n /**\n * Renders a 56px `PersonaCoin`.\n */\n size56 = 16,\n\n /**\n * Renders a 72px `PersonaCoin`.\n */\n size72 = 14,\n\n /**\n * Renders a 100px `PersonaCoin`.\n */\n size100 = 15,\n\n /**\n * Renders a 120px `PersonaCoin`.\n */\n size120 = 18,\n}\n\n/**\n * {@docCategory Persona}\n */\nexport enum PersonaPresence {\n none = 0,\n offline = 1,\n online = 2,\n away = 3,\n dnd = 4,\n blocked = 5,\n busy = 6,\n}\n\n/**\n * {@docCategory Persona}\n */\nexport enum PersonaInitialsColor {\n lightBlue = 0,\n blue = 1,\n darkBlue = 2,\n teal = 3,\n lightGreen = 4,\n green = 5,\n darkGreen = 6,\n lightPink = 7,\n pink = 8,\n magenta = 9,\n purple = 10,\n /**\n * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides. Will be removed in a future major release.\n */\n black = 11,\n orange = 12,\n /**\n * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n * can only be set with overrides. Will be removed in a future major release.\n */\n red = 13,\n darkRed = 14,\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n transparent = 15,\n violet = 16,\n lightRed = 17,\n gold = 18,\n burgundy = 19,\n warmGray = 20,\n coolGray = 21,\n /**\n * `gray` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides.\n */\n gray = 22,\n cyan = 23,\n rust = 24,\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as paths from './path.js';\nimport { isWindows } from './platform.js';\nconst _schemePattern = /^\\w[\\w\\d+.-]*$/;\nconst _singleSlashStart = /^\\//;\nconst _doubleSlashStart = /^\\/\\//;\nfunction _validateUri(ret, _strict) {\n // scheme, must be set\n if (!ret.scheme && _strict) {\n throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n }\n // scheme, https://tools.ietf.org/html/rfc3986#section-3.1\n // ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n if (ret.scheme && !_schemePattern.test(ret.scheme)) {\n throw new Error('[UriError]: Scheme contains illegal characters.');\n }\n // path, http://tools.ietf.org/html/rfc3986#section-3.3\n // If a URI contains an authority component, then the path component\n // must either be empty or begin with a slash (\"/\") character. If a URI\n // does not contain an authority component, then the path cannot begin\n // with two slash characters (\"//\").\n if (ret.path) {\n if (ret.authority) {\n if (!_singleSlashStart.test(ret.path)) {\n throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n }\n }\n else {\n if (_doubleSlashStart.test(ret.path)) {\n throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n }\n }\n }\n}\n// for a while we allowed uris *without* schemes and this is the migration\n// for them, e.g. an uri without scheme and without strict-mode warns and falls\n// back to the file-scheme. that should cause the least carnage and still be a\n// clear warning\nfunction _schemeFix(scheme, _strict) {\n if (!scheme && !_strict) {\n return 'file';\n }\n return scheme;\n}\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\nfunction _referenceResolution(scheme, path) {\n // the slash-character is our 'default base' as we don't\n // support constructing URIs relative to other URIs. This\n // also means that we alter and potentially break paths.\n // see https://tools.ietf.org/html/rfc3986#section-5.1.4\n switch (scheme) {\n case 'https':\n case 'http':\n case 'file':\n if (!path) {\n path = _slash;\n }\n else if (path[0] !== _slash) {\n path = _slash + path;\n }\n break;\n }\n return path;\n}\nconst _empty = '';\nconst _slash = '/';\nconst _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n/**\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n * foo://example.com:8042/over/there?name=ferret#nose\n * \\_/ \\______________/\\_________/ \\_________/ \\__/\n * | | | | |\n * scheme authority path query fragment\n * | _____________________|__\n * / \\ / \\\n * urn:example:animal:ferret:nose\n * ```\n */\nexport class URI {\n /**\n * @internal\n */\n constructor(schemeOrData, authority, path, query, fragment, _strict = false) {\n if (typeof schemeOrData === 'object') {\n this.scheme = schemeOrData.scheme || _empty;\n this.authority = schemeOrData.authority || _empty;\n this.path = schemeOrData.path || _empty;\n this.query = schemeOrData.query || _empty;\n this.fragment = schemeOrData.fragment || _empty;\n // no validation because it's this URI\n // that creates uri components.\n // _validateUri(this);\n }\n else {\n this.scheme = _schemeFix(schemeOrData, _strict);\n this.authority = authority || _empty;\n this.path = _referenceResolution(this.scheme, path || _empty);\n this.query = query || _empty;\n this.fragment = fragment || _empty;\n _validateUri(this, _strict);\n }\n }\n static isUri(thing) {\n if (thing instanceof URI) {\n return true;\n }\n if (!thing) {\n return false;\n }\n return typeof thing.authority === 'string'\n && typeof thing.fragment === 'string'\n && typeof thing.path === 'string'\n && typeof thing.query === 'string'\n && typeof thing.scheme === 'string'\n && typeof thing.fsPath === 'string'\n && typeof thing.with === 'function'\n && typeof thing.toString === 'function';\n }\n // ---- filesystem path -----------------------\n /**\n * Returns a string representing the corresponding file system path of this URI.\n * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n * platform specific path separator.\n *\n * * Will *not* validate the path for invalid characters and semantics.\n * * Will *not* look at the scheme of this URI.\n * * The result shall *not* be used for display purposes but for accessing a file on disk.\n *\n *\n * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n *\n * ```ts\n const u = URI.parse('file://server/c$/folder/file.txt')\n u.authority === 'server'\n u.path === '/shares/c$/file.txt'\n u.fsPath === '\\\\server\\c$\\folder\\file.txt'\n ```\n *\n * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n * with URIs that represent files on disk (`file` scheme).\n */\n get fsPath() {\n // if (this.scheme !== 'file') {\n // \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\n // }\n return uriToFsPath(this, false);\n }\n // ---- modify to new -------------------------\n with(change) {\n if (!change) {\n return this;\n }\n let { scheme, authority, path, query, fragment } = change;\n if (scheme === undefined) {\n scheme = this.scheme;\n }\n else if (scheme === null) {\n scheme = _empty;\n }\n if (authority === undefined) {\n authority = this.authority;\n }\n else if (authority === null) {\n authority = _empty;\n }\n if (path === undefined) {\n path = this.path;\n }\n else if (path === null) {\n path = _empty;\n }\n if (query === undefined) {\n query = this.query;\n }\n else if (query === null) {\n query = _empty;\n }\n if (fragment === undefined) {\n fragment = this.fragment;\n }\n else if (fragment === null) {\n fragment = _empty;\n }\n if (scheme === this.scheme\n && authority === this.authority\n && path === this.path\n && query === this.query\n && fragment === this.fragment) {\n return this;\n }\n return new Uri(scheme, authority, path, query, fragment);\n }\n // ---- parse & validate ------------------------\n /**\n * Creates a new URI from a string, e.g. `http://www.msft.com/some/path`,\n * `file:///usr/home`, or `scheme:with/path`.\n *\n * @param value A string which represents an URI (see `URI#toString`).\n */\n static parse(value, _strict = false) {\n const match = _regexp.exec(value);\n if (!match) {\n return new Uri(_empty, _empty, _empty, _empty, _empty);\n }\n return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict);\n }\n /**\n * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n * `/usr/home`, or `\\\\server\\share\\some\\path`.\n *\n * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n * `URI.parse('file://' + path)` because the path might contain characters that are\n * interpreted (# and ?). See the following sample:\n * ```ts\n const good = URI.file('/coding/c#/project1');\n good.scheme === 'file';\n good.path === '/coding/c#/project1';\n good.fragment === '';\n const bad = URI.parse('file://' + '/coding/c#/project1');\n bad.scheme === 'file';\n bad.path === '/coding/c'; // path is now broken\n bad.fragment === '/project1';\n ```\n *\n * @param path A file system path (see `URI#fsPath`)\n */\n static file(path) {\n let authority = _empty;\n // normalize to fwd-slashes on windows,\n // on other systems bwd-slashes are valid\n // filename character, eg /f\\oo/ba\\r.txt\n if (isWindows) {\n path = path.replace(/\\\\/g, _slash);\n }\n // check for authority as used in UNC shares\n // or use the path as given\n if (path[0] === _slash && path[1] === _slash) {\n const idx = path.indexOf(_slash, 2);\n if (idx === -1) {\n authority = path.substring(2);\n path = _slash;\n }\n else {\n authority = path.substring(2, idx);\n path = path.substring(idx) || _slash;\n }\n }\n return new Uri('file', authority, path, _empty, _empty);\n }\n static from(components) {\n const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment);\n _validateUri(result, true);\n return result;\n }\n /**\n * Join a URI path with path fragments and normalizes the resulting path.\n *\n * @param uri The input URI.\n * @param pathFragment The path fragment to add to the URI path.\n * @returns The resulting URI.\n */\n static joinPath(uri, ...pathFragment) {\n if (!uri.path) {\n throw new Error(`[UriError]: cannot call joinPath on URI without path`);\n }\n let newPath;\n if (isWindows && uri.scheme === 'file') {\n newPath = URI.file(paths.win32.join(uriToFsPath(uri, true), ...pathFragment)).path;\n }\n else {\n newPath = paths.posix.join(uri.path, ...pathFragment);\n }\n return uri.with({ path: newPath });\n }\n // ---- printing/externalize ---------------------------\n /**\n * Creates a string representation for this URI. It's guaranteed that calling\n * `URI.parse` with the result of this function creates an URI which is equal\n * to this URI.\n *\n * * The result shall *not* be used for display purposes but for externalization or transport.\n * * The result will be encoded using the percentage encoding and encoding happens mostly\n * ignore the scheme-specific encoding rules.\n *\n * @param skipEncoding Do not encode the result, default is `false`\n */\n toString(skipEncoding = false) {\n return _asFormatted(this, skipEncoding);\n }\n toJSON() {\n return this;\n }\n static revive(data) {\n if (!data) {\n return data;\n }\n else if (data instanceof URI) {\n return data;\n }\n else {\n const result = new Uri(data);\n result._formatted = data.external;\n result._fsPath = data._sep === _pathSepMarker ? data.fsPath : null;\n return result;\n }\n }\n}\nconst _pathSepMarker = isWindows ? 1 : undefined;\n// This class exists so that URI is compatible with vscode.Uri (API).\nclass Uri extends URI {\n constructor() {\n super(...arguments);\n this._formatted = null;\n this._fsPath = null;\n }\n get fsPath() {\n if (!this._fsPath) {\n this._fsPath = uriToFsPath(this, false);\n }\n return this._fsPath;\n }\n toString(skipEncoding = false) {\n if (!skipEncoding) {\n if (!this._formatted) {\n this._formatted = _asFormatted(this, false);\n }\n return this._formatted;\n }\n else {\n // we don't cache that\n return _asFormatted(this, true);\n }\n }\n toJSON() {\n const res = {\n $mid: 1 /* Uri */\n };\n // cached state\n if (this._fsPath) {\n res.fsPath = this._fsPath;\n res._sep = _pathSepMarker;\n }\n if (this._formatted) {\n res.external = this._formatted;\n }\n // uri components\n if (this.path) {\n res.path = this.path;\n }\n if (this.scheme) {\n res.scheme = this.scheme;\n }\n if (this.authority) {\n res.authority = this.authority;\n }\n if (this.query) {\n res.query = this.query;\n }\n if (this.fragment) {\n res.fragment = this.fragment;\n }\n return res;\n }\n}\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\nconst encodeTable = {\n [58 /* Colon */]: '%3A',\n [47 /* Slash */]: '%2F',\n [63 /* QuestionMark */]: '%3F',\n [35 /* Hash */]: '%23',\n [91 /* OpenSquareBracket */]: '%5B',\n [93 /* CloseSquareBracket */]: '%5D',\n [64 /* AtSign */]: '%40',\n [33 /* ExclamationMark */]: '%21',\n [36 /* DollarSign */]: '%24',\n [38 /* Ampersand */]: '%26',\n [39 /* SingleQuote */]: '%27',\n [40 /* OpenParen */]: '%28',\n [41 /* CloseParen */]: '%29',\n [42 /* Asterisk */]: '%2A',\n [43 /* Plus */]: '%2B',\n [44 /* Comma */]: '%2C',\n [59 /* Semicolon */]: '%3B',\n [61 /* Equals */]: '%3D',\n [32 /* Space */]: '%20',\n};\nfunction encodeURIComponentFast(uriComponent, allowSlash) {\n let res = undefined;\n let nativeEncodePos = -1;\n for (let pos = 0; pos < uriComponent.length; pos++) {\n const code = uriComponent.charCodeAt(pos);\n // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\n if ((code >= 97 /* a */ && code <= 122 /* z */)\n || (code >= 65 /* A */ && code <= 90 /* Z */)\n || (code >= 48 /* Digit0 */ && code <= 57 /* Digit9 */)\n || code === 45 /* Dash */\n || code === 46 /* Period */\n || code === 95 /* Underline */\n || code === 126 /* Tilde */\n || (allowSlash && code === 47 /* Slash */)) {\n // check if we are delaying native encode\n if (nativeEncodePos !== -1) {\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n nativeEncodePos = -1;\n }\n // check if we write into a new string (by default we try to return the param)\n if (res !== undefined) {\n res += uriComponent.charAt(pos);\n }\n }\n else {\n // encoding needed, we need to allocate a new string\n if (res === undefined) {\n res = uriComponent.substr(0, pos);\n }\n // check with default table first\n const escaped = encodeTable[code];\n if (escaped !== undefined) {\n // check if we are delaying native encode\n if (nativeEncodePos !== -1) {\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n nativeEncodePos = -1;\n }\n // append escaped variant to result\n res += escaped;\n }\n else if (nativeEncodePos === -1) {\n // use native encode only when needed\n nativeEncodePos = pos;\n }\n }\n }\n if (nativeEncodePos !== -1) {\n res += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n }\n return res !== undefined ? res : uriComponent;\n}\nfunction encodeURIComponentMinimal(path) {\n let res = undefined;\n for (let pos = 0; pos < path.length; pos++) {\n const code = path.charCodeAt(pos);\n if (code === 35 /* Hash */ || code === 63 /* QuestionMark */) {\n if (res === undefined) {\n res = path.substr(0, pos);\n }\n res += encodeTable[code];\n }\n else {\n if (res !== undefined) {\n res += path[pos];\n }\n }\n }\n return res !== undefined ? res : path;\n}\n/**\n * Compute `fsPath` for the given uri\n */\nexport function uriToFsPath(uri, keepDriveLetterCasing) {\n let value;\n if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\n // unc path: file://shares/c$/far/boo\n value = `//${uri.authority}${uri.path}`;\n }\n else if (uri.path.charCodeAt(0) === 47 /* Slash */\n && (uri.path.charCodeAt(1) >= 65 /* A */ && uri.path.charCodeAt(1) <= 90 /* Z */ || uri.path.charCodeAt(1) >= 97 /* a */ && uri.path.charCodeAt(1) <= 122 /* z */)\n && uri.path.charCodeAt(2) === 58 /* Colon */) {\n if (!keepDriveLetterCasing) {\n // windows drive letter: file:///c:/far/boo\n value = uri.path[1].toLowerCase() + uri.path.substr(2);\n }\n else {\n value = uri.path.substr(1);\n }\n }\n else {\n // other path\n value = uri.path;\n }\n if (isWindows) {\n value = value.replace(/\\//g, '\\\\');\n }\n return value;\n}\n/**\n * Create the external version of a uri\n */\nfunction _asFormatted(uri, skipEncoding) {\n const encoder = !skipEncoding\n ? encodeURIComponentFast\n : encodeURIComponentMinimal;\n let res = '';\n let { scheme, authority, path, query, fragment } = uri;\n if (scheme) {\n res += scheme;\n res += ':';\n }\n if (authority || scheme === 'file') {\n res += _slash;\n res += _slash;\n }\n if (authority) {\n let idx = authority.indexOf('@');\n if (idx !== -1) {\n // @\n const userinfo = authority.substr(0, idx);\n authority = authority.substr(idx + 1);\n idx = userinfo.indexOf(':');\n if (idx === -1) {\n res += encoder(userinfo, false);\n }\n else {\n // :@\n res += encoder(userinfo.substr(0, idx), false);\n res += ':';\n res += encoder(userinfo.substr(idx + 1), false);\n }\n res += '@';\n }\n authority = authority.toLowerCase();\n idx = authority.indexOf(':');\n if (idx === -1) {\n res += encoder(authority, false);\n }\n else {\n // :\n res += encoder(authority.substr(0, idx), false);\n res += authority.substr(idx);\n }\n }\n if (path) {\n // lower-case windows drive letters in /C:/fff or C:/fff\n if (path.length >= 3 && path.charCodeAt(0) === 47 /* Slash */ && path.charCodeAt(2) === 58 /* Colon */) {\n const code = path.charCodeAt(1);\n if (code >= 65 /* A */ && code <= 90 /* Z */) {\n path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // \"/c:\".length === 3\n }\n }\n else if (path.length >= 2 && path.charCodeAt(1) === 58 /* Colon */) {\n const code = path.charCodeAt(0);\n if (code >= 65 /* A */ && code <= 90 /* Z */) {\n path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // \"/c:\".length === 3\n }\n }\n // encode the rest of the path\n res += encoder(path, true);\n }\n if (query) {\n res += '?';\n res += encoder(query, false);\n }\n if (fragment) {\n res += '#';\n res += !skipEncoding ? encodeURIComponentFast(fragment, false) : fragment;\n }\n return res;\n}\n// --- decode\nfunction decodeURIComponentGraceful(str) {\n try {\n return decodeURIComponent(str);\n }\n catch (_a) {\n if (str.length > 3) {\n return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n }\n else {\n return str;\n }\n }\n}\nconst _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\nfunction percentDecode(str) {\n if (!str.match(_rEncodedAsHex)) {\n return str;\n }\n return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { validateConstraints } from '../../../base/common/types.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ICommandService = createDecorator('commandService');\nexport const CommandsRegistry = new class {\n constructor() {\n this._commands = new Map();\n this._onDidRegisterCommand = new Emitter();\n this.onDidRegisterCommand = this._onDidRegisterCommand.event;\n }\n registerCommand(idOrCommand, handler) {\n if (!idOrCommand) {\n throw new Error(`invalid command`);\n }\n if (typeof idOrCommand === 'string') {\n if (!handler) {\n throw new Error(`invalid command`);\n }\n return this.registerCommand({ id: idOrCommand, handler });\n }\n // add argument validation if rich command metadata is provided\n if (idOrCommand.description) {\n const constraints = [];\n for (let arg of idOrCommand.description.args) {\n constraints.push(arg.constraint);\n }\n const actualHandler = idOrCommand.handler;\n idOrCommand.handler = function (accessor, ...args) {\n validateConstraints(args, constraints);\n return actualHandler(accessor, ...args);\n };\n }\n // find a place to store the command\n const { id } = idOrCommand;\n let commands = this._commands.get(id);\n if (!commands) {\n commands = new LinkedList();\n this._commands.set(id, commands);\n }\n let removeFn = commands.unshift(idOrCommand);\n let ret = toDisposable(() => {\n removeFn();\n const command = this._commands.get(id);\n if (command === null || command === void 0 ? void 0 : command.isEmpty()) {\n this._commands.delete(id);\n }\n });\n // tell the world about this command\n this._onDidRegisterCommand.fire(id);\n return ret;\n }\n registerCommandAlias(oldId, newId) {\n return CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n }\n getCommand(id) {\n const list = this._commands.get(id);\n if (!list || list.isEmpty()) {\n return undefined;\n }\n return Iterable.first(list);\n }\n getCommands() {\n const result = new Map();\n for (const key of this._commands.keys()) {\n const command = this.getCommand(key);\n if (command) {\n result.set(key, command);\n }\n }\n return result;\n }\n};\nCommandsRegistry.registerCommand('noop', () => { });\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter, Event } from './event.js';\nconst shortcutEvent = Object.freeze(function (callback, context) {\n const handle = setTimeout(callback.bind(context), 0);\n return { dispose() { clearTimeout(handle); } };\n});\nexport var CancellationToken;\n(function (CancellationToken) {\n function isCancellationToken(thing) {\n if (thing === CancellationToken.None || thing === CancellationToken.Cancelled) {\n return true;\n }\n if (thing instanceof MutableToken) {\n return true;\n }\n if (!thing || typeof thing !== 'object') {\n return false;\n }\n return typeof thing.isCancellationRequested === 'boolean'\n && typeof thing.onCancellationRequested === 'function';\n }\n CancellationToken.isCancellationToken = isCancellationToken;\n CancellationToken.None = Object.freeze({\n isCancellationRequested: false,\n onCancellationRequested: Event.None\n });\n CancellationToken.Cancelled = Object.freeze({\n isCancellationRequested: true,\n onCancellationRequested: shortcutEvent\n });\n})(CancellationToken || (CancellationToken = {}));\nclass MutableToken {\n constructor() {\n this._isCancelled = false;\n this._emitter = null;\n }\n cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true;\n if (this._emitter) {\n this._emitter.fire(undefined);\n this.dispose();\n }\n }\n }\n get isCancellationRequested() {\n return this._isCancelled;\n }\n get onCancellationRequested() {\n if (this._isCancelled) {\n return shortcutEvent;\n }\n if (!this._emitter) {\n this._emitter = new Emitter();\n }\n return this._emitter.event;\n }\n dispose() {\n if (this._emitter) {\n this._emitter.dispose();\n this._emitter = null;\n }\n }\n}\nexport class CancellationTokenSource {\n constructor(parent) {\n this._token = undefined;\n this._parentListener = undefined;\n this._parentListener = parent && parent.onCancellationRequested(this.cancel, this);\n }\n get token() {\n if (!this._token) {\n // be lazy and create the token only when\n // actually needed\n this._token = new MutableToken();\n }\n return this._token;\n }\n cancel() {\n if (!this._token) {\n // save an object by returning the default\n // cancelled token when cancellation happens\n // before someone asks for the token\n this._token = CancellationToken.Cancelled;\n }\n else if (this._token instanceof MutableToken) {\n // actually cancel\n this._token.cancel();\n }\n }\n dispose(cancel = false) {\n if (cancel) {\n this.cancel();\n }\n if (this._parentListener) {\n this._parentListener.dispose();\n }\n if (!this._token) {\n // ensure to initialize with an empty token if we had none\n this._token = CancellationToken.None;\n }\n else if (this._token instanceof MutableToken) {\n // actually dispose\n this._token.dispose();\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass SpacesDiffResult {\n constructor() {\n this.spacesDiff = 0;\n this.looksLikeAlignment = false;\n }\n}\n/**\n * Compute the diff in spaces between two line's indentation.\n */\nfunction spacesDiff(a, aLength, b, bLength, result) {\n result.spacesDiff = 0;\n result.looksLikeAlignment = false;\n // This can go both ways (e.g.):\n // - a: \"\\t\"\n // - b: \"\\t \"\n // => This should count 1 tab and 4 spaces\n let i;\n for (i = 0; i < aLength && i < bLength; i++) {\n let aCharCode = a.charCodeAt(i);\n let bCharCode = b.charCodeAt(i);\n if (aCharCode !== bCharCode) {\n break;\n }\n }\n let aSpacesCnt = 0, aTabsCount = 0;\n for (let j = i; j < aLength; j++) {\n let aCharCode = a.charCodeAt(j);\n if (aCharCode === 32 /* Space */) {\n aSpacesCnt++;\n }\n else {\n aTabsCount++;\n }\n }\n let bSpacesCnt = 0, bTabsCount = 0;\n for (let j = i; j < bLength; j++) {\n let bCharCode = b.charCodeAt(j);\n if (bCharCode === 32 /* Space */) {\n bSpacesCnt++;\n }\n else {\n bTabsCount++;\n }\n }\n if (aSpacesCnt > 0 && aTabsCount > 0) {\n return;\n }\n if (bSpacesCnt > 0 && bTabsCount > 0) {\n return;\n }\n let tabsDiff = Math.abs(aTabsCount - bTabsCount);\n let spacesDiff = Math.abs(aSpacesCnt - bSpacesCnt);\n if (tabsDiff === 0) {\n // check if the indentation difference might be caused by alignment reasons\n // sometime folks like to align their code, but this should not be used as a hint\n result.spacesDiff = spacesDiff;\n if (spacesDiff > 0 && 0 <= bSpacesCnt - 1 && bSpacesCnt - 1 < a.length && bSpacesCnt < b.length) {\n if (b.charCodeAt(bSpacesCnt) !== 32 /* Space */ && a.charCodeAt(bSpacesCnt - 1) === 32 /* Space */) {\n if (a.charCodeAt(a.length - 1) === 44 /* Comma */) {\n // This looks like an alignment desire: e.g.\n // const a = b + c,\n // d = b - c;\n result.looksLikeAlignment = true;\n }\n }\n }\n return;\n }\n if (spacesDiff % tabsDiff === 0) {\n result.spacesDiff = spacesDiff / tabsDiff;\n return;\n }\n}\nexport function guessIndentation(source, defaultTabSize, defaultInsertSpaces) {\n // Look at most at the first 10k lines\n const linesCount = Math.min(source.getLineCount(), 10000);\n let linesIndentedWithTabsCount = 0; // number of lines that contain at least one tab in indentation\n let linesIndentedWithSpacesCount = 0; // number of lines that contain only spaces in indentation\n let previousLineText = ''; // content of latest line that contained non-whitespace chars\n let previousLineIndentation = 0; // index at which latest line contained the first non-whitespace char\n const ALLOWED_TAB_SIZE_GUESSES = [2, 4, 6, 8, 3, 5, 7]; // prefer even guesses for `tabSize`, limit to [2, 8].\n const MAX_ALLOWED_TAB_SIZE_GUESS = 8; // max(ALLOWED_TAB_SIZE_GUESSES) = 8\n let spacesDiffCount = [0, 0, 0, 0, 0, 0, 0, 0, 0]; // `tabSize` scores\n let tmp = new SpacesDiffResult();\n for (let lineNumber = 1; lineNumber <= linesCount; lineNumber++) {\n let currentLineLength = source.getLineLength(lineNumber);\n let currentLineText = source.getLineContent(lineNumber);\n // if the text buffer is chunk based, so long lines are cons-string, v8 will flattern the string when we check charCode.\n // checking charCode on chunks directly is cheaper.\n const useCurrentLineText = (currentLineLength <= 65536);\n let currentLineHasContent = false; // does `currentLineText` contain non-whitespace chars\n let currentLineIndentation = 0; // index at which `currentLineText` contains the first non-whitespace char\n let currentLineSpacesCount = 0; // count of spaces found in `currentLineText` indentation\n let currentLineTabsCount = 0; // count of tabs found in `currentLineText` indentation\n for (let j = 0, lenJ = currentLineLength; j < lenJ; j++) {\n let charCode = (useCurrentLineText ? currentLineText.charCodeAt(j) : source.getLineCharCode(lineNumber, j));\n if (charCode === 9 /* Tab */) {\n currentLineTabsCount++;\n }\n else if (charCode === 32 /* Space */) {\n currentLineSpacesCount++;\n }\n else {\n // Hit non whitespace character on this line\n currentLineHasContent = true;\n currentLineIndentation = j;\n break;\n }\n }\n // Ignore empty or only whitespace lines\n if (!currentLineHasContent) {\n continue;\n }\n if (currentLineTabsCount > 0) {\n linesIndentedWithTabsCount++;\n }\n else if (currentLineSpacesCount > 1) {\n linesIndentedWithSpacesCount++;\n }\n spacesDiff(previousLineText, previousLineIndentation, currentLineText, currentLineIndentation, tmp);\n if (tmp.looksLikeAlignment) {\n // if defaultInsertSpaces === true && the spaces count == tabSize, we may want to count it as valid indentation\n //\n // - item1\n // - item2\n //\n // otherwise skip this line entirely\n //\n // const a = 1,\n // b = 2;\n if (!(defaultInsertSpaces && defaultTabSize === tmp.spacesDiff)) {\n continue;\n }\n }\n let currentSpacesDiff = tmp.spacesDiff;\n if (currentSpacesDiff <= MAX_ALLOWED_TAB_SIZE_GUESS) {\n spacesDiffCount[currentSpacesDiff]++;\n }\n previousLineText = currentLineText;\n previousLineIndentation = currentLineIndentation;\n }\n let insertSpaces = defaultInsertSpaces;\n if (linesIndentedWithTabsCount !== linesIndentedWithSpacesCount) {\n insertSpaces = (linesIndentedWithTabsCount < linesIndentedWithSpacesCount);\n }\n let tabSize = defaultTabSize;\n // Guess tabSize only if inserting spaces...\n if (insertSpaces) {\n let tabSizeScore = (insertSpaces ? 0 : 0.1 * linesCount);\n // console.log(\"score threshold: \" + tabSizeScore);\n ALLOWED_TAB_SIZE_GUESSES.forEach((possibleTabSize) => {\n let possibleTabSizeScore = spacesDiffCount[possibleTabSize];\n if (possibleTabSizeScore > tabSizeScore) {\n tabSizeScore = possibleTabSizeScore;\n tabSize = possibleTabSize;\n }\n });\n // Let a tabSize of 2 win even if it is not the maximum\n // (only in case 4 was guessed)\n if (tabSize === 4 && spacesDiffCount[4] > 0 && spacesDiffCount[2] > 0 && spacesDiffCount[2] >= spacesDiffCount[4] / 2) {\n tabSize = 2;\n }\n }\n // console.log('--------------------------');\n // console.log('linesIndentedWithTabsCount: ' + linesIndentedWithTabsCount + ', linesIndentedWithSpacesCount: ' + linesIndentedWithSpacesCount);\n // console.log('spacesDiffCount: ' + spacesDiffCount);\n // console.log('tabSize: ' + tabSize + ', tabSizeScore: ' + tabSizeScore);\n return {\n insertSpaces: insertSpaces,\n tabSize: tabSize\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function getNodeColor(node) {\n return ((node.metadata & 1 /* ColorMask */) >>> 0 /* ColorOffset */);\n}\nfunction setNodeColor(node, color) {\n node.metadata = ((node.metadata & 254 /* ColorMaskInverse */) | (color << 0 /* ColorOffset */));\n}\nfunction getNodeIsVisited(node) {\n return ((node.metadata & 2 /* IsVisitedMask */) >>> 1 /* IsVisitedOffset */) === 1;\n}\nfunction setNodeIsVisited(node, value) {\n node.metadata = ((node.metadata & 253 /* IsVisitedMaskInverse */) | ((value ? 1 : 0) << 1 /* IsVisitedOffset */));\n}\nfunction getNodeIsForValidation(node) {\n return ((node.metadata & 4 /* IsForValidationMask */) >>> 2 /* IsForValidationOffset */) === 1;\n}\nfunction setNodeIsForValidation(node, value) {\n node.metadata = ((node.metadata & 251 /* IsForValidationMaskInverse */) | ((value ? 1 : 0) << 2 /* IsForValidationOffset */));\n}\nfunction getNodeStickiness(node) {\n return ((node.metadata & 24 /* StickinessMask */) >>> 3 /* StickinessOffset */);\n}\nfunction _setNodeStickiness(node, stickiness) {\n node.metadata = ((node.metadata & 231 /* StickinessMaskInverse */) | (stickiness << 3 /* StickinessOffset */));\n}\nfunction getCollapseOnReplaceEdit(node) {\n return ((node.metadata & 32 /* CollapseOnReplaceEditMask */) >>> 5 /* CollapseOnReplaceEditOffset */) === 1;\n}\nfunction setCollapseOnReplaceEdit(node, value) {\n node.metadata = ((node.metadata & 223 /* CollapseOnReplaceEditMaskInverse */) | ((value ? 1 : 0) << 5 /* CollapseOnReplaceEditOffset */));\n}\nexport class IntervalNode {\n constructor(id, start, end) {\n this.metadata = 0;\n this.parent = this;\n this.left = this;\n this.right = this;\n setNodeColor(this, 1 /* Red */);\n this.start = start;\n this.end = end;\n // FORCE_OVERFLOWING_TEST: this.delta = start;\n this.delta = 0;\n this.maxEnd = end;\n this.id = id;\n this.ownerId = 0;\n this.options = null;\n setNodeIsForValidation(this, false);\n _setNodeStickiness(this, 1 /* NeverGrowsWhenTypingAtEdges */);\n setCollapseOnReplaceEdit(this, false);\n this.cachedVersionId = 0;\n this.cachedAbsoluteStart = start;\n this.cachedAbsoluteEnd = end;\n this.range = null;\n setNodeIsVisited(this, false);\n }\n reset(versionId, start, end, range) {\n this.start = start;\n this.end = end;\n this.maxEnd = end;\n this.cachedVersionId = versionId;\n this.cachedAbsoluteStart = start;\n this.cachedAbsoluteEnd = end;\n this.range = range;\n }\n setOptions(options) {\n this.options = options;\n let className = this.options.className;\n setNodeIsForValidation(this, (className === \"squiggly-error\" /* EditorErrorDecoration */\n || className === \"squiggly-warning\" /* EditorWarningDecoration */\n || className === \"squiggly-info\" /* EditorInfoDecoration */));\n _setNodeStickiness(this, this.options.stickiness);\n setCollapseOnReplaceEdit(this, this.options.collapseOnReplaceEdit);\n }\n setCachedOffsets(absoluteStart, absoluteEnd, cachedVersionId) {\n if (this.cachedVersionId !== cachedVersionId) {\n this.range = null;\n }\n this.cachedVersionId = cachedVersionId;\n this.cachedAbsoluteStart = absoluteStart;\n this.cachedAbsoluteEnd = absoluteEnd;\n }\n detach() {\n this.parent = null;\n this.left = null;\n this.right = null;\n }\n}\nexport const SENTINEL = new IntervalNode(null, 0, 0);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nsetNodeColor(SENTINEL, 0 /* Black */);\nexport class IntervalTree {\n constructor() {\n this.root = SENTINEL;\n this.requestNormalizeDelta = false;\n }\n intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId) {\n if (this.root === SENTINEL) {\n return [];\n }\n return intervalSearch(this, start, end, filterOwnerId, filterOutValidation, cachedVersionId);\n }\n search(filterOwnerId, filterOutValidation, cachedVersionId) {\n if (this.root === SENTINEL) {\n return [];\n }\n return search(this, filterOwnerId, filterOutValidation, cachedVersionId);\n }\n /**\n * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n */\n collectNodesFromOwner(ownerId) {\n return collectNodesFromOwner(this, ownerId);\n }\n /**\n * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n */\n collectNodesPostOrder() {\n return collectNodesPostOrder(this);\n }\n insert(node) {\n rbTreeInsert(this, node);\n this._normalizeDeltaIfNecessary();\n }\n delete(node) {\n rbTreeDelete(this, node);\n this._normalizeDeltaIfNecessary();\n }\n resolveNode(node, cachedVersionId) {\n const initialNode = node;\n let delta = 0;\n while (node !== this.root) {\n if (node === node.parent.right) {\n delta += node.parent.delta;\n }\n node = node.parent;\n }\n const nodeStart = initialNode.start + delta;\n const nodeEnd = initialNode.end + delta;\n initialNode.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n }\n acceptReplace(offset, length, textLength, forceMoveMarkers) {\n // Our strategy is to remove all directly impacted nodes, and then add them back to the tree.\n // (1) collect all nodes that are intersecting this edit as nodes of interest\n const nodesOfInterest = searchForEditing(this, offset, offset + length);\n // (2) remove all nodes that are intersecting this edit\n for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n const node = nodesOfInterest[i];\n rbTreeDelete(this, node);\n }\n this._normalizeDeltaIfNecessary();\n // (3) edit all tree nodes except the nodes of interest\n noOverlapReplace(this, offset, offset + length, textLength);\n this._normalizeDeltaIfNecessary();\n // (4) edit the nodes of interest and insert them back in the tree\n for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n const node = nodesOfInterest[i];\n node.start = node.cachedAbsoluteStart;\n node.end = node.cachedAbsoluteEnd;\n nodeAcceptEdit(node, offset, (offset + length), textLength, forceMoveMarkers);\n node.maxEnd = node.end;\n rbTreeInsert(this, node);\n }\n this._normalizeDeltaIfNecessary();\n }\n _normalizeDeltaIfNecessary() {\n if (!this.requestNormalizeDelta) {\n return;\n }\n this.requestNormalizeDelta = false;\n normalizeDelta(this);\n }\n}\n//#region Delta Normalization\nfunction normalizeDelta(T) {\n let node = T.root;\n let delta = 0;\n while (node !== SENTINEL) {\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n // handle current node\n node.start = delta + node.start;\n node.end = delta + node.end;\n node.delta = 0;\n recomputeMaxEnd(node);\n setNodeIsVisited(node, true);\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n }\n setNodeIsVisited(T.root, false);\n}\nfunction adjustMarkerBeforeColumn(markerOffset, markerStickToPreviousCharacter, checkOffset, moveSemantics) {\n if (markerOffset < checkOffset) {\n return true;\n }\n if (markerOffset > checkOffset) {\n return false;\n }\n if (moveSemantics === 1 /* ForceMove */) {\n return false;\n }\n if (moveSemantics === 2 /* ForceStay */) {\n return true;\n }\n return markerStickToPreviousCharacter;\n}\n/**\n * This is a lot more complicated than strictly necessary to maintain the same behaviour\n * as when decorations were implemented using two markers.\n */\nexport function nodeAcceptEdit(node, start, end, textLength, forceMoveMarkers) {\n const nodeStickiness = getNodeStickiness(node);\n const startStickToPreviousCharacter = (nodeStickiness === 0 /* AlwaysGrowsWhenTypingAtEdges */\n || nodeStickiness === 2 /* GrowsOnlyWhenTypingBefore */);\n const endStickToPreviousCharacter = (nodeStickiness === 1 /* NeverGrowsWhenTypingAtEdges */\n || nodeStickiness === 2 /* GrowsOnlyWhenTypingBefore */);\n const deletingCnt = (end - start);\n const insertingCnt = textLength;\n const commonLength = Math.min(deletingCnt, insertingCnt);\n const nodeStart = node.start;\n let startDone = false;\n const nodeEnd = node.end;\n let endDone = false;\n if (start <= nodeStart && nodeEnd <= end && getCollapseOnReplaceEdit(node)) {\n // This edit encompasses the entire decoration range\n // and the decoration has asked to become collapsed\n node.start = start;\n startDone = true;\n node.end = start;\n endDone = true;\n }\n {\n const moveSemantics = forceMoveMarkers ? 1 /* ForceMove */ : (deletingCnt > 0 ? 2 /* ForceStay */ : 0 /* MarkerDefined */);\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start, moveSemantics)) {\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start, moveSemantics)) {\n endDone = true;\n }\n }\n if (commonLength > 0 && !forceMoveMarkers) {\n const moveSemantics = (deletingCnt > insertingCnt ? 2 /* ForceStay */ : 0 /* MarkerDefined */);\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n endDone = true;\n }\n }\n {\n const moveSemantics = forceMoveMarkers ? 1 /* ForceMove */ : 0 /* MarkerDefined */;\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, end, moveSemantics)) {\n node.start = start + insertingCnt;\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, end, moveSemantics)) {\n node.end = start + insertingCnt;\n endDone = true;\n }\n }\n // Finish\n const deltaColumn = (insertingCnt - deletingCnt);\n if (!startDone) {\n node.start = Math.max(0, nodeStart + deltaColumn);\n }\n if (!endDone) {\n node.end = Math.max(0, nodeEnd + deltaColumn);\n }\n if (node.start > node.end) {\n node.end = node.start;\n }\n}\nfunction searchForEditing(T, start, end) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n let result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < start) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > end) {\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n nodeEnd = delta + node.end;\n if (nodeEnd >= start) {\n node.setCachedOffsets(nodeStart, nodeEnd, 0);\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction noOverlapReplace(T, start, end, textLength) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n const editDelta = (textLength - (end - start));\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n recomputeMaxEnd(node);\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < start) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > end) {\n node.start += editDelta;\n node.end += editDelta;\n node.delta += editDelta;\n if (node.delta < -1073741824 /* MIN_SAFE_DELTA */ || node.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n}\n//#endregion\n//#region Searching\nfunction collectNodesFromOwner(T, ownerId) {\n let node = T.root;\n let result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n // handle current node\n if (node.ownerId === ownerId) {\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction collectNodesPostOrder(T) {\n let node = T.root;\n let result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n node = node.right;\n continue;\n }\n // handle current node\n result[resultLen++] = node;\n setNodeIsVisited(node, true);\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction search(T, filterOwnerId, filterOutValidation, cachedVersionId) {\n let node = T.root;\n let delta = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n let result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n // handle current node\n nodeStart = delta + node.start;\n nodeEnd = delta + node.end;\n node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n let include = true;\n if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n include = false;\n }\n if (filterOutValidation && getNodeIsForValidation(node)) {\n include = false;\n }\n if (include) {\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction intervalSearch(T, intervalStart, intervalEnd, filterOwnerId, filterOutValidation, cachedVersionId) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n let result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < intervalStart) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > intervalEnd) {\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n nodeEnd = delta + node.end;\n if (nodeEnd >= intervalStart) {\n // There is overlap\n node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n let include = true;\n if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n include = false;\n }\n if (filterOutValidation && getNodeIsForValidation(node)) {\n include = false;\n }\n if (include) {\n result[resultLen++] = node;\n }\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\n//#endregion\n//#region Insertion\nfunction rbTreeInsert(T, newNode) {\n if (T.root === SENTINEL) {\n newNode.parent = SENTINEL;\n newNode.left = SENTINEL;\n newNode.right = SENTINEL;\n setNodeColor(newNode, 0 /* Black */);\n T.root = newNode;\n return T.root;\n }\n treeInsert(T, newNode);\n recomputeMaxEndWalkToRoot(newNode.parent);\n // repair tree\n let x = newNode;\n while (x !== T.root && getNodeColor(x.parent) === 1 /* Red */) {\n if (x.parent === x.parent.parent.left) {\n const y = x.parent.parent.right;\n if (getNodeColor(y) === 1 /* Red */) {\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(y, 0 /* Black */);\n setNodeColor(x.parent.parent, 1 /* Red */);\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.right) {\n x = x.parent;\n leftRotate(T, x);\n }\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(x.parent.parent, 1 /* Red */);\n rightRotate(T, x.parent.parent);\n }\n }\n else {\n const y = x.parent.parent.left;\n if (getNodeColor(y) === 1 /* Red */) {\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(y, 0 /* Black */);\n setNodeColor(x.parent.parent, 1 /* Red */);\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.left) {\n x = x.parent;\n rightRotate(T, x);\n }\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(x.parent.parent, 1 /* Red */);\n leftRotate(T, x.parent.parent);\n }\n }\n }\n setNodeColor(T.root, 0 /* Black */);\n return newNode;\n}\nfunction treeInsert(T, z) {\n let delta = 0;\n let x = T.root;\n const zAbsoluteStart = z.start;\n const zAbsoluteEnd = z.end;\n while (true) {\n const cmp = intervalCompare(zAbsoluteStart, zAbsoluteEnd, x.start + delta, x.end + delta);\n if (cmp < 0) {\n // this node should be inserted to the left\n // => it is not affected by the node's delta\n if (x.left === SENTINEL) {\n z.start -= delta;\n z.end -= delta;\n z.maxEnd -= delta;\n x.left = z;\n break;\n }\n else {\n x = x.left;\n }\n }\n else {\n // this node should be inserted to the right\n // => it is not affected by the node's delta\n if (x.right === SENTINEL) {\n z.start -= (delta + x.delta);\n z.end -= (delta + x.delta);\n z.maxEnd -= (delta + x.delta);\n x.right = z;\n break;\n }\n else {\n delta += x.delta;\n x = x.right;\n }\n }\n }\n z.parent = x;\n z.left = SENTINEL;\n z.right = SENTINEL;\n setNodeColor(z, 1 /* Red */);\n}\n//#endregion\n//#region Deletion\nfunction rbTreeDelete(T, z) {\n let x;\n let y;\n // RB-DELETE except we don't swap z and y in case c)\n // i.e. we always delete what's pointed at by z.\n if (z.left === SENTINEL) {\n x = z.right;\n y = z;\n // x's delta is no longer influenced by z's delta\n x.delta += z.delta;\n if (x.delta < -1073741824 /* MIN_SAFE_DELTA */ || x.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n x.start += z.delta;\n x.end += z.delta;\n }\n else if (z.right === SENTINEL) {\n x = z.left;\n y = z;\n }\n else {\n y = leftest(z.right);\n x = y.right;\n // y's delta is no longer influenced by z's delta,\n // but we don't want to walk the entire right-hand-side subtree of x.\n // we therefore maintain z's delta in y, and adjust only x\n x.start += y.delta;\n x.end += y.delta;\n x.delta += y.delta;\n if (x.delta < -1073741824 /* MIN_SAFE_DELTA */ || x.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start += z.delta;\n y.end += z.delta;\n y.delta = z.delta;\n if (y.delta < -1073741824 /* MIN_SAFE_DELTA */ || y.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n }\n if (y === T.root) {\n T.root = x;\n setNodeColor(x, 0 /* Black */);\n z.detach();\n resetSentinel();\n recomputeMaxEnd(x);\n T.root.parent = SENTINEL;\n return;\n }\n let yWasRed = (getNodeColor(y) === 1 /* Red */);\n if (y === y.parent.left) {\n y.parent.left = x;\n }\n else {\n y.parent.right = x;\n }\n if (y === z) {\n x.parent = y.parent;\n }\n else {\n if (y.parent === z) {\n x.parent = y;\n }\n else {\n x.parent = y.parent;\n }\n y.left = z.left;\n y.right = z.right;\n y.parent = z.parent;\n setNodeColor(y, getNodeColor(z));\n if (z === T.root) {\n T.root = y;\n }\n else {\n if (z === z.parent.left) {\n z.parent.left = y;\n }\n else {\n z.parent.right = y;\n }\n }\n if (y.left !== SENTINEL) {\n y.left.parent = y;\n }\n if (y.right !== SENTINEL) {\n y.right.parent = y;\n }\n }\n z.detach();\n if (yWasRed) {\n recomputeMaxEndWalkToRoot(x.parent);\n if (y !== z) {\n recomputeMaxEndWalkToRoot(y);\n recomputeMaxEndWalkToRoot(y.parent);\n }\n resetSentinel();\n return;\n }\n recomputeMaxEndWalkToRoot(x);\n recomputeMaxEndWalkToRoot(x.parent);\n if (y !== z) {\n recomputeMaxEndWalkToRoot(y);\n recomputeMaxEndWalkToRoot(y.parent);\n }\n // RB-DELETE-FIXUP\n let w;\n while (x !== T.root && getNodeColor(x) === 0 /* Black */) {\n if (x === x.parent.left) {\n w = x.parent.right;\n if (getNodeColor(w) === 1 /* Red */) {\n setNodeColor(w, 0 /* Black */);\n setNodeColor(x.parent, 1 /* Red */);\n leftRotate(T, x.parent);\n w = x.parent.right;\n }\n if (getNodeColor(w.left) === 0 /* Black */ && getNodeColor(w.right) === 0 /* Black */) {\n setNodeColor(w, 1 /* Red */);\n x = x.parent;\n }\n else {\n if (getNodeColor(w.right) === 0 /* Black */) {\n setNodeColor(w.left, 0 /* Black */);\n setNodeColor(w, 1 /* Red */);\n rightRotate(T, w);\n w = x.parent.right;\n }\n setNodeColor(w, getNodeColor(x.parent));\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(w.right, 0 /* Black */);\n leftRotate(T, x.parent);\n x = T.root;\n }\n }\n else {\n w = x.parent.left;\n if (getNodeColor(w) === 1 /* Red */) {\n setNodeColor(w, 0 /* Black */);\n setNodeColor(x.parent, 1 /* Red */);\n rightRotate(T, x.parent);\n w = x.parent.left;\n }\n if (getNodeColor(w.left) === 0 /* Black */ && getNodeColor(w.right) === 0 /* Black */) {\n setNodeColor(w, 1 /* Red */);\n x = x.parent;\n }\n else {\n if (getNodeColor(w.left) === 0 /* Black */) {\n setNodeColor(w.right, 0 /* Black */);\n setNodeColor(w, 1 /* Red */);\n leftRotate(T, w);\n w = x.parent.left;\n }\n setNodeColor(w, getNodeColor(x.parent));\n setNodeColor(x.parent, 0 /* Black */);\n setNodeColor(w.left, 0 /* Black */);\n rightRotate(T, x.parent);\n x = T.root;\n }\n }\n }\n setNodeColor(x, 0 /* Black */);\n resetSentinel();\n}\nfunction leftest(node) {\n while (node.left !== SENTINEL) {\n node = node.left;\n }\n return node;\n}\nfunction resetSentinel() {\n SENTINEL.parent = SENTINEL;\n SENTINEL.delta = 0; // optional\n SENTINEL.start = 0; // optional\n SENTINEL.end = 0; // optional\n}\n//#endregion\n//#region Rotations\nfunction leftRotate(T, x) {\n const y = x.right; // set y.\n y.delta += x.delta; // y's delta is no longer influenced by x's delta\n if (y.delta < -1073741824 /* MIN_SAFE_DELTA */ || y.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start += x.delta;\n y.end += x.delta;\n x.right = y.left; // turn y's left subtree into x's right subtree.\n if (y.left !== SENTINEL) {\n y.left.parent = x;\n }\n y.parent = x.parent; // link x's parent to y.\n if (x.parent === SENTINEL) {\n T.root = y;\n }\n else if (x === x.parent.left) {\n x.parent.left = y;\n }\n else {\n x.parent.right = y;\n }\n y.left = x; // put x on y's left.\n x.parent = y;\n recomputeMaxEnd(x);\n recomputeMaxEnd(y);\n}\nfunction rightRotate(T, y) {\n const x = y.left;\n y.delta -= x.delta;\n if (y.delta < -1073741824 /* MIN_SAFE_DELTA */ || y.delta > 1073741824 /* MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start -= x.delta;\n y.end -= x.delta;\n y.left = x.right;\n if (x.right !== SENTINEL) {\n x.right.parent = y;\n }\n x.parent = y.parent;\n if (y.parent === SENTINEL) {\n T.root = x;\n }\n else if (y === y.parent.right) {\n y.parent.right = x;\n }\n else {\n y.parent.left = x;\n }\n x.right = y;\n y.parent = x;\n recomputeMaxEnd(y);\n recomputeMaxEnd(x);\n}\n//#endregion\n//#region max end computation\nfunction computeMaxEnd(node) {\n let maxEnd = node.end;\n if (node.left !== SENTINEL) {\n const leftMaxEnd = node.left.maxEnd;\n if (leftMaxEnd > maxEnd) {\n maxEnd = leftMaxEnd;\n }\n }\n if (node.right !== SENTINEL) {\n const rightMaxEnd = node.right.maxEnd + node.delta;\n if (rightMaxEnd > maxEnd) {\n maxEnd = rightMaxEnd;\n }\n }\n return maxEnd;\n}\nexport function recomputeMaxEnd(node) {\n node.maxEnd = computeMaxEnd(node);\n}\nfunction recomputeMaxEndWalkToRoot(node) {\n while (node !== SENTINEL) {\n const maxEnd = computeMaxEnd(node);\n if (node.maxEnd === maxEnd) {\n // no need to go further\n return;\n }\n node.maxEnd = maxEnd;\n node = node.parent;\n }\n}\n//#endregion\n//#region utils\nexport function intervalCompare(aStart, aEnd, bStart, bEnd) {\n if (aStart === bStart) {\n return aEnd - bEnd;\n }\n return aStart - bStart;\n}\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class TreeNode {\n constructor(piece, color) {\n this.piece = piece;\n this.color = color;\n this.size_left = 0;\n this.lf_left = 0;\n this.parent = this;\n this.left = this;\n this.right = this;\n }\n next() {\n if (this.right !== SENTINEL) {\n return leftest(this.right);\n }\n let node = this;\n while (node.parent !== SENTINEL) {\n if (node.parent.left === node) {\n break;\n }\n node = node.parent;\n }\n if (node.parent === SENTINEL) {\n return SENTINEL;\n }\n else {\n return node.parent;\n }\n }\n prev() {\n if (this.left !== SENTINEL) {\n return righttest(this.left);\n }\n let node = this;\n while (node.parent !== SENTINEL) {\n if (node.parent.right === node) {\n break;\n }\n node = node.parent;\n }\n if (node.parent === SENTINEL) {\n return SENTINEL;\n }\n else {\n return node.parent;\n }\n }\n detach() {\n this.parent = null;\n this.left = null;\n this.right = null;\n }\n}\nexport const SENTINEL = new TreeNode(null, 0 /* Black */);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nSENTINEL.color = 0 /* Black */;\nexport function leftest(node) {\n while (node.left !== SENTINEL) {\n node = node.left;\n }\n return node;\n}\nexport function righttest(node) {\n while (node.right !== SENTINEL) {\n node = node.right;\n }\n return node;\n}\nexport function calculateSize(node) {\n if (node === SENTINEL) {\n return 0;\n }\n return node.size_left + node.piece.length + calculateSize(node.right);\n}\nexport function calculateLF(node) {\n if (node === SENTINEL) {\n return 0;\n }\n return node.lf_left + node.piece.lineFeedCnt + calculateLF(node.right);\n}\nexport function resetSentinel() {\n SENTINEL.parent = SENTINEL;\n}\nexport function leftRotate(tree, x) {\n let y = x.right;\n // fix size_left\n y.size_left += x.size_left + (x.piece ? x.piece.length : 0);\n y.lf_left += x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n x.right = y.left;\n if (y.left !== SENTINEL) {\n y.left.parent = x;\n }\n y.parent = x.parent;\n if (x.parent === SENTINEL) {\n tree.root = y;\n }\n else if (x.parent.left === x) {\n x.parent.left = y;\n }\n else {\n x.parent.right = y;\n }\n y.left = x;\n x.parent = y;\n}\nexport function rightRotate(tree, y) {\n let x = y.left;\n y.left = x.right;\n if (x.right !== SENTINEL) {\n x.right.parent = y;\n }\n x.parent = y.parent;\n // fix size_left\n y.size_left -= x.size_left + (x.piece ? x.piece.length : 0);\n y.lf_left -= x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n if (y.parent === SENTINEL) {\n tree.root = x;\n }\n else if (y === y.parent.right) {\n y.parent.right = x;\n }\n else {\n y.parent.left = x;\n }\n x.right = y;\n y.parent = x;\n}\nexport function rbDelete(tree, z) {\n let x;\n let y;\n if (z.left === SENTINEL) {\n y = z;\n x = y.right;\n }\n else if (z.right === SENTINEL) {\n y = z;\n x = y.left;\n }\n else {\n y = leftest(z.right);\n x = y.right;\n }\n if (y === tree.root) {\n tree.root = x;\n // if x is null, we are removing the only node\n x.color = 0 /* Black */;\n z.detach();\n resetSentinel();\n tree.root.parent = SENTINEL;\n return;\n }\n let yWasRed = (y.color === 1 /* Red */);\n if (y === y.parent.left) {\n y.parent.left = x;\n }\n else {\n y.parent.right = x;\n }\n if (y === z) {\n x.parent = y.parent;\n recomputeTreeMetadata(tree, x);\n }\n else {\n if (y.parent === z) {\n x.parent = y;\n }\n else {\n x.parent = y.parent;\n }\n // as we make changes to x's hierarchy, update size_left of subtree first\n recomputeTreeMetadata(tree, x);\n y.left = z.left;\n y.right = z.right;\n y.parent = z.parent;\n y.color = z.color;\n if (z === tree.root) {\n tree.root = y;\n }\n else {\n if (z === z.parent.left) {\n z.parent.left = y;\n }\n else {\n z.parent.right = y;\n }\n }\n if (y.left !== SENTINEL) {\n y.left.parent = y;\n }\n if (y.right !== SENTINEL) {\n y.right.parent = y;\n }\n // update metadata\n // we replace z with y, so in this sub tree, the length change is z.item.length\n y.size_left = z.size_left;\n y.lf_left = z.lf_left;\n recomputeTreeMetadata(tree, y);\n }\n z.detach();\n if (x.parent.left === x) {\n let newSizeLeft = calculateSize(x);\n let newLFLeft = calculateLF(x);\n if (newSizeLeft !== x.parent.size_left || newLFLeft !== x.parent.lf_left) {\n let delta = newSizeLeft - x.parent.size_left;\n let lf_delta = newLFLeft - x.parent.lf_left;\n x.parent.size_left = newSizeLeft;\n x.parent.lf_left = newLFLeft;\n updateTreeMetadata(tree, x.parent, delta, lf_delta);\n }\n }\n recomputeTreeMetadata(tree, x.parent);\n if (yWasRed) {\n resetSentinel();\n return;\n }\n // RB-DELETE-FIXUP\n let w;\n while (x !== tree.root && x.color === 0 /* Black */) {\n if (x === x.parent.left) {\n w = x.parent.right;\n if (w.color === 1 /* Red */) {\n w.color = 0 /* Black */;\n x.parent.color = 1 /* Red */;\n leftRotate(tree, x.parent);\n w = x.parent.right;\n }\n if (w.left.color === 0 /* Black */ && w.right.color === 0 /* Black */) {\n w.color = 1 /* Red */;\n x = x.parent;\n }\n else {\n if (w.right.color === 0 /* Black */) {\n w.left.color = 0 /* Black */;\n w.color = 1 /* Red */;\n rightRotate(tree, w);\n w = x.parent.right;\n }\n w.color = x.parent.color;\n x.parent.color = 0 /* Black */;\n w.right.color = 0 /* Black */;\n leftRotate(tree, x.parent);\n x = tree.root;\n }\n }\n else {\n w = x.parent.left;\n if (w.color === 1 /* Red */) {\n w.color = 0 /* Black */;\n x.parent.color = 1 /* Red */;\n rightRotate(tree, x.parent);\n w = x.parent.left;\n }\n if (w.left.color === 0 /* Black */ && w.right.color === 0 /* Black */) {\n w.color = 1 /* Red */;\n x = x.parent;\n }\n else {\n if (w.left.color === 0 /* Black */) {\n w.right.color = 0 /* Black */;\n w.color = 1 /* Red */;\n leftRotate(tree, w);\n w = x.parent.left;\n }\n w.color = x.parent.color;\n x.parent.color = 0 /* Black */;\n w.left.color = 0 /* Black */;\n rightRotate(tree, x.parent);\n x = tree.root;\n }\n }\n }\n x.color = 0 /* Black */;\n resetSentinel();\n}\nexport function fixInsert(tree, x) {\n recomputeTreeMetadata(tree, x);\n while (x !== tree.root && x.parent.color === 1 /* Red */) {\n if (x.parent === x.parent.parent.left) {\n const y = x.parent.parent.right;\n if (y.color === 1 /* Red */) {\n x.parent.color = 0 /* Black */;\n y.color = 0 /* Black */;\n x.parent.parent.color = 1 /* Red */;\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.right) {\n x = x.parent;\n leftRotate(tree, x);\n }\n x.parent.color = 0 /* Black */;\n x.parent.parent.color = 1 /* Red */;\n rightRotate(tree, x.parent.parent);\n }\n }\n else {\n const y = x.parent.parent.left;\n if (y.color === 1 /* Red */) {\n x.parent.color = 0 /* Black */;\n y.color = 0 /* Black */;\n x.parent.parent.color = 1 /* Red */;\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.left) {\n x = x.parent;\n rightRotate(tree, x);\n }\n x.parent.color = 0 /* Black */;\n x.parent.parent.color = 1 /* Red */;\n leftRotate(tree, x.parent.parent);\n }\n }\n }\n tree.root.color = 0 /* Black */;\n}\nexport function updateTreeMetadata(tree, x, delta, lineFeedCntDelta) {\n // node length change or line feed count change\n while (x !== tree.root && x !== SENTINEL) {\n if (x.parent.left === x) {\n x.parent.size_left += delta;\n x.parent.lf_left += lineFeedCntDelta;\n }\n x = x.parent;\n }\n}\nexport function recomputeTreeMetadata(tree, x) {\n let delta = 0;\n let lf_delta = 0;\n if (x === tree.root) {\n return;\n }\n // go upwards till the node whose left subtree is changed.\n while (x !== tree.root && x === x.parent.right) {\n x = x.parent;\n }\n if (x === tree.root) {\n // well, it means we add a node to the end (inorder)\n return;\n }\n // x is the node whose right subtree is changed.\n x = x.parent;\n delta = calculateSize(x.left) - x.size_left;\n lf_delta = calculateLF(x.left) - x.lf_left;\n x.size_left += delta;\n x.lf_left += lf_delta;\n // go upwards till root. O(logN)\n while (x !== tree.root && (delta !== 0 || lf_delta !== 0)) {\n if (x.parent.left === x) {\n x.parent.size_left += delta;\n x.parent.lf_left += lf_delta;\n }\n x = x.parent;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../../core/position.js';\nimport { Range } from '../../core/range.js';\nimport { FindMatch } from '../../model.js';\nimport { SENTINEL, TreeNode, fixInsert, leftest, rbDelete, righttest, updateTreeMetadata } from './rbTreeBase.js';\nimport { Searcher, createFindMatch, isValidMatch } from '../textModelSearch.js';\n// const lfRegex = new RegExp(/\\r\\n|\\r|\\n/g);\nexport const AverageBufferSize = 65535;\nexport function createUintArray(arr) {\n let r;\n if (arr[arr.length - 1] < 65536) {\n r = new Uint16Array(arr.length);\n }\n else {\n r = new Uint32Array(arr.length);\n }\n r.set(arr, 0);\n return r;\n}\nexport class LineStarts {\n constructor(lineStarts, cr, lf, crlf, isBasicASCII) {\n this.lineStarts = lineStarts;\n this.cr = cr;\n this.lf = lf;\n this.crlf = crlf;\n this.isBasicASCII = isBasicASCII;\n }\n}\nexport function createLineStartsFast(str, readonly = true) {\n let r = [0], rLength = 1;\n for (let i = 0, len = str.length; i < len; i++) {\n const chr = str.charCodeAt(i);\n if (chr === 13 /* CarriageReturn */) {\n if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* LineFeed */) {\n // \\r\\n... case\n r[rLength++] = i + 2;\n i++; // skip \\n\n }\n else {\n // \\r... case\n r[rLength++] = i + 1;\n }\n }\n else if (chr === 10 /* LineFeed */) {\n r[rLength++] = i + 1;\n }\n }\n if (readonly) {\n return createUintArray(r);\n }\n else {\n return r;\n }\n}\nexport function createLineStarts(r, str) {\n r.length = 0;\n r[0] = 0;\n let rLength = 1;\n let cr = 0, lf = 0, crlf = 0;\n let isBasicASCII = true;\n for (let i = 0, len = str.length; i < len; i++) {\n const chr = str.charCodeAt(i);\n if (chr === 13 /* CarriageReturn */) {\n if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* LineFeed */) {\n // \\r\\n... case\n crlf++;\n r[rLength++] = i + 2;\n i++; // skip \\n\n }\n else {\n cr++;\n // \\r... case\n r[rLength++] = i + 1;\n }\n }\n else if (chr === 10 /* LineFeed */) {\n lf++;\n r[rLength++] = i + 1;\n }\n else {\n if (isBasicASCII) {\n if (chr !== 9 /* Tab */ && (chr < 32 || chr > 126)) {\n isBasicASCII = false;\n }\n }\n }\n }\n const result = new LineStarts(createUintArray(r), cr, lf, crlf, isBasicASCII);\n r.length = 0;\n return result;\n}\nexport class Piece {\n constructor(bufferIndex, start, end, lineFeedCnt, length) {\n this.bufferIndex = bufferIndex;\n this.start = start;\n this.end = end;\n this.lineFeedCnt = lineFeedCnt;\n this.length = length;\n }\n}\nexport class StringBuffer {\n constructor(buffer, lineStarts) {\n this.buffer = buffer;\n this.lineStarts = lineStarts;\n }\n}\n/**\n * Readonly snapshot for piece tree.\n * In a real multiple thread environment, to make snapshot reading always work correctly, we need to\n * 1. Make TreeNode.piece immutable, then reading and writing can run in parallel.\n * 2. TreeNode/Buffers normalization should not happen during snapshot reading.\n */\nclass PieceTreeSnapshot {\n constructor(tree, BOM) {\n this._pieces = [];\n this._tree = tree;\n this._BOM = BOM;\n this._index = 0;\n if (tree.root !== SENTINEL) {\n tree.iterate(tree.root, node => {\n if (node !== SENTINEL) {\n this._pieces.push(node.piece);\n }\n return true;\n });\n }\n }\n read() {\n if (this._pieces.length === 0) {\n if (this._index === 0) {\n this._index++;\n return this._BOM;\n }\n else {\n return null;\n }\n }\n if (this._index > this._pieces.length - 1) {\n return null;\n }\n if (this._index === 0) {\n return this._BOM + this._tree.getPieceContent(this._pieces[this._index++]);\n }\n return this._tree.getPieceContent(this._pieces[this._index++]);\n }\n}\nclass PieceTreeSearchCache {\n constructor(limit) {\n this._limit = limit;\n this._cache = [];\n }\n get(offset) {\n for (let i = this._cache.length - 1; i >= 0; i--) {\n let nodePos = this._cache[i];\n if (nodePos.nodeStartOffset <= offset && nodePos.nodeStartOffset + nodePos.node.piece.length >= offset) {\n return nodePos;\n }\n }\n return null;\n }\n get2(lineNumber) {\n for (let i = this._cache.length - 1; i >= 0; i--) {\n let nodePos = this._cache[i];\n if (nodePos.nodeStartLineNumber && nodePos.nodeStartLineNumber < lineNumber && nodePos.nodeStartLineNumber + nodePos.node.piece.lineFeedCnt >= lineNumber) {\n return nodePos;\n }\n }\n return null;\n }\n set(nodePosition) {\n if (this._cache.length >= this._limit) {\n this._cache.shift();\n }\n this._cache.push(nodePosition);\n }\n validate(offset) {\n let hasInvalidVal = false;\n let tmp = this._cache;\n for (let i = 0; i < tmp.length; i++) {\n let nodePos = tmp[i];\n if (nodePos.node.parent === null || nodePos.nodeStartOffset >= offset) {\n tmp[i] = null;\n hasInvalidVal = true;\n continue;\n }\n }\n if (hasInvalidVal) {\n let newArr = [];\n for (const entry of tmp) {\n if (entry !== null) {\n newArr.push(entry);\n }\n }\n this._cache = newArr;\n }\n }\n}\nexport class PieceTreeBase {\n constructor(chunks, eol, eolNormalized) {\n this.create(chunks, eol, eolNormalized);\n }\n create(chunks, eol, eolNormalized) {\n this._buffers = [\n new StringBuffer('', [0])\n ];\n this._lastChangeBufferPos = { line: 0, column: 0 };\n this.root = SENTINEL;\n this._lineCnt = 1;\n this._length = 0;\n this._EOL = eol;\n this._EOLLength = eol.length;\n this._EOLNormalized = eolNormalized;\n let lastNode = null;\n for (let i = 0, len = chunks.length; i < len; i++) {\n if (chunks[i].buffer.length > 0) {\n if (!chunks[i].lineStarts) {\n chunks[i].lineStarts = createLineStartsFast(chunks[i].buffer);\n }\n let piece = new Piece(i + 1, { line: 0, column: 0 }, { line: chunks[i].lineStarts.length - 1, column: chunks[i].buffer.length - chunks[i].lineStarts[chunks[i].lineStarts.length - 1] }, chunks[i].lineStarts.length - 1, chunks[i].buffer.length);\n this._buffers.push(chunks[i]);\n lastNode = this.rbInsertRight(lastNode, piece);\n }\n }\n this._searchCache = new PieceTreeSearchCache(1);\n this._lastVisitedLine = { lineNumber: 0, value: '' };\n this.computeBufferMetadata();\n }\n normalizeEOL(eol) {\n let averageBufferSize = AverageBufferSize;\n let min = averageBufferSize - Math.floor(averageBufferSize / 3);\n let max = min * 2;\n let tempChunk = '';\n let tempChunkLen = 0;\n let chunks = [];\n this.iterate(this.root, node => {\n let str = this.getNodeContent(node);\n let len = str.length;\n if (tempChunkLen <= min || tempChunkLen + len < max) {\n tempChunk += str;\n tempChunkLen += len;\n return true;\n }\n // flush anyways\n let text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n tempChunk = str;\n tempChunkLen = len;\n return true;\n });\n if (tempChunkLen > 0) {\n let text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n }\n this.create(chunks, eol, true);\n }\n // #region Buffer API\n getEOL() {\n return this._EOL;\n }\n setEOL(newEOL) {\n this._EOL = newEOL;\n this._EOLLength = this._EOL.length;\n this.normalizeEOL(newEOL);\n }\n createSnapshot(BOM) {\n return new PieceTreeSnapshot(this, BOM);\n }\n getOffsetAt(lineNumber, column) {\n let leftLen = 0; // inorder\n let x = this.root;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left + 1 >= lineNumber) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt + 1 >= lineNumber) {\n leftLen += x.size_left;\n // lineNumber >= 2\n let accumualtedValInCurrentIndex = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n return leftLen += accumualtedValInCurrentIndex + column - 1;\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n leftLen += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n return leftLen;\n }\n getPositionAt(offset) {\n offset = Math.floor(offset);\n offset = Math.max(0, offset);\n let x = this.root;\n let lfCnt = 0;\n let originalOffset = offset;\n while (x !== SENTINEL) {\n if (x.size_left !== 0 && x.size_left >= offset) {\n x = x.left;\n }\n else if (x.size_left + x.piece.length >= offset) {\n let out = this.getIndexOf(x, offset - x.size_left);\n lfCnt += x.lf_left + out.index;\n if (out.index === 0) {\n let lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n let column = originalOffset - lineStartOffset;\n return new Position(lfCnt + 1, column + 1);\n }\n return new Position(lfCnt + 1, out.remainder + 1);\n }\n else {\n offset -= x.size_left + x.piece.length;\n lfCnt += x.lf_left + x.piece.lineFeedCnt;\n if (x.right === SENTINEL) {\n // last node\n let lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n let column = originalOffset - offset - lineStartOffset;\n return new Position(lfCnt + 1, column + 1);\n }\n else {\n x = x.right;\n }\n }\n }\n return new Position(1, 1);\n }\n getValueInRange(range, eol) {\n if (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n return '';\n }\n let startPosition = this.nodeAt2(range.startLineNumber, range.startColumn);\n let endPosition = this.nodeAt2(range.endLineNumber, range.endColumn);\n let value = this.getValueInRange2(startPosition, endPosition);\n if (eol) {\n if (eol !== this._EOL || !this._EOLNormalized) {\n return value.replace(/\\r\\n|\\r|\\n/g, eol);\n }\n if (eol === this.getEOL() && this._EOLNormalized) {\n if (eol === '\\r\\n') {\n }\n return value;\n }\n return value.replace(/\\r\\n|\\r|\\n/g, eol);\n }\n return value;\n }\n getValueInRange2(startPosition, endPosition) {\n if (startPosition.node === endPosition.node) {\n let node = startPosition.node;\n let buffer = this._buffers[node.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n return buffer.substring(startOffset + startPosition.remainder, startOffset + endPosition.remainder);\n }\n let x = startPosition.node;\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n let ret = buffer.substring(startOffset + startPosition.remainder, startOffset + x.piece.length);\n x = x.next();\n while (x !== SENTINEL) {\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n if (x === endPosition.node) {\n ret += buffer.substring(startOffset, startOffset + endPosition.remainder);\n break;\n }\n else {\n ret += buffer.substr(startOffset, x.piece.length);\n }\n x = x.next();\n }\n return ret;\n }\n getLinesContent() {\n let lines = [];\n let linesLength = 0;\n let currentLine = '';\n let danglingCR = false;\n this.iterate(this.root, node => {\n if (node === SENTINEL) {\n return true;\n }\n const piece = node.piece;\n let pieceLength = piece.length;\n if (pieceLength === 0) {\n return true;\n }\n const buffer = this._buffers[piece.bufferIndex].buffer;\n const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n const pieceStartLine = piece.start.line;\n const pieceEndLine = piece.end.line;\n let pieceStartOffset = lineStarts[pieceStartLine] + piece.start.column;\n if (danglingCR) {\n if (buffer.charCodeAt(pieceStartOffset) === 10 /* LineFeed */) {\n // pretend the \\n was in the previous piece..\n pieceStartOffset++;\n pieceLength--;\n }\n lines[linesLength++] = currentLine;\n currentLine = '';\n danglingCR = false;\n if (pieceLength === 0) {\n return true;\n }\n }\n if (pieceStartLine === pieceEndLine) {\n // this piece has no new lines\n if (!this._EOLNormalized && buffer.charCodeAt(pieceStartOffset + pieceLength - 1) === 13 /* CarriageReturn */) {\n danglingCR = true;\n currentLine += buffer.substr(pieceStartOffset, pieceLength - 1);\n }\n else {\n currentLine += buffer.substr(pieceStartOffset, pieceLength);\n }\n return true;\n }\n // add the text before the first line start in this piece\n currentLine += (this._EOLNormalized\n ? buffer.substring(pieceStartOffset, Math.max(pieceStartOffset, lineStarts[pieceStartLine + 1] - this._EOLLength))\n : buffer.substring(pieceStartOffset, lineStarts[pieceStartLine + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n lines[linesLength++] = currentLine;\n for (let line = pieceStartLine + 1; line < pieceEndLine; line++) {\n currentLine = (this._EOLNormalized\n ? buffer.substring(lineStarts[line], lineStarts[line + 1] - this._EOLLength)\n : buffer.substring(lineStarts[line], lineStarts[line + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n lines[linesLength++] = currentLine;\n }\n if (!this._EOLNormalized && buffer.charCodeAt(lineStarts[pieceEndLine] + piece.end.column - 1) === 13 /* CarriageReturn */) {\n danglingCR = true;\n if (piece.end.column === 0) {\n // The last line ended with a \\r, let's undo the push, it will be pushed by next iteration\n linesLength--;\n }\n else {\n currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column - 1);\n }\n }\n else {\n currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column);\n }\n return true;\n });\n if (danglingCR) {\n lines[linesLength++] = currentLine;\n currentLine = '';\n }\n lines[linesLength++] = currentLine;\n return lines;\n }\n getLength() {\n return this._length;\n }\n getLineCount() {\n return this._lineCnt;\n }\n getLineContent(lineNumber) {\n if (this._lastVisitedLine.lineNumber === lineNumber) {\n return this._lastVisitedLine.value;\n }\n this._lastVisitedLine.lineNumber = lineNumber;\n if (lineNumber === this._lineCnt) {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber);\n }\n else if (this._EOLNormalized) {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber, this._EOLLength);\n }\n else {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber).replace(/(\\r\\n|\\r|\\n)$/, '');\n }\n return this._lastVisitedLine.value;\n }\n _getCharCode(nodePos) {\n if (nodePos.remainder === nodePos.node.piece.length) {\n // the char we want to fetch is at the head of next node.\n let matchingNode = nodePos.node.next();\n if (!matchingNode) {\n return 0;\n }\n let buffer = this._buffers[matchingNode.piece.bufferIndex];\n let startOffset = this.offsetInBuffer(matchingNode.piece.bufferIndex, matchingNode.piece.start);\n return buffer.buffer.charCodeAt(startOffset);\n }\n else {\n let buffer = this._buffers[nodePos.node.piece.bufferIndex];\n let startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);\n let targetOffset = startOffset + nodePos.remainder;\n return buffer.buffer.charCodeAt(targetOffset);\n }\n }\n getLineCharCode(lineNumber, index) {\n let nodePos = this.nodeAt2(lineNumber, index + 1);\n return this._getCharCode(nodePos);\n }\n getLineLength(lineNumber) {\n if (lineNumber === this.getLineCount()) {\n let startOffset = this.getOffsetAt(lineNumber, 1);\n return this.getLength() - startOffset;\n }\n return this.getOffsetAt(lineNumber + 1, 1) - this.getOffsetAt(lineNumber, 1) - this._EOLLength;\n }\n findMatchesInNode(node, searcher, startLineNumber, startColumn, startCursor, endCursor, searchData, captureMatches, limitResultCount, resultLen, result) {\n let buffer = this._buffers[node.piece.bufferIndex];\n let startOffsetInBuffer = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n let start = this.offsetInBuffer(node.piece.bufferIndex, startCursor);\n let end = this.offsetInBuffer(node.piece.bufferIndex, endCursor);\n let m;\n // Reset regex to search from the beginning\n let ret = { line: 0, column: 0 };\n let searchText;\n let offsetInBuffer;\n if (searcher._wordSeparators) {\n searchText = buffer.buffer.substring(start, end);\n offsetInBuffer = (offset) => offset + start;\n searcher.reset(0);\n }\n else {\n searchText = buffer.buffer;\n offsetInBuffer = (offset) => offset;\n searcher.reset(start);\n }\n do {\n m = searcher.next(searchText);\n if (m) {\n if (offsetInBuffer(m.index) >= end) {\n return resultLen;\n }\n this.positionInBuffer(node, offsetInBuffer(m.index) - startOffsetInBuffer, ret);\n let lineFeedCnt = this.getLineFeedCnt(node.piece.bufferIndex, startCursor, ret);\n let retStartColumn = ret.line === startCursor.line ? ret.column - startCursor.column + startColumn : ret.column + 1;\n let retEndColumn = retStartColumn + m[0].length;\n result[resultLen++] = createFindMatch(new Range(startLineNumber + lineFeedCnt, retStartColumn, startLineNumber + lineFeedCnt, retEndColumn), m, captureMatches);\n if (offsetInBuffer(m.index) + m[0].length >= end) {\n return resultLen;\n }\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n const result = [];\n let resultLen = 0;\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n let startPosition = this.nodeAt2(searchRange.startLineNumber, searchRange.startColumn);\n if (startPosition === null) {\n return [];\n }\n let endPosition = this.nodeAt2(searchRange.endLineNumber, searchRange.endColumn);\n if (endPosition === null) {\n return [];\n }\n let start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n let end = this.positionInBuffer(endPosition.node, endPosition.remainder);\n if (startPosition.node === endPosition.node) {\n this.findMatchesInNode(startPosition.node, searcher, searchRange.startLineNumber, searchRange.startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n return result;\n }\n let startLineNumber = searchRange.startLineNumber;\n let currentNode = startPosition.node;\n while (currentNode !== endPosition.node) {\n let lineBreakCnt = this.getLineFeedCnt(currentNode.piece.bufferIndex, start, currentNode.piece.end);\n if (lineBreakCnt >= 1) {\n // last line break position\n let lineStarts = this._buffers[currentNode.piece.bufferIndex].lineStarts;\n let startOffsetInBuffer = this.offsetInBuffer(currentNode.piece.bufferIndex, currentNode.piece.start);\n let nextLineStartOffset = lineStarts[start.line + lineBreakCnt];\n let startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n resultLen = this.findMatchesInNode(currentNode, searcher, startLineNumber, startColumn, start, this.positionInBuffer(currentNode, nextLineStartOffset - startOffsetInBuffer), searchData, captureMatches, limitResultCount, resultLen, result);\n if (resultLen >= limitResultCount) {\n return result;\n }\n startLineNumber += lineBreakCnt;\n }\n let startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n // search for the remaining content\n if (startLineNumber === searchRange.endLineNumber) {\n const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n resultLen = this._findMatchesInLine(searchData, searcher, this.getLineContent(startLineNumber).substr(startColumn), startLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n if (resultLen >= limitResultCount) {\n return result;\n }\n startLineNumber++;\n startPosition = this.nodeAt2(startLineNumber, 1);\n currentNode = startPosition.node;\n start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n }\n if (startLineNumber === searchRange.endLineNumber) {\n let startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n let startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n resultLen = this.findMatchesInNode(endPosition.node, searcher, startLineNumber, startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n return result;\n }\n _findMatchesInLine(searchData, searcher, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n const wordSeparators = searchData.wordSeparators;\n if (!captureMatches && searchData.simpleSearch) {\n const searchString = searchData.simpleSearch;\n const searchStringLen = searchString.length;\n const textLength = text.length;\n let lastMatchIndex = -searchStringLen;\n while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n }\n return resultLen;\n }\n let m;\n // Reset regex to search from the beginning\n searcher.reset(0);\n do {\n m = searcher.next(text);\n if (m) {\n result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n // #endregion\n // #region Piece Table\n insert(offset, value, eolNormalized = false) {\n this._EOLNormalized = this._EOLNormalized && eolNormalized;\n this._lastVisitedLine.lineNumber = 0;\n this._lastVisitedLine.value = '';\n if (this.root !== SENTINEL) {\n let { node, remainder, nodeStartOffset } = this.nodeAt(offset);\n let piece = node.piece;\n let bufferIndex = piece.bufferIndex;\n let insertPosInBuffer = this.positionInBuffer(node, remainder);\n if (node.piece.bufferIndex === 0 &&\n piece.end.line === this._lastChangeBufferPos.line &&\n piece.end.column === this._lastChangeBufferPos.column &&\n (nodeStartOffset + piece.length === offset) &&\n value.length < AverageBufferSize) {\n // changed buffer\n this.appendToNode(node, value);\n this.computeBufferMetadata();\n return;\n }\n if (nodeStartOffset === offset) {\n this.insertContentToNodeLeft(value, node);\n this._searchCache.validate(offset);\n }\n else if (nodeStartOffset + node.piece.length > offset) {\n // we are inserting into the middle of a node.\n let nodesToDel = [];\n let newRightPiece = new Piece(piece.bufferIndex, insertPosInBuffer, piece.end, this.getLineFeedCnt(piece.bufferIndex, insertPosInBuffer, piece.end), this.offsetInBuffer(bufferIndex, piece.end) - this.offsetInBuffer(bufferIndex, insertPosInBuffer));\n if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n let headOfRight = this.nodeCharCodeAt(node, remainder);\n if (headOfRight === 10 /** \\n */) {\n let newStart = { line: newRightPiece.start.line + 1, column: 0 };\n newRightPiece = new Piece(newRightPiece.bufferIndex, newStart, newRightPiece.end, this.getLineFeedCnt(newRightPiece.bufferIndex, newStart, newRightPiece.end), newRightPiece.length - 1);\n value += '\\n';\n }\n }\n // reuse node for content before insertion point.\n if (this.shouldCheckCRLF() && this.startWithLF(value)) {\n let tailOfLeft = this.nodeCharCodeAt(node, remainder - 1);\n if (tailOfLeft === 13 /** \\r */) {\n let previousPos = this.positionInBuffer(node, remainder - 1);\n this.deleteNodeTail(node, previousPos);\n value = '\\r' + value;\n if (node.piece.length === 0) {\n nodesToDel.push(node);\n }\n }\n else {\n this.deleteNodeTail(node, insertPosInBuffer);\n }\n }\n else {\n this.deleteNodeTail(node, insertPosInBuffer);\n }\n let newPieces = this.createNewPieces(value);\n if (newRightPiece.length > 0) {\n this.rbInsertRight(node, newRightPiece);\n }\n let tmpNode = node;\n for (let k = 0; k < newPieces.length; k++) {\n tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n }\n this.deleteNodes(nodesToDel);\n }\n else {\n this.insertContentToNodeRight(value, node);\n }\n }\n else {\n // insert new node\n let pieces = this.createNewPieces(value);\n let node = this.rbInsertLeft(null, pieces[0]);\n for (let k = 1; k < pieces.length; k++) {\n node = this.rbInsertRight(node, pieces[k]);\n }\n }\n // todo, this is too brutal. Total line feed count should be updated the same way as lf_left.\n this.computeBufferMetadata();\n }\n delete(offset, cnt) {\n this._lastVisitedLine.lineNumber = 0;\n this._lastVisitedLine.value = '';\n if (cnt <= 0 || this.root === SENTINEL) {\n return;\n }\n let startPosition = this.nodeAt(offset);\n let endPosition = this.nodeAt(offset + cnt);\n let startNode = startPosition.node;\n let endNode = endPosition.node;\n if (startNode === endNode) {\n let startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n let endSplitPosInBuffer = this.positionInBuffer(startNode, endPosition.remainder);\n if (startPosition.nodeStartOffset === offset) {\n if (cnt === startNode.piece.length) { // delete node\n let next = startNode.next();\n rbDelete(this, startNode);\n this.validateCRLFWithPrevNode(next);\n this.computeBufferMetadata();\n return;\n }\n this.deleteNodeHead(startNode, endSplitPosInBuffer);\n this._searchCache.validate(offset);\n this.validateCRLFWithPrevNode(startNode);\n this.computeBufferMetadata();\n return;\n }\n if (startPosition.nodeStartOffset + startNode.piece.length === offset + cnt) {\n this.deleteNodeTail(startNode, startSplitPosInBuffer);\n this.validateCRLFWithNextNode(startNode);\n this.computeBufferMetadata();\n return;\n }\n // delete content in the middle, this node will be splitted to nodes\n this.shrinkNode(startNode, startSplitPosInBuffer, endSplitPosInBuffer);\n this.computeBufferMetadata();\n return;\n }\n let nodesToDel = [];\n let startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n this.deleteNodeTail(startNode, startSplitPosInBuffer);\n this._searchCache.validate(offset);\n if (startNode.piece.length === 0) {\n nodesToDel.push(startNode);\n }\n // update last touched node\n let endSplitPosInBuffer = this.positionInBuffer(endNode, endPosition.remainder);\n this.deleteNodeHead(endNode, endSplitPosInBuffer);\n if (endNode.piece.length === 0) {\n nodesToDel.push(endNode);\n }\n // delete nodes in between\n let secondNode = startNode.next();\n for (let node = secondNode; node !== SENTINEL && node !== endNode; node = node.next()) {\n nodesToDel.push(node);\n }\n let prev = startNode.piece.length === 0 ? startNode.prev() : startNode;\n this.deleteNodes(nodesToDel);\n this.validateCRLFWithNextNode(prev);\n this.computeBufferMetadata();\n }\n insertContentToNodeLeft(value, node) {\n // we are inserting content to the beginning of node\n let nodesToDel = [];\n if (this.shouldCheckCRLF() && this.endWithCR(value) && this.startWithLF(node)) {\n // move `\\n` to new node.\n let piece = node.piece;\n let newStart = { line: piece.start.line + 1, column: 0 };\n let nPiece = new Piece(piece.bufferIndex, newStart, piece.end, this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end), piece.length - 1);\n node.piece = nPiece;\n value += '\\n';\n updateTreeMetadata(this, node, -1, -1);\n if (node.piece.length === 0) {\n nodesToDel.push(node);\n }\n }\n let newPieces = this.createNewPieces(value);\n let newNode = this.rbInsertLeft(node, newPieces[newPieces.length - 1]);\n for (let k = newPieces.length - 2; k >= 0; k--) {\n newNode = this.rbInsertLeft(newNode, newPieces[k]);\n }\n this.validateCRLFWithPrevNode(newNode);\n this.deleteNodes(nodesToDel);\n }\n insertContentToNodeRight(value, node) {\n // we are inserting to the right of this node.\n if (this.adjustCarriageReturnFromNext(value, node)) {\n // move \\n to the new node.\n value += '\\n';\n }\n let newPieces = this.createNewPieces(value);\n let newNode = this.rbInsertRight(node, newPieces[0]);\n let tmpNode = newNode;\n for (let k = 1; k < newPieces.length; k++) {\n tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n }\n this.validateCRLFWithPrevNode(newNode);\n }\n positionInBuffer(node, remainder, ret) {\n let piece = node.piece;\n let bufferIndex = node.piece.bufferIndex;\n let lineStarts = this._buffers[bufferIndex].lineStarts;\n let startOffset = lineStarts[piece.start.line] + piece.start.column;\n let offset = startOffset + remainder;\n // binary search offset between startOffset and endOffset\n let low = piece.start.line;\n let high = piece.end.line;\n let mid = 0;\n let midStop = 0;\n let midStart = 0;\n while (low <= high) {\n mid = low + ((high - low) / 2) | 0;\n midStart = lineStarts[mid];\n if (mid === high) {\n break;\n }\n midStop = lineStarts[mid + 1];\n if (offset < midStart) {\n high = mid - 1;\n }\n else if (offset >= midStop) {\n low = mid + 1;\n }\n else {\n break;\n }\n }\n if (ret) {\n ret.line = mid;\n ret.column = offset - midStart;\n return null;\n }\n return {\n line: mid,\n column: offset - midStart\n };\n }\n getLineFeedCnt(bufferIndex, start, end) {\n // we don't need to worry about start: abc\\r|\\n, or abc|\\r, or abc|\\n, or abc|\\r\\n doesn't change the fact that, there is one line break after start.\n // now let's take care of end: abc\\r|\\n, if end is in between \\r and \\n, we need to add line feed count by 1\n if (end.column === 0) {\n return end.line - start.line;\n }\n let lineStarts = this._buffers[bufferIndex].lineStarts;\n if (end.line === lineStarts.length - 1) { // it means, there is no \\n after end, otherwise, there will be one more lineStart.\n return end.line - start.line;\n }\n let nextLineStartOffset = lineStarts[end.line + 1];\n let endOffset = lineStarts[end.line] + end.column;\n if (nextLineStartOffset > endOffset + 1) { // there are more than 1 character after end, which means it can't be \\n\n return end.line - start.line;\n }\n // endOffset + 1 === nextLineStartOffset\n // character at endOffset is \\n, so we check the character before first\n // if character at endOffset is \\r, end.column is 0 and we can't get here.\n let previousCharOffset = endOffset - 1; // end.column > 0 so it's okay.\n let buffer = this._buffers[bufferIndex].buffer;\n if (buffer.charCodeAt(previousCharOffset) === 13) {\n return end.line - start.line + 1;\n }\n else {\n return end.line - start.line;\n }\n }\n offsetInBuffer(bufferIndex, cursor) {\n let lineStarts = this._buffers[bufferIndex].lineStarts;\n return lineStarts[cursor.line] + cursor.column;\n }\n deleteNodes(nodes) {\n for (let i = 0; i < nodes.length; i++) {\n rbDelete(this, nodes[i]);\n }\n }\n createNewPieces(text) {\n if (text.length > AverageBufferSize) {\n // the content is large, operations like substring, charCode becomes slow\n // so here we split it into smaller chunks, just like what we did for CR/LF normalization\n let newPieces = [];\n while (text.length > AverageBufferSize) {\n const lastChar = text.charCodeAt(AverageBufferSize - 1);\n let splitText;\n if (lastChar === 13 /* CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n // last character is \\r or a high surrogate => keep it back\n splitText = text.substring(0, AverageBufferSize - 1);\n text = text.substring(AverageBufferSize - 1);\n }\n else {\n splitText = text.substring(0, AverageBufferSize);\n text = text.substring(AverageBufferSize);\n }\n let lineStarts = createLineStartsFast(splitText);\n newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: splitText.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, splitText.length));\n this._buffers.push(new StringBuffer(splitText, lineStarts));\n }\n let lineStarts = createLineStartsFast(text);\n newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: text.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, text.length));\n this._buffers.push(new StringBuffer(text, lineStarts));\n return newPieces;\n }\n let startOffset = this._buffers[0].buffer.length;\n const lineStarts = createLineStartsFast(text, false);\n let start = this._lastChangeBufferPos;\n if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === startOffset\n && startOffset !== 0\n && this.startWithLF(text)\n && this.endWithCR(this._buffers[0].buffer) // todo, we can check this._lastChangeBufferPos's column as it's the last one\n ) {\n this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1 };\n start = this._lastChangeBufferPos;\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset + 1;\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n this._buffers[0].buffer += '_' + text;\n startOffset += 1;\n }\n else {\n if (startOffset !== 0) {\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset;\n }\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n this._buffers[0].buffer += text;\n }\n const endOffset = this._buffers[0].buffer.length;\n let endIndex = this._buffers[0].lineStarts.length - 1;\n let endColumn = endOffset - this._buffers[0].lineStarts[endIndex];\n let endPos = { line: endIndex, column: endColumn };\n let newPiece = new Piece(0, /** todo@peng */ start, endPos, this.getLineFeedCnt(0, start, endPos), endOffset - startOffset);\n this._lastChangeBufferPos = endPos;\n return [newPiece];\n }\n getLineRawContent(lineNumber, endOffset = 0) {\n let x = this.root;\n let ret = '';\n let cache = this._searchCache.get2(lineNumber);\n if (cache) {\n x = cache.node;\n let prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber - 1);\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n if (cache.nodeStartLineNumber + x.piece.lineFeedCnt === lineNumber) {\n ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n }\n else {\n let accumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber);\n return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n }\n }\n else {\n let nodeStartOffset = 0;\n const originalLineNumber = lineNumber;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n let prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n let accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n nodeStartOffset += x.size_left;\n this._searchCache.set({\n node: x,\n nodeStartOffset,\n nodeStartLineNumber: originalLineNumber - (lineNumber - 1 - x.lf_left)\n });\n return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n }\n else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n let prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n break;\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n }\n // search in order, to find the node contains end column\n x = x.next();\n while (x !== SENTINEL) {\n let buffer = this._buffers[x.piece.bufferIndex].buffer;\n if (x.piece.lineFeedCnt > 0) {\n let accumulatedValue = this.getAccumulatedValue(x, 0);\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret += buffer.substring(startOffset, startOffset + accumulatedValue - endOffset);\n return ret;\n }\n else {\n let startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret += buffer.substr(startOffset, x.piece.length);\n }\n x = x.next();\n }\n return ret;\n }\n computeBufferMetadata() {\n let x = this.root;\n let lfCnt = 1;\n let len = 0;\n while (x !== SENTINEL) {\n lfCnt += x.lf_left + x.piece.lineFeedCnt;\n len += x.size_left + x.piece.length;\n x = x.right;\n }\n this._lineCnt = lfCnt;\n this._length = len;\n this._searchCache.validate(this._length);\n }\n // #region node operations\n getIndexOf(node, accumulatedValue) {\n let piece = node.piece;\n let pos = this.positionInBuffer(node, accumulatedValue);\n let lineCnt = pos.line - piece.start.line;\n if (this.offsetInBuffer(piece.bufferIndex, piece.end) - this.offsetInBuffer(piece.bufferIndex, piece.start) === accumulatedValue) {\n // we are checking the end of this node, so a CRLF check is necessary.\n let realLineCnt = this.getLineFeedCnt(node.piece.bufferIndex, piece.start, pos);\n if (realLineCnt !== lineCnt) {\n // aha yes, CRLF\n return { index: realLineCnt, remainder: 0 };\n }\n }\n return { index: lineCnt, remainder: pos.column };\n }\n getAccumulatedValue(node, index) {\n if (index < 0) {\n return 0;\n }\n let piece = node.piece;\n let lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n let expectedLineStartIndex = piece.start.line + index + 1;\n if (expectedLineStartIndex > piece.end.line) {\n return lineStarts[piece.end.line] + piece.end.column - lineStarts[piece.start.line] - piece.start.column;\n }\n else {\n return lineStarts[expectedLineStartIndex] - lineStarts[piece.start.line] - piece.start.column;\n }\n }\n deleteNodeTail(node, pos) {\n const piece = node.piece;\n const originalLFCnt = piece.lineFeedCnt;\n const originalEndOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n const newEnd = pos;\n const newEndOffset = this.offsetInBuffer(piece.bufferIndex, newEnd);\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n const lf_delta = newLineFeedCnt - originalLFCnt;\n const size_delta = newEndOffset - originalEndOffset;\n const newLength = piece.length + size_delta;\n node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, size_delta, lf_delta);\n }\n deleteNodeHead(node, pos) {\n const piece = node.piece;\n const originalLFCnt = piece.lineFeedCnt;\n const originalStartOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n const newStart = pos;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n const newStartOffset = this.offsetInBuffer(piece.bufferIndex, newStart);\n const lf_delta = newLineFeedCnt - originalLFCnt;\n const size_delta = originalStartOffset - newStartOffset;\n const newLength = piece.length + size_delta;\n node.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, size_delta, lf_delta);\n }\n shrinkNode(node, start, end) {\n const piece = node.piece;\n const originalStartPos = piece.start;\n const originalEndPos = piece.end;\n // old piece, originalStartPos, start\n const oldLength = piece.length;\n const oldLFCnt = piece.lineFeedCnt;\n const newEnd = start;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n const newLength = this.offsetInBuffer(piece.bufferIndex, start) - this.offsetInBuffer(piece.bufferIndex, originalStartPos);\n node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, newLength - oldLength, newLineFeedCnt - oldLFCnt);\n // new right piece, end, originalEndPos\n let newPiece = new Piece(piece.bufferIndex, end, originalEndPos, this.getLineFeedCnt(piece.bufferIndex, end, originalEndPos), this.offsetInBuffer(piece.bufferIndex, originalEndPos) - this.offsetInBuffer(piece.bufferIndex, end));\n let newNode = this.rbInsertRight(node, newPiece);\n this.validateCRLFWithPrevNode(newNode);\n }\n appendToNode(node, value) {\n if (this.adjustCarriageReturnFromNext(value, node)) {\n value += '\\n';\n }\n const hitCRLF = this.shouldCheckCRLF() && this.startWithLF(value) && this.endWithCR(node);\n const startOffset = this._buffers[0].buffer.length;\n this._buffers[0].buffer += value;\n const lineStarts = createLineStartsFast(value, false);\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset;\n }\n if (hitCRLF) {\n let prevStartOffset = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];\n this._buffers[0].lineStarts.pop();\n // _lastChangeBufferPos is already wrong\n this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line - 1, column: startOffset - prevStartOffset };\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n const endIndex = this._buffers[0].lineStarts.length - 1;\n const endColumn = this._buffers[0].buffer.length - this._buffers[0].lineStarts[endIndex];\n const newEnd = { line: endIndex, column: endColumn };\n const newLength = node.piece.length + value.length;\n const oldLineFeedCnt = node.piece.lineFeedCnt;\n const newLineFeedCnt = this.getLineFeedCnt(0, node.piece.start, newEnd);\n const lf_delta = newLineFeedCnt - oldLineFeedCnt;\n node.piece = new Piece(node.piece.bufferIndex, node.piece.start, newEnd, newLineFeedCnt, newLength);\n this._lastChangeBufferPos = newEnd;\n updateTreeMetadata(this, node, value.length, lf_delta);\n }\n nodeAt(offset) {\n let x = this.root;\n let cache = this._searchCache.get(offset);\n if (cache) {\n return {\n node: cache.node,\n nodeStartOffset: cache.nodeStartOffset,\n remainder: offset - cache.nodeStartOffset\n };\n }\n let nodeStartOffset = 0;\n while (x !== SENTINEL) {\n if (x.size_left > offset) {\n x = x.left;\n }\n else if (x.size_left + x.piece.length >= offset) {\n nodeStartOffset += x.size_left;\n let ret = {\n node: x,\n remainder: offset - x.size_left,\n nodeStartOffset\n };\n this._searchCache.set(ret);\n return ret;\n }\n else {\n offset -= x.size_left + x.piece.length;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n return null;\n }\n nodeAt2(lineNumber, column) {\n let x = this.root;\n let nodeStartOffset = 0;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n let prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n let accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n nodeStartOffset += x.size_left;\n return {\n node: x,\n remainder: Math.min(prevAccumualtedValue + column - 1, accumulatedValue),\n nodeStartOffset\n };\n }\n else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n let prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n if (prevAccumualtedValue + column - 1 <= x.piece.length) {\n return {\n node: x,\n remainder: prevAccumualtedValue + column - 1,\n nodeStartOffset\n };\n }\n else {\n column -= x.piece.length - prevAccumualtedValue;\n break;\n }\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n // search in order, to find the node contains position.column\n x = x.next();\n while (x !== SENTINEL) {\n if (x.piece.lineFeedCnt > 0) {\n let accumulatedValue = this.getAccumulatedValue(x, 0);\n let nodeStartOffset = this.offsetOfNode(x);\n return {\n node: x,\n remainder: Math.min(column - 1, accumulatedValue),\n nodeStartOffset\n };\n }\n else {\n if (x.piece.length >= column - 1) {\n let nodeStartOffset = this.offsetOfNode(x);\n return {\n node: x,\n remainder: column - 1,\n nodeStartOffset\n };\n }\n else {\n column -= x.piece.length;\n }\n }\n x = x.next();\n }\n return null;\n }\n nodeCharCodeAt(node, offset) {\n if (node.piece.lineFeedCnt < 1) {\n return -1;\n }\n let buffer = this._buffers[node.piece.bufferIndex];\n let newOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start) + offset;\n return buffer.buffer.charCodeAt(newOffset);\n }\n offsetOfNode(node) {\n if (!node) {\n return 0;\n }\n let pos = node.size_left;\n while (node !== this.root) {\n if (node.parent.right === node) {\n pos += node.parent.size_left + node.parent.piece.length;\n }\n node = node.parent;\n }\n return pos;\n }\n // #endregion\n // #region CRLF\n shouldCheckCRLF() {\n return !(this._EOLNormalized && this._EOL === '\\n');\n }\n startWithLF(val) {\n if (typeof val === 'string') {\n return val.charCodeAt(0) === 10;\n }\n if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n return false;\n }\n let piece = val.piece;\n let lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n let line = piece.start.line;\n let startOffset = lineStarts[line] + piece.start.column;\n if (line === lineStarts.length - 1) {\n // last line, so there is no line feed at the end of this line\n return false;\n }\n let nextLineOffset = lineStarts[line + 1];\n if (nextLineOffset > startOffset + 1) {\n return false;\n }\n return this._buffers[piece.bufferIndex].buffer.charCodeAt(startOffset) === 10;\n }\n endWithCR(val) {\n if (typeof val === 'string') {\n return val.charCodeAt(val.length - 1) === 13;\n }\n if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n return false;\n }\n return this.nodeCharCodeAt(val, val.piece.length - 1) === 13;\n }\n validateCRLFWithPrevNode(nextNode) {\n if (this.shouldCheckCRLF() && this.startWithLF(nextNode)) {\n let node = nextNode.prev();\n if (this.endWithCR(node)) {\n this.fixCRLF(node, nextNode);\n }\n }\n }\n validateCRLFWithNextNode(node) {\n if (this.shouldCheckCRLF() && this.endWithCR(node)) {\n let nextNode = node.next();\n if (this.startWithLF(nextNode)) {\n this.fixCRLF(node, nextNode);\n }\n }\n }\n fixCRLF(prev, next) {\n let nodesToDel = [];\n // update node\n let lineStarts = this._buffers[prev.piece.bufferIndex].lineStarts;\n let newEnd;\n if (prev.piece.end.column === 0) {\n // it means, last line ends with \\r, not \\r\\n\n newEnd = { line: prev.piece.end.line - 1, column: lineStarts[prev.piece.end.line] - lineStarts[prev.piece.end.line - 1] - 1 };\n }\n else {\n // \\r\\n\n newEnd = { line: prev.piece.end.line, column: prev.piece.end.column - 1 };\n }\n const prevNewLength = prev.piece.length - 1;\n const prevNewLFCnt = prev.piece.lineFeedCnt - 1;\n prev.piece = new Piece(prev.piece.bufferIndex, prev.piece.start, newEnd, prevNewLFCnt, prevNewLength);\n updateTreeMetadata(this, prev, -1, -1);\n if (prev.piece.length === 0) {\n nodesToDel.push(prev);\n }\n // update nextNode\n let newStart = { line: next.piece.start.line + 1, column: 0 };\n const newLength = next.piece.length - 1;\n const newLineFeedCnt = this.getLineFeedCnt(next.piece.bufferIndex, newStart, next.piece.end);\n next.piece = new Piece(next.piece.bufferIndex, newStart, next.piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, next, -1, -1);\n if (next.piece.length === 0) {\n nodesToDel.push(next);\n }\n // create new piece which contains \\r\\n\n let pieces = this.createNewPieces('\\r\\n');\n this.rbInsertRight(prev, pieces[0]);\n // delete empty nodes\n for (let i = 0; i < nodesToDel.length; i++) {\n rbDelete(this, nodesToDel[i]);\n }\n }\n adjustCarriageReturnFromNext(value, node) {\n if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n let nextNode = node.next();\n if (this.startWithLF(nextNode)) {\n // move `\\n` forward\n value += '\\n';\n if (nextNode.piece.length === 1) {\n rbDelete(this, nextNode);\n }\n else {\n const piece = nextNode.piece;\n const newStart = { line: piece.start.line + 1, column: 0 };\n const newLength = piece.length - 1;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n nextNode.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, nextNode, -1, -1);\n }\n return true;\n }\n }\n return false;\n }\n // #endregion\n // #endregion\n // #region Tree operations\n iterate(node, callback) {\n if (node === SENTINEL) {\n return callback(SENTINEL);\n }\n let leftRet = this.iterate(node.left, callback);\n if (!leftRet) {\n return leftRet;\n }\n return callback(node) && this.iterate(node.right, callback);\n }\n getNodeContent(node) {\n if (node === SENTINEL) {\n return '';\n }\n let buffer = this._buffers[node.piece.bufferIndex];\n let currentContent;\n let piece = node.piece;\n let startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n let endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n currentContent = buffer.buffer.substring(startOffset, endOffset);\n return currentContent;\n }\n getPieceContent(piece) {\n let buffer = this._buffers[piece.bufferIndex];\n let startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n let endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n let currentContent = buffer.buffer.substring(startOffset, endOffset);\n return currentContent;\n }\n /**\n * node node\n * / \\ / \\\n * a b <---- a b\n * /\n * z\n */\n rbInsertRight(node, p) {\n let z = new TreeNode(p, 1 /* Red */);\n z.left = SENTINEL;\n z.right = SENTINEL;\n z.parent = SENTINEL;\n z.size_left = 0;\n z.lf_left = 0;\n let x = this.root;\n if (x === SENTINEL) {\n this.root = z;\n z.color = 0 /* Black */;\n }\n else if (node.right === SENTINEL) {\n node.right = z;\n z.parent = node;\n }\n else {\n let nextNode = leftest(node.right);\n nextNode.left = z;\n z.parent = nextNode;\n }\n fixInsert(this, z);\n return z;\n }\n /**\n * node node\n * / \\ / \\\n * a b ----> a b\n * \\\n * z\n */\n rbInsertLeft(node, p) {\n let z = new TreeNode(p, 1 /* Red */);\n z.left = SENTINEL;\n z.right = SENTINEL;\n z.parent = SENTINEL;\n z.size_left = 0;\n z.lf_left = 0;\n if (this.root === SENTINEL) {\n this.root = z;\n z.color = 0 /* Black */;\n }\n else if (node.left === SENTINEL) {\n node.left = z;\n z.parent = node;\n }\n else {\n let prevNode = righttest(node.left); // a\n prevNode.right = z;\n z.parent = prevNode;\n }\n fixInsert(this, z);\n return z;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../core/range.js';\nimport { ApplyEditsResult } from '../../model.js';\nimport { PieceTreeBase } from './pieceTreeBase.js';\nimport { countEOL } from '../tokensStore.js';\nimport { TextChange } from '../textChange.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class PieceTreeTextBuffer extends Disposable {\n constructor(chunks, BOM, eol, containsRTL, containsUnusualLineTerminators, isBasicASCII, eolNormalized) {\n super();\n this._onDidChangeContent = this._register(new Emitter());\n this._BOM = BOM;\n this._mightContainNonBasicASCII = !isBasicASCII;\n this._mightContainRTL = containsRTL;\n this._mightContainUnusualLineTerminators = containsUnusualLineTerminators;\n this._pieceTree = new PieceTreeBase(chunks, eol, eolNormalized);\n }\n mightContainRTL() {\n return this._mightContainRTL;\n }\n mightContainUnusualLineTerminators() {\n return this._mightContainUnusualLineTerminators;\n }\n resetMightContainUnusualLineTerminators() {\n this._mightContainUnusualLineTerminators = false;\n }\n mightContainNonBasicASCII() {\n return this._mightContainNonBasicASCII;\n }\n getBOM() {\n return this._BOM;\n }\n getEOL() {\n return this._pieceTree.getEOL();\n }\n createSnapshot(preserveBOM) {\n return this._pieceTree.createSnapshot(preserveBOM ? this._BOM : '');\n }\n getOffsetAt(lineNumber, column) {\n return this._pieceTree.getOffsetAt(lineNumber, column);\n }\n getPositionAt(offset) {\n return this._pieceTree.getPositionAt(offset);\n }\n getRangeAt(start, length) {\n let end = start + length;\n const startPosition = this.getPositionAt(start);\n const endPosition = this.getPositionAt(end);\n return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n }\n getValueInRange(range, eol = 0 /* TextDefined */) {\n if (range.isEmpty()) {\n return '';\n }\n const lineEnding = this._getEndOfLine(eol);\n return this._pieceTree.getValueInRange(range, lineEnding);\n }\n getValueLengthInRange(range, eol = 0 /* TextDefined */) {\n if (range.isEmpty()) {\n return 0;\n }\n if (range.startLineNumber === range.endLineNumber) {\n return (range.endColumn - range.startColumn);\n }\n let startOffset = this.getOffsetAt(range.startLineNumber, range.startColumn);\n let endOffset = this.getOffsetAt(range.endLineNumber, range.endColumn);\n return endOffset - startOffset;\n }\n getCharacterCountInRange(range, eol = 0 /* TextDefined */) {\n if (this._mightContainNonBasicASCII) {\n // we must count by iterating\n let result = 0;\n const fromLineNumber = range.startLineNumber;\n const toLineNumber = range.endLineNumber;\n for (let lineNumber = fromLineNumber; lineNumber <= toLineNumber; lineNumber++) {\n const lineContent = this.getLineContent(lineNumber);\n const fromOffset = (lineNumber === fromLineNumber ? range.startColumn - 1 : 0);\n const toOffset = (lineNumber === toLineNumber ? range.endColumn - 1 : lineContent.length);\n for (let offset = fromOffset; offset < toOffset; offset++) {\n if (strings.isHighSurrogate(lineContent.charCodeAt(offset))) {\n result = result + 1;\n offset = offset + 1;\n }\n else {\n result = result + 1;\n }\n }\n }\n result += this._getEndOfLine(eol).length * (toLineNumber - fromLineNumber);\n return result;\n }\n return this.getValueLengthInRange(range, eol);\n }\n getLength() {\n return this._pieceTree.getLength();\n }\n getLineCount() {\n return this._pieceTree.getLineCount();\n }\n getLinesContent() {\n return this._pieceTree.getLinesContent();\n }\n getLineContent(lineNumber) {\n return this._pieceTree.getLineContent(lineNumber);\n }\n getLineCharCode(lineNumber, index) {\n return this._pieceTree.getLineCharCode(lineNumber, index);\n }\n getLineLength(lineNumber) {\n return this._pieceTree.getLineLength(lineNumber);\n }\n getLineFirstNonWhitespaceColumn(lineNumber) {\n const result = strings.firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n if (result === -1) {\n return 0;\n }\n return result + 1;\n }\n getLineLastNonWhitespaceColumn(lineNumber) {\n const result = strings.lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n if (result === -1) {\n return 0;\n }\n return result + 2;\n }\n _getEndOfLine(eol) {\n switch (eol) {\n case 1 /* LF */:\n return '\\n';\n case 2 /* CRLF */:\n return '\\r\\n';\n case 0 /* TextDefined */:\n return this.getEOL();\n default:\n throw new Error('Unknown EOL preference');\n }\n }\n setEOL(newEOL) {\n this._pieceTree.setEOL(newEOL);\n }\n applyEdits(rawOperations, recordTrimAutoWhitespace, computeUndoEdits) {\n let mightContainRTL = this._mightContainRTL;\n let mightContainUnusualLineTerminators = this._mightContainUnusualLineTerminators;\n let mightContainNonBasicASCII = this._mightContainNonBasicASCII;\n let canReduceOperations = true;\n let operations = [];\n for (let i = 0; i < rawOperations.length; i++) {\n let op = rawOperations[i];\n if (canReduceOperations && op._isTracked) {\n canReduceOperations = false;\n }\n let validatedRange = op.range;\n if (op.text) {\n let textMightContainNonBasicASCII = true;\n if (!mightContainNonBasicASCII) {\n textMightContainNonBasicASCII = !strings.isBasicASCII(op.text);\n mightContainNonBasicASCII = textMightContainNonBasicASCII;\n }\n if (!mightContainRTL && textMightContainNonBasicASCII) {\n // check if the new inserted text contains RTL\n mightContainRTL = strings.containsRTL(op.text);\n }\n if (!mightContainUnusualLineTerminators && textMightContainNonBasicASCII) {\n // check if the new inserted text contains unusual line terminators\n mightContainUnusualLineTerminators = strings.containsUnusualLineTerminators(op.text);\n }\n }\n let validText = '';\n let eolCount = 0;\n let firstLineLength = 0;\n let lastLineLength = 0;\n if (op.text) {\n let strEOL;\n [eolCount, firstLineLength, lastLineLength, strEOL] = countEOL(op.text);\n const bufferEOL = this.getEOL();\n const expectedStrEOL = (bufferEOL === '\\r\\n' ? 2 /* CRLF */ : 1 /* LF */);\n if (strEOL === 0 /* Unknown */ || strEOL === expectedStrEOL) {\n validText = op.text;\n }\n else {\n validText = op.text.replace(/\\r\\n|\\r|\\n/g, bufferEOL);\n }\n }\n operations[i] = {\n sortIndex: i,\n identifier: op.identifier || null,\n range: validatedRange,\n rangeOffset: this.getOffsetAt(validatedRange.startLineNumber, validatedRange.startColumn),\n rangeLength: this.getValueLengthInRange(validatedRange),\n text: validText,\n eolCount: eolCount,\n firstLineLength: firstLineLength,\n lastLineLength: lastLineLength,\n forceMoveMarkers: Boolean(op.forceMoveMarkers),\n isAutoWhitespaceEdit: op.isAutoWhitespaceEdit || false\n };\n }\n // Sort operations ascending\n operations.sort(PieceTreeTextBuffer._sortOpsAscending);\n let hasTouchingRanges = false;\n for (let i = 0, count = operations.length - 1; i < count; i++) {\n let rangeEnd = operations[i].range.getEndPosition();\n let nextRangeStart = operations[i + 1].range.getStartPosition();\n if (nextRangeStart.isBeforeOrEqual(rangeEnd)) {\n if (nextRangeStart.isBefore(rangeEnd)) {\n // overlapping ranges\n throw new Error('Overlapping ranges are not allowed!');\n }\n hasTouchingRanges = true;\n }\n }\n if (canReduceOperations) {\n operations = this._reduceOperations(operations);\n }\n // Delta encode operations\n let reverseRanges = (computeUndoEdits || recordTrimAutoWhitespace ? PieceTreeTextBuffer._getInverseEditRanges(operations) : []);\n let newTrimAutoWhitespaceCandidates = [];\n if (recordTrimAutoWhitespace) {\n for (let i = 0; i < operations.length; i++) {\n let op = operations[i];\n let reverseRange = reverseRanges[i];\n if (op.isAutoWhitespaceEdit && op.range.isEmpty()) {\n // Record already the future line numbers that might be auto whitespace removal candidates on next edit\n for (let lineNumber = reverseRange.startLineNumber; lineNumber <= reverseRange.endLineNumber; lineNumber++) {\n let currentLineContent = '';\n if (lineNumber === reverseRange.startLineNumber) {\n currentLineContent = this.getLineContent(op.range.startLineNumber);\n if (strings.firstNonWhitespaceIndex(currentLineContent) !== -1) {\n continue;\n }\n }\n newTrimAutoWhitespaceCandidates.push({ lineNumber: lineNumber, oldContent: currentLineContent });\n }\n }\n }\n }\n let reverseOperations = null;\n if (computeUndoEdits) {\n let reverseRangeDeltaOffset = 0;\n reverseOperations = [];\n for (let i = 0; i < operations.length; i++) {\n const op = operations[i];\n const reverseRange = reverseRanges[i];\n const bufferText = this.getValueInRange(op.range);\n const reverseRangeOffset = op.rangeOffset + reverseRangeDeltaOffset;\n reverseRangeDeltaOffset += (op.text.length - bufferText.length);\n reverseOperations[i] = {\n sortIndex: op.sortIndex,\n identifier: op.identifier,\n range: reverseRange,\n text: bufferText,\n textChange: new TextChange(op.rangeOffset, bufferText, reverseRangeOffset, op.text)\n };\n }\n // Can only sort reverse operations when the order is not significant\n if (!hasTouchingRanges) {\n reverseOperations.sort((a, b) => a.sortIndex - b.sortIndex);\n }\n }\n this._mightContainRTL = mightContainRTL;\n this._mightContainUnusualLineTerminators = mightContainUnusualLineTerminators;\n this._mightContainNonBasicASCII = mightContainNonBasicASCII;\n const contentChanges = this._doApplyEdits(operations);\n let trimAutoWhitespaceLineNumbers = null;\n if (recordTrimAutoWhitespace && newTrimAutoWhitespaceCandidates.length > 0) {\n // sort line numbers auto whitespace removal candidates for next edit descending\n newTrimAutoWhitespaceCandidates.sort((a, b) => b.lineNumber - a.lineNumber);\n trimAutoWhitespaceLineNumbers = [];\n for (let i = 0, len = newTrimAutoWhitespaceCandidates.length; i < len; i++) {\n let lineNumber = newTrimAutoWhitespaceCandidates[i].lineNumber;\n if (i > 0 && newTrimAutoWhitespaceCandidates[i - 1].lineNumber === lineNumber) {\n // Do not have the same line number twice\n continue;\n }\n let prevContent = newTrimAutoWhitespaceCandidates[i].oldContent;\n let lineContent = this.getLineContent(lineNumber);\n if (lineContent.length === 0 || lineContent === prevContent || strings.firstNonWhitespaceIndex(lineContent) !== -1) {\n continue;\n }\n trimAutoWhitespaceLineNumbers.push(lineNumber);\n }\n }\n this._onDidChangeContent.fire();\n return new ApplyEditsResult(reverseOperations, contentChanges, trimAutoWhitespaceLineNumbers);\n }\n /**\n * Transform operations such that they represent the same logic edit,\n * but that they also do not cause OOM crashes.\n */\n _reduceOperations(operations) {\n if (operations.length < 1000) {\n // We know from empirical testing that a thousand edits work fine regardless of their shape.\n return operations;\n }\n // At one point, due to how events are emitted and how each operation is handled,\n // some operations can trigger a high amount of temporary string allocations,\n // that will immediately get edited again.\n // e.g. a formatter inserting ridiculous ammounts of \\n on a model with a single line\n // Therefore, the strategy is to collapse all the operations into a huge single edit operation\n return [this._toSingleEditOperation(operations)];\n }\n _toSingleEditOperation(operations) {\n let forceMoveMarkers = false;\n const firstEditRange = operations[0].range;\n const lastEditRange = operations[operations.length - 1].range;\n const entireEditRange = new Range(firstEditRange.startLineNumber, firstEditRange.startColumn, lastEditRange.endLineNumber, lastEditRange.endColumn);\n let lastEndLineNumber = firstEditRange.startLineNumber;\n let lastEndColumn = firstEditRange.startColumn;\n const result = [];\n for (let i = 0, len = operations.length; i < len; i++) {\n const operation = operations[i];\n const range = operation.range;\n forceMoveMarkers = forceMoveMarkers || operation.forceMoveMarkers;\n // (1) -- Push old text\n result.push(this.getValueInRange(new Range(lastEndLineNumber, lastEndColumn, range.startLineNumber, range.startColumn)));\n // (2) -- Push new text\n if (operation.text.length > 0) {\n result.push(operation.text);\n }\n lastEndLineNumber = range.endLineNumber;\n lastEndColumn = range.endColumn;\n }\n const text = result.join('');\n const [eolCount, firstLineLength, lastLineLength] = countEOL(text);\n return {\n sortIndex: 0,\n identifier: operations[0].identifier,\n range: entireEditRange,\n rangeOffset: this.getOffsetAt(entireEditRange.startLineNumber, entireEditRange.startColumn),\n rangeLength: this.getValueLengthInRange(entireEditRange, 0 /* TextDefined */),\n text: text,\n eolCount: eolCount,\n firstLineLength: firstLineLength,\n lastLineLength: lastLineLength,\n forceMoveMarkers: forceMoveMarkers,\n isAutoWhitespaceEdit: false\n };\n }\n _doApplyEdits(operations) {\n operations.sort(PieceTreeTextBuffer._sortOpsDescending);\n let contentChanges = [];\n // operations are from bottom to top\n for (let i = 0; i < operations.length; i++) {\n let op = operations[i];\n const startLineNumber = op.range.startLineNumber;\n const startColumn = op.range.startColumn;\n const endLineNumber = op.range.endLineNumber;\n const endColumn = op.range.endColumn;\n if (startLineNumber === endLineNumber && startColumn === endColumn && op.text.length === 0) {\n // no-op\n continue;\n }\n if (op.text) {\n // replacement\n this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n this._pieceTree.insert(op.rangeOffset, op.text, true);\n }\n else {\n // deletion\n this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n }\n const contentChangeRange = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n contentChanges.push({\n range: contentChangeRange,\n rangeLength: op.rangeLength,\n text: op.text,\n rangeOffset: op.rangeOffset,\n forceMoveMarkers: op.forceMoveMarkers\n });\n }\n return contentChanges;\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n return this._pieceTree.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n /**\n * Assumes `operations` are validated and sorted ascending\n */\n static _getInverseEditRanges(operations) {\n let result = [];\n let prevOpEndLineNumber = 0;\n let prevOpEndColumn = 0;\n let prevOp = null;\n for (let i = 0, len = operations.length; i < len; i++) {\n let op = operations[i];\n let startLineNumber;\n let startColumn;\n if (prevOp) {\n if (prevOp.range.endLineNumber === op.range.startLineNumber) {\n startLineNumber = prevOpEndLineNumber;\n startColumn = prevOpEndColumn + (op.range.startColumn - prevOp.range.endColumn);\n }\n else {\n startLineNumber = prevOpEndLineNumber + (op.range.startLineNumber - prevOp.range.endLineNumber);\n startColumn = op.range.startColumn;\n }\n }\n else {\n startLineNumber = op.range.startLineNumber;\n startColumn = op.range.startColumn;\n }\n let resultRange;\n if (op.text.length > 0) {\n // the operation inserts something\n const lineCount = op.eolCount + 1;\n if (lineCount === 1) {\n // single line insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn + op.firstLineLength);\n }\n else {\n // multi line insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber + lineCount - 1, op.lastLineLength + 1);\n }\n }\n else {\n // There is nothing to insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn);\n }\n prevOpEndLineNumber = resultRange.endLineNumber;\n prevOpEndColumn = resultRange.endColumn;\n result.push(resultRange);\n prevOp = op;\n }\n return result;\n }\n static _sortOpsAscending(a, b) {\n let r = Range.compareRangesUsingEnds(a.range, b.range);\n if (r === 0) {\n return a.sortIndex - b.sortIndex;\n }\n return r;\n }\n static _sortOpsDescending(a, b) {\n let r = Range.compareRangesUsingEnds(a.range, b.range);\n if (r === 0) {\n return b.sortIndex - a.sortIndex;\n }\n return -r;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { StringBuffer, createLineStarts, createLineStartsFast } from './pieceTreeBase.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer.js';\nexport class PieceTreeTextBufferFactory {\n constructor(_chunks, _bom, _cr, _lf, _crlf, _containsRTL, _containsUnusualLineTerminators, _isBasicASCII, _normalizeEOL) {\n this._chunks = _chunks;\n this._bom = _bom;\n this._cr = _cr;\n this._lf = _lf;\n this._crlf = _crlf;\n this._containsRTL = _containsRTL;\n this._containsUnusualLineTerminators = _containsUnusualLineTerminators;\n this._isBasicASCII = _isBasicASCII;\n this._normalizeEOL = _normalizeEOL;\n }\n _getEOL(defaultEOL) {\n const totalEOLCount = this._cr + this._lf + this._crlf;\n const totalCRCount = this._cr + this._crlf;\n if (totalEOLCount === 0) {\n // This is an empty file or a file with precisely one line\n return (defaultEOL === 1 /* LF */ ? '\\n' : '\\r\\n');\n }\n if (totalCRCount > totalEOLCount / 2) {\n // More than half of the file contains \\r\\n ending lines\n return '\\r\\n';\n }\n // At least one line more ends in \\n\n return '\\n';\n }\n create(defaultEOL) {\n const eol = this._getEOL(defaultEOL);\n let chunks = this._chunks;\n if (this._normalizeEOL &&\n ((eol === '\\r\\n' && (this._cr > 0 || this._lf > 0))\n || (eol === '\\n' && (this._cr > 0 || this._crlf > 0)))) {\n // Normalize pieces\n for (let i = 0, len = chunks.length; i < len; i++) {\n let str = chunks[i].buffer.replace(/\\r\\n|\\r|\\n/g, eol);\n let newLineStart = createLineStartsFast(str);\n chunks[i] = new StringBuffer(str, newLineStart);\n }\n }\n const textBuffer = new PieceTreeTextBuffer(chunks, this._bom, eol, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);\n return { textBuffer: textBuffer, disposable: textBuffer };\n }\n}\nexport class PieceTreeTextBufferBuilder {\n constructor() {\n this.chunks = [];\n this.BOM = '';\n this._hasPreviousChar = false;\n this._previousChar = 0;\n this._tmpLineStarts = [];\n this.cr = 0;\n this.lf = 0;\n this.crlf = 0;\n this.containsRTL = false;\n this.containsUnusualLineTerminators = false;\n this.isBasicASCII = true;\n }\n acceptChunk(chunk) {\n if (chunk.length === 0) {\n return;\n }\n if (this.chunks.length === 0) {\n if (strings.startsWithUTF8BOM(chunk)) {\n this.BOM = strings.UTF8_BOM_CHARACTER;\n chunk = chunk.substr(1);\n }\n }\n const lastChar = chunk.charCodeAt(chunk.length - 1);\n if (lastChar === 13 /* CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n // last character is \\r or a high surrogate => keep it back\n this._acceptChunk1(chunk.substr(0, chunk.length - 1), false);\n this._hasPreviousChar = true;\n this._previousChar = lastChar;\n }\n else {\n this._acceptChunk1(chunk, false);\n this._hasPreviousChar = false;\n this._previousChar = lastChar;\n }\n }\n _acceptChunk1(chunk, allowEmptyStrings) {\n if (!allowEmptyStrings && chunk.length === 0) {\n // Nothing to do\n return;\n }\n if (this._hasPreviousChar) {\n this._acceptChunk2(String.fromCharCode(this._previousChar) + chunk);\n }\n else {\n this._acceptChunk2(chunk);\n }\n }\n _acceptChunk2(chunk) {\n const lineStarts = createLineStarts(this._tmpLineStarts, chunk);\n this.chunks.push(new StringBuffer(chunk, lineStarts.lineStarts));\n this.cr += lineStarts.cr;\n this.lf += lineStarts.lf;\n this.crlf += lineStarts.crlf;\n if (this.isBasicASCII) {\n this.isBasicASCII = lineStarts.isBasicASCII;\n }\n if (!this.isBasicASCII && !this.containsRTL) {\n // No need to check if it is basic ASCII\n this.containsRTL = strings.containsRTL(chunk);\n }\n if (!this.isBasicASCII && !this.containsUnusualLineTerminators) {\n // No need to check if it is basic ASCII\n this.containsUnusualLineTerminators = strings.containsUnusualLineTerminators(chunk);\n }\n }\n finish(normalizeEOL = true) {\n this._finish();\n return new PieceTreeTextBufferFactory(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, normalizeEOL);\n }\n _finish() {\n if (this.chunks.length === 0) {\n this._acceptChunk1('', true);\n }\n if (this._hasPreviousChar) {\n this._hasPreviousChar = false;\n // recreate last chunk\n let lastChunk = this.chunks[this.chunks.length - 1];\n lastChunk.buffer += String.fromCharCode(this._previousChar);\n let newLineStarts = createLineStartsFast(lastChunk.buffer);\n lastChunk.lineStarts = newLineStarts;\n if (this._previousChar === 13 /* CarriageReturn */) {\n this.cr++;\n }\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { LineTokens } from '../core/lineTokens.js';\nimport { Position } from '../core/position.js';\nimport { TokenizationRegistry } from '../modes.js';\nimport { nullTokenize2 } from '../modes/nullMode.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { MultilineTokensBuilder, countEOL } from './tokensStore.js';\nimport * as platform from '../../../base/common/platform.js';\nexport class TokenizationStateStore {\n constructor() {\n this._beginState = [];\n this._valid = [];\n this._len = 0;\n this._invalidLineStartIndex = 0;\n }\n _reset(initialState) {\n this._beginState = [];\n this._valid = [];\n this._len = 0;\n this._invalidLineStartIndex = 0;\n if (initialState) {\n this._setBeginState(0, initialState);\n }\n }\n flush(initialState) {\n this._reset(initialState);\n }\n get invalidLineStartIndex() {\n return this._invalidLineStartIndex;\n }\n _invalidateLine(lineIndex) {\n if (lineIndex < this._len) {\n this._valid[lineIndex] = false;\n }\n if (lineIndex < this._invalidLineStartIndex) {\n this._invalidLineStartIndex = lineIndex;\n }\n }\n _isValid(lineIndex) {\n if (lineIndex < this._len) {\n return this._valid[lineIndex];\n }\n return false;\n }\n getBeginState(lineIndex) {\n if (lineIndex < this._len) {\n return this._beginState[lineIndex];\n }\n return null;\n }\n _ensureLine(lineIndex) {\n while (lineIndex >= this._len) {\n this._beginState[this._len] = null;\n this._valid[this._len] = false;\n this._len++;\n }\n }\n _deleteLines(start, deleteCount) {\n if (deleteCount === 0) {\n return;\n }\n if (start + deleteCount > this._len) {\n deleteCount = this._len - start;\n }\n this._beginState.splice(start, deleteCount);\n this._valid.splice(start, deleteCount);\n this._len -= deleteCount;\n }\n _insertLines(insertIndex, insertCount) {\n if (insertCount === 0) {\n return;\n }\n const beginState = [];\n const valid = [];\n for (let i = 0; i < insertCount; i++) {\n beginState[i] = null;\n valid[i] = false;\n }\n this._beginState = arrays.arrayInsert(this._beginState, insertIndex, beginState);\n this._valid = arrays.arrayInsert(this._valid, insertIndex, valid);\n this._len += insertCount;\n }\n _setValid(lineIndex, valid) {\n this._ensureLine(lineIndex);\n this._valid[lineIndex] = valid;\n }\n _setBeginState(lineIndex, beginState) {\n this._ensureLine(lineIndex);\n this._beginState[lineIndex] = beginState;\n }\n setEndState(linesLength, lineIndex, endState) {\n this._setValid(lineIndex, true);\n this._invalidLineStartIndex = lineIndex + 1;\n // Check if this was the last line\n if (lineIndex === linesLength - 1) {\n return;\n }\n // Check if the end state has changed\n const previousEndState = this.getBeginState(lineIndex + 1);\n if (previousEndState === null || !endState.equals(previousEndState)) {\n this._setBeginState(lineIndex + 1, endState);\n this._invalidateLine(lineIndex + 1);\n return;\n }\n // Perhaps we can skip tokenizing some lines...\n let i = lineIndex + 1;\n while (i < linesLength) {\n if (!this._isValid(i)) {\n break;\n }\n i++;\n }\n this._invalidLineStartIndex = i;\n }\n setFakeTokens(lineIndex) {\n this._setValid(lineIndex, false);\n }\n //#region Editing\n applyEdits(range, eolCount) {\n const deletingLinesCnt = range.endLineNumber - range.startLineNumber;\n const insertingLinesCnt = eolCount;\n const editingLinesCnt = Math.min(deletingLinesCnt, insertingLinesCnt);\n for (let j = editingLinesCnt; j >= 0; j--) {\n this._invalidateLine(range.startLineNumber + j - 1);\n }\n this._acceptDeleteRange(range);\n this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount);\n }\n _acceptDeleteRange(range) {\n const firstLineIndex = range.startLineNumber - 1;\n if (firstLineIndex >= this._len) {\n return;\n }\n this._deleteLines(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n }\n _acceptInsertText(position, eolCount) {\n const lineIndex = position.lineNumber - 1;\n if (lineIndex >= this._len) {\n return;\n }\n this._insertLines(position.lineNumber, eolCount);\n }\n}\nexport class TextModelTokenization extends Disposable {\n constructor(_textModel, _languageIdCodec) {\n super();\n this._textModel = _textModel;\n this._languageIdCodec = _languageIdCodec;\n this._isDisposed = false;\n this._tokenizationStateStore = new TokenizationStateStore();\n this._tokenizationSupport = null;\n this._register(TokenizationRegistry.onDidChange((e) => {\n const languageId = this._textModel.getLanguageId();\n if (e.changedLanguages.indexOf(languageId) === -1) {\n return;\n }\n this._resetTokenizationState();\n this._textModel.clearTokens();\n }));\n this._register(this._textModel.onDidChangeContentFast((e) => {\n if (e.isFlush) {\n this._resetTokenizationState();\n return;\n }\n for (let i = 0, len = e.changes.length; i < len; i++) {\n const change = e.changes[i];\n const [eolCount] = countEOL(change.text);\n this._tokenizationStateStore.applyEdits(change.range, eolCount);\n }\n this._beginBackgroundTokenization();\n }));\n this._register(this._textModel.onDidChangeAttached(() => {\n this._beginBackgroundTokenization();\n }));\n this._register(this._textModel.onDidChangeLanguage(() => {\n this._resetTokenizationState();\n this._textModel.clearTokens();\n }));\n this._resetTokenizationState();\n }\n dispose() {\n this._isDisposed = true;\n super.dispose();\n }\n _resetTokenizationState() {\n const [tokenizationSupport, initialState] = initializeTokenization(this._textModel);\n this._tokenizationSupport = tokenizationSupport;\n this._tokenizationStateStore.flush(initialState);\n this._beginBackgroundTokenization();\n }\n _beginBackgroundTokenization() {\n if (this._textModel.isAttachedToEditor() && this._hasLinesToTokenize()) {\n platform.setImmediate(() => {\n if (this._isDisposed) {\n // disposed in the meantime\n return;\n }\n this._revalidateTokensNow();\n });\n }\n }\n _revalidateTokensNow() {\n const textModelLastLineNumber = this._textModel.getLineCount();\n const MAX_ALLOWED_TIME = 1;\n const builder = new MultilineTokensBuilder();\n const sw = StopWatch.create(false);\n let tokenizedLineNumber = -1;\n while (this._hasLinesToTokenize()) {\n if (sw.elapsed() > MAX_ALLOWED_TIME) {\n // Stop if MAX_ALLOWED_TIME is reached\n break;\n }\n tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);\n if (tokenizedLineNumber >= textModelLastLineNumber) {\n break;\n }\n }\n this._beginBackgroundTokenization();\n this._textModel.setTokens(builder.tokens, !this._hasLinesToTokenize());\n }\n tokenizeViewport(startLineNumber, endLineNumber) {\n const builder = new MultilineTokensBuilder();\n this._tokenizeViewport(builder, startLineNumber, endLineNumber);\n this._textModel.setTokens(builder.tokens, !this._hasLinesToTokenize());\n }\n reset() {\n this._resetTokenizationState();\n this._textModel.clearTokens();\n }\n forceTokenization(lineNumber) {\n const builder = new MultilineTokensBuilder();\n this._updateTokensUntilLine(builder, lineNumber);\n this._textModel.setTokens(builder.tokens, !this._hasLinesToTokenize());\n }\n isCheapToTokenize(lineNumber) {\n if (!this._tokenizationSupport) {\n return true;\n }\n const firstInvalidLineNumber = this._tokenizationStateStore.invalidLineStartIndex + 1;\n if (lineNumber > firstInvalidLineNumber) {\n return false;\n }\n if (lineNumber < firstInvalidLineNumber) {\n return true;\n }\n if (this._textModel.getLineLength(lineNumber) < 2048 /* CHEAP_TOKENIZATION_LENGTH_LIMIT */) {\n return true;\n }\n return false;\n }\n _hasLinesToTokenize() {\n if (!this._tokenizationSupport) {\n return false;\n }\n return (this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount());\n }\n _tokenizeOneInvalidLine(builder) {\n if (!this._hasLinesToTokenize()) {\n return this._textModel.getLineCount() + 1;\n }\n const lineNumber = this._tokenizationStateStore.invalidLineStartIndex + 1;\n this._updateTokensUntilLine(builder, lineNumber);\n return lineNumber;\n }\n _updateTokensUntilLine(builder, lineNumber) {\n if (!this._tokenizationSupport) {\n return;\n }\n const languageId = this._textModel.getLanguageId();\n const linesLength = this._textModel.getLineCount();\n const endLineIndex = lineNumber - 1;\n // Validate all states up to and including endLineIndex\n for (let lineIndex = this._tokenizationStateStore.invalidLineStartIndex; lineIndex <= endLineIndex; lineIndex++) {\n const text = this._textModel.getLineContent(lineIndex + 1);\n const lineStartState = this._tokenizationStateStore.getBeginState(lineIndex);\n const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationSupport, text, true, lineStartState);\n builder.add(lineIndex + 1, r.tokens);\n this._tokenizationStateStore.setEndState(linesLength, lineIndex, r.endState);\n lineIndex = this._tokenizationStateStore.invalidLineStartIndex - 1; // -1 because the outer loop increments it\n }\n }\n _tokenizeViewport(builder, startLineNumber, endLineNumber) {\n if (!this._tokenizationSupport) {\n // nothing to do\n return;\n }\n if (endLineNumber <= this._tokenizationStateStore.invalidLineStartIndex) {\n // nothing to do\n return;\n }\n if (startLineNumber <= this._tokenizationStateStore.invalidLineStartIndex) {\n // tokenization has reached the viewport start...\n this._updateTokensUntilLine(builder, endLineNumber);\n return;\n }\n let nonWhitespaceColumn = this._textModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n const fakeLines = [];\n let initialState = null;\n for (let i = startLineNumber - 1; nonWhitespaceColumn > 1 && i >= 1; i--) {\n const newNonWhitespaceIndex = this._textModel.getLineFirstNonWhitespaceColumn(i);\n if (newNonWhitespaceIndex === 0) {\n continue;\n }\n if (newNonWhitespaceIndex < nonWhitespaceColumn) {\n initialState = this._tokenizationStateStore.getBeginState(i - 1);\n if (initialState) {\n break;\n }\n fakeLines.push(this._textModel.getLineContent(i));\n nonWhitespaceColumn = newNonWhitespaceIndex;\n }\n }\n if (!initialState) {\n initialState = this._tokenizationSupport.getInitialState();\n }\n const languageId = this._textModel.getLanguageId();\n let state = initialState;\n for (let i = fakeLines.length - 1; i >= 0; i--) {\n const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationSupport, fakeLines[i], false, state);\n state = r.endState;\n }\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n const text = this._textModel.getLineContent(lineNumber);\n const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationSupport, text, true, state);\n builder.add(lineNumber, r.tokens);\n this._tokenizationStateStore.setFakeTokens(lineNumber - 1);\n state = r.endState;\n }\n }\n}\nfunction initializeTokenization(textModel) {\n const languageId = textModel.getLanguageId();\n let tokenizationSupport = (textModel.isTooLargeForTokenization()\n ? null\n : TokenizationRegistry.get(languageId));\n let initialState = null;\n if (tokenizationSupport) {\n try {\n initialState = tokenizationSupport.getInitialState();\n }\n catch (e) {\n onUnexpectedError(e);\n tokenizationSupport = null;\n }\n }\n return [tokenizationSupport, initialState];\n}\nfunction safeTokenize(languageIdCodec, languageId, tokenizationSupport, text, hasEOL, state) {\n let r = null;\n if (tokenizationSupport) {\n try {\n r = tokenizationSupport.tokenize2(text, hasEOL, state.clone(), 0);\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n if (!r) {\n r = nullTokenize2(languageIdCodec.encodeLanguageId(languageId), text, state, 0);\n }\n LineTokens.convertToEndOffset(r.tokens, text.length);\n return r;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class BracketInfo {\n constructor(range, \n /** 0-based level */\n nestingLevel, isInvalid) {\n this.range = range;\n this.nestingLevel = nestingLevel;\n this.isInvalid = isInvalid;\n }\n}\nexport class BracketPairInfo {\n constructor(range, openingBracketRange, closingBracketRange, \n /**\n * 0-based\n */\n nestingLevel) {\n this.range = range;\n this.openingBracketRange = openingBracketRange;\n this.closingBracketRange = closingBracketRange;\n this.nestingLevel = nestingLevel;\n }\n}\nexport class BracketPairWithMinIndentationInfo extends BracketPairInfo {\n constructor(range, openingBracketRange, closingBracketRange, \n /**\n * 0-based\n */\n nestingLevel, \n /**\n * -1 if not requested, otherwise the size of the minimum indentation in the bracket pair in terms of visible columns.\n */\n minVisibleColumnIndentation) {\n super(range, openingBracketRange, closingBracketRange, nestingLevel);\n this.minVisibleColumnIndentation = minVisibleColumnIndentation;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { splitLines } from '../../../../../base/common/strings.js';\nimport { Range } from '../../../core/range.js';\n/**\n * Represents a non-negative length in terms of line and column count.\n * Prefer using {@link Length} for performance reasons.\n*/\nexport class LengthObj {\n constructor(lineCount, columnCount) {\n this.lineCount = lineCount;\n this.columnCount = columnCount;\n }\n toString() {\n return `${this.lineCount},${this.columnCount}`;\n }\n}\n/**\n * The end must be greater than or equal to the start.\n*/\nexport function lengthDiff(startLineCount, startColumnCount, endLineCount, endColumnCount) {\n return (startLineCount !== endLineCount)\n ? toLength(endLineCount - startLineCount, endColumnCount)\n : toLength(0, endColumnCount - startColumnCount);\n}\nexport const lengthZero = 0;\nexport function lengthIsZero(length) {\n return length === 0;\n}\n/*\n * We have 52 bits available in a JS number.\n * We use the upper 26 bits to store the line and the lower 26 bits to store the column.\n *\n * Set boolean to `true` when debugging, so that debugging is easier.\n */\nconst factor = /* is debug: */ false ? 100000 : Math.pow(2, 26);\nexport function toLength(lineCount, columnCount) {\n // llllllllllllllllllllllllllcccccccccccccccccccccccccc (52 bits)\n // line count (26 bits) column count (26 bits)\n // If there is no overflow (all values/sums below 2^26 = 67108864),\n // we have `toLength(lns1, cols1) + toLength(lns2, cols2) = toLength(lns1 + lns2, cols1 + cols2)`.\n return (lineCount * factor + columnCount);\n}\nexport function lengthToObj(length) {\n const l = length;\n const lineCount = Math.floor(l / factor);\n const columnCount = l - lineCount * factor;\n return new LengthObj(lineCount, columnCount);\n}\nexport function lengthGetLineCount(length) {\n return Math.floor(length / factor);\n}\n/**\n * Returns the amount of columns of the given length, assuming that it does not span any line.\n*/\nexport function lengthGetColumnCountIfZeroLineCount(length) {\n return length;\n}\nexport function lengthAdd(l1, l2) {\n return ((l2 < factor)\n ? (l1 + l2) // l2 is the amount of columns (zero line count). Keep the column count from l1.\n : (l1 - (l1 % factor) + l2)); // l1 - (l1 % factor) equals toLength(l1.lineCount, 0)\n}\n/**\n * Returns a non negative length `result` such that `lengthAdd(length1, result) = length2`, or zero if such length does not exist.\n */\nexport function lengthDiffNonNegative(length1, length2) {\n const l1 = length1;\n const l2 = length2;\n const diff = l2 - l1;\n if (diff <= 0) {\n // line-count of length1 is higher than line-count of length2\n // or they are equal and column-count of length1 is higher than column-count of length2\n return lengthZero;\n }\n const lineCount1 = Math.floor(l1 / factor);\n const lineCount2 = Math.floor(l2 / factor);\n const colCount2 = l2 - lineCount2 * factor;\n if (lineCount1 === lineCount2) {\n const colCount1 = l1 - lineCount1 * factor;\n return toLength(0, colCount2 - colCount1);\n }\n else {\n return toLength(lineCount2 - lineCount1, colCount2);\n }\n}\nexport function lengthLessThan(length1, length2) {\n // First, compare line counts, then column counts.\n return length1 < length2;\n}\nexport function lengthLessThanEqual(length1, length2) {\n return length1 <= length2;\n}\nexport function lengthGreaterThanEqual(length1, length2) {\n return length1 >= length2;\n}\nexport function positionToLength(position) {\n return toLength(position.lineNumber - 1, position.column - 1);\n}\nexport function lengthsToRange(lengthStart, lengthEnd) {\n const l = lengthStart;\n const lineCount = Math.floor(l / factor);\n const colCount = l - lineCount * factor;\n const l2 = lengthEnd;\n const lineCount2 = Math.floor(l2 / factor);\n const colCount2 = l2 - lineCount2 * factor;\n return new Range(lineCount + 1, colCount + 1, lineCount2 + 1, colCount2 + 1);\n}\nexport function lengthOfString(str) {\n const lines = splitLines(str);\n return toLength(lines.length - 1, lines[lines.length - 1].length);\n}\n/**\n * Computes a numeric hash of the given length.\n*/\nexport function lengthHash(length) {\n return length;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { lengthAdd, lengthDiffNonNegative, lengthLessThanEqual, lengthToObj, toLength } from './length.js';\nexport class TextEditInfo {\n constructor(startOffset, endOffset, newLength) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.newLength = newLength;\n }\n}\nexport class BeforeEditPositionMapper {\n /**\n * @param edits Must be sorted by offset in ascending order.\n */\n constructor(edits, documentLength) {\n this.documentLength = documentLength;\n this.nextEditIdx = 0;\n this.deltaOldToNewLineCount = 0;\n this.deltaOldToNewColumnCount = 0;\n this.deltaLineIdxInOld = -1;\n this.edits = edits.map(edit => TextEditInfoCache.from(edit));\n }\n /**\n * @param offset Must be equal to or greater than the last offset this method has been called with.\n */\n getOffsetBeforeChange(offset) {\n this.adjustNextEdit(offset);\n return this.translateCurToOld(offset);\n }\n /**\n * @param offset Must be equal to or greater than the last offset this method has been called with.\n */\n getDistanceToNextChange(offset) {\n this.adjustNextEdit(offset);\n const nextEdit = this.edits[this.nextEditIdx];\n const nextChangeOffset = nextEdit ? this.translateOldToCur(nextEdit.offsetObj) : this.documentLength;\n return lengthDiffNonNegative(offset, nextChangeOffset);\n }\n translateOldToCur(oldOffsetObj) {\n if (oldOffsetObj.lineCount === this.deltaLineIdxInOld) {\n return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount + this.deltaOldToNewColumnCount);\n }\n else {\n return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount);\n }\n }\n translateCurToOld(newOffset) {\n const offsetObj = lengthToObj(newOffset);\n if (offsetObj.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld) {\n return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount - this.deltaOldToNewColumnCount);\n }\n else {\n return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount);\n }\n }\n adjustNextEdit(offset) {\n while (this.nextEditIdx < this.edits.length) {\n const nextEdit = this.edits[this.nextEditIdx];\n // After applying the edit, what is its end offset (considering all previous edits)?\n const nextEditEndOffsetInCur = this.translateOldToCur(nextEdit.endOffsetAfterObj);\n if (lengthLessThanEqual(nextEditEndOffsetInCur, offset)) {\n // We are after the edit, skip it\n this.nextEditIdx++;\n const nextEditEndOffsetInCurObj = lengthToObj(nextEditEndOffsetInCur);\n // Before applying the edit, what is its end offset (considering all previous edits)?\n const nextEditEndOffsetBeforeInCurObj = lengthToObj(this.translateOldToCur(nextEdit.endOffsetBeforeObj));\n const lineDelta = nextEditEndOffsetInCurObj.lineCount - nextEditEndOffsetBeforeInCurObj.lineCount;\n this.deltaOldToNewLineCount += lineDelta;\n const previousColumnDelta = this.deltaLineIdxInOld === nextEdit.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0;\n const columnDelta = nextEditEndOffsetInCurObj.columnCount - nextEditEndOffsetBeforeInCurObj.columnCount;\n this.deltaOldToNewColumnCount = previousColumnDelta + columnDelta;\n this.deltaLineIdxInOld = nextEdit.endOffsetBeforeObj.lineCount;\n }\n else {\n // We are in or before the edit.\n break;\n }\n }\n }\n}\nclass TextEditInfoCache {\n constructor(startOffset, endOffset, textLength) {\n this.endOffsetBeforeObj = lengthToObj(endOffset);\n this.endOffsetAfterObj = lengthToObj(lengthAdd(startOffset, textLength));\n this.offsetObj = lengthToObj(startOffset);\n }\n static from(edit) {\n return new TextEditInfoCache(edit.startOffset, edit.endOffset, edit.newLength);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst emptyArr = new Array();\n/**\n * Represents an immutable set that works best for a small number of elements (less than 32).\n * It uses bits to encode element membership efficiently.\n*/\nexport class SmallImmutableSet {\n constructor(items, additionalItems) {\n this.items = items;\n this.additionalItems = additionalItems;\n }\n static create(items, additionalItems) {\n if (items <= 128 && additionalItems.length === 0) {\n // We create a cache of 128=2^7 elements to cover all sets with up to 7 (dense) elements.\n let cached = SmallImmutableSet.cache[items];\n if (!cached) {\n cached = new SmallImmutableSet(items, additionalItems);\n SmallImmutableSet.cache[items] = cached;\n }\n return cached;\n }\n return new SmallImmutableSet(items, additionalItems);\n }\n static getEmpty() {\n return this.empty;\n }\n add(value, keyProvider) {\n const key = keyProvider.getKey(value);\n let idx = key >> 5; // divided by 32\n if (idx === 0) {\n // fast path\n const newItem = (1 << key) | this.items;\n if (newItem === this.items) {\n return this;\n }\n return SmallImmutableSet.create(newItem, this.additionalItems);\n }\n idx--;\n const newItems = this.additionalItems.slice(0);\n while (newItems.length < idx) {\n newItems.push(0);\n }\n newItems[idx] |= 1 << (key & 31);\n return SmallImmutableSet.create(this.items, newItems);\n }\n merge(other) {\n const merged = this.items | other.items;\n if (this.additionalItems === emptyArr && other.additionalItems === emptyArr) {\n // fast path\n if (merged === this.items) {\n return this;\n }\n if (merged === other.items) {\n return other;\n }\n return SmallImmutableSet.create(merged, emptyArr);\n }\n // This can be optimized, but it's not a common case\n const newItems = new Array();\n for (let i = 0; i < Math.max(this.additionalItems.length, other.additionalItems.length); i++) {\n const item1 = this.additionalItems[i] || 0;\n const item2 = other.additionalItems[i] || 0;\n newItems.push(item1 | item2);\n }\n return SmallImmutableSet.create(merged, newItems);\n }\n intersects(other) {\n if ((this.items & other.items) !== 0) {\n return true;\n }\n for (let i = 0; i < Math.min(this.additionalItems.length, other.additionalItems.length); i++) {\n if ((this.additionalItems[i] & other.additionalItems[i]) !== 0) {\n return true;\n }\n }\n return false;\n }\n}\nSmallImmutableSet.cache = new Array(129);\nSmallImmutableSet.empty = SmallImmutableSet.create(0, emptyArr);\nexport const identityKeyProvider = {\n getKey(value) {\n return value;\n }\n};\n/**\n * Assigns values a unique incrementing key.\n*/\nexport class DenseKeyProvider {\n constructor() {\n this.items = new Map();\n }\n getKey(value) {\n let existing = this.items.get(value);\n if (existing === undefined) {\n existing = this.items.size;\n this.items.set(value, existing);\n }\n return existing;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CursorColumns } from '../../../controller/cursorColumns.js';\nimport { lengthAdd, lengthGetLineCount, lengthHash, lengthToObj, lengthZero } from './length.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\n/**\n * The base implementation for all AST nodes.\n*/\nclass BaseAstNode {\n constructor(length) {\n this._length = length;\n }\n /**\n * The length of the entire node, which should equal the sum of lengths of all children.\n */\n get length() {\n return this._length;\n }\n}\n/**\n * Represents a bracket pair including its child (e.g. `{ ... }`).\n * Might be unclosed.\n * Immutable, if all children are immutable.\n*/\nexport class PairAstNode extends BaseAstNode {\n constructor(length, openingBracket, child, closingBracket, missingOpeningBracketIds) {\n super(length);\n this.openingBracket = openingBracket;\n this.child = child;\n this.closingBracket = closingBracket;\n this.missingOpeningBracketIds = missingOpeningBracketIds;\n }\n static create(openingBracket, child, closingBracket) {\n let length = openingBracket.length;\n if (child) {\n length = lengthAdd(length, child.length);\n }\n if (closingBracket) {\n length = lengthAdd(length, closingBracket.length);\n }\n return new PairAstNode(length, openingBracket, child, closingBracket, child ? child.missingOpeningBracketIds : SmallImmutableSet.getEmpty());\n }\n get kind() {\n return 2 /* Pair */;\n }\n get listHeight() {\n return 0;\n }\n get childrenLength() {\n return 3;\n }\n getChild(idx) {\n switch (idx) {\n case 0: return this.openingBracket;\n case 1: return this.child;\n case 2: return this.closingBracket;\n }\n throw new Error('Invalid child index');\n }\n /**\n * Avoid using this property, it allocates an array!\n */\n get children() {\n const result = new Array();\n result.push(this.openingBracket);\n if (this.child) {\n result.push(this.child);\n }\n if (this.closingBracket) {\n result.push(this.closingBracket);\n }\n return result;\n }\n canBeReused(openBracketIds) {\n if (this.closingBracket === null) {\n // Unclosed pair ast nodes only\n // end at the end of the document\n // or when a parent node is closed.\n // This could be improved:\n // Only return false if some next token is neither \"undefined\" nor a bracket that closes a parent.\n return false;\n }\n if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n return false;\n }\n return true;\n }\n deepClone() {\n return new PairAstNode(this.length, this.openingBracket.deepClone(), this.child && this.child.deepClone(), this.closingBracket && this.closingBracket.deepClone(), this.missingOpeningBracketIds);\n }\n computeMinIndentation(offset, textModel) {\n return this.child ? this.child.computeMinIndentation(lengthAdd(offset, this.openingBracket.length), textModel) : Number.MAX_SAFE_INTEGER;\n }\n}\nexport class ListAstNode extends BaseAstNode {\n /**\n * Use ListAstNode.create.\n */\n constructor(length, listHeight, _missingOpeningBracketIds) {\n super(length);\n this.listHeight = listHeight;\n this._missingOpeningBracketIds = _missingOpeningBracketIds;\n this.cachedMinIndentation = -1;\n }\n /**\n * This method uses more memory-efficient list nodes that can only store 2 or 3 children.\n */\n static create23(item1, item2, item3, immutable = false) {\n let length = item1.length;\n let missingBracketIds = item1.missingOpeningBracketIds;\n if (item1.listHeight !== item2.listHeight) {\n throw new Error('Invalid list heights');\n }\n length = lengthAdd(length, item2.length);\n missingBracketIds = missingBracketIds.merge(item2.missingOpeningBracketIds);\n if (item3) {\n if (item1.listHeight !== item3.listHeight) {\n throw new Error('Invalid list heights');\n }\n length = lengthAdd(length, item3.length);\n missingBracketIds = missingBracketIds.merge(item3.missingOpeningBracketIds);\n }\n return immutable\n ? new Immutable23ListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds)\n : new TwoThreeListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds);\n }\n static getEmpty() {\n return new ImmutableArrayListAstNode(lengthZero, 0, [], SmallImmutableSet.getEmpty());\n }\n get kind() {\n return 4 /* List */;\n }\n get missingOpeningBracketIds() {\n return this._missingOpeningBracketIds;\n }\n throwIfImmutable() {\n // NOOP\n }\n makeLastElementMutable() {\n this.throwIfImmutable();\n const childCount = this.childrenLength;\n if (childCount === 0) {\n return undefined;\n }\n const lastChild = this.getChild(childCount - 1);\n const mutable = lastChild.kind === 4 /* List */ ? lastChild.toMutable() : lastChild;\n if (lastChild !== mutable) {\n this.setChild(childCount - 1, mutable);\n }\n return mutable;\n }\n makeFirstElementMutable() {\n this.throwIfImmutable();\n const childCount = this.childrenLength;\n if (childCount === 0) {\n return undefined;\n }\n const firstChild = this.getChild(0);\n const mutable = firstChild.kind === 4 /* List */ ? firstChild.toMutable() : firstChild;\n if (firstChild !== mutable) {\n this.setChild(0, mutable);\n }\n return mutable;\n }\n canBeReused(openBracketIds) {\n if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n return false;\n }\n let lastChild = this;\n let lastLength;\n while (lastChild.kind === 4 /* List */ && (lastLength = lastChild.childrenLength) > 0) {\n lastChild = lastChild.getChild(lastLength - 1);\n }\n return lastChild.canBeReused(openBracketIds);\n }\n handleChildrenChanged() {\n this.throwIfImmutable();\n const count = this.childrenLength;\n let length = this.getChild(0).length;\n let unopenedBrackets = this.getChild(0).missingOpeningBracketIds;\n for (let i = 1; i < count; i++) {\n const child = this.getChild(i);\n length = lengthAdd(length, child.length);\n unopenedBrackets = unopenedBrackets.merge(child.missingOpeningBracketIds);\n }\n this._length = length;\n this._missingOpeningBracketIds = unopenedBrackets;\n this.cachedMinIndentation = -1;\n }\n computeMinIndentation(offset, textModel) {\n if (this.cachedMinIndentation !== -1) {\n return this.cachedMinIndentation;\n }\n let minIndentation = Number.MAX_SAFE_INTEGER;\n let childOffset = offset;\n for (let i = 0; i < this.childrenLength; i++) {\n const child = this.getChild(i);\n if (child) {\n minIndentation = Math.min(minIndentation, child.computeMinIndentation(childOffset, textModel));\n childOffset = lengthAdd(childOffset, child.length);\n }\n }\n this.cachedMinIndentation = minIndentation;\n return minIndentation;\n }\n}\nclass TwoThreeListAstNode extends ListAstNode {\n constructor(length, listHeight, _item1, _item2, _item3, missingOpeningBracketIds) {\n super(length, listHeight, missingOpeningBracketIds);\n this._item1 = _item1;\n this._item2 = _item2;\n this._item3 = _item3;\n }\n get childrenLength() {\n return this._item3 !== null ? 3 : 2;\n }\n getChild(idx) {\n switch (idx) {\n case 0: return this._item1;\n case 1: return this._item2;\n case 2: return this._item3;\n }\n throw new Error('Invalid child index');\n }\n setChild(idx, node) {\n switch (idx) {\n case 0:\n this._item1 = node;\n return;\n case 1:\n this._item2 = node;\n return;\n case 2:\n this._item3 = node;\n return;\n }\n throw new Error('Invalid child index');\n }\n get children() {\n return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2];\n }\n get item1() {\n return this._item1;\n }\n get item2() {\n return this._item2;\n }\n get item3() {\n return this._item3;\n }\n deepClone() {\n return new TwoThreeListAstNode(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds);\n }\n appendChildOfSameHeight(node) {\n if (this._item3) {\n throw new Error('Cannot append to a full (2,3) tree node');\n }\n this.throwIfImmutable();\n this._item3 = node;\n this.handleChildrenChanged();\n }\n unappendChild() {\n if (!this._item3) {\n throw new Error('Cannot remove from a non-full (2,3) tree node');\n }\n this.throwIfImmutable();\n const result = this._item3;\n this._item3 = null;\n this.handleChildrenChanged();\n return result;\n }\n prependChildOfSameHeight(node) {\n if (this._item3) {\n throw new Error('Cannot prepend to a full (2,3) tree node');\n }\n this.throwIfImmutable();\n this._item3 = this._item2;\n this._item2 = this._item1;\n this._item1 = node;\n this.handleChildrenChanged();\n }\n unprependChild() {\n if (!this._item3) {\n throw new Error('Cannot remove from a non-full (2,3) tree node');\n }\n this.throwIfImmutable();\n const result = this._item1;\n this._item1 = this._item2;\n this._item2 = this._item3;\n this._item3 = null;\n this.handleChildrenChanged();\n return result;\n }\n toMutable() {\n return this;\n }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass Immutable23ListAstNode extends TwoThreeListAstNode {\n toMutable() {\n return new TwoThreeListAstNode(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds);\n }\n throwIfImmutable() {\n throw new Error('this instance is immutable');\n }\n}\n/**\n * For debugging.\n*/\nclass ArrayListAstNode extends ListAstNode {\n constructor(length, listHeight, _children, missingOpeningBracketIds) {\n super(length, listHeight, missingOpeningBracketIds);\n this._children = _children;\n }\n get childrenLength() {\n return this._children.length;\n }\n getChild(idx) {\n return this._children[idx];\n }\n setChild(idx, child) {\n this._children[idx] = child;\n }\n get children() {\n return this._children;\n }\n deepClone() {\n const children = new Array(this._children.length);\n for (let i = 0; i < this._children.length; i++) {\n children[i] = this._children[i].deepClone();\n }\n return new ArrayListAstNode(this.length, this.listHeight, children, this.missingOpeningBracketIds);\n }\n appendChildOfSameHeight(node) {\n this.throwIfImmutable();\n this._children.push(node);\n this.handleChildrenChanged();\n }\n unappendChild() {\n this.throwIfImmutable();\n const item = this._children.pop();\n this.handleChildrenChanged();\n return item;\n }\n prependChildOfSameHeight(node) {\n this.throwIfImmutable();\n this._children.unshift(node);\n this.handleChildrenChanged();\n }\n unprependChild() {\n this.throwIfImmutable();\n const item = this._children.shift();\n this.handleChildrenChanged();\n return item;\n }\n toMutable() {\n return this;\n }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass ImmutableArrayListAstNode extends ArrayListAstNode {\n toMutable() {\n return new ArrayListAstNode(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds);\n }\n throwIfImmutable() {\n throw new Error('this instance is immutable');\n }\n}\nconst emptyArray = [];\nclass ImmutableLeafAstNode extends BaseAstNode {\n get listHeight() {\n return 0;\n }\n get childrenLength() {\n return 0;\n }\n getChild(idx) {\n return null;\n }\n get children() {\n return emptyArray;\n }\n deepClone() {\n return this;\n }\n}\nexport class TextAstNode extends ImmutableLeafAstNode {\n get kind() {\n return 0 /* Text */;\n }\n get missingOpeningBracketIds() {\n return SmallImmutableSet.getEmpty();\n }\n canBeReused(_openedBracketIds) {\n return true;\n }\n computeMinIndentation(offset, textModel) {\n const start = lengthToObj(offset);\n // Text ast nodes don't have partial indentation (ensured by the tokenizer).\n // Thus, if this text node does not start at column 0, the first line cannot have any indentation at all.\n const startLineNumber = (start.columnCount === 0 ? start.lineCount : start.lineCount + 1) + 1;\n const endLineNumber = lengthGetLineCount(lengthAdd(offset, this.length)) + 1;\n let result = Number.MAX_SAFE_INTEGER;\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n const firstNonWsColumn = textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n const lineContent = textModel.getLineContent(lineNumber);\n if (firstNonWsColumn === 0) {\n continue;\n }\n const visibleColumn = CursorColumns.visibleColumnFromColumn(lineContent, firstNonWsColumn, textModel.getOptions().tabSize);\n result = Math.min(result, visibleColumn);\n }\n return result;\n }\n}\nexport class BracketAstNode extends ImmutableLeafAstNode {\n constructor(length) {\n super(length);\n }\n static create(length) {\n const lengthKey = lengthHash(length);\n const cached = BracketAstNode.cacheByLength.get(lengthKey);\n if (cached) {\n return cached;\n }\n const node = new BracketAstNode(length);\n BracketAstNode.cacheByLength.set(lengthKey, node);\n return node;\n }\n get kind() {\n return 1 /* Bracket */;\n }\n get missingOpeningBracketIds() {\n return SmallImmutableSet.getEmpty();\n }\n canBeReused(_openedBracketIds) {\n // These nodes could be reused,\n // but not in a general way.\n // Their parent may be reused.\n return false;\n }\n computeMinIndentation(offset, textModel) {\n return Number.MAX_SAFE_INTEGER;\n }\n}\nBracketAstNode.cacheByLength = new Map();\nexport class InvalidBracketAstNode extends ImmutableLeafAstNode {\n constructor(closingBrackets, length) {\n super(length);\n this.missingOpeningBracketIds = closingBrackets;\n }\n get kind() {\n return 3 /* UnexpectedClosingBracket */;\n }\n canBeReused(openedBracketIds) {\n return !openedBracketIds.intersects(this.missingOpeningBracketIds);\n }\n computeMinIndentation(offset, textModel) {\n return Number.MAX_SAFE_INTEGER;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { NotSupportedError } from '../../../../../base/common/errors.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\nimport { TokenMetadata } from '../../../modes.js';\nimport { TextAstNode } from './ast.js';\nimport { lengthGetColumnCountIfZeroLineCount, lengthAdd, lengthDiff, lengthToObj, lengthZero, toLength } from './length.js';\nexport class Token {\n constructor(length, kind, \n /**\n * If this token is an opening bracket, this is the id of the opening bracket.\n * If this token is a closing bracket, this is the id of the first opening bracket that is closed by this bracket.\n * Otherwise, it is -1.\n */\n bracketId, \n /**\n * If this token is an opening bracket, this just contains `bracketId`.\n * If this token is a closing bracket, this lists all opening bracket ids, that it closes.\n * Otherwise, it is empty.\n */\n bracketIds, astNode) {\n this.length = length;\n this.kind = kind;\n this.bracketId = bracketId;\n this.bracketIds = bracketIds;\n this.astNode = astNode;\n }\n}\nexport class TextBufferTokenizer {\n constructor(textModel, bracketTokens) {\n this.textModel = textModel;\n this.bracketTokens = bracketTokens;\n this.reader = new NonPeekableTextBufferTokenizer(this.textModel, this.bracketTokens);\n this._offset = lengthZero;\n this.didPeek = false;\n this.peeked = null;\n this.textBufferLineCount = textModel.getLineCount();\n this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n }\n get offset() {\n return this._offset;\n }\n get length() {\n return toLength(this.textBufferLineCount, this.textBufferLastLineLength);\n }\n skip(length) {\n this.didPeek = false;\n this._offset = lengthAdd(this._offset, length);\n const obj = lengthToObj(this._offset);\n this.reader.setPosition(obj.lineCount, obj.columnCount);\n }\n read() {\n let token;\n if (this.peeked) {\n this.didPeek = false;\n token = this.peeked;\n }\n else {\n token = this.reader.read();\n }\n if (token) {\n this._offset = lengthAdd(this._offset, token.length);\n }\n return token;\n }\n peek() {\n if (!this.didPeek) {\n this.peeked = this.reader.read();\n this.didPeek = true;\n }\n return this.peeked;\n }\n}\n/**\n * Does not support peek.\n*/\nclass NonPeekableTextBufferTokenizer {\n constructor(textModel, bracketTokens) {\n this.textModel = textModel;\n this.bracketTokens = bracketTokens;\n this.lineIdx = 0;\n this.line = null;\n this.lineCharOffset = 0;\n this.lineTokens = null;\n this.lineTokenOffset = 0;\n /** Must be a zero line token. The end of the document cannot be peeked. */\n this.peekedToken = null;\n this.textBufferLineCount = textModel.getLineCount();\n this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n }\n setPosition(lineIdx, column) {\n // We must not jump into a token!\n if (lineIdx === this.lineIdx) {\n this.lineCharOffset = column;\n this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n }\n else {\n this.lineIdx = lineIdx;\n this.lineCharOffset = column;\n this.line = null;\n }\n this.peekedToken = null;\n }\n read() {\n if (this.peekedToken) {\n const token = this.peekedToken;\n this.peekedToken = null;\n this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(token.length);\n return token;\n }\n if (this.lineIdx > this.textBufferLineCount - 1 || (this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength)) {\n // We are after the end\n return null;\n }\n if (this.line === null) {\n this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1);\n this.line = this.lineTokens.getLineContent();\n this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n }\n const startLineIdx = this.lineIdx;\n const startLineCharOffset = this.lineCharOffset;\n // limits the length of text tokens.\n // If text tokens get too long, incremental updates will be slow\n let lengthHeuristic = 0;\n while (true) {\n const lineTokens = this.lineTokens;\n const tokenCount = lineTokens.getCount();\n let peekedBracketToken = null;\n if (this.lineTokenOffset < tokenCount) {\n const tokenMetadata = lineTokens.getMetadata(this.lineTokenOffset);\n while (this.lineTokenOffset + 1 < tokenCount && tokenMetadata === lineTokens.getMetadata(this.lineTokenOffset + 1)) {\n // Skip tokens that are identical.\n // Sometimes, (bracket) identifiers are split up into multiple tokens.\n this.lineTokenOffset++;\n }\n const isOther = TokenMetadata.getTokenType(tokenMetadata) === 0 /* Other */;\n const endOffset = lineTokens.getEndOffset(this.lineTokenOffset);\n // Is there a bracket token next? Only consume text.\n if (isOther && endOffset !== this.lineCharOffset) {\n const languageId = lineTokens.getLanguageId(this.lineTokenOffset);\n const text = this.line.substring(this.lineCharOffset, endOffset);\n const brackets = this.bracketTokens.getSingleLanguageBracketTokens(languageId);\n const regexp = brackets.regExpGlobal;\n if (regexp) {\n regexp.lastIndex = 0;\n const match = regexp.exec(text);\n if (match) {\n peekedBracketToken = brackets.getToken(match[0]);\n if (peekedBracketToken) {\n // Consume leading text of the token\n this.lineCharOffset += match.index;\n }\n }\n }\n }\n lengthHeuristic += endOffset - this.lineCharOffset;\n if (peekedBracketToken) {\n // Don't skip the entire token, as a single token could contain multiple brackets.\n if (startLineIdx !== this.lineIdx || startLineCharOffset !== this.lineCharOffset) {\n // There is text before the bracket\n this.peekedToken = peekedBracketToken;\n break;\n }\n else {\n // Consume the peeked token\n this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(peekedBracketToken.length);\n return peekedBracketToken;\n }\n }\n else {\n // Skip the entire token, as the token contains no brackets at all.\n this.lineTokenOffset++;\n this.lineCharOffset = endOffset;\n }\n }\n else {\n if (this.lineIdx === this.textBufferLineCount - 1) {\n break;\n }\n this.lineIdx++;\n this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1);\n this.lineTokenOffset = 0;\n this.line = this.lineTokens.getLineContent();\n this.lineCharOffset = 0;\n lengthHeuristic += 33; // max 1000/33 = 30 lines\n // This limits the amount of work to recompute min-indentation\n if (lengthHeuristic > 1000) {\n // only break (automatically) at the end of line.\n break;\n }\n }\n if (lengthHeuristic > 1500) {\n // Eventually break regardless of the line length so that\n // very long lines do not cause bad performance.\n // This effective limits max indentation to 500, as\n // indentation is not computed across multiple text nodes.\n break;\n }\n }\n // If a token contains some proper indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION}),\n // unless the line is too long.\n // Thus, the min indentation of the document is the minimum min indentation of every text node.\n const length = lengthDiff(startLineIdx, startLineCharOffset, this.lineIdx, this.lineCharOffset);\n return new Token(length, 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n}\nexport class FastTokenizer {\n constructor(text, brackets) {\n this.text = text;\n this._offset = lengthZero;\n this.idx = 0;\n const regExpStr = brackets.getRegExpStr();\n const regexp = regExpStr ? new RegExp(brackets.getRegExpStr() + '|\\n', 'g') : null;\n const tokens = [];\n let match;\n let curLineCount = 0;\n let lastLineBreakOffset = 0;\n let lastTokenEndOffset = 0;\n let lastTokenEndLine = 0;\n const smallTextTokens0Line = new Array();\n for (let i = 0; i < 60; i++) {\n smallTextTokens0Line.push(new Token(toLength(0, i), 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(0, i))));\n }\n const smallTextTokens1Line = new Array();\n for (let i = 0; i < 60; i++) {\n smallTextTokens1Line.push(new Token(toLength(1, i), 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(1, i))));\n }\n if (regexp) {\n regexp.lastIndex = 0;\n // If a token contains indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION})\n while ((match = regexp.exec(text)) !== null) {\n const curOffset = match.index;\n const value = match[0];\n if (value === '\\n') {\n curLineCount++;\n lastLineBreakOffset = curOffset + 1;\n }\n else {\n if (lastTokenEndOffset !== curOffset) {\n let token;\n if (lastTokenEndLine === curLineCount) {\n const colCount = curOffset - lastTokenEndOffset;\n if (colCount < smallTextTokens0Line.length) {\n token = smallTextTokens0Line[colCount];\n }\n else {\n const length = toLength(0, colCount);\n token = new Token(length, 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n }\n else {\n const lineCount = curLineCount - lastTokenEndLine;\n const colCount = curOffset - lastLineBreakOffset;\n if (lineCount === 1 && colCount < smallTextTokens1Line.length) {\n token = smallTextTokens1Line[colCount];\n }\n else {\n const length = toLength(lineCount, colCount);\n token = new Token(length, 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n }\n tokens.push(token);\n }\n // value is matched by regexp, so the token must exist\n tokens.push(brackets.getToken(value));\n lastTokenEndOffset = curOffset + value.length;\n lastTokenEndLine = curLineCount;\n }\n }\n }\n const offset = text.length;\n if (lastTokenEndOffset !== offset) {\n const length = (lastTokenEndLine === curLineCount)\n ? toLength(0, offset - lastTokenEndOffset)\n : toLength(curLineCount - lastTokenEndLine, offset - lastLineBreakOffset);\n tokens.push(new Token(length, 0 /* Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length)));\n }\n this.length = toLength(curLineCount, offset - lastLineBreakOffset);\n this.tokens = tokens;\n }\n get offset() {\n return this._offset;\n }\n read() {\n return this.tokens[this.idx++] || null;\n }\n peek() {\n return this.tokens[this.idx] || null;\n }\n skip(length) {\n throw new NotSupportedError();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { escapeRegExpCharacters } from '../../../../../base/common/strings.js';\nimport { BracketAstNode } from './ast.js';\nimport { toLength } from './length.js';\nimport { identityKeyProvider, SmallImmutableSet } from './smallImmutableSet.js';\nimport { Token } from './tokenizer.js';\nexport class BracketTokens {\n constructor(map) {\n this.map = map;\n this.hasRegExp = false;\n this._regExpGlobal = null;\n }\n static createFromLanguage(configuration, denseKeyProvider) {\n function getId(languageId, openingText) {\n return denseKeyProvider.getKey(`${languageId}:::${openingText}`);\n }\n const brackets = configuration.characterPair.getColorizedBrackets();\n const closingBrackets = new Map();\n const openingBrackets = new Set();\n for (const [openingText, closingText] of brackets) {\n openingBrackets.add(openingText);\n let info = closingBrackets.get(closingText);\n const openingTextId = getId(configuration.languageId, openingText);\n if (!info) {\n info = { openingBrackets: SmallImmutableSet.getEmpty(), first: openingTextId };\n closingBrackets.set(closingText, info);\n }\n info.openingBrackets = info.openingBrackets.add(openingTextId, identityKeyProvider);\n }\n const map = new Map();\n for (const [closingText, info] of closingBrackets) {\n const length = toLength(0, closingText.length);\n map.set(closingText, new Token(length, 2 /* ClosingBracket */, info.first, info.openingBrackets, BracketAstNode.create(length)));\n }\n for (const openingText of openingBrackets) {\n const length = toLength(0, openingText.length);\n const openingTextId = getId(configuration.languageId, openingText);\n map.set(openingText, new Token(length, 1 /* OpeningBracket */, openingTextId, SmallImmutableSet.getEmpty().add(openingTextId, identityKeyProvider), BracketAstNode.create(length)));\n }\n return new BracketTokens(map);\n }\n getRegExpStr() {\n if (this.isEmpty) {\n return null;\n }\n else {\n const keys = [...this.map.keys()];\n keys.sort();\n keys.reverse();\n return keys.map(k => prepareBracketForRegExp(k)).join('|');\n }\n }\n /**\n * Returns null if there is no such regexp (because there are no brackets).\n */\n get regExpGlobal() {\n if (!this.hasRegExp) {\n const regExpStr = this.getRegExpStr();\n this._regExpGlobal = regExpStr ? new RegExp(regExpStr, 'g') : null;\n this.hasRegExp = true;\n }\n return this._regExpGlobal;\n }\n getToken(value) {\n return this.map.get(value);\n }\n get isEmpty() {\n return this.map.size === 0;\n }\n}\nfunction prepareBracketForRegExp(str) {\n const escaped = escapeRegExpCharacters(str);\n // This bracket pair uses letters like e.g. \"begin\" - \"end\" (see https://github.com/microsoft/vscode/issues/132162)\n const needsWordBoundaries = (/^[\\w ]+$/.test(str));\n return (needsWordBoundaries ? `\\\\b${escaped}\\\\b` : escaped);\n}\nexport class LanguageAgnosticBracketTokens {\n constructor(denseKeyProvider, getLanguageConfiguration) {\n this.denseKeyProvider = denseKeyProvider;\n this.getLanguageConfiguration = getLanguageConfiguration;\n this.languageIdToBracketTokens = new Map();\n }\n didLanguageChange(languageId) {\n const existing = this.languageIdToBracketTokens.get(languageId);\n if (!existing) {\n return false;\n }\n const newRegExpStr = BracketTokens.createFromLanguage(this.getLanguageConfiguration(languageId), this.denseKeyProvider).getRegExpStr();\n return existing.getRegExpStr() !== newRegExpStr;\n }\n getSingleLanguageBracketTokens(languageId) {\n let singleLanguageBracketTokens = this.languageIdToBracketTokens.get(languageId);\n if (!singleLanguageBracketTokens) {\n singleLanguageBracketTokens = BracketTokens.createFromLanguage(this.getLanguageConfiguration(languageId), this.denseKeyProvider);\n this.languageIdToBracketTokens.set(languageId, singleLanguageBracketTokens);\n }\n return singleLanguageBracketTokens;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ListAstNode } from './ast.js';\n/**\n * Concatenates a list of (2,3) AstNode's into a single (2,3) AstNode.\n * This mutates the items of the input array!\n * If all items have the same height, this method has runtime O(items.length).\n * Otherwise, it has runtime O(items.length * max(log(items.length), items.max(i => i.height))).\n*/\nexport function concat23Trees(items) {\n if (items.length === 0) {\n return null;\n }\n if (items.length === 1) {\n return items[0];\n }\n let i = 0;\n /**\n * Reads nodes of same height and concatenates them to a single node.\n */\n function readNode() {\n if (i >= items.length) {\n return null;\n }\n const start = i;\n const height = items[start].listHeight;\n i++;\n while (i < items.length && items[i].listHeight === height) {\n i++;\n }\n if (i - start >= 2) {\n return concat23TreesOfSameHeight(start === 0 && i === items.length ? items : items.slice(start, i), false);\n }\n else {\n return items[start];\n }\n }\n // The items might not have the same height.\n // We merge all items by using a binary concat operator.\n let first = readNode(); // There must be a first item\n let second = readNode();\n if (!second) {\n return first;\n }\n for (let item = readNode(); item; item = readNode()) {\n // Prefer concatenating smaller trees, as the runtime of concat depends on the tree height.\n if (heightDiff(first, second) <= heightDiff(second, item)) {\n first = concat(first, second);\n second = item;\n }\n else {\n second = concat(second, item);\n }\n }\n const result = concat(first, second);\n return result;\n}\nexport function concat23TreesOfSameHeight(items, createImmutableLists = false) {\n if (items.length === 0) {\n return null;\n }\n if (items.length === 1) {\n return items[0];\n }\n let length = items.length;\n // All trees have same height, just create parent nodes.\n while (length > 3) {\n const newLength = length >> 1;\n for (let i = 0; i < newLength; i++) {\n const j = i << 1;\n items[i] = ListAstNode.create23(items[j], items[j + 1], j + 3 === length ? items[j + 2] : null, createImmutableLists);\n }\n length = newLength;\n }\n return ListAstNode.create23(items[0], items[1], length >= 3 ? items[2] : null, createImmutableLists);\n}\nfunction heightDiff(node1, node2) {\n return Math.abs(node1.listHeight - node2.listHeight);\n}\nfunction concat(node1, node2) {\n if (node1.listHeight === node2.listHeight) {\n return ListAstNode.create23(node1, node2, null, false);\n }\n else if (node1.listHeight > node2.listHeight) {\n // node1 is the tree we want to insert into\n return append(node1, node2);\n }\n else {\n return prepend(node2, node1);\n }\n}\n/**\n * Appends the given node to the end of this (2,3) tree.\n * Returns the new root.\n*/\nfunction append(list, nodeToAppend) {\n list = list.toMutable();\n let curNode = list;\n const parents = new Array();\n let nodeToAppendOfCorrectHeight;\n while (true) {\n // assert nodeToInsert.listHeight <= curNode.listHeight\n if (nodeToAppend.listHeight === curNode.listHeight) {\n nodeToAppendOfCorrectHeight = nodeToAppend;\n break;\n }\n // assert 0 <= nodeToInsert.listHeight < curNode.listHeight\n if (curNode.kind !== 4 /* List */) {\n throw new Error('unexpected');\n }\n parents.push(curNode);\n // assert 2 <= curNode.childrenLength <= 3\n curNode = curNode.makeLastElementMutable();\n }\n // assert nodeToAppendOfCorrectHeight!.listHeight === curNode.listHeight\n for (let i = parents.length - 1; i >= 0; i--) {\n const parent = parents[i];\n if (nodeToAppendOfCorrectHeight) {\n // Can we take the element?\n if (parent.childrenLength >= 3) {\n // assert parent.childrenLength === 3 && parent.listHeight === nodeToAppendOfCorrectHeight.listHeight + 1\n // we need to split to maintain (2,3)-tree property.\n // Send the third element + the new element to the parent.\n nodeToAppendOfCorrectHeight = ListAstNode.create23(parent.unappendChild(), nodeToAppendOfCorrectHeight, null, false);\n }\n else {\n parent.appendChildOfSameHeight(nodeToAppendOfCorrectHeight);\n nodeToAppendOfCorrectHeight = undefined;\n }\n }\n else {\n parent.handleChildrenChanged();\n }\n }\n if (nodeToAppendOfCorrectHeight) {\n return ListAstNode.create23(list, nodeToAppendOfCorrectHeight, null, false);\n }\n else {\n return list;\n }\n}\n/**\n * Prepends the given node to the end of this (2,3) tree.\n * Returns the new root.\n*/\nfunction prepend(list, nodeToAppend) {\n list = list.toMutable();\n let curNode = list;\n const parents = new Array();\n // assert nodeToInsert.listHeight <= curNode.listHeight\n while (nodeToAppend.listHeight !== curNode.listHeight) {\n // assert 0 <= nodeToInsert.listHeight < curNode.listHeight\n if (curNode.kind !== 4 /* List */) {\n throw new Error('unexpected');\n }\n parents.push(curNode);\n // assert 2 <= curNode.childrenFast.length <= 3\n curNode = curNode.makeFirstElementMutable();\n }\n let nodeToPrependOfCorrectHeight = nodeToAppend;\n // assert nodeToAppendOfCorrectHeight!.listHeight === curNode.listHeight\n for (let i = parents.length - 1; i >= 0; i--) {\n const parent = parents[i];\n if (nodeToPrependOfCorrectHeight) {\n // Can we take the element?\n if (parent.childrenLength >= 3) {\n // assert parent.childrenLength === 3 && parent.listHeight === nodeToAppendOfCorrectHeight.listHeight + 1\n // we need to split to maintain (2,3)-tree property.\n // Send the third element + the new element to the parent.\n nodeToPrependOfCorrectHeight = ListAstNode.create23(nodeToPrependOfCorrectHeight, parent.unprependChild(), null, false);\n }\n else {\n parent.prependChildOfSameHeight(nodeToPrependOfCorrectHeight);\n nodeToPrependOfCorrectHeight = undefined;\n }\n }\n else {\n parent.handleChildrenChanged();\n }\n }\n if (nodeToPrependOfCorrectHeight) {\n return ListAstNode.create23(nodeToPrependOfCorrectHeight, list, null, false);\n }\n else {\n return list;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { lengthAdd, lengthZero, lengthLessThan } from './length.js';\n/**\n * Allows to efficiently find a longest child at a given offset in a fixed node.\n * The requested offsets must increase monotonously.\n*/\nexport class NodeReader {\n constructor(node) {\n this.lastOffset = lengthZero;\n this.nextNodes = [node];\n this.offsets = [lengthZero];\n this.idxs = [];\n }\n /**\n * Returns the longest node at `offset` that satisfies the predicate.\n * @param offset must be greater than or equal to the last offset this method has been called with!\n */\n readLongestNodeAt(offset, predicate) {\n if (lengthLessThan(offset, this.lastOffset)) {\n throw new Error('Invalid offset');\n }\n this.lastOffset = offset;\n // Find the longest node of all those that are closest to the current offset.\n while (true) {\n const curNode = lastOrUndefined(this.nextNodes);\n if (!curNode) {\n return undefined;\n }\n const curNodeOffset = lastOrUndefined(this.offsets);\n if (lengthLessThan(offset, curNodeOffset)) {\n // The next best node is not here yet.\n // The reader must advance before a cached node is hit.\n return undefined;\n }\n if (lengthLessThan(curNodeOffset, offset)) {\n // The reader is ahead of the current node.\n if (lengthAdd(curNodeOffset, curNode.length) <= offset) {\n // The reader is after the end of the current node.\n this.nextNodeAfterCurrent();\n }\n else {\n // The reader is somewhere in the current node.\n const nextChildIdx = getNextChildIdx(curNode);\n if (nextChildIdx !== -1) {\n // Go to the first child and repeat.\n this.nextNodes.push(curNode.getChild(nextChildIdx));\n this.offsets.push(curNodeOffset);\n this.idxs.push(nextChildIdx);\n }\n else {\n // We don't have children\n this.nextNodeAfterCurrent();\n }\n }\n }\n else {\n // readerOffsetBeforeChange === curNodeOffset\n if (predicate(curNode)) {\n this.nextNodeAfterCurrent();\n return curNode;\n }\n else {\n const nextChildIdx = getNextChildIdx(curNode);\n // look for shorter node\n if (nextChildIdx === -1) {\n // There is no shorter node.\n this.nextNodeAfterCurrent();\n return undefined;\n }\n else {\n // Descend into first child & repeat.\n this.nextNodes.push(curNode.getChild(nextChildIdx));\n this.offsets.push(curNodeOffset);\n this.idxs.push(nextChildIdx);\n }\n }\n }\n }\n }\n // Navigates to the longest node that continues after the current node.\n nextNodeAfterCurrent() {\n while (true) {\n const currentOffset = lastOrUndefined(this.offsets);\n const currentNode = lastOrUndefined(this.nextNodes);\n this.nextNodes.pop();\n this.offsets.pop();\n if (this.idxs.length === 0) {\n // We just popped the root node, there is no next node.\n break;\n }\n // Parent is not undefined, because idxs is not empty\n const parent = lastOrUndefined(this.nextNodes);\n const nextChildIdx = getNextChildIdx(parent, this.idxs[this.idxs.length - 1]);\n if (nextChildIdx !== -1) {\n this.nextNodes.push(parent.getChild(nextChildIdx));\n this.offsets.push(lengthAdd(currentOffset, currentNode.length));\n this.idxs[this.idxs.length - 1] = nextChildIdx;\n break;\n }\n else {\n this.idxs.pop();\n }\n // We fully consumed the parent.\n // Current node is now parent, so call nextNodeAfterCurrent again\n }\n }\n}\nfunction getNextChildIdx(node, curIdx = -1) {\n while (true) {\n curIdx++;\n if (curIdx >= node.childrenLength) {\n return -1;\n }\n if (node.getChild(curIdx)) {\n return curIdx;\n }\n }\n}\nfunction lastOrUndefined(arr) {\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { InvalidBracketAstNode, ListAstNode, PairAstNode } from './ast.js';\nimport { BeforeEditPositionMapper } from './beforeEditPositionMapper.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\nimport { lengthIsZero, lengthLessThan } from './length.js';\nimport { concat23Trees, concat23TreesOfSameHeight } from './concat23Trees.js';\nimport { NodeReader } from './nodeReader.js';\n/**\n * Non incrementally built ASTs are immutable.\n*/\nexport function parseDocument(tokenizer, edits, oldNode, createImmutableLists) {\n const parser = new Parser(tokenizer, edits, oldNode, createImmutableLists);\n return parser.parseDocument();\n}\n/**\n * Non incrementally built ASTs are immutable.\n*/\nclass Parser {\n constructor(tokenizer, edits, oldNode, createImmutableLists) {\n this.tokenizer = tokenizer;\n this.createImmutableLists = createImmutableLists;\n this._itemsConstructed = 0;\n this._itemsFromCache = 0;\n if (oldNode && createImmutableLists) {\n throw new Error('Not supported');\n }\n this.oldNodeReader = oldNode ? new NodeReader(oldNode) : undefined;\n this.positionMapper = new BeforeEditPositionMapper(edits, tokenizer.length);\n }\n parseDocument() {\n this._itemsConstructed = 0;\n this._itemsFromCache = 0;\n let result = this.parseList(SmallImmutableSet.getEmpty());\n if (!result) {\n result = ListAstNode.getEmpty();\n }\n return result;\n }\n parseList(openedBracketIds) {\n const items = new Array();\n while (true) {\n const token = this.tokenizer.peek();\n if (!token ||\n (token.kind === 2 /* ClosingBracket */ &&\n token.bracketIds.intersects(openedBracketIds))) {\n break;\n }\n const child = this.parseChild(openedBracketIds);\n if (child.kind === 4 /* List */ && child.childrenLength === 0) {\n continue;\n }\n items.push(child);\n }\n // When there is no oldNodeReader, all items are created from scratch and must have the same height.\n const result = this.oldNodeReader ? concat23Trees(items) : concat23TreesOfSameHeight(items, this.createImmutableLists);\n return result;\n }\n parseChild(openedBracketIds) {\n if (this.oldNodeReader) {\n const maxCacheableLength = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);\n if (!lengthIsZero(maxCacheableLength)) {\n const cachedNode = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset), curNode => {\n if (!lengthLessThan(curNode.length, maxCacheableLength)) {\n // Either the node contains edited text or touches edited text.\n // In the latter case, brackets might have been extended (`end` -> `ending`), so even touching nodes cannot be reused.\n return false;\n }\n const canBeReused = curNode.canBeReused(openedBracketIds);\n return canBeReused;\n });\n if (cachedNode) {\n this._itemsFromCache++;\n this.tokenizer.skip(cachedNode.length);\n return cachedNode;\n }\n }\n }\n this._itemsConstructed++;\n const token = this.tokenizer.read();\n switch (token.kind) {\n case 2 /* ClosingBracket */:\n return new InvalidBracketAstNode(token.bracketIds, token.length);\n case 0 /* Text */:\n return token.astNode;\n case 1 /* OpeningBracket */:\n const set = openedBracketIds.merge(token.bracketIds);\n const child = this.parseList(set);\n const nextToken = this.tokenizer.peek();\n if (nextToken &&\n nextToken.kind === 2 /* ClosingBracket */ &&\n (nextToken.bracketId === token.bracketId || nextToken.bracketIds.intersects(token.bracketIds))) {\n this.tokenizer.read();\n return PairAstNode.create(token.astNode, child, nextToken.astNode);\n }\n else {\n return PairAstNode.create(token.astNode, child, null);\n }\n default:\n throw new Error('unexpected');\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { BracketInfo, BracketPairWithMinIndentationInfo } from './bracketPairs.js';\nimport { TextEditInfo } from './impl/beforeEditPositionMapper.js';\nimport { LanguageAgnosticBracketTokens } from './impl/brackets.js';\nimport { lengthAdd, lengthGreaterThanEqual, lengthLessThanEqual, lengthOfString, lengthsToRange, lengthZero, positionToLength, toLength } from './impl/length.js';\nimport { parseDocument } from './impl/parser.js';\nimport { DenseKeyProvider } from './impl/smallImmutableSet.js';\nimport { FastTokenizer, TextBufferTokenizer } from './impl/tokenizer.js';\nexport class BracketPairs extends Disposable {\n constructor(textModel, languageConfigurationService) {\n super();\n this.textModel = textModel;\n this.languageConfigurationService = languageConfigurationService;\n this.cache = this._register(new MutableDisposable());\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.bracketsRequested = false;\n this._register(textModel.onDidChangeOptions(e => {\n this.cache.clear();\n this.updateCache();\n }));\n this._register(textModel.onDidChangeLanguage(e => {\n this.cache.clear();\n this.updateCache();\n }));\n this._register(this.languageConfigurationService.onDidChange(e => {\n var _a;\n if (!e.languageId || ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.object.didLanguageChange(e.languageId))) {\n this.cache.clear();\n this.updateCache();\n }\n }));\n }\n get isDocumentSupported() {\n const maxSupportedDocumentLength = /* max lines */ 50000 * /* average column count */ 100;\n return this.textModel.getValueLength() <= maxSupportedDocumentLength;\n }\n updateCache() {\n if (this.bracketsRequested && this.isDocumentSupported) {\n if (!this.cache.value) {\n const store = new DisposableStore();\n this.cache.value = createDisposableRef(store.add(new ActiveBracketPairsImpl(this.textModel, (languageId) => {\n return this.languageConfigurationService.getLanguageConfiguration(languageId);\n })), store);\n store.add(this.cache.value.object.onDidChange(e => this.onDidChangeEmitter.fire(e)));\n this.onDidChangeEmitter.fire();\n }\n }\n else {\n this.cache.clear();\n this.onDidChangeEmitter.fire();\n }\n }\n handleContentChanged(change) {\n var _a;\n (_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.object.handleContentChanged(change);\n }\n /**\n * Returns all bracket pairs that intersect the given range.\n * The result is sorted by the start position.\n */\n getBracketPairsInRange(range) {\n var _a;\n this.bracketsRequested = true;\n this.updateCache();\n return ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, false)) || [];\n }\n getBracketPairsInRangeWithMinIndentation(range) {\n var _a;\n this.bracketsRequested = true;\n this.updateCache();\n return ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, true)) || [];\n }\n getBracketsInRange(range) {\n var _a;\n this.bracketsRequested = true;\n this.updateCache();\n return ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.object.getBracketsInRange(range)) || [];\n }\n}\nfunction createDisposableRef(object, disposable) {\n return {\n object,\n dispose: () => disposable === null || disposable === void 0 ? void 0 : disposable.dispose(),\n };\n}\nclass ActiveBracketPairsImpl extends Disposable {\n constructor(textModel, getLanguageConfiguration) {\n super();\n this.textModel = textModel;\n this.getLanguageConfiguration = getLanguageConfiguration;\n this.didChangeEmitter = new Emitter();\n this.denseKeyProvider = new DenseKeyProvider();\n this.brackets = new LanguageAgnosticBracketTokens(this.denseKeyProvider, this.getLanguageConfiguration);\n this.onDidChange = this.didChangeEmitter.event;\n this._register(textModel.onBackgroundTokenizationStateChanged(() => {\n if (textModel.backgroundTokenizationState === 2 /* Completed */) {\n const wasUndefined = this.initialAstWithoutTokens === undefined;\n // Clear the initial tree as we can use the tree with token information now.\n this.initialAstWithoutTokens = undefined;\n if (!wasUndefined) {\n this.didChangeEmitter.fire();\n }\n }\n }));\n this._register(textModel.onDidChangeTokens(({ ranges }) => {\n const edits = ranges.map(r => new TextEditInfo(toLength(r.fromLineNumber - 1, 0), toLength(r.toLineNumber, 0), toLength(r.toLineNumber - r.fromLineNumber + 1, 0)));\n this.astWithTokens = this.parseDocumentFromTextBuffer(edits, this.astWithTokens, false);\n if (!this.initialAstWithoutTokens) {\n this.didChangeEmitter.fire();\n }\n }));\n if (textModel.backgroundTokenizationState === 0 /* Uninitialized */) {\n // There are no token information yet\n const brackets = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId());\n const tokenizer = new FastTokenizer(this.textModel.getValue(), brackets);\n this.initialAstWithoutTokens = parseDocument(tokenizer, [], undefined, true);\n this.astWithTokens = this.initialAstWithoutTokens;\n }\n else if (textModel.backgroundTokenizationState === 2 /* Completed */) {\n // Skip the initial ast, as there is no flickering.\n // Directly create the tree with token information.\n this.initialAstWithoutTokens = undefined;\n this.astWithTokens = this.parseDocumentFromTextBuffer([], undefined, false);\n }\n else if (textModel.backgroundTokenizationState === 1 /* InProgress */) {\n this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], undefined, true);\n this.astWithTokens = this.initialAstWithoutTokens;\n }\n }\n didLanguageChange(languageId) {\n return this.brackets.didLanguageChange(languageId);\n }\n handleContentChanged(change) {\n const edits = change.changes.map(c => {\n const range = Range.lift(c.range);\n return new TextEditInfo(positionToLength(range.getStartPosition()), positionToLength(range.getEndPosition()), lengthOfString(c.text));\n }).reverse();\n this.astWithTokens = this.parseDocumentFromTextBuffer(edits, this.astWithTokens, false);\n if (this.initialAstWithoutTokens) {\n this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(edits, this.initialAstWithoutTokens, false);\n }\n }\n /**\n * @pure (only if isPure = true)\n */\n parseDocumentFromTextBuffer(edits, previousAst, immutable) {\n // Is much faster if `isPure = false`.\n const isPure = false;\n const previousAstClone = isPure ? previousAst === null || previousAst === void 0 ? void 0 : previousAst.deepClone() : previousAst;\n const tokenizer = new TextBufferTokenizer(this.textModel, this.brackets);\n const result = parseDocument(tokenizer, edits, previousAstClone, immutable);\n return result;\n }\n getBracketsInRange(range) {\n const startOffset = toLength(range.startLineNumber - 1, range.startColumn - 1);\n const endOffset = toLength(range.endLineNumber - 1, range.endColumn - 1);\n const result = new Array();\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n collectBrackets(node, lengthZero, node.length, startOffset, endOffset, result);\n return result;\n }\n getBracketPairsInRange(range, includeMinIndentation) {\n const result = new Array();\n const startLength = positionToLength(range.getStartPosition());\n const endLength = positionToLength(range.getEndPosition());\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n const context = new CollectBracketPairsContext(result, includeMinIndentation, this.textModel);\n collectBracketPairs(node, lengthZero, node.length, startLength, endLength, context);\n return result;\n }\n}\nfunction collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, result, level = 0) {\n if (node.kind === 1 /* Bracket */) {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n result.push(new BracketInfo(range, level - 1, false));\n }\n else if (node.kind === 3 /* UnexpectedClosingBracket */) {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n result.push(new BracketInfo(range, level - 1, true));\n }\n else if (node.kind === 4 /* List */) {\n for (const child of node.children) {\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) && lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, result, level);\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n }\n else if (node.kind === 2 /* Pair */) {\n // Don't use node.children here to improve performance\n level++;\n {\n const child = node.openingBracket;\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) && lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, result, level);\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n if (node.child) {\n const child = node.child;\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) && lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, result, level);\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n if (node.closingBracket) {\n const child = node.closingBracket;\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) && lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, result, level);\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n }\n}\nclass CollectBracketPairsContext {\n constructor(result, includeMinIndentation, textModel) {\n this.result = result;\n this.includeMinIndentation = includeMinIndentation;\n this.textModel = textModel;\n }\n}\nfunction collectBracketPairs(node, nodeOffset, nodeOffsetEnd, startOffset, endOffset, context, level = 0) {\n var _a;\n if (node.kind === 2 /* Pair */) {\n const openingBracketEnd = lengthAdd(nodeOffset, node.openingBracket.length);\n let minIndentation = -1;\n if (context.includeMinIndentation) {\n minIndentation = node.computeMinIndentation(nodeOffset, context.textModel);\n }\n context.result.push(new BracketPairWithMinIndentationInfo(lengthsToRange(nodeOffset, nodeOffsetEnd), lengthsToRange(nodeOffset, openingBracketEnd), node.closingBracket\n ? lengthsToRange(lengthAdd(openingBracketEnd, ((_a = node.child) === null || _a === void 0 ? void 0 : _a.length) || lengthZero), nodeOffsetEnd)\n : undefined, level, minIndentation));\n level++;\n }\n let curOffset = nodeOffset;\n for (const child of node.children) {\n const childOffset = curOffset;\n curOffset = lengthAdd(curOffset, child.length);\n if (lengthLessThanEqual(childOffset, endOffset) && lengthLessThanEqual(startOffset, curOffset)) {\n collectBracketPairs(child, childOffset, curOffset, startOffset, endOffset, context, level);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketHighlightingUnexpectedBracketForeground } from '../../view/editorColorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nexport class ColorizedBracketPairsDecorationProvider extends Disposable {\n constructor(textModel) {\n super();\n this.textModel = textModel;\n this.colorProvider = new ColorProvider();\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.colorizationOptions = textModel.getOptions().bracketPairColorizationOptions;\n this._register(textModel.onDidChangeOptions(e => {\n this.colorizationOptions = textModel.getOptions().bracketPairColorizationOptions;\n }));\n this._register(textModel.bracketPairs.onDidChange(e => {\n this.onDidChangeEmitter.fire();\n }));\n }\n getDecorationsInRange(range, ownerId, filterOutValidation) {\n if (ownerId === undefined) {\n return [];\n }\n if (!this.colorizationOptions.enabled) {\n return [];\n }\n const result = new Array();\n const bracketsInRange = this.textModel.bracketPairs.getBracketsInRange(range);\n for (const bracket of bracketsInRange) {\n result.push({\n id: `bracket${bracket.range.toString()}-${bracket.nestingLevel}`,\n options: { description: 'BracketPairColorization', inlineClassName: this.colorProvider.getInlineClassName(bracket) },\n ownerId: 0,\n range: bracket.range\n });\n }\n return result;\n }\n getAllDecorations(ownerId, filterOutValidation) {\n if (ownerId === undefined) {\n return [];\n }\n if (!this.colorizationOptions.enabled) {\n return [];\n }\n return this.getDecorationsInRange(new Range(1, 1, this.textModel.getLineCount(), 1), ownerId, filterOutValidation);\n }\n}\nclass ColorProvider {\n constructor() {\n this.unexpectedClosingBracketClassName = 'unexpected-closing-bracket';\n }\n getInlineClassName(bracket) {\n if (bracket.isInvalid) {\n return this.unexpectedClosingBracketClassName;\n }\n return this.getInlineClassNameOfLevel(bracket.nestingLevel);\n }\n getInlineClassNameOfLevel(level) {\n // To support a dynamic amount of colors up to 6 colors,\n // we use a number that is a lcm of all numbers from 1 to 6.\n return `bracket-highlighting-${level % 30}`;\n }\n}\nregisterThemingParticipant((theme, collector) => {\n const colors = [\n editorBracketHighlightingForeground1,\n editorBracketHighlightingForeground2,\n editorBracketHighlightingForeground3,\n editorBracketHighlightingForeground4,\n editorBracketHighlightingForeground5,\n editorBracketHighlightingForeground6\n ];\n const colorProvider = new ColorProvider();\n collector.addRule(`.monaco-editor .${colorProvider.unexpectedClosingBracketClassName} { color: ${theme.getColor(editorBracketHighlightingUnexpectedBracketForeground)}; }`);\n let colorValues = colors\n .map(c => theme.getColor(c))\n .filter((c) => !!c)\n .filter(c => !c.isTransparent());\n for (let level = 0; level < 30; level++) {\n const color = colorValues[level % colorValues.length];\n collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level)} { color: ${color}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../config/editorOptions.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport * as model from '../model.js';\nimport { EditStack } from './editStack.js';\nimport { guessIndentation } from './indentationGuesser.js';\nimport { IntervalNode, IntervalTree, recomputeMaxEnd } from './intervalTree.js';\nimport { PieceTreeTextBufferBuilder } from './pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js';\nimport { InternalModelContentChangeEvent, LineInjectedText, ModelInjectedTextChangedEvent, ModelRawContentChangedEvent, ModelRawEOLChanged, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted } from './textModelEvents.js';\nimport { SearchParams, TextModelSearch } from './textModelSearch.js';\nimport { TextModelTokenization } from './textModelTokens.js';\nimport { getWordAtText } from './wordHelper.js';\nimport { ILanguageConfigurationService } from '../modes/languageConfigurationRegistry.js';\nimport { NULL_MODE_ID } from '../modes/nullMode.js';\nimport { ignoreBracketsInToken } from '../modes/supports.js';\nimport { BracketsUtils } from '../modes/supports/richEditBrackets.js';\nimport { TokensStore, countEOL, TokensStore2 } from './tokensStore.js';\nimport { Color } from '../../../base/common/color.js';\nimport { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer/pieceTreeTextBuffer.js';\nimport { ArrayQueue, findLast } from '../../../base/common/arrays.js';\nimport { BracketPairs } from './bracketPairs/bracketPairsImpl.js';\nimport { ColorizedBracketPairsDecorationProvider } from './bracketPairs/colorizedBracketPairsDecorationProvider.js';\nimport { CursorColumns } from '../controller/cursorColumns.js';\nimport { IModeService } from '../services/modeService.js';\nfunction createTextBufferBuilder() {\n return new PieceTreeTextBufferBuilder();\n}\nexport function createTextBufferFactory(text) {\n const builder = createTextBufferBuilder();\n builder.acceptChunk(text);\n return builder.finish();\n}\nexport function createTextBuffer(value, defaultEOL) {\n const factory = (typeof value === 'string' ? createTextBufferFactory(value) : value);\n return factory.create(defaultEOL);\n}\nlet MODEL_ID = 0;\nconst LIMIT_FIND_COUNT = 999;\nexport const LONG_LINE_BOUNDARY = 10000;\nclass TextModelSnapshot {\n constructor(source) {\n this._source = source;\n this._eos = false;\n }\n read() {\n if (this._eos) {\n return null;\n }\n let result = [], resultCnt = 0, resultLength = 0;\n do {\n let tmp = this._source.read();\n if (tmp === null) {\n // end-of-stream\n this._eos = true;\n if (resultCnt === 0) {\n return null;\n }\n else {\n return result.join('');\n }\n }\n if (tmp.length > 0) {\n result[resultCnt++] = tmp;\n resultLength += tmp.length;\n }\n if (resultLength >= 64 * 1024) {\n return result.join('');\n }\n } while (true);\n }\n}\nconst invalidFunc = () => { throw new Error(`Invalid change accessor`); };\nclass BracketSearchCanceled {\n constructor() {\n this._searchCanceledBrand = undefined;\n }\n}\nBracketSearchCanceled.INSTANCE = new BracketSearchCanceled();\nfunction stripBracketSearchCanceled(result) {\n if (result instanceof BracketSearchCanceled) {\n return null;\n }\n return result;\n}\nlet TextModel = class TextModel extends Disposable {\n constructor(source, creationOptions, languageId, associatedResource = null, _undoRedoService, _modeService, _languageConfigurationService) {\n super();\n this._undoRedoService = _undoRedoService;\n this._modeService = _modeService;\n this._languageConfigurationService = _languageConfigurationService;\n //#region Events\n this._onWillDispose = this._register(new Emitter());\n this.onWillDispose = this._onWillDispose.event;\n this._onDidChangeDecorations = this._register(new DidChangeDecorationsEmitter(affectedInjectedTextLines => this.handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines)));\n this.onDidChangeDecorations = this._onDidChangeDecorations.event;\n this._onDidChangeLanguage = this._register(new Emitter());\n this.onDidChangeLanguage = this._onDidChangeLanguage.event;\n this._onDidChangeLanguageConfiguration = this._register(new Emitter());\n this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event;\n this._onDidChangeTokens = this._register(new Emitter());\n this.onDidChangeTokens = this._onDidChangeTokens.event;\n this._onDidChangeOptions = this._register(new Emitter());\n this.onDidChangeOptions = this._onDidChangeOptions.event;\n this._onDidChangeAttached = this._register(new Emitter());\n this.onDidChangeAttached = this._onDidChangeAttached.event;\n this._onDidChangeContentOrInjectedText = this._register(new Emitter());\n this.onDidChangeContentOrInjectedText = this._onDidChangeContentOrInjectedText.event;\n this._eventEmitter = this._register(new DidChangeContentEmitter());\n this._backgroundTokenizationState = 0 /* Uninitialized */;\n this._onBackgroundTokenizationStateChanged = this._register(new Emitter());\n this.onBackgroundTokenizationStateChanged = this._onBackgroundTokenizationStateChanged.event;\n this._register(this._eventEmitter.fastEvent((e) => {\n this._onDidChangeContentOrInjectedText.fire(e.rawContentChangedEvent);\n }));\n // Generate a new unique model id\n MODEL_ID++;\n this.id = '$model' + MODEL_ID;\n this.isForSimpleWidget = creationOptions.isForSimpleWidget;\n if (typeof associatedResource === 'undefined' || associatedResource === null) {\n this._associatedResource = URI.parse('inmemory://model/' + MODEL_ID);\n }\n else {\n this._associatedResource = associatedResource;\n }\n this._attachedEditorCount = 0;\n const { textBuffer, disposable } = createTextBuffer(source, creationOptions.defaultEOL);\n this._buffer = textBuffer;\n this._bufferDisposable = disposable;\n this._options = TextModel.resolveOptions(this._buffer, creationOptions);\n const bufferLineCount = this._buffer.getLineCount();\n const bufferTextLength = this._buffer.getValueLengthInRange(new Range(1, 1, bufferLineCount, this._buffer.getLineLength(bufferLineCount) + 1), 0 /* TextDefined */);\n // !!! Make a decision in the ctor and permanently respect this decision !!!\n // If a model is too large at construction time, it will never get tokenized,\n // under no circumstances.\n if (creationOptions.largeFileOptimizations) {\n this._isTooLargeForTokenization = ((bufferTextLength > TextModel.LARGE_FILE_SIZE_THRESHOLD)\n || (bufferLineCount > TextModel.LARGE_FILE_LINE_COUNT_THRESHOLD));\n }\n else {\n this._isTooLargeForTokenization = false;\n }\n this._isTooLargeForSyncing = (bufferTextLength > TextModel.MODEL_SYNC_LIMIT);\n this._versionId = 1;\n this._alternativeVersionId = 1;\n this._initialUndoRedoSnapshot = null;\n this._isDisposed = false;\n this._isDisposing = false;\n this._languageId = languageId || NULL_MODE_ID;\n this._languageRegistryListener = this._languageConfigurationService.onDidChange(e => {\n if (e.affects(this._languageId)) {\n this._onDidChangeLanguageConfiguration.fire({});\n }\n });\n this._instanceId = strings.singleLetterHash(MODEL_ID);\n this._lastDecorationId = 0;\n this._decorations = Object.create(null);\n this._decorationsTree = new DecorationsTrees();\n this._commandManager = new EditStack(this, this._undoRedoService);\n this._isUndoing = false;\n this._isRedoing = false;\n this._trimAutoWhitespaceLines = null;\n this._tokens = new TokensStore(this._modeService.languageIdCodec);\n this._tokens2 = new TokensStore2(this._modeService.languageIdCodec);\n this._tokenization = new TextModelTokenization(this, this._modeService.languageIdCodec);\n this._bracketPairColorizer = this._register(new BracketPairs(this, this._languageConfigurationService));\n this._decorationProvider = this._register(new ColorizedBracketPairsDecorationProvider(this));\n this._register(this._decorationProvider.onDidChange(() => {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._onDidChangeDecorations.fire();\n this._onDidChangeDecorations.endDeferredEmit();\n }));\n }\n static resolveOptions(textBuffer, options) {\n if (options.detectIndentation) {\n const guessedIndentation = guessIndentation(textBuffer, options.tabSize, options.insertSpaces);\n return new model.TextModelResolvedOptions({\n tabSize: guessedIndentation.tabSize,\n indentSize: guessedIndentation.tabSize,\n insertSpaces: guessedIndentation.insertSpaces,\n trimAutoWhitespace: options.trimAutoWhitespace,\n defaultEOL: options.defaultEOL,\n bracketPairColorizationOptions: options.bracketPairColorizationOptions,\n });\n }\n return new model.TextModelResolvedOptions({\n tabSize: options.tabSize,\n indentSize: options.indentSize,\n insertSpaces: options.insertSpaces,\n trimAutoWhitespace: options.trimAutoWhitespace,\n defaultEOL: options.defaultEOL,\n bracketPairColorizationOptions: options.bracketPairColorizationOptions,\n });\n }\n onDidChangeContentFast(listener) {\n return this._eventEmitter.fastEvent((e) => listener(e.contentChangedEvent));\n }\n onDidChangeContent(listener) {\n return this._eventEmitter.slowEvent((e) => listener(e.contentChangedEvent));\n }\n get bracketPairs() { return this._bracketPairColorizer; }\n get backgroundTokenizationState() {\n return this._backgroundTokenizationState;\n }\n handleTokenizationProgress(completed) {\n if (this._backgroundTokenizationState === 2 /* Completed */) {\n // We already did a full tokenization and don't go back to progressing.\n return;\n }\n const newState = completed ? 2 /* Completed */ : 1 /* InProgress */;\n if (this._backgroundTokenizationState !== newState) {\n this._backgroundTokenizationState = newState;\n this._onBackgroundTokenizationStateChanged.fire();\n }\n }\n dispose() {\n this._isDisposing = true;\n this._onWillDispose.fire();\n this._languageRegistryListener.dispose();\n this._tokenization.dispose();\n this._isDisposed = true;\n super.dispose();\n this._bufferDisposable.dispose();\n this._isDisposing = false;\n // Manually release reference to previous text buffer to avoid large leaks\n // in case someone leaks a TextModel reference\n const emptyDisposedTextBuffer = new PieceTreeTextBuffer([], '', '\\n', false, false, true, true);\n emptyDisposedTextBuffer.dispose();\n this._buffer = emptyDisposedTextBuffer;\n }\n _assertNotDisposed() {\n if (this._isDisposed) {\n throw new Error('Model is disposed!');\n }\n }\n _emitContentChangedEvent(rawChange, change) {\n this._bracketPairColorizer.handleContentChanged(change);\n if (this._isDisposing) {\n // Do not confuse listeners by emitting any event after disposing\n return;\n }\n this._eventEmitter.fire(new InternalModelContentChangeEvent(rawChange, change));\n }\n setValue(value) {\n this._assertNotDisposed();\n if (value === null) {\n // There's nothing to do\n return;\n }\n const { textBuffer, disposable } = createTextBuffer(value, this._options.defaultEOL);\n this._setValueFromTextBuffer(textBuffer, disposable);\n }\n _createContentChanged2(range, rangeOffset, rangeLength, text, isUndoing, isRedoing, isFlush) {\n return {\n changes: [{\n range: range,\n rangeOffset: rangeOffset,\n rangeLength: rangeLength,\n text: text,\n }],\n eol: this._buffer.getEOL(),\n versionId: this.getVersionId(),\n isUndoing: isUndoing,\n isRedoing: isRedoing,\n isFlush: isFlush\n };\n }\n _setValueFromTextBuffer(textBuffer, textBufferDisposable) {\n this._assertNotDisposed();\n const oldFullModelRange = this.getFullModelRange();\n const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n const endLineNumber = this.getLineCount();\n const endColumn = this.getLineMaxColumn(endLineNumber);\n this._buffer = textBuffer;\n this._bufferDisposable.dispose();\n this._bufferDisposable = textBufferDisposable;\n this._increaseVersionId();\n // Flush all tokens\n this._tokens.flush();\n this._tokens2.flush();\n // Destroy all my decorations\n this._decorations = Object.create(null);\n this._decorationsTree = new DecorationsTrees();\n // Destroy my edit history and settings\n this._commandManager.clear();\n this._trimAutoWhitespaceLines = null;\n this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n new ModelRawFlush()\n ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, true));\n }\n setEOL(eol) {\n this._assertNotDisposed();\n const newEOL = (eol === 1 /* CRLF */ ? '\\r\\n' : '\\n');\n if (this._buffer.getEOL() === newEOL) {\n // Nothing to do\n return;\n }\n const oldFullModelRange = this.getFullModelRange();\n const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n const endLineNumber = this.getLineCount();\n const endColumn = this.getLineMaxColumn(endLineNumber);\n this._onBeforeEOLChange();\n this._buffer.setEOL(newEOL);\n this._increaseVersionId();\n this._onAfterEOLChange();\n this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n new ModelRawEOLChanged()\n ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, false));\n }\n _onBeforeEOLChange() {\n // Ensure all decorations get their `range` set.\n this._decorationsTree.ensureAllNodesHaveRanges(this);\n }\n _onAfterEOLChange() {\n // Transform back `range` to offsets\n const versionId = this.getVersionId();\n const allDecorations = this._decorationsTree.collectNodesPostOrder();\n for (let i = 0, len = allDecorations.length; i < len; i++) {\n const node = allDecorations[i];\n const range = node.range; // the range is defined due to `_onBeforeEOLChange`\n const delta = node.cachedAbsoluteStart - node.start;\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n node.cachedAbsoluteStart = startOffset;\n node.cachedAbsoluteEnd = endOffset;\n node.cachedVersionId = versionId;\n node.start = startOffset - delta;\n node.end = endOffset - delta;\n recomputeMaxEnd(node);\n }\n }\n onBeforeAttached() {\n this._attachedEditorCount++;\n if (this._attachedEditorCount === 1) {\n this._onDidChangeAttached.fire(undefined);\n }\n }\n onBeforeDetached() {\n this._attachedEditorCount--;\n if (this._attachedEditorCount === 0) {\n this._onDidChangeAttached.fire(undefined);\n }\n }\n isAttachedToEditor() {\n return this._attachedEditorCount > 0;\n }\n getAttachedEditorCount() {\n return this._attachedEditorCount;\n }\n isTooLargeForSyncing() {\n return this._isTooLargeForSyncing;\n }\n isTooLargeForTokenization() {\n return this._isTooLargeForTokenization;\n }\n isDisposed() {\n return this._isDisposed;\n }\n isDominatedByLongLines() {\n this._assertNotDisposed();\n if (this.isTooLargeForTokenization()) {\n // Cannot word wrap huge files anyways, so it doesn't really matter\n return false;\n }\n let smallLineCharCount = 0;\n let longLineCharCount = 0;\n const lineCount = this._buffer.getLineCount();\n for (let lineNumber = 1; lineNumber <= lineCount; lineNumber++) {\n const lineLength = this._buffer.getLineLength(lineNumber);\n if (lineLength >= LONG_LINE_BOUNDARY) {\n longLineCharCount += lineLength;\n }\n else {\n smallLineCharCount += lineLength;\n }\n }\n return (longLineCharCount > smallLineCharCount);\n }\n get uri() {\n return this._associatedResource;\n }\n //#region Options\n getOptions() {\n this._assertNotDisposed();\n return this._options;\n }\n getFormattingOptions() {\n return {\n tabSize: this._options.indentSize,\n insertSpaces: this._options.insertSpaces\n };\n }\n updateOptions(_newOpts) {\n this._assertNotDisposed();\n let tabSize = (typeof _newOpts.tabSize !== 'undefined') ? _newOpts.tabSize : this._options.tabSize;\n let indentSize = (typeof _newOpts.indentSize !== 'undefined') ? _newOpts.indentSize : this._options.indentSize;\n let insertSpaces = (typeof _newOpts.insertSpaces !== 'undefined') ? _newOpts.insertSpaces : this._options.insertSpaces;\n let trimAutoWhitespace = (typeof _newOpts.trimAutoWhitespace !== 'undefined') ? _newOpts.trimAutoWhitespace : this._options.trimAutoWhitespace;\n let bracketPairColorizationOptions = (typeof _newOpts.bracketColorizationOptions !== 'undefined') ? _newOpts.bracketColorizationOptions : this._options.bracketPairColorizationOptions;\n let newOpts = new model.TextModelResolvedOptions({\n tabSize: tabSize,\n indentSize: indentSize,\n insertSpaces: insertSpaces,\n defaultEOL: this._options.defaultEOL,\n trimAutoWhitespace: trimAutoWhitespace,\n bracketPairColorizationOptions,\n });\n if (this._options.equals(newOpts)) {\n return;\n }\n let e = this._options.createChangeEvent(newOpts);\n this._options = newOpts;\n this._onDidChangeOptions.fire(e);\n }\n detectIndentation(defaultInsertSpaces, defaultTabSize) {\n this._assertNotDisposed();\n let guessedIndentation = guessIndentation(this._buffer, defaultTabSize, defaultInsertSpaces);\n this.updateOptions({\n insertSpaces: guessedIndentation.insertSpaces,\n tabSize: guessedIndentation.tabSize,\n indentSize: guessedIndentation.tabSize, // TODO@Alex: guess indentSize independent of tabSize\n });\n }\n static _normalizeIndentationFromWhitespace(str, indentSize, insertSpaces) {\n let spacesCnt = 0;\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) === '\\t') {\n spacesCnt += indentSize;\n }\n else {\n spacesCnt++;\n }\n }\n let result = '';\n if (!insertSpaces) {\n let tabsCnt = Math.floor(spacesCnt / indentSize);\n spacesCnt = spacesCnt % indentSize;\n for (let i = 0; i < tabsCnt; i++) {\n result += '\\t';\n }\n }\n for (let i = 0; i < spacesCnt; i++) {\n result += ' ';\n }\n return result;\n }\n static normalizeIndentation(str, indentSize, insertSpaces) {\n let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str);\n if (firstNonWhitespaceIndex === -1) {\n firstNonWhitespaceIndex = str.length;\n }\n return TextModel._normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex);\n }\n normalizeIndentation(str) {\n this._assertNotDisposed();\n return TextModel.normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces);\n }\n //#endregion\n //#region Reading\n getVersionId() {\n this._assertNotDisposed();\n return this._versionId;\n }\n mightContainRTL() {\n return this._buffer.mightContainRTL();\n }\n mightContainUnusualLineTerminators() {\n return this._buffer.mightContainUnusualLineTerminators();\n }\n removeUnusualLineTerminators(selections = null) {\n const matches = this.findMatches(strings.UNUSUAL_LINE_TERMINATORS.source, false, true, false, null, false, 1073741824 /* MAX_SAFE_SMALL_INTEGER */);\n this._buffer.resetMightContainUnusualLineTerminators();\n this.pushEditOperations(selections, matches.map(m => ({ range: m.range, text: null })), () => null);\n }\n mightContainNonBasicASCII() {\n return this._buffer.mightContainNonBasicASCII();\n }\n getAlternativeVersionId() {\n this._assertNotDisposed();\n return this._alternativeVersionId;\n }\n getInitialUndoRedoSnapshot() {\n this._assertNotDisposed();\n return this._initialUndoRedoSnapshot;\n }\n getOffsetAt(rawPosition) {\n this._assertNotDisposed();\n let position = this._validatePosition(rawPosition.lineNumber, rawPosition.column, 0 /* Relaxed */);\n return this._buffer.getOffsetAt(position.lineNumber, position.column);\n }\n getPositionAt(rawOffset) {\n this._assertNotDisposed();\n let offset = (Math.min(this._buffer.getLength(), Math.max(0, rawOffset)));\n return this._buffer.getPositionAt(offset);\n }\n _increaseVersionId() {\n this._versionId = this._versionId + 1;\n this._alternativeVersionId = this._versionId;\n }\n _overwriteVersionId(versionId) {\n this._versionId = versionId;\n }\n _overwriteAlternativeVersionId(newAlternativeVersionId) {\n this._alternativeVersionId = newAlternativeVersionId;\n }\n _overwriteInitialUndoRedoSnapshot(newInitialUndoRedoSnapshot) {\n this._initialUndoRedoSnapshot = newInitialUndoRedoSnapshot;\n }\n getValue(eol, preserveBOM = false) {\n this._assertNotDisposed();\n const fullModelRange = this.getFullModelRange();\n const fullModelValue = this.getValueInRange(fullModelRange, eol);\n if (preserveBOM) {\n return this._buffer.getBOM() + fullModelValue;\n }\n return fullModelValue;\n }\n createSnapshot(preserveBOM = false) {\n return new TextModelSnapshot(this._buffer.createSnapshot(preserveBOM));\n }\n getValueLength(eol, preserveBOM = false) {\n this._assertNotDisposed();\n const fullModelRange = this.getFullModelRange();\n const fullModelValue = this.getValueLengthInRange(fullModelRange, eol);\n if (preserveBOM) {\n return this._buffer.getBOM().length + fullModelValue;\n }\n return fullModelValue;\n }\n getValueInRange(rawRange, eol = 0 /* TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getValueInRange(this.validateRange(rawRange), eol);\n }\n getValueLengthInRange(rawRange, eol = 0 /* TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getValueLengthInRange(this.validateRange(rawRange), eol);\n }\n getCharacterCountInRange(rawRange, eol = 0 /* TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getCharacterCountInRange(this.validateRange(rawRange), eol);\n }\n getLineCount() {\n this._assertNotDisposed();\n return this._buffer.getLineCount();\n }\n getLineContent(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._buffer.getLineContent(lineNumber);\n }\n getLineLength(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._buffer.getLineLength(lineNumber);\n }\n getLinesContent() {\n this._assertNotDisposed();\n return this._buffer.getLinesContent();\n }\n getEOL() {\n this._assertNotDisposed();\n return this._buffer.getEOL();\n }\n getEndOfLineSequence() {\n this._assertNotDisposed();\n return (this._buffer.getEOL() === '\\n'\n ? 0 /* LF */\n : 1 /* CRLF */);\n }\n getLineMinColumn(lineNumber) {\n this._assertNotDisposed();\n return 1;\n }\n getLineMaxColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._buffer.getLineLength(lineNumber) + 1;\n }\n getLineFirstNonWhitespaceColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._buffer.getLineFirstNonWhitespaceColumn(lineNumber);\n }\n getLineLastNonWhitespaceColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._buffer.getLineLastNonWhitespaceColumn(lineNumber);\n }\n /**\n * Validates `range` is within buffer bounds, but allows it to sit in between surrogate pairs, etc.\n * Will try to not allocate if possible.\n */\n _validateRangeRelaxedNoAllocations(range) {\n const linesCount = this._buffer.getLineCount();\n const initialStartLineNumber = range.startLineNumber;\n const initialStartColumn = range.startColumn;\n let startLineNumber = Math.floor((typeof initialStartLineNumber === 'number' && !isNaN(initialStartLineNumber)) ? initialStartLineNumber : 1);\n let startColumn = Math.floor((typeof initialStartColumn === 'number' && !isNaN(initialStartColumn)) ? initialStartColumn : 1);\n if (startLineNumber < 1) {\n startLineNumber = 1;\n startColumn = 1;\n }\n else if (startLineNumber > linesCount) {\n startLineNumber = linesCount;\n startColumn = this.getLineMaxColumn(startLineNumber);\n }\n else {\n if (startColumn <= 1) {\n startColumn = 1;\n }\n else {\n const maxColumn = this.getLineMaxColumn(startLineNumber);\n if (startColumn >= maxColumn) {\n startColumn = maxColumn;\n }\n }\n }\n const initialEndLineNumber = range.endLineNumber;\n const initialEndColumn = range.endColumn;\n let endLineNumber = Math.floor((typeof initialEndLineNumber === 'number' && !isNaN(initialEndLineNumber)) ? initialEndLineNumber : 1);\n let endColumn = Math.floor((typeof initialEndColumn === 'number' && !isNaN(initialEndColumn)) ? initialEndColumn : 1);\n if (endLineNumber < 1) {\n endLineNumber = 1;\n endColumn = 1;\n }\n else if (endLineNumber > linesCount) {\n endLineNumber = linesCount;\n endColumn = this.getLineMaxColumn(endLineNumber);\n }\n else {\n if (endColumn <= 1) {\n endColumn = 1;\n }\n else {\n const maxColumn = this.getLineMaxColumn(endLineNumber);\n if (endColumn >= maxColumn) {\n endColumn = maxColumn;\n }\n }\n }\n if (initialStartLineNumber === startLineNumber\n && initialStartColumn === startColumn\n && initialEndLineNumber === endLineNumber\n && initialEndColumn === endColumn\n && range instanceof Range\n && !(range instanceof Selection)) {\n return range;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n _isValidPosition(lineNumber, column, validationType) {\n if (typeof lineNumber !== 'number' || typeof column !== 'number') {\n return false;\n }\n if (isNaN(lineNumber) || isNaN(column)) {\n return false;\n }\n if (lineNumber < 1 || column < 1) {\n return false;\n }\n if ((lineNumber | 0) !== lineNumber || (column | 0) !== column) {\n return false;\n }\n const lineCount = this._buffer.getLineCount();\n if (lineNumber > lineCount) {\n return false;\n }\n if (column === 1) {\n return true;\n }\n const maxColumn = this.getLineMaxColumn(lineNumber);\n if (column > maxColumn) {\n return false;\n }\n if (validationType === 1 /* SurrogatePairs */) {\n // !!At this point, column > 1\n const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n return false;\n }\n }\n return true;\n }\n _validatePosition(_lineNumber, _column, validationType) {\n const lineNumber = Math.floor((typeof _lineNumber === 'number' && !isNaN(_lineNumber)) ? _lineNumber : 1);\n const column = Math.floor((typeof _column === 'number' && !isNaN(_column)) ? _column : 1);\n const lineCount = this._buffer.getLineCount();\n if (lineNumber < 1) {\n return new Position(1, 1);\n }\n if (lineNumber > lineCount) {\n return new Position(lineCount, this.getLineMaxColumn(lineCount));\n }\n if (column <= 1) {\n return new Position(lineNumber, 1);\n }\n const maxColumn = this.getLineMaxColumn(lineNumber);\n if (column >= maxColumn) {\n return new Position(lineNumber, maxColumn);\n }\n if (validationType === 1 /* SurrogatePairs */) {\n // If the position would end up in the middle of a high-low surrogate pair,\n // we move it to before the pair\n // !!At this point, column > 1\n const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n return new Position(lineNumber, column - 1);\n }\n }\n return new Position(lineNumber, column);\n }\n validatePosition(position) {\n const validationType = 1 /* SurrogatePairs */;\n this._assertNotDisposed();\n // Avoid object allocation and cover most likely case\n if (position instanceof Position) {\n if (this._isValidPosition(position.lineNumber, position.column, validationType)) {\n return position;\n }\n }\n return this._validatePosition(position.lineNumber, position.column, validationType);\n }\n _isValidRange(range, validationType) {\n const startLineNumber = range.startLineNumber;\n const startColumn = range.startColumn;\n const endLineNumber = range.endLineNumber;\n const endColumn = range.endColumn;\n if (!this._isValidPosition(startLineNumber, startColumn, 0 /* Relaxed */)) {\n return false;\n }\n if (!this._isValidPosition(endLineNumber, endColumn, 0 /* Relaxed */)) {\n return false;\n }\n if (validationType === 1 /* SurrogatePairs */) {\n const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n return true;\n }\n return false;\n }\n return true;\n }\n validateRange(_range) {\n const validationType = 1 /* SurrogatePairs */;\n this._assertNotDisposed();\n // Avoid object allocation and cover most likely case\n if ((_range instanceof Range) && !(_range instanceof Selection)) {\n if (this._isValidRange(_range, validationType)) {\n return _range;\n }\n }\n const start = this._validatePosition(_range.startLineNumber, _range.startColumn, 0 /* Relaxed */);\n const end = this._validatePosition(_range.endLineNumber, _range.endColumn, 0 /* Relaxed */);\n const startLineNumber = start.lineNumber;\n const startColumn = start.column;\n const endLineNumber = end.lineNumber;\n const endColumn = end.column;\n if (validationType === 1 /* SurrogatePairs */) {\n const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n if (startLineNumber === endLineNumber && startColumn === endColumn) {\n // do not expand a collapsed range, simply move it to a valid location\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn - 1);\n }\n if (startInsideSurrogatePair && endInsideSurrogatePair) {\n // expand range at both ends\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn + 1);\n }\n if (startInsideSurrogatePair) {\n // only expand range at the start\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn);\n }\n // only expand range at the end\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn + 1);\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n modifyPosition(rawPosition, offset) {\n this._assertNotDisposed();\n let candidate = this.getOffsetAt(rawPosition) + offset;\n return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, candidate)));\n }\n getFullModelRange() {\n this._assertNotDisposed();\n const lineCount = this.getLineCount();\n return new Range(1, 1, lineCount, this.getLineMaxColumn(lineCount));\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n return this._buffer.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n findMatches(searchString, rawSearchScope, isRegex, matchCase, wordSeparators, captureMatches, limitResultCount = LIMIT_FIND_COUNT) {\n this._assertNotDisposed();\n let searchRanges = null;\n if (rawSearchScope !== null) {\n if (!Array.isArray(rawSearchScope)) {\n rawSearchScope = [rawSearchScope];\n }\n if (rawSearchScope.every((searchScope) => Range.isIRange(searchScope))) {\n searchRanges = rawSearchScope.map((searchScope) => this.validateRange(searchScope));\n }\n }\n if (searchRanges === null) {\n searchRanges = [this.getFullModelRange()];\n }\n searchRanges = searchRanges.sort((d1, d2) => d1.startLineNumber - d2.startLineNumber || d1.startColumn - d2.startColumn);\n const uniqueSearchRanges = [];\n uniqueSearchRanges.push(searchRanges.reduce((prev, curr) => {\n if (Range.areIntersecting(prev, curr)) {\n return prev.plusRange(curr);\n }\n uniqueSearchRanges.push(prev);\n return curr;\n }));\n let matchMapper;\n if (!isRegex && searchString.indexOf('\\n') < 0) {\n // not regex, not multi line\n const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return [];\n }\n matchMapper = (searchRange) => this.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n else {\n matchMapper = (searchRange) => TextModelSearch.findMatches(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchRange, captureMatches, limitResultCount);\n }\n return uniqueSearchRanges.map(matchMapper).reduce((arr, matches) => arr.concat(matches), []);\n }\n findNextMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n this._assertNotDisposed();\n const searchStart = this.validatePosition(rawSearchStart);\n if (!isRegex && searchString.indexOf('\\n') < 0) {\n const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const lineCount = this.getLineCount();\n let searchRange = new Range(searchStart.lineNumber, searchStart.column, lineCount, this.getLineMaxColumn(lineCount));\n let ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n if (ret.length > 0) {\n return ret[0];\n }\n searchRange = new Range(1, 1, searchStart.lineNumber, this.getLineMaxColumn(searchStart.lineNumber));\n ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n if (ret.length > 0) {\n return ret[0];\n }\n return null;\n }\n return TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n }\n findPreviousMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n this._assertNotDisposed();\n const searchStart = this.validatePosition(rawSearchStart);\n return TextModelSearch.findPreviousMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n }\n //#endregion\n //#region Editing\n pushStackElement() {\n this._commandManager.pushStackElement();\n }\n popStackElement() {\n this._commandManager.popStackElement();\n }\n pushEOL(eol) {\n const currentEOL = (this.getEOL() === '\\n' ? 0 /* LF */ : 1 /* CRLF */);\n if (currentEOL === eol) {\n return;\n }\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n if (this._initialUndoRedoSnapshot === null) {\n this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n }\n this._commandManager.pushEOL(eol);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _validateEditOperation(rawOperation) {\n if (rawOperation instanceof model.ValidAnnotatedEditOperation) {\n return rawOperation;\n }\n return new model.ValidAnnotatedEditOperation(rawOperation.identifier || null, this.validateRange(rawOperation.range), rawOperation.text, rawOperation.forceMoveMarkers || false, rawOperation.isAutoWhitespaceEdit || false, rawOperation._isTracked || false);\n }\n _validateEditOperations(rawOperations) {\n const result = [];\n for (let i = 0, len = rawOperations.length; i < len; i++) {\n result[i] = this._validateEditOperation(rawOperations[i]);\n }\n return result;\n }\n pushEditOperations(beforeCursorState, editOperations, cursorStateComputer) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n return this._pushEditOperations(beforeCursorState, this._validateEditOperations(editOperations), cursorStateComputer);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _pushEditOperations(beforeCursorState, editOperations, cursorStateComputer) {\n if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {\n // Go through each saved line number and insert a trim whitespace edit\n // if it is safe to do so (no conflicts with other edits).\n let incomingEdits = editOperations.map((op) => {\n return {\n range: this.validateRange(op.range),\n text: op.text\n };\n });\n // Sometimes, auto-formatters change ranges automatically which can cause undesired auto whitespace trimming near the cursor\n // We'll use the following heuristic: if the edits occur near the cursor, then it's ok to trim auto whitespace\n let editsAreNearCursors = true;\n if (beforeCursorState) {\n for (let i = 0, len = beforeCursorState.length; i < len; i++) {\n let sel = beforeCursorState[i];\n let foundEditNearSel = false;\n for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n let editRange = incomingEdits[j].range;\n let selIsAbove = editRange.startLineNumber > sel.endLineNumber;\n let selIsBelow = sel.startLineNumber > editRange.endLineNumber;\n if (!selIsAbove && !selIsBelow) {\n foundEditNearSel = true;\n break;\n }\n }\n if (!foundEditNearSel) {\n editsAreNearCursors = false;\n break;\n }\n }\n }\n if (editsAreNearCursors) {\n for (let i = 0, len = this._trimAutoWhitespaceLines.length; i < len; i++) {\n let trimLineNumber = this._trimAutoWhitespaceLines[i];\n let maxLineColumn = this.getLineMaxColumn(trimLineNumber);\n let allowTrimLine = true;\n for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n let editRange = incomingEdits[j].range;\n let editText = incomingEdits[j].text;\n if (trimLineNumber < editRange.startLineNumber || trimLineNumber > editRange.endLineNumber) {\n // `trimLine` is completely outside this edit\n continue;\n }\n // At this point:\n // editRange.startLineNumber <= trimLine <= editRange.endLineNumber\n if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === maxLineColumn\n && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(0) === '\\n') {\n // This edit inserts a new line (and maybe other text) after `trimLine`\n continue;\n }\n if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === 1\n && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(editText.length - 1) === '\\n') {\n // This edit inserts a new line (and maybe other text) before `trimLine`\n continue;\n }\n // Looks like we can't trim this line as it would interfere with an incoming edit\n allowTrimLine = false;\n break;\n }\n if (allowTrimLine) {\n const trimRange = new Range(trimLineNumber, 1, trimLineNumber, maxLineColumn);\n editOperations.push(new model.ValidAnnotatedEditOperation(null, trimRange, null, false, false, false));\n }\n }\n }\n this._trimAutoWhitespaceLines = null;\n }\n if (this._initialUndoRedoSnapshot === null) {\n this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n }\n return this._commandManager.pushEditOperation(beforeCursorState, editOperations, cursorStateComputer);\n }\n _applyUndo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n const edits = changes.map((change) => {\n const rangeStart = this.getPositionAt(change.newPosition);\n const rangeEnd = this.getPositionAt(change.newEnd);\n return {\n range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n text: change.oldText\n };\n });\n this._applyUndoRedoEdits(edits, eol, true, false, resultingAlternativeVersionId, resultingSelection);\n }\n _applyRedo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n const edits = changes.map((change) => {\n const rangeStart = this.getPositionAt(change.oldPosition);\n const rangeEnd = this.getPositionAt(change.oldEnd);\n return {\n range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n text: change.newText\n };\n });\n this._applyUndoRedoEdits(edits, eol, false, true, resultingAlternativeVersionId, resultingSelection);\n }\n _applyUndoRedoEdits(edits, eol, isUndoing, isRedoing, resultingAlternativeVersionId, resultingSelection) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n this._isUndoing = isUndoing;\n this._isRedoing = isRedoing;\n this.applyEdits(edits, false);\n this.setEOL(eol);\n this._overwriteAlternativeVersionId(resultingAlternativeVersionId);\n }\n finally {\n this._isUndoing = false;\n this._isRedoing = false;\n this._eventEmitter.endDeferredEmit(resultingSelection);\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n applyEdits(rawOperations, computeUndoEdits = false) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n const operations = this._validateEditOperations(rawOperations);\n return this._doApplyEdits(operations, computeUndoEdits);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _doApplyEdits(rawOperations, computeUndoEdits) {\n const oldLineCount = this._buffer.getLineCount();\n const result = this._buffer.applyEdits(rawOperations, this._options.trimAutoWhitespace, computeUndoEdits);\n const newLineCount = this._buffer.getLineCount();\n const contentChanges = result.changes;\n this._trimAutoWhitespaceLines = result.trimAutoWhitespaceLineNumbers;\n if (contentChanges.length !== 0) {\n // We do a first pass to update tokens and decorations\n // because we want to read decorations in the second pass\n // where we will emit content change events\n // and we want to read the final decorations\n for (let i = 0, len = contentChanges.length; i < len; i++) {\n const change = contentChanges[i];\n const [eolCount, firstLineLength, lastLineLength] = countEOL(change.text);\n this._tokens.acceptEdit(change.range, eolCount, firstLineLength);\n this._tokens2.acceptEdit(change.range, eolCount, firstLineLength, lastLineLength, change.text.length > 0 ? change.text.charCodeAt(0) : 0 /* Null */);\n this._decorationsTree.acceptReplace(change.rangeOffset, change.rangeLength, change.text.length, change.forceMoveMarkers);\n }\n let rawContentChanges = [];\n this._increaseVersionId();\n let lineCount = oldLineCount;\n for (let i = 0, len = contentChanges.length; i < len; i++) {\n const change = contentChanges[i];\n const [eolCount] = countEOL(change.text);\n this._onDidChangeDecorations.fire();\n const startLineNumber = change.range.startLineNumber;\n const endLineNumber = change.range.endLineNumber;\n const deletingLinesCnt = endLineNumber - startLineNumber;\n const insertingLinesCnt = eolCount;\n const editingLinesCnt = Math.min(deletingLinesCnt, insertingLinesCnt);\n const changeLineCountDelta = (insertingLinesCnt - deletingLinesCnt);\n const currentEditStartLineNumber = newLineCount - lineCount - changeLineCountDelta + startLineNumber;\n const firstEditLineNumber = currentEditStartLineNumber;\n const lastInsertedLineNumber = currentEditStartLineNumber + insertingLinesCnt;\n const decorationsWithInjectedTextInEditedRange = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new Position(firstEditLineNumber, 1)), this.getOffsetAt(new Position(lastInsertedLineNumber, this.getLineMaxColumn(lastInsertedLineNumber))), 0);\n const injectedTextInEditedRange = LineInjectedText.fromDecorations(decorationsWithInjectedTextInEditedRange);\n const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n for (let j = editingLinesCnt; j >= 0; j--) {\n const editLineNumber = startLineNumber + j;\n const currentEditLineNumber = currentEditStartLineNumber + j;\n injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber > currentEditLineNumber);\n const decorationsInCurrentLine = injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber === currentEditLineNumber);\n rawContentChanges.push(new ModelRawLineChanged(editLineNumber, this.getLineContent(currentEditLineNumber), decorationsInCurrentLine));\n }\n if (editingLinesCnt < deletingLinesCnt) {\n // Must delete some lines\n const spliceStartLineNumber = startLineNumber + editingLinesCnt;\n rawContentChanges.push(new ModelRawLinesDeleted(spliceStartLineNumber + 1, endLineNumber));\n }\n if (editingLinesCnt < insertingLinesCnt) {\n const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n // Must insert some lines\n const spliceLineNumber = startLineNumber + editingLinesCnt;\n const cnt = insertingLinesCnt - editingLinesCnt;\n const fromLineNumber = newLineCount - lineCount - cnt + spliceLineNumber + 1;\n let injectedTexts = [];\n let newLines = [];\n for (let i = 0; i < cnt; i++) {\n let lineNumber = fromLineNumber + i;\n newLines[i] = this.getLineContent(lineNumber);\n injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber < lineNumber);\n injectedTexts[i] = injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber === lineNumber);\n }\n rawContentChanges.push(new ModelRawLinesInserted(spliceLineNumber + 1, startLineNumber + insertingLinesCnt, newLines, injectedTexts));\n }\n lineCount += changeLineCountDelta;\n }\n this._emitContentChangedEvent(new ModelRawContentChangedEvent(rawContentChanges, this.getVersionId(), this._isUndoing, this._isRedoing), {\n changes: contentChanges,\n eol: this._buffer.getEOL(),\n versionId: this.getVersionId(),\n isUndoing: this._isUndoing,\n isRedoing: this._isRedoing,\n isFlush: false\n });\n }\n return (result.reverseEdits === null ? undefined : result.reverseEdits);\n }\n undo() {\n return this._undoRedoService.undo(this.uri);\n }\n canUndo() {\n return this._undoRedoService.canUndo(this.uri);\n }\n redo() {\n return this._undoRedoService.redo(this.uri);\n }\n canRedo() {\n return this._undoRedoService.canRedo(this.uri);\n }\n //#endregion\n //#region Decorations\n handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines) {\n // This is called before the decoration changed event is fired.\n if (affectedInjectedTextLines === null || affectedInjectedTextLines.size === 0) {\n return;\n }\n const affectedLines = [...affectedInjectedTextLines];\n const lineChangeEvents = affectedLines.map(lineNumber => new ModelRawLineChanged(lineNumber, this.getLineContent(lineNumber), this._getInjectedTextInLine(lineNumber)));\n this._onDidChangeContentOrInjectedText.fire(new ModelInjectedTextChangedEvent(lineChangeEvents));\n }\n changeDecorations(callback, ownerId = 0) {\n this._assertNotDisposed();\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n return this._changeDecorations(ownerId, callback);\n }\n finally {\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _changeDecorations(ownerId, callback) {\n let changeAccessor = {\n addDecoration: (range, options) => {\n return this._deltaDecorationsImpl(ownerId, [], [{ range: range, options: options }])[0];\n },\n changeDecoration: (id, newRange) => {\n this._changeDecorationImpl(id, newRange);\n },\n changeDecorationOptions: (id, options) => {\n this._changeDecorationOptionsImpl(id, _normalizeOptions(options));\n },\n removeDecoration: (id) => {\n this._deltaDecorationsImpl(ownerId, [id], []);\n },\n deltaDecorations: (oldDecorations, newDecorations) => {\n if (oldDecorations.length === 0 && newDecorations.length === 0) {\n // nothing to do\n return [];\n }\n return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n }\n };\n let result = null;\n try {\n result = callback(changeAccessor);\n }\n catch (e) {\n onUnexpectedError(e);\n }\n // Invalidate change accessor\n changeAccessor.addDecoration = invalidFunc;\n changeAccessor.changeDecoration = invalidFunc;\n changeAccessor.changeDecorationOptions = invalidFunc;\n changeAccessor.removeDecoration = invalidFunc;\n changeAccessor.deltaDecorations = invalidFunc;\n return result;\n }\n deltaDecorations(oldDecorations, newDecorations, ownerId = 0) {\n this._assertNotDisposed();\n if (!oldDecorations) {\n oldDecorations = [];\n }\n if (oldDecorations.length === 0 && newDecorations.length === 0) {\n // nothing to do\n return [];\n }\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n }\n finally {\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _getTrackedRange(id) {\n return this.getDecorationRange(id);\n }\n _setTrackedRange(id, newRange, newStickiness) {\n const node = (id ? this._decorations[id] : null);\n if (!node) {\n if (!newRange) {\n // node doesn't exist, the request is to delete => nothing to do\n return null;\n }\n // node doesn't exist, the request is to set => add the tracked range\n return this._deltaDecorationsImpl(0, [], [{ range: newRange, options: TRACKED_RANGE_OPTIONS[newStickiness] }])[0];\n }\n if (!newRange) {\n // node exists, the request is to delete => delete node\n this._decorationsTree.delete(node);\n delete this._decorations[node.id];\n return null;\n }\n // node exists, the request is to set => change the tracked range and its options\n const range = this._validateRangeRelaxedNoAllocations(newRange);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n this._decorationsTree.delete(node);\n node.reset(this.getVersionId(), startOffset, endOffset, range);\n node.setOptions(TRACKED_RANGE_OPTIONS[newStickiness]);\n this._decorationsTree.insert(node);\n return node.id;\n }\n removeAllDecorationsWithOwnerId(ownerId) {\n if (this._isDisposed) {\n return;\n }\n const nodes = this._decorationsTree.collectNodesFromOwner(ownerId);\n for (let i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n this._decorationsTree.delete(node);\n delete this._decorations[node.id];\n }\n }\n getDecorationOptions(decorationId) {\n const node = this._decorations[decorationId];\n if (!node) {\n return null;\n }\n return node.options;\n }\n getDecorationRange(decorationId) {\n const node = this._decorations[decorationId];\n if (!node) {\n return null;\n }\n return this._decorationsTree.getNodeRange(this, node);\n }\n getLineDecorations(lineNumber, ownerId = 0, filterOutValidation = false) {\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n return [];\n }\n return this.getLinesDecorations(lineNumber, lineNumber, ownerId, filterOutValidation);\n }\n getLinesDecorations(_startLineNumber, _endLineNumber, ownerId = 0, filterOutValidation = false) {\n let lineCount = this.getLineCount();\n let startLineNumber = Math.min(lineCount, Math.max(1, _startLineNumber));\n let endLineNumber = Math.min(lineCount, Math.max(1, _endLineNumber));\n let endColumn = this.getLineMaxColumn(endLineNumber);\n const range = new Range(startLineNumber, 1, endLineNumber, endColumn);\n const decorations = this._getDecorationsInRange(range, ownerId, filterOutValidation);\n decorations.push(...this._decorationProvider.getDecorationsInRange(range, ownerId, filterOutValidation));\n return decorations;\n }\n getDecorationsInRange(range, ownerId = 0, filterOutValidation = false) {\n let validatedRange = this.validateRange(range);\n const decorations = this._getDecorationsInRange(validatedRange, ownerId, filterOutValidation);\n decorations.push(...this._decorationProvider.getDecorationsInRange(validatedRange, ownerId, filterOutValidation));\n return decorations;\n }\n getOverviewRulerDecorations(ownerId = 0, filterOutValidation = false) {\n return this._decorationsTree.getAll(this, ownerId, filterOutValidation, true);\n }\n getInjectedTextDecorations(ownerId = 0) {\n return this._decorationsTree.getAllInjectedText(this, ownerId);\n }\n _getInjectedTextInLine(lineNumber) {\n const startOffset = this._buffer.getOffsetAt(lineNumber, 1);\n const endOffset = startOffset + this._buffer.getLineLength(lineNumber);\n const result = this._decorationsTree.getInjectedTextInInterval(this, startOffset, endOffset, 0);\n return LineInjectedText.fromDecorations(result).filter(t => t.lineNumber === lineNumber);\n }\n getAllDecorations(ownerId = 0, filterOutValidation = false) {\n let result = this._decorationsTree.getAll(this, ownerId, filterOutValidation, false);\n result = result.concat(this._decorationProvider.getAllDecorations(ownerId, filterOutValidation));\n return result;\n }\n _getDecorationsInRange(filterRange, filterOwnerId, filterOutValidation) {\n const startOffset = this._buffer.getOffsetAt(filterRange.startLineNumber, filterRange.startColumn);\n const endOffset = this._buffer.getOffsetAt(filterRange.endLineNumber, filterRange.endColumn);\n return this._decorationsTree.getAllInInterval(this, startOffset, endOffset, filterOwnerId, filterOutValidation);\n }\n getRangeAt(start, end) {\n return this._buffer.getRangeAt(start, end - start);\n }\n _changeDecorationImpl(decorationId, _range) {\n const node = this._decorations[decorationId];\n if (!node) {\n return;\n }\n if (node.options.after) {\n const oldRange = this.getDecorationRange(decorationId);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.endLineNumber);\n }\n if (node.options.before) {\n const oldRange = this.getDecorationRange(decorationId);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.startLineNumber);\n }\n const range = this._validateRangeRelaxedNoAllocations(_range);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n this._decorationsTree.delete(node);\n node.reset(this.getVersionId(), startOffset, endOffset, range);\n this._decorationsTree.insert(node);\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n if (node.options.after) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n }\n if (node.options.before) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n }\n }\n _changeDecorationOptionsImpl(decorationId, options) {\n const node = this._decorations[decorationId];\n if (!node) {\n return;\n }\n const nodeWasInOverviewRuler = (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n const nodeIsInOverviewRuler = (options.overviewRuler && options.overviewRuler.color ? true : false);\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n this._onDidChangeDecorations.checkAffectedAndFire(options);\n if (node.options.after || options.after) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n }\n if (node.options.before || options.before) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n }\n if (nodeWasInOverviewRuler !== nodeIsInOverviewRuler) {\n // Delete + Insert due to an overview ruler status change\n this._decorationsTree.delete(node);\n node.setOptions(options);\n this._decorationsTree.insert(node);\n }\n else {\n node.setOptions(options);\n }\n }\n _deltaDecorationsImpl(ownerId, oldDecorationsIds, newDecorations) {\n const versionId = this.getVersionId();\n const oldDecorationsLen = oldDecorationsIds.length;\n let oldDecorationIndex = 0;\n const newDecorationsLen = newDecorations.length;\n let newDecorationIndex = 0;\n let result = new Array(newDecorationsLen);\n while (oldDecorationIndex < oldDecorationsLen || newDecorationIndex < newDecorationsLen) {\n let node = null;\n if (oldDecorationIndex < oldDecorationsLen) {\n // (1) get ourselves an old node\n do {\n node = this._decorations[oldDecorationsIds[oldDecorationIndex++]];\n } while (!node && oldDecorationIndex < oldDecorationsLen);\n // (2) remove the node from the tree (if it exists)\n if (node) {\n if (node.options.after) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n }\n if (node.options.before) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n }\n this._decorationsTree.delete(node);\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n }\n }\n if (newDecorationIndex < newDecorationsLen) {\n // (3) create a new node if necessary\n if (!node) {\n const internalDecorationId = (++this._lastDecorationId);\n const decorationId = `${this._instanceId};${internalDecorationId}`;\n node = new IntervalNode(decorationId, 0, 0);\n this._decorations[decorationId] = node;\n }\n // (4) initialize node\n const newDecoration = newDecorations[newDecorationIndex];\n const range = this._validateRangeRelaxedNoAllocations(newDecoration.range);\n const options = _normalizeOptions(newDecoration.options);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n node.ownerId = ownerId;\n node.reset(versionId, startOffset, endOffset, range);\n node.setOptions(options);\n if (node.options.after) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n }\n if (node.options.before) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n }\n this._onDidChangeDecorations.checkAffectedAndFire(options);\n this._decorationsTree.insert(node);\n result[newDecorationIndex] = node.id;\n newDecorationIndex++;\n }\n else {\n if (node) {\n delete this._decorations[node.id];\n }\n }\n }\n return result;\n }\n setTokens(tokens, backgroundTokenizationCompleted = false) {\n if (tokens.length !== 0) {\n let ranges = [];\n for (let i = 0, len = tokens.length; i < len; i++) {\n const element = tokens[i];\n let minChangedLineNumber = 0;\n let maxChangedLineNumber = 0;\n let hasChange = false;\n for (let j = 0, lenJ = element.tokens.length; j < lenJ; j++) {\n const lineNumber = element.startLineNumber + j;\n if (hasChange) {\n this._tokens.setTokens(this._languageId, lineNumber - 1, this._buffer.getLineLength(lineNumber), element.tokens[j], false);\n maxChangedLineNumber = lineNumber;\n }\n else {\n const lineHasChange = this._tokens.setTokens(this._languageId, lineNumber - 1, this._buffer.getLineLength(lineNumber), element.tokens[j], true);\n if (lineHasChange) {\n hasChange = true;\n minChangedLineNumber = lineNumber;\n maxChangedLineNumber = lineNumber;\n }\n }\n }\n if (hasChange) {\n ranges.push({ fromLineNumber: minChangedLineNumber, toLineNumber: maxChangedLineNumber });\n }\n }\n if (ranges.length > 0) {\n this._emitModelTokensChangedEvent({\n tokenizationSupportChanged: false,\n semanticTokensApplied: false,\n ranges: ranges\n });\n }\n }\n this.handleTokenizationProgress(backgroundTokenizationCompleted);\n }\n setSemanticTokens(tokens, isComplete) {\n this._tokens2.set(tokens, isComplete);\n this._emitModelTokensChangedEvent({\n tokenizationSupportChanged: false,\n semanticTokensApplied: tokens !== null,\n ranges: [{ fromLineNumber: 1, toLineNumber: this.getLineCount() }]\n });\n }\n hasCompleteSemanticTokens() {\n return this._tokens2.isComplete();\n }\n hasSomeSemanticTokens() {\n return !this._tokens2.isEmpty();\n }\n setPartialSemanticTokens(range, tokens) {\n if (this.hasCompleteSemanticTokens()) {\n return;\n }\n const changedRange = this._tokens2.setPartial(range, tokens);\n this._emitModelTokensChangedEvent({\n tokenizationSupportChanged: false,\n semanticTokensApplied: true,\n ranges: [{ fromLineNumber: changedRange.startLineNumber, toLineNumber: changedRange.endLineNumber }]\n });\n }\n tokenizeViewport(startLineNumber, endLineNumber) {\n startLineNumber = Math.max(1, startLineNumber);\n endLineNumber = Math.min(this._buffer.getLineCount(), endLineNumber);\n this._tokenization.tokenizeViewport(startLineNumber, endLineNumber);\n }\n clearTokens() {\n this._tokens.flush();\n this._emitModelTokensChangedEvent({\n tokenizationSupportChanged: true,\n semanticTokensApplied: false,\n ranges: [{\n fromLineNumber: 1,\n toLineNumber: this._buffer.getLineCount()\n }]\n });\n }\n _emitModelTokensChangedEvent(e) {\n if (!this._isDisposing) {\n this._onDidChangeTokens.fire(e);\n }\n }\n resetTokenization() {\n this._tokenization.reset();\n }\n forceTokenization(lineNumber) {\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n this._tokenization.forceTokenization(lineNumber);\n }\n isCheapToTokenize(lineNumber) {\n return this._tokenization.isCheapToTokenize(lineNumber);\n }\n tokenizeIfCheap(lineNumber) {\n if (this.isCheapToTokenize(lineNumber)) {\n this.forceTokenization(lineNumber);\n }\n }\n getLineTokens(lineNumber) {\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new Error('Illegal value for lineNumber');\n }\n return this._getLineTokens(lineNumber);\n }\n _getLineTokens(lineNumber) {\n const lineText = this.getLineContent(lineNumber);\n const syntacticTokens = this._tokens.getTokens(this._languageId, lineNumber - 1, lineText);\n return this._tokens2.addSemanticTokens(lineNumber, syntacticTokens);\n }\n getLanguageId() {\n return this._languageId;\n }\n setMode(languageId) {\n if (this._languageId === languageId) {\n // There's nothing to do\n return;\n }\n let e = {\n oldLanguage: this._languageId,\n newLanguage: languageId\n };\n this._languageId = languageId;\n this._onDidChangeLanguage.fire(e);\n this._onDidChangeLanguageConfiguration.fire({});\n }\n getLanguageIdAtPosition(lineNumber, column) {\n const position = this.validatePosition(new Position(lineNumber, column));\n const lineTokens = this.getLineTokens(position.lineNumber);\n return lineTokens.getLanguageId(lineTokens.findTokenIndexAtOffset(position.column - 1));\n }\n getLanguageConfiguration(languageId) {\n return this._languageConfigurationService.getLanguageConfiguration(languageId);\n }\n // Having tokens allows implementing additional helper methods\n getWordAtPosition(_position) {\n this._assertNotDisposed();\n const position = this.validatePosition(_position);\n const lineContent = this.getLineContent(position.lineNumber);\n const lineTokens = this._getLineTokens(position.lineNumber);\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n // (1). First try checking right biased word\n const [rbStartOffset, rbEndOffset] = TextModel._findLanguageBoundaries(lineTokens, tokenIndex);\n const rightBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).getWordDefinition(), lineContent.substring(rbStartOffset, rbEndOffset), rbStartOffset);\n // Make sure the result touches the original passed in position\n if (rightBiasedWord && rightBiasedWord.startColumn <= _position.column && _position.column <= rightBiasedWord.endColumn) {\n return rightBiasedWord;\n }\n // (2). Else, if we were at a language boundary, check the left biased word\n if (tokenIndex > 0 && rbStartOffset === position.column - 1) {\n // edge case, where `position` sits between two tokens belonging to two different languages\n const [lbStartOffset, lbEndOffset] = TextModel._findLanguageBoundaries(lineTokens, tokenIndex - 1);\n const leftBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex - 1)).getWordDefinition(), lineContent.substring(lbStartOffset, lbEndOffset), lbStartOffset);\n // Make sure the result touches the original passed in position\n if (leftBiasedWord && leftBiasedWord.startColumn <= _position.column && _position.column <= leftBiasedWord.endColumn) {\n return leftBiasedWord;\n }\n }\n return null;\n }\n static _findLanguageBoundaries(lineTokens, tokenIndex) {\n const languageId = lineTokens.getLanguageId(tokenIndex);\n // go left until a different language is hit\n let startOffset = 0;\n for (let i = tokenIndex; i >= 0 && lineTokens.getLanguageId(i) === languageId; i--) {\n startOffset = lineTokens.getStartOffset(i);\n }\n // go right until a different language is hit\n let endOffset = lineTokens.getLineContent().length;\n for (let i = tokenIndex, tokenCount = lineTokens.getCount(); i < tokenCount && lineTokens.getLanguageId(i) === languageId; i++) {\n endOffset = lineTokens.getEndOffset(i);\n }\n return [startOffset, endOffset];\n }\n getWordUntilPosition(position) {\n const wordAtPosition = this.getWordAtPosition(position);\n if (!wordAtPosition) {\n return {\n word: '',\n startColumn: position.column,\n endColumn: position.column\n };\n }\n return {\n word: wordAtPosition.word.substr(0, position.column - wordAtPosition.startColumn),\n startColumn: wordAtPosition.startColumn,\n endColumn: position.column\n };\n }\n findMatchingBracketUp(_bracket, _position) {\n let bracket = _bracket.toLowerCase();\n let position = this.validatePosition(_position);\n let lineTokens = this._getLineTokens(position.lineNumber);\n let languageId = lineTokens.getLanguageId(lineTokens.findTokenIndexAtOffset(position.column - 1));\n let bracketsSupport = this.getLanguageConfiguration(languageId).brackets;\n if (!bracketsSupport) {\n return null;\n }\n let data = bracketsSupport.textIsBracket[bracket];\n if (!data) {\n return null;\n }\n return stripBracketSearchCanceled(this._findMatchingBracketUp(data, position, null));\n }\n matchBracket(position) {\n return this._matchBracket(this.validatePosition(position));\n }\n _establishBracketSearchOffsets(position, lineTokens, modeBrackets, tokenIndex) {\n const tokenCount = lineTokens.getCount();\n const currentLanguageId = lineTokens.getLanguageId(tokenIndex);\n // limit search to not go before `maxBracketLength`\n let searchStartOffset = Math.max(0, position.column - 1 - modeBrackets.maxBracketLength);\n for (let i = tokenIndex - 1; i >= 0; i--) {\n const tokenEndOffset = lineTokens.getEndOffset(i);\n if (tokenEndOffset <= searchStartOffset) {\n break;\n }\n if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n searchStartOffset = tokenEndOffset;\n break;\n }\n }\n // limit search to not go after `maxBracketLength`\n let searchEndOffset = Math.min(lineTokens.getLineContent().length, position.column - 1 + modeBrackets.maxBracketLength);\n for (let i = tokenIndex + 1; i < tokenCount; i++) {\n const tokenStartOffset = lineTokens.getStartOffset(i);\n if (tokenStartOffset >= searchEndOffset) {\n break;\n }\n if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n searchEndOffset = tokenStartOffset;\n break;\n }\n }\n return { searchStartOffset, searchEndOffset };\n }\n _matchBracket(position) {\n const lineNumber = position.lineNumber;\n const lineTokens = this._getLineTokens(lineNumber);\n const lineText = this._buffer.getLineContent(lineNumber);\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n if (tokenIndex < 0) {\n return null;\n }\n const currentModeBrackets = this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).brackets;\n // check that the token is not to be ignored\n if (currentModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex))) {\n let { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, currentModeBrackets, tokenIndex);\n // it might be the case that [currentTokenStart -> currentTokenEnd] contains multiple brackets\n // `bestResult` will contain the most right-side result\n let bestResult = null;\n while (true) {\n const foundBracket = BracketsUtils.findNextBracketInRange(currentModeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!foundBracket) {\n // there are no more brackets in this text\n break;\n }\n // check that we didn't hit a bracket too far away from position\n if (foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n const r = this._matchFoundBracket(foundBracket, currentModeBrackets.textIsBracket[foundBracketText], currentModeBrackets.textIsOpenBracket[foundBracketText], null);\n if (r) {\n if (r instanceof BracketSearchCanceled) {\n return null;\n }\n bestResult = r;\n }\n }\n searchStartOffset = foundBracket.endColumn - 1;\n }\n if (bestResult) {\n return bestResult;\n }\n }\n // If position is in between two tokens, try also looking in the previous token\n if (tokenIndex > 0 && lineTokens.getStartOffset(tokenIndex) === position.column - 1) {\n const prevTokenIndex = tokenIndex - 1;\n const prevModeBrackets = this.getLanguageConfiguration(lineTokens.getLanguageId(prevTokenIndex)).brackets;\n // check that previous token is not to be ignored\n if (prevModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(prevTokenIndex))) {\n let { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, prevModeBrackets, prevTokenIndex);\n const foundBracket = BracketsUtils.findPrevBracketInRange(prevModeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n // check that we didn't hit a bracket too far away from position\n if (foundBracket && foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n const r = this._matchFoundBracket(foundBracket, prevModeBrackets.textIsBracket[foundBracketText], prevModeBrackets.textIsOpenBracket[foundBracketText], null);\n if (r) {\n if (r instanceof BracketSearchCanceled) {\n return null;\n }\n return r;\n }\n }\n }\n }\n return null;\n }\n _matchFoundBracket(foundBracket, data, isOpen, continueSearchPredicate) {\n if (!data) {\n return null;\n }\n const matched = (isOpen\n ? this._findMatchingBracketDown(data, foundBracket.getEndPosition(), continueSearchPredicate)\n : this._findMatchingBracketUp(data, foundBracket.getStartPosition(), continueSearchPredicate));\n if (!matched) {\n return null;\n }\n if (matched instanceof BracketSearchCanceled) {\n return matched;\n }\n return [foundBracket, matched];\n }\n _findMatchingBracketUp(bracket, position, continueSearchPredicate) {\n // console.log('_findMatchingBracketUp: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n const languageId = bracket.languageId;\n const reversedBracketRegex = bracket.reversedRegex;\n let count = -1;\n let totalCallCount = 0;\n const searchPrevMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n if (bracket.isOpen(hitText)) {\n count++;\n }\n else if (bracket.isClose(hitText)) {\n count--;\n }\n if (count === 0) {\n return r;\n }\n searchEndOffset = r.startColumn - 1;\n }\n return null;\n };\n for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n const lineTokens = this._getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this._buffer.getLineContent(lineNumber);\n let tokenIndex = tokenCount - 1;\n let searchStartOffset = lineText.length;\n let searchEndOffset = lineText.length;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n }\n let prevSearchInToken = true;\n for (; tokenIndex >= 0; tokenIndex--) {\n const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchStartOffset\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n return null;\n }\n _findMatchingBracketDown(bracket, position, continueSearchPredicate) {\n // console.log('_findMatchingBracketDown: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n const languageId = bracket.languageId;\n const bracketRegex = bracket.forwardRegex;\n let count = 1;\n let totalCallCount = 0;\n const searchNextMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findNextBracketInRange(bracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n if (bracket.isOpen(hitText)) {\n count++;\n }\n else if (bracket.isClose(hitText)) {\n count--;\n }\n if (count === 0) {\n return r;\n }\n searchStartOffset = r.endColumn - 1;\n }\n return null;\n };\n const lineCount = this.getLineCount();\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this._getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this._buffer.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n return null;\n }\n findPrevBracket(_position) {\n const position = this.validatePosition(_position);\n let languageId = null;\n let modeBrackets = null;\n for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n const lineTokens = this._getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this._buffer.getLineContent(lineNumber);\n let tokenIndex = tokenCount - 1;\n let searchStartOffset = lineText.length;\n let searchEndOffset = lineText.length;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex >= 0; tokenIndex--) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchStartOffset\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n }\n }\n return null;\n }\n findNextBracket(_position) {\n const position = this.validatePosition(_position);\n const lineCount = this.getLineCount();\n let languageId = null;\n let modeBrackets = null;\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this._getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this._buffer.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(modeBrackets, r);\n }\n }\n }\n return null;\n }\n findEnclosingBrackets(_position, maxDuration) {\n let continueSearchPredicate;\n if (typeof maxDuration === 'undefined') {\n continueSearchPredicate = null;\n }\n else {\n const startTime = Date.now();\n continueSearchPredicate = () => {\n return (Date.now() - startTime <= maxDuration);\n };\n }\n const position = this.validatePosition(_position);\n const lineCount = this.getLineCount();\n const savedCounts = new Map();\n let counts = [];\n const resetCounts = (languageId, modeBrackets) => {\n if (!savedCounts.has(languageId)) {\n let tmp = [];\n for (let i = 0, len = modeBrackets ? modeBrackets.brackets.length : 0; i < len; i++) {\n tmp[i] = 0;\n }\n savedCounts.set(languageId, tmp);\n }\n counts = savedCounts.get(languageId);\n };\n let totalCallCount = 0;\n const searchInRange = (modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n const bracket = modeBrackets.textIsBracket[hitText];\n if (bracket) {\n if (bracket.isOpen(hitText)) {\n counts[bracket.index]++;\n }\n else if (bracket.isClose(hitText)) {\n counts[bracket.index]--;\n }\n if (counts[bracket.index] === -1) {\n return this._matchFoundBracket(r, bracket, false, continueSearchPredicate);\n }\n }\n searchStartOffset = r.endColumn - 1;\n }\n return null;\n };\n let languageId = null;\n let modeBrackets = null;\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this._getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this._buffer.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n resetCounts(languageId, modeBrackets);\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.getLanguageConfiguration(languageId).brackets;\n resetCounts(languageId, modeBrackets);\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n }\n }\n return null;\n }\n _toFoundBracket(modeBrackets, r) {\n if (!r) {\n return null;\n }\n let text = this.getValueInRange(r);\n text = text.toLowerCase();\n let data = modeBrackets.textIsBracket[text];\n if (!data) {\n return null;\n }\n return {\n range: r,\n open: data.open,\n close: data.close,\n isOpen: modeBrackets.textIsOpenBracket[text]\n };\n }\n /**\n * Returns:\n * - -1 => the line consists of whitespace\n * - otherwise => the indent level is returned value\n */\n static computeIndentLevel(line, tabSize) {\n let indent = 0;\n let i = 0;\n let len = line.length;\n while (i < len) {\n let chCode = line.charCodeAt(i);\n if (chCode === 32 /* Space */) {\n indent++;\n }\n else if (chCode === 9 /* Tab */) {\n indent = indent - indent % tabSize + tabSize;\n }\n else {\n break;\n }\n i++;\n }\n if (i === len) {\n return -1; // line only consists of whitespace\n }\n return indent;\n }\n _computeIndentLevel(lineIndex) {\n return TextModel.computeIndentLevel(this._buffer.getLineContent(lineIndex + 1), this._options.tabSize);\n }\n getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n this._assertNotDisposed();\n const lineCount = this.getLineCount();\n if (lineNumber < 1 || lineNumber > lineCount) {\n throw new Error('Illegal value for lineNumber');\n }\n const foldingRules = this.getLanguageConfiguration(this._languageId).foldingRules;\n const offSide = Boolean(foldingRules && foldingRules.offSide);\n let up_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let up_aboveContentLineIndent = -1;\n let up_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let up_belowContentLineIndent = -1;\n const up_resolveIndents = (lineNumber) => {\n if (up_aboveContentLineIndex !== -1 && (up_aboveContentLineIndex === -2 || up_aboveContentLineIndex > lineNumber - 1)) {\n up_aboveContentLineIndex = -1;\n up_aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n up_aboveContentLineIndex = lineIndex;\n up_aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (up_belowContentLineIndex === -2) {\n up_belowContentLineIndex = -1;\n up_belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n up_belowContentLineIndex = lineIndex;\n up_belowContentLineIndent = indent;\n break;\n }\n }\n }\n };\n let down_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let down_aboveContentLineIndent = -1;\n let down_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let down_belowContentLineIndent = -1;\n const down_resolveIndents = (lineNumber) => {\n if (down_aboveContentLineIndex === -2) {\n down_aboveContentLineIndex = -1;\n down_aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n down_aboveContentLineIndex = lineIndex;\n down_aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (down_belowContentLineIndex !== -1 && (down_belowContentLineIndex === -2 || down_belowContentLineIndex < lineNumber - 1)) {\n down_belowContentLineIndex = -1;\n down_belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n down_belowContentLineIndex = lineIndex;\n down_belowContentLineIndent = indent;\n break;\n }\n }\n }\n };\n let startLineNumber = 0;\n let goUp = true;\n let endLineNumber = 0;\n let goDown = true;\n let indent = 0;\n let initialIndent = 0;\n for (let distance = 0; goUp || goDown; distance++) {\n const upLineNumber = lineNumber - distance;\n const downLineNumber = lineNumber + distance;\n if (distance > 1 && (upLineNumber < 1 || upLineNumber < minLineNumber)) {\n goUp = false;\n }\n if (distance > 1 && (downLineNumber > lineCount || downLineNumber > maxLineNumber)) {\n goDown = false;\n }\n if (distance > 50000) {\n // stop processing\n goUp = false;\n goDown = false;\n }\n let upLineIndentLevel = -1;\n if (goUp) {\n // compute indent level going up\n const currentIndent = this._computeIndentLevel(upLineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n up_belowContentLineIndex = upLineNumber - 1;\n up_belowContentLineIndent = currentIndent;\n upLineIndentLevel = Math.ceil(currentIndent / this._options.indentSize);\n }\n else {\n up_resolveIndents(upLineNumber);\n upLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, up_aboveContentLineIndent, up_belowContentLineIndent);\n }\n }\n let downLineIndentLevel = -1;\n if (goDown) {\n // compute indent level going down\n const currentIndent = this._computeIndentLevel(downLineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n down_aboveContentLineIndex = downLineNumber - 1;\n down_aboveContentLineIndent = currentIndent;\n downLineIndentLevel = Math.ceil(currentIndent / this._options.indentSize);\n }\n else {\n down_resolveIndents(downLineNumber);\n downLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, down_aboveContentLineIndent, down_belowContentLineIndent);\n }\n }\n if (distance === 0) {\n initialIndent = upLineIndentLevel;\n continue;\n }\n if (distance === 1) {\n if (downLineNumber <= lineCount && downLineIndentLevel >= 0 && initialIndent + 1 === downLineIndentLevel) {\n // This is the beginning of a scope, we have special handling here, since we want the\n // child scope indent to be active, not the parent scope\n goUp = false;\n startLineNumber = downLineNumber;\n endLineNumber = downLineNumber;\n indent = downLineIndentLevel;\n continue;\n }\n if (upLineNumber >= 1 && upLineIndentLevel >= 0 && upLineIndentLevel - 1 === initialIndent) {\n // This is the end of a scope, just like above\n goDown = false;\n startLineNumber = upLineNumber;\n endLineNumber = upLineNumber;\n indent = upLineIndentLevel;\n continue;\n }\n startLineNumber = lineNumber;\n endLineNumber = lineNumber;\n indent = initialIndent;\n if (indent === 0) {\n // No need to continue\n return { startLineNumber, endLineNumber, indent };\n }\n }\n if (goUp) {\n if (upLineIndentLevel >= indent) {\n startLineNumber = upLineNumber;\n }\n else {\n goUp = false;\n }\n }\n if (goDown) {\n if (downLineIndentLevel >= indent) {\n endLineNumber = downLineNumber;\n }\n else {\n goDown = false;\n }\n }\n }\n return { startLineNumber, endLineNumber, indent };\n }\n getLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options) {\n var _a, _b, _c, _d, _e;\n const result = [];\n const bracketPairs = this._bracketPairColorizer.getBracketPairsInRangeWithMinIndentation(new Range(startLineNumber, 1, endLineNumber, this.getLineMaxColumn(endLineNumber)));\n let activeBracketPairRange = undefined;\n if (activePosition && bracketPairs.length > 0) {\n const bracketsContainingActivePosition = (startLineNumber <= activePosition.lineNumber && activePosition.lineNumber <= endLineNumber)\n // Does active position intersect with the view port? -> Intersect bracket pairs with activePosition\n ? bracketPairs.filter(bp => bp.range.containsPosition(activePosition))\n : this._bracketPairColorizer.getBracketPairsInRange(Range.fromPositions(activePosition));\n activeBracketPairRange = (_a = findLast(bracketsContainingActivePosition, \n /* Exclude single line bracket pairs for cases such as\n * ```\n * function test() {\n * \t\tif (true) { | }\n * }\n * ```\n */\n (i) => i.range.startLineNumber !== i.range.endLineNumber)) === null || _a === void 0 ? void 0 : _a.range;\n }\n const queue = new ArrayQueue(bracketPairs);\n /** Indexed by nesting level */\n const activeGuides = new Array();\n const nextGuides = new Array();\n const colorProvider = new BracketPairGuidesClassNames();\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n let guides = new Array();\n if (nextGuides.length > 0) {\n guides = guides.concat(nextGuides);\n nextGuides.length = 0;\n }\n result.push(guides);\n // Update activeGuides\n for (const pair of queue.takeWhile(b => b.openingBracketRange.startLineNumber <= lineNumber) || []) {\n if (pair.range.startLineNumber === pair.range.endLineNumber) {\n // ignore single line brackets\n continue;\n }\n const guideVisibleColumn = Math.min(this.getVisibleColumnFromPosition(pair.openingBracketRange.getStartPosition()), this.getVisibleColumnFromPosition((_c = (_b = pair.closingBracketRange) === null || _b === void 0 ? void 0 : _b.getStartPosition()) !== null && _c !== void 0 ? _c : pair.range.getEndPosition()), pair.minVisibleColumnIndentation + 1);\n let renderHorizontalEndLineAtTheBottom = false;\n if (pair.closingBracketRange) {\n const firstNonWsIndex = strings.firstNonWhitespaceIndex(this.getLineContent(pair.closingBracketRange.startLineNumber));\n if (firstNonWsIndex < pair.closingBracketRange.startColumn - 1) {\n renderHorizontalEndLineAtTheBottom = true;\n }\n }\n // TODO: Consider indentation when computing guideVisibleColumn\n const start = pair.openingBracketRange.getStartPosition();\n const end = ((_e = (_d = pair.closingBracketRange) === null || _d === void 0 ? void 0 : _d.getStartPosition()) !== null && _e !== void 0 ? _e : pair.range.getEndPosition());\n if (pair.closingBracketRange === undefined) {\n // Don't show guides for bracket pairs that are not balanced.\n // See #135125.\n activeGuides[pair.nestingLevel] = null;\n }\n else {\n activeGuides[pair.nestingLevel] = {\n nestingLevel: pair.nestingLevel,\n guideVisibleColumn,\n start,\n visibleStartColumn: this.getVisibleColumnFromPosition(start),\n end,\n visibleEndColumn: this.getVisibleColumnFromPosition(end),\n bracketPair: pair,\n renderHorizontalEndLineAtTheBottom\n };\n }\n }\n for (const line of activeGuides) {\n if (!line) {\n continue;\n }\n const isActive = activeBracketPairRange && line.bracketPair.range.equalsRange(activeBracketPairRange);\n const className = colorProvider.getInlineClassNameOfLevel(line.nestingLevel) +\n (options.highlightActive && isActive ? ' ' + colorProvider.activeClassName : '');\n if ((isActive && options.horizontalGuides !== model.HorizontalGuidesState.Disabled)\n || (options.includeInactive && options.horizontalGuides === model.HorizontalGuidesState.Enabled)) {\n if (line.start.lineNumber === lineNumber) {\n if (line.guideVisibleColumn < line.visibleStartColumn) {\n guides.push(new model.IndentGuide(line.guideVisibleColumn, className, new model.IndentGuideHorizontalLine(false, line.start.column)));\n }\n }\n if (line.end.lineNumber === lineNumber + 1) {\n // The next line might have horizontal guides.\n // However, the next line might also have a new bracket pair with the same indentation,\n // so the current bracket pair might get replaced. That's why we push the guide to nextGuides one line ahead.\n if (line.guideVisibleColumn < line.visibleEndColumn) {\n nextGuides.push(new model.IndentGuide(line.guideVisibleColumn, className, new model.IndentGuideHorizontalLine(!line.renderHorizontalEndLineAtTheBottom, line.end.column)));\n }\n }\n }\n }\n let lastVisibleColumnCount = Number.MAX_SAFE_INTEGER;\n // Going backwards, so the last guide potentially replaces others\n for (let i = activeGuides.length - 1; i >= 0; i--) {\n const line = activeGuides[i];\n if (!line) {\n continue;\n }\n const isActive = options.highlightActive && activeBracketPairRange &&\n line.bracketPair.range.equalsRange(activeBracketPairRange);\n const className = colorProvider.getInlineClassNameOfLevel(line.nestingLevel) +\n (isActive ? ' ' + colorProvider.activeClassName : '');\n if (isActive || options.includeInactive) {\n if (line.renderHorizontalEndLineAtTheBottom && line.end.lineNumber === lineNumber + 1) {\n nextGuides.push(new model.IndentGuide(line.guideVisibleColumn, className, null));\n }\n }\n if (line.end.lineNumber <= lineNumber\n || line.start.lineNumber >= lineNumber) {\n continue;\n }\n if (line.guideVisibleColumn >= lastVisibleColumnCount && !isActive) {\n // Don't render a guide on top of an existing guide, unless it is active.\n continue;\n }\n lastVisibleColumnCount = line.guideVisibleColumn;\n if (isActive || options.includeInactive) {\n guides.push(new model.IndentGuide(line.guideVisibleColumn, className, null));\n }\n }\n guides.sort((a, b) => a.visibleColumn - b.visibleColumn);\n }\n return result;\n }\n getVisibleColumnFromPosition(position) {\n return CursorColumns.visibleColumnFromColumn(this.getLineContent(position.lineNumber), position.column, this._options.tabSize) + 1;\n }\n getLinesIndentGuides(startLineNumber, endLineNumber) {\n this._assertNotDisposed();\n const lineCount = this.getLineCount();\n if (startLineNumber < 1 || startLineNumber > lineCount) {\n throw new Error('Illegal value for startLineNumber');\n }\n if (endLineNumber < 1 || endLineNumber > lineCount) {\n throw new Error('Illegal value for endLineNumber');\n }\n const foldingRules = this.getLanguageConfiguration(this._languageId).foldingRules;\n const offSide = Boolean(foldingRules && foldingRules.offSide);\n let result = new Array(endLineNumber - startLineNumber + 1);\n let aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let aboveContentLineIndent = -1;\n let belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let belowContentLineIndent = -1;\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n let resultIndex = lineNumber - startLineNumber;\n const currentIndent = this._computeIndentLevel(lineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n aboveContentLineIndex = lineNumber - 1;\n aboveContentLineIndent = currentIndent;\n result[resultIndex] = Math.ceil(currentIndent / this._options.indentSize);\n continue;\n }\n if (aboveContentLineIndex === -2) {\n aboveContentLineIndex = -1;\n aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n aboveContentLineIndex = lineIndex;\n aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (belowContentLineIndex !== -1 && (belowContentLineIndex === -2 || belowContentLineIndex < lineNumber - 1)) {\n belowContentLineIndex = -1;\n belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n let indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n belowContentLineIndex = lineIndex;\n belowContentLineIndent = indent;\n break;\n }\n }\n }\n result[resultIndex] = this._getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent);\n }\n return result;\n }\n _getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent) {\n if (aboveContentLineIndent === -1 || belowContentLineIndent === -1) {\n // At the top or bottom of the file\n return 0;\n }\n else if (aboveContentLineIndent < belowContentLineIndent) {\n // we are inside the region above\n return (1 + Math.floor(aboveContentLineIndent / this._options.indentSize));\n }\n else if (aboveContentLineIndent === belowContentLineIndent) {\n // we are in between two regions\n return Math.ceil(belowContentLineIndent / this._options.indentSize);\n }\n else {\n if (offSide) {\n // same level as region below\n return Math.ceil(belowContentLineIndent / this._options.indentSize);\n }\n else {\n // we are inside the region that ends below\n return (1 + Math.floor(belowContentLineIndent / this._options.indentSize));\n }\n }\n }\n //#endregion\n normalizePosition(position, affinity) {\n return position;\n }\n /**\n * Gets the column at which indentation stops at a given line.\n * @internal\n */\n getLineIndentColumn(lineNumber) {\n // Columns start with 1.\n return indentOfLine(this.getLineContent(lineNumber)) + 1;\n }\n};\nTextModel.MODEL_SYNC_LIMIT = 50 * 1024 * 1024; // 50 MB\nTextModel.LARGE_FILE_SIZE_THRESHOLD = 20 * 1024 * 1024; // 20 MB;\nTextModel.LARGE_FILE_LINE_COUNT_THRESHOLD = 300 * 1000; // 300K lines\nTextModel.DEFAULT_CREATION_OPTIONS = {\n isForSimpleWidget: false,\n tabSize: EDITOR_MODEL_DEFAULTS.tabSize,\n indentSize: EDITOR_MODEL_DEFAULTS.indentSize,\n insertSpaces: EDITOR_MODEL_DEFAULTS.insertSpaces,\n detectIndentation: false,\n defaultEOL: 1 /* LF */,\n trimAutoWhitespace: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n largeFileOptimizations: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n bracketPairColorizationOptions: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions,\n};\nTextModel = __decorate([\n __param(4, IUndoRedoService),\n __param(5, IModeService),\n __param(6, ILanguageConfigurationService)\n], TextModel);\nexport { TextModel };\nfunction indentOfLine(line) {\n let indent = 0;\n for (const c of line) {\n if (c === ' ' || c === '\\t') {\n indent++;\n }\n else {\n break;\n }\n }\n return indent;\n}\nexport class BracketPairGuidesClassNames {\n constructor() {\n this.activeClassName = 'indent-active';\n }\n getInlineClassNameOfLevel(level) {\n // To support a dynamic amount of colors up to 6 colors,\n // we use a number that is a lcm of all numbers from 1 to 6.\n return `bracket-indent-guide lvl-${level % 30}`;\n }\n}\n//#region Decorations\nfunction isNodeInOverviewRuler(node) {\n return (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n}\nfunction isNodeInjectedText(node) {\n return !!node.options.after || !!node.options.before;\n}\nclass DecorationsTrees {\n constructor() {\n this._decorationsTree0 = new IntervalTree();\n this._decorationsTree1 = new IntervalTree();\n this._injectedTextDecorationsTree = new IntervalTree();\n }\n ensureAllNodesHaveRanges(host) {\n this.getAll(host, 0, false, false);\n }\n _ensureNodesHaveRanges(host, nodes) {\n for (const node of nodes) {\n if (node.range === null) {\n node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n }\n }\n return nodes;\n }\n getAllInInterval(host, start, end, filterOwnerId, filterOutValidation) {\n const versionId = host.getVersionId();\n const result = this._intervalSearch(start, end, filterOwnerId, filterOutValidation, versionId);\n return this._ensureNodesHaveRanges(host, result);\n }\n _intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId) {\n const r0 = this._decorationsTree0.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId);\n const r1 = this._decorationsTree1.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId);\n const r2 = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId);\n return r0.concat(r1).concat(r2);\n }\n getInjectedTextInInterval(host, start, end, filterOwnerId) {\n const versionId = host.getVersionId();\n const result = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, false, versionId);\n return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n }\n getAllInjectedText(host, filterOwnerId) {\n const versionId = host.getVersionId();\n const result = this._injectedTextDecorationsTree.search(filterOwnerId, false, versionId);\n return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n }\n getAll(host, filterOwnerId, filterOutValidation, overviewRulerOnly) {\n const versionId = host.getVersionId();\n const result = this._search(filterOwnerId, filterOutValidation, overviewRulerOnly, versionId);\n return this._ensureNodesHaveRanges(host, result);\n }\n _search(filterOwnerId, filterOutValidation, overviewRulerOnly, cachedVersionId) {\n if (overviewRulerOnly) {\n return this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId);\n }\n else {\n const r0 = this._decorationsTree0.search(filterOwnerId, filterOutValidation, cachedVersionId);\n const r1 = this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId);\n const r2 = this._injectedTextDecorationsTree.search(filterOwnerId, filterOutValidation, cachedVersionId);\n return r0.concat(r1).concat(r2);\n }\n }\n collectNodesFromOwner(ownerId) {\n const r0 = this._decorationsTree0.collectNodesFromOwner(ownerId);\n const r1 = this._decorationsTree1.collectNodesFromOwner(ownerId);\n const r2 = this._injectedTextDecorationsTree.collectNodesFromOwner(ownerId);\n return r0.concat(r1).concat(r2);\n }\n collectNodesPostOrder() {\n const r0 = this._decorationsTree0.collectNodesPostOrder();\n const r1 = this._decorationsTree1.collectNodesPostOrder();\n const r2 = this._injectedTextDecorationsTree.collectNodesPostOrder();\n return r0.concat(r1).concat(r2);\n }\n insert(node) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.insert(node);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.insert(node);\n }\n else {\n this._decorationsTree0.insert(node);\n }\n }\n delete(node) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.delete(node);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.delete(node);\n }\n else {\n this._decorationsTree0.delete(node);\n }\n }\n getNodeRange(host, node) {\n const versionId = host.getVersionId();\n if (node.cachedVersionId !== versionId) {\n this._resolveNode(node, versionId);\n }\n if (node.range === null) {\n node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n }\n return node.range;\n }\n _resolveNode(node, cachedVersionId) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.resolveNode(node, cachedVersionId);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.resolveNode(node, cachedVersionId);\n }\n else {\n this._decorationsTree0.resolveNode(node, cachedVersionId);\n }\n }\n acceptReplace(offset, length, textLength, forceMoveMarkers) {\n this._decorationsTree0.acceptReplace(offset, length, textLength, forceMoveMarkers);\n this._decorationsTree1.acceptReplace(offset, length, textLength, forceMoveMarkers);\n this._injectedTextDecorationsTree.acceptReplace(offset, length, textLength, forceMoveMarkers);\n }\n}\nfunction cleanClassName(className) {\n return className.replace(/[^a-z0-9\\-_]/gi, ' ');\n}\nclass DecorationOptions {\n constructor(options) {\n this.color = options.color || '';\n this.darkColor = options.darkColor || '';\n }\n}\nexport class ModelDecorationOverviewRulerOptions extends DecorationOptions {\n constructor(options) {\n super(options);\n this._resolvedColor = null;\n this.position = (typeof options.position === 'number' ? options.position : model.OverviewRulerLane.Center);\n }\n getColor(theme) {\n if (!this._resolvedColor) {\n if (theme.type !== 'light' && this.darkColor) {\n this._resolvedColor = this._resolveColor(this.darkColor, theme);\n }\n else {\n this._resolvedColor = this._resolveColor(this.color, theme);\n }\n }\n return this._resolvedColor;\n }\n invalidateCachedColor() {\n this._resolvedColor = null;\n }\n _resolveColor(color, theme) {\n if (typeof color === 'string') {\n return color;\n }\n let c = color ? theme.getColor(color.id) : null;\n if (!c) {\n return '';\n }\n return c.toString();\n }\n}\nexport class ModelDecorationMinimapOptions extends DecorationOptions {\n constructor(options) {\n super(options);\n this.position = options.position;\n }\n getColor(theme) {\n if (!this._resolvedColor) {\n if (theme.type !== 'light' && this.darkColor) {\n this._resolvedColor = this._resolveColor(this.darkColor, theme);\n }\n else {\n this._resolvedColor = this._resolveColor(this.color, theme);\n }\n }\n return this._resolvedColor;\n }\n invalidateCachedColor() {\n this._resolvedColor = undefined;\n }\n _resolveColor(color, theme) {\n if (typeof color === 'string') {\n return Color.fromHex(color);\n }\n return theme.getColor(color.id);\n }\n}\nexport class ModelDecorationInjectedTextOptions {\n constructor(options) {\n this.content = options.content || '';\n this.inlineClassName = options.inlineClassName || null;\n this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n }\n static from(options) {\n if (options instanceof ModelDecorationInjectedTextOptions) {\n return options;\n }\n return new ModelDecorationInjectedTextOptions(options);\n }\n}\nexport class ModelDecorationOptions {\n constructor(options) {\n this.description = options.description;\n this.stickiness = options.stickiness || 0 /* AlwaysGrowsWhenTypingAtEdges */;\n this.zIndex = options.zIndex || 0;\n this.className = options.className ? cleanClassName(options.className) : null;\n this.hoverMessage = options.hoverMessage || null;\n this.glyphMarginHoverMessage = options.glyphMarginHoverMessage || null;\n this.isWholeLine = options.isWholeLine || false;\n this.showIfCollapsed = options.showIfCollapsed || false;\n this.collapseOnReplaceEdit = options.collapseOnReplaceEdit || false;\n this.overviewRuler = options.overviewRuler ? new ModelDecorationOverviewRulerOptions(options.overviewRuler) : null;\n this.minimap = options.minimap ? new ModelDecorationMinimapOptions(options.minimap) : null;\n this.glyphMarginClassName = options.glyphMarginClassName ? cleanClassName(options.glyphMarginClassName) : null;\n this.linesDecorationsClassName = options.linesDecorationsClassName ? cleanClassName(options.linesDecorationsClassName) : null;\n this.firstLineDecorationClassName = options.firstLineDecorationClassName ? cleanClassName(options.firstLineDecorationClassName) : null;\n this.marginClassName = options.marginClassName ? cleanClassName(options.marginClassName) : null;\n this.inlineClassName = options.inlineClassName ? cleanClassName(options.inlineClassName) : null;\n this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n this.beforeContentClassName = options.beforeContentClassName ? cleanClassName(options.beforeContentClassName) : null;\n this.afterContentClassName = options.afterContentClassName ? cleanClassName(options.afterContentClassName) : null;\n this.after = options.after ? ModelDecorationInjectedTextOptions.from(options.after) : null;\n this.before = options.before ? ModelDecorationInjectedTextOptions.from(options.before) : null;\n }\n static register(options) {\n return new ModelDecorationOptions(options);\n }\n static createDynamic(options) {\n return new ModelDecorationOptions(options);\n }\n}\nModelDecorationOptions.EMPTY = ModelDecorationOptions.register({ description: 'empty' });\n/**\n * The order carefully matches the values of the enum.\n */\nconst TRACKED_RANGE_OPTIONS = [\n ModelDecorationOptions.register({ description: 'tracked-range-always-grows-when-typing-at-edges', stickiness: 0 /* AlwaysGrowsWhenTypingAtEdges */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-never-grows-when-typing-at-edges', stickiness: 1 /* NeverGrowsWhenTypingAtEdges */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-before', stickiness: 2 /* GrowsOnlyWhenTypingBefore */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-after', stickiness: 3 /* GrowsOnlyWhenTypingAfter */ }),\n];\nfunction _normalizeOptions(options) {\n if (options instanceof ModelDecorationOptions) {\n return options;\n }\n return ModelDecorationOptions.createDynamic(options);\n}\nexport class DidChangeDecorationsEmitter extends Disposable {\n constructor(handleBeforeFire) {\n super();\n this.handleBeforeFire = handleBeforeFire;\n this._actual = this._register(new Emitter());\n this.event = this._actual.event;\n this._affectedInjectedTextLines = null;\n this._deferredCnt = 0;\n this._shouldFire = false;\n this._affectsMinimap = false;\n this._affectsOverviewRuler = false;\n }\n beginDeferredEmit() {\n this._deferredCnt++;\n }\n endDeferredEmit() {\n var _a;\n this._deferredCnt--;\n if (this._deferredCnt === 0) {\n if (this._shouldFire) {\n this.handleBeforeFire(this._affectedInjectedTextLines);\n const event = {\n affectsMinimap: this._affectsMinimap,\n affectsOverviewRuler: this._affectsOverviewRuler\n };\n this._shouldFire = false;\n this._affectsMinimap = false;\n this._affectsOverviewRuler = false;\n this._actual.fire(event);\n }\n (_a = this._affectedInjectedTextLines) === null || _a === void 0 ? void 0 : _a.clear();\n this._affectedInjectedTextLines = null;\n }\n }\n recordLineAffectedByInjectedText(lineNumber) {\n if (!this._affectedInjectedTextLines) {\n this._affectedInjectedTextLines = new Set();\n }\n this._affectedInjectedTextLines.add(lineNumber);\n }\n checkAffectedAndFire(options) {\n if (!this._affectsMinimap) {\n this._affectsMinimap = options.minimap && options.minimap.position ? true : false;\n }\n if (!this._affectsOverviewRuler) {\n this._affectsOverviewRuler = options.overviewRuler && options.overviewRuler.color ? true : false;\n }\n this._shouldFire = true;\n }\n fire() {\n this._affectsMinimap = true;\n this._affectsOverviewRuler = true;\n this._shouldFire = true;\n }\n}\n//#endregion\nexport class DidChangeContentEmitter extends Disposable {\n constructor() {\n super();\n /**\n * Both `fastEvent` and `slowEvent` work the same way and contain the same events, but first we invoke `fastEvent` and then `slowEvent`.\n */\n this._fastEmitter = this._register(new Emitter());\n this.fastEvent = this._fastEmitter.event;\n this._slowEmitter = this._register(new Emitter());\n this.slowEvent = this._slowEmitter.event;\n this._deferredCnt = 0;\n this._deferredEvent = null;\n }\n beginDeferredEmit() {\n this._deferredCnt++;\n }\n endDeferredEmit(resultingSelection = null) {\n this._deferredCnt--;\n if (this._deferredCnt === 0) {\n if (this._deferredEvent !== null) {\n this._deferredEvent.rawContentChangedEvent.resultingSelection = resultingSelection;\n const e = this._deferredEvent;\n this._deferredEvent = null;\n this._fastEmitter.fire(e);\n this._slowEmitter.fire(e);\n }\n }\n }\n fire(e) {\n if (this._deferredCnt > 0) {\n if (this._deferredEvent) {\n this._deferredEvent = this._deferredEvent.merge(e);\n }\n else {\n this._deferredEvent = e;\n }\n return;\n }\n this._fastEmitter.fire(e);\n this._slowEmitter.fire(e);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../common/event.js';\nclass WindowManager {\n constructor() {\n // --- Zoom Level\n this._zoomLevel = 0;\n this._lastZoomLevelChangeTime = 0;\n this._onDidChangeZoomLevel = new Emitter();\n this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;\n // --- Zoom Factor\n this._zoomFactor = 1;\n }\n getZoomLevel() {\n return this._zoomLevel;\n }\n getTimeSinceLastZoomLevelChanged() {\n return Date.now() - this._lastZoomLevelChangeTime;\n }\n getZoomFactor() {\n return this._zoomFactor;\n }\n // --- Pixel Ratio\n getPixelRatio() {\n let ctx = document.createElement('canvas').getContext('2d');\n let dpr = window.devicePixelRatio || 1;\n let bsr = ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n return dpr / bsr;\n }\n}\nWindowManager.INSTANCE = new WindowManager();\nexport function getZoomLevel() {\n return WindowManager.INSTANCE.getZoomLevel();\n}\n/** Returns the time (in ms) since the zoom level was changed */\nexport function getTimeSinceLastZoomLevelChanged() {\n return WindowManager.INSTANCE.getTimeSinceLastZoomLevelChanged();\n}\nexport function onDidChangeZoomLevel(callback) {\n return WindowManager.INSTANCE.onDidChangeZoomLevel(callback);\n}\n/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */\nexport function getZoomFactor() {\n return WindowManager.INSTANCE.getZoomFactor();\n}\nexport function getPixelRatio() {\n return WindowManager.INSTANCE.getPixelRatio();\n}\nconst userAgent = navigator.userAgent;\nexport const isFirefox = (userAgent.indexOf('Firefox') >= 0);\nexport const isWebKit = (userAgent.indexOf('AppleWebKit') >= 0);\nexport const isChrome = (userAgent.indexOf('Chrome') >= 0);\nexport const isSafari = (!isChrome && (userAgent.indexOf('Safari') >= 0));\nexport const isWebkitWebView = (!isChrome && !isSafari && isWebKit);\nexport const isAndroid = (userAgent.indexOf('Android') >= 0);\nexport const isStandalone = (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { Color, RGBA } from '../../../base/common/color.js';\nimport { activeContrastBorder, editorBackground, editorForeground, registerColor, editorWarningForeground, editorInfoForeground, editorWarningBorder, editorInfoBorder, contrastBorder, editorFindMatchHighlight } from '../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant } from '../../../platform/theme/common/themeService.js';\n/**\n * Definition of the editor colors\n */\nexport const editorLineHighlight = registerColor('editor.lineHighlightBackground', { dark: null, light: null, hc: null }, nls.localize('lineHighlight', 'Background color for the highlight of line at the cursor position.'));\nexport const editorLineHighlightBorder = registerColor('editor.lineHighlightBorder', { dark: '#282828', light: '#eeeeee', hc: '#f38518' }, nls.localize('lineHighlightBorderBox', 'Background color for the border around the line at the cursor position.'));\nexport const editorRangeHighlight = registerColor('editor.rangeHighlightBackground', { dark: '#ffffff0b', light: '#fdff0033', hc: null }, nls.localize('rangeHighlight', 'Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorRangeHighlightBorder = registerColor('editor.rangeHighlightBorder', { dark: null, light: null, hc: activeContrastBorder }, nls.localize('rangeHighlightBorder', 'Background color of the border around highlighted ranges.'), true);\nexport const editorSymbolHighlight = registerColor('editor.symbolHighlightBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hc: null }, nls.localize('symbolHighlight', 'Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSymbolHighlightBorder = registerColor('editor.symbolHighlightBorder', { dark: null, light: null, hc: activeContrastBorder }, nls.localize('symbolHighlightBorder', 'Background color of the border around highlighted symbols.'), true);\nexport const editorCursorForeground = registerColor('editorCursor.foreground', { dark: '#AEAFAD', light: Color.black, hc: Color.white }, nls.localize('caret', 'Color of the editor cursor.'));\nexport const editorCursorBackground = registerColor('editorCursor.background', null, nls.localize('editorCursorBackground', 'The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.'));\nexport const editorWhitespaces = registerColor('editorWhitespace.foreground', { dark: '#e3e4e229', light: '#33333333', hc: '#e3e4e229' }, nls.localize('editorWhitespaces', 'Color of whitespace characters in the editor.'));\nexport const editorIndentGuides = registerColor('editorIndentGuide.background', { dark: editorWhitespaces, light: editorWhitespaces, hc: editorWhitespaces }, nls.localize('editorIndentGuides', 'Color of the editor indentation guides.'));\nexport const editorActiveIndentGuides = registerColor('editorIndentGuide.activeBackground', { dark: editorWhitespaces, light: editorWhitespaces, hc: editorWhitespaces }, nls.localize('editorActiveIndentGuide', 'Color of the active editor indentation guides.'));\nexport const editorLineNumbers = registerColor('editorLineNumber.foreground', { dark: '#858585', light: '#237893', hc: Color.white }, nls.localize('editorLineNumbers', 'Color of editor line numbers.'));\nconst deprecatedEditorActiveLineNumber = registerColor('editorActiveLineNumber.foreground', { dark: '#c6c6c6', light: '#0B216F', hc: activeContrastBorder }, nls.localize('editorActiveLineNumber', 'Color of editor active line number'), false, nls.localize('deprecatedEditorActiveLineNumber', 'Id is deprecated. Use \\'editorLineNumber.activeForeground\\' instead.'));\nexport const editorActiveLineNumber = registerColor('editorLineNumber.activeForeground', { dark: deprecatedEditorActiveLineNumber, light: deprecatedEditorActiveLineNumber, hc: deprecatedEditorActiveLineNumber }, nls.localize('editorActiveLineNumber', 'Color of editor active line number'));\nexport const editorRuler = registerColor('editorRuler.foreground', { dark: '#5A5A5A', light: Color.lightgrey, hc: Color.white }, nls.localize('editorRuler', 'Color of the editor rulers.'));\nexport const editorCodeLensForeground = registerColor('editorCodeLens.foreground', { dark: '#999999', light: '#919191', hc: '#999999' }, nls.localize('editorCodeLensForeground', 'Foreground color of editor CodeLens'));\nexport const editorBracketMatchBackground = registerColor('editorBracketMatch.background', { dark: '#0064001a', light: '#0064001a', hc: '#0064001a' }, nls.localize('editorBracketMatchBackground', 'Background color behind matching brackets'));\nexport const editorBracketMatchBorder = registerColor('editorBracketMatch.border', { dark: '#888', light: '#B9B9B9', hc: contrastBorder }, nls.localize('editorBracketMatchBorder', 'Color for matching brackets boxes'));\nexport const editorOverviewRulerBorder = registerColor('editorOverviewRuler.border', { dark: '#7f7f7f4d', light: '#7f7f7f4d', hc: '#7f7f7f4d' }, nls.localize('editorOverviewRulerBorder', 'Color of the overview ruler border.'));\nexport const editorOverviewRulerBackground = registerColor('editorOverviewRuler.background', null, nls.localize('editorOverviewRulerBackground', 'Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.'));\nexport const editorGutter = registerColor('editorGutter.background', { dark: editorBackground, light: editorBackground, hc: editorBackground }, nls.localize('editorGutter', 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.'));\nexport const editorUnnecessaryCodeBorder = registerColor('editorUnnecessaryCode.border', { dark: null, light: null, hc: Color.fromHex('#fff').transparent(0.8) }, nls.localize('unnecessaryCodeBorder', 'Border color of unnecessary (unused) source code in the editor.'));\nexport const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hc: null }, nls.localize('unnecessaryCodeOpacity', 'Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the \\'editorUnnecessaryCode.border\\' theme color to underline unnecessary code instead of fading it out.'));\nexport const ghostTextBorder = registerColor('editorGhostText.border', { dark: null, light: null, hc: Color.fromHex('#fff').transparent(0.8) }, nls.localize('editorGhostTextBorder', 'Border color of ghost text in the editor.'));\nexport const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#ffffff56'), light: Color.fromHex('#0007'), hc: null }, nls.localize('editorGhostTextForeground', 'Foreground color of the ghost text in the editor.'));\nconst rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6));\nexport const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', { dark: rulerRangeDefault, light: rulerRangeDefault, hc: rulerRangeDefault }, nls.localize('overviewRulerRangeHighlight', 'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerError = registerColor('editorOverviewRuler.errorForeground', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hc: new Color(new RGBA(255, 50, 50, 1)) }, nls.localize('overviewRuleError', 'Overview ruler marker color for errors.'));\nexport const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: editorWarningForeground, light: editorWarningForeground, hc: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Overview ruler marker color for warnings.'));\nexport const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: editorInfoForeground, light: editorInfoForeground, hc: editorInfoBorder }, nls.localize('overviewRuleInfo', 'Overview ruler marker color for infos.'));\nexport const editorBracketHighlightingForeground1 = registerColor('editorBracketHighlight.foreground1', { dark: '#FFD700', light: '#0431FAFF', hc: '#FFD700' }, nls.localize('editorBracketHighlightForeground1', 'Foreground color of brackets (1). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground2 = registerColor('editorBracketHighlight.foreground2', { dark: '#DA70D6', light: '#319331FF', hc: '#DA70D6' }, nls.localize('editorBracketHighlightForeground2', 'Foreground color of brackets (2). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground3 = registerColor('editorBracketHighlight.foreground3', { dark: '#179FFF', light: '#7B3814FF', hc: '#87CEFA' }, nls.localize('editorBracketHighlightForeground3', 'Foreground color of brackets (3). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground4 = registerColor('editorBracketHighlight.foreground4', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketHighlightForeground4', 'Foreground color of brackets (4). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground5 = registerColor('editorBracketHighlight.foreground5', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketHighlightForeground5', 'Foreground color of brackets (5). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingForeground6 = registerColor('editorBracketHighlight.foreground6', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketHighlightForeground6', 'Foreground color of brackets (6). Requires enabling bracket pair colorization.'));\nexport const editorBracketHighlightingUnexpectedBracketForeground = registerColor('editorBracketHighlight.unexpectedBracket.foreground', { dark: new Color(new RGBA(255, 18, 18, 0.8)), light: new Color(new RGBA(255, 18, 18, 0.8)), hc: new Color(new RGBA(255, 50, 50, 1)) }, nls.localize('editorBracketHighlightUnexpectedBracketForeground', 'Foreground color of unexpected brackets.'));\nexport const editorBracketPairGuideBackground1 = registerColor('editorBracketPairGuide.background1', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background1', 'Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground2 = registerColor('editorBracketPairGuide.background2', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background2', 'Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground3 = registerColor('editorBracketPairGuide.background3', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background3', 'Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground4 = registerColor('editorBracketPairGuide.background4', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background4', 'Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground5 = registerColor('editorBracketPairGuide.background5', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background5', 'Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideBackground6 = registerColor('editorBracketPairGuide.background6', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.background6', 'Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground1 = registerColor('editorBracketPairGuide.activeBackground1', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground1', 'Background color of active bracket pair guides (1). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground2 = registerColor('editorBracketPairGuide.activeBackground2', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground2', 'Background color of active bracket pair guides (2). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground3 = registerColor('editorBracketPairGuide.activeBackground3', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground3', 'Background color of active bracket pair guides (3). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground4 = registerColor('editorBracketPairGuide.activeBackground4', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground4', 'Background color of active bracket pair guides (4). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground5 = registerColor('editorBracketPairGuide.activeBackground5', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground5', 'Background color of active bracket pair guides (5). Requires enabling bracket pair guides.'));\nexport const editorBracketPairGuideActiveBackground6 = registerColor('editorBracketPairGuide.activeBackground6', { dark: '#00000000', light: '#00000000', hc: '#00000000' }, nls.localize('editorBracketPairGuide.activeBackground6', 'Background color of active bracket pair guides (6). Requires enabling bracket pair guides.'));\n// contains all color rules that used to defined in editor/browser/widget/editor.css\nregisterThemingParticipant((theme, collector) => {\n const background = theme.getColor(editorBackground);\n if (background) {\n collector.addRule(`.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${background}; }`);\n }\n const foreground = theme.getColor(editorForeground);\n if (foreground) {\n collector.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${foreground}; }`);\n }\n const gutter = theme.getColor(editorGutter);\n if (gutter) {\n collector.addRule(`.monaco-editor .margin { background-color: ${gutter}; }`);\n }\n const rangeHighlight = theme.getColor(editorRangeHighlight);\n if (rangeHighlight) {\n collector.addRule(`.monaco-editor .rangeHighlight { background-color: ${rangeHighlight}; }`);\n }\n const rangeHighlightBorder = theme.getColor(editorRangeHighlightBorder);\n if (rangeHighlightBorder) {\n collector.addRule(`.monaco-editor .rangeHighlight { border: 1px ${theme.type === 'hc' ? 'dotted' : 'solid'} ${rangeHighlightBorder}; }`);\n }\n const symbolHighlight = theme.getColor(editorSymbolHighlight);\n if (symbolHighlight) {\n collector.addRule(`.monaco-editor .symbolHighlight { background-color: ${symbolHighlight}; }`);\n }\n const symbolHighlightBorder = theme.getColor(editorSymbolHighlightBorder);\n if (symbolHighlightBorder) {\n collector.addRule(`.monaco-editor .symbolHighlight { border: 1px ${theme.type === 'hc' ? 'dotted' : 'solid'} ${symbolHighlightBorder}; }`);\n }\n const invisibles = theme.getColor(editorWhitespaces);\n if (invisibles) {\n collector.addRule(`.monaco-editor .mtkw { color: ${invisibles} !important; }`);\n collector.addRule(`.monaco-editor .mtkz { color: ${invisibles} !important; }`);\n }\n});\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ICodeEditorService = createDecorator('codeEditorService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class FastDomNode {\n constructor(domNode) {\n this.domNode = domNode;\n this._maxWidth = -1;\n this._width = -1;\n this._height = -1;\n this._top = -1;\n this._left = -1;\n this._bottom = -1;\n this._right = -1;\n this._fontFamily = '';\n this._fontWeight = '';\n this._fontSize = -1;\n this._fontFeatureSettings = '';\n this._lineHeight = -1;\n this._letterSpacing = -100;\n this._className = '';\n this._display = '';\n this._position = '';\n this._visibility = '';\n this._backgroundColor = '';\n this._layerHint = false;\n this._contain = 'none';\n this._boxShadow = '';\n }\n setMaxWidth(maxWidth) {\n if (this._maxWidth === maxWidth) {\n return;\n }\n this._maxWidth = maxWidth;\n this.domNode.style.maxWidth = this._maxWidth + 'px';\n }\n setWidth(width) {\n if (this._width === width) {\n return;\n }\n this._width = width;\n this.domNode.style.width = this._width + 'px';\n }\n setHeight(height) {\n if (this._height === height) {\n return;\n }\n this._height = height;\n this.domNode.style.height = this._height + 'px';\n }\n setTop(top) {\n if (this._top === top) {\n return;\n }\n this._top = top;\n this.domNode.style.top = this._top + 'px';\n }\n unsetTop() {\n if (this._top === -1) {\n return;\n }\n this._top = -1;\n this.domNode.style.top = '';\n }\n setLeft(left) {\n if (this._left === left) {\n return;\n }\n this._left = left;\n this.domNode.style.left = this._left + 'px';\n }\n setBottom(bottom) {\n if (this._bottom === bottom) {\n return;\n }\n this._bottom = bottom;\n this.domNode.style.bottom = this._bottom + 'px';\n }\n setRight(right) {\n if (this._right === right) {\n return;\n }\n this._right = right;\n this.domNode.style.right = this._right + 'px';\n }\n setFontFamily(fontFamily) {\n if (this._fontFamily === fontFamily) {\n return;\n }\n this._fontFamily = fontFamily;\n this.domNode.style.fontFamily = this._fontFamily;\n }\n setFontWeight(fontWeight) {\n if (this._fontWeight === fontWeight) {\n return;\n }\n this._fontWeight = fontWeight;\n this.domNode.style.fontWeight = this._fontWeight;\n }\n setFontSize(fontSize) {\n if (this._fontSize === fontSize) {\n return;\n }\n this._fontSize = fontSize;\n this.domNode.style.fontSize = this._fontSize + 'px';\n }\n setFontFeatureSettings(fontFeatureSettings) {\n if (this._fontFeatureSettings === fontFeatureSettings) {\n return;\n }\n this._fontFeatureSettings = fontFeatureSettings;\n this.domNode.style.fontFeatureSettings = this._fontFeatureSettings;\n }\n setLineHeight(lineHeight) {\n if (this._lineHeight === lineHeight) {\n return;\n }\n this._lineHeight = lineHeight;\n this.domNode.style.lineHeight = this._lineHeight + 'px';\n }\n setLetterSpacing(letterSpacing) {\n if (this._letterSpacing === letterSpacing) {\n return;\n }\n this._letterSpacing = letterSpacing;\n this.domNode.style.letterSpacing = this._letterSpacing + 'px';\n }\n setClassName(className) {\n if (this._className === className) {\n return;\n }\n this._className = className;\n this.domNode.className = this._className;\n }\n toggleClassName(className, shouldHaveIt) {\n this.domNode.classList.toggle(className, shouldHaveIt);\n this._className = this.domNode.className;\n }\n setDisplay(display) {\n if (this._display === display) {\n return;\n }\n this._display = display;\n this.domNode.style.display = this._display;\n }\n setPosition(position) {\n if (this._position === position) {\n return;\n }\n this._position = position;\n this.domNode.style.position = this._position;\n }\n setVisibility(visibility) {\n if (this._visibility === visibility) {\n return;\n }\n this._visibility = visibility;\n this.domNode.style.visibility = this._visibility;\n }\n setBackgroundColor(backgroundColor) {\n if (this._backgroundColor === backgroundColor) {\n return;\n }\n this._backgroundColor = backgroundColor;\n this.domNode.style.backgroundColor = this._backgroundColor;\n }\n setLayerHinting(layerHint) {\n if (this._layerHint === layerHint) {\n return;\n }\n this._layerHint = layerHint;\n this.domNode.style.transform = this._layerHint ? 'translate3d(0px, 0px, 0px)' : '';\n }\n setBoxShadow(boxShadow) {\n if (this._boxShadow === boxShadow) {\n return;\n }\n this._boxShadow = boxShadow;\n this.domNode.style.boxShadow = boxShadow;\n }\n setContain(contain) {\n if (this._contain === contain) {\n return;\n }\n this._contain = contain;\n this.domNode.style.contain = this._contain;\n }\n setAttribute(name, value) {\n this.domNode.setAttribute(name, value);\n }\n removeAttribute(name) {\n this.domNode.removeAttribute(name);\n }\n appendChild(child) {\n this.domNode.appendChild(child.domNode);\n }\n removeChild(child) {\n this.domNode.removeChild(child.domNode);\n }\n}\nexport function createFastDomNode(domNode) {\n return new FastDomNode(domNode);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { canceled, isPromiseCanceledError, onUnexpectedExternalError } from '../../../base/common/errors.js';\nimport { FuzzyScore } from '../../../base/common/filters.js';\nimport { DisposableStore, isDisposable } from '../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { assertType } from '../../../base/common/types.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport * as modes from '../../common/modes.js';\nimport { ITextModelService } from '../../common/services/resolverService.js';\nimport { SnippetParser } from '../snippet/snippetParser.js';\nimport { localize } from '../../../nls.js';\nimport { MenuId } from '../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../platform/commands/common/commands.js';\nimport { RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nexport const Context = {\n Visible: new RawContextKey('suggestWidgetVisible', false, localize('suggestWidgetVisible', \"Whether suggestion are visible\")),\n DetailsVisible: new RawContextKey('suggestWidgetDetailsVisible', false, localize('suggestWidgetDetailsVisible', \"Whether suggestion details are visible\")),\n MultipleSuggestions: new RawContextKey('suggestWidgetMultipleSuggestions', false, localize('suggestWidgetMultipleSuggestions', \"Whether there are multiple suggestions to pick from\")),\n MakesTextEdit: new RawContextKey('suggestionMakesTextEdit', true, localize('suggestionMakesTextEdit', \"Whether inserting the current suggestion yields in a change or has everything already been typed\")),\n AcceptSuggestionsOnEnter: new RawContextKey('acceptSuggestionOnEnter', true, localize('acceptSuggestionOnEnter', \"Whether suggestions are inserted when pressing Enter\")),\n HasInsertAndReplaceRange: new RawContextKey('suggestionHasInsertAndReplaceRange', false, localize('suggestionHasInsertAndReplaceRange', \"Whether the current suggestion has insert and replace behaviour\")),\n InsertMode: new RawContextKey('suggestionInsertMode', undefined, { type: 'string', description: localize('suggestionInsertMode', \"Whether the default behaviour is to insert or replace\") }),\n CanResolve: new RawContextKey('suggestionCanResolve', false, localize('suggestionCanResolve', \"Whether the current suggestion supports to resolve further details\")),\n};\nexport const suggestWidgetStatusbarMenu = new MenuId('suggestWidgetStatusBar');\nexport class CompletionItem {\n constructor(position, completion, container, provider) {\n this.position = position;\n this.completion = completion;\n this.container = container;\n this.provider = provider;\n // validation\n this.isInvalid = false;\n // sorting, filtering\n this.score = FuzzyScore.Default;\n this.distance = 0;\n this.textLabel = typeof completion.label === 'string'\n ? completion.label\n : completion.label.label;\n // ensure lower-variants (perf)\n this.labelLow = this.textLabel.toLowerCase();\n // validate label\n this.isInvalid = !this.textLabel;\n this.sortTextLow = completion.sortText && completion.sortText.toLowerCase();\n this.filterTextLow = completion.filterText && completion.filterText.toLowerCase();\n // normalize ranges\n if (Range.isIRange(completion.range)) {\n this.editStart = new Position(completion.range.startLineNumber, completion.range.startColumn);\n this.editInsertEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n this.editReplaceEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n // validate range\n this.isInvalid = this.isInvalid\n || Range.spansMultipleLines(completion.range) || completion.range.startLineNumber !== position.lineNumber;\n }\n else {\n this.editStart = new Position(completion.range.insert.startLineNumber, completion.range.insert.startColumn);\n this.editInsertEnd = new Position(completion.range.insert.endLineNumber, completion.range.insert.endColumn);\n this.editReplaceEnd = new Position(completion.range.replace.endLineNumber, completion.range.replace.endColumn);\n // validate ranges\n this.isInvalid = this.isInvalid\n || Range.spansMultipleLines(completion.range.insert) || Range.spansMultipleLines(completion.range.replace)\n || completion.range.insert.startLineNumber !== position.lineNumber || completion.range.replace.startLineNumber !== position.lineNumber\n || completion.range.insert.startColumn !== completion.range.replace.startColumn;\n }\n // create the suggestion resolver\n if (typeof provider.resolveCompletionItem !== 'function') {\n this._resolveCache = Promise.resolve();\n this._isResolved = true;\n }\n }\n // ---- resolving\n get isResolved() {\n return !!this._isResolved;\n }\n resolve(token) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._resolveCache) {\n const sub = token.onCancellationRequested(() => {\n this._resolveCache = undefined;\n this._isResolved = false;\n });\n this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem(this.completion, token)).then(value => {\n Object.assign(this.completion, value);\n this._isResolved = true;\n sub.dispose();\n }, err => {\n if (isPromiseCanceledError(err)) {\n // the IPC queue will reject the request with the\n // cancellation error -> reset cached\n this._resolveCache = undefined;\n this._isResolved = false;\n }\n });\n }\n return this._resolveCache;\n });\n }\n}\nexport class CompletionOptions {\n constructor(snippetSortOrder = 2 /* Bottom */, kindFilter = new Set(), providerFilter = new Set(), showDeprecated = true) {\n this.snippetSortOrder = snippetSortOrder;\n this.kindFilter = kindFilter;\n this.providerFilter = providerFilter;\n this.showDeprecated = showDeprecated;\n }\n}\nCompletionOptions.default = new CompletionOptions();\nlet _snippetSuggestSupport;\nexport function getSnippetSuggestSupport() {\n return _snippetSuggestSupport;\n}\nexport class CompletionItemModel {\n constructor(items, needsClipboard, durations, disposable) {\n this.items = items;\n this.needsClipboard = needsClipboard;\n this.durations = durations;\n this.disposable = disposable;\n }\n}\nexport function provideSuggestionItems(model, position, options = CompletionOptions.default, context = { triggerKind: 0 /* Invoke */ }, token = CancellationToken.None) {\n return __awaiter(this, void 0, void 0, function* () {\n const sw = new StopWatch(true);\n position = position.clone();\n const word = model.getWordAtPosition(position);\n const defaultReplaceRange = word ? new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn) : Range.fromPositions(position);\n const defaultRange = { replace: defaultReplaceRange, insert: defaultReplaceRange.setEndPosition(position.lineNumber, position.column) };\n const result = [];\n const disposables = new DisposableStore();\n const durations = [];\n let needsClipboard = false;\n const onCompletionList = (provider, container, sw) => {\n var _a, _b, _c;\n if (!container) {\n return;\n }\n for (let suggestion of container.suggestions) {\n if (!options.kindFilter.has(suggestion.kind)) {\n // skip if not showing deprecated suggestions\n if (!options.showDeprecated && ((_a = suggestion === null || suggestion === void 0 ? void 0 : suggestion.tags) === null || _a === void 0 ? void 0 : _a.includes(1 /* Deprecated */))) {\n continue;\n }\n // fill in default range when missing\n if (!suggestion.range) {\n suggestion.range = defaultRange;\n }\n // fill in default sortText when missing\n if (!suggestion.sortText) {\n suggestion.sortText = typeof suggestion.label === 'string' ? suggestion.label : suggestion.label.label;\n }\n if (!needsClipboard && suggestion.insertTextRules && suggestion.insertTextRules & 4 /* InsertAsSnippet */) {\n needsClipboard = SnippetParser.guessNeedsClipboard(suggestion.insertText);\n }\n result.push(new CompletionItem(position, suggestion, container, provider));\n }\n }\n if (isDisposable(container)) {\n disposables.add(container);\n }\n durations.push({\n providerName: (_b = provider._debugDisplayName) !== null && _b !== void 0 ? _b : 'unkown_provider', elapsedProvider: (_c = container.duration) !== null && _c !== void 0 ? _c : -1, elapsedOverall: sw.elapsed()\n });\n };\n // ask for snippets in parallel to asking \"real\" providers. Only do something if configured to\n // do so - no snippet filter, no special-providers-only request\n const snippetCompletions = (() => __awaiter(this, void 0, void 0, function* () {\n if (!_snippetSuggestSupport || options.kindFilter.has(27 /* Snippet */)) {\n return;\n }\n if (options.providerFilter.size > 0 && !options.providerFilter.has(_snippetSuggestSupport)) {\n return;\n }\n const sw = new StopWatch(true);\n const list = yield _snippetSuggestSupport.provideCompletionItems(model, position, context, token);\n onCompletionList(_snippetSuggestSupport, list, sw);\n }))();\n // add suggestions from contributed providers - providers are ordered in groups of\n // equal score and once a group produces a result the process stops\n // get provider groups, always add snippet suggestion provider\n for (let providerGroup of modes.CompletionProviderRegistry.orderedGroups(model)) {\n // for each support in the group ask for suggestions\n let lenBefore = result.length;\n yield Promise.all(providerGroup.map((provider) => __awaiter(this, void 0, void 0, function* () {\n if (options.providerFilter.size > 0 && !options.providerFilter.has(provider)) {\n return;\n }\n try {\n const sw = new StopWatch(true);\n const list = yield provider.provideCompletionItems(model, position, context, token);\n onCompletionList(provider, list, sw);\n }\n catch (err) {\n onUnexpectedExternalError(err);\n }\n })));\n if (lenBefore !== result.length || token.isCancellationRequested) {\n break;\n }\n }\n yield snippetCompletions;\n if (token.isCancellationRequested) {\n disposables.dispose();\n return Promise.reject(canceled());\n }\n return new CompletionItemModel(result.sort(getSuggestionComparator(options.snippetSortOrder)), needsClipboard, { entries: durations, elapsed: sw.elapsed() }, disposables);\n });\n}\nfunction defaultComparator(a, b) {\n // check with 'sortText'\n if (a.sortTextLow && b.sortTextLow) {\n if (a.sortTextLow < b.sortTextLow) {\n return -1;\n }\n else if (a.sortTextLow > b.sortTextLow) {\n return 1;\n }\n }\n // check with 'label'\n if (a.completion.label < b.completion.label) {\n return -1;\n }\n else if (a.completion.label > b.completion.label) {\n return 1;\n }\n // check with 'type'\n return a.completion.kind - b.completion.kind;\n}\nfunction snippetUpComparator(a, b) {\n if (a.completion.kind !== b.completion.kind) {\n if (a.completion.kind === 27 /* Snippet */) {\n return -1;\n }\n else if (b.completion.kind === 27 /* Snippet */) {\n return 1;\n }\n }\n return defaultComparator(a, b);\n}\nfunction snippetDownComparator(a, b) {\n if (a.completion.kind !== b.completion.kind) {\n if (a.completion.kind === 27 /* Snippet */) {\n return 1;\n }\n else if (b.completion.kind === 27 /* Snippet */) {\n return -1;\n }\n }\n return defaultComparator(a, b);\n}\nconst _snippetComparators = new Map();\n_snippetComparators.set(0 /* Top */, snippetUpComparator);\n_snippetComparators.set(2 /* Bottom */, snippetDownComparator);\n_snippetComparators.set(1 /* Inline */, defaultComparator);\nexport function getSuggestionComparator(snippetConfig) {\n return _snippetComparators.get(snippetConfig);\n}\nCommandsRegistry.registerCommand('_executeCompletionItemProvider', (accessor, ...args) => __awaiter(void 0, void 0, void 0, function* () {\n const [uri, position, triggerCharacter, maxItemsToResolve] = args;\n assertType(URI.isUri(uri));\n assertType(Position.isIPosition(position));\n assertType(typeof triggerCharacter === 'string' || !triggerCharacter);\n assertType(typeof maxItemsToResolve === 'number' || !maxItemsToResolve);\n const ref = yield accessor.get(ITextModelService).createModelReference(uri);\n try {\n const result = {\n incomplete: false,\n suggestions: []\n };\n const resolving = [];\n const completions = yield provideSuggestionItems(ref.object.textEditorModel, Position.lift(position), undefined, { triggerCharacter, triggerKind: triggerCharacter ? 1 /* TriggerCharacter */ : 0 /* Invoke */ });\n for (const item of completions.items) {\n if (resolving.length < (maxItemsToResolve !== null && maxItemsToResolve !== void 0 ? maxItemsToResolve : 0)) {\n resolving.push(item.resolve(CancellationToken.None));\n }\n result.incomplete = result.incomplete || item.container.incomplete;\n result.suggestions.push(item.completion);\n }\n try {\n yield Promise.all(resolving);\n return result;\n }\n finally {\n setTimeout(() => completions.disposable.dispose(), 100);\n }\n }\n finally {\n ref.dispose();\n }\n}));\nconst _provider = new class {\n constructor() {\n this.onlyOnceSuggestions = [];\n }\n provideCompletionItems() {\n let suggestions = this.onlyOnceSuggestions.slice(0);\n let result = { suggestions };\n this.onlyOnceSuggestions.length = 0;\n return result;\n }\n};\nmodes.CompletionProviderRegistry.register('*', _provider);\nexport function showSimpleSuggestions(editor, suggestions) {\n setTimeout(() => {\n _provider.onlyOnceSuggestions.push(...suggestions);\n editor.getContribution('editor.contrib.suggestController').triggerSuggest(new Set().add(_provider));\n }, 0);\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\nexport const ObjAssign = ObjClass[\"assign\"];\r\nexport const ObjCreate = ObjClass[\"create\"];\r\nexport const ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport const ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardAutoClosingPairConditional } from '../languageConfiguration.js';\nexport class CharacterPairSupport {\n constructor(config) {\n if (config.autoClosingPairs) {\n this._autoClosingPairs = config.autoClosingPairs.map(el => new StandardAutoClosingPairConditional(el));\n }\n else if (config.brackets) {\n this._autoClosingPairs = config.brackets.map(b => new StandardAutoClosingPairConditional({ open: b[0], close: b[1] }));\n }\n else {\n this._autoClosingPairs = [];\n }\n if (config.colorizedBracketPairs) {\n this._colorizedBracketPairs = filterValidBrackets(config.colorizedBracketPairs.map(b => [b[0], b[1]]));\n }\n else if (config.brackets) {\n this._colorizedBracketPairs = filterValidBrackets(config.brackets\n .map((b) => [b[0], b[1]])\n // Many languages set < ... > as bracket pair, even though they also use it as comparison operator.\n // This leads to problems when colorizing this bracket, so we exclude it by default.\n // Languages can still override this by configuring `colorizedBracketPairs`\n // https://github.com/microsoft/vscode/issues/132476\n .filter((p) => !(p[0] === '<' && p[1] === '>')));\n }\n else {\n this._colorizedBracketPairs = [];\n }\n if (config.__electricCharacterSupport && config.__electricCharacterSupport.docComment) {\n const docComment = config.__electricCharacterSupport.docComment;\n // IDocComment is legacy, only partially supported\n this._autoClosingPairs.push(new StandardAutoClosingPairConditional({ open: docComment.open, close: docComment.close || '' }));\n }\n this._autoCloseBefore = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED;\n this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;\n }\n getAutoClosingPairs() {\n return this._autoClosingPairs;\n }\n getAutoCloseBeforeSet() {\n return this._autoCloseBefore;\n }\n static shouldAutoClosePair(autoClosingPair, context, column) {\n // Always complete on empty line\n if (context.getTokenCount() === 0) {\n return true;\n }\n const tokenIndex = context.findTokenIndexAtOffset(column - 2);\n const standardTokenType = context.getStandardTokenType(tokenIndex);\n return autoClosingPair.isOK(standardTokenType);\n }\n getSurroundingPairs() {\n return this._surroundingPairs;\n }\n getColorizedBrackets() {\n return this._colorizedBracketPairs;\n }\n}\nCharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = ';:.,=}])> \\n\\t';\nfunction filterValidBrackets(bracketPairs) {\n return bracketPairs.filter(([open, close]) => open !== '' && close !== '');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ignoreBracketsInToken } from '../supports.js';\nimport { BracketsUtils } from './richEditBrackets.js';\nexport class BracketElectricCharacterSupport {\n constructor(richEditBrackets) {\n this._richEditBrackets = richEditBrackets;\n }\n getElectricCharacters() {\n let result = [];\n if (this._richEditBrackets) {\n for (const bracket of this._richEditBrackets.brackets) {\n for (const close of bracket.close) {\n const lastChar = close.charAt(close.length - 1);\n result.push(lastChar);\n }\n }\n }\n // Filter duplicate entries\n result = result.filter((item, pos, array) => {\n return array.indexOf(item) === pos;\n });\n return result;\n }\n onElectricCharacter(character, context, column) {\n if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {\n return null;\n }\n const tokenIndex = context.findTokenIndexAtOffset(column - 1);\n if (ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))) {\n return null;\n }\n const reversedBracketRegex = this._richEditBrackets.reversedRegex;\n const text = context.getLineContent().substring(0, column - 1) + character;\n const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, 1, text, 0, text.length);\n if (!r) {\n return null;\n }\n const bracketText = text.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n const isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];\n if (isOpen) {\n return null;\n }\n const textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);\n if (!/^\\s*$/.test(textBeforeBracket)) {\n // There is other text on the line before the bracket\n return null;\n }\n return {\n matchOpenBracket: bracketText\n };\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction resetGlobalRegex(reg) {\n if (reg.global) {\n reg.lastIndex = 0;\n }\n return true;\n}\nexport class IndentRulesSupport {\n constructor(indentationRules) {\n this._indentationRules = indentationRules;\n }\n shouldIncrease(text) {\n if (this._indentationRules) {\n if (this._indentationRules.increaseIndentPattern && resetGlobalRegex(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(text)) {\n return true;\n }\n // if (this._indentationRules.indentNextLinePattern && this._indentationRules.indentNextLinePattern.test(text)) {\n // \treturn true;\n // }\n }\n return false;\n }\n shouldDecrease(text) {\n if (this._indentationRules && this._indentationRules.decreaseIndentPattern && resetGlobalRegex(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(text)) {\n return true;\n }\n return false;\n }\n shouldIndentNextLine(text) {\n if (this._indentationRules && this._indentationRules.indentNextLinePattern && resetGlobalRegex(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(text)) {\n return true;\n }\n return false;\n }\n shouldIgnore(text) {\n // the text matches `unIndentedLinePattern`\n if (this._indentationRules && this._indentationRules.unIndentedLinePattern && resetGlobalRegex(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(text)) {\n return true;\n }\n return false;\n }\n getIndentMetadata(text) {\n let ret = 0;\n if (this.shouldIncrease(text)) {\n ret += 1 /* INCREASE_MASK */;\n }\n if (this.shouldDecrease(text)) {\n ret += 2 /* DECREASE_MASK */;\n }\n if (this.shouldIndentNextLine(text)) {\n ret += 4 /* INDENT_NEXTLINE_MASK */;\n }\n if (this.shouldIgnore(text)) {\n ret += 8 /* UNINDENT_MASK */;\n }\n return ret;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { IndentAction } from '../languageConfiguration.js';\nexport class OnEnterSupport {\n constructor(opts) {\n opts = opts || {};\n opts.brackets = opts.brackets || [\n ['(', ')'],\n ['{', '}'],\n ['[', ']']\n ];\n this._brackets = [];\n opts.brackets.forEach((bracket) => {\n const openRegExp = OnEnterSupport._createOpenBracketRegExp(bracket[0]);\n const closeRegExp = OnEnterSupport._createCloseBracketRegExp(bracket[1]);\n if (openRegExp && closeRegExp) {\n this._brackets.push({\n open: bracket[0],\n openRegExp: openRegExp,\n close: bracket[1],\n closeRegExp: closeRegExp,\n });\n }\n });\n this._regExpRules = opts.onEnterRules || [];\n }\n onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n // (1): `regExpRules`\n if (autoIndent >= 3 /* Advanced */) {\n for (let i = 0, len = this._regExpRules.length; i < len; i++) {\n let rule = this._regExpRules[i];\n const regResult = [{\n reg: rule.beforeText,\n text: beforeEnterText\n }, {\n reg: rule.afterText,\n text: afterEnterText\n }, {\n reg: rule.previousLineText,\n text: previousLineText\n }].every((obj) => {\n if (!obj.reg) {\n return true;\n }\n obj.reg.lastIndex = 0; // To disable the effect of the \"g\" flag.\n return obj.reg.test(obj.text);\n });\n if (regResult) {\n return rule.action;\n }\n }\n }\n // (2): Special indent-outdent\n if (autoIndent >= 2 /* Brackets */) {\n if (beforeEnterText.length > 0 && afterEnterText.length > 0) {\n for (let i = 0, len = this._brackets.length; i < len; i++) {\n let bracket = this._brackets[i];\n if (bracket.openRegExp.test(beforeEnterText) && bracket.closeRegExp.test(afterEnterText)) {\n return { indentAction: IndentAction.IndentOutdent };\n }\n }\n }\n }\n // (4): Open bracket based logic\n if (autoIndent >= 2 /* Brackets */) {\n if (beforeEnterText.length > 0) {\n for (let i = 0, len = this._brackets.length; i < len; i++) {\n let bracket = this._brackets[i];\n if (bracket.openRegExp.test(beforeEnterText)) {\n return { indentAction: IndentAction.Indent };\n }\n }\n }\n }\n return null;\n }\n static _createOpenBracketRegExp(bracket) {\n let str = strings.escapeRegExpCharacters(bracket);\n if (!/\\B/.test(str.charAt(0))) {\n str = '\\\\b' + str;\n }\n str += '\\\\s*$';\n return OnEnterSupport._safeRegExp(str);\n }\n static _createCloseBracketRegExp(bracket) {\n let str = strings.escapeRegExpCharacters(bracket);\n if (!/\\B/.test(str.charAt(str.length - 1))) {\n str = str + '\\\\b';\n }\n str = '^\\\\s*' + str;\n return OnEnterSupport._safeRegExp(str);\n }\n static _safeRegExp(def) {\n try {\n return new RegExp(def);\n }\n catch (err) {\n onUnexpectedError(err);\n return null;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { DEFAULT_WORD_REGEXP, ensureValidWordDefinition } from '../model/wordHelper.js';\nimport { IndentAction, AutoClosingPairs } from './languageConfiguration.js';\nimport { createScopedLineTokens } from './supports.js';\nimport { CharacterPairSupport } from './supports/characterPair.js';\nimport { BracketElectricCharacterSupport } from './supports/electricCharacter.js';\nimport { IndentRulesSupport } from './supports/indentRules.js';\nimport { OnEnterSupport } from './supports/onEnter.js';\nimport { RichEditBrackets } from './supports/richEditBrackets.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { IModeService } from '../services/modeService.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nexport class LanguageConfigurationServiceChangeEvent {\n constructor(languageId) {\n this.languageId = languageId;\n }\n affects(languageId) {\n return !this.languageId ? true : this.languageId === languageId;\n }\n}\nexport const ILanguageConfigurationService = createDecorator('languageConfigurationService');\nlet LanguageConfigurationService = class LanguageConfigurationService extends Disposable {\n constructor(configurationService, modeService) {\n super();\n this.configurationService = configurationService;\n this.modeService = modeService;\n this.onDidChangeEmitter = this._register(new Emitter());\n this.onDidChange = this.onDidChangeEmitter.event;\n this.configurations = new Map();\n const languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));\n this._register(this.configurationService.onDidChangeConfiguration((e) => {\n const globalConfigChanged = e.change.keys.some((k) => languageConfigKeys.has(k));\n const localConfigChanged = e.change.overrides\n .filter(([overrideLangName, keys]) => keys.some((k) => languageConfigKeys.has(k)))\n .map(([overrideLangName]) => this.modeService.validateLanguageId(overrideLangName));\n if (globalConfigChanged) {\n this.configurations.clear();\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(undefined));\n }\n else {\n for (const languageId of localConfigChanged) {\n if (languageId) {\n this.configurations.delete(languageId);\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId));\n }\n }\n }\n }));\n this._register(LanguageConfigurationRegistry.onDidChange((e) => {\n this.configurations.delete(e.languageId);\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId));\n }));\n }\n getLanguageConfiguration(languageId) {\n let result = this.configurations.get(languageId);\n if (!result) {\n result = computeConfig(languageId, this.configurationService, this.modeService);\n this.configurations.set(languageId, result);\n }\n return result;\n }\n};\nLanguageConfigurationService = __decorate([\n __param(0, IConfigurationService),\n __param(1, IModeService)\n], LanguageConfigurationService);\nexport { LanguageConfigurationService };\nfunction computeConfig(languageId, configurationService, modeService) {\n let languageConfig = LanguageConfigurationRegistry.getLanguageConfiguration(languageId);\n if (!languageConfig) {\n const validLanguageId = modeService.validateLanguageId(languageId);\n if (!validLanguageId) {\n throw new Error('Unexpected languageId');\n }\n languageConfig = new ResolvedLanguageConfiguration(validLanguageId, {});\n }\n const customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);\n const data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);\n const config = new ResolvedLanguageConfiguration(languageConfig.languageId, data);\n return config;\n}\nconst customizedLanguageConfigKeys = {\n brackets: 'editor.language.brackets',\n colorizedBracketPairs: 'editor.language.colorizedBracketPairs'\n};\nfunction getCustomizedLanguageConfig(languageId, configurationService) {\n const brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {\n overrideIdentifier: languageId,\n });\n const colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {\n overrideIdentifier: languageId,\n });\n return {\n brackets: validateBracketPairs(brackets),\n colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs),\n };\n}\nfunction validateBracketPairs(data) {\n if (!Array.isArray(data)) {\n return undefined;\n }\n return data.map(pair => {\n if (!Array.isArray(pair) || pair.length !== 2) {\n return undefined;\n }\n return [pair[0], pair[1]];\n }).filter((p) => !!p);\n}\nexport class LanguageConfigurationChangeEvent {\n constructor(languageId) {\n this.languageId = languageId;\n }\n}\nexport class LanguageConfigurationRegistryImpl {\n constructor() {\n this._entries = new Map();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n }\n /**\n * @param priority Use a higher number for higher priority\n */\n register(languageId, configuration, priority = 0) {\n let entries = this._entries.get(languageId);\n if (!entries) {\n entries = new ComposedLanguageConfiguration(languageId);\n this._entries.set(languageId, entries);\n }\n const disposable = entries.register(configuration, priority);\n this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n return toDisposable(() => {\n disposable.dispose();\n this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n });\n }\n getLanguageConfiguration(languageId) {\n let entries = this._entries.get(languageId);\n return (entries === null || entries === void 0 ? void 0 : entries.getResolvedConfiguration()) || null;\n }\n getIndentationRules(languageId) {\n const value = this.getLanguageConfiguration(languageId);\n return value ? value.indentationRules || null : null;\n }\n // begin electricCharacter\n _getElectricCharacterSupport(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return null;\n }\n return value.electricCharacter || null;\n }\n getElectricCharacters(languageId) {\n let electricCharacterSupport = this._getElectricCharacterSupport(languageId);\n if (!electricCharacterSupport) {\n return [];\n }\n return electricCharacterSupport.getElectricCharacters();\n }\n /**\n * Should return opening bracket type to match indentation with\n */\n onElectricCharacter(character, context, column) {\n let scopedLineTokens = createScopedLineTokens(context, column - 1);\n let electricCharacterSupport = this._getElectricCharacterSupport(scopedLineTokens.languageId);\n if (!electricCharacterSupport) {\n return null;\n }\n return electricCharacterSupport.onElectricCharacter(character, scopedLineTokens, column - scopedLineTokens.firstCharOffset);\n }\n // end electricCharacter\n getComments(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return null;\n }\n return value.comments || null;\n }\n // begin characterPair\n _getCharacterPairSupport(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return null;\n }\n return value.characterPair || null;\n }\n getAutoClosingPairs(languageId) {\n const characterPairSupport = this._getCharacterPairSupport(languageId);\n return new AutoClosingPairs(characterPairSupport ? characterPairSupport.getAutoClosingPairs() : []);\n }\n getAutoCloseBeforeSet(languageId) {\n let characterPairSupport = this._getCharacterPairSupport(languageId);\n if (!characterPairSupport) {\n return CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED;\n }\n return characterPairSupport.getAutoCloseBeforeSet();\n }\n getSurroundingPairs(languageId) {\n let characterPairSupport = this._getCharacterPairSupport(languageId);\n if (!characterPairSupport) {\n return [];\n }\n return characterPairSupport.getSurroundingPairs();\n }\n shouldAutoClosePair(autoClosingPair, context, column) {\n const scopedLineTokens = createScopedLineTokens(context, column - 1);\n return CharacterPairSupport.shouldAutoClosePair(autoClosingPair, scopedLineTokens, column - scopedLineTokens.firstCharOffset);\n }\n // end characterPair\n getWordDefinition(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return ensureValidWordDefinition(null);\n }\n return ensureValidWordDefinition(value.wordDefinition || null);\n }\n getFoldingRules(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return {};\n }\n return value.foldingRules;\n }\n // begin Indent Rules\n getIndentRulesSupport(languageId) {\n let value = this.getLanguageConfiguration(languageId);\n if (!value) {\n return null;\n }\n return value.indentRulesSupport || null;\n }\n /**\n * Get nearest preceding line which doesn't match unIndentPattern or contains all whitespace.\n * Result:\n * -1: run into the boundary of embedded languages\n * 0: every line above are invalid\n * else: nearest preceding line of the same language\n */\n getPrecedingValidLine(model, lineNumber, indentRulesSupport) {\n let languageID = model.getLanguageIdAtPosition(lineNumber, 0);\n if (lineNumber > 1) {\n let lastLineNumber;\n let resultLineNumber = -1;\n for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {\n if (model.getLanguageIdAtPosition(lastLineNumber, 0) !== languageID) {\n return resultLineNumber;\n }\n let text = model.getLineContent(lastLineNumber);\n if (indentRulesSupport.shouldIgnore(text) || /^\\s+$/.test(text) || text === '') {\n resultLineNumber = lastLineNumber;\n continue;\n }\n return lastLineNumber;\n }\n }\n return -1;\n }\n /**\n * Get inherited indentation from above lines.\n * 1. Find the nearest preceding line which doesn't match unIndentedLinePattern.\n * 2. If this line matches indentNextLinePattern or increaseIndentPattern, it means that the indent level of `lineNumber` should be 1 greater than this line.\n * 3. If this line doesn't match any indent rules\n * a. check whether the line above it matches indentNextLinePattern\n * b. If not, the indent level of this line is the result\n * c. If so, it means the indent of this line is *temporary*, go upward utill we find a line whose indent is not temporary (the same workflow a -> b -> c).\n * 4. Otherwise, we fail to get an inherited indent from aboves. Return null and we should not touch the indent of `lineNumber`\n *\n * This function only return the inherited indent based on above lines, it doesn't check whether current line should decrease or not.\n */\n getInheritIndentForLine(autoIndent, model, lineNumber, honorIntentialIndent = true) {\n if (autoIndent < 4 /* Full */) {\n return null;\n }\n const indentRulesSupport = this.getIndentRulesSupport(model.getLanguageId());\n if (!indentRulesSupport) {\n return null;\n }\n if (lineNumber <= 1) {\n return {\n indentation: '',\n action: null\n };\n }\n const precedingUnIgnoredLine = this.getPrecedingValidLine(model, lineNumber, indentRulesSupport);\n if (precedingUnIgnoredLine < 0) {\n return null;\n }\n else if (precedingUnIgnoredLine < 1) {\n return {\n indentation: '',\n action: null\n };\n }\n const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);\n if (indentRulesSupport.shouldIncrease(precedingUnIgnoredLineContent) || indentRulesSupport.shouldIndentNextLine(precedingUnIgnoredLineContent)) {\n return {\n indentation: strings.getLeadingWhitespace(precedingUnIgnoredLineContent),\n action: IndentAction.Indent,\n line: precedingUnIgnoredLine\n };\n }\n else if (indentRulesSupport.shouldDecrease(precedingUnIgnoredLineContent)) {\n return {\n indentation: strings.getLeadingWhitespace(precedingUnIgnoredLineContent),\n action: null,\n line: precedingUnIgnoredLine\n };\n }\n else {\n // precedingUnIgnoredLine can not be ignored.\n // it doesn't increase indent of following lines\n // it doesn't increase just next line\n // so current line is not affect by precedingUnIgnoredLine\n // and then we should get a correct inheritted indentation from above lines\n if (precedingUnIgnoredLine === 1) {\n return {\n indentation: strings.getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n action: null,\n line: precedingUnIgnoredLine\n };\n }\n const previousLine = precedingUnIgnoredLine - 1;\n const previousLineIndentMetadata = indentRulesSupport.getIndentMetadata(model.getLineContent(previousLine));\n if (!(previousLineIndentMetadata & (1 /* INCREASE_MASK */ | 2 /* DECREASE_MASK */)) &&\n (previousLineIndentMetadata & 4 /* INDENT_NEXTLINE_MASK */)) {\n let stopLine = 0;\n for (let i = previousLine - 1; i > 0; i--) {\n if (indentRulesSupport.shouldIndentNextLine(model.getLineContent(i))) {\n continue;\n }\n stopLine = i;\n break;\n }\n return {\n indentation: strings.getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n action: null,\n line: stopLine + 1\n };\n }\n if (honorIntentialIndent) {\n return {\n indentation: strings.getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n action: null,\n line: precedingUnIgnoredLine\n };\n }\n else {\n // search from precedingUnIgnoredLine until we find one whose indent is not temporary\n for (let i = precedingUnIgnoredLine; i > 0; i--) {\n const lineContent = model.getLineContent(i);\n if (indentRulesSupport.shouldIncrease(lineContent)) {\n return {\n indentation: strings.getLeadingWhitespace(lineContent),\n action: IndentAction.Indent,\n line: i\n };\n }\n else if (indentRulesSupport.shouldIndentNextLine(lineContent)) {\n let stopLine = 0;\n for (let j = i - 1; j > 0; j--) {\n if (indentRulesSupport.shouldIndentNextLine(model.getLineContent(i))) {\n continue;\n }\n stopLine = j;\n break;\n }\n return {\n indentation: strings.getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n action: null,\n line: stopLine + 1\n };\n }\n else if (indentRulesSupport.shouldDecrease(lineContent)) {\n return {\n indentation: strings.getLeadingWhitespace(lineContent),\n action: null,\n line: i\n };\n }\n }\n return {\n indentation: strings.getLeadingWhitespace(model.getLineContent(1)),\n action: null,\n line: 1\n };\n }\n }\n }\n getGoodIndentForLine(autoIndent, virtualModel, languageId, lineNumber, indentConverter) {\n if (autoIndent < 4 /* Full */) {\n return null;\n }\n const richEditSupport = this.getLanguageConfiguration(languageId);\n if (!richEditSupport) {\n return null;\n }\n const indentRulesSupport = this.getIndentRulesSupport(languageId);\n if (!indentRulesSupport) {\n return null;\n }\n const indent = this.getInheritIndentForLine(autoIndent, virtualModel, lineNumber);\n const lineContent = virtualModel.getLineContent(lineNumber);\n if (indent) {\n const inheritLine = indent.line;\n if (inheritLine !== undefined) {\n const enterResult = richEditSupport.onEnter(autoIndent, '', virtualModel.getLineContent(inheritLine), '');\n if (enterResult) {\n let indentation = strings.getLeadingWhitespace(virtualModel.getLineContent(inheritLine));\n if (enterResult.removeText) {\n indentation = indentation.substring(0, indentation.length - enterResult.removeText);\n }\n if ((enterResult.indentAction === IndentAction.Indent) ||\n (enterResult.indentAction === IndentAction.IndentOutdent)) {\n indentation = indentConverter.shiftIndent(indentation);\n }\n else if (enterResult.indentAction === IndentAction.Outdent) {\n indentation = indentConverter.unshiftIndent(indentation);\n }\n if (indentRulesSupport.shouldDecrease(lineContent)) {\n indentation = indentConverter.unshiftIndent(indentation);\n }\n if (enterResult.appendText) {\n indentation += enterResult.appendText;\n }\n return strings.getLeadingWhitespace(indentation);\n }\n }\n if (indentRulesSupport.shouldDecrease(lineContent)) {\n if (indent.action === IndentAction.Indent) {\n return indent.indentation;\n }\n else {\n return indentConverter.unshiftIndent(indent.indentation);\n }\n }\n else {\n if (indent.action === IndentAction.Indent) {\n return indentConverter.shiftIndent(indent.indentation);\n }\n else {\n return indent.indentation;\n }\n }\n }\n return null;\n }\n getIndentForEnter(autoIndent, model, range, indentConverter) {\n if (autoIndent < 4 /* Full */) {\n return null;\n }\n model.forceTokenization(range.startLineNumber);\n const lineTokens = model.getLineTokens(range.startLineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, range.startColumn - 1);\n const scopedLineText = scopedLineTokens.getLineContent();\n let embeddedLanguage = false;\n let beforeEnterText;\n if (scopedLineTokens.firstCharOffset > 0 && lineTokens.getLanguageId(0) !== scopedLineTokens.languageId) {\n // we are in the embeded language content\n embeddedLanguage = true; // if embeddedLanguage is true, then we don't touch the indentation of current line\n beforeEnterText = scopedLineText.substr(0, range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n else {\n beforeEnterText = lineTokens.getLineContent().substring(0, range.startColumn - 1);\n }\n let afterEnterText;\n if (range.isEmpty()) {\n afterEnterText = scopedLineText.substr(range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n else {\n const endScopedLineTokens = this.getScopedLineTokens(model, range.endLineNumber, range.endColumn);\n afterEnterText = endScopedLineTokens.getLineContent().substr(range.endColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n const indentRulesSupport = this.getIndentRulesSupport(scopedLineTokens.languageId);\n if (!indentRulesSupport) {\n return null;\n }\n const beforeEnterResult = beforeEnterText;\n const beforeEnterIndent = strings.getLeadingWhitespace(beforeEnterText);\n const virtualModel = {\n getLineTokens: (lineNumber) => {\n return model.getLineTokens(lineNumber);\n },\n getLanguageId: () => {\n return model.getLanguageId();\n },\n getLanguageIdAtPosition: (lineNumber, column) => {\n return model.getLanguageIdAtPosition(lineNumber, column);\n },\n getLineContent: (lineNumber) => {\n if (lineNumber === range.startLineNumber) {\n return beforeEnterResult;\n }\n else {\n return model.getLineContent(lineNumber);\n }\n }\n };\n const currentLineIndent = strings.getLeadingWhitespace(lineTokens.getLineContent());\n const afterEnterAction = this.getInheritIndentForLine(autoIndent, virtualModel, range.startLineNumber + 1);\n if (!afterEnterAction) {\n const beforeEnter = embeddedLanguage ? currentLineIndent : beforeEnterIndent;\n return {\n beforeEnter: beforeEnter,\n afterEnter: beforeEnter\n };\n }\n let afterEnterIndent = embeddedLanguage ? currentLineIndent : afterEnterAction.indentation;\n if (afterEnterAction.action === IndentAction.Indent) {\n afterEnterIndent = indentConverter.shiftIndent(afterEnterIndent);\n }\n if (indentRulesSupport.shouldDecrease(afterEnterText)) {\n afterEnterIndent = indentConverter.unshiftIndent(afterEnterIndent);\n }\n return {\n beforeEnter: embeddedLanguage ? currentLineIndent : beforeEnterIndent,\n afterEnter: afterEnterIndent\n };\n }\n /**\n * We should always allow intentional indentation. It means, if users change the indentation of `lineNumber` and the content of\n * this line doesn't match decreaseIndentPattern, we should not adjust the indentation.\n */\n getIndentActionForType(autoIndent, model, range, ch, indentConverter) {\n if (autoIndent < 4 /* Full */) {\n return null;\n }\n const scopedLineTokens = this.getScopedLineTokens(model, range.startLineNumber, range.startColumn);\n if (scopedLineTokens.firstCharOffset) {\n // this line has mixed languages and indentation rules will not work\n return null;\n }\n const indentRulesSupport = this.getIndentRulesSupport(scopedLineTokens.languageId);\n if (!indentRulesSupport) {\n return null;\n }\n const scopedLineText = scopedLineTokens.getLineContent();\n const beforeTypeText = scopedLineText.substr(0, range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n // selection support\n let afterTypeText;\n if (range.isEmpty()) {\n afterTypeText = scopedLineText.substr(range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n else {\n const endScopedLineTokens = this.getScopedLineTokens(model, range.endLineNumber, range.endColumn);\n afterTypeText = endScopedLineTokens.getLineContent().substr(range.endColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n // If previous content already matches decreaseIndentPattern, it means indentation of this line should already be adjusted\n // Users might change the indentation by purpose and we should honor that instead of readjusting.\n if (!indentRulesSupport.shouldDecrease(beforeTypeText + afterTypeText) && indentRulesSupport.shouldDecrease(beforeTypeText + ch + afterTypeText)) {\n // after typing `ch`, the content matches decreaseIndentPattern, we should adjust the indent to a good manner.\n // 1. Get inherited indent action\n const r = this.getInheritIndentForLine(autoIndent, model, range.startLineNumber, false);\n if (!r) {\n return null;\n }\n let indentation = r.indentation;\n if (r.action !== IndentAction.Indent) {\n indentation = indentConverter.unshiftIndent(indentation);\n }\n return indentation;\n }\n return null;\n }\n getIndentMetadata(model, lineNumber) {\n const indentRulesSupport = this.getIndentRulesSupport(model.getLanguageId());\n if (!indentRulesSupport) {\n return null;\n }\n if (lineNumber < 1 || lineNumber > model.getLineCount()) {\n return null;\n }\n return indentRulesSupport.getIndentMetadata(model.getLineContent(lineNumber));\n }\n // end Indent Rules\n // begin onEnter\n getEnterAction(autoIndent, model, range) {\n const scopedLineTokens = this.getScopedLineTokens(model, range.startLineNumber, range.startColumn);\n const richEditSupport = this.getLanguageConfiguration(scopedLineTokens.languageId);\n if (!richEditSupport) {\n return null;\n }\n const scopedLineText = scopedLineTokens.getLineContent();\n const beforeEnterText = scopedLineText.substr(0, range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n // selection support\n let afterEnterText;\n if (range.isEmpty()) {\n afterEnterText = scopedLineText.substr(range.startColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n else {\n const endScopedLineTokens = this.getScopedLineTokens(model, range.endLineNumber, range.endColumn);\n afterEnterText = endScopedLineTokens.getLineContent().substr(range.endColumn - 1 - scopedLineTokens.firstCharOffset);\n }\n let previousLineText = '';\n if (range.startLineNumber > 1 && scopedLineTokens.firstCharOffset === 0) {\n // This is not the first line and the entire line belongs to this mode\n const oneLineAboveScopedLineTokens = this.getScopedLineTokens(model, range.startLineNumber - 1);\n if (oneLineAboveScopedLineTokens.languageId === scopedLineTokens.languageId) {\n // The line above ends with text belonging to the same mode\n previousLineText = oneLineAboveScopedLineTokens.getLineContent();\n }\n }\n const enterResult = richEditSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n if (!enterResult) {\n return null;\n }\n const indentAction = enterResult.indentAction;\n let appendText = enterResult.appendText;\n const removeText = enterResult.removeText || 0;\n // Here we add `\\t` to appendText first because enterAction is leveraging appendText and removeText to change indentation.\n if (!appendText) {\n if ((indentAction === IndentAction.Indent) ||\n (indentAction === IndentAction.IndentOutdent)) {\n appendText = '\\t';\n }\n else {\n appendText = '';\n }\n }\n else if (indentAction === IndentAction.Indent) {\n appendText = '\\t' + appendText;\n }\n let indentation = this.getIndentationAtPosition(model, range.startLineNumber, range.startColumn);\n if (removeText) {\n indentation = indentation.substring(0, indentation.length - removeText);\n }\n return {\n indentAction: indentAction,\n appendText: appendText,\n removeText: removeText,\n indentation: indentation\n };\n }\n getIndentationAtPosition(model, lineNumber, column) {\n const lineText = model.getLineContent(lineNumber);\n let indentation = strings.getLeadingWhitespace(lineText);\n if (indentation.length > column - 1) {\n indentation = indentation.substring(0, column - 1);\n }\n return indentation;\n }\n getScopedLineTokens(model, lineNumber, columnNumber) {\n model.forceTokenization(lineNumber);\n const lineTokens = model.getLineTokens(lineNumber);\n const column = (typeof columnNumber === 'undefined' ? model.getLineMaxColumn(lineNumber) - 1 : columnNumber - 1);\n return createScopedLineTokens(lineTokens, column);\n }\n}\nexport const LanguageConfigurationRegistry = new LanguageConfigurationRegistryImpl();\nclass ComposedLanguageConfiguration {\n constructor(languageId) {\n this.languageId = languageId;\n this._resolved = null;\n this._entries = [];\n this._order = 0;\n this._resolved = null;\n }\n register(configuration, priority) {\n const entry = new LanguageConfigurationContribution(configuration, priority, ++this._order);\n this._entries.push(entry);\n this._resolved = null;\n return toDisposable(() => {\n for (let i = 0; i < this._entries.length; i++) {\n if (this._entries[i] === entry) {\n this._entries.splice(i, 1);\n this._resolved = null;\n break;\n }\n }\n });\n }\n getResolvedConfiguration() {\n if (!this._resolved) {\n const config = this._resolve();\n if (config) {\n this._resolved = new ResolvedLanguageConfiguration(this.languageId, config);\n }\n }\n return this._resolved;\n }\n _resolve() {\n if (this._entries.length === 0) {\n return null;\n }\n this._entries.sort(LanguageConfigurationContribution.cmp);\n return combineLanguageConfigurations(this._entries.map(e => e.configuration));\n }\n}\nfunction combineLanguageConfigurations(configs) {\n let result = {\n comments: undefined,\n brackets: undefined,\n wordPattern: undefined,\n indentationRules: undefined,\n onEnterRules: undefined,\n autoClosingPairs: undefined,\n surroundingPairs: undefined,\n autoCloseBefore: undefined,\n folding: undefined,\n colorizedBracketPairs: undefined,\n __electricCharacterSupport: undefined,\n };\n for (const entry of configs) {\n result = {\n comments: entry.comments || result.comments,\n brackets: entry.brackets || result.brackets,\n wordPattern: entry.wordPattern || result.wordPattern,\n indentationRules: entry.indentationRules || result.indentationRules,\n onEnterRules: entry.onEnterRules || result.onEnterRules,\n autoClosingPairs: entry.autoClosingPairs || result.autoClosingPairs,\n surroundingPairs: entry.surroundingPairs || result.surroundingPairs,\n autoCloseBefore: entry.autoCloseBefore || result.autoCloseBefore,\n folding: entry.folding || result.folding,\n colorizedBracketPairs: entry.colorizedBracketPairs || result.colorizedBracketPairs,\n __electricCharacterSupport: entry.__electricCharacterSupport || result.__electricCharacterSupport,\n };\n }\n return result;\n}\nclass LanguageConfigurationContribution {\n constructor(configuration, priority, order) {\n this.configuration = configuration;\n this.priority = priority;\n this.order = order;\n }\n static cmp(a, b) {\n if (a.priority === b.priority) {\n // higher order last\n return a.order - b.order;\n }\n // higher priority last\n return a.priority - b.priority;\n }\n}\n/**\n * Immutable.\n*/\nexport class ResolvedLanguageConfiguration {\n constructor(languageId, underlyingConfig) {\n this.languageId = languageId;\n this.underlyingConfig = underlyingConfig;\n this._brackets = null;\n this._electricCharacter = null;\n this._onEnterSupport =\n this.underlyingConfig.brackets ||\n this.underlyingConfig.indentationRules ||\n this.underlyingConfig.onEnterRules\n ? new OnEnterSupport(this.underlyingConfig)\n : null;\n this.comments = ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);\n this.characterPair = new CharacterPairSupport(this.underlyingConfig);\n this.wordDefinition = this.underlyingConfig.wordPattern || DEFAULT_WORD_REGEXP;\n this.indentationRules = this.underlyingConfig.indentationRules;\n if (this.underlyingConfig.indentationRules) {\n this.indentRulesSupport = new IndentRulesSupport(this.underlyingConfig.indentationRules);\n }\n else {\n this.indentRulesSupport = null;\n }\n this.foldingRules = this.underlyingConfig.folding || {};\n }\n getWordDefinition() {\n return ensureValidWordDefinition(this.wordDefinition);\n }\n get brackets() {\n if (!this._brackets && this.underlyingConfig.brackets) {\n this._brackets = new RichEditBrackets(this.languageId, this.underlyingConfig.brackets);\n }\n return this._brackets;\n }\n get electricCharacter() {\n if (!this._electricCharacter) {\n this._electricCharacter = new BracketElectricCharacterSupport(this.brackets);\n }\n return this._electricCharacter;\n }\n onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n if (!this._onEnterSupport) {\n return null;\n }\n return this._onEnterSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n }\n static _handleComments(conf) {\n let commentRule = conf.comments;\n if (!commentRule) {\n return null;\n }\n // comment configuration\n let comments = {};\n if (commentRule.lineComment) {\n comments.lineCommentToken = commentRule.lineComment;\n }\n if (commentRule.blockComment) {\n let [blockStart, blockEnd] = commentRule.blockComment;\n comments.blockCommentStartToken = blockStart;\n comments.blockCommentEndToken = blockEnd;\n }\n return comments;\n }\n}\nregisterSingleton(ILanguageConfigurationService, LanguageConfigurationService);\n","import { equals } from '../../base/common/objects.js';\n/**\n * Vertical Lane in the overview ruler of the editor.\n */\nexport var OverviewRulerLane;\n(function (OverviewRulerLane) {\n OverviewRulerLane[OverviewRulerLane[\"Left\"] = 1] = \"Left\";\n OverviewRulerLane[OverviewRulerLane[\"Center\"] = 2] = \"Center\";\n OverviewRulerLane[OverviewRulerLane[\"Right\"] = 4] = \"Right\";\n OverviewRulerLane[OverviewRulerLane[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane || (OverviewRulerLane = {}));\n/**\n * Position in the minimap to render the decoration.\n */\nexport var MinimapPosition;\n(function (MinimapPosition) {\n MinimapPosition[MinimapPosition[\"Inline\"] = 1] = \"Inline\";\n MinimapPosition[MinimapPosition[\"Gutter\"] = 2] = \"Gutter\";\n})(MinimapPosition || (MinimapPosition = {}));\nexport class TextModelResolvedOptions {\n /**\n * @internal\n */\n constructor(src) {\n this._textModelResolvedOptionsBrand = undefined;\n this.tabSize = Math.max(1, src.tabSize | 0);\n this.indentSize = src.tabSize | 0;\n this.insertSpaces = Boolean(src.insertSpaces);\n this.defaultEOL = src.defaultEOL | 0;\n this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace);\n this.bracketPairColorizationOptions = src.bracketPairColorizationOptions;\n }\n /**\n * @internal\n */\n equals(other) {\n return (this.tabSize === other.tabSize\n && this.indentSize === other.indentSize\n && this.insertSpaces === other.insertSpaces\n && this.defaultEOL === other.defaultEOL\n && this.trimAutoWhitespace === other.trimAutoWhitespace\n && equals(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions));\n }\n /**\n * @internal\n */\n createChangeEvent(newOpts) {\n return {\n tabSize: this.tabSize !== newOpts.tabSize,\n indentSize: this.indentSize !== newOpts.indentSize,\n insertSpaces: this.insertSpaces !== newOpts.insertSpaces,\n trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace,\n };\n }\n}\nexport class FindMatch {\n /**\n * @internal\n */\n constructor(range, matches) {\n this._findMatchBrand = undefined;\n this.range = range;\n this.matches = matches;\n }\n}\n/**\n * @internal\n */\nexport var HorizontalGuidesState;\n(function (HorizontalGuidesState) {\n HorizontalGuidesState[HorizontalGuidesState[\"Disabled\"] = 0] = \"Disabled\";\n HorizontalGuidesState[HorizontalGuidesState[\"EnabledForActive\"] = 1] = \"EnabledForActive\";\n HorizontalGuidesState[HorizontalGuidesState[\"Enabled\"] = 2] = \"Enabled\";\n})(HorizontalGuidesState || (HorizontalGuidesState = {}));\n/**\n * @internal\n */\nexport class IndentGuide {\n constructor(visibleColumn, className, \n /**\n * If set, this indent guide is a horizontal guide (no vertical part).\n * It starts at visibleColumn and continues until endColumn.\n */\n horizontalLine) {\n this.visibleColumn = visibleColumn;\n this.className = className;\n this.horizontalLine = horizontalLine;\n }\n}\n/**\n * @internal\n */\nexport class IndentGuideHorizontalLine {\n constructor(top, endColumn) {\n this.top = top;\n this.endColumn = endColumn;\n }\n}\n/**\n * @internal\n */\nexport class ValidAnnotatedEditOperation {\n constructor(identifier, range, text, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) {\n this.identifier = identifier;\n this.range = range;\n this.text = text;\n this.forceMoveMarkers = forceMoveMarkers;\n this.isAutoWhitespaceEdit = isAutoWhitespaceEdit;\n this._isTracked = _isTracked;\n }\n}\n/**\n * @internal\n */\nexport class ApplyEditsResult {\n constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) {\n this.reverseEdits = reverseEdits;\n this.changes = changes;\n this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers;\n }\n}\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as platform from './platform.js';\nimport { URI } from './uri.js';\nexport var Schemas;\n(function (Schemas) {\n /**\n * A schema that is used for models that exist in memory\n * only and that have no correspondence on a server or such.\n */\n Schemas.inMemory = 'inmemory';\n /**\n * A schema that is used for setting files\n */\n Schemas.vscode = 'vscode';\n /**\n * A schema that is used for internal private files\n */\n Schemas.internal = 'private';\n /**\n * A walk-through document.\n */\n Schemas.walkThrough = 'walkThrough';\n /**\n * An embedded code snippet.\n */\n Schemas.walkThroughSnippet = 'walkThroughSnippet';\n Schemas.http = 'http';\n Schemas.https = 'https';\n Schemas.file = 'file';\n Schemas.mailto = 'mailto';\n Schemas.untitled = 'untitled';\n Schemas.data = 'data';\n Schemas.command = 'command';\n Schemas.vscodeRemote = 'vscode-remote';\n Schemas.vscodeRemoteResource = 'vscode-remote-resource';\n Schemas.userData = 'vscode-userdata';\n Schemas.vscodeCustomEditor = 'vscode-custom-editor';\n Schemas.vscodeNotebook = 'vscode-notebook';\n Schemas.vscodeNotebookCell = 'vscode-notebook-cell';\n Schemas.vscodeNotebookCellMetadata = 'vscode-notebook-cell-metadata';\n Schemas.vscodeNotebookCellOutput = 'vscode-notebook-cell-output';\n Schemas.vscodeInteractive = 'vscode-interactive';\n Schemas.vscodeInteractiveInput = 'vscode-interactive-input';\n Schemas.vscodeSettings = 'vscode-settings';\n Schemas.vscodeWorkspaceTrust = 'vscode-workspace-trust';\n Schemas.vscodeTerminal = 'vscode-terminal';\n Schemas.webviewPanel = 'webview-panel';\n /**\n * Scheme used for loading the wrapper html and script in webviews.\n */\n Schemas.vscodeWebview = 'vscode-webview';\n /**\n * Scheme used for extension pages\n */\n Schemas.extension = 'extension';\n /**\n * Scheme used as a replacement of `file` scheme to load\n * files with our custom protocol handler (desktop only).\n */\n Schemas.vscodeFileResource = 'vscode-file';\n /**\n * Scheme used for temporary resources\n */\n Schemas.tmp = 'tmp';\n})(Schemas || (Schemas = {}));\nclass RemoteAuthoritiesImpl {\n constructor() {\n this._hosts = Object.create(null);\n this._ports = Object.create(null);\n this._connectionTokens = Object.create(null);\n this._preferredWebSchema = 'http';\n this._delegate = null;\n }\n setPreferredWebSchema(schema) {\n this._preferredWebSchema = schema;\n }\n rewrite(uri) {\n if (this._delegate) {\n return this._delegate(uri);\n }\n const authority = uri.authority;\n let host = this._hosts[authority];\n if (host && host.indexOf(':') !== -1) {\n host = `[${host}]`;\n }\n const port = this._ports[authority];\n const connectionToken = this._connectionTokens[authority];\n let query = `path=${encodeURIComponent(uri.path)}`;\n if (typeof connectionToken === 'string') {\n query += `&tkn=${encodeURIComponent(connectionToken)}`;\n }\n return URI.from({\n scheme: platform.isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource,\n authority: `${host}:${port}`,\n path: `/vscode-remote-resource`,\n query\n });\n }\n}\nexport const RemoteAuthorities = new RemoteAuthoritiesImpl();\nclass FileAccessImpl {\n asBrowserUri(uriOrModule, moduleIdToUrl) {\n const uri = this.toUri(uriOrModule, moduleIdToUrl);\n // Handle remote URIs via `RemoteAuthorities`\n if (uri.scheme === Schemas.vscodeRemote) {\n return RemoteAuthorities.rewrite(uri);\n }\n // Convert to `vscode-file` resource..\n if (\n // ...only ever for `file` resources\n uri.scheme === Schemas.file &&\n (\n // ...and we run in native environments\n platform.isNative ||\n // ...or web worker extensions on desktop\n (typeof platform.globals.importScripts === 'function' && platform.globals.origin === `${Schemas.vscodeFileResource}://${FileAccessImpl.FALLBACK_AUTHORITY}`))) {\n return uri.with({\n scheme: Schemas.vscodeFileResource,\n // We need to provide an authority here so that it can serve\n // as origin for network and loading matters in chromium.\n // If the URI is not coming with an authority already, we\n // add our own\n authority: uri.authority || FileAccessImpl.FALLBACK_AUTHORITY,\n query: null,\n fragment: null\n });\n }\n return uri;\n }\n toUri(uriOrModule, moduleIdToUrl) {\n if (URI.isUri(uriOrModule)) {\n return uriOrModule;\n }\n return URI.parse(moduleIdToUrl.toUrl(uriOrModule));\n }\n}\nFileAccessImpl.FALLBACK_AUTHORITY = 'vscode-app';\nexport const FileAccess = new FileAccessImpl();\n","export const MAX_COLOR_SATURATION = 100;\nexport const MAX_COLOR_HUE = 359;\nexport const MAX_COLOR_VALUE = 100;\nexport const MAX_COLOR_RGB = 255;\n/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */\nexport const MAX_COLOR_RGBA = MAX_COLOR_RGB;\nexport const MAX_COLOR_ALPHA = 100;\n\n/** Minimum length for a hexadecimal color string (not including the #) */\nexport const MIN_HEX_LENGTH = 3;\n/** Maximum length for a hexadecimal color string (not including the #) */\nexport const MAX_HEX_LENGTH = 6;\n/** Minimum length for a string of an RGBA color component */\nexport const MIN_RGBA_LENGTH = 1;\n/** Maximum length for a string of an RGBA color component */\nexport const MAX_RGBA_LENGTH = 3;\n\n/** Regular expression matching only valid hexadecimal chars */\nexport const HEX_REGEX = /^[\\da-f]{0,6}$/i;\n/** Regular expression matching only numbers */\nexport const RGBA_REGEX = /^\\d{0,3}$/;\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\nexport var KeyInfo = {\n serializedName: \"KeyInfo\",\n type: {\n name: \"Composite\",\n className: \"KeyInfo\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiry: {\n xmlName: \"Expiry\",\n required: true,\n serializedName: \"Expiry\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var UserDelegationKey = {\n serializedName: \"UserDelegationKey\",\n type: {\n name: \"Composite\",\n className: \"UserDelegationKey\",\n modelProperties: {\n signedOid: {\n xmlName: \"SignedOid\",\n required: true,\n serializedName: \"SignedOid\",\n type: {\n name: \"String\"\n }\n },\n signedTid: {\n xmlName: \"SignedTid\",\n required: true,\n serializedName: \"SignedTid\",\n type: {\n name: \"String\"\n }\n },\n signedStart: {\n xmlName: \"SignedStart\",\n required: true,\n serializedName: \"SignedStart\",\n type: {\n name: \"String\"\n }\n },\n signedExpiry: {\n xmlName: \"SignedExpiry\",\n required: true,\n serializedName: \"SignedExpiry\",\n type: {\n name: \"String\"\n }\n },\n signedService: {\n xmlName: \"SignedService\",\n required: true,\n serializedName: \"SignedService\",\n type: {\n name: \"String\"\n }\n },\n signedVersion: {\n xmlName: \"SignedVersion\",\n required: true,\n serializedName: \"SignedVersion\",\n type: {\n name: \"String\"\n }\n },\n value: {\n xmlName: \"Value\",\n required: true,\n serializedName: \"Value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var StorageError = {\n serializedName: \"StorageError\",\n type: {\n name: \"Composite\",\n className: \"StorageError\",\n modelProperties: {\n message: {\n xmlName: \"Message\",\n serializedName: \"Message\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var DataLakeStorageErrorError = {\n serializedName: \"DataLakeStorageError_error\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageErrorError\",\n modelProperties: {\n code: {\n xmlName: \"Code\",\n serializedName: \"Code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n xmlName: \"Message\",\n serializedName: \"Message\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var DataLakeStorageError = {\n serializedName: \"DataLakeStorageError\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageError\",\n modelProperties: {\n error: {\n xmlName: \"error\",\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"DataLakeStorageErrorError\"\n }\n }\n }\n }\n};\nexport var AccessPolicy = {\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiry: {\n xmlName: \"Expiry\",\n required: true,\n serializedName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permission: {\n xmlName: \"Permission\",\n required: true,\n serializedName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobProperties = {\n xmlName: \"Properties\",\n serializedName: \"BlobProperties\",\n type: {\n name: \"Composite\",\n className: \"BlobProperties\",\n modelProperties: {\n creationTime: {\n xmlName: \"Creation-Time\",\n serializedName: \"Creation-Time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n lastModified: {\n xmlName: \"Last-Modified\",\n required: true,\n serializedName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n xmlName: \"Etag\",\n required: true,\n serializedName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n xmlName: \"Content-Length\",\n serializedName: \"Content-Length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n xmlName: \"Content-Type\",\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n xmlName: \"Content-Encoding\",\n serializedName: \"Content-Encoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n xmlName: \"Content-Language\",\n serializedName: \"Content-Language\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n xmlName: \"Content-MD5\",\n serializedName: \"Content-MD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentDisposition: {\n xmlName: \"Content-Disposition\",\n serializedName: \"Content-Disposition\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n xmlName: \"Cache-Control\",\n serializedName: \"Cache-Control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n xmlName: \"x-ms-blob-sequence-number\",\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n xmlName: \"BlobType\",\n serializedName: \"BlobType\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n leaseStatus: {\n xmlName: \"LeaseStatus\",\n serializedName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n leaseState: {\n xmlName: \"LeaseState\",\n serializedName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n xmlName: \"LeaseDuration\",\n serializedName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n copyId: {\n xmlName: \"CopyId\",\n serializedName: \"CopyId\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n xmlName: \"CopyStatus\",\n serializedName: \"CopyStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n copySource: {\n xmlName: \"CopySource\",\n serializedName: \"CopySource\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n xmlName: \"CopyProgress\",\n serializedName: \"CopyProgress\",\n type: {\n name: \"String\"\n }\n },\n copyCompletionTime: {\n xmlName: \"CopyCompletionTime\",\n serializedName: \"CopyCompletionTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n xmlName: \"CopyStatusDescription\",\n serializedName: \"CopyStatusDescription\",\n type: {\n name: \"String\"\n }\n },\n serverEncrypted: {\n xmlName: \"ServerEncrypted\",\n serializedName: \"ServerEncrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n incrementalCopy: {\n xmlName: \"IncrementalCopy\",\n serializedName: \"IncrementalCopy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n xmlName: \"DestinationSnapshot\",\n serializedName: \"DestinationSnapshot\",\n type: {\n name: \"String\"\n }\n },\n deletedTime: {\n xmlName: \"DeletedTime\",\n serializedName: \"DeletedTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n remainingRetentionDays: {\n xmlName: \"RemainingRetentionDays\",\n serializedName: \"RemainingRetentionDays\",\n type: {\n name: \"Number\"\n }\n },\n accessTier: {\n xmlName: \"AccessTier\",\n serializedName: \"AccessTier\",\n type: {\n name: \"String\"\n }\n },\n accessTierInferred: {\n xmlName: \"AccessTierInferred\",\n serializedName: \"AccessTierInferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n xmlName: \"ArchiveStatus\",\n serializedName: \"ArchiveStatus\",\n type: {\n name: \"String\"\n }\n },\n customerProvidedKeySha256: {\n xmlName: \"CustomerProvidedKeySha256\",\n serializedName: \"CustomerProvidedKeySha256\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangeTime: {\n xmlName: \"AccessTierChangeTime\",\n serializedName: \"AccessTierChangeTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var BlobMetadata = {\n xmlName: \"Metadata\",\n serializedName: \"BlobMetadata\",\n type: {\n name: \"Composite\",\n className: \"BlobMetadata\",\n modelProperties: {\n encrypted: {\n xmlIsAttribute: true,\n xmlName: \"Encrypted\",\n serializedName: \"Encrypted\",\n type: {\n name: \"String\"\n }\n }\n },\n additionalProperties: {\n type: {\n name: \"String\"\n }\n }\n }\n};\nexport var BlobItem = {\n xmlName: \"Blob\",\n serializedName: \"BlobItem\",\n type: {\n name: \"Composite\",\n className: \"BlobItem\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n deleted: {\n xmlName: \"Deleted\",\n required: true,\n serializedName: \"Deleted\",\n type: {\n name: \"Boolean\"\n }\n },\n snapshot: {\n xmlName: \"Snapshot\",\n required: true,\n serializedName: \"Snapshot\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n xmlName: \"Properties\",\n required: true,\n serializedName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"BlobProperties\"\n }\n },\n metadata: {\n xmlName: \"Metadata\",\n serializedName: \"Metadata\",\n type: {\n name: \"Composite\",\n className: \"BlobMetadata\",\n additionalProperties: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\nexport var BlobFlatListSegment = {\n xmlName: \"Blobs\",\n serializedName: \"BlobFlatListSegment\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\",\n modelProperties: {\n blobItems: {\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n required: true,\n serializedName: \"BlobItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItem\"\n }\n }\n }\n }\n }\n }\n};\nexport var ListBlobsFlatSegmentResponse = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListBlobsFlatSegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsFlatSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n xmlIsAttribute: true,\n xmlName: \"ContainerName\",\n required: true,\n serializedName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxResults: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n delimiter: {\n xmlName: \"Delimiter\",\n serializedName: \"Delimiter\",\n type: {\n name: \"String\"\n }\n },\n segment: {\n xmlName: \"Blobs\",\n required: true,\n serializedName: \"Segment\",\n type: {\n name: \"Composite\",\n className: \"BlobFlatListSegment\"\n }\n },\n nextMarker: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobPrefix = {\n serializedName: \"BlobPrefix\",\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobHierarchyListSegment = {\n xmlName: \"Blobs\",\n serializedName: \"BlobHierarchyListSegment\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\",\n modelProperties: {\n blobPrefixes: {\n xmlName: \"BlobPrefixes\",\n xmlElementName: \"BlobPrefix\",\n serializedName: \"BlobPrefixes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobPrefix\"\n }\n }\n }\n },\n blobItems: {\n xmlName: \"BlobItems\",\n xmlElementName: \"Blob\",\n required: true,\n serializedName: \"BlobItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"BlobItem\"\n }\n }\n }\n }\n }\n }\n};\nexport var ListBlobsHierarchySegmentResponse = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListBlobsHierarchySegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListBlobsHierarchySegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n containerName: {\n xmlIsAttribute: true,\n xmlName: \"ContainerName\",\n required: true,\n serializedName: \"ContainerName\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxResults: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n delimiter: {\n xmlName: \"Delimiter\",\n serializedName: \"Delimiter\",\n type: {\n name: \"String\"\n }\n },\n segment: {\n xmlName: \"Blobs\",\n required: true,\n serializedName: \"Segment\",\n type: {\n name: \"Composite\",\n className: \"BlobHierarchyListSegment\"\n }\n },\n nextMarker: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var Block = {\n serializedName: \"Block\",\n type: {\n name: \"Composite\",\n className: \"Block\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n size: {\n xmlName: \"Size\",\n required: true,\n serializedName: \"Size\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var BlockList = {\n serializedName: \"BlockList\",\n type: {\n name: \"Composite\",\n className: \"BlockList\",\n modelProperties: {\n committedBlocks: {\n xmlIsWrapped: true,\n xmlName: \"CommittedBlocks\",\n xmlElementName: \"Block\",\n serializedName: \"CommittedBlocks\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n },\n uncommittedBlocks: {\n xmlIsWrapped: true,\n xmlName: \"UncommittedBlocks\",\n xmlElementName: \"Block\",\n serializedName: \"UncommittedBlocks\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Block\"\n }\n }\n }\n }\n }\n }\n};\nexport var BlockLookupList = {\n xmlName: \"BlockList\",\n serializedName: \"BlockLookupList\",\n type: {\n name: \"Composite\",\n className: \"BlockLookupList\",\n modelProperties: {\n committed: {\n xmlName: \"Committed\",\n xmlElementName: \"Committed\",\n serializedName: \"Committed\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n uncommitted: {\n xmlName: \"Uncommitted\",\n xmlElementName: \"Uncommitted\",\n serializedName: \"Uncommitted\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n latest: {\n xmlName: \"Latest\",\n xmlElementName: \"Latest\",\n serializedName: \"Latest\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\nexport var ContainerProperties = {\n serializedName: \"ContainerProperties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\",\n modelProperties: {\n lastModified: {\n xmlName: \"Last-Modified\",\n required: true,\n serializedName: \"Last-Modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n xmlName: \"Etag\",\n required: true,\n serializedName: \"Etag\",\n type: {\n name: \"String\"\n }\n },\n leaseStatus: {\n xmlName: \"LeaseStatus\",\n serializedName: \"LeaseStatus\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n leaseState: {\n xmlName: \"LeaseState\",\n serializedName: \"LeaseState\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseDuration: {\n xmlName: \"LeaseDuration\",\n serializedName: \"LeaseDuration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n publicAccess: {\n xmlName: \"PublicAccess\",\n serializedName: \"PublicAccess\",\n type: {\n name: \"String\"\n }\n },\n hasImmutabilityPolicy: {\n xmlName: \"HasImmutabilityPolicy\",\n serializedName: \"HasImmutabilityPolicy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n xmlName: \"HasLegalHold\",\n serializedName: \"HasLegalHold\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\nexport var ContainerItem = {\n xmlName: \"Container\",\n serializedName: \"ContainerItem\",\n type: {\n name: \"Composite\",\n className: \"ContainerItem\",\n modelProperties: {\n name: {\n xmlName: \"Name\",\n required: true,\n serializedName: \"Name\",\n type: {\n name: \"String\"\n }\n },\n properties: {\n xmlName: \"Properties\",\n required: true,\n serializedName: \"Properties\",\n type: {\n name: \"Composite\",\n className: \"ContainerProperties\"\n }\n },\n metadata: {\n xmlName: \"Metadata\",\n serializedName: \"Metadata\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\nexport var ListContainersSegmentResponse = {\n xmlName: \"EnumerationResults\",\n serializedName: \"ListContainersSegmentResponse\",\n type: {\n name: \"Composite\",\n className: \"ListContainersSegmentResponse\",\n modelProperties: {\n serviceEndpoint: {\n xmlIsAttribute: true,\n xmlName: \"ServiceEndpoint\",\n required: true,\n serializedName: \"ServiceEndpoint\",\n type: {\n name: \"String\"\n }\n },\n prefix: {\n xmlName: \"Prefix\",\n serializedName: \"Prefix\",\n type: {\n name: \"String\"\n }\n },\n marker: {\n xmlName: \"Marker\",\n serializedName: \"Marker\",\n type: {\n name: \"String\"\n }\n },\n maxResults: {\n xmlName: \"MaxResults\",\n serializedName: \"MaxResults\",\n type: {\n name: \"Number\"\n }\n },\n containerItems: {\n xmlIsWrapped: true,\n xmlName: \"Containers\",\n xmlElementName: \"Container\",\n required: true,\n serializedName: \"ContainerItems\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ContainerItem\"\n }\n }\n }\n },\n nextMarker: {\n xmlName: \"NextMarker\",\n serializedName: \"NextMarker\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var CorsRule = {\n serializedName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n xmlName: \"AllowedOrigins\",\n required: true,\n serializedName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n xmlName: \"AllowedMethods\",\n required: true,\n serializedName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n xmlName: \"AllowedHeaders\",\n required: true,\n serializedName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n xmlName: \"ExposedHeaders\",\n required: true,\n serializedName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n xmlName: \"MaxAgeInSeconds\",\n required: true,\n serializedName: \"MaxAgeInSeconds\",\n constraints: {\n InclusiveMinimum: 0\n },\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var GeoReplication = {\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n xmlName: \"Status\",\n required: true,\n serializedName: \"Status\",\n type: {\n name: \"String\"\n }\n },\n lastSyncTime: {\n xmlName: \"LastSyncTime\",\n required: true,\n serializedName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var RetentionPolicy = {\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n xmlName: \"Days\",\n serializedName: \"Days\",\n constraints: {\n InclusiveMinimum: 1\n },\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var Logging = {\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n xmlName: \"Version\",\n required: true,\n serializedName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n deleteProperty: {\n xmlName: \"Delete\",\n required: true,\n serializedName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n xmlName: \"Read\",\n required: true,\n serializedName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n xmlName: \"Write\",\n required: true,\n serializedName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n xmlName: \"RetentionPolicy\",\n required: true,\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\nexport var Metrics = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n xmlName: \"Version\",\n serializedName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n xmlName: \"IncludeAPIs\",\n serializedName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n xmlName: \"RetentionPolicy\",\n serializedName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\nexport var PageRange = {\n serializedName: \"PageRange\",\n type: {\n name: \"Composite\",\n className: \"PageRange\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n xmlName: \"End\",\n required: true,\n serializedName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var ClearRange = {\n serializedName: \"ClearRange\",\n type: {\n name: \"Composite\",\n className: \"ClearRange\",\n modelProperties: {\n start: {\n xmlName: \"Start\",\n required: true,\n serializedName: \"Start\",\n type: {\n name: \"Number\"\n }\n },\n end: {\n xmlName: \"End\",\n required: true,\n serializedName: \"End\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var PageList = {\n serializedName: \"PageList\",\n type: {\n name: \"Composite\",\n className: \"PageList\",\n modelProperties: {\n pageRange: {\n xmlName: \"PageRange\",\n xmlElementName: \"PageRange\",\n serializedName: \"PageRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"PageRange\"\n }\n }\n }\n },\n clearRange: {\n xmlName: \"ClearRange\",\n xmlElementName: \"ClearRange\",\n serializedName: \"ClearRange\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ClearRange\"\n }\n }\n }\n }\n }\n }\n};\nexport var SignedIdentifier = {\n serializedName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n xmlName: \"Id\",\n required: true,\n serializedName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n xmlName: \"AccessPolicy\",\n required: true,\n serializedName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\nexport var StaticWebsite = {\n serializedName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\",\n modelProperties: {\n enabled: {\n xmlName: \"Enabled\",\n required: true,\n serializedName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n indexDocument: {\n xmlName: \"IndexDocument\",\n serializedName: \"IndexDocument\",\n type: {\n name: \"String\"\n }\n },\n errorDocument404Path: {\n xmlName: \"ErrorDocument404Path\",\n serializedName: \"ErrorDocument404Path\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var StorageServiceProperties = {\n serializedName: \"StorageServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"StorageServiceProperties\",\n modelProperties: {\n logging: {\n xmlName: \"Logging\",\n serializedName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n xmlName: \"HourMetrics\",\n serializedName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n xmlName: \"MinuteMetrics\",\n serializedName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n xmlIsWrapped: true,\n xmlName: \"Cors\",\n xmlElementName: \"CorsRule\",\n serializedName: \"Cors\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n },\n defaultServiceVersion: {\n xmlName: \"DefaultServiceVersion\",\n serializedName: \"DefaultServiceVersion\",\n type: {\n name: \"String\"\n }\n },\n deleteRetentionPolicy: {\n xmlName: \"DeleteRetentionPolicy\",\n serializedName: \"DeleteRetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n },\n staticWebsite: {\n xmlName: \"StaticWebsite\",\n serializedName: \"StaticWebsite\",\n type: {\n name: \"Composite\",\n className: \"StaticWebsite\"\n }\n }\n }\n }\n};\nexport var StorageServiceStats = {\n serializedName: \"StorageServiceStats\",\n type: {\n name: \"Composite\",\n className: \"StorageServiceStats\",\n modelProperties: {\n geoReplication: {\n xmlName: \"GeoReplication\",\n serializedName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\nexport var LeaseAccessConditions = {\n xmlName: \"lease-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"LeaseAccessConditions\",\n modelProperties: {\n leaseId: {\n xmlName: \"leaseId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ModifiedAccessConditions = {\n xmlName: \"modified-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"ModifiedAccessConditions\",\n modelProperties: {\n ifModifiedSince: {\n xmlName: \"ifModifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n ifUnmodifiedSince: {\n xmlName: \"ifUnmodifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n ifMatch: {\n xmlName: \"ifMatch\",\n type: {\n name: \"String\"\n }\n },\n ifNoneMatch: {\n xmlName: \"ifNoneMatch\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var DirectoryHttpHeaders = {\n xmlName: \"directory-http-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryHttpHeaders\",\n modelProperties: {\n cacheControl: {\n xmlName: \"cacheControl\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n xmlName: \"contentType\",\n type: {\n name: \"String\"\n }\n },\n contentEncoding: {\n xmlName: \"contentEncoding\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n xmlName: \"contentLanguage\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n xmlName: \"contentDisposition\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var SourceModifiedAccessConditions = {\n xmlName: \"source-modified-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"SourceModifiedAccessConditions\",\n modelProperties: {\n sourceIfModifiedSince: {\n xmlName: \"sourceIfModifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n sourceIfUnmodifiedSince: {\n xmlName: \"sourceIfUnmodifiedSince\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n sourceIfMatch: {\n xmlName: \"sourceIfMatch\",\n type: {\n name: \"String\"\n }\n },\n sourceIfNoneMatch: {\n xmlName: \"sourceIfNoneMatch\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var CpkInfo = {\n xmlName: \"cpk-info\",\n type: {\n name: \"Composite\",\n className: \"CpkInfo\",\n modelProperties: {\n encryptionKey: {\n xmlName: \"encryptionKey\",\n type: {\n name: \"String\"\n }\n },\n encryptionKeySha256: {\n xmlName: \"encryptionKeySha256\",\n type: {\n name: \"String\"\n }\n },\n encryptionAlgorithm: {\n xmlName: \"encryptionAlgorithm\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"AES256\"\n ]\n }\n }\n }\n }\n};\nexport var BlobHTTPHeaders = {\n xmlName: \"blob-HTTP-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobHTTPHeaders\",\n modelProperties: {\n blobCacheControl: {\n xmlName: \"blobCacheControl\",\n type: {\n name: \"String\"\n }\n },\n blobContentType: {\n xmlName: \"blobContentType\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n xmlName: \"blobContentMD5\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobContentEncoding: {\n xmlName: \"blobContentEncoding\",\n type: {\n name: \"String\"\n }\n },\n blobContentLanguage: {\n xmlName: \"blobContentLanguage\",\n type: {\n name: \"String\"\n }\n },\n blobContentDisposition: {\n xmlName: \"blobContentDisposition\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var SequenceNumberAccessConditions = {\n xmlName: \"sequence-number-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"SequenceNumberAccessConditions\",\n modelProperties: {\n ifSequenceNumberLessThanOrEqualTo: {\n xmlName: \"ifSequenceNumberLessThanOrEqualTo\",\n type: {\n name: \"Number\"\n }\n },\n ifSequenceNumberLessThan: {\n xmlName: \"ifSequenceNumberLessThan\",\n type: {\n name: \"Number\"\n }\n },\n ifSequenceNumberEqualTo: {\n xmlName: \"ifSequenceNumberEqualTo\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var AppendPositionAccessConditions = {\n xmlName: \"append-position-access-conditions\",\n type: {\n name: \"Composite\",\n className: \"AppendPositionAccessConditions\",\n modelProperties: {\n maxSize: {\n xmlName: \"maxSize\",\n type: {\n name: \"Number\"\n }\n },\n appendPosition: {\n xmlName: \"appendPosition\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\nexport var ServiceSetPropertiesHeaders = {\n serializedName: \"service-setproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceGetPropertiesHeaders = {\n serializedName: \"service-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceGetStatisticsHeaders = {\n serializedName: \"service-getstatistics-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceListContainersSegmentHeaders = {\n serializedName: \"service-listcontainerssegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceListContainersSegmentHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceGetUserDelegationKeyHeaders = {\n serializedName: \"service-getuserdelegationkey-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetUserDelegationKeyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceGetAccountInfoHeaders = {\n serializedName: \"service-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ServiceSubmitBatchHeaders = {\n serializedName: \"service-submitbatch-headers\",\n type: {\n name: \"Composite\",\n className: \"ServiceSubmitBatchHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerCreateHeaders = {\n serializedName: \"container-create-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerCreateHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerGetPropertiesHeaders = {\n serializedName: \"container-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetPropertiesHeaders\",\n modelProperties: {\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n },\n hasImmutabilityPolicy: {\n serializedName: \"x-ms-has-immutability-policy\",\n type: {\n name: \"Boolean\"\n }\n },\n hasLegalHold: {\n serializedName: \"x-ms-has-legal-hold\",\n type: {\n name: \"Boolean\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerDeleteHeaders = {\n serializedName: \"container-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerSetMetadataHeaders = {\n serializedName: \"container-setmetadata-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetMetadataHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerGetAccessPolicyHeaders = {\n serializedName: \"container-getaccesspolicy-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccessPolicyHeaders\",\n modelProperties: {\n blobPublicAccess: {\n serializedName: \"x-ms-blob-public-access\",\n type: {\n name: \"String\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerSetAccessPolicyHeaders = {\n serializedName: \"container-setaccesspolicy-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerSetAccessPolicyHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerAcquireLeaseHeaders = {\n serializedName: \"container-acquirelease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerAcquireLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerReleaseLeaseHeaders = {\n serializedName: \"container-releaselease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerReleaseLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerRenewLeaseHeaders = {\n serializedName: \"container-renewlease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerRenewLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerBreakLeaseHeaders = {\n serializedName: \"container-breaklease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerBreakLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerChangeLeaseHeaders = {\n serializedName: \"container-changelease-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerChangeLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerListBlobFlatSegmentHeaders = {\n serializedName: \"container-listblobflatsegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobFlatSegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerListBlobHierarchySegmentHeaders = {\n serializedName: \"container-listblobhierarchysegment-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerListBlobHierarchySegmentHeaders\",\n modelProperties: {\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var ContainerGetAccountInfoHeaders = {\n serializedName: \"container-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"ContainerGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var DirectoryCreateHeaders = {\n serializedName: \"directory-create-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryCreateHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var DirectoryRenameHeaders = {\n serializedName: \"directory-rename-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryRenameHeaders\",\n modelProperties: {\n marker: {\n serializedName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var DirectoryDeleteHeaders = {\n serializedName: \"directory-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryDeleteHeaders\",\n modelProperties: {\n marker: {\n serializedName: \"x-ms-continuation\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var DirectorySetAccessControlHeaders = {\n serializedName: \"directory-setaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectorySetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var DirectoryGetAccessControlHeaders = {\n serializedName: \"directory-getaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"DirectoryGetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsOwner: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n },\n xMsGroup: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n },\n xMsPermissions: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n },\n xMsAcl: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobDownloadHeaders = {\n serializedName: \"blob-download-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobDownloadHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n contentRange: {\n serializedName: \"content-range\",\n type: {\n name: \"String\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n copyCompletionTime: {\n serializedName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n blobContentMD5: {\n serializedName: \"x-ms-blob-content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobGetPropertiesHeaders = {\n serializedName: \"blob-getproperties-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetPropertiesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n creationTime: {\n serializedName: \"x-ms-creation-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n metadata: {\n serializedName: \"x-ms-meta\",\n type: {\n name: \"Dictionary\",\n value: {\n type: {\n name: \"String\"\n }\n }\n },\n headerCollectionPrefix: \"x-ms-meta-\"\n },\n blobType: {\n serializedName: \"x-ms-blob-type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"BlockBlob\",\n \"PageBlob\",\n \"AppendBlob\"\n ]\n }\n },\n copyCompletionTime: {\n serializedName: \"x-ms-copy-completion-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyStatusDescription: {\n serializedName: \"x-ms-copy-status-description\",\n type: {\n name: \"String\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyProgress: {\n serializedName: \"x-ms-copy-progress\",\n type: {\n name: \"String\"\n }\n },\n copySource: {\n serializedName: \"x-ms-copy-source\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n isIncrementalCopy: {\n serializedName: \"x-ms-incremental-copy\",\n type: {\n name: \"Boolean\"\n }\n },\n destinationSnapshot: {\n serializedName: \"x-ms-copy-destination-snapshot\",\n type: {\n name: \"String\"\n }\n },\n leaseDuration: {\n serializedName: \"x-ms-lease-duration\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"infinite\",\n \"fixed\"\n ]\n }\n },\n leaseState: {\n serializedName: \"x-ms-lease-state\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"available\",\n \"leased\",\n \"expired\",\n \"breaking\",\n \"broken\"\n ]\n }\n },\n leaseStatus: {\n serializedName: \"x-ms-lease-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"locked\",\n \"unlocked\"\n ]\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n contentEncoding: {\n serializedName: \"content-encoding\",\n type: {\n name: \"String\"\n }\n },\n contentDisposition: {\n serializedName: \"content-disposition\",\n type: {\n name: \"String\"\n }\n },\n contentLanguage: {\n serializedName: \"content-language\",\n type: {\n name: \"String\"\n }\n },\n cacheControl: {\n serializedName: \"cache-control\",\n type: {\n name: \"String\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n acceptRanges: {\n serializedName: \"accept-ranges\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n accessTier: {\n serializedName: \"x-ms-access-tier\",\n type: {\n name: \"String\"\n }\n },\n accessTierInferred: {\n serializedName: \"x-ms-access-tier-inferred\",\n type: {\n name: \"Boolean\"\n }\n },\n archiveStatus: {\n serializedName: \"x-ms-archive-status\",\n type: {\n name: \"String\"\n }\n },\n accessTierChangeTime: {\n serializedName: \"x-ms-access-tier-change-time\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobDeleteHeaders = {\n serializedName: \"blob-delete-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobSetAccessControlHeaders = {\n serializedName: \"blob-setaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobGetAccessControlHeaders = {\n serializedName: \"blob-getaccesscontrol-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccessControlHeaders\",\n modelProperties: {\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsOwner: {\n serializedName: \"x-ms-owner\",\n type: {\n name: \"String\"\n }\n },\n xMsGroup: {\n serializedName: \"x-ms-group\",\n type: {\n name: \"String\"\n }\n },\n xMsPermissions: {\n serializedName: \"x-ms-permissions\",\n type: {\n name: \"String\"\n }\n },\n xMsAcl: {\n serializedName: \"x-ms-acl\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobRenameHeaders = {\n serializedName: \"blob-rename-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobRenameHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n contentLength: {\n serializedName: \"content-length\",\n type: {\n name: \"Number\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\nexport var PageBlobCreateHeaders = {\n serializedName: \"pageblob-create-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCreateHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var AppendBlobCreateHeaders = {\n serializedName: \"appendblob-create-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobCreateHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlockBlobUploadHeaders = {\n serializedName: \"blockblob-upload-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobUploadHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobUndeleteHeaders = {\n serializedName: \"blob-undelete-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobUndeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobSetHTTPHeadersHeaders = {\n serializedName: \"blob-sethttpheaders-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetHTTPHeadersHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobSetMetadataHeaders = {\n serializedName: \"blob-setmetadata-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetMetadataHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobAcquireLeaseHeaders = {\n serializedName: \"blob-acquirelease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobAcquireLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobReleaseLeaseHeaders = {\n serializedName: \"blob-releaselease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobReleaseLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobRenewLeaseHeaders = {\n serializedName: \"blob-renewlease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobRenewLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobChangeLeaseHeaders = {\n serializedName: \"blob-changelease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobChangeLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n leaseId: {\n serializedName: \"x-ms-lease-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobBreakLeaseHeaders = {\n serializedName: \"blob-breaklease-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobBreakLeaseHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n leaseTime: {\n serializedName: \"x-ms-lease-time\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobCreateSnapshotHeaders = {\n serializedName: \"blob-createsnapshot-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobCreateSnapshotHeaders\",\n modelProperties: {\n snapshot: {\n serializedName: \"x-ms-snapshot\",\n type: {\n name: \"String\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobStartCopyFromURLHeaders = {\n serializedName: \"blob-startcopyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobStartCopyFromURLHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobCopyFromURLHeaders = {\n serializedName: \"blob-copyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobCopyFromURLHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"success\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobAbortCopyFromURLHeaders = {\n serializedName: \"blob-abortcopyfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobAbortCopyFromURLHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobSetTierHeaders = {\n serializedName: \"blob-settier-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobSetTierHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlobGetAccountInfoHeaders = {\n serializedName: \"blob-getaccountinfo-headers\",\n type: {\n name: \"Composite\",\n className: \"BlobGetAccountInfoHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n skuName: {\n serializedName: \"x-ms-sku-name\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Standard_LRS\",\n \"Standard_GRS\",\n \"Standard_RAGRS\",\n \"Standard_ZRS\",\n \"Premium_LRS\"\n ]\n }\n },\n accountKind: {\n serializedName: \"x-ms-account-kind\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"Storage\",\n \"BlobStorage\",\n \"StorageV2\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlockBlobStageBlockHeaders = {\n serializedName: \"blockblob-stageblock-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlockBlobStageBlockFromURLHeaders = {\n serializedName: \"blockblob-stageblockfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobStageBlockFromURLHeaders\",\n modelProperties: {\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlockBlobCommitBlockListHeaders = {\n serializedName: \"blockblob-commitblocklist-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobCommitBlockListHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var BlockBlobGetBlockListHeaders = {\n serializedName: \"blockblob-getblocklist-headers\",\n type: {\n name: \"Composite\",\n className: \"BlockBlobGetBlockListHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobUploadPagesHeaders = {\n serializedName: \"pageblob-uploadpages-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobClearPagesHeaders = {\n serializedName: \"pageblob-clearpages-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobClearPagesHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobUploadPagesFromURLHeaders = {\n serializedName: \"pageblob-uploadpagesfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUploadPagesFromURLHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobGetPageRangesHeaders = {\n serializedName: \"pageblob-getpageranges-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobGetPageRangesDiffHeaders = {\n serializedName: \"pageblob-getpagerangesdiff-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobGetPageRangesDiffHeaders\",\n modelProperties: {\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n blobContentLength: {\n serializedName: \"x-ms-blob-content-length\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobResizeHeaders = {\n serializedName: \"pageblob-resize-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobResizeHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobUpdateSequenceNumberHeaders = {\n serializedName: \"pageblob-updatesequencenumber-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobUpdateSequenceNumberHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobSequenceNumber: {\n serializedName: \"x-ms-blob-sequence-number\",\n type: {\n name: \"Number\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var PageBlobCopyIncrementalHeaders = {\n serializedName: \"pageblob-copyincremental-headers\",\n type: {\n name: \"Composite\",\n className: \"PageBlobCopyIncrementalHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n copyId: {\n serializedName: \"x-ms-copy-id\",\n type: {\n name: \"String\"\n }\n },\n copyStatus: {\n serializedName: \"x-ms-copy-status\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"pending\",\n \"success\",\n \"aborted\",\n \"failed\"\n ]\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var AppendBlobAppendBlockHeaders = {\n serializedName: \"appendblob-appendblock-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n isServerEncrypted: {\n serializedName: \"x-ms-request-server-encrypted\",\n type: {\n name: \"Boolean\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\nexport var AppendBlobAppendBlockFromUrlHeaders = {\n serializedName: \"appendblob-appendblockfromurl-headers\",\n type: {\n name: \"Composite\",\n className: \"AppendBlobAppendBlockFromUrlHeaders\",\n modelProperties: {\n eTag: {\n serializedName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n lastModified: {\n serializedName: \"last-modified\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n contentMD5: {\n serializedName: \"content-md5\",\n type: {\n name: \"ByteArray\"\n }\n },\n xMsContentCrc64: {\n serializedName: \"x-ms-content-crc64\",\n type: {\n name: \"ByteArray\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n blobAppendOffset: {\n serializedName: \"x-ms-blob-append-offset\",\n type: {\n name: \"String\"\n }\n },\n blobCommittedBlockCount: {\n serializedName: \"x-ms-blob-committed-block-count\",\n type: {\n name: \"Number\"\n }\n },\n encryptionKeySha256: {\n serializedName: \"x-ms-encryption-key-sha256\",\n type: {\n name: \"String\"\n }\n },\n errorCode: {\n serializedName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n//# sourceMappingURL=mappers.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Iterable;\n(function (Iterable) {\n function is(thing) {\n return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function';\n }\n Iterable.is = is;\n const _empty = Object.freeze([]);\n function empty() {\n return _empty;\n }\n Iterable.empty = empty;\n function* single(element) {\n yield element;\n }\n Iterable.single = single;\n function from(iterable) {\n return iterable || _empty;\n }\n Iterable.from = from;\n function isEmpty(iterable) {\n return !iterable || iterable[Symbol.iterator]().next().done === true;\n }\n Iterable.isEmpty = isEmpty;\n function first(iterable) {\n return iterable[Symbol.iterator]().next().value;\n }\n Iterable.first = first;\n function some(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n return true;\n }\n }\n return false;\n }\n Iterable.some = some;\n function find(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n return element;\n }\n }\n return undefined;\n }\n Iterable.find = find;\n function* filter(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n yield element;\n }\n }\n }\n Iterable.filter = filter;\n function* map(iterable, fn) {\n let index = 0;\n for (const element of iterable) {\n yield fn(element, index++);\n }\n }\n Iterable.map = map;\n function* concat(...iterables) {\n for (const iterable of iterables) {\n for (const element of iterable) {\n yield element;\n }\n }\n }\n Iterable.concat = concat;\n function* concatNested(iterables) {\n for (const iterable of iterables) {\n for (const element of iterable) {\n yield element;\n }\n }\n }\n Iterable.concatNested = concatNested;\n function reduce(iterable, reducer, initialValue) {\n let value = initialValue;\n for (const element of iterable) {\n value = reducer(value, element);\n }\n return value;\n }\n Iterable.reduce = reduce;\n /**\n * Returns an iterable slice of the array, with the same semantics as `array.slice()`.\n */\n function* slice(arr, from, to = arr.length) {\n if (from < 0) {\n from += arr.length;\n }\n if (to < 0) {\n to += arr.length;\n }\n else if (to > arr.length) {\n to = arr.length;\n }\n for (; from < to; from++) {\n yield arr[from];\n }\n }\n Iterable.slice = slice;\n /**\n * Consumes `atMost` elements from iterable and returns the consumed elements,\n * and an iterable for the rest of the elements.\n */\n function consume(iterable, atMost = Number.POSITIVE_INFINITY) {\n const consumed = [];\n if (atMost === 0) {\n return [consumed, iterable];\n }\n const iterator = iterable[Symbol.iterator]();\n for (let i = 0; i < atMost; i++) {\n const next = iterator.next();\n if (next.done) {\n return [consumed, Iterable.empty()];\n }\n consumed.push(next.value);\n }\n return [consumed, { [Symbol.iterator]() { return iterator; } }];\n }\n Iterable.consume = consume;\n /**\n * Returns whether the iterables are the same length and all items are\n * equal using the comparator function.\n */\n function equals(a, b, comparator = (at, bt) => at === bt) {\n const ai = a[Symbol.iterator]();\n const bi = b[Symbol.iterator]();\n while (true) {\n const an = ai.next();\n const bn = bi.next();\n if (an.done !== bn.done) {\n return false;\n }\n else if (an.done) {\n return true;\n }\n else if (!comparator(an.value, bn.value)) {\n return false;\n }\n }\n }\n Iterable.equals = equals;\n})(Iterable || (Iterable = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isArray, isObject, isUndefinedOrNull } from './types.js';\nexport function deepClone(obj) {\n if (!obj || typeof obj !== 'object') {\n return obj;\n }\n if (obj instanceof RegExp) {\n // See https://github.com/microsoft/TypeScript/issues/10990\n return obj;\n }\n const result = Array.isArray(obj) ? [] : {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] && typeof obj[key] === 'object') {\n result[key] = deepClone(obj[key]);\n }\n else {\n result[key] = obj[key];\n }\n });\n return result;\n}\nexport function deepFreeze(obj) {\n if (!obj || typeof obj !== 'object') {\n return obj;\n }\n const stack = [obj];\n while (stack.length > 0) {\n const obj = stack.shift();\n Object.freeze(obj);\n for (const key in obj) {\n if (_hasOwnProperty.call(obj, key)) {\n const prop = obj[key];\n if (typeof prop === 'object' && !Object.isFrozen(prop)) {\n stack.push(prop);\n }\n }\n }\n }\n return obj;\n}\nconst _hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function cloneAndChange(obj, changer) {\n return _cloneAndChange(obj, changer, new Set());\n}\nfunction _cloneAndChange(obj, changer, seen) {\n if (isUndefinedOrNull(obj)) {\n return obj;\n }\n const changed = changer(obj);\n if (typeof changed !== 'undefined') {\n return changed;\n }\n if (isArray(obj)) {\n const r1 = [];\n for (const e of obj) {\n r1.push(_cloneAndChange(e, changer, seen));\n }\n return r1;\n }\n if (isObject(obj)) {\n if (seen.has(obj)) {\n throw new Error('Cannot clone recursive data-structure');\n }\n seen.add(obj);\n const r2 = {};\n for (let i2 in obj) {\n if (_hasOwnProperty.call(obj, i2)) {\n r2[i2] = _cloneAndChange(obj[i2], changer, seen);\n }\n }\n seen.delete(obj);\n return r2;\n }\n return obj;\n}\n/**\n * Copies all properties of source into destination. The optional parameter \"overwrite\" allows to control\n * if existing properties on the destination should be overwritten or not. Defaults to true (overwrite).\n */\nexport function mixin(destination, source, overwrite = true) {\n if (!isObject(destination)) {\n return source;\n }\n if (isObject(source)) {\n Object.keys(source).forEach(key => {\n if (key in destination) {\n if (overwrite) {\n if (isObject(destination[key]) && isObject(source[key])) {\n mixin(destination[key], source[key], overwrite);\n }\n else {\n destination[key] = source[key];\n }\n }\n }\n else {\n destination[key] = source[key];\n }\n });\n }\n return destination;\n}\nexport function equals(one, other) {\n if (one === other) {\n return true;\n }\n if (one === null || one === undefined || other === null || other === undefined) {\n return false;\n }\n if (typeof one !== typeof other) {\n return false;\n }\n if (typeof one !== 'object') {\n return false;\n }\n if ((Array.isArray(one)) !== (Array.isArray(other))) {\n return false;\n }\n let i;\n let key;\n if (Array.isArray(one)) {\n if (one.length !== other.length) {\n return false;\n }\n for (i = 0; i < one.length; i++) {\n if (!equals(one[i], other[i])) {\n return false;\n }\n }\n }\n else {\n const oneKeys = [];\n for (key in one) {\n oneKeys.push(key);\n }\n oneKeys.sort();\n const otherKeys = [];\n for (key in other) {\n otherKeys.push(key);\n }\n otherKeys.sort();\n if (!equals(oneKeys, otherKeys)) {\n return false;\n }\n for (i = 0; i < oneKeys.length; i++) {\n if (!equals(one[oneKeys[i]], other[oneKeys[i]])) {\n return false;\n }\n }\n }\n return true;\n}\nexport function getOrDefault(obj, fn, defaultValue) {\n const result = fn(obj);\n return typeof result === 'undefined' ? defaultValue : result;\n}\n","import { PersonaPresence, PersonaSize } from './Persona.types';\n\n// Persona Sizes\nexport namespace personaSize {\n export const size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n export const size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n export const size16 = '16px';\n export const size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n export const size28 = '28px';\n export const size32 = '32px';\n export const size40 = '40px';\n export const size48 = '48px';\n export const size56 = '56px';\n export const size72 = '72px';\n export const size100 = '100px';\n export const size120 = '120px';\n}\n\n// Persona Presence Sizes\nexport namespace personaPresenceSize {\n export const size6 = '6px';\n export const size8 = '8px';\n export const size12 = '12px';\n export const size16 = '16px';\n export const size20 = '20px';\n export const size28 = '28px';\n export const size32 = '32px';\n\n /**\n * @deprecated This is now unused\n */\n export const border = '2px';\n}\n\n// TODO: remove the deprecated parts in a future major release.\nexport const sizeBoolean = (size: PersonaSize) => ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n});\n\nexport const sizeToPixels: { [key: number]: number } = {\n // Old deprecated sizes\n [PersonaSize.tiny]: 10,\n [PersonaSize.extraExtraSmall]: 24,\n [PersonaSize.extraSmall]: 28,\n [PersonaSize.small]: 40,\n [PersonaSize.regular]: 48,\n [PersonaSize.large]: 72,\n [PersonaSize.extraLarge]: 100,\n // New sizes\n [PersonaSize.size8]: 8,\n [PersonaSize.size10]: 10, // TODO: deprecated (not in the design specs)\n [PersonaSize.size16]: 16, // TODO: deprecated (not in the design specs)\n [PersonaSize.size24]: 24,\n [PersonaSize.size28]: 28, // TODO: deprecated (not in the design specs)\n /* eslint-enable deprecation/deprecation */\n [PersonaSize.size32]: 32,\n [PersonaSize.size40]: 40,\n [PersonaSize.size48]: 48,\n [PersonaSize.size56]: 56,\n [PersonaSize.size72]: 72,\n [PersonaSize.size100]: 100,\n [PersonaSize.size120]: 120,\n};\n\nexport const presenceBoolean = (presence: PersonaPresence) => ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n});\n","import { Extensions } from './configurationRegistry.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport const IConfigurationService = createDecorator('configurationService');\nexport function toValuesTree(properties, conflictReporter) {\n const root = Object.create(null);\n for (let key in properties) {\n addToValueTree(root, key, properties[key], conflictReporter);\n }\n return root;\n}\nexport function addToValueTree(settingsTreeRoot, key, value, conflictReporter) {\n const segments = key.split('.');\n const last = segments.pop();\n let curr = settingsTreeRoot;\n for (let i = 0; i < segments.length; i++) {\n let s = segments[i];\n let obj = curr[s];\n switch (typeof obj) {\n case 'undefined':\n obj = curr[s] = Object.create(null);\n break;\n case 'object':\n break;\n default:\n conflictReporter(`Ignoring ${key} as ${segments.slice(0, i + 1).join('.')} is ${JSON.stringify(obj)}`);\n return;\n }\n curr = obj;\n }\n if (typeof curr === 'object' && curr !== null) {\n try {\n curr[last] = value; // workaround https://github.com/microsoft/vscode/issues/13606\n }\n catch (e) {\n conflictReporter(`Ignoring ${key} as ${segments.join('.')} is ${JSON.stringify(curr)}`);\n }\n }\n else {\n conflictReporter(`Ignoring ${key} as ${segments.join('.')} is ${JSON.stringify(curr)}`);\n }\n}\nexport function removeFromValueTree(valueTree, key) {\n const segments = key.split('.');\n doRemoveFromValueTree(valueTree, segments);\n}\nfunction doRemoveFromValueTree(valueTree, segments) {\n const first = segments.shift();\n if (segments.length === 0) {\n // Reached last segment\n delete valueTree[first];\n return;\n }\n if (Object.keys(valueTree).indexOf(first) !== -1) {\n const value = valueTree[first];\n if (typeof value === 'object' && !Array.isArray(value)) {\n doRemoveFromValueTree(value, segments);\n if (Object.keys(value).length === 0) {\n delete valueTree[first];\n }\n }\n }\n}\n/**\n * A helper function to get the configuration value with a specific settings path (e.g. config.some.setting)\n */\nexport function getConfigurationValue(config, settingPath, defaultValue) {\n function accessSetting(config, path) {\n let current = config;\n for (const component of path) {\n if (typeof current !== 'object' || current === null) {\n return undefined;\n }\n current = current[component];\n }\n return current;\n }\n const path = settingPath.split('.');\n const result = accessSetting(config, path);\n return typeof result === 'undefined' ? defaultValue : result;\n}\nexport function getConfigurationKeys() {\n const properties = Registry.as(Extensions.Configuration).getConfigurationProperties();\n return Object.keys(properties);\n}\nexport function getDefaultValues() {\n const valueTreeRoot = Object.create(null);\n const properties = Registry.as(Extensions.Configuration).getConfigurationProperties();\n for (let key in properties) {\n let value = properties[key].default;\n addToValueTree(valueTreeRoot, key, value, message => console.error(`Conflict in default settings: ${message}`));\n }\n return valueTreeRoot;\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport let Kind;\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n","import { DirectionalHint } from '../../common/DirectionalHint';\nimport type { IRectangle, Point } from '../../Utilities';\n\nexport enum RectangleEdge {\n top = 1,\n bottom = -1,\n left = 2,\n right = -2,\n}\n\nexport enum Position {\n top = 0,\n bottom = 1,\n start = 2,\n end = 3,\n}\n\n/**\n * Window with typings for experimental features regarding Dual Screen devices.\n */\nexport interface IWindowWithSegments extends Window {\n getWindowSegments?: () => DOMRect[];\n}\n\nexport interface IPositionProps {\n target?: Element | MouseEvent | Point;\n /** how the element should be positioned */\n directionalHint?: DirectionalHint;\n /**\n * How the element should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used instead\n */\n directionalHintForRTL?: DirectionalHint;\n /** The gap between the callout and the target */\n gapSpace?: number;\n /**\n * The bounding rectangle for which the contextual menu can appear in.\n */\n bounds?: IRectangle;\n /**\n * If true the position returned will have the menu element cover the target.\n * If false then it will position next to the target;\n */\n coverTarget?: boolean;\n /**\n * If true the position will not change edges in an attempt to fit the rectangle within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * If true the positioning logic will prefer flipping edges over nudging the rectangle to fit within bounds,\n * thus making sure the element align perfectly with target.\n */\n alignTargetEdge?: boolean;\n}\n\nexport interface ICalloutPositionProps extends IPositionProps {\n /**\n * The width of the beak.\n */\n beakWidth?: number;\n\n /**\n * Whether or not the beak is visible\n */\n isBeakVisible?: boolean;\n}\n\nexport interface IPositionedData {\n /**\n * The new position of the element.\n */\n elementPosition: IPosition;\n /**\n * The finalized target edge that element is aligning to. For instance RectangleEdge.bottom would mean\n * that the bottom edge of the target is being aligned to by the RectangleEdge.top of the element\n * that is being positioned.\n */\n targetEdge: RectangleEdge;\n /**\n * The finalized alignment edge that the element is aligning too. For instance, RectangleEdge.left means\n * that the left edge of the target should be in line with the left edge of the element being positioned.\n */\n alignmentEdge?: RectangleEdge;\n}\n\nexport interface ICalloutPositionedInfo extends IPositionedData {\n beakPosition: ICalloutBeakPositionedInfo;\n}\n\nexport interface ICalloutBeakPositionedInfo extends IPositionedData {\n closestEdge: RectangleEdge;\n hideBeak?: boolean;\n}\n\n/**\n * Gives the position of some element on the page. Only a pair of vertical and horizontal edges need to be\n * given. So top/left or bottom/left is sufficient.\n * The number given is the distance in pixels from whatever host was given..\n * So bottom: 100 would be 100px up from the bottom of the host while top: 100px from the top.\n */\nexport interface IPosition {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n [key: string]: number | undefined;\n}\n\nexport interface IPositionDirectionalHintData {\n targetEdge: RectangleEdge;\n alignmentEdge?: RectangleEdge;\n isAuto?: boolean;\n alignTargetEdge?: boolean;\n}\n\nexport interface IRelativePositions {\n calloutPosition: IPosition;\n beakPosition: { position: IPosition | undefined; display: 'block' };\n directionalClassName: string;\n submenuDirection: DirectionalHint;\n}\n\n// eslint-disable-next-line deprecation/deprecation\nexport type { Point, IPoint } from '../../Utilities';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IKeybindingService = createDecorator('keybindingService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Assert from '../../../base/common/assert.js';\nimport * as Types from '../../../base/common/types.js';\nclass RegistryImpl {\n constructor() {\n this.data = new Map();\n }\n add(id, data) {\n Assert.ok(Types.isString(id));\n Assert.ok(Types.isObject(data));\n Assert.ok(!this.data.has(id), 'There is already an extension with this id');\n this.data.set(id, data);\n }\n as(id) {\n return this.data.get(id) || null;\n }\n}\nexport const Registry = new RegistryImpl();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as extpath from './extpath.js';\nimport { Schemas } from './network.js';\nimport * as paths from './path.js';\nimport { compare as strCompare } from './strings.js';\nimport { URI, uriToFsPath } from './uri.js';\nexport function originalFSPath(uri) {\n return uriToFsPath(uri, true);\n}\nexport class ExtUri {\n constructor(_ignorePathCasing) {\n this._ignorePathCasing = _ignorePathCasing;\n }\n compare(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return 0;\n }\n return strCompare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));\n }\n isEqual(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return true;\n }\n if (!uri1 || !uri2) {\n return false;\n }\n return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);\n }\n getComparisonKey(uri, ignoreFragment = false) {\n return uri.with({\n path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : undefined,\n fragment: ignoreFragment ? null : undefined\n }).toString();\n }\n // --- path math\n joinPath(resource, ...pathFragment) {\n return URI.joinPath(resource, ...pathFragment);\n }\n basenameOrAuthority(resource) {\n return basename(resource) || resource.authority;\n }\n basename(resource) {\n return paths.posix.basename(resource.path);\n }\n dirname(resource) {\n if (resource.path.length === 0) {\n return resource;\n }\n let dirname;\n if (resource.scheme === Schemas.file) {\n dirname = URI.file(paths.dirname(originalFSPath(resource))).path;\n }\n else {\n dirname = paths.posix.dirname(resource.path);\n if (resource.authority && dirname.length && dirname.charCodeAt(0) !== 47 /* Slash */) {\n console.error(`dirname(\"${resource.toString})) resulted in a relative path`);\n dirname = '/'; // If a URI contains an authority component, then the path component must either be empty or begin with a CharCode.Slash (\"/\") character\n }\n }\n return resource.with({\n path: dirname\n });\n }\n normalizePath(resource) {\n if (!resource.path.length) {\n return resource;\n }\n let normalizedPath;\n if (resource.scheme === Schemas.file) {\n normalizedPath = URI.file(paths.normalize(originalFSPath(resource))).path;\n }\n else {\n normalizedPath = paths.posix.normalize(resource.path);\n }\n return resource.with({\n path: normalizedPath\n });\n }\n resolvePath(base, path) {\n if (base.scheme === Schemas.file) {\n const newURI = URI.file(paths.resolve(originalFSPath(base), path));\n return base.with({\n authority: newURI.authority,\n path: newURI.path\n });\n }\n path = extpath.toPosixPath(path); // we allow path to be a windows path\n return base.with({\n path: paths.posix.resolve(base.path, path)\n });\n }\n}\n/**\n * Unbiased utility that takes uris \"as they are\". This means it can be interchanged with\n * uri#toString() usages. The following is true\n * ```\n * assertEqual(aUri.toString() === bUri.toString(), exturi.isEqual(aUri, bUri))\n * ```\n */\nexport const extUri = new ExtUri(() => false);\nexport const isEqual = extUri.isEqual.bind(extUri);\nexport const basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);\nexport const basename = extUri.basename.bind(extUri);\nexport const dirname = extUri.dirname.bind(extUri);\nexport const joinPath = extUri.joinPath.bind(extUri);\nexport const normalizePath = extUri.normalizePath.bind(extUri);\nexport const resolvePath = extUri.resolvePath.bind(extUri);\n/**\n * Data URI related helpers.\n */\nexport var DataUri;\n(function (DataUri) {\n DataUri.META_DATA_LABEL = 'label';\n DataUri.META_DATA_DESCRIPTION = 'description';\n DataUri.META_DATA_SIZE = 'size';\n DataUri.META_DATA_MIME = 'mime';\n function parseMetaData(dataUri) {\n const metadata = new Map();\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the metadata is: size:2313;label:SomeLabel;description:SomeDescription\n const meta = dataUri.path.substring(dataUri.path.indexOf(';') + 1, dataUri.path.lastIndexOf(';'));\n meta.split(';').forEach(property => {\n const [key, value] = property.split(':');\n if (key && value) {\n metadata.set(key, value);\n }\n });\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the mime is: image/png\n const mime = dataUri.path.substring(0, dataUri.path.indexOf(';'));\n if (mime) {\n metadata.set(DataUri.META_DATA_MIME, mime);\n }\n return metadata;\n }\n DataUri.parseMetaData = parseMetaData;\n})(DataUri || (DataUri = {}));\n","export var SDK_VERSION = \"10.5.0\";\nexport var SERVICE_VERSION = \"2019-02-02\";\nexport var BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB\nexport var BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 100 * 1024 * 1024; // 100MB\nexport var BLOCK_BLOB_MAX_BLOCKS = 50000;\nexport var DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = 4 * 1024 * 1024; // 4MB\nexport var DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = 5;\nexport var URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n TIMEOUT: \"timeout\"\n }\n};\nexport var HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416\n};\nexport var HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\"\n};\nexport var ETagNone = \"\";\nexport var ETagAny = \"*\";\nexport var SIZE_1_MB = 1 * 1024 * 1024;\nexport var BATCH_MAX_REQUEST = 256;\nexport var BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport var HTTP_LINE_ENDING = \"\\r\\n\";\nexport var HTTP_VERSION_1_1 = \"HTTP/1.1\";\nexport var EncryptionAlgorithmAES25 = \"AES256\";\n//# sourceMappingURL=constants.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport * as DomUtils from './dom.js';\nimport * as arrays from '../common/arrays.js';\nimport { memoize } from '../common/decorators.js';\nimport { Disposable } from '../common/lifecycle.js';\nexport var EventType;\n(function (EventType) {\n EventType.Tap = '-monaco-gesturetap';\n EventType.Change = '-monaco-gesturechange';\n EventType.Start = '-monaco-gesturestart';\n EventType.End = '-monaco-gesturesend';\n EventType.Contextmenu = '-monaco-gesturecontextmenu';\n})(EventType || (EventType = {}));\nexport class Gesture extends Disposable {\n constructor() {\n super();\n this.dispatched = false;\n this.activeTouches = {};\n this.handle = null;\n this.targets = [];\n this.ignoreTargets = [];\n this._lastSetTapCountTime = 0;\n this._register(DomUtils.addDisposableListener(document, 'touchstart', (e) => this.onTouchStart(e), { passive: false }));\n this._register(DomUtils.addDisposableListener(document, 'touchend', (e) => this.onTouchEnd(e)));\n this._register(DomUtils.addDisposableListener(document, 'touchmove', (e) => this.onTouchMove(e), { passive: false }));\n }\n static addTarget(element) {\n if (!Gesture.isTouchDevice()) {\n return Disposable.None;\n }\n if (!Gesture.INSTANCE) {\n Gesture.INSTANCE = new Gesture();\n }\n Gesture.INSTANCE.targets.push(element);\n return {\n dispose: () => {\n Gesture.INSTANCE.targets = Gesture.INSTANCE.targets.filter(t => t !== element);\n }\n };\n }\n static ignoreTarget(element) {\n if (!Gesture.isTouchDevice()) {\n return Disposable.None;\n }\n if (!Gesture.INSTANCE) {\n Gesture.INSTANCE = new Gesture();\n }\n Gesture.INSTANCE.ignoreTargets.push(element);\n return {\n dispose: () => {\n Gesture.INSTANCE.ignoreTargets = Gesture.INSTANCE.ignoreTargets.filter(t => t !== element);\n }\n };\n }\n static isTouchDevice() {\n // `'ontouchstart' in window` always evaluates to true with typescript's modern typings. This causes `window` to be\n // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n }\n dispose() {\n if (this.handle) {\n this.handle.dispose();\n this.handle = null;\n }\n super.dispose();\n }\n onTouchStart(e) {\n let timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n if (this.handle) {\n this.handle.dispose();\n this.handle = null;\n }\n for (let i = 0, len = e.targetTouches.length; i < len; i++) {\n let touch = e.targetTouches.item(i);\n this.activeTouches[touch.identifier] = {\n id: touch.identifier,\n initialTarget: touch.target,\n initialTimeStamp: timestamp,\n initialPageX: touch.pageX,\n initialPageY: touch.pageY,\n rollingTimestamps: [timestamp],\n rollingPageX: [touch.pageX],\n rollingPageY: [touch.pageY]\n };\n let evt = this.newGestureEvent(EventType.Start, touch.target);\n evt.pageX = touch.pageX;\n evt.pageY = touch.pageY;\n this.dispatchEvent(evt);\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n onTouchEnd(e) {\n let timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n let activeTouchCount = Object.keys(this.activeTouches).length;\n for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n let touch = e.changedTouches.item(i);\n if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n console.warn('move of an UNKNOWN touch', touch);\n continue;\n }\n let data = this.activeTouches[touch.identifier], holdTime = Date.now() - data.initialTimeStamp;\n if (holdTime < Gesture.HOLD_DELAY\n && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n let evt = this.newGestureEvent(EventType.Tap, data.initialTarget);\n evt.pageX = arrays.tail(data.rollingPageX);\n evt.pageY = arrays.tail(data.rollingPageY);\n this.dispatchEvent(evt);\n }\n else if (holdTime >= Gesture.HOLD_DELAY\n && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n let evt = this.newGestureEvent(EventType.Contextmenu, data.initialTarget);\n evt.pageX = arrays.tail(data.rollingPageX);\n evt.pageY = arrays.tail(data.rollingPageY);\n this.dispatchEvent(evt);\n }\n else if (activeTouchCount === 1) {\n let finalX = arrays.tail(data.rollingPageX);\n let finalY = arrays.tail(data.rollingPageY);\n let deltaT = arrays.tail(data.rollingTimestamps) - data.rollingTimestamps[0];\n let deltaX = finalX - data.rollingPageX[0];\n let deltaY = finalY - data.rollingPageY[0];\n // We need to get all the dispatch targets on the start of the inertia event\n const dispatchTo = this.targets.filter(t => data.initialTarget instanceof Node && t.contains(data.initialTarget));\n this.inertia(dispatchTo, timestamp, // time now\n Math.abs(deltaX) / deltaT, // speed\n deltaX > 0 ? 1 : -1, // x direction\n finalX, // x now\n Math.abs(deltaY) / deltaT, // y speed\n deltaY > 0 ? 1 : -1, // y direction\n finalY // y now\n );\n }\n this.dispatchEvent(this.newGestureEvent(EventType.End, data.initialTarget));\n // forget about this touch\n delete this.activeTouches[touch.identifier];\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n newGestureEvent(type, initialTarget) {\n let event = document.createEvent('CustomEvent');\n event.initEvent(type, false, true);\n event.initialTarget = initialTarget;\n event.tapCount = 0;\n return event;\n }\n dispatchEvent(event) {\n if (event.type === EventType.Tap) {\n const currentTime = (new Date()).getTime();\n let setTapCount = 0;\n if (currentTime - this._lastSetTapCountTime > Gesture.CLEAR_TAP_COUNT_TIME) {\n setTapCount = 1;\n }\n else {\n setTapCount = 2;\n }\n this._lastSetTapCountTime = currentTime;\n event.tapCount = setTapCount;\n }\n else if (event.type === EventType.Change || event.type === EventType.Contextmenu) {\n // tap is canceled by scrolling or context menu\n this._lastSetTapCountTime = 0;\n }\n for (let i = 0; i < this.ignoreTargets.length; i++) {\n if (event.initialTarget instanceof Node && this.ignoreTargets[i].contains(event.initialTarget)) {\n return;\n }\n }\n this.targets.forEach(target => {\n if (event.initialTarget instanceof Node && target.contains(event.initialTarget)) {\n target.dispatchEvent(event);\n this.dispatched = true;\n }\n });\n }\n inertia(dispatchTo, t1, vX, dirX, x, vY, dirY, y) {\n this.handle = DomUtils.scheduleAtNextAnimationFrame(() => {\n let now = Date.now();\n // velocity: old speed + accel_over_time\n let deltaT = now - t1, delta_pos_x = 0, delta_pos_y = 0, stopped = true;\n vX += Gesture.SCROLL_FRICTION * deltaT;\n vY += Gesture.SCROLL_FRICTION * deltaT;\n if (vX > 0) {\n stopped = false;\n delta_pos_x = dirX * vX * deltaT;\n }\n if (vY > 0) {\n stopped = false;\n delta_pos_y = dirY * vY * deltaT;\n }\n // dispatch translation event\n let evt = this.newGestureEvent(EventType.Change);\n evt.translationX = delta_pos_x;\n evt.translationY = delta_pos_y;\n dispatchTo.forEach(d => d.dispatchEvent(evt));\n if (!stopped) {\n this.inertia(dispatchTo, now, vX, dirX, x + delta_pos_x, vY, dirY, y + delta_pos_y);\n }\n });\n }\n onTouchMove(e) {\n let timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n let touch = e.changedTouches.item(i);\n if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n console.warn('end of an UNKNOWN touch', touch);\n continue;\n }\n let data = this.activeTouches[touch.identifier];\n let evt = this.newGestureEvent(EventType.Change, data.initialTarget);\n evt.translationX = touch.pageX - arrays.tail(data.rollingPageX);\n evt.translationY = touch.pageY - arrays.tail(data.rollingPageY);\n evt.pageX = touch.pageX;\n evt.pageY = touch.pageY;\n this.dispatchEvent(evt);\n // only keep a few data points, to average the final speed\n if (data.rollingPageX.length > 3) {\n data.rollingPageX.shift();\n data.rollingPageY.shift();\n data.rollingTimestamps.shift();\n }\n data.rollingPageX.push(touch.pageX);\n data.rollingPageY.push(touch.pageY);\n data.rollingTimestamps.push(timestamp);\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n}\nGesture.SCROLL_FRICTION = -0.005;\nGesture.HOLD_DELAY = 700;\nGesture.CLEAR_TAP_COUNT_TIME = 400; // ms\n__decorate([\n memoize\n], Gesture, \"isTouchDevice\", null);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport var AccessibilityHelpNLS;\n(function (AccessibilityHelpNLS) {\n AccessibilityHelpNLS.noSelection = nls.localize(\"noSelection\", \"No selection\");\n AccessibilityHelpNLS.singleSelectionRange = nls.localize(\"singleSelectionRange\", \"Line {0}, Column {1} ({2} selected)\");\n AccessibilityHelpNLS.singleSelection = nls.localize(\"singleSelection\", \"Line {0}, Column {1}\");\n AccessibilityHelpNLS.multiSelectionRange = nls.localize(\"multiSelectionRange\", \"{0} selections ({1} characters selected)\");\n AccessibilityHelpNLS.multiSelection = nls.localize(\"multiSelection\", \"{0} selections\");\n AccessibilityHelpNLS.emergencyConfOn = nls.localize(\"emergencyConfOn\", \"Now changing the setting `accessibilitySupport` to 'on'.\");\n AccessibilityHelpNLS.openingDocs = nls.localize(\"openingDocs\", \"Now opening the Editor Accessibility documentation page.\");\n AccessibilityHelpNLS.readonlyDiffEditor = nls.localize(\"readonlyDiffEditor\", \" in a read-only pane of a diff editor.\");\n AccessibilityHelpNLS.editableDiffEditor = nls.localize(\"editableDiffEditor\", \" in a pane of a diff editor.\");\n AccessibilityHelpNLS.readonlyEditor = nls.localize(\"readonlyEditor\", \" in a read-only code editor\");\n AccessibilityHelpNLS.editableEditor = nls.localize(\"editableEditor\", \" in a code editor\");\n AccessibilityHelpNLS.changeConfigToOnMac = nls.localize(\"changeConfigToOnMac\", \"To configure the editor to be optimized for usage with a Screen Reader press Command+E now.\");\n AccessibilityHelpNLS.changeConfigToOnWinLinux = nls.localize(\"changeConfigToOnWinLinux\", \"To configure the editor to be optimized for usage with a Screen Reader press Control+E now.\");\n AccessibilityHelpNLS.auto_on = nls.localize(\"auto_on\", \"The editor is configured to be optimized for usage with a Screen Reader.\");\n AccessibilityHelpNLS.auto_off = nls.localize(\"auto_off\", \"The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.\");\n AccessibilityHelpNLS.tabFocusModeOnMsg = nls.localize(\"tabFocusModeOnMsg\", \"Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.\");\n AccessibilityHelpNLS.tabFocusModeOnMsgNoKb = nls.localize(\"tabFocusModeOnMsgNoKb\", \"Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.\");\n AccessibilityHelpNLS.tabFocusModeOffMsg = nls.localize(\"tabFocusModeOffMsg\", \"Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.\");\n AccessibilityHelpNLS.tabFocusModeOffMsgNoKb = nls.localize(\"tabFocusModeOffMsgNoKb\", \"Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.\");\n AccessibilityHelpNLS.openDocMac = nls.localize(\"openDocMac\", \"Press Command+H now to open a browser window with more information related to editor accessibility.\");\n AccessibilityHelpNLS.openDocWinLinux = nls.localize(\"openDocWinLinux\", \"Press Control+H now to open a browser window with more information related to editor accessibility.\");\n AccessibilityHelpNLS.outroMsg = nls.localize(\"outroMsg\", \"You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.\");\n AccessibilityHelpNLS.showAccessibilityHelpAction = nls.localize(\"showAccessibilityHelpAction\", \"Show Accessibility Help\");\n})(AccessibilityHelpNLS || (AccessibilityHelpNLS = {}));\nexport var InspectTokensNLS;\n(function (InspectTokensNLS) {\n InspectTokensNLS.inspectTokensAction = nls.localize('inspectTokens', \"Developer: Inspect Tokens\");\n})(InspectTokensNLS || (InspectTokensNLS = {}));\nexport var GoToLineNLS;\n(function (GoToLineNLS) {\n GoToLineNLS.gotoLineActionLabel = nls.localize('gotoLineActionLabel', \"Go to Line/Column...\");\n})(GoToLineNLS || (GoToLineNLS = {}));\nexport var QuickHelpNLS;\n(function (QuickHelpNLS) {\n QuickHelpNLS.helpQuickAccessActionLabel = nls.localize('helpQuickAccess', \"Show all Quick Access Providers\");\n})(QuickHelpNLS || (QuickHelpNLS = {}));\nexport var QuickCommandNLS;\n(function (QuickCommandNLS) {\n QuickCommandNLS.quickCommandActionLabel = nls.localize('quickCommandActionLabel', \"Command Palette\");\n QuickCommandNLS.quickCommandHelp = nls.localize('quickCommandActionHelp', \"Show And Run Commands\");\n})(QuickCommandNLS || (QuickCommandNLS = {}));\nexport var QuickOutlineNLS;\n(function (QuickOutlineNLS) {\n QuickOutlineNLS.quickOutlineActionLabel = nls.localize('quickOutlineActionLabel', \"Go to Symbol...\");\n QuickOutlineNLS.quickOutlineByCategoryActionLabel = nls.localize('quickOutlineByCategoryActionLabel', \"Go to Symbol by Category...\");\n})(QuickOutlineNLS || (QuickOutlineNLS = {}));\nexport var StandaloneCodeEditorNLS;\n(function (StandaloneCodeEditorNLS) {\n StandaloneCodeEditorNLS.editorViewAccessibleLabel = nls.localize('editorViewAccessibleLabel', \"Editor content\");\n StandaloneCodeEditorNLS.accessibilityHelpMessage = nls.localize('accessibilityHelpMessage', \"Press Alt+F1 for Accessibility Options.\");\n})(StandaloneCodeEditorNLS || (StandaloneCodeEditorNLS = {}));\nexport var ToggleHighContrastNLS;\n(function (ToggleHighContrastNLS) {\n ToggleHighContrastNLS.toggleHighContrast = nls.localize('toggleHighContrast', \"Toggle High Contrast Theme\");\n})(ToggleHighContrastNLS || (ToggleHighContrastNLS = {}));\nexport var SimpleServicesNLS;\n(function (SimpleServicesNLS) {\n SimpleServicesNLS.bulkEditServiceSummary = nls.localize('bulkEditServiceSummary', \"Made {0} edits in {1} files\");\n})(SimpleServicesNLS || (SimpleServicesNLS = {}));\n","import BaseSeverity from '../../../base/common/severity.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport var Severity = BaseSeverity;\nexport const INotificationService = createDecorator('notificationService');\nexport class NoOpNotification {\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nimport * as nls from '../../nls.js';\nexport class Action extends Disposable {\n constructor(id, label = '', cssClass = '', enabled = true, actionCallback) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._enabled = true;\n this._id = id;\n this._label = label;\n this._cssClass = cssClass;\n this._enabled = enabled;\n this._actionCallback = actionCallback;\n }\n get id() {\n return this._id;\n }\n get label() {\n return this._label;\n }\n set label(value) {\n this._setLabel(value);\n }\n _setLabel(value) {\n if (this._label !== value) {\n this._label = value;\n this._onDidChange.fire({ label: value });\n }\n }\n get tooltip() {\n return this._tooltip || '';\n }\n set tooltip(value) {\n this._setTooltip(value);\n }\n _setTooltip(value) {\n if (this._tooltip !== value) {\n this._tooltip = value;\n this._onDidChange.fire({ tooltip: value });\n }\n }\n get class() {\n return this._cssClass;\n }\n set class(value) {\n this._setClass(value);\n }\n _setClass(value) {\n if (this._cssClass !== value) {\n this._cssClass = value;\n this._onDidChange.fire({ class: value });\n }\n }\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._setEnabled(value);\n }\n _setEnabled(value) {\n if (this._enabled !== value) {\n this._enabled = value;\n this._onDidChange.fire({ enabled: value });\n }\n }\n get checked() {\n return this._checked;\n }\n set checked(value) {\n this._setChecked(value);\n }\n _setChecked(value) {\n if (this._checked !== value) {\n this._checked = value;\n this._onDidChange.fire({ checked: value });\n }\n }\n run(event, data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._actionCallback) {\n yield this._actionCallback(event);\n }\n });\n }\n}\nexport class ActionRunner extends Disposable {\n constructor() {\n super(...arguments);\n this._onBeforeRun = this._register(new Emitter());\n this.onBeforeRun = this._onBeforeRun.event;\n this._onDidRun = this._register(new Emitter());\n this.onDidRun = this._onDidRun.event;\n }\n run(action, context) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!action.enabled) {\n return;\n }\n this._onBeforeRun.fire({ action });\n let error = undefined;\n try {\n yield this.runAction(action, context);\n }\n catch (e) {\n error = e;\n }\n this._onDidRun.fire({ action, error });\n });\n }\n runAction(action, context) {\n return __awaiter(this, void 0, void 0, function* () {\n yield action.run(context);\n });\n }\n}\nexport class Separator extends Action {\n constructor(label) {\n super(Separator.ID, label, label ? 'separator text' : 'separator');\n this.checked = false;\n this.enabled = false;\n }\n}\nSeparator.ID = 'vs.actions.separator';\nexport class SubmenuAction {\n constructor(id, label, actions, cssClass) {\n this.tooltip = '';\n this.enabled = true;\n this.checked = false;\n this.id = id;\n this.label = label;\n this.class = cssClass;\n this._actions = actions;\n }\n get actions() { return this._actions; }\n dispose() {\n // there is NOTHING to dispose and the SubmenuAction should\n // never have anything to dispose as it is a convenience type\n // to bridge into the rendering world.\n }\n run() {\n return __awaiter(this, void 0, void 0, function* () { });\n }\n}\nexport class EmptySubmenuAction extends Action {\n constructor() {\n super(EmptySubmenuAction.ID, nls.localize('submenu.empty', '(empty)'), undefined, false);\n }\n}\nEmptySubmenuAction.ID = 'vs.actions.empty';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { EVENT_KEY_CODE_MAP, KeyCodeUtils } from '../common/keyCodes.js';\nimport { SimpleKeybinding } from '../common/keybindings.js';\nimport * as platform from '../common/platform.js';\nfunction extractKeyCode(e) {\n if (e.charCode) {\n // \"keypress\" events mostly\n let char = String.fromCharCode(e.charCode).toUpperCase();\n return KeyCodeUtils.fromString(char);\n }\n const keyCode = e.keyCode;\n // browser quirks\n if (keyCode === 3) {\n return 7 /* PauseBreak */;\n }\n else if (browser.isFirefox) {\n if (keyCode === 59) {\n return 80 /* Semicolon */;\n }\n else if (keyCode === 107) {\n return 81 /* Equal */;\n }\n else if (keyCode === 109) {\n return 83 /* Minus */;\n }\n else if (platform.isMacintosh && keyCode === 224) {\n return 57 /* Meta */;\n }\n }\n else if (browser.isWebKit) {\n if (keyCode === 91) {\n return 57 /* Meta */;\n }\n else if (platform.isMacintosh && keyCode === 93) {\n // the two meta keys in the Mac have different key codes (91 and 93)\n return 57 /* Meta */;\n }\n else if (!platform.isMacintosh && keyCode === 92) {\n return 57 /* Meta */;\n }\n }\n // cross browser keycodes:\n return EVENT_KEY_CODE_MAP[keyCode] || 0 /* Unknown */;\n}\nconst ctrlKeyMod = (platform.isMacintosh ? 256 /* WinCtrl */ : 2048 /* CtrlCmd */);\nconst altKeyMod = 512 /* Alt */;\nconst shiftKeyMod = 1024 /* Shift */;\nconst metaKeyMod = (platform.isMacintosh ? 2048 /* CtrlCmd */ : 256 /* WinCtrl */);\nexport class StandardKeyboardEvent {\n constructor(source) {\n this._standardKeyboardEventBrand = true;\n let e = source;\n this.browserEvent = e;\n this.target = e.target;\n this.ctrlKey = e.ctrlKey;\n this.shiftKey = e.shiftKey;\n this.altKey = e.altKey;\n this.metaKey = e.metaKey;\n this.keyCode = extractKeyCode(e);\n this.code = e.code;\n // console.info(e.type + \": keyCode: \" + e.keyCode + \", which: \" + e.which + \", charCode: \" + e.charCode + \", detail: \" + e.detail + \" ====> \" + this.keyCode + ' -- ' + KeyCode[this.keyCode]);\n this.ctrlKey = this.ctrlKey || this.keyCode === 5 /* Ctrl */;\n this.altKey = this.altKey || this.keyCode === 6 /* Alt */;\n this.shiftKey = this.shiftKey || this.keyCode === 4 /* Shift */;\n this.metaKey = this.metaKey || this.keyCode === 57 /* Meta */;\n this._asKeybinding = this._computeKeybinding();\n this._asRuntimeKeybinding = this._computeRuntimeKeybinding();\n // console.log(`code: ${e.code}, keyCode: ${e.keyCode}, key: ${e.key}`);\n }\n preventDefault() {\n if (this.browserEvent && this.browserEvent.preventDefault) {\n this.browserEvent.preventDefault();\n }\n }\n stopPropagation() {\n if (this.browserEvent && this.browserEvent.stopPropagation) {\n this.browserEvent.stopPropagation();\n }\n }\n toKeybinding() {\n return this._asRuntimeKeybinding;\n }\n equals(other) {\n return this._asKeybinding === other;\n }\n _computeKeybinding() {\n let key = 0 /* Unknown */;\n if (this.keyCode !== 5 /* Ctrl */ && this.keyCode !== 4 /* Shift */ && this.keyCode !== 6 /* Alt */ && this.keyCode !== 57 /* Meta */) {\n key = this.keyCode;\n }\n let result = 0;\n if (this.ctrlKey) {\n result |= ctrlKeyMod;\n }\n if (this.altKey) {\n result |= altKeyMod;\n }\n if (this.shiftKey) {\n result |= shiftKeyMod;\n }\n if (this.metaKey) {\n result |= metaKeyMod;\n }\n result |= key;\n return result;\n }\n _computeRuntimeKeybinding() {\n let key = 0 /* Unknown */;\n if (this.keyCode !== 5 /* Ctrl */ && this.keyCode !== 4 /* Shift */ && this.keyCode !== 6 /* Alt */ && this.keyCode !== 57 /* Meta */) {\n key = this.keyCode;\n }\n return new SimpleKeybinding(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, key);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class Viewport {\n constructor(top, left, width, height) {\n this._viewportBrand = undefined;\n this.top = top | 0;\n this.left = left | 0;\n this.width = width | 0;\n this.height = height | 0;\n }\n}\nexport class OutputPosition {\n constructor(outputLineIndex, outputOffset) {\n this.outputLineIndex = outputLineIndex;\n this.outputOffset = outputOffset;\n }\n toString() {\n return `${this.outputLineIndex}:${this.outputOffset}`;\n }\n toPosition(baseLineNumber, wrappedTextIndentLength) {\n const delta = (this.outputLineIndex > 0 ? wrappedTextIndentLength : 0);\n return new Position(baseLineNumber + this.outputLineIndex, delta + this.outputOffset + 1);\n }\n}\nexport class LineBreakData {\n constructor(breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength, injectionOffsets, injectionOptions) {\n this.breakOffsets = breakOffsets;\n this.breakOffsetsVisibleColumn = breakOffsetsVisibleColumn;\n this.wrappedTextIndentLength = wrappedTextIndentLength;\n this.injectionOffsets = injectionOffsets;\n this.injectionOptions = injectionOptions;\n }\n getInputOffsetOfOutputPosition(outputLineIndex, outputOffset) {\n let inputOffset = 0;\n if (outputLineIndex === 0) {\n inputOffset = outputOffset;\n }\n else {\n inputOffset = this.breakOffsets[outputLineIndex - 1] + outputOffset;\n }\n if (this.injectionOffsets !== null) {\n for (let i = 0; i < this.injectionOffsets.length; i++) {\n if (inputOffset > this.injectionOffsets[i]) {\n if (inputOffset < this.injectionOffsets[i] + this.injectionOptions[i].content.length) {\n // `inputOffset` is within injected text\n inputOffset = this.injectionOffsets[i];\n }\n else {\n inputOffset -= this.injectionOptions[i].content.length;\n }\n }\n else {\n break;\n }\n }\n }\n return inputOffset;\n }\n getOutputPositionOfInputOffset(inputOffset, affinity = 2 /* None */) {\n let delta = 0;\n if (this.injectionOffsets !== null) {\n for (let i = 0; i < this.injectionOffsets.length; i++) {\n if (inputOffset < this.injectionOffsets[i]) {\n break;\n }\n if (affinity !== 1 /* Right */ && inputOffset === this.injectionOffsets[i]) {\n break;\n }\n delta += this.injectionOptions[i].content.length;\n }\n }\n inputOffset += delta;\n return this.getOutputPositionOfOffsetInUnwrappedLine(inputOffset, affinity);\n }\n getOutputPositionOfOffsetInUnwrappedLine(inputOffset, affinity = 2 /* None */) {\n let low = 0;\n let high = this.breakOffsets.length - 1;\n let mid = 0;\n let midStart = 0;\n while (low <= high) {\n mid = low + ((high - low) / 2) | 0;\n const midStop = this.breakOffsets[mid];\n midStart = mid > 0 ? this.breakOffsets[mid - 1] : 0;\n if (affinity === 0 /* Left */) {\n if (inputOffset <= midStart) {\n high = mid - 1;\n }\n else if (inputOffset > midStop) {\n low = mid + 1;\n }\n else {\n break;\n }\n }\n else {\n if (inputOffset < midStart) {\n high = mid - 1;\n }\n else if (inputOffset >= midStop) {\n low = mid + 1;\n }\n else {\n break;\n }\n }\n }\n return new OutputPosition(mid, inputOffset - midStart);\n }\n outputPositionToOffsetInUnwrappedLine(outputLineIndex, outputOffset) {\n let result = (outputLineIndex > 0 ? this.breakOffsets[outputLineIndex - 1] : 0) + outputOffset;\n if (outputLineIndex > 0) {\n result -= this.wrappedTextIndentLength;\n }\n return result;\n }\n normalizeOffsetAroundInjections(offsetInUnwrappedLine, affinity) {\n const injectedText = this.getInjectedTextAtOffset(offsetInUnwrappedLine);\n if (!injectedText) {\n return offsetInUnwrappedLine;\n }\n if (affinity === 2 /* None */) {\n if (offsetInUnwrappedLine === injectedText.offsetInUnwrappedLine + injectedText.length) {\n // go to the end of this injected text\n return injectedText.offsetInUnwrappedLine + injectedText.length;\n }\n else {\n // go to the start of this injected text\n return injectedText.offsetInUnwrappedLine;\n }\n }\n if (affinity === 1 /* Right */) {\n let result = injectedText.offsetInUnwrappedLine + injectedText.length;\n let index = injectedText.injectedTextIndex;\n // traverse all injected text that touch eachother\n while (index + 1 < this.injectionOffsets.length && this.injectionOffsets[index + 1] === this.injectionOffsets[index]) {\n result += this.injectionOptions[index + 1].content.length;\n index++;\n }\n return result;\n }\n // affinity is left\n let result = injectedText.offsetInUnwrappedLine;\n let index = injectedText.injectedTextIndex;\n // traverse all injected text that touch eachother\n while (index - 1 >= 0 && this.injectionOffsets[index - 1] === this.injectionOffsets[index]) {\n result -= this.injectionOptions[index - 1].content.length;\n index++;\n }\n return result;\n }\n getInjectedText(outputLineIndex, outputOffset) {\n const offset = this.outputPositionToOffsetInUnwrappedLine(outputLineIndex, outputOffset);\n const injectedText = this.getInjectedTextAtOffset(offset);\n if (!injectedText) {\n return null;\n }\n return {\n options: this.injectionOptions[injectedText.injectedTextIndex]\n };\n }\n getInjectedTextAtOffset(offsetInUnwrappedLine) {\n const injectionOffsets = this.injectionOffsets;\n const injectionOptions = this.injectionOptions;\n if (injectionOffsets !== null) {\n let totalInjectedTextLengthBefore = 0;\n for (let i = 0; i < injectionOffsets.length; i++) {\n const length = injectionOptions[i].content.length;\n const injectedTextStartOffsetInUnwrappedLine = injectionOffsets[i] + totalInjectedTextLengthBefore;\n const injectedTextEndOffsetInUnwrappedLine = injectionOffsets[i] + totalInjectedTextLengthBefore + length;\n if (injectedTextStartOffsetInUnwrappedLine > offsetInUnwrappedLine) {\n // Injected text starts later.\n break; // All later injected texts have an even larger offset.\n }\n if (offsetInUnwrappedLine <= injectedTextEndOffsetInUnwrappedLine) {\n // Injected text ends after or with the given position (but also starts with or before it).\n return {\n injectedTextIndex: i,\n offsetInUnwrappedLine: injectedTextStartOffsetInUnwrappedLine,\n length\n };\n }\n totalInjectedTextLengthBefore += length;\n }\n }\n return undefined;\n }\n}\nexport class InjectedText {\n constructor(options) {\n this.options = options;\n }\n}\nexport class MinimapLinesRenderingData {\n constructor(tabSize, data) {\n this.tabSize = tabSize;\n this.data = data;\n }\n}\nexport class ViewLineData {\n constructor(content, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations) {\n this._viewLineDataBrand = undefined;\n this.content = content;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.minColumn = minColumn;\n this.maxColumn = maxColumn;\n this.startVisibleColumn = startVisibleColumn;\n this.tokens = tokens;\n this.inlineDecorations = inlineDecorations;\n }\n}\nexport class ViewLineRenderingData {\n constructor(minColumn, maxColumn, content, continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, tokens, inlineDecorations, tabSize, startVisibleColumn) {\n this.minColumn = minColumn;\n this.maxColumn = maxColumn;\n this.content = content;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.isBasicASCII = ViewLineRenderingData.isBasicASCII(content, mightContainNonBasicASCII);\n this.containsRTL = ViewLineRenderingData.containsRTL(content, this.isBasicASCII, mightContainRTL);\n this.tokens = tokens;\n this.inlineDecorations = inlineDecorations;\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n }\n static isBasicASCII(lineContent, mightContainNonBasicASCII) {\n if (mightContainNonBasicASCII) {\n return strings.isBasicASCII(lineContent);\n }\n return true;\n }\n static containsRTL(lineContent, isBasicASCII, mightContainRTL) {\n if (!isBasicASCII && mightContainRTL) {\n return strings.containsRTL(lineContent);\n }\n return false;\n }\n}\nexport class InlineDecoration {\n constructor(range, inlineClassName, type) {\n this.range = range;\n this.inlineClassName = inlineClassName;\n this.type = type;\n }\n}\nexport class SingleLineInlineDecoration {\n constructor(startOffset, endOffset, inlineClassName, inlineClassNameAffectsLetterSpacing) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.inlineClassName = inlineClassName;\n this.inlineClassNameAffectsLetterSpacing = inlineClassNameAffectsLetterSpacing;\n }\n toInlineDecoration(lineNumber) {\n return new InlineDecoration(new Range(lineNumber, this.startOffset + 1, lineNumber, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 /* RegularAffectingLetterSpacing */ : 0 /* Regular */);\n }\n}\nexport class ViewModelDecoration {\n constructor(range, options) {\n this._viewModelDecorationBrand = undefined;\n this.range = range;\n this.options = options;\n }\n}\nexport class OverviewRulerDecorationsGroup {\n constructor(color, zIndex, \n /**\n * Decorations are encoded in a number array using the following scheme:\n * - 3*i = lane\n * - 3*i+1 = startLineNumber\n * - 3*i+2 = endLineNumber\n */\n data) {\n this.color = color;\n this.zIndex = zIndex;\n this.data = data;\n }\n static cmp(a, b) {\n if (a.zIndex === b.zIndex) {\n if (a.color < b.color) {\n return -1;\n }\n if (a.color > b.color) {\n return 1;\n }\n return 0;\n }\n return a.zIndex - b.zIndex;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../common/event.js';\nexport class DomEmitter {\n constructor(element, type, useCapture) {\n const fn = (e) => this.emitter.fire(e);\n this.emitter = new Emitter({\n onFirstListenerAdd: () => element.addEventListener(type, fn, useCapture),\n onLastListenerRemove: () => element.removeEventListener(type, fn, useCapture)\n });\n }\n get event() {\n return this.emitter.event;\n }\n dispose() {\n this.emitter.dispose();\n }\n}\nexport function stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n return event;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IModelService = createDecorator('modelService');\nexport function shouldSynchronizeModel(model) {\n return (!model.isTooLargeForSyncing() && !model.isForSimpleWidget);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass KeyCodeStrMap {\n constructor() {\n this._keyCodeToStr = [];\n this._strToKeyCode = Object.create(null);\n }\n define(keyCode, str) {\n this._keyCodeToStr[keyCode] = str;\n this._strToKeyCode[str.toLowerCase()] = keyCode;\n }\n keyCodeToStr(keyCode) {\n return this._keyCodeToStr[keyCode];\n }\n strToKeyCode(str) {\n return this._strToKeyCode[str.toLowerCase()] || 0 /* Unknown */;\n }\n}\nconst uiMap = new KeyCodeStrMap();\nconst userSettingsUSMap = new KeyCodeStrMap();\nconst userSettingsGeneralMap = new KeyCodeStrMap();\nexport const EVENT_KEY_CODE_MAP = new Array(230);\nexport const NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE = {};\nconst scanCodeIntToStr = [];\nconst scanCodeStrToInt = Object.create(null);\nconst scanCodeLowerCaseStrToInt = Object.create(null);\n/**\n * -1 if a ScanCode => KeyCode mapping depends on kb layout.\n */\nexport const IMMUTABLE_CODE_TO_KEY_CODE = [];\n/**\n * -1 if a KeyCode => ScanCode mapping depends on kb layout.\n */\nexport const IMMUTABLE_KEY_CODE_TO_CODE = [];\nfor (let i = 0; i <= 193 /* MAX_VALUE */; i++) {\n IMMUTABLE_CODE_TO_KEY_CODE[i] = -1 /* DependsOnKbLayout */;\n}\nfor (let i = 0; i <= 126 /* MAX_VALUE */; i++) {\n IMMUTABLE_KEY_CODE_TO_CODE[i] = -1 /* DependsOnKbLayout */;\n}\n(function () {\n // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\n // See https://github.com/microsoft/node-native-keymap/blob/master/deps/chromium/keyboard_codes_win.h\n const empty = '';\n const mappings = [\n // keyCodeOrd, immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel\n [0, 1, 0 /* None */, 'None', 0 /* Unknown */, 'unknown', 0, 'VK_UNKNOWN', empty, empty],\n [0, 1, 1 /* Hyper */, 'Hyper', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 2 /* Super */, 'Super', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 3 /* Fn */, 'Fn', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 4 /* FnLock */, 'FnLock', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 5 /* Suspend */, 'Suspend', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 6 /* Resume */, 'Resume', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 7 /* Turbo */, 'Turbo', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 8 /* Sleep */, 'Sleep', 0 /* Unknown */, empty, 0, 'VK_SLEEP', empty, empty],\n [0, 1, 9 /* WakeUp */, 'WakeUp', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [31, 0, 10 /* KeyA */, 'KeyA', 31 /* KeyA */, 'A', 65, 'VK_A', empty, empty],\n [32, 0, 11 /* KeyB */, 'KeyB', 32 /* KeyB */, 'B', 66, 'VK_B', empty, empty],\n [33, 0, 12 /* KeyC */, 'KeyC', 33 /* KeyC */, 'C', 67, 'VK_C', empty, empty],\n [34, 0, 13 /* KeyD */, 'KeyD', 34 /* KeyD */, 'D', 68, 'VK_D', empty, empty],\n [35, 0, 14 /* KeyE */, 'KeyE', 35 /* KeyE */, 'E', 69, 'VK_E', empty, empty],\n [36, 0, 15 /* KeyF */, 'KeyF', 36 /* KeyF */, 'F', 70, 'VK_F', empty, empty],\n [37, 0, 16 /* KeyG */, 'KeyG', 37 /* KeyG */, 'G', 71, 'VK_G', empty, empty],\n [38, 0, 17 /* KeyH */, 'KeyH', 38 /* KeyH */, 'H', 72, 'VK_H', empty, empty],\n [39, 0, 18 /* KeyI */, 'KeyI', 39 /* KeyI */, 'I', 73, 'VK_I', empty, empty],\n [40, 0, 19 /* KeyJ */, 'KeyJ', 40 /* KeyJ */, 'J', 74, 'VK_J', empty, empty],\n [41, 0, 20 /* KeyK */, 'KeyK', 41 /* KeyK */, 'K', 75, 'VK_K', empty, empty],\n [42, 0, 21 /* KeyL */, 'KeyL', 42 /* KeyL */, 'L', 76, 'VK_L', empty, empty],\n [43, 0, 22 /* KeyM */, 'KeyM', 43 /* KeyM */, 'M', 77, 'VK_M', empty, empty],\n [44, 0, 23 /* KeyN */, 'KeyN', 44 /* KeyN */, 'N', 78, 'VK_N', empty, empty],\n [45, 0, 24 /* KeyO */, 'KeyO', 45 /* KeyO */, 'O', 79, 'VK_O', empty, empty],\n [46, 0, 25 /* KeyP */, 'KeyP', 46 /* KeyP */, 'P', 80, 'VK_P', empty, empty],\n [47, 0, 26 /* KeyQ */, 'KeyQ', 47 /* KeyQ */, 'Q', 81, 'VK_Q', empty, empty],\n [48, 0, 27 /* KeyR */, 'KeyR', 48 /* KeyR */, 'R', 82, 'VK_R', empty, empty],\n [49, 0, 28 /* KeyS */, 'KeyS', 49 /* KeyS */, 'S', 83, 'VK_S', empty, empty],\n [50, 0, 29 /* KeyT */, 'KeyT', 50 /* KeyT */, 'T', 84, 'VK_T', empty, empty],\n [51, 0, 30 /* KeyU */, 'KeyU', 51 /* KeyU */, 'U', 85, 'VK_U', empty, empty],\n [52, 0, 31 /* KeyV */, 'KeyV', 52 /* KeyV */, 'V', 86, 'VK_V', empty, empty],\n [53, 0, 32 /* KeyW */, 'KeyW', 53 /* KeyW */, 'W', 87, 'VK_W', empty, empty],\n [54, 0, 33 /* KeyX */, 'KeyX', 54 /* KeyX */, 'X', 88, 'VK_X', empty, empty],\n [55, 0, 34 /* KeyY */, 'KeyY', 55 /* KeyY */, 'Y', 89, 'VK_Y', empty, empty],\n [56, 0, 35 /* KeyZ */, 'KeyZ', 56 /* KeyZ */, 'Z', 90, 'VK_Z', empty, empty],\n [22, 0, 36 /* Digit1 */, 'Digit1', 22 /* Digit1 */, '1', 49, 'VK_1', empty, empty],\n [23, 0, 37 /* Digit2 */, 'Digit2', 23 /* Digit2 */, '2', 50, 'VK_2', empty, empty],\n [24, 0, 38 /* Digit3 */, 'Digit3', 24 /* Digit3 */, '3', 51, 'VK_3', empty, empty],\n [25, 0, 39 /* Digit4 */, 'Digit4', 25 /* Digit4 */, '4', 52, 'VK_4', empty, empty],\n [26, 0, 40 /* Digit5 */, 'Digit5', 26 /* Digit5 */, '5', 53, 'VK_5', empty, empty],\n [27, 0, 41 /* Digit6 */, 'Digit6', 27 /* Digit6 */, '6', 54, 'VK_6', empty, empty],\n [28, 0, 42 /* Digit7 */, 'Digit7', 28 /* Digit7 */, '7', 55, 'VK_7', empty, empty],\n [29, 0, 43 /* Digit8 */, 'Digit8', 29 /* Digit8 */, '8', 56, 'VK_8', empty, empty],\n [30, 0, 44 /* Digit9 */, 'Digit9', 30 /* Digit9 */, '9', 57, 'VK_9', empty, empty],\n [21, 0, 45 /* Digit0 */, 'Digit0', 21 /* Digit0 */, '0', 48, 'VK_0', empty, empty],\n [3, 1, 46 /* Enter */, 'Enter', 3 /* Enter */, 'Enter', 13, 'VK_RETURN', empty, empty],\n [9, 1, 47 /* Escape */, 'Escape', 9 /* Escape */, 'Escape', 27, 'VK_ESCAPE', empty, empty],\n [1, 1, 48 /* Backspace */, 'Backspace', 1 /* Backspace */, 'Backspace', 8, 'VK_BACK', empty, empty],\n [2, 1, 49 /* Tab */, 'Tab', 2 /* Tab */, 'Tab', 9, 'VK_TAB', empty, empty],\n [10, 1, 50 /* Space */, 'Space', 10 /* Space */, 'Space', 32, 'VK_SPACE', empty, empty],\n [83, 0, 51 /* Minus */, 'Minus', 83 /* Minus */, '-', 189, 'VK_OEM_MINUS', '-', 'OEM_MINUS'],\n [81, 0, 52 /* Equal */, 'Equal', 81 /* Equal */, '=', 187, 'VK_OEM_PLUS', '=', 'OEM_PLUS'],\n [87, 0, 53 /* BracketLeft */, 'BracketLeft', 87 /* BracketLeft */, '[', 219, 'VK_OEM_4', '[', 'OEM_4'],\n [89, 0, 54 /* BracketRight */, 'BracketRight', 89 /* BracketRight */, ']', 221, 'VK_OEM_6', ']', 'OEM_6'],\n [88, 0, 55 /* Backslash */, 'Backslash', 88 /* Backslash */, '\\\\', 220, 'VK_OEM_5', '\\\\', 'OEM_5'],\n [0, 0, 56 /* IntlHash */, 'IntlHash', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [80, 0, 57 /* Semicolon */, 'Semicolon', 80 /* Semicolon */, ';', 186, 'VK_OEM_1', ';', 'OEM_1'],\n [90, 0, 58 /* Quote */, 'Quote', 90 /* Quote */, '\\'', 222, 'VK_OEM_7', '\\'', 'OEM_7'],\n [86, 0, 59 /* Backquote */, 'Backquote', 86 /* Backquote */, '`', 192, 'VK_OEM_3', '`', 'OEM_3'],\n [82, 0, 60 /* Comma */, 'Comma', 82 /* Comma */, ',', 188, 'VK_OEM_COMMA', ',', 'OEM_COMMA'],\n [84, 0, 61 /* Period */, 'Period', 84 /* Period */, '.', 190, 'VK_OEM_PERIOD', '.', 'OEM_PERIOD'],\n [85, 0, 62 /* Slash */, 'Slash', 85 /* Slash */, '/', 191, 'VK_OEM_2', '/', 'OEM_2'],\n [8, 1, 63 /* CapsLock */, 'CapsLock', 8 /* CapsLock */, 'CapsLock', 20, 'VK_CAPITAL', empty, empty],\n [59, 1, 64 /* F1 */, 'F1', 59 /* F1 */, 'F1', 112, 'VK_F1', empty, empty],\n [60, 1, 65 /* F2 */, 'F2', 60 /* F2 */, 'F2', 113, 'VK_F2', empty, empty],\n [61, 1, 66 /* F3 */, 'F3', 61 /* F3 */, 'F3', 114, 'VK_F3', empty, empty],\n [62, 1, 67 /* F4 */, 'F4', 62 /* F4 */, 'F4', 115, 'VK_F4', empty, empty],\n [63, 1, 68 /* F5 */, 'F5', 63 /* F5 */, 'F5', 116, 'VK_F5', empty, empty],\n [64, 1, 69 /* F6 */, 'F6', 64 /* F6 */, 'F6', 117, 'VK_F6', empty, empty],\n [65, 1, 70 /* F7 */, 'F7', 65 /* F7 */, 'F7', 118, 'VK_F7', empty, empty],\n [66, 1, 71 /* F8 */, 'F8', 66 /* F8 */, 'F8', 119, 'VK_F8', empty, empty],\n [67, 1, 72 /* F9 */, 'F9', 67 /* F9 */, 'F9', 120, 'VK_F9', empty, empty],\n [68, 1, 73 /* F10 */, 'F10', 68 /* F10 */, 'F10', 121, 'VK_F10', empty, empty],\n [69, 1, 74 /* F11 */, 'F11', 69 /* F11 */, 'F11', 122, 'VK_F11', empty, empty],\n [70, 1, 75 /* F12 */, 'F12', 70 /* F12 */, 'F12', 123, 'VK_F12', empty, empty],\n [0, 1, 76 /* PrintScreen */, 'PrintScreen', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [79, 1, 77 /* ScrollLock */, 'ScrollLock', 79 /* ScrollLock */, 'ScrollLock', 145, 'VK_SCROLL', empty, empty],\n [7, 1, 78 /* Pause */, 'Pause', 7 /* PauseBreak */, 'PauseBreak', 19, 'VK_PAUSE', empty, empty],\n [19, 1, 79 /* Insert */, 'Insert', 19 /* Insert */, 'Insert', 45, 'VK_INSERT', empty, empty],\n [14, 1, 80 /* Home */, 'Home', 14 /* Home */, 'Home', 36, 'VK_HOME', empty, empty],\n [11, 1, 81 /* PageUp */, 'PageUp', 11 /* PageUp */, 'PageUp', 33, 'VK_PRIOR', empty, empty],\n [20, 1, 82 /* Delete */, 'Delete', 20 /* Delete */, 'Delete', 46, 'VK_DELETE', empty, empty],\n [13, 1, 83 /* End */, 'End', 13 /* End */, 'End', 35, 'VK_END', empty, empty],\n [12, 1, 84 /* PageDown */, 'PageDown', 12 /* PageDown */, 'PageDown', 34, 'VK_NEXT', empty, empty],\n [17, 1, 85 /* ArrowRight */, 'ArrowRight', 17 /* RightArrow */, 'RightArrow', 39, 'VK_RIGHT', 'Right', empty],\n [15, 1, 86 /* ArrowLeft */, 'ArrowLeft', 15 /* LeftArrow */, 'LeftArrow', 37, 'VK_LEFT', 'Left', empty],\n [18, 1, 87 /* ArrowDown */, 'ArrowDown', 18 /* DownArrow */, 'DownArrow', 40, 'VK_DOWN', 'Down', empty],\n [16, 1, 88 /* ArrowUp */, 'ArrowUp', 16 /* UpArrow */, 'UpArrow', 38, 'VK_UP', 'Up', empty],\n [78, 1, 89 /* NumLock */, 'NumLock', 78 /* NumLock */, 'NumLock', 144, 'VK_NUMLOCK', empty, empty],\n [108, 1, 90 /* NumpadDivide */, 'NumpadDivide', 108 /* NumpadDivide */, 'NumPad_Divide', 111, 'VK_DIVIDE', empty, empty],\n [103, 1, 91 /* NumpadMultiply */, 'NumpadMultiply', 103 /* NumpadMultiply */, 'NumPad_Multiply', 106, 'VK_MULTIPLY', empty, empty],\n [106, 1, 92 /* NumpadSubtract */, 'NumpadSubtract', 106 /* NumpadSubtract */, 'NumPad_Subtract', 109, 'VK_SUBTRACT', empty, empty],\n [104, 1, 93 /* NumpadAdd */, 'NumpadAdd', 104 /* NumpadAdd */, 'NumPad_Add', 107, 'VK_ADD', empty, empty],\n [3, 1, 94 /* NumpadEnter */, 'NumpadEnter', 3 /* Enter */, empty, 0, empty, empty, empty],\n [94, 1, 95 /* Numpad1 */, 'Numpad1', 94 /* Numpad1 */, 'NumPad1', 97, 'VK_NUMPAD1', empty, empty],\n [95, 1, 96 /* Numpad2 */, 'Numpad2', 95 /* Numpad2 */, 'NumPad2', 98, 'VK_NUMPAD2', empty, empty],\n [96, 1, 97 /* Numpad3 */, 'Numpad3', 96 /* Numpad3 */, 'NumPad3', 99, 'VK_NUMPAD3', empty, empty],\n [97, 1, 98 /* Numpad4 */, 'Numpad4', 97 /* Numpad4 */, 'NumPad4', 100, 'VK_NUMPAD4', empty, empty],\n [98, 1, 99 /* Numpad5 */, 'Numpad5', 98 /* Numpad5 */, 'NumPad5', 101, 'VK_NUMPAD5', empty, empty],\n [99, 1, 100 /* Numpad6 */, 'Numpad6', 99 /* Numpad6 */, 'NumPad6', 102, 'VK_NUMPAD6', empty, empty],\n [100, 1, 101 /* Numpad7 */, 'Numpad7', 100 /* Numpad7 */, 'NumPad7', 103, 'VK_NUMPAD7', empty, empty],\n [101, 1, 102 /* Numpad8 */, 'Numpad8', 101 /* Numpad8 */, 'NumPad8', 104, 'VK_NUMPAD8', empty, empty],\n [102, 1, 103 /* Numpad9 */, 'Numpad9', 102 /* Numpad9 */, 'NumPad9', 105, 'VK_NUMPAD9', empty, empty],\n [93, 1, 104 /* Numpad0 */, 'Numpad0', 93 /* Numpad0 */, 'NumPad0', 96, 'VK_NUMPAD0', empty, empty],\n [107, 1, 105 /* NumpadDecimal */, 'NumpadDecimal', 107 /* NumpadDecimal */, 'NumPad_Decimal', 110, 'VK_DECIMAL', empty, empty],\n [92, 0, 106 /* IntlBackslash */, 'IntlBackslash', 92 /* IntlBackslash */, 'OEM_102', 226, 'VK_OEM_102', empty, empty],\n [58, 1, 107 /* ContextMenu */, 'ContextMenu', 58 /* ContextMenu */, 'ContextMenu', 93, empty, empty, empty],\n [0, 1, 108 /* Power */, 'Power', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 109 /* NumpadEqual */, 'NumpadEqual', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [71, 1, 110 /* F13 */, 'F13', 71 /* F13 */, 'F13', 124, 'VK_F13', empty, empty],\n [72, 1, 111 /* F14 */, 'F14', 72 /* F14 */, 'F14', 125, 'VK_F14', empty, empty],\n [73, 1, 112 /* F15 */, 'F15', 73 /* F15 */, 'F15', 126, 'VK_F15', empty, empty],\n [74, 1, 113 /* F16 */, 'F16', 74 /* F16 */, 'F16', 127, 'VK_F16', empty, empty],\n [75, 1, 114 /* F17 */, 'F17', 75 /* F17 */, 'F17', 128, 'VK_F17', empty, empty],\n [76, 1, 115 /* F18 */, 'F18', 76 /* F18 */, 'F18', 129, 'VK_F18', empty, empty],\n [77, 1, 116 /* F19 */, 'F19', 77 /* F19 */, 'F19', 130, 'VK_F19', empty, empty],\n [0, 1, 117 /* F20 */, 'F20', 0 /* Unknown */, empty, 0, 'VK_F20', empty, empty],\n [0, 1, 118 /* F21 */, 'F21', 0 /* Unknown */, empty, 0, 'VK_F21', empty, empty],\n [0, 1, 119 /* F22 */, 'F22', 0 /* Unknown */, empty, 0, 'VK_F22', empty, empty],\n [0, 1, 120 /* F23 */, 'F23', 0 /* Unknown */, empty, 0, 'VK_F23', empty, empty],\n [0, 1, 121 /* F24 */, 'F24', 0 /* Unknown */, empty, 0, 'VK_F24', empty, empty],\n [0, 1, 122 /* Open */, 'Open', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 123 /* Help */, 'Help', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 124 /* Select */, 'Select', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 125 /* Again */, 'Again', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 126 /* Undo */, 'Undo', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 127 /* Cut */, 'Cut', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 128 /* Copy */, 'Copy', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 129 /* Paste */, 'Paste', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 130 /* Find */, 'Find', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 131 /* AudioVolumeMute */, 'AudioVolumeMute', 112 /* AudioVolumeMute */, 'AudioVolumeMute', 173, 'VK_VOLUME_MUTE', empty, empty],\n [0, 1, 132 /* AudioVolumeUp */, 'AudioVolumeUp', 113 /* AudioVolumeUp */, 'AudioVolumeUp', 175, 'VK_VOLUME_UP', empty, empty],\n [0, 1, 133 /* AudioVolumeDown */, 'AudioVolumeDown', 114 /* AudioVolumeDown */, 'AudioVolumeDown', 174, 'VK_VOLUME_DOWN', empty, empty],\n [105, 1, 134 /* NumpadComma */, 'NumpadComma', 105 /* NUMPAD_SEPARATOR */, 'NumPad_Separator', 108, 'VK_SEPARATOR', empty, empty],\n [110, 0, 135 /* IntlRo */, 'IntlRo', 110 /* ABNT_C1 */, 'ABNT_C1', 193, 'VK_ABNT_C1', empty, empty],\n [0, 1, 136 /* KanaMode */, 'KanaMode', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 0, 137 /* IntlYen */, 'IntlYen', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 138 /* Convert */, 'Convert', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 139 /* NonConvert */, 'NonConvert', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 140 /* Lang1 */, 'Lang1', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 141 /* Lang2 */, 'Lang2', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 142 /* Lang3 */, 'Lang3', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 143 /* Lang4 */, 'Lang4', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 144 /* Lang5 */, 'Lang5', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 145 /* Abort */, 'Abort', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 146 /* Props */, 'Props', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 147 /* NumpadParenLeft */, 'NumpadParenLeft', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 148 /* NumpadParenRight */, 'NumpadParenRight', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 149 /* NumpadBackspace */, 'NumpadBackspace', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 150 /* NumpadMemoryStore */, 'NumpadMemoryStore', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 151 /* NumpadMemoryRecall */, 'NumpadMemoryRecall', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 152 /* NumpadMemoryClear */, 'NumpadMemoryClear', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 153 /* NumpadMemoryAdd */, 'NumpadMemoryAdd', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 154 /* NumpadMemorySubtract */, 'NumpadMemorySubtract', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 155 /* NumpadClear */, 'NumpadClear', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 156 /* NumpadClearEntry */, 'NumpadClearEntry', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [5, 1, 0 /* None */, empty, 5 /* Ctrl */, 'Ctrl', 17, 'VK_CONTROL', empty, empty],\n [4, 1, 0 /* None */, empty, 4 /* Shift */, 'Shift', 16, 'VK_SHIFT', empty, empty],\n [6, 1, 0 /* None */, empty, 6 /* Alt */, 'Alt', 18, 'VK_MENU', empty, empty],\n [57, 1, 0 /* None */, empty, 57 /* Meta */, 'Meta', 0, 'VK_COMMAND', empty, empty],\n [5, 1, 157 /* ControlLeft */, 'ControlLeft', 5 /* Ctrl */, empty, 0, 'VK_LCONTROL', empty, empty],\n [4, 1, 158 /* ShiftLeft */, 'ShiftLeft', 4 /* Shift */, empty, 0, 'VK_LSHIFT', empty, empty],\n [6, 1, 159 /* AltLeft */, 'AltLeft', 6 /* Alt */, empty, 0, 'VK_LMENU', empty, empty],\n [57, 1, 160 /* MetaLeft */, 'MetaLeft', 57 /* Meta */, empty, 0, 'VK_LWIN', empty, empty],\n [5, 1, 161 /* ControlRight */, 'ControlRight', 5 /* Ctrl */, empty, 0, 'VK_RCONTROL', empty, empty],\n [4, 1, 162 /* ShiftRight */, 'ShiftRight', 4 /* Shift */, empty, 0, 'VK_RSHIFT', empty, empty],\n [6, 1, 163 /* AltRight */, 'AltRight', 6 /* Alt */, empty, 0, 'VK_RMENU', empty, empty],\n [57, 1, 164 /* MetaRight */, 'MetaRight', 57 /* Meta */, empty, 0, 'VK_RWIN', empty, empty],\n [0, 1, 165 /* BrightnessUp */, 'BrightnessUp', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 166 /* BrightnessDown */, 'BrightnessDown', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 167 /* MediaPlay */, 'MediaPlay', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 168 /* MediaRecord */, 'MediaRecord', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 169 /* MediaFastForward */, 'MediaFastForward', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 170 /* MediaRewind */, 'MediaRewind', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [114, 1, 171 /* MediaTrackNext */, 'MediaTrackNext', 119 /* MediaTrackNext */, 'MediaTrackNext', 176, 'VK_MEDIA_NEXT_TRACK', empty, empty],\n [115, 1, 172 /* MediaTrackPrevious */, 'MediaTrackPrevious', 120 /* MediaTrackPrevious */, 'MediaTrackPrevious', 177, 'VK_MEDIA_PREV_TRACK', empty, empty],\n [116, 1, 173 /* MediaStop */, 'MediaStop', 121 /* MediaStop */, 'MediaStop', 178, 'VK_MEDIA_STOP', empty, empty],\n [0, 1, 174 /* Eject */, 'Eject', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [117, 1, 175 /* MediaPlayPause */, 'MediaPlayPause', 122 /* MediaPlayPause */, 'MediaPlayPause', 179, 'VK_MEDIA_PLAY_PAUSE', empty, empty],\n [0, 1, 176 /* MediaSelect */, 'MediaSelect', 123 /* LaunchMediaPlayer */, 'LaunchMediaPlayer', 181, 'VK_MEDIA_LAUNCH_MEDIA_SELECT', empty, empty],\n [0, 1, 177 /* LaunchMail */, 'LaunchMail', 124 /* LaunchMail */, 'LaunchMail', 180, 'VK_MEDIA_LAUNCH_MAIL', empty, empty],\n [0, 1, 178 /* LaunchApp2 */, 'LaunchApp2', 125 /* LaunchApp2 */, 'LaunchApp2', 183, 'VK_MEDIA_LAUNCH_APP2', empty, empty],\n [0, 1, 179 /* LaunchApp1 */, 'LaunchApp1', 0 /* Unknown */, empty, 0, 'VK_MEDIA_LAUNCH_APP1', empty, empty],\n [0, 1, 180 /* SelectTask */, 'SelectTask', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 181 /* LaunchScreenSaver */, 'LaunchScreenSaver', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 182 /* BrowserSearch */, 'BrowserSearch', 115 /* BrowserSearch */, 'BrowserSearch', 170, 'VK_BROWSER_SEARCH', empty, empty],\n [0, 1, 183 /* BrowserHome */, 'BrowserHome', 116 /* BrowserHome */, 'BrowserHome', 172, 'VK_BROWSER_HOME', empty, empty],\n [112, 1, 184 /* BrowserBack */, 'BrowserBack', 117 /* BrowserBack */, 'BrowserBack', 166, 'VK_BROWSER_BACK', empty, empty],\n [113, 1, 185 /* BrowserForward */, 'BrowserForward', 118 /* BrowserForward */, 'BrowserForward', 167, 'VK_BROWSER_FORWARD', empty, empty],\n [0, 1, 186 /* BrowserStop */, 'BrowserStop', 0 /* Unknown */, empty, 0, 'VK_BROWSER_STOP', empty, empty],\n [0, 1, 187 /* BrowserRefresh */, 'BrowserRefresh', 0 /* Unknown */, empty, 0, 'VK_BROWSER_REFRESH', empty, empty],\n [0, 1, 188 /* BrowserFavorites */, 'BrowserFavorites', 0 /* Unknown */, empty, 0, 'VK_BROWSER_FAVORITES', empty, empty],\n [0, 1, 189 /* ZoomToggle */, 'ZoomToggle', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 190 /* MailReply */, 'MailReply', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 191 /* MailForward */, 'MailForward', 0 /* Unknown */, empty, 0, empty, empty, empty],\n [0, 1, 192 /* MailSend */, 'MailSend', 0 /* Unknown */, empty, 0, empty, empty, empty],\n // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html\n // If an Input Method Editor is processing key input and the event is keydown, return 229.\n [109, 1, 0 /* None */, empty, 109 /* KEY_IN_COMPOSITION */, 'KeyInComposition', 229, empty, empty, empty],\n [111, 1, 0 /* None */, empty, 111 /* ABNT_C2 */, 'ABNT_C2', 194, 'VK_ABNT_C2', empty, empty],\n [91, 1, 0 /* None */, empty, 91 /* OEM_8 */, 'OEM_8', 223, 'VK_OEM_8', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_CLEAR', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_KANA', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_HANGUL', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_JUNJA', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_FINAL', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_HANJA', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_KANJI', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_CONVERT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_NONCONVERT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_ACCEPT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_MODECHANGE', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_SELECT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_PRINT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_EXECUTE', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_SNAPSHOT', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_HELP', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_APPS', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_PROCESSKEY', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_PACKET', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_DBE_SBCSCHAR', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_DBE_DBCSCHAR', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_ATTN', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_CRSEL', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_EXSEL', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_EREOF', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_PLAY', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_ZOOM', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_NONAME', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_PA1', empty, empty],\n [0, 1, 0 /* None */, empty, 0 /* Unknown */, empty, 0, 'VK_OEM_CLEAR', empty, empty],\n ];\n let seenKeyCode = [];\n let seenScanCode = [];\n for (const mapping of mappings) {\n const [_keyCodeOrd, immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping;\n if (!seenScanCode[scanCode]) {\n seenScanCode[scanCode] = true;\n scanCodeIntToStr[scanCode] = scanCodeStr;\n scanCodeStrToInt[scanCodeStr] = scanCode;\n scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode;\n if (immutable) {\n IMMUTABLE_CODE_TO_KEY_CODE[scanCode] = keyCode;\n if ((keyCode !== 0 /* Unknown */)\n && (keyCode !== 3 /* Enter */)\n && (keyCode !== 5 /* Ctrl */)\n && (keyCode !== 4 /* Shift */)\n && (keyCode !== 6 /* Alt */)\n && (keyCode !== 57 /* Meta */)) {\n IMMUTABLE_KEY_CODE_TO_CODE[keyCode] = scanCode;\n }\n }\n }\n if (!seenKeyCode[keyCode]) {\n seenKeyCode[keyCode] = true;\n if (!keyCodeStr) {\n throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`);\n }\n uiMap.define(keyCode, keyCodeStr);\n userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr);\n userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr);\n }\n if (eventKeyCode) {\n EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode;\n }\n if (vkey) {\n NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[vkey] = keyCode;\n }\n }\n // Manually added due to the exclusion above (due to duplication with NumpadEnter)\n IMMUTABLE_KEY_CODE_TO_CODE[3 /* Enter */] = 46 /* Enter */;\n})();\nexport var KeyCodeUtils;\n(function (KeyCodeUtils) {\n function toString(keyCode) {\n return uiMap.keyCodeToStr(keyCode);\n }\n KeyCodeUtils.toString = toString;\n function fromString(key) {\n return uiMap.strToKeyCode(key);\n }\n KeyCodeUtils.fromString = fromString;\n function toUserSettingsUS(keyCode) {\n return userSettingsUSMap.keyCodeToStr(keyCode);\n }\n KeyCodeUtils.toUserSettingsUS = toUserSettingsUS;\n function toUserSettingsGeneral(keyCode) {\n return userSettingsGeneralMap.keyCodeToStr(keyCode);\n }\n KeyCodeUtils.toUserSettingsGeneral = toUserSettingsGeneral;\n function fromUserSettings(key) {\n return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key);\n }\n KeyCodeUtils.fromUserSettings = fromUserSettings;\n function toElectronAccelerator(keyCode) {\n if (keyCode >= 93 /* Numpad0 */ && keyCode <= 108 /* NumpadDivide */) {\n // [Electron Accelerators] Electron is able to parse numpad keys, but unfortunately it\n // renders them just as regular keys in menus. For example, num0 is rendered as \"0\",\n // numdiv is rendered as \"/\", numsub is rendered as \"-\".\n //\n // This can lead to incredible confusion, as it makes numpad based keybindings indistinguishable\n // from keybindings based on regular keys.\n //\n // We therefore need to fall back to custom rendering for numpad keys.\n return null;\n }\n switch (keyCode) {\n case 16 /* UpArrow */:\n return 'Up';\n case 18 /* DownArrow */:\n return 'Down';\n case 15 /* LeftArrow */:\n return 'Left';\n case 17 /* RightArrow */:\n return 'Right';\n }\n return uiMap.keyCodeToStr(keyCode);\n }\n KeyCodeUtils.toElectronAccelerator = toElectronAccelerator;\n})(KeyCodeUtils || (KeyCodeUtils = {}));\nexport function KeyChord(firstPart, secondPart) {\n const chordPart = ((secondPart & 0x0000FFFF) << 16) >>> 0;\n return (firstPart | chordPart) >>> 0;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace\n// Copied from: https://github.com/nodejs/node/blob/v14.16.0/lib/path.js\n/**\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nimport * as process from './process.js';\nconst CHAR_UPPERCASE_A = 65; /* A */\nconst CHAR_LOWERCASE_A = 97; /* a */\nconst CHAR_UPPERCASE_Z = 90; /* Z */\nconst CHAR_LOWERCASE_Z = 122; /* z */\nconst CHAR_DOT = 46; /* . */\nconst CHAR_FORWARD_SLASH = 47; /* / */\nconst CHAR_BACKWARD_SLASH = 92; /* \\ */\nconst CHAR_COLON = 58; /* : */\nconst CHAR_QUESTION_MARK = 63; /* ? */\nclass ErrorInvalidArgType extends Error {\n constructor(name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && expected.indexOf('not ') === 0) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n }\n else {\n determiner = 'must be';\n }\n const type = name.indexOf('.') !== -1 ? 'property' : 'argument';\n let msg = `The \"${name}\" ${type} ${determiner} of type ${expected}`;\n msg += `. Received type ${typeof actual}`;\n super(msg);\n this.code = 'ERR_INVALID_ARG_TYPE';\n }\n}\nfunction validateString(value, name) {\n if (typeof value !== 'string') {\n throw new ErrorInvalidArgType(name, 'string', value);\n }\n}\nfunction isPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n}\nfunction isPosixPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH;\n}\nfunction isWindowsDeviceRoot(code) {\n return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) ||\n (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z);\n}\n// Resolves . and .. elements in a path with directory names\nfunction normalizeString(path, allowAboveRoot, separator, isPathSeparator) {\n let res = '';\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let code = 0;\n for (let i = 0; i <= path.length; ++i) {\n if (i < path.length) {\n code = path.charCodeAt(i);\n }\n else if (isPathSeparator(code)) {\n break;\n }\n else {\n code = CHAR_FORWARD_SLASH;\n }\n if (isPathSeparator(code)) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n }\n else if (dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 ||\n res.charCodeAt(res.length - 1) !== CHAR_DOT ||\n res.charCodeAt(res.length - 2) !== CHAR_DOT) {\n if (res.length > 2) {\n const lastSlashIndex = res.lastIndexOf(separator);\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n }\n else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(separator);\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n else if (res.length !== 0) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n res += res.length > 0 ? `${separator}..` : '..';\n lastSegmentLength = 2;\n }\n }\n else {\n if (res.length > 0) {\n res += `${separator}${path.slice(lastSlash + 1, i)}`;\n }\n else {\n res = path.slice(lastSlash + 1, i);\n }\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n }\n else if (code === CHAR_DOT && dots !== -1) {\n ++dots;\n }\n else {\n dots = -1;\n }\n }\n return res;\n}\nfunction _format(sep, pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new ErrorInvalidArgType('pathObject', 'Object', pathObject);\n }\n const dir = pathObject.dir || pathObject.root;\n const base = pathObject.base ||\n `${pathObject.name || ''}${pathObject.ext || ''}`;\n if (!dir) {\n return base;\n }\n return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`;\n}\nexport const win32 = {\n // path.resolve([from ...], to)\n resolve(...pathSegments) {\n let resolvedDevice = '';\n let resolvedTail = '';\n let resolvedAbsolute = false;\n for (let i = pathSegments.length - 1; i >= -1; i--) {\n let path;\n if (i >= 0) {\n path = pathSegments[i];\n validateString(path, 'path');\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n }\n else if (resolvedDevice.length === 0) {\n path = process.cwd();\n }\n else {\n // Windows has the concept of drive-specific current working\n // directories. If we've resolved a drive letter but not yet an\n // absolute path, get cwd for that drive, or the process cwd if\n // the drive cwd is not available. We're sure the device is not\n // a UNC path at this points, because UNC paths are always absolute.\n path = process.env[`=${resolvedDevice}`] || process.cwd();\n // Verify that a cwd was found and that it actually points\n // to our drive. If not, default to the drive's root.\n if (path === undefined ||\n (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() &&\n path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) {\n path = `${resolvedDevice}\\\\`;\n }\n }\n const len = path.length;\n let rootEnd = 0;\n let device = '';\n let isAbsolute = false;\n const code = path.charCodeAt(0);\n // Try to match a root\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator\n rootEnd = 1;\n isAbsolute = true;\n }\n }\n else if (isPathSeparator(code)) {\n // Possible UNC root\n // If we started with a separator, we know we at least have an\n // absolute path of some kind (UNC or otherwise)\n isAbsolute = true;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = path.slice(last, j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len || j !== last) {\n // We matched a UNC root\n device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n rootEnd = j;\n }\n }\n }\n }\n else {\n rootEnd = 1;\n }\n }\n else if (isWindowsDeviceRoot(code) &&\n path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n device = path.slice(0, 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n if (device.length > 0) {\n if (resolvedDevice.length > 0) {\n if (device.toLowerCase() !== resolvedDevice.toLowerCase()) {\n // This path points to another device so it is not applicable\n continue;\n }\n }\n else {\n resolvedDevice = device;\n }\n }\n if (resolvedAbsolute) {\n if (resolvedDevice.length > 0) {\n break;\n }\n }\n else {\n resolvedTail = `${path.slice(rootEnd)}\\\\${resolvedTail}`;\n resolvedAbsolute = isAbsolute;\n if (isAbsolute && resolvedDevice.length > 0) {\n break;\n }\n }\n }\n // At this point the path should be resolved to a full absolute path,\n // but handle relative paths to be safe (might happen when process.cwd()\n // fails)\n // Normalize the tail path\n resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\\\', isPathSeparator);\n return resolvedAbsolute ?\n `${resolvedDevice}\\\\${resolvedTail}` :\n `${resolvedDevice}${resolvedTail}` || '.';\n },\n normalize(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return '.';\n }\n let rootEnd = 0;\n let device;\n let isAbsolute = false;\n const code = path.charCodeAt(0);\n // Try to match a root\n if (len === 1) {\n // `path` contains just a single char, exit early to avoid\n // unnecessary work\n return isPosixPathSeparator(code) ? '\\\\' : path;\n }\n if (isPathSeparator(code)) {\n // Possible UNC root\n // If we started with a separator, we know we at least have an absolute\n // path of some kind (UNC or otherwise)\n isAbsolute = true;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = path.slice(last, j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n // Return the normalized version of the UNC root since there\n // is nothing left to process\n return `\\\\\\\\${firstPart}\\\\${path.slice(last)}\\\\`;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n rootEnd = j;\n }\n }\n }\n }\n else {\n rootEnd = 1;\n }\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n device = path.slice(0, 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n let tail = rootEnd < len ?\n normalizeString(path.slice(rootEnd), !isAbsolute, '\\\\', isPathSeparator) :\n '';\n if (tail.length === 0 && !isAbsolute) {\n tail = '.';\n }\n if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) {\n tail += '\\\\';\n }\n if (device === undefined) {\n return isAbsolute ? `\\\\${tail}` : tail;\n }\n return isAbsolute ? `${device}\\\\${tail}` : `${device}${tail}`;\n },\n isAbsolute(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return false;\n }\n const code = path.charCodeAt(0);\n return isPathSeparator(code) ||\n // Possible device root\n (len > 2 &&\n isWindowsDeviceRoot(code) &&\n path.charCodeAt(1) === CHAR_COLON &&\n isPathSeparator(path.charCodeAt(2)));\n },\n join(...paths) {\n if (paths.length === 0) {\n return '.';\n }\n let joined;\n let firstPart;\n for (let i = 0; i < paths.length; ++i) {\n const arg = paths[i];\n validateString(arg, 'path');\n if (arg.length > 0) {\n if (joined === undefined) {\n joined = firstPart = arg;\n }\n else {\n joined += `\\\\${arg}`;\n }\n }\n }\n if (joined === undefined) {\n return '.';\n }\n // Make sure that the joined path doesn't start with two slashes, because\n // normalize() will mistake it for a UNC path then.\n //\n // This step is skipped when it is very clear that the user actually\n // intended to point at a UNC path. This is assumed when the first\n // non-empty string arguments starts with exactly two slashes followed by\n // at least one more non-slash character.\n //\n // Note that for normalize() to treat a path as a UNC path it needs to\n // have at least 2 components, so we don't filter for that here.\n // This means that the user can use join to construct UNC paths from\n // a server name and a share name; for example:\n // path.join('//server', 'share') -> '\\\\\\\\server\\\\share\\\\')\n let needsReplace = true;\n let slashCount = 0;\n if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) {\n ++slashCount;\n const firstLen = firstPart.length;\n if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) {\n ++slashCount;\n if (firstLen > 2) {\n if (isPathSeparator(firstPart.charCodeAt(2))) {\n ++slashCount;\n }\n else {\n // We matched a UNC path in the first part\n needsReplace = false;\n }\n }\n }\n }\n if (needsReplace) {\n // Find any more consecutive slashes we need to replace\n while (slashCount < joined.length &&\n isPathSeparator(joined.charCodeAt(slashCount))) {\n slashCount++;\n }\n // Replace the slashes if needed\n if (slashCount >= 2) {\n joined = `\\\\${joined.slice(slashCount)}`;\n }\n }\n return win32.normalize(joined);\n },\n // It will solve the relative path from `from` to `to`, for instance:\n // from = 'C:\\\\orandea\\\\test\\\\aaa'\n // to = 'C:\\\\orandea\\\\impl\\\\bbb'\n // The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\n relative(from, to) {\n validateString(from, 'from');\n validateString(to, 'to');\n if (from === to) {\n return '';\n }\n const fromOrig = win32.resolve(from);\n const toOrig = win32.resolve(to);\n if (fromOrig === toOrig) {\n return '';\n }\n from = fromOrig.toLowerCase();\n to = toOrig.toLowerCase();\n if (from === to) {\n return '';\n }\n // Trim any leading backslashes\n let fromStart = 0;\n while (fromStart < from.length &&\n from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) {\n fromStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let fromEnd = from.length;\n while (fromEnd - 1 > fromStart &&\n from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) {\n fromEnd--;\n }\n const fromLen = fromEnd - fromStart;\n // Trim any leading backslashes\n let toStart = 0;\n while (toStart < to.length &&\n to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n toStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let toEnd = to.length;\n while (toEnd - 1 > toStart &&\n to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) {\n toEnd--;\n }\n const toLen = toEnd - toStart;\n // Compare paths to find the longest common path from root\n const length = fromLen < toLen ? fromLen : toLen;\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = from.charCodeAt(fromStart + i);\n if (fromCode !== to.charCodeAt(toStart + i)) {\n break;\n }\n else if (fromCode === CHAR_BACKWARD_SLASH) {\n lastCommonSep = i;\n }\n }\n // We found a mismatch before the first common path separator was seen, so\n // return the original `to`.\n if (i !== length) {\n if (lastCommonSep === -1) {\n return toOrig;\n }\n }\n else {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo\\\\bar\\\\baz'\n return toOrig.slice(toStart + i + 1);\n }\n if (i === 2) {\n // We get here if `from` is the device root.\n // For example: from='C:\\\\'; to='C:\\\\foo'\n return toOrig.slice(toStart + i);\n }\n }\n if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo'\n lastCommonSep = i;\n }\n else if (i === 2) {\n // We get here if `to` is the device root.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\'\n lastCommonSep = 3;\n }\n }\n if (lastCommonSep === -1) {\n lastCommonSep = 0;\n }\n }\n let out = '';\n // Generate the relative path based on the path difference between `to` and\n // `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) {\n out += out.length === 0 ? '..' : '\\\\..';\n }\n }\n toStart += lastCommonSep;\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0) {\n return `${out}${toOrig.slice(toStart, toEnd)}`;\n }\n if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n ++toStart;\n }\n return toOrig.slice(toStart, toEnd);\n },\n toNamespacedPath(path) {\n // Note: this will *probably* throw somewhere.\n if (typeof path !== 'string') {\n return path;\n }\n if (path.length === 0) {\n return '';\n }\n const resolvedPath = win32.resolve(path);\n if (resolvedPath.length <= 2) {\n return path;\n }\n if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {\n // Possible UNC root\n if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {\n const code = resolvedPath.charCodeAt(2);\n if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {\n // Matched non-long UNC root, convert the path to a long UNC path\n return `\\\\\\\\?\\\\UNC\\\\${resolvedPath.slice(2)}`;\n }\n }\n }\n else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) &&\n resolvedPath.charCodeAt(1) === CHAR_COLON &&\n resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {\n // Matched device root, convert the path to a long UNC path\n return `\\\\\\\\?\\\\${resolvedPath}`;\n }\n return path;\n },\n dirname(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return '.';\n }\n let rootEnd = -1;\n let offset = 0;\n const code = path.charCodeAt(0);\n if (len === 1) {\n // `path` contains just a path separator, exit early to avoid\n // unnecessary work or a dot.\n return isPathSeparator(code) ? path : '.';\n }\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n rootEnd = offset = 1;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n return path;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n // Offset by 1 to include the separator after the UNC root to\n // treat it as a \"normal root\" on top of a (UNC) root\n rootEnd = offset = j + 1;\n }\n }\n }\n }\n // Possible device root\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2;\n offset = rootEnd;\n }\n let end = -1;\n let matchedSlash = true;\n for (let i = len - 1; i >= offset; --i) {\n if (isPathSeparator(path.charCodeAt(i))) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n }\n else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) {\n if (rootEnd === -1) {\n return '.';\n }\n end = rootEnd;\n }\n return path.slice(0, end);\n },\n basename(path, ext) {\n if (ext !== undefined) {\n validateString(ext, 'ext');\n }\n validateString(path, 'path');\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n let i;\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n if (path.length >= 2 &&\n isWindowsDeviceRoot(path.charCodeAt(0)) &&\n path.charCodeAt(1) === CHAR_COLON) {\n start = 2;\n }\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path) {\n return '';\n }\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n }\n else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n }\n else if (end === -1) {\n end = path.length;\n }\n return path.slice(start, end);\n }\n for (i = path.length - 1; i >= start; --i) {\n if (isPathSeparator(path.charCodeAt(i))) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) {\n return '';\n }\n return path.slice(start, end);\n },\n extname(path) {\n validateString(path, 'path');\n let start = 0;\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n if (path.length >= 2 &&\n path.charCodeAt(1) === CHAR_COLON &&\n isWindowsDeviceRoot(path.charCodeAt(0))) {\n start = startPart = 2;\n }\n for (let i = path.length - 1; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return path.slice(startDot, end);\n },\n format: _format.bind(null, '\\\\'),\n parse(path) {\n validateString(path, 'path');\n const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) {\n return ret;\n }\n const len = path.length;\n let rootEnd = 0;\n let code = path.charCodeAt(0);\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n ret.base = ret.name = path;\n return ret;\n }\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n rootEnd = 1;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n rootEnd = j;\n }\n else if (j !== last) {\n // We matched a UNC root with leftovers\n rootEnd = j + 1;\n }\n }\n }\n }\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n if (len <= 2) {\n // `path` contains just a drive root, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 2;\n if (isPathSeparator(path.charCodeAt(2))) {\n if (len === 3) {\n // `path` contains just a drive root, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 3;\n }\n }\n if (rootEnd > 0) {\n ret.root = path.slice(0, rootEnd);\n }\n let startDot = -1;\n let startPart = rootEnd;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Get non-dir info\n for (; i >= rootEnd; --i) {\n code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (end !== -1) {\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = path.slice(startPart, end);\n }\n else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n ret.ext = path.slice(startDot, end);\n }\n }\n // If the directory is the root, use the entire root as the `dir` including\n // the trailing slash if any (`C:\\abc` -> `C:\\`). Otherwise, strip out the\n // trailing slash (`C:\\abc\\def` -> `C:\\abc`).\n if (startPart > 0 && startPart !== rootEnd) {\n ret.dir = path.slice(0, startPart - 1);\n }\n else {\n ret.dir = ret.root;\n }\n return ret;\n },\n sep: '\\\\',\n delimiter: ';',\n win32: null,\n posix: null\n};\nexport const posix = {\n // path.resolve([from ...], to)\n resolve(...pathSegments) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? pathSegments[i] : process.cwd();\n validateString(path, 'path');\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n }\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator);\n if (resolvedAbsolute) {\n return `/${resolvedPath}`;\n }\n return resolvedPath.length > 0 ? resolvedPath : '.';\n },\n normalize(path) {\n validateString(path, 'path');\n if (path.length === 0) {\n return '.';\n }\n const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH;\n // Normalize the path\n path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator);\n if (path.length === 0) {\n if (isAbsolute) {\n return '/';\n }\n return trailingSeparator ? './' : '.';\n }\n if (trailingSeparator) {\n path += '/';\n }\n return isAbsolute ? `/${path}` : path;\n },\n isAbsolute(path) {\n validateString(path, 'path');\n return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n },\n join(...paths) {\n if (paths.length === 0) {\n return '.';\n }\n let joined;\n for (let i = 0; i < paths.length; ++i) {\n const arg = paths[i];\n validateString(arg, 'path');\n if (arg.length > 0) {\n if (joined === undefined) {\n joined = arg;\n }\n else {\n joined += `/${arg}`;\n }\n }\n }\n if (joined === undefined) {\n return '.';\n }\n return posix.normalize(joined);\n },\n relative(from, to) {\n validateString(from, 'from');\n validateString(to, 'to');\n if (from === to) {\n return '';\n }\n // Trim leading forward slashes.\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) {\n return '';\n }\n const fromStart = 1;\n const fromEnd = from.length;\n const fromLen = fromEnd - fromStart;\n const toStart = 1;\n const toLen = to.length - toStart;\n // Compare paths to find the longest common path from root\n const length = (fromLen < toLen ? fromLen : toLen);\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = from.charCodeAt(fromStart + i);\n if (fromCode !== to.charCodeAt(toStart + i)) {\n break;\n }\n else if (fromCode === CHAR_FORWARD_SLASH) {\n lastCommonSep = i;\n }\n }\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n }\n if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n }\n else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n }\n else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo/bar'; to='/'\n lastCommonSep = 0;\n }\n }\n }\n let out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`.\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n out += out.length === 0 ? '..' : '/..';\n }\n }\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts.\n return `${out}${to.slice(toStart + lastCommonSep)}`;\n },\n toNamespacedPath(path) {\n // Non-op on posix systems\n return path;\n },\n dirname(path) {\n validateString(path, 'path');\n if (path.length === 0) {\n return '.';\n }\n const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n let end = -1;\n let matchedSlash = true;\n for (let i = path.length - 1; i >= 1; --i) {\n if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n }\n else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) {\n return hasRoot ? '/' : '.';\n }\n if (hasRoot && end === 1) {\n return '//';\n }\n return path.slice(0, end);\n },\n basename(path, ext) {\n if (ext !== undefined) {\n validateString(ext, 'ext');\n }\n validateString(path, 'path');\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n let i;\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path) {\n return '';\n }\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n }\n else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n }\n else if (end === -1) {\n end = path.length;\n }\n return path.slice(start, end);\n }\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) {\n return '';\n }\n return path.slice(start, end);\n },\n extname(path) {\n validateString(path, 'path');\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n for (let i = path.length - 1; i >= 0; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return path.slice(startDot, end);\n },\n format: _format.bind(null, '/'),\n parse(path) {\n validateString(path, 'path');\n const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) {\n return ret;\n }\n const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n let start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n }\n else {\n start = 0;\n }\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Get non-dir info\n for (; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (end !== -1) {\n const start = startPart === 0 && isAbsolute ? 1 : startPart;\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = path.slice(start, end);\n }\n else {\n ret.name = path.slice(start, startDot);\n ret.base = path.slice(start, end);\n ret.ext = path.slice(startDot, end);\n }\n }\n if (startPart > 0) {\n ret.dir = path.slice(0, startPart - 1);\n }\n else if (isAbsolute) {\n ret.dir = '/';\n }\n return ret;\n },\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\nposix.win32 = win32.win32 = win32;\nposix.posix = win32.posix = posix;\nexport const normalize = (process.platform === 'win32' ? win32.normalize : posix.normalize);\nexport const resolve = (process.platform === 'win32' ? win32.resolve : posix.resolve);\nexport const relative = (process.platform === 'win32' ? win32.relative : posix.relative);\nexport const dirname = (process.platform === 'win32' ? win32.dirname : posix.dirname);\nexport const basename = (process.platform === 'win32' ? win32.basename : posix.basename);\nexport const extname = (process.platform === 'win32' ? win32.extname : posix.extname);\nexport const sep = (process.platform === 'win32' ? win32.sep : posix.sep);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './aria.css';\n// Use a max length since we are inserting the whole msg in the DOM and that can cause browsers to freeze for long messages #94233\nconst MAX_MESSAGE_LENGTH = 20000;\nlet ariaContainer;\nlet alertContainer;\nlet alertContainer2;\nlet statusContainer;\nlet statusContainer2;\nexport function setARIAContainer(parent) {\n ariaContainer = document.createElement('div');\n ariaContainer.className = 'monaco-aria-container';\n const createAlertContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-alert';\n element.setAttribute('role', 'alert');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n alertContainer = createAlertContainer();\n alertContainer2 = createAlertContainer();\n const createStatusContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-status';\n element.setAttribute('role', 'complementary');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n statusContainer = createStatusContainer();\n statusContainer2 = createStatusContainer();\n parent.appendChild(ariaContainer);\n}\n/**\n * Given the provided message, will make sure that it is read as alert to screen readers.\n */\nexport function alert(msg) {\n if (!ariaContainer) {\n return;\n }\n // Use alternate containers such that duplicated messages get read out by screen readers #99466\n if (alertContainer.textContent !== msg) {\n dom.clearNode(alertContainer2);\n insertMessage(alertContainer, msg);\n }\n else {\n dom.clearNode(alertContainer);\n insertMessage(alertContainer2, msg);\n }\n}\n/**\n * Given the provided message, will make sure that it is read as status to screen readers.\n */\nexport function status(msg) {\n if (!ariaContainer) {\n return;\n }\n if (isMacintosh) {\n alert(msg); // VoiceOver does not seem to support status role\n }\n else {\n if (statusContainer.textContent !== msg) {\n dom.clearNode(statusContainer2);\n insertMessage(statusContainer, msg);\n }\n else {\n dom.clearNode(statusContainer);\n insertMessage(statusContainer2, msg);\n }\n }\n}\nfunction insertMessage(target, msg) {\n dom.clearNode(target);\n if (msg.length > MAX_MESSAGE_LENGTH) {\n msg = msg.substr(0, MAX_MESSAGE_LENGTH);\n }\n target.textContent = msg;\n // See https://www.paciellogroup.com/blog/2012/06/html5-accessibility-chops-aria-rolealert-browser-support/\n target.style.visibility = 'hidden';\n target.style.visibility = 'visible';\n}\n","var _a, _b;\nimport { compare, compareIgnoreCase, compareSubstring, compareSubstringIgnoreCase } from './strings.js';\nexport class StringIterator {\n constructor() {\n this._value = '';\n this._pos = 0;\n }\n reset(key) {\n this._value = key;\n this._pos = 0;\n return this;\n }\n next() {\n this._pos += 1;\n return this;\n }\n hasNext() {\n return this._pos < this._value.length - 1;\n }\n cmp(a) {\n const aCode = a.charCodeAt(0);\n const thisCode = this._value.charCodeAt(this._pos);\n return aCode - thisCode;\n }\n value() {\n return this._value[this._pos];\n }\n}\nexport class ConfigKeysIterator {\n constructor(_caseSensitive = true) {\n this._caseSensitive = _caseSensitive;\n }\n reset(key) {\n this._value = key;\n this._from = 0;\n this._to = 0;\n return this.next();\n }\n hasNext() {\n return this._to < this._value.length;\n }\n next() {\n // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n this._from = this._to;\n let justSeps = true;\n for (; this._to < this._value.length; this._to++) {\n const ch = this._value.charCodeAt(this._to);\n if (ch === 46 /* Period */) {\n if (justSeps) {\n this._from++;\n }\n else {\n break;\n }\n }\n else {\n justSeps = false;\n }\n }\n return this;\n }\n cmp(a) {\n return this._caseSensitive\n ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n }\n value() {\n return this._value.substring(this._from, this._to);\n }\n}\nexport class PathIterator {\n constructor(_splitOnBackslash = true, _caseSensitive = true) {\n this._splitOnBackslash = _splitOnBackslash;\n this._caseSensitive = _caseSensitive;\n }\n reset(key) {\n this._value = key.replace(/\\\\$|\\/$/, '');\n this._from = 0;\n this._to = 0;\n return this.next();\n }\n hasNext() {\n return this._to < this._value.length;\n }\n next() {\n // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n this._from = this._to;\n let justSeps = true;\n for (; this._to < this._value.length; this._to++) {\n const ch = this._value.charCodeAt(this._to);\n if (ch === 47 /* Slash */ || this._splitOnBackslash && ch === 92 /* Backslash */) {\n if (justSeps) {\n this._from++;\n }\n else {\n break;\n }\n }\n else {\n justSeps = false;\n }\n }\n return this;\n }\n cmp(a) {\n return this._caseSensitive\n ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n }\n value() {\n return this._value.substring(this._from, this._to);\n }\n}\nexport class UriIterator {\n constructor(_ignorePathCasing) {\n this._ignorePathCasing = _ignorePathCasing;\n this._states = [];\n this._stateIdx = 0;\n }\n reset(key) {\n this._value = key;\n this._states = [];\n if (this._value.scheme) {\n this._states.push(1 /* Scheme */);\n }\n if (this._value.authority) {\n this._states.push(2 /* Authority */);\n }\n if (this._value.path) {\n this._pathIterator = new PathIterator(false, !this._ignorePathCasing(key));\n this._pathIterator.reset(key.path);\n if (this._pathIterator.value()) {\n this._states.push(3 /* Path */);\n }\n }\n if (this._value.query) {\n this._states.push(4 /* Query */);\n }\n if (this._value.fragment) {\n this._states.push(5 /* Fragment */);\n }\n this._stateIdx = 0;\n return this;\n }\n next() {\n if (this._states[this._stateIdx] === 3 /* Path */ && this._pathIterator.hasNext()) {\n this._pathIterator.next();\n }\n else {\n this._stateIdx += 1;\n }\n return this;\n }\n hasNext() {\n return (this._states[this._stateIdx] === 3 /* Path */ && this._pathIterator.hasNext())\n || this._stateIdx < this._states.length - 1;\n }\n cmp(a) {\n if (this._states[this._stateIdx] === 1 /* Scheme */) {\n return compareIgnoreCase(a, this._value.scheme);\n }\n else if (this._states[this._stateIdx] === 2 /* Authority */) {\n return compareIgnoreCase(a, this._value.authority);\n }\n else if (this._states[this._stateIdx] === 3 /* Path */) {\n return this._pathIterator.cmp(a);\n }\n else if (this._states[this._stateIdx] === 4 /* Query */) {\n return compare(a, this._value.query);\n }\n else if (this._states[this._stateIdx] === 5 /* Fragment */) {\n return compare(a, this._value.fragment);\n }\n throw new Error();\n }\n value() {\n if (this._states[this._stateIdx] === 1 /* Scheme */) {\n return this._value.scheme;\n }\n else if (this._states[this._stateIdx] === 2 /* Authority */) {\n return this._value.authority;\n }\n else if (this._states[this._stateIdx] === 3 /* Path */) {\n return this._pathIterator.value();\n }\n else if (this._states[this._stateIdx] === 4 /* Query */) {\n return this._value.query;\n }\n else if (this._states[this._stateIdx] === 5 /* Fragment */) {\n return this._value.fragment;\n }\n throw new Error();\n }\n}\nclass TernarySearchTreeNode {\n constructor() {\n this.height = 1;\n }\n rotateLeft() {\n const tmp = this.right;\n this.right = tmp.left;\n tmp.left = this;\n this.updateHeight();\n tmp.updateHeight();\n return tmp;\n }\n rotateRight() {\n const tmp = this.left;\n this.left = tmp.right;\n tmp.right = this;\n this.updateHeight();\n tmp.updateHeight();\n return tmp;\n }\n updateHeight() {\n this.height = 1 + Math.max(this.heightLeft, this.heightRight);\n }\n balanceFactor() {\n return this.heightRight - this.heightLeft;\n }\n get heightLeft() {\n var _c, _d;\n return (_d = (_c = this.left) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;\n }\n get heightRight() {\n var _c, _d;\n return (_d = (_c = this.right) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0;\n }\n}\nexport class TernarySearchTree {\n constructor(segments) {\n this._iter = segments;\n }\n static forUris(ignorePathCasing = () => false) {\n return new TernarySearchTree(new UriIterator(ignorePathCasing));\n }\n static forStrings() {\n return new TernarySearchTree(new StringIterator());\n }\n static forConfigKeys() {\n return new TernarySearchTree(new ConfigKeysIterator());\n }\n clear() {\n this._root = undefined;\n }\n set(key, element) {\n const iter = this._iter.reset(key);\n let node;\n if (!this._root) {\n this._root = new TernarySearchTreeNode();\n this._root.segment = iter.value();\n }\n const stack = [];\n // find insert_node\n node = this._root;\n while (true) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n if (!node.left) {\n node.left = new TernarySearchTreeNode();\n node.left.segment = iter.value();\n }\n stack.push([-1 /* Left */, node]);\n node = node.left;\n }\n else if (val < 0) {\n // right\n if (!node.right) {\n node.right = new TernarySearchTreeNode();\n node.right.segment = iter.value();\n }\n stack.push([1 /* Right */, node]);\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n if (!node.mid) {\n node.mid = new TernarySearchTreeNode();\n node.mid.segment = iter.value();\n }\n stack.push([0 /* Mid */, node]);\n node = node.mid;\n }\n else {\n break;\n }\n }\n // set value\n const oldElement = node.value;\n node.value = element;\n node.key = key;\n // balance\n for (let i = stack.length - 1; i >= 0; i--) {\n const node = stack[i][1];\n node.updateHeight();\n const bf = node.balanceFactor();\n if (bf < -1 || bf > 1) {\n // needs rotate\n const d1 = stack[i][0];\n const d2 = stack[i + 1][0];\n if (d1 === 1 /* Right */ && d2 === 1 /* Right */) {\n //right, right -> rotate left\n stack[i][1] = node.rotateLeft();\n }\n else if (d1 === -1 /* Left */ && d2 === -1 /* Left */) {\n // left, left -> rotate right\n stack[i][1] = node.rotateRight();\n }\n else if (d1 === 1 /* Right */ && d2 === -1 /* Left */) {\n // right, left -> double rotate right, left\n node.right = stack[i + 1][1] = stack[i + 1][1].rotateRight();\n stack[i][1] = node.rotateLeft();\n }\n else if (d1 === -1 /* Left */ && d2 === 1 /* Right */) {\n // left, right -> double rotate left, right\n node.left = stack[i + 1][1] = stack[i + 1][1].rotateLeft();\n stack[i][1] = node.rotateRight();\n }\n else {\n throw new Error();\n }\n // patch path to parent\n if (i > 0) {\n switch (stack[i - 1][0]) {\n case -1 /* Left */:\n stack[i - 1][1].left = stack[i][1];\n break;\n case 1 /* Right */:\n stack[i - 1][1].right = stack[i][1];\n break;\n case 0 /* Mid */:\n stack[i - 1][1].mid = stack[i][1];\n break;\n }\n }\n else {\n this._root = stack[0][1];\n }\n }\n }\n return oldElement;\n }\n get(key) {\n var _c;\n return (_c = this._getNode(key)) === null || _c === void 0 ? void 0 : _c.value;\n }\n _getNode(key) {\n const iter = this._iter.reset(key);\n let node = this._root;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n node = node.mid;\n }\n else {\n break;\n }\n }\n return node;\n }\n has(key) {\n const node = this._getNode(key);\n return !((node === null || node === void 0 ? void 0 : node.value) === undefined && (node === null || node === void 0 ? void 0 : node.mid) === undefined);\n }\n delete(key) {\n return this._delete(key, false);\n }\n deleteSuperstr(key) {\n return this._delete(key, true);\n }\n _delete(key, superStr) {\n var _c;\n const iter = this._iter.reset(key);\n const stack = [];\n let node = this._root;\n // find node\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n stack.push([-1 /* Left */, node]);\n node = node.left;\n }\n else if (val < 0) {\n // right\n stack.push([1 /* Right */, node]);\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n stack.push([0 /* Mid */, node]);\n node = node.mid;\n }\n else {\n break;\n }\n }\n if (!node) {\n // node not found\n return;\n }\n if (superStr) {\n // removing children, reset height\n node.left = undefined;\n node.mid = undefined;\n node.right = undefined;\n node.height = 1;\n }\n else {\n // removing element\n node.key = undefined;\n node.value = undefined;\n }\n // BST node removal\n if (!node.mid && !node.value) {\n if (node.left && node.right) {\n // full node\n const min = this._min(node.right);\n const { key, value, segment } = min;\n this._delete(min.key, false);\n node.key = key;\n node.value = value;\n node.segment = segment;\n }\n else {\n // empty or half empty\n const newChild = (_c = node.left) !== null && _c !== void 0 ? _c : node.right;\n if (stack.length > 0) {\n const [dir, parent] = stack[stack.length - 1];\n switch (dir) {\n case -1 /* Left */:\n parent.left = newChild;\n break;\n case 0 /* Mid */:\n parent.mid = newChild;\n break;\n case 1 /* Right */:\n parent.right = newChild;\n break;\n }\n }\n else {\n this._root = newChild;\n }\n }\n }\n // AVL balance\n for (let i = stack.length - 1; i >= 0; i--) {\n const node = stack[i][1];\n node.updateHeight();\n const bf = node.balanceFactor();\n if (bf > 1) {\n // right heavy\n if (node.right.balanceFactor() >= 0) {\n // right, right -> rotate left\n stack[i][1] = node.rotateLeft();\n }\n else {\n // right, left -> double rotate\n node.right = stack[i + 1][1] = stack[i + 1][1].rotateRight();\n stack[i][1] = node.rotateLeft();\n }\n }\n else if (bf < -1) {\n // left heavy\n if (node.left.balanceFactor() <= 0) {\n // left, left -> rotate right\n stack[i][1] = node.rotateRight();\n }\n else {\n // left, right -> double rotate\n node.left = stack[i + 1][1] = stack[i + 1][1].rotateLeft();\n stack[i][1] = node.rotateRight();\n }\n }\n // patch path to parent\n if (i > 0) {\n switch (stack[i - 1][0]) {\n case -1 /* Left */:\n stack[i - 1][1].left = stack[i][1];\n break;\n case 1 /* Right */:\n stack[i - 1][1].right = stack[i][1];\n break;\n case 0 /* Mid */:\n stack[i - 1][1].mid = stack[i][1];\n break;\n }\n }\n else {\n this._root = stack[0][1];\n }\n }\n }\n _min(node) {\n while (node.left) {\n node = node.left;\n }\n return node;\n }\n findSubstr(key) {\n const iter = this._iter.reset(key);\n let node = this._root;\n let candidate = undefined;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n candidate = node.value || candidate;\n node = node.mid;\n }\n else {\n break;\n }\n }\n return node && node.value || candidate;\n }\n findSuperstr(key) {\n const iter = this._iter.reset(key);\n let node = this._root;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n node = node.mid;\n }\n else {\n // collect\n if (!node.mid) {\n return undefined;\n }\n else {\n return this._entries(node.mid);\n }\n }\n }\n return undefined;\n }\n forEach(callback) {\n for (const [key, value] of this) {\n callback(value, key);\n }\n }\n *[Symbol.iterator]() {\n yield* this._entries(this._root);\n }\n *_entries(node) {\n // DFS\n if (!node) {\n return;\n }\n if (node.left) {\n yield* this._entries(node.left);\n }\n if (node.value) {\n yield [node.key, node.value];\n }\n if (node.mid) {\n yield* this._entries(node.mid);\n }\n if (node.right) {\n yield* this._entries(node.right);\n }\n }\n}\nclass ResourceMapEntry {\n constructor(uri, value) {\n this.uri = uri;\n this.value = value;\n }\n}\nexport class ResourceMap {\n constructor(mapOrKeyFn, toKey) {\n this[_a] = 'ResourceMap';\n if (mapOrKeyFn instanceof ResourceMap) {\n this.map = new Map(mapOrKeyFn.map);\n this.toKey = toKey !== null && toKey !== void 0 ? toKey : ResourceMap.defaultToKey;\n }\n else {\n this.map = new Map();\n this.toKey = mapOrKeyFn !== null && mapOrKeyFn !== void 0 ? mapOrKeyFn : ResourceMap.defaultToKey;\n }\n }\n set(resource, value) {\n this.map.set(this.toKey(resource), new ResourceMapEntry(resource, value));\n return this;\n }\n get(resource) {\n var _c;\n return (_c = this.map.get(this.toKey(resource))) === null || _c === void 0 ? void 0 : _c.value;\n }\n has(resource) {\n return this.map.has(this.toKey(resource));\n }\n get size() {\n return this.map.size;\n }\n clear() {\n this.map.clear();\n }\n delete(resource) {\n return this.map.delete(this.toKey(resource));\n }\n forEach(clb, thisArg) {\n if (typeof thisArg !== 'undefined') {\n clb = clb.bind(thisArg);\n }\n for (let [_, entry] of this.map) {\n clb(entry.value, entry.uri, this);\n }\n }\n *values() {\n for (let entry of this.map.values()) {\n yield entry.value;\n }\n }\n *keys() {\n for (let entry of this.map.values()) {\n yield entry.uri;\n }\n }\n *entries() {\n for (let entry of this.map.values()) {\n yield [entry.uri, entry.value];\n }\n }\n *[(_a = Symbol.toStringTag, Symbol.iterator)]() {\n for (let [, entry] of this.map) {\n yield [entry.uri, entry.value];\n }\n }\n}\nResourceMap.defaultToKey = (resource) => resource.toString();\nexport class LinkedMap {\n constructor() {\n this[_b] = 'LinkedMap';\n this._map = new Map();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state = 0;\n }\n clear() {\n this._map.clear();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state++;\n }\n isEmpty() {\n return !this._head && !this._tail;\n }\n get size() {\n return this._size;\n }\n get first() {\n var _c;\n return (_c = this._head) === null || _c === void 0 ? void 0 : _c.value;\n }\n get last() {\n var _c;\n return (_c = this._tail) === null || _c === void 0 ? void 0 : _c.value;\n }\n has(key) {\n return this._map.has(key);\n }\n get(key, touch = 0 /* None */) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n if (touch !== 0 /* None */) {\n this.touch(item, touch);\n }\n return item.value;\n }\n set(key, value, touch = 0 /* None */) {\n let item = this._map.get(key);\n if (item) {\n item.value = value;\n if (touch !== 0 /* None */) {\n this.touch(item, touch);\n }\n }\n else {\n item = { key, value, next: undefined, previous: undefined };\n switch (touch) {\n case 0 /* None */:\n this.addItemLast(item);\n break;\n case 1 /* AsOld */:\n this.addItemFirst(item);\n break;\n case 2 /* AsNew */:\n this.addItemLast(item);\n break;\n default:\n this.addItemLast(item);\n break;\n }\n this._map.set(key, item);\n this._size++;\n }\n return this;\n }\n delete(key) {\n return !!this.remove(key);\n }\n remove(key) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n this._map.delete(key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n shift() {\n if (!this._head && !this._tail) {\n return undefined;\n }\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n const item = this._head;\n this._map.delete(item.key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n forEach(callbackfn, thisArg) {\n const state = this._state;\n let current = this._head;\n while (current) {\n if (thisArg) {\n callbackfn.bind(thisArg)(current.value, current.key, this);\n }\n else {\n callbackfn(current.value, current.key, this);\n }\n if (this._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n current = current.next;\n }\n }\n keys() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.key, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n values() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.value, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n entries() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: [current.key, current.value], done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n [(_b = Symbol.toStringTag, Symbol.iterator)]() {\n return this.entries();\n }\n trimOld(newSize) {\n if (newSize >= this.size) {\n return;\n }\n if (newSize === 0) {\n this.clear();\n return;\n }\n let current = this._head;\n let currentSize = this.size;\n while (current && currentSize > newSize) {\n this._map.delete(current.key);\n current = current.next;\n currentSize--;\n }\n this._head = current;\n this._size = currentSize;\n if (current) {\n current.previous = undefined;\n }\n this._state++;\n }\n addItemFirst(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._tail = item;\n }\n else if (!this._head) {\n throw new Error('Invalid list');\n }\n else {\n item.next = this._head;\n this._head.previous = item;\n }\n this._head = item;\n this._state++;\n }\n addItemLast(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._head = item;\n }\n else if (!this._tail) {\n throw new Error('Invalid list');\n }\n else {\n item.previous = this._tail;\n this._tail.next = item;\n }\n this._tail = item;\n this._state++;\n }\n removeItem(item) {\n if (item === this._head && item === this._tail) {\n this._head = undefined;\n this._tail = undefined;\n }\n else if (item === this._head) {\n // This can only happen if size === 1 which is handled\n // by the case above.\n if (!item.next) {\n throw new Error('Invalid list');\n }\n item.next.previous = undefined;\n this._head = item.next;\n }\n else if (item === this._tail) {\n // This can only happen if size === 1 which is handled\n // by the case above.\n if (!item.previous) {\n throw new Error('Invalid list');\n }\n item.previous.next = undefined;\n this._tail = item.previous;\n }\n else {\n const next = item.next;\n const previous = item.previous;\n if (!next || !previous) {\n throw new Error('Invalid list');\n }\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = undefined;\n this._state++;\n }\n touch(item, touch) {\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n if ((touch !== 1 /* AsOld */ && touch !== 2 /* AsNew */)) {\n return;\n }\n if (touch === 1 /* AsOld */) {\n if (item === this._head) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item\n if (item === this._tail) {\n // previous must be defined since item was not head but is tail\n // So there are more than on item in the map\n previous.next = undefined;\n this._tail = previous;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n // Insert the node at head\n item.previous = undefined;\n item.next = this._head;\n this._head.previous = item;\n this._head = item;\n this._state++;\n }\n else if (touch === 2 /* AsNew */) {\n if (item === this._tail) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item.\n if (item === this._head) {\n // next must be defined since item was not tail but is head\n // So there are more than on item in the map\n next.previous = undefined;\n this._head = next;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = this._tail;\n this._tail.next = item;\n this._tail = item;\n this._state++;\n }\n }\n toJSON() {\n const data = [];\n this.forEach((value, key) => {\n data.push([key, value]);\n });\n return data;\n }\n fromJSON(data) {\n this.clear();\n for (const [key, value] of data) {\n this.set(key, value);\n }\n }\n}\nexport class LRUCache extends LinkedMap {\n constructor(limit, ratio = 1) {\n super();\n this._limit = limit;\n this._ratio = Math.min(Math.max(0, ratio), 1);\n }\n get limit() {\n return this._limit;\n }\n set limit(limit) {\n this._limit = limit;\n this.checkTrim();\n }\n get(key, touch = 2 /* AsNew */) {\n return super.get(key, touch);\n }\n peek(key) {\n return super.get(key, 0 /* None */);\n }\n set(key, value) {\n super.set(key, value, 2 /* AsNew */);\n this.checkTrim();\n return this;\n }\n checkTrim() {\n if (this.size > this._limit) {\n this.trimOld(Math.round(this._limit * this._ratio));\n }\n }\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import * as React from 'react';\nimport { BaseButton, Button } from '../../Button';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IIconProps } from '../../Icon';\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBar {}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarProps extends React.HTMLAttributes, React.RefAttributes {\n /**\n * Optional callback to access the IMessageBar interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * The type of MessageBar to render.\n * @defaultvalue MessageBarType.info\n */\n messageBarType?: MessageBarType;\n\n /**\n * The actions you want to show on the other side.\n */\n actions?: JSX.Element;\n\n /**\n * A description of the message bar for the benefit of screen readers.\n * @deprecated Use native prop `aria-label` instead.\n */\n ariaLabel?: string;\n\n /**\n * Whether the message bar has a dismiss button and its callback.\n * If null, we don't show a dismiss button.\n * @defaultvalue null\n */\n // eslint-disable-next-line deprecation/deprecation\n onDismiss?: (ev?: React.MouseEvent) => any;\n\n /**\n * Determines if the message bar is multi lined.\n * If false, and the text overflows over buttons or to another line, it is clipped.\n * @defaultvalue true\n */\n isMultiline?: boolean;\n\n /**\n * Aria label on dismiss button if onDismiss is defined.\n */\n dismissButtonAriaLabel?: string;\n\n /**\n * Determines if the message bar text is truncated.\n * If true, a button will render to toggle between a single line view and multiline view.\n * This prop is for single line message bars with no buttons only in a limited space scenario.\n * @defaultvalue false\n */\n truncated?: boolean;\n\n /**\n * Aria label on overflow button if truncated is defined.\n */\n overflowButtonAriaLabel?: string;\n\n /**\n * Additional CSS class(es) to apply to the MessageBar.\n */\n className?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Custom icon prop to replace the dismiss icon.\n * If unset, default will be the Fabric Clear icon.\n */\n dismissIconProps?: IIconProps;\n\n /**\n * Custom icon prop to replace the message bar icon.\n * If unset, default will be the icon set by messageBarType.\n */\n messageBarIconProps?: IIconProps;\n\n /**\n * Custom role to apply to the MessageBar.\n * @defaultvalue `alert` if `messageBarType` is `error`, `blocked`, or `severeWarning`;\n * or `status` otherwise\n */\n role?: 'alert' | 'status' | 'none';\n\n /**\n * By default, MessageBar delay-renders its content within an internal live region to help ensure\n * it's announced by screen readers. You can disable that behavior by setting this prop to `false`.\n *\n * If you set this prop to `false`, to ensure proper announcement you should either:\n * - If appropriate, ensure that the `role` prop is set to `alert` (this will be done by default\n * if `messageBarType` is `error`, `blocked`, or `severeWarning`), OR\n * - Set the `role` prop to `none` (to avoid nested `status` regions), wrap the whole MessageBar\n * in a `
` which is always rendered, and ensure that the MessageBar is\n * rendered either conditionally or with a delay.\n * @default true\n */\n delayedRender?: boolean;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarStyleProps {\n /**\n * Theme (provided through customization).\n */\n theme: ITheme;\n\n /**\n * Additional CSS class(es).\n */\n className?: string;\n\n /**\n * Type of the MessageBar.\n */\n messageBarType?: MessageBarType;\n\n /**\n * Whether the MessageBar contains a dismiss button.\n */\n onDismiss?: boolean;\n\n /**\n * Whether the text is truncated.\n */\n truncated?: boolean;\n\n /**\n * Whether the MessageBar is rendered in multi line (as opposed to single line) mode.\n */\n isMultiline?: boolean;\n\n /**\n * Whether the single line MessageBar is being expanded.\n */\n expandSingleLine?: boolean;\n\n /**\n * Whether the MessageBar contains any action elements.\n */\n actions?: boolean;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport interface IMessageBarStyles {\n /**\n * Style set for the root element.\n */\n root?: IStyle;\n\n /**\n * Style set for the element containing the icon, text, and optional dismiss button.\n */\n content?: IStyle;\n\n /**\n * Style set for the element containing the icon.\n */\n iconContainer?: IStyle;\n\n /**\n * Style set for the icon.\n */\n icon?: IStyle;\n\n /**\n * Style set for the element containing the text.\n */\n text?: IStyle;\n\n /**\n * Style set for the text.\n */\n innerText?: IStyle;\n\n /**\n * Style set for the optional dismiss button.\n */\n dismissal?: IStyle;\n\n /**\n * Style set for the icon used to expand and collapse the MessageBar.\n */\n expand?: IStyle;\n\n /**\n * Style set for the element containing the dismiss button.\n */\n dismissSingleLine?: IStyle;\n\n /**\n * Style set for the element containing the expand icon.\n */\n expandSingleLine?: IStyle;\n\n /**\n * Style set for the optional element containing the action elements.\n */\n actions?: IStyle;\n}\n\n/**\n * {@docCategory MessageBar}\n */\nexport enum MessageBarType {\n /** Info styled MessageBar */\n info = 0,\n /** Error styled MessageBar */\n error = 1,\n /** Blocked styled MessageBar */\n blocked = 2,\n /** SevereWarning styled MessageBar */\n severeWarning = 3,\n /** Success styled MessageBar */\n success = 4,\n /** Warning styled MessageBar */\n warning = 5,\n}\n","export const DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0 as 0,\n\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1 as 1,\n\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2 as 2,\n\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3 as 3,\n\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4 as 4,\n\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5 as 5,\n\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6 as 6,\n\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7 as 7,\n\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8 as 8,\n\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9 as 9,\n\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10 as 10,\n\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11 as 11,\n\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12 as 12,\n\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13 as 13,\n};\n\nexport type DirectionalHint = typeof DirectionalHint[keyof typeof DirectionalHint];\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from './range.js';\nexport class EditOperation {\n static insert(position, text) {\n return {\n range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n text: text,\n forceMoveMarkers: true\n };\n }\n static delete(range) {\n return {\n range: range,\n text: null\n };\n }\n static replace(range, text) {\n return {\n range: range,\n text: text\n };\n }\n static replaceMove(range, text) {\n return {\n range: range,\n text: text,\n forceMoveMarkers: true\n };\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n var getOwnProps = Obj[\"getOwnPropertyNames\"];\r\n if (getOwnProps) {\r\n props = getOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\r\n//# sourceMappingURL=DynamicProto.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport Severity from '../../../base/common/severity.js';\nimport { localize } from '../../../nls.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport var MarkerSeverity;\n(function (MarkerSeverity) {\n MarkerSeverity[MarkerSeverity[\"Hint\"] = 1] = \"Hint\";\n MarkerSeverity[MarkerSeverity[\"Info\"] = 2] = \"Info\";\n MarkerSeverity[MarkerSeverity[\"Warning\"] = 4] = \"Warning\";\n MarkerSeverity[MarkerSeverity[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity || (MarkerSeverity = {}));\n(function (MarkerSeverity) {\n function compare(a, b) {\n return b - a;\n }\n MarkerSeverity.compare = compare;\n const _displayStrings = Object.create(null);\n _displayStrings[MarkerSeverity.Error] = localize('sev.error', \"Error\");\n _displayStrings[MarkerSeverity.Warning] = localize('sev.warning', \"Warning\");\n _displayStrings[MarkerSeverity.Info] = localize('sev.info', \"Info\");\n function toString(a) {\n return _displayStrings[a] || '';\n }\n MarkerSeverity.toString = toString;\n function fromSeverity(severity) {\n switch (severity) {\n case Severity.Error: return MarkerSeverity.Error;\n case Severity.Warning: return MarkerSeverity.Warning;\n case Severity.Info: return MarkerSeverity.Info;\n case Severity.Ignore: return MarkerSeverity.Hint;\n }\n }\n MarkerSeverity.fromSeverity = fromSeverity;\n function toSeverity(severity) {\n switch (severity) {\n case MarkerSeverity.Error: return Severity.Error;\n case MarkerSeverity.Warning: return Severity.Warning;\n case MarkerSeverity.Info: return Severity.Info;\n case MarkerSeverity.Hint: return Severity.Ignore;\n }\n }\n MarkerSeverity.toSeverity = toSeverity;\n})(MarkerSeverity || (MarkerSeverity = {}));\nexport var IMarkerData;\n(function (IMarkerData) {\n const emptyString = '';\n function makeKey(markerData) {\n return makeKeyOptionalMessage(markerData, true);\n }\n IMarkerData.makeKey = makeKey;\n function makeKeyOptionalMessage(markerData, useMessage) {\n let result = [emptyString];\n if (markerData.source) {\n result.push(markerData.source.replace('¦', '\\\\¦'));\n }\n else {\n result.push(emptyString);\n }\n if (markerData.code) {\n if (typeof markerData.code === 'string') {\n result.push(markerData.code.replace('¦', '\\\\¦'));\n }\n else {\n result.push(markerData.code.value.replace('¦', '\\\\¦'));\n }\n }\n else {\n result.push(emptyString);\n }\n if (markerData.severity !== undefined && markerData.severity !== null) {\n result.push(MarkerSeverity.toString(markerData.severity));\n }\n else {\n result.push(emptyString);\n }\n // Modifed to not include the message as part of the marker key to work around\n // https://github.com/microsoft/vscode/issues/77475\n if (markerData.message && useMessage) {\n result.push(markerData.message.replace('¦', '\\\\¦'));\n }\n else {\n result.push(emptyString);\n }\n if (markerData.startLineNumber !== undefined && markerData.startLineNumber !== null) {\n result.push(markerData.startLineNumber.toString());\n }\n else {\n result.push(emptyString);\n }\n if (markerData.startColumn !== undefined && markerData.startColumn !== null) {\n result.push(markerData.startColumn.toString());\n }\n else {\n result.push(emptyString);\n }\n if (markerData.endLineNumber !== undefined && markerData.endLineNumber !== null) {\n result.push(markerData.endLineNumber.toString());\n }\n else {\n result.push(emptyString);\n }\n if (markerData.endColumn !== undefined && markerData.endColumn !== null) {\n result.push(markerData.endColumn.toString());\n }\n else {\n result.push(emptyString);\n }\n result.push(emptyString);\n return result.join('¦');\n }\n IMarkerData.makeKeyOptionalMessage = makeKeyOptionalMessage;\n})(IMarkerData || (IMarkerData = {}));\nexport const IMarkerService = createDecorator('markerService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Selection } from '../core/selection.js';\nexport class ReplaceCommand {\n constructor(range, text, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n let inverseEditOperations = helper.getInverseEditOperations();\n let srcRange = inverseEditOperations[0].range;\n return new Selection(srcRange.endLineNumber, srcRange.endColumn, srcRange.endLineNumber, srcRange.endColumn);\n }\n}\nexport class ReplaceCommandThatSelectsText {\n constructor(range, text) {\n this._range = range;\n this._text = text;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n return new Selection(srcRange.startLineNumber, srcRange.startColumn, srcRange.endLineNumber, srcRange.endColumn);\n }\n}\nexport class ReplaceCommandWithoutChangingPosition {\n constructor(range, text, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n let inverseEditOperations = helper.getInverseEditOperations();\n let srcRange = inverseEditOperations[0].range;\n return new Selection(srcRange.startLineNumber, srcRange.startColumn, srcRange.startLineNumber, srcRange.startColumn);\n }\n}\nexport class ReplaceCommandWithOffsetCursorState {\n constructor(range, text, lineNumberDeltaOffset, columnDeltaOffset, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this._columnDeltaOffset = columnDeltaOffset;\n this._lineNumberDeltaOffset = lineNumberDeltaOffset;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n let inverseEditOperations = helper.getInverseEditOperations();\n let srcRange = inverseEditOperations[0].range;\n return new Selection(srcRange.endLineNumber + this._lineNumberDeltaOffset, srcRange.endColumn + this._columnDeltaOffset, srcRange.endLineNumber + this._lineNumberDeltaOffset, srcRange.endColumn + this._columnDeltaOffset);\n }\n}\nexport class ReplaceCommandThatPreservesSelection {\n constructor(editRange, text, initialSelection, forceMoveMarkers = false) {\n this._range = editRange;\n this._text = text;\n this._initialSelection = initialSelection;\n this._forceMoveMarkers = forceMoveMarkers;\n this._selectionId = null;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers);\n this._selectionId = builder.trackSelection(this._initialSelection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this._selectionId);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { Sash } from '../../../base/browser/ui/sash/sash.js';\nimport { Color, RGBA } from '../../../base/common/color.js';\nimport { IdGenerator } from '../../../base/common/idGenerator.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport * as objects from '../../../base/common/objects.js';\nimport './zoneWidget.css';\nimport { Range } from '../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../common/model/textModel.js';\nconst defaultColor = new Color(new RGBA(0, 122, 204));\nconst defaultOptions = {\n showArrow: true,\n showFrame: true,\n className: '',\n frameColor: defaultColor,\n arrowColor: defaultColor,\n keepEditorSelection: false\n};\nconst WIDGET_ID = 'vs.editor.contrib.zoneWidget';\nexport class ViewZoneDelegate {\n constructor(domNode, afterLineNumber, afterColumn, heightInLines, onDomNodeTop, onComputedHeight) {\n this.id = ''; // A valid zone id should be greater than 0\n this.domNode = domNode;\n this.afterLineNumber = afterLineNumber;\n this.afterColumn = afterColumn;\n this.heightInLines = heightInLines;\n this._onDomNodeTop = onDomNodeTop;\n this._onComputedHeight = onComputedHeight;\n }\n onDomNodeTop(top) {\n this._onDomNodeTop(top);\n }\n onComputedHeight(height) {\n this._onComputedHeight(height);\n }\n}\nexport class OverlayWidgetDelegate {\n constructor(id, domNode) {\n this._id = id;\n this._domNode = domNode;\n }\n getId() {\n return this._id;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return null;\n }\n}\nclass Arrow {\n constructor(_editor) {\n this._editor = _editor;\n this._ruleName = Arrow._IdGenerator.nextId();\n this._decorations = [];\n this._color = null;\n this._height = -1;\n //\n }\n dispose() {\n this.hide();\n dom.removeCSSRulesContainingSelector(this._ruleName);\n }\n set color(value) {\n if (this._color !== value) {\n this._color = value;\n this._updateStyle();\n }\n }\n set height(value) {\n if (this._height !== value) {\n this._height = value;\n this._updateStyle();\n }\n }\n _updateStyle() {\n dom.removeCSSRulesContainingSelector(this._ruleName);\n dom.createCSSRule(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `);\n }\n show(where) {\n this._decorations = this._editor.deltaDecorations(this._decorations, [{ range: Range.fromPositions(where), options: { description: 'zone-widget-arrow', className: this._ruleName, stickiness: 1 /* NeverGrowsWhenTypingAtEdges */ } }]);\n }\n hide() {\n this._editor.deltaDecorations(this._decorations, []);\n }\n}\nArrow._IdGenerator = new IdGenerator('.arrow-decoration-');\nexport class ZoneWidget {\n constructor(editor, options = {}) {\n this._arrow = null;\n this._overlayWidget = null;\n this._resizeSash = null;\n this._positionMarkerId = [];\n this._viewZone = null;\n this._disposables = new DisposableStore();\n this.container = null;\n this._isShowing = false;\n this.editor = editor;\n this.options = objects.deepClone(options);\n objects.mixin(this.options, defaultOptions, false);\n this.domNode = document.createElement('div');\n if (!this.options.isAccessible) {\n this.domNode.setAttribute('aria-hidden', 'true');\n this.domNode.setAttribute('role', 'presentation');\n }\n this._disposables.add(this.editor.onDidLayoutChange((info) => {\n const width = this._getWidth(info);\n this.domNode.style.width = width + 'px';\n this.domNode.style.left = this._getLeft(info) + 'px';\n this._onWidth(width);\n }));\n }\n dispose() {\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n if (this._viewZone) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n this._viewZone = null;\n });\n }\n this.editor.deltaDecorations(this._positionMarkerId, []);\n this._positionMarkerId = [];\n this._disposables.dispose();\n }\n create() {\n this.domNode.classList.add('zone-widget');\n if (this.options.className) {\n this.domNode.classList.add(this.options.className);\n }\n this.container = document.createElement('div');\n this.container.classList.add('zone-widget-container');\n this.domNode.appendChild(this.container);\n if (this.options.showArrow) {\n this._arrow = new Arrow(this.editor);\n this._disposables.add(this._arrow);\n }\n this._fillContainer(this.container);\n this._initSash();\n this._applyStyles();\n }\n style(styles) {\n if (styles.frameColor) {\n this.options.frameColor = styles.frameColor;\n }\n if (styles.arrowColor) {\n this.options.arrowColor = styles.arrowColor;\n }\n this._applyStyles();\n }\n _applyStyles() {\n if (this.container && this.options.frameColor) {\n let frameColor = this.options.frameColor.toString();\n this.container.style.borderTopColor = frameColor;\n this.container.style.borderBottomColor = frameColor;\n }\n if (this._arrow && this.options.arrowColor) {\n let arrowColor = this.options.arrowColor.toString();\n this._arrow.color = arrowColor;\n }\n }\n _getWidth(info) {\n return info.width - info.minimap.minimapWidth - info.verticalScrollbarWidth;\n }\n _getLeft(info) {\n // If minimap is to the left, we move beyond it\n if (info.minimap.minimapWidth > 0 && info.minimap.minimapLeft === 0) {\n return info.minimap.minimapWidth;\n }\n return 0;\n }\n _onViewZoneTop(top) {\n this.domNode.style.top = top + 'px';\n }\n _onViewZoneHeight(height) {\n this.domNode.style.height = `${height}px`;\n if (this.container) {\n let containerHeight = height - this._decoratingElementsHeight();\n this.container.style.height = `${containerHeight}px`;\n const layoutInfo = this.editor.getLayoutInfo();\n this._doLayout(containerHeight, this._getWidth(layoutInfo));\n }\n if (this._resizeSash) {\n this._resizeSash.layout();\n }\n }\n get position() {\n const [id] = this._positionMarkerId;\n if (!id) {\n return undefined;\n }\n const model = this.editor.getModel();\n if (!model) {\n return undefined;\n }\n const range = model.getDecorationRange(id);\n if (!range) {\n return undefined;\n }\n return range.getStartPosition();\n }\n show(rangeOrPos, heightInLines) {\n const range = Range.isIRange(rangeOrPos) ? Range.lift(rangeOrPos) : Range.fromPositions(rangeOrPos);\n this._isShowing = true;\n this._showImpl(range, heightInLines);\n this._isShowing = false;\n this._positionMarkerId = this.editor.deltaDecorations(this._positionMarkerId, [{ range, options: ModelDecorationOptions.EMPTY }]);\n }\n hide() {\n if (this._viewZone) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n });\n this._viewZone = null;\n }\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n if (this._arrow) {\n this._arrow.hide();\n }\n }\n _decoratingElementsHeight() {\n let lineHeight = this.editor.getOption(58 /* lineHeight */);\n let result = 0;\n if (this.options.showArrow) {\n let arrowHeight = Math.round(lineHeight / 3);\n result += 2 * arrowHeight;\n }\n if (this.options.showFrame) {\n let frameThickness = Math.round(lineHeight / 9);\n result += 2 * frameThickness;\n }\n return result;\n }\n _showImpl(where, heightInLines) {\n const position = where.getStartPosition();\n const layoutInfo = this.editor.getLayoutInfo();\n const width = this._getWidth(layoutInfo);\n this.domNode.style.width = `${width}px`;\n this.domNode.style.left = this._getLeft(layoutInfo) + 'px';\n // Render the widget as zone (rendering) and widget (lifecycle)\n const viewZoneDomNode = document.createElement('div');\n viewZoneDomNode.style.overflow = 'hidden';\n const lineHeight = this.editor.getOption(58 /* lineHeight */);\n // adjust heightInLines to viewport\n const maxHeightInLines = Math.max(12, (this.editor.getLayoutInfo().height / lineHeight) * 0.8);\n heightInLines = Math.min(heightInLines, maxHeightInLines);\n let arrowHeight = 0;\n let frameThickness = 0;\n // Render the arrow one 1/3 of an editor line height\n if (this._arrow && this.options.showArrow) {\n arrowHeight = Math.round(lineHeight / 3);\n this._arrow.height = arrowHeight;\n this._arrow.show(position);\n }\n // Render the frame as 1/9 of an editor line height\n if (this.options.showFrame) {\n frameThickness = Math.round(lineHeight / 9);\n }\n // insert zone widget\n this.editor.changeViewZones((accessor) => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n this.domNode.style.top = '-1000px';\n this._viewZone = new ViewZoneDelegate(viewZoneDomNode, position.lineNumber, position.column, heightInLines, (top) => this._onViewZoneTop(top), (height) => this._onViewZoneHeight(height));\n this._viewZone.id = accessor.addZone(this._viewZone);\n this._overlayWidget = new OverlayWidgetDelegate(WIDGET_ID + this._viewZone.id, this.domNode);\n this.editor.addOverlayWidget(this._overlayWidget);\n });\n if (this.container && this.options.showFrame) {\n const width = this.options.frameWidth ? this.options.frameWidth : frameThickness;\n this.container.style.borderTopWidth = width + 'px';\n this.container.style.borderBottomWidth = width + 'px';\n }\n let containerHeight = heightInLines * lineHeight - this._decoratingElementsHeight();\n if (this.container) {\n this.container.style.top = arrowHeight + 'px';\n this.container.style.height = containerHeight + 'px';\n this.container.style.overflow = 'hidden';\n }\n this._doLayout(containerHeight, width);\n if (!this.options.keepEditorSelection) {\n this.editor.setSelection(where);\n }\n const model = this.editor.getModel();\n if (model) {\n const revealLine = where.endLineNumber + 1;\n if (revealLine <= model.getLineCount()) {\n // reveal line below the zone widget\n this.revealLine(revealLine, false);\n }\n else {\n // reveal last line atop\n this.revealLine(model.getLineCount(), true);\n }\n }\n }\n revealLine(lineNumber, isLastLine) {\n if (isLastLine) {\n this.editor.revealLineInCenter(lineNumber, 0 /* Smooth */);\n }\n else {\n this.editor.revealLine(lineNumber, 0 /* Smooth */);\n }\n }\n setCssClass(className, classToReplace) {\n if (!this.container) {\n return;\n }\n if (classToReplace) {\n this.container.classList.remove(classToReplace);\n }\n this.container.classList.add(className);\n }\n _onWidth(widthInPixel) {\n // implement in subclass\n }\n _doLayout(heightInPixel, widthInPixel) {\n // implement in subclass\n }\n _relayout(newHeightInLines) {\n if (this._viewZone && this._viewZone.heightInLines !== newHeightInLines) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n this._viewZone.heightInLines = newHeightInLines;\n accessor.layoutZone(this._viewZone.id);\n }\n });\n }\n }\n // --- sash\n _initSash() {\n if (this._resizeSash) {\n return;\n }\n this._resizeSash = this._disposables.add(new Sash(this.domNode, this, { orientation: 1 /* HORIZONTAL */ }));\n if (!this.options.isResizeable) {\n this._resizeSash.hide();\n this._resizeSash.state = 0 /* Disabled */;\n }\n let data;\n this._disposables.add(this._resizeSash.onDidStart((e) => {\n if (this._viewZone) {\n data = {\n startY: e.startY,\n heightInLines: this._viewZone.heightInLines,\n };\n }\n }));\n this._disposables.add(this._resizeSash.onDidEnd(() => {\n data = undefined;\n }));\n this._disposables.add(this._resizeSash.onDidChange((evt) => {\n if (data) {\n let lineDelta = (evt.currentY - data.startY) / this.editor.getOption(58 /* lineHeight */);\n let roundedLineDelta = lineDelta < 0 ? Math.ceil(lineDelta) : Math.floor(lineDelta);\n let newHeightInLines = data.heightInLines + roundedLineDelta;\n if (newHeightInLines > 5 && newHeightInLines < 35) {\n this._relayout(newHeightInLines);\n }\n }\n }));\n }\n getHorizontalSashLeft() {\n return 0;\n }\n getHorizontalSashTop() {\n return (this.domNode.style.height === null ? 0 : parseInt(this.domNode.style.height)) - (this._decoratingElementsHeight() / 2);\n }\n getHorizontalSashWidth() {\n const layoutInfo = this.editor.getLayoutInfo();\n return layoutInfo.width - layoutInfo.minimap.minimapWidth;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../base/common/actions.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport * as objects from '../../../base/common/objects.js';\nimport './media/peekViewWidget.css';\nimport { registerEditorContribution } from '../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { EmbeddedCodeEditorWidget } from '../../browser/widget/embeddedCodeEditorWidget.js';\nimport { ZoneWidget } from '../zoneWidget/zoneWidget.js';\nimport * as nls from '../../../nls.js';\nimport { createActionViewItem } from '../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { IContextKeyService, RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { activeContrastBorder, contrastBorder, editorInfoForeground, registerColor, transparent } from '../../../platform/theme/common/colorRegistry.js';\nexport const IPeekViewService = createDecorator('IPeekViewService');\nregisterSingleton(IPeekViewService, class {\n constructor() {\n this._widgets = new Map();\n }\n addExclusiveWidget(editor, widget) {\n const existing = this._widgets.get(editor);\n if (existing) {\n existing.listener.dispose();\n existing.widget.dispose();\n }\n const remove = () => {\n const data = this._widgets.get(editor);\n if (data && data.widget === widget) {\n data.listener.dispose();\n this._widgets.delete(editor);\n }\n };\n this._widgets.set(editor, { widget, listener: widget.onDidClose(remove) });\n }\n});\nexport var PeekContext;\n(function (PeekContext) {\n PeekContext.inPeekEditor = new RawContextKey('inReferenceSearchEditor', true, nls.localize('inReferenceSearchEditor', \"Whether the current code editor is embedded inside peek\"));\n PeekContext.notInPeekEditor = PeekContext.inPeekEditor.toNegated();\n})(PeekContext || (PeekContext = {}));\nlet PeekContextController = class PeekContextController {\n constructor(editor, contextKeyService) {\n if (editor instanceof EmbeddedCodeEditorWidget) {\n PeekContext.inPeekEditor.bindTo(contextKeyService);\n }\n }\n dispose() { }\n};\nPeekContextController.ID = 'editor.contrib.referenceController';\nPeekContextController = __decorate([\n __param(1, IContextKeyService)\n], PeekContextController);\nregisterEditorContribution(PeekContextController.ID, PeekContextController);\nexport function getOuterEditor(accessor) {\n let editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (editor instanceof EmbeddedCodeEditorWidget) {\n return editor.getParentEditor();\n }\n return editor;\n}\nconst defaultOptions = {\n headerBackgroundColor: Color.white,\n primaryHeadingColor: Color.fromHex('#333333'),\n secondaryHeadingColor: Color.fromHex('#6c6c6cb3')\n};\nlet PeekViewWidget = class PeekViewWidget extends ZoneWidget {\n constructor(editor, options, instantiationService) {\n super(editor, options);\n this.instantiationService = instantiationService;\n this._onDidClose = new Emitter();\n this.onDidClose = this._onDidClose.event;\n objects.mixin(this.options, defaultOptions, false);\n }\n dispose() {\n if (!this.disposed) {\n this.disposed = true; // prevent consumers who dispose on onDidClose from looping\n super.dispose();\n this._onDidClose.fire(this);\n }\n }\n style(styles) {\n let options = this.options;\n if (styles.headerBackgroundColor) {\n options.headerBackgroundColor = styles.headerBackgroundColor;\n }\n if (styles.primaryHeadingColor) {\n options.primaryHeadingColor = styles.primaryHeadingColor;\n }\n if (styles.secondaryHeadingColor) {\n options.secondaryHeadingColor = styles.secondaryHeadingColor;\n }\n super.style(styles);\n }\n _applyStyles() {\n super._applyStyles();\n let options = this.options;\n if (this._headElement && options.headerBackgroundColor) {\n this._headElement.style.backgroundColor = options.headerBackgroundColor.toString();\n }\n if (this._primaryHeading && options.primaryHeadingColor) {\n this._primaryHeading.style.color = options.primaryHeadingColor.toString();\n }\n if (this._secondaryHeading && options.secondaryHeadingColor) {\n this._secondaryHeading.style.color = options.secondaryHeadingColor.toString();\n }\n if (this._bodyElement && options.frameColor) {\n this._bodyElement.style.borderColor = options.frameColor.toString();\n }\n }\n _fillContainer(container) {\n this.setCssClass('peekview-widget');\n this._headElement = dom.$('.head');\n this._bodyElement = dom.$('.body');\n this._fillHead(this._headElement);\n this._fillBody(this._bodyElement);\n container.appendChild(this._headElement);\n container.appendChild(this._bodyElement);\n }\n _fillHead(container, noCloseAction) {\n const titleElement = dom.$('.peekview-title');\n if (this.options.supportOnTitleClick) {\n titleElement.classList.add('clickable');\n dom.addStandardDisposableListener(titleElement, 'click', event => this._onTitleClick(event));\n }\n dom.append(this._headElement, titleElement);\n this._fillTitleIcon(titleElement);\n this._primaryHeading = dom.$('span.filename');\n this._secondaryHeading = dom.$('span.dirname');\n this._metaHeading = dom.$('span.meta');\n dom.append(titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);\n const actionsContainer = dom.$('.peekview-actions');\n dom.append(this._headElement, actionsContainer);\n const actionBarOptions = this._getActionBarOptions();\n this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);\n this._disposables.add(this._actionbarWidget);\n if (!noCloseAction) {\n this._actionbarWidget.push(new Action('peekview.close', nls.localize('label.close', \"Close\"), Codicon.close.classNames, true, () => {\n this.dispose();\n return Promise.resolve();\n }), { label: false, icon: true });\n }\n }\n _fillTitleIcon(container) {\n }\n _getActionBarOptions() {\n return {\n actionViewItemProvider: createActionViewItem.bind(undefined, this.instantiationService),\n orientation: 0 /* HORIZONTAL */\n };\n }\n _onTitleClick(event) {\n // implement me if supportOnTitleClick option is set\n }\n setTitle(primaryHeading, secondaryHeading) {\n if (this._primaryHeading && this._secondaryHeading) {\n this._primaryHeading.innerText = primaryHeading;\n this._primaryHeading.setAttribute('title', primaryHeading);\n if (secondaryHeading) {\n this._secondaryHeading.innerText = secondaryHeading;\n }\n else {\n dom.clearNode(this._secondaryHeading);\n }\n }\n }\n setMetaTitle(value) {\n if (this._metaHeading) {\n if (value) {\n this._metaHeading.innerText = value;\n dom.show(this._metaHeading);\n }\n else {\n dom.hide(this._metaHeading);\n }\n }\n }\n _doLayout(heightInPixel, widthInPixel) {\n if (!this._isShowing && heightInPixel < 0) {\n // Looks like the view zone got folded away!\n this.dispose();\n return;\n }\n const headHeight = Math.ceil(this.editor.getOption(58 /* lineHeight */) * 1.2);\n const bodyHeight = Math.round(heightInPixel - (headHeight + 2 /* the border-top/bottom width*/));\n this._doLayoutHead(headHeight, widthInPixel);\n this._doLayoutBody(bodyHeight, widthInPixel);\n }\n _doLayoutHead(heightInPixel, widthInPixel) {\n if (this._headElement) {\n this._headElement.style.height = `${heightInPixel}px`;\n this._headElement.style.lineHeight = this._headElement.style.height;\n }\n }\n _doLayoutBody(heightInPixel, widthInPixel) {\n if (this._bodyElement) {\n this._bodyElement.style.height = `${heightInPixel}px`;\n }\n }\n};\nPeekViewWidget = __decorate([\n __param(2, IInstantiationService)\n], PeekViewWidget);\nexport { PeekViewWidget };\nexport const peekViewTitleBackground = registerColor('peekViewTitle.background', { dark: transparent(editorInfoForeground, .1), light: transparent(editorInfoForeground, .1), hc: null }, nls.localize('peekViewTitleBackground', 'Background color of the peek view title area.'));\nexport const peekViewTitleForeground = registerColor('peekViewTitleLabel.foreground', { dark: Color.white, light: Color.black, hc: Color.white }, nls.localize('peekViewTitleForeground', 'Color of the peek view title.'));\nexport const peekViewTitleInfoForeground = registerColor('peekViewTitleDescription.foreground', { dark: '#ccccccb3', light: '#616161', hc: '#FFFFFF99' }, nls.localize('peekViewTitleInfoForeground', 'Color of the peek view title info.'));\nexport const peekViewBorder = registerColor('peekView.border', { dark: editorInfoForeground, light: editorInfoForeground, hc: contrastBorder }, nls.localize('peekViewBorder', 'Color of the peek view borders and arrow.'));\nexport const peekViewResultsBackground = registerColor('peekViewResult.background', { dark: '#252526', light: '#F3F3F3', hc: Color.black }, nls.localize('peekViewResultsBackground', 'Background color of the peek view result list.'));\nexport const peekViewResultsMatchForeground = registerColor('peekViewResult.lineForeground', { dark: '#bbbbbb', light: '#646465', hc: Color.white }, nls.localize('peekViewResultsMatchForeground', 'Foreground color for line nodes in the peek view result list.'));\nexport const peekViewResultsFileForeground = registerColor('peekViewResult.fileForeground', { dark: Color.white, light: '#1E1E1E', hc: Color.white }, nls.localize('peekViewResultsFileForeground', 'Foreground color for file nodes in the peek view result list.'));\nexport const peekViewResultsSelectionBackground = registerColor('peekViewResult.selectionBackground', { dark: '#3399ff33', light: '#3399ff33', hc: null }, nls.localize('peekViewResultsSelectionBackground', 'Background color of the selected entry in the peek view result list.'));\nexport const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hc: Color.white }, nls.localize('peekViewResultsSelectionForeground', 'Foreground color of the selected entry in the peek view result list.'));\nexport const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hc: Color.black }, nls.localize('peekViewEditorBackground', 'Background color of the peek view editor.'));\nexport const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hc: peekViewEditorBackground }, nls.localize('peekViewEditorGutterBackground', 'Background color of the gutter in the peek view editor.'));\nexport const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hc: null }, nls.localize('peekViewResultsMatchHighlight', 'Match highlight color in the peek view result list.'));\nexport const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hc: null }, nls.localize('peekViewEditorMatchHighlight', 'Match highlight color in the peek view editor.'));\nexport const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hc: activeContrastBorder }, nls.localize('peekViewEditorMatchHighlightBorder', 'Match highlight border in the peek view editor.'));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nvar Severity;\n(function (Severity) {\n Severity[Severity[\"Ignore\"] = 0] = \"Ignore\";\n Severity[Severity[\"Info\"] = 1] = \"Info\";\n Severity[Severity[\"Warning\"] = 2] = \"Warning\";\n Severity[Severity[\"Error\"] = 3] = \"Error\";\n})(Severity || (Severity = {}));\n(function (Severity) {\n const _error = 'error';\n const _warning = 'warning';\n const _warn = 'warn';\n const _info = 'info';\n const _ignore = 'ignore';\n /**\n * Parses 'error', 'warning', 'warn', 'info' in call casings\n * and falls back to ignore.\n */\n function fromValue(value) {\n if (!value) {\n return Severity.Ignore;\n }\n if (strings.equalsIgnoreCase(_error, value)) {\n return Severity.Error;\n }\n if (strings.equalsIgnoreCase(_warning, value) || strings.equalsIgnoreCase(_warn, value)) {\n return Severity.Warning;\n }\n if (strings.equalsIgnoreCase(_info, value)) {\n return Severity.Info;\n }\n return Severity.Ignore;\n }\n Severity.fromValue = fromValue;\n function toString(severity) {\n switch (severity) {\n case Severity.Error: return _error;\n case Severity.Warning: return _warning;\n case Severity.Info: return _info;\n default: return _ignore;\n }\n }\n Severity.toString = toString;\n})(Severity || (Severity = {}));\nexport default Severity;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IModeService = createDecorator('modeService');\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Constants } from \"./constants\";\n/**\n * A constant that indicates whether the environment is node.js or browser based.\n */\nexport var isNode = typeof process !== \"undefined\" &&\n !!process.version &&\n !!process.versions &&\n !!process.versions.node;\n/**\n * Checks if a parsed URL is HTTPS\n *\n * @param {object} urlToCheck The url to check\n * @return {boolean} True if the URL is HTTPS; false otherwise.\n */\nexport function urlIsHTTPS(urlToCheck) {\n return urlToCheck.protocol.toLowerCase() === Constants.HTTPS;\n}\n/**\n * Encodes an URI.\n *\n * @param {string} uri The URI to be encoded.\n * @return {string} The encoded URI.\n */\nexport function encodeUri(uri) {\n return encodeURIComponent(uri)\n .replace(/!/g, \"%21\")\n .replace(/\"/g, \"%27\")\n .replace(/\\(/g, \"%28\")\n .replace(/\\)/g, \"%29\")\n .replace(/\\*/g, \"%2A\");\n}\n/**\n * Returns a stripped version of the Http Response which only contains body,\n * headers and the status.\n *\n * @param {HttpOperationResponse} response The Http Response\n *\n * @return {object} The stripped version of Http Response.\n */\nexport function stripResponse(response) {\n var strippedResponse = {};\n strippedResponse.body = response.bodyAsText;\n strippedResponse.headers = response.headers;\n strippedResponse.status = response.status;\n return strippedResponse;\n}\n/**\n * Returns a stripped version of the Http Request that does not contain the\n * Authorization header.\n *\n * @param {WebResource} request The Http Request object\n *\n * @return {WebResource} The stripped version of Http Request.\n */\nexport function stripRequest(request) {\n var strippedRequest = request.clone();\n if (strippedRequest.headers) {\n strippedRequest.headers.remove(\"authorization\");\n }\n return strippedRequest;\n}\n/**\n * Validates the given uuid as a string\n *\n * @param {string} uuid The uuid as a string that needs to be validated\n *\n * @return {boolean} True if the uuid is valid; false otherwise.\n */\nexport function isValidUuid(uuid) {\n var validUuidRegex = new RegExp(\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\", \"ig\");\n return validUuidRegex.test(uuid);\n}\n/**\n * Provides an array of values of an object. For example\n * for a given object { \"a\": \"foo\", \"b\": \"bar\" }, the method returns [\"foo\", \"bar\"].\n *\n * @param {object} obj An object whose properties need to be enumerated so that it\"s values can be provided as an array\n *\n * @return {any[]} An array of values of the given object.\n */\nexport function objectValues(obj) {\n var result = [];\n if (obj && obj instanceof Object) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n result.push(obj[key]);\n }\n }\n }\n else {\n throw new Error(\"The provided object \" + JSON.stringify(obj, undefined, 2) + \" is not a valid object that can be \" + \"enumerated to provide its values as an array.\");\n }\n return result;\n}\n/**\n * Generated UUID\n *\n * @return {string} RFC4122 v4 UUID.\n */\nexport function generateUuid() {\n return uuidv4();\n}\n/**\n * Executes an array of promises sequentially. Inspiration of this method is here:\n * https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html. An awesome blog on promises!\n *\n * @param {Array} promiseFactories An array of promise factories(A function that return a promise)\n *\n * @param {any} [kickstart] Input to the first promise that is used to kickstart the promise chain.\n * If not provided then the promise chain starts with undefined.\n *\n * @return A chain of resolved or rejected promises\n */\nexport function executePromisesSequentially(promiseFactories, kickstart) {\n var result = Promise.resolve(kickstart);\n promiseFactories.forEach(function (promiseFactory) {\n result = result.then(promiseFactory);\n });\n return result;\n}\n/**\n * Merges source object into the target object\n * @param {object} source The object that needs to be merged\n *\n * @param {object} target The object to be merged into\n *\n * @returns {object} Returns the merged target object.\n */\nexport function mergeObjects(source, target) {\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n return target;\n}\n/**\n * A wrapper for setTimeout that resolves a promise after t milliseconds.\n * @param {number} t The number of milliseconds to be delayed.\n * @param {T} value The value to be resolved with after a timeout of t milliseconds.\n * @returns {Promise} Resolved promise\n */\nexport function delay(t, value) {\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\n}\n/**\n * Converts a Promise to a callback.\n * @param {Promise} promise The Promise to be converted to a callback\n * @returns {Function} A function that takes the callback (cb: Function): void\n * @deprecated generated code should instead depend on responseToBody\n */\nexport function promiseToCallback(promise) {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return function (cb) {\n promise.then(function (data) {\n cb(undefined, data);\n }, function (err) {\n cb(err);\n });\n };\n}\n/**\n * Converts a Promise to a service callback.\n * @param {Promise} promise - The Promise of HttpOperationResponse to be converted to a service callback\n * @returns {Function} A function that takes the service callback (cb: ServiceCallback): void\n */\nexport function promiseToServiceCallback(promise) {\n if (typeof promise.then !== \"function\") {\n throw new Error(\"The provided input is not a Promise.\");\n }\n return function (cb) {\n promise.then(function (data) {\n process.nextTick(cb, undefined, data.parsedBody, data.request, data);\n }, function (err) {\n process.nextTick(cb, err);\n });\n };\n}\nexport function prepareXMLRootList(obj, elementName) {\n var _a;\n if (!Array.isArray(obj)) {\n obj = [obj];\n }\n return _a = {}, _a[elementName] = obj, _a;\n}\n/**\n * Applies the properties on the prototype of sourceCtors to the prototype of targetCtor\n * @param {object} targetCtor The target object on which the properties need to be applied.\n * @param {Array} sourceCtors An array of source objects from which the properties need to be taken.\n */\nexport function applyMixins(targetCtor, sourceCtors) {\n sourceCtors.forEach(function (sourceCtors) {\n Object.getOwnPropertyNames(sourceCtors.prototype).forEach(function (name) {\n targetCtor.prototype[name] = sourceCtors.prototype[name];\n });\n });\n}\nvar validateISODuration = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n/**\n * Indicates whether the given string is in ISO 8601 format.\n * @param {string} value The value to be validated for ISO 8601 duration format.\n * @return {boolean} `true` if valid, `false` otherwise.\n */\nexport function isDuration(value) {\n return validateISODuration.test(value);\n}\n/**\n * Replace all of the instances of searchValue in value with the provided replaceValue.\n * @param {string | undefined} value The value to search and replace in.\n * @param {string} searchValue The value to search for in the value argument.\n * @param {string} replaceValue The value to replace searchValue with in the value argument.\n * @returns {string | undefined} The value where each instance of searchValue was replaced with replacedValue.\n */\nexport function replaceAll(value, searchValue, replaceValue) {\n return !value || !searchValue ? value : value.split(searchValue).join(replaceValue || \"\");\n}\n/**\n * Determines whether the given enity is a basic/primitive type\n * (string, number, boolean, null, undefined).\n * @param value Any entity\n * @return boolean - true is it is primitive type, false otherwise.\n */\nexport function isPrimitiveType(value) {\n return (typeof value !== \"object\" && typeof value !== \"function\") || value === null;\n}\n//# sourceMappingURL=utils.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class CodeActionKind {\n constructor(value) {\n this.value = value;\n }\n equals(other) {\n return this.value === other.value;\n }\n contains(other) {\n return this.equals(other) || this.value === '' || other.value.startsWith(this.value + CodeActionKind.sep);\n }\n intersects(other) {\n return this.contains(other) || other.contains(this);\n }\n append(part) {\n return new CodeActionKind(this.value + CodeActionKind.sep + part);\n }\n}\nCodeActionKind.sep = '.';\nCodeActionKind.None = new CodeActionKind('@@none@@'); // Special code action that contains nothing\nCodeActionKind.Empty = new CodeActionKind('');\nCodeActionKind.QuickFix = new CodeActionKind('quickfix');\nCodeActionKind.Refactor = new CodeActionKind('refactor');\nCodeActionKind.Source = new CodeActionKind('source');\nCodeActionKind.SourceOrganizeImports = CodeActionKind.Source.append('organizeImports');\nCodeActionKind.SourceFixAll = CodeActionKind.Source.append('fixAll');\nexport function mayIncludeActionsOfKind(filter, providedKind) {\n // A provided kind may be a subset or superset of our filtered kind.\n if (filter.include && !filter.include.intersects(providedKind)) {\n return false;\n }\n if (filter.excludes) {\n if (filter.excludes.some(exclude => excludesAction(providedKind, exclude, filter.include))) {\n return false;\n }\n }\n // Don't return source actions unless they are explicitly requested\n if (!filter.includeSourceActions && CodeActionKind.Source.contains(providedKind)) {\n return false;\n }\n return true;\n}\nexport function filtersAction(filter, action) {\n const actionKind = action.kind ? new CodeActionKind(action.kind) : undefined;\n // Filter out actions by kind\n if (filter.include) {\n if (!actionKind || !filter.include.contains(actionKind)) {\n return false;\n }\n }\n if (filter.excludes) {\n if (actionKind && filter.excludes.some(exclude => excludesAction(actionKind, exclude, filter.include))) {\n return false;\n }\n }\n // Don't return source actions unless they are explicitly requested\n if (!filter.includeSourceActions) {\n if (actionKind && CodeActionKind.Source.contains(actionKind)) {\n return false;\n }\n }\n if (filter.onlyIncludePreferredActions) {\n if (!action.isPreferred) {\n return false;\n }\n }\n return true;\n}\nfunction excludesAction(providedKind, exclude, include) {\n if (!exclude.contains(providedKind)) {\n return false;\n }\n if (include && exclude.contains(include)) {\n // The include is more specific, don't filter out\n return false;\n }\n return true;\n}\nexport class CodeActionCommandArgs {\n constructor(kind, apply, preferred) {\n this.kind = kind;\n this.apply = apply;\n this.preferred = preferred;\n }\n static fromUser(arg, defaults) {\n if (!arg || typeof arg !== 'object') {\n return new CodeActionCommandArgs(defaults.kind, defaults.apply, false);\n }\n return new CodeActionCommandArgs(CodeActionCommandArgs.getKindFromUser(arg, defaults.kind), CodeActionCommandArgs.getApplyFromUser(arg, defaults.apply), CodeActionCommandArgs.getPreferredUser(arg));\n }\n static getApplyFromUser(arg, defaultAutoApply) {\n switch (typeof arg.apply === 'string' ? arg.apply.toLowerCase() : '') {\n case 'first': return \"first\" /* First */;\n case 'never': return \"never\" /* Never */;\n case 'ifsingle': return \"ifSingle\" /* IfSingle */;\n default: return defaultAutoApply;\n }\n }\n static getKindFromUser(arg, defaultKind) {\n return typeof arg.kind === 'string'\n ? new CodeActionKind(arg.kind)\n : defaultKind;\n }\n static getPreferredUser(arg) {\n return typeof arg.preferred === 'boolean'\n ? arg.preferred\n : false;\n }\n}\n","const hasBuffer = (typeof Buffer !== 'undefined');\nlet textDecoder;\nexport class VSBuffer {\n constructor(buffer) {\n this.buffer = buffer;\n this.byteLength = this.buffer.byteLength;\n }\n static wrap(actual) {\n if (hasBuffer && !(Buffer.isBuffer(actual))) {\n // https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length\n // Create a zero-copy Buffer wrapper around the ArrayBuffer pointed to by the Uint8Array\n actual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n }\n return new VSBuffer(actual);\n }\n toString() {\n if (hasBuffer) {\n return this.buffer.toString();\n }\n else {\n if (!textDecoder) {\n textDecoder = new TextDecoder();\n }\n return textDecoder.decode(this.buffer);\n }\n }\n}\nexport function readUInt16LE(source, offset) {\n return (((source[offset + 0] << 0) >>> 0) |\n ((source[offset + 1] << 8) >>> 0));\n}\nexport function writeUInt16LE(destination, value, offset) {\n destination[offset + 0] = (value & 0b11111111);\n value = value >>> 8;\n destination[offset + 1] = (value & 0b11111111);\n}\nexport function readUInt32BE(source, offset) {\n return (source[offset] * Math.pow(2, 24)\n + source[offset + 1] * Math.pow(2, 16)\n + source[offset + 2] * Math.pow(2, 8)\n + source[offset + 3]);\n}\nexport function writeUInt32BE(destination, value, offset) {\n destination[offset + 3] = value;\n value = value >>> 8;\n destination[offset + 2] = value;\n value = value >>> 8;\n destination[offset + 1] = value;\n value = value >>> 8;\n destination[offset] = value;\n}\nexport function readUInt8(source, offset) {\n return source[offset];\n}\nexport function writeUInt8(destination, value, offset) {\n destination[offset] = value;\n}\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus?: NetworkStatus,\n): boolean {\n return networkStatus ? networkStatus < 7 : false;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LRUCache } from './map.js';\nimport * as strings from './strings.js';\n// Combined filters\n/**\n * @returns A filter which combines the provided set\n * of filters with an or. The *first* filters that\n * matches defined the return value of the returned\n * filter.\n */\nexport function or(...filter) {\n return function (word, wordToMatchAgainst) {\n for (let i = 0, len = filter.length; i < len; i++) {\n const match = filter[i](word, wordToMatchAgainst);\n if (match) {\n return match;\n }\n }\n return null;\n };\n}\nexport const matchesPrefix = _matchesPrefix.bind(undefined, true);\nfunction _matchesPrefix(ignoreCase, word, wordToMatchAgainst) {\n if (!wordToMatchAgainst || wordToMatchAgainst.length < word.length) {\n return null;\n }\n let matches;\n if (ignoreCase) {\n matches = strings.startsWithIgnoreCase(wordToMatchAgainst, word);\n }\n else {\n matches = wordToMatchAgainst.indexOf(word) === 0;\n }\n if (!matches) {\n return null;\n }\n return word.length > 0 ? [{ start: 0, end: word.length }] : [];\n}\n// Contiguous Substring\nexport function matchesContiguousSubString(word, wordToMatchAgainst) {\n const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n if (index === -1) {\n return null;\n }\n return [{ start: index, end: index + word.length }];\n}\n// Substring\nexport function matchesSubString(word, wordToMatchAgainst) {\n return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\n}\nfunction _matchesSubString(word, wordToMatchAgainst, i, j) {\n if (i === word.length) {\n return [];\n }\n else if (j === wordToMatchAgainst.length) {\n return null;\n }\n else {\n if (word[i] === wordToMatchAgainst[j]) {\n let result = null;\n if (result = _matchesSubString(word, wordToMatchAgainst, i + 1, j + 1)) {\n return join({ start: j, end: j + 1 }, result);\n }\n return null;\n }\n return _matchesSubString(word, wordToMatchAgainst, i, j + 1);\n }\n}\n// CamelCase\nfunction isLower(code) {\n return 97 /* a */ <= code && code <= 122 /* z */;\n}\nexport function isUpper(code) {\n return 65 /* A */ <= code && code <= 90 /* Z */;\n}\nfunction isNumber(code) {\n return 48 /* Digit0 */ <= code && code <= 57 /* Digit9 */;\n}\nfunction isWhitespace(code) {\n return (code === 32 /* Space */\n || code === 9 /* Tab */\n || code === 10 /* LineFeed */\n || code === 13 /* CarriageReturn */);\n}\nconst wordSeparators = new Set();\n'`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?'\n .split('')\n .forEach(s => wordSeparators.add(s.charCodeAt(0)));\nfunction isWordSeparator(code) {\n return isWhitespace(code) || wordSeparators.has(code);\n}\nfunction charactersMatch(codeA, codeB) {\n return (codeA === codeB) || (isWordSeparator(codeA) && isWordSeparator(codeB));\n}\nfunction isAlphanumeric(code) {\n return isLower(code) || isUpper(code) || isNumber(code);\n}\nfunction join(head, tail) {\n if (tail.length === 0) {\n tail = [head];\n }\n else if (head.end === tail[0].start) {\n tail[0].start = head.start;\n }\n else {\n tail.unshift(head);\n }\n return tail;\n}\nfunction nextAnchor(camelCaseWord, start) {\n for (let i = start; i < camelCaseWord.length; i++) {\n const c = camelCaseWord.charCodeAt(i);\n if (isUpper(c) || isNumber(c) || (i > 0 && !isAlphanumeric(camelCaseWord.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return camelCaseWord.length;\n}\nfunction _matchesCamelCase(word, camelCaseWord, i, j) {\n if (i === word.length) {\n return [];\n }\n else if (j === camelCaseWord.length) {\n return null;\n }\n else if (word[i] !== camelCaseWord[j].toLowerCase()) {\n return null;\n }\n else {\n let result = null;\n let nextUpperIndex = j + 1;\n result = _matchesCamelCase(word, camelCaseWord, i + 1, j + 1);\n while (!result && (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) < camelCaseWord.length) {\n result = _matchesCamelCase(word, camelCaseWord, i + 1, nextUpperIndex);\n nextUpperIndex++;\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camelCaseWords.\nfunction analyzeCamelCaseWord(word) {\n let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n if (isUpper(code)) {\n upper++;\n }\n if (isLower(code)) {\n lower++;\n }\n if (isAlphanumeric(code)) {\n alpha++;\n }\n if (isNumber(code)) {\n numeric++;\n }\n }\n const upperPercent = upper / word.length;\n const lowerPercent = lower / word.length;\n const alphaPercent = alpha / word.length;\n const numericPercent = numeric / word.length;\n return { upperPercent, lowerPercent, alphaPercent, numericPercent };\n}\nfunction isUpperCaseWord(analysis) {\n const { upperPercent, lowerPercent } = analysis;\n return lowerPercent === 0 && upperPercent > 0.6;\n}\nfunction isCamelCaseWord(analysis) {\n const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\n return lowerPercent > 0.2 && upperPercent < 0.8 && alphaPercent > 0.6 && numericPercent < 0.2;\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camel case patterns.\nfunction isCamelCasePattern(word) {\n let upper = 0, lower = 0, code = 0, whitespace = 0;\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n if (isUpper(code)) {\n upper++;\n }\n if (isLower(code)) {\n lower++;\n }\n if (isWhitespace(code)) {\n whitespace++;\n }\n }\n if ((upper === 0 || lower === 0) && whitespace === 0) {\n return word.length <= 30;\n }\n else {\n return upper <= 5;\n }\n}\nexport function matchesCamelCase(word, camelCaseWord) {\n if (!camelCaseWord) {\n return null;\n }\n camelCaseWord = camelCaseWord.trim();\n if (camelCaseWord.length === 0) {\n return null;\n }\n if (!isCamelCasePattern(word)) {\n return null;\n }\n if (camelCaseWord.length > 60) {\n return null;\n }\n const analysis = analyzeCamelCaseWord(camelCaseWord);\n if (!isCamelCaseWord(analysis)) {\n if (!isUpperCaseWord(analysis)) {\n return null;\n }\n camelCaseWord = camelCaseWord.toLowerCase();\n }\n let result = null;\n let i = 0;\n word = word.toLowerCase();\n while (i < camelCaseWord.length && (result = _matchesCamelCase(word, camelCaseWord, 0, i)) === null) {\n i = nextAnchor(camelCaseWord, i + 1);\n }\n return result;\n}\n// Matches beginning of words supporting non-ASCII languages\n// If `contiguous` is true then matches word with beginnings of the words in the target. E.g. \"pul\" will match \"Git: Pull\"\n// Otherwise also matches sub string of the word with beginnings of the words in the target. E.g. \"gp\" or \"g p\" will match \"Git: Pull\"\n// Useful in cases where the target is words (e.g. command labels)\nexport function matchesWords(word, target, contiguous = false) {\n if (!target || target.length === 0) {\n return null;\n }\n let result = null;\n let i = 0;\n word = word.toLowerCase();\n target = target.toLowerCase();\n while (i < target.length && (result = _matchesWords(word, target, 0, i, contiguous)) === null) {\n i = nextWord(target, i + 1);\n }\n return result;\n}\nfunction _matchesWords(word, target, i, j, contiguous) {\n if (i === word.length) {\n return [];\n }\n else if (j === target.length) {\n return null;\n }\n else if (!charactersMatch(word.charCodeAt(i), target.charCodeAt(j))) {\n return null;\n }\n else {\n let result = null;\n let nextWordIndex = j + 1;\n result = _matchesWords(word, target, i + 1, j + 1, contiguous);\n if (!contiguous) {\n while (!result && (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {\n result = _matchesWords(word, target, i + 1, nextWordIndex, contiguous);\n nextWordIndex++;\n }\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\nfunction nextWord(word, start) {\n for (let i = start; i < word.length; i++) {\n if (isWordSeparator(word.charCodeAt(i)) ||\n (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return word.length;\n}\n// Fuzzy\nconst fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\nconst fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\nconst fuzzyRegExpCache = new LRUCache(10000); // bounded to 10000 elements\nexport function matchesFuzzy(word, wordToMatchAgainst, enableSeparateSubstringMatching = false) {\n if (typeof word !== 'string' || typeof wordToMatchAgainst !== 'string') {\n return null; // return early for invalid input\n }\n // Form RegExp for wildcard matches\n let regexp = fuzzyRegExpCache.get(word);\n if (!regexp) {\n regexp = new RegExp(strings.convertSimple2RegExpPattern(word), 'i');\n fuzzyRegExpCache.set(word, regexp);\n }\n // RegExp Filter\n const match = regexp.exec(wordToMatchAgainst);\n if (match) {\n return [{ start: match.index, end: match.index + match[0].length }];\n }\n // Default Filter\n return enableSeparateSubstringMatching ? fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\n}\nexport function anyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos) {\n const max = Math.min(13, pattern.length);\n for (; patternPos < max; patternPos++) {\n const result = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, false);\n if (result) {\n return result;\n }\n }\n return [0, wordPos];\n}\n//#region --- fuzzyScore ---\nexport function createMatches(score) {\n if (typeof score === 'undefined') {\n return [];\n }\n const res = [];\n const wordPos = score[1];\n for (let i = score.length - 1; i > 1; i--) {\n const pos = score[i] + wordPos;\n const last = res[res.length - 1];\n if (last && last.end === pos) {\n last.end = pos + 1;\n }\n else {\n res.push({ start: pos, end: pos + 1 });\n }\n }\n return res;\n}\nconst _maxLen = 128;\nfunction initTable() {\n const table = [];\n const row = [];\n for (let i = 0; i <= _maxLen; i++) {\n row[i] = 0;\n }\n for (let i = 0; i <= _maxLen; i++) {\n table.push(row.slice(0));\n }\n return table;\n}\nfunction initArr(maxLen) {\n const row = [];\n for (let i = 0; i <= maxLen; i++) {\n row[i] = 0;\n }\n return row;\n}\nconst _minWordMatchPos = initArr(2 * _maxLen); // min word position for a certain pattern position\nconst _maxWordMatchPos = initArr(2 * _maxLen); // max word position for a certain pattern position\nconst _diag = initTable(); // the length of a contiguous diagonal match\nconst _table = initTable();\nconst _arrows = initTable();\nconst _debug = false;\nfunction printTable(table, pattern, patternLen, word, wordLen) {\n function pad(s, n, pad = ' ') {\n while (s.length < n) {\n s = pad + s;\n }\n return s;\n }\n let ret = ` | |${word.split('').map(c => pad(c, 3)).join('|')}\\n`;\n for (let i = 0; i <= patternLen; i++) {\n if (i === 0) {\n ret += ' |';\n }\n else {\n ret += `${pattern[i - 1]}|`;\n }\n ret += table[i].slice(0, wordLen + 1).map(n => pad(n.toString(), 3)).join('|') + '\\n';\n }\n return ret;\n}\nfunction printTables(pattern, patternStart, word, wordStart) {\n pattern = pattern.substr(patternStart);\n word = word.substr(wordStart);\n console.log(printTable(_table, pattern, pattern.length, word, word.length));\n console.log(printTable(_arrows, pattern, pattern.length, word, word.length));\n console.log(printTable(_diag, pattern, pattern.length, word, word.length));\n}\nfunction isSeparatorAtPos(value, index) {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.codePointAt(index);\n switch (code) {\n case 95 /* Underline */:\n case 45 /* Dash */:\n case 46 /* Period */:\n case 32 /* Space */:\n case 47 /* Slash */:\n case 92 /* Backslash */:\n case 39 /* SingleQuote */:\n case 34 /* DoubleQuote */:\n case 58 /* Colon */:\n case 36 /* DollarSign */:\n case 60 /* LessThan */:\n case 40 /* OpenParen */:\n case 91 /* OpenSquareBracket */:\n return true;\n case undefined:\n return false;\n default:\n if (strings.isEmojiImprecise(code)) {\n return true;\n }\n return false;\n }\n}\nfunction isWhitespaceAtPos(value, index) {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.charCodeAt(index);\n switch (code) {\n case 32 /* Space */:\n case 9 /* Tab */:\n return true;\n default:\n return false;\n }\n}\nfunction isUpperCaseAtPos(pos, word, wordLow) {\n return word[pos] !== wordLow[pos];\n}\nexport function isPatternInWord(patternLow, patternPos, patternLen, wordLow, wordPos, wordLen, fillMinWordPosArr = false) {\n while (patternPos < patternLen && wordPos < wordLen) {\n if (patternLow[patternPos] === wordLow[wordPos]) {\n if (fillMinWordPosArr) {\n // Remember the min word position for each pattern position\n _minWordMatchPos[patternPos] = wordPos;\n }\n patternPos += 1;\n }\n wordPos += 1;\n }\n return patternPos === patternLen; // pattern must be exhausted\n}\nexport var FuzzyScore;\n(function (FuzzyScore) {\n /**\n * No matches and value `-100`\n */\n FuzzyScore.Default = ([-100, 0]);\n function isDefault(score) {\n return !score || (score.length === 2 && score[0] === -100 && score[1] === 0);\n }\n FuzzyScore.isDefault = isDefault;\n})(FuzzyScore || (FuzzyScore = {}));\nexport function fuzzyScore(pattern, patternLow, patternStart, word, wordLow, wordStart, firstMatchCanBeWeak) {\n const patternLen = pattern.length > _maxLen ? _maxLen : pattern.length;\n const wordLen = word.length > _maxLen ? _maxLen : word.length;\n if (patternStart >= patternLen || wordStart >= wordLen || (patternLen - patternStart) > (wordLen - wordStart)) {\n return undefined;\n }\n // Run a simple check if the characters of pattern occur\n // (in order) at all in word. If that isn't the case we\n // stop because no match will be possible\n if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen, true)) {\n return undefined;\n }\n // Find the max matching word position for each pattern position\n // NOTE: the min matching word position was filled in above, in the `isPatternInWord` call\n _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow);\n let row = 1;\n let column = 1;\n let patternPos = patternStart;\n let wordPos = wordStart;\n const hasStrongFirstMatch = [false];\n // There will be a match, fill in tables\n for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) {\n // Reduce search space to possible matching word positions and to possible access from next row\n const minWordMatchPos = _minWordMatchPos[patternPos];\n const maxWordMatchPos = _maxWordMatchPos[patternPos];\n const nextMaxWordMatchPos = (patternPos + 1 < patternLen ? _maxWordMatchPos[patternPos + 1] : wordLen);\n for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) {\n let score = Number.MIN_SAFE_INTEGER;\n let canComeDiag = false;\n if (wordPos <= maxWordMatchPos) {\n score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, _diag[row - 1][column - 1] === 0, hasStrongFirstMatch);\n }\n let diagScore = 0;\n if (score !== Number.MAX_SAFE_INTEGER) {\n canComeDiag = true;\n diagScore = score + _table[row - 1][column - 1];\n }\n const canComeLeft = wordPos > minWordMatchPos;\n const leftScore = canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0; // penalty for a gap start\n const canComeLeftLeft = wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0;\n const leftLeftScore = canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0; // penalty for a gap start\n if (canComeLeftLeft && (!canComeLeft || leftLeftScore >= leftScore) && (!canComeDiag || leftLeftScore >= diagScore)) {\n // always prefer choosing left left to jump over a diagonal because that means a match is earlier in the word\n _table[row][column] = leftLeftScore;\n _arrows[row][column] = 3 /* LeftLeft */;\n _diag[row][column] = 0;\n }\n else if (canComeLeft && (!canComeDiag || leftScore >= diagScore)) {\n // always prefer choosing left since that means a match is earlier in the word\n _table[row][column] = leftScore;\n _arrows[row][column] = 2 /* Left */;\n _diag[row][column] = 0;\n }\n else if (canComeDiag) {\n _table[row][column] = diagScore;\n _arrows[row][column] = 1 /* Diag */;\n _diag[row][column] = _diag[row - 1][column - 1] + 1;\n }\n else {\n throw new Error(`not possible`);\n }\n }\n }\n if (_debug) {\n printTables(pattern, patternStart, word, wordStart);\n }\n if (!hasStrongFirstMatch[0] && !firstMatchCanBeWeak) {\n return undefined;\n }\n row--;\n column--;\n const result = [_table[row][column], wordStart];\n let backwardsDiagLength = 0;\n let maxMatchColumn = 0;\n while (row >= 1) {\n // Find the column where we go diagonally up\n let diagColumn = column;\n do {\n const arrow = _arrows[row][diagColumn];\n if (arrow === 3 /* LeftLeft */) {\n diagColumn = diagColumn - 2;\n }\n else if (arrow === 2 /* Left */) {\n diagColumn = diagColumn - 1;\n }\n else {\n // found the diagonal\n break;\n }\n } while (diagColumn >= 1);\n // Overturn the \"forwards\" decision if keeping the \"backwards\" diagonal would give a better match\n if (backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters\n && patternLow[patternStart + row - 1] === wordLow[wordStart + column - 1] // only if we can do a contiguous match diagonally\n && !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) // only if the forwards chose diagonal is not an uppercase\n && backwardsDiagLength + 1 > _diag[row][diagColumn] // only if our contiguous match would be longer than the \"forwards\" contiguous match\n ) {\n diagColumn = column;\n }\n if (diagColumn === column) {\n // this is a contiguous match\n backwardsDiagLength++;\n }\n else {\n backwardsDiagLength = 1;\n }\n if (!maxMatchColumn) {\n // remember the last matched column\n maxMatchColumn = diagColumn;\n }\n row--;\n column = diagColumn - 1;\n result.push(column);\n }\n if (wordLen === patternLen) {\n // the word matches the pattern with all characters!\n // giving the score a total match boost (to come up ahead other words)\n result[0] += 2;\n }\n // Add 1 penalty for each skipped character in the word\n const skippedCharsCount = maxMatchColumn - patternLen;\n result[0] -= skippedCharsCount;\n return result;\n}\nfunction _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow) {\n let patternPos = patternLen - 1;\n let wordPos = wordLen - 1;\n while (patternPos >= patternStart && wordPos >= wordStart) {\n if (patternLow[patternPos] === wordLow[wordPos]) {\n _maxWordMatchPos[patternPos] = wordPos;\n patternPos--;\n }\n wordPos--;\n }\n}\nfunction _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, newMatchStart, outFirstMatchStrong) {\n if (patternLow[patternPos] !== wordLow[wordPos]) {\n return Number.MIN_SAFE_INTEGER;\n }\n let score = 1;\n let isGapLocation = false;\n if (wordPos === (patternPos - patternStart)) {\n // common prefix: `foobar <-> foobaz`\n // ^^^^^\n score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n }\n else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\n // hitting upper-case: `foo <-> forOthers`\n // ^^ ^\n score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n isGapLocation = true;\n }\n else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\n // hitting a separator: `. <-> foo.bar`\n // ^\n score = 5;\n }\n else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\n // post separator: `foo <-> bar_foo`\n // ^^^\n score = 5;\n isGapLocation = true;\n }\n if (score > 1 && patternPos === patternStart) {\n outFirstMatchStrong[0] = true;\n }\n if (!isGapLocation) {\n isGapLocation = isUpperCaseAtPos(wordPos, word, wordLow) || isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1);\n }\n //\n if (patternPos === patternStart) { // first character in pattern\n if (wordPos > wordStart) {\n // the first pattern character would match a word character that is not at the word start\n // so introduce a penalty to account for the gap preceding this match\n score -= isGapLocation ? 3 : 5;\n }\n }\n else {\n if (newMatchStart) {\n // this would be the beginning of a new match (i.e. there would be a gap before this location)\n score += isGapLocation ? 2 : 0;\n }\n else {\n // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a preferred gap location\n score += isGapLocation ? 0 : 1;\n }\n }\n if (wordPos + 1 === wordLen) {\n // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word\n // so pretend there is a gap after the last character in the word to normalize things\n score -= isGapLocation ? 3 : 5;\n }\n return score;\n}\n//#endregion\n//#region --- graceful ---\nexport function fuzzyScoreGracefulAggressive(pattern, lowPattern, patternPos, word, lowWord, wordPos, firstMatchCanBeWeak) {\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, firstMatchCanBeWeak);\n}\nfunction fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, aggressive, firstMatchCanBeWeak) {\n let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\n if (top && !aggressive) {\n // when using the original pattern yield a result we`\n // return it unless we are aggressive and try to find\n // a better alignment, e.g. `cno` -> `^co^ns^ole` or `^c^o^nsole`.\n return top;\n }\n if (pattern.length >= 3) {\n // When the pattern is long enough then try a few (max 7)\n // permutations of the pattern to find a better match. The\n // permutations only swap neighbouring characters, e.g\n // `cnoso` becomes `conso`, `cnsoo`, `cnoos`.\n const tries = Math.min(7, pattern.length - 1);\n for (let movingPatternPos = patternPos + 1; movingPatternPos < tries; movingPatternPos++) {\n const newPattern = nextTypoPermutation(pattern, movingPatternPos);\n if (newPattern) {\n const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, firstMatchCanBeWeak);\n if (candidate) {\n candidate[0] -= 3; // permutation penalty\n if (!top || candidate[0] > top[0]) {\n top = candidate;\n }\n }\n }\n }\n }\n return top;\n}\nfunction nextTypoPermutation(pattern, patternPos) {\n if (patternPos + 1 >= pattern.length) {\n return undefined;\n }\n const swap1 = pattern[patternPos];\n const swap2 = pattern[patternPos + 1];\n if (swap1 === swap2) {\n return undefined;\n }\n return pattern.slice(0, patternPos)\n + swap2\n + swap1\n + pattern.slice(patternPos + 2);\n}\n//#endregion\n","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\n }\n }\n return len === -1;\n }\n\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]': {\n const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n\n // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction definedKeys(obj: TObject) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\nfunction isDefinedKey(\n this: TObject,\n key: keyof TObject,\n) {\n return this[key] !== void 0;\n}\n\nconst nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full: string, suffix: string) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Describes what to do with the indentation when pressing Enter.\n */\nexport var IndentAction;\n(function (IndentAction) {\n /**\n * Insert new line and copy the previous line's indentation.\n */\n IndentAction[IndentAction[\"None\"] = 0] = \"None\";\n /**\n * Insert new line and indent once (relative to the previous line's indentation).\n */\n IndentAction[IndentAction[\"Indent\"] = 1] = \"Indent\";\n /**\n * Insert two new lines:\n * - the first one indented which will hold the cursor\n * - the second one at the same indentation level\n */\n IndentAction[IndentAction[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n /**\n * Insert new line and outdent once (relative to the previous line's indentation).\n */\n IndentAction[IndentAction[\"Outdent\"] = 3] = \"Outdent\";\n})(IndentAction || (IndentAction = {}));\n/**\n * @internal\n */\nexport class StandardAutoClosingPairConditional {\n constructor(source) {\n this._standardAutoClosingPairConditionalBrand = undefined;\n this.open = source.open;\n this.close = source.close;\n // initially allowed in all tokens\n this._standardTokenMask = 0;\n if (Array.isArray(source.notIn)) {\n for (let i = 0, len = source.notIn.length; i < len; i++) {\n const notIn = source.notIn[i];\n switch (notIn) {\n case 'string':\n this._standardTokenMask |= 2 /* String */;\n break;\n case 'comment':\n this._standardTokenMask |= 1 /* Comment */;\n break;\n case 'regex':\n this._standardTokenMask |= 4 /* RegEx */;\n break;\n }\n }\n }\n }\n isOK(standardToken) {\n return (this._standardTokenMask & standardToken) === 0;\n }\n}\n/**\n * @internal\n */\nexport class AutoClosingPairs {\n constructor(autoClosingPairs) {\n this.autoClosingPairsOpenByStart = new Map();\n this.autoClosingPairsOpenByEnd = new Map();\n this.autoClosingPairsCloseByStart = new Map();\n this.autoClosingPairsCloseByEnd = new Map();\n this.autoClosingPairsCloseSingleChar = new Map();\n for (const pair of autoClosingPairs) {\n appendEntry(this.autoClosingPairsOpenByStart, pair.open.charAt(0), pair);\n appendEntry(this.autoClosingPairsOpenByEnd, pair.open.charAt(pair.open.length - 1), pair);\n appendEntry(this.autoClosingPairsCloseByStart, pair.close.charAt(0), pair);\n appendEntry(this.autoClosingPairsCloseByEnd, pair.close.charAt(pair.close.length - 1), pair);\n if (pair.close.length === 1 && pair.open.length === 1) {\n appendEntry(this.autoClosingPairsCloseSingleChar, pair.close, pair);\n }\n }\n }\n}\nfunction appendEntry(target, key, value) {\n if (target.has(key)) {\n target.get(key).push(value);\n }\n else {\n target.set(key, [value]);\n }\n}\n","import * as React from 'react';\nimport { DetailsListBase } from './DetailsList.base';\nimport { SelectionMode } from '../../Selection';\nimport { ScrollToMode } from '../../List';\nimport type { ISelection, ISelectionZoneProps } from '../../Selection';\nimport type { IRefObject, IBaseProps, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IDragDropEvents, IDragDropContext, IDragDropHelper, IDragDropOptions } from '../../DragDrop';\nimport type { IGroup, IGroupRenderProps, IGroupDividerProps, IGroupedListProps } from '../GroupedList/index';\nimport type { IDetailsRowProps, IDetailsRowBaseProps } from '../DetailsList/DetailsRow';\nimport type { IDetailsHeaderProps, IDetailsHeaderBaseProps } from './DetailsHeader';\nimport type { IDetailsFooterProps, IDetailsFooterBaseProps } from './DetailsFooter.types';\nimport type { IWithViewportProps, IViewport } from '../../utilities/decorators/withViewport';\nimport type { IList, IListProps } from '../../List';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { ICellStyleProps, IDetailsItemProps } from './DetailsRow.types';\nimport type { IDetailsCheckboxProps } from './DetailsRowCheck.types';\nimport type {\n IDetailsColumnStyleProps,\n IDetailsColumnProps,\n IDetailsColumnStyles,\n IDetailsColumnFilterIconProps,\n} from './DetailsColumn.types';\nimport { IFocusZoneProps } from '../../FocusZone';\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IDetailsList extends IList {\n /**\n * Ensures that the list content is updated. Call this in cases where the list prop updates don't change, but the list\n * still needs to be re-evaluated. For example, if a sizer bar is adjusted and causes the list width to change,\n * you can call this to force a re-evaluation. Be aware that this can be an expensive operation and should be\n * done sparingly.\n */\n forceUpdate: () => void;\n\n /**\n * Scroll to and focus the item at the given index. focusIndex will call scrollToIndex on the specified index.\n *\n * @param index - Index of item to scroll to\n * @param forceIntoFirstElement - If true, focus will be set to the first focusable child element of the item rather\n * than the item itself.\n * @param measureItem - Optional callback to measure the height of an individual item\n * @param scrollToMode - Optional setting to determine where in the window the item should be scrolled to\n * when focused.\n */\n focusIndex: (\n index: number,\n forceIntoFirstElement?: boolean,\n measureItem?: (itemIndex: number) => number,\n scrollToMode?: ScrollToMode,\n ) => void;\n\n /**\n * Get the start index of the page that is currently in view\n */\n getStartItemIndexInView: () => number;\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IDetailsListProps extends IBaseProps, IWithViewportProps {\n /** Theme provided by a higher-order component. */\n theme?: ITheme;\n\n /** Custom overrides to the themed or default styles. */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Callback to access the IDetailsList interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /** A key that uniquely identifies the given items. If provided, the selection will be reset when the key changes. */\n setKey?: string;\n\n /** The items to render. */\n items: any[];\n\n /** Set this to true to indicate that the items being displayed are placeholder data. */\n isPlaceholderData?: boolean;\n\n /** Properties to pass through to the List components being rendered. */\n listProps?: IListProps;\n\n /** Default index to set focus to once the items have rendered and the index exists. */\n initialFocusedIndex?: number;\n\n /** Class name to add to the root element. */\n className?: string;\n\n /** Grouping instructions. */\n groups?: IGroup[];\n\n /** Override properties to render groups. */\n groupProps?: IDetailsGroupRenderProps;\n\n /** Override for the indent width used for group nesting. */\n indentWidth?: number;\n\n /** Selection model to track selection state. */\n selection?: ISelection;\n\n /** Controls how/if the details list manages selection. Options include none, single, multiple */\n selectionMode?: SelectionMode;\n\n /**\n * By default, selection is cleared when clicking on an empty (non-focusable) section of the screen.\n * Setting this value to true overrides that behavior and maintains selection.\n * @defaultvalue false\n **/\n selectionPreservedOnEmptyClick?: boolean;\n\n /**\n * Additional props to pass through to the SelectionZone created by default.\n */\n selectionZoneProps?: ISelectionZoneProps;\n\n /** Controls how the columns are adjusted. */\n layoutMode?: DetailsListLayoutMode;\n\n /**\n * Controls the visibility of selection check box.\n * @defaultvalue CheckboxVisibility.onHover\n */\n checkboxVisibility?: CheckboxVisibility;\n\n /**\n * Controls the visibility of the header.\n * @defaultvalue true\n */\n isHeaderVisible?: boolean;\n\n /** Column definitions. If none are provided, default columns will be created based on the items' properties. */\n columns?: IColumn[];\n\n /** Controls how the list constrains overflow. */\n constrainMode?: ConstrainMode;\n\n /** Event names and corresponding callbacks that will be registered to rendered row elements. */\n rowElementEventMap?: { eventName: string; callback: (context: IDragDropContext, event?: any) => void }[];\n\n /** Callback for when the list has been updated. Useful for telemetry tracking externally. */\n onDidUpdate?: (detailsList?: DetailsListBase) => void;\n\n /**\n * Callback for when a given row has been mounted. Useful for identifying when a row has been rendered on the page.\n */\n onRowDidMount?: (item?: any, index?: number) => void;\n\n /**\n * Callback for when a given row has been unmounted.\n * Useful for identifying when a row has been removed from the page.\n */\n onRowWillUnmount?: (item?: any, index?: number) => void;\n\n /** Callback for when the user clicks on the column header. */\n onColumnHeaderClick?: (ev?: React.MouseEvent, column?: IColumn) => void;\n\n /** Callback for when the user asks for a contextual menu (usually via right click) from a column header. */\n onColumnHeaderContextMenu?: (column?: IColumn, ev?: React.MouseEvent) => void;\n\n /** Callback fired on column resize */\n onColumnResize?: (column?: IColumn, newWidth?: number, columnIndex?: number) => void;\n\n /** Callback for when a given row has been invoked (by pressing enter while it is selected.) */\n onItemInvoked?: (item?: any, index?: number, ev?: Event) => void;\n\n /**\n * Callback for when the context menu of an item has been accessed.\n * If undefined or false is returned, `ev.preventDefault()` will be called.\n */\n onItemContextMenu?: (item?: any, index?: number, ev?: Event) => void | boolean;\n\n /**\n * Callback to override the default row rendering.\n */\n onRenderRow?: IRenderFunction;\n\n /**\n * If provided, will be the \"default\" item column renderer method.\n * This affects cells within the rows, not the rows themselves.\n * If a column definition provides its own `onRender` method, that will be used instead of this.\n */\n onRenderItemColumn?: (item?: any, index?: number, column?: IColumn) => React.ReactNode;\n\n /**\n * If provided, will be the \"default\" item column cell value return.\n * A column's `getValueKey` can override `getCellValueKey`.\n */\n getCellValueKey?: (item?: any, index?: number, column?: IColumn) => string;\n\n /** Map of callback functions related to row drag and drop functionality. */\n dragDropEvents?: IDragDropEvents;\n\n /** Callback for what to render when the item is missing. */\n onRenderMissingItem?: (index?: number, rowProps?: IDetailsRowProps) => React.ReactNode;\n\n /** An override to render the details header. */\n onRenderDetailsHeader?: IRenderFunction;\n\n /** An override to render the details footer. */\n onRenderDetailsFooter?: IRenderFunction;\n\n /** If provided, can be used to render a custom checkbox. */\n onRenderCheckbox?: IRenderFunction;\n\n /** Viewport info, provided by the `withViewport` decorator. */\n viewport?: IViewport;\n\n /**\n * Callback for when an item in the list becomes active by clicking anywhere inside the row or navigating to it\n * with the keyboard.\n */\n onActiveItemChanged?: (item?: any, index?: number, ev?: React.FocusEvent) => void;\n\n /** Accessible label for the list header. */\n ariaLabelForListHeader?: string;\n\n /** Accessible label for the select all checkbox. */\n ariaLabelForSelectAllCheckbox?: string;\n\n /** Accessible label for the name of the selection column. */\n ariaLabelForSelectionColumn?: string;\n\n /** Callback to get the aria-label string for a given item. */\n getRowAriaLabel?: (item: any) => string;\n\n /** Callback to get the aria-describedby IDs (space-separated strings) of elements that describe the item. */\n getRowAriaDescribedBy?: (item: any) => string;\n\n /**\n * Callback to get the item key, to be used in the selection and on render.\n * Must be provided if sorting or filtering is enabled.\n */\n getKey?: (item: any, index?: number) => string;\n\n /** Accessible label describing or summarizing the list. */\n ariaLabel?: string;\n\n /** Accessible label for the row check button, e.g. \"select row\". */\n checkButtonAriaLabel?: string;\n\n /** Accessible label for the group header check button, e.g. \"select section\". */\n checkButtonGroupAriaLabel?: string;\n\n /** Accessible label for the grid within the list. */\n ariaLabelForGrid?: string;\n\n /** An optional margin for proportional columns, to e.g. account for scrollbars when laying out width. */\n flexMargin?: number;\n\n /**\n * Whether the role `application` should be applied to the list.\n * @defaultvalue false\n */\n shouldApplyApplicationRole?: boolean;\n\n /**\n * The minimum mouse move distance to interpret the action as drag event.\n * @defaultvalue 5\n */\n minimumPixelsForDrag?: number;\n\n /**\n * Whether to render in compact mode.\n * @defaultvalue false\n */\n compact?: boolean;\n\n /**\n * Whether to enable render page caching. This is an experimental performance optimization that is off by default.\n * @defaultvalue false\n */\n usePageCache?: boolean;\n\n /**\n * Callback to determine whether the list should be rendered in full, or virtualized.\n *\n * Virtualization will add and remove pages of items as the user scrolls them into the visible range.\n * This benefits larger list scenarios by reducing the DOM on the screen, but can negatively affect performance\n * for smaller lists.\n *\n * The default implementation will virtualize when this callback is not provided.\n */\n onShouldVirtualize?: (props: IListProps) => boolean;\n\n /** Class name to add to the cell of a checkbox. */\n checkboxCellClassName?: string;\n\n /** Whether the selection zone should enter modal state on touch. */\n enterModalSelectionOnTouch?: boolean;\n\n /** Options for column reordering using drag and drop. */\n columnReorderOptions?: IColumnReorderOptions;\n\n /** Callback to override default group height calculation used by list virtualization. */\n getGroupHeight?: IGroupedListProps['getGroupHeight'];\n\n /**\n * Whether to re-render a row only when props changed. Might cause regression when depending on external updates.\n * @defaultvalue false\n */\n useReducedRowRenderer?: boolean;\n\n /**\n * Props impacting the render style of cells. Since these have an impact on calculated column widths, they are\n * handled separately from normal theme styling, but they are passed to the styling system.\n */\n cellStyleProps?: ICellStyleProps;\n\n /** Whether to disable the built-in SelectionZone, so the host component can provide its own. */\n disableSelectionZone?: boolean;\n\n /** Whether to animate updates */\n enableUpdateAnimations?: boolean;\n\n /**\n * Whether to use fast icon and check components. The icons can't be targeted by customization\n * but are still customizable via class names.\n * @defaultvalue true\n */\n useFastIcons?: boolean;\n\n /** Role for the list. */\n role?: string;\n\n /**\n * Properties to pass through to the FocusZone.\n */\n focusZoneProps?: IFocusZoneProps;\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IColumn {\n /** A unique key for identifying the column. */\n key: string;\n\n /** Name to render on the column header. */\n name: string;\n\n /**\n * The field to pull the text value from for the column.\n * Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * If specified, the width of the column is a portion of the available space equal to this value divided by the sum\n * of all proportional column widths in the list. For example, if there is a list with two proportional columns that\n * have widths of 1 and 3, they will respectively occupy (1/4) = 25% and (3/4) = 75% of the remaining space. Note that\n * this relies on viewport measures and will not work well with skipViewportMeasures.\n */\n flexGrow?: number;\n\n /** Class name to apply to the column cell within each row. */\n className?: string;\n\n /** Custom overrides to the themed or default styles. */\n styles?: IStyleFunctionOrObject;\n\n /** Minimum width for the column. */\n minWidth: number;\n\n /**\n * If specified, the width of the column is a portion of the available space equal to this value divided by the sum\n * of all proportional column widths in the list. For example, if there is a list with two proportional columns that\n * have widths of 1 and 3, they will respectively occupy (1/4) = 25% and (2/4) = 75% of the remaining space. Note that\n * this relies on viewport measures and will not work well with skipViewportMeasures.\n */\n targetWidthProportion?: number;\n\n /**\n * Accessible label for the column. The column name will still be used as the primary label,\n * but this text (if specified) will be used as the column description.\n * WARNING: grid column descriptions are often ignored by screen readers, so any necessary information\n * should go directly in the column content\n */\n ariaLabel?: string;\n\n /** Whether the column is a header for the given row. There should be only one column with this set to true. */\n isRowHeader?: boolean;\n\n /** Maximum width for the column, if stretching is allowed in justified scenarios. */\n maxWidth?: number;\n\n /**\n * Defines how the column's header should render.\n * @defaultvalue ColumnActionsMode.clickable\n */\n columnActionsMode?: ColumnActionsMode;\n\n /** Custom icon to use in the column header. */\n iconName?: string;\n\n /**\n * Whether only the icon should be displayed in the column header.\n * If true, the column name and dropdown chevron will not be displayed.\n */\n isIconOnly?: boolean;\n\n /** Class name for the icon within the header. */\n iconClassName?: string;\n\n /**\n * If true, allow the column to be collapsed when rendered in justified layout.\n * @deprecated Use `isCollapsible`\n */\n isCollapsable?: boolean;\n\n /** If true, allow the column to be collapsed when rendered in justified layout. */\n isCollapsible?: boolean;\n\n /** Determines if the column is currently sorted. Renders a sort arrow in the column header. */\n isSorted?: boolean;\n\n /** Determines if the sort arrow is pointed down (descending) or up. */\n isSortedDescending?: boolean;\n\n /** Determines if the column can be resized. */\n isResizable?: boolean;\n\n /** Determines if the column can render multi-line text. */\n isMultiline?: boolean;\n\n /** Custom renderer for cell content, instead of the default text rendering. */\n onRender?: (item?: any, index?: number, column?: IColumn) => any;\n\n /** Custom override for the parent list's `getCellValueKey`. */\n getValueKey?: (item?: any, index?: number, column?: IColumn) => string;\n\n /** Custom renderer for column header divider. */\n onRenderDivider?: IRenderFunction;\n\n /** Custom renderer for filter icon. */\n onRenderFilterIcon?: IRenderFunction;\n\n /** Custom renderer for column header content, instead of the default text rendering. */\n onRenderHeader?: IRenderFunction;\n\n /** Whether the list is filtered by this column. If true, shows a filter icon next to this column's name. */\n isFiltered?: boolean;\n\n /** Callback for when the user clicks on the column header. */\n onColumnClick?: (ev: React.MouseEvent, column: IColumn) => void;\n\n /** Callback for when the user opens the column header context menu. */\n onColumnContextMenu?: (column?: IColumn, ev?: React.MouseEvent) => void;\n\n /**\n * Callback for when the column is resized (`width` is the current width).\n *\n * Prefer this over `DetailsList`'s `onColumnResize` if you require the `IColumn` to report its width\n * after every resize event. Consider debouncing the callback if resize events occur frequently.\n */\n onColumnResize?: (width?: number) => void;\n\n /** Whether the list is grouped by this column. If true, shows a grouped icon next to this column's name. */\n isGrouped?: boolean;\n\n /** Arbitrary data passthrough which can be used by the caller. */\n data?: any;\n\n /** Internal only value. */\n calculatedWidth?: number;\n\n /**\n * Internal only value.\n * Remembers the actual width of the column in any case.\n * `calculatedWidth` is only saved when it's defined by user, not for justified calculations.\n */\n currentWidth?: number;\n\n /** Class name to apply to the column header cell. */\n headerClassName?: string;\n\n /** If true, add additional LTR padding-right to column and cells. */\n isPadded?: boolean;\n\n /**\n * Accessible label for indicating that the list is sorted by this column in ascending order.\n * This will be read after the main column header label.\n */\n sortAscendingAriaLabel?: string;\n\n /**\n * Accessible label for indicating that the list is sorted by this column in descending order.\n * This will be read after the main column header label.\n */\n sortDescendingAriaLabel?: string;\n\n /** Accessible label for the status of this column when grouped. */\n groupAriaLabel?: string;\n\n /** Accessible label for the status of this column when filtered. */\n filterAriaLabel?: string;\n\n /** Whether a dropdown menu is open so that the appropriate ARIA attributes are rendered. */\n isMenuOpen?: boolean;\n}\n\n/**\n * Enum to describe how a particular column header behaves.\n * This is used to to specify the property `IColumn.columnActionsMode`.\n * If `IColumn.columnActionsMode` is undefined, it's equivalent to `ColumnActionsMode.clickable`.\n * {@docCategory DetailsList}\n */\nexport enum ColumnActionsMode {\n /** Renders the column header as disabled. */\n disabled = 0,\n\n /** Renders the column header as clickable. Default value. */\n clickable = 1,\n\n /** Renders the column header as clickable and displays the dropdown chevron. */\n hasDropdown = 2,\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport enum ConstrainMode {\n /** Lets the content grow which allows the page to manage scrolling. */\n unconstrained = 0,\n\n /** Constrains the list to the given layout space. */\n horizontalConstrained = 1,\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IColumnReorderOptions {\n /**\n * Specifies the number fixed columns from left\n * @defaultvalue 0\n */\n frozenColumnCountFromStart?: number;\n\n /**\n * Specifies the number fixed columns from right\n * @defaultvalue 0\n */\n frozenColumnCountFromEnd?: number;\n\n /**\n * Callback to handle when dragging on this column's DetailsHeader has started.\n */\n onColumnDragStart?: (dragStarted: boolean) => void;\n\n /**\n * Callback to handle column reordering.\n * `draggedIndex` is the source column index, which should be placed at `targetIndex`.\n * @deprecated Use `onColumnDrop` instead.\n */\n handleColumnReorder?: (draggedIndex: number, targetIndex: number) => void;\n\n /**\n * Callback to handle column reordering.\n * `draggedIndex` is the source column index, which should be placed at `targetIndex`.\n */\n onColumnDrop?: (dragDropDetails: IColumnDragDropDetails) => void;\n\n /**\n * Callback to handle when dragging on this column's DetailsHeader has finished.\n */\n onDragEnd?: (columnDropLocationDetails: ColumnDragEndLocation) => void;\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IColumnDragDropDetails {\n /**\n * Specifies the source column index\n * @defaultvalue -1\n */\n draggedIndex: number;\n\n /**\n * Specifies the target column index\n * @defaultvalue -1\n */\n targetIndex: number;\n}\n\n/**\n * Enum to describe where the column has been dropped, after starting the drag\n * {@docCategory DetailsList}\n */\nexport enum ColumnDragEndLocation {\n /** Drag ended outside of current list */\n outside = 0,\n\n /** Drag ended within current list */\n surface = 1,\n\n /** Drag ended on header */\n header = 2,\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport enum DetailsListLayoutMode {\n /**\n * Lets the user resize columns and makes not attempt to fit them.\n */\n fixedColumns = 0,\n\n /**\n * Manages which columns are visible, tries to size them according to their min/max rules and drops\n * off columns that can't fit and have isCollapsible set.\n */\n justified = 1,\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport enum CheckboxVisibility {\n /** Visible on hover. */\n onHover = 0,\n\n /** Visible always. */\n always = 1,\n\n /** Hide checkboxes. */\n hidden = 2,\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport type IDetailsListStyleProps = Required> &\n Pick & {\n /** Whether the list is horizontally constrained */\n isHorizontalConstrained?: boolean;\n\n /** Whether the list is in compact mode */\n compact?: boolean;\n\n /** Whether the list is fixed in size */\n isFixed?: boolean;\n };\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IDetailsListStyles {\n root: IStyle;\n focusZone: IStyle;\n headerWrapper: IStyle;\n contentWrapper: IStyle;\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IDetailsGroupRenderProps extends IGroupRenderProps {\n onRenderFooter?: IRenderFunction;\n onRenderHeader?: IRenderFunction;\n}\n\n/**\n * {@docCategory DetailsList}\n */\nexport interface IDetailsGroupDividerProps extends IGroupDividerProps, IDetailsItemProps {}\n\nexport interface IDetailsListCheckboxProps extends IDetailsCheckboxProps {}\n\nexport type {\n IDetailsHeaderProps,\n IDetailsRowBaseProps,\n IDetailsHeaderBaseProps,\n IDetailsFooterBaseProps,\n IDragDropContext,\n IDragDropEvents,\n IDragDropHelper,\n IDragDropOptions,\n IViewport,\n IWithViewportProps,\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { match as matchGlobPattern } from '../../../base/common/glob.js';\nimport { normalize } from '../../../base/common/path.js';\nexport function score(selector, candidateUri, candidateLanguage, candidateIsSynchronized) {\n if (Array.isArray(selector)) {\n // array -> take max individual value\n let ret = 0;\n for (const filter of selector) {\n const value = score(filter, candidateUri, candidateLanguage, candidateIsSynchronized);\n if (value === 10) {\n return value; // already at the highest\n }\n if (value > ret) {\n ret = value;\n }\n }\n return ret;\n }\n else if (typeof selector === 'string') {\n if (!candidateIsSynchronized) {\n return 0;\n }\n // short-hand notion, desugars to\n // 'fooLang' -> { language: 'fooLang'}\n // '*' -> { language: '*' }\n if (selector === '*') {\n return 5;\n }\n else if (selector === candidateLanguage) {\n return 10;\n }\n else {\n return 0;\n }\n }\n else if (selector) {\n // filter -> select accordingly, use defaults for scheme\n const { language, pattern, scheme, hasAccessToAllModels } = selector; // TODO: microsoft/TypeScript#42768\n if (!candidateIsSynchronized && !hasAccessToAllModels) {\n return 0;\n }\n let ret = 0;\n if (scheme) {\n if (scheme === candidateUri.scheme) {\n ret = 10;\n }\n else if (scheme === '*') {\n ret = 5;\n }\n else {\n return 0;\n }\n }\n if (language) {\n if (language === candidateLanguage) {\n ret = 10;\n }\n else if (language === '*') {\n ret = Math.max(ret, 5);\n }\n else {\n return 0;\n }\n }\n if (pattern) {\n let normalizedPattern;\n if (typeof pattern === 'string') {\n normalizedPattern = pattern;\n }\n else {\n // Since this pattern has a `base` property, we need\n // to normalize this path first before passing it on\n // because we will compare it against `Uri.fsPath`\n // which uses platform specific separators.\n // Refs: https://github.com/microsoft/vscode/issues/99938\n normalizedPattern = Object.assign(Object.assign({}, pattern), { base: normalize(pattern.base) });\n }\n if (normalizedPattern === candidateUri.fsPath || matchGlobPattern(normalizedPattern, candidateUri.fsPath)) {\n ret = 10;\n }\n else {\n return 0;\n }\n }\n return ret;\n }\n else {\n return 0;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { doHash } from '../../../base/common/hash.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { MovingAverage } from '../../../base/common/numbers.js';\nimport { score } from './languageSelector.js';\nimport { shouldSynchronizeModel } from '../services/modelService.js';\nfunction isExclusive(selector) {\n if (typeof selector === 'string') {\n return false;\n }\n else if (Array.isArray(selector)) {\n return selector.every(isExclusive);\n }\n else {\n return !!selector.exclusive; // TODO: microsoft/TypeScript#42768\n }\n}\nexport class LanguageFeatureRegistry {\n constructor() {\n this._clock = 0;\n this._entries = [];\n this._onDidChange = new Emitter();\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n register(selector, provider) {\n let entry = {\n selector,\n provider,\n _score: -1,\n _time: this._clock++\n };\n this._entries.push(entry);\n this._lastCandidate = undefined;\n this._onDidChange.fire(this._entries.length);\n return toDisposable(() => {\n if (entry) {\n let idx = this._entries.indexOf(entry);\n if (idx >= 0) {\n this._entries.splice(idx, 1);\n this._lastCandidate = undefined;\n this._onDidChange.fire(this._entries.length);\n entry = undefined;\n }\n }\n });\n }\n has(model) {\n return this.all(model).length > 0;\n }\n all(model) {\n if (!model) {\n return [];\n }\n this._updateScores(model);\n const result = [];\n // from registry\n for (let entry of this._entries) {\n if (entry._score > 0) {\n result.push(entry.provider);\n }\n }\n return result;\n }\n ordered(model) {\n const result = [];\n this._orderedForEach(model, entry => result.push(entry.provider));\n return result;\n }\n orderedGroups(model) {\n const result = [];\n let lastBucket;\n let lastBucketScore;\n this._orderedForEach(model, entry => {\n if (lastBucket && lastBucketScore === entry._score) {\n lastBucket.push(entry.provider);\n }\n else {\n lastBucketScore = entry._score;\n lastBucket = [entry.provider];\n result.push(lastBucket);\n }\n });\n return result;\n }\n _orderedForEach(model, callback) {\n if (!model) {\n return;\n }\n this._updateScores(model);\n for (const entry of this._entries) {\n if (entry._score > 0) {\n callback(entry);\n }\n }\n }\n _updateScores(model) {\n let candidate = {\n uri: model.uri.toString(),\n language: model.getLanguageId()\n };\n if (this._lastCandidate\n && this._lastCandidate.language === candidate.language\n && this._lastCandidate.uri === candidate.uri) {\n // nothing has changed\n return;\n }\n this._lastCandidate = candidate;\n for (let entry of this._entries) {\n entry._score = score(entry.selector, model.uri, model.getLanguageId(), shouldSynchronizeModel(model));\n if (isExclusive(entry.selector) && entry._score > 0) {\n // support for one exclusive selector that overwrites\n // any other selector\n for (let entry of this._entries) {\n entry._score = 0;\n }\n entry._score = 1000;\n break;\n }\n }\n // needs sorting\n this._entries.sort(LanguageFeatureRegistry._compareByScoreAndTime);\n }\n static _compareByScoreAndTime(a, b) {\n if (a._score < b._score) {\n return 1;\n }\n else if (a._score > b._score) {\n return -1;\n }\n else if (a._time < b._time) {\n return 1;\n }\n else if (a._time > b._time) {\n return -1;\n }\n else {\n return 0;\n }\n }\n}\nconst _hashes = new WeakMap();\nlet pool = 0;\nfunction weakHash(obj) {\n let value = _hashes.get(obj);\n if (value === undefined) {\n value = ++pool;\n _hashes.set(obj, value);\n }\n return value;\n}\n/**\n * Keeps moving average per model and set of providers so that requests\n * can be debounce according to the provider performance\n */\nexport class LanguageFeatureRequestDelays {\n constructor(_registry, min, max = Number.MAX_SAFE_INTEGER) {\n this._registry = _registry;\n this.min = min;\n this.max = max;\n this._cache = new LRUCache(50, 0.7);\n }\n _key(model) {\n return model.id + this._registry.all(model).reduce((hashVal, obj) => doHash(weakHash(obj), hashVal), 0);\n }\n _clamp(value) {\n if (value === undefined) {\n return this.min;\n }\n else {\n return Math.min(this.max, Math.max(this.min, Math.floor(value * 1.3)));\n }\n }\n get(model) {\n const key = this._key(model);\n const avg = this._cache.get(key);\n return this._clamp(avg === null || avg === void 0 ? void 0 : avg.value);\n }\n update(model, value) {\n const key = this._key(model);\n let avg = this._cache.get(key);\n if (!avg) {\n avg = new MovingAverage();\n this._cache.set(key, avg);\n }\n avg.update(value);\n return this.get(model);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { IframeUtils } from './iframe.js';\nimport * as platform from '../common/platform.js';\nexport class StandardMouseEvent {\n constructor(e) {\n this.timestamp = Date.now();\n this.browserEvent = e;\n this.leftButton = e.button === 0;\n this.middleButton = e.button === 1;\n this.rightButton = e.button === 2;\n this.buttons = e.buttons;\n this.target = e.target;\n this.detail = e.detail || 1;\n if (e.type === 'dblclick') {\n this.detail = 2;\n }\n this.ctrlKey = e.ctrlKey;\n this.shiftKey = e.shiftKey;\n this.altKey = e.altKey;\n this.metaKey = e.metaKey;\n if (typeof e.pageX === 'number') {\n this.posx = e.pageX;\n this.posy = e.pageY;\n }\n else {\n // Probably hit by MSGestureEvent\n this.posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\n this.posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;\n }\n // Find the position of the iframe this code is executing in relative to the iframe where the event was captured.\n let iframeOffsets = IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(self, e.view);\n this.posx -= iframeOffsets.left;\n this.posy -= iframeOffsets.top;\n }\n preventDefault() {\n this.browserEvent.preventDefault();\n }\n stopPropagation() {\n this.browserEvent.stopPropagation();\n }\n}\nexport class StandardWheelEvent {\n constructor(e, deltaX = 0, deltaY = 0) {\n this.browserEvent = e || null;\n this.target = e ? (e.target || e.targetNode || e.srcElement) : null;\n this.deltaY = deltaY;\n this.deltaX = deltaX;\n if (e) {\n // Old (deprecated) wheel events\n let e1 = e;\n let e2 = e;\n // vertical delta scroll\n if (typeof e1.wheelDeltaY !== 'undefined') {\n this.deltaY = e1.wheelDeltaY / 120;\n }\n else if (typeof e2.VERTICAL_AXIS !== 'undefined' && e2.axis === e2.VERTICAL_AXIS) {\n this.deltaY = -e2.detail / 3;\n }\n else if (e.type === 'wheel') {\n // Modern wheel event\n // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n const ev = e;\n if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n // the deltas are expressed in lines\n if (browser.isFirefox && !platform.isMacintosh) {\n this.deltaY = -e.deltaY / 3;\n }\n else {\n this.deltaY = -e.deltaY;\n }\n }\n else {\n this.deltaY = -e.deltaY / 40;\n }\n }\n // horizontal delta scroll\n if (typeof e1.wheelDeltaX !== 'undefined') {\n if (browser.isSafari && platform.isWindows) {\n this.deltaX = -(e1.wheelDeltaX / 120);\n }\n else {\n this.deltaX = e1.wheelDeltaX / 120;\n }\n }\n else if (typeof e2.HORIZONTAL_AXIS !== 'undefined' && e2.axis === e2.HORIZONTAL_AXIS) {\n this.deltaX = -e.detail / 3;\n }\n else if (e.type === 'wheel') {\n // Modern wheel event\n // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n const ev = e;\n if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n // the deltas are expressed in lines\n if (browser.isFirefox && !platform.isMacintosh) {\n this.deltaX = -e.deltaX / 3;\n }\n else {\n this.deltaX = -e.deltaX;\n }\n }\n else {\n this.deltaX = -e.deltaX / 40;\n }\n }\n // Assume a vertical scroll if nothing else worked\n if (this.deltaY === 0 && this.deltaX === 0 && e.wheelDelta) {\n this.deltaY = e.wheelDelta / 120;\n }\n }\n }\n preventDefault() {\n if (this.browserEvent) {\n this.browserEvent.preventDefault();\n }\n }\n stopPropagation() {\n if (this.browserEvent) {\n this.browserEvent.stopPropagation();\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IAccessibilityService = createDecorator('accessibilityService');\nexport const CONTEXT_ACCESSIBILITY_MODE_ENABLED = new RawContextKey('accessibilityModeEnabled', false);\n","const toObjectMap = (...items: (string[] | Record)[]) => {\n const result: Record = {};\n\n for (const item of items) {\n const keys = Array.isArray(item) ? item : Object.keys(item);\n\n for (const key of keys) {\n result[key] = 1;\n }\n }\n\n return result;\n};\n\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport const baseElementProperties = toObjectMap([\n 'accessKey', // global\n 'children', // global\n 'className', // global\n 'contentEditable', // global\n 'dir', // global\n 'draggable', // global\n 'hidden', // global\n 'htmlFor', // global\n 'id', // global\n 'lang', // global\n 'ref', // global\n 'role', // global\n 'style', // global\n 'tabIndex', // global\n 'title', // global\n 'translate', // global\n 'spellCheck', // global\n 'name', // global\n]);\n\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport const htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport const labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport const audioProperties = toObjectMap(htmlElementProperties, [\n 'height', // canvas, embed, iframe, img, input, object, video\n 'loop', // audio, video\n 'muted', // audio, video\n 'preload', // audio, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport const videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport const olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport const liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport const anchorProperties = toObjectMap(htmlElementProperties, [\n 'download', // a, area\n 'href', // a, area, base, link\n 'hrefLang', // a, area, link\n 'media', // a, area, link, source, style\n 'rel', // a, area, link\n 'target', // a, area, base, form\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport const buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus', // button, input, select, textarea\n 'disabled', // button, fieldset, input, optgroup, option, select, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'formAction', // input, button\n 'formEncType', // input, button\n 'formMethod', // input, button\n 'formNoValidate', // input, button\n 'formTarget', // input, button\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param,\n]);\n\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport const inputProperties = toObjectMap(buttonProperties, [\n 'accept', // input\n 'alt', // area, img, input\n 'autoCapitalize', // input, textarea\n 'autoComplete', // form, input\n 'checked', // input\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'height', // canvas, embed, iframe, img, input, object, video\n 'inputMode', // input\n 'list', // input\n 'max', // input, meter\n 'maxLength', // input, textarea\n 'min', // input, meter\n 'multiple', // input, select\n 'pattern', // input\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'step', // input\n 'size', // input\n 'type', // a, button, input, link, menu, object, script, source, style\n 'value', // button, input, li, option, meter, progress, param\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport const textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize', // input, textarea\n 'cols', // textarea\n 'dirname', // input, textarea\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'maxLength', // input, textarea\n 'placeholder', // input, textarea\n 'readOnly', // input, textarea\n 'required', // input, select, textarea\n 'rows', // textarea\n 'wrap', // textarea\n]);\n\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport const selectProperties = toObjectMap(buttonProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n 'multiple', // input, select\n 'required', // input, select, textarea\n]);\n\nexport const optionProperties = toObjectMap(htmlElementProperties, [\n 'selected', // option\n 'value', // button, input, li, option, meter, progress, param\n]);\n\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport const tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding', // table\n 'cellSpacing', // table\n]);\n\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport const trProperties = htmlElementProperties;\n\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport const thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport const tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan', // td\n 'headers', // td\n 'rowSpan', // td, th\n 'scope', // th\n]);\n\nexport const colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n\nexport const colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport const formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset', // form\n 'action', // form\n 'encType', // form\n 'encType', // form\n 'method', // form\n 'noValidate', // form\n 'target', // form\n]);\n\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport const iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow', // iframe\n 'allowFullScreen', // iframe\n 'allowPaymentRequest', // iframe\n 'allowTransparency', // iframe\n 'csp', // iframe\n 'height', // canvas, embed, iframe, img, input, object, video\n 'importance', // iframe\n 'referrerPolicy', // iframe\n 'sandbox', // iframe\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcDoc', // iframe\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport const imgProperties = toObjectMap(htmlElementProperties, [\n 'alt', // area, img, input\n 'crossOrigin', // img\n 'height', // canvas, embed, iframe, img, input, object, video\n 'src', // audio, embed, iframe, img, input, script, source, track, video\n 'srcSet', // img, source\n 'useMap', // img, object,\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport const imageProperties = imgProperties;\n\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport const divProperties = htmlElementProperties;\n\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: Record,\n allowedPropNames: string[] | Record,\n excludedPropNames?: string[],\n): T {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n\n const isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: Record = {};\n const keys = Object.keys(props);\n\n for (const key of keys) {\n const isNativeProp =\n (!isArray && (allowedPropNames as Record)[key]) ||\n (isArray && (allowedPropNames as string[]).indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n\n if (isNativeProp && (!excludedPropNames || excludedPropNames?.indexOf(key) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props![key] as any;\n }\n }\n\n return result as T;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { equalsIgnoreCase, startsWithIgnoreCase } from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IOpenerService = createDecorator('openerService');\nexport const NullOpenerService = Object.freeze({\n _serviceBrand: undefined,\n registerOpener() { return Disposable.None; },\n registerValidator() { return Disposable.None; },\n registerExternalUriResolver() { return Disposable.None; },\n setDefaultExternalOpener() { },\n registerExternalOpener() { return Disposable.None; },\n open() {\n return __awaiter(this, void 0, void 0, function* () { return false; });\n },\n resolveExternalUri(uri) {\n return __awaiter(this, void 0, void 0, function* () { return { resolved: uri, dispose() { } }; });\n },\n});\nexport function matchesScheme(target, scheme) {\n if (URI.isUri(target)) {\n return equalsIgnoreCase(target.scheme, scheme);\n }\n else {\n return startsWithIgnoreCase(target, scheme + ':');\n }\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","export function memoize(_target, key, descriptor) {\n let fnKey = null;\n let fn = null;\n if (typeof descriptor.value === 'function') {\n fnKey = 'value';\n fn = descriptor.value;\n if (fn.length !== 0) {\n console.warn('Memoize should only be used in functions with zero parameters');\n }\n }\n else if (typeof descriptor.get === 'function') {\n fnKey = 'get';\n fn = descriptor.get;\n }\n if (!fn) {\n throw new Error('not supported');\n }\n const memoizeKey = `$memoize$${key}`;\n descriptor[fnKey] = function (...args) {\n if (!this.hasOwnProperty(memoizeKey)) {\n Object.defineProperty(this, memoizeKey, {\n configurable: false,\n enumerable: false,\n writable: false,\n value: fn.apply(this, args)\n });\n }\n return this[memoizeKey];\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CursorColumns, SingleCursorState } from './cursorCommon.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { AtomicTabMoveOperations } from './cursorAtomicMoveOperations.js';\nexport class CursorPosition {\n constructor(lineNumber, column, leftoverVisibleColumns) {\n this._cursorPositionBrand = undefined;\n this.lineNumber = lineNumber;\n this.column = column;\n this.leftoverVisibleColumns = leftoverVisibleColumns;\n }\n}\nexport class MoveOperations {\n static leftPosition(model, position) {\n if (position.column > model.getLineMinColumn(position.lineNumber)) {\n return position.delta(undefined, -strings.prevCharLength(model.getLineContent(position.lineNumber), position.column - 1));\n }\n else if (position.lineNumber > 1) {\n const newLineNumber = position.lineNumber - 1;\n return new Position(newLineNumber, model.getLineMaxColumn(newLineNumber));\n }\n else {\n return position;\n }\n }\n static leftPositionAtomicSoftTabs(model, position, tabSize) {\n if (position.column <= model.getLineIndentColumn(position.lineNumber)) {\n const minColumn = model.getLineMinColumn(position.lineNumber);\n const lineContent = model.getLineContent(position.lineNumber);\n const newPosition = AtomicTabMoveOperations.atomicPosition(lineContent, position.column - 1, tabSize, 0 /* Left */);\n if (newPosition !== -1 && newPosition + 1 >= minColumn) {\n return new Position(position.lineNumber, newPosition + 1);\n }\n }\n return this.leftPosition(model, position);\n }\n static left(config, model, position) {\n const pos = config.stickyTabStops\n ? MoveOperations.leftPositionAtomicSoftTabs(model, position, config.tabSize)\n : MoveOperations.leftPosition(model, position);\n return new CursorPosition(pos.lineNumber, pos.column, 0);\n }\n /**\n * @param noOfColumns Must be either `1`\n * or `Math.round(viewModel.getLineContent(viewLineNumber).length / 2)` (for half lines).\n */\n static moveLeft(config, model, cursor, inSelectionMode, noOfColumns) {\n let lineNumber, column;\n if (cursor.hasSelection() && !inSelectionMode) {\n // If the user has a selection and does not want to extend it,\n // put the cursor at the beginning of the selection.\n lineNumber = cursor.selection.startLineNumber;\n column = cursor.selection.startColumn;\n }\n else {\n // This has no effect if noOfColumns === 1.\n // It is ok to do so in the half-line scenario.\n const pos = cursor.position.delta(undefined, -(noOfColumns - 1));\n // We clip the position before normalization, as normalization is not defined\n // for possibly negative columns.\n const normalizedPos = model.normalizePosition(MoveOperations.clipPositionColumn(pos, model), 0 /* Left */);\n const p = MoveOperations.left(config, model, normalizedPos);\n lineNumber = p.lineNumber;\n column = p.column;\n }\n return cursor.move(inSelectionMode, lineNumber, column, 0);\n }\n /**\n * Adjusts the column so that it is within min/max of the line.\n */\n static clipPositionColumn(position, model) {\n return new Position(position.lineNumber, MoveOperations.clipRange(position.column, model.getLineMinColumn(position.lineNumber), model.getLineMaxColumn(position.lineNumber)));\n }\n static clipRange(value, min, max) {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n }\n static rightPosition(model, lineNumber, column) {\n if (column < model.getLineMaxColumn(lineNumber)) {\n column = column + strings.nextCharLength(model.getLineContent(lineNumber), column - 1);\n }\n else if (lineNumber < model.getLineCount()) {\n lineNumber = lineNumber + 1;\n column = model.getLineMinColumn(lineNumber);\n }\n return new Position(lineNumber, column);\n }\n static rightPositionAtomicSoftTabs(model, lineNumber, column, tabSize, indentSize) {\n if (column < model.getLineIndentColumn(lineNumber)) {\n const lineContent = model.getLineContent(lineNumber);\n const newPosition = AtomicTabMoveOperations.atomicPosition(lineContent, column - 1, tabSize, 1 /* Right */);\n if (newPosition !== -1) {\n return new Position(lineNumber, newPosition + 1);\n }\n }\n return this.rightPosition(model, lineNumber, column);\n }\n static right(config, model, position) {\n const pos = config.stickyTabStops\n ? MoveOperations.rightPositionAtomicSoftTabs(model, position.lineNumber, position.column, config.tabSize, config.indentSize)\n : MoveOperations.rightPosition(model, position.lineNumber, position.column);\n return new CursorPosition(pos.lineNumber, pos.column, 0);\n }\n static moveRight(config, model, cursor, inSelectionMode, noOfColumns) {\n let lineNumber, column;\n if (cursor.hasSelection() && !inSelectionMode) {\n // If we are in selection mode, move right without selection cancels selection and puts cursor at the end of the selection\n lineNumber = cursor.selection.endLineNumber;\n column = cursor.selection.endColumn;\n }\n else {\n const pos = cursor.position.delta(undefined, noOfColumns - 1);\n const normalizedPos = model.normalizePosition(MoveOperations.clipPositionColumn(pos, model), 1 /* Right */);\n const r = MoveOperations.right(config, model, normalizedPos);\n lineNumber = r.lineNumber;\n column = r.column;\n }\n return cursor.move(inSelectionMode, lineNumber, column, 0);\n }\n static vertical(config, model, lineNumber, column, leftoverVisibleColumns, newLineNumber, allowMoveOnEdgeLine) {\n const currentVisibleColumn = CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize) + leftoverVisibleColumns;\n const lineCount = model.getLineCount();\n const wasOnFirstPosition = (lineNumber === 1 && column === 1);\n const wasOnLastPosition = (lineNumber === lineCount && column === model.getLineMaxColumn(lineNumber));\n const wasAtEdgePosition = (newLineNumber < lineNumber ? wasOnFirstPosition : wasOnLastPosition);\n lineNumber = newLineNumber;\n if (lineNumber < 1) {\n lineNumber = 1;\n if (allowMoveOnEdgeLine) {\n column = model.getLineMinColumn(lineNumber);\n }\n else {\n column = Math.min(model.getLineMaxColumn(lineNumber), column);\n }\n }\n else if (lineNumber > lineCount) {\n lineNumber = lineCount;\n if (allowMoveOnEdgeLine) {\n column = model.getLineMaxColumn(lineNumber);\n }\n else {\n column = Math.min(model.getLineMaxColumn(lineNumber), column);\n }\n }\n else {\n column = CursorColumns.columnFromVisibleColumn2(config, model, lineNumber, currentVisibleColumn);\n }\n if (wasAtEdgePosition) {\n leftoverVisibleColumns = 0;\n }\n else {\n leftoverVisibleColumns = currentVisibleColumn - CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize);\n }\n return new CursorPosition(lineNumber, column, leftoverVisibleColumns);\n }\n static down(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnLastLine) {\n return this.vertical(config, model, lineNumber, column, leftoverVisibleColumns, lineNumber + count, allowMoveOnLastLine);\n }\n static moveDown(config, model, cursor, inSelectionMode, linesCount) {\n let lineNumber, column;\n if (cursor.hasSelection() && !inSelectionMode) {\n // If we are in selection mode, move down acts relative to the end of selection\n lineNumber = cursor.selection.endLineNumber;\n column = cursor.selection.endColumn;\n }\n else {\n lineNumber = cursor.position.lineNumber;\n column = cursor.position.column;\n }\n let r = MoveOperations.down(config, model, lineNumber, column, cursor.leftoverVisibleColumns, linesCount, true);\n return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n }\n static translateDown(config, model, cursor) {\n let selection = cursor.selection;\n let selectionStart = MoveOperations.down(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n let position = MoveOperations.down(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n }\n static up(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnFirstLine) {\n return this.vertical(config, model, lineNumber, column, leftoverVisibleColumns, lineNumber - count, allowMoveOnFirstLine);\n }\n static moveUp(config, model, cursor, inSelectionMode, linesCount) {\n let lineNumber, column;\n if (cursor.hasSelection() && !inSelectionMode) {\n // If we are in selection mode, move up acts relative to the beginning of selection\n lineNumber = cursor.selection.startLineNumber;\n column = cursor.selection.startColumn;\n }\n else {\n lineNumber = cursor.position.lineNumber;\n column = cursor.position.column;\n }\n let r = MoveOperations.up(config, model, lineNumber, column, cursor.leftoverVisibleColumns, linesCount, true);\n return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n }\n static translateUp(config, model, cursor) {\n let selection = cursor.selection;\n let selectionStart = MoveOperations.up(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n let position = MoveOperations.up(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n }\n static _isBlankLine(model, lineNumber) {\n if (model.getLineFirstNonWhitespaceColumn(lineNumber) === 0) {\n // empty or contains only whitespace\n return true;\n }\n return false;\n }\n static moveToPrevBlankLine(config, model, cursor, inSelectionMode) {\n let lineNumber = cursor.position.lineNumber;\n // If our current line is blank, move to the previous non-blank line\n while (lineNumber > 1 && this._isBlankLine(model, lineNumber)) {\n lineNumber--;\n }\n // Find the previous blank line\n while (lineNumber > 1 && !this._isBlankLine(model, lineNumber)) {\n lineNumber--;\n }\n return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n }\n static moveToNextBlankLine(config, model, cursor, inSelectionMode) {\n const lineCount = model.getLineCount();\n let lineNumber = cursor.position.lineNumber;\n // If our current line is blank, move to the next non-blank line\n while (lineNumber < lineCount && this._isBlankLine(model, lineNumber)) {\n lineNumber++;\n }\n // Find the next blank line\n while (lineNumber < lineCount && !this._isBlankLine(model, lineNumber)) {\n lineNumber++;\n }\n return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n }\n static moveToBeginningOfLine(config, model, cursor, inSelectionMode) {\n let lineNumber = cursor.position.lineNumber;\n let minColumn = model.getLineMinColumn(lineNumber);\n let firstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(lineNumber) || minColumn;\n let column;\n let relevantColumnNumber = cursor.position.column;\n if (relevantColumnNumber === firstNonBlankColumn) {\n column = minColumn;\n }\n else {\n column = firstNonBlankColumn;\n }\n return cursor.move(inSelectionMode, lineNumber, column, 0);\n }\n static moveToEndOfLine(config, model, cursor, inSelectionMode, sticky) {\n let lineNumber = cursor.position.lineNumber;\n let maxColumn = model.getLineMaxColumn(lineNumber);\n return cursor.move(inSelectionMode, lineNumber, maxColumn, sticky ? 1073741824 /* MAX_SAFE_SMALL_INTEGER */ - maxColumn : 0);\n }\n static moveToBeginningOfBuffer(config, model, cursor, inSelectionMode) {\n return cursor.move(inSelectionMode, 1, 1, 0);\n }\n static moveToEndOfBuffer(config, model, cursor, inSelectionMode) {\n let lastLineNumber = model.getLineCount();\n let lastColumn = model.getLineMaxColumn(lastLineNumber);\n return cursor.move(inSelectionMode, lastLineNumber, lastColumn, 0);\n }\n}\n","import * as React from 'react';\nimport type { IStyle, ITheme } from '../../Styling';\nimport type { IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Image}\n */\nexport interface IImage {}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageProps extends React.ImgHTMLAttributes, React.RefAttributes {\n /**\n * Call to provide customized styling that will layer on top of the variant rules\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by HOC.\n */\n theme?: ITheme;\n\n /**\n * Additional css class to apply to the Component\n * @defaultvalue undefined\n */\n className?: string;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * Used to determine how the image is scaled and cropped to fit the frame.\n *\n * @defaultvalue If both dimensions are provided, then the image is fit using `ImageFit.scale`.\n * Otherwise, the image won't be scaled or cropped.\n */\n imageFit?: ImageFit;\n\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n errorSrc?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * Optional callback method for when the image load state has changed.\n * The 'loadState' parameter indicates the current state of the Image.\n */\n onLoadingStateChange?: (loadState: ImageLoadState) => void;\n\n /**\n * Specifies the cover style to be used for this image. If not\n * specified, this will be dynamically calculated based on the\n * aspect ratio for the image.\n */\n coverStyle?: ImageCoverStyle;\n\n /**\n * Allows for browser-level image lazy-loading.\n */\n loading?: 'lazy' | 'eager';\n}\n\n/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport enum ImageFit {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n center = 0,\n\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n contain = 1,\n\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n cover = 2,\n\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n none = 3,\n\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n centerCover = 4,\n\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n centerContain = 5,\n}\n\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport enum ImageCoverStyle {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n landscape = 0,\n\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n portrait = 1,\n}\n\n/**\n * {@docCategory Image}\n */\nexport enum ImageLoadState {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n notLoaded = 0,\n\n /**\n * The image has been loaded successfully.\n */\n loaded = 1,\n\n /**\n * An error has been encountered while loading the image.\n */\n error = 2,\n\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n errorLoaded = 3,\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyleProps {\n /**\n * Accept theme prop.\n */\n theme: ITheme;\n\n /**\n * Accept custom classNames\n */\n className?: string;\n\n /**\n * If true, the image frame will expand to fill its parent container.\n */\n maximizeFrame?: boolean;\n\n /**\n * If true, the image is loaded\n */\n isLoaded?: boolean;\n\n /**\n * If true, fades the image in when loaded.\n * @defaultvalue true\n */\n shouldFadeIn?: boolean;\n\n /**\n * If true, the image starts as visible and is hidden on error. Otherwise, the image is hidden until\n * it is successfully loaded. This disables shouldFadeIn.\n * @defaultvalue false;\n */\n shouldStartVisible?: boolean;\n\n /**\n * If true the image is coverStyle landscape instead of portrait\n */\n isLandscape?: boolean;\n\n /**\n * ImageFit booleans for center, cover, contain, centerContain, centerCover, none\n */\n isCenter?: boolean;\n isContain?: boolean;\n isCover?: boolean;\n isCenterContain?: boolean;\n isCenterCover?: boolean;\n isNone?: boolean;\n\n /**\n * if true image load is in error\n */\n isError?: boolean;\n\n /**\n * if true, imageFit is undefined\n */\n isNotImageFit?: boolean;\n\n /**\n * Image width value\n */\n width?: number | string;\n\n /**\n * Image height value\n */\n height?: number | string;\n}\n\n/**\n * {@docCategory Image}\n */\nexport interface IImageStyles {\n /**\n * Style set for the root div element.\n */\n root: IStyle;\n /**\n * Style set for the img element.\n */\n image: IStyle;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isSafari } from '../../../base/browser/browser.js';\nimport { EDITOR_FONT_DEFAULTS } from '../../common/config/editorOptions.js';\nexport class CharWidthRequest {\n constructor(chr, type) {\n this.chr = chr;\n this.type = type;\n this.width = 0;\n }\n fulfill(width) {\n this.width = width;\n }\n}\nclass DomCharWidthReader {\n constructor(bareFontInfo, requests) {\n this._bareFontInfo = bareFontInfo;\n this._requests = requests;\n this._container = null;\n this._testElements = null;\n }\n read() {\n // Create a test container with all these test elements\n this._createDomElements();\n // Add the container to the DOM\n document.body.appendChild(this._container);\n // Read character widths\n this._readFromDomElements();\n // Remove the container from the DOM\n document.body.removeChild(this._container);\n this._container = null;\n this._testElements = null;\n }\n _createDomElements() {\n const fontFamily = this._bareFontInfo.getMassagedFontFamily(isSafari ? EDITOR_FONT_DEFAULTS.fontFamily : null);\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.top = '-50000px';\n container.style.width = '50000px';\n const regularDomNode = document.createElement('div');\n regularDomNode.style.fontFamily = fontFamily;\n regularDomNode.style.fontWeight = this._bareFontInfo.fontWeight;\n regularDomNode.style.fontSize = this._bareFontInfo.fontSize + 'px';\n regularDomNode.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings;\n regularDomNode.style.lineHeight = this._bareFontInfo.lineHeight + 'px';\n regularDomNode.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px';\n container.appendChild(regularDomNode);\n const boldDomNode = document.createElement('div');\n boldDomNode.style.fontFamily = fontFamily;\n boldDomNode.style.fontWeight = 'bold';\n boldDomNode.style.fontSize = this._bareFontInfo.fontSize + 'px';\n boldDomNode.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings;\n boldDomNode.style.lineHeight = this._bareFontInfo.lineHeight + 'px';\n boldDomNode.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px';\n container.appendChild(boldDomNode);\n const italicDomNode = document.createElement('div');\n italicDomNode.style.fontFamily = fontFamily;\n italicDomNode.style.fontWeight = this._bareFontInfo.fontWeight;\n italicDomNode.style.fontSize = this._bareFontInfo.fontSize + 'px';\n italicDomNode.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings;\n italicDomNode.style.lineHeight = this._bareFontInfo.lineHeight + 'px';\n italicDomNode.style.letterSpacing = this._bareFontInfo.letterSpacing + 'px';\n italicDomNode.style.fontStyle = 'italic';\n container.appendChild(italicDomNode);\n const testElements = [];\n for (const request of this._requests) {\n let parent;\n if (request.type === 0 /* Regular */) {\n parent = regularDomNode;\n }\n if (request.type === 2 /* Bold */) {\n parent = boldDomNode;\n }\n if (request.type === 1 /* Italic */) {\n parent = italicDomNode;\n }\n parent.appendChild(document.createElement('br'));\n const testElement = document.createElement('span');\n DomCharWidthReader._render(testElement, request);\n parent.appendChild(testElement);\n testElements.push(testElement);\n }\n this._container = container;\n this._testElements = testElements;\n }\n static _render(testElement, request) {\n if (request.chr === ' ') {\n let htmlString = '\\u00a0';\n // Repeat character 256 (2^8) times\n for (let i = 0; i < 8; i++) {\n htmlString += htmlString;\n }\n testElement.innerText = htmlString;\n }\n else {\n let testString = request.chr;\n // Repeat character 256 (2^8) times\n for (let i = 0; i < 8; i++) {\n testString += testString;\n }\n testElement.textContent = testString;\n }\n }\n _readFromDomElements() {\n for (let i = 0, len = this._requests.length; i < len; i++) {\n const request = this._requests[i];\n const testElement = this._testElements[i];\n request.fulfill(testElement.offsetWidth / 256);\n }\n }\n}\nexport function readCharWidths(bareFontInfo, requests) {\n const reader = new DomCharWidthReader(bareFontInfo, requests);\n reader.read();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from '../../../base/browser/browser.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { CharWidthRequest, readCharWidths } from './charWidthReader.js';\nimport { ElementSizeObserver } from './elementSizeObserver.js';\nimport { CommonEditorConfiguration } from '../../common/config/commonEditorConfig.js';\nimport { EditorFontLigatures, EDITOR_FONT_DEFAULTS } from '../../common/config/editorOptions.js';\nimport { FontInfo } from '../../common/config/fontInfo.js';\nclass CSSBasedConfigurationCache {\n constructor() {\n this._keys = Object.create(null);\n this._values = Object.create(null);\n }\n has(item) {\n const itemId = item.getId();\n return !!this._values[itemId];\n }\n get(item) {\n const itemId = item.getId();\n return this._values[itemId];\n }\n put(item, value) {\n const itemId = item.getId();\n this._keys[itemId] = item;\n this._values[itemId] = value;\n }\n remove(item) {\n const itemId = item.getId();\n delete this._keys[itemId];\n delete this._values[itemId];\n }\n getValues() {\n return Object.keys(this._keys).map(id => this._values[id]);\n }\n}\nexport function clearAllFontInfos() {\n CSSBasedConfiguration.INSTANCE.clearCache();\n}\nclass CSSBasedConfiguration extends Disposable {\n constructor() {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._cache = new CSSBasedConfigurationCache();\n this._evictUntrustedReadingsTimeout = -1;\n }\n dispose() {\n if (this._evictUntrustedReadingsTimeout !== -1) {\n clearTimeout(this._evictUntrustedReadingsTimeout);\n this._evictUntrustedReadingsTimeout = -1;\n }\n super.dispose();\n }\n clearCache() {\n this._cache = new CSSBasedConfigurationCache();\n this._onDidChange.fire();\n }\n _writeToCache(item, value) {\n this._cache.put(item, value);\n if (!value.isTrusted && this._evictUntrustedReadingsTimeout === -1) {\n // Try reading again after some time\n this._evictUntrustedReadingsTimeout = setTimeout(() => {\n this._evictUntrustedReadingsTimeout = -1;\n this._evictUntrustedReadings();\n }, 5000);\n }\n }\n _evictUntrustedReadings() {\n const values = this._cache.getValues();\n let somethingRemoved = false;\n for (const item of values) {\n if (!item.isTrusted) {\n somethingRemoved = true;\n this._cache.remove(item);\n }\n }\n if (somethingRemoved) {\n this._onDidChange.fire();\n }\n }\n readConfiguration(bareFontInfo) {\n if (!this._cache.has(bareFontInfo)) {\n let readConfig = CSSBasedConfiguration._actualReadConfiguration(bareFontInfo);\n if (readConfig.typicalHalfwidthCharacterWidth <= 2 || readConfig.typicalFullwidthCharacterWidth <= 2 || readConfig.spaceWidth <= 2 || readConfig.maxDigitWidth <= 2) {\n // Hey, it's Bug 14341 ... we couldn't read\n readConfig = new FontInfo({\n zoomLevel: browser.getZoomLevel(),\n pixelRatio: browser.getPixelRatio(),\n fontFamily: readConfig.fontFamily,\n fontWeight: readConfig.fontWeight,\n fontSize: readConfig.fontSize,\n fontFeatureSettings: readConfig.fontFeatureSettings,\n lineHeight: readConfig.lineHeight,\n letterSpacing: readConfig.letterSpacing,\n isMonospace: readConfig.isMonospace,\n typicalHalfwidthCharacterWidth: Math.max(readConfig.typicalHalfwidthCharacterWidth, 5),\n typicalFullwidthCharacterWidth: Math.max(readConfig.typicalFullwidthCharacterWidth, 5),\n canUseHalfwidthRightwardsArrow: readConfig.canUseHalfwidthRightwardsArrow,\n spaceWidth: Math.max(readConfig.spaceWidth, 5),\n middotWidth: Math.max(readConfig.middotWidth, 5),\n wsmiddotWidth: Math.max(readConfig.wsmiddotWidth, 5),\n maxDigitWidth: Math.max(readConfig.maxDigitWidth, 5),\n }, false);\n }\n this._writeToCache(bareFontInfo, readConfig);\n }\n return this._cache.get(bareFontInfo);\n }\n static createRequest(chr, type, all, monospace) {\n const result = new CharWidthRequest(chr, type);\n all.push(result);\n if (monospace) {\n monospace.push(result);\n }\n return result;\n }\n static _actualReadConfiguration(bareFontInfo) {\n const all = [];\n const monospace = [];\n const typicalHalfwidthCharacter = this.createRequest('n', 0 /* Regular */, all, monospace);\n const typicalFullwidthCharacter = this.createRequest('\\uff4d', 0 /* Regular */, all, null);\n const space = this.createRequest(' ', 0 /* Regular */, all, monospace);\n const digit0 = this.createRequest('0', 0 /* Regular */, all, monospace);\n const digit1 = this.createRequest('1', 0 /* Regular */, all, monospace);\n const digit2 = this.createRequest('2', 0 /* Regular */, all, monospace);\n const digit3 = this.createRequest('3', 0 /* Regular */, all, monospace);\n const digit4 = this.createRequest('4', 0 /* Regular */, all, monospace);\n const digit5 = this.createRequest('5', 0 /* Regular */, all, monospace);\n const digit6 = this.createRequest('6', 0 /* Regular */, all, monospace);\n const digit7 = this.createRequest('7', 0 /* Regular */, all, monospace);\n const digit8 = this.createRequest('8', 0 /* Regular */, all, monospace);\n const digit9 = this.createRequest('9', 0 /* Regular */, all, monospace);\n // monospace test: used for whitespace rendering\n const rightwardsArrow = this.createRequest('→', 0 /* Regular */, all, monospace);\n const halfwidthRightwardsArrow = this.createRequest('→', 0 /* Regular */, all, null);\n // U+00B7 - MIDDLE DOT\n const middot = this.createRequest('·', 0 /* Regular */, all, monospace);\n // U+2E31 - WORD SEPARATOR MIDDLE DOT\n const wsmiddotWidth = this.createRequest(String.fromCharCode(0x2E31), 0 /* Regular */, all, null);\n // monospace test: some characters\n const monospaceTestChars = '|/-_ilm%';\n for (let i = 0, len = monospaceTestChars.length; i < len; i++) {\n this.createRequest(monospaceTestChars.charAt(i), 0 /* Regular */, all, monospace);\n this.createRequest(monospaceTestChars.charAt(i), 1 /* Italic */, all, monospace);\n this.createRequest(monospaceTestChars.charAt(i), 2 /* Bold */, all, monospace);\n }\n readCharWidths(bareFontInfo, all);\n const maxDigitWidth = Math.max(digit0.width, digit1.width, digit2.width, digit3.width, digit4.width, digit5.width, digit6.width, digit7.width, digit8.width, digit9.width);\n let isMonospace = (bareFontInfo.fontFeatureSettings === EditorFontLigatures.OFF);\n const referenceWidth = monospace[0].width;\n for (let i = 1, len = monospace.length; isMonospace && i < len; i++) {\n const diff = referenceWidth - monospace[i].width;\n if (diff < -0.001 || diff > 0.001) {\n isMonospace = false;\n break;\n }\n }\n let canUseHalfwidthRightwardsArrow = true;\n if (isMonospace && halfwidthRightwardsArrow.width !== referenceWidth) {\n // using a halfwidth rightwards arrow would break monospace...\n canUseHalfwidthRightwardsArrow = false;\n }\n if (halfwidthRightwardsArrow.width > rightwardsArrow.width) {\n // using a halfwidth rightwards arrow would paint a larger arrow than a regular rightwards arrow\n canUseHalfwidthRightwardsArrow = false;\n }\n // let's trust the zoom level only 2s after it was changed.\n const canTrustBrowserZoomLevel = (browser.getTimeSinceLastZoomLevelChanged() > 2000);\n return new FontInfo({\n zoomLevel: browser.getZoomLevel(),\n pixelRatio: browser.getPixelRatio(),\n fontFamily: bareFontInfo.fontFamily,\n fontWeight: bareFontInfo.fontWeight,\n fontSize: bareFontInfo.fontSize,\n fontFeatureSettings: bareFontInfo.fontFeatureSettings,\n lineHeight: bareFontInfo.lineHeight,\n letterSpacing: bareFontInfo.letterSpacing,\n isMonospace: isMonospace,\n typicalHalfwidthCharacterWidth: typicalHalfwidthCharacter.width,\n typicalFullwidthCharacterWidth: typicalFullwidthCharacter.width,\n canUseHalfwidthRightwardsArrow: canUseHalfwidthRightwardsArrow,\n spaceWidth: space.width,\n middotWidth: middot.width,\n wsmiddotWidth: wsmiddotWidth.width,\n maxDigitWidth: maxDigitWidth\n }, canTrustBrowserZoomLevel);\n }\n}\nCSSBasedConfiguration.INSTANCE = new CSSBasedConfiguration();\nexport class Configuration extends CommonEditorConfiguration {\n constructor(isSimpleWidget, options, referenceDomElement = null, accessibilityService) {\n super(isSimpleWidget, options);\n this.accessibilityService = accessibilityService;\n this._elementSizeObserver = this._register(new ElementSizeObserver(referenceDomElement, options.dimension, () => this._recomputeOptions()));\n this._register(CSSBasedConfiguration.INSTANCE.onDidChange(() => this._recomputeOptions()));\n if (this._validatedOptions.get(10 /* automaticLayout */)) {\n this._elementSizeObserver.startObserving();\n }\n this._register(browser.onDidChangeZoomLevel(_ => this._recomputeOptions()));\n this._register(this.accessibilityService.onDidChangeScreenReaderOptimized(() => this._recomputeOptions()));\n this._recomputeOptions();\n }\n static applyFontInfoSlow(domNode, fontInfo) {\n domNode.style.fontFamily = fontInfo.getMassagedFontFamily(browser.isSafari ? EDITOR_FONT_DEFAULTS.fontFamily : null);\n domNode.style.fontWeight = fontInfo.fontWeight;\n domNode.style.fontSize = fontInfo.fontSize + 'px';\n domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n domNode.style.lineHeight = fontInfo.lineHeight + 'px';\n domNode.style.letterSpacing = fontInfo.letterSpacing + 'px';\n }\n static applyFontInfo(domNode, fontInfo) {\n domNode.setFontFamily(fontInfo.getMassagedFontFamily(browser.isSafari ? EDITOR_FONT_DEFAULTS.fontFamily : null));\n domNode.setFontWeight(fontInfo.fontWeight);\n domNode.setFontSize(fontInfo.fontSize);\n domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);\n domNode.setLineHeight(fontInfo.lineHeight);\n domNode.setLetterSpacing(fontInfo.letterSpacing);\n }\n observeReferenceElement(dimension) {\n this._elementSizeObserver.observe(dimension);\n }\n updatePixelRatio() {\n this._recomputeOptions();\n }\n static _getExtraEditorClassName() {\n let extra = '';\n if (!browser.isSafari && !browser.isWebkitWebView) {\n // Use user-select: none in all browsers except Safari and native macOS WebView\n extra += 'no-user-select ';\n }\n if (browser.isSafari) {\n // See https://github.com/microsoft/vscode/issues/108822\n extra += 'no-minimap-shadow ';\n }\n if (platform.isMacintosh) {\n extra += 'mac ';\n }\n return extra;\n }\n _getEnvConfiguration() {\n return {\n extraEditorClassName: Configuration._getExtraEditorClassName(),\n outerWidth: this._elementSizeObserver.getWidth(),\n outerHeight: this._elementSizeObserver.getHeight(),\n emptySelectionClipboard: browser.isWebKit || browser.isFirefox,\n pixelRatio: browser.getPixelRatio(),\n zoomLevel: browser.getZoomLevel(),\n accessibilitySupport: (this.accessibilityService.isScreenReaderOptimized()\n ? 2 /* Enabled */\n : this.accessibilityService.getAccessibilitySupport())\n };\n }\n readConfiguration(bareFontInfo) {\n return CSSBasedConfiguration.INSTANCE.readConfiguration(bareFontInfo);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport * as Codicons from '../../../base/common/codicons.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { localize } from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\nimport { ThemeIcon } from './themeService.js';\n// ------ API types\n// icon registry\nexport const Extensions = {\n IconContribution: 'base.contributions.icons'\n};\nclass IconRegistry {\n constructor() {\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.iconSchema = {\n definitions: {\n icons: {\n type: 'object',\n properties: {\n fontId: { type: 'string', description: localize('iconDefintion.fontId', 'The id of the font to use. If not set, the font that is defined first is used.') },\n fontCharacter: { type: 'string', description: localize('iconDefintion.fontCharacter', 'The font character associated with the icon definition.') }\n },\n additionalProperties: false,\n defaultSnippets: [{ body: { fontCharacter: '\\\\\\\\e030' } }]\n }\n },\n type: 'object',\n properties: {}\n };\n this.iconReferenceSchema = { type: 'string', pattern: `^${Codicons.CSSIcon.iconNameExpression}$`, enum: [], enumDescriptions: [] };\n this.iconsById = {};\n this.iconFontsById = {};\n }\n registerIcon(id, defaults, description, deprecationMessage) {\n const existing = this.iconsById[id];\n if (existing) {\n if (description && !existing.description) {\n existing.description = description;\n this.iconSchema.properties[id].markdownDescription = `${description} $(${id})`;\n const enumIndex = this.iconReferenceSchema.enum.indexOf(id);\n if (enumIndex !== -1) {\n this.iconReferenceSchema.enumDescriptions[enumIndex] = description;\n }\n this._onDidChange.fire();\n }\n return existing;\n }\n let iconContribution = { id, description, defaults, deprecationMessage };\n this.iconsById[id] = iconContribution;\n let propertySchema = { $ref: '#/definitions/icons' };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n if (description) {\n propertySchema.markdownDescription = `${description}: $(${id})`;\n }\n this.iconSchema.properties[id] = propertySchema;\n this.iconReferenceSchema.enum.push(id);\n this.iconReferenceSchema.enumDescriptions.push(description || '');\n this._onDidChange.fire();\n return { id };\n }\n getIcons() {\n return Object.keys(this.iconsById).map(id => this.iconsById[id]);\n }\n getIcon(id) {\n return this.iconsById[id];\n }\n getIconSchema() {\n return this.iconSchema;\n }\n getIconFont(id) {\n return this.iconFontsById[id];\n }\n toString() {\n const sorter = (i1, i2) => {\n return i1.id.localeCompare(i2.id);\n };\n const classNames = (i) => {\n while (ThemeIcon.isThemeIcon(i.defaults)) {\n i = this.iconsById[i.defaults.id];\n }\n return `codicon codicon-${i ? i.id : ''}`;\n };\n let reference = [];\n reference.push(`| preview | identifier | default codicon ID | description`);\n reference.push(`| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |`);\n const contributions = Object.keys(this.iconsById).map(key => this.iconsById[key]);\n for (const i of contributions.filter(i => !!i.description).sort(sorter)) {\n reference.push(`||${i.id}|${ThemeIcon.isThemeIcon(i.defaults) ? i.defaults.id : i.id}|${i.description || ''}|`);\n }\n reference.push(`| preview | identifier `);\n reference.push(`| ----------- | --------------------------------- |`);\n for (const i of contributions.filter(i => !ThemeIcon.isThemeIcon(i.defaults)).sort(sorter)) {\n reference.push(`||${i.id}|`);\n }\n return reference.join('\\n');\n }\n}\nconst iconRegistry = new IconRegistry();\nplatform.Registry.add(Extensions.IconContribution, iconRegistry);\nexport function registerIcon(id, defaults, description, deprecationMessage) {\n return iconRegistry.registerIcon(id, defaults, description, deprecationMessage);\n}\nexport function getIconRegistry() {\n return iconRegistry;\n}\nfunction initialize() {\n for (const icon of Codicons.iconRegistry.all) {\n iconRegistry.registerIcon(icon.id, icon.definition, icon.description);\n }\n Codicons.iconRegistry.onDidRegister(icon => iconRegistry.registerIcon(icon.id, icon.definition, icon.description));\n}\ninitialize();\nexport const iconsSchemaId = 'vscode://schemas/icons';\nlet schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(iconsSchemaId, iconRegistry.getIconSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(iconsSchemaId), 200);\niconRegistry.onDidChange(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n//setTimeout(_ => console.log(iconRegistry.toString()), 5000);\n// common icons\nexport const widgetClose = registerIcon('widget-close', Codicons.Codicon.close, localize('widgetClose', 'Icon for the close action in widgets.'));\n","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport const KeyCodes = {\n backspace: 8 as 8,\n tab: 9 as 9,\n enter: 13 as 13,\n shift: 16 as 16,\n ctrl: 17 as 17,\n alt: 18 as 18,\n pauseBreak: 19 as 19,\n capslock: 20 as 20,\n escape: 27 as 27,\n space: 32 as 32,\n pageUp: 33 as 33,\n pageDown: 34 as 34,\n end: 35 as 35,\n home: 36 as 36,\n left: 37 as 37,\n up: 38 as 38,\n right: 39 as 39,\n down: 40 as 40,\n insert: 45 as 45,\n del: 46 as 46,\n zero: 48 as 48,\n one: 49 as 49,\n two: 50 as 50,\n three: 51 as 51,\n four: 52 as 52,\n five: 53 as 53,\n six: 54 as 54,\n seven: 55 as 55,\n eight: 56 as 56,\n nine: 57 as 57,\n a: 65 as 65,\n b: 66 as 66,\n c: 67 as 67,\n d: 68 as 68,\n e: 69 as 69,\n f: 70 as 70,\n g: 71 as 71,\n h: 72 as 72,\n i: 73 as 73,\n j: 74 as 74,\n k: 75 as 75,\n l: 76 as 76,\n m: 77 as 77,\n n: 78 as 78,\n o: 79 as 79,\n p: 80 as 80,\n q: 81 as 81,\n r: 82 as 82,\n s: 83 as 83,\n t: 84 as 84,\n u: 85 as 85,\n v: 86 as 86,\n w: 87 as 87,\n x: 88 as 88,\n y: 89 as 89,\n z: 90 as 90,\n leftWindow: 91 as 91,\n rightWindow: 92 as 92,\n select: 93 as 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96 as 96,\n one_numpad: 97 as 97,\n two_numpad: 98 as 98,\n three_numpad: 99 as 99,\n four_numpad: 100 as 100,\n five_numpad: 101 as 101,\n six_numpad: 102 as 102,\n seven_numpad: 103 as 103,\n eight_numpad: 104 as 104,\n nine_numpad: 105 as 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106 as 106,\n add: 107 as 107,\n subtract: 109 as 109,\n decimalPoint: 110 as 110,\n divide: 111 as 111,\n f1: 112 as 112,\n f2: 113 as 113,\n f3: 114 as 114,\n f4: 115 as 115,\n f5: 116 as 116,\n f6: 117 as 117,\n f7: 118 as 118,\n f8: 119 as 119,\n f9: 120 as 120,\n f10: 121 as 121,\n f11: 122 as 122,\n f12: 123 as 123,\n numlock: 144 as 144,\n scrollLock: 145 as 145,\n semicolon: 186 as 186,\n equalSign: 187 as 187,\n comma: 188 as 188,\n dash: 189 as 189,\n period: 190 as 190,\n forwardSlash: 191 as 191,\n graveAccent: 192 as 192,\n openBracket: 219 as 219,\n backSlash: 220 as 220,\n closeBracket: 221 as 221,\n singleQuote: 222 as 222,\n};\nexport type KeyCodes = number;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../dom.js';\nimport { StandardKeyboardEvent } from '../keyboardEvent.js';\nimport { StandardMouseEvent } from '../mouseEvent.js';\nimport { Gesture } from '../touch.js';\nimport { Disposable } from '../../common/lifecycle.js';\nexport class Widget extends Disposable {\n onclick(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.CLICK, (e) => listener(new StandardMouseEvent(e))));\n }\n onmousedown(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_DOWN, (e) => listener(new StandardMouseEvent(e))));\n }\n onmouseover(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.MOUSE_OVER, (e) => listener(new StandardMouseEvent(e))));\n }\n onnonbubblingmouseout(domNode, listener) {\n this._register(dom.addDisposableNonBubblingMouseOutListener(domNode, (e) => listener(new StandardMouseEvent(e))));\n }\n onkeydown(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_DOWN, (e) => listener(new StandardKeyboardEvent(e))));\n }\n onkeyup(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.KEY_UP, (e) => listener(new StandardKeyboardEvent(e))));\n }\n oninput(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.INPUT, listener));\n }\n onblur(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.BLUR, listener));\n }\n onfocus(domNode, listener) {\n this._register(dom.addDisposableListener(domNode, dom.EventType.FOCUS, listener));\n }\n ignoreGesture(domNode) {\n Gesture.ignoreTarget(domNode);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * An event describing that a model has been reset to a new value.\n * @internal\n */\nexport class ModelRawFlush {\n constructor() {\n this.changeType = 1 /* Flush */;\n }\n}\n/**\n * Represents text injected on a line\n * @internal\n */\nexport class LineInjectedText {\n constructor(ownerId, lineNumber, column, options, order) {\n this.ownerId = ownerId;\n this.lineNumber = lineNumber;\n this.column = column;\n this.options = options;\n this.order = order;\n }\n static applyInjectedText(lineText, injectedTexts) {\n if (!injectedTexts || injectedTexts.length === 0) {\n return lineText;\n }\n let result = '';\n let lastOriginalOffset = 0;\n for (const injectedText of injectedTexts) {\n result += lineText.substring(lastOriginalOffset, injectedText.column - 1);\n lastOriginalOffset = injectedText.column - 1;\n result += injectedText.options.content;\n }\n result += lineText.substring(lastOriginalOffset);\n return result;\n }\n static fromDecorations(decorations) {\n const result = [];\n for (const decoration of decorations) {\n if (decoration.options.before && decoration.options.before.content.length > 0) {\n result.push(new LineInjectedText(decoration.ownerId, decoration.range.startLineNumber, decoration.range.startColumn, decoration.options.before, 0));\n }\n if (decoration.options.after && decoration.options.after.content.length > 0) {\n result.push(new LineInjectedText(decoration.ownerId, decoration.range.endLineNumber, decoration.range.endColumn, decoration.options.after, 1));\n }\n }\n result.sort((a, b) => {\n if (a.lineNumber === b.lineNumber) {\n if (a.column === b.column) {\n return a.order - b.order;\n }\n return a.column - b.column;\n }\n return a.lineNumber - b.lineNumber;\n });\n return result;\n }\n}\n/**\n * An event describing that a line has changed in a model.\n * @internal\n */\nexport class ModelRawLineChanged {\n constructor(lineNumber, detail, injectedText) {\n this.changeType = 2 /* LineChanged */;\n this.lineNumber = lineNumber;\n this.detail = detail;\n this.injectedText = injectedText;\n }\n}\n/**\n * An event describing that line(s) have been deleted in a model.\n * @internal\n */\nexport class ModelRawLinesDeleted {\n constructor(fromLineNumber, toLineNumber) {\n this.changeType = 3 /* LinesDeleted */;\n this.fromLineNumber = fromLineNumber;\n this.toLineNumber = toLineNumber;\n }\n}\n/**\n * An event describing that line(s) have been inserted in a model.\n * @internal\n */\nexport class ModelRawLinesInserted {\n constructor(fromLineNumber, toLineNumber, detail, injectedTexts) {\n this.changeType = 4 /* LinesInserted */;\n this.injectedTexts = injectedTexts;\n this.fromLineNumber = fromLineNumber;\n this.toLineNumber = toLineNumber;\n this.detail = detail;\n }\n}\n/**\n * An event describing that a model has had its EOL changed.\n * @internal\n */\nexport class ModelRawEOLChanged {\n constructor() {\n this.changeType = 5 /* EOLChanged */;\n }\n}\n/**\n * An event describing a change in the text of a model.\n * @internal\n */\nexport class ModelRawContentChangedEvent {\n constructor(changes, versionId, isUndoing, isRedoing) {\n this.changes = changes;\n this.versionId = versionId;\n this.isUndoing = isUndoing;\n this.isRedoing = isRedoing;\n this.resultingSelection = null;\n }\n containsEvent(type) {\n for (let i = 0, len = this.changes.length; i < len; i++) {\n const change = this.changes[i];\n if (change.changeType === type) {\n return true;\n }\n }\n return false;\n }\n static merge(a, b) {\n const changes = [].concat(a.changes).concat(b.changes);\n const versionId = b.versionId;\n const isUndoing = (a.isUndoing || b.isUndoing);\n const isRedoing = (a.isRedoing || b.isRedoing);\n return new ModelRawContentChangedEvent(changes, versionId, isUndoing, isRedoing);\n }\n}\n/**\n * An event describing a change in injected text.\n * @internal\n */\nexport class ModelInjectedTextChangedEvent {\n constructor(changes) {\n this.changes = changes;\n }\n}\n/**\n * @internal\n */\nexport class InternalModelContentChangeEvent {\n constructor(rawContentChangedEvent, contentChangedEvent) {\n this.rawContentChangedEvent = rawContentChangedEvent;\n this.contentChangedEvent = contentChangedEvent;\n }\n merge(other) {\n const rawContentChangedEvent = ModelRawContentChangedEvent.merge(this.rawContentChangedEvent, other.rawContentChangedEvent);\n const contentChangedEvent = InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent, other.contentChangedEvent);\n return new InternalModelContentChangeEvent(rawContentChangedEvent, contentChangedEvent);\n }\n static _mergeChangeEvents(a, b) {\n const changes = [].concat(a.changes).concat(b.changes);\n const eol = b.eol;\n const versionId = b.versionId;\n const isUndoing = (a.isUndoing || b.isUndoing);\n const isRedoing = (a.isRedoing || b.isRedoing);\n const isFlush = (a.isFlush || b.isFlush);\n return {\n changes: changes,\n eol: eol,\n versionId: versionId,\n isUndoing: isUndoing,\n isRedoing: isRedoing,\n isFlush: isFlush\n };\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { activeContrastBorder, badgeBackground, badgeForeground, contrastBorder, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropBackground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, menuBackground, menuBorder, menuForeground, menuSelectionBackground, menuSelectionBorder, menuSelectionForeground, menuSeparatorBackground, resolveColorValue, tableColumnsBorder, treeIndentGuidesStroke, widgetShadow } from './colorRegistry.js';\nexport function computeStyles(theme, styleMap) {\n const styles = Object.create(null);\n for (let key in styleMap) {\n const value = styleMap[key];\n if (value) {\n styles[key] = resolveColorValue(value, theme);\n }\n }\n return styles;\n}\nexport function attachStyler(themeService, styleMap, widgetOrCallback) {\n function applyStyles() {\n const styles = computeStyles(themeService.getColorTheme(), styleMap);\n if (typeof widgetOrCallback === 'function') {\n widgetOrCallback(styles);\n }\n else {\n widgetOrCallback.style(styles);\n }\n }\n applyStyles();\n return themeService.onDidColorThemeChange(applyStyles);\n}\nexport function attachBadgeStyler(widget, themeService, style) {\n return attachStyler(themeService, {\n badgeBackground: (style === null || style === void 0 ? void 0 : style.badgeBackground) || badgeBackground,\n badgeForeground: (style === null || style === void 0 ? void 0 : style.badgeForeground) || badgeForeground,\n badgeBorder: contrastBorder\n }, widget);\n}\nexport function attachListStyler(widget, themeService, overrides) {\n return attachStyler(themeService, Object.assign(Object.assign({}, defaultListStyles), (overrides || {})), widget);\n}\nexport const defaultListStyles = {\n listFocusBackground,\n listFocusForeground,\n listFocusOutline,\n listActiveSelectionBackground,\n listActiveSelectionForeground,\n listActiveSelectionIconForeground,\n listFocusAndSelectionBackground: listActiveSelectionBackground,\n listFocusAndSelectionForeground: listActiveSelectionForeground,\n listInactiveSelectionBackground,\n listInactiveSelectionIconForeground,\n listInactiveSelectionForeground,\n listInactiveFocusBackground,\n listInactiveFocusOutline,\n listHoverBackground,\n listHoverForeground,\n listDropBackground,\n listSelectionOutline: activeContrastBorder,\n listHoverOutline: activeContrastBorder,\n listFilterWidgetBackground,\n listFilterWidgetOutline,\n listFilterWidgetNoMatchesOutline,\n listMatchesShadow: widgetShadow,\n treeIndentGuidesStroke,\n tableColumnsBorder\n};\nexport const defaultMenuStyles = {\n shadowColor: widgetShadow,\n borderColor: menuBorder,\n foregroundColor: menuForeground,\n backgroundColor: menuBackground,\n selectionForegroundColor: menuSelectionForeground,\n selectionBackgroundColor: menuSelectionBackground,\n selectionBorderColor: menuSelectionBorder,\n separatorColor: menuSeparatorBackground\n};\nexport function attachMenuStyler(widget, themeService, style) {\n return attachStyler(themeService, Object.assign(Object.assign({}, defaultMenuStyles), style), widget);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { defaultGenerator } from '../../../base/common/idGenerator.js';\nimport { dispose } from '../../../base/common/lifecycle.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nimport { basename, extUri } from '../../../base/common/resources.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../../common/core/range.js';\nimport { localize } from '../../../nls.js';\nexport class OneReference {\n constructor(isProviderFirst, parent, link, _rangeCallback) {\n this.isProviderFirst = isProviderFirst;\n this.parent = parent;\n this.link = link;\n this._rangeCallback = _rangeCallback;\n this.id = defaultGenerator.nextId();\n }\n get uri() {\n return this.link.uri;\n }\n get range() {\n var _a, _b;\n return (_b = (_a = this._range) !== null && _a !== void 0 ? _a : this.link.targetSelectionRange) !== null && _b !== void 0 ? _b : this.link.range;\n }\n set range(value) {\n this._range = value;\n this._rangeCallback(this);\n }\n get ariaMessage() {\n var _a;\n const preview = (_a = this.parent.getPreview(this)) === null || _a === void 0 ? void 0 : _a.preview(this.range);\n if (!preview) {\n return localize('aria.oneReference', \"symbol in {0} on line {1} at column {2}\", basename(this.uri), this.range.startLineNumber, this.range.startColumn);\n }\n else {\n return localize({ key: 'aria.oneReference.preview', comment: ['Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code'] }, \"symbol in {0} on line {1} at column {2}, {3}\", basename(this.uri), this.range.startLineNumber, this.range.startColumn, preview.value);\n }\n }\n}\nexport class FilePreview {\n constructor(_modelReference) {\n this._modelReference = _modelReference;\n }\n dispose() {\n this._modelReference.dispose();\n }\n preview(range, n = 8) {\n const model = this._modelReference.object.textEditorModel;\n if (!model) {\n return undefined;\n }\n const { startLineNumber, startColumn, endLineNumber, endColumn } = range;\n const word = model.getWordUntilPosition({ lineNumber: startLineNumber, column: startColumn - n });\n const beforeRange = new Range(startLineNumber, word.startColumn, startLineNumber, startColumn);\n const afterRange = new Range(endLineNumber, endColumn, endLineNumber, 1073741824 /* MAX_SAFE_SMALL_INTEGER */);\n const before = model.getValueInRange(beforeRange).replace(/^\\s+/, '');\n const inside = model.getValueInRange(range);\n const after = model.getValueInRange(afterRange).replace(/\\s+$/, '');\n return {\n value: before + inside + after,\n highlight: { start: before.length, end: before.length + inside.length }\n };\n }\n}\nexport class FileReferences {\n constructor(parent, uri) {\n this.parent = parent;\n this.uri = uri;\n this.children = [];\n this._previews = new ResourceMap();\n }\n dispose() {\n dispose(this._previews.values());\n this._previews.clear();\n }\n getPreview(child) {\n return this._previews.get(child.uri);\n }\n get ariaMessage() {\n const len = this.children.length;\n if (len === 1) {\n return localize('aria.fileReferences.1', \"1 symbol in {0}, full path {1}\", basename(this.uri), this.uri.fsPath);\n }\n else {\n return localize('aria.fileReferences.N', \"{0} symbols in {1}, full path {2}\", len, basename(this.uri), this.uri.fsPath);\n }\n }\n resolve(textModelResolverService) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._previews.size !== 0) {\n return this;\n }\n for (let child of this.children) {\n if (this._previews.has(child.uri)) {\n continue;\n }\n try {\n const ref = yield textModelResolverService.createModelReference(child.uri);\n this._previews.set(child.uri, new FilePreview(ref));\n }\n catch (err) {\n onUnexpectedError(err);\n }\n }\n return this;\n });\n }\n}\nexport class ReferencesModel {\n constructor(links, title) {\n this.groups = [];\n this.references = [];\n this._onDidChangeReferenceRange = new Emitter();\n this.onDidChangeReferenceRange = this._onDidChangeReferenceRange.event;\n this._links = links;\n this._title = title;\n // grouping and sorting\n const [providersFirst] = links;\n links.sort(ReferencesModel._compareReferences);\n let current;\n for (let link of links) {\n if (!current || !extUri.isEqual(current.uri, link.uri, true)) {\n // new group\n current = new FileReferences(this, link.uri);\n this.groups.push(current);\n }\n // append, check for equality first!\n if (current.children.length === 0 || ReferencesModel._compareReferences(link, current.children[current.children.length - 1]) !== 0) {\n const oneRef = new OneReference(providersFirst === link, current, link, ref => this._onDidChangeReferenceRange.fire(ref));\n this.references.push(oneRef);\n current.children.push(oneRef);\n }\n }\n }\n dispose() {\n dispose(this.groups);\n this._onDidChangeReferenceRange.dispose();\n this.groups.length = 0;\n }\n clone() {\n return new ReferencesModel(this._links, this._title);\n }\n get title() {\n return this._title;\n }\n get isEmpty() {\n return this.groups.length === 0;\n }\n get ariaMessage() {\n if (this.isEmpty) {\n return localize('aria.result.0', \"No results found\");\n }\n else if (this.references.length === 1) {\n return localize('aria.result.1', \"Found 1 symbol in {0}\", this.references[0].uri.fsPath);\n }\n else if (this.groups.length === 1) {\n return localize('aria.result.n1', \"Found {0} symbols in {1}\", this.references.length, this.groups[0].uri.fsPath);\n }\n else {\n return localize('aria.result.nm', \"Found {0} symbols in {1} files\", this.references.length, this.groups.length);\n }\n }\n nextOrPreviousReference(reference, next) {\n let { parent } = reference;\n let idx = parent.children.indexOf(reference);\n let childCount = parent.children.length;\n let groupCount = parent.parent.groups.length;\n if (groupCount === 1 || next && idx + 1 < childCount || !next && idx > 0) {\n // cycling within one file\n if (next) {\n idx = (idx + 1) % childCount;\n }\n else {\n idx = (idx + childCount - 1) % childCount;\n }\n return parent.children[idx];\n }\n idx = parent.parent.groups.indexOf(parent);\n if (next) {\n idx = (idx + 1) % groupCount;\n return parent.parent.groups[idx].children[0];\n }\n else {\n idx = (idx + groupCount - 1) % groupCount;\n return parent.parent.groups[idx].children[parent.parent.groups[idx].children.length - 1];\n }\n }\n nearestReference(resource, position) {\n const nearest = this.references.map((ref, idx) => {\n return {\n idx,\n prefixLen: strings.commonPrefixLength(ref.uri.toString(), resource.toString()),\n offsetDist: Math.abs(ref.range.startLineNumber - position.lineNumber) * 100 + Math.abs(ref.range.startColumn - position.column)\n };\n }).sort((a, b) => {\n if (a.prefixLen > b.prefixLen) {\n return -1;\n }\n else if (a.prefixLen < b.prefixLen) {\n return 1;\n }\n else if (a.offsetDist < b.offsetDist) {\n return -1;\n }\n else if (a.offsetDist > b.offsetDist) {\n return 1;\n }\n else {\n return 0;\n }\n })[0];\n if (nearest) {\n return this.references[nearest.idx];\n }\n return undefined;\n }\n referenceAt(resource, position) {\n for (const ref of this.references) {\n if (ref.uri.toString() === resource.toString()) {\n if (Range.containsPosition(ref.range, position)) {\n return ref;\n }\n }\n }\n return undefined;\n }\n firstReference() {\n for (const ref of this.references) {\n if (ref.isProviderFirst) {\n return ref;\n }\n }\n return this.references[0];\n }\n static _compareReferences(a, b) {\n return extUri.compare(a.uri, b.uri) || Range.compareRangesUsingStarts(a.range, b.range);\n }\n}\n","import { createAuthContext } from '@react-keycloak/core';\nexport var reactKeycloakWebContext = createAuthContext();\nexport var ReactKeycloakWebContextConsumer = reactKeycloakWebContext.Consumer;\n//# sourceMappingURL=context.js.map","import { createAuthProvider } from '@react-keycloak/core';\nimport { reactKeycloakWebContext } from './context';\nexport var ReactKeycloakProvider = createAuthProvider(reactKeycloakWebContext);\n//# sourceMappingURL=provider.js.map","import { useContext } from 'react';\nimport { reactKeycloakWebContext } from './context';\nexport function useKeycloak() {\n var ctx = useContext(reactKeycloakWebContext);\n if (!ctx) {\n throw new Error('useKeycloak hook must be used inside ReactKeycloakProvider context');\n }\n if (!ctx.authClient) {\n throw new Error('authClient has not been assigned to ReactKeycloakProvider');\n }\n var authClient = ctx.authClient, initialized = ctx.initialized;\n return {\n initialized: initialized,\n keycloak: authClient,\n };\n}\n//# sourceMappingURL=useKeycloak.js.map","import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport class Progress {\n constructor(callback) {\n this.callback = callback;\n }\n report(item) {\n this._value = item;\n this.callback(this._value);\n }\n}\nProgress.None = Object.freeze({ report() { } });\nexport const IEditorProgressService = createDecorator('editorProgressService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorCommand, registerEditorCommand } from '../editorExtensions.js';\nimport { IContextKeyService, RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { localize } from '../../../nls.js';\nconst IEditorCancellationTokens = createDecorator('IEditorCancelService');\nconst ctxCancellableOperation = new RawContextKey('cancellableOperation', false, localize('cancellableOperation', 'Whether the editor runs a cancellable operation, e.g. like \\'Peek References\\''));\nregisterSingleton(IEditorCancellationTokens, class {\n constructor() {\n this._tokens = new WeakMap();\n }\n add(editor, cts) {\n let data = this._tokens.get(editor);\n if (!data) {\n data = editor.invokeWithinContext(accessor => {\n const key = ctxCancellableOperation.bindTo(accessor.get(IContextKeyService));\n const tokens = new LinkedList();\n return { key, tokens };\n });\n this._tokens.set(editor, data);\n }\n let removeFn;\n data.key.set(true);\n removeFn = data.tokens.push(cts);\n return () => {\n // remove w/o cancellation\n if (removeFn) {\n removeFn();\n data.key.set(!data.tokens.isEmpty());\n removeFn = undefined;\n }\n };\n }\n cancel(editor) {\n const data = this._tokens.get(editor);\n if (!data) {\n return;\n }\n // remove with cancellation\n const cts = data.tokens.pop();\n if (cts) {\n cts.cancel();\n data.key.set(!data.tokens.isEmpty());\n }\n }\n}, true);\nexport class EditorKeybindingCancellationTokenSource extends CancellationTokenSource {\n constructor(editor, parent) {\n super(parent);\n this.editor = editor;\n this._unregister = editor.invokeWithinContext(accessor => accessor.get(IEditorCancellationTokens).add(editor, this));\n }\n dispose() {\n this._unregister();\n super.dispose();\n }\n}\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.cancelOperation',\n kbOpts: {\n weight: 100 /* EditorContrib */,\n primary: 9 /* Escape */\n },\n precondition: ctxCancellableOperation\n });\n }\n runEditorCommand(accessor, editor) {\n accessor.get(IEditorCancellationTokens).cancel(editor);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../../common/core/range.js';\nimport { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { EditorKeybindingCancellationTokenSource } from './keybindingCancellation.js';\nexport class EditorState {\n constructor(editor, flags) {\n this.flags = flags;\n if ((this.flags & 1 /* Value */) !== 0) {\n const model = editor.getModel();\n this.modelVersionId = model ? strings.format('{0}#{1}', model.uri.toString(), model.getVersionId()) : null;\n }\n else {\n this.modelVersionId = null;\n }\n if ((this.flags & 4 /* Position */) !== 0) {\n this.position = editor.getPosition();\n }\n else {\n this.position = null;\n }\n if ((this.flags & 2 /* Selection */) !== 0) {\n this.selection = editor.getSelection();\n }\n else {\n this.selection = null;\n }\n if ((this.flags & 8 /* Scroll */) !== 0) {\n this.scrollLeft = editor.getScrollLeft();\n this.scrollTop = editor.getScrollTop();\n }\n else {\n this.scrollLeft = -1;\n this.scrollTop = -1;\n }\n }\n _equals(other) {\n if (!(other instanceof EditorState)) {\n return false;\n }\n const state = other;\n if (this.modelVersionId !== state.modelVersionId) {\n return false;\n }\n if (this.scrollLeft !== state.scrollLeft || this.scrollTop !== state.scrollTop) {\n return false;\n }\n if (!this.position && state.position || this.position && !state.position || this.position && state.position && !this.position.equals(state.position)) {\n return false;\n }\n if (!this.selection && state.selection || this.selection && !state.selection || this.selection && state.selection && !this.selection.equalsRange(state.selection)) {\n return false;\n }\n return true;\n }\n validate(editor) {\n return this._equals(new EditorState(editor, this.flags));\n }\n}\n/**\n * A cancellation token source that cancels when the editor changes as expressed\n * by the provided flags\n * @param range If provided, changes in position and selection within this range will not trigger cancellation\n */\nexport class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource {\n constructor(editor, flags, range, parent) {\n super(editor, parent);\n this._listener = new DisposableStore();\n if (flags & 4 /* Position */) {\n this._listener.add(editor.onDidChangeCursorPosition(e => {\n if (!range || !Range.containsPosition(range, e.position)) {\n this.cancel();\n }\n }));\n }\n if (flags & 2 /* Selection */) {\n this._listener.add(editor.onDidChangeCursorSelection(e => {\n if (!range || !Range.containsRange(range, e.selection)) {\n this.cancel();\n }\n }));\n }\n if (flags & 8 /* Scroll */) {\n this._listener.add(editor.onDidScrollChange(_ => this.cancel()));\n }\n if (flags & 1 /* Value */) {\n this._listener.add(editor.onDidChangeModel(_ => this.cancel()));\n this._listener.add(editor.onDidChangeModelContent(_ => this.cancel()));\n }\n }\n dispose() {\n this._listener.dispose();\n super.dispose();\n }\n}\n/**\n * A cancellation token source that cancels when the provided model changes\n */\nexport class TextModelCancellationTokenSource extends CancellationTokenSource {\n constructor(model, parent) {\n super(parent);\n this._listener = model.onDidChangeContent(() => this.cancel());\n }\n dispose() {\n this._listener.dispose();\n super.dispose();\n }\n}\nexport class StableEditorScrollState {\n constructor(_visiblePosition, _visiblePositionScrollDelta, _cursorPosition) {\n this._visiblePosition = _visiblePosition;\n this._visiblePositionScrollDelta = _visiblePositionScrollDelta;\n this._cursorPosition = _cursorPosition;\n }\n static capture(editor) {\n let visiblePosition = null;\n let visiblePositionScrollDelta = 0;\n if (editor.getScrollTop() !== 0) {\n const visibleRanges = editor.getVisibleRanges();\n if (visibleRanges.length > 0) {\n visiblePosition = visibleRanges[0].getStartPosition();\n const visiblePositionScrollTop = editor.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column);\n visiblePositionScrollDelta = editor.getScrollTop() - visiblePositionScrollTop;\n }\n }\n return new StableEditorScrollState(visiblePosition, visiblePositionScrollDelta, editor.getPosition());\n }\n restore(editor) {\n if (this._visiblePosition) {\n const visiblePositionScrollTop = editor.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition.column);\n editor.setScrollTop(visiblePositionScrollTop + this._visiblePositionScrollDelta);\n }\n }\n restoreRelativeVerticalPositionOfCursor(editor) {\n const currentCursorPosition = editor.getPosition();\n if (!this._cursorPosition || !currentCursorPosition) {\n return;\n }\n const offset = editor.getTopForLineNumber(currentCursorPosition.lineNumber) - editor.getTopForLineNumber(this._cursorPosition.lineNumber);\n editor.setScrollTop(editor.getScrollTop() + offset);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalArgument } from './errors.js';\nimport { escapeIcons } from './iconLabels.js';\nexport class MarkdownString {\n constructor(value = '', isTrustedOrOptions = false) {\n var _a, _b, _c;\n this.value = value;\n if (typeof this.value !== 'string') {\n throw illegalArgument('value');\n }\n if (typeof isTrustedOrOptions === 'boolean') {\n this.isTrusted = isTrustedOrOptions;\n this.supportThemeIcons = false;\n this.supportHtml = false;\n }\n else {\n this.isTrusted = (_a = isTrustedOrOptions.isTrusted) !== null && _a !== void 0 ? _a : undefined;\n this.supportThemeIcons = (_b = isTrustedOrOptions.supportThemeIcons) !== null && _b !== void 0 ? _b : false;\n this.supportHtml = (_c = isTrustedOrOptions.supportHtml) !== null && _c !== void 0 ? _c : false;\n }\n }\n appendText(value, newlineStyle = 0 /* Paragraph */) {\n this.value += escapeMarkdownSyntaxTokens(this.supportThemeIcons ? escapeIcons(value) : value)\n .replace(/([ \\t]+)/g, (_match, g1) => ' '.repeat(g1.length))\n .replace(/\\>/gm, '\\\\>')\n .replace(/\\n/g, newlineStyle === 1 /* Break */ ? '\\\\\\n' : '\\n\\n');\n return this;\n }\n appendMarkdown(value) {\n this.value += value;\n return this;\n }\n appendCodeblock(langId, code) {\n this.value += '\\n```';\n this.value += langId;\n this.value += '\\n';\n this.value += code;\n this.value += '\\n```\\n';\n return this;\n }\n}\nexport function isEmptyMarkdownString(oneOrMany) {\n if (isMarkdownString(oneOrMany)) {\n return !oneOrMany.value;\n }\n else if (Array.isArray(oneOrMany)) {\n return oneOrMany.every(isEmptyMarkdownString);\n }\n else {\n return true;\n }\n}\nexport function isMarkdownString(thing) {\n if (thing instanceof MarkdownString) {\n return true;\n }\n else if (thing && typeof thing === 'object') {\n return typeof thing.value === 'string'\n && (typeof thing.isTrusted === 'boolean' || thing.isTrusted === undefined)\n && (typeof thing.supportThemeIcons === 'boolean' || thing.supportThemeIcons === undefined);\n }\n return false;\n}\nexport function escapeMarkdownSyntaxTokens(text) {\n // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n return text.replace(/[\\\\`*_{}[\\]()#+\\-!]/g, '\\\\$&');\n}\nexport function removeMarkdownEscapes(text) {\n if (!text) {\n return text;\n }\n return text.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!])/g, '$1');\n}\nexport function parseHrefAndDimensions(href) {\n const dimensions = [];\n const splitted = href.split('|').map(s => s.trim());\n href = splitted[0];\n const parameters = splitted[1];\n if (parameters) {\n const heightFromParams = /height=(\\d+)/.exec(parameters);\n const widthFromParams = /width=(\\d+)/.exec(parameters);\n const height = heightFromParams ? heightFromParams[1] : '';\n const width = widthFromParams ? widthFromParams[1] : '';\n const widthIsFinite = isFinite(parseInt(width));\n const heightIsFinite = isFinite(parseInt(height));\n if (widthIsFinite) {\n dimensions.push(`width=\"${width}\"`);\n }\n if (heightIsFinite) {\n dimensions.push(`height=\"${height}\"`);\n }\n }\n return { href, dimensions };\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\nimport { HttpPipelineLogLevel } from \"../httpPipelineLogLevel\";\nvar BaseRequestPolicy = /** @class */ (function () {\n function BaseRequestPolicy(_nextPolicy, _options) {\n this._nextPolicy = _nextPolicy;\n this._options = _options;\n }\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n BaseRequestPolicy.prototype.shouldLog = function (logLevel) {\n return this._options.shouldLog(logLevel);\n };\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel The log level of this log.\n * @param message The message of this log.\n */\n BaseRequestPolicy.prototype.log = function (logLevel, message) {\n this._options.log(logLevel, message);\n };\n return BaseRequestPolicy;\n}());\nexport { BaseRequestPolicy };\n/**\n * Optional properties that can be used when creating a RequestPolicy.\n */\nvar RequestPolicyOptions = /** @class */ (function () {\n function RequestPolicyOptions(_logger) {\n this._logger = _logger;\n }\n /**\n * Get whether or not a log with the provided log level should be logged.\n * @param logLevel The log level of the log that will be logged.\n * @returns Whether or not a log with the provided log level should be logged.\n */\n RequestPolicyOptions.prototype.shouldLog = function (logLevel) {\n return (!!this._logger &&\n logLevel !== HttpPipelineLogLevel.OFF &&\n logLevel <= this._logger.minimumLogLevel);\n };\n /**\n * Attempt to log the provided message to the provided logger. If no logger was provided or if\n * the log level does not meat the logger's threshold, then nothing will be logged.\n * @param logLevel The log level of this log.\n * @param message The message of this log.\n */\n RequestPolicyOptions.prototype.log = function (logLevel, message) {\n if (this._logger && this.shouldLog(logLevel)) {\n this._logger.log(logLevel, message);\n }\n };\n return RequestPolicyOptions;\n}());\nexport { RequestPolicyOptions };\n//# sourceMappingURL=requestPolicy.js.map","import { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { createDecorator as createServiceDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILogService = createServiceDecorator('logService');\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\n LogLevel[LogLevel[\"Off\"] = 6] = \"Off\";\n})(LogLevel || (LogLevel = {}));\nexport const DEFAULT_LOG_LEVEL = LogLevel.Info;\nexport class AbstractLogger extends Disposable {\n constructor() {\n super(...arguments);\n this.level = DEFAULT_LOG_LEVEL;\n this._onDidChangeLogLevel = this._register(new Emitter());\n }\n setLevel(level) {\n if (this.level !== level) {\n this.level = level;\n this._onDidChangeLogLevel.fire(this.level);\n }\n }\n getLevel() {\n return this.level;\n }\n}\nexport class ConsoleLogger extends AbstractLogger {\n constructor(logLevel = DEFAULT_LOG_LEVEL) {\n super();\n this.setLevel(logLevel);\n }\n trace(message, ...args) {\n if (this.getLevel() <= LogLevel.Trace) {\n console.log('%cTRACE', 'color: #888', message, ...args);\n }\n }\n debug(message, ...args) {\n if (this.getLevel() <= LogLevel.Debug) {\n console.log('%cDEBUG', 'background: #eee; color: #888', message, ...args);\n }\n }\n info(message, ...args) {\n if (this.getLevel() <= LogLevel.Info) {\n console.log('%c INFO', 'color: #33f', message, ...args);\n }\n }\n error(message, ...args) {\n if (this.getLevel() <= LogLevel.Error) {\n console.log('%c ERR', 'color: #f33', message, ...args);\n }\n }\n dispose() {\n // noop\n }\n}\nexport class LogService extends Disposable {\n constructor(logger) {\n super();\n this.logger = logger;\n this._register(logger);\n }\n getLevel() {\n return this.logger.getLevel();\n }\n trace(message, ...args) {\n this.logger.trace(message, ...args);\n }\n debug(message, ...args) {\n this.logger.debug(message, ...args);\n }\n info(message, ...args) {\n this.logger.info(message, ...args);\n }\n error(message, ...args) {\n this.logger.error(message, ...args);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IContextViewService = createDecorator('contextViewService');\nexport const IContextMenuService = createDecorator('contextMenuService');\n","import * as tslib_1 from \"tslib\";\nimport { isNode, URLBuilder } from \"@azure/ms-rest-js\";\n/**\n * Reserved URL characters must be properly escaped for Storage services like Blob or File.\n *\n * ## URL encode and escape strategy for JSv10 SDKs\n *\n * When customers pass a URL string into XXXURL classes constrcutor, the URL string may already be URL encoded or not.\n * But before sending to Azure Storage server, the URL must be encoded. However, it's hard for a SDK to guess whether the URL\n * string has been encoded or not. We have 2 potential strategies, and chose strategy two for the XXXURL constructors.\n *\n * ### Strategy One: Assume the customer URL string is not encoded, and always encode URL string in SDK.\n *\n * This is what legacy V2 SDK does, simple and works for most of the cases.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * SDK will encode it to \"http://account.blob.core.windows.net/con/b%253A\" and send to server. A blob named \"b%3A\" will be created.\n *\n * But this strategy will make it not possible to create a blob with \"?\" in it's name. Because when customer URL string is\n * \"http://account.blob.core.windows.net/con/blob?name\", the \"?name\" will be treated as URL paramter instead of blob name.\n * If customer URL string is \"http://account.blob.core.windows.net/con/blob%3Fname\", a blob named \"blob%3Fname\" will be created.\n * V2 SDK doesn't have this issue because it doesn't allow customer pass in a full URL, it accepts a separate blob name and encodeURIComponent for it.\n * We cannot accept a SDK cannot create a blob name with \"?\". So we implement strategy two:\n *\n * ### Strategy Two: SDK doesn't assume the URL has been encoded or not. It will just escape the special characters.\n *\n * This is what V10 Blob Go SDK does. It accepts a URL type in Go, and call url.EscapedPath() to escape the special chars unescaped.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b:\",\n * SDK will escape \":\" like \"http://account.blob.core.windows.net/con/b%3A\" and send to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%3A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%3A\" to server. A blob named \"b:\" will be created.\n * - When customer URL string is \"http://account.blob.core.windows.net/con/b%253A\",\n * There is no special characters, so send \"http://account.blob.core.windows.net/con/b%253A\" to server. A blob named \"b%3A\" will be created.\n *\n * This strategy gives us flexibility to create with any special characters. But \"%\" will be treated as a special characters, if the URL string\n * is not encoded, there shouldn't a \"%\" in the URL string, otherwise the URL is not a valid URL.\n * If customer needs to create a blob with \"%\" in it's blob name, use \"%25\" insead of \"%\". Just like above 3rd sample.\n * And following URL strings are invalid:\n * - \"http://account.blob.core.windows.net/con/b%\"\n * - \"http://account.blob.core.windows.net/con/b%2\"\n * - \"http://account.blob.core.windows.net/con/b%G\"\n *\n * Another special character is \"?\", use \"%2F\" to represent a blob name with \"?\" in a URL string.\n *\n * ### Strategy for containerName, blobName or other specific XXXName parameters in methods such as `BlobURL.fromContainerURL(containerURL, blobName)`\n *\n * We will apply strategy one, and call encodeURIComponent for these parameters like blobName. Because what customers passes in is a plain name instead of a URL.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata\n *\n * @export\n * @param {string} url\n * @returns {string}\n */\nexport function escapeURLPath(url) {\n var urlParsed = URLBuilder.parse(url);\n var path = urlParsed.getPath();\n path = path || \"/\";\n path = escape(path);\n urlParsed.setPath(path);\n return urlParsed.toString();\n}\n/**\n * Internal escape method implmented Strategy Two mentioned in escapeURL() description.\n *\n * @param {string} text\n * @returns {string}\n */\nfunction escape(text) {\n return encodeURIComponent(text)\n .replace(/%2F/g, \"/\") // Don't escape for \"/\"\n .replace(/'/g, \"%27\") // Escape for \"'\"\n .replace(/\\+/g, \"%20\")\n .replace(/%25/g, \"%\"); // Revert encoded \"%\"\n}\n/**\n * Append a string to URL path. Will remove duplicated \"/\" in front of the string\n * when URL path ends with a \"/\".\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} name String to be appended to URL\n * @returns {string} An updated URL string\n */\nexport function appendToURLPath(url, name) {\n var urlParsed = URLBuilder.parse(url);\n var path = urlParsed.getPath();\n path = path ? (path.endsWith(\"/\") ? \"\" + path + name : path + \"/\" + name) : name;\n urlParsed.setPath(path);\n return urlParsed.toString();\n}\n/**\n * Set URL parameter name and value. If name exists in URL parameters, old value\n * will be replaced by name key. If not provide value, the parameter will be deleted.\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} name Parameter name\n * @param {string} [value] Parameter value\n * @returns {string} An updated URL string\n */\nexport function setURLParameter(url, name, value) {\n var urlParsed = URLBuilder.parse(url);\n urlParsed.setQueryParameter(name, value);\n return urlParsed.toString();\n}\n/**\n * Get URL parameter by name.\n *\n * @export\n * @param {string} url\n * @param {string} name\n * @returns {(string | string[] | undefined)}\n */\nexport function getURLParameter(url, name) {\n var urlParsed = URLBuilder.parse(url);\n return urlParsed.getQueryParameterValue(name);\n}\n/**\n * Set URL host.\n *\n * @export\n * @param {string} url Source URL string\n * @param {string} host New host string\n * @returns An updated URL string\n */\nexport function setURLHost(url, host) {\n var urlParsed = URLBuilder.parse(url);\n urlParsed.setHost(host);\n return urlParsed.toString();\n}\n/**\n * Get URL path from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLPath(url) {\n var urlParsed = URLBuilder.parse(url);\n return urlParsed.getPath();\n}\n/**\n * Get URL scheme from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLScheme(url) {\n var urlParsed = URLBuilder.parse(url);\n return urlParsed.getScheme();\n}\n/**\n * Get URL path and query from an URL string.\n *\n * @export\n * @param {string} url Source URL string\n * @returns {(string | undefined)}\n */\nexport function getURLPathAndQuery(url) {\n var urlParsed = URLBuilder.parse(url);\n var pathString = urlParsed.getPath();\n if (!pathString) {\n throw new RangeError(\"Invalid url without valid path.\");\n }\n var queryString = urlParsed.getQuery() || \"\";\n queryString = queryString.trim();\n if (queryString != \"\") {\n queryString = queryString.startsWith(\"?\") ? queryString : \"?\" + queryString; // Ensure query string start with '?'\n }\n return \"\" + pathString + queryString;\n}\n/**\n * Get URL query key value pairs from an URL string.\n *\n * @export\n * @param {string} url\n * @returns {{[key: string]: string}}\n */\nexport function getURLQueries(url) {\n var queryString = URLBuilder.parse(url).getQuery();\n if (!queryString) {\n return {};\n }\n queryString = queryString.trim();\n queryString = queryString.startsWith(\"?\") ? queryString.substr(1) : queryString;\n var querySubStrings = queryString.split(\"&\");\n querySubStrings = querySubStrings.filter(function (value) {\n var indexOfEqual = value.indexOf(\"=\");\n var lastIndexOfEqual = value.lastIndexOf(\"=\");\n return (indexOfEqual > 0 && indexOfEqual === lastIndexOfEqual && lastIndexOfEqual < value.length - 1);\n });\n var queries = {};\n for (var _i = 0, querySubStrings_1 = querySubStrings; _i < querySubStrings_1.length; _i++) {\n var querySubString = querySubStrings_1[_i];\n var splitResults = querySubString.split(\"=\");\n var key = splitResults[0];\n var value = splitResults[1];\n queries[key] = value;\n }\n return queries;\n}\n/**\n * Rounds a date off to seconds.\n *\n * @export\n * @param {Date} date\n * @param {boolean} [withMilliseconds=true] If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns {string} Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date, withMilliseconds) {\n if (withMilliseconds === void 0) { withMilliseconds = true; }\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n var dateString = date.toISOString();\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n/**\n * Base64 encode.\n *\n * @export\n * @param {string} content\n * @returns {string}\n */\nexport function base64encode(content) {\n return !isNode ? btoa(content) : Buffer.from(content).toString(\"base64\");\n}\n/**\n * Base64 decode.\n *\n * @export\n * @param {string} encodedString\n * @returns {string}\n */\nexport function base64decode(encodedString) {\n return !isNode ? atob(encodedString) : Buffer.from(encodedString, \"base64\").toString();\n}\n/**\n * Generate a 64 bytes base64 block ID string.\n *\n * @export\n * @param {number} blockIndex\n * @returns {string}\n */\nexport function generateBlockID(blockIDPrefix, blockIndex) {\n // To generate a 64 bytes base64 string, source string should be 48\n var maxSourceStringLength = 48;\n // A blob can have a maximum of 100,000 uncommitted blocks at any given time\n var maxBlockIndexLength = 6;\n var maxAllowedBlockIDPrefixLength = maxSourceStringLength - maxBlockIndexLength;\n if (blockIDPrefix.length > maxAllowedBlockIDPrefixLength) {\n blockIDPrefix = blockIDPrefix.slice(0, maxAllowedBlockIDPrefixLength);\n }\n var res = blockIDPrefix +\n padStart(blockIndex.toString(), maxSourceStringLength - blockIDPrefix.length, \"0\");\n return base64encode(res);\n}\n/**\n * Delay specified time interval.\n *\n * @export\n * @param {number} timeInMs\n * @param {AbortSignalLike} [aborter]\n * @param {Error} [abortError]\n */\nexport function delay(timeInMs, aborter, abortError) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var timeout;\n var abortHandler = function () {\n if (timeout !== undefined) {\n clearTimeout(timeout);\n }\n reject(abortError);\n };\n var resolveHandler = function () {\n if (aborter !== undefined) {\n aborter.removeEventListener(\"abort\", abortHandler);\n }\n resolve();\n };\n timeout = setTimeout(resolveHandler, timeInMs);\n if (aborter !== undefined) {\n aborter.addEventListener(\"abort\", abortHandler);\n }\n })];\n });\n });\n}\n/**\n * String.prototype.padStart()\n *\n * @export\n * @param {string} currentString\n * @param {number} targetLength\n * @param {string} [padString=\" \"]\n * @returns {string}\n */\nexport function padStart(currentString, targetLength, padString) {\n if (padString === void 0) { padString = \" \"; }\n if (String.prototype.padStart) {\n return currentString.padStart(targetLength, padString);\n }\n padString = padString || \" \";\n if (currentString.length > targetLength) {\n return currentString;\n }\n else {\n targetLength = targetLength - currentString.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + currentString;\n }\n}\n/**\n * If two strings are equal when compared case insensitive.\n *\n * @export\n * @param {string} str1\n * @param {string} str2\n * @returns {boolean}\n */\nexport function iEqual(str1, str2) {\n return str1.toLocaleLowerCase() === str2.toLocaleLowerCase();\n}\n//# sourceMappingURL=utils.common.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Token, TokenizationResult, TokenizationResult2 } from '../core/token.js';\nclass NullStateImpl {\n clone() {\n return this;\n }\n equals(other) {\n return (this === other);\n }\n}\nexport const NULL_STATE = new NullStateImpl();\nexport const NULL_MODE_ID = 'vs.editor.nullMode';\nexport function nullTokenize(languageId, buffer, state, deltaOffset) {\n return new TokenizationResult([new Token(deltaOffset, '', languageId)], state);\n}\nexport function nullTokenize2(languageId, buffer, state, deltaOffset) {\n let tokens = new Uint32Array(2);\n tokens[0] = deltaOffset;\n tokens[1] = ((languageId << 0 /* LANGUAGEID_OFFSET */)\n | (0 /* Other */ << 8 /* TOKEN_TYPE_OFFSET */)\n | (0 /* None */ << 11 /* FONT_STYLE_OFFSET */)\n | (1 /* DefaultForeground */ << 14 /* FOREGROUND_OFFSET */)\n | (2 /* DefaultBackground */ << 23 /* BACKGROUND_OFFSET */)) >>> 0;\n return new TokenizationResult2(tokens, state === null ? NULL_STATE : state);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as types from '../../../base/common/types.js';\nimport { CursorState, SingleCursorState } from './cursorCommon.js';\nimport { MoveOperations } from './cursorMoveOperations.js';\nimport { WordOperations } from './cursorWordOperations.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class CursorMoveCommands {\n static addCursorDown(viewModel, cursors, useLogicalLine) {\n let result = [], resultLen = 0;\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n if (useLogicalLine) {\n result[resultLen++] = CursorState.fromModelState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n }\n else {\n result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel, cursor.viewState));\n }\n }\n return result;\n }\n static addCursorUp(viewModel, cursors, useLogicalLine) {\n let result = [], resultLen = 0;\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n if (useLogicalLine) {\n result[resultLen++] = CursorState.fromModelState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n }\n else {\n result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel, cursor.viewState));\n }\n }\n return result;\n }\n static moveToBeginningOfLine(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = this._moveToLineStart(viewModel, cursor, inSelectionMode);\n }\n return result;\n }\n static _moveToLineStart(viewModel, cursor, inSelectionMode) {\n const currentViewStateColumn = cursor.viewState.position.column;\n const currentModelStateColumn = cursor.modelState.position.column;\n const isFirstLineOfWrappedLine = currentViewStateColumn === currentModelStateColumn;\n const currentViewStatelineNumber = cursor.viewState.position.lineNumber;\n const firstNonBlankColumn = viewModel.getLineFirstNonWhitespaceColumn(currentViewStatelineNumber);\n const isBeginningOfViewLine = currentViewStateColumn === firstNonBlankColumn;\n if (!isFirstLineOfWrappedLine && !isBeginningOfViewLine) {\n return this._moveToLineStartByView(viewModel, cursor, inSelectionMode);\n }\n else {\n return this._moveToLineStartByModel(viewModel, cursor, inSelectionMode);\n }\n }\n static _moveToLineStartByView(viewModel, cursor, inSelectionMode) {\n return CursorState.fromViewState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode));\n }\n static _moveToLineStartByModel(viewModel, cursor, inSelectionMode) {\n return CursorState.fromModelState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n }\n static moveToEndOfLine(viewModel, cursors, inSelectionMode, sticky) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = this._moveToLineEnd(viewModel, cursor, inSelectionMode, sticky);\n }\n return result;\n }\n static _moveToLineEnd(viewModel, cursor, inSelectionMode, sticky) {\n const viewStatePosition = cursor.viewState.position;\n const viewModelMaxColumn = viewModel.getLineMaxColumn(viewStatePosition.lineNumber);\n const isEndOfViewLine = viewStatePosition.column === viewModelMaxColumn;\n const modelStatePosition = cursor.modelState.position;\n const modelMaxColumn = viewModel.model.getLineMaxColumn(modelStatePosition.lineNumber);\n const isEndLineOfWrappedLine = viewModelMaxColumn - viewStatePosition.column === modelMaxColumn - modelStatePosition.column;\n if (isEndOfViewLine || isEndLineOfWrappedLine) {\n return this._moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky);\n }\n else {\n return this._moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky);\n }\n }\n static _moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky) {\n return CursorState.fromViewState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, sticky));\n }\n static _moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky) {\n return CursorState.fromModelState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, sticky));\n }\n static expandLineSelection(viewModel, cursors) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const startLineNumber = cursor.modelState.selection.startLineNumber;\n const lineCount = viewModel.model.getLineCount();\n let endLineNumber = cursor.modelState.selection.endLineNumber;\n let endColumn;\n if (endLineNumber === lineCount) {\n endColumn = viewModel.model.getLineMaxColumn(lineCount);\n }\n else {\n endLineNumber++;\n endColumn = 1;\n }\n result[i] = CursorState.fromModelState(new SingleCursorState(new Range(startLineNumber, 1, startLineNumber, 1), 0, new Position(endLineNumber, endColumn), 0));\n }\n return result;\n }\n static moveToBeginningOfBuffer(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromModelState(MoveOperations.moveToBeginningOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n }\n return result;\n }\n static moveToEndOfBuffer(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromModelState(MoveOperations.moveToEndOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n }\n return result;\n }\n static selectAll(viewModel, cursor) {\n const lineCount = viewModel.model.getLineCount();\n const maxColumn = viewModel.model.getLineMaxColumn(lineCount);\n return CursorState.fromModelState(new SingleCursorState(new Range(1, 1, 1, 1), 0, new Position(lineCount, maxColumn), 0));\n }\n static line(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n const position = viewModel.model.validatePosition(_position);\n const viewPosition = (_viewPosition\n ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position)\n : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position));\n if (!inSelectionMode || !cursor.modelState.hasSelection()) {\n // Entering line selection for the first time\n const lineCount = viewModel.model.getLineCount();\n let selectToLineNumber = position.lineNumber + 1;\n let selectToColumn = 1;\n if (selectToLineNumber > lineCount) {\n selectToLineNumber = lineCount;\n selectToColumn = viewModel.model.getLineMaxColumn(selectToLineNumber);\n }\n return CursorState.fromModelState(new SingleCursorState(new Range(position.lineNumber, 1, selectToLineNumber, selectToColumn), 0, new Position(selectToLineNumber, selectToColumn), 0));\n }\n // Continuing line selection\n const enteringLineNumber = cursor.modelState.selectionStart.getStartPosition().lineNumber;\n if (position.lineNumber < enteringLineNumber) {\n return CursorState.fromViewState(cursor.viewState.move(cursor.modelState.hasSelection(), viewPosition.lineNumber, 1, 0));\n }\n else if (position.lineNumber > enteringLineNumber) {\n const lineCount = viewModel.getLineCount();\n let selectToViewLineNumber = viewPosition.lineNumber + 1;\n let selectToViewColumn = 1;\n if (selectToViewLineNumber > lineCount) {\n selectToViewLineNumber = lineCount;\n selectToViewColumn = viewModel.getLineMaxColumn(selectToViewLineNumber);\n }\n return CursorState.fromViewState(cursor.viewState.move(cursor.modelState.hasSelection(), selectToViewLineNumber, selectToViewColumn, 0));\n }\n else {\n const endPositionOfSelectionStart = cursor.modelState.selectionStart.getEndPosition();\n return CursorState.fromModelState(cursor.modelState.move(cursor.modelState.hasSelection(), endPositionOfSelectionStart.lineNumber, endPositionOfSelectionStart.column, 0));\n }\n }\n static word(viewModel, cursor, inSelectionMode, _position) {\n const position = viewModel.model.validatePosition(_position);\n return CursorState.fromModelState(WordOperations.word(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, position));\n }\n static cancelSelection(viewModel, cursor) {\n if (!cursor.modelState.hasSelection()) {\n return new CursorState(cursor.modelState, cursor.viewState);\n }\n const lineNumber = cursor.viewState.position.lineNumber;\n const column = cursor.viewState.position.column;\n return CursorState.fromViewState(new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0, new Position(lineNumber, column), 0));\n }\n static moveTo(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n const position = viewModel.model.validatePosition(_position);\n const viewPosition = (_viewPosition\n ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position)\n : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position));\n return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, viewPosition.lineNumber, viewPosition.column, 0));\n }\n static simpleMove(viewModel, cursors, direction, inSelectionMode, value, unit) {\n switch (direction) {\n case 0 /* Left */: {\n if (unit === 4 /* HalfLine */) {\n // Move left by half the current line length\n return this._moveHalfLineLeft(viewModel, cursors, inSelectionMode);\n }\n else {\n // Move left by `moveParams.value` columns\n return this._moveLeft(viewModel, cursors, inSelectionMode, value);\n }\n }\n case 1 /* Right */: {\n if (unit === 4 /* HalfLine */) {\n // Move right by half the current line length\n return this._moveHalfLineRight(viewModel, cursors, inSelectionMode);\n }\n else {\n // Move right by `moveParams.value` columns\n return this._moveRight(viewModel, cursors, inSelectionMode, value);\n }\n }\n case 2 /* Up */: {\n if (unit === 2 /* WrappedLine */) {\n // Move up by view lines\n return this._moveUpByViewLines(viewModel, cursors, inSelectionMode, value);\n }\n else {\n // Move up by model lines\n return this._moveUpByModelLines(viewModel, cursors, inSelectionMode, value);\n }\n }\n case 3 /* Down */: {\n if (unit === 2 /* WrappedLine */) {\n // Move down by view lines\n return this._moveDownByViewLines(viewModel, cursors, inSelectionMode, value);\n }\n else {\n // Move down by model lines\n return this._moveDownByModelLines(viewModel, cursors, inSelectionMode, value);\n }\n }\n case 4 /* PrevBlankLine */: {\n if (unit === 2 /* WrappedLine */) {\n return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n }\n else {\n return cursors.map(cursor => CursorState.fromModelState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n }\n }\n case 5 /* NextBlankLine */: {\n if (unit === 2 /* WrappedLine */) {\n return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n }\n else {\n return cursors.map(cursor => CursorState.fromModelState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n }\n }\n case 6 /* WrappedLineStart */: {\n // Move to the beginning of the current view line\n return this._moveToViewMinColumn(viewModel, cursors, inSelectionMode);\n }\n case 7 /* WrappedLineFirstNonWhitespaceCharacter */: {\n // Move to the first non-whitespace column of the current view line\n return this._moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n }\n case 8 /* WrappedLineColumnCenter */: {\n // Move to the \"center\" of the current view line\n return this._moveToViewCenterColumn(viewModel, cursors, inSelectionMode);\n }\n case 9 /* WrappedLineEnd */: {\n // Move to the end of the current view line\n return this._moveToViewMaxColumn(viewModel, cursors, inSelectionMode);\n }\n case 10 /* WrappedLineLastNonWhitespaceCharacter */: {\n // Move to the last non-whitespace column of the current view line\n return this._moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n }\n default:\n return null;\n }\n }\n static viewportMove(viewModel, cursors, direction, inSelectionMode, value) {\n const visibleViewRange = viewModel.getCompletelyVisibleViewRange();\n const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n switch (direction) {\n case 11 /* ViewPortTop */: {\n // Move to the nth line start in the viewport (from the top)\n const modelLineNumber = this._firstLineNumberInRange(viewModel.model, visibleModelRange, value);\n const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n }\n case 13 /* ViewPortBottom */: {\n // Move to the nth line start in the viewport (from the bottom)\n const modelLineNumber = this._lastLineNumberInRange(viewModel.model, visibleModelRange, value);\n const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n }\n case 12 /* ViewPortCenter */: {\n // Move to the line start in the viewport center\n const modelLineNumber = Math.round((visibleModelRange.startLineNumber + visibleModelRange.endLineNumber) / 2);\n const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n }\n case 14 /* ViewPortIfOutside */: {\n // Move to a position inside the viewport\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = this.findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode);\n }\n return result;\n }\n default:\n return null;\n }\n }\n static findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode) {\n let viewLineNumber = cursor.viewState.position.lineNumber;\n if (visibleViewRange.startLineNumber <= viewLineNumber && viewLineNumber <= visibleViewRange.endLineNumber - 1) {\n // Nothing to do, cursor is in viewport\n return new CursorState(cursor.modelState, cursor.viewState);\n }\n else {\n let newViewLineNumber;\n if (viewLineNumber > visibleViewRange.endLineNumber - 1) {\n newViewLineNumber = visibleViewRange.endLineNumber - 1;\n }\n else if (viewLineNumber < visibleViewRange.startLineNumber) {\n newViewLineNumber = visibleViewRange.startLineNumber;\n }\n else {\n newViewLineNumber = viewLineNumber;\n }\n const position = MoveOperations.vertical(viewModel.cursorConfig, viewModel, viewLineNumber, cursor.viewState.position.column, cursor.viewState.leftoverVisibleColumns, newViewLineNumber, false);\n return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, position.lineNumber, position.column, position.leftoverVisibleColumns));\n }\n }\n /**\n * Find the nth line start included in the range (from the start).\n */\n static _firstLineNumberInRange(model, range, count) {\n let startLineNumber = range.startLineNumber;\n if (range.startColumn !== model.getLineMinColumn(startLineNumber)) {\n // Move on to the second line if the first line start is not included in the range\n startLineNumber++;\n }\n return Math.min(range.endLineNumber, startLineNumber + count - 1);\n }\n /**\n * Find the nth line start included in the range (from the end).\n */\n static _lastLineNumberInRange(model, range, count) {\n let startLineNumber = range.startLineNumber;\n if (range.startColumn !== model.getLineMinColumn(startLineNumber)) {\n // Move on to the second line if the first line start is not included in the range\n startLineNumber++;\n }\n return Math.max(startLineNumber, range.endLineNumber - count + 1);\n }\n static _moveLeft(viewModel, cursors, inSelectionMode, noOfColumns) {\n return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns)));\n }\n static _moveHalfLineLeft(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const halfLine = Math.round(viewModel.getLineContent(viewLineNumber).length / 2);\n result[i] = CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n }\n return result;\n }\n static _moveRight(viewModel, cursors, inSelectionMode, noOfColumns) {\n return cursors.map(cursor => CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns)));\n }\n static _moveHalfLineRight(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const halfLine = Math.round(viewModel.getLineContent(viewLineNumber).length / 2);\n result[i] = CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n }\n return result;\n }\n static _moveDownByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromViewState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n }\n return result;\n }\n static _moveDownByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromModelState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n }\n return result;\n }\n static _moveUpByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromViewState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n }\n return result;\n }\n static _moveUpByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n result[i] = CursorState.fromModelState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n }\n return result;\n }\n static _moveToViewPosition(viewModel, cursor, inSelectionMode, toViewLineNumber, toViewColumn) {\n return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, toViewLineNumber, toViewColumn, 0));\n }\n static _moveToModelPosition(viewModel, cursor, inSelectionMode, toModelLineNumber, toModelColumn) {\n return CursorState.fromModelState(cursor.modelState.move(inSelectionMode, toModelLineNumber, toModelColumn, 0));\n }\n static _moveToViewMinColumn(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const viewColumn = viewModel.getLineMinColumn(viewLineNumber);\n result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n }\n return result;\n }\n static _moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const viewColumn = viewModel.getLineFirstNonWhitespaceColumn(viewLineNumber);\n result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n }\n return result;\n }\n static _moveToViewCenterColumn(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const viewColumn = Math.round((viewModel.getLineMaxColumn(viewLineNumber) + viewModel.getLineMinColumn(viewLineNumber)) / 2);\n result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n }\n return result;\n }\n static _moveToViewMaxColumn(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const viewColumn = viewModel.getLineMaxColumn(viewLineNumber);\n result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n }\n return result;\n }\n static _moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n let result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const viewLineNumber = cursor.viewState.position.lineNumber;\n const viewColumn = viewModel.getLineLastNonWhitespaceColumn(viewLineNumber);\n result[i] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n }\n return result;\n }\n}\nexport var CursorMove;\n(function (CursorMove) {\n const isCursorMoveArgs = function (arg) {\n if (!types.isObject(arg)) {\n return false;\n }\n let cursorMoveArg = arg;\n if (!types.isString(cursorMoveArg.to)) {\n return false;\n }\n if (!types.isUndefined(cursorMoveArg.select) && !types.isBoolean(cursorMoveArg.select)) {\n return false;\n }\n if (!types.isUndefined(cursorMoveArg.by) && !types.isString(cursorMoveArg.by)) {\n return false;\n }\n if (!types.isUndefined(cursorMoveArg.value) && !types.isNumber(cursorMoveArg.value)) {\n return false;\n }\n return true;\n };\n CursorMove.description = {\n description: 'Move cursor to a logical position in the view',\n args: [\n {\n name: 'Cursor move argument object',\n description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t`,\n constraint: isCursorMoveArgs,\n schema: {\n 'type': 'object',\n 'required': ['to'],\n 'properties': {\n 'to': {\n 'type': 'string',\n 'enum': ['left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine', 'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter', 'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter', 'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside']\n },\n 'by': {\n 'type': 'string',\n 'enum': ['line', 'wrappedLine', 'character', 'halfLine']\n },\n 'value': {\n 'type': 'number',\n 'default': 1\n },\n 'select': {\n 'type': 'boolean',\n 'default': false\n }\n }\n }\n }\n ]\n };\n /**\n * Positions in the view for cursor move command.\n */\n CursorMove.RawDirection = {\n Left: 'left',\n Right: 'right',\n Up: 'up',\n Down: 'down',\n PrevBlankLine: 'prevBlankLine',\n NextBlankLine: 'nextBlankLine',\n WrappedLineStart: 'wrappedLineStart',\n WrappedLineFirstNonWhitespaceCharacter: 'wrappedLineFirstNonWhitespaceCharacter',\n WrappedLineColumnCenter: 'wrappedLineColumnCenter',\n WrappedLineEnd: 'wrappedLineEnd',\n WrappedLineLastNonWhitespaceCharacter: 'wrappedLineLastNonWhitespaceCharacter',\n ViewPortTop: 'viewPortTop',\n ViewPortCenter: 'viewPortCenter',\n ViewPortBottom: 'viewPortBottom',\n ViewPortIfOutside: 'viewPortIfOutside'\n };\n /**\n * Units for Cursor move 'by' argument\n */\n CursorMove.RawUnit = {\n Line: 'line',\n WrappedLine: 'wrappedLine',\n Character: 'character',\n HalfLine: 'halfLine'\n };\n function parse(args) {\n if (!args.to) {\n // illegal arguments\n return null;\n }\n let direction;\n switch (args.to) {\n case CursorMove.RawDirection.Left:\n direction = 0 /* Left */;\n break;\n case CursorMove.RawDirection.Right:\n direction = 1 /* Right */;\n break;\n case CursorMove.RawDirection.Up:\n direction = 2 /* Up */;\n break;\n case CursorMove.RawDirection.Down:\n direction = 3 /* Down */;\n break;\n case CursorMove.RawDirection.PrevBlankLine:\n direction = 4 /* PrevBlankLine */;\n break;\n case CursorMove.RawDirection.NextBlankLine:\n direction = 5 /* NextBlankLine */;\n break;\n case CursorMove.RawDirection.WrappedLineStart:\n direction = 6 /* WrappedLineStart */;\n break;\n case CursorMove.RawDirection.WrappedLineFirstNonWhitespaceCharacter:\n direction = 7 /* WrappedLineFirstNonWhitespaceCharacter */;\n break;\n case CursorMove.RawDirection.WrappedLineColumnCenter:\n direction = 8 /* WrappedLineColumnCenter */;\n break;\n case CursorMove.RawDirection.WrappedLineEnd:\n direction = 9 /* WrappedLineEnd */;\n break;\n case CursorMove.RawDirection.WrappedLineLastNonWhitespaceCharacter:\n direction = 10 /* WrappedLineLastNonWhitespaceCharacter */;\n break;\n case CursorMove.RawDirection.ViewPortTop:\n direction = 11 /* ViewPortTop */;\n break;\n case CursorMove.RawDirection.ViewPortBottom:\n direction = 13 /* ViewPortBottom */;\n break;\n case CursorMove.RawDirection.ViewPortCenter:\n direction = 12 /* ViewPortCenter */;\n break;\n case CursorMove.RawDirection.ViewPortIfOutside:\n direction = 14 /* ViewPortIfOutside */;\n break;\n default:\n // illegal arguments\n return null;\n }\n let unit = 0 /* None */;\n switch (args.by) {\n case CursorMove.RawUnit.Line:\n unit = 1 /* Line */;\n break;\n case CursorMove.RawUnit.WrappedLine:\n unit = 2 /* WrappedLine */;\n break;\n case CursorMove.RawUnit.Character:\n unit = 3 /* Character */;\n break;\n case CursorMove.RawUnit.HalfLine:\n unit = 4 /* HalfLine */;\n break;\n }\n return {\n direction: direction,\n unit: unit,\n select: (!!args.select),\n value: (args.value || 1)\n };\n }\n CursorMove.parse = parse;\n})(CursorMove || (CursorMove = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextModelService = createDecorator('textModelService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createKeybinding } from '../../../base/common/keybindings.js';\nimport { OS } from '../../../base/common/platform.js';\nimport { CommandsRegistry } from '../../commands/common/commands.js';\nimport { Registry } from '../../registry/common/platform.js';\nclass KeybindingsRegistryImpl {\n constructor() {\n this._coreKeybindings = [];\n this._extensionKeybindings = [];\n this._cachedMergedKeybindings = null;\n }\n /**\n * Take current platform into account and reduce to primary & secondary.\n */\n static bindToCurrentPlatform(kb) {\n if (OS === 1 /* Windows */) {\n if (kb && kb.win) {\n return kb.win;\n }\n }\n else if (OS === 2 /* Macintosh */) {\n if (kb && kb.mac) {\n return kb.mac;\n }\n }\n else {\n if (kb && kb.linux) {\n return kb.linux;\n }\n }\n return kb;\n }\n registerKeybindingRule(rule) {\n const actualKb = KeybindingsRegistryImpl.bindToCurrentPlatform(rule);\n if (actualKb && actualKb.primary) {\n const kk = createKeybinding(actualKb.primary, OS);\n if (kk) {\n this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, 0, rule.when);\n }\n }\n if (actualKb && Array.isArray(actualKb.secondary)) {\n for (let i = 0, len = actualKb.secondary.length; i < len; i++) {\n const k = actualKb.secondary[i];\n const kk = createKeybinding(k, OS);\n if (kk) {\n this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, -i - 1, rule.when);\n }\n }\n }\n }\n registerCommandAndKeybindingRule(desc) {\n this.registerKeybindingRule(desc);\n CommandsRegistry.registerCommand(desc);\n }\n static _mightProduceChar(keyCode) {\n if (keyCode >= 21 /* Digit0 */ && keyCode <= 30 /* Digit9 */) {\n return true;\n }\n if (keyCode >= 31 /* KeyA */ && keyCode <= 56 /* KeyZ */) {\n return true;\n }\n return (keyCode === 80 /* Semicolon */\n || keyCode === 81 /* Equal */\n || keyCode === 82 /* Comma */\n || keyCode === 83 /* Minus */\n || keyCode === 84 /* Period */\n || keyCode === 85 /* Slash */\n || keyCode === 86 /* Backquote */\n || keyCode === 110 /* ABNT_C1 */\n || keyCode === 111 /* ABNT_C2 */\n || keyCode === 87 /* BracketLeft */\n || keyCode === 88 /* Backslash */\n || keyCode === 89 /* BracketRight */\n || keyCode === 90 /* Quote */\n || keyCode === 91 /* OEM_8 */\n || keyCode === 92 /* IntlBackslash */);\n }\n _assertNoCtrlAlt(keybinding, commandId) {\n if (keybinding.ctrlKey && keybinding.altKey && !keybinding.metaKey) {\n if (KeybindingsRegistryImpl._mightProduceChar(keybinding.keyCode)) {\n console.warn('Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ', keybinding, ' for ', commandId);\n }\n }\n }\n _registerDefaultKeybinding(keybinding, commandId, commandArgs, weight1, weight2, when) {\n if (OS === 1 /* Windows */) {\n this._assertNoCtrlAlt(keybinding.parts[0], commandId);\n }\n this._coreKeybindings.push({\n keybinding: keybinding.parts,\n command: commandId,\n commandArgs: commandArgs,\n when: when,\n weight1: weight1,\n weight2: weight2,\n extensionId: null,\n isBuiltinExtension: false\n });\n this._cachedMergedKeybindings = null;\n }\n getDefaultKeybindings() {\n if (!this._cachedMergedKeybindings) {\n this._cachedMergedKeybindings = [].concat(this._coreKeybindings).concat(this._extensionKeybindings);\n this._cachedMergedKeybindings.sort(sorter);\n }\n return this._cachedMergedKeybindings.slice(0);\n }\n}\nexport const KeybindingsRegistry = new KeybindingsRegistryImpl();\n// Define extension point ids\nexport const Extensions = {\n EditorModes: 'platform.keybindingsRegistry'\n};\nRegistry.add(Extensions.EditorModes, KeybindingsRegistry);\nfunction sorter(a, b) {\n if (a.weight1 !== b.weight1) {\n return a.weight1 - b.weight1;\n }\n if (a.command < b.command) {\n return -1;\n }\n if (a.command > b.command) {\n return 1;\n }\n return a.weight2 - b.weight2;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimUndefined, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav.userAgent;\r\n var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n if (strContains(ua, strMsie)) {\r\n return parseInt(ua.split(strMsie)[1]);\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua.split(strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString.call(object);\r\n var propertyValueDump = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n return (ua.indexOf(\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n var fetchApi = getGlobalInst(\"fetch\");\r\n isSupported = !!fetchApi;\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== undefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(\"XMLHttpRequest\"), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(\"XMLHttpRequest\");\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nexport const _debugComposition = false;\nexport class TextAreaState {\n constructor(value, selectionStart, selectionEnd, selectionStartPosition, selectionEndPosition) {\n this.value = value;\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n this.selectionStartPosition = selectionStartPosition;\n this.selectionEndPosition = selectionEndPosition;\n }\n toString() {\n return '[ <' + this.value + '>, selectionStart: ' + this.selectionStart + ', selectionEnd: ' + this.selectionEnd + ']';\n }\n static readFromTextArea(textArea) {\n return new TextAreaState(textArea.getValue(), textArea.getSelectionStart(), textArea.getSelectionEnd(), null, null);\n }\n collapseSelection() {\n return new TextAreaState(this.value, this.value.length, this.value.length, null, null);\n }\n writeToTextArea(reason, textArea, select) {\n if (_debugComposition) {\n console.log('writeToTextArea ' + reason + ': ' + this.toString());\n }\n textArea.setValue(reason, this.value);\n if (select) {\n textArea.setSelectionRange(reason, this.selectionStart, this.selectionEnd);\n }\n }\n deduceEditorPosition(offset) {\n if (offset <= this.selectionStart) {\n const str = this.value.substring(offset, this.selectionStart);\n return this._finishDeduceEditorPosition(this.selectionStartPosition, str, -1);\n }\n if (offset >= this.selectionEnd) {\n const str = this.value.substring(this.selectionEnd, offset);\n return this._finishDeduceEditorPosition(this.selectionEndPosition, str, 1);\n }\n const str1 = this.value.substring(this.selectionStart, offset);\n if (str1.indexOf(String.fromCharCode(8230)) === -1) {\n return this._finishDeduceEditorPosition(this.selectionStartPosition, str1, 1);\n }\n const str2 = this.value.substring(offset, this.selectionEnd);\n return this._finishDeduceEditorPosition(this.selectionEndPosition, str2, -1);\n }\n _finishDeduceEditorPosition(anchor, deltaText, signum) {\n let lineFeedCnt = 0;\n let lastLineFeedIndex = -1;\n while ((lastLineFeedIndex = deltaText.indexOf('\\n', lastLineFeedIndex + 1)) !== -1) {\n lineFeedCnt++;\n }\n return [anchor, signum * deltaText.length, lineFeedCnt];\n }\n static selectedText(text) {\n return new TextAreaState(text, 0, text.length, null, null);\n }\n static deduceInput(previousState, currentState, couldBeEmojiInput) {\n if (!previousState) {\n // This is the EMPTY state\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n if (_debugComposition) {\n console.log('------------------------deduceInput');\n console.log('PREVIOUS STATE: ' + previousState.toString());\n console.log('CURRENT STATE: ' + currentState.toString());\n }\n let previousValue = previousState.value;\n let previousSelectionStart = previousState.selectionStart;\n let previousSelectionEnd = previousState.selectionEnd;\n let currentValue = currentState.value;\n let currentSelectionStart = currentState.selectionStart;\n let currentSelectionEnd = currentState.selectionEnd;\n // Strip the previous suffix from the value (without interfering with the current selection)\n const previousSuffix = previousValue.substring(previousSelectionEnd);\n const currentSuffix = currentValue.substring(currentSelectionEnd);\n const suffixLength = strings.commonSuffixLength(previousSuffix, currentSuffix);\n currentValue = currentValue.substring(0, currentValue.length - suffixLength);\n previousValue = previousValue.substring(0, previousValue.length - suffixLength);\n const previousPrefix = previousValue.substring(0, previousSelectionStart);\n const currentPrefix = currentValue.substring(0, currentSelectionStart);\n const prefixLength = strings.commonPrefixLength(previousPrefix, currentPrefix);\n currentValue = currentValue.substring(prefixLength);\n previousValue = previousValue.substring(prefixLength);\n currentSelectionStart -= prefixLength;\n previousSelectionStart -= prefixLength;\n currentSelectionEnd -= prefixLength;\n previousSelectionEnd -= prefixLength;\n if (_debugComposition) {\n console.log('AFTER DIFFING PREVIOUS STATE: <' + previousValue + '>, selectionStart: ' + previousSelectionStart + ', selectionEnd: ' + previousSelectionEnd);\n console.log('AFTER DIFFING CURRENT STATE: <' + currentValue + '>, selectionStart: ' + currentSelectionStart + ', selectionEnd: ' + currentSelectionEnd);\n }\n if (couldBeEmojiInput && currentSelectionStart === currentSelectionEnd && previousValue.length > 0) {\n // on OSX, emojis from the emoji picker are inserted at random locations\n // the only hints we can use is that the selection is immediately after the inserted emoji\n // and that none of the old text has been deleted\n let potentialEmojiInput = null;\n if (currentSelectionStart === currentValue.length) {\n // emoji potentially inserted \"somewhere\" after the previous selection => it should appear at the end of `currentValue`\n if (currentValue.startsWith(previousValue)) {\n // only if all of the old text is accounted for\n potentialEmojiInput = currentValue.substring(previousValue.length);\n }\n }\n else {\n // emoji potentially inserted \"somewhere\" before the previous selection => it should appear at the start of `currentValue`\n if (currentValue.endsWith(previousValue)) {\n // only if all of the old text is accounted for\n potentialEmojiInput = currentValue.substring(0, currentValue.length - previousValue.length);\n }\n }\n if (potentialEmojiInput !== null && potentialEmojiInput.length > 0) {\n // now we check that this is indeed an emoji\n // emojis can grow quite long, so a length check is of no help\n // e.g. 1F3F4 E0067 E0062 E0065 E006E E0067 E007F ; fully-qualified # 🏴󠁧󠁢󠁥󠁮󠁧󠁿 England\n // Oftentimes, emojis use Variation Selector-16 (U+FE0F), so that is a good hint\n // http://emojipedia.org/variation-selector-16/\n // > An invisible codepoint which specifies that the preceding character\n // > should be displayed with emoji presentation. Only required if the\n // > preceding character defaults to text presentation.\n if (/\\uFE0F/.test(potentialEmojiInput) || strings.containsEmoji(potentialEmojiInput)) {\n return {\n text: potentialEmojiInput,\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n }\n }\n if (currentSelectionStart === currentSelectionEnd) {\n // composition accept case (noticed in FF + Japanese)\n // [blahblah] => blahblah|\n if (previousValue === currentValue\n && previousSelectionStart === 0\n && previousSelectionEnd === previousValue.length\n && currentSelectionStart === currentValue.length\n && currentValue.indexOf('\\n') === -1) {\n if (strings.containsFullWidthCharacter(currentValue)) {\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n }\n // no current selection\n const replacePreviousCharacters = (previousPrefix.length - prefixLength);\n if (_debugComposition) {\n console.log('REMOVE PREVIOUS: ' + (previousPrefix.length - prefixLength) + ' chars');\n }\n return {\n text: currentValue,\n replacePrevCharCnt: replacePreviousCharacters,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n // there is a current selection => composition case\n const replacePreviousCharacters = previousSelectionEnd - previousSelectionStart;\n return {\n text: currentValue,\n replacePrevCharCnt: replacePreviousCharacters,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n static deduceAndroidCompositionInput(previousState, currentState) {\n if (!previousState) {\n // This is the EMPTY state\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n if (_debugComposition) {\n console.log('------------------------deduceAndroidCompositionInput');\n console.log('PREVIOUS STATE: ' + previousState.toString());\n console.log('CURRENT STATE: ' + currentState.toString());\n }\n if (previousState.value === currentState.value) {\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: currentState.selectionEnd - previousState.selectionEnd\n };\n }\n const prefixLength = Math.min(strings.commonPrefixLength(previousState.value, currentState.value), previousState.selectionEnd);\n const suffixLength = Math.min(strings.commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd);\n const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n const previousSelectionStart = previousState.selectionStart - prefixLength;\n const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n const currentSelectionStart = currentState.selectionStart - prefixLength;\n const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n if (_debugComposition) {\n console.log('AFTER DIFFING PREVIOUS STATE: <' + previousValue + '>, selectionStart: ' + previousSelectionStart + ', selectionEnd: ' + previousSelectionEnd);\n console.log('AFTER DIFFING CURRENT STATE: <' + currentValue + '>, selectionStart: ' + currentSelectionStart + ', selectionEnd: ' + currentSelectionEnd);\n }\n return {\n text: currentValue,\n replacePrevCharCnt: previousSelectionEnd,\n replaceNextCharCnt: previousValue.length - previousSelectionEnd,\n positionDelta: currentSelectionEnd - currentValue.length\n };\n }\n}\nTextAreaState.EMPTY = new TextAreaState('', 0, 0, null, null);\nexport class PagedScreenReaderStrategy {\n static _getPageOfLine(lineNumber, linesPerPage) {\n return Math.floor((lineNumber - 1) / linesPerPage);\n }\n static _getRangeForPage(page, linesPerPage) {\n const offset = page * linesPerPage;\n const startLineNumber = offset + 1;\n const endLineNumber = offset + linesPerPage;\n return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n }\n static fromEditorSelection(previousState, model, selection, linesPerPage, trimLongText) {\n const selectionStartPage = PagedScreenReaderStrategy._getPageOfLine(selection.startLineNumber, linesPerPage);\n const selectionStartPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionStartPage, linesPerPage);\n const selectionEndPage = PagedScreenReaderStrategy._getPageOfLine(selection.endLineNumber, linesPerPage);\n const selectionEndPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionEndPage, linesPerPage);\n const pretextRange = selectionStartPageRange.intersectRanges(new Range(1, 1, selection.startLineNumber, selection.startColumn));\n let pretext = model.getValueInRange(pretextRange, 1 /* LF */);\n const lastLine = model.getLineCount();\n const lastLineMaxColumn = model.getLineMaxColumn(lastLine);\n const posttextRange = selectionEndPageRange.intersectRanges(new Range(selection.endLineNumber, selection.endColumn, lastLine, lastLineMaxColumn));\n let posttext = model.getValueInRange(posttextRange, 1 /* LF */);\n let text;\n if (selectionStartPage === selectionEndPage || selectionStartPage + 1 === selectionEndPage) {\n // take full selection\n text = model.getValueInRange(selection, 1 /* LF */);\n }\n else {\n const selectionRange1 = selectionStartPageRange.intersectRanges(selection);\n const selectionRange2 = selectionEndPageRange.intersectRanges(selection);\n text = (model.getValueInRange(selectionRange1, 1 /* LF */)\n + String.fromCharCode(8230)\n + model.getValueInRange(selectionRange2, 1 /* LF */));\n }\n // Chromium handles very poorly text even of a few thousand chars\n // Cut text to avoid stalling the entire UI\n if (trimLongText) {\n const LIMIT_CHARS = 500;\n if (pretext.length > LIMIT_CHARS) {\n pretext = pretext.substring(pretext.length - LIMIT_CHARS, pretext.length);\n }\n if (posttext.length > LIMIT_CHARS) {\n posttext = posttext.substring(0, LIMIT_CHARS);\n }\n if (text.length > 2 * LIMIT_CHARS) {\n text = text.substring(0, LIMIT_CHARS) + String.fromCharCode(8230) + text.substring(text.length - LIMIT_CHARS, text.length);\n }\n }\n return new TextAreaState(pretext + text + posttext, pretext.length, pretext.length + text.length, new Position(selection.startLineNumber, selection.startColumn), new Position(selection.endLineNumber, selection.endColumn));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ThrottledDelayer } from '../../../common/async.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { isUndefinedOrNull } from '../../../common/types.js';\nvar StorageState;\n(function (StorageState) {\n StorageState[StorageState[\"None\"] = 0] = \"None\";\n StorageState[StorageState[\"Initialized\"] = 1] = \"Initialized\";\n StorageState[StorageState[\"Closed\"] = 2] = \"Closed\";\n})(StorageState || (StorageState = {}));\nexport class Storage extends Disposable {\n constructor(database, options = Object.create(null)) {\n super();\n this.database = database;\n this.options = options;\n this._onDidChangeStorage = this._register(new Emitter());\n this.onDidChangeStorage = this._onDidChangeStorage.event;\n this.state = StorageState.None;\n this.cache = new Map();\n this.flushDelayer = new ThrottledDelayer(Storage.DEFAULT_FLUSH_DELAY);\n this.pendingDeletes = new Set();\n this.pendingInserts = new Map();\n this.whenFlushedCallbacks = [];\n this.registerListeners();\n }\n registerListeners() {\n this._register(this.database.onDidChangeItemsExternal(e => this.onDidChangeItemsExternal(e)));\n }\n onDidChangeItemsExternal(e) {\n var _a, _b;\n // items that change external require us to update our\n // caches with the values. we just accept the value and\n // emit an event if there is a change.\n (_a = e.changed) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => this.accept(key, value));\n (_b = e.deleted) === null || _b === void 0 ? void 0 : _b.forEach(key => this.accept(key, undefined));\n }\n accept(key, value) {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n let changed = false;\n // Item got removed, check for deletion\n if (isUndefinedOrNull(value)) {\n changed = this.cache.delete(key);\n }\n // Item got updated, check for change\n else {\n const currentValue = this.cache.get(key);\n if (currentValue !== value) {\n this.cache.set(key, value);\n changed = true;\n }\n }\n // Signal to outside listeners\n if (changed) {\n this._onDidChangeStorage.fire(key);\n }\n }\n get(key, fallbackValue) {\n const value = this.cache.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return value;\n }\n getBoolean(key, fallbackValue) {\n const value = this.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return value === 'true';\n }\n getNumber(key, fallbackValue) {\n const value = this.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return parseInt(value, 10);\n }\n set(key, value) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n // We remove the key for undefined/null values\n if (isUndefinedOrNull(value)) {\n return this.delete(key);\n }\n // Otherwise, convert to String and store\n const valueStr = String(value);\n // Return early if value already set\n const currentValue = this.cache.get(key);\n if (currentValue === valueStr) {\n return;\n }\n // Update in cache and pending\n this.cache.set(key, valueStr);\n this.pendingInserts.set(key, valueStr);\n this.pendingDeletes.delete(key);\n // Event\n this._onDidChangeStorage.fire(key);\n // Accumulate work by scheduling after timeout\n return this.flushDelayer.trigger(() => this.flushPending());\n });\n }\n delete(key) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n // Remove from cache and add to pending\n const wasDeleted = this.cache.delete(key);\n if (!wasDeleted) {\n return; // Return early if value already deleted\n }\n if (!this.pendingDeletes.has(key)) {\n this.pendingDeletes.add(key);\n }\n this.pendingInserts.delete(key);\n // Event\n this._onDidChangeStorage.fire(key);\n // Accumulate work by scheduling after timeout\n return this.flushDelayer.trigger(() => this.flushPending());\n });\n }\n get hasPending() {\n return this.pendingInserts.size > 0 || this.pendingDeletes.size > 0;\n }\n flushPending() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.hasPending) {\n return; // return early if nothing to do\n }\n // Get pending data\n const updateRequest = { insert: this.pendingInserts, delete: this.pendingDeletes };\n // Reset pending data for next run\n this.pendingDeletes = new Set();\n this.pendingInserts = new Map();\n // Update in storage and release any\n // waiters we have once done\n return this.database.updateItems(updateRequest).finally(() => {\n var _a;\n if (!this.hasPending) {\n while (this.whenFlushedCallbacks.length) {\n (_a = this.whenFlushedCallbacks.pop()) === null || _a === void 0 ? void 0 : _a();\n }\n }\n });\n });\n }\n dispose() {\n this.flushDelayer.dispose();\n super.dispose();\n }\n}\nStorage.DEFAULT_FLUSH_DELAY = 100;\nexport class InMemoryStorageDatabase {\n constructor() {\n this.onDidChangeItemsExternal = Event.None;\n this.items = new Map();\n }\n updateItems(request) {\n return __awaiter(this, void 0, void 0, function* () {\n if (request.insert) {\n request.insert.forEach((value, key) => this.items.set(key, value));\n }\n if (request.delete) {\n request.delete.forEach(key => this.items.delete(key));\n }\n });\n }\n}\n","import { Emitter, PauseableEmitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { isUndefinedOrNull } from '../../../base/common/types.js';\nimport { InMemoryStorageDatabase, Storage } from '../../../base/parts/storage/common/storage.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nconst TARGET_KEY = '__$__targetStorageMarker';\nexport const IStorageService = createDecorator('storageService');\nexport var WillSaveStateReason;\n(function (WillSaveStateReason) {\n /**\n * No specific reason to save state.\n */\n WillSaveStateReason[WillSaveStateReason[\"NONE\"] = 0] = \"NONE\";\n /**\n * A hint that the workbench is about to shutdown.\n */\n WillSaveStateReason[WillSaveStateReason[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\n})(WillSaveStateReason || (WillSaveStateReason = {}));\nexport class AbstractStorageService extends Disposable {\n constructor(options = { flushInterval: AbstractStorageService.DEFAULT_FLUSH_INTERVAL }) {\n super();\n this.options = options;\n this._onDidChangeValue = this._register(new PauseableEmitter());\n this._onDidChangeTarget = this._register(new PauseableEmitter());\n this._onWillSaveState = this._register(new Emitter());\n this.onWillSaveState = this._onWillSaveState.event;\n this._workspaceKeyTargets = undefined;\n this._globalKeyTargets = undefined;\n }\n emitDidChangeValue(scope, key) {\n // Specially handle `TARGET_KEY`\n if (key === TARGET_KEY) {\n // Clear our cached version which is now out of date\n if (scope === 0 /* GLOBAL */) {\n this._globalKeyTargets = undefined;\n }\n else if (scope === 1 /* WORKSPACE */) {\n this._workspaceKeyTargets = undefined;\n }\n // Emit as `didChangeTarget` event\n this._onDidChangeTarget.fire({ scope });\n }\n // Emit any other key to outside\n else {\n this._onDidChangeValue.fire({ scope, key, target: this.getKeyTargets(scope)[key] });\n }\n }\n get(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.get(key, fallbackValue);\n }\n getBoolean(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getBoolean(key, fallbackValue);\n }\n getNumber(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getNumber(key, fallbackValue);\n }\n store(key, value, scope, target) {\n // We remove the key for undefined/null values\n if (isUndefinedOrNull(value)) {\n this.remove(key, scope);\n return;\n }\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, target);\n // Store actual value\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(key, value);\n });\n }\n remove(key, scope) {\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, undefined);\n // Remove actual key\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.delete(key);\n });\n }\n withPausedEmitters(fn) {\n // Pause emitters\n this._onDidChangeValue.pause();\n this._onDidChangeTarget.pause();\n try {\n fn();\n }\n finally {\n // Resume emitters\n this._onDidChangeValue.resume();\n this._onDidChangeTarget.resume();\n }\n }\n updateKeyTarget(key, scope, target) {\n var _a, _b;\n // Add\n const keyTargets = this.getKeyTargets(scope);\n if (typeof target === 'number') {\n if (keyTargets[key] !== target) {\n keyTargets[key] = target;\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(TARGET_KEY, JSON.stringify(keyTargets));\n }\n }\n // Remove\n else {\n if (typeof keyTargets[key] === 'number') {\n delete keyTargets[key];\n (_b = this.getStorage(scope)) === null || _b === void 0 ? void 0 : _b.set(TARGET_KEY, JSON.stringify(keyTargets));\n }\n }\n }\n get workspaceKeyTargets() {\n if (!this._workspaceKeyTargets) {\n this._workspaceKeyTargets = this.loadKeyTargets(1 /* WORKSPACE */);\n }\n return this._workspaceKeyTargets;\n }\n get globalKeyTargets() {\n if (!this._globalKeyTargets) {\n this._globalKeyTargets = this.loadKeyTargets(0 /* GLOBAL */);\n }\n return this._globalKeyTargets;\n }\n getKeyTargets(scope) {\n return scope === 0 /* GLOBAL */ ? this.globalKeyTargets : this.workspaceKeyTargets;\n }\n loadKeyTargets(scope) {\n const keysRaw = this.get(TARGET_KEY, scope);\n if (keysRaw) {\n try {\n return JSON.parse(keysRaw);\n }\n catch (error) {\n // Fail gracefully\n }\n }\n return Object.create(null);\n }\n}\nAbstractStorageService.DEFAULT_FLUSH_INTERVAL = 60 * 1000; // every minute\nexport class InMemoryStorageService extends AbstractStorageService {\n constructor() {\n super();\n this.globalStorage = this._register(new Storage(new InMemoryStorageDatabase()));\n this.workspaceStorage = this._register(new Storage(new InMemoryStorageDatabase()));\n this._register(this.workspaceStorage.onDidChangeStorage(key => this.emitDidChangeValue(1 /* WORKSPACE */, key)));\n this._register(this.globalStorage.onDidChangeStorage(key => this.emitDidChangeValue(0 /* GLOBAL */, key)));\n }\n getStorage(scope) {\n return scope === 0 /* GLOBAL */ ? this.globalStorage : this.workspaceStorage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass Node {\n constructor(element) {\n this.element = element;\n this.next = Node.Undefined;\n this.prev = Node.Undefined;\n }\n}\nNode.Undefined = new Node(undefined);\nexport class LinkedList {\n constructor() {\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n this._size = 0;\n }\n get size() {\n return this._size;\n }\n isEmpty() {\n return this._first === Node.Undefined;\n }\n clear() {\n let node = this._first;\n while (node !== Node.Undefined) {\n const next = node.next;\n node.prev = Node.Undefined;\n node.next = Node.Undefined;\n node = next;\n }\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n this._size = 0;\n }\n unshift(element) {\n return this._insert(element, false);\n }\n push(element) {\n return this._insert(element, true);\n }\n _insert(element, atTheEnd) {\n const newNode = new Node(element);\n if (this._first === Node.Undefined) {\n this._first = newNode;\n this._last = newNode;\n }\n else if (atTheEnd) {\n // push\n const oldLast = this._last;\n this._last = newNode;\n newNode.prev = oldLast;\n oldLast.next = newNode;\n }\n else {\n // unshift\n const oldFirst = this._first;\n this._first = newNode;\n newNode.next = oldFirst;\n oldFirst.prev = newNode;\n }\n this._size += 1;\n let didRemove = false;\n return () => {\n if (!didRemove) {\n didRemove = true;\n this._remove(newNode);\n }\n };\n }\n shift() {\n if (this._first === Node.Undefined) {\n return undefined;\n }\n else {\n const res = this._first.element;\n this._remove(this._first);\n return res;\n }\n }\n pop() {\n if (this._last === Node.Undefined) {\n return undefined;\n }\n else {\n const res = this._last.element;\n this._remove(this._last);\n return res;\n }\n }\n _remove(node) {\n if (node.prev !== Node.Undefined && node.next !== Node.Undefined) {\n // middle\n const anchor = node.prev;\n anchor.next = node.next;\n node.next.prev = anchor;\n }\n else if (node.prev === Node.Undefined && node.next === Node.Undefined) {\n // only node\n this._first = Node.Undefined;\n this._last = Node.Undefined;\n }\n else if (node.next === Node.Undefined) {\n // last\n this._last = this._last.prev;\n this._last.next = Node.Undefined;\n }\n else if (node.prev === Node.Undefined) {\n // first\n this._first = this._first.next;\n this._first.prev = Node.Undefined;\n }\n // done\n this._size -= 1;\n }\n *[Symbol.iterator]() {\n let node = this._first;\n while (node !== Node.Undefined) {\n yield node.element;\n node = node.next;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { createStringBuilder } from '../core/stringBuilder.js';\nimport { LineDecoration, LineDecorationsNormalizer } from './lineDecorations.js';\nclass LinePart {\n constructor(endIndex, type, metadata) {\n this._linePartBrand = undefined;\n this.endIndex = endIndex;\n this.type = type;\n this.metadata = metadata;\n }\n isWhitespace() {\n return (this.metadata & 1 /* IS_WHITESPACE_MASK */ ? true : false);\n }\n isPseudoAfter() {\n return (this.metadata & 4 /* PSEUDO_AFTER_MASK */ ? true : false);\n }\n}\nexport class LineRange {\n constructor(startIndex, endIndex) {\n this.startOffset = startIndex;\n this.endOffset = endIndex;\n }\n equals(otherLineRange) {\n return this.startOffset === otherLineRange.startOffset\n && this.endOffset === otherLineRange.endOffset;\n }\n}\nexport class RenderLineInput {\n constructor(useMonospaceOptimizations, canUseHalfwidthRightwardsArrow, lineContent, continuesWithWrappedLine, isBasicASCII, containsRTL, fauxIndentLength, lineTokens, lineDecorations, tabSize, startVisibleColumn, spaceWidth, middotWidth, wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures, selectionsOnLine) {\n this.useMonospaceOptimizations = useMonospaceOptimizations;\n this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n this.lineContent = lineContent;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.isBasicASCII = isBasicASCII;\n this.containsRTL = containsRTL;\n this.fauxIndentLength = fauxIndentLength;\n this.lineTokens = lineTokens;\n this.lineDecorations = lineDecorations.sort(LineDecoration.compare);\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n this.spaceWidth = spaceWidth;\n this.stopRenderingLineAfter = stopRenderingLineAfter;\n this.renderWhitespace = (renderWhitespace === 'all'\n ? 4 /* All */\n : renderWhitespace === 'boundary'\n ? 1 /* Boundary */\n : renderWhitespace === 'selection'\n ? 2 /* Selection */\n : renderWhitespace === 'trailing'\n ? 3 /* Trailing */\n : 0 /* None */);\n this.renderControlCharacters = renderControlCharacters;\n this.fontLigatures = fontLigatures;\n this.selectionsOnLine = selectionsOnLine && selectionsOnLine.sort((a, b) => a.startOffset < b.startOffset ? -1 : 1);\n const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n const middotDiff = Math.abs(middotWidth - spaceWidth);\n if (wsmiddotDiff < middotDiff) {\n this.renderSpaceWidth = wsmiddotWidth;\n this.renderSpaceCharCode = 0x2E31; // U+2E31 - WORD SEPARATOR MIDDLE DOT\n }\n else {\n this.renderSpaceWidth = middotWidth;\n this.renderSpaceCharCode = 0xB7; // U+00B7 - MIDDLE DOT\n }\n }\n sameSelection(otherSelections) {\n if (this.selectionsOnLine === null) {\n return otherSelections === null;\n }\n if (otherSelections === null) {\n return false;\n }\n if (otherSelections.length !== this.selectionsOnLine.length) {\n return false;\n }\n for (let i = 0; i < this.selectionsOnLine.length; i++) {\n if (!this.selectionsOnLine[i].equals(otherSelections[i])) {\n return false;\n }\n }\n return true;\n }\n equals(other) {\n return (this.useMonospaceOptimizations === other.useMonospaceOptimizations\n && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n && this.lineContent === other.lineContent\n && this.continuesWithWrappedLine === other.continuesWithWrappedLine\n && this.isBasicASCII === other.isBasicASCII\n && this.containsRTL === other.containsRTL\n && this.fauxIndentLength === other.fauxIndentLength\n && this.tabSize === other.tabSize\n && this.startVisibleColumn === other.startVisibleColumn\n && this.spaceWidth === other.spaceWidth\n && this.renderSpaceWidth === other.renderSpaceWidth\n && this.renderSpaceCharCode === other.renderSpaceCharCode\n && this.stopRenderingLineAfter === other.stopRenderingLineAfter\n && this.renderWhitespace === other.renderWhitespace\n && this.renderControlCharacters === other.renderControlCharacters\n && this.fontLigatures === other.fontLigatures\n && LineDecoration.equalsArr(this.lineDecorations, other.lineDecorations)\n && this.lineTokens.equals(other.lineTokens)\n && this.sameSelection(other.selectionsOnLine));\n }\n}\nexport class DomPosition {\n constructor(partIndex, charIndex) {\n this.partIndex = partIndex;\n this.charIndex = charIndex;\n }\n}\n/**\n * Provides a both direction mapping between a line's character and its rendered position.\n */\nexport class CharacterMapping {\n constructor(length, partCount) {\n this.length = length;\n this._data = new Uint32Array(this.length);\n this._absoluteOffsets = new Uint32Array(this.length);\n }\n static getPartIndex(partData) {\n return (partData & 4294901760 /* PART_INDEX_MASK */) >>> 16 /* PART_INDEX_OFFSET */;\n }\n static getCharIndex(partData) {\n return (partData & 65535 /* CHAR_INDEX_MASK */) >>> 0 /* CHAR_INDEX_OFFSET */;\n }\n setColumnInfo(column, partIndex, charIndex, partAbsoluteOffset) {\n const partData = ((partIndex << 16 /* PART_INDEX_OFFSET */)\n | (charIndex << 0 /* CHAR_INDEX_OFFSET */)) >>> 0;\n this._data[column - 1] = partData;\n this._absoluteOffsets[column - 1] = partAbsoluteOffset + charIndex;\n }\n getAbsoluteOffset(column) {\n if (this._absoluteOffsets.length === 0) {\n // No characters on this line\n return 0;\n }\n return this._absoluteOffsets[column - 1];\n }\n charOffsetToPartData(charOffset) {\n if (this.length === 0) {\n return 0;\n }\n if (charOffset < 0) {\n return this._data[0];\n }\n if (charOffset >= this.length) {\n return this._data[this.length - 1];\n }\n return this._data[charOffset];\n }\n getDomPosition(column) {\n const partData = this.charOffsetToPartData(column - 1);\n const partIndex = CharacterMapping.getPartIndex(partData);\n const charIndex = CharacterMapping.getCharIndex(partData);\n return new DomPosition(partIndex, charIndex);\n }\n getColumn(domPosition, partLength) {\n const charOffset = this.partDataToCharOffset(domPosition.partIndex, partLength, domPosition.charIndex);\n return charOffset + 1;\n }\n partDataToCharOffset(partIndex, partLength, charIndex) {\n if (this.length === 0) {\n return 0;\n }\n let searchEntry = ((partIndex << 16 /* PART_INDEX_OFFSET */)\n | (charIndex << 0 /* CHAR_INDEX_OFFSET */)) >>> 0;\n let min = 0;\n let max = this.length - 1;\n while (min + 1 < max) {\n let mid = ((min + max) >>> 1);\n let midEntry = this._data[mid];\n if (midEntry === searchEntry) {\n return mid;\n }\n else if (midEntry > searchEntry) {\n max = mid;\n }\n else {\n min = mid;\n }\n }\n if (min === max) {\n return min;\n }\n let minEntry = this._data[min];\n let maxEntry = this._data[max];\n if (minEntry === searchEntry) {\n return min;\n }\n if (maxEntry === searchEntry) {\n return max;\n }\n let minPartIndex = CharacterMapping.getPartIndex(minEntry);\n let minCharIndex = CharacterMapping.getCharIndex(minEntry);\n let maxPartIndex = CharacterMapping.getPartIndex(maxEntry);\n let maxCharIndex;\n if (minPartIndex !== maxPartIndex) {\n // sitting between parts\n maxCharIndex = partLength;\n }\n else {\n maxCharIndex = CharacterMapping.getCharIndex(maxEntry);\n }\n let minEntryDistance = charIndex - minCharIndex;\n let maxEntryDistance = maxCharIndex - charIndex;\n if (minEntryDistance <= maxEntryDistance) {\n return min;\n }\n return max;\n }\n}\nexport class RenderLineOutput {\n constructor(characterMapping, containsRTL, containsForeignElements) {\n this._renderLineOutputBrand = undefined;\n this.characterMapping = characterMapping;\n this.containsRTL = containsRTL;\n this.containsForeignElements = containsForeignElements;\n }\n}\nexport function renderViewLine(input, sb) {\n if (input.lineContent.length === 0) {\n if (input.lineDecorations.length > 0) {\n // This line is empty, but it contains inline decorations\n sb.appendASCIIString(``);\n let beforeCount = 0;\n let afterCount = 0;\n let containsForeignElements = 0 /* None */;\n for (const lineDecoration of input.lineDecorations) {\n if (lineDecoration.type === 1 /* Before */ || lineDecoration.type === 2 /* After */) {\n sb.appendASCIIString(``);\n if (lineDecoration.type === 1 /* Before */) {\n containsForeignElements |= 1 /* Before */;\n beforeCount++;\n }\n if (lineDecoration.type === 2 /* After */) {\n containsForeignElements |= 2 /* After */;\n afterCount++;\n }\n }\n }\n sb.appendASCIIString(``);\n const characterMapping = new CharacterMapping(1, beforeCount + afterCount);\n characterMapping.setColumnInfo(1, beforeCount, 0, 0);\n return new RenderLineOutput(characterMapping, false, containsForeignElements);\n }\n // completely empty line\n sb.appendASCIIString('');\n return new RenderLineOutput(new CharacterMapping(0, 0), false, 0 /* None */);\n }\n return _renderLine(resolveRenderLineInput(input), sb);\n}\nexport class RenderLineOutput2 {\n constructor(characterMapping, html, containsRTL, containsForeignElements) {\n this.characterMapping = characterMapping;\n this.html = html;\n this.containsRTL = containsRTL;\n this.containsForeignElements = containsForeignElements;\n }\n}\nexport function renderViewLine2(input) {\n let sb = createStringBuilder(10000);\n let out = renderViewLine(input, sb);\n return new RenderLineOutput2(out.characterMapping, sb.build(), out.containsRTL, out.containsForeignElements);\n}\nclass ResolvedRenderLineInput {\n constructor(fontIsMonospace, canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, parts, containsForeignElements, fauxIndentLength, tabSize, startVisibleColumn, containsRTL, spaceWidth, renderSpaceCharCode, renderWhitespace, renderControlCharacters) {\n this.fontIsMonospace = fontIsMonospace;\n this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n this.lineContent = lineContent;\n this.len = len;\n this.isOverflowing = isOverflowing;\n this.parts = parts;\n this.containsForeignElements = containsForeignElements;\n this.fauxIndentLength = fauxIndentLength;\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n this.containsRTL = containsRTL;\n this.spaceWidth = spaceWidth;\n this.renderSpaceCharCode = renderSpaceCharCode;\n this.renderWhitespace = renderWhitespace;\n this.renderControlCharacters = renderControlCharacters;\n //\n }\n}\nfunction resolveRenderLineInput(input) {\n const lineContent = input.lineContent;\n let isOverflowing;\n let len;\n if (input.stopRenderingLineAfter !== -1 && input.stopRenderingLineAfter < lineContent.length) {\n isOverflowing = true;\n len = input.stopRenderingLineAfter;\n }\n else {\n isOverflowing = false;\n len = lineContent.length;\n }\n let tokens = transformAndRemoveOverflowing(input.lineTokens, input.fauxIndentLength, len);\n if (input.renderWhitespace === 4 /* All */ ||\n input.renderWhitespace === 1 /* Boundary */ ||\n (input.renderWhitespace === 2 /* Selection */ && !!input.selectionsOnLine) ||\n input.renderWhitespace === 3 /* Trailing */) {\n tokens = _applyRenderWhitespace(input, lineContent, len, tokens);\n }\n let containsForeignElements = 0 /* None */;\n if (input.lineDecorations.length > 0) {\n for (let i = 0, len = input.lineDecorations.length; i < len; i++) {\n const lineDecoration = input.lineDecorations[i];\n if (lineDecoration.type === 3 /* RegularAffectingLetterSpacing */) {\n // Pretend there are foreign elements... although not 100% accurate.\n containsForeignElements |= 1 /* Before */;\n }\n else if (lineDecoration.type === 1 /* Before */) {\n containsForeignElements |= 1 /* Before */;\n }\n else if (lineDecoration.type === 2 /* After */) {\n containsForeignElements |= 2 /* After */;\n }\n }\n tokens = _applyInlineDecorations(lineContent, len, tokens, input.lineDecorations);\n }\n if (!input.containsRTL) {\n // We can never split RTL text, as it ruins the rendering\n tokens = splitLargeTokens(lineContent, tokens, !input.isBasicASCII || input.fontLigatures);\n }\n if (input.renderControlCharacters && !input.isBasicASCII) {\n tokens = extractControlCharacters(lineContent, tokens);\n }\n return new ResolvedRenderLineInput(input.useMonospaceOptimizations, input.canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, tokens, containsForeignElements, input.fauxIndentLength, input.tabSize, input.startVisibleColumn, input.containsRTL, input.spaceWidth, input.renderSpaceCharCode, input.renderWhitespace, input.renderControlCharacters);\n}\n/**\n * In the rendering phase, characters are always looped until token.endIndex.\n * Ensure that all tokens end before `len` and the last one ends precisely at `len`.\n */\nfunction transformAndRemoveOverflowing(tokens, fauxIndentLength, len) {\n let result = [], resultLen = 0;\n // The faux indent part of the line should have no token type\n if (fauxIndentLength > 0) {\n result[resultLen++] = new LinePart(fauxIndentLength, '', 0);\n }\n for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex < tokensLen; tokenIndex++) {\n const endIndex = tokens.getEndOffset(tokenIndex);\n if (endIndex <= fauxIndentLength) {\n // The faux indent part of the line should have no token type\n continue;\n }\n const type = tokens.getClassName(tokenIndex);\n if (endIndex >= len) {\n result[resultLen++] = new LinePart(len, type, 0);\n break;\n }\n result[resultLen++] = new LinePart(endIndex, type, 0);\n }\n return result;\n}\n/**\n * See https://github.com/microsoft/vscode/issues/6885.\n * It appears that having very large spans causes very slow reading of character positions.\n * So here we try to avoid that.\n */\nfunction splitLargeTokens(lineContent, tokens, onlyAtSpaces) {\n let lastTokenEndIndex = 0;\n let result = [], resultLen = 0;\n if (onlyAtSpaces) {\n // Split only at spaces => we need to walk each character\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n const tokenEndIndex = token.endIndex;\n if (lastTokenEndIndex + 50 /* LongToken */ < tokenEndIndex) {\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n let lastSpaceOffset = -1;\n let currTokenStart = lastTokenEndIndex;\n for (let j = lastTokenEndIndex; j < tokenEndIndex; j++) {\n if (lineContent.charCodeAt(j) === 32 /* Space */) {\n lastSpaceOffset = j;\n }\n if (lastSpaceOffset !== -1 && j - currTokenStart >= 50 /* LongToken */) {\n // Split at `lastSpaceOffset` + 1\n result[resultLen++] = new LinePart(lastSpaceOffset + 1, tokenType, tokenMetadata);\n currTokenStart = lastSpaceOffset + 1;\n lastSpaceOffset = -1;\n }\n }\n if (currTokenStart !== tokenEndIndex) {\n result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata);\n }\n }\n else {\n result[resultLen++] = token;\n }\n lastTokenEndIndex = tokenEndIndex;\n }\n }\n else {\n // Split anywhere => we don't need to walk each character\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n const tokenEndIndex = token.endIndex;\n let diff = (tokenEndIndex - lastTokenEndIndex);\n if (diff > 50 /* LongToken */) {\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n const piecesCount = Math.ceil(diff / 50 /* LongToken */);\n for (let j = 1; j < piecesCount; j++) {\n let pieceEndIndex = lastTokenEndIndex + (j * 50 /* LongToken */);\n result[resultLen++] = new LinePart(pieceEndIndex, tokenType, tokenMetadata);\n }\n result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata);\n }\n else {\n result[resultLen++] = token;\n }\n lastTokenEndIndex = tokenEndIndex;\n }\n }\n return result;\n}\nfunction isControlCharacter(charCode) {\n if (charCode < 32) {\n return (charCode !== 9 /* Tab */);\n }\n if (charCode === 127) {\n // DEL\n return true;\n }\n if ((charCode >= 0x202A && charCode <= 0x202E)\n || (charCode >= 0x2066 && charCode <= 0x2069)\n || (charCode >= 0x200E && charCode <= 0x200F)\n || charCode === 0x061C) {\n // Unicode Directional Formatting Characters\n // LRE\tU+202A\tLEFT-TO-RIGHT EMBEDDING\n // RLE\tU+202B\tRIGHT-TO-LEFT EMBEDDING\n // PDF\tU+202C\tPOP DIRECTIONAL FORMATTING\n // LRO\tU+202D\tLEFT-TO-RIGHT OVERRIDE\n // RLO\tU+202E\tRIGHT-TO-LEFT OVERRIDE\n // LRI\tU+2066\tLEFT‑TO‑RIGHT ISOLATE\n // RLI\tU+2067\tRIGHT‑TO‑LEFT ISOLATE\n // FSI\tU+2068\tFIRST STRONG ISOLATE\n // PDI\tU+2069\tPOP DIRECTIONAL ISOLATE\n // LRM\tU+200E\tLEFT-TO-RIGHT MARK\n // RLM\tU+200F\tRIGHT-TO-LEFT MARK\n // ALM\tU+061C\tARABIC LETTER MARK\n return true;\n }\n return false;\n}\nfunction extractControlCharacters(lineContent, tokens) {\n let result = [];\n let lastLinePart = new LinePart(0, '', 0);\n let charOffset = 0;\n for (const token of tokens) {\n const tokenEndIndex = token.endIndex;\n for (; charOffset < tokenEndIndex; charOffset++) {\n const charCode = lineContent.charCodeAt(charOffset);\n if (isControlCharacter(charCode)) {\n if (charOffset > lastLinePart.endIndex) {\n // emit previous part if it has text\n lastLinePart = new LinePart(charOffset, token.type, token.metadata);\n result.push(lastLinePart);\n }\n lastLinePart = new LinePart(charOffset + 1, 'mtkcontrol', token.metadata);\n result.push(lastLinePart);\n }\n }\n if (charOffset > lastLinePart.endIndex) {\n // emit previous part if it has text\n lastLinePart = new LinePart(tokenEndIndex, token.type, token.metadata);\n result.push(lastLinePart);\n }\n }\n return result;\n}\n/**\n * Whitespace is rendered by \"replacing\" tokens with a special-purpose `mtkw` type that is later recognized in the rendering phase.\n * Moreover, a token is created for every visual indent because on some fonts the glyphs used for rendering whitespace (→ or ·) do not have the same width as  .\n * The rendering phase will generate `style=\"width:...\"` for these tokens.\n */\nfunction _applyRenderWhitespace(input, lineContent, len, tokens) {\n const continuesWithWrappedLine = input.continuesWithWrappedLine;\n const fauxIndentLength = input.fauxIndentLength;\n const tabSize = input.tabSize;\n const startVisibleColumn = input.startVisibleColumn;\n const useMonospaceOptimizations = input.useMonospaceOptimizations;\n const selections = input.selectionsOnLine;\n const onlyBoundary = (input.renderWhitespace === 1 /* Boundary */);\n const onlyTrailing = (input.renderWhitespace === 3 /* Trailing */);\n const generateLinePartForEachWhitespace = (input.renderSpaceWidth !== input.spaceWidth);\n let result = [], resultLen = 0;\n let tokenIndex = 0;\n let tokenType = tokens[tokenIndex].type;\n let tokenEndIndex = tokens[tokenIndex].endIndex;\n const tokensLength = tokens.length;\n let lineIsEmptyOrWhitespace = false;\n let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n let lastNonWhitespaceIndex;\n if (firstNonWhitespaceIndex === -1) {\n lineIsEmptyOrWhitespace = true;\n firstNonWhitespaceIndex = len;\n lastNonWhitespaceIndex = len;\n }\n else {\n lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n }\n let wasInWhitespace = false;\n let currentSelectionIndex = 0;\n let currentSelection = selections && selections[currentSelectionIndex];\n let tmpIndent = startVisibleColumn % tabSize;\n for (let charIndex = fauxIndentLength; charIndex < len; charIndex++) {\n const chCode = lineContent.charCodeAt(charIndex);\n if (currentSelection && charIndex >= currentSelection.endOffset) {\n currentSelectionIndex++;\n currentSelection = selections && selections[currentSelectionIndex];\n }\n let isInWhitespace;\n if (charIndex < firstNonWhitespaceIndex || charIndex > lastNonWhitespaceIndex) {\n // in leading or trailing whitespace\n isInWhitespace = true;\n }\n else if (chCode === 9 /* Tab */) {\n // a tab character is rendered both in all and boundary cases\n isInWhitespace = true;\n }\n else if (chCode === 32 /* Space */) {\n // hit a space character\n if (onlyBoundary) {\n // rendering only boundary whitespace\n if (wasInWhitespace) {\n isInWhitespace = true;\n }\n else {\n const nextChCode = (charIndex + 1 < len ? lineContent.charCodeAt(charIndex + 1) : 0 /* Null */);\n isInWhitespace = (nextChCode === 32 /* Space */ || nextChCode === 9 /* Tab */);\n }\n }\n else {\n isInWhitespace = true;\n }\n }\n else {\n isInWhitespace = false;\n }\n // If rendering whitespace on selection, check that the charIndex falls within a selection\n if (isInWhitespace && selections) {\n isInWhitespace = !!currentSelection && currentSelection.startOffset <= charIndex && currentSelection.endOffset > charIndex;\n }\n // If rendering only trailing whitespace, check that the charIndex points to trailing whitespace.\n if (isInWhitespace && onlyTrailing) {\n isInWhitespace = lineIsEmptyOrWhitespace || charIndex > lastNonWhitespaceIndex;\n }\n if (wasInWhitespace) {\n // was in whitespace token\n if (!isInWhitespace || (!useMonospaceOptimizations && tmpIndent >= tabSize)) {\n // leaving whitespace token or entering a new indent\n if (generateLinePartForEachWhitespace) {\n const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n for (let i = lastEndIndex + 1; i <= charIndex; i++) {\n result[resultLen++] = new LinePart(i, 'mtkw', 1 /* IS_WHITESPACE */);\n }\n }\n else {\n result[resultLen++] = new LinePart(charIndex, 'mtkw', 1 /* IS_WHITESPACE */);\n }\n tmpIndent = tmpIndent % tabSize;\n }\n }\n else {\n // was in regular token\n if (charIndex === tokenEndIndex || (isInWhitespace && charIndex > fauxIndentLength)) {\n result[resultLen++] = new LinePart(charIndex, tokenType, 0);\n tmpIndent = tmpIndent % tabSize;\n }\n }\n if (chCode === 9 /* Tab */) {\n tmpIndent = tabSize;\n }\n else if (strings.isFullWidthCharacter(chCode)) {\n tmpIndent += 2;\n }\n else {\n tmpIndent++;\n }\n wasInWhitespace = isInWhitespace;\n while (charIndex === tokenEndIndex) {\n tokenIndex++;\n if (tokenIndex < tokensLength) {\n tokenType = tokens[tokenIndex].type;\n tokenEndIndex = tokens[tokenIndex].endIndex;\n }\n else {\n break;\n }\n }\n }\n let generateWhitespace = false;\n if (wasInWhitespace) {\n // was in whitespace token\n if (continuesWithWrappedLine && onlyBoundary) {\n let lastCharCode = (len > 0 ? lineContent.charCodeAt(len - 1) : 0 /* Null */);\n let prevCharCode = (len > 1 ? lineContent.charCodeAt(len - 2) : 0 /* Null */);\n let isSingleTrailingSpace = (lastCharCode === 32 /* Space */ && (prevCharCode !== 32 /* Space */ && prevCharCode !== 9 /* Tab */));\n if (!isSingleTrailingSpace) {\n generateWhitespace = true;\n }\n }\n else {\n generateWhitespace = true;\n }\n }\n if (generateWhitespace) {\n if (generateLinePartForEachWhitespace) {\n const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n for (let i = lastEndIndex + 1; i <= len; i++) {\n result[resultLen++] = new LinePart(i, 'mtkw', 1 /* IS_WHITESPACE */);\n }\n }\n else {\n result[resultLen++] = new LinePart(len, 'mtkw', 1 /* IS_WHITESPACE */);\n }\n }\n else {\n result[resultLen++] = new LinePart(len, tokenType, 0);\n }\n return result;\n}\n/**\n * Inline decorations are \"merged\" on top of tokens.\n * Special care must be taken when multiple inline decorations are at play and they overlap.\n */\nfunction _applyInlineDecorations(lineContent, len, tokens, _lineDecorations) {\n _lineDecorations.sort(LineDecoration.compare);\n const lineDecorations = LineDecorationsNormalizer.normalize(lineContent, _lineDecorations);\n const lineDecorationsLen = lineDecorations.length;\n let lineDecorationIndex = 0;\n let result = [], resultLen = 0, lastResultEndIndex = 0;\n for (let tokenIndex = 0, len = tokens.length; tokenIndex < len; tokenIndex++) {\n const token = tokens[tokenIndex];\n const tokenEndIndex = token.endIndex;\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset < tokenEndIndex) {\n const lineDecoration = lineDecorations[lineDecorationIndex];\n if (lineDecoration.startOffset > lastResultEndIndex) {\n lastResultEndIndex = lineDecoration.startOffset;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata);\n }\n if (lineDecoration.endOffset + 1 <= tokenEndIndex) {\n // This line decoration ends before this token ends\n lastResultEndIndex = lineDecoration.endOffset + 1;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata);\n lineDecorationIndex++;\n }\n else {\n // This line decoration continues on to the next token\n lastResultEndIndex = tokenEndIndex;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata);\n break;\n }\n }\n if (tokenEndIndex > lastResultEndIndex) {\n lastResultEndIndex = tokenEndIndex;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata);\n }\n }\n const lastTokenEndIndex = tokens[tokens.length - 1].endIndex;\n if (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n const lineDecoration = lineDecorations[lineDecorationIndex];\n result[resultLen++] = new LinePart(lastResultEndIndex, lineDecoration.className, lineDecoration.metadata);\n lineDecorationIndex++;\n }\n }\n return result;\n}\n/**\n * This function is on purpose not split up into multiple functions to allow runtime type inference (i.e. performance reasons).\n * Notice how all the needed data is fully resolved and passed in (i.e. no other calls).\n */\nfunction _renderLine(input, sb) {\n const fontIsMonospace = input.fontIsMonospace;\n const canUseHalfwidthRightwardsArrow = input.canUseHalfwidthRightwardsArrow;\n const containsForeignElements = input.containsForeignElements;\n const lineContent = input.lineContent;\n const len = input.len;\n const isOverflowing = input.isOverflowing;\n const parts = input.parts;\n const fauxIndentLength = input.fauxIndentLength;\n const tabSize = input.tabSize;\n const startVisibleColumn = input.startVisibleColumn;\n const containsRTL = input.containsRTL;\n const spaceWidth = input.spaceWidth;\n const renderSpaceCharCode = input.renderSpaceCharCode;\n const renderWhitespace = input.renderWhitespace;\n const renderControlCharacters = input.renderControlCharacters;\n const characterMapping = new CharacterMapping(len + 1, parts.length);\n let lastCharacterMappingDefined = false;\n let charIndex = 0;\n let visibleColumn = startVisibleColumn;\n let charOffsetInPart = 0;\n let partDisplacement = 0;\n let prevPartContentCnt = 0;\n let partAbsoluteOffset = 0;\n if (containsRTL) {\n sb.appendASCIIString('');\n }\n else {\n sb.appendASCIIString('');\n }\n for (let partIndex = 0, tokensLen = parts.length; partIndex < tokensLen; partIndex++) {\n partAbsoluteOffset += prevPartContentCnt;\n const part = parts[partIndex];\n const partEndIndex = part.endIndex;\n const partType = part.type;\n const partRendersWhitespace = (renderWhitespace !== 0 /* None */ && part.isWhitespace());\n const partRendersWhitespaceWithWidth = partRendersWhitespace && !fontIsMonospace && (partType === 'mtkw' /*only whitespace*/ || !containsForeignElements);\n const partIsEmptyAndHasPseudoAfter = (charIndex === partEndIndex && part.isPseudoAfter());\n charOffsetInPart = 0;\n sb.appendASCIIString('= fauxIndentLength) {\n _visibleColumn += charWidth;\n }\n }\n }\n if (partRendersWhitespaceWithWidth) {\n sb.appendASCIIString(' style=\"width:');\n sb.appendASCIIString(String(spaceWidth * partContentCnt));\n sb.appendASCIIString('px\"');\n }\n sb.appendASCII(62 /* GreaterThan */);\n for (; charIndex < partEndIndex; charIndex++) {\n characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, partAbsoluteOffset);\n partDisplacement = 0;\n const charCode = lineContent.charCodeAt(charIndex);\n let charWidth;\n if (charCode === 9 /* Tab */) {\n charWidth = (tabSize - (visibleColumn % tabSize)) | 0;\n if (!canUseHalfwidthRightwardsArrow || charWidth > 1) {\n sb.write1(0x2192); // RIGHTWARDS ARROW\n }\n else {\n sb.write1(0xFFEB); // HALFWIDTH RIGHTWARDS ARROW\n }\n for (let space = 2; space <= charWidth; space++) {\n sb.write1(0xA0); //  \n }\n }\n else { // must be CharCode.Space\n charWidth = 1;\n sb.write1(renderSpaceCharCode); // · or word separator middle dot\n }\n charOffsetInPart += charWidth;\n if (charIndex >= fauxIndentLength) {\n visibleColumn += charWidth;\n }\n }\n prevPartContentCnt = partContentCnt;\n }\n else {\n let partContentCnt = 0;\n sb.appendASCII(62 /* GreaterThan */);\n for (; charIndex < partEndIndex; charIndex++) {\n characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, partAbsoluteOffset);\n partDisplacement = 0;\n const charCode = lineContent.charCodeAt(charIndex);\n let producedCharacters = 1;\n let charWidth = 1;\n switch (charCode) {\n case 9 /* Tab */:\n producedCharacters = (tabSize - (visibleColumn % tabSize));\n charWidth = producedCharacters;\n for (let space = 1; space <= producedCharacters; space++) {\n sb.write1(0xA0); //  \n }\n break;\n case 32 /* Space */:\n sb.write1(0xA0); //  \n break;\n case 60 /* LessThan */:\n sb.appendASCIIString('<');\n break;\n case 62 /* GreaterThan */:\n sb.appendASCIIString('>');\n break;\n case 38 /* Ampersand */:\n sb.appendASCIIString('&');\n break;\n case 0 /* Null */:\n if (renderControlCharacters) {\n // See https://unicode-table.com/en/blocks/control-pictures/\n sb.write1(9216);\n }\n else {\n sb.appendASCIIString('�');\n }\n break;\n case 65279 /* UTF8_BOM */:\n case 8232 /* LINE_SEPARATOR */:\n case 8233 /* PARAGRAPH_SEPARATOR */:\n case 133 /* NEXT_LINE */:\n sb.write1(0xFFFD);\n break;\n default:\n if (strings.isFullWidthCharacter(charCode)) {\n charWidth++;\n }\n // See https://unicode-table.com/en/blocks/control-pictures/\n if (renderControlCharacters && charCode < 32) {\n sb.write1(9216 + charCode);\n }\n else if (renderControlCharacters && charCode === 127) {\n // DEL\n sb.write1(9249);\n }\n else if (renderControlCharacters && isControlCharacter(charCode)) {\n sb.appendASCIIString('[U+');\n sb.appendASCIIString(to4CharHex(charCode));\n sb.appendASCIIString(']');\n producedCharacters = 8;\n }\n else {\n sb.write1(charCode);\n }\n }\n charOffsetInPart += producedCharacters;\n partContentCnt += producedCharacters;\n if (charIndex >= fauxIndentLength) {\n visibleColumn += charWidth;\n }\n }\n prevPartContentCnt = partContentCnt;\n }\n if (partIsEmptyAndHasPseudoAfter) {\n partDisplacement++;\n }\n else {\n partDisplacement = 0;\n }\n if (charIndex >= len && !lastCharacterMappingDefined && part.isPseudoAfter()) {\n lastCharacterMappingDefined = true;\n characterMapping.setColumnInfo(charIndex + 1, partIndex, charOffsetInPart, partAbsoluteOffset);\n }\n sb.appendASCIIString('');\n }\n if (!lastCharacterMappingDefined) {\n // When getting client rects for the last character, we will position the\n // text range at the end of the span, insteaf of at the beginning of next span\n characterMapping.setColumnInfo(len + 1, parts.length - 1, charOffsetInPart, partAbsoluteOffset);\n }\n if (isOverflowing) {\n sb.appendASCIIString('');\n }\n sb.appendASCIIString('');\n return new RenderLineOutput(characterMapping, containsRTL, containsForeignElements);\n}\nfunction to4CharHex(n) {\n return n.toString(16).toUpperCase().padStart(4, '0');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { isFirefox } from '../../../base/browser/browser.js';\nimport * as types from '../../../base/common/types.js';\nimport { status } from '../../../base/browser/ui/aria/aria.js';\nimport { Command, EditorCommand, registerEditorCommand, UndoCommand, RedoCommand, SelectAllCommand } from '../editorExtensions.js';\nimport { ICodeEditorService } from '../services/codeEditorService.js';\nimport { ColumnSelection } from '../../common/controller/cursorColumnSelection.js';\nimport { CursorState } from '../../common/controller/cursorCommon.js';\nimport { DeleteOperations } from '../../common/controller/cursorDeleteOperations.js';\nimport { CursorMove as CursorMove_, CursorMoveCommands } from '../../common/controller/cursorMoveCommands.js';\nimport { TypeOperations } from '../../common/controller/cursorTypeOperations.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { EditorContextKeys } from '../../common/editorContextKeys.js';\nimport { ContextKeyExpr } from '../../../platform/contextkey/common/contextkey.js';\nimport { KeybindingsRegistry } from '../../../platform/keybinding/common/keybindingsRegistry.js';\nconst CORE_WEIGHT = 0 /* EditorCore */;\nexport class CoreEditorCommand extends EditorCommand {\n runEditorCommand(accessor, editor, args) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n // the editor has no view => has no cursors\n return;\n }\n this.runCoreEditorCommand(viewModel, args || {});\n }\n}\nexport var EditorScroll_;\n(function (EditorScroll_) {\n const isEditorScrollArgs = function (arg) {\n if (!types.isObject(arg)) {\n return false;\n }\n const scrollArg = arg;\n if (!types.isString(scrollArg.to)) {\n return false;\n }\n if (!types.isUndefined(scrollArg.by) && !types.isString(scrollArg.by)) {\n return false;\n }\n if (!types.isUndefined(scrollArg.value) && !types.isNumber(scrollArg.value)) {\n return false;\n }\n if (!types.isUndefined(scrollArg.revealCursor) && !types.isBoolean(scrollArg.revealCursor)) {\n return false;\n }\n return true;\n };\n EditorScroll_.description = {\n description: 'Scroll editor in the given direction',\n args: [\n {\n name: 'Editor scroll argument object',\n description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t`,\n constraint: isEditorScrollArgs,\n schema: {\n 'type': 'object',\n 'required': ['to'],\n 'properties': {\n 'to': {\n 'type': 'string',\n 'enum': ['up', 'down']\n },\n 'by': {\n 'type': 'string',\n 'enum': ['line', 'wrappedLine', 'page', 'halfPage']\n },\n 'value': {\n 'type': 'number',\n 'default': 1\n },\n 'revealCursor': {\n 'type': 'boolean',\n }\n }\n }\n }\n ]\n };\n /**\n * Directions in the view for editor scroll command.\n */\n EditorScroll_.RawDirection = {\n Up: 'up',\n Down: 'down',\n };\n /**\n * Units for editor scroll 'by' argument\n */\n EditorScroll_.RawUnit = {\n Line: 'line',\n WrappedLine: 'wrappedLine',\n Page: 'page',\n HalfPage: 'halfPage'\n };\n function parse(args) {\n let direction;\n switch (args.to) {\n case EditorScroll_.RawDirection.Up:\n direction = 1 /* Up */;\n break;\n case EditorScroll_.RawDirection.Down:\n direction = 2 /* Down */;\n break;\n default:\n // Illegal arguments\n return null;\n }\n let unit;\n switch (args.by) {\n case EditorScroll_.RawUnit.Line:\n unit = 1 /* Line */;\n break;\n case EditorScroll_.RawUnit.WrappedLine:\n unit = 2 /* WrappedLine */;\n break;\n case EditorScroll_.RawUnit.Page:\n unit = 3 /* Page */;\n break;\n case EditorScroll_.RawUnit.HalfPage:\n unit = 4 /* HalfPage */;\n break;\n default:\n unit = 2 /* WrappedLine */;\n }\n const value = Math.floor(args.value || 1);\n const revealCursor = !!args.revealCursor;\n return {\n direction: direction,\n unit: unit,\n value: value,\n revealCursor: revealCursor,\n select: (!!args.select)\n };\n }\n EditorScroll_.parse = parse;\n})(EditorScroll_ || (EditorScroll_ = {}));\nexport var RevealLine_;\n(function (RevealLine_) {\n const isRevealLineArgs = function (arg) {\n if (!types.isObject(arg)) {\n return false;\n }\n const reveaLineArg = arg;\n if (!types.isNumber(reveaLineArg.lineNumber) && !types.isString(reveaLineArg.lineNumber)) {\n return false;\n }\n if (!types.isUndefined(reveaLineArg.at) && !types.isString(reveaLineArg.at)) {\n return false;\n }\n return true;\n };\n RevealLine_.description = {\n description: 'Reveal the given line at the given logical position',\n args: [\n {\n name: 'Reveal line argument object',\n description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t`,\n constraint: isRevealLineArgs,\n schema: {\n 'type': 'object',\n 'required': ['lineNumber'],\n 'properties': {\n 'lineNumber': {\n 'type': ['number', 'string'],\n },\n 'at': {\n 'type': 'string',\n 'enum': ['top', 'center', 'bottom']\n }\n }\n }\n }\n ]\n };\n /**\n * Values for reveal line 'at' argument\n */\n RevealLine_.RawAtArgument = {\n Top: 'top',\n Center: 'center',\n Bottom: 'bottom'\n };\n})(RevealLine_ || (RevealLine_ = {}));\nclass EditorOrNativeTextInputCommand {\n constructor(target) {\n // 1. handle case when focus is in editor.\n target.addImplementation(10000, 'code-editor', (accessor, args) => {\n // Only if editor text focus (i.e. not if editor has widget focus).\n const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (focusedEditor && focusedEditor.hasTextFocus()) {\n return this._runEditorCommand(accessor, focusedEditor, args);\n }\n return false;\n });\n // 2. handle case when focus is in some other `input` / `textarea`.\n target.addImplementation(1000, 'generic-dom-input-textarea', (accessor, args) => {\n // Only if focused on an element that allows for entering text\n const activeElement = document.activeElement;\n if (activeElement && ['input', 'textarea'].indexOf(activeElement.tagName.toLowerCase()) >= 0) {\n this.runDOMCommand();\n return true;\n }\n return false;\n });\n // 3. (default) handle case when focus is somewhere else.\n target.addImplementation(0, 'generic-dom', (accessor, args) => {\n // Redirecting to active editor\n const activeEditor = accessor.get(ICodeEditorService).getActiveCodeEditor();\n if (activeEditor) {\n activeEditor.focus();\n return this._runEditorCommand(accessor, activeEditor, args);\n }\n return false;\n });\n }\n _runEditorCommand(accessor, editor, args) {\n const result = this.runEditorCommand(accessor, editor, args);\n if (result) {\n return result;\n }\n return true;\n }\n}\nexport var CoreNavigationCommands;\n(function (CoreNavigationCommands) {\n class BaseMoveToCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n ]);\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.MoveTo = registerEditorCommand(new BaseMoveToCommand({\n id: '_moveTo',\n inSelectionMode: false,\n precondition: undefined\n }));\n CoreNavigationCommands.MoveToSelect = registerEditorCommand(new BaseMoveToCommand({\n id: '_moveToSelect',\n inSelectionMode: true,\n precondition: undefined\n }));\n class ColumnSelectCommand extends CoreEditorCommand {\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n const result = this._getColumnSelectResult(viewModel, viewModel.getPrimaryCursorState(), viewModel.getCursorColumnSelectData(), args);\n viewModel.setCursorStates(args.source, 3 /* Explicit */, result.viewStates.map((viewState) => CursorState.fromViewState(viewState)));\n viewModel.setCursorColumnSelectData({\n isReal: true,\n fromViewLineNumber: result.fromLineNumber,\n fromViewVisualColumn: result.fromVisualColumn,\n toViewLineNumber: result.toLineNumber,\n toViewVisualColumn: result.toVisualColumn\n });\n if (result.reversed) {\n viewModel.revealTopMostCursor(args.source);\n }\n else {\n viewModel.revealBottomMostCursor(args.source);\n }\n }\n }\n CoreNavigationCommands.ColumnSelect = registerEditorCommand(new class extends ColumnSelectCommand {\n constructor() {\n super({\n id: 'columnSelect',\n precondition: undefined\n });\n }\n _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n // validate `args`\n const validatedPosition = viewModel.model.validatePosition(args.position);\n const validatedViewPosition = viewModel.coordinatesConverter.validateViewPosition(new Position(args.viewPosition.lineNumber, args.viewPosition.column), validatedPosition);\n let fromViewLineNumber = args.doColumnSelect ? prevColumnSelectData.fromViewLineNumber : validatedViewPosition.lineNumber;\n let fromViewVisualColumn = args.doColumnSelect ? prevColumnSelectData.fromViewVisualColumn : args.mouseColumn - 1;\n return ColumnSelection.columnSelect(viewModel.cursorConfig, viewModel, fromViewLineNumber, fromViewVisualColumn, validatedViewPosition.lineNumber, args.mouseColumn - 1);\n }\n });\n CoreNavigationCommands.CursorColumnSelectLeft = registerEditorCommand(new class extends ColumnSelectCommand {\n constructor() {\n super({\n id: 'cursorColumnSelectLeft',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 15 /* LeftArrow */,\n linux: { primary: 0 }\n }\n });\n }\n _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n return ColumnSelection.columnSelectLeft(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n }\n });\n CoreNavigationCommands.CursorColumnSelectRight = registerEditorCommand(new class extends ColumnSelectCommand {\n constructor() {\n super({\n id: 'cursorColumnSelectRight',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 17 /* RightArrow */,\n linux: { primary: 0 }\n }\n });\n }\n _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n return ColumnSelection.columnSelectRight(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n }\n });\n class ColumnSelectUpCommand extends ColumnSelectCommand {\n constructor(opts) {\n super(opts);\n this._isPaged = opts.isPaged;\n }\n _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n return ColumnSelection.columnSelectUp(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n }\n }\n CoreNavigationCommands.CursorColumnSelectUp = registerEditorCommand(new ColumnSelectUpCommand({\n isPaged: false,\n id: 'cursorColumnSelectUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 16 /* UpArrow */,\n linux: { primary: 0 }\n }\n }));\n CoreNavigationCommands.CursorColumnSelectPageUp = registerEditorCommand(new ColumnSelectUpCommand({\n isPaged: true,\n id: 'cursorColumnSelectPageUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 11 /* PageUp */,\n linux: { primary: 0 }\n }\n }));\n class ColumnSelectDownCommand extends ColumnSelectCommand {\n constructor(opts) {\n super(opts);\n this._isPaged = opts.isPaged;\n }\n _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n return ColumnSelection.columnSelectDown(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n }\n }\n CoreNavigationCommands.CursorColumnSelectDown = registerEditorCommand(new ColumnSelectDownCommand({\n isPaged: false,\n id: 'cursorColumnSelectDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 18 /* DownArrow */,\n linux: { primary: 0 }\n }\n }));\n CoreNavigationCommands.CursorColumnSelectPageDown = registerEditorCommand(new ColumnSelectDownCommand({\n isPaged: true,\n id: 'cursorColumnSelectPageDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 512 /* Alt */ | 12 /* PageDown */,\n linux: { primary: 0 }\n }\n }));\n class CursorMoveImpl extends CoreEditorCommand {\n constructor() {\n super({\n id: 'cursorMove',\n precondition: undefined,\n description: CursorMove_.description\n });\n }\n runCoreEditorCommand(viewModel, args) {\n const parsed = CursorMove_.parse(args);\n if (!parsed) {\n // illegal arguments\n return;\n }\n this._runCursorMove(viewModel, args.source, parsed);\n }\n _runCursorMove(viewModel, source, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(source, 3 /* Explicit */, CursorMoveImpl._move(viewModel, viewModel.getCursorStates(), args));\n viewModel.revealPrimaryCursor(source, true);\n }\n static _move(viewModel, cursors, args) {\n const inSelectionMode = args.select;\n const value = args.value;\n switch (args.direction) {\n case 0 /* Left */:\n case 1 /* Right */:\n case 2 /* Up */:\n case 3 /* Down */:\n case 4 /* PrevBlankLine */:\n case 5 /* NextBlankLine */:\n case 6 /* WrappedLineStart */:\n case 7 /* WrappedLineFirstNonWhitespaceCharacter */:\n case 8 /* WrappedLineColumnCenter */:\n case 9 /* WrappedLineEnd */:\n case 10 /* WrappedLineLastNonWhitespaceCharacter */:\n return CursorMoveCommands.simpleMove(viewModel, cursors, args.direction, inSelectionMode, value, args.unit);\n case 11 /* ViewPortTop */:\n case 13 /* ViewPortBottom */:\n case 12 /* ViewPortCenter */:\n case 14 /* ViewPortIfOutside */:\n return CursorMoveCommands.viewportMove(viewModel, cursors, args.direction, inSelectionMode, value);\n default:\n return null;\n }\n }\n }\n CoreNavigationCommands.CursorMoveImpl = CursorMoveImpl;\n CoreNavigationCommands.CursorMove = registerEditorCommand(new CursorMoveImpl());\n class CursorMoveBasedCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._staticArgs = opts.args;\n }\n runCoreEditorCommand(viewModel, dynamicArgs) {\n let args = this._staticArgs;\n if (this._staticArgs.value === -1 /* PAGE_SIZE_MARKER */) {\n // -1 is a marker for page size\n args = {\n direction: this._staticArgs.direction,\n unit: this._staticArgs.unit,\n select: this._staticArgs.select,\n value: viewModel.cursorConfig.pageSize\n };\n }\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(dynamicArgs.source, 3 /* Explicit */, CursorMoveCommands.simpleMove(viewModel, viewModel.getCursorStates(), args.direction, args.select, args.value, args.unit));\n viewModel.revealPrimaryCursor(dynamicArgs.source, true);\n }\n }\n CoreNavigationCommands.CursorLeft = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 0 /* Left */,\n unit: 0 /* None */,\n select: false,\n value: 1\n },\n id: 'cursorLeft',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 15 /* LeftArrow */,\n mac: { primary: 15 /* LeftArrow */, secondary: [256 /* WinCtrl */ | 32 /* KeyB */] }\n }\n }));\n CoreNavigationCommands.CursorLeftSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 0 /* Left */,\n unit: 0 /* None */,\n select: true,\n value: 1\n },\n id: 'cursorLeftSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 15 /* LeftArrow */\n }\n }));\n CoreNavigationCommands.CursorRight = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 1 /* Right */,\n unit: 0 /* None */,\n select: false,\n value: 1\n },\n id: 'cursorRight',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 17 /* RightArrow */,\n mac: { primary: 17 /* RightArrow */, secondary: [256 /* WinCtrl */ | 36 /* KeyF */] }\n }\n }));\n CoreNavigationCommands.CursorRightSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 1 /* Right */,\n unit: 0 /* None */,\n select: true,\n value: 1\n },\n id: 'cursorRightSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 17 /* RightArrow */\n }\n }));\n CoreNavigationCommands.CursorUp = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 2 /* Up */,\n unit: 2 /* WrappedLine */,\n select: false,\n value: 1\n },\n id: 'cursorUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 16 /* UpArrow */,\n mac: { primary: 16 /* UpArrow */, secondary: [256 /* WinCtrl */ | 46 /* KeyP */] }\n }\n }));\n CoreNavigationCommands.CursorUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 2 /* Up */,\n unit: 2 /* WrappedLine */,\n select: true,\n value: 1\n },\n id: 'cursorUpSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 16 /* UpArrow */,\n secondary: [2048 /* CtrlCmd */ | 1024 /* Shift */ | 16 /* UpArrow */],\n mac: { primary: 1024 /* Shift */ | 16 /* UpArrow */ },\n linux: { primary: 1024 /* Shift */ | 16 /* UpArrow */ }\n }\n }));\n CoreNavigationCommands.CursorPageUp = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 2 /* Up */,\n unit: 2 /* WrappedLine */,\n select: false,\n value: -1 /* PAGE_SIZE_MARKER */\n },\n id: 'cursorPageUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 11 /* PageUp */\n }\n }));\n CoreNavigationCommands.CursorPageUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 2 /* Up */,\n unit: 2 /* WrappedLine */,\n select: true,\n value: -1 /* PAGE_SIZE_MARKER */\n },\n id: 'cursorPageUpSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 11 /* PageUp */\n }\n }));\n CoreNavigationCommands.CursorDown = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 3 /* Down */,\n unit: 2 /* WrappedLine */,\n select: false,\n value: 1\n },\n id: 'cursorDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 18 /* DownArrow */,\n mac: { primary: 18 /* DownArrow */, secondary: [256 /* WinCtrl */ | 44 /* KeyN */] }\n }\n }));\n CoreNavigationCommands.CursorDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 3 /* Down */,\n unit: 2 /* WrappedLine */,\n select: true,\n value: 1\n },\n id: 'cursorDownSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 18 /* DownArrow */,\n secondary: [2048 /* CtrlCmd */ | 1024 /* Shift */ | 18 /* DownArrow */],\n mac: { primary: 1024 /* Shift */ | 18 /* DownArrow */ },\n linux: { primary: 1024 /* Shift */ | 18 /* DownArrow */ }\n }\n }));\n CoreNavigationCommands.CursorPageDown = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 3 /* Down */,\n unit: 2 /* WrappedLine */,\n select: false,\n value: -1 /* PAGE_SIZE_MARKER */\n },\n id: 'cursorPageDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 12 /* PageDown */\n }\n }));\n CoreNavigationCommands.CursorPageDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n args: {\n direction: 3 /* Down */,\n unit: 2 /* WrappedLine */,\n select: true,\n value: -1 /* PAGE_SIZE_MARKER */\n },\n id: 'cursorPageDownSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 12 /* PageDown */\n }\n }));\n CoreNavigationCommands.CreateCursor = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'createCursor',\n precondition: undefined\n });\n }\n runCoreEditorCommand(viewModel, args) {\n let newState;\n if (args.wholeLine) {\n newState = CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n }\n else {\n newState = CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n }\n const states = viewModel.getCursorStates();\n // Check if we should remove a cursor (sort of like a toggle)\n if (states.length > 1) {\n const newModelPosition = (newState.modelState ? newState.modelState.position : null);\n const newViewPosition = (newState.viewState ? newState.viewState.position : null);\n for (let i = 0, len = states.length; i < len; i++) {\n const state = states[i];\n if (newModelPosition && !state.modelState.selection.containsPosition(newModelPosition)) {\n continue;\n }\n if (newViewPosition && !state.viewState.selection.containsPosition(newViewPosition)) {\n continue;\n }\n // => Remove the cursor\n states.splice(i, 1);\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, states);\n return;\n }\n }\n // => Add the new cursor\n states.push(newState);\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, states);\n }\n });\n CoreNavigationCommands.LastCursorMoveToSelect = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: '_lastCursorMoveToSelect',\n precondition: undefined\n });\n }\n runCoreEditorCommand(viewModel, args) {\n const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n const states = viewModel.getCursorStates();\n const newStates = states.slice(0);\n newStates[lastAddedCursorIndex] = CursorMoveCommands.moveTo(viewModel, states[lastAddedCursorIndex], true, args.position, args.viewPosition);\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, newStates);\n }\n });\n class HomeCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, CursorMoveCommands.moveToBeginningOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.CursorHome = registerEditorCommand(new HomeCommand({\n inSelectionMode: false,\n id: 'cursorHome',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 14 /* Home */,\n mac: { primary: 14 /* Home */, secondary: [2048 /* CtrlCmd */ | 15 /* LeftArrow */] }\n }\n }));\n CoreNavigationCommands.CursorHomeSelect = registerEditorCommand(new HomeCommand({\n inSelectionMode: true,\n id: 'cursorHomeSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 14 /* Home */,\n mac: { primary: 1024 /* Shift */ | 14 /* Home */, secondary: [2048 /* CtrlCmd */ | 1024 /* Shift */ | 15 /* LeftArrow */] }\n }\n }));\n class LineStartCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, this._exec(viewModel.getCursorStates()));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n _exec(cursors) {\n const result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const lineNumber = cursor.modelState.position.lineNumber;\n result[i] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, 1, 0));\n }\n return result;\n }\n }\n CoreNavigationCommands.CursorLineStart = registerEditorCommand(new LineStartCommand({\n inSelectionMode: false,\n id: 'cursorLineStart',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* WinCtrl */ | 31 /* KeyA */ }\n }\n }));\n CoreNavigationCommands.CursorLineStartSelect = registerEditorCommand(new LineStartCommand({\n inSelectionMode: true,\n id: 'cursorLineStartSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* WinCtrl */ | 1024 /* Shift */ | 31 /* KeyA */ }\n }\n }));\n class EndCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, CursorMoveCommands.moveToEndOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode, args.sticky || false));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.CursorEnd = registerEditorCommand(new EndCommand({\n inSelectionMode: false,\n id: 'cursorEnd',\n precondition: undefined,\n kbOpts: {\n args: { sticky: false },\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 13 /* End */,\n mac: { primary: 13 /* End */, secondary: [2048 /* CtrlCmd */ | 17 /* RightArrow */] }\n },\n description: {\n description: `Go to End`,\n args: [{\n name: 'args',\n schema: {\n type: 'object',\n properties: {\n 'sticky': {\n description: nls.localize('stickydesc', \"Stick to the end even when going to longer lines\"),\n type: 'boolean',\n default: false\n }\n }\n }\n }]\n }\n }));\n CoreNavigationCommands.CursorEndSelect = registerEditorCommand(new EndCommand({\n inSelectionMode: true,\n id: 'cursorEndSelect',\n precondition: undefined,\n kbOpts: {\n args: { sticky: false },\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* Shift */ | 13 /* End */,\n mac: { primary: 1024 /* Shift */ | 13 /* End */, secondary: [2048 /* CtrlCmd */ | 1024 /* Shift */ | 17 /* RightArrow */] }\n },\n description: {\n description: `Select to End`,\n args: [{\n name: 'args',\n schema: {\n type: 'object',\n properties: {\n 'sticky': {\n description: nls.localize('stickydesc', \"Stick to the end even when going to longer lines\"),\n type: 'boolean',\n default: false\n }\n }\n }\n }]\n }\n }));\n class LineEndCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, this._exec(viewModel, viewModel.getCursorStates()));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n _exec(viewModel, cursors) {\n const result = [];\n for (let i = 0, len = cursors.length; i < len; i++) {\n const cursor = cursors[i];\n const lineNumber = cursor.modelState.position.lineNumber;\n const maxColumn = viewModel.model.getLineMaxColumn(lineNumber);\n result[i] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, maxColumn, 0));\n }\n return result;\n }\n }\n CoreNavigationCommands.CursorLineEnd = registerEditorCommand(new LineEndCommand({\n inSelectionMode: false,\n id: 'cursorLineEnd',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* WinCtrl */ | 35 /* KeyE */ }\n }\n }));\n CoreNavigationCommands.CursorLineEndSelect = registerEditorCommand(new LineEndCommand({\n inSelectionMode: true,\n id: 'cursorLineEndSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* WinCtrl */ | 1024 /* Shift */ | 35 /* KeyE */ }\n }\n }));\n class TopCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, CursorMoveCommands.moveToBeginningOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.CursorTop = registerEditorCommand(new TopCommand({\n inSelectionMode: false,\n id: 'cursorTop',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 14 /* Home */,\n mac: { primary: 2048 /* CtrlCmd */ | 16 /* UpArrow */ }\n }\n }));\n CoreNavigationCommands.CursorTopSelect = registerEditorCommand(new TopCommand({\n inSelectionMode: true,\n id: 'cursorTopSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 14 /* Home */,\n mac: { primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 16 /* UpArrow */ }\n }\n }));\n class BottomCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, CursorMoveCommands.moveToEndOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.CursorBottom = registerEditorCommand(new BottomCommand({\n inSelectionMode: false,\n id: 'cursorBottom',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 13 /* End */,\n mac: { primary: 2048 /* CtrlCmd */ | 18 /* DownArrow */ }\n }\n }));\n CoreNavigationCommands.CursorBottomSelect = registerEditorCommand(new BottomCommand({\n inSelectionMode: true,\n id: 'cursorBottomSelect',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 13 /* End */,\n mac: { primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 18 /* DownArrow */ }\n }\n }));\n class EditorScrollImpl extends CoreEditorCommand {\n constructor() {\n super({\n id: 'editorScroll',\n precondition: undefined,\n description: EditorScroll_.description\n });\n }\n runCoreEditorCommand(viewModel, args) {\n const parsed = EditorScroll_.parse(args);\n if (!parsed) {\n // illegal arguments\n return;\n }\n this._runEditorScroll(viewModel, args.source, parsed);\n }\n _runEditorScroll(viewModel, source, args) {\n const desiredScrollTop = this._computeDesiredScrollTop(viewModel, args);\n if (args.revealCursor) {\n // must ensure cursor is in new visible range\n const desiredVisibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(desiredScrollTop);\n viewModel.setCursorStates(source, 3 /* Explicit */, [\n CursorMoveCommands.findPositionInViewportIfOutside(viewModel, viewModel.getPrimaryCursorState(), desiredVisibleViewRange, args.select)\n ]);\n }\n viewModel.setScrollTop(desiredScrollTop, 0 /* Smooth */);\n }\n _computeDesiredScrollTop(viewModel, args) {\n if (args.unit === 1 /* Line */) {\n // scrolling by model lines\n const visibleViewRange = viewModel.getCompletelyVisibleViewRange();\n const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n let desiredTopModelLineNumber;\n if (args.direction === 1 /* Up */) {\n // must go x model lines up\n desiredTopModelLineNumber = Math.max(1, visibleModelRange.startLineNumber - args.value);\n }\n else {\n // must go x model lines down\n desiredTopModelLineNumber = Math.min(viewModel.model.getLineCount(), visibleModelRange.startLineNumber + args.value);\n }\n const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(desiredTopModelLineNumber, 1));\n return viewModel.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n }\n let noOfLines;\n if (args.unit === 3 /* Page */) {\n noOfLines = viewModel.cursorConfig.pageSize * args.value;\n }\n else if (args.unit === 4 /* HalfPage */) {\n noOfLines = Math.round(viewModel.cursorConfig.pageSize / 2) * args.value;\n }\n else {\n noOfLines = args.value;\n }\n const deltaLines = (args.direction === 1 /* Up */ ? -1 : 1) * noOfLines;\n return viewModel.getScrollTop() + deltaLines * viewModel.cursorConfig.lineHeight;\n }\n }\n CoreNavigationCommands.EditorScrollImpl = EditorScrollImpl;\n CoreNavigationCommands.EditorScroll = registerEditorCommand(new EditorScrollImpl());\n CoreNavigationCommands.ScrollLineUp = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'scrollLineUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 16 /* UpArrow */,\n mac: { primary: 256 /* WinCtrl */ | 11 /* PageUp */ }\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n CoreNavigationCommands.EditorScroll._runEditorScroll(viewModel, args.source, {\n direction: 1 /* Up */,\n unit: 2 /* WrappedLine */,\n value: 1,\n revealCursor: false,\n select: false\n });\n }\n });\n CoreNavigationCommands.ScrollPageUp = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'scrollPageUp',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 11 /* PageUp */,\n win: { primary: 512 /* Alt */ | 11 /* PageUp */ },\n linux: { primary: 512 /* Alt */ | 11 /* PageUp */ }\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n CoreNavigationCommands.EditorScroll._runEditorScroll(viewModel, args.source, {\n direction: 1 /* Up */,\n unit: 3 /* Page */,\n value: 1,\n revealCursor: false,\n select: false\n });\n }\n });\n CoreNavigationCommands.ScrollLineDown = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'scrollLineDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 18 /* DownArrow */,\n mac: { primary: 256 /* WinCtrl */ | 12 /* PageDown */ }\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n CoreNavigationCommands.EditorScroll._runEditorScroll(viewModel, args.source, {\n direction: 2 /* Down */,\n unit: 2 /* WrappedLine */,\n value: 1,\n revealCursor: false,\n select: false\n });\n }\n });\n CoreNavigationCommands.ScrollPageDown = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'scrollPageDown',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 12 /* PageDown */,\n win: { primary: 512 /* Alt */ | 12 /* PageDown */ },\n linux: { primary: 512 /* Alt */ | 12 /* PageDown */ }\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n CoreNavigationCommands.EditorScroll._runEditorScroll(viewModel, args.source, {\n direction: 2 /* Down */,\n unit: 3 /* Page */,\n value: 1,\n revealCursor: false,\n select: false\n });\n }\n });\n class WordCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n CursorMoveCommands.word(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position)\n ]);\n viewModel.revealPrimaryCursor(args.source, true);\n }\n }\n CoreNavigationCommands.WordSelect = registerEditorCommand(new WordCommand({\n inSelectionMode: false,\n id: '_wordSelect',\n precondition: undefined\n }));\n CoreNavigationCommands.WordSelectDrag = registerEditorCommand(new WordCommand({\n inSelectionMode: true,\n id: '_wordSelectDrag',\n precondition: undefined\n }));\n CoreNavigationCommands.LastCursorWordSelect = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'lastCursorWordSelect',\n precondition: undefined\n });\n }\n runCoreEditorCommand(viewModel, args) {\n const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n const states = viewModel.getCursorStates();\n const newStates = states.slice(0);\n const lastAddedState = states[lastAddedCursorIndex];\n newStates[lastAddedCursorIndex] = CursorMoveCommands.word(viewModel, lastAddedState, lastAddedState.modelState.hasSelection(), args.position);\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, newStates);\n }\n });\n class LineCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n ]);\n viewModel.revealPrimaryCursor(args.source, false);\n }\n }\n CoreNavigationCommands.LineSelect = registerEditorCommand(new LineCommand({\n inSelectionMode: false,\n id: '_lineSelect',\n precondition: undefined\n }));\n CoreNavigationCommands.LineSelectDrag = registerEditorCommand(new LineCommand({\n inSelectionMode: true,\n id: '_lineSelectDrag',\n precondition: undefined\n }));\n class LastCursorLineCommand extends CoreEditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n }\n runCoreEditorCommand(viewModel, args) {\n const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n const states = viewModel.getCursorStates();\n const newStates = states.slice(0);\n newStates[lastAddedCursorIndex] = CursorMoveCommands.line(viewModel, states[lastAddedCursorIndex], this._inSelectionMode, args.position, args.viewPosition);\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, newStates);\n }\n }\n CoreNavigationCommands.LastCursorLineSelect = registerEditorCommand(new LastCursorLineCommand({\n inSelectionMode: false,\n id: 'lastCursorLineSelect',\n precondition: undefined\n }));\n CoreNavigationCommands.LastCursorLineSelectDrag = registerEditorCommand(new LastCursorLineCommand({\n inSelectionMode: true,\n id: 'lastCursorLineSelectDrag',\n precondition: undefined\n }));\n CoreNavigationCommands.ExpandLineSelection = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'expandLineSelection',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* CtrlCmd */ | 42 /* KeyL */\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, CursorMoveCommands.expandLineSelection(viewModel, viewModel.getCursorStates()));\n viewModel.revealPrimaryCursor(args.source, true);\n }\n });\n CoreNavigationCommands.CancelSelection = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'cancelSelection',\n precondition: EditorContextKeys.hasNonEmptySelection,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 9 /* Escape */,\n secondary: [1024 /* Shift */ | 9 /* Escape */]\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n CursorMoveCommands.cancelSelection(viewModel, viewModel.getPrimaryCursorState())\n ]);\n viewModel.revealPrimaryCursor(args.source, true);\n }\n });\n CoreNavigationCommands.RemoveSecondaryCursors = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'removeSecondaryCursors',\n precondition: EditorContextKeys.hasMultipleSelections,\n kbOpts: {\n weight: CORE_WEIGHT + 1,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 9 /* Escape */,\n secondary: [1024 /* Shift */ | 9 /* Escape */]\n }\n });\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n viewModel.getPrimaryCursorState()\n ]);\n viewModel.revealPrimaryCursor(args.source, true);\n status(nls.localize('removedCursor', \"Removed secondary cursors\"));\n }\n });\n CoreNavigationCommands.RevealLine = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'revealLine',\n precondition: undefined,\n description: RevealLine_.description\n });\n }\n runCoreEditorCommand(viewModel, args) {\n const revealLineArg = args;\n const lineNumberArg = revealLineArg.lineNumber || 0;\n let lineNumber = typeof lineNumberArg === 'number' ? (lineNumberArg + 1) : (parseInt(lineNumberArg) + 1);\n if (lineNumber < 1) {\n lineNumber = 1;\n }\n const lineCount = viewModel.model.getLineCount();\n if (lineNumber > lineCount) {\n lineNumber = lineCount;\n }\n const range = new Range(lineNumber, 1, lineNumber, viewModel.model.getLineMaxColumn(lineNumber));\n let revealAt = 0 /* Simple */;\n if (revealLineArg.at) {\n switch (revealLineArg.at) {\n case RevealLine_.RawAtArgument.Top:\n revealAt = 3 /* Top */;\n break;\n case RevealLine_.RawAtArgument.Center:\n revealAt = 1 /* Center */;\n break;\n case RevealLine_.RawAtArgument.Bottom:\n revealAt = 4 /* Bottom */;\n break;\n default:\n break;\n }\n }\n const viewRange = viewModel.coordinatesConverter.convertModelRangeToViewRange(range);\n viewModel.revealRange(args.source, false, viewRange, revealAt, 0 /* Smooth */);\n }\n });\n CoreNavigationCommands.SelectAll = new class extends EditorOrNativeTextInputCommand {\n constructor() {\n super(SelectAllCommand);\n }\n runDOMCommand() {\n if (isFirefox) {\n document.activeElement.focus();\n document.activeElement.select();\n }\n document.execCommand('selectAll');\n }\n runEditorCommand(accessor, editor, args) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n // the editor has no view => has no cursors\n return;\n }\n this.runCoreEditorCommand(viewModel, args);\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates('keyboard', 3 /* Explicit */, [\n CursorMoveCommands.selectAll(viewModel, viewModel.getPrimaryCursorState())\n ]);\n }\n }();\n CoreNavigationCommands.SetSelection = registerEditorCommand(new class extends CoreEditorCommand {\n constructor() {\n super({\n id: 'setSelection',\n precondition: undefined\n });\n }\n runCoreEditorCommand(viewModel, args) {\n viewModel.model.pushStackElement();\n viewModel.setCursorStates(args.source, 3 /* Explicit */, [\n CursorState.fromModelSelection(args.selection)\n ]);\n }\n });\n})(CoreNavigationCommands || (CoreNavigationCommands = {}));\nconst columnSelectionCondition = ContextKeyExpr.and(EditorContextKeys.textInputFocus, EditorContextKeys.columnSelection);\nfunction registerColumnSelection(id, keybinding) {\n KeybindingsRegistry.registerKeybindingRule({\n id: id,\n primary: keybinding,\n when: columnSelectionCondition,\n weight: CORE_WEIGHT + 1\n });\n}\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectLeft.id, 1024 /* Shift */ | 15 /* LeftArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectRight.id, 1024 /* Shift */ | 17 /* RightArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectUp.id, 1024 /* Shift */ | 16 /* UpArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectPageUp.id, 1024 /* Shift */ | 11 /* PageUp */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectDown.id, 1024 /* Shift */ | 18 /* DownArrow */);\nregisterColumnSelection(CoreNavigationCommands.CursorColumnSelectPageDown.id, 1024 /* Shift */ | 12 /* PageDown */);\nfunction registerCommand(command) {\n command.register();\n return command;\n}\nexport var CoreEditingCommands;\n(function (CoreEditingCommands) {\n class CoreEditingCommand extends EditorCommand {\n runEditorCommand(accessor, editor, args) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n // the editor has no view => has no cursors\n return;\n }\n this.runCoreEditingCommand(editor, viewModel, args || {});\n }\n }\n CoreEditingCommands.CoreEditingCommand = CoreEditingCommand;\n CoreEditingCommands.LineBreakInsert = registerEditorCommand(new class extends CoreEditingCommand {\n constructor() {\n super({\n id: 'lineBreakInsert',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* WinCtrl */ | 45 /* KeyO */ }\n }\n });\n }\n runCoreEditingCommand(editor, viewModel, args) {\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.lineBreakInsert(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n }\n });\n CoreEditingCommands.Outdent = registerEditorCommand(new class extends CoreEditingCommand {\n constructor() {\n super({\n id: 'outdent',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n primary: 1024 /* Shift */ | 2 /* Tab */\n }\n });\n }\n runCoreEditingCommand(editor, viewModel, args) {\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.outdent(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n editor.pushUndoStop();\n }\n });\n CoreEditingCommands.Tab = registerEditorCommand(new class extends CoreEditingCommand {\n constructor() {\n super({\n id: 'tab',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n primary: 2 /* Tab */\n }\n });\n }\n runCoreEditingCommand(editor, viewModel, args) {\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.tab(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection)));\n editor.pushUndoStop();\n }\n });\n CoreEditingCommands.DeleteLeft = registerEditorCommand(new class extends CoreEditingCommand {\n constructor() {\n super({\n id: 'deleteLeft',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1 /* Backspace */,\n secondary: [1024 /* Shift */ | 1 /* Backspace */],\n mac: { primary: 1 /* Backspace */, secondary: [1024 /* Shift */ | 1 /* Backspace */, 256 /* WinCtrl */ | 38 /* KeyH */, 256 /* WinCtrl */ | 1 /* Backspace */] }\n }\n });\n }\n runCoreEditingCommand(editor, viewModel, args) {\n const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteLeft(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection), viewModel.getCursorAutoClosedCharacters());\n if (shouldPushStackElementBefore) {\n editor.pushUndoStop();\n }\n editor.executeCommands(this.id, commands);\n viewModel.setPrevEditOperationType(2 /* DeletingLeft */);\n }\n });\n CoreEditingCommands.DeleteRight = registerEditorCommand(new class extends CoreEditingCommand {\n constructor() {\n super({\n id: 'deleteRight',\n precondition: undefined,\n kbOpts: {\n weight: CORE_WEIGHT,\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 20 /* Delete */,\n mac: { primary: 20 /* Delete */, secondary: [256 /* WinCtrl */ | 34 /* KeyD */, 256 /* WinCtrl */ | 20 /* Delete */] }\n }\n });\n }\n runCoreEditingCommand(editor, viewModel, args) {\n const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteRight(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map(s => s.modelState.selection));\n if (shouldPushStackElementBefore) {\n editor.pushUndoStop();\n }\n editor.executeCommands(this.id, commands);\n viewModel.setPrevEditOperationType(3 /* DeletingRight */);\n }\n });\n CoreEditingCommands.Undo = new class extends EditorOrNativeTextInputCommand {\n constructor() {\n super(UndoCommand);\n }\n runDOMCommand() {\n document.execCommand('undo');\n }\n runEditorCommand(accessor, editor, args) {\n if (!editor.hasModel() || editor.getOption(80 /* readOnly */) === true) {\n return;\n }\n return editor.getModel().undo();\n }\n }();\n CoreEditingCommands.Redo = new class extends EditorOrNativeTextInputCommand {\n constructor() {\n super(RedoCommand);\n }\n runDOMCommand() {\n document.execCommand('redo');\n }\n runEditorCommand(accessor, editor, args) {\n if (!editor.hasModel() || editor.getOption(80 /* readOnly */) === true) {\n return;\n }\n return editor.getModel().redo();\n }\n }();\n})(CoreEditingCommands || (CoreEditingCommands = {}));\n/**\n * A command that will invoke a command on the focused editor.\n */\nclass EditorHandlerCommand extends Command {\n constructor(id, handlerId, description) {\n super({\n id: id,\n precondition: undefined,\n description: description\n });\n this._handlerId = handlerId;\n }\n runCommand(accessor, args) {\n const editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (!editor) {\n return;\n }\n editor.trigger('keyboard', this._handlerId, args);\n }\n}\nfunction registerOverwritableCommand(handlerId, description) {\n registerCommand(new EditorHandlerCommand('default:' + handlerId, handlerId));\n registerCommand(new EditorHandlerCommand(handlerId, handlerId, description));\n}\nregisterOverwritableCommand(\"type\" /* Type */, {\n description: `Type`,\n args: [{\n name: 'args',\n schema: {\n 'type': 'object',\n 'required': ['text'],\n 'properties': {\n 'text': {\n 'type': 'string'\n }\n },\n }\n }]\n});\nregisterOverwritableCommand(\"replacePreviousChar\" /* ReplacePreviousChar */);\nregisterOverwritableCommand(\"compositionType\" /* CompositionType */);\nregisterOverwritableCommand(\"compositionStart\" /* CompositionStart */);\nregisterOverwritableCommand(\"compositionEnd\" /* CompositionEnd */);\nregisterOverwritableCommand(\"paste\" /* Paste */);\nregisterOverwritableCommand(\"cut\" /* Cut */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CursorColumns, SingleCursorState } from './cursorCommon.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class ColumnSelection {\n static columnSelect(config, model, fromLineNumber, fromVisibleColumn, toLineNumber, toVisibleColumn) {\n let lineCount = Math.abs(toLineNumber - fromLineNumber) + 1;\n let reversed = (fromLineNumber > toLineNumber);\n let isRTL = (fromVisibleColumn > toVisibleColumn);\n let isLTR = (fromVisibleColumn < toVisibleColumn);\n let result = [];\n // console.log(`fromVisibleColumn: ${fromVisibleColumn}, toVisibleColumn: ${toVisibleColumn}`);\n for (let i = 0; i < lineCount; i++) {\n let lineNumber = fromLineNumber + (reversed ? -i : i);\n let startColumn = CursorColumns.columnFromVisibleColumn2(config, model, lineNumber, fromVisibleColumn);\n let endColumn = CursorColumns.columnFromVisibleColumn2(config, model, lineNumber, toVisibleColumn);\n let visibleStartColumn = CursorColumns.visibleColumnFromColumn2(config, model, new Position(lineNumber, startColumn));\n let visibleEndColumn = CursorColumns.visibleColumnFromColumn2(config, model, new Position(lineNumber, endColumn));\n // console.log(`lineNumber: ${lineNumber}: visibleStartColumn: ${visibleStartColumn}, visibleEndColumn: ${visibleEndColumn}`);\n if (isLTR) {\n if (visibleStartColumn > toVisibleColumn) {\n continue;\n }\n if (visibleEndColumn < fromVisibleColumn) {\n continue;\n }\n }\n if (isRTL) {\n if (visibleEndColumn > fromVisibleColumn) {\n continue;\n }\n if (visibleStartColumn < toVisibleColumn) {\n continue;\n }\n }\n result.push(new SingleCursorState(new Range(lineNumber, startColumn, lineNumber, startColumn), 0, new Position(lineNumber, endColumn), 0));\n }\n if (result.length === 0) {\n // We are after all the lines, so add cursor at the end of each line\n for (let i = 0; i < lineCount; i++) {\n const lineNumber = fromLineNumber + (reversed ? -i : i);\n const maxColumn = model.getLineMaxColumn(lineNumber);\n result.push(new SingleCursorState(new Range(lineNumber, maxColumn, lineNumber, maxColumn), 0, new Position(lineNumber, maxColumn), 0));\n }\n }\n return {\n viewStates: result,\n reversed: reversed,\n fromLineNumber: fromLineNumber,\n fromVisualColumn: fromVisibleColumn,\n toLineNumber: toLineNumber,\n toVisualColumn: toVisibleColumn\n };\n }\n static columnSelectLeft(config, model, prevColumnSelectData) {\n let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n if (toViewVisualColumn > 0) {\n toViewVisualColumn--;\n }\n return ColumnSelection.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n }\n static columnSelectRight(config, model, prevColumnSelectData) {\n let maxVisualViewColumn = 0;\n const minViewLineNumber = Math.min(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n const maxViewLineNumber = Math.max(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n for (let lineNumber = minViewLineNumber; lineNumber <= maxViewLineNumber; lineNumber++) {\n const lineMaxViewColumn = model.getLineMaxColumn(lineNumber);\n const lineMaxVisualViewColumn = CursorColumns.visibleColumnFromColumn2(config, model, new Position(lineNumber, lineMaxViewColumn));\n maxVisualViewColumn = Math.max(maxVisualViewColumn, lineMaxVisualViewColumn);\n }\n let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n if (toViewVisualColumn < maxVisualViewColumn) {\n toViewVisualColumn++;\n }\n return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n }\n static columnSelectUp(config, model, prevColumnSelectData, isPaged) {\n const linesCount = isPaged ? config.pageSize : 1;\n const toViewLineNumber = Math.max(1, prevColumnSelectData.toViewLineNumber - linesCount);\n return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n }\n static columnSelectDown(config, model, prevColumnSelectData, isPaged) {\n const linesCount = isPaged ? config.pageSize : 1;\n const toViewLineNumber = Math.min(model.getLineCount(), prevColumnSelectData.toViewLineNumber + linesCount);\n return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function getSpaceCnt(str, tabSize) {\n let spacesCnt = 0;\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) === '\\t') {\n spacesCnt += tabSize;\n }\n else {\n spacesCnt++;\n }\n }\n return spacesCnt;\n}\nexport function generateIndent(spacesCnt, tabSize, insertSpaces) {\n spacesCnt = spacesCnt < 0 ? 0 : spacesCnt;\n let result = '';\n if (!insertSpaces) {\n let tabsCnt = Math.floor(spacesCnt / tabSize);\n spacesCnt = spacesCnt % tabSize;\n for (let i = 0; i < tabsCnt; i++) {\n result += '\\t';\n }\n }\n for (let i = 0; i < spacesCnt; i++) {\n result += ' ';\n }\n return result;\n}\n","/**\n * {@docCategory Selection}\n */\nexport interface IObjectWithKey {\n key?: string | number;\n}\n\nexport const SELECTION_CHANGE = 'change';\n\n/**\n * {@docCategory Selection}\n */\nexport enum SelectionMode {\n none = 0,\n single = 1,\n multiple = 2,\n}\n\n/**\n * {@docCategory Selection}\n */\nexport interface ISelection {\n count: number;\n mode: SelectionMode;\n\n canSelectItem: (item: TItem, index?: number) => boolean;\n\n // Obesrvable methods.\n setChangeEvents(isEnabled: boolean, suppressChange?: boolean): void;\n\n // Initialization methods.\n\n setItems(items: TItem[], shouldClear: boolean): void;\n getItems(): TItem[];\n\n // Read selection methods.\n\n getSelection(): TItem[];\n getSelectedIndices(): number[];\n getSelectedCount(): number;\n isRangeSelected(fromIndex: number, count: number): boolean;\n\n isAllSelected(): boolean;\n isKeySelected(key: string): boolean;\n isIndexSelected(index: number): boolean;\n\n isModal?(): boolean;\n\n // Write selection methods.\n\n setAllSelected(isAllSelected: boolean): void;\n setKeySelected(key: string, isSelected: boolean, shouldAnchor: boolean): void;\n setIndexSelected(index: number, isSelected: boolean, shouldAnchor: boolean): void;\n\n setModal?(isModal: boolean): void; // TODO make non-optional on next breaking change\n\n // Write range selection methods.\n\n selectToKey(key: string, clearSelection?: boolean): void;\n selectToIndex(index: number, clearSelection?: boolean): void;\n\n // Toggle helpers.\n\n toggleAllSelected(): void;\n toggleKeySelected(key: string): void;\n toggleIndexSelected(index: number): void;\n toggleRangeSelected(fromIndex: number, count: number): void;\n}\n\n/**\n * {@docCategory Selection}\n */\nexport enum SelectionDirection {\n horizontal = 0,\n vertical = 1,\n}\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TokenMetadata } from '../modes.js';\nexport class LineTokens {\n constructor(tokens, text, decoder) {\n this._lineTokensBrand = undefined;\n this._tokens = tokens;\n this._tokensCount = (this._tokens.length >>> 1);\n this._text = text;\n this._languageIdCodec = decoder;\n }\n static createEmpty(lineContent, decoder) {\n const defaultMetadata = LineTokens.defaultTokenMetadata;\n const tokens = new Uint32Array(2);\n tokens[0] = lineContent.length;\n tokens[1] = defaultMetadata;\n return new LineTokens(tokens, lineContent, decoder);\n }\n equals(other) {\n if (other instanceof LineTokens) {\n return this.slicedEquals(other, 0, this._tokensCount);\n }\n return false;\n }\n slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {\n if (this._text !== other._text) {\n return false;\n }\n if (this._tokensCount !== other._tokensCount) {\n return false;\n }\n const from = (sliceFromTokenIndex << 1);\n const to = from + (sliceTokenCount << 1);\n for (let i = from; i < to; i++) {\n if (this._tokens[i] !== other._tokens[i]) {\n return false;\n }\n }\n return true;\n }\n getLineContent() {\n return this._text;\n }\n getCount() {\n return this._tokensCount;\n }\n getStartOffset(tokenIndex) {\n if (tokenIndex > 0) {\n return this._tokens[(tokenIndex - 1) << 1];\n }\n return 0;\n }\n getMetadata(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return metadata;\n }\n getLanguageId(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n const languageId = TokenMetadata.getLanguageId(metadata);\n return this._languageIdCodec.decodeLanguageId(languageId);\n }\n getStandardTokenType(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getTokenType(metadata);\n }\n getForeground(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getForeground(metadata);\n }\n getClassName(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getClassNameFromMetadata(metadata);\n }\n getInlineStyle(tokenIndex, colorMap) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);\n }\n getEndOffset(tokenIndex) {\n return this._tokens[tokenIndex << 1];\n }\n /**\n * Find the token containing offset `offset`.\n * @param offset The search offset\n * @return The index of the token containing the offset.\n */\n findTokenIndexAtOffset(offset) {\n return LineTokens.findIndexInTokensArray(this._tokens, offset);\n }\n inflate() {\n return this;\n }\n sliceAndInflate(startOffset, endOffset, deltaOffset) {\n return new SlicedLineTokens(this, startOffset, endOffset, deltaOffset);\n }\n static convertToEndOffset(tokens, lineTextLength) {\n const tokenCount = (tokens.length >>> 1);\n const lastTokenIndex = tokenCount - 1;\n for (let tokenIndex = 0; tokenIndex < lastTokenIndex; tokenIndex++) {\n tokens[tokenIndex << 1] = tokens[(tokenIndex + 1) << 1];\n }\n tokens[lastTokenIndex << 1] = lineTextLength;\n }\n static findIndexInTokensArray(tokens, desiredIndex) {\n if (tokens.length <= 2) {\n return 0;\n }\n let low = 0;\n let high = (tokens.length >>> 1) - 1;\n while (low < high) {\n const mid = low + Math.floor((high - low) / 2);\n const endOffset = tokens[(mid << 1)];\n if (endOffset === desiredIndex) {\n return mid + 1;\n }\n else if (endOffset < desiredIndex) {\n low = mid + 1;\n }\n else if (endOffset > desiredIndex) {\n high = mid;\n }\n }\n return low;\n }\n /**\n * @pure\n * @param insertTokens Must be sorted by offset.\n */\n withInserted(insertTokens) {\n if (insertTokens.length === 0) {\n return this;\n }\n let nextOriginalTokenIdx = 0;\n let nextInsertTokenIdx = 0;\n let text = '';\n const newTokens = new Array();\n let originalEndOffset = 0;\n while (true) {\n let nextOriginalTokenEndOffset = nextOriginalTokenIdx < this._tokensCount ? this._tokens[nextOriginalTokenIdx << 1] : -1;\n let nextInsertToken = nextInsertTokenIdx < insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;\n if (nextOriginalTokenEndOffset !== -1 && (nextInsertToken === null || nextOriginalTokenEndOffset <= nextInsertToken.offset)) {\n // original token ends before next insert token\n text += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);\n const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n newTokens.push(text.length, metadata);\n nextOriginalTokenIdx++;\n originalEndOffset = nextOriginalTokenEndOffset;\n }\n else if (nextInsertToken) {\n if (nextInsertToken.offset > originalEndOffset) {\n // insert token is in the middle of the next token.\n text += this._text.substring(originalEndOffset, nextInsertToken.offset);\n const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n newTokens.push(text.length, metadata);\n originalEndOffset = nextInsertToken.offset;\n }\n text += nextInsertToken.text;\n newTokens.push(text.length, nextInsertToken.tokenMetadata);\n nextInsertTokenIdx++;\n }\n else {\n break;\n }\n }\n return new LineTokens(new Uint32Array(newTokens), text, this._languageIdCodec);\n }\n}\nLineTokens.defaultTokenMetadata = ((0 /* None */ << 11 /* FONT_STYLE_OFFSET */)\n | (1 /* DefaultForeground */ << 14 /* FOREGROUND_OFFSET */)\n | (2 /* DefaultBackground */ << 23 /* BACKGROUND_OFFSET */)) >>> 0;\nexport class SlicedLineTokens {\n constructor(source, startOffset, endOffset, deltaOffset) {\n this._source = source;\n this._startOffset = startOffset;\n this._endOffset = endOffset;\n this._deltaOffset = deltaOffset;\n this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);\n this._tokensCount = 0;\n for (let i = this._firstTokenIndex, len = source.getCount(); i < len; i++) {\n const tokenStartOffset = source.getStartOffset(i);\n if (tokenStartOffset >= endOffset) {\n break;\n }\n this._tokensCount++;\n }\n }\n equals(other) {\n if (other instanceof SlicedLineTokens) {\n return (this._startOffset === other._startOffset\n && this._endOffset === other._endOffset\n && this._deltaOffset === other._deltaOffset\n && this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount));\n }\n return false;\n }\n getCount() {\n return this._tokensCount;\n }\n getForeground(tokenIndex) {\n return this._source.getForeground(this._firstTokenIndex + tokenIndex);\n }\n getEndOffset(tokenIndex) {\n const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);\n return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;\n }\n getClassName(tokenIndex) {\n return this._source.getClassName(this._firstTokenIndex + tokenIndex);\n }\n getInlineStyle(tokenIndex, colorMap) {\n return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);\n }\n findTokenIndexAtOffset(offset) {\n return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Range;\n(function (Range) {\n /**\n * Returns the intersection between two ranges as a range itself.\n * Returns `{ start: 0, end: 0 }` if the intersection is empty.\n */\n function intersect(one, other) {\n if (one.start >= other.end || other.start >= one.end) {\n return { start: 0, end: 0 };\n }\n const start = Math.max(one.start, other.start);\n const end = Math.min(one.end, other.end);\n if (end - start <= 0) {\n return { start: 0, end: 0 };\n }\n return { start, end };\n }\n Range.intersect = intersect;\n function isEmpty(range) {\n return range.end - range.start <= 0;\n }\n Range.isEmpty = isEmpty;\n function intersects(one, other) {\n return !isEmpty(intersect(one, other));\n }\n Range.intersects = intersects;\n function relativeComplement(one, other) {\n const result = [];\n const first = { start: one.start, end: Math.min(other.start, one.end) };\n const second = { start: Math.max(other.end, one.start), end: one.end };\n if (!isEmpty(first)) {\n result.push(first);\n }\n if (!isEmpty(second)) {\n result.push(second);\n }\n return result;\n }\n Range.relativeComplement = relativeComplement;\n})(Range || (Range = {}));\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73,\r\n NotificationException: 74,\r\n SnippetScriptLoadFailure: 99,\r\n InvalidInstrumentationKey: 100,\r\n CannotParseAiBlobValue: 101,\r\n InvalidContentBlob: 102,\r\n TrackPageActionEventFailed: 103,\r\n FailedAddingCustomDefinedRequestContext: 104,\r\n InMemoryStorageBufferFull: 105\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map","/**\n * The days of the week\n * {@docCategory DateTimeUtilities}\n */\nexport enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n\n/**\n * The months\n * {@docCategory DateTimeUtilities}\n */\nexport enum MonthOfYear {\n January = 0,\n February = 1,\n March = 2,\n April = 3,\n May = 4,\n June = 5,\n July = 6,\n August = 7,\n September = 8,\n October = 9,\n November = 10,\n December = 11,\n}\n\n/**\n * First week of the year settings types\n * {@docCategory DateTimeUtilities}\n */\nexport enum FirstWeekOfYear {\n FirstDay = 0,\n FirstFullWeek = 1,\n FirstFourDayWeek = 2,\n}\n\n/**\n * The supported date range types\n * {@docCategory DateTimeUtilities}\n */\nexport enum DateRangeType {\n Day = 0,\n Week = 1,\n Month = 2,\n WorkWeek = 3,\n}\n\nexport const DAYS_IN_WEEK = 7;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { GlobalMouseMoveMonitor, standardMouseMoveMerger } from '../../globalMouseMoveMonitor.js';\nimport { Widget } from '../widget.js';\nimport { IntervalTimer, TimeoutTimer } from '../../../common/async.js';\n/**\n * The arrow image size.\n */\nexport const ARROW_IMG_SIZE = 11;\nexport class ScrollbarArrow extends Widget {\n constructor(opts) {\n super();\n this._onActivate = opts.onActivate;\n this.bgDomNode = document.createElement('div');\n this.bgDomNode.className = 'arrow-background';\n this.bgDomNode.style.position = 'absolute';\n this.bgDomNode.style.width = opts.bgWidth + 'px';\n this.bgDomNode.style.height = opts.bgHeight + 'px';\n if (typeof opts.top !== 'undefined') {\n this.bgDomNode.style.top = '0px';\n }\n if (typeof opts.left !== 'undefined') {\n this.bgDomNode.style.left = '0px';\n }\n if (typeof opts.bottom !== 'undefined') {\n this.bgDomNode.style.bottom = '0px';\n }\n if (typeof opts.right !== 'undefined') {\n this.bgDomNode.style.right = '0px';\n }\n this.domNode = document.createElement('div');\n this.domNode.className = opts.className;\n this.domNode.classList.add(...opts.icon.classNamesArray);\n this.domNode.style.position = 'absolute';\n this.domNode.style.width = ARROW_IMG_SIZE + 'px';\n this.domNode.style.height = ARROW_IMG_SIZE + 'px';\n if (typeof opts.top !== 'undefined') {\n this.domNode.style.top = opts.top + 'px';\n }\n if (typeof opts.left !== 'undefined') {\n this.domNode.style.left = opts.left + 'px';\n }\n if (typeof opts.bottom !== 'undefined') {\n this.domNode.style.bottom = opts.bottom + 'px';\n }\n if (typeof opts.right !== 'undefined') {\n this.domNode.style.right = opts.right + 'px';\n }\n this._mouseMoveMonitor = this._register(new GlobalMouseMoveMonitor());\n this.onmousedown(this.bgDomNode, (e) => this._arrowMouseDown(e));\n this.onmousedown(this.domNode, (e) => this._arrowMouseDown(e));\n this._mousedownRepeatTimer = this._register(new IntervalTimer());\n this._mousedownScheduleRepeatTimer = this._register(new TimeoutTimer());\n }\n _arrowMouseDown(e) {\n const scheduleRepeater = () => {\n this._mousedownRepeatTimer.cancelAndSet(() => this._onActivate(), 1000 / 24);\n };\n this._onActivate();\n this._mousedownRepeatTimer.cancel();\n this._mousedownScheduleRepeatTimer.cancelAndSet(scheduleRepeater, 200);\n this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, standardMouseMoveMerger, (mouseMoveData) => {\n /* Intentional empty */\n }, () => {\n this._mousedownRepeatTimer.cancel();\n this._mousedownScheduleRepeatTimer.cancel();\n });\n e.preventDefault();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nexport class ScrollbarVisibilityController extends Disposable {\n constructor(visibility, visibleClassName, invisibleClassName) {\n super();\n this._visibility = visibility;\n this._visibleClassName = visibleClassName;\n this._invisibleClassName = invisibleClassName;\n this._domNode = null;\n this._isVisible = false;\n this._isNeeded = false;\n this._rawShouldBeVisible = false;\n this._shouldBeVisible = false;\n this._revealTimer = this._register(new TimeoutTimer());\n }\n setVisibility(visibility) {\n if (this._visibility !== visibility) {\n this._visibility = visibility;\n this._updateShouldBeVisible();\n }\n }\n // ----------------- Hide / Reveal\n setShouldBeVisible(rawShouldBeVisible) {\n this._rawShouldBeVisible = rawShouldBeVisible;\n this._updateShouldBeVisible();\n }\n _applyVisibilitySetting() {\n if (this._visibility === 2 /* Hidden */) {\n return false;\n }\n if (this._visibility === 3 /* Visible */) {\n return true;\n }\n return this._rawShouldBeVisible;\n }\n _updateShouldBeVisible() {\n const shouldBeVisible = this._applyVisibilitySetting();\n if (this._shouldBeVisible !== shouldBeVisible) {\n this._shouldBeVisible = shouldBeVisible;\n this.ensureVisibility();\n }\n }\n setIsNeeded(isNeeded) {\n if (this._isNeeded !== isNeeded) {\n this._isNeeded = isNeeded;\n this.ensureVisibility();\n }\n }\n setDomNode(domNode) {\n this._domNode = domNode;\n this._domNode.setClassName(this._invisibleClassName);\n // Now that the flags & the dom node are in a consistent state, ensure the Hidden/Visible configuration\n this.setShouldBeVisible(false);\n }\n ensureVisibility() {\n if (!this._isNeeded) {\n // Nothing to be rendered\n this._hide(false);\n return;\n }\n if (this._shouldBeVisible) {\n this._reveal();\n }\n else {\n this._hide(true);\n }\n }\n _reveal() {\n if (this._isVisible) {\n return;\n }\n this._isVisible = true;\n // The CSS animation doesn't play otherwise\n this._revealTimer.setIfNotSet(() => {\n if (this._domNode) {\n this._domNode.setClassName(this._visibleClassName);\n }\n }, 0);\n }\n _hide(withFadeAway) {\n this._revealTimer.cancel();\n if (!this._isVisible) {\n return;\n }\n this._isVisible = false;\n if (this._domNode) {\n this._domNode.setClassName(this._invisibleClassName + (withFadeAway ? ' fade' : ''));\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { GlobalMouseMoveMonitor, standardMouseMoveMerger } from '../../globalMouseMoveMonitor.js';\nimport { ScrollbarArrow } from './scrollbarArrow.js';\nimport { ScrollbarVisibilityController } from './scrollbarVisibilityController.js';\nimport { Widget } from '../widget.js';\nimport * as platform from '../../../common/platform.js';\n/**\n * The orthogonal distance to the slider at which dragging \"resets\". This implements \"snapping\"\n */\nconst MOUSE_DRAG_RESET_DISTANCE = 140;\nexport class AbstractScrollbar extends Widget {\n constructor(opts) {\n super();\n this._lazyRender = opts.lazyRender;\n this._host = opts.host;\n this._scrollable = opts.scrollable;\n this._scrollByPage = opts.scrollByPage;\n this._scrollbarState = opts.scrollbarState;\n this._visibilityController = this._register(new ScrollbarVisibilityController(opts.visibility, 'visible scrollbar ' + opts.extraScrollbarClassName, 'invisible scrollbar ' + opts.extraScrollbarClassName));\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._mouseMoveMonitor = this._register(new GlobalMouseMoveMonitor());\n this._shouldRender = true;\n this.domNode = createFastDomNode(document.createElement('div'));\n this.domNode.setAttribute('role', 'presentation');\n this.domNode.setAttribute('aria-hidden', 'true');\n this._visibilityController.setDomNode(this.domNode);\n this.domNode.setPosition('absolute');\n this.onmousedown(this.domNode.domNode, (e) => this._domNodeMouseDown(e));\n }\n // ----------------- creation\n /**\n * Creates the dom node for an arrow & adds it to the container\n */\n _createArrow(opts) {\n const arrow = this._register(new ScrollbarArrow(opts));\n this.domNode.domNode.appendChild(arrow.bgDomNode);\n this.domNode.domNode.appendChild(arrow.domNode);\n }\n /**\n * Creates the slider dom node, adds it to the container & hooks up the events\n */\n _createSlider(top, left, width, height) {\n this.slider = createFastDomNode(document.createElement('div'));\n this.slider.setClassName('slider');\n this.slider.setPosition('absolute');\n this.slider.setTop(top);\n this.slider.setLeft(left);\n if (typeof width === 'number') {\n this.slider.setWidth(width);\n }\n if (typeof height === 'number') {\n this.slider.setHeight(height);\n }\n this.slider.setLayerHinting(true);\n this.slider.setContain('strict');\n this.domNode.domNode.appendChild(this.slider.domNode);\n this.onmousedown(this.slider.domNode, (e) => {\n if (e.leftButton) {\n e.preventDefault();\n this._sliderMouseDown(e, () => { });\n }\n });\n this.onclick(this.slider.domNode, e => {\n if (e.leftButton) {\n e.stopPropagation();\n }\n });\n }\n // ----------------- Update state\n _onElementSize(visibleSize) {\n if (this._scrollbarState.setVisibleSize(visibleSize)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n _onElementScrollSize(elementScrollSize) {\n if (this._scrollbarState.setScrollSize(elementScrollSize)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n _onElementScrollPosition(elementScrollPosition) {\n if (this._scrollbarState.setScrollPosition(elementScrollPosition)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n // ----------------- rendering\n beginReveal() {\n this._visibilityController.setShouldBeVisible(true);\n }\n beginHide() {\n this._visibilityController.setShouldBeVisible(false);\n }\n render() {\n if (!this._shouldRender) {\n return;\n }\n this._shouldRender = false;\n this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize());\n this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition());\n }\n // ----------------- DOM events\n _domNodeMouseDown(e) {\n if (e.target !== this.domNode.domNode) {\n return;\n }\n this._onMouseDown(e);\n }\n delegateMouseDown(e) {\n const domTop = this.domNode.domNode.getClientRects()[0].top;\n const sliderStart = domTop + this._scrollbarState.getSliderPosition();\n const sliderStop = domTop + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize();\n const mousePos = this._sliderMousePosition(e);\n if (sliderStart <= mousePos && mousePos <= sliderStop) {\n // Act as if it was a mouse down on the slider\n if (e.leftButton) {\n e.preventDefault();\n this._sliderMouseDown(e, () => { });\n }\n }\n else {\n // Act as if it was a mouse down on the scrollbar\n this._onMouseDown(e);\n }\n }\n _onMouseDown(e) {\n let offsetX;\n let offsetY;\n if (e.target === this.domNode.domNode && typeof e.browserEvent.offsetX === 'number' && typeof e.browserEvent.offsetY === 'number') {\n offsetX = e.browserEvent.offsetX;\n offsetY = e.browserEvent.offsetY;\n }\n else {\n const domNodePosition = dom.getDomNodePagePosition(this.domNode.domNode);\n offsetX = e.posx - domNodePosition.left;\n offsetY = e.posy - domNodePosition.top;\n }\n const offset = this._mouseDownRelativePosition(offsetX, offsetY);\n this._setDesiredScrollPositionNow(this._scrollByPage\n ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(offset)\n : this._scrollbarState.getDesiredScrollPositionFromOffset(offset));\n if (e.leftButton) {\n e.preventDefault();\n this._sliderMouseDown(e, () => { });\n }\n }\n _sliderMouseDown(e, onDragFinished) {\n const initialMousePosition = this._sliderMousePosition(e);\n const initialMouseOrthogonalPosition = this._sliderOrthogonalMousePosition(e);\n const initialScrollbarState = this._scrollbarState.clone();\n this.slider.toggleClassName('active', true);\n this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, standardMouseMoveMerger, (mouseMoveData) => {\n const mouseOrthogonalPosition = this._sliderOrthogonalMousePosition(mouseMoveData);\n const mouseOrthogonalDelta = Math.abs(mouseOrthogonalPosition - initialMouseOrthogonalPosition);\n if (platform.isWindows && mouseOrthogonalDelta > MOUSE_DRAG_RESET_DISTANCE) {\n // The mouse has wondered away from the scrollbar => reset dragging\n this._setDesiredScrollPositionNow(initialScrollbarState.getScrollPosition());\n return;\n }\n const mousePosition = this._sliderMousePosition(mouseMoveData);\n const mouseDelta = mousePosition - initialMousePosition;\n this._setDesiredScrollPositionNow(initialScrollbarState.getDesiredScrollPositionFromDelta(mouseDelta));\n }, () => {\n this.slider.toggleClassName('active', false);\n this._host.onDragEnd();\n onDragFinished();\n });\n this._host.onDragStart();\n }\n _setDesiredScrollPositionNow(_desiredScrollPosition) {\n const desiredScrollPosition = {};\n this.writeScrollPosition(desiredScrollPosition, _desiredScrollPosition);\n this._scrollable.setScrollPositionNow(desiredScrollPosition);\n }\n updateScrollbarSize(scrollbarSize) {\n this._updateScrollbarSize(scrollbarSize);\n this._scrollbarState.setScrollbarSize(scrollbarSize);\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n isNeeded() {\n return this._scrollbarState.isNeeded();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * The minimal size of the slider (such that it can still be clickable) -- it is artificially enlarged.\n */\nconst MINIMUM_SLIDER_SIZE = 20;\nexport class ScrollbarState {\n constructor(arrowSize, scrollbarSize, oppositeScrollbarSize, visibleSize, scrollSize, scrollPosition) {\n this._scrollbarSize = Math.round(scrollbarSize);\n this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n this._arrowSize = Math.round(arrowSize);\n this._visibleSize = visibleSize;\n this._scrollSize = scrollSize;\n this._scrollPosition = scrollPosition;\n this._computedAvailableSize = 0;\n this._computedIsNeeded = false;\n this._computedSliderSize = 0;\n this._computedSliderRatio = 0;\n this._computedSliderPosition = 0;\n this._refreshComputedValues();\n }\n clone() {\n return new ScrollbarState(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n }\n setVisibleSize(visibleSize) {\n const iVisibleSize = Math.round(visibleSize);\n if (this._visibleSize !== iVisibleSize) {\n this._visibleSize = iVisibleSize;\n this._refreshComputedValues();\n return true;\n }\n return false;\n }\n setScrollSize(scrollSize) {\n const iScrollSize = Math.round(scrollSize);\n if (this._scrollSize !== iScrollSize) {\n this._scrollSize = iScrollSize;\n this._refreshComputedValues();\n return true;\n }\n return false;\n }\n setScrollPosition(scrollPosition) {\n const iScrollPosition = Math.round(scrollPosition);\n if (this._scrollPosition !== iScrollPosition) {\n this._scrollPosition = iScrollPosition;\n this._refreshComputedValues();\n return true;\n }\n return false;\n }\n setScrollbarSize(scrollbarSize) {\n this._scrollbarSize = Math.round(scrollbarSize);\n }\n setOppositeScrollbarSize(oppositeScrollbarSize) {\n this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n }\n static _computeValues(oppositeScrollbarSize, arrowSize, visibleSize, scrollSize, scrollPosition) {\n const computedAvailableSize = Math.max(0, visibleSize - oppositeScrollbarSize);\n const computedRepresentableSize = Math.max(0, computedAvailableSize - 2 * arrowSize);\n const computedIsNeeded = (scrollSize > 0 && scrollSize > visibleSize);\n if (!computedIsNeeded) {\n // There is no need for a slider\n return {\n computedAvailableSize: Math.round(computedAvailableSize),\n computedIsNeeded: computedIsNeeded,\n computedSliderSize: Math.round(computedRepresentableSize),\n computedSliderRatio: 0,\n computedSliderPosition: 0,\n };\n }\n // We must artificially increase the size of the slider if needed, since the slider would be too small to grab with the mouse otherwise\n const computedSliderSize = Math.round(Math.max(MINIMUM_SLIDER_SIZE, Math.floor(visibleSize * computedRepresentableSize / scrollSize)));\n // The slider can move from 0 to `computedRepresentableSize` - `computedSliderSize`\n // in the same way `scrollPosition` can move from 0 to `scrollSize` - `visibleSize`.\n const computedSliderRatio = (computedRepresentableSize - computedSliderSize) / (scrollSize - visibleSize);\n const computedSliderPosition = (scrollPosition * computedSliderRatio);\n return {\n computedAvailableSize: Math.round(computedAvailableSize),\n computedIsNeeded: computedIsNeeded,\n computedSliderSize: Math.round(computedSliderSize),\n computedSliderRatio: computedSliderRatio,\n computedSliderPosition: Math.round(computedSliderPosition),\n };\n }\n _refreshComputedValues() {\n const r = ScrollbarState._computeValues(this._oppositeScrollbarSize, this._arrowSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n this._computedAvailableSize = r.computedAvailableSize;\n this._computedIsNeeded = r.computedIsNeeded;\n this._computedSliderSize = r.computedSliderSize;\n this._computedSliderRatio = r.computedSliderRatio;\n this._computedSliderPosition = r.computedSliderPosition;\n }\n getArrowSize() {\n return this._arrowSize;\n }\n getScrollPosition() {\n return this._scrollPosition;\n }\n getRectangleLargeSize() {\n return this._computedAvailableSize;\n }\n getRectangleSmallSize() {\n return this._scrollbarSize;\n }\n isNeeded() {\n return this._computedIsNeeded;\n }\n getSliderSize() {\n return this._computedSliderSize;\n }\n getSliderPosition() {\n return this._computedSliderPosition;\n }\n /**\n * Compute a desired `scrollPosition` such that `offset` ends up in the center of the slider.\n * `offset` is based on the same coordinate system as the `sliderPosition`.\n */\n getDesiredScrollPositionFromOffset(offset) {\n if (!this._computedIsNeeded) {\n // no need for a slider\n return 0;\n }\n const desiredSliderPosition = offset - this._arrowSize - this._computedSliderSize / 2;\n return Math.round(desiredSliderPosition / this._computedSliderRatio);\n }\n /**\n * Compute a desired `scrollPosition` from if offset is before or after the slider position.\n * If offset is before slider, treat as a page up (or left). If after, page down (or right).\n * `offset` and `_computedSliderPosition` are based on the same coordinate system.\n * `_visibleSize` corresponds to a \"page\" of lines in the returned coordinate system.\n */\n getDesiredScrollPositionFromOffsetPaged(offset) {\n if (!this._computedIsNeeded) {\n // no need for a slider\n return 0;\n }\n const correctedOffset = offset - this._arrowSize; // compensate if has arrows\n let desiredScrollPosition = this._scrollPosition;\n if (correctedOffset < this._computedSliderPosition) {\n desiredScrollPosition -= this._visibleSize; // page up/left\n }\n else {\n desiredScrollPosition += this._visibleSize; // page down/right\n }\n return desiredScrollPosition;\n }\n /**\n * Compute a desired `scrollPosition` such that the slider moves by `delta`.\n */\n getDesiredScrollPositionFromDelta(delta) {\n if (!this._computedIsNeeded) {\n // no need for a slider\n return 0;\n }\n const desiredSliderPosition = this._computedSliderPosition + delta;\n return Math.round(desiredSliderPosition / this._computedSliderRatio);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon, registerCodicon } from '../../../common/codicons.js';\nconst scrollbarButtonLeftIcon = registerCodicon('scrollbar-button-left', Codicon.triangleLeft);\nconst scrollbarButtonRightIcon = registerCodicon('scrollbar-button-right', Codicon.triangleRight);\nexport class HorizontalScrollbar extends AbstractScrollbar {\n constructor(scrollable, options, host) {\n const scrollDimensions = scrollable.getScrollDimensions();\n const scrollPosition = scrollable.getCurrentScrollPosition();\n super({\n lazyRender: options.lazyRender,\n host: host,\n scrollbarState: new ScrollbarState((options.horizontalHasArrows ? options.arrowSize : 0), (options.horizontal === 2 /* Hidden */ ? 0 : options.horizontalScrollbarSize), (options.vertical === 2 /* Hidden */ ? 0 : options.verticalScrollbarSize), scrollDimensions.width, scrollDimensions.scrollWidth, scrollPosition.scrollLeft),\n visibility: options.horizontal,\n extraScrollbarClassName: 'horizontal',\n scrollable: scrollable,\n scrollByPage: options.scrollByPage\n });\n if (options.horizontalHasArrows) {\n const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n const scrollbarDelta = (options.horizontalScrollbarSize - ARROW_IMG_SIZE) / 2;\n this._createArrow({\n className: 'scra',\n icon: scrollbarButtonLeftIcon,\n top: scrollbarDelta,\n left: arrowDelta,\n bottom: undefined,\n right: undefined,\n bgWidth: options.arrowSize,\n bgHeight: options.horizontalScrollbarSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 1, 0)),\n });\n this._createArrow({\n className: 'scra',\n icon: scrollbarButtonRightIcon,\n top: scrollbarDelta,\n left: undefined,\n bottom: undefined,\n right: arrowDelta,\n bgWidth: options.arrowSize,\n bgHeight: options.horizontalScrollbarSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, -1, 0)),\n });\n }\n this._createSlider(Math.floor((options.horizontalScrollbarSize - options.horizontalSliderSize) / 2), 0, undefined, options.horizontalSliderSize);\n }\n _updateSlider(sliderSize, sliderPosition) {\n this.slider.setWidth(sliderSize);\n this.slider.setLeft(sliderPosition);\n }\n _renderDomNode(largeSize, smallSize) {\n this.domNode.setWidth(largeSize);\n this.domNode.setHeight(smallSize);\n this.domNode.setLeft(0);\n this.domNode.setBottom(0);\n }\n onDidScroll(e) {\n this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender;\n this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender;\n this._shouldRender = this._onElementSize(e.width) || this._shouldRender;\n return this._shouldRender;\n }\n _mouseDownRelativePosition(offsetX, offsetY) {\n return offsetX;\n }\n _sliderMousePosition(e) {\n return e.posx;\n }\n _sliderOrthogonalMousePosition(e) {\n return e.posy;\n }\n _updateScrollbarSize(size) {\n this.slider.setHeight(size);\n }\n writeScrollPosition(target, scrollPosition) {\n target.scrollLeft = scrollPosition;\n }\n updateOptions(options) {\n this.updateScrollbarSize(options.horizontal === 2 /* Hidden */ ? 0 : options.horizontalScrollbarSize);\n this._scrollbarState.setOppositeScrollbarSize(options.vertical === 2 /* Hidden */ ? 0 : options.verticalScrollbarSize);\n this._visibilityController.setVisibility(options.horizontal);\n this._scrollByPage = options.scrollByPage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon, registerCodicon } from '../../../common/codicons.js';\nconst scrollbarButtonUpIcon = registerCodicon('scrollbar-button-up', Codicon.triangleUp);\nconst scrollbarButtonDownIcon = registerCodicon('scrollbar-button-down', Codicon.triangleDown);\nexport class VerticalScrollbar extends AbstractScrollbar {\n constructor(scrollable, options, host) {\n const scrollDimensions = scrollable.getScrollDimensions();\n const scrollPosition = scrollable.getCurrentScrollPosition();\n super({\n lazyRender: options.lazyRender,\n host: host,\n scrollbarState: new ScrollbarState((options.verticalHasArrows ? options.arrowSize : 0), (options.vertical === 2 /* Hidden */ ? 0 : options.verticalScrollbarSize), \n // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n 0, scrollDimensions.height, scrollDimensions.scrollHeight, scrollPosition.scrollTop),\n visibility: options.vertical,\n extraScrollbarClassName: 'vertical',\n scrollable: scrollable,\n scrollByPage: options.scrollByPage\n });\n if (options.verticalHasArrows) {\n const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n const scrollbarDelta = (options.verticalScrollbarSize - ARROW_IMG_SIZE) / 2;\n this._createArrow({\n className: 'scra',\n icon: scrollbarButtonUpIcon,\n top: arrowDelta,\n left: scrollbarDelta,\n bottom: undefined,\n right: undefined,\n bgWidth: options.verticalScrollbarSize,\n bgHeight: options.arrowSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, 1)),\n });\n this._createArrow({\n className: 'scra',\n icon: scrollbarButtonDownIcon,\n top: undefined,\n left: scrollbarDelta,\n bottom: arrowDelta,\n right: undefined,\n bgWidth: options.verticalScrollbarSize,\n bgHeight: options.arrowSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, -1)),\n });\n }\n this._createSlider(0, Math.floor((options.verticalScrollbarSize - options.verticalSliderSize) / 2), options.verticalSliderSize, undefined);\n }\n _updateSlider(sliderSize, sliderPosition) {\n this.slider.setHeight(sliderSize);\n this.slider.setTop(sliderPosition);\n }\n _renderDomNode(largeSize, smallSize) {\n this.domNode.setWidth(smallSize);\n this.domNode.setHeight(largeSize);\n this.domNode.setRight(0);\n this.domNode.setTop(0);\n }\n onDidScroll(e) {\n this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender;\n this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender;\n this._shouldRender = this._onElementSize(e.height) || this._shouldRender;\n return this._shouldRender;\n }\n _mouseDownRelativePosition(offsetX, offsetY) {\n return offsetY;\n }\n _sliderMousePosition(e) {\n return e.posy;\n }\n _sliderOrthogonalMousePosition(e) {\n return e.posx;\n }\n _updateScrollbarSize(size) {\n this.slider.setWidth(size);\n }\n writeScrollPosition(target, scrollPosition) {\n target.scrollTop = scrollPosition;\n }\n updateOptions(options) {\n this.updateScrollbarSize(options.vertical === 2 /* Hidden */ ? 0 : options.verticalScrollbarSize);\n // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n this._scrollbarState.setOppositeScrollbarSize(0);\n this._visibilityController.setVisibility(options.vertical);\n this._scrollByPage = options.scrollByPage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getZoomFactor } from '../../browser.js';\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { HorizontalScrollbar } from './horizontalScrollbar.js';\nimport { VerticalScrollbar } from './verticalScrollbar.js';\nimport { Widget } from '../widget.js';\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Emitter } from '../../../common/event.js';\nimport { dispose } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport './media/scrollbars.css';\nconst HIDE_TIMEOUT = 500;\nconst SCROLL_WHEEL_SENSITIVITY = 50;\nconst SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED = true;\nclass MouseWheelClassifierItem {\n constructor(timestamp, deltaX, deltaY) {\n this.timestamp = timestamp;\n this.deltaX = deltaX;\n this.deltaY = deltaY;\n this.score = 0;\n }\n}\nexport class MouseWheelClassifier {\n constructor() {\n this._capacity = 5;\n this._memory = [];\n this._front = -1;\n this._rear = -1;\n }\n isPhysicalMouseWheel() {\n if (this._front === -1 && this._rear === -1) {\n // no elements\n return false;\n }\n // 0.5 * last + 0.25 * 2nd last + 0.125 * 3rd last + ...\n let remainingInfluence = 1;\n let score = 0;\n let iteration = 1;\n let index = this._rear;\n do {\n const influence = (index === this._front ? remainingInfluence : Math.pow(2, -iteration));\n remainingInfluence -= influence;\n score += this._memory[index].score * influence;\n if (index === this._front) {\n break;\n }\n index = (this._capacity + index - 1) % this._capacity;\n iteration++;\n } while (true);\n return (score <= 0.5);\n }\n accept(timestamp, deltaX, deltaY) {\n const item = new MouseWheelClassifierItem(timestamp, deltaX, deltaY);\n item.score = this._computeScore(item);\n if (this._front === -1 && this._rear === -1) {\n this._memory[0] = item;\n this._front = 0;\n this._rear = 0;\n }\n else {\n this._rear = (this._rear + 1) % this._capacity;\n if (this._rear === this._front) {\n // Drop oldest\n this._front = (this._front + 1) % this._capacity;\n }\n this._memory[this._rear] = item;\n }\n }\n /**\n * A score between 0 and 1 for `item`.\n * - a score towards 0 indicates that the source appears to be a physical mouse wheel\n * - a score towards 1 indicates that the source appears to be a touchpad or magic mouse, etc.\n */\n _computeScore(item) {\n if (Math.abs(item.deltaX) > 0 && Math.abs(item.deltaY) > 0) {\n // both axes exercised => definitely not a physical mouse wheel\n return 1;\n }\n let score = 0.5;\n const prev = (this._front === -1 && this._rear === -1 ? null : this._memory[this._rear]);\n if (prev) {\n // const deltaT = item.timestamp - prev.timestamp;\n // if (deltaT < 1000 / 30) {\n // \t// sooner than X times per second => indicator that this is not a physical mouse wheel\n // \tscore += 0.25;\n // }\n // if (item.deltaX === prev.deltaX && item.deltaY === prev.deltaY) {\n // \t// equal amplitude => indicator that this is a physical mouse wheel\n // \tscore -= 0.25;\n // }\n }\n if (!this._isAlmostInt(item.deltaX) || !this._isAlmostInt(item.deltaY)) {\n // non-integer deltas => indicator that this is not a physical mouse wheel\n score += 0.25;\n }\n return Math.min(Math.max(score, 0), 1);\n }\n _isAlmostInt(value) {\n const delta = Math.abs(Math.round(value) - value);\n return (delta < 0.01);\n }\n}\nMouseWheelClassifier.INSTANCE = new MouseWheelClassifier();\nexport class AbstractScrollableElement extends Widget {\n constructor(element, options, scrollable) {\n super();\n this._onScroll = this._register(new Emitter());\n this.onScroll = this._onScroll.event;\n this._onWillScroll = this._register(new Emitter());\n element.style.overflow = 'hidden';\n this._options = resolveOptions(options);\n this._scrollable = scrollable;\n this._register(this._scrollable.onScroll((e) => {\n this._onWillScroll.fire(e);\n this._onDidScroll(e);\n this._onScroll.fire(e);\n }));\n const scrollbarHost = {\n onMouseWheel: (mouseWheelEvent) => this._onMouseWheel(mouseWheelEvent),\n onDragStart: () => this._onDragStart(),\n onDragEnd: () => this._onDragEnd(),\n };\n this._verticalScrollbar = this._register(new VerticalScrollbar(this._scrollable, this._options, scrollbarHost));\n this._horizontalScrollbar = this._register(new HorizontalScrollbar(this._scrollable, this._options, scrollbarHost));\n this._domNode = document.createElement('div');\n this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n this._domNode.setAttribute('role', 'presentation');\n this._domNode.style.position = 'relative';\n this._domNode.style.overflow = 'hidden';\n this._domNode.appendChild(element);\n this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);\n this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);\n if (this._options.useShadows) {\n this._leftShadowDomNode = createFastDomNode(document.createElement('div'));\n this._leftShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._leftShadowDomNode.domNode);\n this._topShadowDomNode = createFastDomNode(document.createElement('div'));\n this._topShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._topShadowDomNode.domNode);\n this._topLeftShadowDomNode = createFastDomNode(document.createElement('div'));\n this._topLeftShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._topLeftShadowDomNode.domNode);\n }\n else {\n this._leftShadowDomNode = null;\n this._topShadowDomNode = null;\n this._topLeftShadowDomNode = null;\n }\n this._listenOnDomNode = this._options.listenOnDomNode || this._domNode;\n this._mouseWheelToDispose = [];\n this._setListeningToMouseWheel(this._options.handleMouseWheel);\n this.onmouseover(this._listenOnDomNode, (e) => this._onMouseOver(e));\n this.onnonbubblingmouseout(this._listenOnDomNode, (e) => this._onMouseOut(e));\n this._hideTimeout = this._register(new TimeoutTimer());\n this._isDragging = false;\n this._mouseIsOver = false;\n this._shouldRender = true;\n this._revealOnScroll = true;\n }\n dispose() {\n this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n super.dispose();\n }\n /**\n * Get the generated 'scrollable' dom node\n */\n getDomNode() {\n return this._domNode;\n }\n getOverviewRulerLayoutInfo() {\n return {\n parent: this._domNode,\n insertBefore: this._verticalScrollbar.domNode.domNode,\n };\n }\n /**\n * Delegate a mouse down event to the vertical scrollbar.\n * This is to help with clicking somewhere else and having the scrollbar react.\n */\n delegateVerticalScrollbarMouseDown(browserEvent) {\n this._verticalScrollbar.delegateMouseDown(browserEvent);\n }\n getScrollDimensions() {\n return this._scrollable.getScrollDimensions();\n }\n setScrollDimensions(dimensions) {\n this._scrollable.setScrollDimensions(dimensions, false);\n }\n /**\n * Update the class name of the scrollable element.\n */\n updateClassName(newClassName) {\n this._options.className = newClassName;\n // Defaults are different on Macs\n if (platform.isMacintosh) {\n this._options.className += ' mac';\n }\n this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n }\n /**\n * Update configuration options for the scrollbar.\n */\n updateOptions(newOptions) {\n if (typeof newOptions.handleMouseWheel !== 'undefined') {\n this._options.handleMouseWheel = newOptions.handleMouseWheel;\n this._setListeningToMouseWheel(this._options.handleMouseWheel);\n }\n if (typeof newOptions.mouseWheelScrollSensitivity !== 'undefined') {\n this._options.mouseWheelScrollSensitivity = newOptions.mouseWheelScrollSensitivity;\n }\n if (typeof newOptions.fastScrollSensitivity !== 'undefined') {\n this._options.fastScrollSensitivity = newOptions.fastScrollSensitivity;\n }\n if (typeof newOptions.scrollPredominantAxis !== 'undefined') {\n this._options.scrollPredominantAxis = newOptions.scrollPredominantAxis;\n }\n if (typeof newOptions.horizontal !== 'undefined') {\n this._options.horizontal = newOptions.horizontal;\n }\n if (typeof newOptions.vertical !== 'undefined') {\n this._options.vertical = newOptions.vertical;\n }\n if (typeof newOptions.horizontalScrollbarSize !== 'undefined') {\n this._options.horizontalScrollbarSize = newOptions.horizontalScrollbarSize;\n }\n if (typeof newOptions.verticalScrollbarSize !== 'undefined') {\n this._options.verticalScrollbarSize = newOptions.verticalScrollbarSize;\n }\n if (typeof newOptions.scrollByPage !== 'undefined') {\n this._options.scrollByPage = newOptions.scrollByPage;\n }\n this._horizontalScrollbar.updateOptions(this._options);\n this._verticalScrollbar.updateOptions(this._options);\n if (!this._options.lazyRender) {\n this._render();\n }\n }\n // -------------------- mouse wheel scrolling --------------------\n _setListeningToMouseWheel(shouldListen) {\n const isListening = (this._mouseWheelToDispose.length > 0);\n if (isListening === shouldListen) {\n // No change\n return;\n }\n // Stop listening (if necessary)\n this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n // Start listening (if necessary)\n if (shouldListen) {\n const onMouseWheel = (browserEvent) => {\n this._onMouseWheel(new StandardWheelEvent(browserEvent));\n };\n this._mouseWheelToDispose.push(dom.addDisposableListener(this._listenOnDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { passive: false }));\n }\n }\n _onMouseWheel(e) {\n const classifier = MouseWheelClassifier.INSTANCE;\n if (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED) {\n const osZoomFactor = window.devicePixelRatio / getZoomFactor();\n if (platform.isWindows || platform.isLinux) {\n // On Windows and Linux, the incoming delta events are multiplied with the OS zoom factor.\n // The OS zoom factor can be reverse engineered by using the device pixel ratio and the configured zoom factor into account.\n classifier.accept(Date.now(), e.deltaX / osZoomFactor, e.deltaY / osZoomFactor);\n }\n else {\n classifier.accept(Date.now(), e.deltaX, e.deltaY);\n }\n }\n // console.log(`${Date.now()}, ${e.deltaY}, ${e.deltaX}`);\n let didScroll = false;\n if (e.deltaY || e.deltaX) {\n let deltaY = e.deltaY * this._options.mouseWheelScrollSensitivity;\n let deltaX = e.deltaX * this._options.mouseWheelScrollSensitivity;\n if (this._options.scrollPredominantAxis) {\n if (Math.abs(deltaY) >= Math.abs(deltaX)) {\n deltaX = 0;\n }\n else {\n deltaY = 0;\n }\n }\n if (this._options.flipAxes) {\n [deltaY, deltaX] = [deltaX, deltaY];\n }\n // Convert vertical scrolling to horizontal if shift is held, this\n // is handled at a higher level on Mac\n const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;\n if ((this._options.scrollYToX || shiftConvert) && !deltaX) {\n deltaX = deltaY;\n deltaY = 0;\n }\n if (e.browserEvent && e.browserEvent.altKey) {\n // fastScrolling\n deltaX = deltaX * this._options.fastScrollSensitivity;\n deltaY = deltaY * this._options.fastScrollSensitivity;\n }\n const futureScrollPosition = this._scrollable.getFutureScrollPosition();\n let desiredScrollPosition = {};\n if (deltaY) {\n const deltaScrollTop = SCROLL_WHEEL_SENSITIVITY * deltaY;\n // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n const desiredScrollTop = futureScrollPosition.scrollTop - (deltaScrollTop < 0 ? Math.floor(deltaScrollTop) : Math.ceil(deltaScrollTop));\n this._verticalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollTop);\n }\n if (deltaX) {\n const deltaScrollLeft = SCROLL_WHEEL_SENSITIVITY * deltaX;\n // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n const desiredScrollLeft = futureScrollPosition.scrollLeft - (deltaScrollLeft < 0 ? Math.floor(deltaScrollLeft) : Math.ceil(deltaScrollLeft));\n this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollLeft);\n }\n // Check that we are scrolling towards a location which is valid\n desiredScrollPosition = this._scrollable.validateScrollPosition(desiredScrollPosition);\n if (futureScrollPosition.scrollLeft !== desiredScrollPosition.scrollLeft || futureScrollPosition.scrollTop !== desiredScrollPosition.scrollTop) {\n const canPerformSmoothScroll = (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED\n && this._options.mouseWheelSmoothScroll\n && classifier.isPhysicalMouseWheel());\n if (canPerformSmoothScroll) {\n this._scrollable.setScrollPositionSmooth(desiredScrollPosition);\n }\n else {\n this._scrollable.setScrollPositionNow(desiredScrollPosition);\n }\n didScroll = true;\n }\n }\n let consumeMouseWheel = didScroll;\n if (!consumeMouseWheel && this._options.alwaysConsumeMouseWheel) {\n consumeMouseWheel = true;\n }\n if (!consumeMouseWheel && this._options.consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded())) {\n consumeMouseWheel = true;\n }\n if (consumeMouseWheel) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n _onDidScroll(e) {\n this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender;\n this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender;\n if (this._options.useShadows) {\n this._shouldRender = true;\n }\n if (this._revealOnScroll) {\n this._reveal();\n }\n if (!this._options.lazyRender) {\n this._render();\n }\n }\n /**\n * Render / mutate the DOM now.\n * Should be used together with the ctor option `lazyRender`.\n */\n renderNow() {\n if (!this._options.lazyRender) {\n throw new Error('Please use `lazyRender` together with `renderNow`!');\n }\n this._render();\n }\n _render() {\n if (!this._shouldRender) {\n return;\n }\n this._shouldRender = false;\n this._horizontalScrollbar.render();\n this._verticalScrollbar.render();\n if (this._options.useShadows) {\n const scrollState = this._scrollable.getCurrentScrollPosition();\n const enableTop = scrollState.scrollTop > 0;\n const enableLeft = scrollState.scrollLeft > 0;\n const leftClassName = (enableLeft ? ' left' : '');\n const topClassName = (enableTop ? ' top' : '');\n const topLeftClassName = (enableLeft || enableTop ? ' top-left-corner' : '');\n this._leftShadowDomNode.setClassName(`shadow${leftClassName}`);\n this._topShadowDomNode.setClassName(`shadow${topClassName}`);\n this._topLeftShadowDomNode.setClassName(`shadow${topLeftClassName}${topClassName}${leftClassName}`);\n }\n }\n // -------------------- fade in / fade out --------------------\n _onDragStart() {\n this._isDragging = true;\n this._reveal();\n }\n _onDragEnd() {\n this._isDragging = false;\n this._hide();\n }\n _onMouseOut(e) {\n this._mouseIsOver = false;\n this._hide();\n }\n _onMouseOver(e) {\n this._mouseIsOver = true;\n this._reveal();\n }\n _reveal() {\n this._verticalScrollbar.beginReveal();\n this._horizontalScrollbar.beginReveal();\n this._scheduleHide();\n }\n _hide() {\n if (!this._mouseIsOver && !this._isDragging) {\n this._verticalScrollbar.beginHide();\n this._horizontalScrollbar.beginHide();\n }\n }\n _scheduleHide() {\n if (!this._mouseIsOver && !this._isDragging) {\n this._hideTimeout.cancelAndSet(() => this._hide(), HIDE_TIMEOUT);\n }\n }\n}\nexport class ScrollableElement extends AbstractScrollableElement {\n constructor(element, options) {\n options = options || {};\n options.mouseWheelSmoothScroll = false;\n const scrollable = new Scrollable(0, (callback) => dom.scheduleAtNextAnimationFrame(callback));\n super(element, options, scrollable);\n this._register(scrollable);\n }\n setScrollPosition(update) {\n this._scrollable.setScrollPositionNow(update);\n }\n getScrollPosition() {\n return this._scrollable.getCurrentScrollPosition();\n }\n}\nexport class SmoothScrollableElement extends AbstractScrollableElement {\n constructor(element, options, scrollable) {\n super(element, options, scrollable);\n }\n setScrollPosition(update) {\n if (update.reuseAnimation) {\n this._scrollable.setScrollPositionSmooth(update, update.reuseAnimation);\n }\n else {\n this._scrollable.setScrollPositionNow(update);\n }\n }\n getScrollPosition() {\n return this._scrollable.getCurrentScrollPosition();\n }\n}\nexport class DomScrollableElement extends ScrollableElement {\n constructor(element, options) {\n super(element, options);\n this._element = element;\n this.onScroll((e) => {\n if (e.scrollTopChanged) {\n this._element.scrollTop = e.scrollTop;\n }\n if (e.scrollLeftChanged) {\n this._element.scrollLeft = e.scrollLeft;\n }\n });\n this.scanDomNode();\n }\n scanDomNode() {\n // width, scrollLeft, scrollWidth, height, scrollTop, scrollHeight\n this.setScrollDimensions({\n width: this._element.clientWidth,\n scrollWidth: this._element.scrollWidth,\n height: this._element.clientHeight,\n scrollHeight: this._element.scrollHeight\n });\n this.setScrollPosition({\n scrollLeft: this._element.scrollLeft,\n scrollTop: this._element.scrollTop,\n });\n }\n}\nfunction resolveOptions(opts) {\n const result = {\n lazyRender: (typeof opts.lazyRender !== 'undefined' ? opts.lazyRender : false),\n className: (typeof opts.className !== 'undefined' ? opts.className : ''),\n useShadows: (typeof opts.useShadows !== 'undefined' ? opts.useShadows : true),\n handleMouseWheel: (typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true),\n flipAxes: (typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false),\n consumeMouseWheelIfScrollbarIsNeeded: (typeof opts.consumeMouseWheelIfScrollbarIsNeeded !== 'undefined' ? opts.consumeMouseWheelIfScrollbarIsNeeded : false),\n alwaysConsumeMouseWheel: (typeof opts.alwaysConsumeMouseWheel !== 'undefined' ? opts.alwaysConsumeMouseWheel : false),\n scrollYToX: (typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false),\n mouseWheelScrollSensitivity: (typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1),\n fastScrollSensitivity: (typeof opts.fastScrollSensitivity !== 'undefined' ? opts.fastScrollSensitivity : 5),\n scrollPredominantAxis: (typeof opts.scrollPredominantAxis !== 'undefined' ? opts.scrollPredominantAxis : true),\n mouseWheelSmoothScroll: (typeof opts.mouseWheelSmoothScroll !== 'undefined' ? opts.mouseWheelSmoothScroll : true),\n arrowSize: (typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11),\n listenOnDomNode: (typeof opts.listenOnDomNode !== 'undefined' ? opts.listenOnDomNode : null),\n horizontal: (typeof opts.horizontal !== 'undefined' ? opts.horizontal : 1 /* Auto */),\n horizontalScrollbarSize: (typeof opts.horizontalScrollbarSize !== 'undefined' ? opts.horizontalScrollbarSize : 10),\n horizontalSliderSize: (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : 0),\n horizontalHasArrows: (typeof opts.horizontalHasArrows !== 'undefined' ? opts.horizontalHasArrows : false),\n vertical: (typeof opts.vertical !== 'undefined' ? opts.vertical : 1 /* Auto */),\n verticalScrollbarSize: (typeof opts.verticalScrollbarSize !== 'undefined' ? opts.verticalScrollbarSize : 10),\n verticalHasArrows: (typeof opts.verticalHasArrows !== 'undefined' ? opts.verticalHasArrows : false),\n verticalSliderSize: (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : 0),\n scrollByPage: (typeof opts.scrollByPage !== 'undefined' ? opts.scrollByPage : false)\n };\n result.horizontalSliderSize = (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : result.horizontalScrollbarSize);\n result.verticalSliderSize = (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : result.verticalScrollbarSize);\n // Defaults are different on Macs\n if (platform.isMacintosh) {\n result.className += ' mac';\n }\n return result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ID_EDITOR_WORKER_SERVICE = 'editorWorkerService';\nexport const IEditorWorkerService = createDecorator(ID_EDITOR_WORKER_SERVICE);\n","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nimport type { ITheme } from '../../Styling';\nimport type { IButtonStyles } from './Button.types';\n\nexport interface IButtonClassNames {\n root?: string;\n flexContainer?: string;\n textContainer?: string;\n icon?: string;\n label?: string;\n menuIcon?: string;\n description?: string;\n screenReaderText?: string;\n}\n\nexport const ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\n\nexport const getBaseButtonClassNames = memoizeFunction(\n (\n theme: ITheme,\n styles: IButtonStyles,\n className: string,\n variantClassName: string,\n iconClassName: string | undefined,\n menuIconClassName: string | undefined,\n disabled: boolean,\n hasMenu: boolean,\n checked: boolean,\n expanded: boolean,\n isSplit: boolean | undefined,\n ): IButtonClassNames => {\n const classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n\n const isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: {\n [`:hover .${classNames.msButtonIcon}`]: styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n [`:hover .${classNames.msButtonMenuIcon}`]: styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n ':hover': styles.rootExpandedHovered,\n },\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.rootHovered,\n [`:hover .${classNames.msButtonLabel}`]: styles.labelHovered,\n [`:hover .${classNames.msButtonIcon}`]: styles.iconHovered,\n [`:hover .${classNames.msButtonDescription}`]: styles.descriptionHovered,\n [`:hover .${classNames.msButtonMenuIcon}`]: styles.menuIconHovered,\n ':focus': styles.rootFocused,\n ':active': styles.rootPressed,\n [`:active .${classNames.msButtonIcon}`]: styles.iconPressed,\n [`:active .${classNames.msButtonDescription}`]: styles.descriptionPressed,\n [`:active .${classNames.msButtonMenuIcon}`]: styles.menuIconPressed,\n },\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n },\n);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from './dom.js';\nimport { IframeUtils } from './iframe.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { DisposableStore } from '../common/lifecycle.js';\nimport { isIOS } from '../common/platform.js';\nexport function standardMouseMoveMerger(lastEvent, currentEvent) {\n let ev = new StandardMouseEvent(currentEvent);\n ev.preventDefault();\n return {\n leftButton: ev.leftButton,\n buttons: ev.buttons,\n posx: ev.posx,\n posy: ev.posy\n };\n}\nexport class GlobalMouseMoveMonitor {\n constructor() {\n this._hooks = new DisposableStore();\n this._mouseMoveEventMerger = null;\n this._mouseMoveCallback = null;\n this._onStopCallback = null;\n }\n dispose() {\n this.stopMonitoring(false);\n this._hooks.dispose();\n }\n stopMonitoring(invokeStopCallback, browserEvent) {\n if (!this.isMonitoring()) {\n // Not monitoring\n return;\n }\n // Unhook\n this._hooks.clear();\n this._mouseMoveEventMerger = null;\n this._mouseMoveCallback = null;\n const onStopCallback = this._onStopCallback;\n this._onStopCallback = null;\n if (invokeStopCallback && onStopCallback) {\n onStopCallback(browserEvent);\n }\n }\n isMonitoring() {\n return !!this._mouseMoveEventMerger;\n }\n startMonitoring(initialElement, initialButtons, mouseMoveEventMerger, mouseMoveCallback, onStopCallback) {\n if (this.isMonitoring()) {\n // I am already hooked\n return;\n }\n this._mouseMoveEventMerger = mouseMoveEventMerger;\n this._mouseMoveCallback = mouseMoveCallback;\n this._onStopCallback = onStopCallback;\n const windowChain = IframeUtils.getSameOriginWindowChain();\n const mouseMove = isIOS ? 'pointermove' : 'mousemove'; // Safari sends wrong event, workaround for #122653\n const mouseUp = 'mouseup';\n const listenTo = windowChain.map(element => element.window.document);\n const shadowRoot = dom.getShadowRoot(initialElement);\n if (shadowRoot) {\n listenTo.unshift(shadowRoot);\n }\n for (const element of listenTo) {\n this._hooks.add(dom.addDisposableThrottledListener(element, mouseMove, (data) => {\n if (data.buttons !== initialButtons) {\n // Buttons state has changed in the meantime\n this.stopMonitoring(true);\n return;\n }\n this._mouseMoveCallback(data);\n }, (lastEvent, currentEvent) => this._mouseMoveEventMerger(lastEvent, currentEvent)));\n this._hooks.add(dom.addDisposableListener(element, mouseUp, (e) => this.stopMonitoring(true)));\n }\n if (IframeUtils.hasDifferentOriginAncestor()) {\n let lastSameOriginAncestor = windowChain[windowChain.length - 1];\n // We might miss a mouse up if it happens outside the iframe\n // This one is for Chrome\n this._hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseout', (browserEvent) => {\n let e = new StandardMouseEvent(browserEvent);\n if (e.target.tagName.toLowerCase() === 'html') {\n this.stopMonitoring(true);\n }\n }));\n // This one is for FF\n this._hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseover', (browserEvent) => {\n let e = new StandardMouseEvent(browserEvent);\n if (e.target.tagName.toLowerCase() === 'html') {\n this.stopMonitoring(true);\n }\n }));\n // This one is for IE\n this._hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document.body, 'mouseleave', (browserEvent) => {\n this.stopMonitoring(true);\n }));\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class CombinedSpliceable {\n constructor(spliceables) {\n this.spliceables = spliceables;\n }\n splice(start, deleteCount, elements) {\n this.spliceables.forEach(s => s.splice(start, deleteCount, elements));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ListError extends Error {\n constructor(user, message) {\n super(`ListError [${user}] ${message}`);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { createStyleSheet } from '../../dom.js';\nimport { DomEmitter, stopEvent } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { Gesture } from '../../touch.js';\nimport { alert } from '../aria/aria.js';\nimport { CombinedSpliceable } from './splice.js';\nimport { binarySearch, firstOrDefault, range } from '../../../common/arrays.js';\nimport { timeout } from '../../../common/async.js';\nimport { Color } from '../../../common/color.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter, Event, EventBufferer } from '../../../common/event.js';\nimport { matchesPrefix } from '../../../common/filters.js';\nimport { DisposableStore, dispose } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { mixin } from '../../../common/objects.js';\nimport * as platform from '../../../common/platform.js';\nimport { isNumber } from '../../../common/types.js';\nimport './list.css';\nimport { ListError } from './list.js';\nimport { ListView } from './listView.js';\nclass TraitRenderer {\n constructor(trait) {\n this.trait = trait;\n this.renderedElements = [];\n }\n get templateId() {\n return `template:${this.trait.trait}`;\n }\n renderTemplate(container) {\n return container;\n }\n renderElement(element, index, templateData) {\n const renderedElementIndex = this.renderedElements.findIndex(el => el.templateData === templateData);\n if (renderedElementIndex >= 0) {\n const rendered = this.renderedElements[renderedElementIndex];\n this.trait.unrender(templateData);\n rendered.index = index;\n }\n else {\n const rendered = { index, templateData };\n this.renderedElements.push(rendered);\n }\n this.trait.renderIndex(index, templateData);\n }\n splice(start, deleteCount, insertCount) {\n const rendered = [];\n for (const renderedElement of this.renderedElements) {\n if (renderedElement.index < start) {\n rendered.push(renderedElement);\n }\n else if (renderedElement.index >= start + deleteCount) {\n rendered.push({\n index: renderedElement.index + insertCount - deleteCount,\n templateData: renderedElement.templateData\n });\n }\n }\n this.renderedElements = rendered;\n }\n renderIndexes(indexes) {\n for (const { index, templateData } of this.renderedElements) {\n if (indexes.indexOf(index) > -1) {\n this.trait.renderIndex(index, templateData);\n }\n }\n }\n disposeTemplate(templateData) {\n const index = this.renderedElements.findIndex(el => el.templateData === templateData);\n if (index < 0) {\n return;\n }\n this.renderedElements.splice(index, 1);\n }\n}\nclass Trait {\n constructor(_trait) {\n this._trait = _trait;\n this.length = 0;\n this.indexes = [];\n this.sortedIndexes = [];\n this._onChange = new Emitter();\n this.onChange = this._onChange.event;\n }\n get trait() { return this._trait; }\n get renderer() {\n return new TraitRenderer(this);\n }\n splice(start, deleteCount, elements) {\n var _a;\n deleteCount = Math.max(0, Math.min(deleteCount, this.length - start));\n const diff = elements.length - deleteCount;\n const end = start + deleteCount;\n const sortedIndexes = [\n ...this.sortedIndexes.filter(i => i < start),\n ...elements.map((hasTrait, i) => hasTrait ? i + start : -1).filter(i => i !== -1),\n ...this.sortedIndexes.filter(i => i >= end).map(i => i + diff)\n ];\n const length = this.length + diff;\n if (this.sortedIndexes.length > 0 && sortedIndexes.length === 0 && length > 0) {\n const first = (_a = this.sortedIndexes.find(index => index >= start)) !== null && _a !== void 0 ? _a : length - 1;\n sortedIndexes.push(Math.min(first, length - 1));\n }\n this.renderer.splice(start, deleteCount, elements.length);\n this._set(sortedIndexes, sortedIndexes);\n this.length = length;\n }\n renderIndex(index, container) {\n container.classList.toggle(this._trait, this.contains(index));\n }\n unrender(container) {\n container.classList.remove(this._trait);\n }\n /**\n * Sets the indexes which should have this trait.\n *\n * @param indexes Indexes which should have this trait.\n * @return The old indexes which had this trait.\n */\n set(indexes, browserEvent) {\n return this._set(indexes, [...indexes].sort(numericSort), browserEvent);\n }\n _set(indexes, sortedIndexes, browserEvent) {\n const result = this.indexes;\n const sortedResult = this.sortedIndexes;\n this.indexes = indexes;\n this.sortedIndexes = sortedIndexes;\n const toRender = disjunction(sortedResult, indexes);\n this.renderer.renderIndexes(toRender);\n this._onChange.fire({ indexes, browserEvent });\n return result;\n }\n get() {\n return this.indexes;\n }\n contains(index) {\n return binarySearch(this.sortedIndexes, index, numericSort) >= 0;\n }\n dispose() {\n dispose(this._onChange);\n }\n}\n__decorate([\n memoize\n], Trait.prototype, \"renderer\", null);\nclass SelectionTrait extends Trait {\n constructor(setAriaSelected) {\n super('selected');\n this.setAriaSelected = setAriaSelected;\n }\n renderIndex(index, container) {\n super.renderIndex(index, container);\n if (this.setAriaSelected) {\n if (this.contains(index)) {\n container.setAttribute('aria-selected', 'true');\n }\n else {\n container.setAttribute('aria-selected', 'false');\n }\n }\n }\n}\n/**\n * The TraitSpliceable is used as a util class to be able\n * to preserve traits across splice calls, given an identity\n * provider.\n */\nclass TraitSpliceable {\n constructor(trait, view, identityProvider) {\n this.trait = trait;\n this.view = view;\n this.identityProvider = identityProvider;\n }\n splice(start, deleteCount, elements) {\n if (!this.identityProvider) {\n return this.trait.splice(start, deleteCount, elements.map(() => false));\n }\n const pastElementsWithTrait = this.trait.get().map(i => this.identityProvider.getId(this.view.element(i)).toString());\n const elementsWithTrait = elements.map(e => pastElementsWithTrait.indexOf(this.identityProvider.getId(e).toString()) > -1);\n this.trait.splice(start, deleteCount, elementsWithTrait);\n }\n}\nexport function isInputElement(e) {\n return e.tagName === 'INPUT' || e.tagName === 'TEXTAREA';\n}\nexport function isMonacoEditor(e) {\n if (e.classList.contains('monaco-editor')) {\n return true;\n }\n if (e.classList.contains('monaco-list')) {\n return false;\n }\n if (!e.parentElement) {\n return false;\n }\n return isMonacoEditor(e.parentElement);\n}\nclass KeyboardController {\n constructor(list, view, options) {\n this.list = list;\n this.view = view;\n this.disposables = new DisposableStore();\n this.multipleSelectionDisposables = new DisposableStore();\n this.onKeyDown.filter(e => e.keyCode === 3 /* Enter */).on(this.onEnter, this, this.disposables);\n this.onKeyDown.filter(e => e.keyCode === 16 /* UpArrow */).on(this.onUpArrow, this, this.disposables);\n this.onKeyDown.filter(e => e.keyCode === 18 /* DownArrow */).on(this.onDownArrow, this, this.disposables);\n this.onKeyDown.filter(e => e.keyCode === 11 /* PageUp */).on(this.onPageUpArrow, this, this.disposables);\n this.onKeyDown.filter(e => e.keyCode === 12 /* PageDown */).on(this.onPageDownArrow, this, this.disposables);\n this.onKeyDown.filter(e => e.keyCode === 9 /* Escape */).on(this.onEscape, this, this.disposables);\n if (options.multipleSelectionSupport !== false) {\n this.onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === 31 /* KeyA */).on(this.onCtrlA, this, this.multipleSelectionDisposables);\n }\n }\n get onKeyDown() {\n return Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event)\n .filter(e => !isInputElement(e.target))\n .map(e => new StandardKeyboardEvent(e));\n }\n updateOptions(optionsUpdate) {\n if (optionsUpdate.multipleSelectionSupport !== undefined) {\n this.multipleSelectionDisposables.clear();\n if (optionsUpdate.multipleSelectionSupport) {\n this.onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === 31 /* KeyA */).on(this.onCtrlA, this, this.multipleSelectionDisposables);\n }\n }\n }\n onEnter(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.setSelection(this.list.getFocus(), e.browserEvent);\n }\n onUpArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.focusPrevious(1, false, e.browserEvent);\n const el = this.list.getFocus()[0];\n this.list.setAnchor(el);\n this.list.reveal(el);\n this.view.domNode.focus();\n }\n onDownArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.focusNext(1, false, e.browserEvent);\n const el = this.list.getFocus()[0];\n this.list.setAnchor(el);\n this.list.reveal(el);\n this.view.domNode.focus();\n }\n onPageUpArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.focusPreviousPage(e.browserEvent);\n const el = this.list.getFocus()[0];\n this.list.setAnchor(el);\n this.list.reveal(el);\n this.view.domNode.focus();\n }\n onPageDownArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.focusNextPage(e.browserEvent);\n const el = this.list.getFocus()[0];\n this.list.setAnchor(el);\n this.list.reveal(el);\n this.view.domNode.focus();\n }\n onCtrlA(e) {\n e.preventDefault();\n e.stopPropagation();\n this.list.setSelection(range(this.list.length), e.browserEvent);\n this.list.setAnchor(undefined);\n this.view.domNode.focus();\n }\n onEscape(e) {\n if (this.list.getSelection().length) {\n e.preventDefault();\n e.stopPropagation();\n this.list.setSelection([], e.browserEvent);\n this.list.setAnchor(undefined);\n this.view.domNode.focus();\n }\n }\n dispose() {\n this.disposables.dispose();\n this.multipleSelectionDisposables.dispose();\n }\n}\n__decorate([\n memoize\n], KeyboardController.prototype, \"onKeyDown\", null);\nvar TypeLabelControllerState;\n(function (TypeLabelControllerState) {\n TypeLabelControllerState[TypeLabelControllerState[\"Idle\"] = 0] = \"Idle\";\n TypeLabelControllerState[TypeLabelControllerState[\"Typing\"] = 1] = \"Typing\";\n})(TypeLabelControllerState || (TypeLabelControllerState = {}));\nexport const DefaultKeyboardNavigationDelegate = new class {\n mightProducePrintableCharacter(event) {\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return false;\n }\n return (event.keyCode >= 31 /* KeyA */ && event.keyCode <= 56 /* KeyZ */)\n || (event.keyCode >= 21 /* Digit0 */ && event.keyCode <= 30 /* Digit9 */)\n || (event.keyCode >= 93 /* Numpad0 */ && event.keyCode <= 102 /* Numpad9 */)\n || (event.keyCode >= 80 /* Semicolon */ && event.keyCode <= 90 /* Quote */);\n }\n};\nclass TypeLabelController {\n constructor(list, view, keyboardNavigationLabelProvider, delegate) {\n this.list = list;\n this.view = view;\n this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n this.delegate = delegate;\n this.enabled = false;\n this.state = TypeLabelControllerState.Idle;\n this.automaticKeyboardNavigation = true;\n this.triggered = false;\n this.previouslyFocused = -1;\n this.enabledDisposables = new DisposableStore();\n this.disposables = new DisposableStore();\n this.updateOptions(list.options);\n }\n updateOptions(options) {\n const enableKeyboardNavigation = typeof options.enableKeyboardNavigation === 'undefined' ? true : !!options.enableKeyboardNavigation;\n if (enableKeyboardNavigation) {\n this.enable();\n }\n else {\n this.disable();\n }\n if (typeof options.automaticKeyboardNavigation !== 'undefined') {\n this.automaticKeyboardNavigation = options.automaticKeyboardNavigation;\n }\n }\n enable() {\n if (this.enabled) {\n return;\n }\n const onChar = Event.chain(this.enabledDisposables.add(new DomEmitter(this.view.domNode, 'keydown')).event)\n .filter(e => !isInputElement(e.target))\n .filter(() => this.automaticKeyboardNavigation || this.triggered)\n .map(event => new StandardKeyboardEvent(event))\n .filter(e => this.delegate.mightProducePrintableCharacter(e))\n .forEach(e => { e.stopPropagation(); e.preventDefault(); })\n .map(event => event.browserEvent.key)\n .event;\n const onClear = Event.debounce(onChar, () => null, 800);\n const onInput = Event.reduce(Event.any(onChar, onClear), (r, i) => i === null ? null : ((r || '') + i));\n onInput(this.onInput, this, this.enabledDisposables);\n onClear(this.onClear, this, this.enabledDisposables);\n this.enabled = true;\n this.triggered = false;\n }\n disable() {\n if (!this.enabled) {\n return;\n }\n this.enabledDisposables.clear();\n this.enabled = false;\n this.triggered = false;\n }\n onClear() {\n var _a;\n const focus = this.list.getFocus();\n if (focus.length > 0 && focus[0] === this.previouslyFocused) {\n // List: re-announce element on typing end since typed keys will interrupt aria label of focused element\n // Do not announce if there was a focus change at the end to prevent duplication https://github.com/microsoft/vscode/issues/95961\n const ariaLabel = (_a = this.list.options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getAriaLabel(this.list.element(focus[0]));\n if (ariaLabel) {\n alert(ariaLabel);\n }\n }\n this.previouslyFocused = -1;\n }\n onInput(word) {\n if (!word) {\n this.state = TypeLabelControllerState.Idle;\n this.triggered = false;\n return;\n }\n const focus = this.list.getFocus();\n const start = focus.length > 0 ? focus[0] : 0;\n const delta = this.state === TypeLabelControllerState.Idle ? 1 : 0;\n this.state = TypeLabelControllerState.Typing;\n for (let i = 0; i < this.list.length; i++) {\n const index = (start + i + delta) % this.list.length;\n const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(index));\n const labelStr = label && label.toString();\n if (typeof labelStr === 'undefined' || matchesPrefix(word, labelStr)) {\n this.previouslyFocused = start;\n this.list.setFocus([index]);\n this.list.reveal(index);\n return;\n }\n }\n }\n dispose() {\n this.disable();\n this.enabledDisposables.dispose();\n this.disposables.dispose();\n }\n}\nclass DOMFocusController {\n constructor(list, view) {\n this.list = list;\n this.view = view;\n this.disposables = new DisposableStore();\n const onKeyDown = Event.chain(this.disposables.add(new DomEmitter(view.domNode, 'keydown')).event)\n .filter(e => !isInputElement(e.target))\n .map(e => new StandardKeyboardEvent(e));\n onKeyDown.filter(e => e.keyCode === 2 /* Tab */ && !e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey)\n .on(this.onTab, this, this.disposables);\n }\n onTab(e) {\n if (e.target !== this.view.domNode) {\n return;\n }\n const focus = this.list.getFocus();\n if (focus.length === 0) {\n return;\n }\n const focusedDomElement = this.view.domElement(focus[0]);\n if (!focusedDomElement) {\n return;\n }\n const tabIndexElement = focusedDomElement.querySelector('[tabIndex]');\n if (!tabIndexElement || !(tabIndexElement instanceof HTMLElement) || tabIndexElement.tabIndex === -1) {\n return;\n }\n const style = window.getComputedStyle(tabIndexElement);\n if (style.visibility === 'hidden' || style.display === 'none') {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n tabIndexElement.focus();\n }\n dispose() {\n this.disposables.dispose();\n }\n}\nexport function isSelectionSingleChangeEvent(event) {\n return platform.isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;\n}\nexport function isSelectionRangeChangeEvent(event) {\n return event.browserEvent.shiftKey;\n}\nfunction isMouseRightClick(event) {\n return event instanceof MouseEvent && event.button === 2;\n}\nconst DefaultMultipleSelectionController = {\n isSelectionSingleChangeEvent,\n isSelectionRangeChangeEvent\n};\nexport class MouseController {\n constructor(list) {\n this.list = list;\n this.disposables = new DisposableStore();\n this._onPointer = new Emitter();\n this.onPointer = this._onPointer.event;\n if (list.options.multipleSelectionSupport !== false) {\n this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n }\n this.mouseSupport = typeof list.options.mouseSupport === 'undefined' || !!list.options.mouseSupport;\n if (this.mouseSupport) {\n list.onMouseDown(this.onMouseDown, this, this.disposables);\n list.onContextMenu(this.onContextMenu, this, this.disposables);\n list.onMouseDblClick(this.onDoubleClick, this, this.disposables);\n list.onTouchStart(this.onMouseDown, this, this.disposables);\n this.disposables.add(Gesture.addTarget(list.getHTMLElement()));\n }\n Event.any(list.onMouseClick, list.onMouseMiddleClick, list.onTap)(this.onViewPointer, this, this.disposables);\n }\n updateOptions(optionsUpdate) {\n if (optionsUpdate.multipleSelectionSupport !== undefined) {\n this.multipleSelectionController = undefined;\n if (optionsUpdate.multipleSelectionSupport) {\n this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n }\n }\n }\n isSelectionSingleChangeEvent(event) {\n if (!this.multipleSelectionController) {\n return false;\n }\n return this.multipleSelectionController.isSelectionSingleChangeEvent(event);\n }\n isSelectionRangeChangeEvent(event) {\n if (!this.multipleSelectionController) {\n return false;\n }\n return this.multipleSelectionController.isSelectionRangeChangeEvent(event);\n }\n isSelectionChangeEvent(event) {\n return this.isSelectionSingleChangeEvent(event) || this.isSelectionRangeChangeEvent(event);\n }\n onMouseDown(e) {\n if (isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n if (document.activeElement !== e.browserEvent.target) {\n this.list.domFocus();\n }\n }\n onContextMenu(e) {\n if (isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n const focus = typeof e.index === 'undefined' ? [] : [e.index];\n this.list.setFocus(focus, e.browserEvent);\n }\n onViewPointer(e) {\n if (!this.mouseSupport) {\n return;\n }\n if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n const focus = e.index;\n if (typeof focus === 'undefined') {\n this.list.setFocus([], e.browserEvent);\n this.list.setSelection([], e.browserEvent);\n this.list.setAnchor(undefined);\n return;\n }\n if (this.isSelectionRangeChangeEvent(e)) {\n return this.changeSelection(e);\n }\n if (this.isSelectionChangeEvent(e)) {\n return this.changeSelection(e);\n }\n this.list.setFocus([focus], e.browserEvent);\n this.list.setAnchor(focus);\n if (!isMouseRightClick(e.browserEvent)) {\n this.list.setSelection([focus], e.browserEvent);\n }\n this._onPointer.fire(e);\n }\n onDoubleClick(e) {\n if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n if (this.isSelectionChangeEvent(e)) {\n return;\n }\n const focus = this.list.getFocus();\n this.list.setSelection(focus, e.browserEvent);\n }\n changeSelection(e) {\n const focus = e.index;\n let anchor = this.list.getAnchor();\n if (this.isSelectionRangeChangeEvent(e)) {\n if (typeof anchor === 'undefined') {\n const currentFocus = this.list.getFocus()[0];\n anchor = currentFocus !== null && currentFocus !== void 0 ? currentFocus : focus;\n this.list.setAnchor(anchor);\n }\n const min = Math.min(anchor, focus);\n const max = Math.max(anchor, focus);\n const rangeSelection = range(min, max + 1);\n const selection = this.list.getSelection();\n const contiguousRange = getContiguousRangeContaining(disjunction(selection, [anchor]), anchor);\n if (contiguousRange.length === 0) {\n return;\n }\n const newSelection = disjunction(rangeSelection, relativeComplement(selection, contiguousRange));\n this.list.setSelection(newSelection, e.browserEvent);\n this.list.setFocus([focus], e.browserEvent);\n }\n else if (this.isSelectionSingleChangeEvent(e)) {\n const selection = this.list.getSelection();\n const newSelection = selection.filter(i => i !== focus);\n this.list.setFocus([focus]);\n this.list.setAnchor(focus);\n if (selection.length === newSelection.length) {\n this.list.setSelection([...newSelection, focus], e.browserEvent);\n }\n else {\n this.list.setSelection(newSelection, e.browserEvent);\n }\n }\n }\n dispose() {\n this.disposables.dispose();\n }\n}\nexport class DefaultStyleController {\n constructor(styleElement, selectorSuffix) {\n this.styleElement = styleElement;\n this.selectorSuffix = selectorSuffix;\n }\n style(styles) {\n const suffix = this.selectorSuffix && `.${this.selectorSuffix}`;\n const content = [];\n if (styles.listBackground) {\n if (styles.listBackground.isOpaque()) {\n content.push(`.monaco-list${suffix} .monaco-list-rows { background: ${styles.listBackground}; }`);\n }\n else if (!platform.isMacintosh) { // subpixel AA doesn't exist in macOS\n console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`);\n }\n }\n if (styles.listFocusBackground) {\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { background-color: ${styles.listFocusBackground}; }`);\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused:hover { background-color: ${styles.listFocusBackground}; }`); // overwrite :hover style in this case!\n }\n if (styles.listFocusForeground) {\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n }\n if (styles.listActiveSelectionBackground) {\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { background-color: ${styles.listActiveSelectionBackground}; }`);\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected:hover { background-color: ${styles.listActiveSelectionBackground}; }`); // overwrite :hover style in this case!\n }\n if (styles.listActiveSelectionForeground) {\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { color: ${styles.listActiveSelectionForeground}; }`);\n }\n if (styles.listActiveSelectionIconForeground) {\n content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected .codicon { color: ${styles.listActiveSelectionIconForeground}; }`);\n }\n if (styles.listFocusAndSelectionBackground) {\n content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { background-color: ${styles.listFocusAndSelectionBackground}; }\n\t\t\t`);\n }\n if (styles.listFocusAndSelectionForeground) {\n content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { color: ${styles.listFocusAndSelectionForeground}; }\n\t\t\t`);\n }\n if (styles.listInactiveFocusForeground) {\n content.push(`.monaco-list${suffix} .monaco-list-row.focused { color: ${styles.listInactiveFocusForeground}; }`);\n content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { color: ${styles.listInactiveFocusForeground}; }`); // overwrite :hover style in this case!\n }\n if (styles.listInactiveSelectionIconForeground) {\n content.push(`.monaco-list${suffix} .monaco-list-row.focused .codicon { color: ${styles.listInactiveSelectionIconForeground}; }`);\n }\n if (styles.listInactiveFocusBackground) {\n content.push(`.monaco-list${suffix} .monaco-list-row.focused { background-color: ${styles.listInactiveFocusBackground}; }`);\n content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { background-color: ${styles.listInactiveFocusBackground}; }`); // overwrite :hover style in this case!\n }\n if (styles.listInactiveSelectionBackground) {\n content.push(`.monaco-list${suffix} .monaco-list-row.selected { background-color: ${styles.listInactiveSelectionBackground}; }`);\n content.push(`.monaco-list${suffix} .monaco-list-row.selected:hover { background-color: ${styles.listInactiveSelectionBackground}; }`); // overwrite :hover style in this case!\n }\n if (styles.listInactiveSelectionForeground) {\n content.push(`.monaco-list${suffix} .monaco-list-row.selected { color: ${styles.listInactiveSelectionForeground}; }`);\n }\n if (styles.listHoverBackground) {\n content.push(`.monaco-list${suffix}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${styles.listHoverBackground}; }`);\n }\n if (styles.listHoverForeground) {\n content.push(`.monaco-list${suffix} .monaco-list-row:hover:not(.selected):not(.focused) { color: ${styles.listHoverForeground}; }`);\n }\n if (styles.listSelectionOutline) {\n content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);\n }\n if (styles.listFocusOutline) {\n content.push(`\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`);\n }\n if (styles.listInactiveFocusOutline) {\n content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`);\n }\n if (styles.listHoverOutline) {\n content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`);\n }\n if (styles.listDropBackground) {\n content.push(`\n\t\t\t\t.monaco-list${suffix}.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target { background-color: ${styles.listDropBackground} !important; color: inherit !important; }\n\t\t\t`);\n }\n if (styles.listFilterWidgetBackground) {\n content.push(`.monaco-list-type-filter { background-color: ${styles.listFilterWidgetBackground} }`);\n }\n if (styles.listFilterWidgetOutline) {\n content.push(`.monaco-list-type-filter { border: 1px solid ${styles.listFilterWidgetOutline}; }`);\n }\n if (styles.listFilterWidgetNoMatchesOutline) {\n content.push(`.monaco-list-type-filter.no-matches { border: 1px solid ${styles.listFilterWidgetNoMatchesOutline}; }`);\n }\n if (styles.listMatchesShadow) {\n content.push(`.monaco-list-type-filter { box-shadow: 1px 1px 1px ${styles.listMatchesShadow}; }`);\n }\n if (styles.tableColumnsBorder) {\n content.push(`\n\t\t\t\t.monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${styles.tableColumnsBorder};\n\t\t\t}`);\n }\n this.styleElement.textContent = content.join('\\n');\n }\n}\nconst defaultStyles = {\n listFocusBackground: Color.fromHex('#7FB0D0'),\n listActiveSelectionBackground: Color.fromHex('#0E639C'),\n listActiveSelectionForeground: Color.fromHex('#FFFFFF'),\n listActiveSelectionIconForeground: Color.fromHex('#FFFFFF'),\n listFocusAndSelectionBackground: Color.fromHex('#094771'),\n listFocusAndSelectionForeground: Color.fromHex('#FFFFFF'),\n listInactiveSelectionBackground: Color.fromHex('#3F3F46'),\n listInactiveSelectionIconForeground: Color.fromHex('#FFFFFF'),\n listHoverBackground: Color.fromHex('#2A2D2E'),\n listDropBackground: Color.fromHex('#383B3D'),\n treeIndentGuidesStroke: Color.fromHex('#a9a9a9'),\n tableColumnsBorder: Color.fromHex('#cccccc').transparent(0.2)\n};\nconst DefaultOptions = {\n keyboardSupport: true,\n mouseSupport: true,\n multipleSelectionSupport: true,\n dnd: {\n getDragURI() { return null; },\n onDragStart() { },\n onDragOver() { return false; },\n drop() { }\n }\n};\n// TODO@Joao: move these utils into a SortedArray class\nfunction getContiguousRangeContaining(range, value) {\n const index = range.indexOf(value);\n if (index === -1) {\n return [];\n }\n const result = [];\n let i = index - 1;\n while (i >= 0 && range[i] === value - (index - i)) {\n result.push(range[i--]);\n }\n result.reverse();\n i = index;\n while (i < range.length && range[i] === value + (i - index)) {\n result.push(range[i++]);\n }\n return result;\n}\n/**\n * Given two sorted collections of numbers, returns the intersection\n * between them (OR).\n */\nfunction disjunction(one, other) {\n const result = [];\n let i = 0, j = 0;\n while (i < one.length || j < other.length) {\n if (i >= one.length) {\n result.push(other[j++]);\n }\n else if (j >= other.length) {\n result.push(one[i++]);\n }\n else if (one[i] === other[j]) {\n result.push(one[i]);\n i++;\n j++;\n continue;\n }\n else if (one[i] < other[j]) {\n result.push(one[i++]);\n }\n else {\n result.push(other[j++]);\n }\n }\n return result;\n}\n/**\n * Given two sorted collections of numbers, returns the relative\n * complement between them (XOR).\n */\nfunction relativeComplement(one, other) {\n const result = [];\n let i = 0, j = 0;\n while (i < one.length || j < other.length) {\n if (i >= one.length) {\n result.push(other[j++]);\n }\n else if (j >= other.length) {\n result.push(one[i++]);\n }\n else if (one[i] === other[j]) {\n i++;\n j++;\n continue;\n }\n else if (one[i] < other[j]) {\n result.push(one[i++]);\n }\n else {\n j++;\n }\n }\n return result;\n}\nconst numericSort = (a, b) => a - b;\nclass PipelineRenderer {\n constructor(_templateId, renderers) {\n this._templateId = _templateId;\n this.renderers = renderers;\n }\n get templateId() {\n return this._templateId;\n }\n renderTemplate(container) {\n return this.renderers.map(r => r.renderTemplate(container));\n }\n renderElement(element, index, templateData, height) {\n let i = 0;\n for (const renderer of this.renderers) {\n renderer.renderElement(element, index, templateData[i++], height);\n }\n }\n disposeElement(element, index, templateData, height) {\n let i = 0;\n for (const renderer of this.renderers) {\n if (renderer.disposeElement) {\n renderer.disposeElement(element, index, templateData[i], height);\n }\n i += 1;\n }\n }\n disposeTemplate(templateData) {\n let i = 0;\n for (const renderer of this.renderers) {\n renderer.disposeTemplate(templateData[i++]);\n }\n }\n}\nclass AccessibiltyRenderer {\n constructor(accessibilityProvider) {\n this.accessibilityProvider = accessibilityProvider;\n this.templateId = 'a18n';\n }\n renderTemplate(container) {\n return container;\n }\n renderElement(element, index, container) {\n const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n if (ariaLabel) {\n container.setAttribute('aria-label', ariaLabel);\n }\n else {\n container.removeAttribute('aria-label');\n }\n const ariaLevel = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(element);\n if (typeof ariaLevel === 'number') {\n container.setAttribute('aria-level', `${ariaLevel}`);\n }\n else {\n container.removeAttribute('aria-level');\n }\n }\n disposeTemplate(templateData) {\n // noop\n }\n}\nclass ListViewDragAndDrop {\n constructor(list, dnd) {\n this.list = list;\n this.dnd = dnd;\n }\n getDragElements(element) {\n const selection = this.list.getSelectedElements();\n const elements = selection.indexOf(element) > -1 ? selection : [element];\n return elements;\n }\n getDragURI(element) {\n return this.dnd.getDragURI(element);\n }\n getDragLabel(elements, originalEvent) {\n if (this.dnd.getDragLabel) {\n return this.dnd.getDragLabel(elements, originalEvent);\n }\n return undefined;\n }\n onDragStart(data, originalEvent) {\n if (this.dnd.onDragStart) {\n this.dnd.onDragStart(data, originalEvent);\n }\n }\n onDragOver(data, targetElement, targetIndex, originalEvent) {\n return this.dnd.onDragOver(data, targetElement, targetIndex, originalEvent);\n }\n onDragLeave(data, targetElement, targetIndex, originalEvent) {\n var _a, _b;\n (_b = (_a = this.dnd).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, data, targetElement, targetIndex, originalEvent);\n }\n onDragEnd(originalEvent) {\n if (this.dnd.onDragEnd) {\n this.dnd.onDragEnd(originalEvent);\n }\n }\n drop(data, targetElement, targetIndex, originalEvent) {\n this.dnd.drop(data, targetElement, targetIndex, originalEvent);\n }\n}\nexport class List {\n constructor(user, container, virtualDelegate, renderers, _options = DefaultOptions) {\n var _a;\n this.user = user;\n this._options = _options;\n this.focus = new Trait('focused');\n this.anchor = new Trait('anchor');\n this.eventBufferer = new EventBufferer();\n this._ariaLabel = '';\n this.disposables = new DisposableStore();\n this._onDidDispose = new Emitter();\n this.onDidDispose = this._onDidDispose.event;\n const role = this._options.accessibilityProvider && this._options.accessibilityProvider.getWidgetRole ? (_a = this._options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getWidgetRole() : 'list';\n this.selection = new SelectionTrait(role !== 'listbox');\n mixin(_options, defaultStyles, false);\n const baseRenderers = [this.focus.renderer, this.selection.renderer];\n this.accessibilityProvider = _options.accessibilityProvider;\n if (this.accessibilityProvider) {\n baseRenderers.push(new AccessibiltyRenderer(this.accessibilityProvider));\n if (this.accessibilityProvider.onDidChangeActiveDescendant) {\n this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant, this, this.disposables);\n }\n }\n renderers = renderers.map(r => new PipelineRenderer(r.templateId, [...baseRenderers, r]));\n const viewOptions = Object.assign(Object.assign({}, _options), { dnd: _options.dnd && new ListViewDragAndDrop(this, _options.dnd) });\n this.view = new ListView(container, virtualDelegate, renderers, viewOptions);\n this.view.domNode.setAttribute('role', role);\n if (_options.styleController) {\n this.styleController = _options.styleController(this.view.domId);\n }\n else {\n const styleElement = createStyleSheet(this.view.domNode);\n this.styleController = new DefaultStyleController(styleElement, this.view.domId);\n }\n this.spliceable = new CombinedSpliceable([\n new TraitSpliceable(this.focus, this.view, _options.identityProvider),\n new TraitSpliceable(this.selection, this.view, _options.identityProvider),\n new TraitSpliceable(this.anchor, this.view, _options.identityProvider),\n this.view\n ]);\n this.disposables.add(this.focus);\n this.disposables.add(this.selection);\n this.disposables.add(this.anchor);\n this.disposables.add(this.view);\n this.disposables.add(this._onDidDispose);\n this.disposables.add(new DOMFocusController(this, this.view));\n if (typeof _options.keyboardSupport !== 'boolean' || _options.keyboardSupport) {\n this.keyboardController = new KeyboardController(this, this.view, _options);\n this.disposables.add(this.keyboardController);\n }\n if (_options.keyboardNavigationLabelProvider) {\n const delegate = _options.keyboardNavigationDelegate || DefaultKeyboardNavigationDelegate;\n this.typeLabelController = new TypeLabelController(this, this.view, _options.keyboardNavigationLabelProvider, delegate);\n this.disposables.add(this.typeLabelController);\n }\n this.mouseController = this.createMouseController(_options);\n this.disposables.add(this.mouseController);\n this.onDidChangeFocus(this._onFocusChange, this, this.disposables);\n this.onDidChangeSelection(this._onSelectionChange, this, this.disposables);\n if (this.accessibilityProvider) {\n this.ariaLabel = this.accessibilityProvider.getWidgetAriaLabel();\n }\n if (this._options.multipleSelectionSupport !== false) {\n this.view.domNode.setAttribute('aria-multiselectable', 'true');\n }\n }\n get onDidChangeFocus() {\n return Event.map(this.eventBufferer.wrapEvent(this.focus.onChange), e => this.toListEvent(e));\n }\n get onDidChangeSelection() {\n return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e));\n }\n get domId() { return this.view.domId; }\n get onMouseClick() { return this.view.onMouseClick; }\n get onMouseDblClick() { return this.view.onMouseDblClick; }\n get onMouseMiddleClick() { return this.view.onMouseMiddleClick; }\n get onPointer() { return this.mouseController.onPointer; }\n get onMouseDown() { return this.view.onMouseDown; }\n get onTouchStart() { return this.view.onTouchStart; }\n get onTap() { return this.view.onTap; }\n /**\n * Possible context menu trigger events:\n * - ContextMenu key\n * - Shift F10\n * - Ctrl Option Shift M (macOS with VoiceOver)\n * - Mouse right click\n */\n get onContextMenu() {\n let didJustPressContextMenuKey = false;\n const fromKeyDown = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event)\n .map(e => new StandardKeyboardEvent(e))\n .filter(e => didJustPressContextMenuKey = e.keyCode === 58 /* ContextMenu */ || (e.shiftKey && e.keyCode === 68 /* F10 */))\n .map(stopEvent)\n .filter(() => false)\n .event;\n const fromKeyUp = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keyup')).event)\n .forEach(() => didJustPressContextMenuKey = false)\n .map(e => new StandardKeyboardEvent(e))\n .filter(e => e.keyCode === 58 /* ContextMenu */ || (e.shiftKey && e.keyCode === 68 /* F10 */))\n .map(stopEvent)\n .map(({ browserEvent }) => {\n const focus = this.getFocus();\n const index = focus.length ? focus[0] : undefined;\n const element = typeof index !== 'undefined' ? this.view.element(index) : undefined;\n const anchor = typeof index !== 'undefined' ? this.view.domElement(index) : this.view.domNode;\n return { index, element, anchor, browserEvent };\n })\n .event;\n const fromMouse = Event.chain(this.view.onContextMenu)\n .filter(_ => !didJustPressContextMenuKey)\n .map(({ element, index, browserEvent }) => ({ element, index, anchor: { x: browserEvent.pageX + 1, y: browserEvent.pageY }, browserEvent }))\n .event;\n return Event.any(fromKeyDown, fromKeyUp, fromMouse);\n }\n get onKeyDown() { return this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event; }\n get onDidFocus() { return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode, 'focus', true)).event); }\n createMouseController(options) {\n return new MouseController(this);\n }\n updateOptions(optionsUpdate = {}) {\n var _a;\n this._options = Object.assign(Object.assign({}, this._options), optionsUpdate);\n if (this.typeLabelController) {\n this.typeLabelController.updateOptions(this._options);\n }\n if (this._options.multipleSelectionController !== undefined) {\n if (this._options.multipleSelectionSupport) {\n this.view.domNode.setAttribute('aria-multiselectable', 'true');\n }\n else {\n this.view.domNode.removeAttribute('aria-multiselectable');\n }\n }\n this.mouseController.updateOptions(optionsUpdate);\n (_a = this.keyboardController) === null || _a === void 0 ? void 0 : _a.updateOptions(optionsUpdate);\n this.view.updateOptions(optionsUpdate);\n }\n get options() {\n return this._options;\n }\n splice(start, deleteCount, elements = []) {\n if (start < 0 || start > this.view.length) {\n throw new ListError(this.user, `Invalid start index: ${start}`);\n }\n if (deleteCount < 0) {\n throw new ListError(this.user, `Invalid delete count: ${deleteCount}`);\n }\n if (deleteCount === 0 && elements.length === 0) {\n return;\n }\n this.eventBufferer.bufferEvents(() => this.spliceable.splice(start, deleteCount, elements));\n }\n rerender() {\n this.view.rerender();\n }\n element(index) {\n return this.view.element(index);\n }\n get length() {\n return this.view.length;\n }\n get contentHeight() {\n return this.view.contentHeight;\n }\n get scrollTop() {\n return this.view.getScrollTop();\n }\n set scrollTop(scrollTop) {\n this.view.setScrollTop(scrollTop);\n }\n get ariaLabel() {\n return this._ariaLabel;\n }\n set ariaLabel(value) {\n this._ariaLabel = value;\n this.view.domNode.setAttribute('aria-label', value);\n }\n domFocus() {\n this.view.domNode.focus({ preventScroll: true });\n }\n layout(height, width) {\n this.view.layout(height, width);\n }\n setSelection(indexes, browserEvent) {\n for (const index of indexes) {\n if (index < 0 || index >= this.length) {\n throw new ListError(this.user, `Invalid index ${index}`);\n }\n }\n this.selection.set(indexes, browserEvent);\n }\n getSelection() {\n return this.selection.get();\n }\n getSelectedElements() {\n return this.getSelection().map(i => this.view.element(i));\n }\n setAnchor(index) {\n if (typeof index === 'undefined') {\n this.anchor.set([]);\n return;\n }\n if (index < 0 || index >= this.length) {\n throw new ListError(this.user, `Invalid index ${index}`);\n }\n this.anchor.set([index]);\n }\n getAnchor() {\n return firstOrDefault(this.anchor.get(), undefined);\n }\n getAnchorElement() {\n const anchor = this.getAnchor();\n return typeof anchor === 'undefined' ? undefined : this.element(anchor);\n }\n setFocus(indexes, browserEvent) {\n for (const index of indexes) {\n if (index < 0 || index >= this.length) {\n throw new ListError(this.user, `Invalid index ${index}`);\n }\n }\n this.focus.set(indexes, browserEvent);\n }\n focusNext(n = 1, loop = false, browserEvent, filter) {\n if (this.length === 0) {\n return;\n }\n const focus = this.focus.get();\n const index = this.findNextIndex(focus.length > 0 ? focus[0] + n : 0, loop, filter);\n if (index > -1) {\n this.setFocus([index], browserEvent);\n }\n }\n focusPrevious(n = 1, loop = false, browserEvent, filter) {\n if (this.length === 0) {\n return;\n }\n const focus = this.focus.get();\n const index = this.findPreviousIndex(focus.length > 0 ? focus[0] - n : 0, loop, filter);\n if (index > -1) {\n this.setFocus([index], browserEvent);\n }\n }\n focusNextPage(browserEvent, filter) {\n return __awaiter(this, void 0, void 0, function* () {\n let lastPageIndex = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight);\n lastPageIndex = lastPageIndex === 0 ? 0 : lastPageIndex - 1;\n const lastPageElement = this.view.element(lastPageIndex);\n const currentlyFocusedElement = this.getFocusedElements()[0];\n if (currentlyFocusedElement !== lastPageElement) {\n const lastGoodPageIndex = this.findPreviousIndex(lastPageIndex, false, filter);\n if (lastGoodPageIndex > -1 && currentlyFocusedElement !== this.view.element(lastGoodPageIndex)) {\n this.setFocus([lastGoodPageIndex], browserEvent);\n }\n else {\n this.setFocus([lastPageIndex], browserEvent);\n }\n }\n else {\n const previousScrollTop = this.view.getScrollTop();\n this.view.setScrollTop(previousScrollTop + this.view.renderHeight - this.view.elementHeight(lastPageIndex));\n if (this.view.getScrollTop() !== previousScrollTop) {\n this.setFocus([]);\n // Let the scroll event listener run\n yield timeout(0);\n yield this.focusNextPage(browserEvent, filter);\n }\n }\n });\n }\n focusPreviousPage(browserEvent, filter) {\n return __awaiter(this, void 0, void 0, function* () {\n let firstPageIndex;\n const scrollTop = this.view.getScrollTop();\n if (scrollTop === 0) {\n firstPageIndex = this.view.indexAt(scrollTop);\n }\n else {\n firstPageIndex = this.view.indexAfter(scrollTop - 1);\n }\n const firstPageElement = this.view.element(firstPageIndex);\n const currentlyFocusedElement = this.getFocusedElements()[0];\n if (currentlyFocusedElement !== firstPageElement) {\n const firstGoodPageIndex = this.findNextIndex(firstPageIndex, false, filter);\n if (firstGoodPageIndex > -1 && currentlyFocusedElement !== this.view.element(firstGoodPageIndex)) {\n this.setFocus([firstGoodPageIndex], browserEvent);\n }\n else {\n this.setFocus([firstPageIndex], browserEvent);\n }\n }\n else {\n const previousScrollTop = scrollTop;\n this.view.setScrollTop(scrollTop - this.view.renderHeight);\n if (this.view.getScrollTop() !== previousScrollTop) {\n this.setFocus([]);\n // Let the scroll event listener run\n yield timeout(0);\n yield this.focusPreviousPage(browserEvent, filter);\n }\n }\n });\n }\n focusLast(browserEvent, filter) {\n if (this.length === 0) {\n return;\n }\n const index = this.findPreviousIndex(this.length - 1, false, filter);\n if (index > -1) {\n this.setFocus([index], browserEvent);\n }\n }\n focusFirst(browserEvent, filter) {\n this.focusNth(0, browserEvent, filter);\n }\n focusNth(n, browserEvent, filter) {\n if (this.length === 0) {\n return;\n }\n const index = this.findNextIndex(n, false, filter);\n if (index > -1) {\n this.setFocus([index], browserEvent);\n }\n }\n findNextIndex(index, loop = false, filter) {\n for (let i = 0; i < this.length; i++) {\n if (index >= this.length && !loop) {\n return -1;\n }\n index = index % this.length;\n if (!filter || filter(this.element(index))) {\n return index;\n }\n index++;\n }\n return -1;\n }\n findPreviousIndex(index, loop = false, filter) {\n for (let i = 0; i < this.length; i++) {\n if (index < 0 && !loop) {\n return -1;\n }\n index = (this.length + (index % this.length)) % this.length;\n if (!filter || filter(this.element(index))) {\n return index;\n }\n index--;\n }\n return -1;\n }\n getFocus() {\n return this.focus.get();\n }\n getFocusedElements() {\n return this.getFocus().map(i => this.view.element(i));\n }\n reveal(index, relativeTop) {\n if (index < 0 || index >= this.length) {\n throw new ListError(this.user, `Invalid index ${index}`);\n }\n const scrollTop = this.view.getScrollTop();\n const elementTop = this.view.elementTop(index);\n const elementHeight = this.view.elementHeight(index);\n if (isNumber(relativeTop)) {\n // y = mx + b\n const m = elementHeight - this.view.renderHeight;\n this.view.setScrollTop(m * clamp(relativeTop, 0, 1) + elementTop);\n }\n else {\n const viewItemBottom = elementTop + elementHeight;\n const scrollBottom = scrollTop + this.view.renderHeight;\n if (elementTop < scrollTop && viewItemBottom >= scrollBottom) {\n // The element is already overflowing the viewport, no-op\n }\n else if (elementTop < scrollTop || (viewItemBottom >= scrollBottom && elementHeight >= this.view.renderHeight)) {\n this.view.setScrollTop(elementTop);\n }\n else if (viewItemBottom >= scrollBottom) {\n this.view.setScrollTop(viewItemBottom - this.view.renderHeight);\n }\n }\n }\n /**\n * Returns the relative position of an element rendered in the list.\n * Returns `null` if the element isn't *entirely* in the visible viewport.\n */\n getRelativeTop(index) {\n if (index < 0 || index >= this.length) {\n throw new ListError(this.user, `Invalid index ${index}`);\n }\n const scrollTop = this.view.getScrollTop();\n const elementTop = this.view.elementTop(index);\n const elementHeight = this.view.elementHeight(index);\n if (elementTop < scrollTop || elementTop + elementHeight > scrollTop + this.view.renderHeight) {\n return null;\n }\n // y = mx + b\n const m = elementHeight - this.view.renderHeight;\n return Math.abs((scrollTop - elementTop) / m);\n }\n getHTMLElement() {\n return this.view.domNode;\n }\n style(styles) {\n this.styleController.style(styles);\n }\n toListEvent({ indexes, browserEvent }) {\n return { indexes, elements: indexes.map(i => this.view.element(i)), browserEvent };\n }\n _onFocusChange() {\n const focus = this.focus.get();\n this.view.domNode.classList.toggle('element-focused', focus.length > 0);\n this.onDidChangeActiveDescendant();\n }\n onDidChangeActiveDescendant() {\n var _a;\n const focus = this.focus.get();\n if (focus.length > 0) {\n let id;\n if ((_a = this.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.getActiveDescendantId) {\n id = this.accessibilityProvider.getActiveDescendantId(this.view.element(focus[0]));\n }\n this.view.domNode.setAttribute('aria-activedescendant', id || this.view.getElementDomId(focus[0]));\n }\n else {\n this.view.domNode.removeAttribute('aria-activedescendant');\n }\n }\n _onSelectionChange() {\n const selection = this.selection.get();\n this.view.domNode.classList.toggle('selection-none', selection.length === 0);\n this.view.domNode.classList.toggle('selection-single', selection.length === 1);\n this.view.domNode.classList.toggle('selection-multiple', selection.length > 1);\n }\n dispose() {\n this._onDidDispose.fire();\n this.disposables.dispose();\n this._onDidDispose.dispose();\n }\n}\n__decorate([\n memoize\n], List.prototype, \"onDidChangeFocus\", null);\n__decorate([\n memoize\n], List.prototype, \"onDidChangeSelection\", null);\n__decorate([\n memoize\n], List.prototype, \"onContextMenu\", null);\n__decorate([\n memoize\n], List.prototype, \"onKeyDown\", null);\n__decorate([\n memoize\n], List.prototype, \"onDidFocus\", null);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { coalesce, equals, flatten, isNonEmptyArray } from '../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { illegalArgument, isPromiseCanceledError, onUnexpectedExternalError } from '../../../base/common/errors.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { TextModelCancellationTokenSource } from '../../browser/core/editorState.js';\nimport { Range } from '../../common/core/range.js';\nimport { Selection } from '../../common/core/selection.js';\nimport * as modes from '../../common/modes.js';\nimport { IModelService } from '../../common/services/modelService.js';\nimport { CommandsRegistry } from '../../../platform/commands/common/commands.js';\nimport { Progress } from '../../../platform/progress/common/progress.js';\nimport { CodeActionKind, filtersAction, mayIncludeActionsOfKind } from './types.js';\nexport const codeActionCommandId = 'editor.action.codeAction';\nexport const refactorCommandId = 'editor.action.refactor';\nexport const sourceActionCommandId = 'editor.action.sourceAction';\nexport const organizeImportsCommandId = 'editor.action.organizeImports';\nexport const fixAllCommandId = 'editor.action.fixAll';\nexport class CodeActionItem {\n constructor(action, provider) {\n this.action = action;\n this.provider = provider;\n }\n resolve(token) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (((_a = this.provider) === null || _a === void 0 ? void 0 : _a.resolveCodeAction) && !this.action.edit) {\n let action;\n try {\n action = yield this.provider.resolveCodeAction(this.action, token);\n }\n catch (err) {\n onUnexpectedExternalError(err);\n }\n if (action) {\n this.action.edit = action.edit;\n }\n }\n return this;\n });\n }\n}\nclass ManagedCodeActionSet extends Disposable {\n constructor(actions, documentation, disposables) {\n super();\n this.documentation = documentation;\n this._register(disposables);\n this.allActions = [...actions].sort(ManagedCodeActionSet.codeActionsComparator);\n this.validActions = this.allActions.filter(({ action }) => !action.disabled);\n }\n static codeActionsComparator({ action: a }, { action: b }) {\n if (a.isPreferred && !b.isPreferred) {\n return -1;\n }\n else if (!a.isPreferred && b.isPreferred) {\n return 1;\n }\n if (isNonEmptyArray(a.diagnostics)) {\n if (isNonEmptyArray(b.diagnostics)) {\n return a.diagnostics[0].message.localeCompare(b.diagnostics[0].message);\n }\n else {\n return -1;\n }\n }\n else if (isNonEmptyArray(b.diagnostics)) {\n return 1;\n }\n else {\n return 0; // both have no diagnostics\n }\n }\n get hasAutoFix() {\n return this.validActions.some(({ action: fix }) => !!fix.kind && CodeActionKind.QuickFix.contains(new CodeActionKind(fix.kind)) && !!fix.isPreferred);\n }\n}\nconst emptyCodeActionsResponse = { actions: [], documentation: undefined };\nexport function getCodeActions(model, rangeOrSelection, trigger, progress, token) {\n var _a;\n const filter = trigger.filter || {};\n const codeActionContext = {\n only: (_a = filter.include) === null || _a === void 0 ? void 0 : _a.value,\n trigger: trigger.type,\n };\n const cts = new TextModelCancellationTokenSource(model, token);\n const providers = getCodeActionProviders(model, filter);\n const disposables = new DisposableStore();\n const promises = providers.map((provider) => __awaiter(this, void 0, void 0, function* () {\n try {\n progress.report(provider);\n const providedCodeActions = yield provider.provideCodeActions(model, rangeOrSelection, codeActionContext, cts.token);\n if (providedCodeActions) {\n disposables.add(providedCodeActions);\n }\n if (cts.token.isCancellationRequested) {\n return emptyCodeActionsResponse;\n }\n const filteredActions = ((providedCodeActions === null || providedCodeActions === void 0 ? void 0 : providedCodeActions.actions) || []).filter(action => action && filtersAction(filter, action));\n const documentation = getDocumentation(provider, filteredActions, filter.include);\n return {\n actions: filteredActions.map(action => new CodeActionItem(action, provider)),\n documentation\n };\n }\n catch (err) {\n if (isPromiseCanceledError(err)) {\n throw err;\n }\n onUnexpectedExternalError(err);\n return emptyCodeActionsResponse;\n }\n }));\n const listener = modes.CodeActionProviderRegistry.onDidChange(() => {\n const newProviders = modes.CodeActionProviderRegistry.all(model);\n if (!equals(newProviders, providers)) {\n cts.cancel();\n }\n });\n return Promise.all(promises).then(actions => {\n const allActions = flatten(actions.map(x => x.actions));\n const allDocumentation = coalesce(actions.map(x => x.documentation));\n return new ManagedCodeActionSet(allActions, allDocumentation, disposables);\n })\n .finally(() => {\n listener.dispose();\n cts.dispose();\n });\n}\nfunction getCodeActionProviders(model, filter) {\n return modes.CodeActionProviderRegistry.all(model)\n // Don't include providers that we know will not return code actions of interest\n .filter(provider => {\n if (!provider.providedCodeActionKinds) {\n // We don't know what type of actions this provider will return.\n return true;\n }\n return provider.providedCodeActionKinds.some(kind => mayIncludeActionsOfKind(filter, new CodeActionKind(kind)));\n });\n}\nfunction getDocumentation(provider, providedCodeActions, only) {\n if (!provider.documentation) {\n return undefined;\n }\n const documentation = provider.documentation.map(entry => ({ kind: new CodeActionKind(entry.kind), command: entry.command }));\n if (only) {\n let currentBest;\n for (const entry of documentation) {\n if (entry.kind.contains(only)) {\n if (!currentBest) {\n currentBest = entry;\n }\n else {\n // Take best match\n if (currentBest.kind.contains(entry.kind)) {\n currentBest = entry;\n }\n }\n }\n }\n if (currentBest) {\n return currentBest === null || currentBest === void 0 ? void 0 : currentBest.command;\n }\n }\n // Otherwise, check to see if any of the provided actions match.\n for (const action of providedCodeActions) {\n if (!action.kind) {\n continue;\n }\n for (const entry of documentation) {\n if (entry.kind.contains(new CodeActionKind(action.kind))) {\n return entry.command;\n }\n }\n }\n return undefined;\n}\nCommandsRegistry.registerCommand('_executeCodeActionProvider', function (accessor, resource, rangeOrSelection, kind, itemResolveCount) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!(resource instanceof URI)) {\n throw illegalArgument();\n }\n const model = accessor.get(IModelService).getModel(resource);\n if (!model) {\n throw illegalArgument();\n }\n const validatedRangeOrSelection = Selection.isISelection(rangeOrSelection)\n ? Selection.liftSelection(rangeOrSelection)\n : Range.isIRange(rangeOrSelection)\n ? model.validateRange(rangeOrSelection)\n : undefined;\n if (!validatedRangeOrSelection) {\n throw illegalArgument();\n }\n const include = typeof kind === 'string' ? new CodeActionKind(kind) : undefined;\n const codeActionSet = yield getCodeActions(model, validatedRangeOrSelection, { type: 1 /* Invoke */, filter: { includeSourceActions: true, include } }, Progress.None, CancellationToken.None);\n const resolving = [];\n const resolveCount = Math.min(codeActionSet.validActions.length, typeof itemResolveCount === 'number' ? itemResolveCount : 0);\n for (let i = 0; i < resolveCount; i++) {\n resolving.push(codeActionSet.validActions[i].resolve(CancellationToken.None));\n }\n try {\n yield Promise.all(resolving);\n return codeActionSet.validActions.map(item => item.action);\n }\n finally {\n setTimeout(() => codeActionSet.dispose(), 100);\n }\n });\n});\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SyncDescriptor } from './descriptors.js';\nconst _registry = [];\nexport function registerSingleton(id, ctorOrDescriptor, supportsDelayedInstantiation) {\n if (!(ctorOrDescriptor instanceof SyncDescriptor)) {\n ctorOrDescriptor = new SyncDescriptor(ctorOrDescriptor, [], supportsDelayedInstantiation);\n }\n _registry.push([id, ctorOrDescriptor]);\n}\nexport function getSingletonServiceDescriptors() {\n return _registry;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalArgument } from './errors.js';\nexport function createKeybinding(keybinding, OS) {\n if (keybinding === 0) {\n return null;\n }\n const firstPart = (keybinding & 0x0000FFFF) >>> 0;\n const chordPart = (keybinding & 0xFFFF0000) >>> 16;\n if (chordPart !== 0) {\n return new ChordKeybinding([\n createSimpleKeybinding(firstPart, OS),\n createSimpleKeybinding(chordPart, OS)\n ]);\n }\n return new ChordKeybinding([createSimpleKeybinding(firstPart, OS)]);\n}\nexport function createSimpleKeybinding(keybinding, OS) {\n const ctrlCmd = (keybinding & 2048 /* CtrlCmd */ ? true : false);\n const winCtrl = (keybinding & 256 /* WinCtrl */ ? true : false);\n const ctrlKey = (OS === 2 /* Macintosh */ ? winCtrl : ctrlCmd);\n const shiftKey = (keybinding & 1024 /* Shift */ ? true : false);\n const altKey = (keybinding & 512 /* Alt */ ? true : false);\n const metaKey = (OS === 2 /* Macintosh */ ? ctrlCmd : winCtrl);\n const keyCode = (keybinding & 255 /* KeyCode */);\n return new SimpleKeybinding(ctrlKey, shiftKey, altKey, metaKey, keyCode);\n}\nexport class SimpleKeybinding {\n constructor(ctrlKey, shiftKey, altKey, metaKey, keyCode) {\n this.ctrlKey = ctrlKey;\n this.shiftKey = shiftKey;\n this.altKey = altKey;\n this.metaKey = metaKey;\n this.keyCode = keyCode;\n }\n equals(other) {\n return (this.ctrlKey === other.ctrlKey\n && this.shiftKey === other.shiftKey\n && this.altKey === other.altKey\n && this.metaKey === other.metaKey\n && this.keyCode === other.keyCode);\n }\n isModifierKey() {\n return (this.keyCode === 0 /* Unknown */\n || this.keyCode === 5 /* Ctrl */\n || this.keyCode === 57 /* Meta */\n || this.keyCode === 6 /* Alt */\n || this.keyCode === 4 /* Shift */);\n }\n toChord() {\n return new ChordKeybinding([this]);\n }\n /**\n * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\n */\n isDuplicateModifierCase() {\n return ((this.ctrlKey && this.keyCode === 5 /* Ctrl */)\n || (this.shiftKey && this.keyCode === 4 /* Shift */)\n || (this.altKey && this.keyCode === 6 /* Alt */)\n || (this.metaKey && this.keyCode === 57 /* Meta */));\n }\n}\nexport class ChordKeybinding {\n constructor(parts) {\n if (parts.length === 0) {\n throw illegalArgument(`parts`);\n }\n this.parts = parts;\n }\n}\nexport class ScanCodeBinding {\n constructor(ctrlKey, shiftKey, altKey, metaKey, scanCode) {\n this.ctrlKey = ctrlKey;\n this.shiftKey = shiftKey;\n this.altKey = altKey;\n this.metaKey = metaKey;\n this.scanCode = scanCode;\n }\n /**\n * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\n */\n isDuplicateModifierCase() {\n return ((this.ctrlKey && (this.scanCode === 157 /* ControlLeft */ || this.scanCode === 161 /* ControlRight */))\n || (this.shiftKey && (this.scanCode === 158 /* ShiftLeft */ || this.scanCode === 162 /* ShiftRight */))\n || (this.altKey && (this.scanCode === 159 /* AltLeft */ || this.scanCode === 163 /* AltRight */))\n || (this.metaKey && (this.scanCode === 160 /* MetaLeft */ || this.scanCode === 164 /* MetaRight */)));\n }\n}\nexport class ResolvedKeybindingPart {\n constructor(ctrlKey, shiftKey, altKey, metaKey, kbLabel, kbAriaLabel) {\n this.ctrlKey = ctrlKey;\n this.shiftKey = shiftKey;\n this.altKey = altKey;\n this.metaKey = metaKey;\n this.keyLabel = kbLabel;\n this.keyAriaLabel = kbAriaLabel;\n }\n}\n/**\n * A resolved keybinding. Can be a simple keybinding or a chord keybinding.\n */\nexport class ResolvedKeybinding {\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CharacterClassifier } from '../core/characterClassifier.js';\nexport class WordCharacterClassifier extends CharacterClassifier {\n constructor(wordSeparators) {\n super(0 /* Regular */);\n for (let i = 0, len = wordSeparators.length; i < len; i++) {\n this.set(wordSeparators.charCodeAt(i), 2 /* WordSeparator */);\n }\n this.set(32 /* Space */, 1 /* Whitespace */);\n this.set(9 /* Tab */, 1 /* Whitespace */);\n }\n}\nfunction once(computeFn) {\n let cache = {}; // TODO@Alex unbounded cache\n return (input) => {\n if (!cache.hasOwnProperty(input)) {\n cache[input] = computeFn(input);\n }\n return cache[input];\n };\n}\nexport const getMapForWordSeparators = once((input) => new WordCharacterClassifier(input));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nexport class MovingAverage {\n constructor() {\n this._n = 1;\n this._val = 0;\n }\n update(value) {\n this._val = this._val + (value - this._val) / this._n;\n this._n += 1;\n return this;\n }\n get value() {\n return this._val;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IUndoRedoService = createDecorator('undoRedoService');\nexport class ResourceEditStackSnapshot {\n constructor(resource, elements) {\n this.resource = resource;\n this.elements = elements;\n }\n}\nexport class UndoRedoGroup {\n constructor() {\n this.id = UndoRedoGroup._ID++;\n this.order = 1;\n }\n nextOrder() {\n if (this.id === 0) {\n return 0;\n }\n return this.order++;\n }\n}\nUndoRedoGroup._ID = 0;\nUndoRedoGroup.None = new UndoRedoGroup();\nexport class UndoRedoSource {\n constructor() {\n this.id = UndoRedoSource._ID++;\n this.order = 1;\n }\n nextOrder() {\n if (this.id === 0) {\n return 0;\n }\n return this.order++;\n }\n}\nUndoRedoSource._ID = 0;\nUndoRedoSource.None = new UndoRedoSource();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { getMapForWordSeparators } from '../controller/wordCharacterClassifier.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { FindMatch } from '../model.js';\nconst LIMIT_FIND_COUNT = 999;\nexport class SearchParams {\n constructor(searchString, isRegex, matchCase, wordSeparators) {\n this.searchString = searchString;\n this.isRegex = isRegex;\n this.matchCase = matchCase;\n this.wordSeparators = wordSeparators;\n }\n parseSearchRequest() {\n if (this.searchString === '') {\n return null;\n }\n // Try to create a RegExp out of the params\n let multiline;\n if (this.isRegex) {\n multiline = isMultilineRegexSource(this.searchString);\n }\n else {\n multiline = (this.searchString.indexOf('\\n') >= 0);\n }\n let regex = null;\n try {\n regex = strings.createRegExp(this.searchString, this.isRegex, {\n matchCase: this.matchCase,\n wholeWord: false,\n multiline: multiline,\n global: true,\n unicode: true\n });\n }\n catch (err) {\n return null;\n }\n if (!regex) {\n return null;\n }\n let canUseSimpleSearch = (!this.isRegex && !multiline);\n if (canUseSimpleSearch && this.searchString.toLowerCase() !== this.searchString.toUpperCase()) {\n // casing might make a difference\n canUseSimpleSearch = this.matchCase;\n }\n return new SearchData(regex, this.wordSeparators ? getMapForWordSeparators(this.wordSeparators) : null, canUseSimpleSearch ? this.searchString : null);\n }\n}\nexport function isMultilineRegexSource(searchString) {\n if (!searchString || searchString.length === 0) {\n return false;\n }\n for (let i = 0, len = searchString.length; i < len; i++) {\n const chCode = searchString.charCodeAt(i);\n if (chCode === 92 /* Backslash */) {\n // move to next char\n i++;\n if (i >= len) {\n // string ends with a \\\n break;\n }\n const nextChCode = searchString.charCodeAt(i);\n if (nextChCode === 110 /* n */ || nextChCode === 114 /* r */ || nextChCode === 87 /* W */) {\n return true;\n }\n }\n }\n return false;\n}\nexport class SearchData {\n constructor(regex, wordSeparators, simpleSearch) {\n this.regex = regex;\n this.wordSeparators = wordSeparators;\n this.simpleSearch = simpleSearch;\n }\n}\nexport function createFindMatch(range, rawMatches, captureMatches) {\n if (!captureMatches) {\n return new FindMatch(range, null);\n }\n let matches = [];\n for (let i = 0, len = rawMatches.length; i < len; i++) {\n matches[i] = rawMatches[i];\n }\n return new FindMatch(range, matches);\n}\nclass LineFeedCounter {\n constructor(text) {\n let lineFeedsOffsets = [];\n let lineFeedsOffsetsLen = 0;\n for (let i = 0, textLen = text.length; i < textLen; i++) {\n if (text.charCodeAt(i) === 10 /* LineFeed */) {\n lineFeedsOffsets[lineFeedsOffsetsLen++] = i;\n }\n }\n this._lineFeedsOffsets = lineFeedsOffsets;\n }\n findLineFeedCountBeforeOffset(offset) {\n const lineFeedsOffsets = this._lineFeedsOffsets;\n let min = 0;\n let max = lineFeedsOffsets.length - 1;\n if (max === -1) {\n // no line feeds\n return 0;\n }\n if (offset <= lineFeedsOffsets[0]) {\n // before first line feed\n return 0;\n }\n while (min < max) {\n const mid = min + ((max - min) / 2 >> 0);\n if (lineFeedsOffsets[mid] >= offset) {\n max = mid - 1;\n }\n else {\n if (lineFeedsOffsets[mid + 1] >= offset) {\n // bingo!\n min = mid;\n max = mid;\n }\n else {\n min = mid + 1;\n }\n }\n }\n return min + 1;\n }\n}\nexport class TextModelSearch {\n static findMatches(model, searchParams, searchRange, captureMatches, limitResultCount) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return [];\n }\n if (searchData.regex.multiline) {\n return this._doFindMatchesMultiline(model, searchRange, new Searcher(searchData.wordSeparators, searchData.regex), captureMatches, limitResultCount);\n }\n return this._doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount);\n }\n /**\n * Multiline search always executes on the lines concatenated with \\n.\n * We must therefore compensate for the count of \\n in case the model is CRLF\n */\n static _getMultilineMatchRange(model, deltaOffset, text, lfCounter, matchIndex, match0) {\n let startOffset;\n let lineFeedCountBeforeMatch = 0;\n if (lfCounter) {\n lineFeedCountBeforeMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex);\n startOffset = deltaOffset + matchIndex + lineFeedCountBeforeMatch /* add as many \\r as there were \\n */;\n }\n else {\n startOffset = deltaOffset + matchIndex;\n }\n let endOffset;\n if (lfCounter) {\n let lineFeedCountBeforeEndOfMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex + match0.length);\n let lineFeedCountInMatch = lineFeedCountBeforeEndOfMatch - lineFeedCountBeforeMatch;\n endOffset = startOffset + match0.length + lineFeedCountInMatch /* add as many \\r as there were \\n */;\n }\n else {\n endOffset = startOffset + match0.length;\n }\n const startPosition = model.getPositionAt(startOffset);\n const endPosition = model.getPositionAt(endOffset);\n return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n }\n static _doFindMatchesMultiline(model, searchRange, searcher, captureMatches, limitResultCount) {\n const deltaOffset = model.getOffsetAt(searchRange.getStartPosition());\n // We always execute multiline search over the lines joined with \\n\n // This makes it that \\n will match the EOL for both CRLF and LF models\n // We compensate for offset errors in `_getMultilineMatchRange`\n const text = model.getValueInRange(searchRange, 1 /* LF */);\n const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n const result = [];\n let counter = 0;\n let m;\n searcher.reset(0);\n while ((m = searcher.next(text))) {\n result[counter++] = createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n if (counter >= limitResultCount) {\n return result;\n }\n }\n return result;\n }\n static _doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount) {\n const result = [];\n let resultLen = 0;\n // Early case for a search range that starts & stops on the same line number\n if (searchRange.startLineNumber === searchRange.endLineNumber) {\n const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n // Collect results from first line\n const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n // Collect results from middle lines\n for (let lineNumber = searchRange.startLineNumber + 1; lineNumber < searchRange.endLineNumber && resultLen < limitResultCount; lineNumber++) {\n resultLen = this._findMatchesInLine(searchData, model.getLineContent(lineNumber), lineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n }\n // Collect results from last line\n if (resultLen < limitResultCount) {\n const text = model.getLineContent(searchRange.endLineNumber).substring(0, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.endLineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n }\n return result;\n }\n static _findMatchesInLine(searchData, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n const wordSeparators = searchData.wordSeparators;\n if (!captureMatches && searchData.simpleSearch) {\n const searchString = searchData.simpleSearch;\n const searchStringLen = searchString.length;\n const textLength = text.length;\n let lastMatchIndex = -searchStringLen;\n while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n }\n return resultLen;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n let m;\n // Reset regex to search from the beginning\n searcher.reset(0);\n do {\n m = searcher.next(text);\n if (m) {\n result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n static findNextMatch(model, searchParams, searchStart, captureMatches) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n if (searchData.regex.multiline) {\n return this._doFindNextMatchMultiline(model, searchStart, searcher, captureMatches);\n }\n return this._doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches);\n }\n static _doFindNextMatchMultiline(model, searchStart, searcher, captureMatches) {\n const searchTextStart = new Position(searchStart.lineNumber, 1);\n const deltaOffset = model.getOffsetAt(searchTextStart);\n const lineCount = model.getLineCount();\n // We always execute multiline search over the lines joined with \\n\n // This makes it that \\n will match the EOL for both CRLF and LF models\n // We compensate for offset errors in `_getMultilineMatchRange`\n const text = model.getValueInRange(new Range(searchTextStart.lineNumber, searchTextStart.column, lineCount, model.getLineMaxColumn(lineCount)), 1 /* LF */);\n const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n searcher.reset(searchStart.column - 1);\n let m = searcher.next(text);\n if (m) {\n return createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n }\n if (searchStart.lineNumber !== 1 || searchStart.column !== 1) {\n // Try again from the top\n return this._doFindNextMatchMultiline(model, new Position(1, 1), searcher, captureMatches);\n }\n return null;\n }\n static _doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches) {\n const lineCount = model.getLineCount();\n const startLineNumber = searchStart.lineNumber;\n // Look in first line\n const text = model.getLineContent(startLineNumber);\n const r = this._findFirstMatchInLine(searcher, text, startLineNumber, searchStart.column, captureMatches);\n if (r) {\n return r;\n }\n for (let i = 1; i <= lineCount; i++) {\n const lineIndex = (startLineNumber + i - 1) % lineCount;\n const text = model.getLineContent(lineIndex + 1);\n const r = this._findFirstMatchInLine(searcher, text, lineIndex + 1, 1, captureMatches);\n if (r) {\n return r;\n }\n }\n return null;\n }\n static _findFirstMatchInLine(searcher, text, lineNumber, fromColumn, captureMatches) {\n // Set regex to search from column\n searcher.reset(fromColumn - 1);\n const m = searcher.next(text);\n if (m) {\n return createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n }\n return null;\n }\n static findPreviousMatch(model, searchParams, searchStart, captureMatches) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n if (searchData.regex.multiline) {\n return this._doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches);\n }\n return this._doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches);\n }\n static _doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches) {\n const matches = this._doFindMatchesMultiline(model, new Range(1, 1, searchStart.lineNumber, searchStart.column), searcher, captureMatches, 10 * LIMIT_FIND_COUNT);\n if (matches.length > 0) {\n return matches[matches.length - 1];\n }\n const lineCount = model.getLineCount();\n if (searchStart.lineNumber !== lineCount || searchStart.column !== model.getLineMaxColumn(lineCount)) {\n // Try again with all content\n return this._doFindPreviousMatchMultiline(model, new Position(lineCount, model.getLineMaxColumn(lineCount)), searcher, captureMatches);\n }\n return null;\n }\n static _doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches) {\n const lineCount = model.getLineCount();\n const startLineNumber = searchStart.lineNumber;\n // Look in first line\n const text = model.getLineContent(startLineNumber).substring(0, searchStart.column - 1);\n const r = this._findLastMatchInLine(searcher, text, startLineNumber, captureMatches);\n if (r) {\n return r;\n }\n for (let i = 1; i <= lineCount; i++) {\n const lineIndex = (lineCount + startLineNumber - i - 1) % lineCount;\n const text = model.getLineContent(lineIndex + 1);\n const r = this._findLastMatchInLine(searcher, text, lineIndex + 1, captureMatches);\n if (r) {\n return r;\n }\n }\n return null;\n }\n static _findLastMatchInLine(searcher, text, lineNumber, captureMatches) {\n let bestResult = null;\n let m;\n searcher.reset(0);\n while ((m = searcher.next(text))) {\n bestResult = createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n }\n return bestResult;\n }\n}\nfunction leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n if (matchStartIndex === 0) {\n // Match starts at start of string\n return true;\n }\n const charBefore = text.charCodeAt(matchStartIndex - 1);\n if (wordSeparators.get(charBefore) !== 0 /* Regular */) {\n // The character before the match is a word separator\n return true;\n }\n if (charBefore === 13 /* CarriageReturn */ || charBefore === 10 /* LineFeed */) {\n // The character before the match is line break or carriage return.\n return true;\n }\n if (matchLength > 0) {\n const firstCharInMatch = text.charCodeAt(matchStartIndex);\n if (wordSeparators.get(firstCharInMatch) !== 0 /* Regular */) {\n // The first character inside the match is a word separator\n return true;\n }\n }\n return false;\n}\nfunction rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n if (matchStartIndex + matchLength === textLength) {\n // Match ends at end of string\n return true;\n }\n const charAfter = text.charCodeAt(matchStartIndex + matchLength);\n if (wordSeparators.get(charAfter) !== 0 /* Regular */) {\n // The character after the match is a word separator\n return true;\n }\n if (charAfter === 13 /* CarriageReturn */ || charAfter === 10 /* LineFeed */) {\n // The character after the match is line break or carriage return.\n return true;\n }\n if (matchLength > 0) {\n const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1);\n if (wordSeparators.get(lastCharInMatch) !== 0 /* Regular */) {\n // The last character in the match is a word separator\n return true;\n }\n }\n return false;\n}\nexport function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)\n && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength));\n}\nexport class Searcher {\n constructor(wordSeparators, searchRegex) {\n this._wordSeparators = wordSeparators;\n this._searchRegex = searchRegex;\n this._prevMatchStartIndex = -1;\n this._prevMatchLength = 0;\n }\n reset(lastIndex) {\n this._searchRegex.lastIndex = lastIndex;\n this._prevMatchStartIndex = -1;\n this._prevMatchLength = 0;\n }\n next(text) {\n const textLength = text.length;\n let m;\n do {\n if (this._prevMatchStartIndex + this._prevMatchLength === textLength) {\n // Reached the end of the line\n return null;\n }\n m = this._searchRegex.exec(text);\n if (!m) {\n return null;\n }\n const matchStartIndex = m.index;\n const matchLength = m[0].length;\n if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) {\n if (matchLength === 0) {\n // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here\n // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise\n if (strings.getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) {\n this._searchRegex.lastIndex += 2;\n }\n else {\n this._searchRegex.lastIndex += 1;\n }\n continue;\n }\n // Exit early if the regex matches the same range twice\n return null;\n }\n this._prevMatchStartIndex = matchStartIndex;\n this._prevMatchLength = matchLength;\n if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) {\n return m;\n }\n } while (m);\n return null;\n }\n}\n","import * as React from 'react';\nimport { PanelBase } from './Panel.base';\nimport type { IFocusTrapZoneProps } from '../../FocusTrapZone';\nimport type { ILayerProps } from '../../Layer';\nimport type { IOverlayProps } from '../../Overlay';\nimport type { IStyle, ITheme } from '../../Styling';\nimport type { IRefObject, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IButtonStyles } from '../../Button';\nimport type { IPopupProps } from '../../Popup';\n\n/**\n * {@docCategory Panel}\n */\nexport interface IPanel {\n /**\n * Forces the panel to open.\n */\n open: () => void;\n\n /**\n * Forces the panel to dismiss.\n */\n dismiss: (ev?: React.KeyboardEvent | KeyboardEvent) => void;\n}\n\n/**\n * {@docCategory Panel}\n */\nexport interface IPanelProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the IPanel interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Whether the panel is displayed.\n * If true, will cause panel to stay open even if dismissed.\n * If false, will cause panel to stay hidden.\n * If undefined, will allow the panel to control its own visibility through open/dismiss methods.\n * @defaultvalue undefined\n */\n isOpen?: boolean;\n\n /**\n * Has the close button visible.\n * @defaultvalue true\n */\n hasCloseButton?: boolean;\n\n /**\n * Whether the panel can be light dismissed.\n * @defaultvalue false\n */\n isLightDismiss?: boolean;\n\n /**\n * Whether the panel is hidden on dismiss, instead of destroyed in the DOM.\n * Protects the contents from being destroyed when the panel is dismissed.\n * @defaultvalue false\n */\n isHiddenOnDismiss?: boolean;\n\n /**\n * Whether the panel uses a modal overlay or not\n * @defaultvalue true\n */\n isBlocking?: boolean;\n\n /**\n * Determines if content should stretch to fill available space putting footer at the bottom of the page\n * @defaultvalue false\n */\n isFooterAtBottom?: boolean;\n\n /**\n * Header text for the Panel.\n * @defaultvalue \"\"\n */\n headerText?: string;\n\n /**\n * The props for header text container.\n */\n headerTextProps?: React.HTMLAttributes;\n\n /**\n * A callback function for when the Panel is opened, before the animation completes.\n */\n onOpen?: () => void;\n\n /**\n * A callback function for when the Panel is opened, after the animation completes.\n */\n onOpened?: () => void;\n\n /**\n * A callback function for when the panel is closed, before the animation completes.\n * If the panel should NOT be dismissed based on some keyboard event, then simply call ev.preventDefault() on it\n */\n onDismiss?: (ev?: React.SyntheticEvent | KeyboardEvent) => void;\n\n /**\n * A callback function which is called **after** the Panel is dismissed and the animation is complete.\n * (If you need to update the Panel's `isOpen` prop in response to a dismiss event, use `onDismiss` instead.)\n */\n onDismissed?: () => void;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by High-Order Component.\n */\n theme?: ITheme;\n\n /**\n * Additional css class to apply to the Panel\n * @defaultvalue undefined\n */\n className?: string;\n\n /**\n * Type of the panel.\n * @defaultvalue PanelType.smallFixedFar\n */\n type?: PanelType;\n\n /**\n * Custom panel width, used only when `type` is set to `PanelType.custom`.\n */\n customWidth?: string;\n\n /**\n * Aria label on close button\n */\n closeButtonAriaLabel?: string;\n\n /**\n * Optional parameter to provider the class name for header text\n */\n headerClassName?: string;\n\n /**\n * Sets the HTMLElement to focus on when exiting the FocusTrapZone.\n * @defaultvalue The `element.target` that triggered the Panel.\n */\n elementToFocusOnDismiss?: HTMLElement;\n\n /**\n * Indicates if this Panel will ignore keeping track of HTMLElement that activated the Zone.\n * @defaultvalue false\n * @deprecated Use `focusTrapZoneProps`.\n */\n ignoreExternalFocusing?: boolean;\n\n /**\n * Indicates whether Panel should force focus inside the focus trap zone.\n * If not explicitly specified, behavior aligns with FocusTrapZone's default behavior.\n * @deprecated Use `focusTrapZoneProps`.\n */\n forceFocusInsideTrap?: boolean;\n\n /**\n * Indicates the selector for first focusable item.\n * @deprecated Use `focusTrapZoneProps`.\n */\n firstFocusableSelector?: string;\n\n /**\n * Optional props to pass to the FocusTrapZone component to manage focus in the panel.\n */\n focusTrapZoneProps?: IFocusTrapZoneProps;\n\n /**\n * Optional props to pass to the Layer component hosting the panel.\n */\n layerProps?: ILayerProps;\n\n /**\n * Optional props to pass to the Overlay component that the panel uses.\n */\n overlayProps?: IOverlayProps;\n\n /**\n * Optional props to pass the Popup component that the panel uses.\n */\n popupProps?: IPopupProps;\n\n /**\n * Optional custom function to handle clicks outside the panel in lightdismiss mode\n */\n onLightDismissClick?: () => void;\n\n /**\n * Optional custom function to handle clicks outside this component\n */\n onOuterClick?: (ev?: React.MouseEvent) => void;\n\n /**\n * Optional custom renderer navigation region. Replaces the region that contains the close button.\n */\n onRenderNavigation?: IRenderFunction;\n\n /**\n * Optional custom renderer for content in the navigation region. Replaces current close button.\n */\n onRenderNavigationContent?: IRenderFunction;\n\n /**\n * Optional custom renderer for header region. Replaces current title\n */\n onRenderHeader?: IPanelHeaderRenderer;\n\n /**\n * Optional custom renderer for body region. Replaces any children passed into the component.\n */\n onRenderBody?: IRenderFunction;\n\n /**\n * Optional custom renderer for footer region. Replaces sticky footer.\n */\n onRenderFooter?: IRenderFunction;\n\n /**\n * Custom renderer for content in the sticky footer\n */\n onRenderFooterContent?: IRenderFunction;\n\n /**\n * @deprecated Not used.\n */\n componentId?: string;\n\n /**\n * Allow body scroll on content and overlay on touch devices. Changing after mounting has no effect.\n * @defaultvalue false\n */\n allowTouchBodyScroll?: boolean;\n}\n\n/**\n * Renderer function which takes an additional parameter, the ID to use for the element containing\n * the panel's title. This allows the `aria-labelledby` for the panel popup to work correctly.\n * Note that if `headerTextId` is provided, it **must** be used on an element, or screen readers\n * will be confused by the reference to a nonexistent ID.\n * {@docCategory Panel}\n */\nexport interface IPanelHeaderRenderer extends IRenderFunction {\n /**\n * @param props - Props given to the panel\n * @param defaultRender - Default header renderer. If using this renderer in code that does not\n * assign `headerTextId` to an element elsewhere, it **must** be passed to this function.\n * @param headerTextId - If provided, this **must** be used as the ID of an element containing the\n * panel's title, because the panel popup uses this ID as its aria-labelledby.\n */\n (props?: IPanelProps, defaultRender?: IPanelHeaderRenderer, headerTextId?: string | undefined): JSX.Element | null;\n}\n\n/**\n * {@docCategory Panel}\n */\nexport enum PanelType {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n smallFluid = 0,\n\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n smallFixedFar = 1,\n\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n smallFixedNear = 2,\n\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n medium = 3,\n\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n large = 4,\n\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n largeFixed = 5,\n\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n extraLarge = 6,\n\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n custom = 7,\n\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n customNear = 8,\n}\n\n/**\n * {@docCategory Panel}\n */\nexport interface IPanelStyleProps {\n /**\n * Theme provided by High-Order Component.\n */\n theme: ITheme;\n\n /**\n * Accept custom classNames\n */\n className?: string;\n\n /**\n * Is Panel open\n */\n isOpen?: boolean;\n\n /**\n * Is animation currently running\n */\n isAnimating?: boolean;\n\n /**\n * Is panel on right side\n */\n isOnRightSide?: boolean;\n\n /**\n * Is panel hidden on dismiss\n */\n isHiddenOnDismiss?: boolean;\n\n /**\n * Classname for FocusTrapZone element\n */\n focusTrapZoneClassName?: string;\n\n /**\n * Determines if content should stretch to fill available space putting footer at the bottom of the page\n */\n isFooterAtBottom?: boolean;\n\n /**\n * Based on state value setting footer to sticky or not\n */\n isFooterSticky?: boolean;\n\n /**\n * Panel has close button\n */\n hasCloseButton?: boolean;\n\n /**\n * Type of the panel.\n */\n type?: PanelType;\n\n /**\n * Optional parameter to provider the class name for header text\n */\n headerClassName?: string;\n\n /**\n * Determines where the header is rendered based on whether the user\n * has passed in a custom onRenderNavigation or onRenderNavigationContent render callback\n */\n hasCustomNavigation?: boolean;\n}\n\nexport interface IPanelSubComponentStyles {\n /**\n * Styling for close button child component.\n */\n closeButton: Partial;\n}\n\n/**\n * {@docCategory Panel}\n */\nexport interface IPanelStyles {\n /**\n * Style for the root element.\n */\n root: IStyle;\n\n /**\n * Style for the overlay element.\n */\n overlay: IStyle;\n\n /**\n * Style for the hidden element.\n */\n hiddenPanel: IStyle;\n\n /**\n * Style for the main section element.\n */\n main: IStyle;\n\n /**\n * Style for the navigation container element.\n */\n commands: IStyle;\n\n /**\n * Style for the Body and Footer container element.\n */\n contentInner: IStyle;\n\n /**\n * Style for the scrollable content area container element.\n */\n scrollableContent: IStyle;\n\n /**\n * Style for the close button container element.\n */\n navigation: IStyle;\n\n /**\n * Style for the close button IconButton element.\n * @deprecated Use `subComponentStyles.closeButton` instead.\n */\n closeButton?: IStyle;\n\n /**\n * Style for the header container div element.\n */\n header: IStyle;\n\n /**\n * Style for the header text div element.\n */\n headerText: IStyle;\n\n /**\n * Style for the body div element.\n */\n content: IStyle;\n\n /**\n * Style for the footer div element.\n */\n footer: IStyle;\n\n /**\n * Style for the inner footer div element.\n */\n footerInner: IStyle;\n\n /**\n * Styling for subcomponents.\n */\n subComponentStyles: IPanelSubComponentStyles;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport * from '../../../base/parts/quickinput/common/quickInput.js';\nexport const IQuickInputService = createDecorator('quickInputService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * Color scheme used by the OS and by color themes.\n */\nexport var ColorScheme;\n(function (ColorScheme) {\n ColorScheme[\"DARK\"] = \"dark\";\n ColorScheme[\"LIGHT\"] = \"light\";\n ColorScheme[\"HIGH_CONTRAST\"] = \"hc\";\n})(ColorScheme || (ColorScheme = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CSSIcon } from './codicons.js';\nimport { matchesFuzzy } from './filters.js';\nimport { ltrim } from './strings.js';\nexport const iconStartMarker = '$(';\nconst iconsRegex = new RegExp(`\\\\$\\\\(${CSSIcon.iconNameExpression}(?:${CSSIcon.iconModifierExpression})?\\\\)`, 'g'); // no capturing groups\nconst escapeIconsRegex = new RegExp(`(\\\\\\\\)?${iconsRegex.source}`, 'g');\nexport function escapeIcons(text) {\n return text.replace(escapeIconsRegex, (match, escaped) => escaped ? match : `\\\\${match}`);\n}\nconst markdownEscapedIconsRegex = new RegExp(`\\\\\\\\${iconsRegex.source}`, 'g');\nexport function markdownEscapeEscapedIcons(text) {\n // Need to add an extra \\ for escaping in markdown\n return text.replace(markdownEscapedIconsRegex, match => `\\\\${match}`);\n}\nconst stripIconsRegex = new RegExp(`(\\\\s)?(\\\\\\\\)?${iconsRegex.source}(\\\\s)?`, 'g');\nexport function stripIcons(text) {\n if (text.indexOf(iconStartMarker) === -1) {\n return text;\n }\n return text.replace(stripIconsRegex, (match, preWhitespace, escaped, postWhitespace) => escaped ? match : preWhitespace || postWhitespace || '');\n}\nexport function parseLabelWithIcons(text) {\n const firstIconIndex = text.indexOf(iconStartMarker);\n if (firstIconIndex === -1) {\n return { text }; // return early if the word does not include an icon\n }\n return doParseLabelWithIcons(text, firstIconIndex);\n}\nfunction doParseLabelWithIcons(text, firstIconIndex) {\n const iconOffsets = [];\n let textWithoutIcons = '';\n function appendChars(chars) {\n if (chars) {\n textWithoutIcons += chars;\n for (const _ of chars) {\n iconOffsets.push(iconsOffset); // make sure to fill in icon offsets\n }\n }\n }\n let currentIconStart = -1;\n let currentIconValue = '';\n let iconsOffset = 0;\n let char;\n let nextChar;\n let offset = firstIconIndex;\n const length = text.length;\n // Append all characters until the first icon\n appendChars(text.substr(0, firstIconIndex));\n // example: $(file-symlink-file) my cool $(other-icon) entry\n while (offset < length) {\n char = text[offset];\n nextChar = text[offset + 1];\n // beginning of icon: some value $( <--\n if (char === iconStartMarker[0] && nextChar === iconStartMarker[1]) {\n currentIconStart = offset;\n // if we had a previous potential icon value without\n // the closing ')', it was actually not an icon and\n // so we have to add it to the actual value\n appendChars(currentIconValue);\n currentIconValue = iconStartMarker;\n offset++; // jump over '('\n }\n // end of icon: some value $(some-icon) <--\n else if (char === ')' && currentIconStart !== -1) {\n const currentIconLength = offset - currentIconStart + 1; // +1 to include the closing ')'\n iconsOffset += currentIconLength;\n currentIconStart = -1;\n currentIconValue = '';\n }\n // within icon\n else if (currentIconStart !== -1) {\n // Make sure this is a real icon name\n if (/^[a-z0-9\\-]$/i.test(char)) {\n currentIconValue += char;\n }\n else {\n // This is not a real icon, treat it as text\n appendChars(currentIconValue);\n currentIconStart = -1;\n currentIconValue = '';\n }\n }\n // any value outside of icon\n else {\n appendChars(char);\n }\n offset++;\n }\n // if we had a previous potential icon value without\n // the closing ')', it was actually not an icon and\n // so we have to add it to the actual value\n appendChars(currentIconValue);\n return { text: textWithoutIcons, iconOffsets };\n}\nexport function matchesFuzzyIconAware(query, target, enableSeparateSubstringMatching = false) {\n const { text, iconOffsets } = target;\n // Return early if there are no icon markers in the word to match against\n if (!iconOffsets || iconOffsets.length === 0) {\n return matchesFuzzy(query, text, enableSeparateSubstringMatching);\n }\n // Trim the word to match against because it could have leading\n // whitespace now if the word started with an icon\n const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text, ' ');\n const leadingWhitespaceOffset = text.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n // match on value without icon\n const matches = matchesFuzzy(query, wordToMatchAgainstWithoutIconsTrimmed, enableSeparateSubstringMatching);\n // Map matches back to offsets with icon and trimming\n if (matches) {\n for (const match of matches) {\n const iconOffset = iconOffsets[match.start + leadingWhitespaceOffset] /* icon offsets at index */ + leadingWhitespaceOffset /* overall leading whitespace offset */;\n match.start += iconOffset;\n match.end += iconOffset;\n }\n }\n return matches;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as editorCommon from '../common/editorCommon.js';\n/**\n *@internal\n */\nexport function isCodeEditor(thing) {\n if (thing && typeof thing.getEditorType === 'function') {\n return thing.getEditorType() === editorCommon.EditorType.ICodeEditor;\n }\n else {\n return false;\n }\n}\n/**\n *@internal\n */\nexport function isDiffEditor(thing) {\n if (thing && typeof thing.getEditorType === 'function') {\n return thing.getEditorType() === editorCommon.EditorType.IDiffEditor;\n }\n else {\n return false;\n }\n}\n/**\n *@internal\n */\nexport function getCodeEditor(thing) {\n if (isCodeEditor(thing)) {\n return thing;\n }\n if (isDiffEditor(thing)) {\n return thing.getModifiedEditor();\n }\n return null;\n}\n","/** Clamp a value to ensure it falls within a given range. */\nexport function clamp(value: number, max: number, min = 0): number {\n return value < min ? min : value > max ? max : value;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { EditorOptions } from './common/config/editorOptions.js';\nimport { createMonacoBaseAPI } from './common/standalone/standaloneBase.js';\nimport { createMonacoEditorAPI } from './standalone/browser/standaloneEditor.js';\nimport { createMonacoLanguagesAPI } from './standalone/browser/standaloneLanguages.js';\nimport { globals } from '../base/common/platform.js';\nimport { FormattingConflicts } from './contrib/format/format.js';\n// Set defaults for standalone editor\nEditorOptions.wrappingIndent.defaultValue = 0 /* None */;\nEditorOptions.glyphMargin.defaultValue = false;\nEditorOptions.autoIndent.defaultValue = 3 /* Advanced */;\nEditorOptions.overviewRulerLanes.defaultValue = 2;\n// We need to register a formatter selector which simply picks the first available formatter.\n// See https://github.com/microsoft/monaco-editor/issues/2327\nFormattingConflicts.setFormatterSelector((formatter, document, mode) => Promise.resolve(formatter[0]));\nconst api = createMonacoBaseAPI();\napi.editor = createMonacoEditorAPI();\napi.languages = createMonacoLanguagesAPI();\nexport const CancellationTokenSource = api.CancellationTokenSource;\nexport const Emitter = api.Emitter;\nexport const KeyCode = api.KeyCode;\nexport const KeyMod = api.KeyMod;\nexport const Position = api.Position;\nexport const Range = api.Range;\nexport const Selection = api.Selection;\nexport const SelectionDirection = api.SelectionDirection;\nexport const MarkerSeverity = api.MarkerSeverity;\nexport const MarkerTag = api.MarkerTag;\nexport const Uri = api.Uri;\nexport const Token = api.Token;\nexport const editor = api.editor;\nexport const languages = api.languages;\nif (((_a = globals.MonacoEnvironment) === null || _a === void 0 ? void 0 : _a.globalAPI) || (typeof define === 'function' && define.amd)) {\n self.monaco = api;\n}\nif (typeof self.require !== 'undefined' && typeof self.require.config === 'function') {\n self.require.config({\n ignoreDuplicateModules: [\n 'vscode-languageserver-types',\n 'vscode-languageserver-types/main',\n 'vscode-languageserver-textdocument',\n 'vscode-languageserver-textdocument/main',\n 'vscode-nls',\n 'vscode-nls/vscode-nls',\n 'jsonc-parser',\n 'jsonc-parser/main',\n 'vscode-uri',\n 'vscode-uri/index',\n 'vs/basic-languages/typescript/typescript'\n ]\n });\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createScopedLineTokens(context, offset) {\n let tokenCount = context.getCount();\n let tokenIndex = context.findTokenIndexAtOffset(offset);\n let desiredLanguageId = context.getLanguageId(tokenIndex);\n let lastTokenIndex = tokenIndex;\n while (lastTokenIndex + 1 < tokenCount && context.getLanguageId(lastTokenIndex + 1) === desiredLanguageId) {\n lastTokenIndex++;\n }\n let firstTokenIndex = tokenIndex;\n while (firstTokenIndex > 0 && context.getLanguageId(firstTokenIndex - 1) === desiredLanguageId) {\n firstTokenIndex--;\n }\n return new ScopedLineTokens(context, desiredLanguageId, firstTokenIndex, lastTokenIndex + 1, context.getStartOffset(firstTokenIndex), context.getEndOffset(lastTokenIndex));\n}\nexport class ScopedLineTokens {\n constructor(actual, languageId, firstTokenIndex, lastTokenIndex, firstCharOffset, lastCharOffset) {\n this._scopedLineTokensBrand = undefined;\n this._actual = actual;\n this.languageId = languageId;\n this._firstTokenIndex = firstTokenIndex;\n this._lastTokenIndex = lastTokenIndex;\n this.firstCharOffset = firstCharOffset;\n this._lastCharOffset = lastCharOffset;\n }\n getLineContent() {\n const actualLineContent = this._actual.getLineContent();\n return actualLineContent.substring(this.firstCharOffset, this._lastCharOffset);\n }\n getActualLineContentBefore(offset) {\n const actualLineContent = this._actual.getLineContent();\n return actualLineContent.substring(0, this.firstCharOffset + offset);\n }\n getTokenCount() {\n return this._lastTokenIndex - this._firstTokenIndex;\n }\n findTokenIndexAtOffset(offset) {\n return this._actual.findTokenIndexAtOffset(offset + this.firstCharOffset) - this._firstTokenIndex;\n }\n getStandardTokenType(tokenIndex) {\n return this._actual.getStandardTokenType(tokenIndex + this._firstTokenIndex);\n }\n}\nexport function ignoreBracketsInToken(standardTokenType) {\n return (standardTokenType & 7 /* value */) !== 0;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function once(fn) {\n const _this = this;\n let didCall = false;\n let result;\n return function () {\n if (didCall) {\n return result;\n }\n didCall = true;\n result = fn.apply(_this, arguments);\n return result;\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport * as DOM from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ActionViewItem, BaseActionViewItem } from './actionViewItems.js';\nimport { ActionRunner } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable, dispose } from '../../../common/lifecycle.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nexport class ActionBar extends Disposable {\n constructor(container, options = {}) {\n var _a, _b, _c, _d, _e, _f;\n super();\n // Trigger Key Tracking\n this.triggerKeyDown = false;\n this.focusable = true;\n this._onDidBlur = this._register(new Emitter());\n this.onDidBlur = this._onDidBlur.event;\n this._onDidCancel = this._register(new Emitter({ onFirstListenerAdd: () => this.cancelHasListener = true }));\n this.onDidCancel = this._onDidCancel.event;\n this.cancelHasListener = false;\n this._onDidRun = this._register(new Emitter());\n this.onDidRun = this._onDidRun.event;\n this._onBeforeRun = this._register(new Emitter());\n this.onBeforeRun = this._onBeforeRun.event;\n this.options = options;\n this._context = (_a = options.context) !== null && _a !== void 0 ? _a : null;\n this._orientation = (_b = this.options.orientation) !== null && _b !== void 0 ? _b : 0 /* HORIZONTAL */;\n this._triggerKeys = {\n keyDown: (_d = (_c = this.options.triggerKeys) === null || _c === void 0 ? void 0 : _c.keyDown) !== null && _d !== void 0 ? _d : false,\n keys: (_f = (_e = this.options.triggerKeys) === null || _e === void 0 ? void 0 : _e.keys) !== null && _f !== void 0 ? _f : [3 /* Enter */, 10 /* Space */]\n };\n if (this.options.actionRunner) {\n this._actionRunner = this.options.actionRunner;\n }\n else {\n this._actionRunner = new ActionRunner();\n this._register(this._actionRunner);\n }\n this._register(this._actionRunner.onDidRun(e => this._onDidRun.fire(e)));\n this._register(this._actionRunner.onBeforeRun(e => this._onBeforeRun.fire(e)));\n this._actionIds = [];\n this.viewItems = [];\n this.focusedItem = undefined;\n this.domNode = document.createElement('div');\n this.domNode.className = 'monaco-action-bar';\n if (options.animated !== false) {\n this.domNode.classList.add('animated');\n }\n let previousKeys;\n let nextKeys;\n switch (this._orientation) {\n case 0 /* HORIZONTAL */:\n previousKeys = [15 /* LeftArrow */];\n nextKeys = [17 /* RightArrow */];\n break;\n case 1 /* VERTICAL */:\n previousKeys = [16 /* UpArrow */];\n nextKeys = [18 /* DownArrow */];\n this.domNode.className += ' vertical';\n break;\n }\n this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_DOWN, e => {\n const event = new StandardKeyboardEvent(e);\n let eventHandled = true;\n const focusedItem = typeof this.focusedItem === 'number' ? this.viewItems[this.focusedItem] : undefined;\n if (previousKeys && (event.equals(previousKeys[0]) || event.equals(previousKeys[1]))) {\n eventHandled = this.focusPrevious();\n }\n else if (nextKeys && (event.equals(nextKeys[0]) || event.equals(nextKeys[1]))) {\n eventHandled = this.focusNext();\n }\n else if (event.equals(9 /* Escape */) && this.cancelHasListener) {\n this._onDidCancel.fire();\n }\n else if (event.equals(14 /* Home */)) {\n eventHandled = this.focusFirst();\n }\n else if (event.equals(13 /* End */)) {\n eventHandled = this.focusLast();\n }\n else if (event.equals(2 /* Tab */) && focusedItem instanceof BaseActionViewItem && focusedItem.trapsArrowNavigation) {\n eventHandled = this.focusNext();\n }\n else if (this.isTriggerKeyEvent(event)) {\n // Staying out of the else branch even if not triggered\n if (this._triggerKeys.keyDown) {\n this.doTrigger(event);\n }\n else {\n this.triggerKeyDown = true;\n }\n }\n else {\n eventHandled = false;\n }\n if (eventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }));\n this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_UP, e => {\n const event = new StandardKeyboardEvent(e);\n // Run action on Enter/Space\n if (this.isTriggerKeyEvent(event)) {\n if (!this._triggerKeys.keyDown && this.triggerKeyDown) {\n this.triggerKeyDown = false;\n this.doTrigger(event);\n }\n event.preventDefault();\n event.stopPropagation();\n }\n // Recompute focused item\n else if (event.equals(2 /* Tab */) || event.equals(1024 /* Shift */ | 2 /* Tab */)) {\n this.updateFocusedItem();\n }\n }));\n this.focusTracker = this._register(DOM.trackFocus(this.domNode));\n this._register(this.focusTracker.onDidBlur(() => {\n if (DOM.getActiveElement() === this.domNode || !DOM.isAncestor(DOM.getActiveElement(), this.domNode)) {\n this._onDidBlur.fire();\n this.focusedItem = undefined;\n this.triggerKeyDown = false;\n }\n }));\n this._register(this.focusTracker.onDidFocus(() => this.updateFocusedItem()));\n this.actionsList = document.createElement('ul');\n this.actionsList.className = 'actions-container';\n this.actionsList.setAttribute('role', 'toolbar');\n if (this.options.ariaLabel) {\n this.actionsList.setAttribute('aria-label', this.options.ariaLabel);\n }\n this.domNode.appendChild(this.actionsList);\n container.appendChild(this.domNode);\n }\n isTriggerKeyEvent(event) {\n let ret = false;\n this._triggerKeys.keys.forEach(keyCode => {\n ret = ret || event.equals(keyCode);\n });\n return ret;\n }\n updateFocusedItem() {\n for (let i = 0; i < this.actionsList.children.length; i++) {\n const elem = this.actionsList.children[i];\n if (DOM.isAncestor(DOM.getActiveElement(), elem)) {\n this.focusedItem = i;\n break;\n }\n }\n }\n get context() {\n return this._context;\n }\n set context(context) {\n this._context = context;\n this.viewItems.forEach(i => i.setActionContext(context));\n }\n get actionRunner() {\n return this._actionRunner;\n }\n set actionRunner(actionRunner) {\n if (actionRunner) {\n this._actionRunner = actionRunner;\n this.viewItems.forEach(item => item.actionRunner = actionRunner);\n }\n }\n getContainer() {\n return this.domNode;\n }\n push(arg, options = {}) {\n const actions = Array.isArray(arg) ? arg : [arg];\n let index = types.isNumber(options.index) ? options.index : null;\n actions.forEach((action) => {\n const actionViewItemElement = document.createElement('li');\n actionViewItemElement.className = 'action-item';\n actionViewItemElement.setAttribute('role', 'presentation');\n // Prevent native context menu on actions\n if (!this.options.allowContextMenu) {\n this._register(DOM.addDisposableListener(actionViewItemElement, DOM.EventType.CONTEXT_MENU, (e) => {\n DOM.EventHelper.stop(e, true);\n }));\n }\n let item;\n if (this.options.actionViewItemProvider) {\n item = this.options.actionViewItemProvider(action);\n }\n if (!item) {\n item = new ActionViewItem(this.context, action, options);\n }\n item.actionRunner = this._actionRunner;\n item.setActionContext(this.context);\n item.render(actionViewItemElement);\n if (this.focusable && item instanceof BaseActionViewItem && this.viewItems.length === 0) {\n // We need to allow for the first enabled item to be focused on using tab navigation #106441\n item.setFocusable(true);\n }\n if (index === null || index < 0 || index >= this.actionsList.children.length) {\n this.actionsList.appendChild(actionViewItemElement);\n this.viewItems.push(item);\n this._actionIds.push(action.id);\n }\n else {\n this.actionsList.insertBefore(actionViewItemElement, this.actionsList.children[index]);\n this.viewItems.splice(index, 0, item);\n this._actionIds.splice(index, 0, action.id);\n index++;\n }\n });\n if (typeof this.focusedItem === 'number') {\n // After a clear actions might be re-added to simply toggle some actions. We should preserve focus #97128\n this.focus(this.focusedItem);\n }\n }\n clear() {\n dispose(this.viewItems);\n this.viewItems = [];\n this._actionIds = [];\n DOM.clearNode(this.actionsList);\n }\n length() {\n return this.viewItems.length;\n }\n focus(arg) {\n let selectFirst = false;\n let index = undefined;\n if (arg === undefined) {\n selectFirst = true;\n }\n else if (typeof arg === 'number') {\n index = arg;\n }\n else if (typeof arg === 'boolean') {\n selectFirst = arg;\n }\n if (selectFirst && typeof this.focusedItem === 'undefined') {\n const firstEnabled = this.viewItems.findIndex(item => item.isEnabled());\n // Focus the first enabled item\n this.focusedItem = firstEnabled === -1 ? undefined : firstEnabled;\n this.updateFocus();\n }\n else {\n if (index !== undefined) {\n this.focusedItem = index;\n }\n this.updateFocus();\n }\n }\n focusFirst() {\n this.focusedItem = this.length() > 1 ? 1 : 0;\n return this.focusPrevious();\n }\n focusLast() {\n this.focusedItem = this.length() < 2 ? 0 : this.length() - 2;\n return this.focusNext();\n }\n focusNext() {\n if (typeof this.focusedItem === 'undefined') {\n this.focusedItem = this.viewItems.length - 1;\n }\n else if (this.viewItems.length <= 1) {\n return false;\n }\n const startIndex = this.focusedItem;\n let item;\n do {\n if (this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) {\n this.focusedItem = startIndex;\n return false;\n }\n this.focusedItem = (this.focusedItem + 1) % this.viewItems.length;\n item = this.viewItems[this.focusedItem];\n } while (this.focusedItem !== startIndex && this.options.focusOnlyEnabledItems && !item.isEnabled());\n this.updateFocus();\n return true;\n }\n focusPrevious() {\n if (typeof this.focusedItem === 'undefined') {\n this.focusedItem = 0;\n }\n else if (this.viewItems.length <= 1) {\n return false;\n }\n const startIndex = this.focusedItem;\n let item;\n do {\n this.focusedItem = this.focusedItem - 1;\n if (this.focusedItem < 0) {\n if (this.options.preventLoopNavigation) {\n this.focusedItem = startIndex;\n return false;\n }\n this.focusedItem = this.viewItems.length - 1;\n }\n item = this.viewItems[this.focusedItem];\n } while (this.focusedItem !== startIndex && this.options.focusOnlyEnabledItems && !item.isEnabled());\n this.updateFocus(true);\n return true;\n }\n updateFocus(fromRight, preventScroll) {\n if (typeof this.focusedItem === 'undefined') {\n this.actionsList.focus({ preventScroll });\n }\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const actionViewItem = item;\n if (i === this.focusedItem) {\n let focusItem = true;\n if (!types.isFunction(actionViewItem.focus)) {\n focusItem = false;\n }\n if (this.options.focusOnlyEnabledItems && types.isFunction(item.isEnabled) && !item.isEnabled()) {\n focusItem = false;\n }\n if (focusItem) {\n actionViewItem.focus(fromRight);\n }\n else {\n this.actionsList.focus({ preventScroll });\n }\n }\n else {\n if (types.isFunction(actionViewItem.blur)) {\n actionViewItem.blur();\n }\n }\n }\n }\n doTrigger(event) {\n if (typeof this.focusedItem === 'undefined') {\n return; //nothing to focus\n }\n // trigger action\n const actionViewItem = this.viewItems[this.focusedItem];\n if (actionViewItem instanceof BaseActionViewItem) {\n const context = (actionViewItem._context === null || actionViewItem._context === undefined) ? event : actionViewItem._context;\n this.run(actionViewItem._action, context);\n }\n }\n run(action, context) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._actionRunner.run(action, context);\n });\n }\n dispose() {\n dispose(this.viewItems);\n this.viewItems = [];\n this._actionIds = [];\n this.getContainer().remove();\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { parse } from './glob.js';\nimport { Schemas } from './network.js';\nimport { basename, posix } from './path.js';\nimport { DataUri } from './resources.js';\nimport { startsWithUTF8BOM } from './strings.js';\nexport var Mimes;\n(function (Mimes) {\n Mimes.text = 'text/plain';\n Mimes.binary = 'application/octet-stream';\n Mimes.unknown = 'application/unknown';\n Mimes.markdown = 'text/markdown';\n Mimes.latex = 'text/latex';\n})(Mimes || (Mimes = {}));\nlet registeredAssociations = [];\nlet nonUserRegisteredAssociations = [];\nlet userRegisteredAssociations = [];\n/**\n * Associate a text mime to the registry.\n */\nexport function registerTextMime(association, warnOnOverwrite = false) {\n // Register\n const associationItem = toTextMimeAssociationItem(association);\n registeredAssociations.push(associationItem);\n if (!associationItem.userConfigured) {\n nonUserRegisteredAssociations.push(associationItem);\n }\n else {\n userRegisteredAssociations.push(associationItem);\n }\n // Check for conflicts unless this is a user configured association\n if (warnOnOverwrite && !associationItem.userConfigured) {\n registeredAssociations.forEach(a => {\n if (a.mime === associationItem.mime || a.userConfigured) {\n return; // same mime or userConfigured is ok\n }\n if (associationItem.extension && a.extension === associationItem.extension) {\n console.warn(`Overwriting extension <<${associationItem.extension}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.filename && a.filename === associationItem.filename) {\n console.warn(`Overwriting filename <<${associationItem.filename}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.filepattern && a.filepattern === associationItem.filepattern) {\n console.warn(`Overwriting filepattern <<${associationItem.filepattern}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.firstline && a.firstline === associationItem.firstline) {\n console.warn(`Overwriting firstline <<${associationItem.firstline}>> to now point to mime <<${associationItem.mime}>>`);\n }\n });\n }\n}\nfunction toTextMimeAssociationItem(association) {\n return {\n id: association.id,\n mime: association.mime,\n filename: association.filename,\n extension: association.extension,\n filepattern: association.filepattern,\n firstline: association.firstline,\n userConfigured: association.userConfigured,\n filenameLowercase: association.filename ? association.filename.toLowerCase() : undefined,\n extensionLowercase: association.extension ? association.extension.toLowerCase() : undefined,\n filepatternLowercase: association.filepattern ? parse(association.filepattern.toLowerCase()) : undefined,\n filepatternOnPath: association.filepattern ? association.filepattern.indexOf(posix.sep) >= 0 : false\n };\n}\n/**\n * Clear text mimes from the registry.\n */\nexport function clearTextMimes(onlyUserConfigured) {\n if (!onlyUserConfigured) {\n registeredAssociations = [];\n nonUserRegisteredAssociations = [];\n userRegisteredAssociations = [];\n }\n else {\n registeredAssociations = registeredAssociations.filter(a => !a.userConfigured);\n userRegisteredAssociations = [];\n }\n}\n/**\n * Given a file, return the best matching mime type for it\n */\nexport function guessMimeTypes(resource, firstLine) {\n let path;\n if (resource) {\n switch (resource.scheme) {\n case Schemas.file:\n path = resource.fsPath;\n break;\n case Schemas.data:\n const metadata = DataUri.parseMetaData(resource);\n path = metadata.get(DataUri.META_DATA_LABEL);\n break;\n default:\n path = resource.path;\n }\n }\n if (!path) {\n return [Mimes.unknown];\n }\n path = path.toLowerCase();\n const filename = basename(path);\n // 1.) User configured mappings have highest priority\n const configuredMime = guessMimeTypeByPath(path, filename, userRegisteredAssociations);\n if (configuredMime) {\n return [configuredMime, Mimes.text];\n }\n // 2.) Registered mappings have middle priority\n const registeredMime = guessMimeTypeByPath(path, filename, nonUserRegisteredAssociations);\n if (registeredMime) {\n return [registeredMime, Mimes.text];\n }\n // 3.) Firstline has lowest priority\n if (firstLine) {\n const firstlineMime = guessMimeTypeByFirstline(firstLine);\n if (firstlineMime) {\n return [firstlineMime, Mimes.text];\n }\n }\n return [Mimes.unknown];\n}\nfunction guessMimeTypeByPath(path, filename, associations) {\n var _a;\n let filenameMatch = null;\n let patternMatch = null;\n let extensionMatch = null;\n // We want to prioritize associations based on the order they are registered so that the last registered\n // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n for (let i = associations.length - 1; i >= 0; i--) {\n const association = associations[i];\n // First exact name match\n if (filename === association.filenameLowercase) {\n filenameMatch = association;\n break; // take it!\n }\n // Longest pattern match\n if (association.filepattern) {\n if (!patternMatch || association.filepattern.length > patternMatch.filepattern.length) {\n const target = association.filepatternOnPath ? path : filename; // match on full path if pattern contains path separator\n if ((_a = association.filepatternLowercase) === null || _a === void 0 ? void 0 : _a.call(association, target)) {\n patternMatch = association;\n }\n }\n }\n // Longest extension match\n if (association.extension) {\n if (!extensionMatch || association.extension.length > extensionMatch.extension.length) {\n if (filename.endsWith(association.extensionLowercase)) {\n extensionMatch = association;\n }\n }\n }\n }\n // 1.) Exact name match has second highest priority\n if (filenameMatch) {\n return filenameMatch.mime;\n }\n // 2.) Match on pattern\n if (patternMatch) {\n return patternMatch.mime;\n }\n // 3.) Match on extension comes next\n if (extensionMatch) {\n return extensionMatch.mime;\n }\n return null;\n}\nfunction guessMimeTypeByFirstline(firstLine) {\n if (startsWithUTF8BOM(firstLine)) {\n firstLine = firstLine.substr(1);\n }\n if (firstLine.length > 0) {\n // We want to prioritize associations based on the order they are registered so that the last registered\n // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n for (let i = registeredAssociations.length - 1; i >= 0; i--) {\n const association = registeredAssociations[i];\n if (!association.firstline) {\n continue;\n }\n const matches = firstLine.match(association.firstline);\n if (matches && matches.length > 0) {\n return association.mime;\n }\n }\n }\n return null;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isFirefox } from '../../browser.js';\nimport { DataTransfers } from '../../dnd.js';\nimport { $, addDisposableListener, append, EventHelper, EventType } from '../../dom.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { Action, ActionRunner, Separator } from '../../../common/actions.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nimport * as nls from '../../../../nls.js';\nexport class BaseActionViewItem extends Disposable {\n constructor(context, action, options = {}) {\n super();\n this.options = options;\n this._context = context || this;\n this._action = action;\n if (action instanceof Action) {\n this._register(action.onDidChange(event => {\n if (!this.element) {\n // we have not been rendered yet, so there\n // is no point in updating the UI\n return;\n }\n this.handleActionChangeEvent(event);\n }));\n }\n }\n handleActionChangeEvent(event) {\n if (event.enabled !== undefined) {\n this.updateEnabled();\n }\n if (event.checked !== undefined) {\n this.updateChecked();\n }\n if (event.class !== undefined) {\n this.updateClass();\n }\n if (event.label !== undefined) {\n this.updateLabel();\n this.updateTooltip();\n }\n if (event.tooltip !== undefined) {\n this.updateTooltip();\n }\n }\n get actionRunner() {\n if (!this._actionRunner) {\n this._actionRunner = this._register(new ActionRunner());\n }\n return this._actionRunner;\n }\n set actionRunner(actionRunner) {\n this._actionRunner = actionRunner;\n }\n getAction() {\n return this._action;\n }\n isEnabled() {\n return this._action.enabled;\n }\n setActionContext(newContext) {\n this._context = newContext;\n }\n render(container) {\n const element = this.element = container;\n this._register(Gesture.addTarget(container));\n const enableDragging = this.options && this.options.draggable;\n if (enableDragging) {\n container.draggable = true;\n if (isFirefox) {\n // Firefox: requires to set a text data transfer to get going\n this._register(addDisposableListener(container, EventType.DRAG_START, e => { var _a; return (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData(DataTransfers.TEXT, this._action.label); }));\n }\n }\n this._register(addDisposableListener(element, TouchEventType.Tap, e => this.onClick(e, true))); // Preserve focus on tap #125470\n this._register(addDisposableListener(element, EventType.MOUSE_DOWN, e => {\n if (!enableDragging) {\n EventHelper.stop(e, true); // do not run when dragging is on because that would disable it\n }\n if (this._action.enabled && e.button === 0) {\n element.classList.add('active');\n }\n }));\n if (platform.isMacintosh) {\n // macOS: allow to trigger the button when holding Ctrl+key and pressing the\n // main mouse button. This is for scenarios where e.g. some interaction forces\n // the Ctrl+key to be pressed and hold but the user still wants to interact\n // with the actions (for example quick access in quick navigation mode).\n this._register(addDisposableListener(element, EventType.CONTEXT_MENU, e => {\n if (e.button === 0 && e.ctrlKey === true) {\n this.onClick(e);\n }\n }));\n }\n this._register(addDisposableListener(element, EventType.CLICK, e => {\n EventHelper.stop(e, true);\n // menus do not use the click event\n if (!(this.options && this.options.isMenu)) {\n this.onClick(e);\n }\n }));\n this._register(addDisposableListener(element, EventType.DBLCLICK, e => {\n EventHelper.stop(e, true);\n }));\n [EventType.MOUSE_UP, EventType.MOUSE_OUT].forEach(event => {\n this._register(addDisposableListener(element, event, e => {\n EventHelper.stop(e);\n element.classList.remove('active');\n }));\n });\n }\n onClick(event, preserveFocus = false) {\n var _a;\n EventHelper.stop(event, true);\n const context = types.isUndefinedOrNull(this._context) ? ((_a = this.options) === null || _a === void 0 ? void 0 : _a.useEventAsContext) ? event : { preserveFocus } : this._context;\n this.actionRunner.run(this._action, context);\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.element) {\n this.element.tabIndex = 0;\n this.element.focus();\n this.element.classList.add('focused');\n }\n }\n blur() {\n if (this.element) {\n this.element.blur();\n this.element.tabIndex = -1;\n this.element.classList.remove('focused');\n }\n }\n setFocusable(focusable) {\n if (this.element) {\n this.element.tabIndex = focusable ? 0 : -1;\n }\n }\n get trapsArrowNavigation() {\n return false;\n }\n updateEnabled() {\n // implement in subclass\n }\n updateLabel() {\n // implement in subclass\n }\n updateTooltip() {\n // implement in subclass\n }\n updateClass() {\n // implement in subclass\n }\n updateChecked() {\n // implement in subclass\n }\n dispose() {\n if (this.element) {\n this.element.remove();\n this.element = undefined;\n }\n super.dispose();\n }\n}\nexport class ActionViewItem extends BaseActionViewItem {\n constructor(context, action, options = {}) {\n super(context, action, options);\n this.options = options;\n this.options.icon = options.icon !== undefined ? options.icon : false;\n this.options.label = options.label !== undefined ? options.label : true;\n this.cssClass = '';\n }\n render(container) {\n super.render(container);\n if (this.element) {\n this.label = append(this.element, $('a.action-label'));\n }\n if (this.label) {\n if (this._action.id === Separator.ID) {\n this.label.setAttribute('role', 'presentation'); // A separator is a presentation item\n }\n else {\n if (this.options.isMenu) {\n this.label.setAttribute('role', 'menuitem');\n }\n else {\n this.label.setAttribute('role', 'button');\n }\n }\n }\n if (this.options.label && this.options.keybinding && this.element) {\n append(this.element, $('span.keybinding')).textContent = this.options.keybinding;\n }\n this.updateClass();\n this.updateLabel();\n this.updateTooltip();\n this.updateEnabled();\n this.updateChecked();\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.label) {\n this.label.tabIndex = 0;\n this.label.focus();\n }\n }\n blur() {\n if (this.label) {\n this.label.tabIndex = -1;\n }\n }\n setFocusable(focusable) {\n if (this.label) {\n this.label.tabIndex = focusable ? 0 : -1;\n }\n }\n updateLabel() {\n if (this.options.label && this.label) {\n this.label.textContent = this.getAction().label;\n }\n }\n updateTooltip() {\n let title = null;\n if (this.getAction().tooltip) {\n title = this.getAction().tooltip;\n }\n else if (!this.options.label && this.getAction().label && this.options.icon) {\n title = this.getAction().label;\n if (this.options.keybinding) {\n title = nls.localize({ key: 'titleLabel', comment: ['action title', 'action keybinding'] }, \"{0} ({1})\", title, this.options.keybinding);\n }\n }\n if (title && this.label) {\n this.label.title = title;\n }\n }\n updateClass() {\n if (this.cssClass && this.label) {\n this.label.classList.remove(...this.cssClass.split(' '));\n }\n if (this.options.icon) {\n this.cssClass = this.getAction().class;\n if (this.label) {\n this.label.classList.add('codicon');\n if (this.cssClass) {\n this.label.classList.add(...this.cssClass.split(' '));\n }\n }\n this.updateEnabled();\n }\n else {\n if (this.label) {\n this.label.classList.remove('codicon');\n }\n }\n }\n updateEnabled() {\n if (this.getAction().enabled) {\n if (this.label) {\n this.label.removeAttribute('aria-disabled');\n this.label.classList.remove('disabled');\n }\n if (this.element) {\n this.element.classList.remove('disabled');\n }\n }\n else {\n if (this.label) {\n this.label.setAttribute('aria-disabled', 'true');\n this.label.classList.add('disabled');\n }\n if (this.element) {\n this.element.classList.add('disabled');\n }\n }\n }\n updateChecked() {\n if (this.label) {\n if (this.getAction().checked) {\n this.label.classList.add('checked');\n }\n else {\n this.label.classList.remove('checked');\n }\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { $, append, createStyleSheet, EventHelper, getElementsByTagName } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { EventType, Gesture } from '../../touch.js';\nimport { Delayer } from '../../../common/async.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './sash.css';\nlet DEBUG = false;\nexport var OrthogonalEdge;\n(function (OrthogonalEdge) {\n OrthogonalEdge[\"North\"] = \"north\";\n OrthogonalEdge[\"South\"] = \"south\";\n OrthogonalEdge[\"East\"] = \"east\";\n OrthogonalEdge[\"West\"] = \"west\";\n})(OrthogonalEdge || (OrthogonalEdge = {}));\nlet globalSize = 4;\nconst onDidChangeGlobalSize = new Emitter();\nlet globalHoverDelay = 300;\nconst onDidChangeHoverDelay = new Emitter();\nclass MouseEventFactory {\n constructor() {\n this.disposables = new DisposableStore();\n }\n get onPointerMove() {\n return this.disposables.add(new DomEmitter(window, 'mousemove')).event;\n }\n get onPointerUp() {\n return this.disposables.add(new DomEmitter(window, 'mouseup')).event;\n }\n dispose() {\n this.disposables.dispose();\n }\n}\n__decorate([\n memoize\n], MouseEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n memoize\n], MouseEventFactory.prototype, \"onPointerUp\", null);\nclass GestureEventFactory {\n constructor(el) {\n this.el = el;\n this.disposables = new DisposableStore();\n }\n get onPointerMove() {\n return this.disposables.add(new DomEmitter(this.el, EventType.Change)).event;\n }\n get onPointerUp() {\n return this.disposables.add(new DomEmitter(this.el, EventType.End)).event;\n }\n dispose() {\n this.disposables.dispose();\n }\n}\n__decorate([\n memoize\n], GestureEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n memoize\n], GestureEventFactory.prototype, \"onPointerUp\", null);\nclass OrthogonalPointerEventFactory {\n constructor(factory) {\n this.factory = factory;\n }\n get onPointerMove() {\n return this.factory.onPointerMove;\n }\n get onPointerUp() {\n return this.factory.onPointerUp;\n }\n dispose() {\n // noop\n }\n}\n__decorate([\n memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerMove\", null);\n__decorate([\n memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerUp\", null);\nexport class Sash extends Disposable {\n constructor(container, layoutProvider, options) {\n super();\n this.hoverDelay = globalHoverDelay;\n this.hoverDelayer = this._register(new Delayer(this.hoverDelay));\n this._state = 3 /* Enabled */;\n this._onDidEnablementChange = this._register(new Emitter());\n this.onDidEnablementChange = this._onDidEnablementChange.event;\n this._onDidStart = this._register(new Emitter());\n this.onDidStart = this._onDidStart.event;\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._onDidReset = this._register(new Emitter());\n this.onDidReset = this._onDidReset.event;\n this._onDidEnd = this._register(new Emitter());\n this.onDidEnd = this._onDidEnd.event;\n this.linkedSash = undefined;\n this.orthogonalStartSashDisposables = this._register(new DisposableStore());\n this.orthogonalStartDragHandleDisposables = this._register(new DisposableStore());\n this.orthogonalEndSashDisposables = this._register(new DisposableStore());\n this.orthogonalEndDragHandleDisposables = this._register(new DisposableStore());\n this.el = append(container, $('.monaco-sash'));\n if (options.orthogonalEdge) {\n this.el.classList.add(`orthogonal-edge-${options.orthogonalEdge}`);\n }\n if (isMacintosh) {\n this.el.classList.add('mac');\n }\n const onMouseDown = this._register(new DomEmitter(this.el, 'mousedown')).event;\n this._register(onMouseDown(e => this.onPointerStart(e, new MouseEventFactory()), this));\n const onMouseDoubleClick = this._register(new DomEmitter(this.el, 'dblclick')).event;\n this._register(onMouseDoubleClick(this.onPointerDoublePress, this));\n const onMouseEnter = this._register(new DomEmitter(this.el, 'mouseenter')).event;\n this._register(onMouseEnter(() => Sash.onMouseEnter(this)));\n const onMouseLeave = this._register(new DomEmitter(this.el, 'mouseleave')).event;\n this._register(onMouseLeave(() => Sash.onMouseLeave(this)));\n this._register(Gesture.addTarget(this.el));\n const onTouchStart = Event.map(this._register(new DomEmitter(this.el, EventType.Start)).event, e => { var _a; return (Object.assign(Object.assign({}, e), { target: (_a = e.initialTarget) !== null && _a !== void 0 ? _a : null })); });\n this._register(onTouchStart(e => this.onPointerStart(e, new GestureEventFactory(this.el)), this));\n const onTap = this._register(new DomEmitter(this.el, EventType.Tap)).event;\n const onDoubleTap = Event.map(Event.filter(Event.debounce(onTap, (res, event) => { var _a; return ({ event, count: ((_a = res === null || res === void 0 ? void 0 : res.count) !== null && _a !== void 0 ? _a : 0) + 1 }); }, 250), ({ count }) => count === 2), ({ event }) => { var _a; return (Object.assign(Object.assign({}, event), { target: (_a = event.initialTarget) !== null && _a !== void 0 ? _a : null })); });\n this._register(onDoubleTap(this.onPointerDoublePress, this));\n if (typeof options.size === 'number') {\n this.size = options.size;\n if (options.orientation === 0 /* VERTICAL */) {\n this.el.style.width = `${this.size}px`;\n }\n else {\n this.el.style.height = `${this.size}px`;\n }\n }\n else {\n this.size = globalSize;\n this._register(onDidChangeGlobalSize.event(size => {\n this.size = size;\n this.layout();\n }));\n }\n this._register(onDidChangeHoverDelay.event(delay => this.hoverDelay = delay));\n this.hidden = false;\n this.layoutProvider = layoutProvider;\n this.orthogonalStartSash = options.orthogonalStartSash;\n this.orthogonalEndSash = options.orthogonalEndSash;\n this.orientation = options.orientation || 0 /* VERTICAL */;\n if (this.orientation === 1 /* HORIZONTAL */) {\n this.el.classList.add('horizontal');\n this.el.classList.remove('vertical');\n }\n else {\n this.el.classList.remove('horizontal');\n this.el.classList.add('vertical');\n }\n this.el.classList.toggle('debug', DEBUG);\n this.layout();\n }\n get state() { return this._state; }\n set state(state) {\n if (this._state === state) {\n return;\n }\n this.el.classList.toggle('disabled', state === 0 /* Disabled */);\n this.el.classList.toggle('minimum', state === 1 /* Minimum */);\n this.el.classList.toggle('maximum', state === 2 /* Maximum */);\n this._state = state;\n this._onDidEnablementChange.fire(state);\n }\n get orthogonalStartSash() { return this._orthogonalStartSash; }\n set orthogonalStartSash(sash) {\n this.orthogonalStartDragHandleDisposables.clear();\n this.orthogonalStartSashDisposables.clear();\n if (sash) {\n const onChange = (state) => {\n this.orthogonalStartDragHandleDisposables.clear();\n if (state !== 0 /* Disabled */) {\n this._orthogonalStartDragHandle = append(this.el, $('.orthogonal-drag-handle.start'));\n this.orthogonalStartDragHandleDisposables.add(toDisposable(() => this._orthogonalStartDragHandle.remove()));\n this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle, 'mouseenter')).event(() => Sash.onMouseEnter(sash), undefined, this.orthogonalStartDragHandleDisposables);\n this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle, 'mouseleave')).event(() => Sash.onMouseLeave(sash), undefined, this.orthogonalStartDragHandleDisposables);\n }\n };\n this.orthogonalStartSashDisposables.add(sash.onDidEnablementChange(onChange, this));\n onChange(sash.state);\n }\n this._orthogonalStartSash = sash;\n }\n get orthogonalEndSash() { return this._orthogonalEndSash; }\n set orthogonalEndSash(sash) {\n this.orthogonalEndDragHandleDisposables.clear();\n this.orthogonalEndSashDisposables.clear();\n if (sash) {\n const onChange = (state) => {\n this.orthogonalEndDragHandleDisposables.clear();\n if (state !== 0 /* Disabled */) {\n this._orthogonalEndDragHandle = append(this.el, $('.orthogonal-drag-handle.end'));\n this.orthogonalEndDragHandleDisposables.add(toDisposable(() => this._orthogonalEndDragHandle.remove()));\n this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle, 'mouseenter')).event(() => Sash.onMouseEnter(sash), undefined, this.orthogonalEndDragHandleDisposables);\n this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle, 'mouseleave')).event(() => Sash.onMouseLeave(sash), undefined, this.orthogonalEndDragHandleDisposables);\n }\n };\n this.orthogonalEndSashDisposables.add(sash.onDidEnablementChange(onChange, this));\n onChange(sash.state);\n }\n this._orthogonalEndSash = sash;\n }\n onPointerStart(event, pointerEventFactory) {\n EventHelper.stop(event);\n let isMultisashResize = false;\n if (!event.__orthogonalSashEvent) {\n const orthogonalSash = this.getOrthogonalSash(event);\n if (orthogonalSash) {\n isMultisashResize = true;\n event.__orthogonalSashEvent = true;\n orthogonalSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n }\n }\n if (this.linkedSash && !event.__linkedSashEvent) {\n event.__linkedSashEvent = true;\n this.linkedSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n }\n if (!this.state) {\n return;\n }\n const iframes = getElementsByTagName('iframe');\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none'; // disable mouse events on iframes as long as we drag the sash\n }\n const startX = event.pageX;\n const startY = event.pageY;\n const altKey = event.altKey;\n const startEvent = { startX, currentX: startX, startY, currentY: startY, altKey };\n this.el.classList.add('active');\n this._onDidStart.fire(startEvent);\n // fix https://github.com/microsoft/vscode/issues/21675\n const style = createStyleSheet(this.el);\n const updateStyle = () => {\n let cursor = '';\n if (isMultisashResize) {\n cursor = 'all-scroll';\n }\n else if (this.orientation === 1 /* HORIZONTAL */) {\n if (this.state === 1 /* Minimum */) {\n cursor = 's-resize';\n }\n else if (this.state === 2 /* Maximum */) {\n cursor = 'n-resize';\n }\n else {\n cursor = isMacintosh ? 'row-resize' : 'ns-resize';\n }\n }\n else {\n if (this.state === 1 /* Minimum */) {\n cursor = 'e-resize';\n }\n else if (this.state === 2 /* Maximum */) {\n cursor = 'w-resize';\n }\n else {\n cursor = isMacintosh ? 'col-resize' : 'ew-resize';\n }\n }\n style.textContent = `* { cursor: ${cursor} !important; }`;\n };\n const disposables = new DisposableStore();\n updateStyle();\n if (!isMultisashResize) {\n this.onDidEnablementChange(updateStyle, null, disposables);\n }\n const onPointerMove = (e) => {\n EventHelper.stop(e, false);\n const event = { startX, currentX: e.pageX, startY, currentY: e.pageY, altKey };\n this._onDidChange.fire(event);\n };\n const onPointerUp = (e) => {\n EventHelper.stop(e, false);\n this.el.removeChild(style);\n this.el.classList.remove('active');\n this._onDidEnd.fire();\n disposables.dispose();\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n };\n pointerEventFactory.onPointerMove(onPointerMove, null, disposables);\n pointerEventFactory.onPointerUp(onPointerUp, null, disposables);\n disposables.add(pointerEventFactory);\n }\n onPointerDoublePress(e) {\n const orthogonalSash = this.getOrthogonalSash(e);\n if (orthogonalSash) {\n orthogonalSash._onDidReset.fire();\n }\n if (this.linkedSash) {\n this.linkedSash._onDidReset.fire();\n }\n this._onDidReset.fire();\n }\n static onMouseEnter(sash, fromLinkedSash = false) {\n if (sash.el.classList.contains('active')) {\n sash.hoverDelayer.cancel();\n sash.el.classList.add('hover');\n }\n else {\n sash.hoverDelayer.trigger(() => sash.el.classList.add('hover'), sash.hoverDelay).then(undefined, () => { });\n }\n if (!fromLinkedSash && sash.linkedSash) {\n Sash.onMouseEnter(sash.linkedSash, true);\n }\n }\n static onMouseLeave(sash, fromLinkedSash = false) {\n sash.hoverDelayer.cancel();\n sash.el.classList.remove('hover');\n if (!fromLinkedSash && sash.linkedSash) {\n Sash.onMouseLeave(sash.linkedSash, true);\n }\n }\n clearSashHoverState() {\n Sash.onMouseLeave(this);\n }\n layout() {\n if (this.orientation === 0 /* VERTICAL */) {\n const verticalProvider = this.layoutProvider;\n this.el.style.left = verticalProvider.getVerticalSashLeft(this) - (this.size / 2) + 'px';\n if (verticalProvider.getVerticalSashTop) {\n this.el.style.top = verticalProvider.getVerticalSashTop(this) + 'px';\n }\n if (verticalProvider.getVerticalSashHeight) {\n this.el.style.height = verticalProvider.getVerticalSashHeight(this) + 'px';\n }\n }\n else {\n const horizontalProvider = this.layoutProvider;\n this.el.style.top = horizontalProvider.getHorizontalSashTop(this) - (this.size / 2) + 'px';\n if (horizontalProvider.getHorizontalSashLeft) {\n this.el.style.left = horizontalProvider.getHorizontalSashLeft(this) + 'px';\n }\n if (horizontalProvider.getHorizontalSashWidth) {\n this.el.style.width = horizontalProvider.getHorizontalSashWidth(this) + 'px';\n }\n }\n }\n hide() {\n this.hidden = true;\n this.el.style.display = 'none';\n this.el.setAttribute('aria-hidden', 'true');\n }\n getOrthogonalSash(e) {\n if (!e.target || !(e.target instanceof HTMLElement)) {\n return undefined;\n }\n if (e.target.classList.contains('orthogonal-drag-handle')) {\n return e.target.classList.contains('start') ? this.orthogonalStartSash : this.orthogonalEndSash;\n }\n return undefined;\n }\n dispose() {\n super.dispose();\n this.el.remove();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Scanner {\n constructor() {\n this.value = '';\n this.pos = 0;\n }\n static isDigitCharacter(ch) {\n return ch >= 48 /* Digit0 */ && ch <= 57 /* Digit9 */;\n }\n static isVariableCharacter(ch) {\n return ch === 95 /* Underline */\n || (ch >= 97 /* a */ && ch <= 122 /* z */)\n || (ch >= 65 /* A */ && ch <= 90 /* Z */);\n }\n text(value) {\n this.value = value;\n this.pos = 0;\n }\n tokenText(token) {\n return this.value.substr(token.pos, token.len);\n }\n next() {\n if (this.pos >= this.value.length) {\n return { type: 14 /* EOF */, pos: this.pos, len: 0 };\n }\n let pos = this.pos;\n let len = 0;\n let ch = this.value.charCodeAt(pos);\n let type;\n // static types\n type = Scanner._table[ch];\n if (typeof type === 'number') {\n this.pos += 1;\n return { type, pos, len: 1 };\n }\n // number\n if (Scanner.isDigitCharacter(ch)) {\n type = 8 /* Int */;\n do {\n len += 1;\n ch = this.value.charCodeAt(pos + len);\n } while (Scanner.isDigitCharacter(ch));\n this.pos += len;\n return { type, pos, len };\n }\n // variable name\n if (Scanner.isVariableCharacter(ch)) {\n type = 9 /* VariableName */;\n do {\n ch = this.value.charCodeAt(pos + (++len));\n } while (Scanner.isVariableCharacter(ch) || Scanner.isDigitCharacter(ch));\n this.pos += len;\n return { type, pos, len };\n }\n // format\n type = 10 /* Format */;\n do {\n len += 1;\n ch = this.value.charCodeAt(pos + len);\n } while (!isNaN(ch)\n && typeof Scanner._table[ch] === 'undefined' // not static token\n && !Scanner.isDigitCharacter(ch) // not number\n && !Scanner.isVariableCharacter(ch) // not variable\n );\n this.pos += len;\n return { type, pos, len };\n }\n}\nScanner._table = {\n [36 /* DollarSign */]: 0 /* Dollar */,\n [58 /* Colon */]: 1 /* Colon */,\n [44 /* Comma */]: 2 /* Comma */,\n [123 /* OpenCurlyBrace */]: 3 /* CurlyOpen */,\n [125 /* CloseCurlyBrace */]: 4 /* CurlyClose */,\n [92 /* Backslash */]: 5 /* Backslash */,\n [47 /* Slash */]: 6 /* Forwardslash */,\n [124 /* Pipe */]: 7 /* Pipe */,\n [43 /* Plus */]: 11 /* Plus */,\n [45 /* Dash */]: 12 /* Dash */,\n [63 /* QuestionMark */]: 13 /* QuestionMark */,\n};\nexport class Marker {\n constructor() {\n this._children = [];\n }\n appendChild(child) {\n if (child instanceof Text && this._children[this._children.length - 1] instanceof Text) {\n // this and previous child are text -> merge them\n this._children[this._children.length - 1].value += child.value;\n }\n else {\n // normal adoption of child\n child.parent = this;\n this._children.push(child);\n }\n return this;\n }\n replace(child, others) {\n const { parent } = child;\n const idx = parent.children.indexOf(child);\n const newChildren = parent.children.slice(0);\n newChildren.splice(idx, 1, ...others);\n parent._children = newChildren;\n (function _fixParent(children, parent) {\n for (const child of children) {\n child.parent = parent;\n _fixParent(child.children, child);\n }\n })(others, parent);\n }\n get children() {\n return this._children;\n }\n get snippet() {\n let candidate = this;\n while (true) {\n if (!candidate) {\n return undefined;\n }\n if (candidate instanceof TextmateSnippet) {\n return candidate;\n }\n candidate = candidate.parent;\n }\n }\n toString() {\n return this.children.reduce((prev, cur) => prev + cur.toString(), '');\n }\n len() {\n return 0;\n }\n}\nexport class Text extends Marker {\n constructor(value) {\n super();\n this.value = value;\n }\n toString() {\n return this.value;\n }\n len() {\n return this.value.length;\n }\n clone() {\n return new Text(this.value);\n }\n}\nexport class TransformableMarker extends Marker {\n}\nexport class Placeholder extends TransformableMarker {\n constructor(index) {\n super();\n this.index = index;\n }\n static compareByIndex(a, b) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.isFinalTabstop) {\n return 1;\n }\n else if (b.isFinalTabstop) {\n return -1;\n }\n else if (a.index < b.index) {\n return -1;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return 0;\n }\n }\n get isFinalTabstop() {\n return this.index === 0;\n }\n get choice() {\n return this._children.length === 1 && this._children[0] instanceof Choice\n ? this._children[0]\n : undefined;\n }\n clone() {\n let ret = new Placeholder(this.index);\n if (this.transform) {\n ret.transform = this.transform.clone();\n }\n ret._children = this.children.map(child => child.clone());\n return ret;\n }\n}\nexport class Choice extends Marker {\n constructor() {\n super(...arguments);\n this.options = [];\n }\n appendChild(marker) {\n if (marker instanceof Text) {\n marker.parent = this;\n this.options.push(marker);\n }\n return this;\n }\n toString() {\n return this.options[0].value;\n }\n len() {\n return this.options[0].len();\n }\n clone() {\n let ret = new Choice();\n this.options.forEach(ret.appendChild, ret);\n return ret;\n }\n}\nexport class Transform extends Marker {\n constructor() {\n super(...arguments);\n this.regexp = new RegExp('');\n }\n resolve(value) {\n const _this = this;\n let didMatch = false;\n let ret = value.replace(this.regexp, function () {\n didMatch = true;\n return _this._replace(Array.prototype.slice.call(arguments, 0, -2));\n });\n // when the regex didn't match and when the transform has\n // else branches, then run those\n if (!didMatch && this._children.some(child => child instanceof FormatString && Boolean(child.elseValue))) {\n ret = this._replace([]);\n }\n return ret;\n }\n _replace(groups) {\n let ret = '';\n for (const marker of this._children) {\n if (marker instanceof FormatString) {\n let value = groups[marker.index] || '';\n value = marker.resolve(value);\n ret += value;\n }\n else {\n ret += marker.toString();\n }\n }\n return ret;\n }\n toString() {\n return '';\n }\n clone() {\n let ret = new Transform();\n ret.regexp = new RegExp(this.regexp.source, '' + (this.regexp.ignoreCase ? 'i' : '') + (this.regexp.global ? 'g' : ''));\n ret._children = this.children.map(child => child.clone());\n return ret;\n }\n}\nexport class FormatString extends Marker {\n constructor(index, shorthandName, ifValue, elseValue) {\n super();\n this.index = index;\n this.shorthandName = shorthandName;\n this.ifValue = ifValue;\n this.elseValue = elseValue;\n }\n resolve(value) {\n if (this.shorthandName === 'upcase') {\n return !value ? '' : value.toLocaleUpperCase();\n }\n else if (this.shorthandName === 'downcase') {\n return !value ? '' : value.toLocaleLowerCase();\n }\n else if (this.shorthandName === 'capitalize') {\n return !value ? '' : (value[0].toLocaleUpperCase() + value.substr(1));\n }\n else if (this.shorthandName === 'pascalcase') {\n return !value ? '' : this._toPascalCase(value);\n }\n else if (this.shorthandName === 'camelcase') {\n return !value ? '' : this._toCamelCase(value);\n }\n else if (Boolean(value) && typeof this.ifValue === 'string') {\n return this.ifValue;\n }\n else if (!Boolean(value) && typeof this.elseValue === 'string') {\n return this.elseValue;\n }\n else {\n return value || '';\n }\n }\n _toPascalCase(value) {\n const match = value.match(/[a-z0-9]+/gi);\n if (!match) {\n return value;\n }\n return match.map(word => {\n return word.charAt(0).toUpperCase()\n + word.substr(1).toLowerCase();\n })\n .join('');\n }\n _toCamelCase(value) {\n const match = value.match(/[a-z0-9]+/gi);\n if (!match) {\n return value;\n }\n return match.map((word, index) => {\n if (index === 0) {\n return word.toLowerCase();\n }\n else {\n return word.charAt(0).toUpperCase()\n + word.substr(1).toLowerCase();\n }\n })\n .join('');\n }\n clone() {\n let ret = new FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue);\n return ret;\n }\n}\nexport class Variable extends TransformableMarker {\n constructor(name) {\n super();\n this.name = name;\n }\n resolve(resolver) {\n let value = resolver.resolve(this);\n if (this.transform) {\n value = this.transform.resolve(value || '');\n }\n if (value !== undefined) {\n this._children = [new Text(value)];\n return true;\n }\n return false;\n }\n clone() {\n const ret = new Variable(this.name);\n if (this.transform) {\n ret.transform = this.transform.clone();\n }\n ret._children = this.children.map(child => child.clone());\n return ret;\n }\n}\nfunction walk(marker, visitor) {\n const stack = [...marker];\n while (stack.length > 0) {\n const marker = stack.shift();\n const recurse = visitor(marker);\n if (!recurse) {\n break;\n }\n stack.unshift(...marker.children);\n }\n}\nexport class TextmateSnippet extends Marker {\n get placeholderInfo() {\n if (!this._placeholders) {\n // fill in placeholders\n let all = [];\n let last;\n this.walk(function (candidate) {\n if (candidate instanceof Placeholder) {\n all.push(candidate);\n last = !last || last.index < candidate.index ? candidate : last;\n }\n return true;\n });\n this._placeholders = { all, last };\n }\n return this._placeholders;\n }\n get placeholders() {\n const { all } = this.placeholderInfo;\n return all;\n }\n offset(marker) {\n let pos = 0;\n let found = false;\n this.walk(candidate => {\n if (candidate === marker) {\n found = true;\n return false;\n }\n pos += candidate.len();\n return true;\n });\n if (!found) {\n return -1;\n }\n return pos;\n }\n fullLen(marker) {\n let ret = 0;\n walk([marker], marker => {\n ret += marker.len();\n return true;\n });\n return ret;\n }\n enclosingPlaceholders(placeholder) {\n let ret = [];\n let { parent } = placeholder;\n while (parent) {\n if (parent instanceof Placeholder) {\n ret.push(parent);\n }\n parent = parent.parent;\n }\n return ret;\n }\n resolveVariables(resolver) {\n this.walk(candidate => {\n if (candidate instanceof Variable) {\n if (candidate.resolve(resolver)) {\n this._placeholders = undefined;\n }\n }\n return true;\n });\n return this;\n }\n appendChild(child) {\n this._placeholders = undefined;\n return super.appendChild(child);\n }\n replace(child, others) {\n this._placeholders = undefined;\n return super.replace(child, others);\n }\n clone() {\n let ret = new TextmateSnippet();\n this._children = this.children.map(child => child.clone());\n return ret;\n }\n walk(visitor) {\n walk(this.children, visitor);\n }\n}\nexport class SnippetParser {\n constructor() {\n this._scanner = new Scanner();\n this._token = { type: 14 /* EOF */, pos: 0, len: 0 };\n }\n static escape(value) {\n return value.replace(/\\$|}|\\\\/g, '\\\\$&');\n }\n static guessNeedsClipboard(template) {\n return /\\${?CLIPBOARD/.test(template);\n }\n parse(value, insertFinalTabstop, enforceFinalTabstop) {\n this._scanner.text(value);\n this._token = this._scanner.next();\n const snippet = new TextmateSnippet();\n while (this._parse(snippet)) {\n // nothing\n }\n // fill in values for placeholders. the first placeholder of an index\n // that has a value defines the value for all placeholders with that index\n const placeholderDefaultValues = new Map();\n const incompletePlaceholders = [];\n let placeholderCount = 0;\n snippet.walk(marker => {\n if (marker instanceof Placeholder) {\n placeholderCount += 1;\n if (marker.isFinalTabstop) {\n placeholderDefaultValues.set(0, undefined);\n }\n else if (!placeholderDefaultValues.has(marker.index) && marker.children.length > 0) {\n placeholderDefaultValues.set(marker.index, marker.children);\n }\n else {\n incompletePlaceholders.push(marker);\n }\n }\n return true;\n });\n for (const placeholder of incompletePlaceholders) {\n const defaultValues = placeholderDefaultValues.get(placeholder.index);\n if (defaultValues) {\n const clone = new Placeholder(placeholder.index);\n clone.transform = placeholder.transform;\n for (const child of defaultValues) {\n clone.appendChild(child.clone());\n }\n snippet.replace(placeholder, [clone]);\n }\n }\n if (!enforceFinalTabstop) {\n enforceFinalTabstop = placeholderCount > 0 && insertFinalTabstop;\n }\n if (!placeholderDefaultValues.has(0) && enforceFinalTabstop) {\n // the snippet uses placeholders but has no\n // final tabstop defined -> insert at the end\n snippet.appendChild(new Placeholder(0));\n }\n return snippet;\n }\n _accept(type, value) {\n if (type === undefined || this._token.type === type) {\n let ret = !value ? true : this._scanner.tokenText(this._token);\n this._token = this._scanner.next();\n return ret;\n }\n return false;\n }\n _backTo(token) {\n this._scanner.pos = token.pos + token.len;\n this._token = token;\n return false;\n }\n _until(type) {\n const start = this._token;\n while (this._token.type !== type) {\n if (this._token.type === 14 /* EOF */) {\n return false;\n }\n else if (this._token.type === 5 /* Backslash */) {\n const nextToken = this._scanner.next();\n if (nextToken.type !== 0 /* Dollar */\n && nextToken.type !== 4 /* CurlyClose */\n && nextToken.type !== 5 /* Backslash */) {\n return false;\n }\n }\n this._token = this._scanner.next();\n }\n const value = this._scanner.value.substring(start.pos, this._token.pos).replace(/\\\\(\\$|}|\\\\)/g, '$1');\n this._token = this._scanner.next();\n return value;\n }\n _parse(marker) {\n return this._parseEscaped(marker)\n || this._parseTabstopOrVariableName(marker)\n || this._parseComplexPlaceholder(marker)\n || this._parseComplexVariable(marker)\n || this._parseAnything(marker);\n }\n // \\$, \\\\, \\} -> just text\n _parseEscaped(marker) {\n let value;\n if (value = this._accept(5 /* Backslash */, true)) {\n // saw a backslash, append escaped token or that backslash\n value = this._accept(0 /* Dollar */, true)\n || this._accept(4 /* CurlyClose */, true)\n || this._accept(5 /* Backslash */, true)\n || value;\n marker.appendChild(new Text(value));\n return true;\n }\n return false;\n }\n // $foo -> variable, $1 -> tabstop\n _parseTabstopOrVariableName(parent) {\n let value;\n const token = this._token;\n const match = this._accept(0 /* Dollar */)\n && (value = this._accept(9 /* VariableName */, true) || this._accept(8 /* Int */, true));\n if (!match) {\n return this._backTo(token);\n }\n parent.appendChild(/^\\d+$/.test(value)\n ? new Placeholder(Number(value))\n : new Variable(value));\n return true;\n }\n // ${1:}, ${1} -> placeholder\n _parseComplexPlaceholder(parent) {\n let index;\n const token = this._token;\n const match = this._accept(0 /* Dollar */)\n && this._accept(3 /* CurlyOpen */)\n && (index = this._accept(8 /* Int */, true));\n if (!match) {\n return this._backTo(token);\n }\n const placeholder = new Placeholder(Number(index));\n if (this._accept(1 /* Colon */)) {\n // ${1:}\n while (true) {\n // ...} -> done\n if (this._accept(4 /* CurlyClose */)) {\n parent.appendChild(placeholder);\n return true;\n }\n if (this._parse(placeholder)) {\n continue;\n }\n // fallback\n parent.appendChild(new Text('${' + index + ':'));\n placeholder.children.forEach(parent.appendChild, parent);\n return true;\n }\n }\n else if (placeholder.index > 0 && this._accept(7 /* Pipe */)) {\n // ${1|one,two,three|}\n const choice = new Choice();\n while (true) {\n if (this._parseChoiceElement(choice)) {\n if (this._accept(2 /* Comma */)) {\n // opt, -> more\n continue;\n }\n if (this._accept(7 /* Pipe */)) {\n placeholder.appendChild(choice);\n if (this._accept(4 /* CurlyClose */)) {\n // ..|} -> done\n parent.appendChild(placeholder);\n return true;\n }\n }\n }\n this._backTo(token);\n return false;\n }\n }\n else if (this._accept(6 /* Forwardslash */)) {\n // ${1///}\n if (this._parseTransform(placeholder)) {\n parent.appendChild(placeholder);\n return true;\n }\n this._backTo(token);\n return false;\n }\n else if (this._accept(4 /* CurlyClose */)) {\n // ${1}\n parent.appendChild(placeholder);\n return true;\n }\n else {\n // ${1 <- missing curly or colon\n return this._backTo(token);\n }\n }\n _parseChoiceElement(parent) {\n const token = this._token;\n const values = [];\n while (true) {\n if (this._token.type === 2 /* Comma */ || this._token.type === 7 /* Pipe */) {\n break;\n }\n let value;\n if (value = this._accept(5 /* Backslash */, true)) {\n // \\, \\|, or \\\\\n value = this._accept(2 /* Comma */, true)\n || this._accept(7 /* Pipe */, true)\n || this._accept(5 /* Backslash */, true)\n || value;\n }\n else {\n value = this._accept(undefined, true);\n }\n if (!value) {\n // EOF\n this._backTo(token);\n return false;\n }\n values.push(value);\n }\n if (values.length === 0) {\n this._backTo(token);\n return false;\n }\n parent.appendChild(new Text(values.join('')));\n return true;\n }\n // ${foo:}, ${foo} -> variable\n _parseComplexVariable(parent) {\n let name;\n const token = this._token;\n const match = this._accept(0 /* Dollar */)\n && this._accept(3 /* CurlyOpen */)\n && (name = this._accept(9 /* VariableName */, true));\n if (!match) {\n return this._backTo(token);\n }\n const variable = new Variable(name);\n if (this._accept(1 /* Colon */)) {\n // ${foo:}\n while (true) {\n // ...} -> done\n if (this._accept(4 /* CurlyClose */)) {\n parent.appendChild(variable);\n return true;\n }\n if (this._parse(variable)) {\n continue;\n }\n // fallback\n parent.appendChild(new Text('${' + name + ':'));\n variable.children.forEach(parent.appendChild, parent);\n return true;\n }\n }\n else if (this._accept(6 /* Forwardslash */)) {\n // ${foo///}\n if (this._parseTransform(variable)) {\n parent.appendChild(variable);\n return true;\n }\n this._backTo(token);\n return false;\n }\n else if (this._accept(4 /* CurlyClose */)) {\n // ${foo}\n parent.appendChild(variable);\n return true;\n }\n else {\n // ${foo <- missing curly or colon\n return this._backTo(token);\n }\n }\n _parseTransform(parent) {\n // ...//}\n let transform = new Transform();\n let regexValue = '';\n let regexOptions = '';\n // (1) /regex\n while (true) {\n if (this._accept(6 /* Forwardslash */)) {\n break;\n }\n let escaped;\n if (escaped = this._accept(5 /* Backslash */, true)) {\n escaped = this._accept(6 /* Forwardslash */, true) || escaped;\n regexValue += escaped;\n continue;\n }\n if (this._token.type !== 14 /* EOF */) {\n regexValue += this._accept(undefined, true);\n continue;\n }\n return false;\n }\n // (2) /format\n while (true) {\n if (this._accept(6 /* Forwardslash */)) {\n break;\n }\n let escaped;\n if (escaped = this._accept(5 /* Backslash */, true)) {\n escaped = this._accept(5 /* Backslash */, true) || this._accept(6 /* Forwardslash */, true) || escaped;\n transform.appendChild(new Text(escaped));\n continue;\n }\n if (this._parseFormatString(transform) || this._parseAnything(transform)) {\n continue;\n }\n return false;\n }\n // (3) /option\n while (true) {\n if (this._accept(4 /* CurlyClose */)) {\n break;\n }\n if (this._token.type !== 14 /* EOF */) {\n regexOptions += this._accept(undefined, true);\n continue;\n }\n return false;\n }\n try {\n transform.regexp = new RegExp(regexValue, regexOptions);\n }\n catch (e) {\n // invalid regexp\n return false;\n }\n parent.transform = transform;\n return true;\n }\n _parseFormatString(parent) {\n const token = this._token;\n if (!this._accept(0 /* Dollar */)) {\n return false;\n }\n let complex = false;\n if (this._accept(3 /* CurlyOpen */)) {\n complex = true;\n }\n let index = this._accept(8 /* Int */, true);\n if (!index) {\n this._backTo(token);\n return false;\n }\n else if (!complex) {\n // $1\n parent.appendChild(new FormatString(Number(index)));\n return true;\n }\n else if (this._accept(4 /* CurlyClose */)) {\n // ${1}\n parent.appendChild(new FormatString(Number(index)));\n return true;\n }\n else if (!this._accept(1 /* Colon */)) {\n this._backTo(token);\n return false;\n }\n if (this._accept(6 /* Forwardslash */)) {\n // ${1:/upcase}\n let shorthand = this._accept(9 /* VariableName */, true);\n if (!shorthand || !this._accept(4 /* CurlyClose */)) {\n this._backTo(token);\n return false;\n }\n else {\n parent.appendChild(new FormatString(Number(index), shorthand));\n return true;\n }\n }\n else if (this._accept(11 /* Plus */)) {\n // ${1:+}\n let ifValue = this._until(4 /* CurlyClose */);\n if (ifValue) {\n parent.appendChild(new FormatString(Number(index), undefined, ifValue, undefined));\n return true;\n }\n }\n else if (this._accept(12 /* Dash */)) {\n // ${2:-}\n let elseValue = this._until(4 /* CurlyClose */);\n if (elseValue) {\n parent.appendChild(new FormatString(Number(index), undefined, undefined, elseValue));\n return true;\n }\n }\n else if (this._accept(13 /* QuestionMark */)) {\n // ${2:?:}\n let ifValue = this._until(1 /* Colon */);\n if (ifValue) {\n let elseValue = this._until(4 /* CurlyClose */);\n if (elseValue) {\n parent.appendChild(new FormatString(Number(index), undefined, ifValue, elseValue));\n return true;\n }\n }\n }\n else {\n // ${1:}\n let elseValue = this._until(4 /* CurlyClose */);\n if (elseValue) {\n parent.appendChild(new FormatString(Number(index), undefined, undefined, elseValue));\n return true;\n }\n }\n this._backTo(token);\n return false;\n }\n _parseAnything(marker) {\n if (this._token.type !== 14 /* EOF */) {\n marker.appendChild(new Text(this._scanner.tokenText(this._token)));\n this._accept(undefined);\n return true;\n }\n return false;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { LineTokens } from '../core/lineTokens.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { TokenMetadata } from '../modes.js';\nexport function countEOL(text) {\n let eolCount = 0;\n let firstLineLength = 0;\n let lastLineStart = 0;\n let eol = 0 /* Unknown */;\n for (let i = 0, len = text.length; i < len; i++) {\n const chr = text.charCodeAt(i);\n if (chr === 13 /* CarriageReturn */) {\n if (eolCount === 0) {\n firstLineLength = i;\n }\n eolCount++;\n if (i + 1 < len && text.charCodeAt(i + 1) === 10 /* LineFeed */) {\n // \\r\\n... case\n eol |= 2 /* CRLF */;\n i++; // skip \\n\n }\n else {\n // \\r... case\n eol |= 3 /* Invalid */;\n }\n lastLineStart = i + 1;\n }\n else if (chr === 10 /* LineFeed */) {\n // \\n... case\n eol |= 1 /* LF */;\n if (eolCount === 0) {\n firstLineLength = i;\n }\n eolCount++;\n lastLineStart = i + 1;\n }\n }\n if (eolCount === 0) {\n firstLineLength = text.length;\n }\n return [eolCount, firstLineLength, text.length - lastLineStart, eol];\n}\nfunction getDefaultMetadata(topLevelLanguageId) {\n return ((topLevelLanguageId << 0 /* LANGUAGEID_OFFSET */)\n | (0 /* Other */ << 8 /* TOKEN_TYPE_OFFSET */)\n | (0 /* None */ << 11 /* FONT_STYLE_OFFSET */)\n | (1 /* DefaultForeground */ << 14 /* FOREGROUND_OFFSET */)\n | (2 /* DefaultBackground */ << 23 /* BACKGROUND_OFFSET */)) >>> 0;\n}\nconst EMPTY_LINE_TOKENS = (new Uint32Array(0)).buffer;\nexport class MultilineTokensBuilder {\n constructor() {\n this.tokens = [];\n }\n add(lineNumber, lineTokens) {\n if (this.tokens.length > 0) {\n const last = this.tokens[this.tokens.length - 1];\n const lastLineNumber = last.startLineNumber + last.tokens.length - 1;\n if (lastLineNumber + 1 === lineNumber) {\n // append\n last.tokens.push(lineTokens);\n return;\n }\n }\n this.tokens.push(new MultilineTokens(lineNumber, [lineTokens]));\n }\n}\nexport class SparseEncodedTokens {\n constructor(tokens) {\n this._tokens = tokens;\n this._tokenCount = tokens.length / 4;\n }\n toString(startLineNumber) {\n let pieces = [];\n for (let i = 0; i < this._tokenCount; i++) {\n pieces.push(`(${this._getDeltaLine(i) + startLineNumber},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);\n }\n return `[${pieces.join(',')}]`;\n }\n getMaxDeltaLine() {\n const tokenCount = this._getTokenCount();\n if (tokenCount === 0) {\n return -1;\n }\n return this._getDeltaLine(tokenCount - 1);\n }\n getRange() {\n const tokenCount = this._getTokenCount();\n if (tokenCount === 0) {\n return null;\n }\n const startChar = this._getStartCharacter(0);\n const maxDeltaLine = this._getDeltaLine(tokenCount - 1);\n const endChar = this._getEndCharacter(tokenCount - 1);\n return new Range(0, startChar + 1, maxDeltaLine, endChar + 1);\n }\n _getTokenCount() {\n return this._tokenCount;\n }\n _getDeltaLine(tokenIndex) {\n return this._tokens[4 * tokenIndex];\n }\n _getStartCharacter(tokenIndex) {\n return this._tokens[4 * tokenIndex + 1];\n }\n _getEndCharacter(tokenIndex) {\n return this._tokens[4 * tokenIndex + 2];\n }\n isEmpty() {\n return (this._getTokenCount() === 0);\n }\n getLineTokens(deltaLine) {\n let low = 0;\n let high = this._getTokenCount() - 1;\n while (low < high) {\n const mid = low + Math.floor((high - low) / 2);\n const midDeltaLine = this._getDeltaLine(mid);\n if (midDeltaLine < deltaLine) {\n low = mid + 1;\n }\n else if (midDeltaLine > deltaLine) {\n high = mid - 1;\n }\n else {\n let min = mid;\n while (min > low && this._getDeltaLine(min - 1) === deltaLine) {\n min--;\n }\n let max = mid;\n while (max < high && this._getDeltaLine(max + 1) === deltaLine) {\n max++;\n }\n return new LineTokens2(this._tokens.subarray(4 * min, 4 * max + 4));\n }\n }\n if (this._getDeltaLine(low) === deltaLine) {\n return new LineTokens2(this._tokens.subarray(4 * low, 4 * low + 4));\n }\n return null;\n }\n clear() {\n this._tokenCount = 0;\n }\n removeTokens(startDeltaLine, startChar, endDeltaLine, endChar) {\n const tokens = this._tokens;\n const tokenCount = this._tokenCount;\n let newTokenCount = 0;\n let hasDeletedTokens = false;\n let firstDeltaLine = 0;\n for (let i = 0; i < tokenCount; i++) {\n const srcOffset = 4 * i;\n const tokenDeltaLine = tokens[srcOffset];\n const tokenStartCharacter = tokens[srcOffset + 1];\n const tokenEndCharacter = tokens[srcOffset + 2];\n const tokenMetadata = tokens[srcOffset + 3];\n if ((tokenDeltaLine > startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter >= startChar))\n && (tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter <= endChar))) {\n hasDeletedTokens = true;\n }\n else {\n if (newTokenCount === 0) {\n firstDeltaLine = tokenDeltaLine;\n }\n if (hasDeletedTokens) {\n // must move the token to the left\n const destOffset = 4 * newTokenCount;\n tokens[destOffset] = tokenDeltaLine - firstDeltaLine;\n tokens[destOffset + 1] = tokenStartCharacter;\n tokens[destOffset + 2] = tokenEndCharacter;\n tokens[destOffset + 3] = tokenMetadata;\n }\n newTokenCount++;\n }\n }\n this._tokenCount = newTokenCount;\n return firstDeltaLine;\n }\n split(startDeltaLine, startChar, endDeltaLine, endChar) {\n const tokens = this._tokens;\n const tokenCount = this._tokenCount;\n let aTokens = [];\n let bTokens = [];\n let destTokens = aTokens;\n let destOffset = 0;\n let destFirstDeltaLine = 0;\n for (let i = 0; i < tokenCount; i++) {\n const srcOffset = 4 * i;\n const tokenDeltaLine = tokens[srcOffset];\n const tokenStartCharacter = tokens[srcOffset + 1];\n const tokenEndCharacter = tokens[srcOffset + 2];\n const tokenMetadata = tokens[srcOffset + 3];\n if ((tokenDeltaLine > startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter >= startChar))) {\n if ((tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter <= endChar))) {\n // this token is touching the range\n continue;\n }\n else {\n // this token is after the range\n if (destTokens !== bTokens) {\n // this token is the first token after the range\n destTokens = bTokens;\n destOffset = 0;\n destFirstDeltaLine = tokenDeltaLine;\n }\n }\n }\n destTokens[destOffset++] = tokenDeltaLine - destFirstDeltaLine;\n destTokens[destOffset++] = tokenStartCharacter;\n destTokens[destOffset++] = tokenEndCharacter;\n destTokens[destOffset++] = tokenMetadata;\n }\n return [new SparseEncodedTokens(new Uint32Array(aTokens)), new SparseEncodedTokens(new Uint32Array(bTokens)), destFirstDeltaLine];\n }\n acceptDeleteRange(horizontalShiftForFirstLineTokens, startDeltaLine, startCharacter, endDeltaLine, endCharacter) {\n // This is a bit complex, here are the cases I used to think about this:\n //\n // 1. The token starts before the deletion range\n // 1a. The token is completely before the deletion range\n // -----------\n // xxxxxxxxxxx\n // 1b. The token starts before, the deletion range ends after the token\n // -----------\n // xxxxxxxxxxx\n // 1c. The token starts before, the deletion range ends precisely with the token\n // ---------------\n // xxxxxxxx\n // 1d. The token starts before, the deletion range is inside the token\n // ---------------\n // xxxxx\n //\n // 2. The token starts at the same position with the deletion range\n // 2a. The token starts at the same position, and ends inside the deletion range\n // -------\n // xxxxxxxxxxx\n // 2b. The token starts at the same position, and ends at the same position as the deletion range\n // ----------\n // xxxxxxxxxx\n // 2c. The token starts at the same position, and ends after the deletion range\n // -------------\n // xxxxxxx\n //\n // 3. The token starts inside the deletion range\n // 3a. The token is inside the deletion range\n // -------\n // xxxxxxxxxxxxx\n // 3b. The token starts inside the deletion range, and ends at the same position as the deletion range\n // ----------\n // xxxxxxxxxxxxx\n // 3c. The token starts inside the deletion range, and ends after the deletion range\n // ------------\n // xxxxxxxxxxx\n //\n // 4. The token starts after the deletion range\n // -----------\n // xxxxxxxx\n //\n const tokens = this._tokens;\n const tokenCount = this._tokenCount;\n const deletedLineCount = (endDeltaLine - startDeltaLine);\n let newTokenCount = 0;\n let hasDeletedTokens = false;\n for (let i = 0; i < tokenCount; i++) {\n const srcOffset = 4 * i;\n let tokenDeltaLine = tokens[srcOffset];\n let tokenStartCharacter = tokens[srcOffset + 1];\n let tokenEndCharacter = tokens[srcOffset + 2];\n const tokenMetadata = tokens[srcOffset + 3];\n if (tokenDeltaLine < startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter <= startCharacter)) {\n // 1a. The token is completely before the deletion range\n // => nothing to do\n newTokenCount++;\n continue;\n }\n else if (tokenDeltaLine === startDeltaLine && tokenStartCharacter < startCharacter) {\n // 1b, 1c, 1d\n // => the token survives, but it needs to shrink\n if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n // 1d. The token starts before, the deletion range is inside the token\n // => the token shrinks by the deletion character count\n tokenEndCharacter -= (endCharacter - startCharacter);\n }\n else {\n // 1b. The token starts before, the deletion range ends after the token\n // 1c. The token starts before, the deletion range ends precisely with the token\n // => the token shrinks its ending to the deletion start\n tokenEndCharacter = startCharacter;\n }\n }\n else if (tokenDeltaLine === startDeltaLine && tokenStartCharacter === startCharacter) {\n // 2a, 2b, 2c\n if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n // 2c. The token starts at the same position, and ends after the deletion range\n // => the token shrinks by the deletion character count\n tokenEndCharacter -= (endCharacter - startCharacter);\n }\n else {\n // 2a. The token starts at the same position, and ends inside the deletion range\n // 2b. The token starts at the same position, and ends at the same position as the deletion range\n // => the token is deleted\n hasDeletedTokens = true;\n continue;\n }\n }\n else if (tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter < endCharacter)) {\n // 3a, 3b, 3c\n if (tokenDeltaLine === endDeltaLine && tokenEndCharacter > endCharacter) {\n // 3c. The token starts inside the deletion range, and ends after the deletion range\n // => the token moves left and shrinks\n if (tokenDeltaLine === startDeltaLine) {\n // the deletion started on the same line as the token\n // => the token moves left and shrinks\n tokenStartCharacter = startCharacter;\n tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter);\n }\n else {\n // the deletion started on a line above the token\n // => the token moves to the beginning of the line\n tokenStartCharacter = 0;\n tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter);\n }\n }\n else {\n // 3a. The token is inside the deletion range\n // 3b. The token starts inside the deletion range, and ends at the same position as the deletion range\n // => the token is deleted\n hasDeletedTokens = true;\n continue;\n }\n }\n else if (tokenDeltaLine > endDeltaLine) {\n // 4. (partial) The token starts after the deletion range, on a line below...\n if (deletedLineCount === 0 && !hasDeletedTokens) {\n // early stop, there is no need to walk all the tokens and do nothing...\n newTokenCount = tokenCount;\n break;\n }\n tokenDeltaLine -= deletedLineCount;\n }\n else if (tokenDeltaLine === endDeltaLine && tokenStartCharacter >= endCharacter) {\n // 4. (continued) The token starts after the deletion range, on the last line where a deletion occurs\n if (horizontalShiftForFirstLineTokens && tokenDeltaLine === 0) {\n tokenStartCharacter += horizontalShiftForFirstLineTokens;\n tokenEndCharacter += horizontalShiftForFirstLineTokens;\n }\n tokenDeltaLine -= deletedLineCount;\n tokenStartCharacter -= (endCharacter - startCharacter);\n tokenEndCharacter -= (endCharacter - startCharacter);\n }\n else {\n throw new Error(`Not possible!`);\n }\n const destOffset = 4 * newTokenCount;\n tokens[destOffset] = tokenDeltaLine;\n tokens[destOffset + 1] = tokenStartCharacter;\n tokens[destOffset + 2] = tokenEndCharacter;\n tokens[destOffset + 3] = tokenMetadata;\n newTokenCount++;\n }\n this._tokenCount = newTokenCount;\n }\n acceptInsertText(deltaLine, character, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n // Here are the cases I used to think about this:\n //\n // 1. The token is completely before the insertion point\n // ----------- |\n // 2. The token ends precisely at the insertion point\n // -----------|\n // 3. The token contains the insertion point\n // -----|------\n // 4. The token starts precisely at the insertion point\n // |-----------\n // 5. The token is completely after the insertion point\n // | -----------\n //\n const isInsertingPreciselyOneWordCharacter = (eolCount === 0\n && firstLineLength === 1\n && ((firstCharCode >= 48 /* Digit0 */ && firstCharCode <= 57 /* Digit9 */)\n || (firstCharCode >= 65 /* A */ && firstCharCode <= 90 /* Z */)\n || (firstCharCode >= 97 /* a */ && firstCharCode <= 122 /* z */)));\n const tokens = this._tokens;\n const tokenCount = this._tokenCount;\n for (let i = 0; i < tokenCount; i++) {\n const offset = 4 * i;\n let tokenDeltaLine = tokens[offset];\n let tokenStartCharacter = tokens[offset + 1];\n let tokenEndCharacter = tokens[offset + 2];\n if (tokenDeltaLine < deltaLine || (tokenDeltaLine === deltaLine && tokenEndCharacter < character)) {\n // 1. The token is completely before the insertion point\n // => nothing to do\n continue;\n }\n else if (tokenDeltaLine === deltaLine && tokenEndCharacter === character) {\n // 2. The token ends precisely at the insertion point\n // => expand the end character only if inserting precisely one character that is a word character\n if (isInsertingPreciselyOneWordCharacter) {\n tokenEndCharacter += 1;\n }\n else {\n continue;\n }\n }\n else if (tokenDeltaLine === deltaLine && tokenStartCharacter < character && character < tokenEndCharacter) {\n // 3. The token contains the insertion point\n if (eolCount === 0) {\n // => just expand the end character\n tokenEndCharacter += firstLineLength;\n }\n else {\n // => cut off the token\n tokenEndCharacter = character;\n }\n }\n else {\n // 4. or 5.\n if (tokenDeltaLine === deltaLine && tokenStartCharacter === character) {\n // 4. The token starts precisely at the insertion point\n // => grow the token (by keeping its start constant) only if inserting precisely one character that is a word character\n // => otherwise behave as in case 5.\n if (isInsertingPreciselyOneWordCharacter) {\n continue;\n }\n }\n // => the token must move and keep its size constant\n if (tokenDeltaLine === deltaLine) {\n tokenDeltaLine += eolCount;\n // this token is on the line where the insertion is taking place\n if (eolCount === 0) {\n tokenStartCharacter += firstLineLength;\n tokenEndCharacter += firstLineLength;\n }\n else {\n const tokenLength = tokenEndCharacter - tokenStartCharacter;\n tokenStartCharacter = lastLineLength + (tokenStartCharacter - character);\n tokenEndCharacter = tokenStartCharacter + tokenLength;\n }\n }\n else {\n tokenDeltaLine += eolCount;\n }\n }\n tokens[offset] = tokenDeltaLine;\n tokens[offset + 1] = tokenStartCharacter;\n tokens[offset + 2] = tokenEndCharacter;\n }\n }\n}\nexport class LineTokens2 {\n constructor(tokens) {\n this._tokens = tokens;\n }\n getCount() {\n return this._tokens.length / 4;\n }\n getStartCharacter(tokenIndex) {\n return this._tokens[4 * tokenIndex + 1];\n }\n getEndCharacter(tokenIndex) {\n return this._tokens[4 * tokenIndex + 2];\n }\n getMetadata(tokenIndex) {\n return this._tokens[4 * tokenIndex + 3];\n }\n}\nexport class MultilineTokens2 {\n constructor(startLineNumber, tokens) {\n this.startLineNumber = startLineNumber;\n this.tokens = tokens;\n this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine();\n }\n toString() {\n return this.tokens.toString(this.startLineNumber);\n }\n _updateEndLineNumber() {\n this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine();\n }\n isEmpty() {\n return this.tokens.isEmpty();\n }\n getLineTokens(lineNumber) {\n if (this.startLineNumber <= lineNumber && lineNumber <= this.endLineNumber) {\n return this.tokens.getLineTokens(lineNumber - this.startLineNumber);\n }\n return null;\n }\n getRange() {\n const deltaRange = this.tokens.getRange();\n if (!deltaRange) {\n return deltaRange;\n }\n return new Range(this.startLineNumber + deltaRange.startLineNumber, deltaRange.startColumn, this.startLineNumber + deltaRange.endLineNumber, deltaRange.endColumn);\n }\n removeTokens(range) {\n const startLineIndex = range.startLineNumber - this.startLineNumber;\n const endLineIndex = range.endLineNumber - this.startLineNumber;\n this.startLineNumber += this.tokens.removeTokens(startLineIndex, range.startColumn - 1, endLineIndex, range.endColumn - 1);\n this._updateEndLineNumber();\n }\n split(range) {\n // split tokens to two:\n // a) all the tokens before `range`\n // b) all the tokens after `range`\n const startLineIndex = range.startLineNumber - this.startLineNumber;\n const endLineIndex = range.endLineNumber - this.startLineNumber;\n const [a, b, bDeltaLine] = this.tokens.split(startLineIndex, range.startColumn - 1, endLineIndex, range.endColumn - 1);\n return [new MultilineTokens2(this.startLineNumber, a), new MultilineTokens2(this.startLineNumber + bDeltaLine, b)];\n }\n applyEdit(range, text) {\n const [eolCount, firstLineLength, lastLineLength] = countEOL(text);\n this.acceptEdit(range, eolCount, firstLineLength, lastLineLength, text.length > 0 ? text.charCodeAt(0) : 0 /* Null */);\n }\n acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n this._acceptDeleteRange(range);\n this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount, firstLineLength, lastLineLength, firstCharCode);\n this._updateEndLineNumber();\n }\n _acceptDeleteRange(range) {\n if (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n // Nothing to delete\n return;\n }\n const firstLineIndex = range.startLineNumber - this.startLineNumber;\n const lastLineIndex = range.endLineNumber - this.startLineNumber;\n if (lastLineIndex < 0) {\n // this deletion occurs entirely before this block, so we only need to adjust line numbers\n const deletedLinesCount = lastLineIndex - firstLineIndex;\n this.startLineNumber -= deletedLinesCount;\n return;\n }\n const tokenMaxDeltaLine = this.tokens.getMaxDeltaLine();\n if (firstLineIndex >= tokenMaxDeltaLine + 1) {\n // this deletion occurs entirely after this block, so there is nothing to do\n return;\n }\n if (firstLineIndex < 0 && lastLineIndex >= tokenMaxDeltaLine + 1) {\n // this deletion completely encompasses this block\n this.startLineNumber = 0;\n this.tokens.clear();\n return;\n }\n if (firstLineIndex < 0) {\n const deletedBefore = -firstLineIndex;\n this.startLineNumber -= deletedBefore;\n this.tokens.acceptDeleteRange(range.startColumn - 1, 0, 0, lastLineIndex, range.endColumn - 1);\n }\n else {\n this.tokens.acceptDeleteRange(0, firstLineIndex, range.startColumn - 1, lastLineIndex, range.endColumn - 1);\n }\n }\n _acceptInsertText(position, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n if (eolCount === 0 && firstLineLength === 0) {\n // Nothing to insert\n return;\n }\n const lineIndex = position.lineNumber - this.startLineNumber;\n if (lineIndex < 0) {\n // this insertion occurs before this block, so we only need to adjust line numbers\n this.startLineNumber += eolCount;\n return;\n }\n const tokenMaxDeltaLine = this.tokens.getMaxDeltaLine();\n if (lineIndex >= tokenMaxDeltaLine + 1) {\n // this insertion occurs after this block, so there is nothing to do\n return;\n }\n this.tokens.acceptInsertText(lineIndex, position.column - 1, eolCount, firstLineLength, lastLineLength, firstCharCode);\n }\n}\nexport class MultilineTokens {\n constructor(startLineNumber, tokens) {\n this.startLineNumber = startLineNumber;\n this.tokens = tokens;\n }\n}\nfunction toUint32Array(arr) {\n if (arr instanceof Uint32Array) {\n return arr;\n }\n else {\n return new Uint32Array(arr);\n }\n}\nexport class TokensStore2 {\n constructor(languageIdCodec) {\n this._pieces = [];\n this._isComplete = false;\n this._languageIdCodec = languageIdCodec;\n }\n flush() {\n this._pieces = [];\n this._isComplete = false;\n }\n isEmpty() {\n return (this._pieces.length === 0);\n }\n set(pieces, isComplete) {\n this._pieces = pieces || [];\n this._isComplete = isComplete;\n }\n setPartial(_range, pieces) {\n // console.log(`setPartial ${_range} ${pieces.map(p => p.toString()).join(', ')}`);\n let range = _range;\n if (pieces.length > 0) {\n const _firstRange = pieces[0].getRange();\n const _lastRange = pieces[pieces.length - 1].getRange();\n if (!_firstRange || !_lastRange) {\n return _range;\n }\n range = _range.plusRange(_firstRange).plusRange(_lastRange);\n }\n let insertPosition = null;\n for (let i = 0, len = this._pieces.length; i < len; i++) {\n const piece = this._pieces[i];\n if (piece.endLineNumber < range.startLineNumber) {\n // this piece is before the range\n continue;\n }\n if (piece.startLineNumber > range.endLineNumber) {\n // this piece is after the range, so mark the spot before this piece\n // as a good insertion position and stop looping\n insertPosition = insertPosition || { index: i };\n break;\n }\n // this piece might intersect with the range\n piece.removeTokens(range);\n if (piece.isEmpty()) {\n // remove the piece if it became empty\n this._pieces.splice(i, 1);\n i--;\n len--;\n continue;\n }\n if (piece.endLineNumber < range.startLineNumber) {\n // after removal, this piece is before the range\n continue;\n }\n if (piece.startLineNumber > range.endLineNumber) {\n // after removal, this piece is after the range\n insertPosition = insertPosition || { index: i };\n continue;\n }\n // after removal, this piece contains the range\n const [a, b] = piece.split(range);\n if (a.isEmpty()) {\n // this piece is actually after the range\n insertPosition = insertPosition || { index: i };\n continue;\n }\n if (b.isEmpty()) {\n // this piece is actually before the range\n continue;\n }\n this._pieces.splice(i, 1, a, b);\n i++;\n len++;\n insertPosition = insertPosition || { index: i };\n }\n insertPosition = insertPosition || { index: this._pieces.length };\n if (pieces.length > 0) {\n this._pieces = arrays.arrayInsert(this._pieces, insertPosition.index, pieces);\n }\n // console.log(`I HAVE ${this._pieces.length} pieces`);\n // console.log(`${this._pieces.map(p => p.toString()).join('\\n')}`);\n return range;\n }\n isComplete() {\n return this._isComplete;\n }\n addSemanticTokens(lineNumber, aTokens) {\n const pieces = this._pieces;\n if (pieces.length === 0) {\n return aTokens;\n }\n const pieceIndex = TokensStore2._findFirstPieceWithLine(pieces, lineNumber);\n const bTokens = pieces[pieceIndex].getLineTokens(lineNumber);\n if (!bTokens) {\n return aTokens;\n }\n const aLen = aTokens.getCount();\n const bLen = bTokens.getCount();\n let aIndex = 0;\n let result = [], resultLen = 0;\n let lastEndOffset = 0;\n const emitToken = (endOffset, metadata) => {\n if (endOffset === lastEndOffset) {\n return;\n }\n lastEndOffset = endOffset;\n result[resultLen++] = endOffset;\n result[resultLen++] = metadata;\n };\n for (let bIndex = 0; bIndex < bLen; bIndex++) {\n const bStartCharacter = bTokens.getStartCharacter(bIndex);\n const bEndCharacter = bTokens.getEndCharacter(bIndex);\n const bMetadata = bTokens.getMetadata(bIndex);\n const bMask = (((bMetadata & 1 /* SEMANTIC_USE_ITALIC */) ? 2048 /* ITALIC_MASK */ : 0)\n | ((bMetadata & 2 /* SEMANTIC_USE_BOLD */) ? 4096 /* BOLD_MASK */ : 0)\n | ((bMetadata & 4 /* SEMANTIC_USE_UNDERLINE */) ? 8192 /* UNDERLINE_MASK */ : 0)\n | ((bMetadata & 8 /* SEMANTIC_USE_FOREGROUND */) ? 8372224 /* FOREGROUND_MASK */ : 0)\n | ((bMetadata & 16 /* SEMANTIC_USE_BACKGROUND */) ? 4286578688 /* BACKGROUND_MASK */ : 0)) >>> 0;\n const aMask = (~bMask) >>> 0;\n // push any token from `a` that is before `b`\n while (aIndex < aLen && aTokens.getEndOffset(aIndex) <= bStartCharacter) {\n emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n aIndex++;\n }\n // push the token from `a` if it intersects the token from `b`\n if (aIndex < aLen && aTokens.getStartOffset(aIndex) < bStartCharacter) {\n emitToken(bStartCharacter, aTokens.getMetadata(aIndex));\n }\n // skip any tokens from `a` that are contained inside `b`\n while (aIndex < aLen && aTokens.getEndOffset(aIndex) < bEndCharacter) {\n emitToken(aTokens.getEndOffset(aIndex), (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n aIndex++;\n }\n if (aIndex < aLen) {\n emitToken(bEndCharacter, (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n if (aTokens.getEndOffset(aIndex) === bEndCharacter) {\n // `a` ends exactly at the same spot as `b`!\n aIndex++;\n }\n }\n else {\n const aMergeIndex = Math.min(Math.max(0, aIndex - 1), aLen - 1);\n // push the token from `b`\n emitToken(bEndCharacter, (aTokens.getMetadata(aMergeIndex) & aMask) | (bMetadata & bMask));\n }\n }\n // push the remaining tokens from `a`\n while (aIndex < aLen) {\n emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n aIndex++;\n }\n return new LineTokens(new Uint32Array(result), aTokens.getLineContent(), this._languageIdCodec);\n }\n static _findFirstPieceWithLine(pieces, lineNumber) {\n let low = 0;\n let high = pieces.length - 1;\n while (low < high) {\n let mid = low + Math.floor((high - low) / 2);\n if (pieces[mid].endLineNumber < lineNumber) {\n low = mid + 1;\n }\n else if (pieces[mid].startLineNumber > lineNumber) {\n high = mid - 1;\n }\n else {\n while (mid > low && pieces[mid - 1].startLineNumber <= lineNumber && lineNumber <= pieces[mid - 1].endLineNumber) {\n mid--;\n }\n return mid;\n }\n }\n return low;\n }\n //#region Editing\n acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n for (const piece of this._pieces) {\n piece.acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode);\n }\n }\n}\nexport class TokensStore {\n constructor(languageIdCodec) {\n this._lineTokens = [];\n this._len = 0;\n this._languageIdCodec = languageIdCodec;\n }\n flush() {\n this._lineTokens = [];\n this._len = 0;\n }\n getTokens(topLevelLanguageId, lineIndex, lineText) {\n let rawLineTokens = null;\n if (lineIndex < this._len) {\n rawLineTokens = this._lineTokens[lineIndex];\n }\n if (rawLineTokens !== null && rawLineTokens !== EMPTY_LINE_TOKENS) {\n return new LineTokens(toUint32Array(rawLineTokens), lineText, this._languageIdCodec);\n }\n const lineTokens = new Uint32Array(2);\n lineTokens[0] = lineText.length;\n lineTokens[1] = getDefaultMetadata(this._languageIdCodec.encodeLanguageId(topLevelLanguageId));\n return new LineTokens(lineTokens, lineText, this._languageIdCodec);\n }\n static _massageTokens(topLevelLanguageId, lineTextLength, _tokens) {\n const tokens = _tokens ? toUint32Array(_tokens) : null;\n if (lineTextLength === 0) {\n let hasDifferentLanguageId = false;\n if (tokens && tokens.length > 1) {\n hasDifferentLanguageId = (TokenMetadata.getLanguageId(tokens[1]) !== topLevelLanguageId);\n }\n if (!hasDifferentLanguageId) {\n return EMPTY_LINE_TOKENS;\n }\n }\n if (!tokens || tokens.length === 0) {\n const tokens = new Uint32Array(2);\n tokens[0] = lineTextLength;\n tokens[1] = getDefaultMetadata(topLevelLanguageId);\n return tokens.buffer;\n }\n // Ensure the last token covers the end of the text\n tokens[tokens.length - 2] = lineTextLength;\n if (tokens.byteOffset === 0 && tokens.byteLength === tokens.buffer.byteLength) {\n // Store directly the ArrayBuffer pointer to save an object\n return tokens.buffer;\n }\n return tokens;\n }\n _ensureLine(lineIndex) {\n while (lineIndex >= this._len) {\n this._lineTokens[this._len] = null;\n this._len++;\n }\n }\n _deleteLines(start, deleteCount) {\n if (deleteCount === 0) {\n return;\n }\n if (start + deleteCount > this._len) {\n deleteCount = this._len - start;\n }\n this._lineTokens.splice(start, deleteCount);\n this._len -= deleteCount;\n }\n _insertLines(insertIndex, insertCount) {\n if (insertCount === 0) {\n return;\n }\n let lineTokens = [];\n for (let i = 0; i < insertCount; i++) {\n lineTokens[i] = null;\n }\n this._lineTokens = arrays.arrayInsert(this._lineTokens, insertIndex, lineTokens);\n this._len += insertCount;\n }\n setTokens(topLevelLanguageId, lineIndex, lineTextLength, _tokens, checkEquality) {\n const tokens = TokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(topLevelLanguageId), lineTextLength, _tokens);\n this._ensureLine(lineIndex);\n const oldTokens = this._lineTokens[lineIndex];\n this._lineTokens[lineIndex] = tokens;\n if (checkEquality) {\n return !TokensStore._equals(oldTokens, tokens);\n }\n return false;\n }\n static _equals(_a, _b) {\n if (!_a || !_b) {\n return !_a && !_b;\n }\n const a = toUint32Array(_a);\n const b = toUint32Array(_b);\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, len = a.length; i < len; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n //#region Editing\n acceptEdit(range, eolCount, firstLineLength) {\n this._acceptDeleteRange(range);\n this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount, firstLineLength);\n }\n _acceptDeleteRange(range) {\n const firstLineIndex = range.startLineNumber - 1;\n if (firstLineIndex >= this._len) {\n return;\n }\n if (range.startLineNumber === range.endLineNumber) {\n if (range.startColumn === range.endColumn) {\n // Nothing to delete\n return;\n }\n this._lineTokens[firstLineIndex] = TokensStore._delete(this._lineTokens[firstLineIndex], range.startColumn - 1, range.endColumn - 1);\n return;\n }\n this._lineTokens[firstLineIndex] = TokensStore._deleteEnding(this._lineTokens[firstLineIndex], range.startColumn - 1);\n const lastLineIndex = range.endLineNumber - 1;\n let lastLineTokens = null;\n if (lastLineIndex < this._len) {\n lastLineTokens = TokensStore._deleteBeginning(this._lineTokens[lastLineIndex], range.endColumn - 1);\n }\n // Take remaining text on last line and append it to remaining text on first line\n this._lineTokens[firstLineIndex] = TokensStore._append(this._lineTokens[firstLineIndex], lastLineTokens);\n // Delete middle lines\n this._deleteLines(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n }\n _acceptInsertText(position, eolCount, firstLineLength) {\n if (eolCount === 0 && firstLineLength === 0) {\n // Nothing to insert\n return;\n }\n const lineIndex = position.lineNumber - 1;\n if (lineIndex >= this._len) {\n return;\n }\n if (eolCount === 0) {\n // Inserting text on one line\n this._lineTokens[lineIndex] = TokensStore._insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n return;\n }\n this._lineTokens[lineIndex] = TokensStore._deleteEnding(this._lineTokens[lineIndex], position.column - 1);\n this._lineTokens[lineIndex] = TokensStore._insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n this._insertLines(position.lineNumber, eolCount);\n }\n static _deleteBeginning(lineTokens, toChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n return TokensStore._delete(lineTokens, 0, toChIndex);\n }\n static _deleteEnding(lineTokens, fromChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const lineTextLength = tokens[tokens.length - 2];\n return TokensStore._delete(lineTokens, fromChIndex, lineTextLength);\n }\n static _delete(lineTokens, fromChIndex, toChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS || fromChIndex === toChIndex) {\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const tokensCount = (tokens.length >>> 1);\n // special case: deleting everything\n if (fromChIndex === 0 && tokens[tokens.length - 2] === toChIndex) {\n return EMPTY_LINE_TOKENS;\n }\n const fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, fromChIndex);\n const fromTokenStartOffset = (fromTokenIndex > 0 ? tokens[(fromTokenIndex - 1) << 1] : 0);\n const fromTokenEndOffset = tokens[fromTokenIndex << 1];\n if (toChIndex < fromTokenEndOffset) {\n // the delete range is inside a single token\n const delta = (toChIndex - fromChIndex);\n for (let i = fromTokenIndex; i < tokensCount; i++) {\n tokens[i << 1] -= delta;\n }\n return lineTokens;\n }\n let dest;\n let lastEnd;\n if (fromTokenStartOffset !== fromChIndex) {\n tokens[fromTokenIndex << 1] = fromChIndex;\n dest = ((fromTokenIndex + 1) << 1);\n lastEnd = fromChIndex;\n }\n else {\n dest = (fromTokenIndex << 1);\n lastEnd = fromTokenStartOffset;\n }\n const delta = (toChIndex - fromChIndex);\n for (let tokenIndex = fromTokenIndex + 1; tokenIndex < tokensCount; tokenIndex++) {\n const tokenEndOffset = tokens[tokenIndex << 1] - delta;\n if (tokenEndOffset > lastEnd) {\n tokens[dest++] = tokenEndOffset;\n tokens[dest++] = tokens[(tokenIndex << 1) + 1];\n lastEnd = tokenEndOffset;\n }\n }\n if (dest === tokens.length) {\n // nothing to trim\n return lineTokens;\n }\n let tmp = new Uint32Array(dest);\n tmp.set(tokens.subarray(0, dest), 0);\n return tmp.buffer;\n }\n static _append(lineTokens, _otherTokens) {\n if (_otherTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n if (lineTokens === EMPTY_LINE_TOKENS) {\n return _otherTokens;\n }\n if (lineTokens === null) {\n return lineTokens;\n }\n if (_otherTokens === null) {\n // cannot determine combined line length...\n return null;\n }\n const myTokens = toUint32Array(lineTokens);\n const otherTokens = toUint32Array(_otherTokens);\n const otherTokensCount = (otherTokens.length >>> 1);\n let result = new Uint32Array(myTokens.length + otherTokens.length);\n result.set(myTokens, 0);\n let dest = myTokens.length;\n const delta = myTokens[myTokens.length - 2];\n for (let i = 0; i < otherTokensCount; i++) {\n result[dest++] = otherTokens[(i << 1)] + delta;\n result[dest++] = otherTokens[(i << 1) + 1];\n }\n return result.buffer;\n }\n static _insert(lineTokens, chIndex, textLength) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n // nothing to do\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const tokensCount = (tokens.length >>> 1);\n let fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, chIndex);\n if (fromTokenIndex > 0) {\n const fromTokenStartOffset = tokens[(fromTokenIndex - 1) << 1];\n if (fromTokenStartOffset === chIndex) {\n fromTokenIndex--;\n }\n }\n for (let tokenIndex = fromTokenIndex; tokenIndex < tokensCount; tokenIndex++) {\n tokens[tokenIndex << 1] += textLength;\n }\n return lineTokens;\n }\n}\n","export function isNonNullObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport * as stringBuilder from '../../core/stringBuilder.js';\nimport { Range } from '../../core/range.js';\n/**\n * Represents a grouping of colliding bracket pairs.\n *\n * Most of the times this contains a single bracket pair,\n * but sometimes this contains multiple bracket pairs in cases\n * where the same string appears as a closing bracket for multiple\n * bracket pairs, or the same string appears an opening bracket for\n * multiple bracket pairs.\n *\n * e.g. of a group containing a single pair:\n * open: ['{'], close: ['}']\n *\n * e.g. of a group containing multiple pairs:\n * open: ['if', 'for'], close: ['end', 'end']\n */\nexport class RichEditBracket {\n constructor(languageId, index, open, close, forwardRegex, reversedRegex) {\n this._richEditBracketBrand = undefined;\n this.languageId = languageId;\n this.index = index;\n this.open = open;\n this.close = close;\n this.forwardRegex = forwardRegex;\n this.reversedRegex = reversedRegex;\n this._openSet = RichEditBracket._toSet(this.open);\n this._closeSet = RichEditBracket._toSet(this.close);\n }\n /**\n * Check if the provided `text` is an open bracket in this group.\n */\n isOpen(text) {\n return this._openSet.has(text);\n }\n /**\n * Check if the provided `text` is a close bracket in this group.\n */\n isClose(text) {\n return this._closeSet.has(text);\n }\n static _toSet(arr) {\n const result = new Set();\n for (const element of arr) {\n result.add(element);\n }\n return result;\n }\n}\n/**\n * Groups together brackets that have equal open or close sequences.\n *\n * For example, if the following brackets are defined:\n * ['IF','END']\n * ['for','end']\n * ['{','}']\n *\n * Then the grouped brackets would be:\n * { open: ['if', 'for'], close: ['end', 'end'] }\n * { open: ['{'], close: ['}'] }\n *\n */\nfunction groupFuzzyBrackets(brackets) {\n const N = brackets.length;\n brackets = brackets.map(b => [b[0].toLowerCase(), b[1].toLowerCase()]);\n const group = [];\n for (let i = 0; i < N; i++) {\n group[i] = i;\n }\n const areOverlapping = (a, b) => {\n const [aOpen, aClose] = a;\n const [bOpen, bClose] = b;\n return (aOpen === bOpen || aOpen === bClose || aClose === bOpen || aClose === bClose);\n };\n const mergeGroups = (g1, g2) => {\n const newG = Math.min(g1, g2);\n const oldG = Math.max(g1, g2);\n for (let i = 0; i < N; i++) {\n if (group[i] === oldG) {\n group[i] = newG;\n }\n }\n };\n // group together brackets that have the same open or the same close sequence\n for (let i = 0; i < N; i++) {\n const a = brackets[i];\n for (let j = i + 1; j < N; j++) {\n const b = brackets[j];\n if (areOverlapping(a, b)) {\n mergeGroups(group[i], group[j]);\n }\n }\n }\n const result = [];\n for (let g = 0; g < N; g++) {\n let currentOpen = [];\n let currentClose = [];\n for (let i = 0; i < N; i++) {\n if (group[i] === g) {\n const [open, close] = brackets[i];\n currentOpen.push(open);\n currentClose.push(close);\n }\n }\n if (currentOpen.length > 0) {\n result.push({\n open: currentOpen,\n close: currentClose\n });\n }\n }\n return result;\n}\nexport class RichEditBrackets {\n constructor(languageId, _brackets) {\n this._richEditBracketsBrand = undefined;\n const brackets = groupFuzzyBrackets(_brackets);\n this.brackets = brackets.map((b, index) => {\n return new RichEditBracket(languageId, index, b.open, b.close, getRegexForBracketPair(b.open, b.close, brackets, index), getReversedRegexForBracketPair(b.open, b.close, brackets, index));\n });\n this.forwardRegex = getRegexForBrackets(this.brackets);\n this.reversedRegex = getReversedRegexForBrackets(this.brackets);\n this.textIsBracket = {};\n this.textIsOpenBracket = {};\n this.maxBracketLength = 0;\n for (const bracket of this.brackets) {\n for (const open of bracket.open) {\n this.textIsBracket[open] = bracket;\n this.textIsOpenBracket[open] = true;\n this.maxBracketLength = Math.max(this.maxBracketLength, open.length);\n }\n for (const close of bracket.close) {\n this.textIsBracket[close] = bracket;\n this.textIsOpenBracket[close] = false;\n this.maxBracketLength = Math.max(this.maxBracketLength, close.length);\n }\n }\n }\n}\nfunction collectSuperstrings(str, brackets, currentIndex, dest) {\n for (let i = 0, len = brackets.length; i < len; i++) {\n if (i === currentIndex) {\n continue;\n }\n const bracket = brackets[i];\n for (const open of bracket.open) {\n if (open.indexOf(str) >= 0) {\n dest.push(open);\n }\n }\n for (const close of bracket.close) {\n if (close.indexOf(str) >= 0) {\n dest.push(close);\n }\n }\n }\n}\nfunction lengthcmp(a, b) {\n return a.length - b.length;\n}\nfunction unique(arr) {\n if (arr.length <= 1) {\n return arr;\n }\n const result = [];\n const seen = new Set();\n for (const element of arr) {\n if (seen.has(element)) {\n continue;\n }\n result.push(element);\n seen.add(element);\n }\n return result;\n}\n/**\n * Create a regular expression that can be used to search forward in a piece of text\n * for a group of bracket pairs. But this regex must be built in a way in which\n * it is aware of the other bracket pairs defined for the language.\n *\n * For example, if a language contains the following bracket pairs:\n * ['begin', 'end']\n * ['if', 'end if']\n * The two bracket pairs do not collide because no open or close brackets are equal.\n * So the function getRegexForBracketPair is called twice, once with\n * the ['begin'], ['end'] group consisting of one bracket pair, and once with\n * the ['if'], ['end if'] group consiting of the other bracket pair.\n *\n * But there could be a situation where an occurrence of 'end if' is mistaken\n * for an occurrence of 'end'.\n *\n * Therefore, for the bracket pair ['begin', 'end'], the regex will also\n * target 'end if'. The regex will be something like:\n * /(\\bend if\\b)|(\\bend\\b)|(\\bif\\b)/\n *\n * The regex also searches for \"superstrings\" (other brackets that might be mistaken with the current bracket).\n *\n */\nfunction getRegexForBracketPair(open, close, brackets, currentIndex) {\n // search in all brackets for other brackets that are a superstring of these brackets\n let pieces = [];\n pieces = pieces.concat(open);\n pieces = pieces.concat(close);\n for (let i = 0, len = pieces.length; i < len; i++) {\n collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n }\n pieces = unique(pieces);\n pieces.sort(lengthcmp);\n pieces.reverse();\n return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * This function also has the fine details of `getRegexForBracketPair`. For the same example\n * given above, the regex produced here would look like:\n * /(\\bfi dne\\b)|(\\bdne\\b)|(\\bfi\\b)/\n */\nfunction getReversedRegexForBracketPair(open, close, brackets, currentIndex) {\n // search in all brackets for other brackets that are a superstring of these brackets\n let pieces = [];\n pieces = pieces.concat(open);\n pieces = pieces.concat(close);\n for (let i = 0, len = pieces.length; i < len; i++) {\n collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n }\n pieces = unique(pieces);\n pieces.sort(lengthcmp);\n pieces.reverse();\n return createBracketOrRegExp(pieces.map(toReversedString));\n}\n/**\n * Creates a regular expression that targets all bracket pairs.\n *\n * e.g. for the bracket pairs:\n * ['{','}']\n * ['begin,'end']\n * ['for','end']\n * the regex would look like:\n * /(\\{)|(\\})|(\\bbegin\\b)|(\\bend\\b)|(\\bfor\\b)/\n */\nfunction getRegexForBrackets(brackets) {\n let pieces = [];\n for (const bracket of brackets) {\n for (const open of bracket.open) {\n pieces.push(open);\n }\n for (const close of bracket.close) {\n pieces.push(close);\n }\n }\n pieces = unique(pieces);\n return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * e.g. for the bracket pairs:\n * ['{','}']\n * ['begin,'end']\n * ['for','end']\n * the regex would look like:\n * /(\\{)|(\\})|(\\bnigeb\\b)|(\\bdne\\b)|(\\brof\\b)/\n */\nfunction getReversedRegexForBrackets(brackets) {\n let pieces = [];\n for (const bracket of brackets) {\n for (const open of bracket.open) {\n pieces.push(open);\n }\n for (const close of bracket.close) {\n pieces.push(close);\n }\n }\n pieces = unique(pieces);\n return createBracketOrRegExp(pieces.map(toReversedString));\n}\nfunction prepareBracketForRegExp(str) {\n // This bracket pair uses letters like e.g. \"begin\" - \"end\"\n const insertWordBoundaries = (/^[\\w ]+$/.test(str));\n str = strings.escapeRegExpCharacters(str);\n return (insertWordBoundaries ? `\\\\b${str}\\\\b` : str);\n}\nfunction createBracketOrRegExp(pieces) {\n let regexStr = `(${pieces.map(prepareBracketForRegExp).join(')|(')})`;\n return strings.createRegExp(regexStr, true);\n}\nconst toReversedString = (function () {\n function reverse(str) {\n if (stringBuilder.hasTextDecoder) {\n // create a Uint16Array and then use a TextDecoder to create a string\n const arr = new Uint16Array(str.length);\n let offset = 0;\n for (let i = str.length - 1; i >= 0; i--) {\n arr[offset++] = str.charCodeAt(i);\n }\n return stringBuilder.getPlatformTextDecoder().decode(arr);\n }\n else {\n let result = [], resultLen = 0;\n for (let i = str.length - 1; i >= 0; i--) {\n result[resultLen++] = str.charAt(i);\n }\n return result.join('');\n }\n }\n let lastInput = null;\n let lastOutput = null;\n return function toReversedString(str) {\n if (lastInput !== str) {\n lastInput = str;\n lastOutput = reverse(lastInput);\n }\n return lastOutput;\n };\n})();\nexport class BracketsUtils {\n static _findPrevBracketInText(reversedBracketRegex, lineNumber, reversedText, offset) {\n let m = reversedText.match(reversedBracketRegex);\n if (!m) {\n return null;\n }\n let matchOffset = reversedText.length - (m.index || 0);\n let matchLength = m[0].length;\n let absoluteMatchOffset = offset + matchOffset;\n return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);\n }\n static findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, startOffset, endOffset) {\n // Because JS does not support backwards regex search, we search forwards in a reversed string with a reversed regex ;)\n const reversedLineText = toReversedString(lineText);\n const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);\n return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);\n }\n static findNextBracketInText(bracketRegex, lineNumber, text, offset) {\n let m = text.match(bracketRegex);\n if (!m) {\n return null;\n }\n let matchOffset = m.index || 0;\n let matchLength = m[0].length;\n if (matchLength === 0) {\n return null;\n }\n let absoluteMatchOffset = offset + matchOffset;\n return new Range(lineNumber, absoluteMatchOffset + 1, lineNumber, absoluteMatchOffset + 1 + matchLength);\n }\n static findNextBracketInRange(bracketRegex, lineNumber, lineText, startOffset, endOffset) {\n const substr = lineText.substring(startOffset, endOffset);\n return this.findNextBracketInText(bracketRegex, lineNumber, substr, startOffset);\n }\n}\n","export const KTP_PREFIX = 'ktp';\nexport const KTP_SEPARATOR = '-';\nexport const KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport const DATAKTP_TARGET = 'data-ktp-target';\nexport const DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport const DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport const KTP_LAYER_ID = 'ktp-layer-id';\nexport const KTP_ARIA_SEPARATOR = ', ';\n\n// Events\nexport namespace KeytipEvents {\n export const KEYTIP_ADDED = 'keytipAdded';\n export const KEYTIP_REMOVED = 'keytipRemoved';\n export const KEYTIP_UPDATED = 'keytipUpdated';\n export const PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n export const PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n export const PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n export const ENTER_KEYTIP_MODE = 'enterKeytipMode';\n export const EXIT_KEYTIP_MODE = 'exitKeytipMode';\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ITelemetryService = createDecorator('telemetryService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as buffer from '../../../base/common/buffer.js';\nlet _utf16LE_TextDecoder;\nfunction getUTF16LE_TextDecoder() {\n if (!_utf16LE_TextDecoder) {\n _utf16LE_TextDecoder = new TextDecoder('UTF-16LE');\n }\n return _utf16LE_TextDecoder;\n}\nlet _utf16BE_TextDecoder;\nfunction getUTF16BE_TextDecoder() {\n if (!_utf16BE_TextDecoder) {\n _utf16BE_TextDecoder = new TextDecoder('UTF-16BE');\n }\n return _utf16BE_TextDecoder;\n}\nlet _platformTextDecoder;\nexport function getPlatformTextDecoder() {\n if (!_platformTextDecoder) {\n _platformTextDecoder = platform.isLittleEndian() ? getUTF16LE_TextDecoder() : getUTF16BE_TextDecoder();\n }\n return _platformTextDecoder;\n}\nexport const hasTextDecoder = (typeof TextDecoder !== 'undefined');\nexport let createStringBuilder;\nexport let decodeUTF16LE;\nif (hasTextDecoder) {\n createStringBuilder = (capacity) => new StringBuilder(capacity);\n decodeUTF16LE = standardDecodeUTF16LE;\n}\nelse {\n createStringBuilder = (capacity) => new CompatStringBuilder();\n decodeUTF16LE = compatDecodeUTF16LE;\n}\nfunction standardDecodeUTF16LE(source, offset, len) {\n const view = new Uint16Array(source.buffer, offset, len);\n if (len > 0 && (view[0] === 0xFEFF || view[0] === 0xFFFE)) {\n // UTF16 sometimes starts with a BOM https://de.wikipedia.org/wiki/Byte_Order_Mark\n // It looks like TextDecoder.decode will eat up a leading BOM (0xFEFF or 0xFFFE)\n // We don't want that behavior because we know the string is UTF16LE and the BOM should be maintained\n // So we use the manual decoder\n return compatDecodeUTF16LE(source, offset, len);\n }\n return getUTF16LE_TextDecoder().decode(view);\n}\nfunction compatDecodeUTF16LE(source, offset, len) {\n let result = [];\n let resultLen = 0;\n for (let i = 0; i < len; i++) {\n const charCode = buffer.readUInt16LE(source, offset);\n offset += 2;\n result[resultLen++] = String.fromCharCode(charCode);\n }\n return result.join('');\n}\nclass StringBuilder {\n constructor(capacity) {\n this._capacity = capacity | 0;\n this._buffer = new Uint16Array(this._capacity);\n this._completedStrings = null;\n this._bufferLength = 0;\n }\n reset() {\n this._completedStrings = null;\n this._bufferLength = 0;\n }\n build() {\n if (this._completedStrings !== null) {\n this._flushBuffer();\n return this._completedStrings.join('');\n }\n return this._buildBuffer();\n }\n _buildBuffer() {\n if (this._bufferLength === 0) {\n return '';\n }\n const view = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n return getPlatformTextDecoder().decode(view);\n }\n _flushBuffer() {\n const bufferString = this._buildBuffer();\n this._bufferLength = 0;\n if (this._completedStrings === null) {\n this._completedStrings = [bufferString];\n }\n else {\n this._completedStrings[this._completedStrings.length] = bufferString;\n }\n }\n write1(charCode) {\n const remainingSpace = this._capacity - this._bufferLength;\n if (remainingSpace <= 1) {\n if (remainingSpace === 0 || strings.isHighSurrogate(charCode)) {\n this._flushBuffer();\n }\n }\n this._buffer[this._bufferLength++] = charCode;\n }\n appendASCII(charCode) {\n if (this._bufferLength === this._capacity) {\n // buffer is full\n this._flushBuffer();\n }\n this._buffer[this._bufferLength++] = charCode;\n }\n appendASCIIString(str) {\n const strLen = str.length;\n if (this._bufferLength + strLen >= this._capacity) {\n // This string does not fit in the remaining buffer space\n this._flushBuffer();\n this._completedStrings[this._completedStrings.length] = str;\n return;\n }\n for (let i = 0; i < strLen; i++) {\n this._buffer[this._bufferLength++] = str.charCodeAt(i);\n }\n }\n}\nclass CompatStringBuilder {\n constructor() {\n this._pieces = [];\n this._piecesLen = 0;\n }\n reset() {\n this._pieces = [];\n this._piecesLen = 0;\n }\n build() {\n return this._pieces.join('');\n }\n write1(charCode) {\n this._pieces[this._piecesLen++] = String.fromCharCode(charCode);\n }\n appendASCII(charCode) {\n this._pieces[this._piecesLen++] = String.fromCharCode(charCode);\n }\n appendASCIIString(str) {\n this._pieces[this._piecesLen++] = str;\n }\n}\n","import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IClipboardService = createDecorator('clipboardService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { toUint8 } from '../../../base/common/uint.js';\n/**\n * A fast character classifier that uses a compact array for ASCII values.\n */\nexport class CharacterClassifier {\n constructor(_defaultValue) {\n let defaultValue = toUint8(_defaultValue);\n this._defaultValue = defaultValue;\n this._asciiMap = CharacterClassifier._createAsciiMap(defaultValue);\n this._map = new Map();\n }\n static _createAsciiMap(defaultValue) {\n let asciiMap = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n asciiMap[i] = defaultValue;\n }\n return asciiMap;\n }\n set(charCode, _value) {\n let value = toUint8(_value);\n if (charCode >= 0 && charCode < 256) {\n this._asciiMap[charCode] = value;\n }\n else {\n this._map.set(charCode, value);\n }\n }\n get(charCode) {\n if (charCode >= 0 && charCode < 256) {\n return this._asciiMap[charCode];\n }\n else {\n return (this._map.get(charCode) || this._defaultValue);\n }\n }\n}\nexport class CharacterSet {\n constructor() {\n this._actual = new CharacterClassifier(0 /* False */);\n }\n add(charCode) {\n this._actual.set(charCode, 1 /* True */);\n }\n has(charCode) {\n return (this._actual.get(charCode) === 1 /* True */);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Token {\n constructor(offset, type, language) {\n this._tokenBrand = undefined;\n this.offset = offset | 0; // @perf\n this.type = type;\n this.language = language;\n }\n toString() {\n return '(' + this.offset + ', ' + this.type + ')';\n }\n}\nexport class TokenizationResult {\n constructor(tokens, endState) {\n this._tokenizationResultBrand = undefined;\n this.tokens = tokens;\n this.endState = endState;\n }\n}\nexport class TokenizationResult2 {\n constructor(tokens, endState) {\n this._tokenizationResult2Brand = undefined;\n this.tokens = tokens;\n this.endState = endState;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { SingleCursorState } from './cursorCommon.js';\nimport { DeleteOperations } from './cursorDeleteOperations.js';\nimport { getMapForWordSeparators } from './wordCharacterClassifier.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nexport class WordOperations {\n static _createWord(lineContent, wordType, nextCharClass, start, end) {\n // console.log('WORD ==> ' + start + ' => ' + end + ':::: <<<' + lineContent.substring(start, end) + '>>>');\n return { start: start, end: end, wordType: wordType, nextCharClass: nextCharClass };\n }\n static _findPreviousWordOnLine(wordSeparators, model, position) {\n let lineContent = model.getLineContent(position.lineNumber);\n return this._doFindPreviousWordOnLine(lineContent, wordSeparators, position);\n }\n static _doFindPreviousWordOnLine(lineContent, wordSeparators, position) {\n let wordType = 0 /* None */;\n for (let chIndex = position.column - 2; chIndex >= 0; chIndex--) {\n let chCode = lineContent.charCodeAt(chIndex);\n let chClass = wordSeparators.get(chCode);\n if (chClass === 0 /* Regular */) {\n if (wordType === 2 /* Separator */) {\n return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n }\n wordType = 1 /* Regular */;\n }\n else if (chClass === 2 /* WordSeparator */) {\n if (wordType === 1 /* Regular */) {\n return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n }\n wordType = 2 /* Separator */;\n }\n else if (chClass === 1 /* Whitespace */) {\n if (wordType !== 0 /* None */) {\n return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators, wordType, chIndex + 1));\n }\n }\n }\n if (wordType !== 0 /* None */) {\n return this._createWord(lineContent, wordType, 1 /* Whitespace */, 0, this._findEndOfWord(lineContent, wordSeparators, wordType, 0));\n }\n return null;\n }\n static _findEndOfWord(lineContent, wordSeparators, wordType, startIndex) {\n let len = lineContent.length;\n for (let chIndex = startIndex; chIndex < len; chIndex++) {\n let chCode = lineContent.charCodeAt(chIndex);\n let chClass = wordSeparators.get(chCode);\n if (chClass === 1 /* Whitespace */) {\n return chIndex;\n }\n if (wordType === 1 /* Regular */ && chClass === 2 /* WordSeparator */) {\n return chIndex;\n }\n if (wordType === 2 /* Separator */ && chClass === 0 /* Regular */) {\n return chIndex;\n }\n }\n return len;\n }\n static _findNextWordOnLine(wordSeparators, model, position) {\n let lineContent = model.getLineContent(position.lineNumber);\n return this._doFindNextWordOnLine(lineContent, wordSeparators, position);\n }\n static _doFindNextWordOnLine(lineContent, wordSeparators, position) {\n let wordType = 0 /* None */;\n let len = lineContent.length;\n for (let chIndex = position.column - 1; chIndex < len; chIndex++) {\n let chCode = lineContent.charCodeAt(chIndex);\n let chClass = wordSeparators.get(chCode);\n if (chClass === 0 /* Regular */) {\n if (wordType === 2 /* Separator */) {\n return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n }\n wordType = 1 /* Regular */;\n }\n else if (chClass === 2 /* WordSeparator */) {\n if (wordType === 1 /* Regular */) {\n return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n }\n wordType = 2 /* Separator */;\n }\n else if (chClass === 1 /* Whitespace */) {\n if (wordType !== 0 /* None */) {\n return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators, wordType, chIndex - 1), chIndex);\n }\n }\n }\n if (wordType !== 0 /* None */) {\n return this._createWord(lineContent, wordType, 1 /* Whitespace */, this._findStartOfWord(lineContent, wordSeparators, wordType, len - 1), len);\n }\n return null;\n }\n static _findStartOfWord(lineContent, wordSeparators, wordType, startIndex) {\n for (let chIndex = startIndex; chIndex >= 0; chIndex--) {\n let chCode = lineContent.charCodeAt(chIndex);\n let chClass = wordSeparators.get(chCode);\n if (chClass === 1 /* Whitespace */) {\n return chIndex + 1;\n }\n if (wordType === 1 /* Regular */ && chClass === 2 /* WordSeparator */) {\n return chIndex + 1;\n }\n if (wordType === 2 /* Separator */ && chClass === 0 /* Regular */) {\n return chIndex + 1;\n }\n }\n return 0;\n }\n static moveWordLeft(wordSeparators, model, position, wordNavigationType) {\n let lineNumber = position.lineNumber;\n let column = position.column;\n if (column === 1) {\n if (lineNumber > 1) {\n lineNumber = lineNumber - 1;\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n let prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, column));\n if (wordNavigationType === 0 /* WordStart */) {\n return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n }\n if (wordNavigationType === 1 /* WordStartFast */) {\n if (prevWordOnLine\n && prevWordOnLine.wordType === 2 /* Separator */\n && prevWordOnLine.end - prevWordOnLine.start === 1\n && prevWordOnLine.nextCharClass === 0 /* Regular */) {\n // Skip over a word made up of one single separator and followed by a regular character\n prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n }\n return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n }\n if (wordNavigationType === 3 /* WordAccessibility */) {\n while (prevWordOnLine\n && prevWordOnLine.wordType === 2 /* Separator */) {\n // Skip over words made up of only separators\n prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n }\n return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n }\n // We are stopping at the ending of words\n if (prevWordOnLine && column <= prevWordOnLine.end + 1) {\n prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n }\n return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.end + 1 : 1);\n }\n static _moveWordPartLeft(model, position) {\n const lineNumber = position.lineNumber;\n const maxColumn = model.getLineMaxColumn(lineNumber);\n if (position.column === 1) {\n return (lineNumber > 1 ? new Position(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)) : position);\n }\n const lineContent = model.getLineContent(lineNumber);\n for (let column = position.column - 1; column > 1; column--) {\n const left = lineContent.charCodeAt(column - 2);\n const right = lineContent.charCodeAt(column - 1);\n if (left === 95 /* Underline */ && right !== 95 /* Underline */) {\n // snake_case_variables\n return new Position(lineNumber, column);\n }\n if (strings.isLowerAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n // camelCaseVariables\n return new Position(lineNumber, column);\n }\n if (strings.isUpperAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n // thisIsACamelCaseWithOneLetterWords\n if (column + 1 < maxColumn) {\n const rightRight = lineContent.charCodeAt(column);\n if (strings.isLowerAsciiLetter(rightRight)) {\n return new Position(lineNumber, column);\n }\n }\n }\n }\n return new Position(lineNumber, 1);\n }\n static moveWordRight(wordSeparators, model, position, wordNavigationType) {\n let lineNumber = position.lineNumber;\n let column = position.column;\n let movedDown = false;\n if (column === model.getLineMaxColumn(lineNumber)) {\n if (lineNumber < model.getLineCount()) {\n movedDown = true;\n lineNumber = lineNumber + 1;\n column = 1;\n }\n }\n let nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, column));\n if (wordNavigationType === 2 /* WordEnd */) {\n if (nextWordOnLine && nextWordOnLine.wordType === 2 /* Separator */) {\n if (nextWordOnLine.end - nextWordOnLine.start === 1 && nextWordOnLine.nextCharClass === 0 /* Regular */) {\n // Skip over a word made up of one single separator and followed by a regular character\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n }\n }\n if (nextWordOnLine) {\n column = nextWordOnLine.end + 1;\n }\n else {\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n else if (wordNavigationType === 3 /* WordAccessibility */) {\n if (movedDown) {\n // If we move to the next line, pretend that the cursor is right before the first character.\n // This is needed when the first word starts right at the first character - and in order not to miss it,\n // we need to start before.\n column = 0;\n }\n while (nextWordOnLine\n && (nextWordOnLine.wordType === 2 /* Separator */\n || nextWordOnLine.start + 1 <= column)) {\n // Skip over a word made up of one single separator\n // Also skip over word if it begins before current cursor position to ascertain we're moving forward at least 1 character.\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n }\n if (nextWordOnLine) {\n column = nextWordOnLine.start + 1;\n }\n else {\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n else {\n if (nextWordOnLine && !movedDown && column >= nextWordOnLine.start + 1) {\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n }\n if (nextWordOnLine) {\n column = nextWordOnLine.start + 1;\n }\n else {\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n return new Position(lineNumber, column);\n }\n static _moveWordPartRight(model, position) {\n const lineNumber = position.lineNumber;\n const maxColumn = model.getLineMaxColumn(lineNumber);\n if (position.column === maxColumn) {\n return (lineNumber < model.getLineCount() ? new Position(lineNumber + 1, 1) : position);\n }\n const lineContent = model.getLineContent(lineNumber);\n for (let column = position.column + 1; column < maxColumn; column++) {\n const left = lineContent.charCodeAt(column - 2);\n const right = lineContent.charCodeAt(column - 1);\n if (left !== 95 /* Underline */ && right === 95 /* Underline */) {\n // snake_case_variables\n return new Position(lineNumber, column);\n }\n if (strings.isLowerAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n // camelCaseVariables\n return new Position(lineNumber, column);\n }\n if (strings.isUpperAsciiLetter(left) && strings.isUpperAsciiLetter(right)) {\n // thisIsACamelCaseWithOneLetterWords\n if (column + 1 < maxColumn) {\n const rightRight = lineContent.charCodeAt(column);\n if (strings.isLowerAsciiLetter(rightRight)) {\n return new Position(lineNumber, column);\n }\n }\n }\n }\n return new Position(lineNumber, maxColumn);\n }\n static _deleteWordLeftWhitespace(model, position) {\n const lineContent = model.getLineContent(position.lineNumber);\n const startIndex = position.column - 2;\n const lastNonWhitespace = strings.lastNonWhitespaceIndex(lineContent, startIndex);\n if (lastNonWhitespace + 1 < startIndex) {\n return new Range(position.lineNumber, lastNonWhitespace + 2, position.lineNumber, position.column);\n }\n return null;\n }\n static deleteWordLeft(ctx, wordNavigationType) {\n const wordSeparators = ctx.wordSeparators;\n const model = ctx.model;\n const selection = ctx.selection;\n const whitespaceHeuristics = ctx.whitespaceHeuristics;\n if (!selection.isEmpty()) {\n return selection;\n }\n if (DeleteOperations.isAutoClosingPairDelete(ctx.autoClosingDelete, ctx.autoClosingBrackets, ctx.autoClosingQuotes, ctx.autoClosingPairs.autoClosingPairsOpenByEnd, ctx.model, [ctx.selection], ctx.autoClosedCharacters)) {\n const position = ctx.selection.getPosition();\n return new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column + 1);\n }\n const position = new Position(selection.positionLineNumber, selection.positionColumn);\n let lineNumber = position.lineNumber;\n let column = position.column;\n if (lineNumber === 1 && column === 1) {\n // Ignore deleting at beginning of file\n return null;\n }\n if (whitespaceHeuristics) {\n let r = this._deleteWordLeftWhitespace(model, position);\n if (r) {\n return r;\n }\n }\n let prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n if (wordNavigationType === 0 /* WordStart */) {\n if (prevWordOnLine) {\n column = prevWordOnLine.start + 1;\n }\n else {\n if (column > 1) {\n column = 1;\n }\n else {\n lineNumber--;\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n }\n else {\n if (prevWordOnLine && column <= prevWordOnLine.end + 1) {\n prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));\n }\n if (prevWordOnLine) {\n column = prevWordOnLine.end + 1;\n }\n else {\n if (column > 1) {\n column = 1;\n }\n else {\n lineNumber--;\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n }\n return new Range(lineNumber, column, position.lineNumber, position.column);\n }\n static deleteInsideWord(wordSeparators, model, selection) {\n if (!selection.isEmpty()) {\n return selection;\n }\n const position = new Position(selection.positionLineNumber, selection.positionColumn);\n let r = this._deleteInsideWordWhitespace(model, position);\n if (r) {\n return r;\n }\n return this._deleteInsideWordDetermineDeleteRange(wordSeparators, model, position);\n }\n static _charAtIsWhitespace(str, index) {\n const charCode = str.charCodeAt(index);\n return (charCode === 32 /* Space */ || charCode === 9 /* Tab */);\n }\n static _deleteInsideWordWhitespace(model, position) {\n const lineContent = model.getLineContent(position.lineNumber);\n const lineContentLength = lineContent.length;\n if (lineContentLength === 0) {\n // empty line\n return null;\n }\n let leftIndex = Math.max(position.column - 2, 0);\n if (!this._charAtIsWhitespace(lineContent, leftIndex)) {\n // touches a non-whitespace character to the left\n return null;\n }\n let rightIndex = Math.min(position.column - 1, lineContentLength - 1);\n if (!this._charAtIsWhitespace(lineContent, rightIndex)) {\n // touches a non-whitespace character to the right\n return null;\n }\n // walk over whitespace to the left\n while (leftIndex > 0 && this._charAtIsWhitespace(lineContent, leftIndex - 1)) {\n leftIndex--;\n }\n // walk over whitespace to the right\n while (rightIndex + 1 < lineContentLength && this._charAtIsWhitespace(lineContent, rightIndex + 1)) {\n rightIndex++;\n }\n return new Range(position.lineNumber, leftIndex + 1, position.lineNumber, rightIndex + 2);\n }\n static _deleteInsideWordDetermineDeleteRange(wordSeparators, model, position) {\n const lineContent = model.getLineContent(position.lineNumber);\n const lineLength = lineContent.length;\n if (lineLength === 0) {\n // empty line\n if (position.lineNumber > 1) {\n return new Range(position.lineNumber - 1, model.getLineMaxColumn(position.lineNumber - 1), position.lineNumber, 1);\n }\n else {\n if (position.lineNumber < model.getLineCount()) {\n return new Range(position.lineNumber, 1, position.lineNumber + 1, 1);\n }\n else {\n // empty model\n return new Range(position.lineNumber, 1, position.lineNumber, 1);\n }\n }\n }\n const touchesWord = (word) => {\n return (word.start + 1 <= position.column && position.column <= word.end + 1);\n };\n const createRangeWithPosition = (startColumn, endColumn) => {\n startColumn = Math.min(startColumn, position.column);\n endColumn = Math.max(endColumn, position.column);\n return new Range(position.lineNumber, startColumn, position.lineNumber, endColumn);\n };\n const deleteWordAndAdjacentWhitespace = (word) => {\n let startColumn = word.start + 1;\n let endColumn = word.end + 1;\n let expandedToTheRight = false;\n while (endColumn - 1 < lineLength && this._charAtIsWhitespace(lineContent, endColumn - 1)) {\n expandedToTheRight = true;\n endColumn++;\n }\n if (!expandedToTheRight) {\n while (startColumn > 1 && this._charAtIsWhitespace(lineContent, startColumn - 2)) {\n startColumn--;\n }\n }\n return createRangeWithPosition(startColumn, endColumn);\n };\n const prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n if (prevWordOnLine && touchesWord(prevWordOnLine)) {\n return deleteWordAndAdjacentWhitespace(prevWordOnLine);\n }\n const nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n if (nextWordOnLine && touchesWord(nextWordOnLine)) {\n return deleteWordAndAdjacentWhitespace(nextWordOnLine);\n }\n if (prevWordOnLine && nextWordOnLine) {\n return createRangeWithPosition(prevWordOnLine.end + 1, nextWordOnLine.start + 1);\n }\n if (prevWordOnLine) {\n return createRangeWithPosition(prevWordOnLine.start + 1, prevWordOnLine.end + 1);\n }\n if (nextWordOnLine) {\n return createRangeWithPosition(nextWordOnLine.start + 1, nextWordOnLine.end + 1);\n }\n return createRangeWithPosition(1, lineLength + 1);\n }\n static _deleteWordPartLeft(model, selection) {\n if (!selection.isEmpty()) {\n return selection;\n }\n const pos = selection.getPosition();\n const toPosition = WordOperations._moveWordPartLeft(model, pos);\n return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n }\n static _findFirstNonWhitespaceChar(str, startIndex) {\n let len = str.length;\n for (let chIndex = startIndex; chIndex < len; chIndex++) {\n let ch = str.charAt(chIndex);\n if (ch !== ' ' && ch !== '\\t') {\n return chIndex;\n }\n }\n return len;\n }\n static _deleteWordRightWhitespace(model, position) {\n const lineContent = model.getLineContent(position.lineNumber);\n const startIndex = position.column - 1;\n const firstNonWhitespace = this._findFirstNonWhitespaceChar(lineContent, startIndex);\n if (startIndex + 1 < firstNonWhitespace) {\n // bingo\n return new Range(position.lineNumber, position.column, position.lineNumber, firstNonWhitespace + 1);\n }\n return null;\n }\n static deleteWordRight(ctx, wordNavigationType) {\n const wordSeparators = ctx.wordSeparators;\n const model = ctx.model;\n const selection = ctx.selection;\n const whitespaceHeuristics = ctx.whitespaceHeuristics;\n if (!selection.isEmpty()) {\n return selection;\n }\n const position = new Position(selection.positionLineNumber, selection.positionColumn);\n let lineNumber = position.lineNumber;\n let column = position.column;\n const lineCount = model.getLineCount();\n const maxColumn = model.getLineMaxColumn(lineNumber);\n if (lineNumber === lineCount && column === maxColumn) {\n // Ignore deleting at end of file\n return null;\n }\n if (whitespaceHeuristics) {\n let r = this._deleteWordRightWhitespace(model, position);\n if (r) {\n return r;\n }\n }\n let nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n if (wordNavigationType === 2 /* WordEnd */) {\n if (nextWordOnLine) {\n column = nextWordOnLine.end + 1;\n }\n else {\n if (column < maxColumn || lineNumber === lineCount) {\n column = maxColumn;\n }\n else {\n lineNumber++;\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, 1));\n if (nextWordOnLine) {\n column = nextWordOnLine.start + 1;\n }\n else {\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n }\n }\n else {\n if (nextWordOnLine && column >= nextWordOnLine.start + 1) {\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));\n }\n if (nextWordOnLine) {\n column = nextWordOnLine.start + 1;\n }\n else {\n if (column < maxColumn || lineNumber === lineCount) {\n column = maxColumn;\n }\n else {\n lineNumber++;\n nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, 1));\n if (nextWordOnLine) {\n column = nextWordOnLine.start + 1;\n }\n else {\n column = model.getLineMaxColumn(lineNumber);\n }\n }\n }\n }\n return new Range(lineNumber, column, position.lineNumber, position.column);\n }\n static _deleteWordPartRight(model, selection) {\n if (!selection.isEmpty()) {\n return selection;\n }\n const pos = selection.getPosition();\n const toPosition = WordOperations._moveWordPartRight(model, pos);\n return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n }\n static _createWordAtPosition(model, lineNumber, word) {\n const range = new Range(lineNumber, word.start + 1, lineNumber, word.end + 1);\n return {\n word: model.getValueInRange(range),\n startColumn: range.startColumn,\n endColumn: range.endColumn\n };\n }\n static getWordAtPosition(model, _wordSeparators, position) {\n const wordSeparators = getMapForWordSeparators(_wordSeparators);\n const prevWord = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n if (prevWord && prevWord.wordType === 1 /* Regular */ && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {\n return WordOperations._createWordAtPosition(model, position.lineNumber, prevWord);\n }\n const nextWord = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n if (nextWord && nextWord.wordType === 1 /* Regular */ && nextWord.start <= position.column - 1 && position.column - 1 <= nextWord.end) {\n return WordOperations._createWordAtPosition(model, position.lineNumber, nextWord);\n }\n return null;\n }\n static word(config, model, cursor, inSelectionMode, position) {\n const wordSeparators = getMapForWordSeparators(config.wordSeparators);\n let prevWord = WordOperations._findPreviousWordOnLine(wordSeparators, model, position);\n let nextWord = WordOperations._findNextWordOnLine(wordSeparators, model, position);\n if (!inSelectionMode) {\n // Entering word selection for the first time\n let startColumn;\n let endColumn;\n if (prevWord && prevWord.wordType === 1 /* Regular */ && prevWord.start <= position.column - 1 && position.column - 1 <= prevWord.end) {\n // isTouchingPrevWord\n startColumn = prevWord.start + 1;\n endColumn = prevWord.end + 1;\n }\n else if (nextWord && nextWord.wordType === 1 /* Regular */ && nextWord.start <= position.column - 1 && position.column - 1 <= nextWord.end) {\n // isTouchingNextWord\n startColumn = nextWord.start + 1;\n endColumn = nextWord.end + 1;\n }\n else {\n if (prevWord) {\n startColumn = prevWord.end + 1;\n }\n else {\n startColumn = 1;\n }\n if (nextWord) {\n endColumn = nextWord.start + 1;\n }\n else {\n endColumn = model.getLineMaxColumn(position.lineNumber);\n }\n }\n return new SingleCursorState(new Range(position.lineNumber, startColumn, position.lineNumber, endColumn), 0, new Position(position.lineNumber, endColumn), 0);\n }\n let startColumn;\n let endColumn;\n if (prevWord && prevWord.wordType === 1 /* Regular */ && prevWord.start < position.column - 1 && position.column - 1 < prevWord.end) {\n // isInsidePrevWord\n startColumn = prevWord.start + 1;\n endColumn = prevWord.end + 1;\n }\n else if (nextWord && nextWord.wordType === 1 /* Regular */ && nextWord.start < position.column - 1 && position.column - 1 < nextWord.end) {\n // isInsideNextWord\n startColumn = nextWord.start + 1;\n endColumn = nextWord.end + 1;\n }\n else {\n startColumn = position.column;\n endColumn = position.column;\n }\n let lineNumber = position.lineNumber;\n let column;\n if (cursor.selectionStart.containsPosition(position)) {\n column = cursor.selectionStart.endColumn;\n }\n else if (position.isBeforeOrEqual(cursor.selectionStart.getStartPosition())) {\n column = startColumn;\n let possiblePosition = new Position(lineNumber, column);\n if (cursor.selectionStart.containsPosition(possiblePosition)) {\n column = cursor.selectionStart.endColumn;\n }\n }\n else {\n column = endColumn;\n let possiblePosition = new Position(lineNumber, column);\n if (cursor.selectionStart.containsPosition(possiblePosition)) {\n column = cursor.selectionStart.startColumn;\n }\n }\n return cursor.move(true, lineNumber, column, 0);\n }\n}\nexport class WordPartOperations extends WordOperations {\n static deleteWordPartLeft(ctx) {\n const candidates = enforceDefined([\n WordOperations.deleteWordLeft(ctx, 0 /* WordStart */),\n WordOperations.deleteWordLeft(ctx, 2 /* WordEnd */),\n WordOperations._deleteWordPartLeft(ctx.model, ctx.selection)\n ]);\n candidates.sort(Range.compareRangesUsingEnds);\n return candidates[2];\n }\n static deleteWordPartRight(ctx) {\n const candidates = enforceDefined([\n WordOperations.deleteWordRight(ctx, 0 /* WordStart */),\n WordOperations.deleteWordRight(ctx, 2 /* WordEnd */),\n WordOperations._deleteWordPartRight(ctx.model, ctx.selection)\n ]);\n candidates.sort(Range.compareRangesUsingStarts);\n return candidates[0];\n }\n static moveWordPartLeft(wordSeparators, model, position) {\n const candidates = enforceDefined([\n WordOperations.moveWordLeft(wordSeparators, model, position, 0 /* WordStart */),\n WordOperations.moveWordLeft(wordSeparators, model, position, 2 /* WordEnd */),\n WordOperations._moveWordPartLeft(model, position)\n ]);\n candidates.sort(Position.compare);\n return candidates[2];\n }\n static moveWordPartRight(wordSeparators, model, position) {\n const candidates = enforceDefined([\n WordOperations.moveWordRight(wordSeparators, model, position, 0 /* WordStart */),\n WordOperations.moveWordRight(wordSeparators, model, position, 2 /* WordEnd */),\n WordOperations._moveWordPartRight(model, position)\n ]);\n candidates.sort(Position.compare);\n return candidates[0];\n }\n}\nfunction enforceDefined(arr) {\n return arr.filter(el => Boolean(el));\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const NO_KEY_MODS = { ctrlCmd: false, alt: false };\nexport var QuickInputHideReason;\n(function (QuickInputHideReason) {\n /**\n * Focus moved away from the quick input.\n */\n QuickInputHideReason[QuickInputHideReason[\"Blur\"] = 1] = \"Blur\";\n /**\n * An explicit user gesture, e.g. pressing Escape key.\n */\n QuickInputHideReason[QuickInputHideReason[\"Gesture\"] = 2] = \"Gesture\";\n /**\n * Anything else.\n */\n QuickInputHideReason[QuickInputHideReason[\"Other\"] = 3] = \"Other\";\n})(QuickInputHideReason || (QuickInputHideReason = {}));\nexport var ItemActivation;\n(function (ItemActivation) {\n ItemActivation[ItemActivation[\"NONE\"] = 0] = \"NONE\";\n ItemActivation[ItemActivation[\"FIRST\"] = 1] = \"FIRST\";\n ItemActivation[ItemActivation[\"SECOND\"] = 2] = \"SECOND\";\n ItemActivation[ItemActivation[\"LAST\"] = 3] = \"LAST\";\n})(ItemActivation || (ItemActivation = {}));\n//#endregion\n","import { Mimes } from '../common/mime.js';\n// Common data transfers\nexport const DataTransfers = {\n /**\n * Application specific resource transfer type\n */\n RESOURCES: 'ResourceURLs',\n /**\n * Browser specific transfer type to download\n */\n DOWNLOAD_URL: 'DownloadURL',\n /**\n * Browser specific transfer type for files\n */\n FILES: 'Files',\n /**\n * Typically transfer type for copy/paste transfers.\n */\n TEXT: Mimes.text,\n /**\n * Application specific terminal transfer type.\n */\n TERMINALS: 'Terminals'\n};\nexport class DragAndDropData {\n constructor(data) {\n this.data = data;\n }\n update() {\n // noop\n }\n getData() {\n return this.data;\n }\n}\nexport const StaticDND = {\n CurrentDragAndDropData: undefined\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nexport class SurroundSelectionCommand {\n constructor(range, charBeforeSelection, charAfterSelection) {\n this._range = range;\n this._charBeforeSelection = charBeforeSelection;\n this._charAfterSelection = charAfterSelection;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);\n builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection);\n }\n computeCursorState(model, helper) {\n let inverseEditOperations = helper.getInverseEditOperations();\n let firstOperationRange = inverseEditOperations[0].range;\n let secondOperationRange = inverseEditOperations[1].range;\n return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { ReplaceCommand, ReplaceCommandWithOffsetCursorState, ReplaceCommandWithoutChangingPosition, ReplaceCommandThatPreservesSelection } from '../commands/replaceCommand.js';\nimport { ShiftCommand } from '../commands/shiftCommand.js';\nimport { SurroundSelectionCommand } from '../commands/surroundSelectionCommand.js';\nimport { CursorColumns, EditOperationResult, isQuote } from './cursorCommon.js';\nimport { getMapForWordSeparators } from './wordCharacterClassifier.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { IndentAction } from '../modes/languageConfiguration.js';\nimport { LanguageConfigurationRegistry } from '../modes/languageConfigurationRegistry.js';\nexport class TypeOperations {\n static indent(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ShiftCommand(selections[i], {\n isUnshift: false,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n });\n }\n return commands;\n }\n static outdent(config, model, selections) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ShiftCommand(selections[i], {\n isUnshift: true,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n });\n }\n return commands;\n }\n static shiftIndent(config, indentation, count) {\n count = count || 1;\n return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n }\n static unshiftIndent(config, indentation, count) {\n count = count || 1;\n return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n }\n static _distributedPaste(config, model, selections, text) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], text[i]);\n }\n return new EditOperationResult(0 /* Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _simplePaste(config, model, selections, text, pasteOnNewLine) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n let position = selection.getPosition();\n if (pasteOnNewLine && !selection.isEmpty()) {\n pasteOnNewLine = false;\n }\n if (pasteOnNewLine && text.indexOf('\\n') !== text.length - 1) {\n pasteOnNewLine = false;\n }\n if (pasteOnNewLine) {\n // Paste entire line at the beginning of line\n let typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);\n commands[i] = new ReplaceCommandThatPreservesSelection(typeSelection, text, selection, true);\n }\n else {\n commands[i] = new ReplaceCommand(selection, text);\n }\n }\n return new EditOperationResult(0 /* Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText) {\n if (pasteOnNewLine) {\n return null;\n }\n if (selections.length === 1) {\n return null;\n }\n if (multicursorText && multicursorText.length === selections.length) {\n return multicursorText;\n }\n if (config.multiCursorPaste === 'spread') {\n // Try to spread the pasted text in case the line count matches the cursor count\n // Remove trailing \\n if present\n if (text.charCodeAt(text.length - 1) === 10 /* LineFeed */) {\n text = text.substr(0, text.length - 1);\n }\n // Remove trailing \\r if present\n if (text.charCodeAt(text.length - 1) === 13 /* CarriageReturn */) {\n text = text.substr(0, text.length - 1);\n }\n let lines = strings.splitLines(text);\n if (lines.length === selections.length) {\n return lines;\n }\n }\n return null;\n }\n static paste(config, model, selections, text, pasteOnNewLine, multicursorText) {\n const distributedPaste = this._distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText);\n if (distributedPaste) {\n selections = selections.sort(Range.compareRangesUsingStarts);\n return this._distributedPaste(config, model, selections, distributedPaste);\n }\n else {\n return this._simplePaste(config, model, selections, text, pasteOnNewLine);\n }\n }\n static _goodIndentForLine(config, model, lineNumber) {\n let action = null;\n let indentation = '';\n const expectedIndentAction = LanguageConfigurationRegistry.getInheritIndentForLine(config.autoIndent, model, lineNumber, false);\n if (expectedIndentAction) {\n action = expectedIndentAction.action;\n indentation = expectedIndentAction.indentation;\n }\n else if (lineNumber > 1) {\n let lastLineNumber;\n for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {\n const lineText = model.getLineContent(lastLineNumber);\n const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineText);\n if (nonWhitespaceIdx >= 0) {\n break;\n }\n }\n if (lastLineNumber < 1) {\n // No previous line with content found\n return null;\n }\n const maxColumn = model.getLineMaxColumn(lastLineNumber);\n const expectedEnterAction = LanguageConfigurationRegistry.getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn));\n if (expectedEnterAction) {\n indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;\n }\n }\n if (action) {\n if (action === IndentAction.Indent) {\n indentation = TypeOperations.shiftIndent(config, indentation);\n }\n if (action === IndentAction.Outdent) {\n indentation = TypeOperations.unshiftIndent(config, indentation);\n }\n indentation = config.normalizeIndentation(indentation);\n }\n if (!indentation) {\n return null;\n }\n return indentation;\n }\n static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {\n let typeText = '';\n let position = selection.getStartPosition();\n if (config.insertSpaces) {\n let visibleColumnFromColumn = CursorColumns.visibleColumnFromColumn2(config, model, position);\n let indentSize = config.indentSize;\n let spacesCnt = indentSize - (visibleColumnFromColumn % indentSize);\n for (let i = 0; i < spacesCnt; i++) {\n typeText += ' ';\n }\n }\n else {\n typeText = '\\t';\n }\n return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);\n }\n static tab(config, model, selections) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (selection.isEmpty()) {\n let lineText = model.getLineContent(selection.startLineNumber);\n if (/^\\s*$/.test(lineText) && model.isCheapToTokenize(selection.startLineNumber)) {\n let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);\n goodIndent = goodIndent || '\\t';\n let possibleTypeText = config.normalizeIndentation(goodIndent);\n if (!lineText.startsWith(possibleTypeText)) {\n commands[i] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);\n continue;\n }\n }\n commands[i] = this._replaceJumpToNextIndent(config, model, selection, true);\n }\n else {\n if (selection.startLineNumber === selection.endLineNumber) {\n let lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);\n if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {\n // This is a single line selection that is not the entire line\n commands[i] = this._replaceJumpToNextIndent(config, model, selection, false);\n continue;\n }\n }\n commands[i] = new ShiftCommand(selection, {\n isUnshift: false,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n });\n }\n }\n return commands;\n }\n static compositionType(prevEditOperationType, config, model, selections, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n const commands = selections.map(selection => this._compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta));\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* TypingOther */),\n shouldPushStackElementAfter: false\n });\n }\n static _compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n if (!selection.isEmpty()) {\n // looks like https://github.com/microsoft/vscode/issues/2773\n // where a cursor operation occurred before a canceled composition\n // => ignore composition\n return null;\n }\n const pos = selection.getPosition();\n const startColumn = Math.max(1, pos.column - replacePrevCharCnt);\n const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);\n const range = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);\n const oldText = model.getValueInRange(range);\n if (oldText === text && positionDelta === 0) {\n // => ignore composition that doesn't do anything\n return null;\n }\n return new ReplaceCommandWithOffsetCursorState(range, text, 0, positionDelta);\n }\n static _typeCommand(range, text, keepPosition) {\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, text, true);\n }\n else {\n return new ReplaceCommand(range, text, true);\n }\n }\n static _enter(config, model, keepPosition, range) {\n if (config.autoIndent === 0 /* None */) {\n return TypeOperations._typeCommand(range, '\\n', keepPosition);\n }\n if (!model.isCheapToTokenize(range.getStartPosition().lineNumber) || config.autoIndent === 1 /* Keep */) {\n let lineText = model.getLineContent(range.startLineNumber);\n let indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n }\n const r = LanguageConfigurationRegistry.getEnterAction(config.autoIndent, model, range);\n if (r) {\n if (r.indentAction === IndentAction.None) {\n // Nothing special\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n }\n else if (r.indentAction === IndentAction.Indent) {\n // Indent once\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n }\n else if (r.indentAction === IndentAction.IndentOutdent) {\n // Ultra special\n const normalIndent = config.normalizeIndentation(r.indentation);\n const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);\n const typeText = '\\n' + increasedIndent + '\\n' + normalIndent;\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, typeText, true);\n }\n else {\n return new ReplaceCommandWithOffsetCursorState(range, typeText, -1, increasedIndent.length - normalIndent.length, true);\n }\n }\n else if (r.indentAction === IndentAction.Outdent) {\n const actualIndentation = TypeOperations.unshiftIndent(config, r.indentation);\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);\n }\n }\n const lineText = model.getLineContent(range.startLineNumber);\n const indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n if (config.autoIndent >= 4 /* Full */) {\n const ir = LanguageConfigurationRegistry.getIndentForEnter(config.autoIndent, model, range, {\n unshiftIndent: (indent) => {\n return TypeOperations.unshiftIndent(config, indent);\n },\n shiftIndent: (indent) => {\n return TypeOperations.shiftIndent(config, indent);\n },\n normalizeIndentation: (indent) => {\n return config.normalizeIndentation(indent);\n }\n });\n if (ir) {\n let oldEndViewColumn = CursorColumns.visibleColumnFromColumn2(config, model, range.getEndPosition());\n const oldEndColumn = range.endColumn;\n const newLineContent = model.getLineContent(range.endLineNumber);\n const firstNonWhitespace = strings.firstNonWhitespaceIndex(newLineContent);\n if (firstNonWhitespace >= 0) {\n range = range.setEndPosition(range.endLineNumber, Math.max(range.endColumn, firstNonWhitespace + 1));\n }\n else {\n range = range.setEndPosition(range.endLineNumber, model.getLineMaxColumn(range.endLineNumber));\n }\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, '\\n' + config.normalizeIndentation(ir.afterEnter), true);\n }\n else {\n let offset = 0;\n if (oldEndColumn <= firstNonWhitespace + 1) {\n if (!config.insertSpaces) {\n oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);\n }\n offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);\n }\n return new ReplaceCommandWithOffsetCursorState(range, '\\n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true);\n }\n }\n }\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n }\n static _isAutoIndentType(config, model, selections) {\n if (config.autoIndent < 4 /* Full */) {\n return false;\n }\n for (let i = 0, len = selections.length; i < len; i++) {\n if (!model.isCheapToTokenize(selections[i].getEndPosition().lineNumber)) {\n return false;\n }\n }\n return true;\n }\n static _runAutoIndentType(config, model, range, ch) {\n const currentIndentation = LanguageConfigurationRegistry.getIndentationAtPosition(model, range.startLineNumber, range.startColumn);\n const actualIndentation = LanguageConfigurationRegistry.getIndentActionForType(config.autoIndent, model, range, ch, {\n shiftIndent: (indentation) => {\n return TypeOperations.shiftIndent(config, indentation);\n },\n unshiftIndent: (indentation) => {\n return TypeOperations.unshiftIndent(config, indentation);\n },\n });\n if (actualIndentation === null) {\n return null;\n }\n if (actualIndentation !== config.normalizeIndentation(currentIndentation)) {\n const firstNonWhitespace = model.getLineFirstNonWhitespaceColumn(range.startLineNumber);\n if (firstNonWhitespace === 0) {\n return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) + ch, false);\n }\n else {\n return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) +\n model.getLineContent(range.startLineNumber).substring(firstNonWhitespace - 1, range.startColumn - 1) + ch, false);\n }\n }\n return null;\n }\n static _isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {\n if (config.autoClosingOvertype === 'never') {\n return false;\n }\n if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {\n return false;\n }\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (!selection.isEmpty()) {\n return false;\n }\n const position = selection.getPosition();\n const lineText = model.getLineContent(position.lineNumber);\n const afterCharacter = lineText.charAt(position.column - 1);\n if (afterCharacter !== ch) {\n return false;\n }\n // Do not over-type quotes after a backslash\n const chIsQuote = isQuote(ch);\n const beforeCharacter = position.column > 2 ? lineText.charCodeAt(position.column - 2) : 0 /* Null */;\n if (beforeCharacter === 92 /* Backslash */ && chIsQuote) {\n return false;\n }\n // Must over-type a closing character typed by the editor\n if (config.autoClosingOvertype === 'auto') {\n let found = false;\n for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {\n const autoClosedCharacter = autoClosedCharacters[j];\n if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {\n found = true;\n break;\n }\n }\n if (!found) {\n return false;\n }\n }\n }\n return true;\n }\n static _runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n const position = selection.getPosition();\n const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);\n commands[i] = new ReplaceCommand(typeSelection, ch);\n }\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* TypingOther */),\n shouldPushStackElementAfter: false\n });\n }\n static _isBeforeClosingBrace(config, lineAfter) {\n // If the start of lineAfter can be interpretted as both a starting or ending brace, default to returning false\n const nextChar = lineAfter.charAt(0);\n const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];\n const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];\n const isBeforeStartingBrace = potentialStartingBraces.some(x => lineAfter.startsWith(x.open));\n const isBeforeClosingBrace = potentialClosingBraces.some(x => lineAfter.startsWith(x.close));\n return !isBeforeStartingBrace && isBeforeClosingBrace;\n }\n static _findAutoClosingPairOpen(config, model, positions, ch) {\n const autoClosingPairCandidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);\n if (!autoClosingPairCandidates) {\n return null;\n }\n // Determine which auto-closing pair it is\n let autoClosingPair = null;\n for (const autoClosingPairCandidate of autoClosingPairCandidates) {\n if (autoClosingPair === null || autoClosingPairCandidate.open.length > autoClosingPair.open.length) {\n let candidateIsMatch = true;\n for (const position of positions) {\n const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - autoClosingPairCandidate.open.length + 1, position.lineNumber, position.column));\n if (relevantText + ch !== autoClosingPairCandidate.open) {\n candidateIsMatch = false;\n break;\n }\n }\n if (candidateIsMatch) {\n autoClosingPair = autoClosingPairCandidate;\n }\n }\n }\n return autoClosingPair;\n }\n static _findSubAutoClosingPairClose(config, autoClosingPair) {\n if (autoClosingPair.open.length <= 1) {\n return '';\n }\n const lastChar = autoClosingPair.close.charAt(autoClosingPair.close.length - 1);\n // get candidates with the same last character as close\n const subPairCandidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];\n let subPairMatch = null;\n for (const x of subPairCandidates) {\n if (x.open !== autoClosingPair.open && autoClosingPair.open.includes(x.open) && autoClosingPair.close.endsWith(x.close)) {\n if (!subPairMatch || x.open.length > subPairMatch.open.length) {\n subPairMatch = x;\n }\n }\n }\n if (subPairMatch) {\n return subPairMatch.close;\n }\n else {\n return '';\n }\n }\n static _getAutoClosingPairClose(config, model, selections, ch, insertOpenCharacter) {\n const chIsQuote = isQuote(ch);\n const autoCloseConfig = chIsQuote ? config.autoClosingQuotes : config.autoClosingBrackets;\n if (autoCloseConfig === 'never') {\n return null;\n }\n const autoClosingPair = this._findAutoClosingPairOpen(config, model, selections.map(s => s.getPosition()), ch);\n if (!autoClosingPair) {\n return null;\n }\n const subAutoClosingPairClose = this._findSubAutoClosingPairClose(config, autoClosingPair);\n let isSubAutoClosingPairPresent = true;\n const shouldAutoCloseBefore = chIsQuote ? config.shouldAutoCloseBefore.quote : config.shouldAutoCloseBefore.bracket;\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (!selection.isEmpty()) {\n return null;\n }\n const position = selection.getPosition();\n const lineText = model.getLineContent(position.lineNumber);\n const lineAfter = lineText.substring(position.column - 1);\n if (!lineAfter.startsWith(subAutoClosingPairClose)) {\n isSubAutoClosingPairPresent = false;\n }\n // Only consider auto closing the pair if an allowed character follows or if another autoclosed pair closing brace follows\n if (lineText.length > position.column - 1) {\n const characterAfter = lineText.charAt(position.column - 1);\n const isBeforeCloseBrace = TypeOperations._isBeforeClosingBrace(config, lineAfter);\n if (!isBeforeCloseBrace && !shouldAutoCloseBefore(characterAfter)) {\n return null;\n }\n }\n if (!model.isCheapToTokenize(position.lineNumber)) {\n // Do not force tokenization\n return null;\n }\n // Do not auto-close ' or \" after a word character\n if (autoClosingPair.open.length === 1 && (ch === '\\'' || ch === '\"') && autoCloseConfig !== 'always') {\n const wordSeparators = getMapForWordSeparators(config.wordSeparators);\n if (insertOpenCharacter && position.column > 1 && wordSeparators.get(lineText.charCodeAt(position.column - 2)) === 0 /* Regular */) {\n return null;\n }\n if (!insertOpenCharacter && position.column > 2 && wordSeparators.get(lineText.charCodeAt(position.column - 3)) === 0 /* Regular */) {\n return null;\n }\n }\n model.forceTokenization(position.lineNumber);\n const lineTokens = model.getLineTokens(position.lineNumber);\n let shouldAutoClosePair = false;\n try {\n shouldAutoClosePair = LanguageConfigurationRegistry.shouldAutoClosePair(autoClosingPair, lineTokens, insertOpenCharacter ? position.column : position.column - 1);\n }\n catch (e) {\n onUnexpectedError(e);\n }\n if (!shouldAutoClosePair) {\n return null;\n }\n }\n if (isSubAutoClosingPairPresent) {\n return autoClosingPair.close.substring(0, autoClosingPair.close.length - subAutoClosingPairClose.length);\n }\n else {\n return autoClosingPair.close;\n }\n }\n static _runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, insertOpenCharacter, autoClosingPairClose) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n commands[i] = new TypeWithAutoClosingCommand(selection, ch, insertOpenCharacter, autoClosingPairClose);\n }\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false\n });\n }\n static _shouldSurroundChar(config, ch) {\n if (isQuote(ch)) {\n return (config.autoSurround === 'quotes' || config.autoSurround === 'languageDefined');\n }\n else {\n // Character is a bracket\n return (config.autoSurround === 'brackets' || config.autoSurround === 'languageDefined');\n }\n }\n static _isSurroundSelectionType(config, model, selections, ch) {\n if (!TypeOperations._shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n return false;\n }\n const isTypingAQuoteCharacter = isQuote(ch);\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (selection.isEmpty()) {\n return false;\n }\n let selectionContainsOnlyWhitespace = true;\n for (let lineNumber = selection.startLineNumber; lineNumber <= selection.endLineNumber; lineNumber++) {\n const lineText = model.getLineContent(lineNumber);\n const startIndex = (lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0);\n const endIndex = (lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length);\n const selectedText = lineText.substring(startIndex, endIndex);\n if (/[^ \\t]/.test(selectedText)) {\n // this selected text contains something other than whitespace\n selectionContainsOnlyWhitespace = false;\n break;\n }\n }\n if (selectionContainsOnlyWhitespace) {\n return false;\n }\n if (isTypingAQuoteCharacter && selection.startLineNumber === selection.endLineNumber && selection.startColumn + 1 === selection.endColumn) {\n const selectionText = model.getValueInRange(selection);\n if (isQuote(selectionText)) {\n // Typing a quote character on top of another quote character\n // => disable surround selection type\n return false;\n }\n }\n }\n return true;\n }\n static _runSurroundSelectionType(prevEditOperationType, config, model, selections, ch) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n const closeCharacter = config.surroundingPairs[ch];\n commands[i] = new SurroundSelectionCommand(selection, ch, closeCharacter);\n }\n return new EditOperationResult(0 /* Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _isTypeInterceptorElectricChar(config, model, selections) {\n if (selections.length === 1 && model.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {\n return true;\n }\n return false;\n }\n static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {\n if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {\n return null;\n }\n let position = selection.getPosition();\n model.forceTokenization(position.lineNumber);\n let lineTokens = model.getLineTokens(position.lineNumber);\n let electricAction;\n try {\n electricAction = LanguageConfigurationRegistry.onElectricCharacter(ch, lineTokens, position.column);\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n if (!electricAction) {\n return null;\n }\n if (electricAction.matchOpenBracket) {\n let endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;\n let match = model.findMatchingBracketUp(electricAction.matchOpenBracket, {\n lineNumber: position.lineNumber,\n column: endColumn\n });\n if (match) {\n if (match.startLineNumber === position.lineNumber) {\n // matched something on the same line => no change in indentation\n return null;\n }\n let matchLine = model.getLineContent(match.startLineNumber);\n let matchLineIndentation = strings.getLeadingWhitespace(matchLine);\n let newIndentation = config.normalizeIndentation(matchLineIndentation);\n let lineText = model.getLineContent(position.lineNumber);\n let lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;\n let prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);\n let typeText = newIndentation + prefix + ch;\n let typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);\n const command = new ReplaceCommand(typeSelection, typeText);\n return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {\n shouldPushStackElementBefore: false,\n shouldPushStackElementAfter: true\n });\n }\n }\n return null;\n }\n /**\n * This is very similar with typing, but the character is already in the text buffer!\n */\n static compositionEndWithInterceptors(prevEditOperationType, config, model, selectionsWhenCompositionStarted, selections, autoClosedCharacters) {\n if (!selectionsWhenCompositionStarted || Selection.selectionsArrEqual(selectionsWhenCompositionStarted, selections)) {\n // no content was typed\n return null;\n }\n let ch = null;\n // extract last typed character\n for (const selection of selections) {\n if (!selection.isEmpty()) {\n return null;\n }\n const position = selection.getPosition();\n const currentChar = model.getValueInRange(new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column));\n if (ch === null) {\n ch = currentChar;\n }\n else if (ch !== currentChar) {\n return null;\n }\n }\n if (!ch) {\n return null;\n }\n if (this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n // Unfortunately, the close character is at this point \"doubled\", so we need to delete it...\n const commands = selections.map(s => new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), '', false));\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false\n });\n }\n const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, false);\n if (autoClosingPairClose !== null) {\n return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, false, autoClosingPairClose);\n }\n return null;\n }\n static typeWithInterceptors(isDoingComposition, prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {\n if (!isDoingComposition && ch === '\\n') {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = TypeOperations._enter(config, model, false, selections[i]);\n }\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false,\n });\n }\n if (!isDoingComposition && this._isAutoIndentType(config, model, selections)) {\n let commands = [];\n let autoIndentFails = false;\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = this._runAutoIndentType(config, model, selections[i], ch);\n if (!commands[i]) {\n autoIndentFails = true;\n break;\n }\n }\n if (!autoIndentFails) {\n return new EditOperationResult(4 /* TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false,\n });\n }\n }\n if (!isDoingComposition && this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n return this._runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch);\n }\n if (!isDoingComposition) {\n const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, true);\n if (autoClosingPairClose) {\n return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, true, autoClosingPairClose);\n }\n }\n if (this._isSurroundSelectionType(config, model, selections, ch)) {\n return this._runSurroundSelectionType(prevEditOperationType, config, model, selections, ch);\n }\n // Electric characters make sense only when dealing with a single cursor,\n // as multiple cursors typing brackets for example would interfer with bracket matching\n if (!isDoingComposition && this._isTypeInterceptorElectricChar(config, model, selections)) {\n const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);\n if (r) {\n return r;\n }\n }\n // A simple character type\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], ch);\n }\n const opType = getTypingOperation(ch, prevEditOperationType);\n return new EditOperationResult(opType, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n shouldPushStackElementAfter: false\n });\n }\n static typeWithoutInterceptors(prevEditOperationType, config, model, selections, str) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], str);\n }\n const opType = getTypingOperation(str, prevEditOperationType);\n return new EditOperationResult(opType, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n shouldPushStackElementAfter: false\n });\n }\n static lineInsertBefore(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n let lineNumber = selections[i].positionLineNumber;\n if (lineNumber === 1) {\n commands[i] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), '\\n');\n }\n else {\n lineNumber--;\n let column = model.getLineMaxColumn(lineNumber);\n commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n }\n }\n return commands;\n }\n static lineInsertAfter(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const lineNumber = selections[i].positionLineNumber;\n let column = model.getLineMaxColumn(lineNumber);\n commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n }\n return commands;\n }\n static lineBreakInsert(config, model, selections) {\n let commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = this._enter(config, model, true, selections[i]);\n }\n return commands;\n }\n}\nexport class TypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState {\n constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {\n super(selection, (insertOpenCharacter ? openCharacter : '') + closeCharacter, 0, -closeCharacter.length);\n this._openCharacter = openCharacter;\n this._closeCharacter = closeCharacter;\n this.closeCharacterRange = null;\n this.enclosingRange = null;\n }\n computeCursorState(model, helper) {\n let inverseEditOperations = helper.getInverseEditOperations();\n let range = inverseEditOperations[0].range;\n this.closeCharacterRange = new Range(range.startLineNumber, range.endColumn - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n this.enclosingRange = new Range(range.startLineNumber, range.endColumn - this._openCharacter.length - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n return super.computeCursorState(model, helper);\n }\n}\nfunction getTypingOperation(typedText, previousTypingOperation) {\n if (typedText === ' ') {\n return previousTypingOperation === 5 /* TypingFirstSpace */\n || previousTypingOperation === 6 /* TypingConsecutiveSpace */\n ? 6 /* TypingConsecutiveSpace */\n : 5 /* TypingFirstSpace */;\n }\n return 4 /* TypingOther */;\n}\nfunction shouldPushStackElementBetween(previousTypingOperation, typingOperation) {\n if (isTypingOperation(previousTypingOperation) && !isTypingOperation(typingOperation)) {\n // Always set an undo stop before non-type operations\n return true;\n }\n if (previousTypingOperation === 5 /* TypingFirstSpace */) {\n // `abc |d`: No undo stop\n // `abc |d`: Undo stop\n return false;\n }\n // Insert undo stop between different operation types\n return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);\n}\nfunction normalizeOperationType(type) {\n return (type === 6 /* TypingConsecutiveSpace */ || type === 5 /* TypingFirstSpace */)\n ? 'space'\n : type;\n}\nfunction isTypingOperation(type) {\n return type === 4 /* TypingOther */\n || type === 5 /* TypingFirstSpace */\n || type === 6 /* TypingConsecutiveSpace */;\n}\n","import { EncryptionAlgorithmAES25 } from \"./utils/constants\";\nexport var BlockBlobTier;\n(function (BlockBlobTier) {\n BlockBlobTier[\"Hot\"] = \"Hot\";\n BlockBlobTier[\"Cool\"] = \"Cool\";\n BlockBlobTier[\"Archive\"] = \"Archive\";\n})(BlockBlobTier || (BlockBlobTier = {}));\nexport var PremiumPageBlobTier;\n(function (PremiumPageBlobTier) {\n PremiumPageBlobTier[\"P4\"] = \"P4\";\n PremiumPageBlobTier[\"P6\"] = \"P6\";\n PremiumPageBlobTier[\"P10\"] = \"P10\";\n PremiumPageBlobTier[\"P15\"] = \"P15\";\n PremiumPageBlobTier[\"P20\"] = \"P20\";\n PremiumPageBlobTier[\"P30\"] = \"P30\";\n PremiumPageBlobTier[\"P40\"] = \"P40\";\n PremiumPageBlobTier[\"P50\"] = \"P50\";\n PremiumPageBlobTier[\"P60\"] = \"P60\";\n PremiumPageBlobTier[\"P70\"] = \"P70\";\n PremiumPageBlobTier[\"P80\"] = \"P80\";\n})(PremiumPageBlobTier || (PremiumPageBlobTier = {}));\nexport function toAccessTier(tier) {\n if (tier == undefined) {\n return undefined;\n }\n return tier; // No more check if string is a valid AccessTier, and left this to underlay logic to decide(service).\n}\nexport function ensureCpkIfSpecified(cpk, isHttps) {\n if (cpk && !isHttps) {\n throw new RangeError(\"Customer-provided encryption key must be used over HTTPS.\");\n }\n if (cpk && !cpk.encryptionAlgorithm) {\n cpk.encryptionAlgorithm = EncryptionAlgorithmAES25;\n }\n}\n//# sourceMappingURL=models.js.map","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { globals } from './platform.js';\nconst hasPerformanceNow = (globals.performance && typeof globals.performance.now === 'function');\nexport class StopWatch {\n constructor(highResolution) {\n this._highResolution = hasPerformanceNow && highResolution;\n this._startTime = this._now();\n this._stopTime = -1;\n }\n static create(highResolution = true) {\n return new StopWatch(highResolution);\n }\n stop() {\n this._stopTime = this._now();\n }\n elapsed() {\n if (this._stopTime !== -1) {\n return this._stopTime - this._startTime;\n }\n return this._now() - this._startTime;\n }\n _now() {\n return this._highResolution ? globals.performance.now() : Date.now();\n }\n}\n","import { Emitter } from '../../../base/common/event.js';\nimport * as types from '../../../base/common/types.js';\nimport * as nls from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport const Extensions = {\n Configuration: 'base.contributions.configuration'\n};\nexport const allSettings = { properties: {}, patternProperties: {} };\nexport const applicationSettings = { properties: {}, patternProperties: {} };\nexport const machineSettings = { properties: {}, patternProperties: {} };\nexport const machineOverridableSettings = { properties: {}, patternProperties: {} };\nexport const windowSettings = { properties: {}, patternProperties: {} };\nexport const resourceSettings = { properties: {}, patternProperties: {} };\nexport const resourceLanguageSettingsSchemaId = 'vscode://schemas/settings/resourceLanguage';\nconst contributionRegistry = Registry.as(JSONExtensions.JSONContribution);\nclass ConfigurationRegistry {\n constructor() {\n this.overrideIdentifiers = new Set();\n this._onDidSchemaChange = new Emitter();\n this._onDidUpdateConfiguration = new Emitter();\n this.defaultValues = {};\n this.defaultLanguageConfigurationOverridesNode = {\n id: 'defaultOverrides',\n title: nls.localize('defaultLanguageConfigurationOverrides.title', \"Default Language Configuration Overrides\"),\n properties: {}\n };\n this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode];\n this.resourceLanguageSettingsSchema = { properties: {}, patternProperties: {}, additionalProperties: false, errorMessage: 'Unknown editor configuration setting', allowTrailingCommas: true, allowComments: true };\n this.configurationProperties = {};\n this.excludedConfigurationProperties = {};\n contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n }\n registerConfiguration(configuration, validate = true) {\n this.registerConfigurations([configuration], validate);\n }\n registerConfigurations(configurations, validate = true) {\n const properties = this.doRegisterConfigurations(configurations, validate);\n contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n this._onDidSchemaChange.fire();\n this._onDidUpdateConfiguration.fire(properties);\n }\n registerOverrideIdentifiers(overrideIdentifiers) {\n for (const overrideIdentifier of overrideIdentifiers) {\n this.overrideIdentifiers.add(overrideIdentifier);\n }\n this.updateOverridePropertyPatternKey();\n }\n doRegisterConfigurations(configurations, validate) {\n const properties = [];\n configurations.forEach(configuration => {\n properties.push(...this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo)); // fills in defaults\n this.configurationContributors.push(configuration);\n this.registerJSONConfiguration(configuration);\n });\n return properties;\n }\n validateAndRegisterProperties(configuration, validate = true, extensionInfo, scope = 3 /* WINDOW */) {\n var _a;\n scope = types.isUndefinedOrNull(configuration.scope) ? scope : configuration.scope;\n let propertyKeys = [];\n let properties = configuration.properties;\n if (properties) {\n for (let key in properties) {\n if (validate && validateProperty(key)) {\n delete properties[key];\n continue;\n }\n const property = properties[key];\n // update default value\n this.updatePropertyDefaultValue(key, property);\n // update scope\n if (OVERRIDE_PROPERTY_PATTERN.test(key)) {\n property.scope = undefined; // No scope for overridable properties `[${identifier}]`\n }\n else {\n property.scope = types.isUndefinedOrNull(property.scope) ? scope : property.scope;\n property.restricted = types.isUndefinedOrNull(property.restricted) ? !!((_a = extensionInfo === null || extensionInfo === void 0 ? void 0 : extensionInfo.restrictedConfigurations) === null || _a === void 0 ? void 0 : _a.includes(key)) : property.restricted;\n }\n // Add to properties maps\n // Property is included by default if 'included' is unspecified\n if (properties[key].hasOwnProperty('included') && !properties[key].included) {\n this.excludedConfigurationProperties[key] = properties[key];\n delete properties[key];\n continue;\n }\n else {\n this.configurationProperties[key] = properties[key];\n }\n if (!properties[key].deprecationMessage && properties[key].markdownDeprecationMessage) {\n // If not set, default deprecationMessage to the markdown source\n properties[key].deprecationMessage = properties[key].markdownDeprecationMessage;\n }\n propertyKeys.push(key);\n }\n }\n let subNodes = configuration.allOf;\n if (subNodes) {\n for (let node of subNodes) {\n propertyKeys.push(...this.validateAndRegisterProperties(node, validate, extensionInfo, scope));\n }\n }\n return propertyKeys;\n }\n getConfigurationProperties() {\n return this.configurationProperties;\n }\n registerJSONConfiguration(configuration) {\n const register = (configuration) => {\n let properties = configuration.properties;\n if (properties) {\n for (const key in properties) {\n this.updateSchema(key, properties[key]);\n }\n }\n let subNodes = configuration.allOf;\n if (subNodes) {\n subNodes.forEach(register);\n }\n };\n register(configuration);\n }\n updateSchema(key, property) {\n allSettings.properties[key] = property;\n switch (property.scope) {\n case 1 /* APPLICATION */:\n applicationSettings.properties[key] = property;\n break;\n case 2 /* MACHINE */:\n machineSettings.properties[key] = property;\n break;\n case 6 /* MACHINE_OVERRIDABLE */:\n machineOverridableSettings.properties[key] = property;\n break;\n case 3 /* WINDOW */:\n windowSettings.properties[key] = property;\n break;\n case 4 /* RESOURCE */:\n resourceSettings.properties[key] = property;\n break;\n case 5 /* LANGUAGE_OVERRIDABLE */:\n resourceSettings.properties[key] = property;\n this.resourceLanguageSettingsSchema.properties[key] = property;\n break;\n }\n }\n updateOverridePropertyPatternKey() {\n for (const overrideIdentifier of this.overrideIdentifiers.values()) {\n const overrideIdentifierProperty = `[${overrideIdentifier}]`;\n const resourceLanguagePropertiesSchema = {\n type: 'object',\n description: nls.localize('overrideSettings.defaultDescription', \"Configure editor settings to be overridden for a language.\"),\n errorMessage: nls.localize('overrideSettings.errorMessage', \"This setting does not support per-language configuration.\"),\n $ref: resourceLanguageSettingsSchemaId,\n };\n this.updatePropertyDefaultValue(overrideIdentifierProperty, resourceLanguagePropertiesSchema);\n allSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n applicationSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n machineSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n machineOverridableSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n windowSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n resourceSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n }\n this._onDidSchemaChange.fire();\n }\n updatePropertyDefaultValue(key, property) {\n let defaultValue = this.defaultValues[key];\n if (types.isUndefined(defaultValue)) {\n defaultValue = property.default;\n }\n if (types.isUndefined(defaultValue)) {\n defaultValue = getDefaultValue(property.type);\n }\n property.default = defaultValue;\n }\n}\nconst OVERRIDE_PROPERTY = '\\\\[.*\\\\]$';\nexport const OVERRIDE_PROPERTY_PATTERN = new RegExp(OVERRIDE_PROPERTY);\nexport function overrideIdentifierFromKey(key) {\n return key.substring(1, key.length - 1);\n}\nexport function getDefaultValue(type) {\n const t = Array.isArray(type) ? type[0] : type;\n switch (t) {\n case 'boolean':\n return false;\n case 'integer':\n case 'number':\n return 0;\n case 'string':\n return '';\n case 'array':\n return [];\n case 'object':\n return {};\n default:\n return null;\n }\n}\nconst configurationRegistry = new ConfigurationRegistry();\nRegistry.add(Extensions.Configuration, configurationRegistry);\nexport function validateProperty(property) {\n if (!property.trim()) {\n return nls.localize('config.property.empty', \"Cannot register an empty property\");\n }\n if (OVERRIDE_PROPERTY_PATTERN.test(property)) {\n return nls.localize('config.property.languageDefault', \"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\", property);\n }\n if (configurationRegistry.getConfigurationProperties()[property] !== undefined) {\n return nls.localize('config.property.duplicate', \"Cannot register '{0}'. This property is already registered.\", property);\n }\n return null;\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { LanguageConfigurationRegistry } from './languageConfigurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { Mimes } from '../../../base/common/mime.js';\n// Define extension point ids\nexport const Extensions = {\n ModesRegistry: 'editor.modesRegistry'\n};\nexport class EditorModesRegistry {\n constructor() {\n this._onDidChangeLanguages = new Emitter();\n this.onDidChangeLanguages = this._onDidChangeLanguages.event;\n this._languages = [];\n this._dynamicLanguages = [];\n }\n // --- languages\n registerLanguage(def) {\n this._languages.push(def);\n this._onDidChangeLanguages.fire(undefined);\n return {\n dispose: () => {\n for (let i = 0, len = this._languages.length; i < len; i++) {\n if (this._languages[i] === def) {\n this._languages.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n getLanguages() {\n return [].concat(this._languages).concat(this._dynamicLanguages);\n }\n}\nexport const ModesRegistry = new EditorModesRegistry();\nRegistry.add(Extensions.ModesRegistry, ModesRegistry);\nexport const PLAINTEXT_MODE_ID = 'plaintext';\nexport const PLAINTEXT_EXTENSION = '.txt';\nModesRegistry.registerLanguage({\n id: PLAINTEXT_MODE_ID,\n extensions: [PLAINTEXT_EXTENSION],\n aliases: [nls.localize('plainText.alias', \"Plain Text\"), 'text'],\n mimetypes: [Mimes.text]\n});\nLanguageConfigurationRegistry.register(PLAINTEXT_MODE_ID, {\n brackets: [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '<', close: '>' },\n { open: '\\\"', close: '\\\"' },\n { open: '\\'', close: '\\'' },\n { open: '`', close: '`' },\n ],\n colorizedBracketPairs: [],\n folding: {\n offSide: true\n }\n}, 0);\n","import { IStyle } from './IStyle';\n\nexport const InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0 as 0,\n\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1 as 1,\n\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2 as 2,\n};\n\nexport type InjectionMode = typeof InjectionMode[keyof typeof InjectionMode];\n\n/**\n * CSP settings for the stylesheet\n */\nexport interface ICSPSettings {\n /**\n * Nonce to inject into script tag\n */\n nonce?: string;\n}\n\n/**\n * Stylesheet config.\n *\n * @public\n */\nexport interface IStyleSheetConfig {\n /**\n * Injection mode for how rules are inserted.\n */\n injectionMode?: InjectionMode;\n\n /**\n * Default 'displayName' to use for a className.\n * @defaultvalue 'css'\n */\n defaultPrefix?: string;\n\n /**\n * Defines the default direction of rules for auto-rtlifying things.\n * While typically this is represented as a DIR attribute in the markup,\n * the DIR is not enough to control whether padding goes on the left or\n * right. Use this to set the default direction when rules are registered.\n */\n rtl?: boolean;\n\n /**\n * Default 'namespace' to attach before the className.\n */\n namespace?: string;\n\n /**\n * CSP settings\n */\n cspSettings?: ICSPSettings;\n\n /**\n * Callback executed when a rule is inserted.\n */\n onInsertRule?: (rule: string) => void;\n\n /**\n * Initial value for classnames cache. Key is serialized css rules associated with a classname.\n */\n classNameCache?: { [key: string]: string };\n}\n\nconst STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nconst REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\n\nlet _global: { [key: string]: any } = {};\n\n// Grab window.\ntry {\n _global = window;\n} catch {\n /* leave as blank object */\n}\n\nlet _stylesheet: Stylesheet;\n\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nexport class Stylesheet {\n private _lastStyleElement?: HTMLStyleElement;\n private _styleElement?: HTMLStyleElement;\n private _rules: string[] = [];\n private _preservedRules: string[] = [];\n private _config: IStyleSheetConfig;\n private _rulesToInsert: string[] = [];\n private _counter = 0;\n private _keyToClassName: { [key: string]: string } = {};\n private _onResetCallbacks: (() => void)[] = [];\n\n private _classNameToArgs: { [key: string]: { args: any; rules: string[] } } = {};\n\n /**\n * Gets the singleton instance.\n */\n public static getInstance(): Stylesheet {\n _stylesheet = _global[STYLESHEET_SETTING] as Stylesheet;\n\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n const fabricConfig = _global?.FabricConfig || {};\n\n _stylesheet = _global[STYLESHEET_SETTING] = new Stylesheet(fabricConfig.mergeStyles);\n }\n\n return _stylesheet;\n }\n\n constructor(config?: IStyleSheetConfig) {\n this._config = {\n injectionMode: InjectionMode.insertNode,\n defaultPrefix: 'css',\n namespace: undefined,\n cspSettings: undefined,\n ...config,\n };\n\n this._keyToClassName = this._config.classNameCache || {};\n }\n\n /**\n * Configures the stylesheet.\n */\n public setConfig(config?: IStyleSheetConfig): void {\n this._config = {\n ...this._config,\n ...config,\n };\n }\n\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n */\n public onReset(callback: () => void): void {\n this._onResetCallbacks.push(callback);\n }\n\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n public getClassName(displayName?: string): string {\n const { namespace } = this._config;\n const prefix = displayName || this._config.defaultPrefix;\n\n return `${namespace ? namespace + '-' : ''}${prefix}-${this._counter++}`;\n }\n\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n public cacheClassName(className: string, key: string, args: IStyle[], rules: string[]): void {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args,\n rules,\n };\n }\n\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n public classNameFromKey(key: string): string | undefined {\n return this._keyToClassName[key];\n }\n\n /**\n * Gets all classnames cache with the stylesheet.\n */\n public getClassNameCache(): { [key: string]: string } {\n return this._keyToClassName;\n }\n\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public argsFromClassName(className: string): IStyle[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.args;\n }\n\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n public insertedRulesFromClassName(className: string): string[] | undefined {\n const entry = this._classNameToArgs[className];\n\n return entry && entry.rules;\n }\n\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n public insertRule(rule: string, preserve?: boolean): void {\n const { injectionMode } = this._config;\n const element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n\n if (preserve) {\n this._preservedRules.push(rule);\n }\n\n if (element) {\n switch (this._config.injectionMode) {\n case InjectionMode.insertNode:\n const { sheet } = element!;\n\n try {\n (sheet as CSSStyleSheet).insertRule(rule, (sheet as CSSStyleSheet).cssRules.length);\n } catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n } else {\n this._rules.push(rule);\n }\n\n if (this._config.onInsertRule) {\n this._config.onInsertRule(rule);\n }\n }\n\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n public getRules(includePreservedRules?: boolean): string {\n return (\n (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('') + this._rulesToInsert.join('')\n );\n }\n\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n public reset(): void {\n this._rules = [];\n this._rulesToInsert = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n\n this._onResetCallbacks.forEach((callback: () => void) => callback());\n }\n\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n public resetKeys(): void {\n this._keyToClassName = {};\n }\n\n private _getStyleElement(): HTMLStyleElement | undefined {\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(() => {\n this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n }\n\n private _createStyleElement(): HTMLStyleElement {\n const head: HTMLHeadElement = document.head;\n const styleElement = document.createElement('style');\n\n styleElement.setAttribute('data-merge-styles', 'true');\n\n const { cspSettings } = this._config;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n head!.insertBefore(styleElement, this._lastStyleElement.nextElementSibling);\n } else {\n const placeholderStyleTag: Element | null = this._findPlaceholderStyleTag();\n\n if (placeholderStyleTag) {\n head!.insertBefore(styleElement, placeholderStyleTag.nextElementSibling);\n } else {\n head!.insertBefore(styleElement, head.childNodes[0]);\n }\n }\n this._lastStyleElement = styleElement;\n\n return styleElement;\n }\n\n private _findPlaceholderStyleTag(): Element | null {\n const head: HTMLHeadElement = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function toUint8(v) {\n if (v < 0) {\n return 0;\n }\n if (v > 255 /* MAX_UINT_8 */) {\n return 255 /* MAX_UINT_8 */;\n }\n return v | 0;\n}\nexport function toUint32(v) {\n if (v < 0) {\n return 0;\n }\n if (v > 4294967295 /* MAX_UINT_32 */) {\n return 4294967295 /* MAX_UINT_32 */;\n }\n return v | 0;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nexport class LineDecoration {\n constructor(startColumn, endColumn, className, type) {\n this.startColumn = startColumn;\n this.endColumn = endColumn;\n this.className = className;\n this.type = type;\n this._lineDecorationBrand = undefined;\n }\n static _equals(a, b) {\n return (a.startColumn === b.startColumn\n && a.endColumn === b.endColumn\n && a.className === b.className\n && a.type === b.type);\n }\n static equalsArr(a, b) {\n const aLen = a.length;\n const bLen = b.length;\n if (aLen !== bLen) {\n return false;\n }\n for (let i = 0; i < aLen; i++) {\n if (!LineDecoration._equals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n static extractWrapped(arr, startOffset, endOffset) {\n if (arr.length === 0) {\n return arr;\n }\n const startColumn = startOffset + 1;\n const endColumn = endOffset + 1;\n const lineLength = endOffset - startOffset;\n const r = [];\n let rLength = 0;\n for (const dec of arr) {\n if (dec.endColumn <= startColumn || dec.startColumn >= endColumn) {\n continue;\n }\n r[rLength++] = new LineDecoration(Math.max(1, dec.startColumn - startColumn + 1), Math.min(lineLength + 1, dec.endColumn - startColumn + 1), dec.className, dec.type);\n }\n return r;\n }\n static filter(lineDecorations, lineNumber, minLineColumn, maxLineColumn) {\n if (lineDecorations.length === 0) {\n return [];\n }\n let result = [], resultLen = 0;\n for (let i = 0, len = lineDecorations.length; i < len; i++) {\n const d = lineDecorations[i];\n const range = d.range;\n if (range.endLineNumber < lineNumber || range.startLineNumber > lineNumber) {\n // Ignore decorations that sit outside this line\n continue;\n }\n if (range.isEmpty() && (d.type === 0 /* Regular */ || d.type === 3 /* RegularAffectingLetterSpacing */)) {\n // Ignore empty range decorations\n continue;\n }\n const startColumn = (range.startLineNumber === lineNumber ? range.startColumn : minLineColumn);\n const endColumn = (range.endLineNumber === lineNumber ? range.endColumn : maxLineColumn);\n result[resultLen++] = new LineDecoration(startColumn, endColumn, d.inlineClassName, d.type);\n }\n return result;\n }\n static _typeCompare(a, b) {\n const ORDER = [2, 0, 1, 3];\n return ORDER[a] - ORDER[b];\n }\n static compare(a, b) {\n if (a.startColumn !== b.startColumn) {\n return a.startColumn - b.startColumn;\n }\n if (a.endColumn !== b.endColumn) {\n return a.endColumn - b.endColumn;\n }\n const typeCmp = LineDecoration._typeCompare(a.type, b.type);\n if (typeCmp !== 0) {\n return typeCmp;\n }\n if (a.className !== b.className) {\n return a.className < b.className ? -1 : 1;\n }\n return 0;\n }\n}\nexport class DecorationSegment {\n constructor(startOffset, endOffset, className, metadata) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.className = className;\n this.metadata = metadata;\n }\n}\nclass Stack {\n constructor() {\n this.stopOffsets = [];\n this.classNames = [];\n this.metadata = [];\n this.count = 0;\n }\n static _metadata(metadata) {\n let result = 0;\n for (let i = 0, len = metadata.length; i < len; i++) {\n result |= metadata[i];\n }\n return result;\n }\n consumeLowerThan(maxStopOffset, nextStartOffset, result) {\n while (this.count > 0 && this.stopOffsets[0] < maxStopOffset) {\n let i = 0;\n // Take all equal stopping offsets\n while (i + 1 < this.count && this.stopOffsets[i] === this.stopOffsets[i + 1]) {\n i++;\n }\n // Basically we are consuming the first i + 1 elements of the stack\n result.push(new DecorationSegment(nextStartOffset, this.stopOffsets[i], this.classNames.join(' '), Stack._metadata(this.metadata)));\n nextStartOffset = this.stopOffsets[i] + 1;\n // Consume them\n this.stopOffsets.splice(0, i + 1);\n this.classNames.splice(0, i + 1);\n this.metadata.splice(0, i + 1);\n this.count -= (i + 1);\n }\n if (this.count > 0 && nextStartOffset < maxStopOffset) {\n result.push(new DecorationSegment(nextStartOffset, maxStopOffset - 1, this.classNames.join(' '), Stack._metadata(this.metadata)));\n nextStartOffset = maxStopOffset;\n }\n return nextStartOffset;\n }\n insert(stopOffset, className, metadata) {\n if (this.count === 0 || this.stopOffsets[this.count - 1] <= stopOffset) {\n // Insert at the end\n this.stopOffsets.push(stopOffset);\n this.classNames.push(className);\n this.metadata.push(metadata);\n }\n else {\n // Find the insertion position for `stopOffset`\n for (let i = 0; i < this.count; i++) {\n if (this.stopOffsets[i] >= stopOffset) {\n this.stopOffsets.splice(i, 0, stopOffset);\n this.classNames.splice(i, 0, className);\n this.metadata.splice(i, 0, metadata);\n break;\n }\n }\n }\n this.count++;\n return;\n }\n}\nexport class LineDecorationsNormalizer {\n /**\n * Normalize line decorations. Overlapping decorations will generate multiple segments\n */\n static normalize(lineContent, lineDecorations) {\n if (lineDecorations.length === 0) {\n return [];\n }\n let result = [];\n const stack = new Stack();\n let nextStartOffset = 0;\n for (let i = 0, len = lineDecorations.length; i < len; i++) {\n const d = lineDecorations[i];\n let startColumn = d.startColumn;\n let endColumn = d.endColumn;\n const className = d.className;\n const metadata = (d.type === 1 /* Before */\n ? 2 /* PSEUDO_BEFORE */\n : d.type === 2 /* After */\n ? 4 /* PSEUDO_AFTER */\n : 0);\n // If the position would end up in the middle of a high-low surrogate pair, we move it to before the pair\n if (startColumn > 1) {\n const charCodeBefore = lineContent.charCodeAt(startColumn - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n startColumn--;\n }\n }\n if (endColumn > 1) {\n const charCodeBefore = lineContent.charCodeAt(endColumn - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n endColumn--;\n }\n }\n const currentStartOffset = startColumn - 1;\n const currentEndOffset = endColumn - 2;\n nextStartOffset = stack.consumeLowerThan(currentStartOffset, nextStartOffset, result);\n if (stack.count === 0) {\n nextStartOffset = currentStartOffset;\n }\n stack.insert(currentEndOffset, className, metadata);\n }\n stack.consumeLowerThan(1073741824 /* MAX_SAFE_SMALL_INTEGER */, nextStartOffset, result);\n return result;\n }\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nexport let OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from '../controller/cursorCommon.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { LanguageConfigurationRegistry } from '../modes/languageConfigurationRegistry.js';\nconst repeatCache = Object.create(null);\nexport function cachedStringRepeat(str, count) {\n if (count <= 0) {\n return '';\n }\n if (!repeatCache[str]) {\n repeatCache[str] = ['', str];\n }\n const cache = repeatCache[str];\n for (let i = cache.length; i <= count; i++) {\n cache[i] = cache[i - 1] + str;\n }\n return cache[count];\n}\nexport class ShiftCommand {\n constructor(range, opts) {\n this._opts = opts;\n this._selection = range;\n this._selectionId = null;\n this._useLastEditRangeForCursorEndPosition = false;\n this._selectionStartColumnStaysPut = false;\n }\n static unshiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n // Determine the visible column where the content starts\n const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n if (insertSpaces) {\n const indent = cachedStringRepeat(' ', indentSize);\n const desiredTabStop = CursorColumns.prevIndentTabStop(contentStartVisibleColumn, indentSize);\n const indentCount = desiredTabStop / indentSize; // will be an integer\n return cachedStringRepeat(indent, indentCount);\n }\n else {\n const indent = '\\t';\n const desiredTabStop = CursorColumns.prevRenderTabStop(contentStartVisibleColumn, tabSize);\n const indentCount = desiredTabStop / tabSize; // will be an integer\n return cachedStringRepeat(indent, indentCount);\n }\n }\n static shiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n // Determine the visible column where the content starts\n const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n if (insertSpaces) {\n const indent = cachedStringRepeat(' ', indentSize);\n const desiredTabStop = CursorColumns.nextIndentTabStop(contentStartVisibleColumn, indentSize);\n const indentCount = desiredTabStop / indentSize; // will be an integer\n return cachedStringRepeat(indent, indentCount);\n }\n else {\n const indent = '\\t';\n const desiredTabStop = CursorColumns.nextRenderTabStop(contentStartVisibleColumn, tabSize);\n const indentCount = desiredTabStop / tabSize; // will be an integer\n return cachedStringRepeat(indent, indentCount);\n }\n }\n _addEditOperation(builder, range, text) {\n if (this._useLastEditRangeForCursorEndPosition) {\n builder.addTrackedEditOperation(range, text);\n }\n else {\n builder.addEditOperation(range, text);\n }\n }\n getEditOperations(model, builder) {\n const startLine = this._selection.startLineNumber;\n let endLine = this._selection.endLineNumber;\n if (this._selection.endColumn === 1 && startLine !== endLine) {\n endLine = endLine - 1;\n }\n const { tabSize, indentSize, insertSpaces } = this._opts;\n const shouldIndentEmptyLines = (startLine === endLine);\n if (this._opts.useTabStops) {\n // if indenting or outdenting on a whitespace only line\n if (this._selection.isEmpty()) {\n if (/^\\s*$/.test(model.getLineContent(startLine))) {\n this._useLastEditRangeForCursorEndPosition = true;\n }\n }\n // keep track of previous line's \"miss-alignment\"\n let previousLineExtraSpaces = 0, extraSpaces = 0;\n for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++, previousLineExtraSpaces = extraSpaces) {\n extraSpaces = 0;\n let lineText = model.getLineContent(lineNumber);\n let indentationEndIndex = strings.firstNonWhitespaceIndex(lineText);\n if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {\n // empty line or line with no leading whitespace => nothing to do\n continue;\n }\n if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {\n // do not indent empty lines => nothing to do\n continue;\n }\n if (indentationEndIndex === -1) {\n // the entire line is whitespace\n indentationEndIndex = lineText.length;\n }\n if (lineNumber > 1) {\n let contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(lineText, indentationEndIndex + 1, tabSize);\n if (contentStartVisibleColumn % indentSize !== 0) {\n // The current line is \"miss-aligned\", so let's see if this is expected...\n // This can only happen when it has trailing commas in the indent\n if (model.isCheapToTokenize(lineNumber - 1)) {\n let enterAction = LanguageConfigurationRegistry.getEnterAction(this._opts.autoIndent, model, new Range(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1), lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)));\n if (enterAction) {\n extraSpaces = previousLineExtraSpaces;\n if (enterAction.appendText) {\n for (let j = 0, lenJ = enterAction.appendText.length; j < lenJ && extraSpaces < indentSize; j++) {\n if (enterAction.appendText.charCodeAt(j) === 32 /* Space */) {\n extraSpaces++;\n }\n else {\n break;\n }\n }\n }\n if (enterAction.removeText) {\n extraSpaces = Math.max(0, extraSpaces - enterAction.removeText);\n }\n // Act as if `prefixSpaces` is not part of the indentation\n for (let j = 0; j < extraSpaces; j++) {\n if (indentationEndIndex === 0 || lineText.charCodeAt(indentationEndIndex - 1) !== 32 /* Space */) {\n break;\n }\n indentationEndIndex--;\n }\n }\n }\n }\n }\n if (this._opts.isUnshift && indentationEndIndex === 0) {\n // line with no leading whitespace => nothing to do\n continue;\n }\n let desiredIndent;\n if (this._opts.isUnshift) {\n desiredIndent = ShiftCommand.unshiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n }\n else {\n desiredIndent = ShiftCommand.shiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n }\n this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), desiredIndent);\n if (lineNumber === startLine && !this._selection.isEmpty()) {\n // Force the startColumn to stay put because we're inserting after it\n this._selectionStartColumnStaysPut = (this._selection.startColumn <= indentationEndIndex + 1);\n }\n }\n }\n else {\n // if indenting or outdenting on a whitespace only line\n if (!this._opts.isUnshift && this._selection.isEmpty() && model.getLineLength(startLine) === 0) {\n this._useLastEditRangeForCursorEndPosition = true;\n }\n const oneIndent = (insertSpaces ? cachedStringRepeat(' ', indentSize) : '\\t');\n for (let lineNumber = startLine; lineNumber <= endLine; lineNumber++) {\n const lineText = model.getLineContent(lineNumber);\n let indentationEndIndex = strings.firstNonWhitespaceIndex(lineText);\n if (this._opts.isUnshift && (lineText.length === 0 || indentationEndIndex === 0)) {\n // empty line or line with no leading whitespace => nothing to do\n continue;\n }\n if (!shouldIndentEmptyLines && !this._opts.isUnshift && lineText.length === 0) {\n // do not indent empty lines => nothing to do\n continue;\n }\n if (indentationEndIndex === -1) {\n // the entire line is whitespace\n indentationEndIndex = lineText.length;\n }\n if (this._opts.isUnshift && indentationEndIndex === 0) {\n // line with no leading whitespace => nothing to do\n continue;\n }\n if (this._opts.isUnshift) {\n indentationEndIndex = Math.min(indentationEndIndex, indentSize);\n for (let i = 0; i < indentationEndIndex; i++) {\n const chr = lineText.charCodeAt(i);\n if (chr === 9 /* Tab */) {\n indentationEndIndex = i + 1;\n break;\n }\n }\n this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), '');\n }\n else {\n this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, 1), oneIndent);\n if (lineNumber === startLine && !this._selection.isEmpty()) {\n // Force the startColumn to stay put because we're inserting after it\n this._selectionStartColumnStaysPut = (this._selection.startColumn === 1);\n }\n }\n }\n }\n this._selectionId = builder.trackSelection(this._selection);\n }\n computeCursorState(model, helper) {\n if (this._useLastEditRangeForCursorEndPosition) {\n let lastOp = helper.getInverseEditOperations()[0];\n return new Selection(lastOp.range.endLineNumber, lastOp.range.endColumn, lastOp.range.endLineNumber, lastOp.range.endColumn);\n }\n const result = helper.getTrackedSelection(this._selectionId);\n if (this._selectionStartColumnStaysPut) {\n // The selection start should not move\n let initialStartColumn = this._selection.startColumn;\n let resultStartColumn = result.startColumn;\n if (resultStartColumn <= initialStartColumn) {\n return result;\n }\n if (result.getDirection() === 0 /* LTR */) {\n return new Selection(result.startLineNumber, initialStartColumn, result.endLineNumber, result.endColumn);\n }\n return new Selection(result.endLineNumber, result.endColumn, result.startLineNumber, initialStartColumn);\n }\n return result;\n }\n}\n","import * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport type { IFocusZoneProps } from '../../FocusZone';\nimport type { IIconProps } from '../../Icon';\nimport type { ICalloutProps, ICalloutContentStyleProps } from '../../Callout';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IButtonStyles } from '../../Button';\nimport type { IRefObject, IBaseProps, IRectangle, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities';\nimport type { IWithResponsiveModeState } from '../../ResponsiveMode';\nimport type { IContextualMenuClassNames, IMenuItemClassNames } from './ContextualMenu.classNames';\nimport type { IVerticalDividerClassNames } from '../Divider/VerticalDivider.types';\nimport type {\n IContextualMenuItemProps,\n IContextualMenuRenderItem,\n IContextualMenuItemStyleProps,\n IContextualMenuItemRenderFunctions,\n} from './ContextualMenuItem.types';\nimport type { IKeytipProps } from '../../Keytip';\nimport type { Target } from '@fluentui/react-hooks';\nimport type { IPopupRestoreFocusParams } from '../../Popup';\n\nexport { DirectionalHint } from '../../common/DirectionalHint';\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport enum ContextualMenuItemType {\n Normal = 0,\n Divider = 1,\n Header = 2,\n Section = 3,\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenu {}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuProps\n extends IBaseProps,\n React.RefAttributes,\n // eslint-disable-next-line deprecation/deprecation\n IWithResponsiveModeState {\n /**\n * Optional callback to access the IContextualMenu interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * Theme provided by higher-order component.\n */\n theme?: ITheme;\n\n /**\n * Additional CSS class to apply to the ContextualMenu.\n */\n className?: string;\n\n /**\n * The target that the ContextualMenu should try to position itself based on.\n * It can be either an element, a query selector string resolving to a valid element,\n * or a MouseEvent. If a MouseEvent is given, the origin point of the event will be used.\n */\n target?: Target;\n\n /**\n * How the menu should be positioned\n * @defaultvalue DirectionalHint.bottomAutoEdge\n */\n directionalHint?: DirectionalHint;\n\n /**\n * How the menu should be positioned in RTL layouts.\n * If not specified, a mirror of `directionalHint` will be used.\n */\n directionalHintForRTL?: DirectionalHint;\n\n /**\n * The gap between the ContextualMenu and the target\n * @defaultvalue 0\n */\n gapSpace?: number;\n\n /**\n * The width of the beak.\n * @defaultvalue 16\n */\n beakWidth?: number;\n\n /**\n * If true the context menu will render as the same width as the target element\n * @defaultvalue false\n */\n useTargetWidth?: boolean;\n\n /**\n * If true the context menu will have a minimum width equal to the width of the target element\n * @defaultvalue false\n */\n useTargetAsMinWidth?: boolean;\n\n /**\n * The bounding rectangle (or callback that returns a rectangle) which the contextual menu can appear in.\n */\n bounds?: IRectangle | ((target?: Target, targetWindow?: Window) => IRectangle | undefined);\n\n /**\n * If true then the beak is visible. If false it will not be shown.\n */\n isBeakVisible?: boolean;\n\n /**\n * If true, the menu will be positioned to cover the target.\n * If false, it will be positioned next to the target.\n * @defaultvalue false\n */\n coverTarget?: boolean;\n\n /**\n * If true the positioning logic will prefer to flip edges rather than to nudge the rectangle to fit within bounds,\n * thus making sure the element aligns perfectly with target's alignment edge\n */\n alignTargetEdge?: boolean;\n\n /**\n * Menu items to display.\n */\n items: IContextualMenuItem[];\n\n /**\n * Used as `aria-labelledby` for the menu element inside the callout.\n */\n labelElementId?: string;\n\n /**\n * Whether to focus on the menu when mounted.\n * @defaultvalue true\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * Whether to focus on the contextual menu container (as opposed to the first menu item).\n */\n shouldFocusOnContainer?: boolean;\n\n /**\n * Callback when the ContextualMenu tries to close. If `dismissAll` is true then all\n * submenus will be dismissed.\n */\n onDismiss?: (ev?: Event | React.MouseEvent | React.KeyboardEvent, dismissAll?: boolean) => void;\n\n /**\n * Click handler which is invoked if `onClick` is not passed for individual contextual\n * menu item.\n * Returning true will dismiss the menu even if `ev.preventDefault()` was called.\n */\n onItemClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Whether this menu is a submenu of another menu.\n */\n isSubMenu?: boolean;\n\n /**\n * ID for the ContextualMenu's root element (inside the callout).\n * Should be used for `aria-owns` and other such uses, rather than direct reference for programmatic purposes.\n */\n id?: string;\n\n /**\n * Accessible label for the ContextualMenu's root element (inside the callout).\n */\n ariaLabel?: string;\n\n /**\n * If true do not render on a new layer. If false render on a new layer.\n * @defaultvalue false\n */\n doNotLayer?: boolean;\n\n /**\n * If true the position will not change sides in an attempt to fit the ContextualMenu within bounds.\n * It will still attempt to align it to whatever bounds are given.\n * @defaultvalue false\n */\n directionalHintFixed?: boolean;\n\n /**\n * Callback for when the menu has been opened.\n */\n onMenuOpened?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Callback for when the menu is being closed (removing from the DOM).\n */\n onMenuDismissed?: (contextualMenu?: IContextualMenuProps) => void;\n\n /**\n * Additional custom props for the Callout.\n */\n calloutProps?: ICalloutProps;\n\n /**\n * Title to be displayed at the top of the menu, above the items.\n */\n title?: string;\n\n /**\n * Method to provide the classnames to style the contextual menu.\n * @deprecated Use `styles` instead to leverage mergeStyles API.\n */\n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames?: (theme: ITheme, className?: string) => IContextualMenuClassNames;\n\n /** Custom render function for a submenu. */\n onRenderSubMenu?: IRenderFunction;\n\n /**\n * Method to override the render of the list of menu items.\n */\n onRenderMenuList?: IRenderFunction;\n\n /**\n * Delay (in milliseconds) to wait before expanding / dismissing a submenu on mouseEnter or mouseLeave\n */\n subMenuHoverDelay?: number;\n\n /**\n * Custom component to use for rendering individual menu items.\n * @defaultvalue ContextualMenuItem\n */\n contextualMenuItemAs?:\n | React.ComponentClass\n | React.FunctionComponent;\n\n /**\n * Props to pass down to the FocusZone.\n * NOTE: the default FocusZoneDirection will be used unless a direction\n * is specified in the focusZoneProps (even if other focusZoneProps are defined)\n * @defaultvalue \\{ direction: FocusZoneDirection.vertical \\}\n */\n focusZoneProps?: IFocusZoneProps;\n\n /**\n * Custom component to use for rendering the focus zone (the root).\n * @defaultValue FocusZone\n */\n focusZoneAs?: React.ComponentClass | React.FunctionComponent;\n\n /**\n * If true, renders the ContextualMenu in a hidden state.\n * Use this flag, rather than rendering a ContextualMenu conditionally based on visibility,\n * to improve rendering performance when it becomes visible.\n * Note: When ContextualMenu is hidden its content will not be rendered. It will only render\n * once the ContextualMenu is visible.\n */\n hidden?: boolean;\n\n /**\n * If true, the menu will be updated even when `hidden=true`. Note that this will consume\n * resources to update even when nothing is being shown to the user. This might be helpful if\n * your updates are small and you want the menu to display quickly when `hidden` is set to false.\n */\n shouldUpdateWhenHidden?: boolean;\n\n /**\n * If true, the contextual menu will not be updated until focus enters the menu via other means.\n * This will only result in different behavior when `shouldFocusOnMount = false`.\n */\n delayUpdateFocusOnHover?: boolean;\n\n /**\n * Called when the component is unmounting, and focus needs to be restored. If this is provided,\n * focus will not be restored automatically, and you'll need to call `params.originalElement.focus()`.\n */\n onRestoreFocus?: (params: IPopupRestoreFocusParams) => void;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItemRenderProps extends IContextualMenuItem {\n index: number;\n focusableElementIndex: number;\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuListProps {\n items: IContextualMenuItem[];\n totalItemCount: number;\n hasCheckmarks: boolean;\n hasIcons: boolean;\n defaultMenuItemRenderer: (item: IContextualMenuItemRenderProps) => React.ReactNode;\n ariaLabel?: string;\n labelElementId?: string;\n role?: string;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuItem {\n /**\n * Optional callback to access the IContextualMenuRenderItem interface.\n * This will get passed down to ContextualMenuItem.\n */\n componentRef?: IRefObject;\n\n /**\n * Unique id to identify the item\n */\n key: string;\n\n /**\n * Text of the menu item.\n * If a standard hyphen (-) is passed in, then the item will be rendered as a divider.\n * If a dash must appear as text, use an emdash (—), figuredash (‒), or minus symbol (−) instead.\n */\n text?: string;\n\n /**\n * Secondary description for the menu item to display\n */\n secondaryText?: string;\n\n itemType?: ContextualMenuItemType;\n\n /**\n * Props for an icon to display next to the item.\n */\n iconProps?: IIconProps;\n\n /**\n * Custom render function for the menu item icon\n */\n onRenderIcon?: IRenderFunction;\n\n /**\n * Props for the Icon used for the chevron.\n */\n submenuIconProps?: IIconProps;\n\n /**\n * Whether the menu item is disabled\n * @defaultvalue false\n */\n disabled?: boolean;\n\n /**\n * If the menu item is a split button, this prop disables purely the primary action of the button.\n * @defaultvalue false\n */\n primaryDisabled?: boolean;\n\n /**\n * @deprecated Not used\n */\n shortCut?: string;\n\n /**\n * Whether or not this menu item can be checked\n * @defaultvalue false\n */\n canCheck?: boolean;\n\n /**\n * Whether or not this menu item is currently checked.\n * @defaultvalue false\n */\n checked?: boolean;\n\n /**\n * Whether or not this menu item is a splitButton.\n * @defaultvalue false\n */\n split?: boolean;\n\n /**\n * Any custom data the developer wishes to associate with the menu item.\n */\n data?: any;\n\n /**\n * Callback for when the menu item is invoked. If `ev.preventDefault()` is called in `onClick`,\n * the click will not close the menu.\n *\n * Only for ContextualMenu items, returning true will dismiss the menu even if `ev.preventDefault()`\n * was called (does not apply for button or CommandBar sub-menu items).\n */\n onClick?: (\n ev?: React.MouseEvent | React.KeyboardEvent,\n item?: IContextualMenuItem,\n ) => boolean | void;\n\n /**\n * Navigate to this URL when the menu item is clicked.\n */\n href?: string;\n\n /**\n * Target window when using `href`.\n */\n target?: string;\n\n /**\n * Link relation setting when using `href`.\n * If `target` is `_blank`, `rel` is defaulted to a value to prevent clickjacking.\n */\n rel?: string;\n\n /**\n * Properties to apply to a submenu to this item.\n *\n * The ContextualMenu will provide default values for `target`, `onDismiss`, `isSubMenu`,\n * `id`, `shouldFocusOnMount`, `directionalHint`, `className`, and `gapSpace`, all of which\n * can be overridden.\n */\n subMenuProps?: IContextualMenuProps;\n\n /**\n * Method to provide the classnames to style the individual items inside a menu.\n * @deprecated Use `styles` prop of `IContextualMenuItemProps` to leverage mergeStyles API.\n */\n getItemClassNames?: (\n theme: ITheme,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n isAnchorLink: boolean,\n knownIcon: boolean,\n itemClassName?: string,\n dividerClassName?: string,\n iconClassName?: string,\n subMenuClassName?: string,\n primaryDisabled?: boolean,\n ) => // eslint-disable-next-line deprecation/deprecation\n IMenuItemClassNames;\n\n /**\n * Optional IContextualMenuItemProps overrides to customize behaviors such as item styling via `styles`.\n */\n itemProps?: Partial;\n\n /**\n * Method to provide the classnames to style the Vertical Divider of a split button inside a menu.\n * Default value is the `getSplitButtonVerticalDividerClassNames` func defined in `ContextualMenu.classnames.ts`.\n * @defaultvalue getSplitButtonVerticalDividerClassNames\n */\n // eslint-disable-next-line deprecation/deprecation\n getSplitButtonVerticalDividerClassNames?: (theme: ITheme) => IVerticalDividerClassNames;\n\n /**\n * Properties to apply to render this item as a section.\n * This prop is mutually exclusive with `subMenuProps`.\n */\n sectionProps?: IContextualMenuSection;\n\n /**\n * Additional CSS class to apply to the menu item.\n */\n className?: string;\n\n /**\n * Additional styles to apply to the menu item\n * @deprecated Use `styles` instead to leverage mergeStyles API.\n */\n style?: React.CSSProperties;\n\n /**\n * Custom accessible label for the element.\n * If no override is specified, the `aria-label` attribute will contain the item name.\n */\n ariaLabel?: string;\n\n /**\n * Title (tooltip) text displayed when hovering over an item.\n */\n title?: string;\n\n /**\n * Method to custom render this menu item.\n * For keyboard accessibility, the top-level rendered item should be a focusable element\n * (like an anchor or a button) or have the `data-is-focusable` property set to true.\n *\n * @param item - Item to render. Will typically be of type `IContextualMenuItem`.\n * (When rendering a command bar item, will be `ICommandBarItemProps`.)\n * @param dismissMenu - Function to dismiss the menu. Can be used to ensure that a custom menu\n * item click dismisses the menu. (Will be undefined if rendering a command bar item.)\n */\n onRender?: (item: any, dismissMenu: (ev?: any, dismissAll?: boolean) => void) => React.ReactNode;\n\n /**\n * Method to customize sub-components rendering of this menu item.\n *\n * @param props - Props used to pass into render functions\n * @param defaultRenders - Default render functions that renders default sub-components\n */\n onRenderContent?: (\n props: IContextualMenuItemProps,\n defaultRenders: IContextualMenuItemRenderFunctions,\n ) => React.ReactNode;\n\n /**\n * A function to be executed on mouse down. This is executed before an `onClick` event and can\n * be used to interrupt native on click events as well. The click event should still handle\n * the commands. This should only be used in special cases when react and non-react are mixed.\n */\n onMouseDown?: (item: IContextualMenuItem, event: React.MouseEvent) => void;\n\n /**\n * Optional override for the menu button's role.\n * @default `menuitem` or `menuitemcheckbox`\n */\n role?: string;\n\n /**\n * When rendering a custom menu component that is passed in, the component might also be a list of\n * elements. We want to keep track of the correct index our menu is using based off of\n * the length of the custom list. It is up to the user to increment the count for their list.\n */\n customOnRenderListLength?: number;\n\n /**\n * Keytip for this contextual menu item\n */\n keytipProps?: IKeytipProps;\n\n /**\n * Any additional properties to use when custom rendering menu items.\n */\n [propertyName: string]: any;\n\n /**\n * Detailed description of the menu item for the benefit of screen readers.\n */\n ariaDescription?: string;\n\n /**\n * ID of the element that contains additional detailed descriptive information for screen readers\n */\n ariaDescribedBy?: string;\n\n /**\n * @deprecated No longer used. All contextual menu items are now focusable when disabled.\n */\n inactive?: boolean;\n\n /**\n * Text of the menu item.\n * @deprecated Use `text` instead.\n */\n name?: string;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSection extends React.ClassAttributes {\n /**\n * The items to include inside the section.\n */\n items: IContextualMenuItem[];\n\n /**\n * The optional section title.\n */\n title?: string | IContextualMenuItem;\n\n /**\n * If set to true, the section will display a divider at the top of the section.\n */\n topDivider?: boolean;\n\n /**\n * If set to true, the section will display a divider at the bottom of the section.\n */\n bottomDivider?: boolean;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IMenuItemStyles extends IButtonStyles {\n /**\n * Styles for a menu item that is an anchor link.\n */\n item?: IStyle;\n\n /**\n * Styles for the content inside the button/link of the menuItem.\n */\n linkContent?: IStyle;\n\n /**\n * Styles for a menu item that is an anchor link.\n */\n anchorLink?: IStyle;\n\n /**\n * Default icon color style for known icons.\n */\n iconColor?: IStyle;\n\n /**\n * Default style for checkmark icons.\n */\n checkmarkIcon?: IStyle;\n\n /**\n * Styles for the submenu icon of a menu item.\n */\n subMenuIcon?: IStyle;\n\n /**\n * Styles for a divider item of a ContextualMenu.\n */\n divider?: IStyle;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyleProps {\n theme: ITheme;\n\n className?: string;\n\n // Insert ContextualMenu style props below\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuStyles {\n /**\n * Style override for the contextual menu title.\n */\n title: IStyle;\n\n /**\n * Style for the container which parents all menu items.\n */\n container: IStyle;\n\n /**\n * Base styles for the root element of all ContextualMenus.\n */\n root: IStyle;\n\n /**\n * Styles for the header item of a ContextualMenu\n */\n header: IStyle;\n\n /**\n * Styles for the list that contains all menuItems.\n */\n list: IStyle;\n\n /**\n * SubComponent styles.\n */\n subComponentStyles: IContextualMenuSubComponentStyles;\n}\n\n/**\n * {@docCategory ContextualMenu}\n */\nexport interface IContextualMenuSubComponentStyles {\n /** Styles for the callout that hosts the ContextualMenu options. */\n callout: IStyleFunctionOrObject;\n\n /** Styles for each menu item. */\n menuItem: IStyleFunctionOrObject;\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child: HTMLElement, allowVirtualParents: boolean = true): HTMLElement | null {\n return (\n child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && (child.parentNode as HTMLElement)))\n );\n}\n","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child: HTMLElement): HTMLElement | undefined {\n let parent: HTMLElement | undefined;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n","import { IVirtualElement } from './IVirtualElement';\n/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element: HTMLElement | IVirtualElement): element is IVirtualElement {\n return element && !!(element)._virtual;\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../base/common/arrays.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport var DefaultQuickAccessFilterValue;\n(function (DefaultQuickAccessFilterValue) {\n /**\n * Keep the value as it is given to quick access.\n */\n DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"PRESERVE\"] = 0] = \"PRESERVE\";\n /**\n * Use the value that was used last time something was accepted from the picker.\n */\n DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"LAST\"] = 1] = \"LAST\";\n})(DefaultQuickAccessFilterValue || (DefaultQuickAccessFilterValue = {}));\nexport const Extensions = {\n Quickaccess: 'workbench.contributions.quickaccess'\n};\nexport class QuickAccessRegistry {\n constructor() {\n this.providers = [];\n this.defaultProvider = undefined;\n }\n registerQuickAccessProvider(provider) {\n // Extract the default provider when no prefix is present\n if (provider.prefix.length === 0) {\n this.defaultProvider = provider;\n }\n else {\n this.providers.push(provider);\n }\n // sort the providers by decreasing prefix length, such that longer\n // prefixes take priority: 'ext' vs 'ext install' - the latter should win\n this.providers.sort((providerA, providerB) => providerB.prefix.length - providerA.prefix.length);\n return toDisposable(() => {\n this.providers.splice(this.providers.indexOf(provider), 1);\n if (this.defaultProvider === provider) {\n this.defaultProvider = undefined;\n }\n });\n }\n getQuickAccessProviders() {\n return coalesce([this.defaultProvider, ...this.providers]);\n }\n getQuickAccessProvider(prefix) {\n const result = prefix ? (this.providers.find(provider => prefix.startsWith(provider.prefix)) || undefined) : undefined;\n return result || this.defaultProvider;\n }\n}\nRegistry.add(Extensions.Quickaccess, new QuickAccessRegistry());\n","import * as React from 'react';\n\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue: T | (() => T)): T {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n const ref = React.useRef<{ value: T }>();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? (initialValue as Function)() : initialValue,\n };\n }\n return ref.current.value;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?';\n/**\n * Create a word definition regular expression based on default word separators.\n * Optionally provide allowed separators that should be included in words.\n *\n * The default would look like this:\n * /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g\n */\nfunction createWordRegExp(allowInWords = '') {\n let source = '(-?\\\\d*\\\\.\\\\d\\\\w*)|([^';\n for (const sep of USUAL_WORD_SEPARATORS) {\n if (allowInWords.indexOf(sep) >= 0) {\n continue;\n }\n source += '\\\\' + sep;\n }\n source += '\\\\s]+)';\n return new RegExp(source, 'g');\n}\n// catches numbers (including floating numbers) in the first group, and alphanum in the second\nexport const DEFAULT_WORD_REGEXP = createWordRegExp();\nexport function ensureValidWordDefinition(wordDefinition) {\n let result = DEFAULT_WORD_REGEXP;\n if (wordDefinition && (wordDefinition instanceof RegExp)) {\n if (!wordDefinition.global) {\n let flags = 'g';\n if (wordDefinition.ignoreCase) {\n flags += 'i';\n }\n if (wordDefinition.multiline) {\n flags += 'm';\n }\n if (wordDefinition.unicode) {\n flags += 'u';\n }\n result = new RegExp(wordDefinition.source, flags);\n }\n else {\n result = wordDefinition;\n }\n }\n result.lastIndex = 0;\n return result;\n}\nconst _defaultConfig = {\n maxLen: 1000,\n windowSize: 15,\n timeBudget: 150\n};\nexport function getWordAtText(column, wordDefinition, text, textOffset, config = _defaultConfig) {\n if (text.length > config.maxLen) {\n // don't throw strings that long at the regexp\n // but use a sub-string in which a word must occur\n let start = column - config.maxLen / 2;\n if (start < 0) {\n start = 0;\n }\n else {\n textOffset += start;\n }\n text = text.substring(start, column + config.maxLen / 2);\n return getWordAtText(column, wordDefinition, text, textOffset, config);\n }\n const t1 = Date.now();\n const pos = column - 1 - textOffset;\n let prevRegexIndex = -1;\n let match = null;\n for (let i = 1;; i++) {\n // check time budget\n if (Date.now() - t1 >= config.timeBudget) {\n break;\n }\n // reset the index at which the regexp should start matching, also know where it\n // should stop so that subsequent search don't repeat previous searches\n const regexIndex = pos - config.windowSize * i;\n wordDefinition.lastIndex = Math.max(0, regexIndex);\n const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex);\n if (!thisMatch && match) {\n // stop: we have something\n break;\n }\n match = thisMatch;\n // stop: searched at start\n if (regexIndex <= 0) {\n break;\n }\n prevRegexIndex = regexIndex;\n }\n if (match) {\n let result = {\n word: match[0],\n startColumn: textOffset + 1 + match.index,\n endColumn: textOffset + 1 + match.index + match[0].length\n };\n wordDefinition.lastIndex = 0;\n return result;\n }\n return null;\n}\nfunction _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) {\n let match;\n while (match = wordDefinition.exec(text)) {\n const matchIndex = match.index || 0;\n if (matchIndex <= pos && wordDefinition.lastIndex >= pos) {\n return match;\n }\n else if (stopPos > 0 && matchIndex > stopPos) {\n return null;\n }\n }\n return null;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nexport const EditorZoom = new class {\n constructor() {\n this._zoomLevel = 0;\n this._onDidChangeZoomLevel = new Emitter();\n this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;\n }\n getZoomLevel() {\n return this._zoomLevel;\n }\n setZoomLevel(zoomLevel) {\n zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);\n if (this._zoomLevel === zoomLevel) {\n return;\n }\n this._zoomLevel = zoomLevel;\n this._onDidChangeZoomLevel.fire(this._zoomLevel);\n }\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport './list.css';\nimport { List } from './listWidget.js';\nclass PagedRenderer {\n constructor(renderer, modelProvider) {\n this.renderer = renderer;\n this.modelProvider = modelProvider;\n }\n get templateId() { return this.renderer.templateId; }\n renderTemplate(container) {\n const data = this.renderer.renderTemplate(container);\n return { data, disposable: Disposable.None };\n }\n renderElement(index, _, data, height) {\n if (data.disposable) {\n data.disposable.dispose();\n }\n if (!data.data) {\n return;\n }\n const model = this.modelProvider();\n if (model.isResolved(index)) {\n return this.renderer.renderElement(model.get(index), index, data.data, height);\n }\n const cts = new CancellationTokenSource();\n const promise = model.resolve(index, cts.token);\n data.disposable = { dispose: () => cts.cancel() };\n this.renderer.renderPlaceholder(index, data.data);\n promise.then(entry => this.renderer.renderElement(entry, index, data.data, height));\n }\n disposeTemplate(data) {\n if (data.disposable) {\n data.disposable.dispose();\n data.disposable = undefined;\n }\n if (data.data) {\n this.renderer.disposeTemplate(data.data);\n data.data = undefined;\n }\n }\n}\nclass PagedAccessibilityProvider {\n constructor(modelProvider, accessibilityProvider) {\n this.modelProvider = modelProvider;\n this.accessibilityProvider = accessibilityProvider;\n }\n getWidgetAriaLabel() {\n return this.accessibilityProvider.getWidgetAriaLabel();\n }\n getAriaLabel(index) {\n const model = this.modelProvider();\n if (!model.isResolved(index)) {\n return null;\n }\n return this.accessibilityProvider.getAriaLabel(model.get(index));\n }\n}\nfunction fromPagedListOptions(modelProvider, options) {\n return Object.assign(Object.assign({}, options), { accessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider) });\n}\nexport class PagedList {\n constructor(user, container, virtualDelegate, renderers, options = {}) {\n const modelProvider = () => this.model;\n const pagedRenderers = renderers.map(r => new PagedRenderer(r, modelProvider));\n this.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n }\n updateOptions(options) {\n this.list.updateOptions(options);\n }\n getHTMLElement() {\n return this.list.getHTMLElement();\n }\n get onDidFocus() {\n return this.list.onDidFocus;\n }\n get onDidDispose() {\n return this.list.onDidDispose;\n }\n get onMouseDblClick() {\n return Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n }\n get onPointer() {\n return Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n }\n get onDidChangeSelection() {\n return Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n }\n get model() {\n return this._model;\n }\n set model(model) {\n this._model = model;\n this.list.splice(0, this.list.length, range(model.length));\n }\n getFocus() {\n return this.list.getFocus();\n }\n getSelection() {\n return this.list.getSelection();\n }\n getSelectedElements() {\n return this.getSelection().map(i => this.model.get(i));\n }\n style(styles) {\n this.list.style(styles);\n }\n dispose() {\n this.list.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, append, clearNode, createStyleSheet } from '../../dom.js';\nimport { List } from '../list/listWidget.js';\nimport { SplitView } from '../splitview/splitview.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport './table.css';\nclass TableListRenderer {\n constructor(columns, renderers, getColumnSize) {\n this.columns = columns;\n this.getColumnSize = getColumnSize;\n this.templateId = TableListRenderer.TemplateId;\n this.renderedTemplates = new Set();\n const rendererMap = new Map(renderers.map(r => [r.templateId, r]));\n this.renderers = [];\n for (const column of columns) {\n const renderer = rendererMap.get(column.templateId);\n if (!renderer) {\n throw new Error(`Table cell renderer for template id ${column.templateId} not found.`);\n }\n this.renderers.push(renderer);\n }\n }\n renderTemplate(container) {\n const rowContainer = append(container, $('.monaco-table-tr'));\n const cellContainers = [];\n const cellTemplateData = [];\n for (let i = 0; i < this.columns.length; i++) {\n const renderer = this.renderers[i];\n const cellContainer = append(rowContainer, $('.monaco-table-td', { 'data-col-index': i }));\n cellContainer.style.width = `${this.getColumnSize(i)}px`;\n cellContainers.push(cellContainer);\n cellTemplateData.push(renderer.renderTemplate(cellContainer));\n }\n const result = { container, cellContainers, cellTemplateData };\n this.renderedTemplates.add(result);\n return result;\n }\n renderElement(element, index, templateData, height) {\n for (let i = 0; i < this.columns.length; i++) {\n const column = this.columns[i];\n const cell = column.project(element);\n const renderer = this.renderers[i];\n renderer.renderElement(cell, index, templateData.cellTemplateData[i], height);\n }\n }\n disposeElement(element, index, templateData, height) {\n for (let i = 0; i < this.columns.length; i++) {\n const renderer = this.renderers[i];\n if (renderer.disposeElement) {\n const column = this.columns[i];\n const cell = column.project(element);\n renderer.disposeElement(cell, index, templateData.cellTemplateData[i], height);\n }\n }\n }\n disposeTemplate(templateData) {\n for (let i = 0; i < this.columns.length; i++) {\n const renderer = this.renderers[i];\n renderer.disposeTemplate(templateData.cellTemplateData[i]);\n }\n clearNode(templateData.container);\n this.renderedTemplates.delete(templateData);\n }\n layoutColumn(index, size) {\n for (const { cellContainers } of this.renderedTemplates) {\n cellContainers[index].style.width = `${size}px`;\n }\n }\n}\nTableListRenderer.TemplateId = 'row';\nfunction asListVirtualDelegate(delegate) {\n return {\n getHeight(row) { return delegate.getHeight(row); },\n getTemplateId() { return TableListRenderer.TemplateId; },\n };\n}\nclass ColumnHeader {\n constructor(column, index) {\n this.column = column;\n this.index = index;\n this._onDidLayout = new Emitter();\n this.onDidLayout = this._onDidLayout.event;\n this.element = $('.monaco-table-th', { 'data-col-index': index, title: column.tooltip }, column.label);\n }\n get minimumSize() { var _a; return (_a = this.column.minimumWidth) !== null && _a !== void 0 ? _a : 120; }\n get maximumSize() { var _a; return (_a = this.column.maximumWidth) !== null && _a !== void 0 ? _a : Number.POSITIVE_INFINITY; }\n get onDidChange() { var _a; return (_a = this.column.onDidChangeWidthConstraints) !== null && _a !== void 0 ? _a : Event.None; }\n layout(size) {\n this._onDidLayout.fire([this.index, size]);\n }\n}\nexport class Table {\n constructor(user, container, virtualDelegate, columns, renderers, _options) {\n this.virtualDelegate = virtualDelegate;\n this.domId = `table_id_${++Table.InstanceCount}`;\n this.cachedHeight = 0;\n this.domNode = append(container, $(`.monaco-table.${this.domId}`));\n const headers = columns.map((c, i) => new ColumnHeader(c, i));\n const descriptor = {\n size: headers.reduce((a, b) => a + b.column.weight, 0),\n views: headers.map(view => ({ size: view.column.weight, view }))\n };\n this.splitview = new SplitView(this.domNode, {\n orientation: 1 /* HORIZONTAL */,\n scrollbarVisibility: 2 /* Hidden */,\n getSashOrthogonalSize: () => this.cachedHeight,\n descriptor\n });\n this.splitview.el.style.height = `${virtualDelegate.headerRowHeight}px`;\n this.splitview.el.style.lineHeight = `${virtualDelegate.headerRowHeight}px`;\n const renderer = new TableListRenderer(columns, renderers, i => this.splitview.getViewSize(i));\n this.list = new List(user, this.domNode, asListVirtualDelegate(virtualDelegate), [renderer], _options);\n this.columnLayoutDisposable = Event.any(...headers.map(h => h.onDidLayout))(([index, size]) => renderer.layoutColumn(index, size));\n this.styleElement = createStyleSheet(this.domNode);\n this.style({});\n }\n get onDidChangeFocus() { return this.list.onDidChangeFocus; }\n get onDidChangeSelection() { return this.list.onDidChangeSelection; }\n get onMouseDblClick() { return this.list.onMouseDblClick; }\n get onPointer() { return this.list.onPointer; }\n get onDidFocus() { return this.list.onDidFocus; }\n get onDidDispose() { return this.list.onDidDispose; }\n updateOptions(options) {\n this.list.updateOptions(options);\n }\n splice(start, deleteCount, elements = []) {\n this.list.splice(start, deleteCount, elements);\n }\n getHTMLElement() {\n return this.domNode;\n }\n style(styles) {\n const content = [];\n content.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight + 1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`);\n this.styleElement.textContent = content.join('\\n');\n this.list.style(styles);\n }\n getSelectedElements() {\n return this.list.getSelectedElements();\n }\n getSelection() {\n return this.list.getSelection();\n }\n getFocus() {\n return this.list.getFocus();\n }\n dispose() {\n this.splitview.dispose();\n this.list.dispose();\n this.columnLayoutDisposable.dispose();\n }\n}\nTable.InstanceCount = 0;\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var TreeMouseEventTarget;\n(function (TreeMouseEventTarget) {\n TreeMouseEventTarget[TreeMouseEventTarget[\"Unknown\"] = 0] = \"Unknown\";\n TreeMouseEventTarget[TreeMouseEventTarget[\"Twistie\"] = 1] = \"Twistie\";\n TreeMouseEventTarget[TreeMouseEventTarget[\"Element\"] = 2] = \"Element\";\n})(TreeMouseEventTarget || (TreeMouseEventTarget = {}));\nexport class TreeError extends Error {\n constructor(user, message) {\n super(`TreeError [${user}] ${message}`);\n }\n}\nexport class WeakMapper {\n constructor(fn) {\n this.fn = fn;\n this._map = new WeakMap();\n }\n map(key) {\n let result = this._map.get(key);\n if (!result) {\n result = this.fn(key);\n this._map.set(key, result);\n }\n return result;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TreeError } from './tree.js';\nimport { splice, tail2 } from '../../../common/arrays.js';\nimport { LcsDiff } from '../../../common/diff/diff.js';\nimport { Emitter, EventBufferer } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport function isFilterResult(obj) {\n return typeof obj === 'object' && 'visibility' in obj && 'data' in obj;\n}\nexport function getVisibleState(visibility) {\n switch (visibility) {\n case true: return 1 /* Visible */;\n case false: return 0 /* Hidden */;\n default: return visibility;\n }\n}\nfunction isCollapsibleStateUpdate(update) {\n return typeof update.collapsible === 'boolean';\n}\nexport class IndexTreeModel {\n constructor(user, list, rootElement, options = {}) {\n this.user = user;\n this.list = list;\n this.rootRef = [];\n this.eventBufferer = new EventBufferer();\n this._onDidChangeCollapseState = new Emitter();\n this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event);\n this._onDidChangeRenderNodeCount = new Emitter();\n this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event);\n this._onDidSplice = new Emitter();\n this.onDidSplice = this._onDidSplice.event;\n this.collapseByDefault = typeof options.collapseByDefault === 'undefined' ? false : options.collapseByDefault;\n this.filter = options.filter;\n this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;\n this.root = {\n parent: undefined,\n element: rootElement,\n children: [],\n depth: 0,\n visibleChildrenCount: 0,\n visibleChildIndex: -1,\n collapsible: false,\n collapsed: false,\n renderNodeCount: 0,\n visibility: 1 /* Visible */,\n visible: true,\n filterData: undefined\n };\n }\n splice(location, deleteCount, toInsert = Iterable.empty(), options = {}) {\n if (location.length === 0) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n if (options.diffIdentityProvider) {\n this.spliceSmart(options.diffIdentityProvider, location, deleteCount, toInsert, options);\n }\n else {\n this.spliceSimple(location, deleteCount, toInsert, options);\n }\n }\n spliceSmart(identity, location, deleteCount, toInsertIterable, options, recurseLevels) {\n var _a;\n if (toInsertIterable === void 0) { toInsertIterable = Iterable.empty(); }\n if (recurseLevels === void 0) { recurseLevels = (_a = options.diffDepth) !== null && _a !== void 0 ? _a : 0; }\n const { parentNode } = this.getParentNodeWithListIndex(location);\n if (!parentNode.lastDiffIds) {\n return this.spliceSimple(location, deleteCount, toInsertIterable, options);\n }\n const toInsert = [...toInsertIterable];\n const index = location[location.length - 1];\n const diff = new LcsDiff({ getElements: () => parentNode.lastDiffIds }, {\n getElements: () => [\n ...parentNode.children.slice(0, index),\n ...toInsert,\n ...parentNode.children.slice(index + deleteCount),\n ].map(e => identity.getId(e.element).toString())\n }).ComputeDiff(false);\n // if we were given a 'best effort' diff, use default behavior\n if (diff.quitEarly) {\n parentNode.lastDiffIds = undefined;\n return this.spliceSimple(location, deleteCount, toInsert, options);\n }\n const locationPrefix = location.slice(0, -1);\n const recurseSplice = (fromOriginal, fromModified, count) => {\n if (recurseLevels > 0) {\n for (let i = 0; i < count; i++) {\n fromOriginal--;\n fromModified--;\n this.spliceSmart(identity, [...locationPrefix, fromOriginal, 0], Number.MAX_SAFE_INTEGER, toInsert[fromModified].children, options, recurseLevels - 1);\n }\n }\n };\n let lastStartO = Math.min(parentNode.children.length, index + deleteCount);\n let lastStartM = toInsert.length;\n for (const change of diff.changes.sort((a, b) => b.originalStart - a.originalStart)) {\n recurseSplice(lastStartO, lastStartM, lastStartO - (change.originalStart + change.originalLength));\n lastStartO = change.originalStart;\n lastStartM = change.modifiedStart - index;\n this.spliceSimple([...locationPrefix, lastStartO], change.originalLength, Iterable.slice(toInsert, lastStartM, lastStartM + change.modifiedLength), options);\n }\n // at this point, startO === startM === count since any remaining prefix should match\n recurseSplice(lastStartO, lastStartM, lastStartO);\n }\n spliceSimple(location, deleteCount, toInsert = Iterable.empty(), { onDidCreateNode, onDidDeleteNode, diffIdentityProvider }) {\n const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n const treeListElementsToInsert = [];\n const nodesToInsertIterator = Iterable.map(toInsert, el => this.createTreeNode(el, parentNode, parentNode.visible ? 1 /* Visible */ : 0 /* Hidden */, revealed, treeListElementsToInsert, onDidCreateNode));\n const lastIndex = location[location.length - 1];\n const lastHadChildren = parentNode.children.length > 0;\n // figure out what's the visible child start index right before the\n // splice point\n let visibleChildStartIndex = 0;\n for (let i = lastIndex; i >= 0 && i < parentNode.children.length; i--) {\n const child = parentNode.children[i];\n if (child.visible) {\n visibleChildStartIndex = child.visibleChildIndex;\n break;\n }\n }\n const nodesToInsert = [];\n let insertedVisibleChildrenCount = 0;\n let renderNodeCount = 0;\n for (const child of nodesToInsertIterator) {\n nodesToInsert.push(child);\n renderNodeCount += child.renderNodeCount;\n if (child.visible) {\n child.visibleChildIndex = visibleChildStartIndex + insertedVisibleChildrenCount++;\n }\n }\n const deletedNodes = splice(parentNode.children, lastIndex, deleteCount, nodesToInsert);\n if (!diffIdentityProvider) {\n parentNode.lastDiffIds = undefined;\n }\n else if (parentNode.lastDiffIds) {\n splice(parentNode.lastDiffIds, lastIndex, deleteCount, nodesToInsert.map(n => diffIdentityProvider.getId(n.element).toString()));\n }\n else {\n parentNode.lastDiffIds = parentNode.children.map(n => diffIdentityProvider.getId(n.element).toString());\n }\n // figure out what is the count of deleted visible children\n let deletedVisibleChildrenCount = 0;\n for (const child of deletedNodes) {\n if (child.visible) {\n deletedVisibleChildrenCount++;\n }\n }\n // and adjust for all visible children after the splice point\n if (deletedVisibleChildrenCount !== 0) {\n for (let i = lastIndex + nodesToInsert.length; i < parentNode.children.length; i++) {\n const child = parentNode.children[i];\n if (child.visible) {\n child.visibleChildIndex -= deletedVisibleChildrenCount;\n }\n }\n }\n // update parent's visible children count\n parentNode.visibleChildrenCount += insertedVisibleChildrenCount - deletedVisibleChildrenCount;\n if (revealed && visible) {\n const visibleDeleteCount = deletedNodes.reduce((r, node) => r + (node.visible ? node.renderNodeCount : 0), 0);\n this._updateAncestorsRenderNodeCount(parentNode, renderNodeCount - visibleDeleteCount);\n this.list.splice(listIndex, visibleDeleteCount, treeListElementsToInsert);\n }\n if (deletedNodes.length > 0 && onDidDeleteNode) {\n const visit = (node) => {\n onDidDeleteNode(node);\n node.children.forEach(visit);\n };\n deletedNodes.forEach(visit);\n }\n const currentlyHasChildren = parentNode.children.length > 0;\n if (lastHadChildren !== currentlyHasChildren) {\n this.setCollapsible(location.slice(0, -1), currentlyHasChildren);\n }\n this._onDidSplice.fire({ insertedNodes: nodesToInsert, deletedNodes });\n let node = parentNode;\n while (node) {\n if (node.visibility === 2 /* Recurse */) {\n this.refilter();\n break;\n }\n node = node.parent;\n }\n }\n rerender(location) {\n if (location.length === 0) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n if (node.visible && revealed) {\n this.list.splice(listIndex, 1, [node]);\n }\n }\n has(location) {\n return this.hasTreeNode(location);\n }\n getListIndex(location) {\n const { listIndex, visible, revealed } = this.getTreeNodeWithListIndex(location);\n return visible && revealed ? listIndex : -1;\n }\n getListRenderCount(location) {\n return this.getTreeNode(location).renderNodeCount;\n }\n isCollapsible(location) {\n return this.getTreeNode(location).collapsible;\n }\n setCollapsible(location, collapsible) {\n const node = this.getTreeNode(location);\n if (typeof collapsible === 'undefined') {\n collapsible = !node.collapsible;\n }\n const update = { collapsible };\n return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n }\n isCollapsed(location) {\n return this.getTreeNode(location).collapsed;\n }\n setCollapsed(location, collapsed, recursive) {\n const node = this.getTreeNode(location);\n if (typeof collapsed === 'undefined') {\n collapsed = !node.collapsed;\n }\n const update = { collapsed, recursive: recursive || false };\n return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n }\n _setCollapseState(location, update) {\n const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n const result = this._setListNodeCollapseState(node, listIndex, revealed, update);\n if (node !== this.root && this.autoExpandSingleChildren && result && !isCollapsibleStateUpdate(update) && node.collapsible && !node.collapsed && !update.recursive) {\n let onlyVisibleChildIndex = -1;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (child.visible) {\n if (onlyVisibleChildIndex > -1) {\n onlyVisibleChildIndex = -1;\n break;\n }\n else {\n onlyVisibleChildIndex = i;\n }\n }\n }\n if (onlyVisibleChildIndex > -1) {\n this._setCollapseState([...location, onlyVisibleChildIndex], update);\n }\n }\n return result;\n }\n _setListNodeCollapseState(node, listIndex, revealed, update) {\n const result = this._setNodeCollapseState(node, update, false);\n if (!revealed || !node.visible || !result) {\n return result;\n }\n const previousRenderNodeCount = node.renderNodeCount;\n const toInsert = this.updateNodeAfterCollapseChange(node);\n const deleteCount = previousRenderNodeCount - (listIndex === -1 ? 0 : 1);\n this.list.splice(listIndex + 1, deleteCount, toInsert.slice(1));\n return result;\n }\n _setNodeCollapseState(node, update, deep) {\n let result;\n if (node === this.root) {\n result = false;\n }\n else {\n if (isCollapsibleStateUpdate(update)) {\n result = node.collapsible !== update.collapsible;\n node.collapsible = update.collapsible;\n }\n else if (!node.collapsible) {\n result = false;\n }\n else {\n result = node.collapsed !== update.collapsed;\n node.collapsed = update.collapsed;\n }\n if (result) {\n this._onDidChangeCollapseState.fire({ node, deep });\n }\n }\n if (!isCollapsibleStateUpdate(update) && update.recursive) {\n for (const child of node.children) {\n result = this._setNodeCollapseState(child, update, true) || result;\n }\n }\n return result;\n }\n expandTo(location) {\n this.eventBufferer.bufferEvents(() => {\n let node = this.getTreeNode(location);\n while (node.parent) {\n node = node.parent;\n location = location.slice(0, location.length - 1);\n if (node.collapsed) {\n this._setCollapseState(location, { collapsed: false, recursive: false });\n }\n }\n });\n }\n refilter() {\n const previousRenderNodeCount = this.root.renderNodeCount;\n const toInsert = this.updateNodeAfterFilterChange(this.root);\n this.list.splice(0, previousRenderNodeCount, toInsert);\n }\n createTreeNode(treeElement, parent, parentVisibility, revealed, treeListElements, onDidCreateNode) {\n const node = {\n parent,\n element: treeElement.element,\n children: [],\n depth: parent.depth + 1,\n visibleChildrenCount: 0,\n visibleChildIndex: -1,\n collapsible: typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : (typeof treeElement.collapsed !== 'undefined'),\n collapsed: typeof treeElement.collapsed === 'undefined' ? this.collapseByDefault : treeElement.collapsed,\n renderNodeCount: 1,\n visibility: 1 /* Visible */,\n visible: true,\n filterData: undefined\n };\n const visibility = this._filterNode(node, parentVisibility);\n node.visibility = visibility;\n if (revealed) {\n treeListElements.push(node);\n }\n const childElements = treeElement.children || Iterable.empty();\n const childRevealed = revealed && visibility !== 0 /* Hidden */ && !node.collapsed;\n const childNodes = Iterable.map(childElements, el => this.createTreeNode(el, node, visibility, childRevealed, treeListElements, onDidCreateNode));\n let visibleChildrenCount = 0;\n let renderNodeCount = 1;\n for (const child of childNodes) {\n node.children.push(child);\n renderNodeCount += child.renderNodeCount;\n if (child.visible) {\n child.visibleChildIndex = visibleChildrenCount++;\n }\n }\n node.collapsible = node.collapsible || node.children.length > 0;\n node.visibleChildrenCount = visibleChildrenCount;\n node.visible = visibility === 2 /* Recurse */ ? visibleChildrenCount > 0 : (visibility === 1 /* Visible */);\n if (!node.visible) {\n node.renderNodeCount = 0;\n if (revealed) {\n treeListElements.pop();\n }\n }\n else if (!node.collapsed) {\n node.renderNodeCount = renderNodeCount;\n }\n if (onDidCreateNode) {\n onDidCreateNode(node);\n }\n return node;\n }\n updateNodeAfterCollapseChange(node) {\n const previousRenderNodeCount = node.renderNodeCount;\n const result = [];\n this._updateNodeAfterCollapseChange(node, result);\n this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n return result;\n }\n _updateNodeAfterCollapseChange(node, result) {\n if (node.visible === false) {\n return 0;\n }\n result.push(node);\n node.renderNodeCount = 1;\n if (!node.collapsed) {\n for (const child of node.children) {\n node.renderNodeCount += this._updateNodeAfterCollapseChange(child, result);\n }\n }\n this._onDidChangeRenderNodeCount.fire(node);\n return node.renderNodeCount;\n }\n updateNodeAfterFilterChange(node) {\n const previousRenderNodeCount = node.renderNodeCount;\n const result = [];\n this._updateNodeAfterFilterChange(node, node.visible ? 1 /* Visible */ : 0 /* Hidden */, result);\n this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n return result;\n }\n _updateNodeAfterFilterChange(node, parentVisibility, result, revealed = true) {\n let visibility;\n if (node !== this.root) {\n visibility = this._filterNode(node, parentVisibility);\n if (visibility === 0 /* Hidden */) {\n node.visible = false;\n node.renderNodeCount = 0;\n return false;\n }\n if (revealed) {\n result.push(node);\n }\n }\n const resultStartLength = result.length;\n node.renderNodeCount = node === this.root ? 0 : 1;\n let hasVisibleDescendants = false;\n if (!node.collapsed || visibility !== 0 /* Hidden */) {\n let visibleChildIndex = 0;\n for (const child of node.children) {\n hasVisibleDescendants = this._updateNodeAfterFilterChange(child, visibility, result, revealed && !node.collapsed) || hasVisibleDescendants;\n if (child.visible) {\n child.visibleChildIndex = visibleChildIndex++;\n }\n }\n node.visibleChildrenCount = visibleChildIndex;\n }\n else {\n node.visibleChildrenCount = 0;\n }\n if (node !== this.root) {\n node.visible = visibility === 2 /* Recurse */ ? hasVisibleDescendants : (visibility === 1 /* Visible */);\n node.visibility = visibility;\n }\n if (!node.visible) {\n node.renderNodeCount = 0;\n if (revealed) {\n result.pop();\n }\n }\n else if (!node.collapsed) {\n node.renderNodeCount += result.length - resultStartLength;\n }\n this._onDidChangeRenderNodeCount.fire(node);\n return node.visible;\n }\n _updateAncestorsRenderNodeCount(node, diff) {\n if (diff === 0) {\n return;\n }\n while (node) {\n node.renderNodeCount += diff;\n this._onDidChangeRenderNodeCount.fire(node);\n node = node.parent;\n }\n }\n _filterNode(node, parentVisibility) {\n const result = this.filter ? this.filter.filter(node.element, parentVisibility) : 1 /* Visible */;\n if (typeof result === 'boolean') {\n node.filterData = undefined;\n return result ? 1 /* Visible */ : 0 /* Hidden */;\n }\n else if (isFilterResult(result)) {\n node.filterData = result.data;\n return getVisibleState(result.visibility);\n }\n else {\n node.filterData = undefined;\n return getVisibleState(result);\n }\n }\n // cheap\n hasTreeNode(location, node = this.root) {\n if (!location || location.length === 0) {\n return true;\n }\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n return false;\n }\n return this.hasTreeNode(rest, node.children[index]);\n }\n // cheap\n getTreeNode(location, node = this.root) {\n if (!location || location.length === 0) {\n return node;\n }\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n return this.getTreeNode(rest, node.children[index]);\n }\n // expensive\n getTreeNodeWithListIndex(location) {\n if (location.length === 0) {\n return { node: this.root, listIndex: -1, revealed: true, visible: false };\n }\n const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n const index = location[location.length - 1];\n if (index < 0 || index > parentNode.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n const node = parentNode.children[index];\n return { node, listIndex, revealed, visible: visible && node.visible };\n }\n getParentNodeWithListIndex(location, node = this.root, listIndex = 0, revealed = true, visible = true) {\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n // TODO@joao perf!\n for (let i = 0; i < index; i++) {\n listIndex += node.children[i].renderNodeCount;\n }\n revealed = revealed && !node.collapsed;\n visible = visible && node.visible;\n if (rest.length === 0) {\n return { parentNode: node, listIndex, revealed, visible };\n }\n return this.getParentNodeWithListIndex(rest, node.children[index], listIndex + 1, revealed, visible);\n }\n getNode(location = []) {\n return this.getTreeNode(location);\n }\n // TODO@joao perf!\n getNodeLocation(node) {\n const location = [];\n let indexTreeNode = node; // typing woes\n while (indexTreeNode.parent) {\n location.push(indexTreeNode.parent.children.indexOf(indexTreeNode));\n indexTreeNode = indexTreeNode.parent;\n }\n return location.reverse();\n }\n getParentNodeLocation(location) {\n if (location.length === 0) {\n return undefined;\n }\n else if (location.length === 1) {\n return [];\n }\n else {\n return tail2(location)[0];\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon, registerCodicon } from '../../../common/codicons.js';\nexport const treeItemExpandedIcon = registerCodicon('tree-item-expanded', Codicon.chevronDown); // collapsed is done with rotation\nexport const treeFilterOnTypeOnIcon = registerCodicon('tree-filter-on-type-on', Codicon.listFilter);\nexport const treeFilterOnTypeOffIcon = registerCodicon('tree-filter-on-type-off', Codicon.listSelection);\nexport const treeFilterClearIcon = registerCodicon('tree-filter-clear', Codicon.close);\nexport const treeItemLoadingIcon = registerCodicon('tree-item-loading', Codicon.loading);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DragAndDropData, StaticDND } from '../../dnd.js';\nimport { $, addDisposableListener, append, clearNode, createStyleSheet, getDomNodePagePosition, hasParentWithClass } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ElementsDragAndDropData } from '../list/listView.js';\nimport { DefaultKeyboardNavigationDelegate, isInputElement, isMonacoEditor, List, MouseController } from '../list/listWidget.js';\nimport { getVisibleState, isFilterResult } from './indexTreeModel.js';\nimport { TreeMouseEventTarget } from './tree.js';\nimport { treeFilterClearIcon, treeFilterOnTypeOffIcon, treeFilterOnTypeOnIcon, treeItemExpandedIcon } from './treeIcons.js';\nimport { distinct, equals, range } from '../../../common/arrays.js';\nimport { disposableTimeout } from '../../../common/async.js';\nimport { SetMap } from '../../../common/collections.js';\nimport { Emitter, Event, EventBufferer, Relay } from '../../../common/event.js';\nimport { fuzzyScore, FuzzyScore } from '../../../common/filters.js';\nimport { Disposable, DisposableStore, dispose, toDisposable } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './media/tree.css';\nimport { localize } from '../../../../nls.js';\nclass TreeElementsDragAndDropData extends ElementsDragAndDropData {\n constructor(data) {\n super(data.elements.map(node => node.element));\n this.data = data;\n }\n}\nfunction asTreeDragAndDropData(data) {\n if (data instanceof ElementsDragAndDropData) {\n return new TreeElementsDragAndDropData(data);\n }\n return data;\n}\nclass TreeNodeListDragAndDrop {\n constructor(modelProvider, dnd) {\n this.modelProvider = modelProvider;\n this.dnd = dnd;\n this.autoExpandDisposable = Disposable.None;\n }\n getDragURI(node) {\n return this.dnd.getDragURI(node.element);\n }\n getDragLabel(nodes, originalEvent) {\n if (this.dnd.getDragLabel) {\n return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);\n }\n return undefined;\n }\n onDragStart(data, originalEvent) {\n if (this.dnd.onDragStart) {\n this.dnd.onDragStart(asTreeDragAndDropData(data), originalEvent);\n }\n }\n onDragOver(data, targetNode, targetIndex, originalEvent, raw = true) {\n const result = this.dnd.onDragOver(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, originalEvent);\n const didChangeAutoExpandNode = this.autoExpandNode !== targetNode;\n if (didChangeAutoExpandNode) {\n this.autoExpandDisposable.dispose();\n this.autoExpandNode = targetNode;\n }\n if (typeof targetNode === 'undefined') {\n return result;\n }\n if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) {\n this.autoExpandDisposable = disposableTimeout(() => {\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n if (model.isCollapsed(ref)) {\n model.setCollapsed(ref, false);\n }\n this.autoExpandNode = undefined;\n }, 500);\n }\n if (typeof result === 'boolean' || !result.accept || typeof result.bubble === 'undefined' || result.feedback) {\n if (!raw) {\n const accept = typeof result === 'boolean' ? result : result.accept;\n const effect = typeof result === 'boolean' ? undefined : result.effect;\n return { accept, effect, feedback: [targetIndex] };\n }\n return result;\n }\n if (result.bubble === 1 /* Up */) {\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n const parentRef = model.getParentNodeLocation(ref);\n const parentNode = model.getNode(parentRef);\n const parentIndex = parentRef && model.getListIndex(parentRef);\n return this.onDragOver(data, parentNode, parentIndex, originalEvent, false);\n }\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n const start = model.getListIndex(ref);\n const length = model.getListRenderCount(ref);\n return Object.assign(Object.assign({}, result), { feedback: range(start, start + length) });\n }\n drop(data, targetNode, targetIndex, originalEvent) {\n this.autoExpandDisposable.dispose();\n this.autoExpandNode = undefined;\n this.dnd.drop(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, originalEvent);\n }\n onDragEnd(originalEvent) {\n if (this.dnd.onDragEnd) {\n this.dnd.onDragEnd(originalEvent);\n }\n }\n}\nfunction asListOptions(modelProvider, options) {\n return options && Object.assign(Object.assign({}, options), { identityProvider: options.identityProvider && {\n getId(el) {\n return options.identityProvider.getId(el.element);\n }\n }, dnd: options.dnd && new TreeNodeListDragAndDrop(modelProvider, options.dnd), multipleSelectionController: options.multipleSelectionController && {\n isSelectionSingleChangeEvent(e) {\n return options.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, e), { element: e.element }));\n },\n isSelectionRangeChangeEvent(e) {\n return options.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, e), { element: e.element }));\n }\n }, accessibilityProvider: options.accessibilityProvider && Object.assign(Object.assign({}, options.accessibilityProvider), { getSetSize(node) {\n const model = modelProvider();\n const ref = model.getNodeLocation(node);\n const parentRef = model.getParentNodeLocation(ref);\n const parentNode = model.getNode(parentRef);\n return parentNode.visibleChildrenCount;\n },\n getPosInSet(node) {\n return node.visibleChildIndex + 1;\n }, isChecked: options.accessibilityProvider && options.accessibilityProvider.isChecked ? (node) => {\n return options.accessibilityProvider.isChecked(node.element);\n } : undefined, getRole: options.accessibilityProvider && options.accessibilityProvider.getRole ? (node) => {\n return options.accessibilityProvider.getRole(node.element);\n } : () => 'treeitem', getAriaLabel(e) {\n return options.accessibilityProvider.getAriaLabel(e.element);\n },\n getWidgetAriaLabel() {\n return options.accessibilityProvider.getWidgetAriaLabel();\n }, getWidgetRole: options.accessibilityProvider && options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree', getAriaLevel: options.accessibilityProvider && options.accessibilityProvider.getAriaLevel ? (node) => options.accessibilityProvider.getAriaLevel(node.element) : (node) => {\n return node.depth;\n }, getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {\n return options.accessibilityProvider.getActiveDescendantId(node.element);\n }) }), keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, options.keyboardNavigationLabelProvider), { getKeyboardNavigationLabel(node) {\n return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(node.element);\n } }), enableKeyboardNavigation: options.simpleKeyboardNavigation });\n}\nexport class ComposedTreeDelegate {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getHeight(element) {\n return this.delegate.getHeight(element.element);\n }\n getTemplateId(element) {\n return this.delegate.getTemplateId(element.element);\n }\n hasDynamicHeight(element) {\n return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(element.element);\n }\n setDynamicHeight(element, height) {\n if (this.delegate.setDynamicHeight) {\n this.delegate.setDynamicHeight(element.element, height);\n }\n }\n}\nexport var RenderIndentGuides;\n(function (RenderIndentGuides) {\n RenderIndentGuides[\"None\"] = \"none\";\n RenderIndentGuides[\"OnHover\"] = \"onHover\";\n RenderIndentGuides[\"Always\"] = \"always\";\n})(RenderIndentGuides || (RenderIndentGuides = {}));\nclass EventCollection {\n constructor(onDidChange, _elements = []) {\n this._elements = _elements;\n this.onDidChange = Event.forEach(onDidChange, elements => this._elements = elements);\n }\n get elements() {\n return this._elements;\n }\n}\nclass TreeRenderer {\n constructor(renderer, modelProvider, onDidChangeCollapseState, activeNodes, options = {}) {\n this.renderer = renderer;\n this.modelProvider = modelProvider;\n this.activeNodes = activeNodes;\n this.renderedElements = new Map();\n this.renderedNodes = new Map();\n this.indent = TreeRenderer.DefaultIndent;\n this.hideTwistiesOfChildlessElements = false;\n this.shouldRenderIndentGuides = false;\n this.renderedIndentGuides = new SetMap();\n this.activeIndentNodes = new Set();\n this.indentGuidesDisposable = Disposable.None;\n this.disposables = new DisposableStore();\n this.templateId = renderer.templateId;\n this.updateOptions(options);\n Event.map(onDidChangeCollapseState, e => e.node)(this.onDidChangeNodeTwistieState, this, this.disposables);\n if (renderer.onDidChangeTwistieState) {\n renderer.onDidChangeTwistieState(this.onDidChangeTwistieState, this, this.disposables);\n }\n }\n updateOptions(options = {}) {\n if (typeof options.indent !== 'undefined') {\n this.indent = clamp(options.indent, 0, 40);\n }\n if (typeof options.renderIndentGuides !== 'undefined') {\n const shouldRenderIndentGuides = options.renderIndentGuides !== RenderIndentGuides.None;\n if (shouldRenderIndentGuides !== this.shouldRenderIndentGuides) {\n this.shouldRenderIndentGuides = shouldRenderIndentGuides;\n this.indentGuidesDisposable.dispose();\n if (shouldRenderIndentGuides) {\n const disposables = new DisposableStore();\n this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, disposables);\n this.indentGuidesDisposable = disposables;\n this._onDidChangeActiveNodes(this.activeNodes.elements);\n }\n }\n }\n if (typeof options.hideTwistiesOfChildlessElements !== 'undefined') {\n this.hideTwistiesOfChildlessElements = options.hideTwistiesOfChildlessElements;\n }\n }\n renderTemplate(container) {\n const el = append(container, $('.monaco-tl-row'));\n const indent = append(el, $('.monaco-tl-indent'));\n const twistie = append(el, $('.monaco-tl-twistie'));\n const contents = append(el, $('.monaco-tl-contents'));\n const templateData = this.renderer.renderTemplate(contents);\n return { container, indent, twistie, indentGuidesDisposable: Disposable.None, templateData };\n }\n renderElement(node, index, templateData, height) {\n if (typeof height === 'number') {\n this.renderedNodes.set(node, { templateData, height });\n this.renderedElements.set(node.element, node);\n }\n const indent = TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;\n templateData.twistie.style.paddingLeft = `${indent}px`;\n templateData.indent.style.width = `${indent + this.indent - 16}px`;\n this.renderTwistie(node, templateData);\n if (typeof height === 'number') {\n this.renderIndentGuides(node, templateData);\n }\n this.renderer.renderElement(node, index, templateData.templateData, height);\n }\n disposeElement(node, index, templateData, height) {\n templateData.indentGuidesDisposable.dispose();\n if (this.renderer.disposeElement) {\n this.renderer.disposeElement(node, index, templateData.templateData, height);\n }\n if (typeof height === 'number') {\n this.renderedNodes.delete(node);\n this.renderedElements.delete(node.element);\n }\n }\n disposeTemplate(templateData) {\n this.renderer.disposeTemplate(templateData.templateData);\n }\n onDidChangeTwistieState(element) {\n const node = this.renderedElements.get(element);\n if (!node) {\n return;\n }\n this.onDidChangeNodeTwistieState(node);\n }\n onDidChangeNodeTwistieState(node) {\n const data = this.renderedNodes.get(node);\n if (!data) {\n return;\n }\n this.renderTwistie(node, data.templateData);\n this._onDidChangeActiveNodes(this.activeNodes.elements);\n this.renderIndentGuides(node, data.templateData);\n }\n renderTwistie(node, templateData) {\n templateData.twistie.classList.remove(...treeItemExpandedIcon.classNamesArray);\n let twistieRendered = false;\n if (this.renderer.renderTwistie) {\n twistieRendered = this.renderer.renderTwistie(node.element, templateData.twistie);\n }\n if (node.collapsible && (!this.hideTwistiesOfChildlessElements || node.visibleChildrenCount > 0)) {\n if (!twistieRendered) {\n templateData.twistie.classList.add(...treeItemExpandedIcon.classNamesArray);\n }\n templateData.twistie.classList.add('collapsible');\n templateData.twistie.classList.toggle('collapsed', node.collapsed);\n }\n else {\n templateData.twistie.classList.remove('collapsible', 'collapsed');\n }\n if (node.collapsible) {\n templateData.container.setAttribute('aria-expanded', String(!node.collapsed));\n }\n else {\n templateData.container.removeAttribute('aria-expanded');\n }\n }\n renderIndentGuides(target, templateData) {\n clearNode(templateData.indent);\n templateData.indentGuidesDisposable.dispose();\n if (!this.shouldRenderIndentGuides) {\n return;\n }\n const disposableStore = new DisposableStore();\n const model = this.modelProvider();\n let node = target;\n while (true) {\n const ref = model.getNodeLocation(node);\n const parentRef = model.getParentNodeLocation(ref);\n if (!parentRef) {\n break;\n }\n const parent = model.getNode(parentRef);\n const guide = $('.indent-guide', { style: `width: ${this.indent}px` });\n if (this.activeIndentNodes.has(parent)) {\n guide.classList.add('active');\n }\n if (templateData.indent.childElementCount === 0) {\n templateData.indent.appendChild(guide);\n }\n else {\n templateData.indent.insertBefore(guide, templateData.indent.firstElementChild);\n }\n this.renderedIndentGuides.add(parent, guide);\n disposableStore.add(toDisposable(() => this.renderedIndentGuides.delete(parent, guide)));\n node = parent;\n }\n templateData.indentGuidesDisposable = disposableStore;\n }\n _onDidChangeActiveNodes(nodes) {\n if (!this.shouldRenderIndentGuides) {\n return;\n }\n const set = new Set();\n const model = this.modelProvider();\n nodes.forEach(node => {\n const ref = model.getNodeLocation(node);\n try {\n const parentRef = model.getParentNodeLocation(ref);\n if (node.collapsible && node.children.length > 0 && !node.collapsed) {\n set.add(node);\n }\n else if (parentRef) {\n set.add(model.getNode(parentRef));\n }\n }\n catch (_a) {\n // noop\n }\n });\n this.activeIndentNodes.forEach(node => {\n if (!set.has(node)) {\n this.renderedIndentGuides.forEach(node, line => line.classList.remove('active'));\n }\n });\n set.forEach(node => {\n if (!this.activeIndentNodes.has(node)) {\n this.renderedIndentGuides.forEach(node, line => line.classList.add('active'));\n }\n });\n this.activeIndentNodes = set;\n }\n dispose() {\n this.renderedNodes.clear();\n this.renderedElements.clear();\n this.indentGuidesDisposable.dispose();\n dispose(this.disposables);\n }\n}\nTreeRenderer.DefaultIndent = 8;\nclass TypeFilter {\n constructor(tree, keyboardNavigationLabelProvider, _filter) {\n this.tree = tree;\n this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n this._filter = _filter;\n this._totalCount = 0;\n this._matchCount = 0;\n this._pattern = '';\n this._lowercasePattern = '';\n this.disposables = new DisposableStore();\n tree.onWillRefilter(this.reset, this, this.disposables);\n }\n get totalCount() { return this._totalCount; }\n get matchCount() { return this._matchCount; }\n set pattern(pattern) {\n this._pattern = pattern;\n this._lowercasePattern = pattern.toLowerCase();\n }\n filter(element, parentVisibility) {\n if (this._filter) {\n const result = this._filter.filter(element, parentVisibility);\n if (this.tree.options.simpleKeyboardNavigation) {\n return result;\n }\n let visibility;\n if (typeof result === 'boolean') {\n visibility = result ? 1 /* Visible */ : 0 /* Hidden */;\n }\n else if (isFilterResult(result)) {\n visibility = getVisibleState(result.visibility);\n }\n else {\n visibility = result;\n }\n if (visibility === 0 /* Hidden */) {\n return false;\n }\n }\n this._totalCount++;\n if (this.tree.options.simpleKeyboardNavigation || !this._pattern) {\n this._matchCount++;\n return { data: FuzzyScore.Default, visibility: true };\n }\n const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(element);\n const labels = Array.isArray(label) ? label : [label];\n for (const l of labels) {\n const labelStr = l && l.toString();\n if (typeof labelStr === 'undefined') {\n return { data: FuzzyScore.Default, visibility: true };\n }\n const score = fuzzyScore(this._pattern, this._lowercasePattern, 0, labelStr, labelStr.toLowerCase(), 0, true);\n if (score) {\n this._matchCount++;\n return labels.length === 1 ?\n { data: score, visibility: true } :\n { data: { label: labelStr, score: score }, visibility: true };\n }\n }\n if (this.tree.options.filterOnType) {\n return 2 /* Recurse */;\n }\n else {\n return { data: FuzzyScore.Default, visibility: true };\n }\n }\n reset() {\n this._totalCount = 0;\n this._matchCount = 0;\n }\n dispose() {\n dispose(this.disposables);\n }\n}\nclass TypeFilterController {\n constructor(tree, model, view, filter, keyboardNavigationDelegate) {\n this.tree = tree;\n this.view = view;\n this.filter = filter;\n this.keyboardNavigationDelegate = keyboardNavigationDelegate;\n this._enabled = false;\n this._pattern = '';\n this._empty = false;\n this._onDidChangeEmptyState = new Emitter();\n this.positionClassName = 'ne';\n this.automaticKeyboardNavigation = true;\n this.triggered = false;\n this._onDidChangePattern = new Emitter();\n this.enabledDisposables = new DisposableStore();\n this.disposables = new DisposableStore();\n this.domNode = $(`.monaco-list-type-filter.${this.positionClassName}`);\n this.domNode.draggable = true;\n this.disposables.add(addDisposableListener(this.domNode, 'dragstart', () => this.onDragStart()));\n this.messageDomNode = append(view.getHTMLElement(), $(`.monaco-list-type-filter-message`));\n this.labelDomNode = append(this.domNode, $('span.label'));\n const controls = append(this.domNode, $('.controls'));\n this._filterOnType = !!tree.options.filterOnType;\n this.filterOnTypeDomNode = append(controls, $('input.filter'));\n this.filterOnTypeDomNode.type = 'checkbox';\n this.filterOnTypeDomNode.checked = this._filterOnType;\n this.filterOnTypeDomNode.tabIndex = -1;\n this.updateFilterOnTypeTitleAndIcon();\n this.disposables.add(addDisposableListener(this.filterOnTypeDomNode, 'input', () => this.onDidChangeFilterOnType()));\n this.clearDomNode = append(controls, $('button.clear' + treeFilterClearIcon.cssSelector));\n this.clearDomNode.tabIndex = -1;\n this.clearDomNode.title = localize('clear', \"Clear\");\n this.keyboardNavigationEventFilter = tree.options.keyboardNavigationEventFilter;\n model.onDidSplice(this.onDidSpliceModel, this, this.disposables);\n this.updateOptions(tree.options);\n }\n get enabled() { return this._enabled; }\n get pattern() { return this._pattern; }\n get filterOnType() { return this._filterOnType; }\n updateOptions(options) {\n if (options.simpleKeyboardNavigation) {\n this.disable();\n }\n else {\n this.enable();\n }\n if (typeof options.filterOnType !== 'undefined') {\n this._filterOnType = !!options.filterOnType;\n this.filterOnTypeDomNode.checked = this._filterOnType;\n this.updateFilterOnTypeTitleAndIcon();\n }\n if (typeof options.automaticKeyboardNavigation !== 'undefined') {\n this.automaticKeyboardNavigation = options.automaticKeyboardNavigation;\n }\n this.tree.refilter();\n this.render();\n if (!this.automaticKeyboardNavigation) {\n this.onEventOrInput('');\n }\n }\n enable() {\n if (this._enabled) {\n return;\n }\n const onRawKeyDown = this.enabledDisposables.add(new DomEmitter(this.view.getHTMLElement(), 'keydown'));\n const onKeyDown = Event.chain(onRawKeyDown.event)\n .filter(e => !isInputElement(e.target) || e.target === this.filterOnTypeDomNode)\n .filter(e => e.key !== 'Dead' && !/^Media/.test(e.key))\n .map(e => new StandardKeyboardEvent(e))\n .filter(this.keyboardNavigationEventFilter || (() => true))\n .filter(() => this.automaticKeyboardNavigation || this.triggered)\n .filter(e => (this.keyboardNavigationDelegate.mightProducePrintableCharacter(e) && !(e.keyCode === 18 /* DownArrow */ || e.keyCode === 16 /* UpArrow */ || e.keyCode === 15 /* LeftArrow */ || e.keyCode === 17 /* RightArrow */)) || ((this.pattern.length > 0 || this.triggered) && ((e.keyCode === 9 /* Escape */ || e.keyCode === 1 /* Backspace */) && !e.altKey && !e.ctrlKey && !e.metaKey) || (e.keyCode === 1 /* Backspace */ && (isMacintosh ? (e.altKey && !e.metaKey) : e.ctrlKey) && !e.shiftKey)))\n .forEach(e => { e.stopPropagation(); e.preventDefault(); })\n .event;\n const onClearClick = this.enabledDisposables.add(new DomEmitter(this.clearDomNode, 'click'));\n Event.chain(Event.any(onKeyDown, onClearClick.event))\n .event(this.onEventOrInput, this, this.enabledDisposables);\n this.filter.pattern = '';\n this.tree.refilter();\n this.render();\n this._enabled = true;\n this.triggered = false;\n }\n disable() {\n if (!this._enabled) {\n return;\n }\n this.domNode.remove();\n this.enabledDisposables.clear();\n this.tree.refilter();\n this.render();\n this._enabled = false;\n this.triggered = false;\n }\n onEventOrInput(e) {\n if (typeof e === 'string') {\n this.onInput(e);\n }\n else if (e instanceof MouseEvent || e.keyCode === 9 /* Escape */ || (e.keyCode === 1 /* Backspace */ && (isMacintosh ? e.altKey : e.ctrlKey))) {\n this.onInput('');\n }\n else if (e.keyCode === 1 /* Backspace */) {\n this.onInput(this.pattern.length === 0 ? '' : this.pattern.substr(0, this.pattern.length - 1));\n }\n else {\n this.onInput(this.pattern + e.browserEvent.key);\n }\n }\n onInput(pattern) {\n const container = this.view.getHTMLElement();\n if (pattern && !this.domNode.parentElement) {\n container.append(this.domNode);\n }\n else if (!pattern && this.domNode.parentElement) {\n this.domNode.remove();\n this.tree.domFocus();\n }\n this._pattern = pattern;\n this._onDidChangePattern.fire(pattern);\n this.filter.pattern = pattern;\n this.tree.refilter();\n if (pattern) {\n this.tree.focusNext(0, true, undefined, node => !FuzzyScore.isDefault(node.filterData));\n }\n const focus = this.tree.getFocus();\n if (focus.length > 0) {\n const element = focus[0];\n if (this.tree.getRelativeTop(element) === null) {\n this.tree.reveal(element, 0.5);\n }\n }\n this.render();\n if (!pattern) {\n this.triggered = false;\n }\n }\n onDragStart() {\n const container = this.view.getHTMLElement();\n const { left } = getDomNodePagePosition(container);\n const containerWidth = container.clientWidth;\n const midContainerWidth = containerWidth / 2;\n const width = this.domNode.clientWidth;\n const disposables = new DisposableStore();\n let positionClassName = this.positionClassName;\n const updatePosition = () => {\n switch (positionClassName) {\n case 'nw':\n this.domNode.style.top = `4px`;\n this.domNode.style.left = `4px`;\n break;\n case 'ne':\n this.domNode.style.top = `4px`;\n this.domNode.style.left = `${containerWidth - width - 6}px`;\n break;\n }\n };\n const onDragOver = (event) => {\n event.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n const x = event.clientX - left;\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'none';\n }\n if (x < midContainerWidth) {\n positionClassName = 'nw';\n }\n else {\n positionClassName = 'ne';\n }\n updatePosition();\n };\n const onDragEnd = () => {\n this.positionClassName = positionClassName;\n this.domNode.className = `monaco-list-type-filter ${this.positionClassName}`;\n this.domNode.style.top = '';\n this.domNode.style.left = '';\n dispose(disposables);\n };\n updatePosition();\n this.domNode.classList.remove(positionClassName);\n this.domNode.classList.add('dragging');\n disposables.add(toDisposable(() => this.domNode.classList.remove('dragging')));\n disposables.add(addDisposableListener(document, 'dragover', e => onDragOver(e)));\n disposables.add(addDisposableListener(this.domNode, 'dragend', () => onDragEnd()));\n StaticDND.CurrentDragAndDropData = new DragAndDropData('vscode-ui');\n disposables.add(toDisposable(() => StaticDND.CurrentDragAndDropData = undefined));\n }\n onDidSpliceModel() {\n if (!this._enabled || this.pattern.length === 0) {\n return;\n }\n this.tree.refilter();\n this.render();\n }\n onDidChangeFilterOnType() {\n this.tree.updateOptions({ filterOnType: this.filterOnTypeDomNode.checked });\n this.tree.refilter();\n this.tree.domFocus();\n this.render();\n this.updateFilterOnTypeTitleAndIcon();\n }\n updateFilterOnTypeTitleAndIcon() {\n if (this.filterOnType) {\n this.filterOnTypeDomNode.classList.remove(...treeFilterOnTypeOffIcon.classNamesArray);\n this.filterOnTypeDomNode.classList.add(...treeFilterOnTypeOnIcon.classNamesArray);\n this.filterOnTypeDomNode.title = localize('disable filter on type', \"Disable Filter on Type\");\n }\n else {\n this.filterOnTypeDomNode.classList.remove(...treeFilterOnTypeOnIcon.classNamesArray);\n this.filterOnTypeDomNode.classList.add(...treeFilterOnTypeOffIcon.classNamesArray);\n this.filterOnTypeDomNode.title = localize('enable filter on type', \"Enable Filter on Type\");\n }\n }\n render() {\n const noMatches = this.filter.totalCount > 0 && this.filter.matchCount === 0;\n if (this.pattern && this.tree.options.filterOnType && noMatches) {\n this.messageDomNode.textContent = localize('empty', \"No elements found\");\n this._empty = true;\n }\n else {\n this.messageDomNode.innerText = '';\n this._empty = false;\n }\n this.domNode.classList.toggle('no-matches', noMatches);\n this.domNode.title = localize('found', \"Matched {0} out of {1} elements\", this.filter.matchCount, this.filter.totalCount);\n this.labelDomNode.textContent = this.pattern.length > 16 ? '…' + this.pattern.substr(this.pattern.length - 16) : this.pattern;\n this._onDidChangeEmptyState.fire(this._empty);\n }\n shouldAllowFocus(node) {\n if (!this.enabled || !this.pattern || this.filterOnType) {\n return true;\n }\n if (this.filter.totalCount > 0 && this.filter.matchCount <= 1) {\n return true;\n }\n return !FuzzyScore.isDefault(node.filterData);\n }\n dispose() {\n if (this._enabled) {\n this.domNode.remove();\n this.enabledDisposables.dispose();\n this._enabled = false;\n this.triggered = false;\n }\n this._onDidChangePattern.dispose();\n dispose(this.disposables);\n }\n}\nfunction asTreeMouseEvent(event) {\n let target = TreeMouseEventTarget.Unknown;\n if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-twistie', 'monaco-tl-row')) {\n target = TreeMouseEventTarget.Twistie;\n }\n else if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-contents', 'monaco-tl-row')) {\n target = TreeMouseEventTarget.Element;\n }\n return {\n browserEvent: event.browserEvent,\n element: event.element ? event.element.element : null,\n target\n };\n}\nfunction dfs(node, fn) {\n fn(node);\n node.children.forEach(child => dfs(child, fn));\n}\n/**\n * The trait concept needs to exist at the tree level, because collapsed\n * tree nodes will not be known by the list.\n */\nclass Trait {\n constructor(getFirstViewElementWithTrait, identityProvider) {\n this.getFirstViewElementWithTrait = getFirstViewElementWithTrait;\n this.identityProvider = identityProvider;\n this.nodes = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n }\n get nodeSet() {\n if (!this._nodeSet) {\n this._nodeSet = this.createNodeSet();\n }\n return this._nodeSet;\n }\n set(nodes, browserEvent) {\n var _a;\n if (!((_a = browserEvent) === null || _a === void 0 ? void 0 : _a.__forceEvent) && equals(this.nodes, nodes)) {\n return;\n }\n this._set(nodes, false, browserEvent);\n }\n _set(nodes, silent, browserEvent) {\n this.nodes = [...nodes];\n this.elements = undefined;\n this._nodeSet = undefined;\n if (!silent) {\n const that = this;\n this._onDidChange.fire({ get elements() { return that.get(); }, browserEvent });\n }\n }\n get() {\n if (!this.elements) {\n this.elements = this.nodes.map(node => node.element);\n }\n return [...this.elements];\n }\n getNodes() {\n return this.nodes;\n }\n has(node) {\n return this.nodeSet.has(node);\n }\n onDidModelSplice({ insertedNodes, deletedNodes }) {\n if (!this.identityProvider) {\n const set = this.createNodeSet();\n const visit = (node) => set.delete(node);\n deletedNodes.forEach(node => dfs(node, visit));\n this.set([...set.values()]);\n return;\n }\n const deletedNodesIdSet = new Set();\n const deletedNodesVisitor = (node) => deletedNodesIdSet.add(this.identityProvider.getId(node.element).toString());\n deletedNodes.forEach(node => dfs(node, deletedNodesVisitor));\n const insertedNodesMap = new Map();\n const insertedNodesVisitor = (node) => insertedNodesMap.set(this.identityProvider.getId(node.element).toString(), node);\n insertedNodes.forEach(node => dfs(node, insertedNodesVisitor));\n const nodes = [];\n for (const node of this.nodes) {\n const id = this.identityProvider.getId(node.element).toString();\n const wasDeleted = deletedNodesIdSet.has(id);\n if (!wasDeleted) {\n nodes.push(node);\n }\n else {\n const insertedNode = insertedNodesMap.get(id);\n if (insertedNode) {\n nodes.push(insertedNode);\n }\n }\n }\n if (this.nodes.length > 0 && nodes.length === 0) {\n const node = this.getFirstViewElementWithTrait();\n if (node) {\n nodes.push(node);\n }\n }\n this._set(nodes, true);\n }\n createNodeSet() {\n const set = new Set();\n for (const node of this.nodes) {\n set.add(node);\n }\n return set;\n }\n}\nclass TreeNodeListMouseController extends MouseController {\n constructor(list, tree) {\n super(list);\n this.tree = tree;\n }\n onViewPointer(e) {\n if (isInputElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n const node = e.element;\n if (!node) {\n return super.onViewPointer(e);\n }\n if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) {\n return super.onViewPointer(e);\n }\n const target = e.browserEvent.target;\n const onTwistie = target.classList.contains('monaco-tl-twistie')\n || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && e.browserEvent.offsetX < 16);\n let expandOnlyOnTwistieClick = false;\n if (typeof this.tree.expandOnlyOnTwistieClick === 'function') {\n expandOnlyOnTwistieClick = this.tree.expandOnlyOnTwistieClick(node.element);\n }\n else {\n expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;\n }\n if (expandOnlyOnTwistieClick && !onTwistie && e.browserEvent.detail !== 2) {\n return super.onViewPointer(e);\n }\n if (!this.tree.expandOnDoubleClick && e.browserEvent.detail === 2) {\n return super.onViewPointer(e);\n }\n if (node.collapsible) {\n const model = this.tree.model; // internal\n const location = model.getNodeLocation(node);\n const recursive = e.browserEvent.altKey;\n this.tree.setFocus([location]);\n model.setCollapsed(location, undefined, recursive);\n if (expandOnlyOnTwistieClick && onTwistie) {\n return;\n }\n }\n super.onViewPointer(e);\n }\n onDoubleClick(e) {\n const onTwistie = e.browserEvent.target.classList.contains('monaco-tl-twistie');\n if (onTwistie || !this.tree.expandOnDoubleClick) {\n return;\n }\n super.onDoubleClick(e);\n }\n}\n/**\n * We use this List subclass to restore selection and focus as nodes\n * get rendered in the list, possibly due to a node expand() call.\n */\nclass TreeNodeList extends List {\n constructor(user, container, virtualDelegate, renderers, focusTrait, selectionTrait, anchorTrait, options) {\n super(user, container, virtualDelegate, renderers, options);\n this.focusTrait = focusTrait;\n this.selectionTrait = selectionTrait;\n this.anchorTrait = anchorTrait;\n }\n createMouseController(options) {\n return new TreeNodeListMouseController(this, options.tree);\n }\n splice(start, deleteCount, elements = []) {\n super.splice(start, deleteCount, elements);\n if (elements.length === 0) {\n return;\n }\n const additionalFocus = [];\n const additionalSelection = [];\n let anchor;\n elements.forEach((node, index) => {\n if (this.focusTrait.has(node)) {\n additionalFocus.push(start + index);\n }\n if (this.selectionTrait.has(node)) {\n additionalSelection.push(start + index);\n }\n if (this.anchorTrait.has(node)) {\n anchor = start + index;\n }\n });\n if (additionalFocus.length > 0) {\n super.setFocus(distinct([...super.getFocus(), ...additionalFocus]));\n }\n if (additionalSelection.length > 0) {\n super.setSelection(distinct([...super.getSelection(), ...additionalSelection]));\n }\n if (typeof anchor === 'number') {\n super.setAnchor(anchor);\n }\n }\n setFocus(indexes, browserEvent, fromAPI = false) {\n super.setFocus(indexes, browserEvent);\n if (!fromAPI) {\n this.focusTrait.set(indexes.map(i => this.element(i)), browserEvent);\n }\n }\n setSelection(indexes, browserEvent, fromAPI = false) {\n super.setSelection(indexes, browserEvent);\n if (!fromAPI) {\n this.selectionTrait.set(indexes.map(i => this.element(i)), browserEvent);\n }\n }\n setAnchor(index, fromAPI = false) {\n super.setAnchor(index);\n if (!fromAPI) {\n if (typeof index === 'undefined') {\n this.anchorTrait.set([]);\n }\n else {\n this.anchorTrait.set([this.element(index)]);\n }\n }\n }\n}\nexport class AbstractTree {\n constructor(user, container, delegate, renderers, _options = {}) {\n this._options = _options;\n this.eventBufferer = new EventBufferer();\n this.disposables = new DisposableStore();\n this._onWillRefilter = new Emitter();\n this.onWillRefilter = this._onWillRefilter.event;\n this._onDidUpdateOptions = new Emitter();\n const treeDelegate = new ComposedTreeDelegate(delegate);\n const onDidChangeCollapseStateRelay = new Relay();\n const onDidChangeActiveNodes = new Relay();\n const activeNodes = new EventCollection(onDidChangeActiveNodes.event);\n this.renderers = renderers.map(r => new TreeRenderer(r, () => this.model, onDidChangeCollapseStateRelay.event, activeNodes, _options));\n for (let r of this.renderers) {\n this.disposables.add(r);\n }\n let filter;\n if (_options.keyboardNavigationLabelProvider) {\n filter = new TypeFilter(this, _options.keyboardNavigationLabelProvider, _options.filter);\n _options = Object.assign(Object.assign({}, _options), { filter: filter }); // TODO need typescript help here\n this.disposables.add(filter);\n }\n this.focus = new Trait(() => this.view.getFocusedElements()[0], _options.identityProvider);\n this.selection = new Trait(() => this.view.getSelectedElements()[0], _options.identityProvider);\n this.anchor = new Trait(() => this.view.getAnchorElement(), _options.identityProvider);\n this.view = new TreeNodeList(user, container, treeDelegate, this.renderers, this.focus, this.selection, this.anchor, Object.assign(Object.assign({}, asListOptions(() => this.model, _options)), { tree: this }));\n this.model = this.createModel(user, this.view, _options);\n onDidChangeCollapseStateRelay.input = this.model.onDidChangeCollapseState;\n const onDidModelSplice = Event.forEach(this.model.onDidSplice, e => {\n this.eventBufferer.bufferEvents(() => {\n this.focus.onDidModelSplice(e);\n this.selection.onDidModelSplice(e);\n });\n });\n // Make sure the `forEach` always runs\n onDidModelSplice(() => null, null, this.disposables);\n // Active nodes can change when the model changes or when focus or selection change.\n // We debounce it with 0 delay since these events may fire in the same stack and we only\n // want to run this once. It also doesn't matter if it runs on the next tick since it's only\n // a nice to have UI feature.\n onDidChangeActiveNodes.input = Event.chain(Event.any(onDidModelSplice, this.focus.onDidChange, this.selection.onDidChange))\n .debounce(() => null, 0)\n .map(() => {\n const set = new Set();\n for (const node of this.focus.getNodes()) {\n set.add(node);\n }\n for (const node of this.selection.getNodes()) {\n set.add(node);\n }\n return [...set.values()];\n }).event;\n if (_options.keyboardSupport !== false) {\n const onKeyDown = Event.chain(this.view.onKeyDown)\n .filter(e => !isInputElement(e.target))\n .map(e => new StandardKeyboardEvent(e));\n onKeyDown.filter(e => e.keyCode === 15 /* LeftArrow */).on(this.onLeftArrow, this, this.disposables);\n onKeyDown.filter(e => e.keyCode === 17 /* RightArrow */).on(this.onRightArrow, this, this.disposables);\n onKeyDown.filter(e => e.keyCode === 10 /* Space */).on(this.onSpace, this, this.disposables);\n }\n if (_options.keyboardNavigationLabelProvider) {\n const delegate = _options.keyboardNavigationDelegate || DefaultKeyboardNavigationDelegate;\n this.typeFilterController = new TypeFilterController(this, this.model, this.view, filter, delegate);\n this.focusNavigationFilter = node => this.typeFilterController.shouldAllowFocus(node);\n this.disposables.add(this.typeFilterController);\n }\n this.styleElement = createStyleSheet(this.view.getHTMLElement());\n this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n }\n get onDidChangeFocus() { return this.eventBufferer.wrapEvent(this.focus.onDidChange); }\n get onDidChangeSelection() { return this.eventBufferer.wrapEvent(this.selection.onDidChange); }\n get onMouseDblClick() { return Event.map(this.view.onMouseDblClick, asTreeMouseEvent); }\n get onPointer() { return Event.map(this.view.onPointer, asTreeMouseEvent); }\n get onDidFocus() { return this.view.onDidFocus; }\n get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n get expandOnDoubleClick() { return typeof this._options.expandOnDoubleClick === 'undefined' ? true : this._options.expandOnDoubleClick; }\n get expandOnlyOnTwistieClick() { return typeof this._options.expandOnlyOnTwistieClick === 'undefined' ? true : this._options.expandOnlyOnTwistieClick; }\n get onDidDispose() { return this.view.onDidDispose; }\n updateOptions(optionsUpdate = {}) {\n this._options = Object.assign(Object.assign({}, this._options), optionsUpdate);\n for (const renderer of this.renderers) {\n renderer.updateOptions(optionsUpdate);\n }\n this.view.updateOptions(Object.assign(Object.assign({}, this._options), { enableKeyboardNavigation: this._options.simpleKeyboardNavigation }));\n if (this.typeFilterController) {\n this.typeFilterController.updateOptions(this._options);\n }\n this._onDidUpdateOptions.fire(this._options);\n this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n }\n get options() {\n return this._options;\n }\n // Widget\n getHTMLElement() {\n return this.view.getHTMLElement();\n }\n get scrollTop() {\n return this.view.scrollTop;\n }\n set scrollTop(scrollTop) {\n this.view.scrollTop = scrollTop;\n }\n domFocus() {\n this.view.domFocus();\n }\n layout(height, width) {\n this.view.layout(height, width);\n }\n style(styles) {\n const suffix = `.${this.view.domId}`;\n const content = [];\n if (styles.treeIndentGuidesStroke) {\n content.push(`.monaco-list${suffix}:hover .monaco-tl-indent > .indent-guide, .monaco-list${suffix}.always .monaco-tl-indent > .indent-guide { border-color: ${styles.treeIndentGuidesStroke.transparent(0.4)}; }`);\n content.push(`.monaco-list${suffix} .monaco-tl-indent > .indent-guide.active { border-color: ${styles.treeIndentGuidesStroke}; }`);\n }\n this.styleElement.textContent = content.join('\\n');\n this.view.style(styles);\n }\n collapse(location, recursive = false) {\n return this.model.setCollapsed(location, true, recursive);\n }\n expand(location, recursive = false) {\n return this.model.setCollapsed(location, false, recursive);\n }\n isCollapsible(location) {\n return this.model.isCollapsible(location);\n }\n setCollapsible(location, collapsible) {\n return this.model.setCollapsible(location, collapsible);\n }\n isCollapsed(location) {\n return this.model.isCollapsed(location);\n }\n refilter() {\n this._onWillRefilter.fire(undefined);\n this.model.refilter();\n }\n setSelection(elements, browserEvent) {\n const nodes = elements.map(e => this.model.getNode(e));\n this.selection.set(nodes, browserEvent);\n const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n this.view.setSelection(indexes, browserEvent, true);\n }\n getSelection() {\n return this.selection.get();\n }\n setFocus(elements, browserEvent) {\n const nodes = elements.map(e => this.model.getNode(e));\n this.focus.set(nodes, browserEvent);\n const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n this.view.setFocus(indexes, browserEvent, true);\n }\n focusNext(n = 1, loop = false, browserEvent, filter = this.focusNavigationFilter) {\n this.view.focusNext(n, loop, browserEvent, filter);\n }\n getFocus() {\n return this.focus.get();\n }\n reveal(location, relativeTop) {\n this.model.expandTo(location);\n const index = this.model.getListIndex(location);\n if (index === -1) {\n return;\n }\n this.view.reveal(index, relativeTop);\n }\n /**\n * Returns the relative position of an element rendered in the list.\n * Returns `null` if the element isn't *entirely* in the visible viewport.\n */\n getRelativeTop(location) {\n const index = this.model.getListIndex(location);\n if (index === -1) {\n return null;\n }\n return this.view.getRelativeTop(index);\n }\n // List\n onLeftArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const didChange = this.model.setCollapsed(location, true);\n if (!didChange) {\n const parentLocation = this.model.getParentNodeLocation(location);\n if (!parentLocation) {\n return;\n }\n const parentListIndex = this.model.getListIndex(parentLocation);\n this.view.reveal(parentListIndex);\n this.view.setFocus([parentListIndex]);\n }\n }\n onRightArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const didChange = this.model.setCollapsed(location, false);\n if (!didChange) {\n if (!node.children.some(child => child.visible)) {\n return;\n }\n const [focusedIndex] = this.view.getFocus();\n const firstChildIndex = focusedIndex + 1;\n this.view.reveal(firstChildIndex);\n this.view.setFocus([firstChildIndex]);\n }\n }\n onSpace(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const recursive = e.browserEvent.altKey;\n this.model.setCollapsed(location, undefined, recursive);\n }\n dispose() {\n dispose(this.disposables);\n this.view.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { IndexTreeModel } from './indexTreeModel.js';\nimport { TreeError } from './tree.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport class ObjectTreeModel {\n constructor(user, list, options = {}) {\n this.user = user;\n this.rootRef = null;\n this.nodes = new Map();\n this.nodesByIdentity = new Map();\n this.model = new IndexTreeModel(user, list, null, options);\n this.onDidSplice = this.model.onDidSplice;\n this.onDidChangeCollapseState = this.model.onDidChangeCollapseState;\n this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount;\n if (options.sorter) {\n this.sorter = {\n compare(a, b) {\n return options.sorter.compare(a.element, b.element);\n }\n };\n }\n this.identityProvider = options.identityProvider;\n }\n setChildren(element, children = Iterable.empty(), options = {}) {\n const location = this.getElementLocation(element);\n this._setChildren(location, this.preserveCollapseState(children), options);\n }\n _setChildren(location, children = Iterable.empty(), options) {\n const insertedElements = new Set();\n const insertedElementIds = new Set();\n const onDidCreateNode = (node) => {\n var _a;\n if (node.element === null) {\n return;\n }\n const tnode = node;\n insertedElements.add(tnode.element);\n this.nodes.set(tnode.element, tnode);\n if (this.identityProvider) {\n const id = this.identityProvider.getId(tnode.element).toString();\n insertedElementIds.add(id);\n this.nodesByIdentity.set(id, tnode);\n }\n (_a = options.onDidCreateNode) === null || _a === void 0 ? void 0 : _a.call(options, tnode);\n };\n const onDidDeleteNode = (node) => {\n var _a;\n if (node.element === null) {\n return;\n }\n const tnode = node;\n if (!insertedElements.has(tnode.element)) {\n this.nodes.delete(tnode.element);\n }\n if (this.identityProvider) {\n const id = this.identityProvider.getId(tnode.element).toString();\n if (!insertedElementIds.has(id)) {\n this.nodesByIdentity.delete(id);\n }\n }\n (_a = options.onDidDeleteNode) === null || _a === void 0 ? void 0 : _a.call(options, tnode);\n };\n this.model.splice([...location, 0], Number.MAX_VALUE, children, Object.assign(Object.assign({}, options), { onDidCreateNode, onDidDeleteNode }));\n }\n preserveCollapseState(elements = Iterable.empty()) {\n if (this.sorter) {\n elements = [...elements].sort(this.sorter.compare.bind(this.sorter));\n }\n return Iterable.map(elements, treeElement => {\n let node = this.nodes.get(treeElement.element);\n if (!node && this.identityProvider) {\n const id = this.identityProvider.getId(treeElement.element).toString();\n node = this.nodesByIdentity.get(id);\n }\n if (!node) {\n return Object.assign(Object.assign({}, treeElement), { children: this.preserveCollapseState(treeElement.children) });\n }\n const collapsible = typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : node.collapsible;\n const collapsed = typeof treeElement.collapsed !== 'undefined' ? treeElement.collapsed : node.collapsed;\n return Object.assign(Object.assign({}, treeElement), { collapsible,\n collapsed, children: this.preserveCollapseState(treeElement.children) });\n });\n }\n rerender(element) {\n const location = this.getElementLocation(element);\n this.model.rerender(location);\n }\n has(element) {\n return this.nodes.has(element);\n }\n getListIndex(element) {\n const location = this.getElementLocation(element);\n return this.model.getListIndex(location);\n }\n getListRenderCount(element) {\n const location = this.getElementLocation(element);\n return this.model.getListRenderCount(location);\n }\n isCollapsible(element) {\n const location = this.getElementLocation(element);\n return this.model.isCollapsible(location);\n }\n setCollapsible(element, collapsible) {\n const location = this.getElementLocation(element);\n return this.model.setCollapsible(location, collapsible);\n }\n isCollapsed(element) {\n const location = this.getElementLocation(element);\n return this.model.isCollapsed(location);\n }\n setCollapsed(element, collapsed, recursive) {\n const location = this.getElementLocation(element);\n return this.model.setCollapsed(location, collapsed, recursive);\n }\n expandTo(element) {\n const location = this.getElementLocation(element);\n this.model.expandTo(location);\n }\n refilter() {\n this.model.refilter();\n }\n getNode(element = null) {\n if (element === null) {\n return this.model.getNode(this.model.rootRef);\n }\n const node = this.nodes.get(element);\n if (!node) {\n throw new TreeError(this.user, `Tree element not found: ${element}`);\n }\n return node;\n }\n getNodeLocation(node) {\n return node.element;\n }\n getParentNodeLocation(element) {\n if (element === null) {\n throw new TreeError(this.user, `Invalid getParentNodeLocation call`);\n }\n const node = this.nodes.get(element);\n if (!node) {\n throw new TreeError(this.user, `Tree element not found: ${element}`);\n }\n const location = this.model.getNodeLocation(node);\n const parentLocation = this.model.getParentNodeLocation(location);\n const parent = this.model.getNode(parentLocation);\n return parent.element;\n }\n getElementLocation(element) {\n if (element === null) {\n return [];\n }\n const node = this.nodes.get(element);\n if (!node) {\n throw new TreeError(this.user, `Tree element not found: ${element}`);\n }\n return this.model.getNodeLocation(node);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ObjectTreeModel } from './objectTreeModel.js';\nimport { TreeError, WeakMapper } from './tree.js';\nimport { Event } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nfunction noCompress(element) {\n const elements = [element.element];\n const incompressible = element.incompressible || false;\n return {\n element: { elements, incompressible },\n children: Iterable.map(Iterable.from(element.children), noCompress),\n collapsible: element.collapsible,\n collapsed: element.collapsed\n };\n}\n// Exported only for test reasons, do not use directly\nexport function compress(element) {\n const elements = [element.element];\n const incompressible = element.incompressible || false;\n let childrenIterator;\n let children;\n while (true) {\n [children, childrenIterator] = Iterable.consume(Iterable.from(element.children), 2);\n if (children.length !== 1) {\n break;\n }\n if (children[0].incompressible) {\n break;\n }\n element = children[0];\n elements.push(element.element);\n }\n return {\n element: { elements, incompressible },\n children: Iterable.map(Iterable.concat(children, childrenIterator), compress),\n collapsible: element.collapsible,\n collapsed: element.collapsed\n };\n}\nfunction _decompress(element, index = 0) {\n let children;\n if (index < element.element.elements.length - 1) {\n children = [_decompress(element, index + 1)];\n }\n else {\n children = Iterable.map(Iterable.from(element.children), el => _decompress(el, 0));\n }\n if (index === 0 && element.element.incompressible) {\n return {\n element: element.element.elements[index],\n children,\n incompressible: true,\n collapsible: element.collapsible,\n collapsed: element.collapsed\n };\n }\n return {\n element: element.element.elements[index],\n children,\n collapsible: element.collapsible,\n collapsed: element.collapsed\n };\n}\n// Exported only for test reasons, do not use directly\nexport function decompress(element) {\n return _decompress(element, 0);\n}\nfunction splice(treeElement, element, children) {\n if (treeElement.element === element) {\n return Object.assign(Object.assign({}, treeElement), { children });\n }\n return Object.assign(Object.assign({}, treeElement), { children: Iterable.map(Iterable.from(treeElement.children), e => splice(e, element, children)) });\n}\nconst wrapIdentityProvider = (base) => ({\n getId(node) {\n return node.elements.map(e => base.getId(e).toString()).join('\\0');\n }\n});\n// Exported only for test reasons, do not use directly\nexport class CompressedObjectTreeModel {\n constructor(user, list, options = {}) {\n this.user = user;\n this.rootRef = null;\n this.nodes = new Map();\n this.model = new ObjectTreeModel(user, list, options);\n this.enabled = typeof options.compressionEnabled === 'undefined' ? true : options.compressionEnabled;\n this.identityProvider = options.identityProvider;\n }\n get onDidSplice() { return this.model.onDidSplice; }\n get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n get onDidChangeRenderNodeCount() { return this.model.onDidChangeRenderNodeCount; }\n setChildren(element, children = Iterable.empty(), options) {\n // Diffs must be deem, since the compression can affect nested elements.\n // @see https://github.com/microsoft/vscode/pull/114237#issuecomment-759425034\n const diffIdentityProvider = options.diffIdentityProvider && wrapIdentityProvider(options.diffIdentityProvider);\n if (element === null) {\n const compressedChildren = Iterable.map(children, this.enabled ? compress : noCompress);\n this._setChildren(null, compressedChildren, { diffIdentityProvider, diffDepth: Infinity });\n return;\n }\n const compressedNode = this.nodes.get(element);\n if (!compressedNode) {\n throw new Error('Unknown compressed tree node');\n }\n const node = this.model.getNode(compressedNode);\n const compressedParentNode = this.model.getParentNodeLocation(compressedNode);\n const parent = this.model.getNode(compressedParentNode);\n const decompressedElement = decompress(node);\n const splicedElement = splice(decompressedElement, element, children);\n const recompressedElement = (this.enabled ? compress : noCompress)(splicedElement);\n const parentChildren = parent.children\n .map(child => child === node ? recompressedElement : child);\n this._setChildren(parent.element, parentChildren, {\n diffIdentityProvider,\n diffDepth: node.depth - parent.depth,\n });\n }\n setCompressionEnabled(enabled) {\n if (enabled === this.enabled) {\n return;\n }\n this.enabled = enabled;\n const root = this.model.getNode();\n const rootChildren = root.children;\n const decompressedRootChildren = Iterable.map(rootChildren, decompress);\n const recompressedRootChildren = Iterable.map(decompressedRootChildren, enabled ? compress : noCompress);\n // it should be safe to always use deep diff mode here if an identity\n // provider is available, since we know the raw nodes are unchanged.\n this._setChildren(null, recompressedRootChildren, {\n diffIdentityProvider: this.identityProvider,\n diffDepth: Infinity,\n });\n }\n _setChildren(node, children, options) {\n const insertedElements = new Set();\n const onDidCreateNode = (node) => {\n for (const element of node.element.elements) {\n insertedElements.add(element);\n this.nodes.set(element, node.element);\n }\n };\n const onDidDeleteNode = (node) => {\n for (const element of node.element.elements) {\n if (!insertedElements.has(element)) {\n this.nodes.delete(element);\n }\n }\n };\n this.model.setChildren(node, children, Object.assign(Object.assign({}, options), { onDidCreateNode, onDidDeleteNode }));\n }\n has(element) {\n return this.nodes.has(element);\n }\n getListIndex(location) {\n const node = this.getCompressedNode(location);\n return this.model.getListIndex(node);\n }\n getListRenderCount(location) {\n const node = this.getCompressedNode(location);\n return this.model.getListRenderCount(node);\n }\n getNode(location) {\n if (typeof location === 'undefined') {\n return this.model.getNode();\n }\n const node = this.getCompressedNode(location);\n return this.model.getNode(node);\n }\n // TODO: review this\n getNodeLocation(node) {\n const compressedNode = this.model.getNodeLocation(node);\n if (compressedNode === null) {\n return null;\n }\n return compressedNode.elements[compressedNode.elements.length - 1];\n }\n // TODO: review this\n getParentNodeLocation(location) {\n const compressedNode = this.getCompressedNode(location);\n const parentNode = this.model.getParentNodeLocation(compressedNode);\n if (parentNode === null) {\n return null;\n }\n return parentNode.elements[parentNode.elements.length - 1];\n }\n isCollapsible(location) {\n const compressedNode = this.getCompressedNode(location);\n return this.model.isCollapsible(compressedNode);\n }\n setCollapsible(location, collapsible) {\n const compressedNode = this.getCompressedNode(location);\n return this.model.setCollapsible(compressedNode, collapsible);\n }\n isCollapsed(location) {\n const compressedNode = this.getCompressedNode(location);\n return this.model.isCollapsed(compressedNode);\n }\n setCollapsed(location, collapsed, recursive) {\n const compressedNode = this.getCompressedNode(location);\n return this.model.setCollapsed(compressedNode, collapsed, recursive);\n }\n expandTo(location) {\n const compressedNode = this.getCompressedNode(location);\n this.model.expandTo(compressedNode);\n }\n rerender(location) {\n const compressedNode = this.getCompressedNode(location);\n this.model.rerender(compressedNode);\n }\n refilter() {\n this.model.refilter();\n }\n getCompressedNode(element) {\n if (element === null) {\n return null;\n }\n const node = this.nodes.get(element);\n if (!node) {\n throw new TreeError(this.user, `Tree element not found: ${element}`);\n }\n return node;\n }\n}\nexport const DefaultElementMapper = elements => elements[elements.length - 1];\nclass CompressedTreeNodeWrapper {\n constructor(unwrapper, node) {\n this.unwrapper = unwrapper;\n this.node = node;\n }\n get element() { return this.node.element === null ? null : this.unwrapper(this.node.element); }\n get children() { return this.node.children.map(node => new CompressedTreeNodeWrapper(this.unwrapper, node)); }\n get depth() { return this.node.depth; }\n get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n get visibleChildIndex() { return this.node.visibleChildIndex; }\n get collapsible() { return this.node.collapsible; }\n get collapsed() { return this.node.collapsed; }\n get visible() { return this.node.visible; }\n get filterData() { return this.node.filterData; }\n}\nfunction mapList(nodeMapper, list) {\n return {\n splice(start, deleteCount, toInsert) {\n list.splice(start, deleteCount, toInsert.map(node => nodeMapper.map(node)));\n },\n updateElementHeight(index, height) {\n list.updateElementHeight(index, height);\n }\n };\n}\nfunction mapOptions(compressedNodeUnwrapper, options) {\n return Object.assign(Object.assign({}, options), { identityProvider: options.identityProvider && {\n getId(node) {\n return options.identityProvider.getId(compressedNodeUnwrapper(node));\n }\n }, sorter: options.sorter && {\n compare(node, otherNode) {\n return options.sorter.compare(node.elements[0], otherNode.elements[0]);\n }\n }, filter: options.filter && {\n filter(node, parentVisibility) {\n return options.filter.filter(compressedNodeUnwrapper(node), parentVisibility);\n }\n } });\n}\nexport class CompressibleObjectTreeModel {\n constructor(user, list, options = {}) {\n this.rootRef = null;\n this.elementMapper = options.elementMapper || DefaultElementMapper;\n const compressedNodeUnwrapper = node => this.elementMapper(node.elements);\n this.nodeMapper = new WeakMapper(node => new CompressedTreeNodeWrapper(compressedNodeUnwrapper, node));\n this.model = new CompressedObjectTreeModel(user, mapList(this.nodeMapper, list), mapOptions(compressedNodeUnwrapper, options));\n }\n get onDidSplice() {\n return Event.map(this.model.onDidSplice, ({ insertedNodes, deletedNodes }) => ({\n insertedNodes: insertedNodes.map(node => this.nodeMapper.map(node)),\n deletedNodes: deletedNodes.map(node => this.nodeMapper.map(node)),\n }));\n }\n get onDidChangeCollapseState() {\n return Event.map(this.model.onDidChangeCollapseState, ({ node, deep }) => ({\n node: this.nodeMapper.map(node),\n deep\n }));\n }\n get onDidChangeRenderNodeCount() {\n return Event.map(this.model.onDidChangeRenderNodeCount, node => this.nodeMapper.map(node));\n }\n setChildren(element, children = Iterable.empty(), options = {}) {\n this.model.setChildren(element, children, options);\n }\n setCompressionEnabled(enabled) {\n this.model.setCompressionEnabled(enabled);\n }\n has(location) {\n return this.model.has(location);\n }\n getListIndex(location) {\n return this.model.getListIndex(location);\n }\n getListRenderCount(location) {\n return this.model.getListRenderCount(location);\n }\n getNode(location) {\n return this.nodeMapper.map(this.model.getNode(location));\n }\n getNodeLocation(node) {\n return node.element;\n }\n getParentNodeLocation(location) {\n return this.model.getParentNodeLocation(location);\n }\n isCollapsible(location) {\n return this.model.isCollapsible(location);\n }\n setCollapsible(location, collapsed) {\n return this.model.setCollapsible(location, collapsed);\n }\n isCollapsed(location) {\n return this.model.isCollapsed(location);\n }\n setCollapsed(location, collapsed, recursive) {\n return this.model.setCollapsed(location, collapsed, recursive);\n }\n expandTo(location) {\n return this.model.expandTo(location);\n }\n rerender(location) {\n return this.model.rerender(location);\n }\n refilter() {\n return this.model.refilter();\n }\n getCompressedTreeNode(location = null) {\n return this.model.getNode(location);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AbstractTree } from './abstractTree.js';\nimport { CompressibleObjectTreeModel } from './compressedObjectTreeModel.js';\nimport { ObjectTreeModel } from './objectTreeModel.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport class ObjectTree extends AbstractTree {\n constructor(user, container, delegate, renderers, options = {}) {\n super(user, container, delegate, renderers, options);\n }\n get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n setChildren(element, children = Iterable.empty(), options) {\n this.model.setChildren(element, children, options);\n }\n rerender(element) {\n if (element === undefined) {\n this.view.rerender();\n return;\n }\n this.model.rerender(element);\n }\n hasElement(element) {\n return this.model.has(element);\n }\n createModel(user, view, options) {\n return new ObjectTreeModel(user, view, options);\n }\n}\nclass CompressibleRenderer {\n constructor(_compressedTreeNodeProvider, renderer) {\n this._compressedTreeNodeProvider = _compressedTreeNodeProvider;\n this.renderer = renderer;\n this.templateId = renderer.templateId;\n if (renderer.onDidChangeTwistieState) {\n this.onDidChangeTwistieState = renderer.onDidChangeTwistieState;\n }\n }\n get compressedTreeNodeProvider() {\n return this._compressedTreeNodeProvider();\n }\n renderTemplate(container) {\n const data = this.renderer.renderTemplate(container);\n return { compressedTreeNode: undefined, data };\n }\n renderElement(node, index, templateData, height) {\n const compressedTreeNode = this.compressedTreeNodeProvider.getCompressedTreeNode(node.element);\n if (compressedTreeNode.element.elements.length === 1) {\n templateData.compressedTreeNode = undefined;\n this.renderer.renderElement(node, index, templateData.data, height);\n }\n else {\n templateData.compressedTreeNode = compressedTreeNode;\n this.renderer.renderCompressedElements(compressedTreeNode, index, templateData.data, height);\n }\n }\n disposeElement(node, index, templateData, height) {\n if (templateData.compressedTreeNode) {\n if (this.renderer.disposeCompressedElements) {\n this.renderer.disposeCompressedElements(templateData.compressedTreeNode, index, templateData.data, height);\n }\n }\n else {\n if (this.renderer.disposeElement) {\n this.renderer.disposeElement(node, index, templateData.data, height);\n }\n }\n }\n disposeTemplate(templateData) {\n this.renderer.disposeTemplate(templateData.data);\n }\n renderTwistie(element, twistieElement) {\n if (this.renderer.renderTwistie) {\n return this.renderer.renderTwistie(element, twistieElement);\n }\n return false;\n }\n}\n__decorate([\n memoize\n], CompressibleRenderer.prototype, \"compressedTreeNodeProvider\", null);\nfunction asObjectTreeOptions(compressedTreeNodeProvider, options) {\n return options && Object.assign(Object.assign({}, options), { keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {\n getKeyboardNavigationLabel(e) {\n let compressedTreeNode;\n try {\n compressedTreeNode = compressedTreeNodeProvider().getCompressedTreeNode(e);\n }\n catch (_a) {\n return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n }\n if (compressedTreeNode.element.elements.length === 1) {\n return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n }\n else {\n return options.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(compressedTreeNode.element.elements);\n }\n }\n } });\n}\nexport class CompressibleObjectTree extends ObjectTree {\n constructor(user, container, delegate, renderers, options = {}) {\n const compressedTreeNodeProvider = () => this;\n const compressibleRenderers = renderers.map(r => new CompressibleRenderer(compressedTreeNodeProvider, r));\n super(user, container, delegate, compressibleRenderers, asObjectTreeOptions(compressedTreeNodeProvider, options));\n }\n setChildren(element, children = Iterable.empty(), options) {\n this.model.setChildren(element, children, options);\n }\n createModel(user, view, options) {\n return new CompressibleObjectTreeModel(user, view, options);\n }\n updateOptions(optionsUpdate = {}) {\n super.updateOptions(optionsUpdate);\n if (typeof optionsUpdate.compressionEnabled !== 'undefined') {\n this.model.setCompressionEnabled(optionsUpdate.compressionEnabled);\n }\n }\n getCompressedTreeNode(element = null) {\n return this.model.getCompressedTreeNode(element);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ElementsDragAndDropData } from '../list/listView.js';\nimport { ComposedTreeDelegate } from './abstractTree.js';\nimport { getVisibleState, isFilterResult } from './indexTreeModel.js';\nimport { CompressibleObjectTree, ObjectTree } from './objectTree.js';\nimport { TreeError, WeakMapper } from './tree.js';\nimport { treeItemLoadingIcon } from './treeIcons.js';\nimport { createCancelablePromise, Promises, timeout } from '../../../common/async.js';\nimport { isPromiseCanceledError, onUnexpectedError } from '../../../common/errors.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nimport { DisposableStore, dispose } from '../../../common/lifecycle.js';\nfunction createAsyncDataTreeNode(props) {\n return Object.assign(Object.assign({}, props), { children: [], refreshPromise: undefined, stale: true, slow: false, collapsedByDefault: undefined });\n}\nfunction isAncestor(ancestor, descendant) {\n if (!descendant.parent) {\n return false;\n }\n else if (descendant.parent === ancestor) {\n return true;\n }\n else {\n return isAncestor(ancestor, descendant.parent);\n }\n}\nfunction intersects(node, other) {\n return node === other || isAncestor(node, other) || isAncestor(other, node);\n}\nclass AsyncDataTreeNodeWrapper {\n constructor(node) {\n this.node = node;\n }\n get element() { return this.node.element.element; }\n get children() { return this.node.children.map(node => new AsyncDataTreeNodeWrapper(node)); }\n get depth() { return this.node.depth; }\n get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n get visibleChildIndex() { return this.node.visibleChildIndex; }\n get collapsible() { return this.node.collapsible; }\n get collapsed() { return this.node.collapsed; }\n get visible() { return this.node.visible; }\n get filterData() { return this.node.filterData; }\n}\nclass AsyncDataTreeRenderer {\n constructor(renderer, nodeMapper, onDidChangeTwistieState) {\n this.renderer = renderer;\n this.nodeMapper = nodeMapper;\n this.onDidChangeTwistieState = onDidChangeTwistieState;\n this.renderedNodes = new Map();\n this.templateId = renderer.templateId;\n }\n renderTemplate(container) {\n const templateData = this.renderer.renderTemplate(container);\n return { templateData };\n }\n renderElement(node, index, templateData, height) {\n this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n }\n renderTwistie(element, twistieElement) {\n if (element.slow) {\n twistieElement.classList.add(...treeItemLoadingIcon.classNamesArray);\n return true;\n }\n else {\n twistieElement.classList.remove(...treeItemLoadingIcon.classNamesArray);\n return false;\n }\n }\n disposeElement(node, index, templateData, height) {\n if (this.renderer.disposeElement) {\n this.renderer.disposeElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n }\n }\n disposeTemplate(templateData) {\n this.renderer.disposeTemplate(templateData.templateData);\n }\n dispose() {\n this.renderedNodes.clear();\n }\n}\nfunction asTreeEvent(e) {\n return {\n browserEvent: e.browserEvent,\n elements: e.elements.map(e => e.element)\n };\n}\nfunction asTreeMouseEvent(e) {\n return {\n browserEvent: e.browserEvent,\n element: e.element && e.element.element,\n target: e.target\n };\n}\nclass AsyncDataTreeElementsDragAndDropData extends ElementsDragAndDropData {\n constructor(data) {\n super(data.elements.map(node => node.element));\n this.data = data;\n }\n}\nfunction asAsyncDataTreeDragAndDropData(data) {\n if (data instanceof ElementsDragAndDropData) {\n return new AsyncDataTreeElementsDragAndDropData(data);\n }\n return data;\n}\nclass AsyncDataTreeNodeListDragAndDrop {\n constructor(dnd) {\n this.dnd = dnd;\n }\n getDragURI(node) {\n return this.dnd.getDragURI(node.element);\n }\n getDragLabel(nodes, originalEvent) {\n if (this.dnd.getDragLabel) {\n return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);\n }\n return undefined;\n }\n onDragStart(data, originalEvent) {\n if (this.dnd.onDragStart) {\n this.dnd.onDragStart(asAsyncDataTreeDragAndDropData(data), originalEvent);\n }\n }\n onDragOver(data, targetNode, targetIndex, originalEvent, raw = true) {\n return this.dnd.onDragOver(asAsyncDataTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, originalEvent);\n }\n drop(data, targetNode, targetIndex, originalEvent) {\n this.dnd.drop(asAsyncDataTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, originalEvent);\n }\n onDragEnd(originalEvent) {\n if (this.dnd.onDragEnd) {\n this.dnd.onDragEnd(originalEvent);\n }\n }\n}\nfunction asObjectTreeOptions(options) {\n return options && Object.assign(Object.assign({}, options), { collapseByDefault: true, identityProvider: options.identityProvider && {\n getId(el) {\n return options.identityProvider.getId(el.element);\n }\n }, dnd: options.dnd && new AsyncDataTreeNodeListDragAndDrop(options.dnd), multipleSelectionController: options.multipleSelectionController && {\n isSelectionSingleChangeEvent(e) {\n return options.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, e), { element: e.element }));\n },\n isSelectionRangeChangeEvent(e) {\n return options.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, e), { element: e.element }));\n }\n }, accessibilityProvider: options.accessibilityProvider && Object.assign(Object.assign({}, options.accessibilityProvider), { getPosInSet: undefined, getSetSize: undefined, getRole: options.accessibilityProvider.getRole ? (el) => {\n return options.accessibilityProvider.getRole(el.element);\n } : () => 'treeitem', isChecked: options.accessibilityProvider.isChecked ? (e) => {\n var _a;\n return !!((_a = options.accessibilityProvider) === null || _a === void 0 ? void 0 : _a.isChecked(e.element));\n } : undefined, getAriaLabel(e) {\n return options.accessibilityProvider.getAriaLabel(e.element);\n },\n getWidgetAriaLabel() {\n return options.accessibilityProvider.getWidgetAriaLabel();\n }, getWidgetRole: options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree', getAriaLevel: options.accessibilityProvider.getAriaLevel && (node => {\n return options.accessibilityProvider.getAriaLevel(node.element);\n }), getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {\n return options.accessibilityProvider.getActiveDescendantId(node.element);\n }) }), filter: options.filter && {\n filter(e, parentVisibility) {\n return options.filter.filter(e.element, parentVisibility);\n }\n }, keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, options.keyboardNavigationLabelProvider), { getKeyboardNavigationLabel(e) {\n return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element);\n } }), sorter: undefined, expandOnlyOnTwistieClick: typeof options.expandOnlyOnTwistieClick === 'undefined' ? undefined : (typeof options.expandOnlyOnTwistieClick !== 'function' ? options.expandOnlyOnTwistieClick : (e => options.expandOnlyOnTwistieClick(e.element))), additionalScrollHeight: options.additionalScrollHeight });\n}\nfunction dfs(node, fn) {\n fn(node);\n node.children.forEach(child => dfs(child, fn));\n}\nexport class AsyncDataTree {\n constructor(user, container, delegate, renderers, dataSource, options = {}) {\n this.user = user;\n this.dataSource = dataSource;\n this.nodes = new Map();\n this.subTreeRefreshPromises = new Map();\n this.refreshPromises = new Map();\n this._onDidRender = new Emitter();\n this._onDidChangeNodeSlowState = new Emitter();\n this.nodeMapper = new WeakMapper(node => new AsyncDataTreeNodeWrapper(node));\n this.disposables = new DisposableStore();\n this.identityProvider = options.identityProvider;\n this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;\n this.sorter = options.sorter;\n this.collapseByDefault = options.collapseByDefault;\n this.tree = this.createTree(user, container, delegate, renderers, options);\n this.root = createAsyncDataTreeNode({\n element: undefined,\n parent: null,\n hasChildren: true\n });\n if (this.identityProvider) {\n this.root = Object.assign(Object.assign({}, this.root), { id: null });\n }\n this.nodes.set(null, this.root);\n this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState, this, this.disposables);\n }\n get onDidChangeFocus() { return Event.map(this.tree.onDidChangeFocus, asTreeEvent); }\n get onDidChangeSelection() { return Event.map(this.tree.onDidChangeSelection, asTreeEvent); }\n get onMouseDblClick() { return Event.map(this.tree.onMouseDblClick, asTreeMouseEvent); }\n get onPointer() { return Event.map(this.tree.onPointer, asTreeMouseEvent); }\n get onDidFocus() { return this.tree.onDidFocus; }\n get onDidDispose() { return this.tree.onDidDispose; }\n createTree(user, container, delegate, renderers, options) {\n const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n const objectTreeRenderers = renderers.map(r => new AsyncDataTreeRenderer(r, this.nodeMapper, this._onDidChangeNodeSlowState.event));\n const objectTreeOptions = asObjectTreeOptions(options) || {};\n return new ObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n }\n updateOptions(options = {}) {\n this.tree.updateOptions(options);\n }\n // Widget\n getHTMLElement() {\n return this.tree.getHTMLElement();\n }\n get scrollTop() {\n return this.tree.scrollTop;\n }\n set scrollTop(scrollTop) {\n this.tree.scrollTop = scrollTop;\n }\n domFocus() {\n this.tree.domFocus();\n }\n layout(height, width) {\n this.tree.layout(height, width);\n }\n style(styles) {\n this.tree.style(styles);\n }\n // Model\n getInput() {\n return this.root.element;\n }\n setInput(input, viewState) {\n return __awaiter(this, void 0, void 0, function* () {\n this.refreshPromises.forEach(promise => promise.cancel());\n this.refreshPromises.clear();\n this.root.element = input;\n const viewStateContext = viewState && { viewState, focus: [], selection: [] };\n yield this._updateChildren(input, true, false, viewStateContext);\n if (viewStateContext) {\n this.tree.setFocus(viewStateContext.focus);\n this.tree.setSelection(viewStateContext.selection);\n }\n if (viewState && typeof viewState.scrollTop === 'number') {\n this.scrollTop = viewState.scrollTop;\n }\n });\n }\n _updateChildren(element = this.root.element, recursive = true, rerender = false, viewStateContext, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof this.root.element === 'undefined') {\n throw new TreeError(this.user, 'Tree input not set');\n }\n if (this.root.refreshPromise) {\n yield this.root.refreshPromise;\n yield Event.toPromise(this._onDidRender.event);\n }\n const node = this.getDataNode(element);\n yield this.refreshAndRenderNode(node, recursive, viewStateContext, options);\n if (rerender) {\n try {\n this.tree.rerender(node);\n }\n catch (_a) {\n // missing nodes are fine, this could've resulted from\n // parallel refresh calls, removing `node` altogether\n }\n }\n });\n }\n // View\n rerender(element) {\n if (element === undefined || element === this.root.element) {\n this.tree.rerender();\n return;\n }\n const node = this.getDataNode(element);\n this.tree.rerender(node);\n }\n collapse(element, recursive = false) {\n const node = this.getDataNode(element);\n return this.tree.collapse(node === this.root ? null : node, recursive);\n }\n expand(element, recursive = false) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof this.root.element === 'undefined') {\n throw new TreeError(this.user, 'Tree input not set');\n }\n if (this.root.refreshPromise) {\n yield this.root.refreshPromise;\n yield Event.toPromise(this._onDidRender.event);\n }\n const node = this.getDataNode(element);\n if (this.tree.hasElement(node) && !this.tree.isCollapsible(node)) {\n return false;\n }\n if (node.refreshPromise) {\n yield this.root.refreshPromise;\n yield Event.toPromise(this._onDidRender.event);\n }\n if (node !== this.root && !node.refreshPromise && !this.tree.isCollapsed(node)) {\n return false;\n }\n const result = this.tree.expand(node === this.root ? null : node, recursive);\n if (node.refreshPromise) {\n yield this.root.refreshPromise;\n yield Event.toPromise(this._onDidRender.event);\n }\n return result;\n });\n }\n setSelection(elements, browserEvent) {\n const nodes = elements.map(e => this.getDataNode(e));\n this.tree.setSelection(nodes, browserEvent);\n }\n getSelection() {\n const nodes = this.tree.getSelection();\n return nodes.map(n => n.element);\n }\n setFocus(elements, browserEvent) {\n const nodes = elements.map(e => this.getDataNode(e));\n this.tree.setFocus(nodes, browserEvent);\n }\n getFocus() {\n const nodes = this.tree.getFocus();\n return nodes.map(n => n.element);\n }\n reveal(element, relativeTop) {\n this.tree.reveal(this.getDataNode(element), relativeTop);\n }\n // Implementation\n getDataNode(element) {\n const node = this.nodes.get((element === this.root.element ? null : element));\n if (!node) {\n throw new TreeError(this.user, `Data tree node not found: ${element}`);\n }\n return node;\n }\n refreshAndRenderNode(node, recursive, viewStateContext, options) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.refreshNode(node, recursive, viewStateContext);\n this.render(node, viewStateContext, options);\n });\n }\n refreshNode(node, recursive, viewStateContext) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n this.subTreeRefreshPromises.forEach((refreshPromise, refreshNode) => {\n if (!result && intersects(refreshNode, node)) {\n result = refreshPromise.then(() => this.refreshNode(node, recursive, viewStateContext));\n }\n });\n if (result) {\n return result;\n }\n return this.doRefreshSubTree(node, recursive, viewStateContext);\n });\n }\n doRefreshSubTree(node, recursive, viewStateContext) {\n return __awaiter(this, void 0, void 0, function* () {\n let done;\n node.refreshPromise = new Promise(c => done = c);\n this.subTreeRefreshPromises.set(node, node.refreshPromise);\n node.refreshPromise.finally(() => {\n node.refreshPromise = undefined;\n this.subTreeRefreshPromises.delete(node);\n });\n try {\n const childrenToRefresh = yield this.doRefreshNode(node, recursive, viewStateContext);\n node.stale = false;\n yield Promises.settled(childrenToRefresh.map(child => this.doRefreshSubTree(child, recursive, viewStateContext)));\n }\n finally {\n done();\n }\n });\n }\n doRefreshNode(node, recursive, viewStateContext) {\n return __awaiter(this, void 0, void 0, function* () {\n node.hasChildren = !!this.dataSource.hasChildren(node.element);\n let childrenPromise;\n if (!node.hasChildren) {\n childrenPromise = Promise.resolve(Iterable.empty());\n }\n else {\n const slowTimeout = timeout(800);\n slowTimeout.then(() => {\n node.slow = true;\n this._onDidChangeNodeSlowState.fire(node);\n }, _ => null);\n childrenPromise = this.doGetChildren(node)\n .finally(() => slowTimeout.cancel());\n }\n try {\n const children = yield childrenPromise;\n return this.setChildren(node, children, recursive, viewStateContext);\n }\n catch (err) {\n if (node !== this.root && this.tree.hasElement(node)) {\n this.tree.collapse(node);\n }\n if (isPromiseCanceledError(err)) {\n return [];\n }\n throw err;\n }\n finally {\n if (node.slow) {\n node.slow = false;\n this._onDidChangeNodeSlowState.fire(node);\n }\n }\n });\n }\n doGetChildren(node) {\n let result = this.refreshPromises.get(node);\n if (result) {\n return result;\n }\n result = createCancelablePromise(() => __awaiter(this, void 0, void 0, function* () {\n const children = yield this.dataSource.getChildren(node.element);\n return this.processChildren(children);\n }));\n this.refreshPromises.set(node, result);\n return result.finally(() => { this.refreshPromises.delete(node); });\n }\n _onDidChangeCollapseState({ node, deep }) {\n if (node.element === null) {\n return;\n }\n if (!node.collapsed && node.element.stale) {\n if (deep) {\n this.collapse(node.element.element);\n }\n else {\n this.refreshAndRenderNode(node.element, false)\n .catch(onUnexpectedError);\n }\n }\n }\n setChildren(node, childrenElementsIterable, recursive, viewStateContext) {\n const childrenElements = [...childrenElementsIterable];\n // perf: if the node was and still is a leaf, avoid all this hassle\n if (node.children.length === 0 && childrenElements.length === 0) {\n return [];\n }\n const nodesToForget = new Map();\n const childrenTreeNodesById = new Map();\n for (const child of node.children) {\n nodesToForget.set(child.element, child);\n if (this.identityProvider) {\n const collapsed = this.tree.isCollapsed(child);\n childrenTreeNodesById.set(child.id, { node: child, collapsed });\n }\n }\n const childrenToRefresh = [];\n const children = childrenElements.map(element => {\n const hasChildren = !!this.dataSource.hasChildren(element);\n if (!this.identityProvider) {\n const asyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, hasChildren });\n if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {\n asyncDataTreeNode.collapsedByDefault = false;\n childrenToRefresh.push(asyncDataTreeNode);\n }\n return asyncDataTreeNode;\n }\n const id = this.identityProvider.getId(element).toString();\n const result = childrenTreeNodesById.get(id);\n if (result) {\n const asyncDataTreeNode = result.node;\n nodesToForget.delete(asyncDataTreeNode.element);\n this.nodes.delete(asyncDataTreeNode.element);\n this.nodes.set(element, asyncDataTreeNode);\n asyncDataTreeNode.element = element;\n asyncDataTreeNode.hasChildren = hasChildren;\n if (recursive) {\n if (result.collapsed) {\n asyncDataTreeNode.children.forEach(node => dfs(node, node => this.nodes.delete(node.element)));\n asyncDataTreeNode.children.splice(0, asyncDataTreeNode.children.length);\n asyncDataTreeNode.stale = true;\n }\n else {\n childrenToRefresh.push(asyncDataTreeNode);\n }\n }\n else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {\n asyncDataTreeNode.collapsedByDefault = false;\n childrenToRefresh.push(asyncDataTreeNode);\n }\n return asyncDataTreeNode;\n }\n const childAsyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, id, hasChildren });\n if (viewStateContext && viewStateContext.viewState.focus && viewStateContext.viewState.focus.indexOf(id) > -1) {\n viewStateContext.focus.push(childAsyncDataTreeNode);\n }\n if (viewStateContext && viewStateContext.viewState.selection && viewStateContext.viewState.selection.indexOf(id) > -1) {\n viewStateContext.selection.push(childAsyncDataTreeNode);\n }\n if (viewStateContext && viewStateContext.viewState.expanded && viewStateContext.viewState.expanded.indexOf(id) > -1) {\n childrenToRefresh.push(childAsyncDataTreeNode);\n }\n else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {\n childAsyncDataTreeNode.collapsedByDefault = false;\n childrenToRefresh.push(childAsyncDataTreeNode);\n }\n return childAsyncDataTreeNode;\n });\n for (const node of nodesToForget.values()) {\n dfs(node, node => this.nodes.delete(node.element));\n }\n for (const child of children) {\n this.nodes.set(child.element, child);\n }\n node.children.splice(0, node.children.length, ...children);\n // TODO@joao this doesn't take filter into account\n if (node !== this.root && this.autoExpandSingleChildren && children.length === 1 && childrenToRefresh.length === 0) {\n children[0].collapsedByDefault = false;\n childrenToRefresh.push(children[0]);\n }\n return childrenToRefresh;\n }\n render(node, viewStateContext, options) {\n const children = node.children.map(node => this.asTreeElement(node, viewStateContext));\n const objectTreeOptions = options && Object.assign(Object.assign({}, options), { diffIdentityProvider: options.diffIdentityProvider && {\n getId(node) {\n return options.diffIdentityProvider.getId(node.element);\n }\n } });\n this.tree.setChildren(node === this.root ? null : node, children, objectTreeOptions);\n if (node !== this.root) {\n this.tree.setCollapsible(node, node.hasChildren);\n }\n this._onDidRender.fire();\n }\n asTreeElement(node, viewStateContext) {\n if (node.stale) {\n return {\n element: node,\n collapsible: node.hasChildren,\n collapsed: true\n };\n }\n let collapsed;\n if (viewStateContext && viewStateContext.viewState.expanded && node.id && viewStateContext.viewState.expanded.indexOf(node.id) > -1) {\n collapsed = false;\n }\n else {\n collapsed = node.collapsedByDefault;\n }\n node.collapsedByDefault = undefined;\n return {\n element: node,\n children: node.hasChildren ? Iterable.map(node.children, child => this.asTreeElement(child, viewStateContext)) : [],\n collapsible: node.hasChildren,\n collapsed\n };\n }\n processChildren(children) {\n if (this.sorter) {\n children = [...children].sort(this.sorter.compare.bind(this.sorter));\n }\n return children;\n }\n dispose() {\n this.disposables.dispose();\n }\n}\nclass CompressibleAsyncDataTreeNodeWrapper {\n constructor(node) {\n this.node = node;\n }\n get element() {\n return {\n elements: this.node.element.elements.map(e => e.element),\n incompressible: this.node.element.incompressible\n };\n }\n get children() { return this.node.children.map(node => new CompressibleAsyncDataTreeNodeWrapper(node)); }\n get depth() { return this.node.depth; }\n get visibleChildrenCount() { return this.node.visibleChildrenCount; }\n get visibleChildIndex() { return this.node.visibleChildIndex; }\n get collapsible() { return this.node.collapsible; }\n get collapsed() { return this.node.collapsed; }\n get visible() { return this.node.visible; }\n get filterData() { return this.node.filterData; }\n}\nclass CompressibleAsyncDataTreeRenderer {\n constructor(renderer, nodeMapper, compressibleNodeMapperProvider, onDidChangeTwistieState) {\n this.renderer = renderer;\n this.nodeMapper = nodeMapper;\n this.compressibleNodeMapperProvider = compressibleNodeMapperProvider;\n this.onDidChangeTwistieState = onDidChangeTwistieState;\n this.renderedNodes = new Map();\n this.disposables = [];\n this.templateId = renderer.templateId;\n }\n renderTemplate(container) {\n const templateData = this.renderer.renderTemplate(container);\n return { templateData };\n }\n renderElement(node, index, templateData, height) {\n this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n }\n renderCompressedElements(node, index, templateData, height) {\n this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, height);\n }\n renderTwistie(element, twistieElement) {\n if (element.slow) {\n twistieElement.classList.add(...treeItemLoadingIcon.classNamesArray);\n return true;\n }\n else {\n twistieElement.classList.remove(...treeItemLoadingIcon.classNamesArray);\n return false;\n }\n }\n disposeElement(node, index, templateData, height) {\n if (this.renderer.disposeElement) {\n this.renderer.disposeElement(this.nodeMapper.map(node), index, templateData.templateData, height);\n }\n }\n disposeCompressedElements(node, index, templateData, height) {\n if (this.renderer.disposeCompressedElements) {\n this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, height);\n }\n }\n disposeTemplate(templateData) {\n this.renderer.disposeTemplate(templateData.templateData);\n }\n dispose() {\n this.renderedNodes.clear();\n this.disposables = dispose(this.disposables);\n }\n}\nfunction asCompressibleObjectTreeOptions(options) {\n const objectTreeOptions = options && asObjectTreeOptions(options);\n return objectTreeOptions && Object.assign(Object.assign({}, objectTreeOptions), { keyboardNavigationLabelProvider: objectTreeOptions.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, objectTreeOptions.keyboardNavigationLabelProvider), { getCompressedNodeKeyboardNavigationLabel(els) {\n return options.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(els.map(e => e.element));\n } }) });\n}\nexport class CompressibleAsyncDataTree extends AsyncDataTree {\n constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options = {}) {\n super(user, container, virtualDelegate, renderers, dataSource, options);\n this.compressionDelegate = compressionDelegate;\n this.compressibleNodeMapper = new WeakMapper(node => new CompressibleAsyncDataTreeNodeWrapper(node));\n this.filter = options.filter;\n }\n createTree(user, container, delegate, renderers, options) {\n const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n const objectTreeRenderers = renderers.map(r => new CompressibleAsyncDataTreeRenderer(r, this.nodeMapper, () => this.compressibleNodeMapper, this._onDidChangeNodeSlowState.event));\n const objectTreeOptions = asCompressibleObjectTreeOptions(options) || {};\n return new CompressibleObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n }\n asTreeElement(node, viewStateContext) {\n return Object.assign({ incompressible: this.compressionDelegate.isIncompressible(node.element) }, super.asTreeElement(node, viewStateContext));\n }\n updateOptions(options = {}) {\n this.tree.updateOptions(options);\n }\n render(node, viewStateContext) {\n if (!this.identityProvider) {\n return super.render(node, viewStateContext);\n }\n // Preserve traits across compressions. Hacky but does the trick.\n // This is hard to fix properly since it requires rewriting the traits\n // across trees and lists. Let's just keep it this way for now.\n const getId = (element) => this.identityProvider.getId(element).toString();\n const getUncompressedIds = (nodes) => {\n const result = new Set();\n for (const node of nodes) {\n const compressedNode = this.tree.getCompressedTreeNode(node === this.root ? null : node);\n if (!compressedNode.element) {\n continue;\n }\n for (const node of compressedNode.element.elements) {\n result.add(getId(node.element));\n }\n }\n return result;\n };\n const oldSelection = getUncompressedIds(this.tree.getSelection());\n const oldFocus = getUncompressedIds(this.tree.getFocus());\n super.render(node, viewStateContext);\n const selection = this.getSelection();\n let didChangeSelection = false;\n const focus = this.getFocus();\n let didChangeFocus = false;\n const visit = (node) => {\n const compressedNode = node.element;\n if (compressedNode) {\n for (let i = 0; i < compressedNode.elements.length; i++) {\n const id = getId(compressedNode.elements[i].element);\n const element = compressedNode.elements[compressedNode.elements.length - 1].element;\n // github.com/microsoft/vscode/issues/85938\n if (oldSelection.has(id) && selection.indexOf(element) === -1) {\n selection.push(element);\n didChangeSelection = true;\n }\n if (oldFocus.has(id) && focus.indexOf(element) === -1) {\n focus.push(element);\n didChangeFocus = true;\n }\n }\n }\n node.children.forEach(visit);\n };\n visit(this.tree.getCompressedTreeNode(node === this.root ? null : node));\n if (didChangeSelection) {\n this.setSelection(selection);\n }\n if (didChangeFocus) {\n this.setFocus(focus);\n }\n }\n // For compressed async data trees, `TreeVisibility.Recurse` doesn't currently work\n // and we have to filter everything beforehand\n // Related to #85193 and #85835\n processChildren(children) {\n if (this.filter) {\n children = Iterable.filter(children, e => {\n const result = this.filter.filter(e, 1 /* Visible */);\n const visibility = getVisibility(result);\n if (visibility === 2 /* Recurse */) {\n throw new Error('Recursive tree visibility not supported in async data compressed trees');\n }\n return visibility === 1 /* Visible */;\n });\n }\n return super.processChildren(children);\n }\n}\nfunction getVisibility(filterResult) {\n if (typeof filterResult === 'boolean') {\n return filterResult ? 1 /* Visible */ : 0 /* Hidden */;\n }\n else if (isFilterResult(filterResult)) {\n return getVisibleState(filterResult.visibility);\n }\n else {\n return getVisibleState(filterResult);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AbstractTree } from './abstractTree.js';\nimport { ObjectTreeModel } from './objectTreeModel.js';\nexport class DataTree extends AbstractTree {\n constructor(user, container, delegate, renderers, dataSource, options = {}) {\n super(user, container, delegate, renderers, options);\n this.user = user;\n this.dataSource = dataSource;\n this.identityProvider = options.identityProvider;\n }\n createModel(user, view, options) {\n return new ObjectTreeModel(user, view, options);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createStyleSheet } from '../../../base/browser/dom.js';\nimport { PagedList } from '../../../base/browser/ui/list/listPaging.js';\nimport { DefaultStyleController, isSelectionRangeChangeEvent, isSelectionSingleChangeEvent, List } from '../../../base/browser/ui/list/listWidget.js';\nimport { Table } from '../../../base/browser/ui/table/tableWidget.js';\nimport { AsyncDataTree, CompressibleAsyncDataTree } from '../../../base/browser/ui/tree/asyncDataTree.js';\nimport { DataTree } from '../../../base/browser/ui/tree/dataTree.js';\nimport { CompressibleObjectTree, ObjectTree } from '../../../base/browser/ui/tree/objectTree.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { combinedDisposable, Disposable, DisposableStore, dispose, toDisposable } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { IAccessibilityService } from '../../accessibility/common/accessibility.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Extensions as ConfigurationExtensions } from '../../configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { InputFocusedContextKey } from '../../contextkey/common/contextkeys.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { attachListStyler, computeStyles, defaultListStyles } from '../../theme/common/styler.js';\nimport { IThemeService } from '../../theme/common/themeService.js';\nexport const IListService = createDecorator('listService');\nlet ListService = class ListService {\n constructor(_themeService) {\n this._themeService = _themeService;\n this.disposables = new DisposableStore();\n this.lists = [];\n this._lastFocusedWidget = undefined;\n this._hasCreatedStyleController = false;\n }\n get lastFocusedList() {\n return this._lastFocusedWidget;\n }\n register(widget, extraContextKeys) {\n if (!this._hasCreatedStyleController) {\n this._hasCreatedStyleController = true;\n // create a shared default tree style sheet for performance reasons\n const styleController = new DefaultStyleController(createStyleSheet(), '');\n this.disposables.add(attachListStyler(styleController, this._themeService));\n }\n if (this.lists.some(l => l.widget === widget)) {\n throw new Error('Cannot register the same widget multiple times');\n }\n // Keep in our lists list\n const registeredList = { widget, extraContextKeys };\n this.lists.push(registeredList);\n // Check for currently being focused\n if (widget.getHTMLElement() === document.activeElement) {\n this._lastFocusedWidget = widget;\n }\n return combinedDisposable(widget.onDidFocus(() => this._lastFocusedWidget = widget), toDisposable(() => this.lists.splice(this.lists.indexOf(registeredList), 1)), widget.onDidDispose(() => {\n this.lists = this.lists.filter(l => l !== registeredList);\n if (this._lastFocusedWidget === widget) {\n this._lastFocusedWidget = undefined;\n }\n }));\n }\n dispose() {\n this.disposables.dispose();\n }\n};\nListService = __decorate([\n __param(0, IThemeService)\n], ListService);\nexport { ListService };\nconst RawWorkbenchListFocusContextKey = new RawContextKey('listFocus', true);\nexport const WorkbenchListSupportsMultiSelectContextKey = new RawContextKey('listSupportsMultiselect', true);\nexport const WorkbenchListFocusContextKey = ContextKeyExpr.and(RawWorkbenchListFocusContextKey, ContextKeyExpr.not(InputFocusedContextKey));\nexport const WorkbenchListHasSelectionOrFocus = new RawContextKey('listHasSelectionOrFocus', false);\nexport const WorkbenchListDoubleSelection = new RawContextKey('listDoubleSelection', false);\nexport const WorkbenchListMultiSelection = new RawContextKey('listMultiSelection', false);\nexport const WorkbenchListSelectionNavigation = new RawContextKey('listSelectionNavigation', false);\nexport const WorkbenchListAutomaticKeyboardNavigationKey = 'listAutomaticKeyboardNavigation';\nfunction createScopedContextKeyService(contextKeyService, widget) {\n const result = contextKeyService.createScoped(widget.getHTMLElement());\n RawWorkbenchListFocusContextKey.bindTo(result);\n return result;\n}\nconst multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';\nconst openModeSettingKey = 'workbench.list.openMode';\nconst horizontalScrollingKey = 'workbench.list.horizontalScrolling';\nconst keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';\nconst automaticKeyboardNavigationSettingKey = 'workbench.list.automaticKeyboardNavigation';\nconst treeIndentKey = 'workbench.tree.indent';\nconst treeRenderIndentGuidesKey = 'workbench.tree.renderIndentGuides';\nconst listSmoothScrolling = 'workbench.list.smoothScrolling';\nconst mouseWheelScrollSensitivityKey = 'workbench.list.mouseWheelScrollSensitivity';\nconst fastScrollSensitivityKey = 'workbench.list.fastScrollSensitivity';\nconst treeExpandMode = 'workbench.tree.expandMode';\nfunction useAltAsMultipleSelectionModifier(configurationService) {\n return configurationService.getValue(multiSelectModifierSettingKey) === 'alt';\n}\nclass MultipleSelectionController extends Disposable {\n constructor(configurationService) {\n super();\n this.configurationService = configurationService;\n this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n this.registerListeners();\n }\n registerListeners() {\n this._register(this.configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(this.configurationService);\n }\n }));\n }\n isSelectionSingleChangeEvent(event) {\n if (this.useAltAsMultipleSelectionModifier) {\n return event.browserEvent.altKey;\n }\n return isSelectionSingleChangeEvent(event);\n }\n isSelectionRangeChangeEvent(event) {\n return isSelectionRangeChangeEvent(event);\n }\n}\nfunction toWorkbenchListOptions(options, configurationService, keybindingService) {\n var _a;\n const disposables = new DisposableStore();\n const result = Object.assign(Object.assign({}, options), { keyboardNavigationDelegate: { mightProducePrintableCharacter(e) { return keybindingService.mightProducePrintableCharacter(e); } }, smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)), mouseWheelScrollSensitivity: configurationService.getValue(mouseWheelScrollSensitivityKey), fastScrollSensitivity: configurationService.getValue(fastScrollSensitivityKey), multipleSelectionController: (_a = options.multipleSelectionController) !== null && _a !== void 0 ? _a : disposables.add(new MultipleSelectionController(configurationService)) });\n return [result, disposables];\n}\nlet WorkbenchList = class WorkbenchList extends List {\n constructor(user, container, delegate, renderers, options, contextKeyService, listService, themeService, configurationService, keybindingService) {\n const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n const [workbenchListOptions, workbenchListOptionsDisposable] = toWorkbenchListOptions(options, configurationService, keybindingService);\n super(user, container, delegate, renderers, Object.assign(Object.assign(Object.assign({ keyboardSupport: false }, computeStyles(themeService.getColorTheme(), defaultListStyles)), workbenchListOptions), { horizontalScrolling }));\n this.disposables.add(workbenchListOptionsDisposable);\n this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n this.themeService = themeService;\n this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n listSelectionNavigation.set(Boolean(options.selectionNavigation));\n this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n this.horizontalScrolling = options.horizontalScrolling;\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n this.disposables.add(this.contextKeyService);\n this.disposables.add(listService.register(this));\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n this.disposables.add(this.onDidChangeSelection(() => {\n const selection = this.getSelection();\n const focus = this.getFocus();\n this.contextKeyService.bufferChangeEvents(() => {\n this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n this.listMultiSelection.set(selection.length > 1);\n this.listDoubleSelection.set(selection.length === 2);\n });\n }));\n this.disposables.add(this.onDidChangeFocus(() => {\n const selection = this.getSelection();\n const focus = this.getFocus();\n this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n }));\n this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n }\n let options = {};\n if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n options = Object.assign(Object.assign({}, options), { horizontalScrolling });\n }\n if (e.affectsConfiguration(listSmoothScrolling)) {\n const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n options = Object.assign(Object.assign({}, options), { smoothScrolling });\n }\n if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { mouseWheelScrollSensitivity });\n }\n if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { fastScrollSensitivity });\n }\n if (Object.keys(options).length > 0) {\n this.updateOptions(options);\n }\n }));\n this.navigator = new ListResourceNavigator(this, Object.assign({ configurationService }, options));\n this.disposables.add(this.navigator);\n }\n updateOptions(options) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n if (options.multipleSelectionSupport !== undefined) {\n this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n }\n }\n updateStyles(styles) {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n this._styler = attachListStyler(this, this.themeService, styles);\n }\n dispose() {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n super.dispose();\n }\n};\nWorkbenchList = __decorate([\n __param(5, IContextKeyService),\n __param(6, IListService),\n __param(7, IThemeService),\n __param(8, IConfigurationService),\n __param(9, IKeybindingService)\n], WorkbenchList);\nexport { WorkbenchList };\nlet WorkbenchPagedList = class WorkbenchPagedList extends PagedList {\n constructor(user, container, delegate, renderers, options, contextKeyService, listService, themeService, configurationService, keybindingService) {\n const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n const [workbenchListOptions, workbenchListOptionsDisposable] = toWorkbenchListOptions(options, configurationService, keybindingService);\n super(user, container, delegate, renderers, Object.assign(Object.assign(Object.assign({ keyboardSupport: false }, computeStyles(themeService.getColorTheme(), defaultListStyles)), workbenchListOptions), { horizontalScrolling }));\n this.disposables = new DisposableStore();\n this.disposables.add(workbenchListOptionsDisposable);\n this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n this.themeService = themeService;\n this.horizontalScrolling = options.horizontalScrolling;\n this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n listSelectionNavigation.set(Boolean(options.selectionNavigation));\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n this.disposables.add(this.contextKeyService);\n this.disposables.add(listService.register(this));\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n if (options.overrideStyles) {\n this.disposables.add(attachListStyler(this, themeService, options.overrideStyles));\n }\n this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n }\n let options = {};\n if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n options = Object.assign(Object.assign({}, options), { horizontalScrolling });\n }\n if (e.affectsConfiguration(listSmoothScrolling)) {\n const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n options = Object.assign(Object.assign({}, options), { smoothScrolling });\n }\n if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { mouseWheelScrollSensitivity });\n }\n if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { fastScrollSensitivity });\n }\n if (Object.keys(options).length > 0) {\n this.updateOptions(options);\n }\n }));\n this.navigator = new ListResourceNavigator(this, Object.assign({ configurationService }, options));\n this.disposables.add(this.navigator);\n }\n updateOptions(options) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n if (options.multipleSelectionSupport !== undefined) {\n this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n }\n }\n updateStyles(styles) {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n this._styler = attachListStyler(this, this.themeService, styles);\n }\n dispose() {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n this.disposables.dispose();\n super.dispose();\n }\n};\nWorkbenchPagedList = __decorate([\n __param(5, IContextKeyService),\n __param(6, IListService),\n __param(7, IThemeService),\n __param(8, IConfigurationService),\n __param(9, IKeybindingService)\n], WorkbenchPagedList);\nexport { WorkbenchPagedList };\nlet WorkbenchTable = class WorkbenchTable extends Table {\n constructor(user, container, delegate, columns, renderers, options, contextKeyService, listService, themeService, configurationService, keybindingService) {\n const horizontalScrolling = typeof options.horizontalScrolling !== 'undefined' ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n const [workbenchListOptions, workbenchListOptionsDisposable] = toWorkbenchListOptions(options, configurationService, keybindingService);\n super(user, container, delegate, columns, renderers, Object.assign(Object.assign(Object.assign({ keyboardSupport: false }, computeStyles(themeService.getColorTheme(), defaultListStyles)), workbenchListOptions), { horizontalScrolling }));\n this.disposables = new DisposableStore();\n this.disposables.add(workbenchListOptionsDisposable);\n this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n this.themeService = themeService;\n this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n listSelectionNavigation.set(Boolean(options.selectionNavigation));\n this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n this.horizontalScrolling = options.horizontalScrolling;\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n this.disposables.add(this.contextKeyService);\n this.disposables.add(listService.register(this));\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n this.disposables.add(this.onDidChangeSelection(() => {\n const selection = this.getSelection();\n const focus = this.getFocus();\n this.contextKeyService.bufferChangeEvents(() => {\n this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n this.listMultiSelection.set(selection.length > 1);\n this.listDoubleSelection.set(selection.length === 2);\n });\n }));\n this.disposables.add(this.onDidChangeFocus(() => {\n const selection = this.getSelection();\n const focus = this.getFocus();\n this.listHasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n }));\n this.disposables.add(configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n }\n let options = {};\n if (e.affectsConfiguration(horizontalScrollingKey) && this.horizontalScrolling === undefined) {\n const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n options = Object.assign(Object.assign({}, options), { horizontalScrolling });\n }\n if (e.affectsConfiguration(listSmoothScrolling)) {\n const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n options = Object.assign(Object.assign({}, options), { smoothScrolling });\n }\n if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { mouseWheelScrollSensitivity });\n }\n if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n options = Object.assign(Object.assign({}, options), { fastScrollSensitivity });\n }\n if (Object.keys(options).length > 0) {\n this.updateOptions(options);\n }\n }));\n this.navigator = new TableResourceNavigator(this, Object.assign({ configurationService }, options));\n this.disposables.add(this.navigator);\n }\n updateOptions(options) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.updateStyles(options.overrideStyles);\n }\n if (options.multipleSelectionSupport !== undefined) {\n this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n }\n }\n updateStyles(styles) {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n this._styler = attachListStyler(this, this.themeService, styles);\n }\n dispose() {\n var _a;\n (_a = this._styler) === null || _a === void 0 ? void 0 : _a.dispose();\n this.disposables.dispose();\n super.dispose();\n }\n};\nWorkbenchTable = __decorate([\n __param(6, IContextKeyService),\n __param(7, IListService),\n __param(8, IThemeService),\n __param(9, IConfigurationService),\n __param(10, IKeybindingService)\n], WorkbenchTable);\nexport { WorkbenchTable };\nclass ResourceNavigator extends Disposable {\n constructor(widget, options) {\n var _a;\n super();\n this.widget = widget;\n this._onDidOpen = this._register(new Emitter());\n this.onDidOpen = this._onDidOpen.event;\n this._register(Event.filter(this.widget.onDidChangeSelection, e => e.browserEvent instanceof KeyboardEvent)(e => this.onSelectionFromKeyboard(e)));\n this._register(this.widget.onPointer((e) => this.onPointer(e.element, e.browserEvent)));\n this._register(this.widget.onMouseDblClick((e) => this.onMouseDblClick(e.element, e.browserEvent)));\n if (typeof (options === null || options === void 0 ? void 0 : options.openOnSingleClick) !== 'boolean' && (options === null || options === void 0 ? void 0 : options.configurationService)) {\n this.openOnSingleClick = (options === null || options === void 0 ? void 0 : options.configurationService.getValue(openModeSettingKey)) !== 'doubleClick';\n this._register(options === null || options === void 0 ? void 0 : options.configurationService.onDidChangeConfiguration(() => {\n this.openOnSingleClick = (options === null || options === void 0 ? void 0 : options.configurationService.getValue(openModeSettingKey)) !== 'doubleClick';\n }));\n }\n else {\n this.openOnSingleClick = (_a = options === null || options === void 0 ? void 0 : options.openOnSingleClick) !== null && _a !== void 0 ? _a : true;\n }\n }\n onSelectionFromKeyboard(event) {\n if (event.elements.length !== 1) {\n return;\n }\n const selectionKeyboardEvent = event.browserEvent;\n const preserveFocus = typeof selectionKeyboardEvent.preserveFocus === 'boolean' ? selectionKeyboardEvent.preserveFocus : true;\n const pinned = typeof selectionKeyboardEvent.pinned === 'boolean' ? selectionKeyboardEvent.pinned : !preserveFocus;\n const sideBySide = false;\n this._open(this.getSelectedElement(), preserveFocus, pinned, sideBySide, event.browserEvent);\n }\n onPointer(element, browserEvent) {\n if (!this.openOnSingleClick) {\n return;\n }\n const isDoubleClick = browserEvent.detail === 2;\n if (isDoubleClick) {\n return;\n }\n const isMiddleClick = browserEvent.button === 1;\n const preserveFocus = true;\n const pinned = isMiddleClick;\n const sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n }\n onMouseDblClick(element, browserEvent) {\n if (!browserEvent) {\n return;\n }\n // copied from AbstractTree\n const target = browserEvent.target;\n const onTwistie = target.classList.contains('monaco-tl-twistie')\n || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && browserEvent.offsetX < 16);\n if (onTwistie) {\n return;\n }\n const preserveFocus = false;\n const pinned = true;\n const sideBySide = (browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey);\n this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n }\n _open(element, preserveFocus, pinned, sideBySide, browserEvent) {\n if (!element) {\n return;\n }\n this._onDidOpen.fire({\n editorOptions: {\n preserveFocus,\n pinned,\n revealIfVisible: true\n },\n sideBySide,\n element,\n browserEvent\n });\n }\n}\nclass ListResourceNavigator extends ResourceNavigator {\n constructor(widget, options) {\n super(widget, options);\n this.widget = widget;\n }\n getSelectedElement() {\n return this.widget.getSelectedElements()[0];\n }\n}\nclass TableResourceNavigator extends ResourceNavigator {\n constructor(widget, options) {\n super(widget, options);\n }\n getSelectedElement() {\n return this.widget.getSelectedElements()[0];\n }\n}\nclass TreeResourceNavigator extends ResourceNavigator {\n constructor(widget, options) {\n super(widget, options);\n }\n getSelectedElement() {\n var _a;\n return (_a = this.widget.getSelection()[0]) !== null && _a !== void 0 ? _a : undefined;\n }\n}\nfunction createKeyboardNavigationEventFilter(container, keybindingService) {\n let inChord = false;\n return event => {\n if (inChord) {\n inChord = false;\n return false;\n }\n const result = keybindingService.softDispatch(event, container);\n if (result && result.enterChord) {\n inChord = true;\n return false;\n }\n inChord = false;\n return true;\n };\n}\nlet WorkbenchObjectTree = class WorkbenchObjectTree extends ObjectTree {\n constructor(user, container, delegate, renderers, options, contextKeyService, listService, themeService, configurationService, keybindingService, accessibilityService) {\n const { options: treeOptions, getAutomaticKeyboardNavigation, disposable } = workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService);\n super(user, container, delegate, renderers, treeOptions);\n this.disposables.add(disposable);\n this.internals = new WorkbenchTreeInternals(this, options, getAutomaticKeyboardNavigation, options.overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService);\n this.disposables.add(this.internals);\n }\n updateOptions(options) {\n super.updateOptions(options);\n this.internals.updateOptions(options);\n }\n};\nWorkbenchObjectTree = __decorate([\n __param(5, IContextKeyService),\n __param(6, IListService),\n __param(7, IThemeService),\n __param(8, IConfigurationService),\n __param(9, IKeybindingService),\n __param(10, IAccessibilityService)\n], WorkbenchObjectTree);\nexport { WorkbenchObjectTree };\nlet WorkbenchCompressibleObjectTree = class WorkbenchCompressibleObjectTree extends CompressibleObjectTree {\n constructor(user, container, delegate, renderers, options, contextKeyService, listService, themeService, configurationService, keybindingService, accessibilityService) {\n const { options: treeOptions, getAutomaticKeyboardNavigation, disposable } = workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService);\n super(user, container, delegate, renderers, treeOptions);\n this.disposables.add(disposable);\n this.internals = new WorkbenchTreeInternals(this, options, getAutomaticKeyboardNavigation, options.overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService);\n this.disposables.add(this.internals);\n }\n updateOptions(options = {}) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.internals.updateStyleOverrides(options.overrideStyles);\n }\n this.internals.updateOptions(options);\n }\n};\nWorkbenchCompressibleObjectTree = __decorate([\n __param(5, IContextKeyService),\n __param(6, IListService),\n __param(7, IThemeService),\n __param(8, IConfigurationService),\n __param(9, IKeybindingService),\n __param(10, IAccessibilityService)\n], WorkbenchCompressibleObjectTree);\nexport { WorkbenchCompressibleObjectTree };\nlet WorkbenchDataTree = class WorkbenchDataTree extends DataTree {\n constructor(user, container, delegate, renderers, dataSource, options, contextKeyService, listService, themeService, configurationService, keybindingService, accessibilityService) {\n const { options: treeOptions, getAutomaticKeyboardNavigation, disposable } = workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService);\n super(user, container, delegate, renderers, dataSource, treeOptions);\n this.disposables.add(disposable);\n this.internals = new WorkbenchTreeInternals(this, options, getAutomaticKeyboardNavigation, options.overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService);\n this.disposables.add(this.internals);\n }\n updateOptions(options = {}) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.internals.updateStyleOverrides(options.overrideStyles);\n }\n this.internals.updateOptions(options);\n }\n};\nWorkbenchDataTree = __decorate([\n __param(6, IContextKeyService),\n __param(7, IListService),\n __param(8, IThemeService),\n __param(9, IConfigurationService),\n __param(10, IKeybindingService),\n __param(11, IAccessibilityService)\n], WorkbenchDataTree);\nexport { WorkbenchDataTree };\nlet WorkbenchAsyncDataTree = class WorkbenchAsyncDataTree extends AsyncDataTree {\n constructor(user, container, delegate, renderers, dataSource, options, contextKeyService, listService, themeService, configurationService, keybindingService, accessibilityService) {\n const { options: treeOptions, getAutomaticKeyboardNavigation, disposable } = workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService);\n super(user, container, delegate, renderers, dataSource, treeOptions);\n this.disposables.add(disposable);\n this.internals = new WorkbenchTreeInternals(this, options, getAutomaticKeyboardNavigation, options.overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService);\n this.disposables.add(this.internals);\n }\n get onDidOpen() { return this.internals.onDidOpen; }\n updateOptions(options = {}) {\n super.updateOptions(options);\n if (options.overrideStyles) {\n this.internals.updateStyleOverrides(options.overrideStyles);\n }\n this.internals.updateOptions(options);\n }\n};\nWorkbenchAsyncDataTree = __decorate([\n __param(6, IContextKeyService),\n __param(7, IListService),\n __param(8, IThemeService),\n __param(9, IConfigurationService),\n __param(10, IKeybindingService),\n __param(11, IAccessibilityService)\n], WorkbenchAsyncDataTree);\nexport { WorkbenchAsyncDataTree };\nlet WorkbenchCompressibleAsyncDataTree = class WorkbenchCompressibleAsyncDataTree extends CompressibleAsyncDataTree {\n constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options, contextKeyService, listService, themeService, configurationService, keybindingService, accessibilityService) {\n const { options: treeOptions, getAutomaticKeyboardNavigation, disposable } = workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService);\n super(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, treeOptions);\n this.disposables.add(disposable);\n this.internals = new WorkbenchTreeInternals(this, options, getAutomaticKeyboardNavigation, options.overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService);\n this.disposables.add(this.internals);\n }\n updateOptions(options) {\n super.updateOptions(options);\n this.internals.updateOptions(options);\n }\n};\nWorkbenchCompressibleAsyncDataTree = __decorate([\n __param(7, IContextKeyService),\n __param(8, IListService),\n __param(9, IThemeService),\n __param(10, IConfigurationService),\n __param(11, IKeybindingService),\n __param(12, IAccessibilityService)\n], WorkbenchCompressibleAsyncDataTree);\nexport { WorkbenchCompressibleAsyncDataTree };\nfunction workbenchTreeDataPreamble(container, options, contextKeyService, configurationService, keybindingService, accessibilityService) {\n var _a;\n const getAutomaticKeyboardNavigation = () => {\n // give priority to the context key value to disable this completely\n let automaticKeyboardNavigation = Boolean(contextKeyService.getContextKeyValue(WorkbenchListAutomaticKeyboardNavigationKey));\n if (automaticKeyboardNavigation) {\n automaticKeyboardNavigation = Boolean(configurationService.getValue(automaticKeyboardNavigationSettingKey));\n }\n return automaticKeyboardNavigation;\n };\n const accessibilityOn = accessibilityService.isScreenReaderOptimized();\n const keyboardNavigation = options.simpleKeyboardNavigation || accessibilityOn ? 'simple' : configurationService.getValue(keyboardNavigationSettingKey);\n const horizontalScrolling = options.horizontalScrolling !== undefined ? options.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n const [workbenchListOptions, disposable] = toWorkbenchListOptions(options, configurationService, keybindingService);\n const additionalScrollHeight = options.additionalScrollHeight;\n return {\n getAutomaticKeyboardNavigation,\n disposable,\n options: Object.assign(Object.assign({ \n // ...options, // TODO@Joao why is this not splatted here?\n keyboardSupport: false }, workbenchListOptions), { indent: typeof configurationService.getValue(treeIndentKey) === 'number' ? configurationService.getValue(treeIndentKey) : undefined, renderIndentGuides: configurationService.getValue(treeRenderIndentGuidesKey), smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)), automaticKeyboardNavigation: getAutomaticKeyboardNavigation(), simpleKeyboardNavigation: keyboardNavigation === 'simple', filterOnType: keyboardNavigation === 'filter', horizontalScrolling, keyboardNavigationEventFilter: createKeyboardNavigationEventFilter(container, keybindingService), additionalScrollHeight, hideTwistiesOfChildlessElements: options.hideTwistiesOfChildlessElements, expandOnlyOnTwistieClick: (_a = options.expandOnlyOnTwistieClick) !== null && _a !== void 0 ? _a : (configurationService.getValue(treeExpandMode) === 'doubleClick') })\n };\n}\nlet WorkbenchTreeInternals = class WorkbenchTreeInternals {\n constructor(tree, options, getAutomaticKeyboardNavigation, overrideStyles, contextKeyService, listService, themeService, configurationService, accessibilityService) {\n this.tree = tree;\n this.themeService = themeService;\n this.disposables = [];\n this.contextKeyService = createScopedContextKeyService(contextKeyService, tree);\n this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n this.listSupportsMultiSelect.set(options.multipleSelectionSupport !== false);\n const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n listSelectionNavigation.set(Boolean(options.selectionNavigation));\n this.hasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n this.hasDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n this.hasMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n const interestingContextKeys = new Set();\n interestingContextKeys.add(WorkbenchListAutomaticKeyboardNavigationKey);\n const updateKeyboardNavigation = () => {\n const accessibilityOn = accessibilityService.isScreenReaderOptimized();\n const keyboardNavigation = accessibilityOn ? 'simple' : configurationService.getValue(keyboardNavigationSettingKey);\n tree.updateOptions({\n simpleKeyboardNavigation: keyboardNavigation === 'simple',\n filterOnType: keyboardNavigation === 'filter'\n });\n };\n this.updateStyleOverrides(overrideStyles);\n this.disposables.push(this.contextKeyService, listService.register(tree), tree.onDidChangeSelection(() => {\n const selection = tree.getSelection();\n const focus = tree.getFocus();\n this.contextKeyService.bufferChangeEvents(() => {\n this.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n this.hasMultiSelection.set(selection.length > 1);\n this.hasDoubleSelection.set(selection.length === 2);\n });\n }), tree.onDidChangeFocus(() => {\n const selection = tree.getSelection();\n const focus = tree.getFocus();\n this.hasSelectionOrFocus.set(selection.length > 0 || focus.length > 0);\n }), configurationService.onDidChangeConfiguration(e => {\n let newOptions = {};\n if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n }\n if (e.affectsConfiguration(treeIndentKey)) {\n const indent = configurationService.getValue(treeIndentKey);\n newOptions = Object.assign(Object.assign({}, newOptions), { indent });\n }\n if (e.affectsConfiguration(treeRenderIndentGuidesKey)) {\n const renderIndentGuides = configurationService.getValue(treeRenderIndentGuidesKey);\n newOptions = Object.assign(Object.assign({}, newOptions), { renderIndentGuides });\n }\n if (e.affectsConfiguration(listSmoothScrolling)) {\n const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n newOptions = Object.assign(Object.assign({}, newOptions), { smoothScrolling });\n }\n if (e.affectsConfiguration(keyboardNavigationSettingKey)) {\n updateKeyboardNavigation();\n }\n if (e.affectsConfiguration(automaticKeyboardNavigationSettingKey)) {\n newOptions = Object.assign(Object.assign({}, newOptions), { automaticKeyboardNavigation: getAutomaticKeyboardNavigation() });\n }\n if (e.affectsConfiguration(horizontalScrollingKey) && options.horizontalScrolling === undefined) {\n const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n newOptions = Object.assign(Object.assign({}, newOptions), { horizontalScrolling });\n }\n if (e.affectsConfiguration(treeExpandMode) && options.expandOnlyOnTwistieClick === undefined) {\n newOptions = Object.assign(Object.assign({}, newOptions), { expandOnlyOnTwistieClick: configurationService.getValue(treeExpandMode) === 'doubleClick' });\n }\n if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n newOptions = Object.assign(Object.assign({}, newOptions), { mouseWheelScrollSensitivity });\n }\n if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n newOptions = Object.assign(Object.assign({}, newOptions), { fastScrollSensitivity });\n }\n if (Object.keys(newOptions).length > 0) {\n tree.updateOptions(newOptions);\n }\n }), this.contextKeyService.onDidChangeContext(e => {\n if (e.affectsSome(interestingContextKeys)) {\n tree.updateOptions({ automaticKeyboardNavigation: getAutomaticKeyboardNavigation() });\n }\n }), accessibilityService.onDidChangeScreenReaderOptimized(() => updateKeyboardNavigation()));\n this.navigator = new TreeResourceNavigator(tree, Object.assign({ configurationService }, options));\n this.disposables.push(this.navigator);\n }\n get onDidOpen() { return this.navigator.onDidOpen; }\n updateOptions(options) {\n if (options.multipleSelectionSupport !== undefined) {\n this.listSupportsMultiSelect.set(!!options.multipleSelectionSupport);\n }\n }\n updateStyleOverrides(overrideStyles) {\n dispose(this.styler);\n this.styler = overrideStyles ? attachListStyler(this.tree, this.themeService, overrideStyles) : Disposable.None;\n }\n dispose() {\n this.disposables = dispose(this.disposables);\n dispose(this.styler);\n this.styler = undefined;\n }\n};\nWorkbenchTreeInternals = __decorate([\n __param(4, IContextKeyService),\n __param(5, IListService),\n __param(6, IThemeService),\n __param(7, IConfigurationService),\n __param(8, IAccessibilityService)\n], WorkbenchTreeInternals);\nconst configurationRegistry = Registry.as(ConfigurationExtensions.Configuration);\nconfigurationRegistry.registerConfiguration({\n id: 'workbench',\n order: 7,\n title: localize('workbenchConfigurationTitle', \"Workbench\"),\n type: 'object',\n properties: {\n [multiSelectModifierSettingKey]: {\n type: 'string',\n enum: ['ctrlCmd', 'alt'],\n enumDescriptions: [\n localize('multiSelectModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n localize('multiSelectModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n ],\n default: 'ctrlCmd',\n description: localize({\n key: 'multiSelectModifier',\n comment: [\n '- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n ]\n }, \"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")\n },\n [openModeSettingKey]: {\n type: 'string',\n enum: ['singleClick', 'doubleClick'],\n default: 'singleClick',\n description: localize({\n key: 'openModeModifier',\n comment: ['`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.']\n }, \"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n },\n [horizontalScrollingKey]: {\n type: 'boolean',\n default: false,\n description: localize('horizontalScrolling setting', \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n },\n [treeIndentKey]: {\n type: 'number',\n default: 8,\n minimum: 0,\n maximum: 40,\n description: localize('tree indent setting', \"Controls tree indentation in pixels.\")\n },\n [treeRenderIndentGuidesKey]: {\n type: 'string',\n enum: ['none', 'onHover', 'always'],\n default: 'onHover',\n description: localize('render tree indent guides', \"Controls whether the tree should render indent guides.\")\n },\n [listSmoothScrolling]: {\n type: 'boolean',\n default: false,\n description: localize('list smoothScrolling setting', \"Controls whether lists and trees have smooth scrolling.\"),\n },\n [mouseWheelScrollSensitivityKey]: {\n type: 'number',\n default: 1,\n description: localize('Mouse Wheel Scroll Sensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n },\n [fastScrollSensitivityKey]: {\n type: 'number',\n default: 5,\n description: localize('Fast Scroll Sensitivity', \"Scrolling speed multiplier when pressing `Alt`.\")\n },\n [keyboardNavigationSettingKey]: {\n type: 'string',\n enum: ['simple', 'highlight', 'filter'],\n enumDescriptions: [\n localize('keyboardNavigationSettingKey.simple', \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),\n localize('keyboardNavigationSettingKey.highlight', \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),\n localize('keyboardNavigationSettingKey.filter', \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")\n ],\n default: 'highlight',\n description: localize('keyboardNavigationSettingKey', \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\")\n },\n [automaticKeyboardNavigationSettingKey]: {\n type: 'boolean',\n default: true,\n markdownDescription: localize('automatic keyboard navigation setting', \"Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.\")\n },\n [treeExpandMode]: {\n type: 'string',\n enum: ['singleClick', 'doubleClick'],\n default: 'singleClick',\n description: localize('expand mode', \"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\"),\n }\n }\n});\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\nimport { replaceAll } from \"./util/utils\";\n/**\n * A class that handles the query portion of a URLBuilder.\n */\nvar URLQuery = /** @class */ (function () {\n function URLQuery() {\n this._rawQuery = {};\n }\n /**\n * Get whether or not there any query parameters in this URLQuery.\n */\n URLQuery.prototype.any = function () {\n return Object.keys(this._rawQuery).length > 0;\n };\n /**\n * Set a query parameter with the provided name and value. If the parameterValue is undefined or\n * empty, then this will attempt to remove an existing query parameter with the provided\n * parameterName.\n */\n URLQuery.prototype.set = function (parameterName, parameterValue) {\n if (parameterName) {\n if (parameterValue != undefined) {\n var newValue = Array.isArray(parameterValue) ? parameterValue : parameterValue.toString();\n this._rawQuery[parameterName] = newValue;\n }\n else {\n delete this._rawQuery[parameterName];\n }\n }\n };\n /**\n * Get the value of the query parameter with the provided name. If no parameter exists with the\n * provided parameter name, then undefined will be returned.\n */\n URLQuery.prototype.get = function (parameterName) {\n return parameterName ? this._rawQuery[parameterName] : undefined;\n };\n /**\n * Get the string representation of this query. The return value will not start with a \"?\".\n */\n URLQuery.prototype.toString = function () {\n var result = \"\";\n for (var parameterName in this._rawQuery) {\n if (result) {\n result += \"&\";\n }\n var parameterValue = this._rawQuery[parameterName];\n if (Array.isArray(parameterValue)) {\n var parameterStrings = [];\n for (var _i = 0, parameterValue_1 = parameterValue; _i < parameterValue_1.length; _i++) {\n var parameterValueElement = parameterValue_1[_i];\n parameterStrings.push(parameterName + \"=\" + parameterValueElement);\n }\n result += parameterStrings.join(\"&\");\n }\n else {\n result += parameterName + \"=\" + parameterValue;\n }\n }\n return result;\n };\n /**\n * Parse a URLQuery from the provided text.\n */\n URLQuery.parse = function (text) {\n var result = new URLQuery();\n if (text) {\n if (text.startsWith(\"?\")) {\n text = text.substring(1);\n }\n var currentState = \"ParameterName\";\n var parameterName = \"\";\n var parameterValue = \"\";\n for (var i = 0; i < text.length; ++i) {\n var currentCharacter = text[i];\n switch (currentState) {\n case \"ParameterName\":\n switch (currentCharacter) {\n case \"=\":\n currentState = \"ParameterValue\";\n break;\n case \"&\":\n parameterName = \"\";\n parameterValue = \"\";\n break;\n default:\n parameterName += currentCharacter;\n break;\n }\n break;\n case \"ParameterValue\":\n switch (currentCharacter) {\n case \"&\":\n result.set(parameterName, parameterValue);\n parameterName = \"\";\n parameterValue = \"\";\n currentState = \"ParameterName\";\n break;\n default:\n parameterValue += currentCharacter;\n break;\n }\n break;\n default:\n throw new Error(\"Unrecognized URLQuery parse state: \" + currentState);\n }\n }\n if (currentState === \"ParameterValue\") {\n result.set(parameterName, parameterValue);\n }\n }\n return result;\n };\n return URLQuery;\n}());\nexport { URLQuery };\n/**\n * A class that handles creating, modifying, and parsing URLs.\n */\nvar URLBuilder = /** @class */ (function () {\n function URLBuilder() {\n }\n /**\n * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL\n * (such as a host, port, path, or query), those parts will be added to this URL as well.\n */\n URLBuilder.prototype.setScheme = function (scheme) {\n if (!scheme) {\n this._scheme = undefined;\n }\n else {\n this.set(scheme, \"SCHEME\");\n }\n };\n /**\n * Get the scheme that has been set in this URL.\n */\n URLBuilder.prototype.getScheme = function () {\n return this._scheme;\n };\n /**\n * Set the host for this URL. If the provided host contains other parts of a URL (such as a\n * port, path, or query), those parts will be added to this URL as well.\n */\n URLBuilder.prototype.setHost = function (host) {\n if (!host) {\n this._host = undefined;\n }\n else {\n this.set(host, \"SCHEME_OR_HOST\");\n }\n };\n /**\n * Get the host that has been set in this URL.\n */\n URLBuilder.prototype.getHost = function () {\n return this._host;\n };\n /**\n * Set the port for this URL. If the provided port contains other parts of a URL (such as a\n * path or query), those parts will be added to this URL as well.\n */\n URLBuilder.prototype.setPort = function (port) {\n if (port == undefined || port === \"\") {\n this._port = undefined;\n }\n else {\n this.set(port.toString(), \"PORT\");\n }\n };\n /**\n * Get the port that has been set in this URL.\n */\n URLBuilder.prototype.getPort = function () {\n return this._port;\n };\n /**\n * Set the path for this URL. If the provided path contains a query, then it will be added to\n * this URL as well.\n */\n URLBuilder.prototype.setPath = function (path) {\n if (!path) {\n this._path = undefined;\n }\n else {\n var schemeIndex = path.indexOf(\"://\");\n if (schemeIndex !== -1) {\n var schemeStart = path.lastIndexOf(\"/\", schemeIndex);\n // Make sure to only grab the URL part of the path before setting the state back to SCHEME\n // this will handle cases such as \"/a/b/c/https://microsoft.com\" => \"https://microsoft.com\"\n this.set(schemeStart === -1 ? path : path.substr(schemeStart + 1), \"SCHEME\");\n }\n else {\n this.set(path, \"PATH\");\n }\n }\n };\n /**\n * Append the provided path to this URL's existing path. If the provided path contains a query,\n * then it will be added to this URL as well.\n */\n URLBuilder.prototype.appendPath = function (path) {\n if (path) {\n var currentPath = this.getPath();\n if (currentPath) {\n if (!currentPath.endsWith(\"/\")) {\n currentPath += \"/\";\n }\n if (path.startsWith(\"/\")) {\n path = path.substring(1);\n }\n path = currentPath + path;\n }\n this.set(path, \"PATH\");\n }\n };\n /**\n * Get the path that has been set in this URL.\n */\n URLBuilder.prototype.getPath = function () {\n return this._path;\n };\n /**\n * Set the query in this URL.\n */\n URLBuilder.prototype.setQuery = function (query) {\n if (!query) {\n this._query = undefined;\n }\n else {\n this._query = URLQuery.parse(query);\n }\n };\n /**\n * Set a query parameter with the provided name and value in this URL's query. If the provided\n * query parameter value is undefined or empty, then the query parameter will be removed if it\n * existed.\n */\n URLBuilder.prototype.setQueryParameter = function (queryParameterName, queryParameterValue) {\n if (queryParameterName) {\n if (!this._query) {\n this._query = new URLQuery();\n }\n this._query.set(queryParameterName, queryParameterValue);\n }\n };\n /**\n * Get the value of the query parameter with the provided query parameter name. If no query\n * parameter exists with the provided name, then undefined will be returned.\n */\n URLBuilder.prototype.getQueryParameterValue = function (queryParameterName) {\n return this._query ? this._query.get(queryParameterName) : undefined;\n };\n /**\n * Get the query in this URL.\n */\n URLBuilder.prototype.getQuery = function () {\n return this._query ? this._query.toString() : undefined;\n };\n /**\n * Set the parts of this URL by parsing the provided text using the provided startState.\n */\n URLBuilder.prototype.set = function (text, startState) {\n var tokenizer = new URLTokenizer(text, startState);\n while (tokenizer.next()) {\n var token = tokenizer.current();\n if (token) {\n switch (token.type) {\n case \"SCHEME\":\n this._scheme = token.text || undefined;\n break;\n case \"HOST\":\n this._host = token.text || undefined;\n break;\n case \"PORT\":\n this._port = token.text || undefined;\n break;\n case \"PATH\":\n var tokenPath = token.text || undefined;\n if (!this._path || this._path === \"/\" || tokenPath !== \"/\") {\n this._path = tokenPath;\n }\n break;\n case \"QUERY\":\n this._query = URLQuery.parse(token.text);\n break;\n default:\n throw new Error(\"Unrecognized URLTokenType: \" + token.type);\n }\n }\n }\n };\n URLBuilder.prototype.toString = function () {\n var result = \"\";\n if (this._scheme) {\n result += this._scheme + \"://\";\n }\n if (this._host) {\n result += this._host;\n }\n if (this._port) {\n result += \":\" + this._port;\n }\n if (this._path) {\n if (!this._path.startsWith(\"/\")) {\n result += \"/\";\n }\n result += this._path;\n }\n if (this._query && this._query.any()) {\n result += \"?\" + this._query.toString();\n }\n return result;\n };\n /**\n * If the provided searchValue is found in this URLBuilder, then replace it with the provided\n * replaceValue.\n */\n URLBuilder.prototype.replaceAll = function (searchValue, replaceValue) {\n if (searchValue) {\n this.setScheme(replaceAll(this.getScheme(), searchValue, replaceValue));\n this.setHost(replaceAll(this.getHost(), searchValue, replaceValue));\n this.setPort(replaceAll(this.getPort(), searchValue, replaceValue));\n this.setPath(replaceAll(this.getPath(), searchValue, replaceValue));\n this.setQuery(replaceAll(this.getQuery(), searchValue, replaceValue));\n }\n };\n URLBuilder.parse = function (text) {\n var result = new URLBuilder();\n result.set(text, \"SCHEME_OR_HOST\");\n return result;\n };\n return URLBuilder;\n}());\nexport { URLBuilder };\nvar URLToken = /** @class */ (function () {\n function URLToken(text, type) {\n this.text = text;\n this.type = type;\n }\n URLToken.scheme = function (text) {\n return new URLToken(text, \"SCHEME\");\n };\n URLToken.host = function (text) {\n return new URLToken(text, \"HOST\");\n };\n URLToken.port = function (text) {\n return new URLToken(text, \"PORT\");\n };\n URLToken.path = function (text) {\n return new URLToken(text, \"PATH\");\n };\n URLToken.query = function (text) {\n return new URLToken(text, \"QUERY\");\n };\n return URLToken;\n}());\nexport { URLToken };\n/**\n * Get whether or not the provided character (single character string) is an alphanumeric (letter or\n * digit) character.\n */\nexport function isAlphaNumericCharacter(character) {\n var characterCode = character.charCodeAt(0);\n return ((48 /* '0' */ <= characterCode && characterCode <= 57) /* '9' */ ||\n (65 /* 'A' */ <= characterCode && characterCode <= 90) /* 'Z' */ ||\n (97 /* 'a' */ <= characterCode && characterCode <= 122) /* 'z' */);\n}\n/**\n * A class that tokenizes URL strings.\n */\nvar URLTokenizer = /** @class */ (function () {\n function URLTokenizer(_text, state) {\n this._text = _text;\n this._textLength = _text ? _text.length : 0;\n this._currentState = state != undefined ? state : \"SCHEME_OR_HOST\";\n this._currentIndex = 0;\n }\n /**\n * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer\n * hasn't started or has finished tokenizing.\n */\n URLTokenizer.prototype.current = function () {\n return this._currentToken;\n };\n /**\n * Advance to the next URLToken and return whether or not a URLToken was found.\n */\n URLTokenizer.prototype.next = function () {\n if (!hasCurrentCharacter(this)) {\n this._currentToken = undefined;\n }\n else {\n switch (this._currentState) {\n case \"SCHEME\":\n nextScheme(this);\n break;\n case \"SCHEME_OR_HOST\":\n nextSchemeOrHost(this);\n break;\n case \"HOST\":\n nextHost(this);\n break;\n case \"PORT\":\n nextPort(this);\n break;\n case \"PATH\":\n nextPath(this);\n break;\n case \"QUERY\":\n nextQuery(this);\n break;\n default:\n throw new Error(\"Unrecognized URLTokenizerState: \" + this._currentState);\n }\n }\n return !!this._currentToken;\n };\n return URLTokenizer;\n}());\nexport { URLTokenizer };\n/**\n * Read the remaining characters from this Tokenizer's character stream.\n */\nfunction readRemaining(tokenizer) {\n var result = \"\";\n if (tokenizer._currentIndex < tokenizer._textLength) {\n result = tokenizer._text.substring(tokenizer._currentIndex);\n tokenizer._currentIndex = tokenizer._textLength;\n }\n return result;\n}\n/**\n * Whether or not this URLTokenizer has a current character.\n */\nfunction hasCurrentCharacter(tokenizer) {\n return tokenizer._currentIndex < tokenizer._textLength;\n}\n/**\n * Get the character in the text string at the current index.\n */\nfunction getCurrentCharacter(tokenizer) {\n return tokenizer._text[tokenizer._currentIndex];\n}\n/**\n * Advance to the character in text that is \"step\" characters ahead. If no step value is provided,\n * then step will default to 1.\n */\nfunction nextCharacter(tokenizer, step) {\n if (hasCurrentCharacter(tokenizer)) {\n if (!step) {\n step = 1;\n }\n tokenizer._currentIndex += step;\n }\n}\n/**\n * Starting with the current character, peek \"charactersToPeek\" number of characters ahead in this\n * Tokenizer's stream of characters.\n */\nfunction peekCharacters(tokenizer, charactersToPeek) {\n var endIndex = tokenizer._currentIndex + charactersToPeek;\n if (tokenizer._textLength < endIndex) {\n endIndex = tokenizer._textLength;\n }\n return tokenizer._text.substring(tokenizer._currentIndex, endIndex);\n}\n/**\n * Read characters from this Tokenizer until the end of the stream or until the provided condition\n * is false when provided the current character.\n */\nfunction readWhile(tokenizer, condition) {\n var result = \"\";\n while (hasCurrentCharacter(tokenizer)) {\n var currentCharacter = getCurrentCharacter(tokenizer);\n if (!condition(currentCharacter)) {\n break;\n }\n else {\n result += currentCharacter;\n nextCharacter(tokenizer);\n }\n }\n return result;\n}\n/**\n * Read characters from this Tokenizer until a non-alphanumeric character or the end of the\n * character stream is reached.\n */\nfunction readWhileLetterOrDigit(tokenizer) {\n return readWhile(tokenizer, function (character) { return isAlphaNumericCharacter(character); });\n}\n/**\n * Read characters from this Tokenizer until one of the provided terminating characters is read or\n * the end of the character stream is reached.\n */\nfunction readUntilCharacter(tokenizer) {\n var terminatingCharacters = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n terminatingCharacters[_i - 1] = arguments[_i];\n }\n return readWhile(tokenizer, function (character) { return terminatingCharacters.indexOf(character) === -1; });\n}\nfunction nextScheme(tokenizer) {\n var scheme = readWhileLetterOrDigit(tokenizer);\n tokenizer._currentToken = URLToken.scheme(scheme);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n }\n else {\n tokenizer._currentState = \"HOST\";\n }\n}\nfunction nextSchemeOrHost(tokenizer) {\n var schemeOrHost = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"DONE\";\n }\n else if (getCurrentCharacter(tokenizer) === \":\") {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n tokenizer._currentToken = URLToken.scheme(schemeOrHost);\n tokenizer._currentState = \"HOST\";\n }\n else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n tokenizer._currentState = \"PORT\";\n }\n }\n else {\n tokenizer._currentToken = URLToken.host(schemeOrHost);\n if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n }\n else {\n tokenizer._currentState = \"QUERY\";\n }\n }\n}\nfunction nextHost(tokenizer) {\n if (peekCharacters(tokenizer, 3) === \"://\") {\n nextCharacter(tokenizer, 3);\n }\n var host = readUntilCharacter(tokenizer, \":\", \"/\", \"?\");\n tokenizer._currentToken = URLToken.host(host);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n }\n else if (getCurrentCharacter(tokenizer) === \":\") {\n tokenizer._currentState = \"PORT\";\n }\n else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n }\n else {\n tokenizer._currentState = \"QUERY\";\n }\n}\nfunction nextPort(tokenizer) {\n if (getCurrentCharacter(tokenizer) === \":\") {\n nextCharacter(tokenizer);\n }\n var port = readUntilCharacter(tokenizer, \"/\", \"?\");\n tokenizer._currentToken = URLToken.port(port);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n }\n else if (getCurrentCharacter(tokenizer) === \"/\") {\n tokenizer._currentState = \"PATH\";\n }\n else {\n tokenizer._currentState = \"QUERY\";\n }\n}\nfunction nextPath(tokenizer) {\n var path = readUntilCharacter(tokenizer, \"?\");\n tokenizer._currentToken = URLToken.path(path);\n if (!hasCurrentCharacter(tokenizer)) {\n tokenizer._currentState = \"DONE\";\n }\n else {\n tokenizer._currentState = \"QUERY\";\n }\n}\nfunction nextQuery(tokenizer) {\n if (getCurrentCharacter(tokenizer) === \"?\") {\n nextCharacter(tokenizer);\n }\n var query = readRemaining(tokenizer);\n tokenizer._currentToken = URLToken.query(query);\n tokenizer._currentState = \"DONE\";\n}\n//# sourceMappingURL=url.js.map","//packer version\n\n(function(global) {\n // *************************************************************\n // LiteGraph CLASS *******\n // *************************************************************\n\n /**\n * The Global Scope. It contains all the registered node classes.\n *\n * @class LiteGraph\n * @constructor\n */\n\n var LiteGraph = (global.LiteGraph = {\n VERSION: 0.4,\n\n CANVAS_GRID_SIZE: 10,\n\n NODE_TITLE_HEIGHT: 30,\n NODE_TITLE_TEXT_Y: 20,\n NODE_SLOT_HEIGHT: 20,\n NODE_WIDGET_HEIGHT: 20,\n NODE_WIDTH: 140,\n NODE_MIN_WIDTH: 50,\n NODE_COLLAPSED_RADIUS: 10,\n NODE_COLLAPSED_WIDTH: 80,\n NODE_TITLE_COLOR: \"#999\",\n NODE_SELECTED_TITLE_COLOR: \"#FFF\",\n NODE_TEXT_SIZE: 14,\n NODE_TEXT_COLOR: \"#AAA\",\n NODE_SUBTEXT_SIZE: 12,\n NODE_DEFAULT_COLOR: \"#333\",\n NODE_DEFAULT_BGCOLOR: \"#353535\",\n NODE_DEFAULT_BOXCOLOR: \"#666\",\n NODE_DEFAULT_SHAPE: \"box\",\n NODE_BOX_OUTLINE_COLOR: \"#FFF\",\n DEFAULT_SHADOW_COLOR: \"rgba(0,0,0,0.5)\",\n DEFAULT_GROUP_FONT: 24,\n\n WIDGET_BGCOLOR: \"#222\",\n WIDGET_OUTLINE_COLOR: \"#666\",\n WIDGET_TEXT_COLOR: \"#DDD\",\n WIDGET_SECONDARY_TEXT_COLOR: \"#999\",\n\n LINK_COLOR: \"#9A9\",\n EVENT_LINK_COLOR: \"#A86\",\n CONNECTING_LINK_COLOR: \"#AFA\",\n\n MAX_NUMBER_OF_NODES: 1000, //avoid infinite loops\n DEFAULT_POSITION: [100, 100], //default node position\n VALID_SHAPES: [\"default\", \"box\", \"round\", \"card\"], //,\"circle\"\n\n //shapes are used for nodes but also for slots\n BOX_SHAPE: 1,\n ROUND_SHAPE: 2,\n CIRCLE_SHAPE: 3,\n CARD_SHAPE: 4,\n ARROW_SHAPE: 5,\n\n //enums\n INPUT: 1,\n OUTPUT: 2,\n\n EVENT: -1, //for outputs\n ACTION: -1, //for inputs\n\n ALWAYS: 0,\n ON_EVENT: 1,\n NEVER: 2,\n ON_TRIGGER: 3,\n\n UP: 1,\n DOWN: 2,\n LEFT: 3,\n RIGHT: 4,\n CENTER: 5,\n\n STRAIGHT_LINK: 0,\n LINEAR_LINK: 1,\n SPLINE_LINK: 2,\n\n NORMAL_TITLE: 0,\n NO_TITLE: 1,\n TRANSPARENT_TITLE: 2,\n AUTOHIDE_TITLE: 3,\n\n proxy: null, //used to redirect calls\n node_images_path: \"\",\n\n debug: false,\n catch_exceptions: true,\n throw_errors: true,\n allow_scripts: false, //if set to true some nodes like Formula would be allowed to evaluate code that comes from unsafe sources (like node configuration), which could lead to exploits\n registered_node_types: {}, //nodetypes by string\n node_types_by_file_extension: {}, //used for dropping files in the canvas\n Nodes: {}, //node types by classname\n\t\tGlobals: {}, //used to store vars between graphs\n\n searchbox_extras: {}, //used to add extra features to the search box\n auto_sort_node_types: false, // If set to true, will automatically sort node types / categories in the context menus\n\n /**\n * Register a node class so it can be listed when the user wants to create a new one\n * @method registerNodeType\n * @param {String} type name of the node and path\n * @param {Class} base_class class containing the structure of a node\n */\n\n registerNodeType: function(type, base_class) {\n if (!base_class.prototype) {\n throw \"Cannot register a simple object, it must be a class with a prototype\";\n }\n base_class.type = type;\n\n if (LiteGraph.debug) {\n console.log(\"Node registered: \" + type);\n }\n\n var categories = type.split(\"/\");\n var classname = base_class.name;\n\n var pos = type.lastIndexOf(\"/\");\n base_class.category = type.substr(0, pos);\n\n if (!base_class.title) {\n base_class.title = classname;\n }\n //info.name = name.substr(pos+1,name.length - pos);\n\n //extend class\n if (base_class.prototype) {\n //is a class\n for (var i in LGraphNode.prototype) {\n if (!base_class.prototype[i]) {\n base_class.prototype[i] = LGraphNode.prototype[i];\n }\n }\n }\n\n var prev = this.registered_node_types[type];\n\t\t\tif(prev)\n\t\t\t\tconsole.log(\"replacing node type: \" + type);\n\t\t\telse\n\t\t\t{\n\t\t\t\tif( !Object.hasOwnProperty( base_class.prototype, \"shape\") )\n\t\t\t\tObject.defineProperty(base_class.prototype, \"shape\", {\n\t\t\t\t\tset: function(v) {\n\t\t\t\t\t\tswitch (v) {\n\t\t\t\t\t\t\tcase \"default\":\n\t\t\t\t\t\t\t\tdelete this._shape;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"box\":\n\t\t\t\t\t\t\t\tthis._shape = LiteGraph.BOX_SHAPE;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"round\":\n\t\t\t\t\t\t\t\tthis._shape = LiteGraph.ROUND_SHAPE;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"circle\":\n\t\t\t\t\t\t\t\tthis._shape = LiteGraph.CIRCLE_SHAPE;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"card\":\n\t\t\t\t\t\t\t\tthis._shape = LiteGraph.CARD_SHAPE;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tthis._shape = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tget: function(v) {\n\t\t\t\t\t\treturn this._shape;\n\t\t\t\t\t},\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true\n\t\t\t\t});\n\n\t\t\t\t//warnings\n\t\t\t\tif (base_class.prototype.onPropertyChange) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\"LiteGraph node class \" +\n\t\t\t\t\t\t\ttype +\n\t\t\t\t\t\t\t\" has onPropertyChange method, it must be called onPropertyChanged with d at the end\"\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t//used to know which nodes create when dragging files to the canvas\n\t\t\t\tif (base_class.supported_extensions) {\n\t\t\t\t\tfor (var i in base_class.supported_extensions) {\n\t\t\t\t\t\tvar ext = base_class.supported_extensions[i];\n\t\t\t\t\t\tif(ext && ext.constructor === String)\n\t\t\t\t\t\t\tthis.node_types_by_file_extension[ ext.toLowerCase() ] = base_class;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n this.registered_node_types[type] = base_class;\n if (base_class.constructor.name) {\n this.Nodes[classname] = base_class;\n }\n if (LiteGraph.onNodeTypeRegistered) {\n LiteGraph.onNodeTypeRegistered(type, base_class);\n }\n if (prev && LiteGraph.onNodeTypeReplaced) {\n LiteGraph.onNodeTypeReplaced(type, base_class, prev);\n }\n\n //warnings\n if (base_class.prototype.onPropertyChange) {\n console.warn(\n \"LiteGraph node class \" +\n type +\n \" has onPropertyChange method, it must be called onPropertyChanged with d at the end\"\n );\n }\n\n\t\t\t//used to know which nodes create when dragging files to the canvas\n if (base_class.supported_extensions) {\n for (var i=0; i < base_class.supported_extensions.length; i++) {\n\t\t\t\t\tvar ext = base_class.supported_extensions[i];\n\t\t\t\t\tif(ext && ext.constructor === String)\n\t this.node_types_by_file_extension[ ext.toLowerCase() ] = base_class;\n }\n }\n },\n\n /**\n * removes a node type from the system\n * @method unregisterNodeType\n * @param {String|Object} type name of the node or the node constructor itself\n */\n unregisterNodeType: function(type) {\n\t\t\tvar base_class = type.constructor === String ? this.registered_node_types[type] : type;\n\t\t\tif(!base_class)\n\t\t\t\tthrow(\"node type not found: \" + type );\n\t\t\tdelete this.registered_node_types[base_class.type];\n\t\t\tif(base_class.constructor.name)\n\t\t\t\tdelete this.Nodes[base_class.constructor.name];\n\t\t},\n\n /**\n * Create a new nodetype by passing a function, it wraps it with a proper class and generates inputs according to the parameters of the function.\n * Useful to wrap simple methods that do not require properties, and that only process some input to generate an output.\n * @method wrapFunctionAsNode\n * @param {String} name node name with namespace (p.e.: 'math/sum')\n * @param {Function} func\n * @param {Array} param_types [optional] an array containing the type of every parameter, otherwise parameters will accept any type\n * @param {String} return_type [optional] string with the return type, otherwise it will be generic\n * @param {Object} properties [optional] properties to be configurable\n */\n wrapFunctionAsNode: function(\n name,\n func,\n param_types,\n return_type,\n properties\n ) {\n var params = Array(func.length);\n var code = \"\";\n var names = LiteGraph.getParameterNames(func);\n for (var i = 0; i < names.length; ++i) {\n code +=\n \"this.addInput('\" +\n names[i] +\n \"',\" +\n (param_types && param_types[i]\n ? \"'\" + param_types[i] + \"'\"\n : \"0\") +\n \");\\n\";\n }\n code +=\n \"this.addOutput('out',\" +\n (return_type ? \"'\" + return_type + \"'\" : 0) +\n \");\\n\";\n if (properties) {\n code +=\n \"this.properties = \" + JSON.stringify(properties) + \";\\n\";\n }\n var classobj = Function(code);\n classobj.title = name.split(\"/\").pop();\n classobj.desc = \"Generated from \" + func.name;\n classobj.prototype.onExecute = function onExecute() {\n for (var i = 0; i < params.length; ++i) {\n params[i] = this.getInputData(i);\n }\n var r = func.apply(this, params);\n this.setOutputData(0, r);\n };\n this.registerNodeType(name, classobj);\n },\n\n /**\n * Removes all previously registered node's types\n */\n clearRegisteredTypes: function() {\n this.registered_node_types = {};\n this.node_types_by_file_extension = {};\n this.Nodes = {};\n this.searchbox_extras = {};\n },\n\n /**\n * Adds this method to all nodetypes, existing and to be created\n * (You can add it to LGraphNode.prototype but then existing node types wont have it)\n * @method addNodeMethod\n * @param {Function} func\n */\n addNodeMethod: function(name, func) {\n LGraphNode.prototype[name] = func;\n for (var i in this.registered_node_types) {\n var type = this.registered_node_types[i];\n if (type.prototype[name]) {\n type.prototype[\"_\" + name] = type.prototype[name];\n } //keep old in case of replacing\n type.prototype[name] = func;\n }\n },\n\n /**\n * Create a node of a given type with a name. The node is not attached to any graph yet.\n * @method createNode\n * @param {String} type full name of the node class. p.e. \"math/sin\"\n * @param {String} name a name to distinguish from other nodes\n * @param {Object} options to set options\n */\n\n createNode: function(type, title, options) {\n var base_class = this.registered_node_types[type];\n if (!base_class) {\n if (LiteGraph.debug) {\n console.log(\n 'GraphNode type \"' + type + '\" not registered.'\n );\n }\n return null;\n }\n\n var prototype = base_class.prototype || base_class;\n\n title = title || base_class.title || type;\n\n var node = null;\n\n if (LiteGraph.catch_exceptions) {\n try {\n node = new base_class(title);\n } catch (err) {\n console.error(err);\n return null;\n }\n } else {\n node = new base_class(title);\n }\n\n node.type = type;\n\n if (!node.title && title) {\n node.title = title;\n }\n if (!node.properties) {\n node.properties = {};\n }\n if (!node.properties_info) {\n node.properties_info = [];\n }\n if (!node.flags) {\n node.flags = {};\n }\n if (!node.size) {\n node.size = node.computeSize();\n\t\t\t\t//call onresize?\n }\n if (!node.pos) {\n node.pos = LiteGraph.DEFAULT_POSITION.concat();\n }\n if (!node.mode) {\n node.mode = LiteGraph.ALWAYS;\n }\n\n //extra options\n if (options) {\n for (var i in options) {\n node[i] = options[i];\n }\n }\n\n return node;\n },\n\n /**\n * Returns a registered node type with a given name\n * @method getNodeType\n * @param {String} type full name of the node class. p.e. \"math/sin\"\n * @return {Class} the node class\n */\n getNodeType: function(type) {\n return this.registered_node_types[type];\n },\n\n /**\n * Returns a list of node types matching one category\n * @method getNodeType\n * @param {String} category category name\n * @return {Array} array with all the node classes\n */\n\n getNodeTypesInCategory: function(category, filter) {\n var r = [];\n for (var i in this.registered_node_types) {\n var type = this.registered_node_types[i];\n if (type.filter != filter) {\n continue;\n }\n\n if (category == \"\") {\n if (type.category == null) {\n r.push(type);\n }\n } else if (type.category == category) {\n r.push(type);\n }\n }\n\n if (this.auto_sort_node_types) {\n r.sort((a, b) => a.title.localeCompare(b.title));\n }\n\n return r;\n },\n\n /**\n * Returns a list with all the node type categories\n * @method getNodeTypesCategories\n * @param {String} filter only nodes with ctor.filter equal can be shown\n * @return {Array} array with all the names of the categories\n */\n getNodeTypesCategories: function( filter ) {\n var categories = { \"\": 1 };\n for (var i in this.registered_node_types) {\n\t\t\t\tvar type = this.registered_node_types[i];\n if ( type.category && !type.skip_list )\n {\n\t\t\t\t\tif(type.filter != filter)\n\t\t\t\t\t\tcontinue;\n categories[type.category] = 1;\n }\n }\n var result = [];\n for (var i in categories) {\n result.push(i);\n }\n return this.auto_sort_node_types ? result.sort() : result;\n },\n\n //debug purposes: reloads all the js scripts that matches a wildcard\n reloadNodes: function(folder_wildcard) {\n var tmp = document.getElementsByTagName(\"script\");\n //weird, this array changes by its own, so we use a copy\n var script_files = [];\n for (var i=0; i < tmp.length; i++) {\n script_files.push(tmp[i]);\n }\n\n var docHeadObj = document.getElementsByTagName(\"head\")[0];\n folder_wildcard = document.location.href + folder_wildcard;\n\n for (var i=0; i < script_files.length; i++) {\n var src = script_files[i].src;\n if (\n !src ||\n src.substr(0, folder_wildcard.length) != folder_wildcard\n ) {\n continue;\n }\n\n try {\n if (LiteGraph.debug) {\n console.log(\"Reloading: \" + src);\n }\n var dynamicScript = document.createElement(\"script\");\n dynamicScript.type = \"text/javascript\";\n dynamicScript.src = src;\n docHeadObj.appendChild(dynamicScript);\n docHeadObj.removeChild(script_files[i]);\n } catch (err) {\n if (LiteGraph.throw_errors) {\n throw err;\n }\n if (LiteGraph.debug) {\n console.log(\"Error while reloading \" + src);\n }\n }\n }\n\n if (LiteGraph.debug) {\n console.log(\"Nodes reloaded\");\n }\n },\n\n //separated just to improve if it doesn't work\n cloneObject: function(obj, target) {\n if (obj == null) {\n return null;\n }\n var r = JSON.parse(JSON.stringify(obj));\n if (!target) {\n return r;\n }\n\n for (var i in r) {\n target[i] = r[i];\n }\n return target;\n },\n\n /**\n * Returns if the types of two slots are compatible (taking into account wildcards, etc)\n * @method isValidConnection\n * @param {String} type_a\n * @param {String} type_b\n * @return {Boolean} true if they can be connected\n */\n isValidConnection: function(type_a, type_b) {\n if (\n !type_a || //generic output\n !type_b || //generic input\n type_a == type_b || //same type (is valid for triggers)\n (type_a == LiteGraph.EVENT && type_b == LiteGraph.ACTION)\n ) {\n return true;\n }\n\n // Enforce string type to handle toLowerCase call (-1 number not ok)\n type_a = String(type_a);\n type_b = String(type_b);\n type_a = type_a.toLowerCase();\n type_b = type_b.toLowerCase();\n\n // For nodes supporting multiple connection types\n if (type_a.indexOf(\",\") == -1 && type_b.indexOf(\",\") == -1) {\n return type_a == type_b;\n }\n\n // Check all permutations to see if one is valid\n var supported_types_a = type_a.split(\",\");\n var supported_types_b = type_b.split(\",\");\n for (var i = 0; i < supported_types_a.length; ++i) {\n for (var j = 0; j < supported_types_b.length; ++j) {\n if (supported_types_a[i] == supported_types_b[j]) {\n return true;\n }\n }\n }\n\n return false;\n },\n\n /**\n * Register a string in the search box so when the user types it it will recommend this node\n * @method registerSearchboxExtra\n * @param {String} node_type the node recommended\n * @param {String} description text to show next to it\n * @param {Object} data it could contain info of how the node should be configured\n * @return {Boolean} true if they can be connected\n */\n registerSearchboxExtra: function(node_type, description, data) {\n this.searchbox_extras[description.toLowerCase()] = {\n type: node_type,\n desc: description,\n data: data\n };\n },\n\n /**\n * Wrapper to load files (from url using fetch or from file using FileReader)\n * @method fetchFile\n * @param {String|File|Blob} url the url of the file (or the file itself)\n * @param {String} type an string to know how to fetch it: \"text\",\"arraybuffer\",\"json\",\"blob\"\n * @param {Function} on_complete callback(data)\n * @param {Function} on_error in case of an error\n * @return {FileReader|Promise} returns the object used to \n */\n\t\tfetchFile: function( url, type, on_complete, on_error ) {\n\t\t\tvar that = this;\n\t\t\tif(!url)\n\t\t\t\treturn null;\n\n\t\t\ttype = type || \"text\";\n\t\t\tif( url.constructor === String )\n\t\t\t{\n\t\t\t\tif (url.substr(0, 4) == \"http\" && LiteGraph.proxy) {\n\t\t\t\t\turl = LiteGraph.proxy + url.substr(url.indexOf(\":\") + 3);\n\t\t\t\t}\n\t\t\t\treturn fetch(url)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tif(!response.ok)\n\t\t\t\t\t\t throw new Error(\"File not found\"); //it will be catch below\n\t\t\t\t\tif(type == \"arraybuffer\")\n\t\t\t\t\t\treturn response.arrayBuffer();\n\t\t\t\t\telse if(type == \"text\" || type == \"string\")\n\t\t\t\t\t\treturn response.text();\n\t\t\t\t\telse if(type == \"json\")\n\t\t\t\t\t\treturn response.json();\n\t\t\t\t\telse if(type == \"blob\")\n\t\t\t\t\t\treturn response.blob();\n\t\t\t\t})\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif(on_complete)\n\t\t\t\t\t\ton_complete(data);\n\t\t\t\t})\n\t\t\t\t.catch(function(error) {\n\t\t\t\t\tconsole.error(\"error fetching file:\",url);\n\t\t\t\t\tif(on_error)\n\t\t\t\t\t\ton_error(error);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if( url.constructor === File || url.constructor === Blob)\n\t\t\t{\n\t\t\t\tvar reader = new FileReader();\n\t\t\t\treader.onload = function(e)\n\t\t\t\t{\n\t\t\t\t\tvar v = e.target.result;\n\t\t\t\t\tif( type == \"json\" )\n\t\t\t\t\t\tv = JSON.parse(v);\n\t\t\t\t\tif(on_complete)\n\t\t\t\t\t\ton_complete(v);\n\t\t\t\t}\n\t\t\t\tif(type == \"arraybuffer\")\n\t\t\t\t\treturn reader.readAsArrayBuffer(url);\n\t\t\t\telse if(type == \"text\" || type == \"json\")\n\t\t\t\t\treturn reader.readAsText(url);\n\t\t\t\telse if(type == \"blob\")\n\t\t\t\t\treturn reader.readAsBinaryString(url);\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n });\n\n //timer that works everywhere\n if (typeof performance != \"undefined\") {\n LiteGraph.getTime = performance.now.bind(performance);\n } else if (typeof Date != \"undefined\" && Date.now) {\n LiteGraph.getTime = Date.now.bind(Date);\n } else if (typeof process != \"undefined\") {\n LiteGraph.getTime = function() {\n var t = process.hrtime();\n return t[0] * 0.001 + t[1] * 1e-6;\n };\n } else {\n LiteGraph.getTime = function getTime() {\n return new Date().getTime();\n };\n }\n\n //*********************************************************************************\n // LGraph CLASS\n //*********************************************************************************\n\n /**\n * LGraph is the class that contain a full graph. We instantiate one and add nodes to it, and then we can run the execution loop.\n\t * supported callbacks:\n\t\t+ onNodeAdded: when a new node is added to the graph\n\t\t+ onNodeRemoved: when a node inside this graph is removed\n\t\t+ onNodeConnectionChange: some connection has changed in the graph (connected or disconnected)\n *\n * @class LGraph\n * @constructor\n * @param {Object} o data from previous serialization [optional]\n */\n\n function LGraph(o) {\n if (LiteGraph.debug) {\n console.log(\"Graph created\");\n }\n this.list_of_graphcanvas = null;\n this.clear();\n\n if (o) {\n this.configure(o);\n }\n }\n\n global.LGraph = LiteGraph.LGraph = LGraph;\n\n //default supported types\n LGraph.supported_types = [\"number\", \"string\", \"boolean\"];\n\n //used to know which types of connections support this graph (some graphs do not allow certain types)\n LGraph.prototype.getSupportedTypes = function() {\n return this.supported_types || LGraph.supported_types;\n };\n\n LGraph.STATUS_STOPPED = 1;\n LGraph.STATUS_RUNNING = 2;\n\n /**\n * Removes all nodes from this graph\n * @method clear\n */\n\n LGraph.prototype.clear = function() {\n this.stop();\n this.status = LGraph.STATUS_STOPPED;\n\n this.last_node_id = 0;\n this.last_link_id = 0;\n\n this._version = -1; //used to detect changes\n\n //safe clear\n if (this._nodes) {\n for (var i = 0; i < this._nodes.length; ++i) {\n var node = this._nodes[i];\n if (node.onRemoved) {\n node.onRemoved();\n }\n }\n }\n\n //nodes\n this._nodes = [];\n this._nodes_by_id = {};\n this._nodes_in_order = []; //nodes sorted in execution order\n this._nodes_executable = null; //nodes that contain onExecute sorted in execution order\n\n //other scene stuff\n this._groups = [];\n\n //links\n this.links = {}; //container with all the links\n\n //iterations\n this.iteration = 0;\n\n //custom data\n this.config = {};\n\t\tthis.vars = {};\n\t\tthis.extra = {}; //to store custom data\n\n //timing\n this.globaltime = 0;\n this.runningtime = 0;\n this.fixedtime = 0;\n this.fixedtime_lapse = 0.01;\n this.elapsed_time = 0.01;\n this.last_update_time = 0;\n this.starttime = 0;\n\n this.catch_errors = true;\n\n //subgraph_data\n this.inputs = {};\n this.outputs = {};\n\n //notify canvas to redraw\n this.change();\n\n this.sendActionToCanvas(\"clear\");\n };\n\n /**\n * Attach Canvas to this graph\n * @method attachCanvas\n * @param {GraphCanvas} graph_canvas\n */\n\n LGraph.prototype.attachCanvas = function(graphcanvas) {\n if (graphcanvas.constructor != LGraphCanvas) {\n throw \"attachCanvas expects a LGraphCanvas instance\";\n }\n if (graphcanvas.graph && graphcanvas.graph != this) {\n graphcanvas.graph.detachCanvas(graphcanvas);\n }\n\n graphcanvas.graph = this;\n\n if (!this.list_of_graphcanvas) {\n this.list_of_graphcanvas = [];\n }\n this.list_of_graphcanvas.push(graphcanvas);\n };\n\n /**\n * Detach Canvas from this graph\n * @method detachCanvas\n * @param {GraphCanvas} graph_canvas\n */\n LGraph.prototype.detachCanvas = function(graphcanvas) {\n if (!this.list_of_graphcanvas) {\n return;\n }\n\n var pos = this.list_of_graphcanvas.indexOf(graphcanvas);\n if (pos == -1) {\n return;\n }\n graphcanvas.graph = null;\n this.list_of_graphcanvas.splice(pos, 1);\n };\n\n /**\n * Starts running this graph every interval milliseconds.\n * @method start\n * @param {number} interval amount of milliseconds between executions, if 0 then it renders to the monitor refresh rate\n */\n\n LGraph.prototype.start = function(interval) {\n if (this.status == LGraph.STATUS_RUNNING) {\n return;\n }\n this.status = LGraph.STATUS_RUNNING;\n\n if (this.onPlayEvent) {\n this.onPlayEvent();\n }\n\n this.sendEventToAllNodes(\"onStart\");\n\n //launch\n this.starttime = LiteGraph.getTime();\n this.last_update_time = this.starttime;\n interval = interval || 0;\n var that = this;\n\n\t\t//execute once per frame\n if ( interval == 0 && typeof window != \"undefined\" && window.requestAnimationFrame ) {\n function on_frame() {\n if (that.execution_timer_id != -1) {\n return;\n }\n window.requestAnimationFrame(on_frame);\n\t\t\t\tif(that.onBeforeStep)\n\t\t\t\t\tthat.onBeforeStep();\n that.runStep(1, !that.catch_errors);\n\t\t\t\tif(that.onAfterStep)\n\t\t\t\t\tthat.onAfterStep();\n }\n this.execution_timer_id = -1;\n on_frame();\n } else { //execute every 'interval' ms\n this.execution_timer_id = setInterval(function() {\n //execute\n\t\t\t\tif(that.onBeforeStep)\n\t\t\t\t\tthat.onBeforeStep();\n that.runStep(1, !that.catch_errors);\n\t\t\t\tif(that.onAfterStep)\n\t\t\t\t\tthat.onAfterStep();\n }, interval);\n }\n };\n\n /**\n * Stops the execution loop of the graph\n * @method stop execution\n */\n\n LGraph.prototype.stop = function() {\n if (this.status == LGraph.STATUS_STOPPED) {\n return;\n }\n\n this.status = LGraph.STATUS_STOPPED;\n\n if (this.onStopEvent) {\n this.onStopEvent();\n }\n\n if (this.execution_timer_id != null) {\n if (this.execution_timer_id != -1) {\n clearInterval(this.execution_timer_id);\n }\n this.execution_timer_id = null;\n }\n\n this.sendEventToAllNodes(\"onStop\");\n };\n\n /**\n * Run N steps (cycles) of the graph\n * @method runStep\n * @param {number} num number of steps to run, default is 1\n * @param {Boolean} do_not_catch_errors [optional] if you want to try/catch errors \n * @param {number} limit max number of nodes to execute (used to execute from start to a node)\n */\n\n LGraph.prototype.runStep = function(num, do_not_catch_errors, limit ) {\n num = num || 1;\n\n var start = LiteGraph.getTime();\n this.globaltime = 0.001 * (start - this.starttime);\n\n var nodes = this._nodes_executable\n ? this._nodes_executable\n : this._nodes;\n if (!nodes) {\n return;\n }\n\n\t\tlimit = limit || nodes.length;\n\n if (do_not_catch_errors) {\n //iterations\n for (var i = 0; i < num; i++) {\n for (var j = 0; j < limit; ++j) {\n var node = nodes[j];\n if (node.mode == LiteGraph.ALWAYS && node.onExecute) {\n node.onExecute(); //hard to send elapsed time\n }\n }\n\n this.fixedtime += this.fixedtime_lapse;\n if (this.onExecuteStep) {\n this.onExecuteStep();\n }\n }\n\n if (this.onAfterExecute) {\n this.onAfterExecute();\n }\n } else {\n try {\n //iterations\n for (var i = 0; i < num; i++) {\n for (var j = 0; j < limit; ++j) {\n var node = nodes[j];\n if (node.mode == LiteGraph.ALWAYS && node.onExecute) {\n node.onExecute();\n }\n }\n\n this.fixedtime += this.fixedtime_lapse;\n if (this.onExecuteStep) {\n this.onExecuteStep();\n }\n }\n\n if (this.onAfterExecute) {\n this.onAfterExecute();\n }\n this.errors_in_execution = false;\n } catch (err) {\n this.errors_in_execution = true;\n if (LiteGraph.throw_errors) {\n throw err;\n }\n if (LiteGraph.debug) {\n console.log(\"Error during execution: \" + err);\n }\n this.stop();\n }\n }\n\n var now = LiteGraph.getTime();\n var elapsed = now - start;\n if (elapsed == 0) {\n elapsed = 1;\n }\n this.execution_time = 0.001 * elapsed;\n this.globaltime += 0.001 * elapsed;\n this.iteration += 1;\n this.elapsed_time = (now - this.last_update_time) * 0.001;\n this.last_update_time = now;\n };\n\n /**\n * Updates the graph execution order according to relevance of the nodes (nodes with only outputs have more relevance than\n * nodes with only inputs.\n * @method updateExecutionOrder\n */\n LGraph.prototype.updateExecutionOrder = function() {\n this._nodes_in_order = this.computeExecutionOrder(false);\n this._nodes_executable = [];\n for (var i = 0; i < this._nodes_in_order.length; ++i) {\n if (this._nodes_in_order[i].onExecute) {\n this._nodes_executable.push(this._nodes_in_order[i]);\n }\n }\n };\n\n //This is more internal, it computes the executable nodes in order and returns it\n LGraph.prototype.computeExecutionOrder = function(\n only_onExecute,\n set_level\n ) {\n var L = [];\n var S = [];\n var M = {};\n var visited_links = {}; //to avoid repeating links\n var remaining_links = {}; //to a\n\n //search for the nodes without inputs (starting nodes)\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n var node = this._nodes[i];\n if (only_onExecute && !node.onExecute) {\n continue;\n }\n\n M[node.id] = node; //add to pending nodes\n\n var num = 0; //num of input connections\n if (node.inputs) {\n for (var j = 0, l2 = node.inputs.length; j < l2; j++) {\n if (node.inputs[j] && node.inputs[j].link != null) {\n num += 1;\n }\n }\n }\n\n if (num == 0) {\n //is a starting node\n S.push(node);\n if (set_level) {\n node._level = 1;\n }\n } //num of input links\n else {\n if (set_level) {\n node._level = 0;\n }\n remaining_links[node.id] = num;\n }\n }\n\n while (true) {\n if (S.length == 0) {\n break;\n }\n\n //get an starting node\n var node = S.shift();\n L.push(node); //add to ordered list\n delete M[node.id]; //remove from the pending nodes\n\n if (!node.outputs) {\n continue;\n }\n\n //for every output\n for (var i = 0; i < node.outputs.length; i++) {\n var output = node.outputs[i];\n //not connected\n if (\n output == null ||\n output.links == null ||\n output.links.length == 0\n ) {\n continue;\n }\n\n //for every connection\n for (var j = 0; j < output.links.length; j++) {\n var link_id = output.links[j];\n var link = this.links[link_id];\n if (!link) {\n continue;\n }\n\n //already visited link (ignore it)\n if (visited_links[link.id]) {\n continue;\n }\n\n var target_node = this.getNodeById(link.target_id);\n if (target_node == null) {\n visited_links[link.id] = true;\n continue;\n }\n\n if (\n set_level &&\n (!target_node._level ||\n target_node._level <= node._level)\n ) {\n target_node._level = node._level + 1;\n }\n\n visited_links[link.id] = true; //mark as visited\n remaining_links[target_node.id] -= 1; //reduce the number of links remaining\n if (remaining_links[target_node.id] == 0) {\n S.push(target_node);\n } //if no more links, then add to starters array\n }\n }\n }\n\n //the remaining ones (loops)\n for (var i in M) {\n L.push(M[i]);\n }\n\n if (L.length != this._nodes.length && LiteGraph.debug) {\n console.warn(\"something went wrong, nodes missing\");\n }\n\n var l = L.length;\n\n //save order number in the node\n for (var i = 0; i < l; ++i) {\n L[i].order = i;\n }\n\n //sort now by priority\n L = L.sort(function(A, B) {\n var Ap = A.constructor.priority || A.priority || 0;\n var Bp = B.constructor.priority || B.priority || 0;\n if (Ap == Bp) {\n //if same priority, sort by order\n return A.order - B.order;\n }\n return Ap - Bp; //sort by priority\n });\n\n //save order number in the node, again...\n for (var i = 0; i < l; ++i) {\n L[i].order = i;\n }\n\n return L;\n };\n\n /**\n * Returns all the nodes that could affect this one (ancestors) by crawling all the inputs recursively.\n * It doesn't include the node itself\n * @method getAncestors\n * @return {Array} an array with all the LGraphNodes that affect this node, in order of execution\n */\n LGraph.prototype.getAncestors = function(node) {\n var ancestors = [];\n var pending = [node];\n var visited = {};\n\n while (pending.length) {\n var current = pending.shift();\n if (!current.inputs) {\n continue;\n }\n if (!visited[current.id] && current != node) {\n visited[current.id] = true;\n ancestors.push(current);\n }\n\n for (var i = 0; i < current.inputs.length; ++i) {\n var input = current.getInputNode(i);\n if (input && ancestors.indexOf(input) == -1) {\n pending.push(input);\n }\n }\n }\n\n ancestors.sort(function(a, b) {\n return a.order - b.order;\n });\n return ancestors;\n };\n\n /**\n * Positions every node in a more readable manner\n * @method arrange\n */\n LGraph.prototype.arrange = function(margin) {\n margin = margin || 100;\n\n var nodes = this.computeExecutionOrder(false, true);\n var columns = [];\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n var col = node._level || 1;\n if (!columns[col]) {\n columns[col] = [];\n }\n columns[col].push(node);\n }\n\n var x = margin;\n\n for (var i = 0; i < columns.length; ++i) {\n var column = columns[i];\n if (!column) {\n continue;\n }\n var max_size = 100;\n var y = margin + LiteGraph.NODE_TITLE_HEIGHT;\n for (var j = 0; j < column.length; ++j) {\n var node = column[j];\n node.pos[0] = x;\n node.pos[1] = y;\n if (node.size[0] > max_size) {\n max_size = node.size[0];\n }\n y += node.size[1] + margin + LiteGraph.NODE_TITLE_HEIGHT;\n }\n x += max_size + margin;\n }\n\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * Returns the amount of time the graph has been running in milliseconds\n * @method getTime\n * @return {number} number of milliseconds the graph has been running\n */\n LGraph.prototype.getTime = function() {\n return this.globaltime;\n };\n\n /**\n * Returns the amount of time accumulated using the fixedtime_lapse var. This is used in context where the time increments should be constant\n * @method getFixedTime\n * @return {number} number of milliseconds the graph has been running\n */\n\n LGraph.prototype.getFixedTime = function() {\n return this.fixedtime;\n };\n\n /**\n * Returns the amount of time it took to compute the latest iteration. Take into account that this number could be not correct\n * if the nodes are using graphical actions\n * @method getElapsedTime\n * @return {number} number of milliseconds it took the last cycle\n */\n\n LGraph.prototype.getElapsedTime = function() {\n return this.elapsed_time;\n };\n\n /**\n * Sends an event to all the nodes, useful to trigger stuff\n * @method sendEventToAllNodes\n * @param {String} eventname the name of the event (function to be called)\n * @param {Array} params parameters in array format\n */\n LGraph.prototype.sendEventToAllNodes = function(eventname, params, mode) {\n mode = mode || LiteGraph.ALWAYS;\n\n var nodes = this._nodes_in_order ? this._nodes_in_order : this._nodes;\n if (!nodes) {\n return;\n }\n\n for (var j = 0, l = nodes.length; j < l; ++j) {\n var node = nodes[j];\n\n if (\n node.constructor === LiteGraph.Subgraph &&\n eventname != \"onExecute\"\n ) {\n if (node.mode == mode) {\n node.sendEventToAllNodes(eventname, params, mode);\n }\n continue;\n }\n\n if (!node[eventname] || node.mode != mode) {\n continue;\n }\n if (params === undefined) {\n node[eventname]();\n } else if (params && params.constructor === Array) {\n node[eventname].apply(node, params);\n } else {\n node[eventname](params);\n }\n }\n };\n\n LGraph.prototype.sendActionToCanvas = function(action, params) {\n if (!this.list_of_graphcanvas) {\n return;\n }\n\n for (var i = 0; i < this.list_of_graphcanvas.length; ++i) {\n var c = this.list_of_graphcanvas[i];\n if (c[action]) {\n c[action].apply(c, params);\n }\n }\n };\n\n /**\n * Adds a new node instance to this graph\n * @method add\n * @param {LGraphNode} node the instance of the node\n */\n\n LGraph.prototype.add = function(node, skip_compute_order) {\n if (!node) {\n return;\n }\n\n //groups\n if (node.constructor === LGraphGroup) {\n this._groups.push(node);\n this.setDirtyCanvas(true);\n this.change();\n node.graph = this;\n this._version++;\n return;\n }\n\n //nodes\n if (node.id != -1 && this._nodes_by_id[node.id] != null) {\n console.warn(\n \"LiteGraph: there is already a node with this ID, changing it\"\n );\n node.id = ++this.last_node_id;\n }\n\n if (this._nodes.length >= LiteGraph.MAX_NUMBER_OF_NODES) {\n throw \"LiteGraph: max number of nodes in a graph reached\";\n }\n\n //give him an id\n if (node.id == null || node.id == -1) {\n node.id = ++this.last_node_id;\n } else if (this.last_node_id < node.id) {\n this.last_node_id = node.id;\n }\n\n node.graph = this;\n this._version++;\n\n this._nodes.push(node);\n this._nodes_by_id[node.id] = node;\n\n if (node.onAdded) {\n node.onAdded(this);\n }\n\n if (this.config.align_to_grid) {\n node.alignToGrid();\n }\n\n if (!skip_compute_order) {\n this.updateExecutionOrder();\n }\n\n if (this.onNodeAdded) {\n this.onNodeAdded(node);\n }\n\n this.setDirtyCanvas(true);\n this.change();\n\n return node; //to chain actions\n };\n\n /**\n * Removes a node from the graph\n * @method remove\n * @param {LGraphNode} node the instance of the node\n */\n\n LGraph.prototype.remove = function(node) {\n if (node.constructor === LiteGraph.LGraphGroup) {\n var index = this._groups.indexOf(node);\n if (index != -1) {\n this._groups.splice(index, 1);\n }\n node.graph = null;\n this._version++;\n this.setDirtyCanvas(true, true);\n this.change();\n return;\n }\n\n if (this._nodes_by_id[node.id] == null) {\n return;\n } //not found\n\n if (node.ignore_remove) {\n return;\n } //cannot be removed\n\n\t\tthis.beforeChange(); //sure?\n\n //disconnect inputs\n if (node.inputs) {\n for (var i = 0; i < node.inputs.length; i++) {\n var slot = node.inputs[i];\n if (slot.link != null) {\n node.disconnectInput(i);\n }\n }\n }\n\n //disconnect outputs\n if (node.outputs) {\n for (var i = 0; i < node.outputs.length; i++) {\n var slot = node.outputs[i];\n if (slot.links != null && slot.links.length) {\n node.disconnectOutput(i);\n }\n }\n }\n\n //node.id = -1; //why?\n\n //callback\n if (node.onRemoved) {\n node.onRemoved();\n }\n\n node.graph = null;\n this._version++;\n\n //remove from canvas render\n if (this.list_of_graphcanvas) {\n for (var i = 0; i < this.list_of_graphcanvas.length; ++i) {\n var canvas = this.list_of_graphcanvas[i];\n if (canvas.selected_nodes[node.id]) {\n delete canvas.selected_nodes[node.id];\n }\n if (canvas.node_dragged == node) {\n canvas.node_dragged = null;\n }\n }\n }\n\n //remove from containers\n var pos = this._nodes.indexOf(node);\n if (pos != -1) {\n this._nodes.splice(pos, 1);\n }\n delete this._nodes_by_id[node.id];\n\n if (this.onNodeRemoved) {\n this.onNodeRemoved(node);\n }\n\n\t\t//close panels\n\t\tthis.sendActionToCanvas(\"checkPanels\");\n\n this.setDirtyCanvas(true, true);\n\t\tthis.afterChange(); //sure?\n this.change();\n\n this.updateExecutionOrder();\n };\n\n /**\n * Returns a node by its id.\n * @method getNodeById\n * @param {Number} id\n */\n\n LGraph.prototype.getNodeById = function(id) {\n if (id == null) {\n return null;\n }\n return this._nodes_by_id[id];\n };\n\n /**\n * Returns a list of nodes that matches a class\n * @method findNodesByClass\n * @param {Class} classObject the class itself (not an string)\n * @return {Array} a list with all the nodes of this type\n */\n LGraph.prototype.findNodesByClass = function(classObject, result) {\n result = result || [];\n result.length = 0;\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n if (this._nodes[i].constructor === classObject) {\n result.push(this._nodes[i]);\n }\n }\n return result;\n };\n\n /**\n * Returns a list of nodes that matches a type\n * @method findNodesByType\n * @param {String} type the name of the node type\n * @return {Array} a list with all the nodes of this type\n */\n LGraph.prototype.findNodesByType = function(type, result) {\n var type = type.toLowerCase();\n result = result || [];\n result.length = 0;\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n if (this._nodes[i].type.toLowerCase() == type) {\n result.push(this._nodes[i]);\n }\n }\n return result;\n };\n\n /**\n * Returns the first node that matches a name in its title\n * @method findNodeByTitle\n * @param {String} name the name of the node to search\n * @return {Node} the node or null\n */\n LGraph.prototype.findNodeByTitle = function(title) {\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n if (this._nodes[i].title == title) {\n return this._nodes[i];\n }\n }\n return null;\n };\n\n /**\n * Returns a list of nodes that matches a name\n * @method findNodesByTitle\n * @param {String} name the name of the node to search\n * @return {Array} a list with all the nodes with this name\n */\n LGraph.prototype.findNodesByTitle = function(title) {\n var result = [];\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n if (this._nodes[i].title == title) {\n result.push(this._nodes[i]);\n }\n }\n return result;\n };\n\n /**\n * Returns the top-most node in this position of the canvas\n * @method getNodeOnPos\n * @param {number} x the x coordinate in canvas space\n * @param {number} y the y coordinate in canvas space\n * @param {Array} nodes_list a list with all the nodes to search from, by default is all the nodes in the graph\n * @return {LGraphNode} the node at this position or null\n */\n LGraph.prototype.getNodeOnPos = function(x, y, nodes_list, margin) {\n nodes_list = nodes_list || this._nodes;\n for (var i = nodes_list.length - 1; i >= 0; i--) {\n var n = nodes_list[i];\n if (n.isPointInside(x, y, margin)) {\n return n;\n }\n }\n return null;\n };\n\n /**\n * Returns the top-most group in that position\n * @method getGroupOnPos\n * @param {number} x the x coordinate in canvas space\n * @param {number} y the y coordinate in canvas space\n * @return {LGraphGroup} the group or null\n */\n LGraph.prototype.getGroupOnPos = function(x, y) {\n for (var i = this._groups.length - 1; i >= 0; i--) {\n var g = this._groups[i];\n if (g.isPointInside(x, y, 2, true)) {\n return g;\n }\n }\n return null;\n };\n\n /**\n * Checks that the node type matches the node type registered, used when replacing a nodetype by a newer version during execution\n * this replaces the ones using the old version with the new version\n * @method checkNodeTypes\n */\n LGraph.prototype.checkNodeTypes = function() {\n var changes = false;\n for (var i = 0; i < this._nodes.length; i++) {\n var node = this._nodes[i];\n var ctor = LiteGraph.registered_node_types[node.type];\n if (node.constructor == ctor) {\n continue;\n }\n console.log(\"node being replaced by newer version: \" + node.type);\n var newnode = LiteGraph.createNode(node.type);\n changes = true;\n this._nodes[i] = newnode;\n newnode.configure(node.serialize());\n newnode.graph = this;\n this._nodes_by_id[newnode.id] = newnode;\n if (node.inputs) {\n newnode.inputs = node.inputs.concat();\n }\n if (node.outputs) {\n newnode.outputs = node.outputs.concat();\n }\n }\n this.updateExecutionOrder();\n };\n\n // ********** GLOBALS *****************\n\n LGraph.prototype.onAction = function(action, param) {\n this._input_nodes = this.findNodesByClass(\n LiteGraph.GraphInput,\n this._input_nodes\n );\n for (var i = 0; i < this._input_nodes.length; ++i) {\n var node = this._input_nodes[i];\n if (node.properties.name != action) {\n continue;\n }\n node.onAction(action, param);\n break;\n }\n };\n\n LGraph.prototype.trigger = function(action, param) {\n if (this.onTrigger) {\n this.onTrigger(action, param);\n }\n };\n\n /**\n * Tell this graph it has a global graph input of this type\n * @method addGlobalInput\n * @param {String} name\n * @param {String} type\n * @param {*} value [optional]\n */\n LGraph.prototype.addInput = function(name, type, value) {\n var input = this.inputs[name];\n if (input) {\n //already exist\n return;\n }\n\n\t\tthis.beforeChange();\n this.inputs[name] = { name: name, type: type, value: value };\n this._version++;\n\t\tthis.afterChange();\n\n if (this.onInputAdded) {\n this.onInputAdded(name, type);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n };\n\n /**\n * Assign a data to the global graph input\n * @method setGlobalInputData\n * @param {String} name\n * @param {*} data\n */\n LGraph.prototype.setInputData = function(name, data) {\n var input = this.inputs[name];\n if (!input) {\n return;\n }\n input.value = data;\n };\n\n /**\n * Returns the current value of a global graph input\n * @method getInputData\n * @param {String} name\n * @return {*} the data\n */\n LGraph.prototype.getInputData = function(name) {\n var input = this.inputs[name];\n if (!input) {\n return null;\n }\n return input.value;\n };\n\n /**\n * Changes the name of a global graph input\n * @method renameInput\n * @param {String} old_name\n * @param {String} new_name\n */\n LGraph.prototype.renameInput = function(old_name, name) {\n if (name == old_name) {\n return;\n }\n\n if (!this.inputs[old_name]) {\n return false;\n }\n\n if (this.inputs[name]) {\n console.error(\"there is already one input with that name\");\n return false;\n }\n\n this.inputs[name] = this.inputs[old_name];\n delete this.inputs[old_name];\n this._version++;\n\n if (this.onInputRenamed) {\n this.onInputRenamed(old_name, name);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n };\n\n /**\n * Changes the type of a global graph input\n * @method changeInputType\n * @param {String} name\n * @param {String} type\n */\n LGraph.prototype.changeInputType = function(name, type) {\n if (!this.inputs[name]) {\n return false;\n }\n\n if (\n this.inputs[name].type &&\n String(this.inputs[name].type).toLowerCase() ==\n String(type).toLowerCase()\n ) {\n return;\n }\n\n this.inputs[name].type = type;\n this._version++;\n if (this.onInputTypeChanged) {\n this.onInputTypeChanged(name, type);\n }\n };\n\n /**\n * Removes a global graph input\n * @method removeInput\n * @param {String} name\n * @param {String} type\n */\n LGraph.prototype.removeInput = function(name) {\n if (!this.inputs[name]) {\n return false;\n }\n\n delete this.inputs[name];\n this._version++;\n\n if (this.onInputRemoved) {\n this.onInputRemoved(name);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n return true;\n };\n\n /**\n * Creates a global graph output\n * @method addOutput\n * @param {String} name\n * @param {String} type\n * @param {*} value\n */\n LGraph.prototype.addOutput = function(name, type, value) {\n this.outputs[name] = { name: name, type: type, value: value };\n this._version++;\n\n if (this.onOutputAdded) {\n this.onOutputAdded(name, type);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n };\n\n /**\n * Assign a data to the global output\n * @method setOutputData\n * @param {String} name\n * @param {String} value\n */\n LGraph.prototype.setOutputData = function(name, value) {\n var output = this.outputs[name];\n if (!output) {\n return;\n }\n output.value = value;\n };\n\n /**\n * Returns the current value of a global graph output\n * @method getOutputData\n * @param {String} name\n * @return {*} the data\n */\n LGraph.prototype.getOutputData = function(name) {\n var output = this.outputs[name];\n if (!output) {\n return null;\n }\n return output.value;\n };\n\n /**\n * Renames a global graph output\n * @method renameOutput\n * @param {String} old_name\n * @param {String} new_name\n */\n LGraph.prototype.renameOutput = function(old_name, name) {\n if (!this.outputs[old_name]) {\n return false;\n }\n\n if (this.outputs[name]) {\n console.error(\"there is already one output with that name\");\n return false;\n }\n\n this.outputs[name] = this.outputs[old_name];\n delete this.outputs[old_name];\n this._version++;\n\n if (this.onOutputRenamed) {\n this.onOutputRenamed(old_name, name);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n };\n\n /**\n * Changes the type of a global graph output\n * @method changeOutputType\n * @param {String} name\n * @param {String} type\n */\n LGraph.prototype.changeOutputType = function(name, type) {\n if (!this.outputs[name]) {\n return false;\n }\n\n if (\n this.outputs[name].type &&\n String(this.outputs[name].type).toLowerCase() ==\n String(type).toLowerCase()\n ) {\n return;\n }\n\n this.outputs[name].type = type;\n this._version++;\n if (this.onOutputTypeChanged) {\n this.onOutputTypeChanged(name, type);\n }\n };\n\n /**\n * Removes a global graph output\n * @method removeOutput\n * @param {String} name\n */\n LGraph.prototype.removeOutput = function(name) {\n if (!this.outputs[name]) {\n return false;\n }\n delete this.outputs[name];\n this._version++;\n\n if (this.onOutputRemoved) {\n this.onOutputRemoved(name);\n }\n\n if (this.onInputsOutputsChange) {\n this.onInputsOutputsChange();\n }\n return true;\n };\n\n LGraph.prototype.triggerInput = function(name, value) {\n var nodes = this.findNodesByTitle(name);\n for (var i = 0; i < nodes.length; ++i) {\n nodes[i].onTrigger(value);\n }\n };\n\n LGraph.prototype.setCallback = function(name, func) {\n var nodes = this.findNodesByTitle(name);\n for (var i = 0; i < nodes.length; ++i) {\n nodes[i].setTrigger(func);\n }\n };\n\n\t//used for undo, called before any change is made to the graph\n LGraph.prototype.beforeChange = function(info) {\n if (this.onBeforeChange) {\n this.onBeforeChange(this,info);\n }\n this.sendActionToCanvas(\"onBeforeChange\", this);\n };\n\n\t//used to resend actions, called after any change is made to the graph\n LGraph.prototype.afterChange = function(info) {\n if (this.onAfterChange) {\n this.onAfterChange(this,info);\n }\n this.sendActionToCanvas(\"onAfterChange\", this);\n };\n\n LGraph.prototype.connectionChange = function(node, link_info) {\n this.updateExecutionOrder();\n if (this.onConnectionChange) {\n this.onConnectionChange(node);\n }\n this._version++;\n this.sendActionToCanvas(\"onConnectionChange\");\n };\n\n /**\n * returns if the graph is in live mode\n * @method isLive\n */\n\n LGraph.prototype.isLive = function() {\n if (!this.list_of_graphcanvas) {\n return false;\n }\n\n for (var i = 0; i < this.list_of_graphcanvas.length; ++i) {\n var c = this.list_of_graphcanvas[i];\n if (c.live_mode) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * clears the triggered slot animation in all links (stop visual animation)\n * @method clearTriggeredSlots\n */\n LGraph.prototype.clearTriggeredSlots = function() {\n for (var i in this.links) {\n var link_info = this.links[i];\n if (!link_info) {\n continue;\n }\n if (link_info._last_time) {\n link_info._last_time = 0;\n }\n }\n };\n\n /* Called when something visually changed (not the graph!) */\n LGraph.prototype.change = function() {\n if (LiteGraph.debug) {\n console.log(\"Graph changed\");\n }\n this.sendActionToCanvas(\"setDirty\", [true, true]);\n if (this.on_change) {\n this.on_change(this);\n }\n };\n\n LGraph.prototype.setDirtyCanvas = function(fg, bg) {\n this.sendActionToCanvas(\"setDirty\", [fg, bg]);\n };\n\n /**\n * Destroys a link\n * @method removeLink\n * @param {Number} link_id\n */\n LGraph.prototype.removeLink = function(link_id) {\n var link = this.links[link_id];\n if (!link) {\n return;\n }\n var node = this.getNodeById(link.target_id);\n if (node) {\n node.disconnectInput(link.target_slot);\n }\n };\n\n //save and recover app state ***************************************\n /**\n * Creates a Object containing all the info about this graph, it can be serialized\n * @method serialize\n * @return {Object} value of the node\n */\n LGraph.prototype.serialize = function() {\n var nodes_info = [];\n for (var i = 0, l = this._nodes.length; i < l; ++i) {\n nodes_info.push(this._nodes[i].serialize());\n }\n\n //pack link info into a non-verbose format\n var links = [];\n for (var i in this.links) {\n //links is an OBJECT\n var link = this.links[i];\n if (!link.serialize) {\n //weird bug I havent solved yet\n console.warn(\n \"weird LLink bug, link info is not a LLink but a regular object\"\n );\n var link2 = new LLink();\n for (var j in link) { \n link2[j] = link[j];\n }\n this.links[i] = link2;\n link = link2;\n }\n\n links.push(link.serialize());\n }\n\n var groups_info = [];\n for (var i = 0; i < this._groups.length; ++i) {\n groups_info.push(this._groups[i].serialize());\n }\n\n var data = {\n last_node_id: this.last_node_id,\n last_link_id: this.last_link_id,\n nodes: nodes_info,\n links: links,\n groups: groups_info,\n config: this.config,\n\t\t\textra: this.extra,\n version: LiteGraph.VERSION\n };\n\n\t\tif(this.onSerialize)\n\t\t\tthis.onSerialize(data);\n\n return data;\n };\n\n /**\n * Configure a graph from a JSON string\n * @method configure\n * @param {String} str configure a graph from a JSON string\n * @param {Boolean} returns if there was any error parsing\n */\n LGraph.prototype.configure = function(data, keep_old) {\n if (!data) {\n return;\n }\n\n if (!keep_old) {\n this.clear();\n }\n\n var nodes = data.nodes;\n\n //decode links info (they are very verbose)\n if (data.links && data.links.constructor === Array) {\n var links = [];\n for (var i = 0; i < data.links.length; ++i) {\n var link_data = data.links[i];\n\t\t\t\tif(!link_data) //weird bug\n\t\t\t\t{\n\t\t\t\t\tconsole.warn(\"serialized graph link data contains errors, skipping.\");\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n var link = new LLink();\n link.configure(link_data);\n links[link.id] = link;\n }\n data.links = links;\n }\n\n //copy all stored fields\n for (var i in data) {\n\t\t\tif(i == \"nodes\" || i == \"groups\" ) //links must be accepted\n\t\t\t\tcontinue;\n this[i] = data[i];\n }\n\n var error = false;\n\n //create nodes\n this._nodes = [];\n if (nodes) {\n for (var i = 0, l = nodes.length; i < l; ++i) {\n var n_info = nodes[i]; //stored info\n var node = LiteGraph.createNode(n_info.type, n_info.title);\n if (!node) {\n if (LiteGraph.debug) {\n console.log(\n \"Node not found or has errors: \" + n_info.type\n );\n }\n\n //in case of error we create a replacement node to avoid losing info\n node = new LGraphNode();\n node.last_serialization = n_info;\n node.has_errors = true;\n error = true;\n //continue;\n }\n\n node.id = n_info.id; //id it or it will create a new id\n this.add(node, true); //add before configure, otherwise configure cannot create links\n }\n\n //configure nodes afterwards so they can reach each other\n for (var i = 0, l = nodes.length; i < l; ++i) {\n var n_info = nodes[i];\n var node = this.getNodeById(n_info.id);\n if (node) {\n node.configure(n_info);\n }\n }\n }\n\n //groups\n this._groups.length = 0;\n if (data.groups) {\n for (var i = 0; i < data.groups.length; ++i) {\n var group = new LiteGraph.LGraphGroup();\n group.configure(data.groups[i]);\n this.add(group);\n }\n }\n\n this.updateExecutionOrder();\n\n\t\tthis.extra = data.extra || {};\n\n\t\tif(this.onConfigure)\n\t\t\tthis.onConfigure(data);\n\n this._version++;\n this.setDirtyCanvas(true, true);\n return error;\n };\n\n LGraph.prototype.load = function(url, callback) {\n var that = this;\n\n\t\t//from file\n\t\tif(url.constructor === File || url.constructor === Blob)\n\t\t{\n\t\t\tvar reader = new FileReader();\n\t\t\treader.addEventListener('load', function(event) {\n\t\t\t\tvar data = JSON.parse(event.target.result);\n\t\t\t\tthat.configure(data);\n\t\t\t\tif(callback)\n\t\t\t\t\tcallback();\n\t\t\t});\n\t\t\t\n\t\t\treader.readAsText(url);\n\t\t\treturn;\n\t\t}\n\n\t\t//is a string, then an URL\n var req = new XMLHttpRequest();\n req.open(\"GET\", url, true);\n req.send(null);\n req.onload = function(oEvent) {\n if (req.status !== 200) {\n console.error(\"Error loading graph:\", req.status, req.response);\n return;\n }\n var data = JSON.parse( req.response );\n that.configure(data);\n\t\t\tif(callback)\n\t\t\t\tcallback();\n };\n req.onerror = function(err) {\n console.error(\"Error loading graph:\", err);\n };\n };\n\n LGraph.prototype.onNodeTrace = function(node, msg, color) {\n //TODO\n };\n\n //this is the class in charge of storing link information\n function LLink(id, type, origin_id, origin_slot, target_id, target_slot) {\n this.id = id;\n this.type = type;\n this.origin_id = origin_id;\n this.origin_slot = origin_slot;\n this.target_id = target_id;\n this.target_slot = target_slot;\n\n this._data = null;\n this._pos = new Float32Array(2); //center\n }\n\n LLink.prototype.configure = function(o) {\n if (o.constructor === Array) {\n this.id = o[0];\n this.origin_id = o[1];\n this.origin_slot = o[2];\n this.target_id = o[3];\n this.target_slot = o[4];\n this.type = o[5];\n } else {\n this.id = o.id;\n this.type = o.type;\n this.origin_id = o.origin_id;\n this.origin_slot = o.origin_slot;\n this.target_id = o.target_id;\n this.target_slot = o.target_slot;\n }\n };\n\n LLink.prototype.serialize = function() {\n return [\n this.id,\n this.origin_id,\n this.origin_slot,\n this.target_id,\n this.target_slot,\n this.type\n ];\n };\n\n LiteGraph.LLink = LLink;\n\n // *************************************************************\n // Node CLASS *******\n // *************************************************************\n\n /*\n\ttitle: string\n\tpos: [x,y]\n\tsize: [x,y]\n\n\tinput|output: every connection\n\t\t+ { name:string, type:string, pos: [x,y]=Optional, direction: \"input\"|\"output\", links: Array });\n\n\tgeneral properties:\n\t\t+ clip_area: if you render outside the node, it will be clipped\n\t\t+ unsafe_execution: not allowed for safe execution\n\t\t+ skip_repeated_outputs: when adding new outputs, it wont show if there is one already connected\n\t\t+ resizable: if set to false it wont be resizable with the mouse\n\t\t+ horizontal: slots are distributed horizontally\n\t\t+ widgets_start_y: widgets start at y distance from the top of the node\n\t\n\tflags object:\n\t\t+ collapsed: if it is collapsed\n\n\tsupported callbacks:\n\t\t+ onAdded: when added to graph (warning: this is called BEFORE the node is configured when loading)\n\t\t+ onRemoved: when removed from graph\n\t\t+ onStart:\twhen the graph starts playing\n\t\t+ onStop:\twhen the graph stops playing\n\t\t+ onDrawForeground: render the inside widgets inside the node\n\t\t+ onDrawBackground: render the background area inside the node (only in edit mode)\n\t\t+ onMouseDown\n\t\t+ onMouseMove\n\t\t+ onMouseUp\n\t\t+ onMouseEnter\n\t\t+ onMouseLeave\n\t\t+ onExecute: execute the node\n\t\t+ onPropertyChanged: when a property is changed in the panel (return true to skip default behaviour)\n\t\t+ onGetInputs: returns an array of possible inputs\n\t\t+ onGetOutputs: returns an array of possible outputs\n\t\t+ onBounding: in case this node has a bigger bounding than the node itself (the callback receives the bounding as [x,y,w,h])\n\t\t+ onDblClick: double clicked in the node\n\t\t+ onInputDblClick: input slot double clicked (can be used to automatically create a node connected)\n\t\t+ onOutputDblClick: output slot double clicked (can be used to automatically create a node connected)\n\t\t+ onConfigure: called after the node has been configured\n\t\t+ onSerialize: to add extra info when serializing (the callback receives the object that should be filled with the data)\n\t\t+ onSelected\n\t\t+ onDeselected\n\t\t+ onDropItem : DOM item dropped over the node\n\t\t+ onDropFile : file dropped over the node\n\t\t+ onConnectInput : if returns false the incoming connection will be canceled\n\t\t+ onConnectionsChange : a connection changed (new one or removed) (LiteGraph.INPUT or LiteGraph.OUTPUT, slot, true if connected, link_info, input_info )\n\t\t+ onAction: action slot triggered\n\t\t+ getExtraMenuOptions: to add option to context menu\n*/\n\n /**\n * Base Class for all the node type classes\n * @class LGraphNode\n * @param {String} name a name for the node\n */\n\n function LGraphNode(title) {\n this._ctor(title);\n }\n\n global.LGraphNode = LiteGraph.LGraphNode = LGraphNode;\n\n LGraphNode.prototype._ctor = function(title) {\n this.title = title || \"Unnamed\";\n this.size = [LiteGraph.NODE_WIDTH, 60];\n this.graph = null;\n\n this._pos = new Float32Array(10, 10);\n\n Object.defineProperty(this, \"pos\", {\n set: function(v) {\n if (!v || v.length < 2) {\n return;\n }\n this._pos[0] = v[0];\n this._pos[1] = v[1];\n },\n get: function() {\n return this._pos;\n },\n enumerable: true\n });\n\n this.id = -1; //not know till not added\n this.type = null;\n\n //inputs available: array of inputs\n this.inputs = [];\n this.outputs = [];\n this.connections = [];\n\n //local data\n this.properties = {}; //for the values\n this.properties_info = []; //for the info\n\n this.flags = {};\n };\n\n /**\n * configure a node from an object containing the serialized info\n * @method configure\n */\n LGraphNode.prototype.configure = function(info) {\n if (this.graph) {\n this.graph._version++;\n }\n for (var j in info) {\n if (j == \"properties\") {\n //i don't want to clone properties, I want to reuse the old container\n for (var k in info.properties) {\n this.properties[k] = info.properties[k];\n if (this.onPropertyChanged) {\n this.onPropertyChanged( k, info.properties[k] );\n }\n }\n continue;\n }\n\n if (info[j] == null) {\n continue;\n } else if (typeof info[j] == \"object\") {\n //object\n if (this[j] && this[j].configure) {\n this[j].configure(info[j]);\n } else {\n this[j] = LiteGraph.cloneObject(info[j], this[j]);\n }\n } //value\n else {\n this[j] = info[j];\n }\n }\n\n if (!info.title) {\n this.title = this.constructor.title;\n }\n\n if (this.onConnectionsChange) {\n if (this.inputs) {\n for (var i = 0; i < this.inputs.length; ++i) {\n var input = this.inputs[i];\n var link_info = this.graph\n ? this.graph.links[input.link]\n : null;\n this.onConnectionsChange(\n LiteGraph.INPUT,\n i,\n true,\n link_info,\n input\n ); //link_info has been created now, so its updated\n }\n }\n\n if (this.outputs) {\n for (var i = 0; i < this.outputs.length; ++i) {\n var output = this.outputs[i];\n if (!output.links) {\n continue;\n }\n for (var j = 0; j < output.links.length; ++j) {\n var link_info = this.graph\n ? this.graph.links[output.links[j]]\n : null;\n this.onConnectionsChange(\n LiteGraph.OUTPUT,\n i,\n true,\n link_info,\n output\n ); //link_info has been created now, so its updated\n }\n }\n }\n }\n\n\t\tif( this.widgets )\n\t\t{\n\t\t\tfor (var i = 0; i < this.widgets.length; ++i)\n\t\t\t{\n\t\t\t\tvar w = this.widgets[i];\n\t\t\t\tif(!w)\n\t\t\t\t\tcontinue;\n\t\t\t\tif(w.options && w.options.property && this.properties[ w.options.property ])\n\t\t\t\t\tw.value = JSON.parse( JSON.stringify( this.properties[ w.options.property ] ) );\n\t\t\t}\n\t\t\tif (info.widgets_values) {\n\t\t\t\tfor (var i = 0; i < info.widgets_values.length; ++i) {\n\t\t\t\t\tif (this.widgets[i]) {\n\t\t\t\t\t\tthis.widgets[i].value = info.widgets_values[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n if (this.onConfigure) {\n this.onConfigure(info);\n }\n };\n\n /**\n * serialize the content\n * @method serialize\n */\n\n LGraphNode.prototype.serialize = function() {\n //create serialization object\n var o = {\n id: this.id,\n type: this.type,\n pos: this.pos,\n size: this.size,\n flags: LiteGraph.cloneObject(this.flags),\n\t\t\torder: this.order,\n mode: this.mode\n };\n\n //special case for when there were errors\n if (this.constructor === LGraphNode && this.last_serialization) {\n return this.last_serialization;\n }\n\n if (this.inputs) {\n o.inputs = this.inputs;\n }\n\n if (this.outputs) {\n //clear outputs last data (because data in connections is never serialized but stored inside the outputs info)\n for (var i = 0; i < this.outputs.length; i++) {\n delete this.outputs[i]._data;\n }\n o.outputs = this.outputs;\n }\n\n if (this.title && this.title != this.constructor.title) {\n o.title = this.title;\n }\n\n if (this.properties) {\n o.properties = LiteGraph.cloneObject(this.properties);\n }\n\n if (this.widgets && this.serialize_widgets) {\n o.widgets_values = [];\n for (var i = 0; i < this.widgets.length; ++i) {\n\t\t\t\tif(this.widgets[i])\n\t o.widgets_values[i] = this.widgets[i].value;\n\t\t\t\telse\n\t\t\t\t\to.widgets_values[i] = null;\n }\n }\n\n if (!o.type) {\n o.type = this.constructor.type;\n }\n\n if (this.color) {\n o.color = this.color;\n }\n if (this.bgcolor) {\n o.bgcolor = this.bgcolor;\n }\n if (this.boxcolor) {\n o.boxcolor = this.boxcolor;\n }\n if (this.shape) {\n o.shape = this.shape;\n }\n\n if (this.onSerialize) {\n if (this.onSerialize(o)) {\n console.warn(\n \"node onSerialize shouldnt return anything, data should be stored in the object pass in the first parameter\"\n );\n }\n }\n\n return o;\n };\n\n /* Creates a clone of this node */\n LGraphNode.prototype.clone = function() {\n var node = LiteGraph.createNode(this.type);\n if (!node) {\n return null;\n }\n\n //we clone it because serialize returns shared containers\n var data = LiteGraph.cloneObject(this.serialize());\n\n //remove links\n if (data.inputs) {\n for (var i = 0; i < data.inputs.length; ++i) {\n data.inputs[i].link = null;\n }\n }\n\n if (data.outputs) {\n for (var i = 0; i < data.outputs.length; ++i) {\n if (data.outputs[i].links) {\n data.outputs[i].links.length = 0;\n }\n }\n }\n\n delete data[\"id\"];\n //remove links\n node.configure(data);\n\n return node;\n };\n\n /**\n * serialize and stringify\n * @method toString\n */\n\n LGraphNode.prototype.toString = function() {\n return JSON.stringify(this.serialize());\n };\n //LGraphNode.prototype.deserialize = function(info) {} //this cannot be done from within, must be done in LiteGraph\n\n /**\n * get the title string\n * @method getTitle\n */\n\n LGraphNode.prototype.getTitle = function() {\n return this.title || this.constructor.title;\n };\n\n /**\n * sets the value of a property\n * @method setProperty\n * @param {String} name\n * @param {*} value\n */\n LGraphNode.prototype.setProperty = function(name, value) {\n if (!this.properties) {\n this.properties = {};\n }\n\t\tif( value === this.properties[name] )\n\t\t\treturn;\n\t\tvar prev_value = this.properties[name];\n this.properties[name] = value;\n if (this.onPropertyChanged) {\n if( this.onPropertyChanged(name, value, prev_value) === false ) //abort change\n\t\t\t\tthis.properties[name] = prev_value;\n }\n\t\tif(this.widgets) //widgets could be linked to properties\n\t\t\tfor(var i = 0; i < this.widgets.length; ++i)\n\t\t\t{\n\t\t\t\tvar w = this.widgets[i];\n\t\t\t\tif(!w)\n\t\t\t\t\tcontinue;\n\t\t\t\tif(w.options.property == name)\n\t\t\t\t{\n\t\t\t\t\tw.value = value;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n };\n\n // Execution *************************\n /**\n * sets the output data\n * @method setOutputData\n * @param {number} slot\n * @param {*} data\n */\n LGraphNode.prototype.setOutputData = function(slot, data) {\n if (!this.outputs) {\n return;\n }\n\n //this maybe slow and a niche case\n //if(slot && slot.constructor === String)\n //\tslot = this.findOutputSlot(slot);\n\n if (slot == -1 || slot >= this.outputs.length) {\n return;\n }\n\n var output_info = this.outputs[slot];\n if (!output_info) {\n return;\n }\n\n //store data in the output itself in case we want to debug\n output_info._data = data;\n\n //if there are connections, pass the data to the connections\n if (this.outputs[slot].links) {\n for (var i = 0; i < this.outputs[slot].links.length; i++) {\n var link_id = this.outputs[slot].links[i];\n\t\t\t\tvar link = this.graph.links[link_id];\n\t\t\t\tif(link)\n\t\t\t\t\tlink.data = data;\n }\n }\n };\n\n /**\n * sets the output data type, useful when you want to be able to overwrite the data type\n * @method setOutputDataType\n * @param {number} slot\n * @param {String} datatype\n */\n LGraphNode.prototype.setOutputDataType = function(slot, type) {\n if (!this.outputs) {\n return;\n }\n if (slot == -1 || slot >= this.outputs.length) {\n return;\n }\n var output_info = this.outputs[slot];\n if (!output_info) {\n return;\n }\n //store data in the output itself in case we want to debug\n output_info.type = type;\n\n //if there are connections, pass the data to the connections\n if (this.outputs[slot].links) {\n for (var i = 0; i < this.outputs[slot].links.length; i++) {\n var link_id = this.outputs[slot].links[i];\n this.graph.links[link_id].type = type;\n }\n }\n };\n\n /**\n * Retrieves the input data (data traveling through the connection) from one slot\n * @method getInputData\n * @param {number} slot\n * @param {boolean} force_update if set to true it will force the connected node of this slot to output data into this link\n * @return {*} data or if it is not connected returns undefined\n */\n LGraphNode.prototype.getInputData = function(slot, force_update) {\n if (!this.inputs) {\n return;\n } //undefined;\n\n if (slot >= this.inputs.length || this.inputs[slot].link == null) {\n return;\n }\n\n var link_id = this.inputs[slot].link;\n var link = this.graph.links[link_id];\n if (!link) {\n //bug: weird case but it happens sometimes\n return null;\n }\n\n if (!force_update) {\n return link.data;\n }\n\n //special case: used to extract data from the incoming connection before the graph has been executed\n var node = this.graph.getNodeById(link.origin_id);\n if (!node) {\n return link.data;\n }\n\n if (node.updateOutputData) {\n node.updateOutputData(link.origin_slot);\n } else if (node.onExecute) {\n node.onExecute();\n }\n\n return link.data;\n };\n\n /**\n * Retrieves the input data type (in case this supports multiple input types)\n * @method getInputDataType\n * @param {number} slot\n * @return {String} datatype in string format\n */\n LGraphNode.prototype.getInputDataType = function(slot) {\n if (!this.inputs) {\n return null;\n } //undefined;\n\n if (slot >= this.inputs.length || this.inputs[slot].link == null) {\n return null;\n }\n var link_id = this.inputs[slot].link;\n var link = this.graph.links[link_id];\n if (!link) {\n //bug: weird case but it happens sometimes\n return null;\n }\n var node = this.graph.getNodeById(link.origin_id);\n if (!node) {\n return link.type;\n }\n var output_info = node.outputs[link.origin_slot];\n if (output_info) {\n return output_info.type;\n }\n return null;\n };\n\n /**\n * Retrieves the input data from one slot using its name instead of slot number\n * @method getInputDataByName\n * @param {String} slot_name\n * @param {boolean} force_update if set to true it will force the connected node of this slot to output data into this link\n * @return {*} data or if it is not connected returns null\n */\n LGraphNode.prototype.getInputDataByName = function(\n slot_name,\n force_update\n ) {\n var slot = this.findInputSlot(slot_name);\n if (slot == -1) {\n return null;\n }\n return this.getInputData(slot, force_update);\n };\n\n /**\n * tells you if there is a connection in one input slot\n * @method isInputConnected\n * @param {number} slot\n * @return {boolean}\n */\n LGraphNode.prototype.isInputConnected = function(slot) {\n if (!this.inputs) {\n return false;\n }\n return slot < this.inputs.length && this.inputs[slot].link != null;\n };\n\n /**\n * tells you info about an input connection (which node, type, etc)\n * @method getInputInfo\n * @param {number} slot\n * @return {Object} object or null { link: id, name: string, type: string or 0 }\n */\n LGraphNode.prototype.getInputInfo = function(slot) {\n if (!this.inputs) {\n return null;\n }\n if (slot < this.inputs.length) {\n return this.inputs[slot];\n }\n return null;\n };\n\n /**\n * Returns the link info in the connection of an input slot\n * @method getInputLink\n * @param {number} slot\n * @return {LLink} object or null\n */\n LGraphNode.prototype.getInputLink = function(slot) {\n if (!this.inputs) {\n return null;\n }\n if (slot < this.inputs.length) {\n var slot_info = this.inputs[slot];\n\t\t\treturn this.graph.links[ slot_info.link ];\n }\n return null;\n };\n\n /**\n * returns the node connected in the input slot\n * @method getInputNode\n * @param {number} slot\n * @return {LGraphNode} node or null\n */\n LGraphNode.prototype.getInputNode = function(slot) {\n if (!this.inputs) {\n return null;\n }\n if (slot >= this.inputs.length) {\n return null;\n }\n var input = this.inputs[slot];\n if (!input || input.link === null) {\n return null;\n }\n var link_info = this.graph.links[input.link];\n if (!link_info) {\n return null;\n }\n return this.graph.getNodeById(link_info.origin_id);\n };\n\n /**\n * returns the value of an input with this name, otherwise checks if there is a property with that name\n * @method getInputOrProperty\n * @param {string} name\n * @return {*} value\n */\n LGraphNode.prototype.getInputOrProperty = function(name) {\n if (!this.inputs || !this.inputs.length) {\n return this.properties ? this.properties[name] : null;\n }\n\n for (var i = 0, l = this.inputs.length; i < l; ++i) {\n var input_info = this.inputs[i];\n if (name == input_info.name && input_info.link != null) {\n var link = this.graph.links[input_info.link];\n if (link) {\n return link.data;\n }\n }\n }\n return this.properties[name];\n };\n\n /**\n * tells you the last output data that went in that slot\n * @method getOutputData\n * @param {number} slot\n * @return {Object} object or null\n */\n LGraphNode.prototype.getOutputData = function(slot) {\n if (!this.outputs) {\n return null;\n }\n if (slot >= this.outputs.length) {\n return null;\n }\n\n var info = this.outputs[slot];\n return info._data;\n };\n\n /**\n * tells you info about an output connection (which node, type, etc)\n * @method getOutputInfo\n * @param {number} slot\n * @return {Object} object or null { name: string, type: string, links: [ ids of links in number ] }\n */\n LGraphNode.prototype.getOutputInfo = function(slot) {\n if (!this.outputs) {\n return null;\n }\n if (slot < this.outputs.length) {\n return this.outputs[slot];\n }\n return null;\n };\n\n /**\n * tells you if there is a connection in one output slot\n * @method isOutputConnected\n * @param {number} slot\n * @return {boolean}\n */\n LGraphNode.prototype.isOutputConnected = function(slot) {\n if (!this.outputs) {\n return false;\n }\n return (\n slot < this.outputs.length &&\n this.outputs[slot].links &&\n this.outputs[slot].links.length\n );\n };\n\n /**\n * tells you if there is any connection in the output slots\n * @method isAnyOutputConnected\n * @return {boolean}\n */\n LGraphNode.prototype.isAnyOutputConnected = function() {\n if (!this.outputs) {\n return false;\n }\n for (var i = 0; i < this.outputs.length; ++i) {\n if (this.outputs[i].links && this.outputs[i].links.length) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * retrieves all the nodes connected to this output slot\n * @method getOutputNodes\n * @param {number} slot\n * @return {array}\n */\n LGraphNode.prototype.getOutputNodes = function(slot) {\n if (!this.outputs || this.outputs.length == 0) {\n return null;\n }\n\n if (slot >= this.outputs.length) {\n return null;\n }\n\n var output = this.outputs[slot];\n if (!output.links || output.links.length == 0) {\n return null;\n }\n\n var r = [];\n for (var i = 0; i < output.links.length; i++) {\n var link_id = output.links[i];\n var link = this.graph.links[link_id];\n if (link) {\n var target_node = this.graph.getNodeById(link.target_id);\n if (target_node) {\n r.push(target_node);\n }\n }\n }\n return r;\n };\n\n /**\n * Triggers an event in this node, this will trigger any output with the same name\n * @method trigger\n * @param {String} event name ( \"on_play\", ... ) if action is equivalent to false then the event is send to all\n * @param {*} param\n */\n LGraphNode.prototype.trigger = function(action, param) {\n if (!this.outputs || !this.outputs.length) {\n return;\n }\n\n if (this.graph)\n this.graph._last_trigger_time = LiteGraph.getTime();\n\n for (var i = 0; i < this.outputs.length; ++i) {\n var output = this.outputs[i];\n if ( !output || output.type !== LiteGraph.EVENT || (action && output.name != action) )\n continue;\n this.triggerSlot(i, param);\n }\n };\n\n /**\n * Triggers an slot event in this node\n * @method triggerSlot\n * @param {Number} slot the index of the output slot\n * @param {*} param\n * @param {Number} link_id [optional] in case you want to trigger and specific output link in a slot\n */\n LGraphNode.prototype.triggerSlot = function(slot, param, link_id) {\n if (!this.outputs) {\n return;\n }\n\n var output = this.outputs[slot];\n if (!output) {\n return;\n }\n\n var links = output.links;\n if (!links || !links.length) {\n return;\n }\n\n if (this.graph) {\n this.graph._last_trigger_time = LiteGraph.getTime();\n }\n\n //for every link attached here\n for (var k = 0; k < links.length; ++k) {\n var id = links[k];\n if (link_id != null && link_id != id) {\n //to skip links\n continue;\n }\n var link_info = this.graph.links[links[k]];\n if (!link_info) {\n //not connected\n continue;\n }\n link_info._last_time = LiteGraph.getTime();\n var node = this.graph.getNodeById(link_info.target_id);\n if (!node) {\n //node not found?\n continue;\n }\n\n //used to mark events in graph\n var target_connection = node.inputs[link_info.target_slot];\n\n\t\t\tif (node.mode === LiteGraph.ON_TRIGGER)\n\t\t\t{\n if (node.onExecute) {\n node.onExecute(param);\n }\n\t\t\t}\n\t\t\telse if (node.onAction) {\n node.onAction(target_connection.name, param);\n }\n }\n };\n\n /**\n * clears the trigger slot animation\n * @method clearTriggeredSlot\n * @param {Number} slot the index of the output slot\n * @param {Number} link_id [optional] in case you want to trigger and specific output link in a slot\n */\n LGraphNode.prototype.clearTriggeredSlot = function(slot, link_id) {\n if (!this.outputs) {\n return;\n }\n\n var output = this.outputs[slot];\n if (!output) {\n return;\n }\n\n var links = output.links;\n if (!links || !links.length) {\n return;\n }\n\n //for every link attached here\n for (var k = 0; k < links.length; ++k) {\n var id = links[k];\n if (link_id != null && link_id != id) {\n //to skip links\n continue;\n }\n var link_info = this.graph.links[links[k]];\n if (!link_info) {\n //not connected\n continue;\n }\n link_info._last_time = 0;\n }\n };\n\n /**\n * changes node size and triggers callback\n * @method setSize\n * @param {vec2} size\n */\n LGraphNode.prototype.setSize = function(size)\n\t{\n\t\tthis.size = size;\n\t\tif(this.onResize)\n\t\t\tthis.onResize(this.size);\n\t}\n\n /**\n * add a new property to this node\n * @method addProperty\n * @param {string} name\n * @param {*} default_value\n * @param {string} type string defining the output type (\"vec3\",\"number\",...)\n * @param {Object} extra_info this can be used to have special properties of the property (like values, etc)\n */\n LGraphNode.prototype.addProperty = function(\n name,\n default_value,\n type,\n extra_info\n ) {\n var o = { name: name, type: type, default_value: default_value };\n if (extra_info) {\n for (var i in extra_info) {\n o[i] = extra_info[i];\n }\n }\n if (!this.properties_info) {\n this.properties_info = [];\n }\n this.properties_info.push(o);\n if (!this.properties) {\n this.properties = {};\n }\n this.properties[name] = default_value;\n return o;\n };\n\n //connections\n\n /**\n * add a new output slot to use in this node\n * @method addOutput\n * @param {string} name\n * @param {string} type string defining the output type (\"vec3\",\"number\",...)\n * @param {Object} extra_info this can be used to have special properties of an output (label, special color, position, etc)\n */\n LGraphNode.prototype.addOutput = function(name, type, extra_info) {\n var o = { name: name, type: type, links: null };\n if (extra_info) {\n for (var i in extra_info) {\n o[i] = extra_info[i];\n }\n }\n\n if (!this.outputs) {\n this.outputs = [];\n }\n this.outputs.push(o);\n if (this.onOutputAdded) {\n this.onOutputAdded(o);\n }\n this.setSize( this.computeSize() );\n this.setDirtyCanvas(true, true);\n return o;\n };\n\n /**\n * add a new output slot to use in this node\n * @method addOutputs\n * @param {Array} array of triplets like [[name,type,extra_info],[...]]\n */\n LGraphNode.prototype.addOutputs = function(array) {\n for (var i = 0; i < array.length; ++i) {\n var info = array[i];\n var o = { name: info[0], type: info[1], link: null };\n if (array[2]) {\n for (var j in info[2]) {\n o[j] = info[2][j];\n }\n }\n\n if (!this.outputs) {\n this.outputs = [];\n }\n this.outputs.push(o);\n if (this.onOutputAdded) {\n this.onOutputAdded(o);\n }\n }\n\n this.setSize( this.computeSize() );\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * remove an existing output slot\n * @method removeOutput\n * @param {number} slot\n */\n LGraphNode.prototype.removeOutput = function(slot) {\n this.disconnectOutput(slot);\n this.outputs.splice(slot, 1);\n for (var i = slot; i < this.outputs.length; ++i) {\n if (!this.outputs[i] || !this.outputs[i].links) {\n continue;\n }\n var links = this.outputs[i].links;\n for (var j = 0; j < links.length; ++j) {\n var link = this.graph.links[links[j]];\n if (!link) {\n continue;\n }\n link.origin_slot -= 1;\n }\n }\n\n this.setSize( this.computeSize() );\n if (this.onOutputRemoved) {\n this.onOutputRemoved(slot);\n }\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * add a new input slot to use in this node\n * @method addInput\n * @param {string} name\n * @param {string} type string defining the input type (\"vec3\",\"number\",...), it its a generic one use 0\n * @param {Object} extra_info this can be used to have special properties of an input (label, color, position, etc)\n */\n LGraphNode.prototype.addInput = function(name, type, extra_info) {\n type = type || 0;\n var o = { name: name, type: type, link: null };\n if (extra_info) {\n for (var i in extra_info) {\n o[i] = extra_info[i];\n }\n }\n\n if (!this.inputs) {\n this.inputs = [];\n }\n\n this.inputs.push(o);\n this.setSize( this.computeSize() );\n\n if (this.onInputAdded) {\n this.onInputAdded(o);\n }\n\n this.setDirtyCanvas(true, true);\n return o;\n };\n\n /**\n * add several new input slots in this node\n * @method addInputs\n * @param {Array} array of triplets like [[name,type,extra_info],[...]]\n */\n LGraphNode.prototype.addInputs = function(array) {\n for (var i = 0; i < array.length; ++i) {\n var info = array[i];\n var o = { name: info[0], type: info[1], link: null };\n if (array[2]) {\n for (var j in info[2]) {\n o[j] = info[2][j];\n }\n }\n\n if (!this.inputs) {\n this.inputs = [];\n }\n this.inputs.push(o);\n if (this.onInputAdded) {\n this.onInputAdded(o);\n }\n }\n\n this.setSize( this.computeSize() );\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * remove an existing input slot\n * @method removeInput\n * @param {number} slot\n */\n LGraphNode.prototype.removeInput = function(slot) {\n this.disconnectInput(slot);\n var slot_info = this.inputs.splice(slot, 1);\n for (var i = slot; i < this.inputs.length; ++i) {\n if (!this.inputs[i]) {\n continue;\n }\n var link = this.graph.links[this.inputs[i].link];\n if (!link) {\n continue;\n }\n link.target_slot -= 1;\n }\n this.setSize( this.computeSize() );\n if (this.onInputRemoved) {\n this.onInputRemoved(slot, slot_info[0] );\n }\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * add an special connection to this node (used for special kinds of graphs)\n * @method addConnection\n * @param {string} name\n * @param {string} type string defining the input type (\"vec3\",\"number\",...)\n * @param {[x,y]} pos position of the connection inside the node\n * @param {string} direction if is input or output\n */\n LGraphNode.prototype.addConnection = function(name, type, pos, direction) {\n var o = {\n name: name,\n type: type,\n pos: pos,\n direction: direction,\n links: null\n };\n this.connections.push(o);\n return o;\n };\n\n /**\n * computes the minimum size of a node according to its inputs and output slots\n * @method computeSize\n * @param {number} minHeight\n * @return {number} the total size\n */\n LGraphNode.prototype.computeSize = function(out) {\n if (this.constructor.size) {\n return this.constructor.size.concat();\n }\n\n var rows = Math.max(\n this.inputs ? this.inputs.length : 1,\n this.outputs ? this.outputs.length : 1\n );\n var size = out || new Float32Array([0, 0]);\n rows = Math.max(rows, 1);\n var font_size = LiteGraph.NODE_TEXT_SIZE; //although it should be graphcanvas.inner_text_font size\n\n var font_size = font_size;\n var title_width = compute_text_size(this.title);\n var input_width = 0;\n var output_width = 0;\n\n if (this.inputs) {\n for (var i = 0, l = this.inputs.length; i < l; ++i) {\n var input = this.inputs[i];\n var text = input.label || input.name || \"\";\n var text_width = compute_text_size(text);\n if (input_width < text_width) {\n input_width = text_width;\n }\n }\n }\n\n if (this.outputs) {\n for (var i = 0, l = this.outputs.length; i < l; ++i) {\n var output = this.outputs[i];\n var text = output.label || output.name || \"\";\n var text_width = compute_text_size(text);\n if (output_width < text_width) {\n output_width = text_width;\n }\n }\n }\n\n size[0] = Math.max(input_width + output_width + 10, title_width);\n size[0] = Math.max(size[0], LiteGraph.NODE_WIDTH);\n if (this.widgets && this.widgets.length) {\n size[0] = Math.max(size[0], LiteGraph.NODE_WIDTH * 1.5);\n }\n\n size[1] = (this.constructor.slot_start_y || 0) + rows * LiteGraph.NODE_SLOT_HEIGHT;\n\n var widgets_height = 0;\n if (this.widgets && this.widgets.length) {\n for (var i = 0, l = this.widgets.length; i < l; ++i) {\n if (this.widgets[i].computeSize)\n widgets_height += this.widgets[i].computeSize(size[0])[1] + 4;\n else\n widgets_height += LiteGraph.NODE_WIDGET_HEIGHT + 4;\n }\n widgets_height += 8;\n }\n\n //compute height using widgets height\n if( this.widgets_up )\n size[1] = Math.max( size[1], widgets_height );\n else if( this.widgets_start_y != null )\n size[1] = Math.max( size[1], widgets_height + this.widgets_start_y );\n else\n size[1] += widgets_height;\n\n function compute_text_size(text) {\n if (!text) {\n return 0;\n }\n return font_size * text.length * 0.6;\n }\n\n if (\n this.constructor.min_height &&\n size[1] < this.constructor.min_height\n ) {\n size[1] = this.constructor.min_height;\n }\n\n size[1] += 6; //margin\n\n return size;\n };\n\n /**\n * returns all the info available about a property of this node.\n *\n * @method getPropertyInfo\n * @param {String} property name of the property\n * @return {Object} the object with all the available info\n */\n LGraphNode.prototype.getPropertyInfo = function( property )\n\t{\n var info = null;\n\n\t\t//there are several ways to define info about a property\n\t\t//legacy mode\n\t\tif (this.properties_info) {\n for (var i = 0; i < this.properties_info.length; ++i) {\n if (this.properties_info[i].name == property) {\n info = this.properties_info[i];\n break;\n }\n }\n }\n\t\t//litescene mode using the constructor\n\t\tif(this.constructor[\"@\" + property])\n\t\t\tinfo = this.constructor[\"@\" + property];\n\n\t\tif(this.constructor.widgets_info && this.constructor.widgets_info[property])\n\t\t\tinfo = this.constructor.widgets_info[property];\n\n\t\t//litescene mode using the constructor\n\t\tif (!info && this.onGetPropertyInfo) {\n info = this.onGetPropertyInfo(property);\n }\n\n if (!info)\n info = {};\n\t\tif(!info.type)\n\t\t\tinfo.type = typeof this.properties[property];\n\t\tif(info.widget == \"combo\")\n\t\t\tinfo.type = \"enum\";\n\n\t\treturn info;\n\t}\n\n /**\n * Defines a widget inside the node, it will be rendered on top of the node, you can control lots of properties\n *\n * @method addWidget\n * @param {String} type the widget type (could be \"number\",\"string\",\"combo\"\n * @param {String} name the text to show on the widget\n * @param {String} value the default value\n * @param {Function|String} callback function to call when it changes (optionally, it can be the name of the property to modify)\n * @param {Object} options the object that contains special properties of this widget \n * @return {Object} the created widget object\n */\n LGraphNode.prototype.addWidget = function( type, name, value, callback, options )\n\t{\n if (!this.widgets) {\n this.widgets = [];\n }\n\n\t\tif(!options && callback && callback.constructor === Object)\n\t\t{\n\t\t\toptions = callback;\n\t\t\tcallback = null;\n\t\t}\n\n\t\tif(options && options.constructor === String) //options can be the property name\n\t\t\toptions = { property: options };\n\n\t\tif(callback && callback.constructor === String) //callback can be the property name\n\t\t{\n\t\t\tif(!options)\n\t\t\t\toptions = {};\n\t\t\toptions.property = callback;\n\t\t\tcallback = null;\n\t\t}\n\n\t\tif(callback && callback.constructor !== Function)\n\t\t{\n\t\t\tconsole.warn(\"addWidget: callback must be a function\");\n\t\t\tcallback = null;\n\t\t}\n\n var w = {\n type: type.toLowerCase(),\n name: name,\n value: value,\n callback: callback,\n options: options || {}\n };\n\n if (w.options.y !== undefined) {\n w.y = w.options.y;\n }\n\n if (!callback && !w.options.callback && !w.options.property) {\n console.warn(\"LiteGraph addWidget(...) without a callback or property assigned\");\n }\n if (type == \"combo\" && !w.options.values) {\n throw \"LiteGraph addWidget('combo',...) requires to pass values in options: { values:['red','blue'] }\";\n }\n this.widgets.push(w);\n\t\tthis.setSize( this.computeSize() );\n return w;\n };\n\n LGraphNode.prototype.addCustomWidget = function(custom_widget) {\n if (!this.widgets) {\n this.widgets = [];\n }\n this.widgets.push(custom_widget);\n return custom_widget;\n };\n\n /**\n * returns the bounding of the object, used for rendering purposes\n * bounding is: [topleft_cornerx, topleft_cornery, width, height]\n * @method getBounding\n * @return {Float32Array[4]} the total size\n */\n LGraphNode.prototype.getBounding = function(out) {\n out = out || new Float32Array(4);\n out[0] = this.pos[0] - 4;\n out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT;\n out[2] = this.size[0] + 4;\n out[3] = this.flags.collapsed ? LiteGraph.NODE_TITLE_HEIGHT : this.size[1] + LiteGraph.NODE_TITLE_HEIGHT;\n\n if (this.onBounding) {\n this.onBounding(out);\n }\n return out;\n };\n\n /**\n * checks if a point is inside the shape of a node\n * @method isPointInside\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n LGraphNode.prototype.isPointInside = function(x, y, margin, skip_title) {\n margin = margin || 0;\n\n var margin_top = this.graph && this.graph.isLive() ? 0 : LiteGraph.NODE_TITLE_HEIGHT;\n if (skip_title) {\n margin_top = 0;\n }\n if (this.flags && this.flags.collapsed) {\n //if ( distance([x,y], [this.pos[0] + this.size[0]*0.5, this.pos[1] + this.size[1]*0.5]) < LiteGraph.NODE_COLLAPSED_RADIUS)\n if (\n isInsideRectangle(\n x,\n y,\n this.pos[0] - margin,\n this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT - margin,\n (this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH) +\n 2 * margin,\n LiteGraph.NODE_TITLE_HEIGHT + 2 * margin\n )\n ) {\n return true;\n }\n } else if (\n this.pos[0] - 4 - margin < x &&\n this.pos[0] + this.size[0] + 4 + margin > x &&\n this.pos[1] - margin_top - margin < y &&\n this.pos[1] + this.size[1] + margin > y\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * checks if a point is inside a node slot, and returns info about which slot\n * @method getSlotInPosition\n * @param {number} x\n * @param {number} y\n * @return {Object} if found the object contains { input|output: slot object, slot: number, link_pos: [x,y] }\n */\n LGraphNode.prototype.getSlotInPosition = function(x, y) {\n //search for inputs\n var link_pos = new Float32Array(2);\n if (this.inputs) {\n for (var i = 0, l = this.inputs.length; i < l; ++i) {\n var input = this.inputs[i];\n this.getConnectionPos(true, i, link_pos);\n if (\n isInsideRectangle(\n x,\n y,\n link_pos[0] - 10,\n link_pos[1] - 5,\n 20,\n 10\n )\n ) {\n return { input: input, slot: i, link_pos: link_pos };\n }\n }\n }\n\n if (this.outputs) {\n for (var i = 0, l = this.outputs.length; i < l; ++i) {\n var output = this.outputs[i];\n this.getConnectionPos(false, i, link_pos);\n if (\n isInsideRectangle(\n x,\n y,\n link_pos[0] - 10,\n link_pos[1] - 5,\n 20,\n 10\n )\n ) {\n return { output: output, slot: i, link_pos: link_pos };\n }\n }\n }\n\n return null;\n };\n\n /**\n * returns the input slot with a given name (used for dynamic slots), -1 if not found\n * @method findInputSlot\n * @param {string} name the name of the slot\n * @return {number} the slot (-1 if not found)\n */\n LGraphNode.prototype.findInputSlot = function(name) {\n if (!this.inputs) {\n return -1;\n }\n for (var i = 0, l = this.inputs.length; i < l; ++i) {\n if (name == this.inputs[i].name) {\n return i;\n }\n }\n return -1;\n };\n\n /**\n * returns the output slot with a given name (used for dynamic slots), -1 if not found\n * @method findOutputSlot\n * @param {string} name the name of the slot\n * @return {number} the slot (-1 if not found)\n */\n LGraphNode.prototype.findOutputSlot = function(name) {\n if (!this.outputs) {\n return -1;\n }\n for (var i = 0, l = this.outputs.length; i < l; ++i) {\n if (name == this.outputs[i].name) {\n return i;\n }\n }\n return -1;\n };\n\n /**\n * connect this node output to the input of another node\n * @method connect\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} node the target node\n * @param {number_or_string} target_slot the input slot of the target node (could be the number of the slot or the string with the name of the slot, or -1 to connect a trigger)\n * @return {Object} the link_info is created, otherwise null\n */\n LGraphNode.prototype.connect = function(slot, target_node, target_slot) {\n target_slot = target_slot || 0;\n\n if (!this.graph) {\n //could be connected before adding it to a graph\n console.log(\n \"Connect: Error, node doesn't belong to any graph. Nodes must be added first to a graph before connecting them.\"\n ); //due to link ids being associated with graphs\n return null;\n }\n\n //seek for the output slot\n if (slot.constructor === String) {\n slot = this.findOutputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, no slot of name \" + slot);\n }\n return null;\n }\n } else if (!this.outputs || slot >= this.outputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return null;\n }\n\n if (target_node && target_node.constructor === Number) {\n target_node = this.graph.getNodeById(target_node);\n }\n if (!target_node) {\n throw \"target node is null\";\n }\n\n //avoid loopback\n if (target_node == this) {\n return null;\n }\n\n //you can specify the slot by name\n if (target_slot.constructor === String) {\n target_slot = target_node.findInputSlot(target_slot);\n if (target_slot == -1) {\n if (LiteGraph.debug) {\n console.log(\n \"Connect: Error, no slot of name \" + target_slot\n );\n }\n return null;\n }\n } else if (target_slot === LiteGraph.EVENT) {\n //search for first slot with event?\n /*\n\t\t//create input for trigger\n\t\tvar input = target_node.addInput(\"onTrigger\", LiteGraph.EVENT );\n\t\ttarget_slot = target_node.inputs.length - 1; //last one is the one created\n\t\ttarget_node.mode = LiteGraph.ON_TRIGGER;\n\t\t*/\n return null;\n } else if (\n !target_node.inputs ||\n target_slot >= target_node.inputs.length\n ) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return null;\n }\n\n\t\tvar changed = false;\n\n //if there is something already plugged there, disconnect\n if (target_node.inputs[target_slot].link != null) {\n\t\t\tthis.graph.beforeChange();\n target_node.disconnectInput(target_slot);\n\t\t\tchanged = true;\n }\n\n //why here??\n //this.setDirtyCanvas(false,true);\n //this.graph.connectionChange( this );\n\n var output = this.outputs[slot];\n\n //allows nodes to block connection\n if (target_node.onConnectInput) {\n if ( target_node.onConnectInput(target_slot, output.type, output, this, slot) === false ) {\n return null;\n }\n }\n\n var input = target_node.inputs[target_slot];\n var link_info = null;\n\n\t\t//this slots cannot be connected (different types)\n if (!LiteGraph.isValidConnection(output.type, input.type))\n\t\t{\n\t this.setDirtyCanvas(false, true);\n\t\t\tif(changed)\n\t\t this.graph.connectionChange(this, link_info);\n\t\t\treturn null;\n\t\t}\n\n\t\tif(!changed)\n\t\t\tthis.graph.beforeChange();\n\n\t\t//create link class\n\t\tlink_info = new LLink(\n\t\t\t++this.graph.last_link_id,\n\t\t\tinput.type,\n\t\t\tthis.id,\n\t\t\tslot,\n\t\t\ttarget_node.id,\n\t\t\ttarget_slot\n\t\t);\n\n\t\t//add to graph links list\n\t\tthis.graph.links[link_info.id] = link_info;\n\n\t\t//connect in output\n\t\tif (output.links == null) {\n\t\t\toutput.links = [];\n\t\t}\n\t\toutput.links.push(link_info.id);\n\t\t//connect in input\n\t\ttarget_node.inputs[target_slot].link = link_info.id;\n\t\tif (this.graph) {\n\t\t\tthis.graph._version++;\n\t\t}\n\t\tif (this.onConnectionsChange) {\n\t\t\tthis.onConnectionsChange(\n\t\t\t\tLiteGraph.OUTPUT,\n\t\t\t\tslot,\n\t\t\t\ttrue,\n\t\t\t\tlink_info,\n\t\t\t\toutput\n\t\t\t);\n\t\t} //link_info has been created now, so its updated\n\t\tif (target_node.onConnectionsChange) {\n\t\t\ttarget_node.onConnectionsChange(\n\t\t\t\tLiteGraph.INPUT,\n\t\t\t\ttarget_slot,\n\t\t\t\ttrue,\n\t\t\t\tlink_info,\n\t\t\t\tinput\n\t\t\t);\n\t\t}\n\t\tif (this.graph && this.graph.onNodeConnectionChange) {\n\t\t\tthis.graph.onNodeConnectionChange(\n\t\t\t\tLiteGraph.INPUT,\n\t\t\t\ttarget_node,\n\t\t\t\ttarget_slot,\n\t\t\t\tthis,\n\t\t\t\tslot\n\t\t\t);\n\t\t\tthis.graph.onNodeConnectionChange(\n\t\t\t\tLiteGraph.OUTPUT,\n\t\t\t\tthis,\n\t\t\t\tslot,\n\t\t\t\ttarget_node,\n\t\t\t\ttarget_slot\n\t\t\t);\n\t\t}\n\n this.setDirtyCanvas(false, true);\n\t\tthis.graph.afterChange();\n\t\tthis.graph.connectionChange(this, link_info);\n\n return link_info;\n };\n\n /**\n * disconnect one output to an specific node\n * @method disconnectOutput\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} target_node the target node to which this slot is connected [Optional, if not target_node is specified all nodes will be disconnected]\n * @return {boolean} if it was disconnected successfully\n */\n LGraphNode.prototype.disconnectOutput = function(slot, target_node) {\n if (slot.constructor === String) {\n slot = this.findOutputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, no slot of name \" + slot);\n }\n return false;\n }\n } else if (!this.outputs || slot >= this.outputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return false;\n }\n\n //get output slot\n var output = this.outputs[slot];\n if (!output || !output.links || output.links.length == 0) {\n return false;\n }\n\n //one of the output links in this slot\n if (target_node) {\n if (target_node.constructor === Number) {\n target_node = this.graph.getNodeById(target_node);\n }\n if (!target_node) {\n throw \"Target Node not found\";\n }\n\n for (var i = 0, l = output.links.length; i < l; i++) {\n var link_id = output.links[i];\n var link_info = this.graph.links[link_id];\n\n //is the link we are searching for...\n if (link_info.target_id == target_node.id) {\n output.links.splice(i, 1); //remove here\n var input = target_node.inputs[link_info.target_slot];\n input.link = null; //remove there\n delete this.graph.links[link_id]; //remove the link from the links pool\n if (this.graph) {\n this.graph._version++;\n }\n if (target_node.onConnectionsChange) {\n target_node.onConnectionsChange(\n LiteGraph.INPUT,\n link_info.target_slot,\n false,\n link_info,\n input\n );\n } //link_info hasn't been modified so its ok\n if (this.onConnectionsChange) {\n this.onConnectionsChange(\n LiteGraph.OUTPUT,\n slot,\n false,\n link_info,\n output\n );\n }\n if (this.graph && this.graph.onNodeConnectionChange) {\n this.graph.onNodeConnectionChange(\n LiteGraph.OUTPUT,\n this,\n slot\n );\n }\n if (this.graph && this.graph.onNodeConnectionChange) {\n this.graph.onNodeConnectionChange(\n LiteGraph.OUTPUT,\n this,\n slot\n );\n this.graph.onNodeConnectionChange(\n LiteGraph.INPUT,\n target_node,\n link_info.target_slot\n );\n }\n break;\n }\n }\n } //all the links in this output slot\n else {\n for (var i = 0, l = output.links.length; i < l; i++) {\n var link_id = output.links[i];\n var link_info = this.graph.links[link_id];\n if (!link_info) {\n //bug: it happens sometimes\n continue;\n }\n\n var target_node = this.graph.getNodeById(link_info.target_id);\n var input = null;\n if (this.graph) {\n this.graph._version++;\n }\n if (target_node) {\n input = target_node.inputs[link_info.target_slot];\n input.link = null; //remove other side link\n if (target_node.onConnectionsChange) {\n target_node.onConnectionsChange(\n LiteGraph.INPUT,\n link_info.target_slot,\n false,\n link_info,\n input\n );\n } //link_info hasn't been modified so its ok\n if (this.graph && this.graph.onNodeConnectionChange) {\n this.graph.onNodeConnectionChange(\n LiteGraph.INPUT,\n target_node,\n link_info.target_slot\n );\n }\n }\n delete this.graph.links[link_id]; //remove the link from the links pool\n if (this.onConnectionsChange) {\n this.onConnectionsChange(\n LiteGraph.OUTPUT,\n slot,\n false,\n link_info,\n output\n );\n }\n if (this.graph && this.graph.onNodeConnectionChange) {\n this.graph.onNodeConnectionChange(\n LiteGraph.OUTPUT,\n this,\n slot\n );\n this.graph.onNodeConnectionChange(\n LiteGraph.INPUT,\n target_node,\n link_info.target_slot\n );\n }\n }\n output.links = null;\n }\n\n this.setDirtyCanvas(false, true);\n this.graph.connectionChange(this);\n return true;\n };\n\n /**\n * disconnect one input\n * @method disconnectInput\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @return {boolean} if it was disconnected successfully\n */\n LGraphNode.prototype.disconnectInput = function(slot) {\n //seek for the output slot\n if (slot.constructor === String) {\n slot = this.findInputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, no slot of name \" + slot);\n }\n return false;\n }\n } else if (!this.inputs || slot >= this.inputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return false;\n }\n\n var input = this.inputs[slot];\n if (!input) {\n return false;\n }\n\n var link_id = this.inputs[slot].link;\n\t\tif(link_id != null)\n\t\t{\n\t\t\tthis.inputs[slot].link = null;\n\n\t\t\t//remove other side\n\t\t\tvar link_info = this.graph.links[link_id];\n\t\t\tif (link_info) {\n\t\t\t\tvar target_node = this.graph.getNodeById(link_info.origin_id);\n\t\t\t\tif (!target_node) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar output = target_node.outputs[link_info.origin_slot];\n\t\t\t\tif (!output || !output.links || output.links.length == 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t//search in the inputs list for this link\n\t\t\t\tfor (var i = 0, l = output.links.length; i < l; i++) {\n\t\t\t\t\tif (output.links[i] == link_id) {\n\t\t\t\t\t\toutput.links.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdelete this.graph.links[link_id]; //remove from the pool\n\t\t\t\tif (this.graph) {\n\t\t\t\t\tthis.graph._version++;\n\t\t\t\t}\n\t\t\t\tif (this.onConnectionsChange) {\n\t\t\t\t\tthis.onConnectionsChange(\n\t\t\t\t\t\tLiteGraph.INPUT,\n\t\t\t\t\t\tslot,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tlink_info,\n\t\t\t\t\t\tinput\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (target_node.onConnectionsChange) {\n\t\t\t\t\ttarget_node.onConnectionsChange(\n\t\t\t\t\t\tLiteGraph.OUTPUT,\n\t\t\t\t\t\ti,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tlink_info,\n\t\t\t\t\t\toutput\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (this.graph && this.graph.onNodeConnectionChange) {\n\t\t\t\t\tthis.graph.onNodeConnectionChange(\n\t\t\t\t\t\tLiteGraph.OUTPUT,\n\t\t\t\t\t\ttarget_node,\n\t\t\t\t\t\ti\n\t\t\t\t\t);\n\t\t\t\t\tthis.graph.onNodeConnectionChange(LiteGraph.INPUT, this, slot);\n\t\t\t\t}\n\t\t\t}\n\t\t} //link != null\n\n this.setDirtyCanvas(false, true);\n\t\tif(this.graph)\n\t this.graph.connectionChange(this);\n return true;\n };\n\n /**\n * returns the center of a connection point in canvas coords\n * @method getConnectionPos\n * @param {boolean} is_input true if if a input slot, false if it is an output\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {vec2} out [optional] a place to store the output, to free garbage\n * @return {[x,y]} the position\n **/\n LGraphNode.prototype.getConnectionPos = function(\n is_input,\n slot_number,\n out\n ) {\n out = out || new Float32Array(2);\n var num_slots = 0;\n if (is_input && this.inputs) {\n num_slots = this.inputs.length;\n }\n if (!is_input && this.outputs) {\n num_slots = this.outputs.length;\n }\n\n var offset = LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n\n if (this.flags.collapsed) {\n var w = this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH;\n if (this.horizontal) {\n out[0] = this.pos[0] + w * 0.5;\n if (is_input) {\n out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT;\n } else {\n out[1] = this.pos[1];\n }\n } else {\n if (is_input) {\n out[0] = this.pos[0];\n } else {\n out[0] = this.pos[0] + w;\n }\n out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n }\n return out;\n }\n\n //weird feature that never got finished\n if (is_input && slot_number == -1) {\n out[0] = this.pos[0] + LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n out[1] = this.pos[1] + LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n return out;\n }\n\n //hard-coded pos\n if (\n is_input &&\n num_slots > slot_number &&\n this.inputs[slot_number].pos\n ) {\n out[0] = this.pos[0] + this.inputs[slot_number].pos[0];\n out[1] = this.pos[1] + this.inputs[slot_number].pos[1];\n return out;\n } else if (\n !is_input &&\n num_slots > slot_number &&\n this.outputs[slot_number].pos\n ) {\n out[0] = this.pos[0] + this.outputs[slot_number].pos[0];\n out[1] = this.pos[1] + this.outputs[slot_number].pos[1];\n return out;\n }\n\n //horizontal distributed slots\n if (this.horizontal) {\n out[0] =\n this.pos[0] + (slot_number + 0.5) * (this.size[0] / num_slots);\n if (is_input) {\n out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT;\n } else {\n out[1] = this.pos[1] + this.size[1];\n }\n return out;\n }\n\n //default vertical slots\n if (is_input) {\n out[0] = this.pos[0] + offset;\n } else {\n out[0] = this.pos[0] + this.size[0] + 1 - offset;\n }\n out[1] =\n this.pos[1] +\n (slot_number + 0.7) * LiteGraph.NODE_SLOT_HEIGHT +\n (this.constructor.slot_start_y || 0);\n return out;\n };\n\n /* Force align to grid */\n LGraphNode.prototype.alignToGrid = function() {\n this.pos[0] =\n LiteGraph.CANVAS_GRID_SIZE *\n Math.round(this.pos[0] / LiteGraph.CANVAS_GRID_SIZE);\n this.pos[1] =\n LiteGraph.CANVAS_GRID_SIZE *\n Math.round(this.pos[1] / LiteGraph.CANVAS_GRID_SIZE);\n };\n\n /* Console output */\n LGraphNode.prototype.trace = function(msg) {\n if (!this.console) {\n this.console = [];\n }\n\n this.console.push(msg);\n if (this.console.length > LGraphNode.MAX_CONSOLE) {\n this.console.shift();\n }\n\n\t\tif(this.graph.onNodeTrace)\n\t this.graph.onNodeTrace(this, msg);\n };\n\n /* Forces to redraw or the main canvas (LGraphNode) or the bg canvas (links) */\n LGraphNode.prototype.setDirtyCanvas = function(\n dirty_foreground,\n dirty_background\n ) {\n if (!this.graph) {\n return;\n }\n this.graph.sendActionToCanvas(\"setDirty\", [\n dirty_foreground,\n dirty_background\n ]);\n };\n\n LGraphNode.prototype.loadImage = function(url) {\n var img = new Image();\n img.src = LiteGraph.node_images_path + url;\n img.ready = false;\n\n var that = this;\n img.onload = function() {\n this.ready = true;\n that.setDirtyCanvas(true);\n };\n return img;\n };\n\n //safe LGraphNode action execution (not sure if safe)\n /*\nLGraphNode.prototype.executeAction = function(action)\n{\n\tif(action == \"\") return false;\n\n\tif( action.indexOf(\";\") != -1 || action.indexOf(\"}\") != -1)\n\t{\n\t\tthis.trace(\"Error: Action contains unsafe characters\");\n\t\treturn false;\n\t}\n\n\tvar tokens = action.split(\"(\");\n\tvar func_name = tokens[0];\n\tif( typeof(this[func_name]) != \"function\")\n\t{\n\t\tthis.trace(\"Error: Action not found on node: \" + func_name);\n\t\treturn false;\n\t}\n\n\tvar code = action;\n\n\ttry\n\t{\n\t\tvar _foo = eval;\n\t\teval = null;\n\t\t(new Function(\"with(this) { \" + code + \"}\")).call(this);\n\t\teval = _foo;\n\t}\n\tcatch (err)\n\t{\n\t\tthis.trace(\"Error executing action {\" + action + \"} :\" + err);\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n*/\n\n /* Allows to get onMouseMove and onMouseUp events even if the mouse is out of focus */\n LGraphNode.prototype.captureInput = function(v) {\n if (!this.graph || !this.graph.list_of_graphcanvas) {\n return;\n }\n\n var list = this.graph.list_of_graphcanvas;\n\n for (var i = 0; i < list.length; ++i) {\n var c = list[i];\n //releasing somebody elses capture?!\n if (!v && c.node_capturing_input != this) {\n continue;\n }\n\n //change\n c.node_capturing_input = v ? this : null;\n }\n };\n\n /**\n * Collapse the node to make it smaller on the canvas\n * @method collapse\n **/\n LGraphNode.prototype.collapse = function(force) {\n this.graph._version++;\n if (this.constructor.collapsable === false && !force) {\n return;\n }\n if (!this.flags.collapsed) {\n this.flags.collapsed = true;\n } else {\n this.flags.collapsed = false;\n }\n this.setDirtyCanvas(true, true);\n };\n\n /**\n * Forces the node to do not move or realign on Z\n * @method pin\n **/\n\n LGraphNode.prototype.pin = function(v) {\n this.graph._version++;\n if (v === undefined) {\n this.flags.pinned = !this.flags.pinned;\n } else {\n this.flags.pinned = v;\n }\n };\n\n LGraphNode.prototype.localToScreen = function(x, y, graphcanvas) {\n return [\n (x + this.pos[0]) * graphcanvas.scale + graphcanvas.offset[0],\n (y + this.pos[1]) * graphcanvas.scale + graphcanvas.offset[1]\n ];\n };\n\n function LGraphGroup(title) {\n this._ctor(title);\n }\n\n global.LGraphGroup = LiteGraph.LGraphGroup = LGraphGroup;\n\n LGraphGroup.prototype._ctor = function(title) {\n this.title = title || \"Group\";\n this.font_size = 24;\n this.color = LGraphCanvas.node_colors.pale_blue\n ? LGraphCanvas.node_colors.pale_blue.groupcolor\n : \"#AAA\";\n this._bounding = new Float32Array([10, 10, 140, 80]);\n this._pos = this._bounding.subarray(0, 2);\n this._size = this._bounding.subarray(2, 4);\n this._nodes = [];\n this.graph = null;\n\n Object.defineProperty(this, \"pos\", {\n set: function(v) {\n if (!v || v.length < 2) {\n return;\n }\n this._pos[0] = v[0];\n this._pos[1] = v[1];\n },\n get: function() {\n return this._pos;\n },\n enumerable: true\n });\n\n Object.defineProperty(this, \"size\", {\n set: function(v) {\n if (!v || v.length < 2) {\n return;\n }\n this._size[0] = Math.max(140, v[0]);\n this._size[1] = Math.max(80, v[1]);\n },\n get: function() {\n return this._size;\n },\n enumerable: true\n });\n };\n\n LGraphGroup.prototype.configure = function(o) {\n this.title = o.title;\n this._bounding.set(o.bounding);\n this.color = o.color;\n this.font = o.font;\n };\n\n LGraphGroup.prototype.serialize = function() {\n var b = this._bounding;\n return {\n title: this.title,\n bounding: [\n Math.round(b[0]),\n Math.round(b[1]),\n Math.round(b[2]),\n Math.round(b[3])\n ],\n color: this.color,\n font: this.font\n };\n };\n\n LGraphGroup.prototype.move = function(deltax, deltay, ignore_nodes) {\n this._pos[0] += deltax;\n this._pos[1] += deltay;\n if (ignore_nodes) {\n return;\n }\n for (var i = 0; i < this._nodes.length; ++i) {\n var node = this._nodes[i];\n node.pos[0] += deltax;\n node.pos[1] += deltay;\n }\n };\n\n LGraphGroup.prototype.recomputeInsideNodes = function() {\n this._nodes.length = 0;\n var nodes = this.graph._nodes;\n var node_bounding = new Float32Array(4);\n\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n node.getBounding(node_bounding);\n if (!overlapBounding(this._bounding, node_bounding)) {\n continue;\n } //out of the visible area\n this._nodes.push(node);\n }\n };\n\n LGraphGroup.prototype.isPointInside = LGraphNode.prototype.isPointInside;\n LGraphGroup.prototype.setDirtyCanvas = LGraphNode.prototype.setDirtyCanvas;\n\n //****************************************\n\n //Scale and Offset\n function DragAndScale(element, skip_events) {\n this.offset = new Float32Array([0, 0]);\n this.scale = 1;\n this.max_scale = 10;\n this.min_scale = 0.1;\n this.onredraw = null;\n this.enabled = true;\n this.last_mouse = [0, 0];\n this.element = null;\n this.visible_area = new Float32Array(4);\n\n if (element) {\n this.element = element;\n if (!skip_events) {\n this.bindEvents(element);\n }\n }\n }\n\n LiteGraph.DragAndScale = DragAndScale;\n\n DragAndScale.prototype.bindEvents = function(element) {\n this.last_mouse = new Float32Array(2);\n\n this._binded_mouse_callback = this.onMouse.bind(this);\n\n element.addEventListener(\"mousedown\", this._binded_mouse_callback);\n element.addEventListener(\"mousemove\", this._binded_mouse_callback);\n\n element.addEventListener(\n \"mousewheel\",\n this._binded_mouse_callback,\n false\n );\n element.addEventListener(\"wheel\", this._binded_mouse_callback, false);\n };\n\n DragAndScale.prototype.computeVisibleArea = function( viewport ) {\n if (!this.element) {\n this.visible_area[0] = this.visible_area[1] = this.visible_area[2] = this.visible_area[3] = 0;\n return;\n }\n var width = this.element.width;\n var height = this.element.height;\n var startx = -this.offset[0];\n var starty = -this.offset[1];\n\t\tif( viewport )\n\t\t{\n\t\t\tstartx += viewport[0] / this.scale;\n\t\t\tstarty += viewport[1] / this.scale;\n\t\t\twidth = viewport[2];\n\t\t\theight = viewport[3];\n\t\t}\n var endx = startx + width / this.scale;\n var endy = starty + height / this.scale;\n this.visible_area[0] = startx;\n this.visible_area[1] = starty;\n this.visible_area[2] = endx - startx;\n this.visible_area[3] = endy - starty;\n };\n\n DragAndScale.prototype.onMouse = function(e) {\n if (!this.enabled) {\n return;\n }\n\n var canvas = this.element;\n var rect = canvas.getBoundingClientRect();\n var x = e.clientX - rect.left;\n var y = e.clientY - rect.top;\n e.canvasx = x;\n e.canvasy = y;\n e.dragging = this.dragging;\n\n\t\tvar is_inside = !this.viewport || ( this.viewport && x >= this.viewport[0] && x < (this.viewport[0] + this.viewport[2]) && y >= this.viewport[1] && y < (this.viewport[1] + this.viewport[3]) );\n\n var ignore = false;\n if (this.onmouse) {\n ignore = this.onmouse(e);\n }\n\n if (e.type == \"mousedown\" && is_inside) {\n this.dragging = true;\n canvas.removeEventListener( \"mousemove\", this._binded_mouse_callback );\n document.body.addEventListener( \"mousemove\", this._binded_mouse_callback );\n document.body.addEventListener( \"mouseup\", this._binded_mouse_callback );\n } else if (e.type == \"mousemove\") {\n if (!ignore) {\n var deltax = x - this.last_mouse[0];\n var deltay = y - this.last_mouse[1];\n if (this.dragging) {\n this.mouseDrag(deltax, deltay);\n }\n }\n } else if (e.type == \"mouseup\") {\n this.dragging = false;\n document.body.removeEventListener( \"mousemove\", this._binded_mouse_callback );\n document.body.removeEventListener( \"mouseup\", this._binded_mouse_callback );\n canvas.addEventListener(\"mousemove\", this._binded_mouse_callback );\n } else if ( is_inside &&\n (e.type == \"mousewheel\" ||\n e.type == \"wheel\" ||\n e.type == \"DOMMouseScroll\")\n ) {\n e.eventType = \"mousewheel\";\n if (e.type == \"wheel\") {\n e.wheel = -e.deltaY;\n } else {\n e.wheel =\n e.wheelDeltaY != null ? e.wheelDeltaY : e.detail * -60;\n }\n\n //from stack overflow\n e.delta = e.wheelDelta\n ? e.wheelDelta / 40\n : e.deltaY\n ? -e.deltaY / 3\n : 0;\n this.changeDeltaScale(1.0 + e.delta * 0.05);\n }\n\n this.last_mouse[0] = x;\n this.last_mouse[1] = y;\n\n\t\tif(is_inside)\n\t\t{\n\t e.preventDefault();\n\t\t e.stopPropagation();\n\t\t return false;\n\t\t}\n };\n\n DragAndScale.prototype.toCanvasContext = function(ctx) {\n ctx.scale(this.scale, this.scale);\n ctx.translate(this.offset[0], this.offset[1]);\n };\n\n DragAndScale.prototype.convertOffsetToCanvas = function(pos) {\n //return [pos[0] / this.scale - this.offset[0], pos[1] / this.scale - this.offset[1]];\n return [\n (pos[0] + this.offset[0]) * this.scale,\n (pos[1] + this.offset[1]) * this.scale\n ];\n };\n\n DragAndScale.prototype.convertCanvasToOffset = function(pos, out) {\n out = out || [0, 0];\n out[0] = pos[0] / this.scale - this.offset[0];\n out[1] = pos[1] / this.scale - this.offset[1];\n return out;\n };\n\n DragAndScale.prototype.mouseDrag = function(x, y) {\n this.offset[0] += x / this.scale;\n this.offset[1] += y / this.scale;\n\n if (this.onredraw) {\n this.onredraw(this);\n }\n };\n\n DragAndScale.prototype.changeScale = function(value, zooming_center) {\n if (value < this.min_scale) {\n value = this.min_scale;\n } else if (value > this.max_scale) {\n value = this.max_scale;\n }\n\n if (value == this.scale) {\n return;\n }\n\n if (!this.element) {\n return;\n }\n\n var rect = this.element.getBoundingClientRect();\n if (!rect) {\n return;\n }\n\n zooming_center = zooming_center || [\n rect.width * 0.5,\n rect.height * 0.5\n ];\n var center = this.convertCanvasToOffset(zooming_center);\n this.scale = value;\n if (Math.abs(this.scale - 1) < 0.01) {\n this.scale = 1;\n }\n\n var new_center = this.convertCanvasToOffset(zooming_center);\n var delta_offset = [\n new_center[0] - center[0],\n new_center[1] - center[1]\n ];\n\n this.offset[0] += delta_offset[0];\n this.offset[1] += delta_offset[1];\n\n if (this.onredraw) {\n this.onredraw(this);\n }\n };\n\n DragAndScale.prototype.changeDeltaScale = function(value, zooming_center) {\n this.changeScale(this.scale * value, zooming_center);\n };\n\n DragAndScale.prototype.reset = function() {\n this.scale = 1;\n this.offset[0] = 0;\n this.offset[1] = 0;\n };\n\n //*********************************************************************************\n // LGraphCanvas: LGraph renderer CLASS\n //*********************************************************************************\n\n /**\n * This class is in charge of rendering one graph inside a canvas. And provides all the interaction required.\n * Valid callbacks are: onNodeSelected, onNodeDeselected, onShowNodePanel, onNodeDblClicked\n *\n * @class LGraphCanvas\n * @constructor\n * @param {HTMLCanvas} canvas the canvas where you want to render (it accepts a selector in string format or the canvas element itself)\n * @param {LGraph} graph [optional]\n * @param {Object} options [optional] { skip_rendering, autoresize, viewport }\n */\n function LGraphCanvas(canvas, graph, options) {\n this.options = options = options || {};\n\n //if(graph === undefined)\n //\tthrow (\"No graph assigned\");\n this.background_image = LGraphCanvas.DEFAULT_BACKGROUND_IMAGE;\n\n if (canvas && canvas.constructor === String) {\n canvas = document.querySelector(canvas);\n }\n\n this.ds = new DragAndScale();\n this.zoom_modify_alpha = true; //otherwise it generates ugly patterns when scaling down too much\n\n this.title_text_font = \"\" + LiteGraph.NODE_TEXT_SIZE + \"px Arial\";\n this.inner_text_font =\n \"normal \" + LiteGraph.NODE_SUBTEXT_SIZE + \"px Arial\";\n this.node_title_color = LiteGraph.NODE_TITLE_COLOR;\n this.default_link_color = LiteGraph.LINK_COLOR;\n this.default_connection_color = {\n input_off: \"#778\",\n input_on: \"#7F7\",\n output_off: \"#778\",\n output_on: \"#7F7\"\n };\n\n this.highquality_render = true;\n this.use_gradients = false; //set to true to render titlebar with gradients\n this.editor_alpha = 1; //used for transition\n this.pause_rendering = false;\n this.clear_background = true;\n\n\t\tthis.read_only = false; //if set to true users cannot modify the graph\n this.render_only_selected = true;\n this.live_mode = false;\n this.show_info = true;\n this.allow_dragcanvas = true;\n this.allow_dragnodes = true;\n this.allow_interaction = true; //allow to control widgets, buttons, collapse, etc\n this.allow_searchbox = true;\n this.allow_reconnect_links = false; //allows to change a connection with having to redo it again\n\t\tthis.align_to_grid = false; //snap to grid\n\n this.drag_mode = false;\n this.dragging_rectangle = null;\n\n this.filter = null; //allows to filter to only accept some type of nodes in a graph\n\n\t\tthis.set_canvas_dirty_on_mouse_event = true; //forces to redraw the canvas if the mouse does anything\n this.always_render_background = false;\n this.render_shadows = true;\n this.render_canvas_border = true;\n this.render_connections_shadows = false; //too much cpu\n this.render_connections_border = true;\n this.render_curved_connections = false;\n this.render_connection_arrows = false;\n this.render_collapsed_slots = true;\n this.render_execution_order = false;\n this.render_title_colored = true;\n\t\tthis.render_link_tooltip = true;\n\n this.links_render_mode = LiteGraph.SPLINE_LINK;\n\n this.mouse = [0, 0]; //mouse in canvas coordinates, where 0,0 is the top-left corner of the blue rectangle\n this.graph_mouse = [0, 0]; //mouse in graph coordinates, where 0,0 is the top-left corner of the blue rectangle\n\t\tthis.canvas_mouse = this.graph_mouse; //LEGACY: REMOVE THIS, USE GRAPH_MOUSE INSTEAD\n\n //to personalize the search box\n this.onSearchBox = null;\n this.onSearchBoxSelection = null;\n\n //callbacks\n this.onMouse = null;\n this.onDrawBackground = null; //to render background objects (behind nodes and connections) in the canvas affected by transform\n this.onDrawForeground = null; //to render foreground objects (above nodes and connections) in the canvas affected by transform\n this.onDrawOverlay = null; //to render foreground objects not affected by transform (for GUIs)\n\t\tthis.onDrawLinkTooltip = null; //called when rendering a tooltip\n\t\tthis.onNodeMoved = null; //called after moving a node\n\t\tthis.onSelectionChange = null; //called if the selection changes\n\t\tthis.onConnectingChange = null; //called before any link changes\n\t\tthis.onBeforeChange = null; //called before modifying the graph\n\t\tthis.onAfterChange = null; //called after modifying the graph\n\n this.connections_width = 3;\n this.round_radius = 8;\n\n this.current_node = null;\n this.node_widget = null; //used for widgets\n\t\tthis.over_link_center = null;\n this.last_mouse_position = [0, 0];\n this.visible_area = this.ds.visible_area;\n this.visible_links = [];\n\n\t\tthis.viewport = options.viewport || null; //to constraint render area to a portion of the canvas\n\n //link canvas and graph\n if (graph) {\n graph.attachCanvas(this);\n }\n\n this.setCanvas(canvas,options.skip_events);\n this.clear();\n\n if (!options.skip_render) {\n this.startRendering();\n }\n\n this.autoresize = options.autoresize;\n }\n\n global.LGraphCanvas = LiteGraph.LGraphCanvas = LGraphCanvas;\n\n\tLGraphCanvas.DEFAULT_BACKGROUND_IMAGE = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII=\";\n\n LGraphCanvas.link_type_colors = {\n \"-1\": LiteGraph.EVENT_LINK_COLOR,\n number: \"#AAA\",\n node: \"#DCA\"\n };\n LGraphCanvas.gradients = {}; //cache of gradients\n\n /**\n * clears all the data inside\n *\n * @method clear\n */\n LGraphCanvas.prototype.clear = function() {\n this.frame = 0;\n this.last_draw_time = 0;\n this.render_time = 0;\n this.fps = 0;\n\n //this.scale = 1;\n //this.offset = [0,0];\n\n this.dragging_rectangle = null;\n\n this.selected_nodes = {};\n this.selected_group = null;\n\n this.visible_nodes = [];\n this.node_dragged = null;\n this.node_over = null;\n this.node_capturing_input = null;\n this.connecting_node = null;\n this.highlighted_links = {};\n\n\t\tthis.dragging_canvas = false;\n\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n this.dirty_area = null;\n\n this.node_in_panel = null;\n this.node_widget = null;\n\n this.last_mouse = [0, 0];\n this.last_mouseclick = 0;\n this.visible_area.set([0, 0, 0, 0]);\n\n if (this.onClear) {\n this.onClear();\n }\n };\n\n /**\n * assigns a graph, you can reassign graphs to the same canvas\n *\n * @method setGraph\n * @param {LGraph} graph\n */\n LGraphCanvas.prototype.setGraph = function(graph, skip_clear) {\n if (this.graph == graph) {\n return;\n }\n\n if (!skip_clear) {\n this.clear();\n }\n\n if (!graph && this.graph) {\n this.graph.detachCanvas(this);\n return;\n }\n\n graph.attachCanvas(this);\n\n\t\t//remove the graph stack in case a subgraph was open\n\t\tif (this._graph_stack)\n\t\t\tthis._graph_stack = null;\n\n this.setDirty(true, true);\n };\n\n /**\n * returns the top level graph (in case there are subgraphs open on the canvas)\n *\n * @method getTopGraph\n * @return {LGraph} graph\n */\n\tLGraphCanvas.prototype.getTopGraph = function()\n\t{\n\t\tif(this._graph_stack.length)\n\t\t\treturn this._graph_stack[0];\n\t\treturn this.graph;\n\t}\n\n /**\n * opens a graph contained inside a node in the current graph\n *\n * @method openSubgraph\n * @param {LGraph} graph\n */\n LGraphCanvas.prototype.openSubgraph = function(graph) {\n if (!graph) {\n throw \"graph cannot be null\";\n }\n\n if (this.graph == graph) {\n throw \"graph cannot be the same\";\n }\n\n this.clear();\n\n if (this.graph) {\n if (!this._graph_stack) {\n this._graph_stack = [];\n }\n this._graph_stack.push(this.graph);\n }\n\n graph.attachCanvas(this);\n\t\tthis.checkPanels();\n this.setDirty(true, true);\n };\n\n /**\n * closes a subgraph contained inside a node\n *\n * @method closeSubgraph\n * @param {LGraph} assigns a graph\n */\n LGraphCanvas.prototype.closeSubgraph = function() {\n if (!this._graph_stack || this._graph_stack.length == 0) {\n return;\n }\n var subgraph_node = this.graph._subgraph_node;\n var graph = this._graph_stack.pop();\n this.selected_nodes = {};\n this.highlighted_links = {};\n graph.attachCanvas(this);\n this.setDirty(true, true);\n if (subgraph_node) {\n this.centerOnNode(subgraph_node);\n this.selectNodes([subgraph_node]);\n }\n };\n\n /**\n * returns the visualy active graph (in case there are more in the stack)\n * @method getCurrentGraph\n * @return {LGraph} the active graph\n */\n LGraphCanvas.prototype.getCurrentGraph = function() {\n return this.graph;\n };\n\n /**\n * assigns a canvas\n *\n * @method setCanvas\n * @param {Canvas} assigns a canvas (also accepts the ID of the element (not a selector)\n */\n LGraphCanvas.prototype.setCanvas = function(canvas, skip_events) {\n var that = this;\n\n if (canvas) {\n if (canvas.constructor === String) {\n canvas = document.getElementById(canvas);\n if (!canvas) {\n throw \"Error creating LiteGraph canvas: Canvas not found\";\n }\n }\n }\n\n if (canvas === this.canvas) {\n return;\n }\n\n if (!canvas && this.canvas) {\n //maybe detach events from old_canvas\n if (!skip_events) {\n this.unbindEvents();\n }\n }\n\n this.canvas = canvas;\n this.ds.element = canvas;\n\n if (!canvas) {\n return;\n }\n\n //this.canvas.tabindex = \"1000\";\n canvas.className += \" lgraphcanvas\";\n canvas.data = this;\n canvas.tabindex = \"1\"; //to allow key events\n\n //bg canvas: used for non changing stuff\n this.bgcanvas = null;\n if (!this.bgcanvas) {\n this.bgcanvas = document.createElement(\"canvas\");\n this.bgcanvas.width = this.canvas.width;\n this.bgcanvas.height = this.canvas.height;\n }\n\n if (canvas.getContext == null) {\n if (canvas.localName != \"canvas\") {\n throw \"Element supplied for LGraphCanvas must be a element, you passed a \" +\n canvas.localName;\n }\n throw \"This browser doesn't support Canvas\";\n }\n\n var ctx = (this.ctx = canvas.getContext(\"2d\"));\n if (ctx == null) {\n if (!canvas.webgl_enabled) {\n console.warn(\n \"This canvas seems to be WebGL, enabling WebGL renderer\"\n );\n }\n this.enableWebGL();\n }\n\n //input: (move and up could be unbinded)\n this._mousemove_callback = this.processMouseMove.bind(this);\n this._mouseup_callback = this.processMouseUp.bind(this);\n\n if (!skip_events) {\n this.bindEvents();\n }\n };\n\n //used in some events to capture them\n LGraphCanvas.prototype._doNothing = function doNothing(e) {\n e.preventDefault();\n return false;\n };\n LGraphCanvas.prototype._doReturnTrue = function doNothing(e) {\n e.preventDefault();\n return true;\n };\n\n /**\n * binds mouse, keyboard, touch and drag events to the canvas\n * @method bindEvents\n **/\n LGraphCanvas.prototype.bindEvents = function() {\n if (this._events_binded) {\n console.warn(\"LGraphCanvas: events already binded\");\n return;\n }\n\n var canvas = this.canvas;\n\n var ref_window = this.getCanvasWindow();\n var document = ref_window.document; //hack used when moving canvas between windows\n\n this._mousedown_callback = this.processMouseDown.bind(this);\n this._mousewheel_callback = this.processMouseWheel.bind(this);\n this._touch_callback = this.touchHandler.bind(this);\n\n canvas.addEventListener(\"mousedown\", this._mousedown_callback, true); //down do not need to store the binded\n canvas.addEventListener(\"mousemove\", this._mousemove_callback);\n canvas.addEventListener(\"mousewheel\", this._mousewheel_callback, false);\n\n canvas.addEventListener(\"contextmenu\", this._doNothing);\n canvas.addEventListener(\n \"DOMMouseScroll\",\n this._mousewheel_callback,\n false\n );\n\n //touch events\n //if( 'touchstart' in document.documentElement )\n {\n canvas.addEventListener(\"touchstart\", this._touch_callback, true);\n canvas.addEventListener(\"touchmove\", this._touch_callback, true);\n canvas.addEventListener(\"touchend\", this._touch_callback, true);\n canvas.addEventListener(\"touchcancel\", this._touch_callback, true);\n }\n\n //Keyboard ******************\n this._key_callback = this.processKey.bind(this);\n\n canvas.addEventListener(\"keydown\", this._key_callback, true);\n document.addEventListener(\"keyup\", this._key_callback, true); //in document, otherwise it doesn't fire keyup\n\n //Dropping Stuff over nodes ************************************\n this._ondrop_callback = this.processDrop.bind(this);\n\n canvas.addEventListener(\"dragover\", this._doNothing, false);\n canvas.addEventListener(\"dragend\", this._doNothing, false);\n canvas.addEventListener(\"drop\", this._ondrop_callback, false);\n canvas.addEventListener(\"dragenter\", this._doReturnTrue, false);\n\n this._events_binded = true;\n };\n\n /**\n * unbinds mouse events from the canvas\n * @method unbindEvents\n **/\n LGraphCanvas.prototype.unbindEvents = function() {\n if (!this._events_binded) {\n console.warn(\"LGraphCanvas: no events binded\");\n return;\n }\n\n var ref_window = this.getCanvasWindow();\n var document = ref_window.document;\n\n this.canvas.removeEventListener(\"mousedown\", this._mousedown_callback);\n this.canvas.removeEventListener(\n \"mousewheel\",\n this._mousewheel_callback\n );\n this.canvas.removeEventListener(\n \"DOMMouseScroll\",\n this._mousewheel_callback\n );\n this.canvas.removeEventListener(\"keydown\", this._key_callback);\n document.removeEventListener(\"keyup\", this._key_callback);\n this.canvas.removeEventListener(\"contextmenu\", this._doNothing);\n this.canvas.removeEventListener(\"drop\", this._ondrop_callback);\n this.canvas.removeEventListener(\"dragenter\", this._doReturnTrue);\n\n this.canvas.removeEventListener(\"touchstart\", this._touch_callback );\n this.canvas.removeEventListener(\"touchmove\", this._touch_callback );\n this.canvas.removeEventListener(\"touchend\", this._touch_callback );\n this.canvas.removeEventListener(\"touchcancel\", this._touch_callback );\n\n this._mousedown_callback = null;\n this._mousewheel_callback = null;\n this._key_callback = null;\n this._ondrop_callback = null;\n\n this._events_binded = false;\n };\n\n LGraphCanvas.getFileExtension = function(url) {\n var question = url.indexOf(\"?\");\n if (question != -1) {\n url = url.substr(0, question);\n }\n var point = url.lastIndexOf(\".\");\n if (point == -1) {\n return \"\";\n }\n return url.substr(point + 1).toLowerCase();\n };\n\n /**\n * this function allows to render the canvas using WebGL instead of Canvas2D\n * this is useful if you plant to render 3D objects inside your nodes, it uses litegl.js for webgl and canvas2DtoWebGL to emulate the Canvas2D calls in webGL\n * @method enableWebGL\n **/\n LGraphCanvas.prototype.enableWebGL = function() {\n if (typeof GL === undefined) {\n throw \"litegl.js must be included to use a WebGL canvas\";\n }\n if (typeof enableWebGLCanvas === undefined) {\n throw \"webglCanvas.js must be included to use this feature\";\n }\n\n this.gl = this.ctx = enableWebGLCanvas(this.canvas);\n this.ctx.webgl = true;\n this.bgcanvas = this.canvas;\n this.bgctx = this.gl;\n this.canvas.webgl_enabled = true;\n\n /*\n\tGL.create({ canvas: this.bgcanvas });\n\tthis.bgctx = enableWebGLCanvas( this.bgcanvas );\n\twindow.gl = this.gl;\n\t*/\n };\n\n /**\n * marks as dirty the canvas, this way it will be rendered again\n *\n * @class LGraphCanvas\n * @method setDirty\n * @param {bool} fgcanvas if the foreground canvas is dirty (the one containing the nodes)\n * @param {bool} bgcanvas if the background canvas is dirty (the one containing the wires)\n */\n LGraphCanvas.prototype.setDirty = function(fgcanvas, bgcanvas) {\n if (fgcanvas) {\n this.dirty_canvas = true;\n }\n if (bgcanvas) {\n this.dirty_bgcanvas = true;\n }\n };\n\n /**\n * Used to attach the canvas in a popup\n *\n * @method getCanvasWindow\n * @return {window} returns the window where the canvas is attached (the DOM root node)\n */\n LGraphCanvas.prototype.getCanvasWindow = function() {\n if (!this.canvas) {\n return window;\n }\n var doc = this.canvas.ownerDocument;\n return doc.defaultView || doc.parentWindow;\n };\n\n /**\n * starts rendering the content of the canvas when needed\n *\n * @method startRendering\n */\n LGraphCanvas.prototype.startRendering = function() {\n if (this.is_rendering) {\n return;\n } //already rendering\n\n this.is_rendering = true;\n renderFrame.call(this);\n\n function renderFrame() {\n if (!this.pause_rendering) {\n this.draw();\n }\n\n var window = this.getCanvasWindow();\n if (this.is_rendering) {\n window.requestAnimationFrame(renderFrame.bind(this));\n }\n }\n };\n\n /**\n * stops rendering the content of the canvas (to save resources)\n *\n * @method stopRendering\n */\n LGraphCanvas.prototype.stopRendering = function() {\n this.is_rendering = false;\n /*\n\tif(this.rendering_timer_id)\n\t{\n\t\tclearInterval(this.rendering_timer_id);\n\t\tthis.rendering_timer_id = null;\n\t}\n\t*/\n };\n\n /* LiteGraphCanvas input */\n\n\t//used to block future mouse events (because of im gui)\n\tLGraphCanvas.prototype.blockClick = function()\n\t{\n\t\tthis.block_click = true;\n\t\tthis.last_mouseclick = 0;\n\t}\n\n LGraphCanvas.prototype.processMouseDown = function(e) {\n\n\t\tif( this.set_canvas_dirty_on_mouse_event )\n\t\t\tthis.dirty_canvas = true;\n\t\t\n\t\tif (!this.graph) {\n return;\n }\n\n this.adjustMouseEvent(e);\n\n var ref_window = this.getCanvasWindow();\n var document = ref_window.document;\n LGraphCanvas.active_canvas = this;\n var that = this;\n\n\t\tvar x = e.localX;\n\t\tvar y = e.localY;\n\t\t//console.log(y,this.viewport);\n\n\t\tthis.ds.viewport = this.viewport;\n\t\tvar is_inside = !this.viewport || ( this.viewport && x >= this.viewport[0] && x < (this.viewport[0] + this.viewport[2]) && y >= this.viewport[1] && y < (this.viewport[1] + this.viewport[3]) );\n\n //move mouse move event to the window in case it drags outside of the canvas\n\t\tif(!this.options.skip_events)\n\t\t{\n\t\t\tthis.canvas.removeEventListener(\"mousemove\", this._mousemove_callback);\n\t\t\tref_window.document.addEventListener( \"mousemove\", this._mousemove_callback, true ); //catch for the entire window\n\t\t\tref_window.document.addEventListener( \"mouseup\", this._mouseup_callback, true );\n\t\t}\n\n\t\tif(!is_inside)\n\t\t\treturn;\n\n var node = this.graph.getNodeOnPos( e.canvasX, e.canvasY, this.visible_nodes, 5 );\n var skip_dragging = false;\n var skip_action = false;\n var now = LiteGraph.getTime();\n var is_double_click = now - this.last_mouseclick < 300;\n\t\tthis.mouse[0] = e.localX;\n\t\tthis.mouse[1] = e.localY;\n this.graph_mouse[0] = e.canvasX;\n this.graph_mouse[1] = e.canvasY;\n\t\tthis.last_click_position = [this.mouse[0],this.mouse[1]];\n\n this.canvas.focus();\n\n LiteGraph.closeAllContextMenus(ref_window);\n\n if (this.onMouse)\n\t\t{\n if (this.onMouse(e) == true)\n return;\n }\n\n\t\t//left button mouse\n if (e.which == 1)\n\t\t{\n if (e.ctrlKey)\n\t\t\t{\n this.dragging_rectangle = new Float32Array(4);\n this.dragging_rectangle[0] = e.canvasX;\n this.dragging_rectangle[1] = e.canvasY;\n this.dragging_rectangle[2] = 1;\n this.dragging_rectangle[3] = 1;\n skip_action = true;\n }\n\n var clicking_canvas_bg = false;\n\n //when clicked on top of a node\n //and it is not interactive\n if (node && this.allow_interaction && !skip_action && !this.read_only) {\n if (!this.live_mode && !node.flags.pinned) {\n this.bringToFront(node);\n } //if it wasn't selected?\n\n //not dragging mouse to connect two slots\n if ( !this.connecting_node && !node.flags.collapsed && !this.live_mode ) {\n //Search for corner for resize\n if (\n !skip_action &&\n node.resizable !== false &&\n isInsideRectangle(\n e.canvasX,\n e.canvasY,\n node.pos[0] + node.size[0] - 5,\n node.pos[1] + node.size[1] - 5,\n 10,\n 10\n )\n ) {\n\t\t\t\t\t\tthis.graph.beforeChange();\t\t\t\t\t\t\n this.resizing_node = node;\n this.canvas.style.cursor = \"se-resize\";\n skip_action = true;\n } else {\n //search for outputs\n if (node.outputs) {\n for ( var i = 0, l = node.outputs.length; i < l; ++i ) {\n var output = node.outputs[i];\n var link_pos = node.getConnectionPos(false, i);\n if (\n isInsideRectangle(\n e.canvasX,\n e.canvasY,\n link_pos[0] - 15,\n link_pos[1] - 10,\n 30,\n 20\n )\n ) {\n this.connecting_node = node;\n this.connecting_output = output;\n this.connecting_pos = node.getConnectionPos( false, i );\n this.connecting_slot = i;\n\n if (e.shiftKey) {\n node.disconnectOutput(i);\n }\n\n if (is_double_click) {\n if (node.onOutputDblClick) {\n node.onOutputDblClick(i, e);\n }\n } else {\n if (node.onOutputClick) {\n node.onOutputClick(i, e);\n }\n }\n\n skip_action = true;\n break;\n }\n }\n }\n\n //search for inputs\n if (node.inputs) {\n for ( var i = 0, l = node.inputs.length; i < l; ++i ) {\n var input = node.inputs[i];\n var link_pos = node.getConnectionPos(true, i);\n if (\n isInsideRectangle(\n e.canvasX,\n e.canvasY,\n link_pos[0] - 15,\n link_pos[1] - 10,\n 30,\n 20\n )\n ) {\n if (is_double_click) {\n if (node.onInputDblClick) {\n node.onInputDblClick(i, e);\n }\n } else {\n if (node.onInputClick) {\n node.onInputClick(i, e);\n }\n }\n\n if (input.link !== null) {\n var link_info = this.graph.links[\n input.link\n ]; //before disconnecting\n node.disconnectInput(i);\n\n if (\n this.allow_reconnect_links ||\n e.shiftKey\n ) {\n this.connecting_node = this.graph._nodes_by_id[\n link_info.origin_id\n ];\n this.connecting_slot =\n link_info.origin_slot;\n this.connecting_output = this.connecting_node.outputs[\n this.connecting_slot\n ];\n this.connecting_pos = this.connecting_node.getConnectionPos( false, this.connecting_slot );\n }\n\n this.dirty_bgcanvas = true;\n skip_action = true;\n }\n }\n }\n }\n } //not resizing\n }\n\n //it wasn't clicked on the links boxes\n if (!skip_action) {\n var block_drag_node = false;\n\t\t\t\t\tvar pos = [e.canvasX - node.pos[0], e.canvasY - node.pos[1]];\n\n //widgets\n var widget = this.processNodeWidgets( node, this.graph_mouse, e );\n if (widget) {\n block_drag_node = true;\n this.node_widget = [node, widget];\n }\n\n //double clicking\n if (is_double_click && this.selected_nodes[node.id]) {\n //double click node\n if (node.onDblClick) {\n node.onDblClick( e, pos, this );\n }\n this.processNodeDblClicked(node);\n block_drag_node = true;\n }\n\n //if do not capture mouse\n if ( node.onMouseDown && node.onMouseDown( e, pos, this ) ) {\n block_drag_node = true;\n } else {\n\t\t\t\t\t\t//open subgraph button\n\t\t\t\t\t\tif(node.subgraph && !node.skip_subgraph_button)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif ( !node.flags.collapsed && pos[0] > node.size[0] - LiteGraph.NODE_TITLE_HEIGHT && pos[1] < 0 ) {\n\t\t\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tthat.openSubgraph(node.subgraph);\n\t\t\t\t\t\t\t\t}, 10);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.live_mode) {\n\t\t\t\t\t\t\tclicking_canvas_bg = true;\n\t block_drag_node = true;\n\t\t\t\t\t\t}\n }\n\n if (!block_drag_node) {\n if (this.allow_dragnodes) {\n\t\t\t\t\t\t\tthis.graph.beforeChange();\n this.node_dragged = node;\n }\n if (!this.selected_nodes[node.id]) {\n this.processNodeSelected(node, e);\n }\n }\n\n this.dirty_canvas = true;\n }\n } //clicked outside of nodes\n else {\n //search for link connector\n\t\t\t\tif(!this.read_only) \n\t\t\t\t\tfor (var i = 0; i < this.visible_links.length; ++i) {\n\t\t\t\t\t\tvar link = this.visible_links[i];\n\t\t\t\t\t\tvar center = link._pos;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!center ||\n\t\t\t\t\t\t\te.canvasX < center[0] - 4 ||\n\t\t\t\t\t\t\te.canvasX > center[0] + 4 ||\n\t\t\t\t\t\t\te.canvasY < center[1] - 4 ||\n\t\t\t\t\t\t\te.canvasY > center[1] + 4\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//link clicked\n\t\t\t\t\t\tthis.showLinkMenu(link, e);\n\t\t\t\t\t\tthis.over_link_center = null; //clear tooltip\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n this.selected_group = this.graph.getGroupOnPos( e.canvasX, e.canvasY );\n this.selected_group_resizing = false;\n if (this.selected_group && !this.read_only ) {\n if (e.ctrlKey) {\n this.dragging_rectangle = null;\n }\n\n var dist = distance( [e.canvasX, e.canvasY], [ this.selected_group.pos[0] + this.selected_group.size[0], this.selected_group.pos[1] + this.selected_group.size[1] ] );\n if (dist * this.ds.scale < 10) {\n this.selected_group_resizing = true;\n } else {\n this.selected_group.recomputeInsideNodes();\n }\n }\n\n if (is_double_click && !this.read_only && this.allow_searchbox) {\n this.showSearchBox(e);\n }\n\n clicking_canvas_bg = true;\n }\n\n if (!skip_action && clicking_canvas_bg && this.allow_dragcanvas) {\n this.dragging_canvas = true;\n }\n } else if (e.which == 2) {\n //middle button\n } else if (e.which == 3) {\n //right button\n\t\t\tif(!this.read_only)\n\t this.processContextMenu(node, e);\n }\n\n //TODO\n //if(this.node_selected != prev_selected)\n //\tthis.onNodeSelectionChange(this.node_selected);\n\n this.last_mouse[0] = e.localX;\n this.last_mouse[1] = e.localY;\n this.last_mouseclick = LiteGraph.getTime();\n this.last_mouse_dragging = true;\n\n /*\n\tif( (this.dirty_canvas || this.dirty_bgcanvas) && this.rendering_timer_id == null)\n\t\tthis.draw();\n\t*/\n\n this.graph.change();\n\n //this is to ensure to defocus(blur) if a text input element is on focus\n if (\n !ref_window.document.activeElement ||\n (ref_window.document.activeElement.nodeName.toLowerCase() !=\n \"input\" &&\n ref_window.document.activeElement.nodeName.toLowerCase() !=\n \"textarea\")\n ) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n if (this.onMouseDown) {\n this.onMouseDown(e);\n }\n\n return false;\n };\n\n /**\n * Called when a mouse move event has to be processed\n * @method processMouseMove\n **/\n LGraphCanvas.prototype.processMouseMove = function(e) {\n if (this.autoresize) {\n this.resize();\n }\n\n\t\tif( this.set_canvas_dirty_on_mouse_event )\n\t\t\tthis.dirty_canvas = true;\n\n if (!this.graph) {\n return;\n }\n\n LGraphCanvas.active_canvas = this;\n this.adjustMouseEvent(e);\n var mouse = [e.localX, e.localY];\n\t\tthis.mouse[0] = mouse[0];\n\t\tthis.mouse[1] = mouse[1];\n var delta = [\n mouse[0] - this.last_mouse[0],\n mouse[1] - this.last_mouse[1]\n ];\n this.last_mouse = mouse;\n this.graph_mouse[0] = e.canvasX;\n this.graph_mouse[1] = e.canvasY;\n\n\t\tif(this.block_click)\n\t\t{\n\t\t\te.preventDefault();\n\t\t\treturn false;\n\t\t}\n\n e.dragging = this.last_mouse_dragging;\n\n if (this.node_widget) {\n this.processNodeWidgets(\n this.node_widget[0],\n this.graph_mouse,\n e,\n this.node_widget[1]\n );\n this.dirty_canvas = true;\n }\n\n if (this.dragging_rectangle)\n\t\t{\n this.dragging_rectangle[2] = e.canvasX - this.dragging_rectangle[0];\n this.dragging_rectangle[3] = e.canvasY - this.dragging_rectangle[1];\n this.dirty_canvas = true;\n } \n\t\telse if (this.selected_group && !this.read_only)\n\t\t{\n //moving/resizing a group\n if (this.selected_group_resizing) {\n this.selected_group.size = [\n e.canvasX - this.selected_group.pos[0],\n e.canvasY - this.selected_group.pos[1]\n ];\n } else {\n var deltax = delta[0] / this.ds.scale;\n var deltay = delta[1] / this.ds.scale;\n this.selected_group.move(deltax, deltay, e.ctrlKey);\n if (this.selected_group._nodes.length) {\n this.dirty_canvas = true;\n }\n }\n this.dirty_bgcanvas = true;\n } else if (this.dragging_canvas) {\n this.ds.offset[0] += delta[0] / this.ds.scale;\n this.ds.offset[1] += delta[1] / this.ds.scale;\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n } else if (this.allow_interaction && !this.read_only) {\n if (this.connecting_node) {\n this.dirty_canvas = true;\n }\n\n //get node over\n var node = this.graph.getNodeOnPos(e.canvasX,e.canvasY,this.visible_nodes);\n\n //remove mouseover flag\n for (var i = 0, l = this.graph._nodes.length; i < l; ++i) {\n if (this.graph._nodes[i].mouseOver && node != this.graph._nodes[i] ) {\n //mouse leave\n this.graph._nodes[i].mouseOver = false;\n if (this.node_over && this.node_over.onMouseLeave) {\n this.node_over.onMouseLeave(e);\n }\n this.node_over = null;\n this.dirty_canvas = true;\n }\n }\n\n //mouse over a node\n if (node) {\n\n\t\t\t\tif(node.redraw_on_mouse)\n this.dirty_canvas = true;\n\n //this.canvas.style.cursor = \"move\";\n if (!node.mouseOver) {\n //mouse enter\n node.mouseOver = true;\n this.node_over = node;\n this.dirty_canvas = true;\n\n if (node.onMouseEnter) {\n node.onMouseEnter(e);\n }\n }\n\n //in case the node wants to do something\n if (node.onMouseMove) {\n node.onMouseMove( e, [e.canvasX - node.pos[0], e.canvasY - node.pos[1]], this );\n }\n\n //if dragging a link\n if (this.connecting_node) {\n var pos = this._highlight_input || [0, 0]; //to store the output of isOverNodeInput\n\n //on top of input\n if (this.isOverNodeBox(node, e.canvasX, e.canvasY)) {\n //mouse on top of the corner box, don't know what to do\n } else {\n //check if I have a slot below de mouse\n var slot = this.isOverNodeInput( node, e.canvasX, e.canvasY, pos );\n if (slot != -1 && node.inputs[slot]) {\n var slot_type = node.inputs[slot].type;\n if ( LiteGraph.isValidConnection( this.connecting_output.type, slot_type ) ) {\n this._highlight_input = pos;\n this._highlight_input_slot = node.inputs[slot];\n }\n } else {\n this._highlight_input = null;\n this._highlight_input_slot = null;\n }\n }\n }\n\n //Search for corner\n if (this.canvas) {\n if (\n isInsideRectangle(\n e.canvasX,\n e.canvasY,\n node.pos[0] + node.size[0] - 5,\n node.pos[1] + node.size[1] - 5,\n 5,\n 5\n )\n ) {\n this.canvas.style.cursor = \"se-resize\";\n } else {\n this.canvas.style.cursor = \"crosshair\";\n }\n }\n } else { //not over a node\n\n //search for link connector\n\t\t\t\tvar over_link = null;\n\t\t\t\tfor (var i = 0; i < this.visible_links.length; ++i) {\n\t\t\t\t\tvar link = this.visible_links[i];\n\t\t\t\t\tvar center = link._pos;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!center ||\n\t\t\t\t\t\te.canvasX < center[0] - 4 ||\n\t\t\t\t\t\te.canvasX > center[0] + 4 ||\n\t\t\t\t\t\te.canvasY < center[1] - 4 ||\n\t\t\t\t\t\te.canvasY > center[1] + 4\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tover_link = link;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif( over_link != this.over_link_center )\n\t\t\t\t{\n\t\t\t\t\tthis.over_link_center = over_link;\n\t this.dirty_canvas = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.canvas) {\n\t this.canvas.style.cursor = \"\";\n\t\t\t\t}\n\t\t\t} //end\n\n\t\t\t//send event to node if capturing input (used with widgets that allow drag outside of the area of the node)\n if ( this.node_capturing_input && this.node_capturing_input != node && this.node_capturing_input.onMouseMove ) {\n this.node_capturing_input.onMouseMove(e,[e.canvasX - this.node_capturing_input.pos[0],e.canvasY - this.node_capturing_input.pos[1]], this);\n }\n\n\t\t\t//node being dragged\n if (this.node_dragged && !this.live_mode) {\n\t\t\t\t//console.log(\"draggin!\",this.selected_nodes);\n for (var i in this.selected_nodes) {\n var n = this.selected_nodes[i];\n n.pos[0] += delta[0] / this.ds.scale;\n n.pos[1] += delta[1] / this.ds.scale;\n }\n\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n }\n\n if (this.resizing_node && !this.live_mode) {\n //convert mouse to node space\n\t\t\t\tvar desired_size = [ e.canvasX - this.resizing_node.pos[0], e.canvasY - this.resizing_node.pos[1] ];\n\t\t\t\tvar min_size = this.resizing_node.computeSize();\n\t\t\t\tdesired_size[0] = Math.max( min_size[0], desired_size[0] );\n\t\t\t\tdesired_size[1] = Math.max( min_size[1], desired_size[1] );\n\t\t\t\tthis.resizing_node.setSize( desired_size );\n\n this.canvas.style.cursor = \"se-resize\";\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n }\n }\n\n e.preventDefault();\n return false;\n };\n\n /**\n * Called when a mouse up event has to be processed\n * @method processMouseUp\n **/\n LGraphCanvas.prototype.processMouseUp = function(e) {\n\n\t\tif( this.set_canvas_dirty_on_mouse_event )\n\t\t\tthis.dirty_canvas = true;\n\n if (!this.graph)\n return;\n\n var window = this.getCanvasWindow();\n var document = window.document;\n LGraphCanvas.active_canvas = this;\n\n //restore the mousemove event back to the canvas\n\t\tif(!this.options.skip_events)\n\t\t{\n\t\t\tdocument.removeEventListener(\"mousemove\",this._mousemove_callback,true);\n\t\t\tthis.canvas.addEventListener(\"mousemove\",this._mousemove_callback,true);\n\t\t\tdocument.removeEventListener(\"mouseup\", this._mouseup_callback, true);\n\t\t}\n\n this.adjustMouseEvent(e);\n var now = LiteGraph.getTime();\n e.click_time = now - this.last_mouseclick;\n this.last_mouse_dragging = false;\n\t\tthis.last_click_position = null;\n\n\t\tif(this.block_click)\n\t\t{\n\t\t\tconsole.log(\"foo\");\n\t\t\tthis.block_click = false; //used to avoid sending twice a click in a immediate button\n\t\t}\n\n if (e.which == 1) {\n\n\t\t\tif( this.node_widget )\n\t\t\t{\n\t\t\t\tthis.processNodeWidgets( this.node_widget[0], this.graph_mouse, e );\n\t\t\t}\n\n //left button\n this.node_widget = null;\n\n if (this.selected_group) {\n var diffx =\n this.selected_group.pos[0] -\n Math.round(this.selected_group.pos[0]);\n var diffy =\n this.selected_group.pos[1] -\n Math.round(this.selected_group.pos[1]);\n this.selected_group.move(diffx, diffy, e.ctrlKey);\n this.selected_group.pos[0] = Math.round(\n this.selected_group.pos[0]\n );\n this.selected_group.pos[1] = Math.round(\n this.selected_group.pos[1]\n );\n if (this.selected_group._nodes.length) {\n this.dirty_canvas = true;\n }\n this.selected_group = null;\n }\n this.selected_group_resizing = false;\n\n if (this.dragging_rectangle) {\n if (this.graph) {\n var nodes = this.graph._nodes;\n var node_bounding = new Float32Array(4);\n this.deselectAllNodes();\n //compute bounding and flip if left to right\n var w = Math.abs(this.dragging_rectangle[2]);\n var h = Math.abs(this.dragging_rectangle[3]);\n var startx =\n this.dragging_rectangle[2] < 0\n ? this.dragging_rectangle[0] - w\n : this.dragging_rectangle[0];\n var starty =\n this.dragging_rectangle[3] < 0\n ? this.dragging_rectangle[1] - h\n : this.dragging_rectangle[1];\n this.dragging_rectangle[0] = startx;\n this.dragging_rectangle[1] = starty;\n this.dragging_rectangle[2] = w;\n this.dragging_rectangle[3] = h;\n\n //test against all nodes (not visible because the rectangle maybe start outside\n var to_select = [];\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n node.getBounding(node_bounding);\n if (\n !overlapBounding(\n this.dragging_rectangle,\n node_bounding\n )\n ) {\n continue;\n } //out of the visible area\n to_select.push(node);\n }\n if (to_select.length) {\n this.selectNodes(to_select);\n }\n }\n this.dragging_rectangle = null;\n } else if (this.connecting_node) {\n //dragging a connection\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n\n var node = this.graph.getNodeOnPos(\n e.canvasX,\n e.canvasY,\n this.visible_nodes\n );\n\n //node below mouse\n if (node) {\n if (\n this.connecting_output.type == LiteGraph.EVENT &&\n this.isOverNodeBox(node, e.canvasX, e.canvasY)\n ) {\n this.connecting_node.connect(\n this.connecting_slot,\n node,\n LiteGraph.EVENT\n );\n } else {\n //slot below mouse? connect\n var slot = this.isOverNodeInput(\n node,\n e.canvasX,\n e.canvasY\n );\n if (slot != -1) {\n this.connecting_node.connect(\n this.connecting_slot,\n node,\n slot\n );\n } else {\n //not on top of an input\n var input = node.getInputInfo(0);\n //auto connect\n if (\n this.connecting_output.type == LiteGraph.EVENT\n ) {\n this.connecting_node.connect(\n this.connecting_slot,\n node,\n LiteGraph.EVENT\n );\n } else if (\n input &&\n !input.link &&\n LiteGraph.isValidConnection(\n input.type && this.connecting_output.type\n )\n ) {\n this.connecting_node.connect(\n this.connecting_slot,\n node,\n 0\n );\n }\n }\n }\n }\n\n this.connecting_output = null;\n this.connecting_pos = null;\n this.connecting_node = null;\n this.connecting_slot = -1;\n } //not dragging connection\n else if (this.resizing_node) {\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n\t\t\t\tthis.graph.afterChange(this.resizing_node);\n this.resizing_node = null;\n } else if (this.node_dragged) {\n //node being dragged?\n var node = this.node_dragged;\n if (\n node &&\n e.click_time < 300 &&\n isInsideRectangle( e.canvasX, e.canvasY, node.pos[0], node.pos[1] - LiteGraph.NODE_TITLE_HEIGHT, LiteGraph.NODE_TITLE_HEIGHT, LiteGraph.NODE_TITLE_HEIGHT )\n ) {\n node.collapse();\n }\n\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n this.node_dragged.pos[0] = Math.round(this.node_dragged.pos[0]);\n this.node_dragged.pos[1] = Math.round(this.node_dragged.pos[1]);\n if (this.graph.config.align_to_grid || this.align_to_grid ) {\n this.node_dragged.alignToGrid();\n }\n\t\t\t\tif( this.onNodeMoved )\n\t\t\t\t\tthis.onNodeMoved( this.node_dragged );\n\t\t\t\tthis.graph.afterChange(this.node_dragged);\n this.node_dragged = null;\n } //no node being dragged\n else {\n //get node over\n var node = this.graph.getNodeOnPos(\n e.canvasX,\n e.canvasY,\n this.visible_nodes\n );\n\n if (!node && e.click_time < 300) {\n this.deselectAllNodes();\n }\n\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n\n if (this.node_over && this.node_over.onMouseUp) {\n this.node_over.onMouseUp( e, [ e.canvasX - this.node_over.pos[0], e.canvasY - this.node_over.pos[1] ], this );\n }\n if (\n this.node_capturing_input &&\n this.node_capturing_input.onMouseUp\n ) {\n this.node_capturing_input.onMouseUp(e, [\n e.canvasX - this.node_capturing_input.pos[0],\n e.canvasY - this.node_capturing_input.pos[1]\n ]);\n }\n }\n } else if (e.which == 2) {\n //middle button\n //trace(\"middle\");\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n } else if (e.which == 3) {\n //right button\n //trace(\"right\");\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n }\n\n /*\n\tif((this.dirty_canvas || this.dirty_bgcanvas) && this.rendering_timer_id == null)\n\t\tthis.draw();\n\t*/\n\n this.graph.change();\n\n e.stopPropagation();\n e.preventDefault();\n return false;\n };\n\n /**\n * Called when a mouse wheel event has to be processed\n * @method processMouseWheel\n **/\n LGraphCanvas.prototype.processMouseWheel = function(e) {\n if (!this.graph || !this.allow_dragcanvas) {\n return;\n }\n\n var delta = e.wheelDeltaY != null ? e.wheelDeltaY : e.detail * -60;\n\n this.adjustMouseEvent(e);\n\n\t\tvar x = e.localX;\n\t\tvar y = e.localY;\n\t\tvar is_inside = !this.viewport || ( this.viewport && x >= this.viewport[0] && x < (this.viewport[0] + this.viewport[2]) && y >= this.viewport[1] && y < (this.viewport[1] + this.viewport[3]) );\n\t\tif(!is_inside)\n\t\t\treturn;\n\n var scale = this.ds.scale;\n\n if (delta > 0) {\n scale *= 1.1;\n } else if (delta < 0) {\n scale *= 1 / 1.1;\n }\n\n //this.setZoom( scale, [ e.localX, e.localY ] );\n this.ds.changeScale(scale, [e.localX, e.localY]);\n\n this.graph.change();\n\n e.preventDefault();\n return false; // prevent default\n };\n\n /**\n * returns true if a position (in graph space) is on top of a node little corner box\n * @method isOverNodeBox\n **/\n LGraphCanvas.prototype.isOverNodeBox = function(node, canvasx, canvasy) {\n var title_height = LiteGraph.NODE_TITLE_HEIGHT;\n if (\n isInsideRectangle(\n canvasx,\n canvasy,\n node.pos[0] + 2,\n node.pos[1] + 2 - title_height,\n title_height - 4,\n title_height - 4\n )\n ) {\n return true;\n }\n return false;\n };\n\n /**\n * returns true if a position (in graph space) is on top of a node input slot\n * @method isOverNodeInput\n **/\n LGraphCanvas.prototype.isOverNodeInput = function(\n node,\n canvasx,\n canvasy,\n slot_pos\n ) {\n if (node.inputs) {\n for (var i = 0, l = node.inputs.length; i < l; ++i) {\n var input = node.inputs[i];\n var link_pos = node.getConnectionPos(true, i);\n var is_inside = false;\n if (node.horizontal) {\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 5,\n link_pos[1] - 10,\n 10,\n 20\n );\n } else {\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 10,\n link_pos[1] - 5,\n 40,\n 10\n );\n }\n if (is_inside) {\n if (slot_pos) {\n slot_pos[0] = link_pos[0];\n slot_pos[1] = link_pos[1];\n }\n return i;\n }\n }\n }\n return -1;\n };\n\n /**\n * process a key event\n * @method processKey\n **/\n LGraphCanvas.prototype.processKey = function(e) {\n if (!this.graph) {\n return;\n }\n\n var block_default = false;\n //console.log(e); //debug\n\n if (e.target.localName == \"input\") {\n return;\n }\n\n if (e.type == \"keydown\") {\n if (e.keyCode == 32) {\n //esc\n this.dragging_canvas = true;\n block_default = true;\n }\n\n //select all Control A\n if (e.keyCode == 65 && e.ctrlKey) {\n this.selectNodes();\n block_default = true;\n }\n\n if (e.code == \"KeyC\" && (e.metaKey || e.ctrlKey) && !e.shiftKey) {\n //copy\n if (this.selected_nodes) {\n this.copyToClipboard();\n block_default = true;\n }\n }\n\n if (e.code == \"KeyV\" && (e.metaKey || e.ctrlKey) && !e.shiftKey) {\n //paste\n this.pasteFromClipboard();\n }\n\n //delete or backspace\n if (e.keyCode == 46 || e.keyCode == 8) {\n if (\n e.target.localName != \"input\" &&\n e.target.localName != \"textarea\"\n ) {\n this.deleteSelectedNodes();\n block_default = true;\n }\n }\n\n //collapse\n //...\n\n //TODO\n if (this.selected_nodes) {\n for (var i in this.selected_nodes) {\n if (this.selected_nodes[i].onKeyDown) {\n this.selected_nodes[i].onKeyDown(e);\n }\n }\n }\n } else if (e.type == \"keyup\") {\n if (e.keyCode == 32) {\n this.dragging_canvas = false;\n }\n\n if (this.selected_nodes) {\n for (var i in this.selected_nodes) {\n if (this.selected_nodes[i].onKeyUp) {\n this.selected_nodes[i].onKeyUp(e);\n }\n }\n }\n }\n\n this.graph.change();\n\n if (block_default) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return false;\n }\n };\n\n LGraphCanvas.prototype.copyToClipboard = function() {\n var clipboard_info = {\n nodes: [],\n links: []\n };\n var index = 0;\n var selected_nodes_array = [];\n for (var i in this.selected_nodes) {\n var node = this.selected_nodes[i];\n node._relative_id = index;\n selected_nodes_array.push(node);\n index += 1;\n }\n\n for (var i = 0; i < selected_nodes_array.length; ++i) {\n var node = selected_nodes_array[i];\n\t\t\tvar cloned = node.clone();\n\t\t\tif(!cloned)\n\t\t\t{\n\t\t\t\tconsole.warn(\"node type not found: \" + node.type );\n\t\t\t\tcontinue;\n\t\t\t}\n clipboard_info.nodes.push(cloned.serialize());\n if (node.inputs && node.inputs.length) {\n for (var j = 0; j < node.inputs.length; ++j) {\n var input = node.inputs[j];\n if (!input || input.link == null) {\n continue;\n }\n var link_info = this.graph.links[input.link];\n if (!link_info) {\n continue;\n }\n var target_node = this.graph.getNodeById(\n link_info.origin_id\n );\n if (!target_node || !this.selected_nodes[target_node.id]) {\n //improve this by allowing connections to non-selected nodes\n continue;\n } //not selected\n clipboard_info.links.push([\n target_node._relative_id,\n link_info.origin_slot, //j,\n node._relative_id,\n link_info.target_slot\n ]);\n }\n }\n }\n localStorage.setItem(\n \"litegrapheditor_clipboard\",\n JSON.stringify(clipboard_info)\n );\n };\n\n LGraphCanvas.prototype.pasteFromClipboard = function() {\n var data = localStorage.getItem(\"litegrapheditor_clipboard\");\n if (!data) {\n return;\n }\n\n\t\tthis.graph.beforeChange();\n\n //create nodes\n var clipboard_info = JSON.parse(data);\n var nodes = [];\n for (var i = 0; i < clipboard_info.nodes.length; ++i) {\n var node_data = clipboard_info.nodes[i];\n var node = LiteGraph.createNode(node_data.type);\n if (node) {\n node.configure(node_data);\n node.pos[0] += 5;\n node.pos[1] += 5;\n this.graph.add(node);\n nodes.push(node);\n }\n }\n\n //create links\n for (var i = 0; i < clipboard_info.links.length; ++i) {\n var link_info = clipboard_info.links[i];\n var origin_node = nodes[link_info[0]];\n var target_node = nodes[link_info[2]];\n\t\t\tif( origin_node && target_node )\n\t origin_node.connect(link_info[1], target_node, link_info[3]);\n\t\t\telse\n\t\t\t\tconsole.warn(\"Warning, nodes missing on pasting\");\n }\n\n this.selectNodes(nodes);\n\n\t\tthis.graph.afterChange();\n };\n\n /**\n * process a item drop event on top the canvas\n * @method processDrop\n **/\n LGraphCanvas.prototype.processDrop = function(e) {\n e.preventDefault();\n this.adjustMouseEvent(e);\n\t\tvar x = e.localX;\n\t\tvar y = e.localY;\n\t\tvar is_inside = !this.viewport || ( this.viewport && x >= this.viewport[0] && x < (this.viewport[0] + this.viewport[2]) && y >= this.viewport[1] && y < (this.viewport[1] + this.viewport[3]) );\n\t\tif(!is_inside)\n\t\t\treturn;\n\n var pos = [e.canvasX, e.canvasY];\n\n\n var node = this.graph ? this.graph.getNodeOnPos(pos[0], pos[1]) : null;\n\n if (!node) {\n var r = null;\n if (this.onDropItem) {\n r = this.onDropItem(event);\n }\n if (!r) {\n this.checkDropItem(e);\n }\n return;\n }\n\n if (node.onDropFile || node.onDropData) {\n var files = e.dataTransfer.files;\n if (files && files.length) {\n for (var i = 0; i < files.length; i++) {\n var file = e.dataTransfer.files[0];\n var filename = file.name;\n var ext = LGraphCanvas.getFileExtension(filename);\n //console.log(file);\n\n if (node.onDropFile) {\n node.onDropFile(file);\n }\n\n if (node.onDropData) {\n //prepare reader\n var reader = new FileReader();\n reader.onload = function(event) {\n //console.log(event.target);\n var data = event.target.result;\n node.onDropData(data, filename, file);\n };\n\n //read data\n var type = file.type.split(\"/\")[0];\n if (type == \"text\" || type == \"\") {\n reader.readAsText(file);\n } else if (type == \"image\") {\n reader.readAsDataURL(file);\n } else {\n reader.readAsArrayBuffer(file);\n }\n }\n }\n }\n }\n\n if (node.onDropItem) {\n if (node.onDropItem(event)) {\n return true;\n }\n }\n\n if (this.onDropItem) {\n return this.onDropItem(event);\n }\n\n return false;\n };\n\n //called if the graph doesn't have a default drop item behaviour\n LGraphCanvas.prototype.checkDropItem = function(e) {\n if (e.dataTransfer.files.length) {\n var file = e.dataTransfer.files[0];\n var ext = LGraphCanvas.getFileExtension(file.name).toLowerCase();\n var nodetype = LiteGraph.node_types_by_file_extension[ext];\n if (nodetype) {\n\t\t\t\tthis.graph.beforeChange();\n var node = LiteGraph.createNode(nodetype.type);\n node.pos = [e.canvasX, e.canvasY];\n this.graph.add(node);\n if (node.onDropFile) {\n node.onDropFile(file);\n }\n\t\t\t\tthis.graph.afterChange();\n }\n }\n };\n\n LGraphCanvas.prototype.processNodeDblClicked = function(n) {\n if (this.onShowNodePanel) {\n this.onShowNodePanel(n);\n }\n\t\telse\n\t\t{\n\t\t\tthis.showShowNodePanel(n);\n\t\t}\n\n if (this.onNodeDblClicked) {\n this.onNodeDblClicked(n);\n }\n\n this.setDirty(true);\n };\n\n LGraphCanvas.prototype.processNodeSelected = function(node, e) {\n this.selectNode(node, e && e.shiftKey);\n if (this.onNodeSelected) {\n this.onNodeSelected(node);\n }\n };\n\n /**\n * selects a given node (or adds it to the current selection)\n * @method selectNode\n **/\n LGraphCanvas.prototype.selectNode = function(\n node,\n add_to_current_selection\n ) {\n if (node == null) {\n this.deselectAllNodes();\n } else {\n this.selectNodes([node], add_to_current_selection);\n }\n };\n\n /**\n * selects several nodes (or adds them to the current selection)\n * @method selectNodes\n **/\n LGraphCanvas.prototype.selectNodes = function( nodes, add_to_current_selection )\n\t{\n if (!add_to_current_selection) {\n this.deselectAllNodes();\n }\n\n nodes = nodes || this.graph._nodes;\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n if (node.is_selected) {\n continue;\n }\n\n if (!node.is_selected && node.onSelected) {\n node.onSelected();\n }\n node.is_selected = true;\n this.selected_nodes[node.id] = node;\n\n if (node.inputs) {\n for (var j = 0; j < node.inputs.length; ++j) {\n this.highlighted_links[node.inputs[j].link] = true;\n }\n }\n if (node.outputs) {\n for (var j = 0; j < node.outputs.length; ++j) {\n var out = node.outputs[j];\n if (out.links) {\n for (var k = 0; k < out.links.length; ++k) {\n this.highlighted_links[out.links[k]] = true;\n }\n }\n }\n }\n }\n\n\t\tif(\tthis.onSelectionChange )\n\t\t\tthis.onSelectionChange( this.selected_nodes );\n\n this.setDirty(true);\n };\n\n /**\n * removes a node from the current selection\n * @method deselectNode\n **/\n LGraphCanvas.prototype.deselectNode = function(node) {\n if (!node.is_selected) {\n return;\n }\n if (node.onDeselected) {\n node.onDeselected();\n }\n node.is_selected = false;\n\n if (this.onNodeDeselected) {\n this.onNodeDeselected(node);\n }\n\n //remove highlighted\n if (node.inputs) {\n for (var i = 0; i < node.inputs.length; ++i) {\n delete this.highlighted_links[node.inputs[i].link];\n }\n }\n if (node.outputs) {\n for (var i = 0; i < node.outputs.length; ++i) {\n var out = node.outputs[i];\n if (out.links) {\n for (var j = 0; j < out.links.length; ++j) {\n delete this.highlighted_links[out.links[j]];\n }\n }\n }\n }\n };\n\n /**\n * removes all nodes from the current selection\n * @method deselectAllNodes\n **/\n LGraphCanvas.prototype.deselectAllNodes = function() {\n if (!this.graph) {\n return;\n }\n var nodes = this.graph._nodes;\n for (var i = 0, l = nodes.length; i < l; ++i) {\n var node = nodes[i];\n if (!node.is_selected) {\n continue;\n }\n if (node.onDeselected) {\n node.onDeselected();\n }\n node.is_selected = false;\n\t\t\tif (this.onNodeDeselected) {\n\t\t\t\tthis.onNodeDeselected(node);\n\t\t\t}\n }\n this.selected_nodes = {};\n this.current_node = null;\n this.highlighted_links = {};\n\t\tif(\tthis.onSelectionChange )\n\t\t\tthis.onSelectionChange( this.selected_nodes );\n this.setDirty(true);\n };\n\n /**\n * deletes all nodes in the current selection from the graph\n * @method deleteSelectedNodes\n **/\n LGraphCanvas.prototype.deleteSelectedNodes = function() {\n\n\t\tthis.graph.beforeChange();\n\n for (var i in this.selected_nodes) {\n var node = this.selected_nodes[i];\n\n\t\t\tif(node.block_delete)\n\t\t\t\tcontinue;\n\n\t\t\t//autoconnect when possible (very basic, only takes into account first input-output)\n\t\t\tif(node.inputs && node.inputs.length && node.outputs && node.outputs.length && LiteGraph.isValidConnection( node.inputs[0].type, node.outputs[0].type ) && node.inputs[0].link && node.outputs[0].links && node.outputs[0].links.length ) \n\t\t\t{\n\t\t\t\tvar input_link = node.graph.links[ node.inputs[0].link ];\n\t\t\t\tvar output_link = node.graph.links[ node.outputs[0].links[0] ];\n\t\t\t\tvar input_node = node.getInputNode(0);\n\t\t\t\tvar output_node = node.getOutputNodes(0)[0];\n\t\t\t\tif(input_node && output_node)\n\t\t\t\t\tinput_node.connect( input_link.origin_slot, output_node, output_link.target_slot );\n\t\t\t}\n this.graph.remove(node);\n\t\t\tif (this.onNodeDeselected) {\n\t\t\t\tthis.onNodeDeselected(node);\n\t\t\t}\n }\n this.selected_nodes = {};\n this.current_node = null;\n this.highlighted_links = {};\n this.setDirty(true);\n\t\tthis.graph.afterChange();\n };\n\n /**\n * centers the camera on a given node\n * @method centerOnNode\n **/\n LGraphCanvas.prototype.centerOnNode = function(node) {\n this.ds.offset[0] =\n -node.pos[0] -\n node.size[0] * 0.5 +\n (this.canvas.width * 0.5) / this.ds.scale;\n this.ds.offset[1] =\n -node.pos[1] -\n node.size[1] * 0.5 +\n (this.canvas.height * 0.5) / this.ds.scale;\n this.setDirty(true, true);\n };\n\n /**\n * adds some useful properties to a mouse event, like the position in graph coordinates\n * @method adjustMouseEvent\n **/\n LGraphCanvas.prototype.adjustMouseEvent = function(e) {\n if (this.canvas) {\n var b = this.canvas.getBoundingClientRect();\n e.localX = e.clientX - b.left;\n e.localY = e.clientY - b.top;\n } else {\n e.localX = e.clientX;\n e.localY = e.clientY;\n }\n\n e.deltaX = e.localX - this.last_mouse_position[0];\n e.deltaY = e.localY - this.last_mouse_position[1];\n\n this.last_mouse_position[0] = e.localX;\n this.last_mouse_position[1] = e.localY;\n\n e.canvasX = e.localX / this.ds.scale - this.ds.offset[0];\n e.canvasY = e.localY / this.ds.scale - this.ds.offset[1];\n };\n\n /**\n * changes the zoom level of the graph (default is 1), you can pass also a place used to pivot the zoom\n * @method setZoom\n **/\n LGraphCanvas.prototype.setZoom = function(value, zooming_center) {\n this.ds.changeScale(value, zooming_center);\n /*\n\tif(!zooming_center && this.canvas)\n\t\tzooming_center = [this.canvas.width * 0.5,this.canvas.height * 0.5];\n\n\tvar center = this.convertOffsetToCanvas( zooming_center );\n\n\tthis.ds.scale = value;\n\n\tif(this.scale > this.max_zoom)\n\t\tthis.scale = this.max_zoom;\n\telse if(this.scale < this.min_zoom)\n\t\tthis.scale = this.min_zoom;\n\n\tvar new_center = this.convertOffsetToCanvas( zooming_center );\n\tvar delta_offset = [new_center[0] - center[0], new_center[1] - center[1]];\n\n\tthis.offset[0] += delta_offset[0];\n\tthis.offset[1] += delta_offset[1];\n\t*/\n\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n };\n\n /**\n * converts a coordinate from graph coordinates to canvas2D coordinates\n * @method convertOffsetToCanvas\n **/\n LGraphCanvas.prototype.convertOffsetToCanvas = function(pos, out) {\n return this.ds.convertOffsetToCanvas(pos, out);\n };\n\n /**\n * converts a coordinate from Canvas2D coordinates to graph space\n * @method convertCanvasToOffset\n **/\n LGraphCanvas.prototype.convertCanvasToOffset = function(pos, out) {\n return this.ds.convertCanvasToOffset(pos, out);\n };\n\n //converts event coordinates from canvas2D to graph coordinates\n LGraphCanvas.prototype.convertEventToCanvasOffset = function(e) {\n var rect = this.canvas.getBoundingClientRect();\n return this.convertCanvasToOffset([\n e.clientX - rect.left,\n e.clientY - rect.top\n ]);\n };\n\n /**\n * brings a node to front (above all other nodes)\n * @method bringToFront\n **/\n LGraphCanvas.prototype.bringToFront = function(node) {\n var i = this.graph._nodes.indexOf(node);\n if (i == -1) {\n return;\n }\n\n this.graph._nodes.splice(i, 1);\n this.graph._nodes.push(node);\n };\n\n /**\n * sends a node to the back (below all other nodes)\n * @method sendToBack\n **/\n LGraphCanvas.prototype.sendToBack = function(node) {\n var i = this.graph._nodes.indexOf(node);\n if (i == -1) {\n return;\n }\n\n this.graph._nodes.splice(i, 1);\n this.graph._nodes.unshift(node);\n };\n\n /* Interaction */\n\n /* LGraphCanvas render */\n var temp = new Float32Array(4);\n\n /**\n * checks which nodes are visible (inside the camera area)\n * @method computeVisibleNodes\n **/\n LGraphCanvas.prototype.computeVisibleNodes = function(nodes, out) {\n var visible_nodes = out || [];\n visible_nodes.length = 0;\n nodes = nodes || this.graph._nodes;\n for (var i = 0, l = nodes.length; i < l; ++i) {\n var n = nodes[i];\n\n //skip rendering nodes in live mode\n if (this.live_mode && !n.onDrawBackground && !n.onDrawForeground) {\n continue;\n }\n\n if (!overlapBounding(this.visible_area, n.getBounding(temp))) {\n continue;\n } //out of the visible area\n\n visible_nodes.push(n);\n }\n return visible_nodes;\n };\n\n /**\n * renders the whole canvas content, by rendering in two separated canvas, one containing the background grid and the connections, and one containing the nodes)\n * @method draw\n **/\n LGraphCanvas.prototype.draw = function(force_canvas, force_bgcanvas) {\n if (!this.canvas || this.canvas.width == 0 || this.canvas.height == 0) {\n return;\n }\n\n //fps counting\n var now = LiteGraph.getTime();\n this.render_time = (now - this.last_draw_time) * 0.001;\n this.last_draw_time = now;\n\n if (this.graph) {\n this.ds.computeVisibleArea(this.viewport);\n }\n\n if (\n this.dirty_bgcanvas ||\n force_bgcanvas ||\n this.always_render_background ||\n (this.graph &&\n this.graph._last_trigger_time &&\n now - this.graph._last_trigger_time < 1000)\n ) {\n this.drawBackCanvas();\n }\n\n if (this.dirty_canvas || force_canvas) {\n this.drawFrontCanvas();\n }\n\n this.fps = this.render_time ? 1.0 / this.render_time : 0;\n this.frame += 1;\n };\n\n /**\n * draws the front canvas (the one containing all the nodes)\n * @method drawFrontCanvas\n **/\n LGraphCanvas.prototype.drawFrontCanvas = function() {\n this.dirty_canvas = false;\n\n if (!this.ctx) {\n this.ctx = this.bgcanvas.getContext(\"2d\");\n }\n var ctx = this.ctx;\n if (!ctx) {\n //maybe is using webgl...\n return;\n }\n\n var canvas = this.canvas;\n if ( ctx.start2D && !this.viewport ) {\n ctx.start2D();\n\t\t\tctx.restore();\n\t\t\tctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n\n //clip dirty area if there is one, otherwise work in full canvas\n\t\tvar area = this.viewport || this.dirty_area;\n if (area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect( area[0],area[1],area[2],area[3] );\n ctx.clip();\n }\n\n //clear\n //canvas.width = canvas.width;\n if (this.clear_background) {\n\t\t\tif(area)\n\t ctx.clearRect( area[0],area[1],area[2],area[3] );\n\t\t\telse\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n //draw bg canvas\n if (this.bgcanvas == this.canvas) {\n this.drawBackCanvas();\n } else {\n ctx.drawImage( this.bgcanvas, 0, 0 );\n }\n\n //rendering\n if (this.onRender) {\n this.onRender(canvas, ctx);\n }\n\n //info widget\n if (this.show_info) {\n this.renderInfo(ctx, area ? area[0] : 0, area ? area[1] : 0 );\n }\n\n if (this.graph) {\n //apply transformations\n ctx.save();\n this.ds.toCanvasContext(ctx);\n\n //draw nodes\n var drawn_nodes = 0;\n var visible_nodes = this.computeVisibleNodes(\n null,\n this.visible_nodes\n );\n\n for (var i = 0; i < visible_nodes.length; ++i) {\n var node = visible_nodes[i];\n\n //transform coords system\n ctx.save();\n ctx.translate(node.pos[0], node.pos[1]);\n\n //Draw\n this.drawNode(node, ctx);\n drawn_nodes += 1;\n\n //Restore\n ctx.restore();\n }\n\n //on top (debug)\n if (this.render_execution_order) {\n this.drawExecutionOrder(ctx);\n }\n\n //connections ontop?\n if (this.graph.config.links_ontop) {\n if (!this.live_mode) {\n this.drawConnections(ctx);\n }\n }\n\n //current connection (the one being dragged by the mouse)\n if (this.connecting_pos != null) {\n ctx.lineWidth = this.connections_width;\n var link_color = null;\n\n switch (this.connecting_output.type) {\n case LiteGraph.EVENT:\n link_color = LiteGraph.EVENT_LINK_COLOR;\n break;\n default:\n link_color = LiteGraph.CONNECTING_LINK_COLOR;\n }\n\n //the connection being dragged by the mouse\n this.renderLink(\n ctx,\n this.connecting_pos,\n [this.graph_mouse[0], this.graph_mouse[1]],\n null,\n false,\n null,\n link_color,\n this.connecting_output.dir ||\n (this.connecting_node.horizontal\n ? LiteGraph.DOWN\n : LiteGraph.RIGHT),\n LiteGraph.CENTER\n );\n\n ctx.beginPath();\n if (\n this.connecting_output.type === LiteGraph.EVENT ||\n this.connecting_output.shape === LiteGraph.BOX_SHAPE\n ) {\n ctx.rect(\n this.connecting_pos[0] - 6 + 0.5,\n this.connecting_pos[1] - 5 + 0.5,\n 14,\n 10\n );\n } else if (this.connecting_output.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(this.connecting_pos[0] + 8, this.connecting_pos[1] + 0.5);\n ctx.lineTo(this.connecting_pos[0] - 4, this.connecting_pos[1] + 6 + 0.5);\n ctx.lineTo(this.connecting_pos[0] - 4, this.connecting_pos[1] - 6 + 0.5);\n ctx.closePath();\n } \n else {\n ctx.arc(\n this.connecting_pos[0],\n this.connecting_pos[1],\n 4,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n\n ctx.fillStyle = \"#ffcc00\";\n if (this._highlight_input) {\n ctx.beginPath();\n var shape = this._highlight_input_slot.shape;\n if (shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(this._highlight_input[0] + 8, this._highlight_input[1] + 0.5);\n ctx.lineTo(this._highlight_input[0] - 4, this._highlight_input[1] + 6 + 0.5);\n ctx.lineTo(this._highlight_input[0] - 4, this._highlight_input[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n ctx.arc(\n this._highlight_input[0],\n this._highlight_input[1],\n 6,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n }\n }\n\n\t\t\t//the selection rectangle\n if (this.dragging_rectangle) {\n ctx.strokeStyle = \"#FFF\";\n ctx.strokeRect(\n this.dragging_rectangle[0],\n this.dragging_rectangle[1],\n this.dragging_rectangle[2],\n this.dragging_rectangle[3]\n );\n }\n\n\t\t\t//on top of link center\n\t\t\tif(this.over_link_center && this.render_link_tooltip)\n\t\t\t\tthis.drawLinkTooltip( ctx, this.over_link_center );\n\t\t\telse\n\t\t\t\tif(this.onDrawLinkTooltip) //to remove\n\t\t\t\t\tthis.onDrawLinkTooltip(ctx,null);\n\n\t\t\t//custom info\n if (this.onDrawForeground) {\n this.onDrawForeground(ctx, this.visible_rect);\n }\n\n ctx.restore();\n }\n\n\t\t//draws panel in the corner \n\t\tif (this._graph_stack && this._graph_stack.length) {\n\t\t\tthis.drawSubgraphPanel( ctx );\n\t\t}\n\n\n if (this.onDrawOverlay) {\n this.onDrawOverlay(ctx);\n }\n\n if (area) {\n ctx.restore();\n }\n\n if (ctx.finish2D) {\n //this is a function I use in webgl renderer\n ctx.finish2D();\n }\n };\n\n /**\n * draws the panel in the corner that shows subgraph properties\n * @method drawSubgraphPanel\n **/\n\tLGraphCanvas.prototype.drawSubgraphPanel = function(ctx) {\n\t\tvar subgraph = this.graph;\n\t\tvar subnode = subgraph._subgraph_node;\n\t\tif(!subnode)\n\t\t{\n\t\t\tconsole.warn(\"subgraph without subnode\");\n\t\t\treturn;\n\t\t}\n\n\t\tvar num = subnode.inputs ? subnode.inputs.length : 0;\n\t\tvar w = 300;\n\t\tvar h = Math.floor(LiteGraph.NODE_SLOT_HEIGHT * 1.6);\n\n\t\tctx.fillStyle = \"#111\";\n\t\tctx.globalAlpha = 0.8;\n\t\tctx.beginPath();\n\t\tctx.roundRect(10,10,w, (num + 1) * h + 50,8 );\n\t\tctx.fill();\n\t\tctx.globalAlpha = 1;\n\n\t\tctx.fillStyle = \"#888\";\n\t\tctx.font = \"14px Arial\";\n\t\tctx.textAlign = \"left\";\n\t\tctx.fillText( \"Graph Inputs\", 20, 34 );\n\t\tvar pos = this.mouse;\n\n\t\tif( this.drawButton( w - 20, 20,20,20, \"X\", \"#151515\" ) )\n\t\t{\n\t\t\tthis.closeSubgraph();\n\t\t\treturn;\n\t\t}\n\n\t\tvar y = 50;\n\t\tctx.font = \"20px Arial\";\n\t\tif(subnode.inputs)\n\t\tfor(var i = 0; i < subnode.inputs.length; ++i)\n\t\t{\n\t\t\tvar input = subnode.inputs[i];\n\t\t\tif(input.not_subgraph_input)\n\t\t\t\tcontinue;\n\n\t\t\t//input button clicked\n\t\t\tif( this.drawButton( 20,y+2,w - 20, h - 2 ) )\n\t\t\t{\n\t\t\t\tvar type = subnode.constructor.input_node_type || \"graph/input\";\n\t\t\t\tthis.graph.beforeChange();\n\t\t\t\tvar newnode = LiteGraph.createNode( type );\n\t\t\t\tif(newnode)\n\t\t\t\t{\n\t\t\t\t\tsubgraph.add( newnode );\n\t\t\t\t\tthis.block_click = false;\n\t\t\t\t\tthis.last_click_position = null;\n\t\t\t\t\tthis.selectNodes([newnode]);\n\t\t\t\t\tthis.node_dragged = newnode;\n\t\t\t\t\tthis.dragging_canvas = false;\n\t\t\t\t\tnewnode.setProperty(\"name\",input.name);\n\t\t\t\t\tnewnode.setProperty(\"type\",input.type);\n\t\t\t\t\tthis.node_dragged.pos[0] = this.graph_mouse[0] - 5;\n\t\t\t\t\tthis.node_dragged.pos[1] = this.graph_mouse[1] - 5;\n\t\t\t\t\tthis.graph.afterChange();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tconsole.error(\"graph input node not found:\",type);\n\t\t\t}\n\n\t\t\tctx.fillStyle = \"#9C9\";\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(w - 16,y + h * 0.5,5,0,2*Math.PI);\n\t\t\tctx.fill();\n\n\t\t\tctx.fillStyle = \"#AAA\";\n\t\t\tctx.fillText( input.name, 50, y + h*0.75 );\n\t\t\tvar tw = ctx.measureText( input.name );\n\t\t\tctx.fillStyle = \"#777\";\n\t\t\tctx.fillText( input.type, 50 + tw.width + 10, y + h*0.75 );\n\n\t\t\ty += h;\n\t\t}\n\n\t\t//add + button\n\t\tif( this.drawButton( 20,y+2,w - 20, h - 2, \"+\", \"#151515\", \"#222\" ) )\n\t\t{\n\t\t\tthis.showSubgraphPropertiesDialog( subnode );\n\t\t}\n\t}\n\n\t//Draws a button into the canvas overlay and computes if it was clicked using the immediate gui paradigm\n\tLGraphCanvas.prototype.drawButton = function( x,y,w,h, text, bgcolor, hovercolor, textcolor )\n\t{\n\t\tvar ctx = this.ctx;\n\t\tbgcolor = bgcolor || LiteGraph.NODE_DEFAULT_COLOR;\n\t\thovercolor = hovercolor || \"#555\";\n\t\ttextcolor = textcolor || LiteGraph.NODE_TEXT_COLOR;\n\n\t\tvar pos = this.mouse;\n\t\tvar hover = LiteGraph.isInsideRectangle( pos[0], pos[1], x,y,w,h );\n\t\tpos = this.last_click_position;\n\t\tvar clicked = pos && LiteGraph.isInsideRectangle( pos[0], pos[1], x,y,w,h );\n\n\t\tctx.fillStyle = hover ? hovercolor : bgcolor;\n\t\tif(clicked)\n\t\t\tctx.fillStyle = \"#AAA\";\n\t\tctx.beginPath();\n\t\tctx.roundRect(x,y,w,h,4 );\n\t\tctx.fill();\n\n\t\tif(text != null)\n\t\t{\n\t\t\tif(text.constructor == String)\n\t\t\t{\n\t\t\t\tctx.fillStyle = textcolor;\n\t\t\t\tctx.textAlign = \"center\";\n\t\t\t\tctx.font = ((h * 0.65)|0) + \"px Arial\";\n\t\t\t\tctx.fillText( text, x + w * 0.5,y + h * 0.75 );\n\t\t\t\tctx.textAlign = \"left\";\n\t\t\t}\n\t\t}\n\n\t\tvar was_clicked = clicked && !this.block_click;\n\t\tif(clicked)\n\t\t\tthis.blockClick();\n\t\treturn was_clicked;\n\t}\n\n\tLGraphCanvas.prototype.isAreaClicked = function( x,y,w,h, hold_click )\n\t{\n\t\tvar pos = this.mouse;\n\t\tvar hover = LiteGraph.isInsideRectangle( pos[0], pos[1], x,y,w,h );\n\t\tpos = this.last_click_position;\n\t\tvar clicked = pos && LiteGraph.isInsideRectangle( pos[0], pos[1], x,y,w,h );\n\t\tvar was_clicked = clicked && !this.block_click;\n\t\tif(clicked && hold_click)\n\t\t\tthis.blockClick();\n\t\treturn was_clicked;\n\t}\n\n /**\n * draws some useful stats in the corner of the canvas\n * @method renderInfo\n **/\n LGraphCanvas.prototype.renderInfo = function(ctx, x, y) {\n x = x || 10;\n y = y || this.canvas.height - 80;\n\n ctx.save();\n ctx.translate(x, y);\n\n ctx.font = \"10px Arial\";\n ctx.fillStyle = \"#888\";\n\t\tctx.textAlign = \"left\";\n if (this.graph) {\n ctx.fillText( \"T: \" + this.graph.globaltime.toFixed(2) + \"s\", 5, 13 * 1 );\n ctx.fillText(\"I: \" + this.graph.iteration, 5, 13 * 2 );\n ctx.fillText(\"N: \" + this.graph._nodes.length + \" [\" + this.visible_nodes.length + \"]\", 5, 13 * 3 );\n ctx.fillText(\"V: \" + this.graph._version, 5, 13 * 4);\n ctx.fillText(\"FPS:\" + this.fps.toFixed(2), 5, 13 * 5);\n } else {\n ctx.fillText(\"No graph selected\", 5, 13 * 1);\n }\n ctx.restore();\n };\n\n /**\n * draws the back canvas (the one containing the background and the connections)\n * @method drawBackCanvas\n **/\n LGraphCanvas.prototype.drawBackCanvas = function() {\n var canvas = this.bgcanvas;\n if (\n canvas.width != this.canvas.width ||\n canvas.height != this.canvas.height\n ) {\n canvas.width = this.canvas.width;\n canvas.height = this.canvas.height;\n }\n\n if (!this.bgctx) {\n this.bgctx = this.bgcanvas.getContext(\"2d\");\n }\n var ctx = this.bgctx;\n if (ctx.start) {\n ctx.start();\n }\n\n\t\tvar viewport = this.viewport || [0,0,ctx.canvas.width,ctx.canvas.height];\n\n //clear\n if (this.clear_background) {\n ctx.clearRect( viewport[0], viewport[1], viewport[2], viewport[3] );\n }\n\n\t\t//show subgraph stack header\n if (this._graph_stack && this._graph_stack.length) {\n ctx.save();\n var parent_graph = this._graph_stack[this._graph_stack.length - 1];\n var subgraph_node = this.graph._subgraph_node;\n ctx.strokeStyle = subgraph_node.bgcolor;\n ctx.lineWidth = 10;\n ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);\n ctx.lineWidth = 1;\n ctx.font = \"40px Arial\";\n ctx.textAlign = \"center\";\n ctx.fillStyle = subgraph_node.bgcolor || \"#AAA\";\n var title = \"\";\n for (var i = 1; i < this._graph_stack.length; ++i) {\n title +=\n this._graph_stack[i]._subgraph_node.getTitle() + \" >> \";\n }\n ctx.fillText(\n title + subgraph_node.getTitle(),\n canvas.width * 0.5,\n 40\n );\n ctx.restore();\n }\n\n var bg_already_painted = false;\n if (this.onRenderBackground) {\n bg_already_painted = this.onRenderBackground(canvas, ctx);\n }\n\n //reset in case of error\n if ( !this.viewport )\n\t\t{\n\t ctx.restore();\n\t\t ctx.setTransform(1, 0, 0, 1, 0, 0);\n\t\t}\n this.visible_links.length = 0;\n\n if (this.graph) {\n //apply transformations\n ctx.save();\n this.ds.toCanvasContext(ctx);\n\n //render BG\n if (\n this.background_image &&\n this.ds.scale > 0.5 &&\n !bg_already_painted\n ) {\n if (this.zoom_modify_alpha) {\n ctx.globalAlpha =\n (1.0 - 0.5 / this.ds.scale) * this.editor_alpha;\n } else {\n ctx.globalAlpha = this.editor_alpha;\n }\n ctx.imageSmoothingEnabled = ctx.mozImageSmoothingEnabled = ctx.imageSmoothingEnabled = false;\n if (\n !this._bg_img ||\n this._bg_img.name != this.background_image\n ) {\n this._bg_img = new Image();\n this._bg_img.name = this.background_image;\n this._bg_img.src = this.background_image;\n var that = this;\n this._bg_img.onload = function() {\n that.draw(true, true);\n };\n }\n\n var pattern = null;\n if (this._pattern == null && this._bg_img.width > 0) {\n pattern = ctx.createPattern(this._bg_img, \"repeat\");\n this._pattern_img = this._bg_img;\n this._pattern = pattern;\n } else {\n pattern = this._pattern;\n }\n if (pattern) {\n ctx.fillStyle = pattern;\n ctx.fillRect(\n this.visible_area[0],\n this.visible_area[1],\n this.visible_area[2],\n this.visible_area[3]\n );\n ctx.fillStyle = \"transparent\";\n }\n\n ctx.globalAlpha = 1.0;\n ctx.imageSmoothingEnabled = ctx.mozImageSmoothingEnabled = ctx.imageSmoothingEnabled = true;\n }\n\n //groups\n if (this.graph._groups.length && !this.live_mode) {\n this.drawGroups(canvas, ctx);\n }\n\n if (this.onDrawBackground) {\n this.onDrawBackground(ctx, this.visible_area);\n }\n if (this.onBackgroundRender) {\n //LEGACY\n console.error(\n \"WARNING! onBackgroundRender deprecated, now is named onDrawBackground \"\n );\n this.onBackgroundRender = null;\n }\n\n //DEBUG: show clipping area\n //ctx.fillStyle = \"red\";\n //ctx.fillRect( this.visible_area[0] + 10, this.visible_area[1] + 10, this.visible_area[2] - 20, this.visible_area[3] - 20);\n\n //bg\n if (this.render_canvas_border) {\n ctx.strokeStyle = \"#235\";\n ctx.strokeRect(0, 0, canvas.width, canvas.height);\n }\n\n if (this.render_connections_shadows) {\n ctx.shadowColor = \"#000\";\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = 6;\n } else {\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n }\n\n //draw connections\n if (!this.live_mode) {\n this.drawConnections(ctx);\n }\n\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n\n //restore state\n ctx.restore();\n }\n\n if (ctx.finish) {\n ctx.finish();\n }\n\n this.dirty_bgcanvas = false;\n this.dirty_canvas = true; //to force to repaint the front canvas with the bgcanvas\n };\n\n var temp_vec2 = new Float32Array(2);\n\n /**\n * draws the given node inside the canvas\n * @method drawNode\n **/\n LGraphCanvas.prototype.drawNode = function(node, ctx) {\n var glow = false;\n this.current_node = node;\n\n var color = node.color || node.constructor.color || LiteGraph.NODE_DEFAULT_COLOR;\n var bgcolor = node.bgcolor || node.constructor.bgcolor || LiteGraph.NODE_DEFAULT_BGCOLOR;\n\n //shadow and glow\n if (node.mouseOver) {\n glow = true;\n }\n\n var low_quality = this.ds.scale < 0.6; //zoomed out\n\n //only render if it forces it to do it\n if (this.live_mode) {\n if (!node.flags.collapsed) {\n ctx.shadowColor = \"transparent\";\n if (node.onDrawForeground) {\n node.onDrawForeground(ctx, this, this.canvas);\n }\n }\n return;\n }\n\n var editor_alpha = this.editor_alpha;\n ctx.globalAlpha = editor_alpha;\n\n if (this.render_shadows && !low_quality) {\n ctx.shadowColor = LiteGraph.DEFAULT_SHADOW_COLOR;\n ctx.shadowOffsetX = 2 * this.ds.scale;\n ctx.shadowOffsetY = 2 * this.ds.scale;\n ctx.shadowBlur = 3 * this.ds.scale;\n } else {\n ctx.shadowColor = \"transparent\";\n }\n\n //custom draw collapsed method (draw after shadows because they are affected)\n if (\n node.flags.collapsed &&\n node.onDrawCollapsed &&\n node.onDrawCollapsed(ctx, this) == true\n ) {\n return;\n }\n\n //clip if required (mask)\n var shape = node._shape || LiteGraph.BOX_SHAPE;\n var size = temp_vec2;\n temp_vec2.set(node.size);\n var horizontal = node.horizontal; // || node.flags.horizontal;\n\n if (node.flags.collapsed) {\n ctx.font = this.inner_text_font;\n var title = node.getTitle ? node.getTitle() : node.title;\n if (title != null) {\n node._collapsed_width = Math.min(\n node.size[0],\n ctx.measureText(title).width +\n LiteGraph.NODE_TITLE_HEIGHT * 2\n ); //LiteGraph.NODE_COLLAPSED_WIDTH;\n size[0] = node._collapsed_width;\n size[1] = 0;\n }\n }\n\n if (node.clip_area) {\n //Start clipping\n ctx.save();\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE) {\n ctx.rect(0, 0, size[0], size[1]);\n } else if (shape == LiteGraph.ROUND_SHAPE) {\n ctx.roundRect(0, 0, size[0], size[1], 10);\n } else if (shape == LiteGraph.CIRCLE_SHAPE) {\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5,\n 0,\n Math.PI * 2\n );\n }\n ctx.clip();\n }\n\n //draw shape\n if (node.has_errors) {\n bgcolor = \"red\";\n }\n this.drawNodeShape(\n node,\n ctx,\n size,\n color,\n bgcolor,\n node.is_selected,\n node.mouseOver\n );\n ctx.shadowColor = \"transparent\";\n\n //draw foreground\n if (node.onDrawForeground) {\n node.onDrawForeground(ctx, this, this.canvas);\n }\n\n //connection slots\n ctx.textAlign = horizontal ? \"center\" : \"left\";\n ctx.font = this.inner_text_font;\n\n var render_text = !low_quality;\n\n var out_slot = this.connecting_output;\n ctx.lineWidth = 1;\n\n var max_y = 0;\n var slot_pos = new Float32Array(2); //to reuse\n\n //render inputs and outputs\n if (!node.flags.collapsed) {\n //input connection slots\n if (node.inputs) {\n for (var i = 0; i < node.inputs.length; i++) {\n var slot = node.inputs[i];\n\n ctx.globalAlpha = editor_alpha;\n //change opacity of incompatible slots when dragging a connection\n if ( this.connecting_node && !LiteGraph.isValidConnection( slot.type , out_slot.type) ) {\n ctx.globalAlpha = 0.4 * editor_alpha;\n }\n\n ctx.fillStyle =\n slot.link != null\n ? slot.color_on ||\n this.default_connection_color.input_on\n : slot.color_off ||\n this.default_connection_color.input_off;\n\n var pos = node.getConnectionPos(true, i, slot_pos);\n pos[0] -= node.pos[0];\n pos[1] -= node.pos[1];\n if (max_y < pos[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5) {\n max_y = pos[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n }\n\n ctx.beginPath();\n\n if (\n slot.type === LiteGraph.EVENT ||\n slot.shape === LiteGraph.BOX_SHAPE\n ) {\n if (horizontal) {\n ctx.rect(\n pos[0] - 5 + 0.5,\n pos[1] - 8 + 0.5,\n 10,\n 14\n );\n } else {\n ctx.rect(\n pos[0] - 6 + 0.5,\n pos[1] - 5 + 0.5,\n 14,\n 10\n );\n }\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(pos[0] + 8, pos[1] + 0.5);\n ctx.lineTo(pos[0] - 4, pos[1] + 6 + 0.5);\n ctx.lineTo(pos[0] - 4, pos[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n\t\t\t\t\t\tif(low_quality)\n\t ctx.rect(pos[0] - 4, pos[1] - 4, 8, 8 ); //faster\n\t\t\t\t\t\telse\n\t ctx.arc(pos[0], pos[1], 4, 0, Math.PI * 2);\n }\n ctx.fill();\n\n //render name\n if (render_text) {\n var text = slot.label != null ? slot.label : slot.name;\n if (text) {\n ctx.fillStyle = LiteGraph.NODE_TEXT_COLOR;\n if (horizontal || slot.dir == LiteGraph.UP) {\n ctx.fillText(text, pos[0], pos[1] - 10);\n } else {\n ctx.fillText(text, pos[0] + 10, pos[1] + 5);\n }\n }\n }\n }\n }\n\n //output connection slots\n if (this.connecting_node) {\n ctx.globalAlpha = 0.4 * editor_alpha;\n }\n\n ctx.textAlign = horizontal ? \"center\" : \"right\";\n ctx.strokeStyle = \"black\";\n if (node.outputs) {\n for (var i = 0; i < node.outputs.length; i++) {\n var slot = node.outputs[i];\n\n var pos = node.getConnectionPos(false, i, slot_pos);\n pos[0] -= node.pos[0];\n pos[1] -= node.pos[1];\n if (max_y < pos[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5) {\n max_y = pos[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n }\n\n ctx.fillStyle =\n slot.links && slot.links.length\n ? slot.color_on ||\n this.default_connection_color.output_on\n : slot.color_off ||\n this.default_connection_color.output_off;\n ctx.beginPath();\n //ctx.rect( node.size[0] - 14,i*14,10,10);\n\n if (\n slot.type === LiteGraph.EVENT ||\n slot.shape === LiteGraph.BOX_SHAPE\n ) {\n if (horizontal) {\n ctx.rect(\n pos[0] - 5 + 0.5,\n pos[1] - 8 + 0.5,\n 10,\n 14\n );\n } else {\n ctx.rect(\n pos[0] - 6 + 0.5,\n pos[1] - 5 + 0.5,\n 14,\n 10\n );\n }\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(pos[0] + 8, pos[1] + 0.5);\n ctx.lineTo(pos[0] - 4, pos[1] + 6 + 0.5);\n ctx.lineTo(pos[0] - 4, pos[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n\t\t\t\t\t\tif(low_quality)\n\t ctx.rect(pos[0] - 4, pos[1] - 4, 8, 8 );\n\t\t\t\t\t\telse\n\t ctx.arc(pos[0], pos[1], 4, 0, Math.PI * 2);\n }\n\n //trigger\n //if(slot.node_id != null && slot.slot == -1)\n //\tctx.fillStyle = \"#F85\";\n\n //if(slot.links != null && slot.links.length)\n ctx.fill();\n\t\t\t\t\tif(!low_quality)\n\t ctx.stroke();\n\n //render output name\n if (render_text) {\n var text = slot.label != null ? slot.label : slot.name;\n if (text) {\n ctx.fillStyle = LiteGraph.NODE_TEXT_COLOR;\n if (horizontal || slot.dir == LiteGraph.DOWN) {\n ctx.fillText(text, pos[0], pos[1] - 8);\n } else {\n ctx.fillText(text, pos[0] - 10, pos[1] + 5);\n }\n }\n }\n }\n }\n\n ctx.textAlign = \"left\";\n ctx.globalAlpha = 1;\n\n if (node.widgets) {\n\t\t\t\tvar widgets_y = max_y;\n if (horizontal || node.widgets_up) {\n widgets_y = 2;\n }\n\t\t\t\tif( node.widgets_start_y != null )\n widgets_y = node.widgets_start_y;\n this.drawNodeWidgets(\n node,\n widgets_y,\n ctx,\n this.node_widget && this.node_widget[0] == node\n ? this.node_widget[1]\n : null\n );\n }\n } else if (this.render_collapsed_slots) {\n //if collapsed\n var input_slot = null;\n var output_slot = null;\n\n //get first connected slot to render\n if (node.inputs) {\n for (var i = 0; i < node.inputs.length; i++) {\n var slot = node.inputs[i];\n if (slot.link == null) {\n continue;\n }\n input_slot = slot;\n break;\n }\n }\n if (node.outputs) {\n for (var i = 0; i < node.outputs.length; i++) {\n var slot = node.outputs[i];\n if (!slot.links || !slot.links.length) {\n continue;\n }\n output_slot = slot;\n }\n }\n\n if (input_slot) {\n var x = 0;\n var y = LiteGraph.NODE_TITLE_HEIGHT * -0.5; //center\n if (horizontal) {\n x = node._collapsed_width * 0.5;\n y = -LiteGraph.NODE_TITLE_HEIGHT;\n }\n ctx.fillStyle = \"#686\";\n ctx.beginPath();\n if (\n slot.type === LiteGraph.EVENT ||\n slot.shape === LiteGraph.BOX_SHAPE\n ) {\n ctx.rect(x - 7 + 0.5, y - 4, 14, 8);\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(x + 8, y);\n ctx.lineTo(x + -4, y - 4);\n ctx.lineTo(x + -4, y + 4);\n ctx.closePath();\n } else {\n ctx.arc(x, y, 4, 0, Math.PI * 2);\n }\n ctx.fill();\n }\n\n if (output_slot) {\n var x = node._collapsed_width;\n var y = LiteGraph.NODE_TITLE_HEIGHT * -0.5; //center\n if (horizontal) {\n x = node._collapsed_width * 0.5;\n y = 0;\n }\n ctx.fillStyle = \"#686\";\n ctx.strokeStyle = \"black\";\n ctx.beginPath();\n if (\n slot.type === LiteGraph.EVENT ||\n slot.shape === LiteGraph.BOX_SHAPE\n ) {\n ctx.rect(x - 7 + 0.5, y - 4, 14, 8);\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(x + 6, y);\n ctx.lineTo(x - 6, y - 4);\n ctx.lineTo(x - 6, y + 4);\n ctx.closePath();\n } else {\n ctx.arc(x, y, 4, 0, Math.PI * 2);\n }\n ctx.fill();\n //ctx.stroke();\n }\n }\n\n if (node.clip_area) {\n ctx.restore();\n }\n\n ctx.globalAlpha = 1.0;\n };\n\n\t//used by this.over_link_center\n\tLGraphCanvas.prototype.drawLinkTooltip = function( ctx, link )\n\t{\n\t\tvar pos = link._pos;\n\t\tctx.fillStyle = \"black\";\n\t\tctx.beginPath();\n\t\tctx.arc( pos[0], pos[1], 3, 0, Math.PI * 2 );\n\t\tctx.fill();\n\n\t\tif(link.data == null)\n\t\t\treturn;\n\n\t\tif(this.onDrawLinkTooltip)\n\t\t\tif( this.onDrawLinkTooltip(ctx,link,this) == true )\n\t\t\t\treturn;\n\n\t\tvar data = link.data;\n\t\tvar text = null;\n\n\t\tif( data.constructor === Number )\n\t\t\ttext = data.toFixed(2);\n\t\telse if( data.constructor === String )\n\t\t\ttext = \"\\\"\" + data + \"\\\"\";\n\t\telse if( data.constructor === Boolean )\n\t\t\ttext = String(data);\n\t\telse if (data.toToolTip)\n\t\t\ttext = data.toToolTip();\n\t\telse\n\t\t\ttext = \"[\" + data.constructor.name + \"]\";\n\n\t\tif(text == null)\n\t\t\treturn;\n\t\ttext = text.substr(0,30); //avoid weird\n\n\t\tctx.font = \"14px Courier New\";\n\t\tvar info = ctx.measureText(text);\n\t\tvar w = info.width + 20;\n\t\tvar h = 24;\n\t\tctx.shadowColor = \"black\";\n\t\tctx.shadowOffsetX = 2;\n\t\tctx.shadowOffsetY = 2;\n\t\tctx.shadowBlur = 3;\n\t\tctx.fillStyle = \"#454\";\n\t\tctx.beginPath();\n\t\tctx.roundRect( pos[0] - w*0.5, pos[1] - 15 - h, w, h,3, 3);\n\t\tctx.moveTo( pos[0] - 10, pos[1] - 15 );\n\t\tctx.lineTo( pos[0] + 10, pos[1] - 15 );\n\t\tctx.lineTo( pos[0], pos[1] - 5 );\n\t\tctx.fill();\n ctx.shadowColor = \"transparent\";\n\t\tctx.textAlign = \"center\";\n\t\tctx.fillStyle = \"#CEC\";\n\t\tctx.fillText(text, pos[0], pos[1] - 15 - h * 0.3);\n\t}\n\n /**\n * draws the shape of the given node in the canvas\n * @method drawNodeShape\n **/\n var tmp_area = new Float32Array(4);\n\n LGraphCanvas.prototype.drawNodeShape = function(\n node,\n ctx,\n size,\n fgcolor,\n bgcolor,\n selected,\n mouse_over\n ) {\n //bg rect\n ctx.strokeStyle = fgcolor;\n ctx.fillStyle = bgcolor;\n\n var title_height = LiteGraph.NODE_TITLE_HEIGHT;\n var low_quality = this.ds.scale < 0.5;\n\n //render node area depending on shape\n var shape =\n node._shape || node.constructor.shape || LiteGraph.ROUND_SHAPE;\n\n var title_mode = node.constructor.title_mode;\n\n var render_title = true;\n if (title_mode == LiteGraph.TRANSPARENT_TITLE) {\n render_title = false;\n } else if (title_mode == LiteGraph.AUTOHIDE_TITLE && mouse_over) {\n render_title = true;\n }\n\n var area = tmp_area;\n area[0] = 0; //x\n area[1] = render_title ? -title_height : 0; //y\n area[2] = size[0] + 1; //w\n area[3] = render_title ? size[1] + title_height : size[1]; //h\n\n var old_alpha = ctx.globalAlpha;\n\n //full node shape\n //if(node.flags.collapsed)\n {\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE || low_quality) {\n ctx.fillRect(area[0], area[1], area[2], area[3]);\n } else if (\n shape == LiteGraph.ROUND_SHAPE ||\n shape == LiteGraph.CARD_SHAPE\n ) {\n ctx.roundRect(\n area[0],\n area[1],\n area[2],\n area[3],\n this.round_radius,\n shape == LiteGraph.CARD_SHAPE ? 0 : this.round_radius\n );\n } else if (shape == LiteGraph.CIRCLE_SHAPE) {\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n\n\t\t\t//separator\n\t\t\tif(!node.flags.collapsed)\n\t\t\t{\n\t\t\t\tctx.shadowColor = \"transparent\";\n\t\t\t\tctx.fillStyle = \"rgba(0,0,0,0.2)\";\n\t\t\t\tctx.fillRect(0, -1, area[2], 2);\n\t\t\t}\n }\n ctx.shadowColor = \"transparent\";\n\n if (node.onDrawBackground) {\n node.onDrawBackground(ctx, this, this.canvas, this.graph_mouse );\n }\n\n //title bg (remember, it is rendered ABOVE the node)\n if (render_title || title_mode == LiteGraph.TRANSPARENT_TITLE) {\n //title bar\n if (node.onDrawTitleBar) {\n node.onDrawTitleBar( ctx, title_height, size, this.ds.scale, fgcolor );\n } else if (\n title_mode != LiteGraph.TRANSPARENT_TITLE &&\n (node.constructor.title_color || this.render_title_colored)\n ) {\n var title_color = node.constructor.title_color || fgcolor;\n\n if (node.flags.collapsed) {\n ctx.shadowColor = LiteGraph.DEFAULT_SHADOW_COLOR;\n }\n\n //* gradient test\n if (this.use_gradients) {\n var grad = LGraphCanvas.gradients[title_color];\n if (!grad) {\n grad = LGraphCanvas.gradients[ title_color ] = ctx.createLinearGradient(0, 0, 400, 0);\n grad.addColorStop(0, title_color);\n grad.addColorStop(1, \"#000\");\n }\n ctx.fillStyle = grad;\n } else {\n ctx.fillStyle = title_color;\n }\n\n //ctx.globalAlpha = 0.5 * old_alpha;\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE || low_quality) {\n ctx.rect(0, -title_height, size[0] + 1, title_height);\n } else if ( shape == LiteGraph.ROUND_SHAPE || shape == LiteGraph.CARD_SHAPE ) {\n ctx.roundRect(\n 0,\n -title_height,\n size[0] + 1,\n title_height,\n this.round_radius,\n node.flags.collapsed ? this.round_radius : 0\n );\n }\n ctx.fill();\n ctx.shadowColor = \"transparent\";\n }\n\n //title box\n var box_size = 10;\n if (node.onDrawTitleBox) {\n node.onDrawTitleBox(ctx, title_height, size, this.ds.scale);\n } else if (\n shape == LiteGraph.ROUND_SHAPE ||\n shape == LiteGraph.CIRCLE_SHAPE ||\n shape == LiteGraph.CARD_SHAPE\n ) {\n if (low_quality) {\n ctx.fillStyle = \"black\";\n ctx.beginPath();\n ctx.arc(\n title_height * 0.5,\n title_height * -0.5,\n box_size * 0.5 + 1,\n 0,\n Math.PI * 2\n );\n ctx.fill();\n }\n\n ctx.fillStyle = node.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR;\n\t\t\t\tif(low_quality)\n\t\t\t\t\tctx.fillRect( title_height * 0.5 - box_size *0.5, title_height * -0.5 - box_size *0.5, box_size , box_size );\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.arc(\n\t\t\t\t\t\ttitle_height * 0.5,\n\t\t\t\t\t\ttitle_height * -0.5,\n\t\t\t\t\t\tbox_size * 0.5,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tMath.PI * 2\n\t\t\t\t\t);\n\t\t\t\t\tctx.fill();\n\t\t\t\t}\n } else {\n if (low_quality) {\n ctx.fillStyle = \"black\";\n ctx.fillRect(\n (title_height - box_size) * 0.5 - 1,\n (title_height + box_size) * -0.5 - 1,\n box_size + 2,\n box_size + 2\n );\n }\n ctx.fillStyle = node.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR;\n ctx.fillRect(\n (title_height - box_size) * 0.5,\n (title_height + box_size) * -0.5,\n box_size,\n box_size\n );\n }\n ctx.globalAlpha = old_alpha;\n\n //title text\n if (node.onDrawTitleText) {\n node.onDrawTitleText(\n ctx,\n title_height,\n size,\n this.ds.scale,\n this.title_text_font,\n selected\n );\n }\n if (!low_quality) {\n ctx.font = this.title_text_font;\n var title = String(node.getTitle());\n if (title) {\n if (selected) {\n ctx.fillStyle = LiteGraph.NODE_SELECTED_TITLE_COLOR;\n } else {\n ctx.fillStyle =\n node.constructor.title_text_color ||\n this.node_title_color;\n }\n if (node.flags.collapsed) {\n ctx.textAlign = \"left\";\n var measure = ctx.measureText(title);\n ctx.fillText(\n title.substr(0,20), //avoid urls too long\n title_height,// + measure.width * 0.5,\n LiteGraph.NODE_TITLE_TEXT_Y - title_height\n );\n ctx.textAlign = \"left\";\n } else {\n ctx.textAlign = \"left\";\n ctx.fillText(\n title,\n title_height,\n LiteGraph.NODE_TITLE_TEXT_Y - title_height\n );\n }\n }\n }\n\n\t\t\t//subgraph box\n\t\t\tif (!node.flags.collapsed && node.subgraph && !node.skip_subgraph_button) {\n\t\t\t\tvar w = LiteGraph.NODE_TITLE_HEIGHT;\n\t\t\t\tvar x = node.size[0] - w;\n\t\t\t\tvar over = LiteGraph.isInsideRectangle( this.graph_mouse[0] - node.pos[0], this.graph_mouse[1] - node.pos[1], x+2, -w+2, w-4, w-4 );\n\t\t\t\tctx.fillStyle = over ? \"#888\" : \"#555\";\n\t\t\t\tif( shape == LiteGraph.BOX_SHAPE || low_quality)\n\t\t\t\t\tctx.fillRect(x+2, -w+2, w-4, w-4);\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.roundRect(x+2, -w+2, w-4, w-4,4);\n\t\t\t\t\tctx.fill();\n\t\t\t\t}\n\t\t\t\tctx.fillStyle = \"#333\";\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(x + w * 0.2, -w * 0.6);\n\t\t\t\tctx.lineTo(x + w * 0.8, -w * 0.6);\n\t\t\t\tctx.lineTo(x + w * 0.5, -w * 0.3);\n\t\t\t\tctx.fill();\n\t\t\t}\n\n\t\t\t//custom title render\n if (node.onDrawTitle) {\n node.onDrawTitle(ctx);\n }\n }\n\n //render selection marker\n if (selected) {\n if (node.onBounding) {\n node.onBounding(area);\n }\n\n if (title_mode == LiteGraph.TRANSPARENT_TITLE) {\n area[1] -= title_height;\n area[3] += title_height;\n }\n ctx.lineWidth = 1;\n ctx.globalAlpha = 0.8;\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE) {\n ctx.rect(\n -6 + area[0],\n -6 + area[1],\n 12 + area[2],\n 12 + area[3]\n );\n } else if (\n shape == LiteGraph.ROUND_SHAPE ||\n (shape == LiteGraph.CARD_SHAPE && node.flags.collapsed)\n ) {\n ctx.roundRect(\n -6 + area[0],\n -6 + area[1],\n 12 + area[2],\n 12 + area[3],\n this.round_radius * 2\n );\n } else if (shape == LiteGraph.CARD_SHAPE) {\n ctx.roundRect(\n -6 + area[0],\n -6 + area[1],\n 12 + area[2],\n 12 + area[3],\n this.round_radius * 2,\n 2\n );\n } else if (shape == LiteGraph.CIRCLE_SHAPE) {\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5 + 6,\n 0,\n Math.PI * 2\n );\n }\n ctx.strokeStyle = LiteGraph.NODE_BOX_OUTLINE_COLOR;\n ctx.stroke();\n ctx.strokeStyle = fgcolor;\n ctx.globalAlpha = 1;\n }\n };\n\n var margin_area = new Float32Array(4);\n var link_bounding = new Float32Array(4);\n var tempA = new Float32Array(2);\n var tempB = new Float32Array(2);\n\n /**\n * draws every connection visible in the canvas\n * OPTIMIZE THIS: pre-catch connections position instead of recomputing them every time\n * @method drawConnections\n **/\n LGraphCanvas.prototype.drawConnections = function(ctx) {\n var now = LiteGraph.getTime();\n var visible_area = this.visible_area;\n margin_area[0] = visible_area[0] - 20;\n margin_area[1] = visible_area[1] - 20;\n margin_area[2] = visible_area[2] + 40;\n margin_area[3] = visible_area[3] + 40;\n\n //draw connections\n ctx.lineWidth = this.connections_width;\n\n ctx.fillStyle = \"#AAA\";\n ctx.strokeStyle = \"#AAA\";\n ctx.globalAlpha = this.editor_alpha;\n //for every node\n var nodes = this.graph._nodes;\n for (var n = 0, l = nodes.length; n < l; ++n) {\n var node = nodes[n];\n //for every input (we render just inputs because it is easier as every slot can only have one input)\n if (!node.inputs || !node.inputs.length) {\n continue;\n }\n\n for (var i = 0; i < node.inputs.length; ++i) {\n var input = node.inputs[i];\n if (!input || input.link == null) {\n continue;\n }\n var link_id = input.link;\n var link = this.graph.links[link_id];\n if (!link) {\n continue;\n }\n\n //find link info\n var start_node = this.graph.getNodeById(link.origin_id);\n if (start_node == null) {\n continue;\n }\n var start_node_slot = link.origin_slot;\n var start_node_slotpos = null;\n if (start_node_slot == -1) {\n start_node_slotpos = [\n start_node.pos[0] + 10,\n start_node.pos[1] + 10\n ];\n } else {\n start_node_slotpos = start_node.getConnectionPos(\n false,\n start_node_slot,\n tempA\n );\n }\n var end_node_slotpos = node.getConnectionPos(true, i, tempB);\n\n //compute link bounding\n link_bounding[0] = start_node_slotpos[0];\n link_bounding[1] = start_node_slotpos[1];\n link_bounding[2] = end_node_slotpos[0] - start_node_slotpos[0];\n link_bounding[3] = end_node_slotpos[1] - start_node_slotpos[1];\n if (link_bounding[2] < 0) {\n link_bounding[0] += link_bounding[2];\n link_bounding[2] = Math.abs(link_bounding[2]);\n }\n if (link_bounding[3] < 0) {\n link_bounding[1] += link_bounding[3];\n link_bounding[3] = Math.abs(link_bounding[3]);\n }\n\n //skip links outside of the visible area of the canvas\n if (!overlapBounding(link_bounding, margin_area)) {\n continue;\n }\n\n var start_slot = start_node.outputs[start_node_slot];\n var end_slot = node.inputs[i];\n if (!start_slot || !end_slot) {\n continue;\n }\n var start_dir =\n start_slot.dir ||\n (start_node.horizontal ? LiteGraph.DOWN : LiteGraph.RIGHT);\n var end_dir =\n end_slot.dir ||\n (node.horizontal ? LiteGraph.UP : LiteGraph.LEFT);\n\n this.renderLink(\n ctx,\n start_node_slotpos,\n end_node_slotpos,\n link,\n false,\n 0,\n null,\n start_dir,\n end_dir\n );\n\n //event triggered rendered on top\n if (link && link._last_time && now - link._last_time < 1000) {\n var f = 2.0 - (now - link._last_time) * 0.002;\n var tmp = ctx.globalAlpha;\n ctx.globalAlpha = tmp * f;\n this.renderLink(\n ctx,\n start_node_slotpos,\n end_node_slotpos,\n link,\n true,\n f,\n \"white\",\n start_dir,\n end_dir\n );\n ctx.globalAlpha = tmp;\n }\n }\n }\n ctx.globalAlpha = 1;\n };\n\n /**\n * draws a link between two points\n * @method renderLink\n * @param {vec2} a start pos\n * @param {vec2} b end pos\n * @param {Object} link the link object with all the link info\n * @param {boolean} skip_border ignore the shadow of the link\n * @param {boolean} flow show flow animation (for events)\n * @param {string} color the color for the link\n * @param {number} start_dir the direction enum\n * @param {number} end_dir the direction enum\n * @param {number} num_sublines number of sublines (useful to represent vec3 or rgb)\n **/\n LGraphCanvas.prototype.renderLink = function(\n ctx,\n a,\n b,\n link,\n skip_border,\n flow,\n color,\n start_dir,\n end_dir,\n num_sublines\n ) {\n if (link) {\n this.visible_links.push(link);\n }\n\n //choose color\n if (!color && link) {\n color = link.color || LGraphCanvas.link_type_colors[link.type];\n }\n if (!color) {\n color = this.default_link_color;\n }\n if (link != null && this.highlighted_links[link.id]) {\n color = \"#FFF\";\n }\n\n start_dir = start_dir || LiteGraph.RIGHT;\n end_dir = end_dir || LiteGraph.LEFT;\n\n var dist = distance(a, b);\n\n if (this.render_connections_border && this.ds.scale > 0.6) {\n ctx.lineWidth = this.connections_width + 4;\n }\n ctx.lineJoin = \"round\";\n num_sublines = num_sublines || 1;\n if (num_sublines > 1) {\n ctx.lineWidth = 0.5;\n }\n\n //begin line shape\n ctx.beginPath();\n for (var i = 0; i < num_sublines; i += 1) {\n var offsety = (i - (num_sublines - 1) * 0.5) * 5;\n\n if (this.links_render_mode == LiteGraph.SPLINE_LINK) {\n ctx.moveTo(a[0], a[1] + offsety);\n var start_offset_x = 0;\n var start_offset_y = 0;\n var end_offset_x = 0;\n var end_offset_y = 0;\n switch (start_dir) {\n case LiteGraph.LEFT:\n start_offset_x = dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n start_offset_x = dist * 0.25;\n break;\n case LiteGraph.UP:\n start_offset_y = dist * -0.25;\n break;\n case LiteGraph.DOWN:\n start_offset_y = dist * 0.25;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n end_offset_x = dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n end_offset_x = dist * 0.25;\n break;\n case LiteGraph.UP:\n end_offset_y = dist * -0.25;\n break;\n case LiteGraph.DOWN:\n end_offset_y = dist * 0.25;\n break;\n }\n ctx.bezierCurveTo(\n a[0] + start_offset_x,\n a[1] + start_offset_y + offsety,\n b[0] + end_offset_x,\n b[1] + end_offset_y + offsety,\n b[0],\n b[1] + offsety\n );\n } else if (this.links_render_mode == LiteGraph.LINEAR_LINK) {\n ctx.moveTo(a[0], a[1] + offsety);\n var start_offset_x = 0;\n var start_offset_y = 0;\n var end_offset_x = 0;\n var end_offset_y = 0;\n switch (start_dir) {\n case LiteGraph.LEFT:\n start_offset_x = -1;\n break;\n case LiteGraph.RIGHT:\n start_offset_x = 1;\n break;\n case LiteGraph.UP:\n start_offset_y = -1;\n break;\n case LiteGraph.DOWN:\n start_offset_y = 1;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n end_offset_x = -1;\n break;\n case LiteGraph.RIGHT:\n end_offset_x = 1;\n break;\n case LiteGraph.UP:\n end_offset_y = -1;\n break;\n case LiteGraph.DOWN:\n end_offset_y = 1;\n break;\n }\n var l = 15;\n ctx.lineTo(\n a[0] + start_offset_x * l,\n a[1] + start_offset_y * l + offsety\n );\n ctx.lineTo(\n b[0] + end_offset_x * l,\n b[1] + end_offset_y * l + offsety\n );\n ctx.lineTo(b[0], b[1] + offsety);\n } else if (this.links_render_mode == LiteGraph.STRAIGHT_LINK) {\n ctx.moveTo(a[0], a[1]);\n var start_x = a[0];\n var start_y = a[1];\n var end_x = b[0];\n var end_y = b[1];\n if (start_dir == LiteGraph.RIGHT) {\n start_x += 10;\n } else {\n start_y += 10;\n }\n if (end_dir == LiteGraph.LEFT) {\n end_x -= 10;\n } else {\n end_y -= 10;\n }\n ctx.lineTo(start_x, start_y);\n ctx.lineTo((start_x + end_x) * 0.5, start_y);\n ctx.lineTo((start_x + end_x) * 0.5, end_y);\n ctx.lineTo(end_x, end_y);\n ctx.lineTo(b[0], b[1]);\n } else {\n return;\n } //unknown\n }\n\n //rendering the outline of the connection can be a little bit slow\n if (\n this.render_connections_border &&\n this.ds.scale > 0.6 &&\n !skip_border\n ) {\n ctx.strokeStyle = \"rgba(0,0,0,0.5)\";\n ctx.stroke();\n }\n\n ctx.lineWidth = this.connections_width;\n ctx.fillStyle = ctx.strokeStyle = color;\n ctx.stroke();\n //end line shape\n\n var pos = this.computeConnectionPoint(a, b, 0.5, start_dir, end_dir);\n if (link && link._pos) {\n link._pos[0] = pos[0];\n link._pos[1] = pos[1];\n }\n\n //render arrow in the middle\n if (\n this.ds.scale >= 0.6 &&\n this.highquality_render &&\n end_dir != LiteGraph.CENTER\n ) {\n //render arrow\n if (this.render_connection_arrows) {\n //compute two points in the connection\n var posA = this.computeConnectionPoint(\n a,\n b,\n 0.25,\n start_dir,\n end_dir\n );\n var posB = this.computeConnectionPoint(\n a,\n b,\n 0.26,\n start_dir,\n end_dir\n );\n var posC = this.computeConnectionPoint(\n a,\n b,\n 0.75,\n start_dir,\n end_dir\n );\n var posD = this.computeConnectionPoint(\n a,\n b,\n 0.76,\n start_dir,\n end_dir\n );\n\n //compute the angle between them so the arrow points in the right direction\n var angleA = 0;\n var angleB = 0;\n if (this.render_curved_connections) {\n angleA = -Math.atan2(posB[0] - posA[0], posB[1] - posA[1]);\n angleB = -Math.atan2(posD[0] - posC[0], posD[1] - posC[1]);\n } else {\n angleB = angleA = b[1] > a[1] ? 0 : Math.PI;\n }\n\n //render arrow\n ctx.save();\n ctx.translate(posA[0], posA[1]);\n ctx.rotate(angleA);\n ctx.beginPath();\n ctx.moveTo(-5, -3);\n ctx.lineTo(0, +7);\n ctx.lineTo(+5, -3);\n ctx.fill();\n ctx.restore();\n ctx.save();\n ctx.translate(posC[0], posC[1]);\n ctx.rotate(angleB);\n ctx.beginPath();\n ctx.moveTo(-5, -3);\n ctx.lineTo(0, +7);\n ctx.lineTo(+5, -3);\n ctx.fill();\n ctx.restore();\n }\n\n //circle\n ctx.beginPath();\n ctx.arc(pos[0], pos[1], 5, 0, Math.PI * 2);\n ctx.fill();\n }\n\n //render flowing points\n if (flow) {\n ctx.fillStyle = color;\n for (var i = 0; i < 5; ++i) {\n var f = (LiteGraph.getTime() * 0.001 + i * 0.2) % 1;\n var pos = this.computeConnectionPoint(\n a,\n b,\n f,\n start_dir,\n end_dir\n );\n ctx.beginPath();\n ctx.arc(pos[0], pos[1], 5, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n };\n\n //returns the link center point based on curvature\n LGraphCanvas.prototype.computeConnectionPoint = function(\n a,\n b,\n t,\n start_dir,\n end_dir\n ) {\n start_dir = start_dir || LiteGraph.RIGHT;\n end_dir = end_dir || LiteGraph.LEFT;\n\n var dist = distance(a, b);\n var p0 = a;\n var p1 = [a[0], a[1]];\n var p2 = [b[0], b[1]];\n var p3 = b;\n\n switch (start_dir) {\n case LiteGraph.LEFT:\n p1[0] += dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n p1[0] += dist * 0.25;\n break;\n case LiteGraph.UP:\n p1[1] += dist * -0.25;\n break;\n case LiteGraph.DOWN:\n p1[1] += dist * 0.25;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n p2[0] += dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n p2[0] += dist * 0.25;\n break;\n case LiteGraph.UP:\n p2[1] += dist * -0.25;\n break;\n case LiteGraph.DOWN:\n p2[1] += dist * 0.25;\n break;\n }\n\n var c1 = (1 - t) * (1 - t) * (1 - t);\n var c2 = 3 * ((1 - t) * (1 - t)) * t;\n var c3 = 3 * (1 - t) * (t * t);\n var c4 = t * t * t;\n\n var x = c1 * p0[0] + c2 * p1[0] + c3 * p2[0] + c4 * p3[0];\n var y = c1 * p0[1] + c2 * p1[1] + c3 * p2[1] + c4 * p3[1];\n return [x, y];\n };\n\n LGraphCanvas.prototype.drawExecutionOrder = function(ctx) {\n ctx.shadowColor = \"transparent\";\n ctx.globalAlpha = 0.25;\n\n ctx.textAlign = \"center\";\n ctx.strokeStyle = \"white\";\n ctx.globalAlpha = 0.75;\n\n var visible_nodes = this.visible_nodes;\n for (var i = 0; i < visible_nodes.length; ++i) {\n var node = visible_nodes[i];\n ctx.fillStyle = \"black\";\n ctx.fillRect(\n node.pos[0] - LiteGraph.NODE_TITLE_HEIGHT,\n node.pos[1] - LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT\n );\n if (node.order == 0) {\n ctx.strokeRect(\n node.pos[0] - LiteGraph.NODE_TITLE_HEIGHT + 0.5,\n node.pos[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5,\n LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT\n );\n }\n ctx.fillStyle = \"#FFF\";\n ctx.fillText(\n node.order,\n node.pos[0] + LiteGraph.NODE_TITLE_HEIGHT * -0.5,\n node.pos[1] - 6\n );\n }\n ctx.globalAlpha = 1;\n };\n\n /**\n * draws the widgets stored inside a node\n * @method drawNodeWidgets\n **/\n LGraphCanvas.prototype.drawNodeWidgets = function(\n node,\n posY,\n ctx,\n active_widget\n ) {\n if (!node.widgets || !node.widgets.length) {\n return 0;\n }\n var width = node.size[0];\n var widgets = node.widgets;\n posY += 2;\n var H = LiteGraph.NODE_WIDGET_HEIGHT;\n var show_text = this.ds.scale > 0.5;\n ctx.save();\n ctx.globalAlpha = this.editor_alpha;\n var outline_color = LiteGraph.WIDGET_OUTLINE_COLOR;\n var background_color = LiteGraph.WIDGET_BGCOLOR;\n var text_color = LiteGraph.WIDGET_TEXT_COLOR;\n\t\tvar secondary_text_color = LiteGraph.WIDGET_SECONDARY_TEXT_COLOR;\n var margin = 15;\n\n for (var i = 0; i < widgets.length; ++i) {\n var w = widgets[i];\n var y = posY;\n if (w.y) {\n y = w.y;\n }\n w.last_y = y;\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = \"#222\";\n ctx.textAlign = \"left\";\n\t\t\t//ctx.lineWidth = 2;\n\t\t\tif(w.disabled)\n\t\t\t\tctx.globalAlpha *= 0.5;\n\t\t\tvar widget_width = w.width || width;\n\n switch (w.type) {\n case \"button\":\n if (w.clicked) {\n ctx.fillStyle = \"#AAA\";\n w.clicked = false;\n this.dirty_canvas = true;\n }\n ctx.fillRect(margin, y, widget_width - margin * 2, H);\n\t\t\t\t\tif(show_text && !w.disabled)\n\t ctx.strokeRect( margin, y, widget_width - margin * 2, H );\n if (show_text) {\n ctx.textAlign = \"center\";\n ctx.fillStyle = text_color;\n ctx.fillText(w.name, widget_width * 0.5, y + H * 0.7);\n }\n break;\n case \"toggle\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n if (show_text)\n\t ctx.roundRect(margin, posY, widget_width - margin * 2, H, H * 0.5);\n\t\t\t\t\telse\n\t ctx.rect(margin, posY, widget_width - margin * 2, H );\n ctx.fill();\n\t\t\t\t\tif(show_text && !w.disabled)\n\t ctx.stroke();\n ctx.fillStyle = w.value ? \"#89A\" : \"#333\";\n ctx.beginPath();\n ctx.arc( widget_width - margin * 2, y + H * 0.5, H * 0.36, 0, Math.PI * 2 );\n ctx.fill();\n if (show_text) {\n ctx.fillStyle = secondary_text_color;\n if (w.name != null) {\n ctx.fillText(w.name, margin * 2, y + H * 0.7);\n }\n ctx.fillStyle = w.value ? text_color : secondary_text_color;\n ctx.textAlign = \"right\";\n ctx.fillText(\n w.value\n ? w.options.on || \"true\"\n : w.options.off || \"false\",\n widget_width - 40,\n y + H * 0.7\n );\n }\n break;\n case \"slider\":\n ctx.fillStyle = background_color;\n ctx.fillRect(margin, y, widget_width - margin * 2, H);\n var range = w.options.max - w.options.min;\n var nvalue = (w.value - w.options.min) / range;\n ctx.fillStyle = active_widget == w ? \"#89A\" : \"#678\";\n ctx.fillRect(margin, y, nvalue * (widget_width - margin * 2), H);\n\t\t\t\t\tif(show_text && !w.disabled)\n\t ctx.strokeRect(margin, y, widget_width - margin * 2, H);\n if (w.marker) {\n var marker_nvalue = (w.marker - w.options.min) / range;\n ctx.fillStyle = \"#AA9\";\n ctx.fillRect( margin + marker_nvalue * (widget_width - margin * 2), y, 2, H );\n }\n if (show_text) {\n ctx.textAlign = \"center\";\n ctx.fillStyle = text_color;\n ctx.fillText(\n w.name + \" \" + Number(w.value).toFixed(3),\n widget_width * 0.5,\n y + H * 0.7\n );\n }\n break;\n case \"number\":\n case \"combo\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n\t\t\t\t\tif(show_text)\n\t ctx.roundRect(margin, posY, widget_width - margin * 2, H, H * 0.5);\n\t\t\t\t\telse\n\t ctx.rect(margin, posY, widget_width - margin * 2, H );\n ctx.fill();\n if (show_text) {\n\t\t\t\t\t\tif(!w.disabled)\n\t\t ctx.stroke();\n ctx.fillStyle = text_color;\n\t\t\t\t\t\tif(!w.disabled)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\tctx.moveTo(margin + 16, posY + 5);\n\t\t\t\t\t\t\tctx.lineTo(margin + 6, posY + H * 0.5);\n\t\t\t\t\t\t\tctx.lineTo(margin + 16, posY + H - 5);\n\t\t\t\t\t\t\tctx.fill();\n\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\tctx.moveTo(widget_width - margin - 16, posY + 5);\n\t\t\t\t\t\t\tctx.lineTo(widget_width - margin - 6, posY + H * 0.5);\n\t\t\t\t\t\t\tctx.lineTo(widget_width - margin - 16, posY + H - 5);\n\t\t\t\t\t\t\tctx.fill();\n\t\t\t\t\t\t}\n ctx.fillStyle = secondary_text_color;\n ctx.fillText(w.name, margin * 2 + 5, y + H * 0.7);\n ctx.fillStyle = text_color;\n ctx.textAlign = \"right\";\n if (w.type == \"number\") {\n ctx.fillText(\n Number(w.value).toFixed(\n w.options.precision !== undefined\n ? w.options.precision\n : 3\n ),\n widget_width - margin * 2 - 20,\n y + H * 0.7\n );\n } else {\n\t\t\t\t\t\t\tvar v = w.value;\n\t\t\t\t\t\t\tif( w.options.values )\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvar values = w.options.values;\n\t\t\t\t\t\t\t\tif( values.constructor === Function )\n\t\t\t\t\t\t\t\t\tvalues = values();\n\t\t\t\t\t\t\t\tif(values && values.constructor !== Array)\n\t\t\t\t\t\t\t\t\tv = values[ w.value ];\n\t\t\t\t\t\t\t}\n ctx.fillText(\n v,\n widget_width - margin * 2 - 20,\n y + H * 0.7\n );\n }\n }\n break;\n case \"string\":\n case \"text\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n if (show_text)\n\t ctx.roundRect(margin, posY, widget_width - margin * 2, H, H * 0.5);\n\t\t\t\t\telse\n\t ctx.rect( margin, posY, widget_width - margin * 2, H );\n ctx.fill();\n\t if (show_text) {\n\t\t\t\t\t\tif(!w.disabled)\n\t\t\t\t\t\t\tctx.stroke();\n \t\t\t\t\tctx.save();\n\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\tctx.rect(margin, posY, widget_width - margin * 2, H);\n\t\t\t\t\t\tctx.clip();\n\n\t //ctx.stroke();\n ctx.fillStyle = secondary_text_color;\n if (w.name != null) {\n ctx.fillText(w.name, margin * 2, y + H * 0.7);\n }\n ctx.fillStyle = text_color;\n ctx.textAlign = \"right\";\n ctx.fillText(String(w.value).substr(0,30), widget_width - margin * 2, y + H * 0.7); //30 chars max\n\t\t\t\t\t\tctx.restore();\n }\n break;\n default:\n if (w.draw) {\n w.draw(ctx, node, widget_width, y, H);\n }\n break;\n }\n posY += (w.computeSize ? w.computeSize(widget_width)[1] : H) + 4;\n\t\t\tctx.globalAlpha = this.editor_alpha;\n\n }\n ctx.restore();\n\t\tctx.textAlign = \"left\";\n };\n\n /**\n * process an event on widgets\n * @method processNodeWidgets\n **/\n LGraphCanvas.prototype.processNodeWidgets = function(\n node,\n pos,\n event,\n active_widget\n ) {\n if (!node.widgets || !node.widgets.length) {\n return null;\n }\n\n var x = pos[0] - node.pos[0];\n var y = pos[1] - node.pos[1];\n var width = node.size[0];\n var that = this;\n var ref_window = this.getCanvasWindow();\n\n for (var i = 0; i < node.widgets.length; ++i) {\n var w = node.widgets[i];\n\t\t\tif(!w || w.disabled)\n\t\t\t\tcontinue;\n\t\t\tvar widget_height = w.computeSize ? w.computeSize(width)[1] : LiteGraph.NODE_WIDGET_HEIGHT;\n\t\t\tvar widget_width = w.width || width;\n\t\t\t//outside\n\t\t\tif ( w != active_widget && \n\t\t\t\t(x < 6 || x > widget_width - 12 || y < w.last_y || y > w.last_y + widget_height || w.last_y === undefined) ) \n\t\t\t\tcontinue;\n\n\t\t\tvar old_value = w.value;\n\n //if ( w == active_widget || (x > 6 && x < widget_width - 12 && y > w.last_y && y < w.last_y + widget_height) ) {\n\t\t\t//inside widget\n\t\t\tswitch (w.type) {\n\t\t\t\tcase \"button\":\n\t\t\t\t\tif (event.type === \"mousedown\") {\n if (w.callback) {\n setTimeout(function() {\n w.callback(w, that, node, pos, event);\n }, 20);\n }\n w.clicked = true;\n this.dirty_canvas = true;\n }\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"slider\":\n\t\t\t\t\tvar range = w.options.max - w.options.min;\n\t\t\t\t\tvar nvalue = Math.clamp((x - 15) / (widget_width - 30), 0, 1);\n\t\t\t\t\tw.value = w.options.min + (w.options.max - w.options.min) * nvalue;\n\t\t\t\t\tif (w.callback) {\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tinner_value_change(w, w.value);\n\t\t\t\t\t\t}, 20);\n\t\t\t\t\t}\n\t\t\t\t\tthis.dirty_canvas = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"number\":\n\t\t\t\tcase \"combo\":\n\t\t\t\t\tvar old_value = w.value;\n\t\t\t\t\tif (event.type == \"mousemove\" && w.type == \"number\") {\n\t\t\t\t\t\tw.value += event.deltaX * 0.1 * (w.options.step || 1);\n\t\t\t\t\t\tif ( w.options.min != null && w.value < w.options.min ) {\n\t\t\t\t\t\t\tw.value = w.options.min;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( w.options.max != null && w.value > w.options.max ) {\n\t\t\t\t\t\t\tw.value = w.options.max;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (event.type == \"mousedown\") {\n\t\t\t\t\t\tvar values = w.options.values;\n\t\t\t\t\t\tif (values && values.constructor === Function) {\n\t\t\t\t\t\t\tvalues = w.options.values(w, node);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar values_list = null;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( w.type != \"number\")\n\t\t\t\t\t\t\tvalues_list = values.constructor === Array ? values : Object.keys(values);\n\n\t\t\t\t\t\tvar delta = x < 40 ? -1 : x > widget_width - 40 ? 1 : 0;\n\t\t\t\t\t\tif (w.type == \"number\") {\n\t\t\t\t\t\t\tw.value += delta * 0.1 * (w.options.step || 1);\n\t\t\t\t\t\t\tif ( w.options.min != null && w.value < w.options.min ) {\n\t\t\t\t\t\t\t\tw.value = w.options.min;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( w.options.max != null && w.value > w.options.max ) {\n\t\t\t\t\t\t\t\tw.value = w.options.max;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (delta) { //clicked in arrow, used for combos \n\t\t\t\t\t\t\tvar index = -1;\n\t\t\t\t\t\t\tthis.last_mouseclick = 0; //avoids dobl click event\n\t\t\t\t\t\t\tif(values.constructor === Object)\n\t\t\t\t\t\t\t\tindex = values_list.indexOf( String( w.value ) ) + delta;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tindex = values_list.indexOf( w.value ) + delta;\n\t\t\t\t\t\t\tif (index >= values_list.length) {\n\t\t\t\t\t\t\t\tindex = values_list.length - 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif( values.constructor === Array )\n\t\t\t\t\t\t\t\tw.value = values[index];\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tw.value = index;\n\t\t\t\t\t\t} else { //combo clicked \n\t\t\t\t\t\t\tvar text_values = values != values_list ? Object.values(values) : values;\n\t\t\t\t\t\t\tvar menu = new LiteGraph.ContextMenu(text_values, {\n\t\t\t\t\t\t\t\t\tscale: Math.max(1, this.ds.scale),\n\t\t\t\t\t\t\t\t\tevent: event,\n\t\t\t\t\t\t\t\t\tclassName: \"dark\",\n\t\t\t\t\t\t\t\t\tcallback: inner_clicked.bind(w)\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tref_window);\n\t\t\t\t\t\t\tfunction inner_clicked(v, option, event) {\n\t\t\t\t\t\t\t\tif(values != values_list)\n\t\t\t\t\t\t\t\t\tv = text_values.indexOf(v);\n\t\t\t\t\t\t\t\tthis.value = v;\n\t\t\t\t\t\t\t\tinner_value_change(this, v);\n\t\t\t\t\t\t\t\tthat.dirty_canvas = true;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} //end mousedown\n\t\t\t\t\telse if(event.type == \"mouseup\" && w.type == \"number\")\n\t\t\t\t\t{\n\t\t\t\t\t\tvar delta = x < 40 ? -1 : x > widget_width - 40 ? 1 : 0;\n\t\t\t\t\t\tif (event.click_time < 200 && delta == 0) {\n\t\t\t\t\t\t\tthis.prompt(\"Value\",w.value,function(v) {\n\t\t\t\t\t\t\t\t\tthis.value = Number(v);\n\t\t\t\t\t\t\t\t\tinner_value_change(this, this.value);\n\t\t\t\t\t\t\t\t}.bind(w),\n\t\t\t\t\t\t\t\tevent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif( old_value != w.value )\n\t\t\t\t\t\tsetTimeout(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tinner_value_change(this, this.value);\n\t\t\t\t\t\t\t}.bind(w),\n\t\t\t\t\t\t\t20\n\t\t\t\t\t\t);\n\t\t\t\t\tthis.dirty_canvas = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"toggle\":\n\t\t\t\t\tif (event.type == \"mousedown\") {\n\t\t\t\t\t\tw.value = !w.value;\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tinner_value_change(w, w.value);\n\t\t\t\t\t\t}, 20);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"string\":\n\t\t\t\tcase \"text\":\n\t\t\t\t\tif (event.type == \"mousedown\") {\n\t\t\t\t\t\tthis.prompt(\"Value\",w.value,function(v) {\n\t\t\t\t\t\t\t\tthis.value = v;\n\t\t\t\t\t\t\t\tinner_value_change(this, v);\n\t\t\t\t\t\t\t}.bind(w),\n\t\t\t\t\t\t\tevent,w.options ? w.options.multiline : false );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (w.mouse) {\n\t\t\t\t\t\tthis.dirty_canvas = w.mouse(event, [x, y], node);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t} //end switch\n\n\t\t\t//value changed\n\t\t\tif( old_value != w.value )\n\t\t\t{\n\t\t\t\tif(node.onWidgetChanged)\n\t\t\t\t\tnode.onWidgetChanged( w.name,w.value,old_value,w );\n node.graph._version++;\n\t\t\t}\n\n\t\t\treturn w;\n }//end for\n\n function inner_value_change(widget, value) {\n widget.value = value;\n if ( widget.options && widget.options.property && node.properties[widget.options.property] !== undefined ) {\n node.setProperty( widget.options.property, value );\n }\n if (widget.callback) {\n widget.callback(widget.value, that, node, pos, event);\n }\n }\n\n return null;\n };\n\n /**\n * draws every group area in the background\n * @method drawGroups\n **/\n LGraphCanvas.prototype.drawGroups = function(canvas, ctx) {\n if (!this.graph) {\n return;\n }\n\n var groups = this.graph._groups;\n\n ctx.save();\n ctx.globalAlpha = 0.5 * this.editor_alpha;\n\n for (var i = 0; i < groups.length; ++i) {\n var group = groups[i];\n\n if (!overlapBounding(this.visible_area, group._bounding)) {\n continue;\n } //out of the visible area\n\n ctx.fillStyle = group.color || \"#335\";\n ctx.strokeStyle = group.color || \"#335\";\n var pos = group._pos;\n var size = group._size;\n ctx.globalAlpha = 0.25 * this.editor_alpha;\n ctx.beginPath();\n ctx.rect(pos[0] + 0.5, pos[1] + 0.5, size[0], size[1]);\n ctx.fill();\n ctx.globalAlpha = this.editor_alpha;\n ctx.stroke();\n\n ctx.beginPath();\n ctx.moveTo(pos[0] + size[0], pos[1] + size[1]);\n ctx.lineTo(pos[0] + size[0] - 10, pos[1] + size[1]);\n ctx.lineTo(pos[0] + size[0], pos[1] + size[1] - 10);\n ctx.fill();\n\n var font_size =\n group.font_size || LiteGraph.DEFAULT_GROUP_FONT_SIZE;\n ctx.font = font_size + \"px Arial\";\n ctx.fillText(group.title, pos[0] + 4, pos[1] + font_size);\n }\n\n ctx.restore();\n };\n\n LGraphCanvas.prototype.adjustNodesSize = function() {\n var nodes = this.graph._nodes;\n for (var i = 0; i < nodes.length; ++i) {\n nodes[i].size = nodes[i].computeSize();\n }\n this.setDirty(true, true);\n };\n\n /**\n * resizes the canvas to a given size, if no size is passed, then it tries to fill the parentNode\n * @method resize\n **/\n LGraphCanvas.prototype.resize = function(width, height) {\n if (!width && !height) {\n var parent = this.canvas.parentNode;\n width = parent.offsetWidth;\n height = parent.offsetHeight;\n }\n\n if (this.canvas.width == width && this.canvas.height == height) {\n return;\n }\n\n this.canvas.width = width;\n this.canvas.height = height;\n this.bgcanvas.width = this.canvas.width;\n this.bgcanvas.height = this.canvas.height;\n this.setDirty(true, true);\n };\n\n /**\n * switches to live mode (node shapes are not rendered, only the content)\n * this feature was designed when graphs where meant to create user interfaces\n * @method switchLiveMode\n **/\n LGraphCanvas.prototype.switchLiveMode = function(transition) {\n if (!transition) {\n this.live_mode = !this.live_mode;\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n return;\n }\n\n var self = this;\n var delta = this.live_mode ? 1.1 : 0.9;\n if (this.live_mode) {\n this.live_mode = false;\n this.editor_alpha = 0.1;\n }\n\n var t = setInterval(function() {\n self.editor_alpha *= delta;\n self.dirty_canvas = true;\n self.dirty_bgcanvas = true;\n\n if (delta < 1 && self.editor_alpha < 0.01) {\n clearInterval(t);\n if (delta < 1) {\n self.live_mode = true;\n }\n }\n if (delta > 1 && self.editor_alpha > 0.99) {\n clearInterval(t);\n self.editor_alpha = 1;\n }\n }, 1);\n };\n\n LGraphCanvas.prototype.onNodeSelectionChange = function(node) {\n return; //disabled\n };\n\n LGraphCanvas.prototype.touchHandler = function(event) {\n //alert(\"foo\");\n var touches = event.changedTouches,\n first = touches[0],\n type = \"\";\n\n switch (event.type) {\n case \"touchstart\":\n type = \"mousedown\";\n break;\n case \"touchmove\":\n type = \"mousemove\";\n break;\n case \"touchend\":\n type = \"mouseup\";\n break;\n default:\n return;\n }\n\n //initMouseEvent(type, canBubble, cancelable, view, clickCount,\n // screenX, screenY, clientX, clientY, ctrlKey,\n // altKey, shiftKey, metaKey, button, relatedTarget);\n\n var window = this.getCanvasWindow();\n var document = window.document;\n\n var simulatedEvent = document.createEvent(\"MouseEvent\");\n simulatedEvent.initMouseEvent(\n type,\n true,\n true,\n window,\n 1,\n first.screenX,\n first.screenY,\n first.clientX,\n first.clientY,\n false,\n false,\n false,\n false,\n 0 /*left*/,\n null\n );\n first.target.dispatchEvent(simulatedEvent);\n event.preventDefault();\n };\n\n /* CONTEXT MENU ********************/\n\n LGraphCanvas.onGroupAdd = function(info, entry, mouse_event) {\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n\n var group = new LiteGraph.LGraphGroup();\n group.pos = canvas.convertEventToCanvasOffset(mouse_event);\n canvas.graph.add(group);\n };\n\n LGraphCanvas.onMenuAdd = function (node, options, e, prev_menu, callback) {\n\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n var graph = canvas.graph;\n if (!graph)\n return;\n\n function inner_onMenuAdded(base_category ,prev_menu){\n \n var categories = LiteGraph.getNodeTypesCategories(canvas.filter || graph.filter).filter(function(category){return category.startsWith(base_category)});\n var entries = [];\n \n categories.map(function(category){\n \n if (!category) \n return;\n \n var base_category_regex = new RegExp('^(' + base_category + ')');\n var category_name = category.replace(base_category_regex,\"\").split('/')[0];\n var category_path = base_category === '' ? category_name + '/' : base_category + category_name + '/';\n \n var name = category_name;\n if(name.indexOf(\"::\") != -1) //in case it has a namespace like \"shader::math/rand\" it hides the namespace\n name = name.split(\"::\")[1];\n \n var index = entries.findIndex(function(entry){return entry.value === category_path});\n if (index === -1) {\n entries.push({ value: category_path, content: name, has_submenu: true, callback : function(value, event, mouseEvent, contextMenu){\n inner_onMenuAdded(value.value, contextMenu)\n }});\n }\n \n });\n \n var nodes = LiteGraph.getNodeTypesInCategory(base_category.slice(0, -1), canvas.filter || graph.filter );\n nodes.map(function(node){\n \n if (node.skip_list)\n return;\n \n var entry = { value: node.type, content: node.title, has_submenu: false , callback : function(value, event, mouseEvent, contextMenu){\n \n var first_event = contextMenu.getFirstEvent();\n canvas.graph.beforeChange();\n var node = LiteGraph.createNode(value.value);\n if (node) {\n node.pos = canvas.convertEventToCanvasOffset(first_event);\n canvas.graph.add(node);\n }\n if(callback)\n callback(node);\n canvas.graph.afterChange();\n \n }\n }\n \n entries.push(entry);\n \n });\n \n new LiteGraph.ContextMenu( entries, { event: e, parentMenu: prev_menu }, ref_window );\n \n }\n \n inner_onMenuAdded('',prev_menu);\n return false;\n \n };\n\n LGraphCanvas.onMenuCollapseAll = function() {};\n\n LGraphCanvas.onMenuNodeEdit = function() {};\n\n LGraphCanvas.showMenuNodeOptionalInputs = function(\n v,\n options,\n e,\n prev_menu,\n node\n ) {\n if (!node) {\n return;\n }\n\n var that = this;\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n\n var options = node.optional_inputs;\n if (node.onGetInputs) {\n options = node.onGetInputs();\n }\n\n var entries = [];\n if (options) {\n for (var i=0; i < options.length; i++) {\n var entry = options[i];\n if (!entry) {\n entries.push(null);\n continue;\n }\n var label = entry[0];\n if (entry[2] && entry[2].label) {\n label = entry[2].label;\n }\n var data = { content: label, value: entry };\n if (entry[1] == LiteGraph.ACTION) {\n data.className = \"event\";\n }\n entries.push(data);\n }\n }\n\n if (this.onMenuNodeInputs) {\n entries = this.onMenuNodeInputs(entries);\n }\n\n if (!entries.length) {\n\t\t\tconsole.log(\"no input entries\");\n return;\n }\n\n var menu = new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node\n },\n ref_window\n );\n\n function inner_clicked(v, e, prev) {\n if (!node) {\n return;\n }\n\n if (v.callback) {\n v.callback.call(that, node, v, e, prev);\n }\n\n if (v.value) {\n\t\t\t\tnode.graph.beforeChange();\n node.addInput(v.value[0], v.value[1], v.value[2]);\n node.setDirtyCanvas(true, true);\n\t\t\t\tnode.graph.afterChange();\n }\n }\n\n return false;\n };\n\n LGraphCanvas.showMenuNodeOptionalOutputs = function(\n v,\n options,\n e,\n prev_menu,\n node\n ) {\n if (!node) {\n return;\n }\n\n var that = this;\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n\n var options = node.optional_outputs;\n if (node.onGetOutputs) {\n options = node.onGetOutputs();\n }\n\n var entries = [];\n if (options) {\n for (var i=0; i < options.length; i++) {\n var entry = options[i];\n if (!entry) {\n //separator?\n entries.push(null);\n continue;\n }\n\n if (\n node.flags &&\n node.flags.skip_repeated_outputs &&\n node.findOutputSlot(entry[0]) != -1\n ) {\n continue;\n } //skip the ones already on\n var label = entry[0];\n if (entry[2] && entry[2].label) {\n label = entry[2].label;\n }\n var data = { content: label, value: entry };\n if (entry[1] == LiteGraph.EVENT) {\n data.className = \"event\";\n }\n entries.push(data);\n }\n }\n\n if (this.onMenuNodeOutputs) {\n entries = this.onMenuNodeOutputs(entries);\n }\n\n if (!entries.length) {\n return;\n }\n\n var menu = new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node\n },\n ref_window\n );\n\n function inner_clicked(v, e, prev) {\n if (!node) {\n return;\n }\n\n if (v.callback) {\n v.callback.call(that, node, v, e, prev);\n }\n\n if (!v.value) {\n return;\n }\n\n var value = v.value[1];\n\n if (\n value &&\n (value.constructor === Object || value.constructor === Array)\n ) {\n //submenu why?\n var entries = [];\n for (var i in value) {\n entries.push({ content: i, value: value[i] });\n }\n new LiteGraph.ContextMenu(entries, {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node\n });\n return false;\n } else {\n\t\t\t\tnode.graph.beforeChange();\n node.addOutput(v.value[0], v.value[1], v.value[2]);\n node.setDirtyCanvas(true, true);\n\t\t\t\tnode.graph.afterChange();\n }\n }\n\n return false;\n };\n\n LGraphCanvas.onShowMenuNodeProperties = function(\n value,\n options,\n e,\n prev_menu,\n node\n ) {\n if (!node || !node.properties) {\n return;\n }\n\n var that = this;\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n\n var entries = [];\n for (var i in node.properties) {\n var value = node.properties[i] !== undefined ? node.properties[i] : \" \";\n\t\t\tif( typeof value == \"object\" )\n\t\t\t\tvalue = JSON.stringify(value);\n\t\t\tvar info = node.getPropertyInfo(i);\n\t\t\tif(info.type == \"enum\" || info.type == \"combo\")\n\t\t\t\tvalue = LGraphCanvas.getPropertyPrintableValue( value, info.values );\n\n //value could contain invalid html characters, clean that\n value = LGraphCanvas.decodeHTML(value);\n entries.push({\n content:\n \"\" +\n (info.label ? info.label : i) +\n \"\" +\n \"\" +\n value +\n \"\",\n value: i\n });\n }\n if (!entries.length) {\n return;\n }\n\n var menu = new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n allow_html: true,\n node: node\n },\n ref_window\n );\n\n function inner_clicked(v, options, e, prev) {\n if (!node) {\n return;\n }\n var rect = this.getBoundingClientRect();\n canvas.showEditPropertyValue(node, v.value, {\n position: [rect.left, rect.top]\n });\n }\n\n return false;\n };\n\n LGraphCanvas.decodeHTML = function(str) {\n var e = document.createElement(\"div\");\n e.innerText = str;\n return e.innerHTML;\n };\n\n LGraphCanvas.onResizeNode = function(value, options, e, menu, node) {\n if (!node) {\n return;\n }\n node.size = node.computeSize();\n if (node.onResize)\n node.onResize(node.size);\n node.setDirtyCanvas(true, true);\n };\n\n LGraphCanvas.prototype.showLinkMenu = function(link, e) {\n var that = this;\n\t\tconsole.log(link);\n\t\tvar options = [\"Add Node\",null,\"Delete\"];\n var menu = new LiteGraph.ContextMenu(options, {\n event: e,\n\t\t\ttitle: link.data != null ? link.data.constructor.name : null,\n callback: inner_clicked\n });\n\n function inner_clicked(v,options,e) {\n switch (v) {\n case \"Add Node\":\n\t\t\t\t\tLGraphCanvas.onMenuAdd(null, null, e, menu, function(node){\n\t\t\t\t\t\tconsole.log(\"node autoconnect\");\n\t\t\t\t\t\tvar node_left = that.graph.getNodeById( link.origin_id );\n\t\t\t\t\t\tvar node_right = that.graph.getNodeById( link.target_id );\n\t\t\t\t\t\tif(!node.inputs || !node.inputs.length || !node.outputs || !node.outputs.length)\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tif( node_left.outputs[ link.origin_slot ].type == node.inputs[0].type && node.outputs[0].type == node_right.inputs[0].type )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tnode_left.connect( link.origin_slot, node, 0 );\n\t\t\t\t\t\t\tnode.connect( 0, node_right, link.target_slot );\n\t\t\t\t\t\t\tnode.pos[0] -= node.size[0] * 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n case \"Delete\":\n that.graph.removeLink(link.id);\n break;\n default:\n }\n }\n\n return false;\n };\n\n LGraphCanvas.onShowPropertyEditor = function(item, options, e, menu, node) {\n var input_html = \"\";\n var property = item.property || \"title\";\n var value = node[property];\n\n var dialog = document.createElement(\"div\");\n dialog.className = \"graphdialog\";\n dialog.innerHTML = \"\";\n\t\t//dialog.innerHTML = \"\";\n var title = dialog.querySelector(\".name\");\n title.innerText = property;\n var input = dialog.querySelector(\".value\");\n if (input) {\n input.value = value;\n input.addEventListener(\"blur\", function(e) {\n this.focus();\n });\n input.addEventListener(\"keydown\", function(e) {\n if (e.keyCode != 13 && e.target.localName != \"textarea\") {\n return;\n }\n inner();\n e.preventDefault();\n e.stopPropagation();\n });\n }\n\n var graphcanvas = LGraphCanvas.active_canvas;\n var canvas = graphcanvas.canvas;\n\n var rect = canvas.getBoundingClientRect();\n var offsetx = -20;\n var offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n\n if (event) {\n dialog.style.left = event.clientX + offsetx + \"px\";\n dialog.style.top = event.clientY + offsety + \"px\";\n } else {\n dialog.style.left = canvas.width * 0.5 + offsetx + \"px\";\n dialog.style.top = canvas.height * 0.5 + offsety + \"px\";\n }\n\n var button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", inner);\n canvas.parentNode.appendChild(dialog);\n\n function inner() {\n setValue(input.value);\n }\n\n function setValue(value) {\n if (item.type == \"Number\") {\n value = Number(value);\n } else if (item.type == \"Boolean\") {\n value = Boolean(value);\n }\n node[property] = value;\n if (dialog.parentNode) {\n dialog.parentNode.removeChild(dialog);\n }\n node.setDirtyCanvas(true, true);\n }\n };\n\n LGraphCanvas.prototype.prompt = function(title, value, callback, event, multiline) {\n var that = this;\n var input_html = \"\";\n title = title || \"\";\n\n var modified = false;\n\n var dialog = document.createElement(\"div\");\n dialog.className = \"graphdialog rounded\";\n\t\tif(multiline)\n\t dialog.innerHTML = \" \";\n\t\telse\n\t dialog.innerHTML = \" \";\n dialog.close = function() {\n that.prompt_box = null;\n if (dialog.parentNode) {\n dialog.parentNode.removeChild(dialog);\n }\n };\n\n if (this.ds.scale > 1) {\n dialog.style.transform = \"scale(\" + this.ds.scale + \")\";\n }\n\n dialog.addEventListener(\"mouseleave\", function(e) {\n if (!modified) {\n dialog.close();\n }\n });\n\n if (that.prompt_box) {\n that.prompt_box.close();\n }\n that.prompt_box = dialog;\n\n var first = null;\n var timeout = null;\n var selected = null;\n\n var name_element = dialog.querySelector(\".name\");\n name_element.innerText = title;\n var value_element = dialog.querySelector(\".value\");\n value_element.value = value;\n\n var input = value_element;\n input.addEventListener(\"keydown\", function(e) {\n modified = true;\n if (e.keyCode == 27) {\n //ESC\n dialog.close();\n } else if (e.keyCode == 13 && e.target.localName != \"textarea\") {\n if (callback) {\n callback(this.value);\n }\n dialog.close();\n } else {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n });\n\n var button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", function(e) {\n if (callback) {\n callback(input.value);\n }\n that.setDirty(true);\n dialog.close();\n });\n\n var graphcanvas = LGraphCanvas.active_canvas;\n var canvas = graphcanvas.canvas;\n\n var rect = canvas.getBoundingClientRect();\n var offsetx = -20;\n var offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n\n if (event) {\n dialog.style.left = event.clientX + offsetx + \"px\";\n dialog.style.top = event.clientY + offsety + \"px\";\n } else {\n dialog.style.left = canvas.width * 0.5 + offsetx + \"px\";\n dialog.style.top = canvas.height * 0.5 + offsety + \"px\";\n }\n\n canvas.parentNode.appendChild(dialog);\n setTimeout(function() {\n input.focus();\n }, 10);\n\n return dialog;\n };\n\n LGraphCanvas.search_limit = -1;\n LGraphCanvas.prototype.showSearchBox = function(event) {\n var that = this;\n var input_html = \"\";\n var graphcanvas = LGraphCanvas.active_canvas;\n var canvas = graphcanvas.canvas;\n var root_document = canvas.ownerDocument || document;\n\n var dialog = document.createElement(\"div\");\n dialog.className = \"litegraph litesearchbox graphdialog rounded\";\n dialog.innerHTML =\n \"Search
\";\n dialog.close = function() {\n that.search_box = null;\n root_document.body.focus();\n\t\t\troot_document.body.style.overflow = \"\";\n\n setTimeout(function() {\n that.canvas.focus();\n }, 20); //important, if canvas loses focus keys wont be captured\n if (dialog.parentNode) {\n dialog.parentNode.removeChild(dialog);\n }\n };\n\n var timeout_close = null;\n\n if (this.ds.scale > 1) {\n dialog.style.transform = \"scale(\" + this.ds.scale + \")\";\n }\n\n dialog.addEventListener(\"mouseenter\", function(e) {\n if (timeout_close) {\n clearTimeout(timeout_close);\n timeout_close = null;\n }\n });\n\n dialog.addEventListener(\"mouseleave\", function(e) {\n //dialog.close();\n timeout_close = setTimeout(function() {\n dialog.close();\n }, 500);\n });\n\n if (that.search_box) {\n that.search_box.close();\n }\n that.search_box = dialog;\n\n var helper = dialog.querySelector(\".helper\");\n\n var first = null;\n var timeout = null;\n var selected = null;\n\n var input = dialog.querySelector(\"input\");\n if (input) {\n input.addEventListener(\"blur\", function(e) {\n this.focus();\n });\n input.addEventListener(\"keydown\", function(e) {\n if (e.keyCode == 38) {\n //UP\n changeSelection(false);\n } else if (e.keyCode == 40) {\n //DOWN\n changeSelection(true);\n } else if (e.keyCode == 27) {\n //ESC\n dialog.close();\n } else if (e.keyCode == 13) {\n if (selected) {\n select(selected.innerHTML);\n } else if (first) {\n select(first);\n } else {\n dialog.close();\n }\n } else {\n if (timeout) {\n clearInterval(timeout);\n }\n timeout = setTimeout(refreshHelper, 10);\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t\treturn true;\n });\n }\n\n\t\tif( root_document.fullscreenElement )\n\t root_document.fullscreenElement.appendChild(dialog);\n\t\telse\n\t\t{\n\t\t root_document.body.appendChild(dialog);\n\t\t\troot_document.body.style.overflow = \"hidden\";\n\t\t}\n\n //compute best position\n var rect = canvas.getBoundingClientRect();\n\n var left = ( event ? event.clientX : (rect.left + rect.width * 0.5) ) - 80;\n var top = ( event ? event.clientY : (rect.top + rect.height * 0.5) ) - 20;\n dialog.style.left = left + \"px\";\n dialog.style.top = top + \"px\";\n\n\t\t//To avoid out of screen problems\n\t\tif(event.layerY > (rect.height - 200)) \n helper.style.maxHeight = (rect.height - event.layerY - 20) + \"px\";\n\n\t\t/*\n var offsetx = -20;\n var offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n\n if (event) {\n dialog.style.left = event.clientX + offsetx + \"px\";\n dialog.style.top = event.clientY + offsety + \"px\";\n } else {\n dialog.style.left = canvas.width * 0.5 + offsetx + \"px\";\n dialog.style.top = canvas.height * 0.5 + offsety + \"px\";\n }\n canvas.parentNode.appendChild(dialog);\n\t\t*/\n\n input.focus();\n\n function select(name) {\n if (name) {\n if (that.onSearchBoxSelection) {\n that.onSearchBoxSelection(name, event, graphcanvas);\n } else {\n var extra = LiteGraph.searchbox_extras[name.toLowerCase()];\n if (extra) {\n name = extra.type;\n }\n\n\t\t\t\t\tgraphcanvas.graph.beforeChange();\n var node = LiteGraph.createNode(name);\n if (node) {\n node.pos = graphcanvas.convertEventToCanvasOffset(\n event\n );\n graphcanvas.graph.add(node);\n }\n\n if (extra && extra.data) {\n if (extra.data.properties) {\n for (var i in extra.data.properties) {\n node.addProperty( i, extra.data.properties[i] );\n }\n }\n if (extra.data.inputs) {\n node.inputs = [];\n for (var i in extra.data.inputs) {\n node.addOutput(\n extra.data.inputs[i][0],\n extra.data.inputs[i][1]\n );\n }\n }\n if (extra.data.outputs) {\n node.outputs = [];\n for (var i in extra.data.outputs) {\n node.addOutput(\n extra.data.outputs[i][0],\n extra.data.outputs[i][1]\n );\n }\n }\n if (extra.data.title) {\n node.title = extra.data.title;\n }\n if (extra.data.json) {\n node.configure(extra.data.json);\n }\n\n\t\t\t\t\t\tgraphcanvas.graph.afterChange();\n }\n }\n }\n\n dialog.close();\n }\n\n function changeSelection(forward) {\n var prev = selected;\n if (selected) {\n selected.classList.remove(\"selected\");\n }\n if (!selected) {\n selected = forward\n ? helper.childNodes[0]\n : helper.childNodes[helper.childNodes.length];\n } else {\n selected = forward\n ? selected.nextSibling\n : selected.previousSibling;\n if (!selected) {\n selected = prev;\n }\n }\n if (!selected) {\n return;\n }\n selected.classList.add(\"selected\");\n selected.scrollIntoView({block: \"end\", behavior: \"smooth\"});\n }\n\n function refreshHelper() {\n timeout = null;\n var str = input.value;\n first = null;\n helper.innerHTML = \"\";\n if (!str) {\n return;\n }\n\n if (that.onSearchBox) {\n var list = that.onSearchBox(helper, str, graphcanvas);\n if (list) {\n for (var i = 0; i < list.length; ++i) {\n addResult(list[i]);\n }\n }\n } else {\n var c = 0;\n str = str.toLowerCase();\n\t\t\t\tvar filter = graphcanvas.filter || graphcanvas.graph.filter;\n\n //extras\n for (var i in LiteGraph.searchbox_extras) {\n var extra = LiteGraph.searchbox_extras[i];\n if (extra.desc.toLowerCase().indexOf(str) === -1) {\n continue;\n }\n\t\t\t\t\tvar ctor = LiteGraph.registered_node_types[ extra.type ];\n\t\t\t\t\tif( ctor && ctor.filter != filter )\n\t\t\t\t\t\tcontinue;\n addResult( extra.desc, \"searchbox_extra\" );\n if ( LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit ) {\n break;\n }\n }\n\n\t\t\t\tvar filtered = null;\n if (Array.prototype.filter) { //filter supported\n var keys = Object.keys( LiteGraph.registered_node_types ); //types\n var filtered = keys.filter( inner_test_filter );\n } else {\n\t\t\t\t\tfiltered = [];\n for (var i in LiteGraph.registered_node_types) {\n\t\t\t\t\t\tif( inner_test_filter(i) )\n\t\t\t\t\t\t\tfiltered.push(i);\n }\n }\n\n\t\t\t\tfor (var i = 0; i < filtered.length; i++) {\n\t\t\t\t\taddResult(filtered[i]);\n\t\t\t\t\tif ( LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction inner_test_filter( type )\n\t\t\t\t{\n\t\t\t\t\tvar ctor = LiteGraph.registered_node_types[ type ];\n\t\t\t\t\tif(filter && ctor.filter != filter )\n\t\t\t\t\t\treturn false;\n\t\t\t\t\treturn type.toLowerCase().indexOf(str) !== -1;\n\t\t\t\t}\n }\n\n function addResult(type, className) {\n var help = document.createElement(\"div\");\n if (!first) {\n first = type;\n }\n help.innerText = type;\n help.dataset[\"type\"] = escape(type);\n help.className = \"litegraph lite-search-item\";\n if (className) {\n help.className += \" \" + className;\n }\n help.addEventListener(\"click\", function(e) {\n select(unescape(this.dataset[\"type\"]));\n });\n helper.appendChild(help);\n }\n }\n\n return dialog;\n };\n\n LGraphCanvas.prototype.showEditPropertyValue = function( node, property, options ) {\n if (!node || node.properties[property] === undefined) {\n return;\n }\n\n options = options || {};\n var that = this;\n\n var info = node.getPropertyInfo(property);\n\t\tvar type = info.type;\n\n var input_html = \"\";\n\n if (type == \"string\" || type == \"number\" || type == \"array\" || type == \"object\") {\n input_html = \"\";\n } else if ( (type == \"enum\" || type == \"combo\") && info.values) {\n input_html = \"\";\n } else if (type == \"boolean\") {\n input_html =\n \"\";\n } else {\n console.warn(\"unknown type: \" + type);\n return;\n }\n\n var dialog = this.createDialog(\n \"\" +\n (info.label ? info.label : property) +\n \"\" +\n input_html +\n \"\",\n options\n );\n\n if ((type == \"enum\" || type == \"combo\") && info.values) {\n var input = dialog.querySelector(\"select\");\n input.addEventListener(\"change\", function(e) {\n setValue(e.target.value);\n //var index = e.target.value;\n //setValue( e.options[e.selectedIndex].value );\n });\n } else if (type == \"boolean\") {\n var input = dialog.querySelector(\"input\");\n if (input) {\n input.addEventListener(\"click\", function(e) {\n setValue(!!input.checked);\n });\n }\n } else {\n var input = dialog.querySelector(\"input\");\n if (input) {\n input.addEventListener(\"blur\", function(e) {\n this.focus();\n });\n\n\t\t\t\tvar v = node.properties[property] !== undefined ? node.properties[property] : \"\";\n\t\t\t\tif (type !== 'string') {\n v = JSON.stringify(v);\n }\n\n input.value = v;\n input.addEventListener(\"keydown\", function(e) {\n if (e.keyCode != 13) {\n return;\n }\n inner();\n e.preventDefault();\n e.stopPropagation();\n });\n }\n }\n\n var button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", inner);\n\n function inner() {\n setValue(input.value);\n }\n\n function setValue(value) {\n\n\t\t\tif(info && info.values && info.values.constructor === Object && info.values[value] != undefined )\n\t\t\t\tvalue = info.values[value];\n\n if (typeof node.properties[property] == \"number\") {\n value = Number(value);\n }\n if (type == \"array\" || type == \"object\") {\n value = JSON.parse(value);\n }\n node.properties[property] = value;\n if (node.graph) {\n node.graph._version++;\n }\n if (node.onPropertyChanged) {\n node.onPropertyChanged(property, value);\n }\n\t\t\tif(options.onclose)\n\t\t\t\toptions.onclose();\n dialog.close();\n node.setDirtyCanvas(true, true);\n }\n\n\t\treturn dialog;\n };\n\n LGraphCanvas.prototype.createDialog = function(html, options) {\n options = options || {};\n\n var dialog = document.createElement(\"div\");\n dialog.className = \"graphdialog\";\n dialog.innerHTML = html;\n\n var rect = this.canvas.getBoundingClientRect();\n var offsetx = -20;\n var offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n\n if (options.position) {\n offsetx += options.position[0];\n offsety += options.position[1];\n } else if (options.event) {\n offsetx += options.event.clientX;\n offsety += options.event.clientY;\n } //centered\n else {\n offsetx += this.canvas.width * 0.5;\n offsety += this.canvas.height * 0.5;\n }\n\n dialog.style.left = offsetx + \"px\";\n dialog.style.top = offsety + \"px\";\n\n this.canvas.parentNode.appendChild(dialog);\n\n dialog.close = function() {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n\n return dialog;\n };\n\n\tLGraphCanvas.prototype.createPanel = function(title, options) {\n\t\toptions = options || {};\n\n\t\tvar ref_window = options.window || window;\n\t\tvar root = document.createElement(\"div\");\n\t\troot.className = \"litegraph dialog\";\n\t\troot.innerHTML = \"
\";\n\t\troot.header = root.querySelector(\".dialog-header\");\n\n\t\tif(options.width)\n\t\t\troot.style.width = options.width + (options.width.constructor === Number ? \"px\" : \"\");\n\t\tif(options.height)\n\t\t\troot.style.height = options.height + (options.height.constructor === Number ? \"px\" : \"\");\n\t\tif(options.closable)\n\t\t{\n\t\t\tvar close = document.createElement(\"span\");\n\t\t\tclose.innerHTML = \"✕\";\n\t\t\tclose.classList.add(\"close\");\n\t\t\tclose.addEventListener(\"click\",function(){\n\t\t\t\troot.close();\n\t\t\t});\n\t\t\troot.header.appendChild(close);\n\t\t}\n\t\troot.title_element = root.querySelector(\".dialog-title\");\n\t\troot.title_element.innerText = title;\n\t\troot.content = root.querySelector(\".dialog-content\");\n\t\troot.footer = root.querySelector(\".dialog-footer\");\n\n\t\troot.close = function()\n\t\t{\n\t\t\tif(this.parentNode)\n\t\t\t\tthis.parentNode.removeChild(this);\n\t\t}\n\n\t\troot.clear = function()\n\t\t{\n\t\t\tthis.content.innerHTML = \"\";\n\t\t}\n\n\t\troot.addHTML = function(code, classname, on_footer)\n\t\t{\n\t\t\tvar elem = document.createElement(\"div\");\n\t\t\tif(classname)\n\t\t\t\telem.className = classname;\n\t\t\telem.innerHTML = code;\n\t\t\tif(on_footer)\n\t\t\t\troot.footer.appendChild(elem);\n\t\t\telse\n\t\t\t\troot.content.appendChild(elem);\n\t\t\treturn elem;\n\t\t}\n\n\t\troot.addButton = function( name, callback, options )\n\t\t{\n\t\t\tvar elem = document.createElement(\"button\");\n\t\t\telem.innerText = name;\n\t\t\telem.options = options;\n\t\t\telem.classList.add(\"btn\");\n\t\t\telem.addEventListener(\"click\",callback);\n\t\t\troot.footer.appendChild(elem);\n\t\t\treturn elem;\n\t\t}\n\n\t\troot.addSeparator = function()\n\t\t{\n\t\t\tvar elem = document.createElement(\"div\");\n\t\t\telem.className = \"separator\";\n\t\t\troot.content.appendChild(elem);\n\t\t}\n\n\t\troot.addWidget = function( type, name, value, options, callback )\n\t\t{\n\t\t\toptions = options || {};\n\t\t\tvar str_value = String(value);\n\t\t\ttype = type.toLowerCase();\n\t\t\tif(type == \"number\")\n\t\t\t\tstr_value = value.toFixed(3);\n\n\t\t\tvar elem = document.createElement(\"div\");\n\t\t\telem.className = \"property\";\n\t\t\telem.innerHTML = \"\";\n\t\t\telem.querySelector(\".property_name\").innerText = options.label || name;\n\t\t\tvar value_element = elem.querySelector(\".property_value\");\n\t\t\tvalue_element.innerText = str_value;\n\t\t\telem.dataset[\"property\"] = name;\n\t\t\telem.dataset[\"type\"] = options.type || type;\n\t\t\telem.options = options;\n\t\t\telem.value = value;\n\n\t\t\t//if( type == \"code\" )\n\t\t\t//\telem.addEventListener(\"click\", function(){ inner_showCodePad( node, this.dataset[\"property\"] ); });\n\t\t\tif (type == \"boolean\")\n\t\t\t{\n\t\t\t\telem.classList.add(\"boolean\");\n\t\t\t\tif(value)\n\t\t\t\t\telem.classList.add(\"bool-on\");\n\t\t\t\telem.addEventListener(\"click\", function(){ \n\t\t\t\t\t//var v = node.properties[this.dataset[\"property\"]]; \n\t\t\t\t\t//node.setProperty(this.dataset[\"property\"],!v); this.innerText = v ? \"true\" : \"false\"; \n\t\t\t\t\tvar propname = this.dataset[\"property\"];\n\t\t\t\t\tthis.value = !this.value;\n\t\t\t\t\tthis.classList.toggle(\"bool-on\");\n\t\t\t\t\tthis.querySelector(\".property_value\").innerText = this.value ? \"true\" : \"false\";\n\t\t\t\t\tinnerChange(propname, this.value );\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (type == \"string\" || type == \"number\")\n\t\t\t{\n\t\t\t\tvalue_element.setAttribute(\"contenteditable\",true);\n\t\t\t\tvalue_element.addEventListener(\"keydown\", function(e){ \n\t\t\t\t\tif(e.code == \"Enter\")\n\t\t\t\t\t{\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tthis.blur();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvalue_element.addEventListener(\"blur\", function(){ \n\t\t\t\t\tvar v = this.innerText;\n\t\t\t\t\tvar propname = this.parentNode.dataset[\"property\"];\n\t\t\t\t\tvar proptype = this.parentNode.dataset[\"type\"];\n\t\t\t\t\tif( proptype == \"number\")\n\t\t\t\t\t\tv = Number(v);\n\t\t\t\t\tinnerChange(propname, v);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (type == \"enum\" || type == \"combo\") {\n\t\t\t\tvar str_value = LGraphCanvas.getPropertyPrintableValue( value, options.values );\n\t\t\t\tvalue_element.innerText = str_value;\n\n\t\t\t\tvalue_element.addEventListener(\"click\", function(event){ \n\t\t\t\t\tvar values = options.values || [];\n\t\t\t\t\tvar propname = this.parentNode.dataset[\"property\"];\n\t\t\t\t\tvar elem_that = this;\n\t\t\t\t\tvar menu = new LiteGraph.ContextMenu(values,{\n\t\t\t\t\t\t\tevent: event,\n\t\t\t\t\t\t\tclassName: \"dark\",\n\t\t\t\t\t\t\tcallback: inner_clicked\n\t\t\t\t\t\t},\n\t\t\t\t\t\tref_window);\n\t\t\t\t\tfunction inner_clicked(v, option, event) {\n\t\t\t\t\t\t//node.setProperty(propname,v); \n\t\t\t\t\t\t//graphcanvas.dirty_canvas = true;\n\t\t\t\t\t\telem_that.innerText = v;\n\t\t\t\t\t\tinnerChange(propname,v);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n }\n\n\t\t\troot.content.appendChild(elem);\n\n\t\t\tfunction innerChange(name, value)\n\t\t\t{\n\t\t\t\tconsole.log(\"change\",name,value);\n\t\t\t\t//that.dirty_canvas = true;\n\t\t\t\tif(options.callback)\n\t\t\t\t\toptions.callback(name,value);\n\t\t\t\tif(callback)\n\t\t\t\t\tcallback(name,value);\n\t\t\t}\n\n\t\t\treturn elem;\n\t\t}\n\n\t\treturn root;\n\t};\n\n\tLGraphCanvas.getPropertyPrintableValue = function(value, values)\n\t{\n\t\tif(!values)\n\t\t\treturn String(value);\n\n\t\tif(values.constructor === Array)\n\t\t{\n\t\t\treturn String(value);\t\t\t\n\t\t}\n\n\t\tif(values.constructor === Object)\n\t\t{\n\t\t\tvar desc_value = \"\";\n\t\t\tfor(var k in values)\n\t\t\t{\n\t\t\t\tif(values[k] != value)\n\t\t\t\t\tcontinue;\n\t\t\t\tdesc_value = k;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn String(value) + \" (\"+desc_value+\")\";\n\t\t}\n\t}\n\n\tLGraphCanvas.prototype.showShowNodePanel = function( node )\n\t{\n\t\twindow.SELECTED_NODE = node;\n\t\tvar panel = document.querySelector(\"#node-panel\");\n\t\tif(panel)\n\t\t\tpanel.close();\n\t\tvar ref_window = this.getCanvasWindow();\n\t\tpanel = this.createPanel(node.title || \"\",{closable: true, window: ref_window });\n\t\tpanel.id = \"node-panel\";\n\t\tpanel.node = node;\n\t\tpanel.classList.add(\"settings\");\n\t\tvar that = this;\n\t\tvar graphcanvas = this;\n\n\t\tfunction inner_refresh()\n\t\t{\n\t\t\tpanel.content.innerHTML = \"\"; //clear\n\t\t\tpanel.addHTML(\"\"+node.type+\"\"+(node.constructor.desc || \"\")+\"\");\n\n\t\t\tpanel.addHTML(\"

Properties

\");\n\n\t\t\tfor(var i in node.properties)\n\t\t\t{\n\t\t\t\tvar value = node.properties[i];\n\t\t\t\tvar info = node.getPropertyInfo(i);\n\t\t\t\tvar type = info.type || \"string\";\n\n\t\t\t\t//in case the user wants control over the side panel widget\n\t\t\t\tif( node.onAddPropertyToPanel && node.onAddPropertyToPanel(i,panel) )\n\t\t\t\t\tcontinue;\n\n\t\t\t\tpanel.addWidget( info.widget || info.type, i, value, info, function(name,value){\n\t\t\t\t\tgraphcanvas.graph.beforeChange(node);\n\t\t\t\t\tnode.setProperty(name,value);\n\t\t\t\t\tgraphcanvas.graph.afterChange();\n\t\t\t\t\tgraphcanvas.dirty_canvas = true;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tpanel.addSeparator();\n\n\t\t\tif(node.onShowCustomPanelInfo)\n\t\t\t\tnode.onShowCustomPanelInfo(panel);\n\n\t\t\t/*\n\t\t\tpanel.addHTML(\"

Connections

\");\n\t\t\tvar connection_containers = panel.addHTML(\"
\",\"connections\");\n\t\t\tvar inputs = connection_containers.querySelector(\".inputs\");\n\t\t\tvar outputs = connection_containers.querySelector(\".outputs\");\n\t\t\t*/\n\n\t\t\tpanel.addButton(\"Delete\",function(){\n\t\t\t\tif(node.block_delete)\n\t\t\t\t\treturn;\n\t\t\t\tnode.graph.remove(node);\n\t\t\t\tpanel.close();\n\t\t\t}).classList.add(\"delete\");\n\t\t}\n\n\t\tfunction inner_showCodePad( node, propname )\n\t\t{\n\t\t\tpanel.style.top = \"calc( 50% - 250px)\";\n\t\t\tpanel.style.left = \"calc( 50% - 400px)\";\n\t\t\tpanel.style.width = \"800px\";\n\t\t\tpanel.style.height = \"500px\";\n\n\t\t\tif(window.CodeFlask) //disabled for now\n\t\t\t{\n\t\t\t\tpanel.content.innerHTML = \"
\";\n\t\t\t\tvar flask = new CodeFlask( \"div.code\", { language: 'js' });\n\t\t\t\tflask.updateCode(node.properties[propname]);\n\t\t\t\tflask.onUpdate( function(code) {\n\t\t\t\t\tnode.setProperty(propname, code);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tpanel.content.innerHTML = \"\";\n\t\t\t\tvar textarea = panel.content.querySelector(\"textarea\");\n\t\t\t\ttextarea.value = node.properties[propname];\n\t\t\t\ttextarea.addEventListener(\"keydown\", function(e){\n\t\t\t\t\t//console.log(e);\n\t\t\t\t\tif(e.code == \"Enter\" && e.ctrlKey )\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.log(\"Assigned\");\n\t\t\t\t\t\tnode.setProperty(propname, textarea.value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttextarea.style.height = \"calc(100% - 40px)\";\n\t\t\t}\n\t\t\tvar assign = that.createButton( \"Assign\", null, function(){\n\t\t\t\tnode.setProperty(propname, textarea.value);\n\t\t\t});\n\t\t\tpanel.content.appendChild(assign);\n\t\t\tvar button = that.createButton( \"Close\", null, function(){\n\t\t\t\tpanel.style.height = \"\";\n\t\t\t\tinner_refresh();\n\t\t\t});\n\t\t\tbutton.style.float = \"right\";\n\t\t\tpanel.content.appendChild(button);\n\t\t}\n\n\t\tinner_refresh();\n\n\t\tthis.canvas.parentNode.appendChild( panel );\n\t}\n\t\n\tLGraphCanvas.prototype.showSubgraphPropertiesDialog = function(node)\n\t{\n\t\tconsole.log(\"showing subgraph properties dialog\");\n\n\t\tvar old_panel = this.canvas.parentNode.querySelector(\".subgraph_dialog\");\n\t\tif(old_panel)\n\t\t\told_panel.close();\n\n\t\tvar panel = this.createPanel(\"Subgraph Inputs\",{closable:true, width: 500});\n\t\tpanel.node = node;\n\t\tpanel.classList.add(\"subgraph_dialog\");\n\n\t\tfunction inner_refresh()\n\t\t{\n\t\t\tpanel.clear();\n\n\t\t\t//show currents\n\t\t\tif(node.inputs)\n\t\t\t\tfor(var i = 0; i < node.inputs.length; ++i)\n\t\t\t\t{\n\t\t\t\t\tvar input = node.inputs[i];\n\t\t\t\t\tif(input.not_subgraph_input)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tvar html = \" \";\n\t\t\t\t\tvar elem = panel.addHTML(html,\"subgraph_property\");\n\t\t\t\t\telem.dataset[\"name\"] = input.name;\n\t\t\t\t\telem.dataset[\"slot\"] = i;\n\t\t\t\t\telem.querySelector(\".name\").innerText = input.name;\n\t\t\t\t\telem.querySelector(\".type\").innerText = input.type;\n\t\t\t\t\telem.querySelector(\"button\").addEventListener(\"click\",function(e){\n\t\t\t\t\t\tnode.removeInput( Number( this.parentNode.dataset[\"slot\"] ) );\n\t\t\t\t\t\tinner_refresh();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t}\n\n\t\t//add extra\n\t\tvar html = \" + NameType\";\n\t\tvar elem = panel.addHTML(html,\"subgraph_property extra\", true);\n\t\telem.querySelector(\"button\").addEventListener(\"click\", function(e){\n\t\t\tvar elem = this.parentNode;\n\t\t\tvar name = elem.querySelector(\".name\").value;\n\t\t\tvar type = elem.querySelector(\".type\").value;\n\t\t\tif(!name || node.findInputSlot(name) != -1)\n\t\t\t\treturn;\n\t\t\tnode.addInput(name,type);\n\t\t\telem.querySelector(\".name\").value = \"\";\n\t\t\telem.querySelector(\".type\").value = \"\";\n\t\t\tinner_refresh();\n\t\t});\n\n\t\tinner_refresh();\n\t this.canvas.parentNode.appendChild(panel);\n\t\treturn panel;\n\t}\n\n\tLGraphCanvas.prototype.checkPanels = function()\n\t{\n\t\tif(!this.canvas)\n\t\t\treturn;\n\t\tvar panels = this.canvas.parentNode.querySelectorAll(\".litegraph.dialog\");\n\t\tfor(var i = 0; i < panels.length; ++i)\n\t\t{\n\t\t\tvar panel = panels[i];\n\t\t\tif( !panel.node )\n\t\t\t\tcontinue;\n\t\t\tif( !panel.node.graph || panel.graph != this.graph )\n\t\t\t\tpanel.close();\n\t\t}\n\t}\n\n LGraphCanvas.onMenuNodeCollapse = function(value, options, e, menu, node) {\n\t\tnode.graph.beforeChange(node);\n node.collapse();\n\t\tnode.graph.afterChange(node);\n };\n\n LGraphCanvas.onMenuNodePin = function(value, options, e, menu, node) {\n node.pin();\n };\n\n LGraphCanvas.onMenuNodeMode = function(value, options, e, menu, node) {\n new LiteGraph.ContextMenu(\n [\"Always\", \"On Event\", \"On Trigger\", \"Never\"],\n { event: e, callback: inner_clicked, parentMenu: menu, node: node }\n );\n\n function inner_clicked(v) {\n if (!node) {\n return;\n }\n switch (v) {\n case \"On Event\":\n node.mode = LiteGraph.ON_EVENT;\n break;\n case \"On Trigger\":\n node.mode = LiteGraph.ON_TRIGGER;\n break;\n case \"Never\":\n node.mode = LiteGraph.NEVER;\n break;\n case \"Always\":\n default:\n node.mode = LiteGraph.ALWAYS;\n break;\n }\n }\n\n return false;\n };\n\n LGraphCanvas.onMenuNodeColors = function(value, options, e, menu, node) {\n if (!node) {\n throw \"no node for color\";\n }\n\n var values = [];\n values.push({\n value: null,\n content:\n \"No color\"\n });\n\n for (var i in LGraphCanvas.node_colors) {\n var color = LGraphCanvas.node_colors[i];\n var value = {\n value: i,\n content:\n \"\" +\n i +\n \"\"\n };\n values.push(value);\n }\n new LiteGraph.ContextMenu(values, {\n event: e,\n callback: inner_clicked,\n parentMenu: menu,\n node: node\n });\n\n function inner_clicked(v) {\n if (!node) {\n return;\n }\n\n var color = v.value ? LGraphCanvas.node_colors[v.value] : null;\n if (color) {\n if (node.constructor === LiteGraph.LGraphGroup) {\n node.color = color.groupcolor;\n } else {\n node.color = color.color;\n node.bgcolor = color.bgcolor;\n }\n } else {\n delete node.color;\n delete node.bgcolor;\n }\n node.setDirtyCanvas(true, true);\n }\n\n return false;\n };\n\n LGraphCanvas.onMenuNodeShapes = function(value, options, e, menu, node) {\n if (!node) {\n throw \"no node passed\";\n }\n\n new LiteGraph.ContextMenu(LiteGraph.VALID_SHAPES, {\n event: e,\n callback: inner_clicked,\n parentMenu: menu,\n node: node\n });\n\n function inner_clicked(v) {\n if (!node) {\n return;\n }\n\t\t\tnode.graph.beforeChange(node);\n node.shape = v;\n\t\t\tnode.graph.afterChange(node);\n node.setDirtyCanvas(true);\n }\n\n return false;\n };\n\n LGraphCanvas.onMenuNodeRemove = function(value, options, e, menu, node) {\n if (!node) {\n throw \"no node passed\";\n }\n\n if (node.removable === false) {\n return;\n }\n\n\t\tvar graph = node.graph;\n\t\tgraph.beforeChange();\n graph.remove(node);\n\t\tgraph.afterChange();\n node.setDirtyCanvas(true, true);\n };\n\n LGraphCanvas.onMenuNodeToSubgraph = function(value, options, e, menu, node) {\n\t\tvar graph = node.graph;\n\t\tvar graphcanvas = LGraphCanvas.active_canvas;\n\t\tif(!graphcanvas) //??\n\t\t\treturn;\n\n\t\tvar nodes_list = Object.values( graphcanvas.selected_nodes || {} );\n\t\tif( !nodes_list.length )\n\t\t\tnodes_list = [ node ];\n\n\t\tvar subgraph_node = LiteGraph.createNode(\"graph/subgraph\");\n\t\tsubgraph_node.pos = node.pos.concat();\n\t\tgraph.add(subgraph_node);\n\n\t\tsubgraph_node.buildFromNodes( nodes_list );\n\n\t\tgraphcanvas.deselectAllNodes();\n node.setDirtyCanvas(true, true);\n };\n\n LGraphCanvas.onMenuNodeClone = function(value, options, e, menu, node) {\n if (node.clonable == false) {\n return;\n }\n var newnode = node.clone();\n if (!newnode) {\n return;\n }\n newnode.pos = [node.pos[0] + 5, node.pos[1] + 5];\n\n\t\tnode.graph.beforeChange();\n node.graph.add(newnode);\n\t\tnode.graph.afterChange();\n\n node.setDirtyCanvas(true, true);\n };\n\n LGraphCanvas.node_colors = {\n red: { color: \"#322\", bgcolor: \"#533\", groupcolor: \"#A88\" },\n brown: { color: \"#332922\", bgcolor: \"#593930\", groupcolor: \"#b06634\" },\n green: { color: \"#232\", bgcolor: \"#353\", groupcolor: \"#8A8\" },\n blue: { color: \"#223\", bgcolor: \"#335\", groupcolor: \"#88A\" },\n pale_blue: {\n color: \"#2a363b\",\n bgcolor: \"#3f5159\",\n groupcolor: \"#3f789e\"\n },\n cyan: { color: \"#233\", bgcolor: \"#355\", groupcolor: \"#8AA\" },\n purple: { color: \"#323\", bgcolor: \"#535\", groupcolor: \"#a1309b\" },\n yellow: { color: \"#432\", bgcolor: \"#653\", groupcolor: \"#b58b2a\" },\n black: { color: \"#222\", bgcolor: \"#000\", groupcolor: \"#444\" }\n };\n\n LGraphCanvas.prototype.getCanvasMenuOptions = function() {\n var options = null;\n if (this.getMenuOptions) {\n options = this.getMenuOptions();\n } else {\n options = [\n {\n content: \"Add Node\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuAdd\n },\n { content: \"Add Group\", callback: LGraphCanvas.onGroupAdd }\n //{content:\"Collapse All\", callback: LGraphCanvas.onMenuCollapseAll }\n ];\n\n if (this._graph_stack && this._graph_stack.length > 0) {\n options.push(null, {\n content: \"Close subgraph\",\n callback: this.closeSubgraph.bind(this)\n });\n }\n }\n\n if (this.getExtraMenuOptions) {\n var extra = this.getExtraMenuOptions(this, options);\n if (extra) {\n options = options.concat(extra);\n }\n }\n\n return options;\n };\n\n //called by processContextMenu to extract the menu list\n LGraphCanvas.prototype.getNodeMenuOptions = function(node) {\n var options = null;\n\n if (node.getMenuOptions) {\n options = node.getMenuOptions(this);\n } else {\n options = [\n {\n content: \"Inputs\",\n has_submenu: true,\n disabled: true,\n callback: LGraphCanvas.showMenuNodeOptionalInputs\n },\n {\n content: \"Outputs\",\n has_submenu: true,\n disabled: true,\n callback: LGraphCanvas.showMenuNodeOptionalOutputs\n },\n null,\n {\n content: \"Properties\",\n has_submenu: true,\n callback: LGraphCanvas.onShowMenuNodeProperties\n },\n null,\n {\n content: \"Title\",\n callback: LGraphCanvas.onShowPropertyEditor\n },\n {\n content: \"Mode\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeMode\n },\n {\n content: \"Resize\", callback: function() {\n if(node.resizable) \n return LGraphCanvas.onResizeNode;\n }\n },\n {\n content: \"Collapse\",\n callback: LGraphCanvas.onMenuNodeCollapse\n },\n { content: \"Pin\", callback: LGraphCanvas.onMenuNodePin },\n {\n content: \"Colors\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeColors\n },\n {\n content: \"Shapes\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeShapes\n },\n null\n ];\n }\n\n if (node.onGetInputs) {\n var inputs = node.onGetInputs();\n if (inputs && inputs.length) {\n options[0].disabled = false;\n }\n }\n\n if (node.onGetOutputs) {\n var outputs = node.onGetOutputs();\n if (outputs && outputs.length) {\n options[1].disabled = false;\n }\n }\n\n if (node.getExtraMenuOptions) {\n var extra = node.getExtraMenuOptions(this, options);\n if (extra) {\n extra.push(null);\n options = extra.concat(options);\n }\n }\n\n if (node.clonable !== false) {\n options.push({\n content: \"Clone\",\n callback: LGraphCanvas.onMenuNodeClone\n });\n }\n\n\t\tif(0) //TODO\n\t\toptions.push({\n\t\t\tcontent: \"To Subgraph\",\n\t\t\tcallback: LGraphCanvas.onMenuNodeToSubgraph\n\t\t});\n\n\t\toptions.push(null, {\n\t\t\tcontent: \"Remove\",\n\t\t\tdisabled: !(node.removable !== false && !node.block_delete ),\n\t\t\tcallback: LGraphCanvas.onMenuNodeRemove\n\t\t});\n\n if (node.graph && node.graph.onGetNodeMenuOptions) {\n node.graph.onGetNodeMenuOptions(options, node);\n }\n\n return options;\n };\n\n LGraphCanvas.prototype.getGroupMenuOptions = function(node) {\n var o = [\n { content: \"Title\", callback: LGraphCanvas.onShowPropertyEditor },\n {\n content: \"Color\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeColors\n },\n {\n content: \"Font size\",\n property: \"font_size\",\n type: \"Number\",\n callback: LGraphCanvas.onShowPropertyEditor\n },\n null,\n { content: \"Remove\", callback: LGraphCanvas.onMenuNodeRemove }\n ];\n\n return o;\n };\n\n LGraphCanvas.prototype.processContextMenu = function(node, event) {\n var that = this;\n var canvas = LGraphCanvas.active_canvas;\n var ref_window = canvas.getCanvasWindow();\n\n var menu_info = null;\n var options = {\n event: event,\n callback: inner_option_clicked,\n extra: node\n };\n\n\t\tif(node)\n\t\t\toptions.title = node.type;\n\n //check if mouse is in input\n var slot = null;\n if (node) {\n slot = node.getSlotInPosition(event.canvasX, event.canvasY);\n LGraphCanvas.active_node = node;\n }\n\n if (slot) {\n //on slot\n menu_info = [];\n if (node.getSlotMenuOptions) {\n menu_info = node.getSlotMenuOptions(slot);\n } else {\n if (\n slot &&\n slot.output &&\n slot.output.links &&\n slot.output.links.length\n ) {\n menu_info.push({ content: \"Disconnect Links\", slot: slot });\n }\n var _slot = slot.input || slot.output;\n menu_info.push(\n _slot.locked\n ? \"Cannot remove\"\n : { content: \"Remove Slot\", slot: slot }\n );\n menu_info.push(\n _slot.nameLocked\n ? \"Cannot rename\"\n : { content: \"Rename Slot\", slot: slot }\n );\n \n }\n options.title =\n (slot.input ? slot.input.type : slot.output.type) || \"*\";\n if (slot.input && slot.input.type == LiteGraph.ACTION) {\n options.title = \"Action\";\n }\n if (slot.output && slot.output.type == LiteGraph.EVENT) {\n options.title = \"Event\";\n }\n } else {\n if (node) {\n //on node\n menu_info = this.getNodeMenuOptions(node);\n } else {\n menu_info = this.getCanvasMenuOptions();\n var group = this.graph.getGroupOnPos(\n event.canvasX,\n event.canvasY\n );\n if (group) {\n //on group\n menu_info.push(null, {\n content: \"Edit Group\",\n has_submenu: true,\n submenu: {\n title: \"Group\",\n extra: group,\n options: this.getGroupMenuOptions(group)\n }\n });\n }\n }\n }\n\n //show menu\n if (!menu_info) {\n return;\n }\n\n var menu = new LiteGraph.ContextMenu(menu_info, options, ref_window);\n\n function inner_option_clicked(v, options, e) {\n if (!v) {\n return;\n }\n\n if (v.content == \"Remove Slot\") {\n var info = v.slot;\n if (info.input) {\n node.removeInput(info.slot);\n } else if (info.output) {\n node.removeOutput(info.slot);\n }\n return;\n } else if (v.content == \"Disconnect Links\") {\n var info = v.slot;\n if (info.output) {\n node.disconnectOutput(info.slot);\n } else if (info.input) {\n node.disconnectInput(info.slot);\n }\n return;\n } else if (v.content == \"Rename Slot\") {\n var info = v.slot;\n var slot_info = info.input\n ? node.getInputInfo(info.slot)\n : node.getOutputInfo(info.slot);\n var dialog = that.createDialog(\n \"Name\",\n options\n );\n var input = dialog.querySelector(\"input\");\n if (input && slot_info) {\n input.value = slot_info.label || \"\";\n }\n dialog\n .querySelector(\"button\")\n .addEventListener(\"click\", function(e) {\n if (input.value) {\n if (slot_info) {\n slot_info.label = input.value;\n }\n that.setDirty(true);\n }\n dialog.close();\n });\n }\n\n //if(v.callback)\n //\treturn v.callback.call(that, node, options, e, menu, that, event );\n }\n };\n\n //API *************************************************\n //like rect but rounded corners\n if (typeof(window) != \"undefined\" && window.CanvasRenderingContext2D && !window.CanvasRenderingContext2D.prototype.roundRect) {\n window.CanvasRenderingContext2D.prototype.roundRect = function(\n\t\tx,\n\t\ty,\n\t\tw,\n\t\th,\n\t\tradius,\n\t\tradius_low\n\t) {\n\t\tvar top_left_radius = 0;\n\t\tvar top_right_radius = 0;\n\t\tvar bottom_left_radius = 0;\n\t\tvar bottom_right_radius = 0;\n\n\t\tif ( radius === 0 )\n\t\t{\n\t\t\tthis.rect(x,y,w,h);\n\t\t\treturn;\n\t\t}\n\n\t\tif(radius_low === undefined)\n\t\t\tradius_low = radius;\n\n\t\t//make it compatible with official one\n\t\tif(radius != null && radius.constructor === Array)\n\t\t{\n\t\t\tif(radius.length == 1)\n\t\t\t\ttop_left_radius = top_right_radius = bottom_left_radius = bottom_right_radius = radius[0];\n\t\t\telse if(radius.length == 2)\n\t\t\t{\n\t\t\t\ttop_left_radius = bottom_right_radius = radius[0];\n\t\t\t\ttop_right_radius = bottom_left_radius = radius[1];\n\t\t\t}\n\t\t\telse if(radius.length == 4)\n\t\t\t{\n\t\t\t\ttop_left_radius = radius[0];\n\t\t\t\ttop_right_radius = radius[1];\n\t\t\t\tbottom_left_radius = radius[2];\n\t\t\t\tbottom_right_radius = radius[3];\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn;\n\t\t}\n\t\telse //old using numbers\n\t\t{\n\t\t\ttop_left_radius = radius || 0;\n\t\t\ttop_right_radius = radius || 0;\n\t\t\tbottom_left_radius = radius_low || 0;\n\t\t\tbottom_right_radius = radius_low || 0;\n\t\t}\n\n\t\t//top right\n\t\tthis.moveTo(x + top_left_radius, y);\n\t\tthis.lineTo(x + w - top_right_radius, y);\n\t\tthis.quadraticCurveTo(x + w, y, x + w, y + top_right_radius);\n\n\t\t//bottom right\n\t\tthis.lineTo(x + w, y + h - bottom_right_radius);\n\t\tthis.quadraticCurveTo(\n\t\t\tx + w,\n\t\t\ty + h,\n\t\t\tx + w - bottom_right_radius,\n\t\t\ty + h\n\t\t);\n\n\t\t//bottom left\n\t\tthis.lineTo(x + bottom_right_radius, y + h);\n\t\tthis.quadraticCurveTo(x, y + h, x, y + h - bottom_left_radius);\n\n\t\t//top left\n\t\tthis.lineTo(x, y + bottom_left_radius);\n\t\tthis.quadraticCurveTo(x, y, x + top_left_radius, y);\n\t};\n\t}//if\n\n function compareObjects(a, b) {\n for (var i in a) {\n if (a[i] != b[i]) {\n return false;\n }\n }\n return true;\n }\n LiteGraph.compareObjects = compareObjects;\n\n function distance(a, b) {\n return Math.sqrt(\n (b[0] - a[0]) * (b[0] - a[0]) + (b[1] - a[1]) * (b[1] - a[1])\n );\n }\n LiteGraph.distance = distance;\n\n function colorToString(c) {\n return (\n \"rgba(\" +\n Math.round(c[0] * 255).toFixed() +\n \",\" +\n Math.round(c[1] * 255).toFixed() +\n \",\" +\n Math.round(c[2] * 255).toFixed() +\n \",\" +\n (c.length == 4 ? c[3].toFixed(2) : \"1.0\") +\n \")\"\n );\n }\n LiteGraph.colorToString = colorToString;\n\n function isInsideRectangle(x, y, left, top, width, height) {\n if (left < x && left + width > x && top < y && top + height > y) {\n return true;\n }\n return false;\n }\n LiteGraph.isInsideRectangle = isInsideRectangle;\n\n //[minx,miny,maxx,maxy]\n function growBounding(bounding, x, y) {\n if (x < bounding[0]) {\n bounding[0] = x;\n } else if (x > bounding[2]) {\n bounding[2] = x;\n }\n\n if (y < bounding[1]) {\n bounding[1] = y;\n } else if (y > bounding[3]) {\n bounding[3] = y;\n }\n }\n LiteGraph.growBounding = growBounding;\n\n //point inside bounding box\n function isInsideBounding(p, bb) {\n if (\n p[0] < bb[0][0] ||\n p[1] < bb[0][1] ||\n p[0] > bb[1][0] ||\n p[1] > bb[1][1]\n ) {\n return false;\n }\n return true;\n }\n LiteGraph.isInsideBounding = isInsideBounding;\n\n //bounding overlap, format: [ startx, starty, width, height ]\n function overlapBounding(a, b) {\n var A_end_x = a[0] + a[2];\n var A_end_y = a[1] + a[3];\n var B_end_x = b[0] + b[2];\n var B_end_y = b[1] + b[3];\n\n if (\n a[0] > B_end_x ||\n a[1] > B_end_y ||\n A_end_x < b[0] ||\n A_end_y < b[1]\n ) {\n return false;\n }\n return true;\n }\n LiteGraph.overlapBounding = overlapBounding;\n\n //Convert a hex value to its decimal value - the inputted hex must be in the\n //\tformat of a hex triplet - the kind we use for HTML colours. The function\n //\twill return an array with three values.\n function hex2num(hex) {\n if (hex.charAt(0) == \"#\") {\n hex = hex.slice(1);\n } //Remove the '#' char - if there is one.\n hex = hex.toUpperCase();\n var hex_alphabets = \"0123456789ABCDEF\";\n var value = new Array(3);\n var k = 0;\n var int1, int2;\n for (var i = 0; i < 6; i += 2) {\n int1 = hex_alphabets.indexOf(hex.charAt(i));\n int2 = hex_alphabets.indexOf(hex.charAt(i + 1));\n value[k] = int1 * 16 + int2;\n k++;\n }\n return value;\n }\n\n LiteGraph.hex2num = hex2num;\n\n //Give a array with three values as the argument and the function will return\n //\tthe corresponding hex triplet.\n function num2hex(triplet) {\n var hex_alphabets = \"0123456789ABCDEF\";\n var hex = \"#\";\n var int1, int2;\n for (var i = 0; i < 3; i++) {\n int1 = triplet[i] / 16;\n int2 = triplet[i] % 16;\n\n hex += hex_alphabets.charAt(int1) + hex_alphabets.charAt(int2);\n }\n return hex;\n }\n\n LiteGraph.num2hex = num2hex;\n\n /* LiteGraph GUI elements used for canvas editing *************************************/\n\n /**\n * ContextMenu from LiteGUI\n *\n * @class ContextMenu\n * @constructor\n * @param {Array} values (allows object { title: \"Nice text\", callback: function ... })\n * @param {Object} options [optional] Some options:\\\n * - title: title to show on top of the menu\n * - callback: function to call when an option is clicked, it receives the item information\n * - ignore_item_callbacks: ignores the callback inside the item, it just calls the options.callback\n * - event: you can pass a MouseEvent, this way the ContextMenu appears in that position\n */\n function ContextMenu(values, options) {\n options = options || {};\n this.options = options;\n var that = this;\n\n //to link a menu with its parent\n if (options.parentMenu) {\n if (options.parentMenu.constructor !== this.constructor) {\n console.error(\n \"parentMenu must be of class ContextMenu, ignoring it\"\n );\n options.parentMenu = null;\n } else {\n this.parentMenu = options.parentMenu;\n this.parentMenu.lock = true;\n this.parentMenu.current_submenu = this;\n }\n }\n\n\t\tvar eventClass = null;\n\t\tif(options.event) //use strings because comparing classes between windows doesnt work\n\t\t\teventClass = options.event.constructor.name;\n if ( eventClass !== \"MouseEvent\" &&\n eventClass !== \"CustomEvent\" &&\n\t\t\teventClass !== \"PointerEvent\"\n ) {\n console.error(\n \"Event passed to ContextMenu is not of type MouseEvent or CustomEvent. Ignoring it.\"\n );\n options.event = null;\n }\n\n var root = document.createElement(\"div\");\n root.className = \"litegraph litecontextmenu litemenubar-panel\";\n if (options.className) {\n root.className += \" \" + options.className;\n }\n root.style.minWidth = 100;\n root.style.minHeight = 100;\n root.style.pointerEvents = \"none\";\n setTimeout(function() {\n root.style.pointerEvents = \"auto\";\n }, 100); //delay so the mouse up event is not caught by this element\n\n //this prevents the default context browser menu to open in case this menu was created when pressing right button\n root.addEventListener(\n \"mouseup\",\n function(e) {\n e.preventDefault();\n return true;\n },\n true\n );\n root.addEventListener(\n \"contextmenu\",\n function(e) {\n if (e.button != 2) {\n //right button\n return false;\n }\n e.preventDefault();\n return false;\n },\n true\n );\n\n root.addEventListener(\n \"mousedown\",\n function(e) {\n if (e.button == 2) {\n that.close();\n e.preventDefault();\n return true;\n }\n },\n true\n );\n\n function on_mouse_wheel(e) {\n var pos = parseInt(root.style.top);\n root.style.top =\n (pos + e.deltaY * options.scroll_speed).toFixed() + \"px\";\n e.preventDefault();\n return true;\n }\n\n if (!options.scroll_speed) {\n options.scroll_speed = 0.1;\n }\n\n root.addEventListener(\"wheel\", on_mouse_wheel, true);\n root.addEventListener(\"mousewheel\", on_mouse_wheel, true);\n\n this.root = root;\n\n //title\n if (options.title) {\n var element = document.createElement(\"div\");\n element.className = \"litemenu-title\";\n element.innerHTML = options.title;\n root.appendChild(element);\n }\n\n //entries\n var num = 0;\n for (var i=0; i < values.length; i++) {\n var name = values.constructor == Array ? values[i] : i;\n if (name != null && name.constructor !== String) {\n name = name.content === undefined ? String(name) : name.content;\n }\n var value = values[i];\n this.addItem(name, value, options);\n num++;\n }\n\n //close on leave\n root.addEventListener(\"mouseleave\", function(e) {\n if (that.lock) {\n return;\n }\n if (root.closing_timer) {\n clearTimeout(root.closing_timer);\n }\n root.closing_timer = setTimeout(that.close.bind(that, e), 500);\n //that.close(e);\n });\n\n root.addEventListener(\"mouseenter\", function(e) {\n if (root.closing_timer) {\n clearTimeout(root.closing_timer);\n }\n });\n\n //insert before checking position\n var root_document = document;\n if (options.event) {\n root_document = options.event.target.ownerDocument;\n }\n\n if (!root_document) {\n root_document = document;\n }\n\n\t\tif( root_document.fullscreenElement )\n\t root_document.fullscreenElement.appendChild(root);\n\t\telse\n\t\t root_document.body.appendChild(root);\n\n //compute best position\n var left = options.left || 0;\n var top = options.top || 0;\n if (options.event) {\n left = options.event.clientX - 10;\n top = options.event.clientY - 10;\n if (options.title) {\n top -= 20;\n }\n\n if (options.parentMenu) {\n var rect = options.parentMenu.root.getBoundingClientRect();\n left = rect.left + rect.width;\n }\n\n var body_rect = document.body.getBoundingClientRect();\n var root_rect = root.getBoundingClientRect();\n\t\t\tif(body_rect.height == 0)\n\t\t\t\tconsole.error(\"document.body height is 0. That is dangerous, set html,body { height: 100%; }\");\n\n if (body_rect.width && left > body_rect.width - root_rect.width - 10) {\n left = body_rect.width - root_rect.width - 10;\n }\n if (body_rect.height && top > body_rect.height - root_rect.height - 10) {\n top = body_rect.height - root_rect.height - 10;\n }\n }\n\n root.style.left = left + \"px\";\n root.style.top = top + \"px\";\n\n if (options.scale) {\n root.style.transform = \"scale(\" + options.scale + \")\";\n }\n }\n\n ContextMenu.prototype.addItem = function(name, value, options) {\n var that = this;\n options = options || {};\n\n var element = document.createElement(\"div\");\n element.className = \"litemenu-entry submenu\";\n\n var disabled = false;\n\n if (value === null) {\n element.classList.add(\"separator\");\n //element.innerHTML = \"
\"\n //continue;\n } else {\n element.innerHTML = value && value.title ? value.title : name;\n element.value = value;\n\n if (value) {\n if (value.disabled) {\n disabled = true;\n element.classList.add(\"disabled\");\n }\n if (value.submenu || value.has_submenu) {\n element.classList.add(\"has_submenu\");\n }\n }\n\n if (typeof value == \"function\") {\n element.dataset[\"value\"] = name;\n element.onclick_callback = value;\n } else {\n element.dataset[\"value\"] = value;\n }\n\n if (value.className) {\n element.className += \" \" + value.className;\n }\n }\n\n this.root.appendChild(element);\n if (!disabled) {\n element.addEventListener(\"click\", inner_onclick);\n }\n if (options.autoopen) {\n element.addEventListener(\"mouseenter\", inner_over);\n }\n\n function inner_over(e) {\n var value = this.value;\n if (!value || !value.has_submenu) {\n return;\n }\n //if it is a submenu, autoopen like the item was clicked\n inner_onclick.call(this, e);\n }\n\n //menu option clicked\n function inner_onclick(e) {\n var value = this.value;\n var close_parent = true;\n\n if (that.current_submenu) {\n that.current_submenu.close(e);\n }\n\n //global callback\n if (options.callback) {\n var r = options.callback.call(\n this,\n value,\n options,\n e,\n that,\n options.node\n );\n if (r === true) {\n close_parent = false;\n }\n }\n\n //special cases\n if (value) {\n if (\n value.callback &&\n !options.ignore_item_callbacks &&\n value.disabled !== true\n ) {\n //item callback\n var r = value.callback.call(\n this,\n value,\n options,\n e,\n that,\n options.extra\n );\n if (r === true) {\n close_parent = false;\n }\n }\n if (value.submenu) {\n if (!value.submenu.options) {\n throw \"ContextMenu submenu needs options\";\n }\n var submenu = new that.constructor(value.submenu.options, {\n callback: value.submenu.callback,\n event: e,\n parentMenu: that,\n ignore_item_callbacks:\n value.submenu.ignore_item_callbacks,\n title: value.submenu.title,\n extra: value.submenu.extra,\n autoopen: options.autoopen\n });\n close_parent = false;\n }\n }\n\n if (close_parent && !that.lock) {\n that.close();\n }\n }\n\n return element;\n };\n\n ContextMenu.prototype.close = function(e, ignore_parent_menu) {\n if (this.root.parentNode) {\n this.root.parentNode.removeChild(this.root);\n }\n if (this.parentMenu && !ignore_parent_menu) {\n this.parentMenu.lock = false;\n this.parentMenu.current_submenu = null;\n if (e === undefined) {\n this.parentMenu.close();\n } else if (\n e &&\n !ContextMenu.isCursorOverElement(e, this.parentMenu.root)\n ) {\n ContextMenu.trigger(this.parentMenu.root, \"mouseleave\", e);\n }\n }\n if (this.current_submenu) {\n this.current_submenu.close(e, true);\n }\n\n if (this.root.closing_timer) {\n clearTimeout(this.root.closing_timer);\n }\n };\n\n //this code is used to trigger events easily (used in the context menu mouseleave\n ContextMenu.trigger = function(element, event_name, params, origin) {\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event_name, true, true, params); //canBubble, cancelable, detail\n evt.srcElement = origin;\n if (element.dispatchEvent) {\n element.dispatchEvent(evt);\n } else if (element.__events) {\n element.__events.dispatchEvent(evt);\n }\n //else nothing seems binded here so nothing to do\n return evt;\n };\n\n //returns the top most menu\n ContextMenu.prototype.getTopMenu = function() {\n if (this.options.parentMenu) {\n return this.options.parentMenu.getTopMenu();\n }\n return this;\n };\n\n ContextMenu.prototype.getFirstEvent = function() {\n if (this.options.parentMenu) {\n return this.options.parentMenu.getFirstEvent();\n }\n return this.options.event;\n };\n\n ContextMenu.isCursorOverElement = function(event, element) {\n var left = event.clientX;\n var top = event.clientY;\n var rect = element.getBoundingClientRect();\n if (!rect) {\n return false;\n }\n if (\n top > rect.top &&\n top < rect.top + rect.height &&\n left > rect.left &&\n left < rect.left + rect.width\n ) {\n return true;\n }\n return false;\n };\n\n LiteGraph.ContextMenu = ContextMenu;\n\n LiteGraph.closeAllContextMenus = function(ref_window) {\n ref_window = ref_window || window;\n\n var elements = ref_window.document.querySelectorAll(\".litecontextmenu\");\n if (!elements.length) {\n return;\n }\n\n var result = [];\n for (var i = 0; i < elements.length; i++) {\n result.push(elements[i]);\n }\n\n for (var i=0; i < result.length; i++) {\n if (result[i].close) {\n result[i].close();\n } else if (result[i].parentNode) {\n result[i].parentNode.removeChild(result[i]);\n }\n }\n };\n\n LiteGraph.extendClass = function(target, origin) {\n for (var i in origin) {\n //copy class properties\n if (target.hasOwnProperty(i)) {\n continue;\n }\n target[i] = origin[i];\n }\n\n if (origin.prototype) {\n //copy prototype properties\n for (var i in origin.prototype) {\n //only enumerable\n if (!origin.prototype.hasOwnProperty(i)) {\n continue;\n }\n\n if (target.prototype.hasOwnProperty(i)) {\n //avoid overwriting existing ones\n continue;\n }\n\n //copy getters\n if (origin.prototype.__lookupGetter__(i)) {\n target.prototype.__defineGetter__(\n i,\n origin.prototype.__lookupGetter__(i)\n );\n } else {\n target.prototype[i] = origin.prototype[i];\n }\n\n //and setters\n if (origin.prototype.__lookupSetter__(i)) {\n target.prototype.__defineSetter__(\n i,\n origin.prototype.__lookupSetter__(i)\n );\n }\n }\n }\n };\n\n\t//used by some widgets to render a curve editor\n\tfunction CurveEditor( points )\n\t{\n\t\tthis.points = points;\n\t\tthis.selected = -1;\n\t\tthis.nearest = -1;\n\t\tthis.size = null; //stores last size used\n\t\tthis.must_update = true;\n\t\tthis.margin = 5;\n\t}\n\n\tCurveEditor.sampleCurve = function(f,points)\n\t{\n\t\tif(!points)\n\t\t\treturn;\n\t\tfor(var i = 0; i < points.length - 1; ++i)\n\t\t{\n\t\t\tvar p = points[i];\n\t\t\tvar pn = points[i+1];\n\t\t\tif(pn[0] < f)\n\t\t\t\tcontinue;\n\t\t\tvar r = (pn[0] - p[0]);\n\t\t\tif( Math.abs(r) < 0.00001 )\n\t\t\t\treturn p[1];\n\t\t\tvar local_f = (f - p[0]) / r;\n\t\t\treturn p[1] * (1.0 - local_f) + pn[1] * local_f;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tCurveEditor.prototype.draw = function( ctx, size, graphcanvas, background_color, line_color, inactive )\n\t{\n\t\tvar points = this.points;\n\t\tif(!points)\n\t\t\treturn;\n\t\tthis.size = size;\n\t\tvar w = size[0] - this.margin * 2;\n\t\tvar h = size[1] - this.margin * 2;\n\n\t\tline_color = line_color || \"#666\";\n\n\t\tctx.save();\n\t\tctx.translate(this.margin,this.margin);\n\n\t\tif(background_color)\n\t\t{\n\t\t\tctx.fillStyle = \"#111\";\n\t\t\tctx.fillRect(0,0,w,h);\n\t\t\tctx.fillStyle = \"#222\";\n\t\t\tctx.fillRect(w*0.5,0,1,h);\n\t\t\tctx.strokeStyle = \"#333\";\n\t\t\tctx.strokeRect(0,0,w,h);\n\t\t}\n\t\tctx.strokeStyle = line_color;\n\t\tif(inactive)\n\t\t\tctx.globalAlpha = 0.5;\n\t\tctx.beginPath();\n\t\tfor(var i = 0; i < points.length; ++i)\n\t\t{\n\t\t\tvar p = points[i];\n\t\t\tctx.lineTo( p[0] * w, (1.0 - p[1]) * h );\n\t\t}\n\t\tctx.stroke();\n\t\tctx.globalAlpha = 1;\n\t\tif(!inactive)\n\t\t\tfor(var i = 0; i < points.length; ++i)\n\t\t\t{\n\t\t\t\tvar p = points[i];\n\t\t\t\tctx.fillStyle = this.selected == i ? \"#FFF\" : (this.nearest == i ? \"#DDD\" : \"#AAA\");\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc( p[0] * w, (1.0 - p[1]) * h, 2, 0, Math.PI * 2 );\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\tctx.restore();\n\t}\n\n\t//localpos is mouse in curve editor space\n\tCurveEditor.prototype.onMouseDown = function( localpos, graphcanvas )\n\t{\n\t\tvar points = this.points;\n\t\tif(!points)\n\t\t\treturn;\n\t\tif( localpos[1] < 0 )\n\t\t\treturn;\n\n\t\t//this.captureInput(true);\n\t\tvar w = this.size[0] - this.margin * 2;\n\t\tvar h = this.size[1] - this.margin * 2;\n\t\tvar x = localpos[0] - this.margin;\n\t\tvar y = localpos[1] - this.margin;\n\t\tvar pos = [x,y];\n\t\tvar max_dist = 30 / graphcanvas.ds.scale;\n\t\t//search closer one\n\t\tthis.selected = this.getCloserPoint(pos, max_dist);\n\t\t//create one\n\t\tif(this.selected == -1)\n\t\t{\n\t\t\tvar point = [x / w, 1 - y / h];\n\t\t\tpoints.push(point);\n\t\t\tpoints.sort(function(a,b){ return a[0] - b[0]; });\n\t\t\tthis.selected = points.indexOf(point);\n\t\t\tthis.must_update = true;\n\t\t}\n\t\tif(this.selected != -1)\n\t\t\treturn true;\n\t}\n\n\tCurveEditor.prototype.onMouseMove = function( localpos, graphcanvas )\n\t{\n\t\tvar points = this.points;\n\t\tif(!points)\n\t\t\treturn;\n\t\tvar s = this.selected;\n\t\tif(s < 0)\n\t\t\treturn;\n\t\tvar x = (localpos[0] - this.margin) / (this.size[0] - this.margin * 2 );\n\t\tvar y = (localpos[1] - this.margin) / (this.size[1] - this.margin * 2 );\n\t\tvar curvepos = [(localpos[0] - this.margin),(localpos[1] - this.margin)];\n\t\tvar max_dist = 30 / graphcanvas.ds.scale;\n\t\tthis._nearest = this.getCloserPoint(curvepos, max_dist);\n\t\tvar point = points[s];\n\t\tif(point)\n\t\t{\n\t\t\tvar is_edge_point = s == 0 || s == points.length - 1;\n\t\t\tif( !is_edge_point && (localpos[0] < -10 || localpos[0] > this.size[0] + 10 || localpos[1] < -10 || localpos[1] > this.size[1] + 10) )\n\t\t\t{\n\t\t\t\tpoints.splice(s,1);\n\t\t\t\tthis.selected = -1;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif( !is_edge_point ) //not edges\n\t\t\t\tpoint[0] = Math.clamp(x,0,1);\n\t\t\telse\n\t\t\t\tpoint[0] = s == 0 ? 0 : 1;\n\t\t\tpoint[1] = 1.0 - Math.clamp(y,0,1);\n\t\t\tpoints.sort(function(a,b){ return a[0] - b[0]; });\n\t\t\tthis.selected = points.indexOf(point);\n\t\t\tthis.must_update = true;\n\t\t}\n\t}\n\n\tCurveEditor.prototype.onMouseUp = function( localpos, graphcanvas )\n\t{\n\t\tthis.selected = -1;\n\t\treturn false;\n\t}\n\n\tCurveEditor.prototype.getCloserPoint = function(pos, max_dist)\n\t{\n\t\tvar points = this.points;\n\t\tif(!points)\n\t\t\treturn -1;\n\t\tmax_dist = max_dist || 30;\n\t\tvar w = (this.size[0] - this.margin * 2);\n\t\tvar h = (this.size[1] - this.margin * 2);\n\t\tvar num = points.length;\n\t\tvar p2 = [0,0];\n\t\tvar min_dist = 1000000;\n\t\tvar closest = -1;\n\t\tvar last_valid = -1;\n\t\tfor(var i = 0; i < num; ++i)\n\t\t{\n\t\t\tvar p = points[i];\n\t\t\tp2[0] = p[0] * w;\n\t\t\tp2[1] = (1.0 - p[1]) * h;\n\t\t\tif(p2[0] < pos[0])\n\t\t\t\tlast_valid = i;\n\t\t\tvar dist = vec2.distance(pos,p2);\n\t\t\tif(dist > min_dist || dist > max_dist)\n\t\t\t\tcontinue;\n\t\t\tclosest = i;\n\t\t\tmin_dist = dist;\n\t\t}\n\t\treturn closest;\n\t}\n\n\tLiteGraph.CurveEditor = CurveEditor;\n\n //used to create nodes from wrapping functions\n LiteGraph.getParameterNames = function(func) {\n return (func + \"\")\n .replace(/[/][/].*$/gm, \"\") // strip single-line comments\n .replace(/\\s+/g, \"\") // strip white space\n .replace(/[/][*][^/*]*[*][/]/g, \"\") // strip multi-line comments /**/\n .split(\"){\", 1)[0]\n .replace(/^[^(]*[(]/, \"\") // extract the parameters\n .replace(/=[^,]+/g, \"\") // strip any ES6 defaults\n .split(\",\")\n .filter(Boolean); // split & filter [\"\"]\n };\n\n Math.clamp = function(v, a, b) {\n return a > v ? a : b < v ? b : v;\n };\n\n if (typeof window != \"undefined\" && !window[\"requestAnimationFrame\"]) {\n window.requestAnimationFrame =\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n function(callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }\n})(this);\n\nif (typeof exports != \"undefined\") {\n exports.LiteGraph = this.LiteGraph;\n}\n\n//basic nodes\n(function(global) {\n var LiteGraph = global.LiteGraph;\n\n //Constant\n function Time() {\n this.addOutput(\"in ms\", \"number\");\n this.addOutput(\"in sec\", \"number\");\n }\n\n Time.title = \"Time\";\n Time.desc = \"Time\";\n\n Time.prototype.onExecute = function() {\n this.setOutputData(0, this.graph.globaltime * 1000);\n this.setOutputData(1, this.graph.globaltime);\n };\n\n LiteGraph.registerNodeType(\"basic/time\", Time);\n\n //Subgraph: a node that contains a graph\n function Subgraph() {\n var that = this;\n this.size = [140, 80];\n this.properties = { enabled: true };\n this.enabled = true;\n\n //create inner graph\n this.subgraph = new LiteGraph.LGraph();\n this.subgraph._subgraph_node = this;\n this.subgraph._is_subgraph = true;\n\n this.subgraph.onTrigger = this.onSubgraphTrigger.bind(this);\n\n\t\t//nodes input node added inside\n this.subgraph.onInputAdded = this.onSubgraphNewInput.bind(this);\n this.subgraph.onInputRenamed = this.onSubgraphRenamedInput.bind(this);\n this.subgraph.onInputTypeChanged = this.onSubgraphTypeChangeInput.bind(this);\n this.subgraph.onInputRemoved = this.onSubgraphRemovedInput.bind(this);\n\n this.subgraph.onOutputAdded = this.onSubgraphNewOutput.bind(this);\n this.subgraph.onOutputRenamed = this.onSubgraphRenamedOutput.bind(this);\n this.subgraph.onOutputTypeChanged = this.onSubgraphTypeChangeOutput.bind(this);\n this.subgraph.onOutputRemoved = this.onSubgraphRemovedOutput.bind(this);\n }\n\n Subgraph.title = \"Subgraph\";\n Subgraph.desc = \"Graph inside a node\";\n Subgraph.title_color = \"#334\";\n\n Subgraph.prototype.onGetInputs = function() {\n return [[\"enabled\", \"boolean\"]];\n };\n\n\t/*\n Subgraph.prototype.onDrawTitle = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n ctx.fillStyle = \"#555\";\n var w = LiteGraph.NODE_TITLE_HEIGHT;\n var x = this.size[0] - w;\n ctx.fillRect(x, -w, w, w);\n ctx.fillStyle = \"#333\";\n ctx.beginPath();\n ctx.moveTo(x + w * 0.2, -w * 0.6);\n ctx.lineTo(x + w * 0.8, -w * 0.6);\n ctx.lineTo(x + w * 0.5, -w * 0.3);\n ctx.fill();\n };\n\t*/\n\n Subgraph.prototype.onDblClick = function(e, pos, graphcanvas) {\n var that = this;\n setTimeout(function() {\n graphcanvas.openSubgraph(that.subgraph);\n }, 10);\n };\n\n\t/*\n Subgraph.prototype.onMouseDown = function(e, pos, graphcanvas) {\n if (\n !this.flags.collapsed &&\n pos[0] > this.size[0] - LiteGraph.NODE_TITLE_HEIGHT &&\n pos[1] < 0\n ) {\n var that = this;\n setTimeout(function() {\n graphcanvas.openSubgraph(that.subgraph);\n }, 10);\n }\n };\n\t*/\n\n Subgraph.prototype.onAction = function(action, param) {\n this.subgraph.onAction(action, param);\n };\n\n Subgraph.prototype.onExecute = function() {\n this.enabled = this.getInputOrProperty(\"enabled\");\n if (!this.enabled) {\n return;\n }\n\n //send inputs to subgraph global inputs\n if (this.inputs) {\n for (var i = 0; i < this.inputs.length; i++) {\n var input = this.inputs[i];\n var value = this.getInputData(i);\n this.subgraph.setInputData(input.name, value);\n }\n }\n\n //execute\n this.subgraph.runStep();\n\n //send subgraph global outputs to outputs\n if (this.outputs) {\n for (var i = 0; i < this.outputs.length; i++) {\n var output = this.outputs[i];\n var value = this.subgraph.getOutputData(output.name);\n this.setOutputData(i, value);\n }\n }\n };\n\n Subgraph.prototype.sendEventToAllNodes = function(eventname, param, mode) {\n if (this.enabled) {\n this.subgraph.sendEventToAllNodes(eventname, param, mode);\n }\n };\n\n\tSubgraph.prototype.onDrawBackground = function(ctx, graphcanvas, canvas, pos)\n\t{\n\t\tif(this.flags.collapsed)\n\t\t\treturn;\n\n\t\tvar y = this.size[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5;\n\n\t\t//button\n\t\tvar over = LiteGraph.isInsideRectangle(pos[0],pos[1],this.pos[0],this.pos[1] + y,this.size[0],LiteGraph.NODE_TITLE_HEIGHT);\n\t\tctx.fillStyle = over ? \"#555\" : \"#222\";\n\t\tctx.beginPath();\n\t\tif (this._shape == LiteGraph.BOX_SHAPE)\n\t\t\tctx.rect(0, y, this.size[0]+1, LiteGraph.NODE_TITLE_HEIGHT);\n\t\telse\n\t\t\tctx.roundRect( 0, y, this.size[0]+1, LiteGraph.NODE_TITLE_HEIGHT, 0, 8);\n\t\tctx.fill();\n\n\t\t//button\n\t\tctx.textAlign = \"center\";\n\t\tctx.font = \"24px Arial\";\n\t\tctx.fillStyle = over ? \"#DDD\" : \"#999\";\n\t\tctx.fillText( \"+\", this.size[0] * 0.5, y + 24 );\n\t}\n\n\tSubgraph.prototype.onMouseDown = function(e, localpos, graphcanvas)\n\t{\n\t\tvar y = this.size[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5;\n\t\tif(localpos[1] > y)\n\t\t{\n\t\t\tgraphcanvas.showSubgraphPropertiesDialog(this);\n\t\t}\n\t}\n\n\tSubgraph.prototype.computeSize = function()\n\t{\n\t\tvar num_inputs = this.inputs ? this.inputs.length : 0;\n\t\tvar num_outputs = this.outputs ? this.outputs.length : 0;\n\t\treturn [ 200, Math.max(num_inputs,num_outputs) * LiteGraph.NODE_SLOT_HEIGHT + LiteGraph.NODE_TITLE_HEIGHT ];\n\t}\n\n //**** INPUTS ***********************************\n Subgraph.prototype.onSubgraphTrigger = function(event, param) {\n var slot = this.findOutputSlot(event);\n if (slot != -1) {\n this.triggerSlot(slot);\n }\n };\n\n Subgraph.prototype.onSubgraphNewInput = function(name, type) {\n var slot = this.findInputSlot(name);\n if (slot == -1) {\n //add input to the node\n this.addInput(name, type);\n }\n };\n\n Subgraph.prototype.onSubgraphRenamedInput = function(oldname, name) {\n var slot = this.findInputSlot(oldname);\n if (slot == -1) {\n return;\n }\n var info = this.getInputInfo(slot);\n info.name = name;\n };\n\n Subgraph.prototype.onSubgraphTypeChangeInput = function(name, type) {\n var slot = this.findInputSlot(name);\n if (slot == -1) {\n return;\n }\n var info = this.getInputInfo(slot);\n info.type = type;\n };\n\n Subgraph.prototype.onSubgraphRemovedInput = function(name) {\n var slot = this.findInputSlot(name);\n if (slot == -1) {\n return;\n }\n this.removeInput(slot);\n };\n\n //**** OUTPUTS ***********************************\n Subgraph.prototype.onSubgraphNewOutput = function(name, type) {\n var slot = this.findOutputSlot(name);\n if (slot == -1) {\n this.addOutput(name, type);\n }\n };\n\n Subgraph.prototype.onSubgraphRenamedOutput = function(oldname, name) {\n var slot = this.findOutputSlot(oldname);\n if (slot == -1) {\n return;\n }\n var info = this.getOutputInfo(slot);\n info.name = name;\n };\n\n Subgraph.prototype.onSubgraphTypeChangeOutput = function(name, type) {\n var slot = this.findOutputSlot(name);\n if (slot == -1) {\n return;\n }\n var info = this.getOutputInfo(slot);\n info.type = type;\n };\n\n Subgraph.prototype.onSubgraphRemovedOutput = function(name) {\n var slot = this.findInputSlot(name);\n if (slot == -1) {\n return;\n }\n this.removeOutput(slot);\n };\n // *****************************************************\n\n Subgraph.prototype.getExtraMenuOptions = function(graphcanvas) {\n var that = this;\n return [\n {\n content: \"Open\",\n callback: function() {\n graphcanvas.openSubgraph(that.subgraph);\n }\n }\n ];\n };\n\n Subgraph.prototype.onResize = function(size) {\n size[1] += 20;\n };\n\n Subgraph.prototype.serialize = function() {\n var data = LiteGraph.LGraphNode.prototype.serialize.call(this);\n data.subgraph = this.subgraph.serialize();\n return data;\n };\n //no need to define node.configure, the default method detects node.subgraph and passes the object to node.subgraph.configure()\n\n Subgraph.prototype.clone = function() {\n var node = LiteGraph.createNode(this.type);\n var data = this.serialize();\n delete data[\"id\"];\n delete data[\"inputs\"];\n delete data[\"outputs\"];\n node.configure(data);\n return node;\n };\n\n\tSubgraph.prototype.buildFromNodes = function(nodes)\n\t{\n\t\t//clear all?\n\t\t//TODO\n\n\t\t//nodes that connect data between parent graph and subgraph\n\t\tvar subgraph_inputs = [];\n\t\tvar subgraph_outputs = [];\n\n\t\t//mark inner nodes\n\t\tvar ids = {};\n\t\tvar min_x = 0;\n\t\tvar max_x = 0;\n\t\tfor(var i = 0; i < nodes.length; ++i)\n\t\t{\n\t\t\tvar node = nodes[i];\n\t\t\tids[ node.id ] = node;\n\t\t\tmin_x = Math.min( node.pos[0], min_x );\n\t\t\tmax_x = Math.max( node.pos[0], min_x );\n\t\t}\n\t\t\n\t\tvar last_input_y = 0;\n\t\tvar last_output_y = 0;\n\n\t\tfor(var i = 0; i < nodes.length; ++i)\n\t\t{\n\t\t\tvar node = nodes[i];\n\t\t\t//check inputs\n\t\t\tif( node.inputs )\n\t\t\t\tfor(var j = 0; j < node.inputs.length; ++j)\n\t\t\t\t{\n\t\t\t\t\tvar input = node.inputs[j];\n\t\t\t\t\tif( !input || !input.link )\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tvar link = node.graph.links[ input.link ];\n\t\t\t\t\tif(!link)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tif( ids[ link.origin_id ] )\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t//this.addInput(input.name,link.type);\n\t\t\t\t\tthis.subgraph.addInput(input.name,link.type);\n\t\t\t\t\t/*\n\t\t\t\t\tvar input_node = LiteGraph.createNode(\"graph/input\");\n\t\t\t\t\tthis.subgraph.add( input_node );\n\t\t\t\t\tinput_node.pos = [min_x - 200, last_input_y ];\n\t\t\t\t\tlast_input_y += 100;\n\t\t\t\t\t*/\n\t\t\t\t}\n\n\t\t\t//check outputs\n\t\t\tif( node.outputs )\n\t\t\t\tfor(var j = 0; j < node.outputs.length; ++j)\n\t\t\t\t{\n\t\t\t\t\tvar output = node.outputs[j];\n\t\t\t\t\tif( !output || !output.links || !output.links.length )\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\tvar is_external = false;\n\t\t\t\t\tfor(var k = 0; k < output.links.length; ++k)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar link = node.graph.links[ output.links[k] ];\n\t\t\t\t\t\tif(!link)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\tif( ids[ link.target_id ] )\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\tis_external = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!is_external)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t//this.addOutput(output.name,output.type);\n\t\t\t\t\t/*\n\t\t\t\t\tvar output_node = LiteGraph.createNode(\"graph/output\");\n\t\t\t\t\tthis.subgraph.add( output_node );\n\t\t\t\t\toutput_node.pos = [max_x + 50, last_output_y ];\n\t\t\t\t\tlast_output_y += 100;\n\t\t\t\t\t*/\n\t\t\t\t}\n\t\t}\n\n\t\t//detect inputs and outputs\n\t\t\t//split every connection in two data_connection nodes\n\t\t\t//keep track of internal connections\n\t\t\t//connect external connections\n\n\t\t//clone nodes inside subgraph and try to reconnect them\n\n\t\t//connect edge subgraph nodes to extarnal connections nodes\n\t}\n\n LiteGraph.Subgraph = Subgraph;\n LiteGraph.registerNodeType(\"graph/subgraph\", Subgraph);\n\n //Input for a subgraph\n function GraphInput() {\n this.addOutput(\"\", \"number\");\n\n this.name_in_graph = \"\";\n this.properties = {\n\t\t\tname: \"\",\n\t\t\ttype: \"number\",\n\t\t\tvalue: 0\n\t\t}; \n\n var that = this;\n\n this.name_widget = this.addWidget(\n \"text\",\n \"Name\",\n this.properties.name,\n function(v) {\n if (!v) {\n return;\n }\n that.setProperty(\"name\",v);\n }\n );\n this.type_widget = this.addWidget(\n \"text\",\n \"Type\",\n this.properties.type,\n function(v) {\n\t\t\t\tthat.setProperty(\"type\",v);\n }\n );\n\n this.value_widget = this.addWidget(\n \"number\",\n \"Value\",\n this.properties.value,\n function(v) {\n that.setProperty(\"value\",v);\n }\n );\n\n this.widgets_up = true;\n this.size = [180, 90];\n }\n\n GraphInput.title = \"Input\";\n GraphInput.desc = \"Input of the graph\";\n\n\tGraphInput.prototype.onConfigure = function()\n\t{\n\t\tthis.updateType();\n\t}\n\n\t//ensures the type in the node output and the type in the associated graph input are the same\n\tGraphInput.prototype.updateType = function()\n\t{\n\t\tvar type = this.properties.type;\n\t\tthis.type_widget.value = type;\n\n\t\t//update output\n\t\tif(this.outputs[0].type != type)\n\t\t{\n\t if (!LiteGraph.isValidConnection(this.outputs[0].type,type))\n\t\t\t\tthis.disconnectOutput(0);\n\t\t\tthis.outputs[0].type = type;\n\t\t}\n\n\t\t//update widget\n\t\tif(type == \"number\")\n\t\t{\n\t\t\tthis.value_widget.type = \"number\";\n\t\t\tthis.value_widget.value = 0;\n\t\t}\n\t\telse if(type == \"boolean\")\n\t\t{\n\t\t\tthis.value_widget.type = \"toggle\";\n\t\t\tthis.value_widget.value = true;\n\t\t}\n\t\telse if(type == \"string\")\n\t\t{\n\t\t\tthis.value_widget.type = \"text\";\n\t\t\tthis.value_widget.value = \"\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.value_widget.type = null;\n\t\t\tthis.value_widget.value = null;\n\t\t}\n\t\tthis.properties.value = this.value_widget.value;\n\n\t\t//update graph\n\t\tif (this.graph && this.name_in_graph) {\n\t\t\tthis.graph.changeInputType(this.name_in_graph, type);\n\t\t}\n\t}\n\n\t//this is executed AFTER the property has changed\n\tGraphInput.prototype.onPropertyChanged = function(name,v)\n\t{\n\t\tif( name == \"name\" )\n\t\t{\n\t\t\tif (v == \"\" || v == this.name_in_graph || v == \"enabled\") {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif(this.graph)\n\t\t\t{\n\t\t\t\tif (this.name_in_graph) {\n\t\t\t\t\t//already added\n\t\t\t\t\tthis.graph.renameInput( this.name_in_graph, v );\n\t\t\t\t} else {\n\t\t\t\t\tthis.graph.addInput( v, this.properties.type );\n\t\t\t\t}\n\t\t\t} //what if not?!\n\t\t\tthis.name_widget.value = v;\n\t\t\tthis.name_in_graph = v;\n\t\t}\n\t\telse if( name == \"type\" )\n\t\t{\n\t\t\tthis.updateType();\n\t\t}\n\t\telse if( name == \"value\" )\n\t\t{\n\t\t}\n\t}\n\n GraphInput.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return this.properties.name;\n }\n return this.title;\n };\n\n GraphInput.prototype.onAction = function(action, param) {\n if (this.properties.type == LiteGraph.EVENT) {\n this.triggerSlot(0, param);\n }\n };\n\n GraphInput.prototype.onExecute = function() {\n var name = this.properties.name;\n //read from global input\n var data = this.graph.inputs[name];\n if (!data) {\n this.setOutputData(0, this.properties.value );\n\t\t\treturn;\n }\n\n this.setOutputData(0, data.value !== undefined ? data.value : this.properties.value );\n };\n\n GraphInput.prototype.onRemoved = function() {\n if (this.name_in_graph) {\n this.graph.removeInput(this.name_in_graph);\n }\n };\n\n LiteGraph.GraphInput = GraphInput;\n LiteGraph.registerNodeType(\"graph/input\", GraphInput);\n\n //Output for a subgraph\n function GraphOutput() {\n this.addInput(\"\", \"\");\n\n this.name_in_graph = \"\";\n this.properties = {};\n var that = this;\n\n Object.defineProperty(this.properties, \"name\", {\n get: function() {\n return that.name_in_graph;\n },\n set: function(v) {\n if (v == \"\" || v == that.name_in_graph) {\n return;\n }\n if (that.name_in_graph) {\n //already added\n that.graph.renameOutput(that.name_in_graph, v);\n } else {\n that.graph.addOutput(v, that.properties.type);\n }\n that.name_widget.value = v;\n that.name_in_graph = v;\n },\n enumerable: true\n });\n\n Object.defineProperty(this.properties, \"type\", {\n get: function() {\n return that.inputs[0].type;\n },\n set: function(v) {\n if (v == \"action\" || v == \"event\") {\n v = LiteGraph.ACTION;\n }\n\t\t if (!LiteGraph.isValidConnection(that.inputs[0].type,v))\n\t\t\t\t\tthat.disconnectInput(0);\n that.inputs[0].type = v;\n if (that.name_in_graph) {\n //already added\n that.graph.changeOutputType(\n that.name_in_graph,\n that.inputs[0].type\n );\n }\n that.type_widget.value = v || \"\";\n },\n enumerable: true\n });\n\n this.name_widget = this.addWidget(\"text\",\"Name\",this.properties.name,\"name\");\n this.type_widget = this.addWidget(\"text\",\"Type\",this.properties.type,\"type\");\n this.widgets_up = true;\n this.size = [180, 60];\n }\n\n GraphOutput.title = \"Output\";\n GraphOutput.desc = \"Output of the graph\";\n\n GraphOutput.prototype.onExecute = function() {\n this._value = this.getInputData(0);\n this.graph.setOutputData(this.properties.name, this._value);\n };\n\n GraphOutput.prototype.onAction = function(action, param) {\n if (this.properties.type == LiteGraph.ACTION) {\n this.graph.trigger(this.properties.name, param);\n }\n };\n\n GraphOutput.prototype.onRemoved = function() {\n if (this.name_in_graph) {\n this.graph.removeOutput(this.name_in_graph);\n }\n };\n\n GraphOutput.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return this.properties.name;\n }\n return this.title;\n };\n\n LiteGraph.GraphOutput = GraphOutput;\n LiteGraph.registerNodeType(\"graph/output\", GraphOutput);\n\n //Constant\n function ConstantNumber() {\n this.addOutput(\"value\", \"number\");\n this.addProperty(\"value\", 1.0);\n this.widget = this.addWidget(\"number\",\"value\",1,\"value\");\n this.widgets_up = true;\n this.size = [180, 30];\n }\n\n ConstantNumber.title = \"Const Number\";\n ConstantNumber.desc = \"Constant number\";\n\n ConstantNumber.prototype.onExecute = function() {\n this.setOutputData(0, parseFloat(this.properties[\"value\"]));\n };\n\n ConstantNumber.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return this.properties.value;\n }\n return this.title;\n };\n\n\tConstantNumber.prototype.setValue = function(v)\n\t{\n\t\tthis.setProperty(\"value\",v);\n\t}\n\n ConstantNumber.prototype.onDrawBackground = function(ctx) {\n //show the current value\n this.outputs[0].label = this.properties[\"value\"].toFixed(3);\n };\n\n LiteGraph.registerNodeType(\"basic/const\", ConstantNumber);\n\n function ConstantBoolean() {\n this.addOutput(\"\", \"boolean\");\n this.addProperty(\"value\", true);\n this.widget = this.addWidget(\"toggle\",\"value\",true,\"value\");\n this.widgets_up = true;\n this.size = [140, 30];\n }\n\n ConstantBoolean.title = \"Const Boolean\";\n ConstantBoolean.desc = \"Constant boolean\";\n ConstantBoolean.prototype.getTitle = ConstantNumber.prototype.getTitle;\n\n ConstantBoolean.prototype.onExecute = function() {\n this.setOutputData(0, this.properties[\"value\"]);\n };\n\n\tConstantBoolean.prototype.setValue = ConstantNumber.prototype.setValue;\n\n\tConstantBoolean.prototype.onGetInputs = function() {\n\t\treturn [[\"toggle\", LiteGraph.ACTION]];\n\t};\n\n\tConstantBoolean.prototype.onAction = function(action)\n\t{\n\t\tthis.setValue( !this.properties.value );\n\t}\n\n LiteGraph.registerNodeType(\"basic/boolean\", ConstantBoolean);\n\n function ConstantString() {\n this.addOutput(\"\", \"string\");\n this.addProperty(\"value\", \"\");\n this.widget = this.addWidget(\"text\",\"value\",\"\",\"value\"); //link to property value\n this.widgets_up = true;\n this.size = [180, 30];\n }\n\n ConstantString.title = \"Const String\";\n ConstantString.desc = \"Constant string\";\n\n ConstantString.prototype.getTitle = ConstantNumber.prototype.getTitle;\n\n ConstantString.prototype.onExecute = function() {\n this.setOutputData(0, this.properties[\"value\"]);\n };\n\n\tConstantString.prototype.setValue = ConstantNumber.prototype.setValue;\n\n\tConstantString.prototype.onDropFile = function(file)\n\t{\n\t\tvar that = this;\n\t\tvar reader = new FileReader();\n\t\treader.onload = function(e)\n\t\t{\n\t\t\tthat.setProperty(\"value\",e.target.result);\n\t\t}\n\t\treader.readAsText(file);\n\t}\n\n LiteGraph.registerNodeType(\"basic/string\", ConstantString);\n\n function ConstantObject() {\n this.addOutput(\"obj\", \"object\");\n this.size = [120, 30];\n\t\tthis._object = {};\n }\n\n ConstantObject.title = \"Const Object\";\n ConstantObject.desc = \"Constant Object\";\n\n ConstantObject.prototype.onExecute = function() {\n this.setOutputData(0, this._object);\n };\n\n LiteGraph.registerNodeType( \"basic/object\", ConstantObject );\n\n function ConstantFile() {\n this.addInput(\"url\", \"\");\n this.addOutput(\"\", \"\");\n this.addProperty(\"url\", \"\");\n this.addProperty(\"type\", \"text\");\n this.widget = this.addWidget(\"text\",\"url\",\"\",\"url\");\n this._data = null;\n }\n\n ConstantFile.title = \"Const File\";\n ConstantFile.desc = \"Fetches a file from an url\";\n ConstantFile[\"@type\"] = { type: \"enum\", values: [\"text\",\"arraybuffer\",\"blob\",\"json\"] };\n\n ConstantFile.prototype.onPropertyChanged = function(name, value) {\n if (name == \"url\")\n\t\t{\n\t\t\tif( value == null || value == \"\")\n\t\t\t\tthis._data = null;\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.fetchFile(value);\n\t\t\t}\n\t\t}\n\t}\n\n ConstantFile.prototype.onExecute = function() {\n\t\tvar url = this.getInputData(0) || this.properties.url;\n\t\tif(url && (url != this._url || this._type != this.properties.type))\n\t\t\tthis.fetchFile(url);\n this.setOutputData(0, this._data );\n };\n\n\tConstantFile.prototype.setValue = ConstantNumber.prototype.setValue;\n\n ConstantFile.prototype.fetchFile = function(url) {\n\t\tvar that = this;\n\t\tif(!url || url.constructor !== String)\n\t\t{\n\t\t\tthat._data = null;\n that.boxcolor = null;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._url = url;\n\t\tthis._type = this.properties.type;\n if (url.substr(0, 4) == \"http\" && LiteGraph.proxy) {\n url = LiteGraph.proxy + url.substr(url.indexOf(\":\") + 3);\n }\n\t\tfetch(url)\n\t\t.then(function(response) {\n\t\t\tif(!response.ok)\n\t\t\t\t throw new Error(\"File not found\");\n\n\t\t\tif(that.properties.type == \"arraybuffer\")\n\t\t\t\treturn response.arrayBuffer();\n\t\t\telse if(that.properties.type == \"text\")\n\t\t\t\treturn response.text();\n\t\t\telse if(that.properties.type == \"json\")\n\t\t\t\treturn response.json();\n\t\t\telse if(that.properties.type == \"blob\")\n\t\t\t\treturn response.blob();\n\t\t})\n\t\t.then(function(data) {\n\t\t\tthat._data = data;\n that.boxcolor = \"#AEA\";\n\t\t})\n\t\t.catch(function(error) {\n\t\t\tthat._data = null;\n that.boxcolor = \"red\";\n\t\t\tconsole.error(\"error fetching file:\",url);\n\t\t});\n };\n\n\tConstantFile.prototype.onDropFile = function(file)\n\t{\n\t\tvar that = this;\n\t\tthis._url = file.name;\n\t\tthis._type = this.properties.type;\n\t\tthis.properties.url = file.name;\n\t\tvar reader = new FileReader();\n\t\treader.onload = function(e)\n\t\t{\n that.boxcolor = \"#AEA\";\n\t\t\tvar v = e.target.result;\n\t\t\tif( that.properties.type == \"json\" )\n\t\t\t\tv = JSON.parse(v);\n\t\t\tthat._data = v;\n\t\t}\n\t\tif(that.properties.type == \"arraybuffer\")\n\t\t\treader.readAsArrayBuffer(file);\n\t\telse if(that.properties.type == \"text\" || that.properties.type == \"json\")\n\t\t\treader.readAsText(file);\n\t\telse if(that.properties.type == \"blob\")\n\t\t\treturn reader.readAsBinaryString(file);\n\t}\n\n LiteGraph.registerNodeType(\"basic/file\", ConstantFile);\n\n\t//to store json objects\n function ConstantData() {\n this.addOutput(\"\", \"\");\n this.addProperty(\"value\", \"\");\n this.widget = this.addWidget(\"text\",\"json\",\"\",\"value\");\n this.widgets_up = true;\n this.size = [140, 30];\n this._value = null;\n }\n\n ConstantData.title = \"Const Data\";\n ConstantData.desc = \"Constant Data\";\n\n ConstantData.prototype.onPropertyChanged = function(name, value) {\n this.widget.value = value;\n if (value == null || value == \"\") {\n return;\n }\n\n try {\n this._value = JSON.parse(value);\n this.boxcolor = \"#AEA\";\n } catch (err) {\n this.boxcolor = \"red\";\n }\n };\n\n ConstantData.prototype.onExecute = function() {\n this.setOutputData(0, this._value);\n };\n\n\tConstantData.prototype.setValue = ConstantNumber.prototype.setValue;\n\n LiteGraph.registerNodeType(\"basic/data\", ConstantData);\n\n\t//to store json objects\n function ConstantArray() {\n this._value = [];\n this.addInput(\"\", \"\");\n this.addOutput(\"\", \"array\");\n this.addOutput(\"length\", \"number\");\n this.addProperty(\"value\", \"[]\");\n this.widget = this.addWidget(\"text\",\"array\",this.properties.value,\"value\");\n this.widgets_up = true;\n this.size = [140, 50];\n }\n\n ConstantArray.title = \"Const Array\";\n ConstantArray.desc = \"Constant Array\";\n\n ConstantArray.prototype.onPropertyChanged = function(name, value) {\n this.widget.value = value;\n if (value == null || value == \"\") {\n return;\n }\n\n try {\n\t\t\tif(value[0] != \"[\")\n\t this._value = JSON.parse(\"[\" + value + \"]\");\n\t\t\telse\n\t this._value = JSON.parse(value);\n this.boxcolor = \"#AEA\";\n } catch (err) {\n this.boxcolor = \"red\";\n }\n };\n\n ConstantArray.prototype.onExecute = function() {\n var v = this.getInputData(0);\n\t\tif(v && v.length) //clone\n\t\t{\n\t\t\tif(!this._value)\n\t\t\t\tthis._value = new Array();\n\t\t\tthis._value.length = v.length;\n\t\t\tfor(var i = 0; i < v.length; ++i)\n\t\t\t\tthis._value[i] = v[i];\n\t\t}\n\t\tthis.setOutputData(0, this._value );\n\t\tthis.setOutputData(1, this._value ? ( this._value.length || 0) : 0 );\n };\n\n\tConstantArray.prototype.setValue = ConstantNumber.prototype.setValue;\n\n LiteGraph.registerNodeType(\"basic/array\", ConstantArray);\n\n\tfunction SetArray()\n\t{\n this.addInput(\"arr\", \"array\");\n this.addInput(\"value\", \"\");\n this.addOutput(\"arr\", \"array\");\n\t\tthis.properties = { index: 0 };\n this.widget = this.addWidget(\"number\",\"i\",this.properties.index,\"index\");\n\t}\n\n SetArray.title = \"Set Array\";\n SetArray.desc = \"Sets index of array\";\n\n SetArray.prototype.onExecute = function() {\n var arr = this.getInputData(0);\n\t\tif(!arr)\n\t\t\treturn;\n var v = this.getInputData(1);\n\t\tif(v === undefined )\n\t\t\treturn;\n\t\tif(this.properties.index)\n\t\t\tarr[ Math.floor(this.properties.index) ] = v;\n\t\tthis.setOutputData(0,arr);\n };\n\n LiteGraph.registerNodeType(\"basic/set_array\", SetArray );\n\n function ArrayElement() {\n this.addInput(\"array\", \"array,table,string\");\n this.addInput(\"index\", \"number\");\n this.addOutput(\"value\", \"\");\n\t\tthis.addProperty(\"index\",0);\n }\n\n ArrayElement.title = \"Array[i]\";\n ArrayElement.desc = \"Returns an element from an array\";\n\n ArrayElement.prototype.onExecute = function() {\n var array = this.getInputData(0);\n var index = this.getInputData(1);\n\t\tif(index == null)\n\t\t\tindex = this.properties.index;\n\t\tif(array == null || index == null )\n\t\t\treturn;\n this.setOutputData(0, array[Math.floor(Number(index))] );\n };\n\n LiteGraph.registerNodeType(\"basic/array[]\", ArrayElement);\n\n function TableElement() {\n this.addInput(\"table\", \"table\");\n this.addInput(\"row\", \"number\");\n this.addInput(\"col\", \"number\");\n this.addOutput(\"value\", \"\");\n\t\tthis.addProperty(\"row\",0);\n\t\tthis.addProperty(\"column\",0);\n }\n\n TableElement.title = \"Table[row][col]\";\n TableElement.desc = \"Returns an element from a table\";\n\n TableElement.prototype.onExecute = function() {\n var table = this.getInputData(0);\n var row = this.getInputData(1);\n var col = this.getInputData(2);\n\t\tif(row == null)\n\t\t\trow = this.properties.row;\n\t\tif(col == null)\n\t\t\tcol = this.properties.column;\n\t\tif(table == null || row == null || col == null)\n\t\t\treturn;\n\t\tvar row = table[Math.floor(Number(row))];\n\t\tif(row)\n\t this.setOutputData(0, row[Math.floor(Number(col))] );\n\t\telse\n\t this.setOutputData(0, null );\n };\n\n LiteGraph.registerNodeType(\"basic/table[][]\", TableElement);\n\n function ObjectProperty() {\n this.addInput(\"obj\", \"\");\n this.addOutput(\"\", \"\");\n this.addProperty(\"value\", \"\");\n this.widget = this.addWidget(\"text\",\"prop.\",\"\",this.setValue.bind(this) );\n this.widgets_up = true;\n this.size = [140, 30];\n this._value = null;\n }\n\n ObjectProperty.title = \"Object property\";\n ObjectProperty.desc = \"Outputs the property of an object\";\n\n ObjectProperty.prototype.setValue = function(v) {\n this.properties.value = v;\n this.widget.value = v;\n };\n\n ObjectProperty.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return \"in.\" + this.properties.value;\n }\n return this.title;\n };\n\n ObjectProperty.prototype.onPropertyChanged = function(name, value) {\n this.widget.value = value;\n };\n\n ObjectProperty.prototype.onExecute = function() {\n var data = this.getInputData(0);\n if (data != null) {\n this.setOutputData(0, data[this.properties.value]);\n }\n };\n\n LiteGraph.registerNodeType(\"basic/object_property\", ObjectProperty);\n\n function ObjectKeys() {\n this.addInput(\"obj\", \"\");\n this.addOutput(\"keys\", \"array\");\n this.size = [140, 30];\n }\n\n ObjectKeys.title = \"Object keys\";\n ObjectKeys.desc = \"Outputs an array with the keys of an object\";\n\n ObjectKeys.prototype.onExecute = function() {\n var data = this.getInputData(0);\n if (data != null) {\n this.setOutputData(0, Object.keys(data) );\n }\n };\n\n LiteGraph.registerNodeType(\"basic/object_keys\", ObjectKeys);\n\n\n\tfunction SetObject()\n\t{\n this.addInput(\"obj\", \"\");\n this.addInput(\"value\", \"\");\n this.addOutput(\"obj\", \"\");\n\t\tthis.properties = { property: \"\" };\n this.name_widget = this.addWidget(\"text\",\"prop.\",this.properties.property,\"property\");\n\t}\n\n SetObject.title = \"Set Object\";\n SetObject.desc = \"Adds propertiesrty to object\";\n\n SetObject.prototype.onExecute = function() {\n var obj = this.getInputData(0);\n\t\tif(!obj)\n\t\t\treturn;\n var v = this.getInputData(1);\n\t\tif(v === undefined )\n\t\t\treturn;\n\t\tif(this.properties.property)\n\t\t\tobj[ this.properties.property ] = v;\n\t\tthis.setOutputData(0,obj);\n };\n\n LiteGraph.registerNodeType(\"basic/set_object\", SetObject );\n\n\n function MergeObjects() {\n this.addInput(\"A\", \"\");\n this.addInput(\"B\", \"\");\n this.addOutput(\"\", \"\");\n\t\tthis._result = {};\n\t\tvar that = this;\n\t\tthis.addWidget(\"button\",\"clear\",\"\",function(){\n\t\t\tthat._result = {};\n\t\t});\n\t\tthis.size = this.computeSize();\n }\n\n MergeObjects.title = \"Merge Objects\";\n MergeObjects.desc = \"Creates an object copying properties from others\";\n\n MergeObjects.prototype.onExecute = function() {\n var A = this.getInputData(0);\n var B = this.getInputData(1);\n\t\tvar C = this._result;\n\t\tif(A)\n\t\t\tfor(var i in A)\n\t\t\t\tC[i] = A[i];\n\t\tif(B)\n\t\t\tfor(var i in B)\n\t\t\t\tC[i] = B[i];\n\t\tthis.setOutputData(0,C);\n };\n\n LiteGraph.registerNodeType(\"basic/merge_objects\", MergeObjects );\n\n //Store as variable\n function Variable() {\n this.size = [60, 30];\n this.addInput(\"in\");\n this.addOutput(\"out\");\n\t\tthis.properties = { varname: \"myname\", container: Variable.LITEGRAPH };\n this.value = null;\n }\n\n Variable.title = \"Variable\";\n Variable.desc = \"store/read variable value\";\n\n\tVariable.LITEGRAPH = 0; //between all graphs\n\tVariable.GRAPH = 1;\t//only inside this graph\n\tVariable.GLOBALSCOPE = 2;\t//attached to Window\n\n Variable[\"@container\"] = { type: \"enum\", values: {\"litegraph\":Variable.LITEGRAPH, \"graph\":Variable.GRAPH,\"global\": Variable.GLOBALSCOPE} };\n\n Variable.prototype.onExecute = function() {\n\t\tvar container = this.getContainer();\n\n\t\tif(this.isInputConnected(0))\n\t\t{\n\t\t\tthis.value = this.getInputData(0);\n\t\t\tcontainer[ this.properties.varname ] = this.value;\n\t\t\tthis.setOutputData(0, this.value );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setOutputData( 0, container[ this.properties.varname ] );\n };\n\n\tVariable.prototype.getContainer = function()\n\t{\n\t\tswitch(this.properties.container)\n\t\t{\n\t\t\tcase Variable.GRAPH:\n\t\t\t\tif(this.graph)\n\t\t\t\t\treturn this.graph.vars;\n\t\t\t\treturn {};\n\t\t\t\tbreak;\n\t\t\tcase Variable.GLOBALSCOPE:\n\t\t\t\treturn global;\n\t\t\t\tbreak;\n\t\t\tcase Variable.LITEGRAPH:\n\t\t\tdefault:\n\t\t\t\treturn LiteGraph.Globals;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n Variable.prototype.getTitle = function() {\n return this.properties.varname;\n };\n\n LiteGraph.registerNodeType(\"basic/variable\", Variable);\n\n function length(v) {\n if(v && v.length != null)\n\t\t\treturn Number(v.length);\n\t\treturn 0;\n }\n\n LiteGraph.wrapFunctionAsNode(\n \"basic/length\",\n length,\n [\"\"],\n \"number\"\n );\n\n\tfunction DownloadData() {\n this.size = [60, 30];\n this.addInput(\"data\", 0 );\n this.addInput(\"download\", LiteGraph.ACTION );\n\t\tthis.properties = { filename: \"data.json\" };\n this.value = null;\n\t\tvar that = this;\n\t\tthis.addWidget(\"button\",\"Download\",\"\", function(v){\n\t\t\tif(!that.value)\n\t\t\t\treturn;\n\t\t\tthat.downloadAsFile();\n\t\t});\n }\n\n DownloadData.title = \"Download\";\n DownloadData.desc = \"Download some data\";\n\n\tDownloadData.prototype.downloadAsFile = function()\n\t{\n\t\tif(this.value == null)\n\t\t\treturn;\n\n\t\tvar str = null;\n\t\tif(this.value.constructor === String)\n\t\t\tstr = this.value;\n\t\telse\n\t\t\tstr = JSON.stringify(this.value);\n\n\t\tvar file = new Blob([str]);\n\t\tvar url = URL.createObjectURL( file );\n\t\tvar element = document.createElement(\"a\");\n\t\telement.setAttribute('href', url);\n\t\telement.setAttribute('download', this.properties.filename );\n\t\telement.style.display = 'none';\n\t\tdocument.body.appendChild(element);\n\t\telement.click();\n\t\tdocument.body.removeChild(element);\n\t\tsetTimeout( function(){ URL.revokeObjectURL( url ); }, 1000*60 ); //wait one minute to revoke url\n\t}\n\n DownloadData.prototype.onAction = function(action, param) {\n\t\tvar that = this;\n\t\tsetTimeout( function(){ that.downloadAsFile(); }, 100); //deferred to avoid blocking the renderer with the popup\n\t}\n\n DownloadData.prototype.onExecute = function() {\n if (this.inputs[0]) {\n this.value = this.getInputData(0);\n }\n };\n\n DownloadData.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return this.properties.filename;\n }\n return this.title;\n };\n\n LiteGraph.registerNodeType(\"basic/download\", DownloadData);\n\n\n\n //Watch a value in the editor\n function Watch() {\n this.size = [60, 30];\n this.addInput(\"value\", 0, { label: \"\" });\n this.value = 0;\n }\n\n Watch.title = \"Watch\";\n Watch.desc = \"Show value of input\";\n\n Watch.prototype.onExecute = function() {\n if (this.inputs[0]) {\n this.value = this.getInputData(0);\n }\n };\n\n Watch.prototype.getTitle = function() {\n if (this.flags.collapsed) {\n return this.inputs[0].label;\n }\n return this.title;\n };\n\n Watch.toString = function(o) {\n if (o == null) {\n return \"null\";\n } else if (o.constructor === Number) {\n return o.toFixed(3);\n } else if (o.constructor === Array) {\n var str = \"[\";\n for (var i = 0; i < o.length; ++i) {\n str += Watch.toString(o[i]) + (i + 1 != o.length ? \",\" : \"\");\n }\n str += \"]\";\n return str;\n } else {\n return String(o);\n }\n };\n\n Watch.prototype.onDrawBackground = function(ctx) {\n //show the current value\n this.inputs[0].label = Watch.toString(this.value);\n };\n\n LiteGraph.registerNodeType(\"basic/watch\", Watch);\n\n //in case one type doesnt match other type but you want to connect them anyway\n function Cast() {\n this.addInput(\"in\", 0);\n this.addOutput(\"out\", 0);\n this.size = [40, 30];\n }\n\n Cast.title = \"Cast\";\n Cast.desc = \"Allows to connect different types\";\n\n Cast.prototype.onExecute = function() {\n this.setOutputData(0, this.getInputData(0));\n };\n\n LiteGraph.registerNodeType(\"basic/cast\", Cast);\n\n //Show value inside the debug console\n function Console() {\n this.mode = LiteGraph.ON_EVENT;\n this.size = [80, 30];\n this.addProperty(\"msg\", \"\");\n this.addInput(\"log\", LiteGraph.EVENT);\n this.addInput(\"msg\", 0);\n }\n\n Console.title = \"Console\";\n Console.desc = \"Show value inside the console\";\n\n Console.prototype.onAction = function(action, param) {\n if (action == \"log\") {\n console.log(param);\n } else if (action == \"warn\") {\n console.warn(param);\n } else if (action == \"error\") {\n console.error(param);\n }\n };\n\n Console.prototype.onExecute = function() {\n var msg = this.getInputData(1);\n if (msg !== null) {\n this.properties.msg = msg;\n }\n console.log(msg);\n };\n\n Console.prototype.onGetInputs = function() {\n return [\n [\"log\", LiteGraph.ACTION],\n [\"warn\", LiteGraph.ACTION],\n [\"error\", LiteGraph.ACTION]\n ];\n };\n\n LiteGraph.registerNodeType(\"basic/console\", Console);\n\n //Show value inside the debug console\n function Alert() {\n this.mode = LiteGraph.ON_EVENT;\n this.addProperty(\"msg\", \"\");\n this.addInput(\"\", LiteGraph.EVENT);\n var that = this;\n this.widget = this.addWidget(\"text\", \"Text\", \"\", \"msg\");\n this.widgets_up = true;\n this.size = [200, 30];\n }\n\n Alert.title = \"Alert\";\n Alert.desc = \"Show an alert window\";\n Alert.color = \"#510\";\n\n Alert.prototype.onConfigure = function(o) {\n this.widget.value = o.properties.msg;\n };\n\n Alert.prototype.onAction = function(action, param) {\n var msg = this.properties.msg;\n setTimeout(function() {\n alert(msg);\n }, 10);\n };\n\n LiteGraph.registerNodeType(\"basic/alert\", Alert);\n\n //Execites simple code\n function NodeScript() {\n this.size = [60, 30];\n this.addProperty(\"onExecute\", \"return A;\");\n this.addInput(\"A\", \"\");\n this.addInput(\"B\", \"\");\n this.addOutput(\"out\", \"\");\n\n this._func = null;\n this.data = {};\n }\n\n NodeScript.prototype.onConfigure = function(o) {\n if (o.properties.onExecute && LiteGraph.allow_scripts)\n this.compileCode(o.properties.onExecute);\n\t\telse\n\t\t\tconsole.warn(\"Script not compiled, LiteGraph.allow_scripts is false\");\n };\n\n NodeScript.title = \"Script\";\n NodeScript.desc = \"executes a code (max 100 characters)\";\n\n NodeScript.widgets_info = {\n onExecute: { type: \"code\" }\n };\n\n NodeScript.prototype.onPropertyChanged = function(name, value) {\n if (name == \"onExecute\" && LiteGraph.allow_scripts)\n this.compileCode(value);\n\t\telse\n\t\t\tconsole.warn(\"Script not compiled, LiteGraph.allow_scripts is false\");\n };\n\n NodeScript.prototype.compileCode = function(code) {\n this._func = null;\n if (code.length > 256) {\n console.warn(\"Script too long, max 256 chars\");\n } else {\n var code_low = code.toLowerCase();\n var forbidden_words = [\n \"script\",\n \"body\",\n \"document\",\n \"eval\",\n \"nodescript\",\n \"function\"\n ]; //bad security solution\n for (var i = 0; i < forbidden_words.length; ++i) {\n if (code_low.indexOf(forbidden_words[i]) != -1) {\n console.warn(\"invalid script\");\n return;\n }\n }\n try {\n this._func = new Function(\"A\", \"B\", \"C\", \"DATA\", \"node\", code);\n } catch (err) {\n console.error(\"Error parsing script\");\n console.error(err);\n }\n }\n };\n\n NodeScript.prototype.onExecute = function() {\n if (!this._func) {\n return;\n }\n\n try {\n var A = this.getInputData(0);\n var B = this.getInputData(1);\n var C = this.getInputData(2);\n this.setOutputData(0, this._func(A, B, C, this.data, this));\n } catch (err) {\n console.error(\"Error in script\");\n console.error(err);\n }\n };\n\n NodeScript.prototype.onGetOutputs = function() {\n return [[\"C\", \"\"]];\n };\n\n LiteGraph.registerNodeType(\"basic/script\", NodeScript);\n})(this);\n\n//event related nodes\r\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n //Show value inside the debug console\r\n function LogEvent() {\r\n this.size = [60, 30];\r\n this.addInput(\"event\", LiteGraph.ACTION);\r\n }\r\n\r\n LogEvent.title = \"Log Event\";\r\n LogEvent.desc = \"Log event in console\";\r\n\r\n LogEvent.prototype.onAction = function(action, param) {\r\n console.log(action, param);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/log\", LogEvent);\r\n\r\n //convert to Event if the value is true\r\n function TriggerEvent() {\r\n this.size = [60, 30];\r\n this.addInput(\"if\", \"\");\r\n this.addOutput(\"true\", LiteGraph.EVENT);\r\n this.addOutput(\"change\", LiteGraph.EVENT);\r\n this.addOutput(\"false\", LiteGraph.EVENT);\r\n\t\tthis.properties = { only_on_change: true };\r\n\t\tthis.prev = 0;\r\n }\r\n\r\n TriggerEvent.title = \"TriggerEvent\";\r\n TriggerEvent.desc = \"Triggers event if input evaluates to true\";\r\n\r\n TriggerEvent.prototype.onExecute = function(action, param) {\r\n\t\tvar v = this.getInputData(0);\r\n\t\tvar changed = (v != this.prev);\r\n\t\tif(this.prev === 0)\r\n\t\t\tchanged = false;\r\n\t\tvar must_resend = (changed && this.properties.only_on_change) || (!changed && !this.properties.only_on_change);\r\n\t\tif(v && must_resend )\r\n\t this.triggerSlot(0, param);\r\n\t\tif(!v && must_resend)\r\n\t this.triggerSlot(2, param);\r\n\t\tif(changed)\r\n\t this.triggerSlot(1, param);\r\n\t\tthis.prev = v;\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/trigger\", TriggerEvent);\r\n\r\n //Sequencer for events\r\n function Sequencer() {\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addInput(\"\", LiteGraph.ACTION);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.addOutput(\"\", LiteGraph.EVENT);\r\n this.size = [120, 30];\r\n this.flags = { horizontal: true, render_box: false };\r\n }\r\n\r\n Sequencer.title = \"Sequencer\";\r\n Sequencer.desc = \"Trigger events when an event arrives\";\r\n\r\n Sequencer.prototype.getTitle = function() {\r\n return \"\";\r\n };\r\n\r\n Sequencer.prototype.onAction = function(action, param) {\r\n if (this.outputs) {\r\n for (var i = 0; i < this.outputs.length; ++i) {\r\n this.triggerSlot(i, param);\r\n }\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/sequencer\", Sequencer);\r\n\r\n //Filter events\r\n function FilterEvent() {\r\n this.size = [60, 30];\r\n this.addInput(\"event\", LiteGraph.ACTION);\r\n this.addOutput(\"event\", LiteGraph.EVENT);\r\n this.properties = {\r\n equal_to: \"\",\r\n has_property: \"\",\r\n property_equal_to: \"\"\r\n };\r\n }\r\n\r\n FilterEvent.title = \"Filter Event\";\r\n FilterEvent.desc = \"Blocks events that do not match the filter\";\r\n\r\n FilterEvent.prototype.onAction = function(action, param) {\r\n if (param == null) {\r\n return;\r\n }\r\n\r\n if (this.properties.equal_to && this.properties.equal_to != param) {\r\n return;\r\n }\r\n\r\n if (this.properties.has_property) {\r\n var prop = param[this.properties.has_property];\r\n if (prop == null) {\r\n return;\r\n }\r\n\r\n if (\r\n this.properties.property_equal_to &&\r\n this.properties.property_equal_to != prop\r\n ) {\r\n return;\r\n }\r\n }\r\n\r\n this.triggerSlot(0, param);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/filter\", FilterEvent);\r\n\r\n\r\n function EventBranch() {\r\n this.addInput(\"in\", LiteGraph.ACTION);\r\n this.addInput(\"cond\", \"boolean\");\r\n this.addOutput(\"true\", LiteGraph.EVENT);\r\n this.addOutput(\"false\", LiteGraph.EVENT);\r\n this.size = [120, 60];\r\n\t\tthis._value = false;\r\n }\r\n\r\n EventBranch.title = \"Branch\";\r\n EventBranch.desc = \"If condition is true, outputs triggers true, otherwise false\";\r\n\r\n EventBranch.prototype.onExecute = function() {\r\n\t\tthis._value = this.getInputData(1);\r\n\t}\r\n\r\n EventBranch.prototype.onAction = function(action, param) {\r\n\t\tthis.triggerSlot(this._value ? 0 : 1);\r\n\t}\r\n\r\n LiteGraph.registerNodeType(\"events/branch\", EventBranch);\r\n\r\n //Show value inside the debug console\r\n function EventCounter() {\r\n this.addInput(\"inc\", LiteGraph.ACTION);\r\n this.addInput(\"dec\", LiteGraph.ACTION);\r\n this.addInput(\"reset\", LiteGraph.ACTION);\r\n this.addOutput(\"change\", LiteGraph.EVENT);\r\n this.addOutput(\"num\", \"number\");\r\n this.num = 0;\r\n }\r\n\r\n EventCounter.title = \"Counter\";\r\n EventCounter.desc = \"Counts events\";\r\n\r\n EventCounter.prototype.getTitle = function() {\r\n if (this.flags.collapsed) {\r\n return String(this.num);\r\n }\r\n return this.title;\r\n };\r\n\r\n EventCounter.prototype.onAction = function(action, param) {\r\n var v = this.num;\r\n if (action == \"inc\") {\r\n this.num += 1;\r\n } else if (action == \"dec\") {\r\n this.num -= 1;\r\n } else if (action == \"reset\") {\r\n this.num = 0;\r\n }\r\n if (this.num != v) {\r\n this.trigger(\"change\", this.num);\r\n }\r\n };\r\n\r\n EventCounter.prototype.onDrawBackground = function(ctx) {\r\n if (this.flags.collapsed) {\r\n return;\r\n }\r\n ctx.fillStyle = \"#AAA\";\r\n ctx.font = \"20px Arial\";\r\n ctx.textAlign = \"center\";\r\n ctx.fillText(this.num, this.size[0] * 0.5, this.size[1] * 0.5);\r\n };\r\n\r\n EventCounter.prototype.onExecute = function() {\r\n this.setOutputData(1, this.num);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/counter\", EventCounter);\r\n\r\n //Show value inside the debug console\r\n function DelayEvent() {\r\n this.size = [60, 30];\r\n this.addProperty(\"time_in_ms\", 1000);\r\n this.addInput(\"event\", LiteGraph.ACTION);\r\n this.addOutput(\"on_time\", LiteGraph.EVENT);\r\n\r\n this._pending = [];\r\n }\r\n\r\n DelayEvent.title = \"Delay\";\r\n DelayEvent.desc = \"Delays one event\";\r\n\r\n DelayEvent.prototype.onAction = function(action, param) {\r\n var time = this.properties.time_in_ms;\r\n if (time <= 0) {\r\n this.trigger(null, param);\r\n } else {\r\n this._pending.push([time, param]);\r\n }\r\n };\r\n\r\n DelayEvent.prototype.onExecute = function() {\r\n var dt = this.graph.elapsed_time * 1000; //in ms\r\n\r\n if (this.isInputConnected(1)) {\r\n this.properties.time_in_ms = this.getInputData(1);\r\n }\r\n\r\n for (var i = 0; i < this._pending.length; ++i) {\r\n var action = this._pending[i];\r\n action[0] -= dt;\r\n if (action[0] > 0) {\r\n continue;\r\n }\r\n\r\n //remove\r\n this._pending.splice(i, 1);\r\n --i;\r\n\r\n //trigger\r\n this.trigger(null, action[1]);\r\n }\r\n };\r\n\r\n DelayEvent.prototype.onGetInputs = function() {\r\n return [[\"event\", LiteGraph.ACTION], [\"time_in_ms\", \"number\"]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/delay\", DelayEvent);\r\n\r\n //Show value inside the debug console\r\n function TimerEvent() {\r\n this.addProperty(\"interval\", 1000);\r\n this.addProperty(\"event\", \"tick\");\r\n this.addOutput(\"on_tick\", LiteGraph.EVENT);\r\n this.time = 0;\r\n this.last_interval = 1000;\r\n this.triggered = false;\r\n }\r\n\r\n TimerEvent.title = \"Timer\";\r\n TimerEvent.desc = \"Sends an event every N milliseconds\";\r\n\r\n TimerEvent.prototype.onStart = function() {\r\n this.time = 0;\r\n };\r\n\r\n TimerEvent.prototype.getTitle = function() {\r\n return \"Timer: \" + this.last_interval.toString() + \"ms\";\r\n };\r\n\r\n TimerEvent.on_color = \"#AAA\";\r\n TimerEvent.off_color = \"#222\";\r\n\r\n TimerEvent.prototype.onDrawBackground = function() {\r\n this.boxcolor = this.triggered\r\n ? TimerEvent.on_color\r\n : TimerEvent.off_color;\r\n this.triggered = false;\r\n };\r\n\r\n TimerEvent.prototype.onExecute = function() {\r\n var dt = this.graph.elapsed_time * 1000; //in ms\r\n\r\n var trigger = this.time == 0;\r\n\r\n this.time += dt;\r\n this.last_interval = Math.max(\r\n 1,\r\n this.getInputOrProperty(\"interval\") | 0\r\n );\r\n\r\n if (\r\n !trigger &&\r\n (this.time < this.last_interval || isNaN(this.last_interval))\r\n ) {\r\n if (this.inputs && this.inputs.length > 1 && this.inputs[1]) {\r\n this.setOutputData(1, false);\r\n }\r\n return;\r\n }\r\n\r\n this.triggered = true;\r\n this.time = this.time % this.last_interval;\r\n this.trigger(\"on_tick\", this.properties.event);\r\n if (this.inputs && this.inputs.length > 1 && this.inputs[1]) {\r\n this.setOutputData(1, true);\r\n }\r\n };\r\n\r\n TimerEvent.prototype.onGetInputs = function() {\r\n return [[\"interval\", \"number\"]];\r\n };\r\n\r\n TimerEvent.prototype.onGetOutputs = function() {\r\n return [[\"tick\", \"boolean\"]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"events/timer\", TimerEvent);\r\n\r\n function DataStore() {\r\n this.addInput(\"data\", \"\");\r\n this.addInput(\"assign\", LiteGraph.ACTION);\r\n this.addOutput(\"data\", \"\");\r\n\t\tthis._last_value = null;\r\n\t\tthis.properties = { data: null, serialize: true };\r\n\t\tvar that = this;\r\n\t\tthis.addWidget(\"button\",\"store\",\"\",function(){\r\n\t\t\tthat.properties.data = that._last_value;\r\n\t\t});\r\n }\r\n\r\n DataStore.title = \"Data Store\";\r\n DataStore.desc = \"Stores data and only changes when event is received\";\r\n\r\n\tDataStore.prototype.onExecute = function()\r\n\t{\r\n\t\tthis._last_value = this.getInputData(0);\r\n\t\tthis.setOutputData(0, this.properties.data );\r\n\t}\r\n\r\n DataStore.prototype.onAction = function(action, param) {\r\n\t\tthis.properties.data = this._last_value;\r\n };\r\n\r\n\tDataStore.prototype.onSerialize = function(o)\r\n\t{\r\n\t\tif(o.data == null)\r\n\t\t\treturn;\r\n\t\tif(this.properties.serialize == false || (o.data.constructor !== String && o.data.constructor !== Number && o.data.constructor !== Boolean && o.data.constructor !== Array && o.data.constructor !== Object ))\r\n\t\t\to.data = null;\r\n\t}\r\n\r\n LiteGraph.registerNodeType(\"basic/data_store\", DataStore);\r\n})(this);\r\n\n//widgets\n(function(global) {\n var LiteGraph = global.LiteGraph;\n\n /* Button ****************/\n\n function WidgetButton() {\n this.addOutput(\"\", LiteGraph.EVENT);\n this.addOutput(\"\", \"boolean\");\n this.addProperty(\"text\", \"click me\");\n this.addProperty(\"font_size\", 30);\n this.addProperty(\"message\", \"\");\n this.size = [164, 84];\n this.clicked = false;\n }\n\n WidgetButton.title = \"Button\";\n WidgetButton.desc = \"Triggers an event\";\n\n WidgetButton.font = \"Arial\";\n WidgetButton.prototype.onDrawForeground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n var margin = 10;\n ctx.fillStyle = \"black\";\n ctx.fillRect(\n margin + 1,\n margin + 1,\n this.size[0] - margin * 2,\n this.size[1] - margin * 2\n );\n ctx.fillStyle = \"#AAF\";\n ctx.fillRect(\n margin - 1,\n margin - 1,\n this.size[0] - margin * 2,\n this.size[1] - margin * 2\n );\n ctx.fillStyle = this.clicked\n ? \"white\"\n : this.mouseOver\n ? \"#668\"\n : \"#334\";\n ctx.fillRect(\n margin,\n margin,\n this.size[0] - margin * 2,\n this.size[1] - margin * 2\n );\n\n if (this.properties.text || this.properties.text === 0) {\n var font_size = this.properties.font_size || 30;\n ctx.textAlign = \"center\";\n ctx.fillStyle = this.clicked ? \"black\" : \"white\";\n ctx.font = font_size + \"px \" + WidgetButton.font;\n ctx.fillText(\n this.properties.text,\n this.size[0] * 0.5,\n this.size[1] * 0.5 + font_size * 0.3\n );\n ctx.textAlign = \"left\";\n }\n };\n\n WidgetButton.prototype.onMouseDown = function(e, local_pos) {\n if (\n local_pos[0] > 1 &&\n local_pos[1] > 1 &&\n local_pos[0] < this.size[0] - 2 &&\n local_pos[1] < this.size[1] - 2\n ) {\n this.clicked = true;\n this.triggerSlot(0, this.properties.message);\n return true;\n }\n };\n\n WidgetButton.prototype.onExecute = function() {\n this.setOutputData(1, this.clicked);\n };\n\n WidgetButton.prototype.onMouseUp = function(e) {\n this.clicked = false;\n };\n\n LiteGraph.registerNodeType(\"widget/button\", WidgetButton);\n\n function WidgetToggle() {\n this.addInput(\"\", \"boolean\");\n this.addInput(\"e\", LiteGraph.ACTION);\n this.addOutput(\"v\", \"boolean\");\n this.addOutput(\"e\", LiteGraph.EVENT);\n this.properties = { font: \"\", value: false };\n this.size = [160, 44];\n }\n\n WidgetToggle.title = \"Toggle\";\n WidgetToggle.desc = \"Toggles between true or false\";\n\n WidgetToggle.prototype.onDrawForeground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n var size = this.size[1] * 0.5;\n var margin = 0.25;\n var h = this.size[1] * 0.8;\n ctx.font = this.properties.font || (size * 0.8).toFixed(0) + \"px Arial\";\n var w = ctx.measureText(this.title).width;\n var x = (this.size[0] - (w + size)) * 0.5;\n\n ctx.fillStyle = \"#AAA\";\n ctx.fillRect(x, h - size, size, size);\n\n ctx.fillStyle = this.properties.value ? \"#AEF\" : \"#000\";\n ctx.fillRect(\n x + size * margin,\n h - size + size * margin,\n size * (1 - margin * 2),\n size * (1 - margin * 2)\n );\n\n ctx.textAlign = \"left\";\n ctx.fillStyle = \"#AAA\";\n ctx.fillText(this.title, size * 1.2 + x, h * 0.85);\n ctx.textAlign = \"left\";\n };\n\n WidgetToggle.prototype.onAction = function(action) {\n this.properties.value = !this.properties.value;\n this.trigger(\"e\", this.properties.value);\n };\n\n WidgetToggle.prototype.onExecute = function() {\n var v = this.getInputData(0);\n if (v != null) {\n this.properties.value = v;\n }\n this.setOutputData(0, this.properties.value);\n };\n\n WidgetToggle.prototype.onMouseDown = function(e, local_pos) {\n if (\n local_pos[0] > 1 &&\n local_pos[1] > 1 &&\n local_pos[0] < this.size[0] - 2 &&\n local_pos[1] < this.size[1] - 2\n ) {\n this.properties.value = !this.properties.value;\n this.graph._version++;\n this.trigger(\"e\", this.properties.value);\n return true;\n }\n };\n\n LiteGraph.registerNodeType(\"widget/toggle\", WidgetToggle);\n\n /* Number ****************/\n\n function WidgetNumber() {\n this.addOutput(\"\", \"number\");\n this.size = [80, 60];\n this.properties = { min: -1000, max: 1000, value: 1, step: 1 };\n this.old_y = -1;\n this._remainder = 0;\n this._precision = 0;\n this.mouse_captured = false;\n }\n\n WidgetNumber.title = \"Number\";\n WidgetNumber.desc = \"Widget to select number value\";\n\n WidgetNumber.pixels_threshold = 10;\n WidgetNumber.markers_color = \"#666\";\n\n WidgetNumber.prototype.onDrawForeground = function(ctx) {\n var x = this.size[0] * 0.5;\n var h = this.size[1];\n if (h > 30) {\n ctx.fillStyle = WidgetNumber.markers_color;\n ctx.beginPath();\n ctx.moveTo(x, h * 0.1);\n ctx.lineTo(x + h * 0.1, h * 0.2);\n ctx.lineTo(x + h * -0.1, h * 0.2);\n ctx.fill();\n ctx.beginPath();\n ctx.moveTo(x, h * 0.9);\n ctx.lineTo(x + h * 0.1, h * 0.8);\n ctx.lineTo(x + h * -0.1, h * 0.8);\n ctx.fill();\n ctx.font = (h * 0.7).toFixed(1) + \"px Arial\";\n } else {\n ctx.font = (h * 0.8).toFixed(1) + \"px Arial\";\n }\n\n ctx.textAlign = \"center\";\n ctx.font = (h * 0.7).toFixed(1) + \"px Arial\";\n ctx.fillStyle = \"#EEE\";\n ctx.fillText(\n this.properties.value.toFixed(this._precision),\n x,\n h * 0.75\n );\n };\n\n WidgetNumber.prototype.onExecute = function() {\n this.setOutputData(0, this.properties.value);\n };\n\n WidgetNumber.prototype.onPropertyChanged = function(name, value) {\n var t = (this.properties.step + \"\").split(\".\");\n this._precision = t.length > 1 ? t[1].length : 0;\n };\n\n WidgetNumber.prototype.onMouseDown = function(e, pos) {\n if (pos[1] < 0) {\n return;\n }\n\n this.old_y = e.canvasY;\n this.captureInput(true);\n this.mouse_captured = true;\n\n return true;\n };\n\n WidgetNumber.prototype.onMouseMove = function(e) {\n if (!this.mouse_captured) {\n return;\n }\n\n var delta = this.old_y - e.canvasY;\n if (e.shiftKey) {\n delta *= 10;\n }\n if (e.metaKey || e.altKey) {\n delta *= 0.1;\n }\n this.old_y = e.canvasY;\n\n var steps = this._remainder + delta / WidgetNumber.pixels_threshold;\n this._remainder = steps % 1;\n steps = steps | 0;\n\n var v = Math.clamp(\n this.properties.value + steps * this.properties.step,\n this.properties.min,\n this.properties.max\n );\n this.properties.value = v;\n this.graph._version++;\n this.setDirtyCanvas(true);\n };\n\n WidgetNumber.prototype.onMouseUp = function(e, pos) {\n if (e.click_time < 200) {\n var steps = pos[1] > this.size[1] * 0.5 ? -1 : 1;\n this.properties.value = Math.clamp(\n this.properties.value + steps * this.properties.step,\n this.properties.min,\n this.properties.max\n );\n this.graph._version++;\n this.setDirtyCanvas(true);\n }\n\n if (this.mouse_captured) {\n this.mouse_captured = false;\n this.captureInput(false);\n }\n };\n\n LiteGraph.registerNodeType(\"widget/number\", WidgetNumber);\n\n\n /* Combo ****************/\n\n function WidgetCombo() {\n this.addOutput(\"\", \"string\");\n this.addOutput(\"change\", LiteGraph.EVENT);\n this.size = [80, 60];\n this.properties = { value: \"A\", values:\"A;B;C\" };\n this.old_y = -1;\n this.mouse_captured = false;\n\t\tthis._values = this.properties.values.split(\";\");\n\t\tvar that = this;\n this.widgets_up = true;\n\t\tthis.widget = this.addWidget(\"combo\",\"\", this.properties.value, function(v){\n\t\t\tthat.properties.value = v;\n that.triggerSlot(1, v);\n\t\t}, { property: \"value\", values: this._values } );\n }\n\n WidgetCombo.title = \"Combo\";\n WidgetCombo.desc = \"Widget to select from a list\";\n\n WidgetCombo.prototype.onExecute = function() {\n this.setOutputData( 0, this.properties.value );\n };\n\n WidgetCombo.prototype.onPropertyChanged = function(name, value) {\n\t\tif(name == \"values\")\n\t\t{\n\t\t\tthis._values = value.split(\";\");\n\t\t\tthis.widget.options.values = this._values;\n\t\t}\n\t\telse if(name == \"value\")\n\t\t{\n\t\t\tthis.widget.value = value;\n\t\t}\n\t};\n\n LiteGraph.registerNodeType(\"widget/combo\", WidgetCombo);\n\n\n /* Knob ****************/\n\n function WidgetKnob() {\n this.addOutput(\"\", \"number\");\n this.size = [64, 84];\n this.properties = {\n min: 0,\n max: 1,\n value: 0.5,\n color: \"#7AF\",\n precision: 2\n };\n this.value = -1;\n }\n\n WidgetKnob.title = \"Knob\";\n WidgetKnob.desc = \"Circular controller\";\n WidgetKnob.size = [80, 100];\n\n WidgetKnob.prototype.onDrawForeground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n if (this.value == -1) {\n this.value =\n (this.properties.value - this.properties.min) /\n (this.properties.max - this.properties.min);\n }\n\n var center_x = this.size[0] * 0.5;\n var center_y = this.size[1] * 0.5;\n var radius = Math.min(this.size[0], this.size[1]) * 0.5 - 5;\n var w = Math.floor(radius * 0.05);\n\n ctx.globalAlpha = 1;\n ctx.save();\n ctx.translate(center_x, center_y);\n ctx.rotate(Math.PI * 0.75);\n\n //bg\n ctx.fillStyle = \"rgba(0,0,0,0.5)\";\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.arc(0, 0, radius, 0, Math.PI * 1.5);\n ctx.fill();\n\n //value\n ctx.strokeStyle = \"black\";\n ctx.fillStyle = this.properties.color;\n ctx.lineWidth = 2;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.arc(\n 0,\n 0,\n radius - 4,\n 0,\n Math.PI * 1.5 * Math.max(0.01, this.value)\n );\n ctx.closePath();\n ctx.fill();\n //ctx.stroke();\n ctx.lineWidth = 1;\n ctx.globalAlpha = 1;\n ctx.restore();\n\n //inner\n ctx.fillStyle = \"black\";\n ctx.beginPath();\n ctx.arc(center_x, center_y, radius * 0.75, 0, Math.PI * 2, true);\n ctx.fill();\n\n //miniball\n ctx.fillStyle = this.mouseOver ? \"white\" : this.properties.color;\n ctx.beginPath();\n var angle = this.value * Math.PI * 1.5 + Math.PI * 0.75;\n ctx.arc(\n center_x + Math.cos(angle) * radius * 0.65,\n center_y + Math.sin(angle) * radius * 0.65,\n radius * 0.05,\n 0,\n Math.PI * 2,\n true\n );\n ctx.fill();\n\n //text\n ctx.fillStyle = this.mouseOver ? \"white\" : \"#AAA\";\n ctx.font = Math.floor(radius * 0.5) + \"px Arial\";\n ctx.textAlign = \"center\";\n ctx.fillText(\n this.properties.value.toFixed(this.properties.precision),\n center_x,\n center_y + radius * 0.15\n );\n };\n\n WidgetKnob.prototype.onExecute = function() {\n this.setOutputData(0, this.properties.value);\n this.boxcolor = LiteGraph.colorToString([\n this.value,\n this.value,\n this.value\n ]);\n };\n\n WidgetKnob.prototype.onMouseDown = function(e) {\n this.center = [this.size[0] * 0.5, this.size[1] * 0.5 + 20];\n this.radius = this.size[0] * 0.5;\n if (\n e.canvasY - this.pos[1] < 20 ||\n LiteGraph.distance(\n [e.canvasX, e.canvasY],\n [this.pos[0] + this.center[0], this.pos[1] + this.center[1]]\n ) > this.radius\n ) {\n return false;\n }\n this.oldmouse = [e.canvasX - this.pos[0], e.canvasY - this.pos[1]];\n this.captureInput(true);\n return true;\n };\n\n WidgetKnob.prototype.onMouseMove = function(e) {\n if (!this.oldmouse) {\n return;\n }\n\n var m = [e.canvasX - this.pos[0], e.canvasY - this.pos[1]];\n\n var v = this.value;\n v -= (m[1] - this.oldmouse[1]) * 0.01;\n if (v > 1.0) {\n v = 1.0;\n } else if (v < 0.0) {\n v = 0.0;\n }\n this.value = v;\n this.properties.value =\n this.properties.min +\n (this.properties.max - this.properties.min) * this.value;\n this.oldmouse = m;\n this.setDirtyCanvas(true);\n };\n\n WidgetKnob.prototype.onMouseUp = function(e) {\n if (this.oldmouse) {\n this.oldmouse = null;\n this.captureInput(false);\n }\n };\n\n WidgetKnob.prototype.onPropertyChanged = function(name, value) {\n if (name == \"min\" || name == \"max\" || name == \"value\") {\n this.properties[name] = parseFloat(value);\n return true; //block\n }\n };\n\n LiteGraph.registerNodeType(\"widget/knob\", WidgetKnob);\n\n //Show value inside the debug console\n function WidgetSliderGUI() {\n this.addOutput(\"\", \"number\");\n this.properties = {\n value: 0.5,\n min: 0,\n max: 1,\n text: \"V\"\n };\n var that = this;\n this.size = [140, 40];\n this.slider = this.addWidget(\n \"slider\",\n \"V\",\n this.properties.value,\n function(v) {\n that.properties.value = v;\n },\n this.properties\n );\n this.widgets_up = true;\n }\n\n WidgetSliderGUI.title = \"Inner Slider\";\n\n WidgetSliderGUI.prototype.onPropertyChanged = function(name, value) {\n if (name == \"value\") {\n this.slider.value = value;\n }\n };\n\n WidgetSliderGUI.prototype.onExecute = function() {\n this.setOutputData(0, this.properties.value);\n };\n\n LiteGraph.registerNodeType(\"widget/internal_slider\", WidgetSliderGUI);\n\n //Widget H SLIDER\n function WidgetHSlider() {\n this.size = [160, 26];\n this.addOutput(\"\", \"number\");\n this.properties = { color: \"#7AF\", min: 0, max: 1, value: 0.5 };\n this.value = -1;\n }\n\n WidgetHSlider.title = \"H.Slider\";\n WidgetHSlider.desc = \"Linear slider controller\";\n\n WidgetHSlider.prototype.onDrawForeground = function(ctx) {\n if (this.value == -1) {\n this.value =\n (this.properties.value - this.properties.min) /\n (this.properties.max - this.properties.min);\n }\n\n //border\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.fillStyle = \"#000\";\n ctx.fillRect(2, 2, this.size[0] - 4, this.size[1] - 4);\n\n ctx.fillStyle = this.properties.color;\n ctx.beginPath();\n ctx.rect(4, 4, (this.size[0] - 8) * this.value, this.size[1] - 8);\n ctx.fill();\n };\n\n WidgetHSlider.prototype.onExecute = function() {\n this.properties.value =\n this.properties.min +\n (this.properties.max - this.properties.min) * this.value;\n this.setOutputData(0, this.properties.value);\n this.boxcolor = LiteGraph.colorToString([\n this.value,\n this.value,\n this.value\n ]);\n };\n\n WidgetHSlider.prototype.onMouseDown = function(e) {\n if (e.canvasY - this.pos[1] < 0) {\n return false;\n }\n\n this.oldmouse = [e.canvasX - this.pos[0], e.canvasY - this.pos[1]];\n this.captureInput(true);\n return true;\n };\n\n WidgetHSlider.prototype.onMouseMove = function(e) {\n if (!this.oldmouse) {\n return;\n }\n\n var m = [e.canvasX - this.pos[0], e.canvasY - this.pos[1]];\n\n var v = this.value;\n var delta = m[0] - this.oldmouse[0];\n v += delta / this.size[0];\n if (v > 1.0) {\n v = 1.0;\n } else if (v < 0.0) {\n v = 0.0;\n }\n\n this.value = v;\n\n this.oldmouse = m;\n this.setDirtyCanvas(true);\n };\n\n WidgetHSlider.prototype.onMouseUp = function(e) {\n this.oldmouse = null;\n this.captureInput(false);\n };\n\n WidgetHSlider.prototype.onMouseLeave = function(e) {\n //this.oldmouse = null;\n };\n\n LiteGraph.registerNodeType(\"widget/hslider\", WidgetHSlider);\n\n function WidgetProgress() {\n this.size = [160, 26];\n this.addInput(\"\", \"number\");\n this.properties = { min: 0, max: 1, value: 0, color: \"#AAF\" };\n }\n\n WidgetProgress.title = \"Progress\";\n WidgetProgress.desc = \"Shows data in linear progress\";\n\n WidgetProgress.prototype.onExecute = function() {\n var v = this.getInputData(0);\n if (v != undefined) {\n this.properties[\"value\"] = v;\n }\n };\n\n WidgetProgress.prototype.onDrawForeground = function(ctx) {\n //border\n ctx.lineWidth = 1;\n ctx.fillStyle = this.properties.color;\n var v =\n (this.properties.value - this.properties.min) /\n (this.properties.max - this.properties.min);\n v = Math.min(1, v);\n v = Math.max(0, v);\n ctx.fillRect(2, 2, (this.size[0] - 4) * v, this.size[1] - 4);\n };\n\n LiteGraph.registerNodeType(\"widget/progress\", WidgetProgress);\n\n function WidgetText() {\n this.addInputs(\"\", 0);\n this.properties = {\n value: \"...\",\n font: \"Arial\",\n fontsize: 18,\n color: \"#AAA\",\n align: \"left\",\n glowSize: 0,\n decimals: 1\n };\n }\n\n WidgetText.title = \"Text\";\n WidgetText.desc = \"Shows the input value\";\n WidgetText.widgets = [\n { name: \"resize\", text: \"Resize box\", type: \"button\" },\n { name: \"led_text\", text: \"LED\", type: \"minibutton\" },\n { name: \"normal_text\", text: \"Normal\", type: \"minibutton\" }\n ];\n\n WidgetText.prototype.onDrawForeground = function(ctx) {\n //ctx.fillStyle=\"#000\";\n //ctx.fillRect(0,0,100,60);\n ctx.fillStyle = this.properties[\"color\"];\n var v = this.properties[\"value\"];\n\n if (this.properties[\"glowSize\"]) {\n ctx.shadowColor = this.properties.color;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = this.properties[\"glowSize\"];\n } else {\n ctx.shadowColor = \"transparent\";\n }\n\n var fontsize = this.properties[\"fontsize\"];\n\n ctx.textAlign = this.properties[\"align\"];\n ctx.font = fontsize.toString() + \"px \" + this.properties[\"font\"];\n this.str =\n typeof v == \"number\" ? v.toFixed(this.properties[\"decimals\"]) : v;\n\n if (typeof this.str == \"string\") {\n var lines = this.str.split(\"\\\\n\");\n for (var i=0; i < lines.length; i++) {\n ctx.fillText(\n lines[i],\n this.properties[\"align\"] == \"left\" ? 15 : this.size[0] - 15,\n fontsize * -0.15 + fontsize * (parseInt(i) + 1)\n );\n }\n }\n\n ctx.shadowColor = \"transparent\";\n this.last_ctx = ctx;\n ctx.textAlign = \"left\";\n };\n\n WidgetText.prototype.onExecute = function() {\n var v = this.getInputData(0);\n if (v != null) {\n this.properties[\"value\"] = v;\n }\n //this.setDirtyCanvas(true);\n };\n\n WidgetText.prototype.resize = function() {\n if (!this.last_ctx) {\n return;\n }\n\n var lines = this.str.split(\"\\\\n\");\n this.last_ctx.font =\n this.properties[\"fontsize\"] + \"px \" + this.properties[\"font\"];\n var max = 0;\n for (var i=0; i < lines.length; i++) {\n var w = this.last_ctx.measureText(lines[i]).width;\n if (max < w) {\n max = w;\n }\n }\n this.size[0] = max + 20;\n this.size[1] = 4 + lines.length * this.properties[\"fontsize\"];\n\n this.setDirtyCanvas(true);\n };\n\n WidgetText.prototype.onPropertyChanged = function(name, value) {\n this.properties[name] = value;\n this.str = typeof value == \"number\" ? value.toFixed(3) : value;\n //this.resize();\n return true;\n };\n\n LiteGraph.registerNodeType(\"widget/text\", WidgetText);\n\n function WidgetPanel() {\n this.size = [200, 100];\n this.properties = {\n borderColor: \"#ffffff\",\n bgcolorTop: \"#f0f0f0\",\n bgcolorBottom: \"#e0e0e0\",\n shadowSize: 2,\n borderRadius: 3\n };\n }\n\n WidgetPanel.title = \"Panel\";\n WidgetPanel.desc = \"Non interactive panel\";\n WidgetPanel.widgets = [{ name: \"update\", text: \"Update\", type: \"button\" }];\n\n WidgetPanel.prototype.createGradient = function(ctx) {\n if (\n this.properties[\"bgcolorTop\"] == \"\" ||\n this.properties[\"bgcolorBottom\"] == \"\"\n ) {\n this.lineargradient = 0;\n return;\n }\n\n this.lineargradient = ctx.createLinearGradient(0, 0, 0, this.size[1]);\n this.lineargradient.addColorStop(0, this.properties[\"bgcolorTop\"]);\n this.lineargradient.addColorStop(1, this.properties[\"bgcolorBottom\"]);\n };\n\n WidgetPanel.prototype.onDrawForeground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n if (this.lineargradient == null) {\n this.createGradient(ctx);\n }\n\n if (!this.lineargradient) {\n return;\n }\n\n ctx.lineWidth = 1;\n ctx.strokeStyle = this.properties[\"borderColor\"];\n //ctx.fillStyle = \"#ebebeb\";\n ctx.fillStyle = this.lineargradient;\n\n if (this.properties[\"shadowSize\"]) {\n ctx.shadowColor = \"#000\";\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = this.properties[\"shadowSize\"];\n } else {\n ctx.shadowColor = \"transparent\";\n }\n\n ctx.roundRect(\n 0,\n 0,\n this.size[0] - 1,\n this.size[1] - 1,\n this.properties[\"shadowSize\"]\n );\n ctx.fill();\n ctx.shadowColor = \"transparent\";\n ctx.stroke();\n };\n\n LiteGraph.registerNodeType(\"widget/panel\", WidgetPanel);\n})(this);\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n function GamepadInput() {\r\n this.addOutput(\"left_x_axis\", \"number\");\r\n this.addOutput(\"left_y_axis\", \"number\");\r\n this.addOutput(\"button_pressed\", LiteGraph.EVENT);\r\n this.properties = { gamepad_index: 0, threshold: 0.1 };\r\n\r\n this._left_axis = new Float32Array(2);\r\n this._right_axis = new Float32Array(2);\r\n this._triggers = new Float32Array(2);\r\n this._previous_buttons = new Uint8Array(17);\r\n this._current_buttons = new Uint8Array(17);\r\n }\r\n\r\n GamepadInput.title = \"Gamepad\";\r\n GamepadInput.desc = \"gets the input of the gamepad\";\r\n\r\n GamepadInput.CENTER = 0;\r\n GamepadInput.LEFT = 1;\r\n GamepadInput.RIGHT = 2;\r\n GamepadInput.UP = 4;\r\n GamepadInput.DOWN = 8;\r\n\r\n GamepadInput.zero = new Float32Array(2);\r\n GamepadInput.buttons = [\r\n \"a\",\r\n \"b\",\r\n \"x\",\r\n \"y\",\r\n \"lb\",\r\n \"rb\",\r\n \"lt\",\r\n \"rt\",\r\n \"back\",\r\n \"start\",\r\n \"ls\",\r\n \"rs\",\r\n \"home\"\r\n ];\r\n\r\n GamepadInput.prototype.onExecute = function() {\r\n //get gamepad\r\n var gamepad = this.getGamepad();\r\n var threshold = this.properties.threshold || 0.0;\r\n\r\n if (gamepad) {\r\n this._left_axis[0] =\r\n Math.abs(gamepad.xbox.axes[\"lx\"]) > threshold\r\n ? gamepad.xbox.axes[\"lx\"]\r\n : 0;\r\n this._left_axis[1] =\r\n Math.abs(gamepad.xbox.axes[\"ly\"]) > threshold\r\n ? gamepad.xbox.axes[\"ly\"]\r\n : 0;\r\n this._right_axis[0] =\r\n Math.abs(gamepad.xbox.axes[\"rx\"]) > threshold\r\n ? gamepad.xbox.axes[\"rx\"]\r\n : 0;\r\n this._right_axis[1] =\r\n Math.abs(gamepad.xbox.axes[\"ry\"]) > threshold\r\n ? gamepad.xbox.axes[\"ry\"]\r\n : 0;\r\n this._triggers[0] =\r\n Math.abs(gamepad.xbox.axes[\"ltrigger\"]) > threshold\r\n ? gamepad.xbox.axes[\"ltrigger\"]\r\n : 0;\r\n this._triggers[1] =\r\n Math.abs(gamepad.xbox.axes[\"rtrigger\"]) > threshold\r\n ? gamepad.xbox.axes[\"rtrigger\"]\r\n : 0;\r\n }\r\n\r\n if (this.outputs) {\r\n for (var i = 0; i < this.outputs.length; i++) {\r\n var output = this.outputs[i];\r\n if (!output.links || !output.links.length) {\r\n continue;\r\n }\r\n var v = null;\r\n\r\n if (gamepad) {\r\n switch (output.name) {\r\n case \"left_axis\":\r\n v = this._left_axis;\r\n break;\r\n case \"right_axis\":\r\n v = this._right_axis;\r\n break;\r\n case \"left_x_axis\":\r\n v = this._left_axis[0];\r\n break;\r\n case \"left_y_axis\":\r\n v = this._left_axis[1];\r\n break;\r\n case \"right_x_axis\":\r\n v = this._right_axis[0];\r\n break;\r\n case \"right_y_axis\":\r\n v = this._right_axis[1];\r\n break;\r\n case \"trigger_left\":\r\n v = this._triggers[0];\r\n break;\r\n case \"trigger_right\":\r\n v = this._triggers[1];\r\n break;\r\n case \"a_button\":\r\n v = gamepad.xbox.buttons[\"a\"] ? 1 : 0;\r\n break;\r\n case \"b_button\":\r\n v = gamepad.xbox.buttons[\"b\"] ? 1 : 0;\r\n break;\r\n case \"x_button\":\r\n v = gamepad.xbox.buttons[\"x\"] ? 1 : 0;\r\n break;\r\n case \"y_button\":\r\n v = gamepad.xbox.buttons[\"y\"] ? 1 : 0;\r\n break;\r\n case \"lb_button\":\r\n v = gamepad.xbox.buttons[\"lb\"] ? 1 : 0;\r\n break;\r\n case \"rb_button\":\r\n v = gamepad.xbox.buttons[\"rb\"] ? 1 : 0;\r\n break;\r\n case \"ls_button\":\r\n v = gamepad.xbox.buttons[\"ls\"] ? 1 : 0;\r\n break;\r\n case \"rs_button\":\r\n v = gamepad.xbox.buttons[\"rs\"] ? 1 : 0;\r\n break;\r\n case \"hat_left\":\r\n v = gamepad.xbox.hatmap & GamepadInput.LEFT;\r\n break;\r\n case \"hat_right\":\r\n v = gamepad.xbox.hatmap & GamepadInput.RIGHT;\r\n break;\r\n case \"hat_up\":\r\n v = gamepad.xbox.hatmap & GamepadInput.UP;\r\n break;\r\n case \"hat_down\":\r\n v = gamepad.xbox.hatmap & GamepadInput.DOWN;\r\n break;\r\n case \"hat\":\r\n v = gamepad.xbox.hatmap;\r\n break;\r\n case \"start_button\":\r\n v = gamepad.xbox.buttons[\"start\"] ? 1 : 0;\r\n break;\r\n case \"back_button\":\r\n v = gamepad.xbox.buttons[\"back\"] ? 1 : 0;\r\n break;\r\n case \"button_pressed\":\r\n for (\r\n var j = 0;\r\n j < this._current_buttons.length;\r\n ++j\r\n ) {\r\n if (\r\n this._current_buttons[j] &&\r\n !this._previous_buttons[j]\r\n ) {\r\n this.triggerSlot(\r\n i,\r\n GamepadInput.buttons[j]\r\n );\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n //if no gamepad is connected, output 0\r\n switch (output.name) {\r\n case \"button_pressed\":\r\n break;\r\n case \"left_axis\":\r\n case \"right_axis\":\r\n v = GamepadInput.zero;\r\n break;\r\n default:\r\n v = 0;\r\n }\r\n }\r\n this.setOutputData(i, v);\r\n }\r\n }\r\n };\r\n\r\n\tGamepadInput.mapping = {a:0,b:1,x:2,y:3,lb:4,rb:5,lt:6,rt:7,back:8,start:9,ls:10,rs:11 };\r\n\tGamepadInput.mapping_array = [\"a\",\"b\",\"x\",\"y\",\"lb\",\"rb\",\"lt\",\"rt\",\"back\",\"start\",\"ls\",\"rs\"];\r\n\r\n GamepadInput.prototype.getGamepad = function() {\r\n var getGamepads =\r\n navigator.getGamepads ||\r\n navigator.webkitGetGamepads ||\r\n navigator.mozGetGamepads;\r\n if (!getGamepads) {\r\n return null;\r\n }\r\n var gamepads = getGamepads.call(navigator);\r\n var gamepad = null;\r\n\r\n this._previous_buttons.set(this._current_buttons);\r\n\r\n //pick the first connected\r\n for (var i = this.properties.gamepad_index; i < 4; i++) {\r\n if (!gamepads[i]) {\r\n continue;\r\n }\r\n gamepad = gamepads[i];\r\n\r\n //xbox controller mapping\r\n var xbox = this.xbox_mapping;\r\n if (!xbox) {\r\n xbox = this.xbox_mapping = {\r\n axes: [],\r\n buttons: {},\r\n hat: \"\",\r\n hatmap: GamepadInput.CENTER\r\n };\r\n }\r\n\r\n xbox.axes[\"lx\"] = gamepad.axes[0];\r\n xbox.axes[\"ly\"] = gamepad.axes[1];\r\n xbox.axes[\"rx\"] = gamepad.axes[2];\r\n xbox.axes[\"ry\"] = gamepad.axes[3];\r\n xbox.axes[\"ltrigger\"] = gamepad.buttons[6].value;\r\n xbox.axes[\"rtrigger\"] = gamepad.buttons[7].value;\r\n xbox.hat = \"\";\r\n xbox.hatmap = GamepadInput.CENTER;\r\n\r\n for (var j = 0; j < gamepad.buttons.length; j++) {\r\n this._current_buttons[j] = gamepad.buttons[j].pressed;\r\n\r\n\t\t\t\tif(j < 12)\r\n\t\t\t\t{\r\n\t\t\t\t\txbox.buttons[ GamepadInput.mapping_array[j] ] = gamepad.buttons[j].pressed;\r\n\t\t\t\t\tif(gamepad.buttons[j].was_pressed)\r\n\t\t\t\t\t\tthis.trigger( GamepadInput.mapping_array[j] + \"_button_event\" );\r\n\t\t\t\t}\r\n\t\t\t\telse //mapping of XBOX\r\n\t\t\t\t\tswitch ( j ) //I use a switch to ensure that a player with another gamepad could play\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcase 12:\r\n\t\t\t\t\t\t\tif (gamepad.buttons[j].pressed) {\r\n\t\t\t\t\t\t\t\txbox.hat += \"up\";\r\n\t\t\t\t\t\t\t\txbox.hatmap |= GamepadInput.UP;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 13:\r\n\t\t\t\t\t\t\tif (gamepad.buttons[j].pressed) {\r\n\t\t\t\t\t\t\t\txbox.hat += \"down\";\r\n\t\t\t\t\t\t\t\txbox.hatmap |= GamepadInput.DOWN;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 14:\r\n\t\t\t\t\t\t\tif (gamepad.buttons[j].pressed) {\r\n\t\t\t\t\t\t\t\txbox.hat += \"left\";\r\n\t\t\t\t\t\t\t\txbox.hatmap |= GamepadInput.LEFT;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 15:\r\n\t\t\t\t\t\t\tif (gamepad.buttons[j].pressed) {\r\n\t\t\t\t\t\t\t\txbox.hat += \"right\";\r\n\t\t\t\t\t\t\t\txbox.hatmap |= GamepadInput.RIGHT;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 16:\r\n\t\t\t\t\t\t\txbox.buttons[\"home\"] = gamepad.buttons[j].pressed;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t}\r\n }\r\n gamepad.xbox = xbox;\r\n return gamepad;\r\n }\r\n };\r\n\r\n GamepadInput.prototype.onDrawBackground = function(ctx) {\r\n if (this.flags.collapsed) {\r\n return;\r\n }\r\n\r\n //render gamepad state?\r\n var la = this._left_axis;\r\n var ra = this._right_axis;\r\n ctx.strokeStyle = \"#88A\";\r\n ctx.strokeRect(\r\n (la[0] + 1) * 0.5 * this.size[0] - 4,\r\n (la[1] + 1) * 0.5 * this.size[1] - 4,\r\n 8,\r\n 8\r\n );\r\n ctx.strokeStyle = \"#8A8\";\r\n ctx.strokeRect(\r\n (ra[0] + 1) * 0.5 * this.size[0] - 4,\r\n (ra[1] + 1) * 0.5 * this.size[1] - 4,\r\n 8,\r\n 8\r\n );\r\n var h = this.size[1] / this._current_buttons.length;\r\n ctx.fillStyle = \"#AEB\";\r\n for (var i = 0; i < this._current_buttons.length; ++i) {\r\n if (this._current_buttons[i]) {\r\n ctx.fillRect(0, h * i, 6, h);\r\n }\r\n }\r\n };\r\n\r\n GamepadInput.prototype.onGetOutputs = function() {\r\n return [\r\n [\"left_axis\", \"vec2\"],\r\n [\"right_axis\", \"vec2\"],\r\n [\"left_x_axis\", \"number\"],\r\n [\"left_y_axis\", \"number\"],\r\n [\"right_x_axis\", \"number\"],\r\n [\"right_y_axis\", \"number\"],\r\n [\"trigger_left\", \"number\"],\r\n [\"trigger_right\", \"number\"],\r\n [\"a_button\", \"number\"],\r\n [\"b_button\", \"number\"],\r\n [\"x_button\", \"number\"],\r\n [\"y_button\", \"number\"],\r\n [\"lb_button\", \"number\"],\r\n [\"rb_button\", \"number\"],\r\n [\"ls_button\", \"number\"],\r\n [\"rs_button\", \"number\"],\r\n [\"start_button\", \"number\"],\r\n [\"back_button\", \"number\"],\r\n [\"a_button_event\", LiteGraph.EVENT ],\r\n [\"b_button_event\", LiteGraph.EVENT ],\r\n [\"x_button_event\", LiteGraph.EVENT ],\r\n [\"y_button_event\", LiteGraph.EVENT ],\r\n [\"lb_button_event\", LiteGraph.EVENT ],\r\n [\"rb_button_event\", LiteGraph.EVENT ],\r\n [\"ls_button_event\", LiteGraph.EVENT ],\r\n [\"rs_button_event\", LiteGraph.EVENT ],\r\n [\"start_button_event\", LiteGraph.EVENT ],\r\n [\"back_button_event\", LiteGraph.EVENT ],\r\n [\"hat_left\", \"number\"],\r\n [\"hat_right\", \"number\"],\r\n [\"hat_up\", \"number\"],\r\n [\"hat_down\", \"number\"],\r\n [\"hat\", \"number\"],\r\n [\"button_pressed\", LiteGraph.EVENT]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"input/gamepad\", GamepadInput);\r\n})(this);\r\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n //Converter\r\n function Converter() {\r\n this.addInput(\"in\", \"\");\r\n\tthis.addOutput(\"out\");\r\n this.size = [80, 30];\r\n }\r\n\r\n Converter.title = \"Converter\";\r\n Converter.desc = \"type A to type B\";\r\n\r\n Converter.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n\r\n if (this.outputs) {\r\n for (var i = 0; i < this.outputs.length; i++) {\r\n var output = this.outputs[i];\r\n if (!output.links || !output.links.length) {\r\n continue;\r\n }\r\n\r\n var result = null;\r\n switch (output.name) {\r\n case \"number\":\r\n result = v.length ? v[0] : parseFloat(v);\r\n break;\r\n case \"vec2\":\r\n case \"vec3\":\r\n case \"vec4\":\r\n var result = null;\r\n var count = 1;\r\n switch (output.name) {\r\n case \"vec2\":\r\n count = 2;\r\n break;\r\n case \"vec3\":\r\n count = 3;\r\n break;\r\n case \"vec4\":\r\n count = 4;\r\n break;\r\n }\r\n\r\n var result = new Float32Array(count);\r\n if (v.length) {\r\n for (\r\n var j = 0;\r\n j < v.length && j < result.length;\r\n j++\r\n ) {\r\n result[j] = v[j];\r\n }\r\n } else {\r\n result[0] = parseFloat(v);\r\n }\r\n break;\r\n }\r\n this.setOutputData(i, result);\r\n }\r\n }\r\n };\r\n\r\n Converter.prototype.onGetOutputs = function() {\r\n return [\r\n [\"number\", \"number\"],\r\n [\"vec2\", \"vec2\"],\r\n [\"vec3\", \"vec3\"],\r\n [\"vec4\", \"vec4\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/converter\", Converter);\r\n\r\n //Bypass\r\n function Bypass() {\r\n this.addInput(\"in\");\r\n this.addOutput(\"out\");\r\n this.size = [80, 30];\r\n }\r\n\r\n Bypass.title = \"Bypass\";\r\n Bypass.desc = \"removes the type\";\r\n\r\n Bypass.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n this.setOutputData(0, v);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/bypass\", Bypass);\r\n\r\n function ToNumber() {\r\n this.addInput(\"in\");\r\n this.addOutput(\"out\");\r\n }\r\n\r\n ToNumber.title = \"to Number\";\r\n ToNumber.desc = \"Cast to number\";\r\n\r\n ToNumber.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n this.setOutputData(0, Number(v));\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/to_number\", ToNumber);\r\n\r\n function MathRange() {\r\n this.addInput(\"in\", \"number\", { locked: true });\r\n this.addOutput(\"out\", \"number\", { locked: true });\r\n this.addOutput(\"clamped\", \"number\", { locked: true });\r\n\r\n this.addProperty(\"in\", 0);\r\n this.addProperty(\"in_min\", 0);\r\n this.addProperty(\"in_max\", 1);\r\n this.addProperty(\"out_min\", 0);\r\n this.addProperty(\"out_max\", 1);\r\n\r\n this.size = [120, 50];\r\n }\r\n\r\n MathRange.title = \"Range\";\r\n MathRange.desc = \"Convert a number from one range to another\";\r\n\r\n MathRange.prototype.getTitle = function() {\r\n if (this.flags.collapsed) {\r\n return (this._last_v || 0).toFixed(2);\r\n }\r\n return this.title;\r\n };\r\n\r\n MathRange.prototype.onExecute = function() {\r\n if (this.inputs) {\r\n for (var i = 0; i < this.inputs.length; i++) {\r\n var input = this.inputs[i];\r\n var v = this.getInputData(i);\r\n if (v === undefined) {\r\n continue;\r\n }\r\n this.properties[input.name] = v;\r\n }\r\n }\r\n\r\n var v = this.properties[\"in\"];\r\n if (v === undefined || v === null || v.constructor !== Number) {\r\n v = 0;\r\n }\r\n\r\n var in_min = this.properties.in_min;\r\n var in_max = this.properties.in_max;\r\n var out_min = this.properties.out_min;\r\n var out_max = this.properties.out_max;\r\n\t\t/*\r\n\t\tif( in_min > in_max )\r\n\t\t{\r\n\t\t\tin_min = in_max;\r\n\t\t\tin_max = this.properties.in_min;\r\n\t\t}\r\n\t\tif( out_min > out_max )\r\n\t\t{\r\n\t\t\tout_min = out_max;\r\n\t\t\tout_max = this.properties.out_min;\r\n\t\t}\r\n\t\t*/\r\n\r\n this._last_v = ((v - in_min) / (in_max - in_min)) * (out_max - out_min) + out_min;\r\n this.setOutputData(0, this._last_v);\r\n this.setOutputData(1, Math.clamp( this._last_v, out_min, out_max ));\r\n };\r\n\r\n MathRange.prototype.onDrawBackground = function(ctx) {\r\n //show the current value\r\n if (this._last_v) {\r\n this.outputs[0].label = this._last_v.toFixed(3);\r\n } else {\r\n this.outputs[0].label = \"?\";\r\n }\r\n };\r\n\r\n MathRange.prototype.onGetInputs = function() {\r\n return [\r\n [\"in_min\", \"number\"],\r\n [\"in_max\", \"number\"],\r\n [\"out_min\", \"number\"],\r\n [\"out_max\", \"number\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/range\", MathRange);\r\n\r\n function MathRand() {\r\n this.addOutput(\"value\", \"number\");\r\n this.addProperty(\"min\", 0);\r\n this.addProperty(\"max\", 1);\r\n this.size = [80, 30];\r\n }\r\n\r\n MathRand.title = \"Rand\";\r\n MathRand.desc = \"Random number\";\r\n\r\n MathRand.prototype.onExecute = function() {\r\n if (this.inputs) {\r\n for (var i = 0; i < this.inputs.length; i++) {\r\n var input = this.inputs[i];\r\n var v = this.getInputData(i);\r\n if (v === undefined) {\r\n continue;\r\n }\r\n this.properties[input.name] = v;\r\n }\r\n }\r\n\r\n var min = this.properties.min;\r\n var max = this.properties.max;\r\n this._last_v = Math.random() * (max - min) + min;\r\n this.setOutputData(0, this._last_v);\r\n };\r\n\r\n MathRand.prototype.onDrawBackground = function(ctx) {\r\n //show the current value\r\n this.outputs[0].label = (this._last_v || 0).toFixed(3);\r\n };\r\n\r\n MathRand.prototype.onGetInputs = function() {\r\n return [[\"min\", \"number\"], [\"max\", \"number\"]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/rand\", MathRand);\r\n\r\n //basic continuous noise\r\n function MathNoise() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.addProperty(\"min\", 0);\r\n this.addProperty(\"max\", 1);\r\n this.addProperty(\"smooth\", true);\r\n this.addProperty(\"seed\", 0);\r\n this.addProperty(\"octaves\", 1);\r\n this.addProperty(\"persistence\", 0.8);\r\n this.addProperty(\"speed\", 1);\r\n this.size = [90, 30];\r\n }\r\n\r\n MathNoise.title = \"Noise\";\r\n MathNoise.desc = \"Random number with temporal continuity\";\r\n MathNoise.data = null;\r\n\r\n MathNoise.getValue = function(f, smooth) {\r\n if (!MathNoise.data) {\r\n MathNoise.data = new Float32Array(1024);\r\n for (var i = 0; i < MathNoise.data.length; ++i) {\r\n MathNoise.data[i] = Math.random();\r\n }\r\n }\r\n f = f % 1024;\r\n if (f < 0) {\r\n f += 1024;\r\n }\r\n var f_min = Math.floor(f);\r\n var f = f - f_min;\r\n var r1 = MathNoise.data[f_min];\r\n var r2 = MathNoise.data[f_min == 1023 ? 0 : f_min + 1];\r\n if (smooth) {\r\n f = f * f * f * (f * (f * 6.0 - 15.0) + 10.0);\r\n }\r\n return r1 * (1 - f) + r2 * f;\r\n };\r\n\r\n MathNoise.prototype.onExecute = function() {\r\n var f = this.getInputData(0) || 0;\r\n\t\tvar iterations = this.properties.octaves || 1;\r\n\t\tvar r = 0;\r\n\t\tvar amp = 1;\r\n\t\tvar seed = this.properties.seed || 0;\r\n\t\tf += seed;\r\n\t\tvar speed = this.properties.speed || 1;\r\n\t\tvar total_amp = 0;\r\n\t\tfor(var i = 0; i < iterations; ++i)\r\n\t\t{\r\n\t\t\tr += MathNoise.getValue(f * (1+i) * speed, this.properties.smooth) * amp;\r\n\t\t\ttotal_amp += amp;\r\n\t\t\tamp *= this.properties.persistence;\r\n\t\t\tif(amp < 0.001)\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tr /= total_amp;\r\n var min = this.properties.min;\r\n var max = this.properties.max;\r\n this._last_v = r * (max - min) + min;\r\n this.setOutputData(0, this._last_v);\r\n };\r\n\r\n MathNoise.prototype.onDrawBackground = function(ctx) {\r\n //show the current value\r\n this.outputs[0].label = (this._last_v || 0).toFixed(3);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/noise\", MathNoise);\r\n\r\n //generates spikes every random time\r\n function MathSpikes() {\r\n this.addOutput(\"out\", \"number\");\r\n this.addProperty(\"min_time\", 1);\r\n this.addProperty(\"max_time\", 2);\r\n this.addProperty(\"duration\", 0.2);\r\n this.size = [90, 30];\r\n this._remaining_time = 0;\r\n this._blink_time = 0;\r\n }\r\n\r\n MathSpikes.title = \"Spikes\";\r\n MathSpikes.desc = \"spike every random time\";\r\n\r\n MathSpikes.prototype.onExecute = function() {\r\n var dt = this.graph.elapsed_time; //in secs\r\n\r\n this._remaining_time -= dt;\r\n this._blink_time -= dt;\r\n\r\n var v = 0;\r\n if (this._blink_time > 0) {\r\n var f = this._blink_time / this.properties.duration;\r\n v = 1 / (Math.pow(f * 8 - 4, 4) + 1);\r\n }\r\n\r\n if (this._remaining_time < 0) {\r\n this._remaining_time =\r\n Math.random() *\r\n (this.properties.max_time - this.properties.min_time) +\r\n this.properties.min_time;\r\n this._blink_time = this.properties.duration;\r\n this.boxcolor = \"#FFF\";\r\n } else {\r\n this.boxcolor = \"#000\";\r\n }\r\n this.setOutputData(0, v);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/spikes\", MathSpikes);\r\n\r\n //Math clamp\r\n function MathClamp() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n this.addProperty(\"min\", 0);\r\n this.addProperty(\"max\", 1);\r\n }\r\n\r\n MathClamp.title = \"Clamp\";\r\n MathClamp.desc = \"Clamp number between min and max\";\r\n //MathClamp.filter = \"shader\";\r\n\r\n MathClamp.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n v = Math.max(this.properties.min, v);\r\n v = Math.min(this.properties.max, v);\r\n this.setOutputData(0, v);\r\n };\r\n\r\n MathClamp.prototype.getCode = function(lang) {\r\n var code = \"\";\r\n if (this.isInputConnected(0)) {\r\n code +=\r\n \"clamp({{0}},\" +\r\n this.properties.min +\r\n \",\" +\r\n this.properties.max +\r\n \")\";\r\n }\r\n return code;\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/clamp\", MathClamp);\r\n\r\n //Math ABS\r\n function MathLerp() {\r\n this.properties = { f: 0.5 };\r\n this.addInput(\"A\", \"number\");\r\n this.addInput(\"B\", \"number\");\r\n\r\n this.addOutput(\"out\", \"number\");\r\n }\r\n\r\n MathLerp.title = \"Lerp\";\r\n MathLerp.desc = \"Linear Interpolation\";\r\n\r\n MathLerp.prototype.onExecute = function() {\r\n var v1 = this.getInputData(0);\r\n if (v1 == null) {\r\n v1 = 0;\r\n }\r\n var v2 = this.getInputData(1);\r\n if (v2 == null) {\r\n v2 = 0;\r\n }\r\n\r\n var f = this.properties.f;\r\n\r\n var _f = this.getInputData(2);\r\n if (_f !== undefined) {\r\n f = _f;\r\n }\r\n\r\n this.setOutputData(0, v1 * (1 - f) + v2 * f);\r\n };\r\n\r\n MathLerp.prototype.onGetInputs = function() {\r\n return [[\"f\", \"number\"]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/lerp\", MathLerp);\r\n\r\n //Math ABS\r\n function MathAbs() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n }\r\n\r\n MathAbs.title = \"Abs\";\r\n MathAbs.desc = \"Absolute\";\r\n\r\n MathAbs.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n this.setOutputData(0, Math.abs(v));\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/abs\", MathAbs);\r\n\r\n //Math Floor\r\n function MathFloor() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n }\r\n\r\n MathFloor.title = \"Floor\";\r\n MathFloor.desc = \"Floor number to remove fractional part\";\r\n\r\n MathFloor.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n this.setOutputData(0, Math.floor(v));\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/floor\", MathFloor);\r\n\r\n //Math frac\r\n function MathFrac() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n }\r\n\r\n MathFrac.title = \"Frac\";\r\n MathFrac.desc = \"Returns fractional part\";\r\n\r\n MathFrac.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n this.setOutputData(0, v % 1);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/frac\", MathFrac);\r\n\r\n //Math Floor\r\n function MathSmoothStep() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n this.properties = { A: 0, B: 1 };\r\n }\r\n\r\n MathSmoothStep.title = \"Smoothstep\";\r\n MathSmoothStep.desc = \"Smoothstep\";\r\n\r\n MathSmoothStep.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v === undefined) {\r\n return;\r\n }\r\n\r\n var edge0 = this.properties.A;\r\n var edge1 = this.properties.B;\r\n\r\n // Scale, bias and saturate x to 0..1 range\r\n v = Math.clamp((v - edge0) / (edge1 - edge0), 0.0, 1.0);\r\n // Evaluate polynomial\r\n v = v * v * (3 - 2 * v);\r\n\r\n this.setOutputData(0, v);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/smoothstep\", MathSmoothStep);\r\n\r\n //Math scale\r\n function MathScale() {\r\n this.addInput(\"in\", \"number\", { label: \"\" });\r\n this.addOutput(\"out\", \"number\", { label: \"\" });\r\n this.size = [80, 30];\r\n this.addProperty(\"factor\", 1);\r\n }\r\n\r\n MathScale.title = \"Scale\";\r\n MathScale.desc = \"v * factor\";\r\n\r\n MathScale.prototype.onExecute = function() {\r\n var value = this.getInputData(0);\r\n if (value != null) {\r\n this.setOutputData(0, value * this.properties.factor);\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/scale\", MathScale);\r\n\r\n\t//Gate\r\n\tfunction Gate() {\r\n\t\tthis.addInput(\"v\",\"boolean\");\r\n\t\tthis.addInput(\"A\");\r\n\t\tthis.addInput(\"B\");\r\n\t\tthis.addOutput(\"out\");\r\n\t}\r\n\r\n\tGate.title = \"Gate\";\r\n\tGate.desc = \"if v is true, then outputs A, otherwise B\";\r\n\r\n\tGate.prototype.onExecute = function() {\r\n\t\tvar v = this.getInputData(0);\r\n\t\tthis.setOutputData(0, this.getInputData( v ? 1 : 2 ));\r\n\t};\r\n\r\n\tLiteGraph.registerNodeType(\"math/gate\", Gate);\r\n\r\n\r\n //Math Average\r\n function MathAverageFilter() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.size = [80, 30];\r\n this.addProperty(\"samples\", 10);\r\n this._values = new Float32Array(10);\r\n this._current = 0;\r\n }\r\n\r\n MathAverageFilter.title = \"Average\";\r\n MathAverageFilter.desc = \"Average Filter\";\r\n\r\n MathAverageFilter.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n v = 0;\r\n }\r\n\r\n var num_samples = this._values.length;\r\n\r\n this._values[this._current % num_samples] = v;\r\n this._current += 1;\r\n if (this._current > num_samples) {\r\n this._current = 0;\r\n }\r\n\r\n var avr = 0;\r\n for (var i = 0; i < num_samples; ++i) {\r\n avr += this._values[i];\r\n }\r\n\r\n this.setOutputData(0, avr / num_samples);\r\n };\r\n\r\n MathAverageFilter.prototype.onPropertyChanged = function(name, value) {\r\n if (value < 1) {\r\n value = 1;\r\n }\r\n this.properties.samples = Math.round(value);\r\n var old = this._values;\r\n\r\n this._values = new Float32Array(this.properties.samples);\r\n if (old.length <= this._values.length) {\r\n this._values.set(old);\r\n } else {\r\n this._values.set(old.subarray(0, this._values.length));\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/average\", MathAverageFilter);\r\n\r\n //Math\r\n function MathTendTo() {\r\n this.addInput(\"in\", \"number\");\r\n this.addOutput(\"out\", \"number\");\r\n this.addProperty(\"factor\", 0.1);\r\n this.size = [80, 30];\r\n this._value = null;\r\n }\r\n\r\n MathTendTo.title = \"TendTo\";\r\n MathTendTo.desc = \"moves the output value always closer to the input\";\r\n\r\n MathTendTo.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n v = 0;\r\n }\r\n var f = this.properties.factor;\r\n if (this._value == null) {\r\n this._value = v;\r\n } else {\r\n this._value = this._value * (1 - f) + v * f;\r\n }\r\n this.setOutputData(0, this._value);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/tendTo\", MathTendTo);\r\n\r\n //Math operation\r\n function MathOperation() {\r\n this.addInput(\"A\", \"number,array,object\");\r\n this.addInput(\"B\", \"number\");\r\n this.addOutput(\"=\", \"number\");\r\n this.addProperty(\"A\", 1);\r\n this.addProperty(\"B\", 1);\r\n this.addProperty(\"OP\", \"+\", \"enum\", { values: MathOperation.values });\r\n\t\tthis._func = function(A,B) { return A + B; };\r\n\t\tthis._result = []; //only used for arrays\r\n }\r\n\r\n MathOperation.values = [\"+\", \"-\", \"*\", \"/\", \"%\", \"^\", \"max\", \"min\"];\r\n\r\n\tMathOperation.title = \"Operation\";\r\n MathOperation.desc = \"Easy math operators\";\r\n MathOperation[\"@OP\"] = {\r\n type: \"enum\",\r\n title: \"operation\",\r\n values: MathOperation.values\r\n };\r\n MathOperation.size = [100, 60];\r\n\r\n MathOperation.prototype.getTitle = function() {\r\n\t\tif(this.properties.OP == \"max\" || this.properties.OP == \"min\")\r\n\t\t\treturn this.properties.OP + \"(A,B)\";\r\n return \"A \" + this.properties.OP + \" B\";\r\n };\r\n\r\n MathOperation.prototype.setValue = function(v) {\r\n if (typeof v == \"string\") {\r\n v = parseFloat(v);\r\n }\r\n this.properties[\"value\"] = v;\r\n };\r\n\r\n MathOperation.prototype.onPropertyChanged = function(name, value)\r\n\t{\r\n\t\tif (name != \"OP\")\r\n\t\t\treturn;\r\n switch (this.properties.OP) {\r\n case \"+\": this._func = function(A,B) { return A + B; }; break;\r\n case \"-\": this._func = function(A,B) { return A - B; }; break;\r\n case \"x\":\r\n case \"X\":\r\n case \"*\": this._func = function(A,B) { return A * B; }; break;\r\n case \"/\": this._func = function(A,B) { return A / B; }; break;\r\n case \"%\": this._func = function(A,B) { return A % B; }; break;\r\n case \"^\": this._func = function(A,B) { return Math.pow(A, B); }; break;\r\n case \"max\": this._func = function(A,B) { return Math.max(A, B); }; break;\r\n case \"min\": this._func = function(A,B) { return Math.min(A, B); }; break;\r\n\t\t\tdefault: \r\n\t\t\t\tconsole.warn(\"Unknown operation: \" + this.properties.OP);\r\n\t\t\t\tthis._func = function(A) { return A; };\r\n\t\t\t\tbreak;\r\n }\r\n\t}\r\n\r\n MathOperation.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n var B = this.getInputData(1);\r\n if ( A != null ) {\r\n\t\t\tif( A.constructor === Number )\r\n\t this.properties[\"A\"] = A;\r\n } else {\r\n A = this.properties[\"A\"];\r\n }\r\n\r\n if (B != null) {\r\n this.properties[\"B\"] = B;\r\n } else {\r\n B = this.properties[\"B\"];\r\n }\r\n\r\n\t\tvar result;\r\n\t\tif(A.constructor === Number)\r\n\t\t{\r\n\t result = 0;\r\n\t\t\tresult = this._func(A,B);\r\n\t\t}\r\n\t\telse if(A.constructor === Array)\r\n\t\t{\r\n\t\t\tresult = this._result;\r\n\t\t\tresult.length = A.length;\r\n\t\t\tfor(var i = 0; i < A.length; ++i)\r\n\t\t\t\tresult[i] = this._func(A[i],B);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tresult = {};\r\n\t\t\tfor(var i in A)\r\n\t\t\t\tresult[i] = this._func(A[i],B);\r\n\t\t}\r\n\t this.setOutputData(0, result);\r\n };\r\n\r\n MathOperation.prototype.onDrawBackground = function(ctx) {\r\n if (this.flags.collapsed) {\r\n return;\r\n }\r\n\r\n ctx.font = \"40px Arial\";\r\n ctx.fillStyle = \"#666\";\r\n ctx.textAlign = \"center\";\r\n ctx.fillText(\r\n this.properties.OP,\r\n this.size[0] * 0.5,\r\n (this.size[1] + LiteGraph.NODE_TITLE_HEIGHT) * 0.5\r\n );\r\n ctx.textAlign = \"left\";\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/operation\", MathOperation);\r\n\r\n LiteGraph.registerSearchboxExtra(\"math/operation\", \"MAX\", {\r\n properties: {OP:\"max\"},\r\n title: \"MAX()\"\r\n });\r\n\r\n LiteGraph.registerSearchboxExtra(\"math/operation\", \"MIN\", {\r\n properties: {OP:\"min\"},\r\n title: \"MIN()\"\r\n });\r\n\r\n\r\n //Math compare\r\n function MathCompare() {\r\n this.addInput(\"A\", \"number\");\r\n this.addInput(\"B\", \"number\");\r\n this.addOutput(\"A==B\", \"boolean\");\r\n this.addOutput(\"A!=B\", \"boolean\");\r\n this.addProperty(\"A\", 0);\r\n this.addProperty(\"B\", 0);\r\n }\r\n\r\n MathCompare.title = \"Compare\";\r\n MathCompare.desc = \"compares between two values\";\r\n\r\n MathCompare.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n var B = this.getInputData(1);\r\n if (A !== undefined) {\r\n this.properties[\"A\"] = A;\r\n } else {\r\n A = this.properties[\"A\"];\r\n }\r\n\r\n if (B !== undefined) {\r\n this.properties[\"B\"] = B;\r\n } else {\r\n B = this.properties[\"B\"];\r\n }\r\n\r\n for (var i = 0, l = this.outputs.length; i < l; ++i) {\r\n var output = this.outputs[i];\r\n if (!output.links || !output.links.length) {\r\n continue;\r\n }\r\n var value;\r\n switch (output.name) {\r\n case \"A==B\":\r\n value = A == B;\r\n break;\r\n case \"A!=B\":\r\n value = A != B;\r\n break;\r\n case \"A>B\":\r\n value = A > B;\r\n break;\r\n case \"A=B\":\r\n value = A >= B;\r\n break;\r\n }\r\n this.setOutputData(i, value);\r\n }\r\n };\r\n\r\n MathCompare.prototype.onGetOutputs = function() {\r\n return [\r\n [\"A==B\", \"boolean\"],\r\n [\"A!=B\", \"boolean\"],\r\n [\"A>B\", \"boolean\"],\r\n [\"A=B\", \"boolean\"],\r\n [\"A<=B\", \"boolean\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/compare\", MathCompare);\r\n\r\n LiteGraph.registerSearchboxExtra(\"math/compare\", \"==\", {\r\n outputs: [[\"A==B\", \"boolean\"]],\r\n title: \"A==B\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/compare\", \"!=\", {\r\n outputs: [[\"A!=B\", \"boolean\"]],\r\n title: \"A!=B\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/compare\", \">\", {\r\n outputs: [[\"A>B\", \"boolean\"]],\r\n title: \"A>B\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/compare\", \"<\", {\r\n outputs: [[\"A=\", {\r\n outputs: [[\"A>=B\", \"boolean\"]],\r\n title: \"A>=B\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/compare\", \"<=\", {\r\n outputs: [[\"A<=B\", \"boolean\"]],\r\n title: \"A<=B\"\r\n });\r\n\r\n function MathCondition() {\r\n this.addInput(\"A\", \"number\");\r\n this.addInput(\"B\", \"number\");\r\n this.addOutput(\"true\", \"boolean\");\r\n this.addOutput(\"false\", \"boolean\");\r\n this.addProperty(\"A\", 1);\r\n this.addProperty(\"B\", 1);\r\n this.addProperty(\"OP\", \">\", \"enum\", { values: MathCondition.values });\r\n\t\tthis.addWidget(\"combo\",\"Cond.\",this.properties.OP,{ property: \"OP\", values: MathCondition.values } );\r\n\r\n this.size = [80, 60];\r\n }\r\n\r\n MathCondition.values = [\">\", \"<\", \"==\", \"!=\", \"<=\", \">=\", \"||\", \"&&\" ];\r\n MathCondition[\"@OP\"] = {\r\n type: \"enum\",\r\n title: \"operation\",\r\n values: MathCondition.values\r\n };\r\n\r\n MathCondition.title = \"Condition\";\r\n MathCondition.desc = \"evaluates condition between A and B\";\r\n\r\n MathCondition.prototype.getTitle = function() {\r\n return \"A \" + this.properties.OP + \" B\";\r\n };\r\n\r\n MathCondition.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n if (A === undefined) {\r\n A = this.properties.A;\r\n } else {\r\n this.properties.A = A;\r\n }\r\n\r\n var B = this.getInputData(1);\r\n if (B === undefined) {\r\n B = this.properties.B;\r\n } else {\r\n this.properties.B = B;\r\n }\r\n\r\n var result = true;\r\n switch (this.properties.OP) {\r\n case \">\":\r\n result = A > B;\r\n break;\r\n case \"<\":\r\n result = A < B;\r\n break;\r\n case \"==\":\r\n result = A == B;\r\n break;\r\n case \"!=\":\r\n result = A != B;\r\n break;\r\n case \"<=\":\r\n result = A <= B;\r\n break;\r\n case \">=\":\r\n result = A >= B;\r\n break;\r\n case \"||\":\r\n result = A || B;\r\n break;\r\n case \"&&\":\r\n result = A && B;\r\n break;\r\n }\r\n\r\n this.setOutputData(0, result);\r\n this.setOutputData(1, !result);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/condition\", MathCondition);\r\n\r\n\r\n function MathBranch() {\r\n this.addInput(\"in\", \"\");\r\n this.addInput(\"cond\", \"boolean\");\r\n this.addOutput(\"true\", \"\");\r\n this.addOutput(\"false\", \"\");\r\n this.size = [80, 60];\r\n }\r\n\r\n MathBranch.title = \"Branch\";\r\n MathBranch.desc = \"If condition is true, outputs IN in true, otherwise in false\";\r\n\r\n MathBranch.prototype.onExecute = function() {\r\n var V = this.getInputData(0);\r\n var cond = this.getInputData(1);\r\n\r\n\t\tif(cond)\r\n\t\t{\r\n\t\t\tthis.setOutputData(0, V);\r\n\t\t\tthis.setOutputData(1, null);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.setOutputData(0, null);\r\n\t\t\tthis.setOutputData(1, V);\r\n\t\t}\r\n\t}\r\n\r\n LiteGraph.registerNodeType(\"math/branch\", MathBranch);\r\n\r\n\r\n function MathAccumulate() {\r\n this.addInput(\"inc\", \"number\");\r\n this.addOutput(\"total\", \"number\");\r\n this.addProperty(\"increment\", 1);\r\n this.addProperty(\"value\", 0);\r\n }\r\n\r\n MathAccumulate.title = \"Accumulate\";\r\n MathAccumulate.desc = \"Increments a value every time\";\r\n\r\n MathAccumulate.prototype.onExecute = function() {\r\n if (this.properties.value === null) {\r\n this.properties.value = 0;\r\n }\r\n\r\n var inc = this.getInputData(0);\r\n if (inc !== null) {\r\n this.properties.value += inc;\r\n } else {\r\n this.properties.value += this.properties.increment;\r\n }\r\n this.setOutputData(0, this.properties.value);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/accumulate\", MathAccumulate);\r\n\r\n //Math Trigonometry\r\n function MathTrigonometry() {\r\n this.addInput(\"v\", \"number\");\r\n this.addOutput(\"sin\", \"number\");\r\n\r\n this.addProperty(\"amplitude\", 1);\r\n this.addProperty(\"offset\", 0);\r\n this.bgImageUrl = \"nodes/imgs/icon-sin.png\";\r\n }\r\n\r\n MathTrigonometry.title = \"Trigonometry\";\r\n MathTrigonometry.desc = \"Sin Cos Tan\";\r\n //MathTrigonometry.filter = \"shader\";\r\n\r\n MathTrigonometry.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n v = 0;\r\n }\r\n var amplitude = this.properties[\"amplitude\"];\r\n var slot = this.findInputSlot(\"amplitude\");\r\n if (slot != -1) {\r\n amplitude = this.getInputData(slot);\r\n }\r\n var offset = this.properties[\"offset\"];\r\n slot = this.findInputSlot(\"offset\");\r\n if (slot != -1) {\r\n offset = this.getInputData(slot);\r\n }\r\n\r\n for (var i = 0, l = this.outputs.length; i < l; ++i) {\r\n var output = this.outputs[i];\r\n var value;\r\n switch (output.name) {\r\n case \"sin\":\r\n value = Math.sin(v);\r\n break;\r\n case \"cos\":\r\n value = Math.cos(v);\r\n break;\r\n case \"tan\":\r\n value = Math.tan(v);\r\n break;\r\n case \"asin\":\r\n value = Math.asin(v);\r\n break;\r\n case \"acos\":\r\n value = Math.acos(v);\r\n break;\r\n case \"atan\":\r\n value = Math.atan(v);\r\n break;\r\n }\r\n this.setOutputData(i, amplitude * value + offset);\r\n }\r\n };\r\n\r\n MathTrigonometry.prototype.onGetInputs = function() {\r\n return [[\"v\", \"number\"], [\"amplitude\", \"number\"], [\"offset\", \"number\"]];\r\n };\r\n\r\n MathTrigonometry.prototype.onGetOutputs = function() {\r\n return [\r\n [\"sin\", \"number\"],\r\n [\"cos\", \"number\"],\r\n [\"tan\", \"number\"],\r\n [\"asin\", \"number\"],\r\n [\"acos\", \"number\"],\r\n [\"atan\", \"number\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/trigonometry\", MathTrigonometry);\r\n\r\n LiteGraph.registerSearchboxExtra(\"math/trigonometry\", \"SIN()\", {\r\n outputs: [[\"sin\", \"number\"]],\r\n title: \"SIN()\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/trigonometry\", \"COS()\", {\r\n outputs: [[\"cos\", \"number\"]],\r\n title: \"COS()\"\r\n });\r\n LiteGraph.registerSearchboxExtra(\"math/trigonometry\", \"TAN()\", {\r\n outputs: [[\"tan\", \"number\"]],\r\n title: \"TAN()\"\r\n });\r\n\r\n //math library for safe math operations without eval\r\n function MathFormula() {\r\n this.addInput(\"x\", \"number\");\r\n this.addInput(\"y\", \"number\");\r\n this.addOutput(\"\", \"number\");\r\n this.properties = { x: 1.0, y: 1.0, formula: \"x+y\" };\r\n this.code_widget = this.addWidget(\r\n \"text\",\r\n \"F(x,y)\",\r\n this.properties.formula,\r\n function(v, canvas, node) {\r\n node.properties.formula = v;\r\n }\r\n );\r\n this.addWidget(\"toggle\", \"allow\", LiteGraph.allow_scripts, function(v) {\r\n LiteGraph.allow_scripts = v;\r\n });\r\n this._func = null;\r\n }\r\n\r\n MathFormula.title = \"Formula\";\r\n MathFormula.desc = \"Compute formula\";\r\n MathFormula.size = [160, 100];\r\n\r\n MathAverageFilter.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"formula\") {\r\n this.code_widget.value = value;\r\n }\r\n };\r\n\r\n MathFormula.prototype.onExecute = function() {\r\n if (!LiteGraph.allow_scripts) {\r\n return;\r\n }\r\n\r\n var x = this.getInputData(0);\r\n var y = this.getInputData(1);\r\n if (x != null) {\r\n this.properties[\"x\"] = x;\r\n } else {\r\n x = this.properties[\"x\"];\r\n }\r\n\r\n if (y != null) {\r\n this.properties[\"y\"] = y;\r\n } else {\r\n y = this.properties[\"y\"];\r\n }\r\n\r\n var f = this.properties[\"formula\"];\r\n\r\n var value;\r\n try {\r\n if (!this._func || this._func_code != this.properties.formula) {\r\n this._func = new Function(\r\n \"x\",\r\n \"y\",\r\n \"TIME\",\r\n \"return \" + this.properties.formula\r\n );\r\n this._func_code = this.properties.formula;\r\n }\r\n value = this._func(x, y, this.graph.globaltime);\r\n this.boxcolor = null;\r\n } catch (err) {\r\n this.boxcolor = \"red\";\r\n }\r\n this.setOutputData(0, value);\r\n };\r\n\r\n MathFormula.prototype.getTitle = function() {\r\n return this._func_code || \"Formula\";\r\n };\r\n\r\n MathFormula.prototype.onDrawBackground = function() {\r\n var f = this.properties[\"formula\"];\r\n if (this.outputs && this.outputs.length) {\r\n this.outputs[0].label = f;\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math/formula\", MathFormula);\r\n\r\n function Math3DVec2ToXY() {\r\n this.addInput(\"vec2\", \"vec2\");\r\n this.addOutput(\"x\", \"number\");\r\n this.addOutput(\"y\", \"number\");\r\n }\r\n\r\n Math3DVec2ToXY.title = \"Vec2->XY\";\r\n Math3DVec2ToXY.desc = \"vector 2 to components\";\r\n\r\n Math3DVec2ToXY.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n\r\n this.setOutputData(0, v[0]);\r\n this.setOutputData(1, v[1]);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec2-to-xy\", Math3DVec2ToXY);\r\n\r\n function Math3DXYToVec2() {\r\n this.addInputs([[\"x\", \"number\"], [\"y\", \"number\"]]);\r\n this.addOutput(\"vec2\", \"vec2\");\r\n this.properties = { x: 0, y: 0 };\r\n this._data = new Float32Array(2);\r\n }\r\n\r\n Math3DXYToVec2.title = \"XY->Vec2\";\r\n Math3DXYToVec2.desc = \"components to vector2\";\r\n\r\n Math3DXYToVec2.prototype.onExecute = function() {\r\n var x = this.getInputData(0);\r\n if (x == null) {\r\n x = this.properties.x;\r\n }\r\n var y = this.getInputData(1);\r\n if (y == null) {\r\n y = this.properties.y;\r\n }\r\n\r\n var data = this._data;\r\n data[0] = x;\r\n data[1] = y;\r\n\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/xy-to-vec2\", Math3DXYToVec2);\r\n\r\n function Math3DVec3ToXYZ() {\r\n this.addInput(\"vec3\", \"vec3\");\r\n this.addOutput(\"x\", \"number\");\r\n this.addOutput(\"y\", \"number\");\r\n this.addOutput(\"z\", \"number\");\r\n }\r\n\r\n Math3DVec3ToXYZ.title = \"Vec3->XYZ\";\r\n Math3DVec3ToXYZ.desc = \"vector 3 to components\";\r\n\r\n Math3DVec3ToXYZ.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n\r\n this.setOutputData(0, v[0]);\r\n this.setOutputData(1, v[1]);\r\n this.setOutputData(2, v[2]);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-to-xyz\", Math3DVec3ToXYZ);\r\n\r\n function Math3DXYZToVec3() {\r\n this.addInputs([[\"x\", \"number\"], [\"y\", \"number\"], [\"z\", \"number\"]]);\r\n this.addOutput(\"vec3\", \"vec3\");\r\n this.properties = { x: 0, y: 0, z: 0 };\r\n this._data = new Float32Array(3);\r\n }\r\n\r\n Math3DXYZToVec3.title = \"XYZ->Vec3\";\r\n Math3DXYZToVec3.desc = \"components to vector3\";\r\n\r\n Math3DXYZToVec3.prototype.onExecute = function() {\r\n var x = this.getInputData(0);\r\n if (x == null) {\r\n x = this.properties.x;\r\n }\r\n var y = this.getInputData(1);\r\n if (y == null) {\r\n y = this.properties.y;\r\n }\r\n var z = this.getInputData(2);\r\n if (z == null) {\r\n z = this.properties.z;\r\n }\r\n\r\n var data = this._data;\r\n data[0] = x;\r\n data[1] = y;\r\n data[2] = z;\r\n\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/xyz-to-vec3\", Math3DXYZToVec3);\r\n\r\n function Math3DVec4ToXYZW() {\r\n this.addInput(\"vec4\", \"vec4\");\r\n this.addOutput(\"x\", \"number\");\r\n this.addOutput(\"y\", \"number\");\r\n this.addOutput(\"z\", \"number\");\r\n this.addOutput(\"w\", \"number\");\r\n }\r\n\r\n Math3DVec4ToXYZW.title = \"Vec4->XYZW\";\r\n Math3DVec4ToXYZW.desc = \"vector 4 to components\";\r\n\r\n Math3DVec4ToXYZW.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n\r\n this.setOutputData(0, v[0]);\r\n this.setOutputData(1, v[1]);\r\n this.setOutputData(2, v[2]);\r\n this.setOutputData(3, v[3]);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec4-to-xyzw\", Math3DVec4ToXYZW);\r\n\r\n function Math3DXYZWToVec4() {\r\n this.addInputs([\r\n [\"x\", \"number\"],\r\n [\"y\", \"number\"],\r\n [\"z\", \"number\"],\r\n [\"w\", \"number\"]\r\n ]);\r\n this.addOutput(\"vec4\", \"vec4\");\r\n this.properties = { x: 0, y: 0, z: 0, w: 0 };\r\n this._data = new Float32Array(4);\r\n }\r\n\r\n Math3DXYZWToVec4.title = \"XYZW->Vec4\";\r\n Math3DXYZWToVec4.desc = \"components to vector4\";\r\n\r\n Math3DXYZWToVec4.prototype.onExecute = function() {\r\n var x = this.getInputData(0);\r\n if (x == null) {\r\n x = this.properties.x;\r\n }\r\n var y = this.getInputData(1);\r\n if (y == null) {\r\n y = this.properties.y;\r\n }\r\n var z = this.getInputData(2);\r\n if (z == null) {\r\n z = this.properties.z;\r\n }\r\n var w = this.getInputData(3);\r\n if (w == null) {\r\n w = this.properties.w;\r\n }\r\n\r\n var data = this._data;\r\n data[0] = x;\r\n data[1] = y;\r\n data[2] = z;\r\n data[3] = w;\r\n\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/xyzw-to-vec4\", Math3DXYZWToVec4);\r\n\r\n})(this);\r\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n\r\n\tfunction Math3DMat4()\r\n\t{\r\n this.addInput(\"T\", \"vec3\");\r\n this.addInput(\"R\", \"vec3\");\r\n this.addInput(\"S\", \"vec3\");\r\n this.addOutput(\"mat4\", \"mat4\");\r\n\t\tthis.properties = {\r\n\t\t\t\"T\":[0,0,0],\r\n\t\t\t\"R\":[0,0,0],\r\n\t\t\t\"S\":[1,1,1],\r\n\t\t\tR_in_degrees: true\r\n\t\t};\r\n\t\tthis._result = mat4.create();\r\n\t\tthis._must_update = true;\r\n\t}\r\n\r\n\tMath3DMat4.title = \"mat4\";\r\n\tMath3DMat4.temp_quat = new Float32Array([0,0,0,1]);\r\n\tMath3DMat4.temp_mat4 = new Float32Array(16);\r\n\tMath3DMat4.temp_vec3 = new Float32Array(3);\r\n\r\n\tMath3DMat4.prototype.onPropertyChanged = function(name, value)\r\n\t{\r\n\t\tthis._must_update = true;\r\n\t}\r\n\r\n\tMath3DMat4.prototype.onExecute = function()\r\n\t{\r\n\t\tvar M = this._result;\r\n\t\tvar Q = Math3DMat4.temp_quat;\r\n\t\tvar temp_mat4 = Math3DMat4.temp_mat4;\r\n\t\tvar temp_vec3 = Math3DMat4.temp_vec3;\r\n\r\n\t\tvar T = this.getInputData(0);\r\n\t\tvar R = this.getInputData(1);\r\n\t\tvar S = this.getInputData(2);\r\n\r\n\t\tif( this._must_update || T || R || S )\r\n\t\t{\r\n\t\t\tT = T || this.properties.T;\r\n\t\t\tR = R || this.properties.R;\r\n\t\t\tS = S || this.properties.S;\r\n\t\t\tmat4.identity( M );\r\n\t\t\tmat4.translate( M, M, T );\r\n\t\t\tif(this.properties.R_in_degrees)\r\n\t\t\t{\r\n\t\t\t\ttemp_vec3.set( R );\r\n\t\t\t\tvec3.scale(temp_vec3,temp_vec3,DEG2RAD);\r\n\t\t\t\tquat.fromEuler( Q, temp_vec3 );\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tquat.fromEuler( Q, R );\r\n\t\t\tmat4.fromQuat( temp_mat4, Q );\r\n\t\t\tmat4.multiply( M, M, temp_mat4 );\r\n\t\t\tmat4.scale( M, M, S );\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0, M);\t\t\r\n\t}\r\n\r\n LiteGraph.registerNodeType(\"math3d/mat4\", Math3DMat4);\r\n\r\n //Math 3D operation\r\n function Math3DOperation() {\r\n this.addInput(\"A\", \"number,vec3\");\r\n this.addInput(\"B\", \"number,vec3\");\r\n this.addOutput(\"=\", \"number,vec3\");\r\n this.addProperty(\"OP\", \"+\", \"enum\", { values: Math3DOperation.values });\r\n\t\tthis._result = vec3.create();\r\n }\r\n\r\n Math3DOperation.values = [\"+\", \"-\", \"*\", \"/\", \"%\", \"^\", \"max\", \"min\",\"dot\",\"cross\"];\r\n\r\n LiteGraph.registerSearchboxExtra(\"math3d/operation\", \"CROSS()\", {\r\n properties: {\"OP\":\"cross\"},\r\n title: \"CROSS()\"\r\n });\r\n\r\n LiteGraph.registerSearchboxExtra(\"math3d/operation\", \"DOT()\", {\r\n properties: {\"OP\":\"dot\"},\r\n title: \"DOT()\"\r\n });\r\n\r\n\tMath3DOperation.title = \"Operation\";\r\n Math3DOperation.desc = \"Easy math 3D operators\";\r\n Math3DOperation[\"@OP\"] = {\r\n type: \"enum\",\r\n title: \"operation\",\r\n values: Math3DOperation.values\r\n };\r\n Math3DOperation.size = [100, 60];\r\n\r\n Math3DOperation.prototype.getTitle = function() {\r\n\t\tif(this.properties.OP == \"max\" || this.properties.OP == \"min\" )\r\n\t\t\treturn this.properties.OP + \"(A,B)\";\r\n return \"A \" + this.properties.OP + \" B\";\r\n };\r\n\r\n Math3DOperation.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n var B = this.getInputData(1);\r\n\t\tif(A == null || B == null)\r\n\t\t\treturn;\r\n\t\tif(A.constructor === Number)\r\n\t\t\tA = [A,A,A];\r\n\t\tif(B.constructor === Number)\r\n\t\t\tB = [B,B,B];\r\n\r\n var result = this._result;\r\n switch (this.properties.OP) {\r\n case \"+\":\r\n result = vec3.add(result,A,B);\r\n break;\r\n case \"-\":\r\n result = vec3.sub(result,A,B);\r\n break;\r\n case \"x\":\r\n case \"X\":\r\n case \"*\":\r\n result = vec3.mul(result,A,B);\r\n break;\r\n case \"/\":\r\n result = vec3.div(result,A,B);\r\n break;\r\n case \"%\":\r\n result[0] = A[0]%B[0];\r\n result[1] = A[1]%B[1];\r\n result[2] = A[2]%B[2];\r\n break;\r\n case \"^\":\r\n result[0] = Math.pow(A[0],B[0]);\r\n result[1] = Math.pow(A[1],B[1]);\r\n result[2] = Math.pow(A[2],B[2]);\r\n break;\r\n case \"max\":\r\n result[0] = Math.max(A[0],B[0]);\r\n result[1] = Math.max(A[1],B[1]);\r\n result[2] = Math.max(A[2],B[2]);\r\n break;\r\n case \"min\":\r\n result[0] = Math.min(A[0],B[0]);\r\n result[1] = Math.min(A[1],B[1]);\r\n result[2] = Math.min(A[2],B[2]);\r\n case \"dot\":\r\n result = vec3.dot(A,B);\r\n break;\r\n case \"cross\":\r\n vec3.cross(result,A,B);\r\n break;\r\n default:\r\n console.warn(\"Unknown operation: \" + this.properties.OP);\r\n }\r\n this.setOutputData(0, result);\r\n };\r\n\r\n Math3DOperation.prototype.onDrawBackground = function(ctx) {\r\n if (this.flags.collapsed) {\r\n return;\r\n }\r\n\r\n ctx.font = \"40px Arial\";\r\n ctx.fillStyle = \"#666\";\r\n ctx.textAlign = \"center\";\r\n ctx.fillText(\r\n this.properties.OP,\r\n this.size[0] * 0.5,\r\n (this.size[1] + LiteGraph.NODE_TITLE_HEIGHT) * 0.5\r\n );\r\n ctx.textAlign = \"left\";\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/operation\", Math3DOperation);\r\n\r\n function Math3DVec3Scale() {\r\n this.addInput(\"in\", \"vec3\");\r\n this.addInput(\"f\", \"number\");\r\n this.addOutput(\"out\", \"vec3\");\r\n this.properties = { f: 1 };\r\n this._data = new Float32Array(3);\r\n }\r\n\r\n Math3DVec3Scale.title = \"vec3_scale\";\r\n Math3DVec3Scale.desc = \"scales the components of a vec3\";\r\n\r\n Math3DVec3Scale.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n var f = this.getInputData(1);\r\n if (f == null) {\r\n f = this.properties.f;\r\n }\r\n\r\n var data = this._data;\r\n data[0] = v[0] * f;\r\n data[1] = v[1] * f;\r\n data[2] = v[2] * f;\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-scale\", Math3DVec3Scale);\r\n\r\n function Math3DVec3Length() {\r\n this.addInput(\"in\", \"vec3\");\r\n this.addOutput(\"out\", \"number\");\r\n }\r\n\r\n Math3DVec3Length.title = \"vec3_length\";\r\n Math3DVec3Length.desc = \"returns the module of a vector\";\r\n\r\n Math3DVec3Length.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n var dist = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);\r\n this.setOutputData(0, dist);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-length\", Math3DVec3Length);\r\n\r\n function Math3DVec3Normalize() {\r\n this.addInput(\"in\", \"vec3\");\r\n this.addOutput(\"out\", \"vec3\");\r\n this._data = new Float32Array(3);\r\n }\r\n\r\n Math3DVec3Normalize.title = \"vec3_normalize\";\r\n Math3DVec3Normalize.desc = \"returns the vector normalized\";\r\n\r\n Math3DVec3Normalize.prototype.onExecute = function() {\r\n var v = this.getInputData(0);\r\n if (v == null) {\r\n return;\r\n }\r\n var dist = Math.sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);\r\n var data = this._data;\r\n data[0] = v[0] / dist;\r\n data[1] = v[1] / dist;\r\n data[2] = v[2] / dist;\r\n\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-normalize\", Math3DVec3Normalize);\r\n\r\n function Math3DVec3Lerp() {\r\n this.addInput(\"A\", \"vec3\");\r\n this.addInput(\"B\", \"vec3\");\r\n this.addInput(\"f\", \"vec3\");\r\n this.addOutput(\"out\", \"vec3\");\r\n this.properties = { f: 0.5 };\r\n this._data = new Float32Array(3);\r\n }\r\n\r\n Math3DVec3Lerp.title = \"vec3_lerp\";\r\n Math3DVec3Lerp.desc = \"returns the interpolated vector\";\r\n\r\n Math3DVec3Lerp.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n if (A == null) {\r\n return;\r\n }\r\n var B = this.getInputData(1);\r\n if (B == null) {\r\n return;\r\n }\r\n var f = this.getInputOrProperty(\"f\");\r\n\r\n var data = this._data;\r\n data[0] = A[0] * (1 - f) + B[0] * f;\r\n data[1] = A[1] * (1 - f) + B[1] * f;\r\n data[2] = A[2] * (1 - f) + B[2] * f;\r\n\r\n this.setOutputData(0, data);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-lerp\", Math3DVec3Lerp);\r\n\r\n function Math3DVec3Dot() {\r\n this.addInput(\"A\", \"vec3\");\r\n this.addInput(\"B\", \"vec3\");\r\n this.addOutput(\"out\", \"number\");\r\n }\r\n\r\n Math3DVec3Dot.title = \"vec3_dot\";\r\n Math3DVec3Dot.desc = \"returns the dot product\";\r\n\r\n Math3DVec3Dot.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n if (A == null) {\r\n return;\r\n }\r\n var B = this.getInputData(1);\r\n if (B == null) {\r\n return;\r\n }\r\n\r\n var dot = A[0] * B[0] + A[1] * B[1] + A[2] * B[2];\r\n this.setOutputData(0, dot);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/vec3-dot\", Math3DVec3Dot);\r\n\r\n //if glMatrix is installed...\r\n if (global.glMatrix) {\r\n function Math3DQuaternion() {\r\n this.addOutput(\"quat\", \"quat\");\r\n this.properties = { x: 0, y: 0, z: 0, w: 1, normalize: false };\r\n this._value = quat.create();\r\n }\r\n\r\n Math3DQuaternion.title = \"Quaternion\";\r\n Math3DQuaternion.desc = \"quaternion\";\r\n\r\n Math3DQuaternion.prototype.onExecute = function() {\r\n this._value[0] = this.getInputOrProperty(\"x\");\r\n this._value[1] = this.getInputOrProperty(\"y\");\r\n this._value[2] = this.getInputOrProperty(\"z\");\r\n this._value[3] = this.getInputOrProperty(\"w\");\r\n if (this.properties.normalize) {\r\n quat.normalize(this._value, this._value);\r\n }\r\n this.setOutputData(0, this._value);\r\n };\r\n\r\n Math3DQuaternion.prototype.onGetInputs = function() {\r\n return [\r\n [\"x\", \"number\"],\r\n [\"y\", \"number\"],\r\n [\"z\", \"number\"],\r\n [\"w\", \"number\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/quaternion\", Math3DQuaternion);\r\n\r\n function Math3DRotation() {\r\n this.addInputs([[\"degrees\", \"number\"], [\"axis\", \"vec3\"]]);\r\n this.addOutput(\"quat\", \"quat\");\r\n this.properties = { angle: 90.0, axis: vec3.fromValues(0, 1, 0) };\r\n\r\n this._value = quat.create();\r\n }\r\n\r\n Math3DRotation.title = \"Rotation\";\r\n Math3DRotation.desc = \"quaternion rotation\";\r\n\r\n Math3DRotation.prototype.onExecute = function() {\r\n var angle = this.getInputData(0);\r\n if (angle == null) {\r\n angle = this.properties.angle;\r\n }\r\n var axis = this.getInputData(1);\r\n if (axis == null) {\r\n axis = this.properties.axis;\r\n }\r\n\r\n var R = quat.setAxisAngle(this._value, axis, angle * 0.0174532925);\r\n this.setOutputData(0, R);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/rotation\", Math3DRotation);\r\n\r\n\r\n function MathEulerToQuat() {\r\n this.addInput(\"euler\", \"vec3\");\r\n this.addOutput(\"quat\", \"quat\");\r\n this.properties = { euler:[0,0,0], use_yaw_pitch_roll: false };\r\n\t\t\tthis._degs = vec3.create();\r\n this._value = quat.create();\r\n }\r\n\r\n MathEulerToQuat.title = \"Euler->Quat\";\r\n MathEulerToQuat.desc = \"Converts euler angles (in degrees) to quaternion\";\r\n\r\n MathEulerToQuat.prototype.onExecute = function() {\r\n var euler = this.getInputData(0);\r\n if (euler == null) {\r\n euler = this.properties.euler;\r\n }\r\n\t\t\tvec3.scale( this._degs, euler, DEG2RAD );\r\n\t\t\tif(this.properties.use_yaw_pitch_roll)\r\n\t\t\t\tthis._degs = [this._degs[2],this._degs[0],this._degs[1]];\r\n var R = quat.fromEuler(this._value, this._degs);\r\n this.setOutputData(0, R);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/euler_to_quat\", MathEulerToQuat);\r\n\r\n function MathQuatToEuler() {\r\n this.addInput([\"quat\", \"quat\"]);\r\n this.addOutput(\"euler\", \"vec3\");\r\n\t\t\tthis._value = vec3.create();\r\n }\r\n\r\n MathQuatToEuler.title = \"Euler->Quat\";\r\n MathQuatToEuler.desc = \"Converts rotX,rotY,rotZ in degrees to quat\";\r\n\r\n MathQuatToEuler.prototype.onExecute = function() {\r\n var q = this.getInputData(0);\r\n\t\t\tif(!q)\r\n\t\t\t\treturn;\r\n var R = quat.toEuler(this._value, q);\r\n\t\t\tvec3.scale( this._value, this._value, DEG2RAD );\r\n this.setOutputData(0, this._value);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/quat_to_euler\", MathQuatToEuler);\r\n\r\n\r\n //Math3D rotate vec3\r\n function Math3DRotateVec3() {\r\n this.addInputs([[\"vec3\", \"vec3\"], [\"quat\", \"quat\"]]);\r\n this.addOutput(\"result\", \"vec3\");\r\n this.properties = { vec: [0, 0, 1] };\r\n }\r\n\r\n Math3DRotateVec3.title = \"Rot. Vec3\";\r\n Math3DRotateVec3.desc = \"rotate a point\";\r\n\r\n Math3DRotateVec3.prototype.onExecute = function() {\r\n var vec = this.getInputData(0);\r\n if (vec == null) {\r\n vec = this.properties.vec;\r\n }\r\n var quat = this.getInputData(1);\r\n if (quat == null) {\r\n this.setOutputData(vec);\r\n } else {\r\n this.setOutputData(\r\n 0,\r\n vec3.transformQuat(vec3.create(), vec, quat)\r\n );\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/rotate_vec3\", Math3DRotateVec3);\r\n\r\n function Math3DMultQuat() {\r\n this.addInputs([[\"A\", \"quat\"], [\"B\", \"quat\"]]);\r\n this.addOutput(\"A*B\", \"quat\");\r\n\r\n this._value = quat.create();\r\n }\r\n\r\n Math3DMultQuat.title = \"Mult. Quat\";\r\n Math3DMultQuat.desc = \"rotate quaternion\";\r\n\r\n Math3DMultQuat.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n if (A == null) {\r\n return;\r\n }\r\n var B = this.getInputData(1);\r\n if (B == null) {\r\n return;\r\n }\r\n\r\n var R = quat.multiply(this._value, A, B);\r\n this.setOutputData(0, R);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/mult-quat\", Math3DMultQuat);\r\n\r\n function Math3DQuatSlerp() {\r\n this.addInputs([\r\n [\"A\", \"quat\"],\r\n [\"B\", \"quat\"],\r\n [\"factor\", \"number\"]\r\n ]);\r\n this.addOutput(\"slerp\", \"quat\");\r\n this.addProperty(\"factor\", 0.5);\r\n\r\n this._value = quat.create();\r\n }\r\n\r\n Math3DQuatSlerp.title = \"Quat Slerp\";\r\n Math3DQuatSlerp.desc = \"quaternion spherical interpolation\";\r\n\r\n Math3DQuatSlerp.prototype.onExecute = function() {\r\n var A = this.getInputData(0);\r\n if (A == null) {\r\n return;\r\n }\r\n var B = this.getInputData(1);\r\n if (B == null) {\r\n return;\r\n }\r\n var factor = this.properties.factor;\r\n if (this.getInputData(2) != null) {\r\n factor = this.getInputData(2);\r\n }\r\n\r\n var R = quat.slerp(this._value, A, B, factor);\r\n this.setOutputData(0, R);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/quat-slerp\", Math3DQuatSlerp);\r\n\r\n\r\n //Math3D rotate vec3\r\n function Math3DRemapRange() {\r\n this.addInput(\"vec3\", \"vec3\");\r\n this.addOutput(\"remap\", \"vec3\");\r\n\t\t\tthis.addOutput(\"clamped\", \"vec3\");\r\n this.properties = { clamp: true, range_min: [-1, -1, 0], range_max: [1, 1, 0], target_min: [-1,-1,0], target_max:[1,1,0] };\r\n\t\t\tthis._value = vec3.create();\r\n\t\t\tthis._clamped = vec3.create();\r\n }\r\n\r\n Math3DRemapRange.title = \"Remap Range\";\r\n Math3DRemapRange.desc = \"remap a 3D range\";\r\n\r\n Math3DRemapRange.prototype.onExecute = function() {\r\n var vec = this.getInputData(0);\r\n\t\t\tif(vec)\r\n\t\t\t\tthis._value.set(vec);\r\n\t\t\tvar range_min = this.properties.range_min;\r\n\t\t\tvar range_max = this.properties.range_max;\r\n\t\t\tvar target_min = this.properties.target_min;\r\n\t\t\tvar target_max = this.properties.target_max;\r\n\r\n\t\t\t//swap to avoid errors\r\n\t\t\t/*\r\n\t\t\tif(range_min > range_max)\r\n\t\t\t{\r\n\t\t\t\trange_min = range_max;\r\n\t\t\t\trange_max = this.properties.range_min;\r\n\t\t\t}\r\n\r\n\t\t\tif(target_min > target_max)\r\n\t\t\t{\r\n\t\t\t\ttarget_min = target_max;\r\n\t\t\t\ttarget_max = this.properties.target_min;\r\n\t\t\t}\r\n\t\t\t*/\r\n\r\n\t\t\tfor(var i = 0; i < 3; ++i)\r\n\t\t\t{\r\n\t\t\t\tvar r = range_max[i] - range_min[i];\r\n\t\t\t\tthis._clamped[i] = Math.clamp( this._value[i], range_min[i], range_max[i] );\r\n\t\t\t\tif(r == 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis._value[i] = (target_min[i] + target_max[i]) * 0.5;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar n = (this._value[i] - range_min[i]) / r;\r\n\t\t\t\tif(this.properties.clamp)\r\n\t\t\t\t\tn = Math.clamp(n,0,1);\r\n\t\t\t\tvar t = target_max[i] - target_min[i];\r\n\t\t\t\tthis._value[i] = target_min[i] + n * t;\r\n\t\t\t}\r\n\r\n\t\t\tthis.setOutputData(0,this._value);\r\n\t\t\tthis.setOutputData(1,this._clamped);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"math3d/remap_range\", Math3DRemapRange);\r\n\r\n\r\n\r\n } //glMatrix\r\n\telse\r\n\t\tconsole.warn(\"No glmatrix found, some Math3D nodes may not work\");\r\n\r\n})(this);\r\n\n//basic nodes\r\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n function toString(a) {\r\n\t\tif(a && a.constructor === Object)\r\n\t\t{\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\treturn JSON.stringify(a);\r\n\t\t\t}\r\n\t\t\tcatch (err)\r\n\t\t\t{\r\n\t\t\t\treturn String(a);\r\n\t\t\t}\r\n\t\t}\r\n return String(a);\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\"string/toString\", toString, [\"\"], \"String\");\r\n\r\n function compare(a, b) {\r\n return a == b;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/compare\",\r\n compare,\r\n [\"string\", \"string\"],\r\n \"boolean\"\r\n );\r\n\r\n function concatenate(a, b) {\r\n if (a === undefined) {\r\n return b;\r\n }\r\n if (b === undefined) {\r\n return a;\r\n }\r\n return a + b;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/concatenate\",\r\n concatenate,\r\n [\"string\", \"string\"],\r\n \"string\"\r\n );\r\n\r\n function contains(a, b) {\r\n if (a === undefined || b === undefined) {\r\n return false;\r\n }\r\n return a.indexOf(b) != -1;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/contains\",\r\n contains,\r\n [\"string\", \"string\"],\r\n \"boolean\"\r\n );\r\n\r\n function toUpperCase(a) {\r\n if (a != null && a.constructor === String) {\r\n return a.toUpperCase();\r\n }\r\n return a;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/toUpperCase\",\r\n toUpperCase,\r\n [\"string\"],\r\n \"string\"\r\n );\r\n\r\n function split(str, separator) {\r\n\t\tif(separator == null)\r\n\t\t\tseparator = this.properties.separator;\r\n if (str == null )\r\n\t return [];\r\n\t\tif( str.constructor === String )\r\n\t\t\treturn str.split(separator || \" \");\r\n\t\telse if( str.constructor === Array )\r\n\t\t{\r\n\t\t\tvar r = [];\r\n\t\t\tfor(var i = 0; i < str.length; ++i)\r\n\t\t\t\tr[i] = str[i].split(separator || \" \");\r\n\t\t\treturn r;\r\n\t\t}\r\n return null;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/split\",\r\n split,\r\n [\"string,array\", \"string\"],\r\n \"array\",\r\n\t\t{ separator: \",\" }\r\n );\r\n\r\n function toFixed(a) {\r\n if (a != null && a.constructor === Number) {\r\n return a.toFixed(this.properties.precision);\r\n }\r\n return a;\r\n }\r\n\r\n LiteGraph.wrapFunctionAsNode(\r\n \"string/toFixed\",\r\n toFixed,\r\n [\"number\"],\r\n \"string\",\r\n { precision: 0 }\r\n );\r\n\r\n\r\n function StringToTable() {\r\n this.addInput(\"\", \"string\");\r\n this.addOutput(\"table\", \"table\");\r\n this.addOutput(\"rows\", \"number\");\r\n this.addProperty(\"value\", \"\");\r\n this.addProperty(\"separator\", \",\");\r\n\t\tthis._table = null;\r\n }\r\n\r\n StringToTable.title = \"toTable\";\r\n StringToTable.desc = \"Splits a string to table\";\r\n\r\n StringToTable.prototype.onExecute = function() {\r\n var input = this.getInputData(0);\r\n\t\tif(!input)\r\n\t\t\treturn;\r\n\t\tvar separator = this.properties.separator || \",\";\r\n\t\tif(input != this._str || separator != this._last_separator )\r\n\t\t{\r\n\t\t\tthis._last_separator = separator;\r\n\t\t\tthis._str = input;\r\n\t\t\tthis._table = input.split(\"\\n\").map(function(a){ return a.trim().split(separator)});\r\n\t\t}\r\n this.setOutputData(0, this._table );\r\n this.setOutputData(1, this._table ? this._table.length : 0 );\r\n };\r\n\r\n LiteGraph.registerNodeType(\"string/toTable\", StringToTable);\r\n\r\n})(this);\r\n\n(function(global) {\n var LiteGraph = global.LiteGraph;\n\n function Selector() {\n this.addInput(\"sel\", \"number\");\n this.addInput(\"A\");\n this.addInput(\"B\");\n this.addInput(\"C\");\n this.addInput(\"D\");\n this.addOutput(\"out\");\n\n this.selected = 0;\n }\n\n Selector.title = \"Selector\";\n Selector.desc = \"selects an output\";\n\n Selector.prototype.onDrawBackground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n ctx.fillStyle = \"#AFB\";\n var y = (this.selected + 1) * LiteGraph.NODE_SLOT_HEIGHT + 6;\n ctx.beginPath();\n ctx.moveTo(50, y);\n ctx.lineTo(50, y + LiteGraph.NODE_SLOT_HEIGHT);\n ctx.lineTo(34, y + LiteGraph.NODE_SLOT_HEIGHT * 0.5);\n ctx.fill();\n };\n\n Selector.prototype.onExecute = function() {\n var sel = this.getInputData(0);\n if (sel == null || sel.constructor !== Number)\n sel = 0;\n this.selected = sel = Math.round(sel) % (this.inputs.length - 1);\n var v = this.getInputData(sel + 1);\n if (v !== undefined) {\n this.setOutputData(0, v);\n }\n };\n\n Selector.prototype.onGetInputs = function() {\n return [[\"E\", 0], [\"F\", 0], [\"G\", 0], [\"H\", 0]];\n };\n\n LiteGraph.registerNodeType(\"logic/selector\", Selector);\n\n function Sequence() {\n this.properties = {\n sequence: \"A,B,C\"\n };\n this.addInput(\"index\", \"number\");\n this.addInput(\"seq\");\n this.addOutput(\"out\");\n\n this.index = 0;\n this.values = this.properties.sequence.split(\",\");\n }\n\n Sequence.title = \"Sequence\";\n Sequence.desc = \"select one element from a sequence from a string\";\n\n Sequence.prototype.onPropertyChanged = function(name, value) {\n if (name == \"sequence\") {\n this.values = value.split(\",\");\n }\n };\n\n Sequence.prototype.onExecute = function() {\n var seq = this.getInputData(1);\n if (seq && seq != this.current_sequence) {\n this.values = seq.split(\",\");\n this.current_sequence = seq;\n }\n var index = this.getInputData(0);\n if (index == null) {\n index = 0;\n }\n this.index = index = Math.round(index) % this.values.length;\n\n this.setOutputData(0, this.values[index]);\n };\n\n LiteGraph.registerNodeType(\"logic/sequence\", Sequence);\n})(this);\n\n(function(global) {\n var LiteGraph = global.LiteGraph;\n\n function GraphicsPlot() {\n this.addInput(\"A\", \"Number\");\n this.addInput(\"B\", \"Number\");\n this.addInput(\"C\", \"Number\");\n this.addInput(\"D\", \"Number\");\n\n this.values = [[], [], [], []];\n this.properties = { scale: 2 };\n }\n\n GraphicsPlot.title = \"Plot\";\n GraphicsPlot.desc = \"Plots data over time\";\n GraphicsPlot.colors = [\"#FFF\", \"#F99\", \"#9F9\", \"#99F\"];\n\n GraphicsPlot.prototype.onExecute = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n var size = this.size;\n\n for (var i = 0; i < 4; ++i) {\n var v = this.getInputData(i);\n if (v == null) {\n continue;\n }\n var values = this.values[i];\n values.push(v);\n if (values.length > size[0]) {\n values.shift();\n }\n }\n };\n\n GraphicsPlot.prototype.onDrawBackground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n\n var size = this.size;\n\n var scale = (0.5 * size[1]) / this.properties.scale;\n var colors = GraphicsPlot.colors;\n var offset = size[1] * 0.5;\n\n ctx.fillStyle = \"#000\";\n ctx.fillRect(0, 0, size[0], size[1]);\n ctx.strokeStyle = \"#555\";\n ctx.beginPath();\n ctx.moveTo(0, offset);\n ctx.lineTo(size[0], offset);\n ctx.stroke();\n\n if (this.inputs) {\n for (var i = 0; i < 4; ++i) {\n var values = this.values[i];\n if (!this.inputs[i] || !this.inputs[i].link) {\n continue;\n }\n ctx.strokeStyle = colors[i];\n ctx.beginPath();\n var v = values[0] * scale * -1 + offset;\n ctx.moveTo(0, Math.clamp(v, 0, size[1]));\n for (var j = 1; j < values.length && j < size[0]; ++j) {\n var v = values[j] * scale * -1 + offset;\n ctx.lineTo(j, Math.clamp(v, 0, size[1]));\n }\n ctx.stroke();\n }\n }\n };\n\n LiteGraph.registerNodeType(\"graphics/plot\", GraphicsPlot);\n\n function GraphicsImage() {\n this.addOutput(\"frame\", \"image\");\n this.properties = { url: \"\" };\n }\n\n GraphicsImage.title = \"Image\";\n GraphicsImage.desc = \"Image loader\";\n GraphicsImage.widgets = [{ name: \"load\", text: \"Load\", type: \"button\" }];\n\n GraphicsImage.supported_extensions = [\"jpg\", \"jpeg\", \"png\", \"gif\"];\n\n GraphicsImage.prototype.onAdded = function() {\n if (this.properties[\"url\"] != \"\" && this.img == null) {\n this.loadImage(this.properties[\"url\"]);\n }\n };\n\n GraphicsImage.prototype.onDrawBackground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n if (this.img && this.size[0] > 5 && this.size[1] > 5 && this.img.width) {\n ctx.drawImage(this.img, 0, 0, this.size[0], this.size[1]);\n }\n };\n\n GraphicsImage.prototype.onExecute = function() {\n if (!this.img) {\n this.boxcolor = \"#000\";\n }\n if (this.img && this.img.width) {\n this.setOutputData(0, this.img);\n } else {\n this.setOutputData(0, null);\n }\n if (this.img && this.img.dirty) {\n this.img.dirty = false;\n }\n };\n\n GraphicsImage.prototype.onPropertyChanged = function(name, value) {\n this.properties[name] = value;\n if (name == \"url\" && value != \"\") {\n this.loadImage(value);\n }\n\n return true;\n };\n\n GraphicsImage.prototype.loadImage = function(url, callback) {\n if (url == \"\") {\n this.img = null;\n return;\n }\n\n this.img = document.createElement(\"img\");\n\n if (url.substr(0, 4) == \"http\" && LiteGraph.proxy) {\n url = LiteGraph.proxy + url.substr(url.indexOf(\":\") + 3);\n }\n\n this.img.src = url;\n this.boxcolor = \"#F95\";\n var that = this;\n this.img.onload = function() {\n if (callback) {\n callback(this);\n }\n console.log( \"Image loaded, size: \" + that.img.width + \"x\" + that.img.height );\n this.dirty = true;\n that.boxcolor = \"#9F9\";\n that.setDirtyCanvas(true);\n };\n this.img.onerror = function() {\n\t\t\tconsole.log(\"error loading the image:\" + url);\n\t\t}\n };\n\n GraphicsImage.prototype.onWidget = function(e, widget) {\n if (widget.name == \"load\") {\n this.loadImage(this.properties[\"url\"]);\n }\n };\n\n GraphicsImage.prototype.onDropFile = function(file) {\n var that = this;\n if (this._url) {\n URL.revokeObjectURL(this._url);\n }\n this._url = URL.createObjectURL(file);\n this.properties.url = this._url;\n this.loadImage(this._url, function(img) {\n that.size[1] = (img.height / img.width) * that.size[0];\n });\n };\n\n LiteGraph.registerNodeType(\"graphics/image\", GraphicsImage);\n\n function ColorPalette() {\n this.addInput(\"f\", \"number\");\n this.addOutput(\"Color\", \"color\");\n this.properties = {\n colorA: \"#444444\",\n colorB: \"#44AAFF\",\n colorC: \"#44FFAA\",\n colorD: \"#FFFFFF\"\n };\n }\n\n ColorPalette.title = \"Palette\";\n ColorPalette.desc = \"Generates a color\";\n\n ColorPalette.prototype.onExecute = function() {\n var c = [];\n\n if (this.properties.colorA != null) {\n c.push(hex2num(this.properties.colorA));\n }\n if (this.properties.colorB != null) {\n c.push(hex2num(this.properties.colorB));\n }\n if (this.properties.colorC != null) {\n c.push(hex2num(this.properties.colorC));\n }\n if (this.properties.colorD != null) {\n c.push(hex2num(this.properties.colorD));\n }\n\n var f = this.getInputData(0);\n if (f == null) {\n f = 0.5;\n }\n if (f > 1.0) {\n f = 1.0;\n } else if (f < 0.0) {\n f = 0.0;\n }\n\n if (c.length == 0) {\n return;\n }\n\n var result = [0, 0, 0];\n if (f == 0) {\n result = c[0];\n } else if (f == 1) {\n result = c[c.length - 1];\n } else {\n var pos = (c.length - 1) * f;\n var c1 = c[Math.floor(pos)];\n var c2 = c[Math.floor(pos) + 1];\n var t = pos - Math.floor(pos);\n result[0] = c1[0] * (1 - t) + c2[0] * t;\n result[1] = c1[1] * (1 - t) + c2[1] * t;\n result[2] = c1[2] * (1 - t) + c2[2] * t;\n }\n\n /*\n\tc[0] = 1.0 - Math.abs( Math.sin( 0.1 * reModular.getTime() * Math.PI) );\n\tc[1] = Math.abs( Math.sin( 0.07 * reModular.getTime() * Math.PI) );\n\tc[2] = Math.abs( Math.sin( 0.01 * reModular.getTime() * Math.PI) );\n\t*/\n\n for (var i=0; i < result.length; i++) {\n result[i] /= 255;\n }\n\n this.boxcolor = colorToString(result);\n this.setOutputData(0, result);\n };\n\n LiteGraph.registerNodeType(\"color/palette\", ColorPalette);\n\n function ImageFrame() {\n this.addInput(\"\", \"image,canvas\");\n this.size = [200, 200];\n }\n\n ImageFrame.title = \"Frame\";\n ImageFrame.desc = \"Frame viewerew\";\n ImageFrame.widgets = [\n { name: \"resize\", text: \"Resize box\", type: \"button\" },\n { name: \"view\", text: \"View Image\", type: \"button\" }\n ];\n\n ImageFrame.prototype.onDrawBackground = function(ctx) {\n if (this.frame && !this.flags.collapsed) {\n ctx.drawImage(this.frame, 0, 0, this.size[0], this.size[1]);\n }\n };\n\n ImageFrame.prototype.onExecute = function() {\n this.frame = this.getInputData(0);\n this.setDirtyCanvas(true);\n };\n\n ImageFrame.prototype.onWidget = function(e, widget) {\n if (widget.name == \"resize\" && this.frame) {\n var width = this.frame.width;\n var height = this.frame.height;\n\n if (!width && this.frame.videoWidth != null) {\n width = this.frame.videoWidth;\n height = this.frame.videoHeight;\n }\n\n if (width && height) {\n this.size = [width, height];\n }\n this.setDirtyCanvas(true, true);\n } else if (widget.name == \"view\") {\n this.show();\n }\n };\n\n ImageFrame.prototype.show = function() {\n //var str = this.canvas.toDataURL(\"image/png\");\n if (showElement && this.frame) {\n showElement(this.frame);\n }\n };\n\n LiteGraph.registerNodeType(\"graphics/frame\", ImageFrame);\n\n function ImageFade() {\n this.addInputs([\n [\"img1\", \"image\"],\n [\"img2\", \"image\"],\n [\"fade\", \"number\"]\n ]);\n this.addOutput(\"\", \"image\");\n this.properties = { fade: 0.5, width: 512, height: 512 };\n }\n\n ImageFade.title = \"Image fade\";\n ImageFade.desc = \"Fades between images\";\n ImageFade.widgets = [\n { name: \"resizeA\", text: \"Resize to A\", type: \"button\" },\n { name: \"resizeB\", text: \"Resize to B\", type: \"button\" }\n ];\n\n ImageFade.prototype.onAdded = function() {\n this.createCanvas();\n var ctx = this.canvas.getContext(\"2d\");\n ctx.fillStyle = \"#000\";\n ctx.fillRect(0, 0, this.properties[\"width\"], this.properties[\"height\"]);\n };\n\n ImageFade.prototype.createCanvas = function() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.properties[\"width\"];\n this.canvas.height = this.properties[\"height\"];\n };\n\n ImageFade.prototype.onExecute = function() {\n var ctx = this.canvas.getContext(\"2d\");\n this.canvas.width = this.canvas.width;\n\n var A = this.getInputData(0);\n if (A != null) {\n ctx.drawImage(A, 0, 0, this.canvas.width, this.canvas.height);\n }\n\n var fade = this.getInputData(2);\n if (fade == null) {\n fade = this.properties[\"fade\"];\n } else {\n this.properties[\"fade\"] = fade;\n }\n\n ctx.globalAlpha = fade;\n var B = this.getInputData(1);\n if (B != null) {\n ctx.drawImage(B, 0, 0, this.canvas.width, this.canvas.height);\n }\n ctx.globalAlpha = 1.0;\n\n this.setOutputData(0, this.canvas);\n this.setDirtyCanvas(true);\n };\n\n LiteGraph.registerNodeType(\"graphics/imagefade\", ImageFade);\n\n function ImageCrop() {\n this.addInput(\"\", \"image\");\n this.addOutput(\"\", \"image\");\n this.properties = { width: 256, height: 256, x: 0, y: 0, scale: 1.0 };\n this.size = [50, 20];\n }\n\n ImageCrop.title = \"Crop\";\n ImageCrop.desc = \"Crop Image\";\n\n ImageCrop.prototype.onAdded = function() {\n this.createCanvas();\n };\n\n ImageCrop.prototype.createCanvas = function() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.properties[\"width\"];\n this.canvas.height = this.properties[\"height\"];\n };\n\n ImageCrop.prototype.onExecute = function() {\n var input = this.getInputData(0);\n if (!input) {\n return;\n }\n\n if (input.width) {\n var ctx = this.canvas.getContext(\"2d\");\n\n ctx.drawImage(\n input,\n -this.properties[\"x\"],\n -this.properties[\"y\"],\n input.width * this.properties[\"scale\"],\n input.height * this.properties[\"scale\"]\n );\n this.setOutputData(0, this.canvas);\n } else {\n this.setOutputData(0, null);\n }\n };\n\n ImageCrop.prototype.onDrawBackground = function(ctx) {\n if (this.flags.collapsed) {\n return;\n }\n if (this.canvas) {\n ctx.drawImage(\n this.canvas,\n 0,\n 0,\n this.canvas.width,\n this.canvas.height,\n 0,\n 0,\n this.size[0],\n this.size[1]\n );\n }\n };\n\n ImageCrop.prototype.onPropertyChanged = function(name, value) {\n this.properties[name] = value;\n\n if (name == \"scale\") {\n this.properties[name] = parseFloat(value);\n if (this.properties[name] == 0) {\n console.error(\"Error in scale\");\n this.properties[name] = 1.0;\n }\n } else {\n this.properties[name] = parseInt(value);\n }\n\n this.createCanvas();\n\n return true;\n };\n\n LiteGraph.registerNodeType(\"graphics/cropImage\", ImageCrop);\n\n //CANVAS stuff\n\n function CanvasNode() {\n this.addInput(\"clear\", LiteGraph.ACTION);\n this.addOutput(\"\", \"canvas\");\n this.properties = { width: 512, height: 512, autoclear: true };\n\n this.canvas = document.createElement(\"canvas\");\n this.ctx = this.canvas.getContext(\"2d\");\n }\n\n CanvasNode.title = \"Canvas\";\n CanvasNode.desc = \"Canvas to render stuff\";\n\n CanvasNode.prototype.onExecute = function() {\n var canvas = this.canvas;\n var w = this.properties.width | 0;\n var h = this.properties.height | 0;\n if (canvas.width != w) {\n canvas.width = w;\n }\n if (canvas.height != h) {\n canvas.height = h;\n }\n\n if (this.properties.autoclear) {\n this.ctx.clearRect(0, 0, canvas.width, canvas.height);\n }\n this.setOutputData(0, canvas);\n };\n\n CanvasNode.prototype.onAction = function(action, param) {\n if (action == \"clear\") {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n };\n\n LiteGraph.registerNodeType(\"graphics/canvas\", CanvasNode);\n\n function DrawImageNode() {\n this.addInput(\"canvas\", \"canvas\");\n this.addInput(\"img\", \"image,canvas\");\n this.addInput(\"x\", \"number\");\n this.addInput(\"y\", \"number\");\n this.properties = { x: 0, y: 0, opacity: 1 };\n }\n\n DrawImageNode.title = \"DrawImage\";\n DrawImageNode.desc = \"Draws image into a canvas\";\n\n DrawImageNode.prototype.onExecute = function() {\n var canvas = this.getInputData(0);\n if (!canvas) {\n return;\n }\n\n var img = this.getInputOrProperty(\"img\");\n if (!img) {\n return;\n }\n\n var x = this.getInputOrProperty(\"x\");\n var y = this.getInputOrProperty(\"y\");\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, x, y);\n };\n\n LiteGraph.registerNodeType(\"graphics/drawImage\", DrawImageNode);\n\n function DrawRectangleNode() {\n this.addInput(\"canvas\", \"canvas\");\n this.addInput(\"x\", \"number\");\n this.addInput(\"y\", \"number\");\n this.addInput(\"w\", \"number\");\n this.addInput(\"h\", \"number\");\n this.properties = {\n x: 0,\n y: 0,\n w: 10,\n h: 10,\n color: \"white\",\n opacity: 1\n };\n }\n\n DrawRectangleNode.title = \"DrawRectangle\";\n DrawRectangleNode.desc = \"Draws rectangle in canvas\";\n\n DrawRectangleNode.prototype.onExecute = function() {\n var canvas = this.getInputData(0);\n if (!canvas) {\n return;\n }\n\n var x = this.getInputOrProperty(\"x\");\n var y = this.getInputOrProperty(\"y\");\n var w = this.getInputOrProperty(\"w\");\n var h = this.getInputOrProperty(\"h\");\n var ctx = canvas.getContext(\"2d\");\n ctx.fillRect(x, y, w, h);\n };\n\n LiteGraph.registerNodeType(\"graphics/drawRectangle\", DrawRectangleNode);\n\n function ImageVideo() {\n this.addInput(\"t\", \"number\");\n this.addOutputs([[\"frame\", \"image\"], [\"t\", \"number\"], [\"d\", \"number\"]]);\n this.properties = { url: \"\", use_proxy: true };\n }\n\n ImageVideo.title = \"Video\";\n ImageVideo.desc = \"Video playback\";\n ImageVideo.widgets = [\n { name: \"play\", text: \"PLAY\", type: \"minibutton\" },\n { name: \"stop\", text: \"STOP\", type: \"minibutton\" },\n { name: \"demo\", text: \"Demo video\", type: \"button\" },\n { name: \"mute\", text: \"Mute video\", type: \"button\" }\n ];\n\n ImageVideo.prototype.onExecute = function() {\n if (!this.properties.url) {\n return;\n }\n\n if (this.properties.url != this._video_url) {\n this.loadVideo(this.properties.url);\n }\n\n if (!this._video || this._video.width == 0) {\n return;\n }\n\n var t = this.getInputData(0);\n if (t && t >= 0 && t <= 1.0) {\n this._video.currentTime = t * this._video.duration;\n this._video.pause();\n }\n\n this._video.dirty = true;\n this.setOutputData(0, this._video);\n this.setOutputData(1, this._video.currentTime);\n this.setOutputData(2, this._video.duration);\n this.setDirtyCanvas(true);\n };\n\n ImageVideo.prototype.onStart = function() {\n this.play();\n };\n\n ImageVideo.prototype.onStop = function() {\n this.stop();\n };\n\n ImageVideo.prototype.loadVideo = function(url) {\n this._video_url = url;\n\n\t\tvar pos = url.substr(0,10).indexOf(\":\");\n\t\tvar protocol = \"\";\n\t\tif(pos != -1)\n\t\t\tprotocol = url.substr(0,pos);\n\n\t\tvar host = \"\";\n\t\tif(protocol)\n\t\t{\n\t\t\thost = url.substr(0,url.indexOf(\"/\",protocol.length + 3));\n\t\t\thost = host.substr(protocol.length+3);\n\t\t}\n\n if (\n this.properties.use_proxy &&\n protocol &&\n LiteGraph.proxy &&\n\t\t\thost != location.host\n ) {\n url = LiteGraph.proxy + url.substr(url.indexOf(\":\") + 3);\n }\n\n this._video = document.createElement(\"video\");\n this._video.src = url;\n this._video.type = \"type=video/mp4\";\n\n this._video.muted = true;\n this._video.autoplay = true;\n\n var that = this;\n this._video.addEventListener(\"loadedmetadata\", function(e) {\n //onload\n console.log(\"Duration: \" + this.duration + \" seconds\");\n console.log(\"Size: \" + this.videoWidth + \",\" + this.videoHeight);\n that.setDirtyCanvas(true);\n this.width = this.videoWidth;\n this.height = this.videoHeight;\n });\n this._video.addEventListener(\"progress\", function(e) {\n //onload\n console.log(\"video loading...\");\n });\n this._video.addEventListener(\"error\", function(e) {\n console.error(\"Error loading video: \" + this.src);\n if (this.error) {\n switch (this.error.code) {\n case this.error.MEDIA_ERR_ABORTED:\n console.error(\"You stopped the video.\");\n break;\n case this.error.MEDIA_ERR_NETWORK:\n console.error(\"Network error - please try again later.\");\n break;\n case this.error.MEDIA_ERR_DECODE:\n console.error(\"Video is broken..\");\n break;\n case this.error.MEDIA_ERR_SRC_NOT_SUPPORTED:\n console.error(\"Sorry, your browser can't play this video.\");\n break;\n }\n }\n });\n\n this._video.addEventListener(\"ended\", function(e) {\n console.log(\"Video Ended.\");\n this.play(); //loop\n });\n\n //document.body.appendChild(this.video);\n };\n\n ImageVideo.prototype.onPropertyChanged = function(name, value) {\n this.properties[name] = value;\n if (name == \"url\" && value != \"\") {\n this.loadVideo(value);\n }\n\n return true;\n };\n\n ImageVideo.prototype.play = function() {\n if (this._video && this._video.videoWidth ) { //is loaded\n this._video.play();\n }\n };\n\n ImageVideo.prototype.playPause = function() {\n if (!this._video) {\n return;\n }\n if (this._video.paused) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n ImageVideo.prototype.stop = function() {\n if (!this._video) {\n return;\n }\n this._video.pause();\n this._video.currentTime = 0;\n };\n\n ImageVideo.prototype.pause = function() {\n if (!this._video) {\n return;\n }\n console.log(\"Video paused\");\n this._video.pause();\n };\n\n ImageVideo.prototype.onWidget = function(e, widget) {\n /*\n\tif(widget.name == \"demo\")\n\t{\n\t\tthis.loadVideo();\n\t}\n\telse if(widget.name == \"play\")\n\t{\n\t\tif(this._video)\n\t\t\tthis.playPause();\n\t}\n\tif(widget.name == \"stop\")\n\t{\n\t\tthis.stop();\n\t}\n\telse if(widget.name == \"mute\")\n\t{\n\t\tif(this._video)\n\t\t\tthis._video.muted = !this._video.muted;\n\t}\n\t*/\n };\n\n LiteGraph.registerNodeType(\"graphics/video\", ImageVideo);\n\n // Texture Webcam *****************************************\n function ImageWebcam() {\n this.addOutput(\"Webcam\", \"image\");\n this.properties = { filterFacingMode: false, facingMode: \"user\" };\n this.boxcolor = \"black\";\n this.frame = 0;\n }\n\n ImageWebcam.title = \"Webcam\";\n ImageWebcam.desc = \"Webcam image\";\n ImageWebcam.is_webcam_open = false;\n\n ImageWebcam.prototype.openStream = function() {\n if (!navigator.mediaDevices.getUserMedia) {\n console.log('getUserMedia() is not supported in your browser, use chrome and enable WebRTC from about://flags');\n return;\n }\n\n this._waiting_confirmation = true;\n\n // Not showing vendor prefixes.\n var constraints = {\n audio: false,\n video: !this.properties.filterFacingMode ? true : { facingMode: this.properties.facingMode }\n };\n navigator.mediaDevices\n .getUserMedia(constraints)\n .then(this.streamReady.bind(this))\n .catch(onFailSoHard);\n\n var that = this;\n function onFailSoHard(e) {\n console.log(\"Webcam rejected\", e);\n that._webcam_stream = false;\n ImageWebcam.is_webcam_open = false;\n that.boxcolor = \"red\";\n that.trigger(\"stream_error\");\n }\n };\n\n ImageWebcam.prototype.closeStream = function() {\n if (this._webcam_stream) {\n var tracks = this._webcam_stream.getTracks();\n if (tracks.length) {\n for (var i = 0; i < tracks.length; ++i) {\n tracks[i].stop();\n }\n }\n ImageWebcam.is_webcam_open = false;\n this._webcam_stream = null;\n this._video = null;\n this.boxcolor = \"black\";\n this.trigger(\"stream_closed\");\n }\n };\n\n ImageWebcam.prototype.onPropertyChanged = function(name, value) {\n if (name == \"facingMode\") {\n this.properties.facingMode = value;\n this.closeStream();\n this.openStream();\n }\n };\n\n ImageWebcam.prototype.onRemoved = function() {\n this.closeStream();\n };\n\n ImageWebcam.prototype.streamReady = function(localMediaStream) {\n this._webcam_stream = localMediaStream;\n //this._waiting_confirmation = false;\n this.boxcolor = \"green\";\n\n var video = this._video;\n if (!video) {\n video = document.createElement(\"video\");\n video.autoplay = true;\n video.srcObject = localMediaStream;\n this._video = video;\n //document.body.appendChild( video ); //debug\n //when video info is loaded (size and so)\n video.onloadedmetadata = function(e) {\n // Ready to go. Do some stuff.\n console.log(e);\n ImageWebcam.is_webcam_open = true;\n };\n }\n\n this.trigger(\"stream_ready\", video);\n };\n\n ImageWebcam.prototype.onExecute = function() {\n if (this._webcam_stream == null && !this._waiting_confirmation) {\n this.openStream();\n }\n\n if (!this._video || !this._video.videoWidth) {\n return;\n }\n\n this._video.frame = ++this.frame;\n this._video.width = this._video.videoWidth;\n this._video.height = this._video.videoHeight;\n this.setOutputData(0, this._video);\n for (var i = 1; i < this.outputs.length; ++i) {\n if (!this.outputs[i]) {\n continue;\n }\n switch (this.outputs[i].name) {\n case \"width\":\n this.setOutputData(i, this._video.videoWidth);\n break;\n case \"height\":\n this.setOutputData(i, this._video.videoHeight);\n break;\n }\n }\n };\n\n ImageWebcam.prototype.getExtraMenuOptions = function(graphcanvas) {\n var that = this;\n var txt = !that.properties.show ? \"Show Frame\" : \"Hide Frame\";\n return [\n {\n content: txt,\n callback: function() {\n that.properties.show = !that.properties.show;\n }\n }\n ];\n };\n\n ImageWebcam.prototype.onDrawBackground = function(ctx) {\n if (\n this.flags.collapsed ||\n this.size[1] <= 20 ||\n !this.properties.show\n ) {\n return;\n }\n\n if (!this._video) {\n return;\n }\n\n //render to graph canvas\n ctx.save();\n ctx.drawImage(this._video, 0, 0, this.size[0], this.size[1]);\n ctx.restore();\n };\n\n ImageWebcam.prototype.onGetOutputs = function() {\n return [\n [\"width\", \"number\"],\n [\"height\", \"number\"],\n [\"stream_ready\", LiteGraph.EVENT],\n [\"stream_closed\", LiteGraph.EVENT],\n [\"stream_error\", LiteGraph.EVENT]\n ];\n };\n\n LiteGraph.registerNodeType(\"graphics/webcam\", ImageWebcam);\n})(this);\n\n(function(global) {\n var LiteGraph = global.LiteGraph;\n\tvar LGraphCanvas = global.LGraphCanvas;\n\n //Works with Litegl.js to create WebGL nodes\n global.LGraphTexture = null;\n\n if (typeof GL == \"undefined\")\n\t\treturn;\n\n\tLGraphCanvas.link_type_colors[\"Texture\"] = \"#987\";\n\n\tfunction LGraphTexture() {\n\t\tthis.addOutput(\"tex\", \"Texture\");\n\t\tthis.addOutput(\"name\", \"string\");\n\t\tthis.properties = { name: \"\", filter: true };\n\t\tthis.size = [\n\t\t\tLGraphTexture.image_preview_size,\n\t\t\tLGraphTexture.image_preview_size\n\t\t];\n\t}\n\n\tglobal.LGraphTexture = LGraphTexture;\n\n\tLGraphTexture.title = \"Texture\";\n\tLGraphTexture.desc = \"Texture\";\n\tLGraphTexture.widgets_info = {\n\t\tname: { widget: \"texture\" },\n\t\tfilter: { widget: \"checkbox\" }\n\t};\n\n\t//REPLACE THIS TO INTEGRATE WITH YOUR FRAMEWORK\n\tLGraphTexture.loadTextureCallback = null; //function in charge of loading textures when not present in the container\n\tLGraphTexture.image_preview_size = 256;\n\n\t//flags to choose output texture type\n\tLGraphTexture.UNDEFINED = 0; //not specified\n\tLGraphTexture.PASS_THROUGH = 1; //do not apply FX (like disable but passing the in to the out)\n\tLGraphTexture.COPY = 2; //create new texture with the same properties as the origin texture\n\tLGraphTexture.LOW = 3; //create new texture with low precision (byte)\n\tLGraphTexture.HIGH = 4; //create new texture with high precision (half-float)\n\tLGraphTexture.REUSE = 5; //reuse input texture\n\tLGraphTexture.DEFAULT = 2; //use the default\n\n\tLGraphTexture.MODE_VALUES = {\n\t\t\"undefined\": LGraphTexture.UNDEFINED,\n\t\t\"pass through\": LGraphTexture.PASS_THROUGH,\n\t\tcopy: LGraphTexture.COPY,\n\t\tlow: LGraphTexture.LOW,\n\t\thigh: LGraphTexture.HIGH,\n\t\treuse: LGraphTexture.REUSE,\n\t\tdefault: LGraphTexture.DEFAULT\n\t};\n\n\t//returns the container where all the loaded textures are stored (overwrite if you have a Resources Manager)\n\tLGraphTexture.getTexturesContainer = function() {\n\t\treturn gl.textures;\n\t};\n\n\t//process the loading of a texture (overwrite it if you have a Resources Manager)\n\tLGraphTexture.loadTexture = function(name, options) {\n\t\toptions = options || {};\n\t\tvar url = name;\n\t\tif (url.substr(0, 7) == \"http://\") {\n\t\t\tif (LiteGraph.proxy) {\n\t\t\t\t//proxy external files\n\t\t\t\turl = LiteGraph.proxy + url.substr(7);\n\t\t\t}\n\t\t}\n\n\t\tvar container = LGraphTexture.getTexturesContainer();\n\t\tvar tex = (container[name] = GL.Texture.fromURL(url, options));\n\t\treturn tex;\n\t};\n\n\tLGraphTexture.getTexture = function(name) {\n\t\tvar container = this.getTexturesContainer();\n\n\t\tif (!container) {\n\t\t\tthrow \"Cannot load texture, container of textures not found\";\n\t\t}\n\n\t\tvar tex = container[name];\n\t\tif (!tex && name && name[0] != \":\") {\n\t\t\treturn this.loadTexture(name);\n\t\t}\n\n\t\treturn tex;\n\t};\n\n\t//used to compute the appropiate output texture\n\tLGraphTexture.getTargetTexture = function(origin, target, mode) {\n\t\tif (!origin) {\n\t\t\tthrow \"LGraphTexture.getTargetTexture expects a reference texture\";\n\t\t}\n\n\t\tvar tex_type = null;\n\n\t\tswitch (mode) {\n\t\t\tcase LGraphTexture.LOW:\n\t\t\t\ttex_type = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\tcase LGraphTexture.HIGH:\n\t\t\t\ttex_type = gl.HIGH_PRECISION_FORMAT;\n\t\t\t\tbreak;\n\t\t\tcase LGraphTexture.REUSE:\n\t\t\t\treturn origin;\n\t\t\t\tbreak;\n\t\t\tcase LGraphTexture.COPY:\n\t\t\tdefault:\n\t\t\t\ttex_type = origin ? origin.type : gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (\n\t\t\t!target ||\n\t\t\ttarget.width != origin.width ||\n\t\t\ttarget.height != origin.height ||\n\t\t\ttarget.type != tex_type ||\n\t\t\ttarget.format != origin.format \n\t\t) {\n\t\t\ttarget = new GL.Texture(origin.width, origin.height, {\n\t\t\t\ttype: tex_type,\n\t\t\t\tformat: origin.format,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\treturn target;\n\t};\n\n\tLGraphTexture.getTextureType = function(precision, ref_texture) {\n\t\tvar type = ref_texture ? ref_texture.type : gl.UNSIGNED_BYTE;\n\t\tswitch (precision) {\n\t\t\tcase LGraphTexture.HIGH:\n\t\t\t\ttype = gl.HIGH_PRECISION_FORMAT;\n\t\t\t\tbreak;\n\t\t\tcase LGraphTexture.LOW:\n\t\t\t\ttype = gl.UNSIGNED_BYTE;\n\t\t\t\tbreak;\n\t\t\t//no default\n\t\t}\n\t\treturn type;\n\t};\n\n\tLGraphTexture.getWhiteTexture = function() {\n\t\tif (this._white_texture) {\n\t\t\treturn this._white_texture;\n\t\t}\n\t\tvar texture = (this._white_texture = GL.Texture.fromMemory(\n\t\t\t1,\n\t\t\t1,\n\t\t\t[255, 255, 255, 255],\n\t\t\t{ format: gl.RGBA, wrap: gl.REPEAT, filter: gl.NEAREST }\n\t\t));\n\t\treturn texture;\n\t};\n\n\tLGraphTexture.getNoiseTexture = function() {\n\t\tif (this._noise_texture) {\n\t\t\treturn this._noise_texture;\n\t\t}\n\n\t\tvar noise = new Uint8Array(512 * 512 * 4);\n\t\tfor (var i = 0; i < 512 * 512 * 4; ++i) {\n\t\t\tnoise[i] = Math.random() * 255;\n\t\t}\n\n\t\tvar texture = GL.Texture.fromMemory(512, 512, noise, {\n\t\t\tformat: gl.RGBA,\n\t\t\twrap: gl.REPEAT,\n\t\t\tfilter: gl.NEAREST\n\t\t});\n\t\tthis._noise_texture = texture;\n\t\treturn texture;\n\t};\n\n\tLGraphTexture.prototype.onDropFile = function(data, filename, file) {\n\t\tif (!data) {\n\t\t\tthis._drop_texture = null;\n\t\t\tthis.properties.name = \"\";\n\t\t} else {\n\t\t\tvar texture = null;\n\t\t\tif (typeof data == \"string\") {\n\t\t\t\ttexture = GL.Texture.fromURL(data);\n\t\t\t} else if (filename.toLowerCase().indexOf(\".dds\") != -1) {\n\t\t\t\ttexture = GL.Texture.fromDDSInMemory(data);\n\t\t\t} else {\n\t\t\t\tvar blob = new Blob([file]);\n\t\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t\ttexture = GL.Texture.fromURL(url);\n\t\t\t}\n\n\t\t\tthis._drop_texture = texture;\n\t\t\tthis.properties.name = filename;\n\t\t}\n\t};\n\n\tLGraphTexture.prototype.getExtraMenuOptions = function(graphcanvas) {\n\t\tvar that = this;\n\t\tif (!this._drop_texture) {\n\t\t\treturn;\n\t\t}\n\t\treturn [\n\t\t\t{\n\t\t\t\tcontent: \"Clear\",\n\t\t\t\tcallback: function() {\n\t\t\t\t\tthat._drop_texture = null;\n\t\t\t\t\tthat.properties.name = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t};\n\n\tLGraphTexture.prototype.onExecute = function() {\n\t\tvar tex = null;\n\t\tif (this.isOutputConnected(1)) {\n\t\t\ttex = this.getInputData(0);\n\t\t}\n\n\t\tif (!tex && this._drop_texture) {\n\t\t\ttex = this._drop_texture;\n\t\t}\n\n\t\tif (!tex && this.properties.name) {\n\t\t\ttex = LGraphTexture.getTexture(this.properties.name);\n\t\t}\n\n\t\tif (!tex) {\n\t\t\tthis.setOutputData( 0, null );\n\t\t\tthis.setOutputData( 1, \"\" );\n\t\t\treturn;\n\t\t}\n\n\t\tthis._last_tex = tex;\n\n\t\tif (this.properties.filter === false) {\n\t\t\ttex.setParameter(gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\t\t} else {\n\t\t\ttex.setParameter(gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n\t\t}\n\n\t\tthis.setOutputData( 0, tex );\n\t\tthis.setOutputData( 1, tex.fullpath || tex.filename );\n\n\t\tfor (var i = 2; i < this.outputs.length; i++) {\n\t\t\tvar output = this.outputs[i];\n\t\t\tif (!output) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar v = null;\n\t\t\tif (output.name == \"width\") {\n\t\t\t\tv = tex.width;\n\t\t\t} else if (output.name == \"height\") {\n\t\t\t\tv = tex.height;\n\t\t\t} else if (output.name == \"aspect\") {\n\t\t\t\tv = tex.width / tex.height;\n\t\t\t}\n\t\t\tthis.setOutputData(i, v);\n\t\t}\n\t};\n\n\tLGraphTexture.prototype.onResourceRenamed = function(\n\t\told_name,\n\t\tnew_name\n\t) {\n\t\tif (this.properties.name == old_name) {\n\t\t\tthis.properties.name = new_name;\n\t\t}\n\t};\n\n\tLGraphTexture.prototype.onDrawBackground = function(ctx) {\n\t\tif (this.flags.collapsed || this.size[1] <= 20) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._drop_texture && ctx.webgl) {\n\t\t\tctx.drawImage(\n\t\t\t\tthis._drop_texture,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tthis.size[0],\n\t\t\t\tthis.size[1]\n\t\t\t);\n\t\t\t//this._drop_texture.renderQuad(this.pos[0],this.pos[1],this.size[0],this.size[1]);\n\t\t\treturn;\n\t\t}\n\n\t\t//Different texture? then get it from the GPU\n\t\tif (this._last_preview_tex != this._last_tex) {\n\t\t\tif (ctx.webgl) {\n\t\t\t\tthis._canvas = this._last_tex;\n\t\t\t} else {\n\t\t\t\tvar tex_canvas = LGraphTexture.generateLowResTexturePreview(\n\t\t\t\t\tthis._last_tex\n\t\t\t\t);\n\t\t\t\tif (!tex_canvas) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis._last_preview_tex = this._last_tex;\n\t\t\t\tthis._canvas = cloneCanvas(tex_canvas);\n\t\t\t}\n\t\t}\n\n\t\tif (!this._canvas) {\n\t\t\treturn;\n\t\t}\n\n\t\t//render to graph canvas\n\t\tctx.save();\n\t\tif (!ctx.webgl) {\n\t\t\t//reverse image\n\t\t\tctx.translate(0, this.size[1]);\n\t\t\tctx.scale(1, -1);\n\t\t}\n\t\tctx.drawImage(this._canvas, 0, 0, this.size[0], this.size[1]);\n\t\tctx.restore();\n\t};\n\n\t//very slow, used at your own risk\n\tLGraphTexture.generateLowResTexturePreview = function(tex) {\n\t\tif (!tex) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar size = LGraphTexture.image_preview_size;\n\t\tvar temp_tex = tex;\n\n\t\tif (tex.format == gl.DEPTH_COMPONENT) {\n\t\t\treturn null;\n\t\t} //cannot generate from depth\n\n\t\t//Generate low-level version in the GPU to speed up\n\t\tif (tex.width > size || tex.height > size) {\n\t\t\ttemp_tex = this._preview_temp_tex;\n\t\t\tif (!this._preview_temp_tex) {\n\t\t\t\ttemp_tex = new GL.Texture(size, size, {\n\t\t\t\t\tminFilter: gl.NEAREST\n\t\t\t\t});\n\t\t\t\tthis._preview_temp_tex = temp_tex;\n\t\t\t}\n\n\t\t\t//copy\n\t\t\ttex.copyTo(temp_tex);\n\t\t\ttex = temp_tex;\n\t\t}\n\n\t\t//create intermediate canvas with lowquality version\n\t\tvar tex_canvas = this._preview_canvas;\n\t\tif (!tex_canvas) {\n\t\t\ttex_canvas = createCanvas(size, size);\n\t\t\tthis._preview_canvas = tex_canvas;\n\t\t}\n\n\t\tif (temp_tex) {\n\t\t\ttemp_tex.toCanvas(tex_canvas);\n\t\t}\n\t\treturn tex_canvas;\n\t};\n\n\tLGraphTexture.prototype.getResources = function(res) {\n\t\tif(this.properties.name)\n\t\t\tres[this.properties.name] = GL.Texture;\n\t\treturn res;\n\t};\n\n\tLGraphTexture.prototype.onGetInputs = function() {\n\t\treturn [[\"in\", \"Texture\"]];\n\t};\n\n\tLGraphTexture.prototype.onGetOutputs = function() {\n\t\treturn [\n\t\t\t[\"width\", \"number\"],\n\t\t\t[\"height\", \"number\"],\n\t\t\t[\"aspect\", \"number\"]\n\t\t];\n\t};\n\n\t//used to replace shader code\n\tLGraphTexture.replaceCode = function( code, context )\n\t{\n\t\treturn code.replace(/\\{\\{[a-zA-Z0-9_]*\\}\\}/g, function(v){\n\t\t\tv = v.replace( /[\\{\\}]/g, \"\" );\n\t\t\treturn context[v] || \"\";\n\t\t});\n\t}\n\n\tLiteGraph.registerNodeType(\"texture/texture\", LGraphTexture);\n\n\t//**************************\n\tfunction LGraphTexturePreview() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.properties = { flipY: false };\n\t\tthis.size = [\n\t\t\tLGraphTexture.image_preview_size,\n\t\t\tLGraphTexture.image_preview_size\n\t\t];\n\t}\n\n\tLGraphTexturePreview.title = \"Preview\";\n\tLGraphTexturePreview.desc = \"Show a texture in the graph canvas\";\n\tLGraphTexturePreview.allow_preview = false;\n\n\tLGraphTexturePreview.prototype.onDrawBackground = function(ctx) {\n\t\tif (this.flags.collapsed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!ctx.webgl && !LGraphTexturePreview.allow_preview) {\n\t\t\treturn;\n\t\t} //not working well\n\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tex_canvas = null;\n\n\t\tif (!tex.handle && ctx.webgl) {\n\t\t\ttex_canvas = tex;\n\t\t} else {\n\t\t\ttex_canvas = LGraphTexture.generateLowResTexturePreview(tex);\n\t\t}\n\n\t\t//render to graph canvas\n\t\tctx.save();\n\t\tif (this.properties.flipY) {\n\t\t\tctx.translate(0, this.size[1]);\n\t\t\tctx.scale(1, -1);\n\t\t}\n\t\tctx.drawImage(tex_canvas, 0, 0, this.size[0], this.size[1]);\n\t\tctx.restore();\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/preview\", LGraphTexturePreview);\n\n\t//**************************************\n\n\tfunction LGraphTextureSave() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"tex\", \"Texture\");\n\t\tthis.addOutput(\"name\", \"string\");\n\t\tthis.properties = { name: \"\", generate_mipmaps: false };\n\t}\n\n\tLGraphTextureSave.title = \"Save\";\n\tLGraphTextureSave.desc = \"Save a texture in the repository\";\n\n\tLGraphTextureSave.prototype.getPreviewTexture = function()\n\t{\n\t\treturn this._texture;\n\t}\n\n\tLGraphTextureSave.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.properties.generate_mipmaps) {\n\t\t\ttex.bind(0);\n\t\t\ttex.setParameter( gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR );\n\t\t\tgl.generateMipmap(tex.texture_type);\n\t\t\ttex.unbind(0);\n\t\t}\n\n\t\tif (this.properties.name) {\n\t\t\t//for cases where we want to perform something when storing it\n\t\t\tif (LGraphTexture.storeTexture) {\n\t\t\t\tLGraphTexture.storeTexture(this.properties.name, tex);\n\t\t\t} else {\n\t\t\t\tvar container = LGraphTexture.getTexturesContainer();\n\t\t\t\tcontainer[this.properties.name] = tex;\n\t\t\t}\n\t\t}\n\n\t\tthis._texture = tex;\n\t\tthis.setOutputData(0, tex);\n\t\tthis.setOutputData(1, this.properties.name);\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/save\", LGraphTextureSave);\n\n\t//****************************************************\n\n\tfunction LGraphTextureOperation() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addInput(\"TextureB\", \"Texture\");\n\t\tthis.addInput(\"value\", \"number\");\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\t\tthis.help = \"

pixelcode must be vec3, uvcode must be vec2, is optional

\\\n\t\t

uv: tex. coords

color: texture colorB: textureB

time: scene time value: input value

For multiline you must type: result = ...

\";\n\n\t\tthis.properties = {\n\t\t\tvalue: 1,\n\t\t\tpixelcode: \"color + colorB * value\",\n\t\t\tuvcode: \"\",\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\n\t\tthis.has_error = false;\n\t}\n\n\tLGraphTextureOperation.widgets_info = {\n\t\tuvcode: { widget: \"code\" },\n\t\tpixelcode: { widget: \"code\" },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureOperation.title = \"Operation\";\n\tLGraphTextureOperation.desc = \"Texture shader operation\";\n\n\tLGraphTextureOperation.presets = {};\n\n\tLGraphTextureOperation.prototype.getExtraMenuOptions = function(\n\t\tgraphcanvas\n\t) {\n\t\tvar that = this;\n\t\tvar txt = !that.properties.show ? \"Show Texture\" : \"Hide Texture\";\n\t\treturn [\n\t\t\t{\n\t\t\t\tcontent: txt,\n\t\t\t\tcallback: function() {\n\t\t\t\t\tthat.properties.show = !that.properties.show;\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t};\n\n\tLGraphTextureOperation.prototype.onPropertyChanged = function()\n\t{\n\t\tthis.has_error = false;\n\t}\n\n\tLGraphTextureOperation.prototype.onDrawBackground = function(ctx) {\n\t\tif (\n\t\t\tthis.flags.collapsed ||\n\t\t\tthis.size[1] <= 20 ||\n\t\t\t!this.properties.show\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._tex) {\n\t\t\treturn;\n\t\t}\n\n\t\t//only works if using a webgl renderer\n\t\tif (this._tex.gl != ctx) {\n\t\t\treturn;\n\t\t}\n\n\t\t//render to graph canvas\n\t\tctx.save();\n\t\tctx.drawImage(this._tex, 0, 0, this.size[0], this.size[1]);\n\t\tctx.restore();\n\t};\n\n\tLGraphTextureOperation.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar texB = this.getInputData(1);\n\n\t\tif (!this.properties.uvcode && !this.properties.pixelcode) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = 512;\n\t\tvar height = 512;\n\t\tif (tex) {\n\t\t\twidth = tex.width;\n\t\t\theight = tex.height;\n\t\t} else if (texB) {\n\t\t\twidth = texB.width;\n\t\t\theight = texB.height;\n\t\t}\n\n\t\tif(!texB)\n\t\t\ttexB = GL.Texture.getWhiteTexture();\n\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision, tex );\n\n\t\tif (!tex && !this._tex) {\n\t\t\tthis._tex = new GL.Texture(width, height, { type: type, format: gl.RGBA, filter: gl.LINEAR });\n\t\t} else {\n\t\t\tthis._tex = LGraphTexture.getTargetTexture( tex || this._tex, this._tex, this.properties.precision );\n\t\t}\n\n\t\tvar uvcode = \"\";\n\t\tif (this.properties.uvcode) {\n\t\t\tuvcode = \"uv = \" + this.properties.uvcode;\n\t\t\tif (this.properties.uvcode.indexOf(\";\") != -1) {\n\t\t\t\t//there are line breaks, means multiline code\n\t\t\t\tuvcode = this.properties.uvcode;\n\t\t\t}\n\t\t}\n\n\t\tvar pixelcode = \"\";\n\t\tif (this.properties.pixelcode) {\n\t\t\tpixelcode = \"result = \" + this.properties.pixelcode;\n\t\t\tif (this.properties.pixelcode.indexOf(\";\") != -1) {\n\t\t\t\t//there are line breaks, means multiline code\n\t\t\t\tpixelcode = this.properties.pixelcode;\n\t\t\t}\n\t\t}\n\n\t\tvar shader = this._shader;\n\n\t\tif ( !this.has_error && (!shader || this._shader_code != uvcode + \"|\" + pixelcode) ) {\n\n\t\t\tvar final_pixel_code = LGraphTexture.replaceCode( LGraphTextureOperation.pixel_shader, { UV_CODE:uvcode, PIXEL_CODE:pixelcode });\n\n\t\t\ttry {\n\t\t\t\tshader = new GL.Shader( Shader.SCREEN_VERTEX_SHADER, final_pixel_code );\n\t\t\t\tthis.boxcolor = \"#00FF00\";\n\t\t\t} catch (err) {\n\t\t\t\t//console.log(\"Error compiling shader: \", err, final_pixel_code );\n\t\t\t\tGL.Shader.dumpErrorToConsole(err,Shader.SCREEN_VERTEX_SHADER, final_pixel_code);\n\t\t\t\tthis.boxcolor = \"#FF0000\";\n\t\t\t\tthis.has_error = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._shader = shader;\n\t\t\tthis._shader_code = uvcode + \"|\" + pixelcode;\n\t\t}\n\n\t\tif(!this._shader)\n\t\t\treturn;\n\n\t\tvar value = this.getInputData(2);\n\t\tif (value != null) {\n\t\t\tthis.properties.value = value;\n\t\t} else {\n\t\t\tvalue = parseFloat(this.properties.value);\n\t\t}\n\n\t\tvar time = this.graph.getTime();\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\tgl.disable(gl.CULL_FACE);\n\t\t\tgl.disable(gl.BLEND);\n\t\t\tif (tex) {\n\t\t\t\ttex.bind(0);\n\t\t\t}\n\t\t\tif (texB) {\n\t\t\t\ttexB.bind(1);\n\t\t\t}\n\t\t\tvar mesh = Mesh.getScreenQuad();\n\t\t\tshader\n\t\t\t\t.uniforms({\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tu_textureB: 1,\n\t\t\t\t\tvalue: value,\n\t\t\t\t\ttexSize: [width, height,1/width,1/height],\n\t\t\t\t\ttime: time\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureOperation.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\t\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform vec4 texSize;\\n\\\n\t\tuniform float time;\\n\\\n\t\tuniform float value;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec2 uv = v_coord;\\n\\\n\t\t\t{{UV_CODE}};\\n\\\n\t\t\tvec4 color4 = texture2D(u_texture, uv);\\n\\\n\t\t\tvec3 color = color4.rgb;\\n\\\n\t\t\tvec4 color4B = texture2D(u_textureB, uv);\\n\\\n\t\t\tvec3 colorB = color4B.rgb;\\n\\\n\t\t\tvec3 result = color;\\n\\\n\t\t\tfloat alpha = 1.0;\\n\\\n\t\t\t{{PIXEL_CODE}};\\n\\\n\t\t\tgl_FragColor = vec4(result, alpha);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLGraphTextureOperation.registerPreset = function ( name, code )\n\t{\n\t\tLGraphTextureOperation.presets[name] = code;\n\t}\n\n\tLGraphTextureOperation.registerPreset(\"\",\"\");\n\tLGraphTextureOperation.registerPreset(\"bypass\",\"color\");\n\tLGraphTextureOperation.registerPreset(\"add\",\"color + colorB * value\");\n\tLGraphTextureOperation.registerPreset(\"substract\",\"(color - colorB) * value\");\n\tLGraphTextureOperation.registerPreset(\"mate\",\"mix( color, colorB, color4B.a * value)\");\n\tLGraphTextureOperation.registerPreset(\"invert\",\"vec3(1.0) - color\");\n\tLGraphTextureOperation.registerPreset(\"multiply\",\"color * colorB * value\");\n\tLGraphTextureOperation.registerPreset(\"divide\",\"(color / colorB) / value\");\n\tLGraphTextureOperation.registerPreset(\"difference\",\"abs(color - colorB) * value\");\n\tLGraphTextureOperation.registerPreset(\"max\",\"max(color, colorB) * value\");\n\tLGraphTextureOperation.registerPreset(\"min\",\"min(color, colorB) * value\");\n\tLGraphTextureOperation.registerPreset(\"displace\",\"texture2D(u_texture, uv + (colorB.xy - vec2(0.5)) * value).xyz\");\n\tLGraphTextureOperation.registerPreset(\"grayscale\",\"vec3(color.x + color.y + color.z) * value / 3.0\");\n\tLGraphTextureOperation.registerPreset(\"saturation\",\"mix( vec3(color.x + color.y + color.z) / 3.0, color, value )\");\n\tLGraphTextureOperation.registerPreset(\"normalmap\",\"\\n\\\n\t\tfloat z0 = texture2D(u_texture, uv + vec2(-texSize.z, -texSize.w) ).x;\\n\\\n\t\tfloat z1 = texture2D(u_texture, uv + vec2(0.0, -texSize.w) ).x;\\n\\\n\t\tfloat z2 = texture2D(u_texture, uv + vec2(texSize.z, -texSize.w) ).x;\\n\\\n\t\tfloat z3 = texture2D(u_texture, uv + vec2(-texSize.z, 0.0) ).x;\\n\\\n\t\tfloat z4 = color.x;\\n\\\n\t\tfloat z5 = texture2D(u_texture, uv + vec2(texSize.z, 0.0) ).x;\\n\\\n\t\tfloat z6 = texture2D(u_texture, uv + vec2(-texSize.z, texSize.w) ).x;\\n\\\n\t\tfloat z7 = texture2D(u_texture, uv + vec2(0.0, texSize.w) ).x;\\n\\\n\t\tfloat z8 = texture2D(u_texture, uv + vec2(texSize.z, texSize.w) ).x;\\n\\\n\t\tvec3 normal = vec3( z2 + 2.0*z4 + z7 - z0 - 2.0*z3 - z5, z5 + 2.0*z6 + z7 -z0 - 2.0*z1 - z2, 1.0 );\\n\\\n\t\tnormal.xy *= value;\\n\\\n\t\tresult.xyz = normalize(normal) * 0.5 + vec3(0.5);\\n\\\n\t\");\n\tLGraphTextureOperation.registerPreset(\"threshold\",\"vec3(color.x > colorB.x * value ? 1.0 : 0.0,color.y > colorB.y * value ? 1.0 : 0.0,color.z > colorB.z * value ? 1.0 : 0.0)\");\n\n\t//webglstudio stuff...\n\tLGraphTextureOperation.prototype.onInspect = function(widgets)\n\t{\n\t\tvar that = this;\n\t\twidgets.addCombo(\"Presets\",\"\",{ values: Object.keys(LGraphTextureOperation.presets), callback: function(v){\n\t\t\tvar code = LGraphTextureOperation.presets[v];\n\t\t\tif(!code)\n\t\t\t\treturn;\n\t\t\tthat.setProperty(\"pixelcode\",code);\n\t\t\tthat.title = v;\n\t\t\twidgets.refresh();\n\t\t}});\n\t}\n\n\tLiteGraph.registerNodeType(\"texture/operation\", LGraphTextureOperation);\n\n\t//****************************************************\n\n\tfunction LGraphTextureShader() {\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tcode: \"\",\n\t\t\tu_value: 1,\n\t\t\tu_color: [1,1,1,1],\n\t\t\twidth: 512,\n\t\t\theight: 512,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\n\t\tthis.properties.code = LGraphTextureShader.pixel_shader;\n\t\tthis._uniforms = { u_value: 1, u_color: vec4.create(), in_texture: 0, texSize: vec4.create(), time: 0 };\n\t}\n\n\tLGraphTextureShader.title = \"Shader\";\n\tLGraphTextureShader.desc = \"Texture shader\";\n\tLGraphTextureShader.widgets_info = {\n\t\tcode: { type: \"code\", lang: \"glsl\" },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureShader.prototype.onPropertyChanged = function(\n\t\tname,\n\t\tvalue\n\t) {\n\t\tif (name != \"code\") {\n\t\t\treturn;\n\t\t}\n\n\t\tvar shader = this.getShader();\n\t\tif (!shader) {\n\t\t\treturn;\n\t\t}\n\n\t\t//update connections\n\t\tvar uniforms = shader.uniformInfo;\n\n\t\t//remove deprecated slots\n\t\tif (this.inputs) {\n\t\t\tvar already = {};\n\t\t\tfor (var i = 0; i < this.inputs.length; ++i) {\n\t\t\t\tvar info = this.getInputInfo(i);\n\t\t\t\tif (!info) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (uniforms[info.name] && !already[info.name]) {\n\t\t\t\t\talready[info.name] = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.removeInput(i);\n\t\t\t\ti--;\n\t\t\t}\n\t\t}\n\n\t\t//update existing ones\n\t\tfor (var i in uniforms) {\n\t\t\tvar info = shader.uniformInfo[i];\n\t\t\tif (info.loc === null) {\n\t\t\t\tcontinue;\n\t\t\t} //is an attribute, not a uniform\n\t\t\tif (i == \"time\") {\n\t\t\t\t//default one\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar type = \"number\";\n\t\t\tif (this._shader.samplers[i]) {\n\t\t\t\ttype = \"texture\";\n\t\t\t} else {\n\t\t\t\tswitch (info.size) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\ttype = \"number\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\ttype = \"vec2\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\ttype = \"vec3\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\ttype = \"vec4\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 9:\n\t\t\t\t\t\ttype = \"mat3\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 16:\n\t\t\t\t\t\ttype = \"mat4\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar slot = this.findInputSlot(i);\n\t\t\tif (slot == -1) {\n\t\t\t\tthis.addInput(i, type);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar input_info = this.getInputInfo(slot);\n\t\t\tif (!input_info) {\n\t\t\t\tthis.addInput(i, type);\n\t\t\t} else {\n\t\t\t\tif (input_info.type == type) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.removeInput(slot, type);\n\t\t\t\tthis.addInput(i, type);\n\t\t\t}\n\t\t}\n\t};\n\n\tLGraphTextureShader.prototype.getShader = function() {\n\t\t//replug\n\t\tif (this._shader && this._shader_code == this.properties.code) {\n\t\t\treturn this._shader;\n\t\t}\n\n\t\tthis._shader_code = this.properties.code;\n\t\tthis._shader = new GL.Shader( Shader.SCREEN_VERTEX_SHADER, this.properties.code );\n\t\tif (!this._shader) {\n\t\t\tthis.boxcolor = \"red\";\n\t\t\treturn null;\n\t\t} else {\n\t\t\tthis.boxcolor = \"green\";\n\t\t}\n\t\treturn this._shader;\n\t};\n\n\tLGraphTextureShader.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar shader = this.getShader();\n\t\tif (!shader) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tex_slot = 0;\n\t\tvar in_tex = null;\n\n\t\t//set uniforms\n\t\tif(this.inputs)\n\t\tfor (var i = 0; i < this.inputs.length; ++i) {\n\t\t\tvar info = this.getInputInfo(i);\n\t\t\tvar data = this.getInputData(i);\n\t\t\tif (data == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (data.constructor === GL.Texture) {\n\t\t\t\tdata.bind(tex_slot);\n\t\t\t\tif (!in_tex) {\n\t\t\t\t\tin_tex = data;\n\t\t\t\t}\n\t\t\t\tdata = tex_slot;\n\t\t\t\ttex_slot++;\n\t\t\t}\n\t\t\tshader.setUniform(info.name, data); //data is tex_slot\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision, in_tex );\n\n\t\t//render to texture\n\t\tvar w = this.properties.width | 0;\n\t\tvar h = this.properties.height | 0;\n\t\tif (w == 0) {\n\t\t\tw = in_tex ? in_tex.width : gl.canvas.width;\n\t\t}\n\t\tif (h == 0) {\n\t\t\th = in_tex ? in_tex.height : gl.canvas.height;\n\t\t}\n\t\tuniforms.texSize[0] = w;\n\t\tuniforms.texSize[1] = h;\n\t\tuniforms.texSize[2] = 1/w;\n\t\tuniforms.texSize[3] = 1/h;\n\t\tuniforms.time = this.graph.getTime();\n\t\tuniforms.u_value = this.properties.u_value;\n\t\tuniforms.u_color.set( this.properties.u_color );\n\n\t\tif ( !this._tex || this._tex.type != type || this._tex.width != w || this._tex.height != h ) {\n\t\t\tthis._tex = new GL.Texture(w, h, { type: type, format: gl.RGBA, filter: gl.LINEAR });\n\t\t}\n\t\tvar tex = this._tex;\n\t\ttex.drawTo(function() {\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureShader.pixel_shader =\n\"precision highp float;\\n\\\n\\n\\\nvarying vec2 v_coord;\\n\\\nuniform float time; //time in seconds\\n\\\nuniform vec4 texSize; //tex resolution\\n\\\nuniform float u_value;\\n\\\nuniform vec4 u_color;\\n\\n\\\nvoid main() {\\n\\\n\tvec2 uv = v_coord;\\n\\\n\tvec3 color = vec3(0.0);\\n\\\n\t//your code here\\n\\\n\tcolor.xy=uv;\\n\\n\\\n\tgl_FragColor = vec4(color, 1.0);\\n\\\n}\\n\\\n\";\n\n\tLiteGraph.registerNodeType(\"texture/shader\", LGraphTextureShader);\n\n\t// Texture Scale Offset\n\n\tfunction LGraphTextureScaleOffset() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"scale\", \"vec2\");\n\t\tthis.addInput(\"offset\", \"vec2\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\toffset: vec2.fromValues(0, 0),\n\t\t\tscale: vec2.fromValues(1, 1),\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureScaleOffset.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureScaleOffset.title = \"Scale/Offset\";\n\tLGraphTextureScaleOffset.desc = \"Applies an scaling and offseting\";\n\n\tLGraphTextureScaleOffset.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (!this.isOutputConnected(0) || !tex) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = tex.width;\n\t\tvar height = tex.height;\n\t\tvar type = this.precision === LGraphTexture.LOW ? gl.UNSIGNED_BYTE : gl.HIGH_PRECISION_FORMAT;\n\t\tif (this.precision === LGraphTexture.DEFAULT) {\n\t\t\ttype = tex.type;\n\t\t}\n\n\t\tif (\n\t\t\t!this._tex ||\n\t\t\tthis._tex.width != width ||\n\t\t\tthis._tex.height != height ||\n\t\t\tthis._tex.type != type\n\t\t) {\n\t\t\tthis._tex = new GL.Texture(width, height, {\n\t\t\t\ttype: type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tvar shader = this._shader;\n\n\t\tif (!shader) {\n\t\t\tshader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureScaleOffset.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar scale = this.getInputData(1);\n\t\tif (scale) {\n\t\t\tthis.properties.scale[0] = scale[0];\n\t\t\tthis.properties.scale[1] = scale[1];\n\t\t} else {\n\t\t\tscale = this.properties.scale;\n\t\t}\n\n\t\tvar offset = this.getInputData(2);\n\t\tif (offset) {\n\t\t\tthis.properties.offset[0] = offset[0];\n\t\t\tthis.properties.offset[1] = offset[1];\n\t\t} else {\n\t\t\toffset = this.properties.offset;\n\t\t}\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\tgl.disable(gl.CULL_FACE);\n\t\t\tgl.disable(gl.BLEND);\n\t\t\ttex.bind(0);\n\t\t\tvar mesh = Mesh.getScreenQuad();\n\t\t\tshader\n\t\t\t\t.uniforms({\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tu_scale: scale,\n\t\t\t\t\tu_offset: offset\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureScaleOffset.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\t\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform vec2 u_scale;\\n\\\n\t\tuniform vec2 u_offset;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec2 uv = v_coord;\\n\\\n\t\t\tuv = uv / u_scale - u_offset;\\n\\\n\t\t\tgl_FragColor = texture2D(u_texture, uv);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/scaleOffset\",\n\t\tLGraphTextureScaleOffset\n\t);\n\n\t// Warp (distort a texture) *************************\n\n\tfunction LGraphTextureWarp() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"warp\", \"Texture\");\n\t\tthis.addInput(\"factor\", \"number\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tfactor: 0.01,\n\t\t\tscale: [1,1],\n\t\t\toffset: [0,0],\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\n\t\tthis._uniforms = { \n\t\t\tu_texture: 0, \n\t\t\tu_textureB: 1, \n\t\t\tu_factor: 1, \n\t\t\tu_scale: vec2.create(),\n\t\t\tu_offset: vec2.create()\n\t\t};\n\t}\n\n\tLGraphTextureWarp.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureWarp.title = \"Warp\";\n\tLGraphTextureWarp.desc = \"Texture warp operation\";\n\n\tLGraphTextureWarp.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar texB = this.getInputData(1);\n\n\t\tvar width = 512;\n\t\tvar height = 512;\n\t\tvar type = gl.UNSIGNED_BYTE;\n\t\tif (tex) {\n\t\t\twidth = tex.width;\n\t\t\theight = tex.height;\n\t\t\ttype = tex.type;\n\t\t} else if (texB) {\n\t\t\twidth = texB.width;\n\t\t\theight = texB.height;\n\t\t\ttype = texB.type;\n\t\t}\n\n\t\tif (!tex && !this._tex) {\n\t\t\tthis._tex = new GL.Texture(width, height, {\n\t\t\t\ttype:\n\t\t\t\t\tthis.precision === LGraphTexture.LOW\n\t\t\t\t\t\t? gl.UNSIGNED_BYTE\n\t\t\t\t\t\t: gl.HIGH_PRECISION_FORMAT,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t} else {\n\t\t\tthis._tex = LGraphTexture.getTargetTexture(\n\t\t\t\ttex || this._tex,\n\t\t\t\tthis._tex,\n\t\t\t\tthis.properties.precision\n\t\t\t);\n\t\t}\n\n\t\tvar shader = this._shader;\n\n\t\tif (!shader) {\n\t\t\tshader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureWarp.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar factor = this.getInputData(2);\n\t\tif (factor != null) {\n\t\t\tthis.properties.factor = factor;\n\t\t} else {\n\t\t\tfactor = parseFloat(this.properties.factor);\n\t\t}\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_factor = factor;\n\t\tuniforms.u_scale.set( this.properties.scale );\n\t\tuniforms.u_offset.set( this.properties.offset );\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\tgl.disable(gl.CULL_FACE);\n\t\t\tgl.disable(gl.BLEND);\n\t\t\tif (tex) {\n\t\t\t\ttex.bind(0);\n\t\t\t}\n\t\t\tif (texB) {\n\t\t\t\ttexB.bind(1);\n\t\t\t}\n\t\t\tvar mesh = Mesh.getScreenQuad();\n\t\t\tshader\n\t\t\t\t.uniforms( uniforms )\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureWarp.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\t\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform float u_factor;\\n\\\n\t\tuniform vec2 u_scale;\\n\\\n\t\tuniform vec2 u_offset;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec2 uv = v_coord;\\n\\\n\t\t\tuv += ( texture2D(u_textureB, uv).rg - vec2(0.5)) * u_factor * u_scale + u_offset;\\n\\\n\t\t\tgl_FragColor = texture2D(u_texture, uv);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/warp\", LGraphTextureWarp);\n\n\t//****************************************************\n\n\t// Texture to Viewport *****************************************\n\tfunction LGraphTextureToViewport() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tadditive: false,\n\t\t\tantialiasing: false,\n\t\t\tfilter: true,\n\t\t\tdisable_alpha: false,\n\t\t\tgamma: 1.0,\n\t\t\tviewport: [0,0,1,1]\n\t\t};\n\t\tthis.size[0] = 130;\n\t}\n\n\tLGraphTextureToViewport.title = \"to Viewport\";\n\tLGraphTextureToViewport.desc = \"Texture to viewport\";\n\n\tLGraphTextureToViewport._prev_viewport = new Float32Array(4);\n\n\tLGraphTextureToViewport.prototype.onDrawBackground = function( ctx )\n\t{\n\t\tif ( this.flags.collapsed || this.size[1] <= 40 )\n\t\t\treturn;\n\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.drawImage( ctx == gl ? tex : gl.canvas, 10,30, this.size[0] -20, this.size[1] -40);\n\t}\n\n\tLGraphTextureToViewport.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.properties.disable_alpha) {\n\t\t\tgl.disable(gl.BLEND);\n\t\t} else {\n\t\t\tgl.enable(gl.BLEND);\n\t\t\tif (this.properties.additive) {\n\t\t\t\tgl.blendFunc(gl.SRC_ALPHA, gl.ONE);\n\t\t\t} else {\n\t\t\t\tgl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);\n\t\t\t}\n\t\t}\n\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tvar gamma = this.properties.gamma || 1.0;\n\t\tif (this.isInputConnected(1)) {\n\t\t\tgamma = this.getInputData(1);\n\t\t}\n\n\t\ttex.setParameter(\n\t\t\tgl.TEXTURE_MAG_FILTER,\n\t\t\tthis.properties.filter ? gl.LINEAR : gl.NEAREST\n\t\t);\n\n\t\tvar old_viewport = LGraphTextureToViewport._prev_viewport;\n\t\told_viewport.set( gl.viewport_data );\n\t\tvar new_view = this.properties.viewport;\n\t\tgl.viewport( old_viewport[0] + old_viewport[2] * new_view[0], old_viewport[1] + old_viewport[3] * new_view[1], old_viewport[2] * new_view[2], old_viewport[3] * new_view[3] );\n\t\tvar viewport = gl.getViewport(); //gl.getParameter(gl.VIEWPORT);\n\n\t\tif (this.properties.antialiasing) {\n\t\t\tif (!LGraphTextureToViewport._shader) {\n\t\t\t\tLGraphTextureToViewport._shader = new GL.Shader(\n\t\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\tLGraphTextureToViewport.aa_pixel_shader\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvar mesh = Mesh.getScreenQuad();\n\t\t\ttex.bind(0);\n\t\t\tLGraphTextureToViewport._shader\n\t\t\t\t.uniforms({\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tuViewportSize: [tex.width, tex.height],\n\t\t\t\t\tu_igamma: 1 / gamma,\n\t\t\t\t\tinverseVP: [1 / tex.width, 1 / tex.height]\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t} else {\n\t\t\tif (gamma != 1.0) {\n\t\t\t\tif (!LGraphTextureToViewport._gamma_shader) {\n\t\t\t\t\tLGraphTextureToViewport._gamma_shader = new GL.Shader(\n\t\t\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\t\tLGraphTextureToViewport.gamma_pixel_shader\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\ttex.toViewport(LGraphTextureToViewport._gamma_shader, {\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tu_igamma: 1 / gamma\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttex.toViewport();\n\t\t\t}\n\t\t}\n\n\t\tgl.viewport( old_viewport[0], old_viewport[1], old_viewport[2], old_viewport[3] );\n\t};\n\n\tLGraphTextureToViewport.prototype.onGetInputs = function() {\n\t\treturn [[\"gamma\", \"number\"]];\n\t};\n\n\tLGraphTextureToViewport.aa_pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 uViewportSize;\\n\\\n\t\tuniform vec2 inverseVP;\\n\\\n\t\tuniform float u_igamma;\\n\\\n\t\t#define FXAA_REDUCE_MIN (1.0/ 128.0)\\n\\\n\t\t#define FXAA_REDUCE_MUL (1.0 / 8.0)\\n\\\n\t\t#define FXAA_SPAN_MAX 8.0\\n\\\n\t\t\\n\\\n\t\t/* from mitsuhiko/webgl-meincraft based on the code on geeks3d.com */\\n\\\n\t\tvec4 applyFXAA(sampler2D tex, vec2 fragCoord)\\n\\\n\t\t{\\n\\\n\t\t\tvec4 color = vec4(0.0);\\n\\\n\t\t\t/*vec2 inverseVP = vec2(1.0 / uViewportSize.x, 1.0 / uViewportSize.y);*/\\n\\\n\t\t\tvec3 rgbNW = texture2D(tex, (fragCoord + vec2(-1.0, -1.0)) * inverseVP).xyz;\\n\\\n\t\t\tvec3 rgbNE = texture2D(tex, (fragCoord + vec2(1.0, -1.0)) * inverseVP).xyz;\\n\\\n\t\t\tvec3 rgbSW = texture2D(tex, (fragCoord + vec2(-1.0, 1.0)) * inverseVP).xyz;\\n\\\n\t\t\tvec3 rgbSE = texture2D(tex, (fragCoord + vec2(1.0, 1.0)) * inverseVP).xyz;\\n\\\n\t\t\tvec3 rgbM = texture2D(tex, fragCoord * inverseVP).xyz;\\n\\\n\t\t\tvec3 luma = vec3(0.299, 0.587, 0.114);\\n\\\n\t\t\tfloat lumaNW = dot(rgbNW, luma);\\n\\\n\t\t\tfloat lumaNE = dot(rgbNE, luma);\\n\\\n\t\t\tfloat lumaSW = dot(rgbSW, luma);\\n\\\n\t\t\tfloat lumaSE = dot(rgbSE, luma);\\n\\\n\t\t\tfloat lumaM = dot(rgbM, luma);\\n\\\n\t\t\tfloat lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\\n\\\n\t\t\tfloat lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\\n\\\n\t\t\t\\n\\\n\t\t\tvec2 dir;\\n\\\n\t\t\tdir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\\n\\\n\t\t\tdir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\\n\\\n\t\t\t\\n\\\n\t\t\tfloat dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);\\n\\\n\t\t\t\\n\\\n\t\t\tfloat rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\\n\\\n\t\t\tdir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX), max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), dir * rcpDirMin)) * inverseVP;\\n\\\n\t\t\t\\n\\\n\t\t\tvec3 rgbA = 0.5 * (texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz + \\n\\\n\t\t\t\ttexture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);\\n\\\n\t\t\tvec3 rgbB = rgbA * 0.5 + 0.25 * (texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz + \\n\\\n\t\t\t\ttexture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);\\n\\\n\t\t\t\\n\\\n\t\t\t//return vec4(rgbA,1.0);\\n\\\n\t\t\tfloat lumaB = dot(rgbB, luma);\\n\\\n\t\t\tif ((lumaB < lumaMin) || (lumaB > lumaMax))\\n\\\n\t\t\t\tcolor = vec4(rgbA, 1.0);\\n\\\n\t\t\telse\\n\\\n\t\t\t\tcolor = vec4(rgbB, 1.0);\\n\\\n\t\t\tif(u_igamma != 1.0)\\n\\\n\t\t\t\tcolor.xyz = pow( color.xyz, vec3(u_igamma) );\\n\\\n\t\t\treturn color;\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t gl_FragColor = applyFXAA( u_texture, v_coord * uViewportSize) ;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLGraphTextureToViewport.gamma_pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_igamma;\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = texture2D( u_texture, v_coord);\\n\\\n\t\t\tcolor.xyz = pow(color.xyz, vec3(u_igamma) );\\n\\\n\t\t gl_FragColor = color;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/toviewport\",\n\t\tLGraphTextureToViewport\n\t);\n\n\t// Texture Copy *****************************************\n\tfunction LGraphTextureCopy() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tsize: 0,\n\t\t\tgenerate_mipmaps: false,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureCopy.title = \"Copy\";\n\tLGraphTextureCopy.desc = \"Copy Texture\";\n\tLGraphTextureCopy.widgets_info = {\n\t\tsize: {\n\t\t\twidget: \"combo\",\n\t\t\tvalues: [0, 32, 64, 128, 256, 512, 1024, 2048]\n\t\t},\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureCopy.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex && !this._temp_texture) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\t//copy the texture\n\t\tif (tex) {\n\t\t\tvar width = tex.width;\n\t\t\tvar height = tex.height;\n\n\t\t\tif (this.properties.size != 0) {\n\t\t\t\twidth = this.properties.size;\n\t\t\t\theight = this.properties.size;\n\t\t\t}\n\n\t\t\tvar temp = this._temp_texture;\n\n\t\t\tvar type = tex.type;\n\t\t\tif (this.properties.precision === LGraphTexture.LOW) {\n\t\t\t\ttype = gl.UNSIGNED_BYTE;\n\t\t\t} else if (this.properties.precision === LGraphTexture.HIGH) {\n\t\t\t\ttype = gl.HIGH_PRECISION_FORMAT;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!temp ||\n\t\t\t\ttemp.width != width ||\n\t\t\t\ttemp.height != height ||\n\t\t\t\ttemp.type != type\n\t\t\t) {\n\t\t\t\tvar minFilter = gl.LINEAR;\n\t\t\t\tif (\n\t\t\t\t\tthis.properties.generate_mipmaps &&\n\t\t\t\t\tisPowerOfTwo(width) &&\n\t\t\t\t\tisPowerOfTwo(height)\n\t\t\t\t) {\n\t\t\t\t\tminFilter = gl.LINEAR_MIPMAP_LINEAR;\n\t\t\t\t}\n\t\t\t\tthis._temp_texture = new GL.Texture(width, height, {\n\t\t\t\t\ttype: type,\n\t\t\t\t\tformat: gl.RGBA,\n\t\t\t\t\tminFilter: minFilter,\n\t\t\t\t\tmagFilter: gl.LINEAR\n\t\t\t\t});\n\t\t\t}\n\t\t\ttex.copyTo(this._temp_texture);\n\n\t\t\tif (this.properties.generate_mipmaps) {\n\t\t\t\tthis._temp_texture.bind(0);\n\t\t\t\tgl.generateMipmap(this._temp_texture.texture_type);\n\t\t\t\tthis._temp_texture.unbind(0);\n\t\t\t}\n\t\t}\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/copy\", LGraphTextureCopy);\n\n\t// Texture Downsample *****************************************\n\tfunction LGraphTextureDownsample() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = {\n\t\t\titerations: 1,\n\t\t\tgenerate_mipmaps: false,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureDownsample.title = \"Downsample\";\n\tLGraphTextureDownsample.desc = \"Downsample Texture\";\n\tLGraphTextureDownsample.widgets_info = {\n\t\titerations: { type: \"number\", step: 1, precision: 0, min: 0 },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureDownsample.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex && !this._temp_texture) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\t//we do not allow any texture different than texture 2D\n\t\tif (!tex || tex.texture_type !== GL.TEXTURE_2D) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.properties.iterations < 1) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar shader = LGraphTextureDownsample._shader;\n\t\tif (!shader) {\n\t\t\tLGraphTextureDownsample._shader = shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureDownsample.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar width = tex.width | 0;\n\t\tvar height = tex.height | 0;\n\t\tvar type = tex.type;\n\t\tif (this.properties.precision === LGraphTexture.LOW) {\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\t\t} else if (this.properties.precision === LGraphTexture.HIGH) {\n\t\t\ttype = gl.HIGH_PRECISION_FORMAT;\n\t\t}\n\t\tvar iterations = this.properties.iterations || 1;\n\n\t\tvar origin = tex;\n\t\tvar target = null;\n\n\t\tvar temp = [];\n\t\tvar options = {\n\t\t\ttype: type,\n\t\t\tformat: tex.format\n\t\t};\n\n\t\tvar offset = vec2.create();\n\t\tvar uniforms = {\n\t\t\tu_offset: offset\n\t\t};\n\n\t\tif (this._texture) {\n\t\t\tGL.Texture.releaseTemporary(this._texture);\n\t\t}\n\n\t\tfor (var i = 0; i < iterations; ++i) {\n\t\t\toffset[0] = 1 / width;\n\t\t\toffset[1] = 1 / height;\n\t\t\twidth = width >> 1 || 0;\n\t\t\theight = height >> 1 || 0;\n\t\t\ttarget = GL.Texture.getTemporary(width, height, options);\n\t\t\ttemp.push(target);\n\t\t\torigin.setParameter(GL.TEXTURE_MAG_FILTER, GL.NEAREST);\n\t\t\torigin.copyTo(target, shader, uniforms);\n\t\t\tif (width == 1 && height == 1) {\n\t\t\t\tbreak;\n\t\t\t} //nothing else to do\n\t\t\torigin = target;\n\t\t}\n\n\t\t//keep the last texture used\n\t\tthis._texture = temp.pop();\n\n\t\t//free the rest\n\t\tfor (var i = 0; i < temp.length; ++i) {\n\t\t\tGL.Texture.releaseTemporary(temp[i]);\n\t\t}\n\n\t\tif (this.properties.generate_mipmaps) {\n\t\t\tthis._texture.bind(0);\n\t\t\tgl.generateMipmap(this._texture.texture_type);\n\t\t\tthis._texture.unbind(0);\n\t\t}\n\n\t\tthis.setOutputData(0, this._texture);\n\t};\n\n\tLGraphTextureDownsample.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 u_offset;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = texture2D(u_texture, v_coord );\\n\\\n\t\t\tcolor += texture2D(u_texture, v_coord + vec2( u_offset.x, 0.0 ) );\\n\\\n\t\t\tcolor += texture2D(u_texture, v_coord + vec2( 0.0, u_offset.y ) );\\n\\\n\t\t\tcolor += texture2D(u_texture, v_coord + vec2( u_offset.x, u_offset.y ) );\\n\\\n\t\t gl_FragColor = color * 0.25;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/downsample\",\n\t\tLGraphTextureDownsample\n\t);\n\n\n\n\tfunction LGraphTextureResize() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tsize: [512,512],\n\t\t\tgenerate_mipmaps: false,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureResize.title = \"Resize\";\n\tLGraphTextureResize.desc = \"Resize Texture\";\n\tLGraphTextureResize.widgets_info = {\n\t\titerations: { type: \"number\", step: 1, precision: 0, min: 0 },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureResize.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex && !this._temp_texture) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\t//we do not allow any texture different than texture 2D\n\t\tif (!tex || tex.texture_type !== GL.TEXTURE_2D) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = this.properties.size[0] | 0;\n\t\tvar height = this.properties.size[1] | 0;\n\t\tif(width == 0)\n\t\t\twidth = tex.width;\n\t\tif(height == 0)\n\t\t\theight = tex.height;\n\t\tvar type = tex.type;\n\t\tif (this.properties.precision === LGraphTexture.LOW) {\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\t\t} else if (this.properties.precision === LGraphTexture.HIGH) {\n\t\t\ttype = gl.HIGH_PRECISION_FORMAT;\n\t\t}\n\n\t\tif( !this._texture || this._texture.width != width || this._texture.height != height || this._texture.type != type )\n\t\t\tthis._texture = new GL.Texture( width, height, { type: type } );\n\n\t\ttex.copyTo( this._texture );\n\n\t\tif (this.properties.generate_mipmaps) {\n\t\t\tthis._texture.bind(0);\n\t\t\tgl.generateMipmap(this._texture.texture_type);\n\t\t\tthis._texture.unbind(0);\n\t\t}\n\n\t\tthis.setOutputData(0, this._texture);\n\t};\n\n\tLiteGraph.registerNodeType( \"texture/resize\", LGraphTextureResize );\n\n\t// Texture Average *****************************************\n\tfunction LGraphTextureAverage() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"tex\", \"Texture\");\n\t\tthis.addOutput(\"avg\", \"vec4\");\n\t\tthis.addOutput(\"lum\", \"number\");\n\t\tthis.properties = {\n\t\t\tuse_previous_frame: true, //to avoid stalls \n\t\t\thigh_quality: false //to use as much pixels as possible\n\t\t};\n\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_mipmap_offset: 0\n\t\t};\n\t\tthis._luminance = new Float32Array(4);\n\t}\n\n\tLGraphTextureAverage.title = \"Average\";\n\tLGraphTextureAverage.desc =\n\t\t\"Compute a partial average (32 random samples) of a texture and stores it as a 1x1 pixel texture.\\n If high_quality is true, then it generates the mipmaps first and reads from the lower one.\";\n\n\tLGraphTextureAverage.prototype.onExecute = function() {\n\t\tif (!this.properties.use_previous_frame) {\n\t\t\tthis.updateAverage();\n\t\t}\n\n\t\tvar v = this._luminance;\n\t\tthis.setOutputData(0, this._temp_texture);\n\t\tthis.setOutputData(1, v);\n\t\tthis.setOutputData(2, (v[0] + v[1] + v[2]) / 3);\n\t};\n\n\t//executed before rendering the frame\n\tLGraphTextureAverage.prototype.onPreRenderExecute = function() {\n\t\tthis.updateAverage();\n\t};\n\n\tLGraphTextureAverage.prototype.updateAverage = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t!this.isOutputConnected(0) &&\n\t\t\t!this.isOutputConnected(1) &&\n\t\t\t!this.isOutputConnected(2)\n\t\t) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (!LGraphTextureAverage._shader) {\n\t\t\tLGraphTextureAverage._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureAverage.pixel_shader\n\t\t\t);\n\t\t\t//creates 256 random numbers and stores them in two mat4\n\t\t\tvar samples = new Float32Array(16);\n\t\t\tfor (var i = 0; i < samples.length; ++i) {\n\t\t\t\tsamples[i] = Math.random(); //poorly distributed samples\n\t\t\t}\n\t\t\t//upload only once\n\t\t\tLGraphTextureAverage._shader.uniforms({\n\t\t\t\tu_samples_a: samples.subarray(0, 16),\n\t\t\t\tu_samples_b: samples.subarray(16, 32)\n\t\t\t});\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\t\tvar type = gl.UNSIGNED_BYTE;\n\t\tif (tex.type != type) {\n\t\t\t//force floats, half floats cannot be read with gl.readPixels\n\t\t\ttype = gl.FLOAT;\n\t\t}\n\n\t\tif (!temp || temp.type != type) {\n\t\t\tthis._temp_texture = new GL.Texture(1, 1, {\n\t\t\t\ttype: type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.NEAREST\n\t\t\t});\n\t\t}\n\n\t\tthis._uniforms.u_mipmap_offset = 0;\n\n\t\tif(this.properties.high_quality)\n\t\t{\n\t\t\tif( !this._temp_pot2_texture || this._temp_pot2_texture.type != type )\n\t\t\t\tthis._temp_pot2_texture = new GL.Texture(512, 512, {\n\t\t\t\t\ttype: type,\n\t\t\t\t\tformat: gl.RGBA,\n\t\t\t\t\tminFilter: gl.LINEAR_MIPMAP_LINEAR,\n\t\t\t\t\tmagFilter: gl.LINEAR\n\t\t\t\t});\n\n\t\t\ttex.copyTo( this._temp_pot2_texture );\n\t\t\ttex = this._temp_pot2_texture;\n\t\t\ttex.bind(0);\n\t\t\tgl.generateMipmap(GL.TEXTURE_2D);\n\t\t\tthis._uniforms.u_mipmap_offset = 9;\n\t\t}\n\n\t\tvar shader = LGraphTextureAverage._shader;\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_mipmap_offset = this.properties.mipmap_offset;\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tgl.disable(gl.BLEND);\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\ttex.toViewport(shader, uniforms);\n\t\t});\n\n\t\tif (this.isOutputConnected(1) || this.isOutputConnected(2)) {\n\t\t\tvar pixel = this._temp_texture.getPixels();\n\t\t\tif (pixel) {\n\t\t\t\tvar v = this._luminance;\n\t\t\t\tvar type = this._temp_texture.type;\n\t\t\t\tv.set(pixel);\n\t\t\t\tif (type == gl.UNSIGNED_BYTE) {\n\t\t\t\t\tvec4.scale(v, v, 1 / 255);\n\t\t\t\t} else if (\n\t\t\t\t\ttype == GL.HALF_FLOAT ||\n\t\t\t\t\ttype == GL.HALF_FLOAT_OES\n\t\t\t\t) {\n\t\t\t\t\t//no half floats possible, hard to read back unless copyed to a FLOAT texture, so temp_texture is always forced to FLOAT\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tLGraphTextureAverage.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform mat4 u_samples_a;\\n\\\n\t\tuniform mat4 u_samples_b;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_mipmap_offset;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = vec4(0.0);\\n\\\n\t\t\t//random average\\n\\\n\t\t\tfor(int i = 0; i < 4; ++i)\\n\\\n\t\t\t\tfor(int j = 0; j < 4; ++j)\\n\\\n\t\t\t\t{\\n\\\n\t\t\t\t\tcolor += texture2D(u_texture, vec2( u_samples_a[i][j], u_samples_b[i][j] ), u_mipmap_offset );\\n\\\n\t\t\t\t\tcolor += texture2D(u_texture, vec2( 1.0 - u_samples_a[i][j], 1.0 - u_samples_b[i][j] ), u_mipmap_offset );\\n\\\n\t\t\t\t}\\n\\\n\t\t gl_FragColor = color * 0.03125;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/average\", LGraphTextureAverage);\n\n\n\n\t// Computes operation between pixels (max, min) *****************************************\n\tfunction LGraphTextureMinMax() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"min_t\", \"Texture\");\n\t\tthis.addOutput(\"max_t\", \"Texture\");\n\t\tthis.addOutput(\"min\", \"vec4\");\n\t\tthis.addOutput(\"max\", \"vec4\");\n\t\tthis.properties = {\n\t\t\tmode: \"max\",\n\t\t\tuse_previous_frame: true //to avoid stalls \n\t\t};\n\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0\n\t\t};\n\n\t\tthis._max = new Float32Array(4);\n\t\tthis._min = new Float32Array(4);\n\n\t\tthis._textures_chain = [];\n\t}\n\n\tLGraphTextureMinMax.widgets_info = {\n\t\tmode: { widget: \"combo\", values: [\"min\",\"max\",\"avg\"] }\n\t};\n\n\tLGraphTextureMinMax.title = \"MinMax\";\n\tLGraphTextureMinMax.desc = \"Compute the scene min max\";\n\n\tLGraphTextureMinMax.prototype.onExecute = function() {\n\t\tif (!this.properties.use_previous_frame) {\n\t\t\tthis.update();\n\t\t}\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t\tthis.setOutputData(1, this._luminance);\n\t};\n\n\t//executed before rendering the frame\n\tLGraphTextureMinMax.prototype.onPreRenderExecute = function() {\n\t\tthis.update();\n\t};\n\n\tLGraphTextureMinMax.prototype.update = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !this.isOutputConnected(0) && !this.isOutputConnected(1) ) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (!LGraphTextureMinMax._shader) {\n\t\t\tLGraphTextureMinMax._shader = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphTextureMinMax.pixel_shader );\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\t\tvar type = gl.UNSIGNED_BYTE;\n\t\tif (tex.type != type) {\n\t\t\t//force floats, half floats cannot be read with gl.readPixels\n\t\t\ttype = gl.FLOAT;\n\t\t}\n\n\t\tvar size = 512;\n\n\t\tif( !this._textures_chain.length || this._textures_chain[0].type != type )\n\t\t{\n\t\t\tvar index = 0;\n\t\t\twhile(i)\n\t\t\t{\n\t\t\t\tthis._textures_chain[i] = new GL.Texture( size, size, {\n\t\t\t\t\ttype: type,\n\t\t\t\t\tformat: gl.RGBA,\n\t\t\t\t\tfilter: gl.NEAREST\n\t\t\t\t});\n\t\t\t\tsize = size >> 2;\n\t\t\t\ti++;\n\t\t\t\tif(size == 1)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\ttex.copyTo( this._textures_chain[0] );\n\t\tvar prev = this._textures_chain[0];\n\t\tfor(var i = 1; i <= this._textures_chain.length; ++i)\n\t\t{\n\t\t\tvar tex = this._textures_chain[i];\n\n\t\t\tprev = tex;\t\t\t\t\n\t\t}\n\n\t\tvar shader = LGraphTextureMinMax._shader;\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_mipmap_offset = this.properties.mipmap_offset;\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tgl.disable(gl.BLEND);\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\ttex.toViewport(shader, uniforms);\n\t\t});\n\t};\n\n\tLGraphTextureMinMax.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform mat4 u_samples_a;\\n\\\n\t\tuniform mat4 u_samples_b;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_mipmap_offset;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = vec4(0.0);\\n\\\n\t\t\t//random average\\n\\\n\t\t\tfor(int i = 0; i < 4; ++i)\\n\\\n\t\t\t\tfor(int j = 0; j < 4; ++j)\\n\\\n\t\t\t\t{\\n\\\n\t\t\t\t\tcolor += texture2D(u_texture, vec2( u_samples_a[i][j], u_samples_b[i][j] ), u_mipmap_offset );\\n\\\n\t\t\t\t\tcolor += texture2D(u_texture, vec2( 1.0 - u_samples_a[i][j], 1.0 - u_samples_b[i][j] ), u_mipmap_offset );\\n\\\n\t\t\t\t}\\n\\\n\t\t gl_FragColor = color * 0.03125;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\t//LiteGraph.registerNodeType(\"texture/clustered_operation\", LGraphTextureClusteredOperation);\n\n\n\tfunction LGraphTextureTemporalSmooth() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"factor\", \"Number\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = { factor: 0.5 };\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_textureB: 1,\n\t\t\tu_factor: this.properties.factor\n\t\t};\n\t}\n\n\tLGraphTextureTemporalSmooth.title = \"Smooth\";\n\tLGraphTextureTemporalSmooth.desc = \"Smooth texture over time\";\n\n\tLGraphTextureTemporalSmooth.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex || !this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!LGraphTextureTemporalSmooth._shader) {\n\t\t\tLGraphTextureTemporalSmooth._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureTemporalSmooth.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.type != tex.type ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height\n\t\t) {\n\t\t\tvar options = {\n\t\t\t\ttype: tex.type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.NEAREST\n\t\t\t};\n\t\t\tthis._temp_texture = new GL.Texture(tex.width, tex.height, options );\n\t\t\tthis._temp_texture2 = new GL.Texture(tex.width, tex.height, options );\n\t\t\ttex.copyTo(this._temp_texture2);\n\t\t}\n\n\t\tvar tempA = this._temp_texture;\n\t\tvar tempB = this._temp_texture2;\n\n\t\tvar shader = LGraphTextureTemporalSmooth._shader;\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_factor = 1.0 - this.getInputOrProperty(\"factor\");\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\ttempA.drawTo(function() {\n\t\t\ttempB.bind(1);\n\t\t\ttex.toViewport(shader, uniforms);\n\t\t});\n\n\t\tthis.setOutputData(0, tempA);\n\n\t\t//swap\n\t\tthis._temp_texture = tempB;\n\t\tthis._temp_texture2 = tempA;\n\t};\n\n\tLGraphTextureTemporalSmooth.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tuniform float u_factor;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tgl_FragColor = mix( texture2D( u_texture, v_coord ), texture2D( u_textureB, v_coord ), u_factor );\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType( \"texture/temporal_smooth\", LGraphTextureTemporalSmooth );\n\n\n\tfunction LGraphTextureLinearAvgSmooth() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addOutput(\"avg\", \"Texture\");\n\t\tthis.addOutput(\"array\", \"Texture\");\n\t\tthis.properties = { samples: 64, frames_interval: 1 };\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_textureB: 1,\n\t\t\tu_samples: this.properties.samples,\n\t\t\tu_isamples: 1/this.properties.samples\n\t\t};\n\t\tthis.frame = 0;\n\t}\n\n\tLGraphTextureLinearAvgSmooth.title = \"Lineal Avg Smooth\";\n\tLGraphTextureLinearAvgSmooth.desc = \"Smooth texture linearly over time\";\n\n\tLGraphTextureLinearAvgSmooth[\"@samples\"] = { type: \"number\", min: 1, max: 64, step: 1, precision: 1 };\n\n\tLGraphTextureLinearAvgSmooth.prototype.getPreviewTexture = function()\n\t{\n\t\treturn this._temp_texture2;\n\t}\n\n\tLGraphTextureLinearAvgSmooth.prototype.onExecute = function() {\n\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex || !this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!LGraphTextureLinearAvgSmooth._shader) {\n\t\t\tLGraphTextureLinearAvgSmooth._shader_copy = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphTextureLinearAvgSmooth.pixel_shader_copy );\n\t\t\tLGraphTextureLinearAvgSmooth._shader_avg = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphTextureLinearAvgSmooth.pixel_shader_avg );\n\t\t}\n\n\t\tvar samples = Math.clamp(this.properties.samples,0,64);\n\t\tvar frame = this.frame;\n\t\tvar interval = this.properties.frames_interval;\n\n\t\tif( interval == 0 || frame % interval == 0 )\n\t\t{\n\t\t\tvar temp = this._temp_texture;\n\t\t\tif ( !temp || temp.type != tex.type || temp.width != samples ) {\n\t\t\t\tvar options = {\n\t\t\t\t\ttype: tex.type,\n\t\t\t\t\tformat: gl.RGBA,\n\t\t\t\t\tfilter: gl.NEAREST\n\t\t\t\t};\n\t\t\t\tthis._temp_texture = new GL.Texture( samples, 1, options );\n\t\t\t\tthis._temp_texture2 = new GL.Texture( samples, 1, options );\n\t\t\t\tthis._temp_texture_out = new GL.Texture( 1, 1, options );\n\t\t\t}\n\n\t\t\tvar tempA = this._temp_texture;\n\t\t\tvar tempB = this._temp_texture2;\n\n\t\t\tvar shader_copy = LGraphTextureLinearAvgSmooth._shader_copy;\n\t\t\tvar shader_avg = LGraphTextureLinearAvgSmooth._shader_avg;\n\t\t\tvar uniforms = this._uniforms;\n\t\t\tuniforms.u_samples = samples;\n\t\t\tuniforms.u_isamples = 1.0 / samples;\n\n\t\t\tgl.disable(gl.BLEND);\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\ttempA.drawTo(function() {\n\t\t\t\ttempB.bind(1);\n\t\t\t\ttex.toViewport( shader_copy, uniforms );\n\t\t\t});\n\n\t\t\tthis._temp_texture_out.drawTo(function() {\n\t\t\t\ttempA.toViewport( shader_avg, uniforms );\n\t\t\t});\n\n\t\t\tthis.setOutputData( 0, this._temp_texture_out );\n\n\t\t\t//swap\n\t\t\tthis._temp_texture = tempB;\n\t\t\tthis._temp_texture2 = tempA;\n\t\t}\n\t\telse\n\t\t\tthis.setOutputData(0, this._temp_texture_out);\n\t\tthis.setOutputData(1, this._temp_texture2);\n\t\tthis.frame++;\n\t};\n\n\tLGraphTextureLinearAvgSmooth.pixel_shader_copy =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tuniform float u_isamples;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tif( v_coord.x <= u_isamples )\\n\\\n\t\t\t\tgl_FragColor = texture2D( u_texture, vec2(0.5) );\\n\\\n\t\t\telse\\n\\\n\t\t\t\tgl_FragColor = texture2D( u_textureB, v_coord - vec2(u_isamples,0.0) );\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLGraphTextureLinearAvgSmooth.pixel_shader_avg =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform int u_samples;\\n\\\n\t\tuniform float u_isamples;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = vec4(0.0);\\n\\\n\t\t\tfor(int i = 0; i < 64; ++i)\\n\\\n\t\t\t{\\n\\\n\t\t\t\tcolor += texture2D( u_texture, vec2( float(i)*u_isamples,0.0) );\\n\\\n\t\t\t\tif(i == (u_samples - 1))\\n\\\n\t\t\t\t\tbreak;\\n\\\n\t\t\t}\\n\\\n\t\t\tgl_FragColor = color * u_isamples;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\n\tLiteGraph.registerNodeType( \"texture/linear_avg_smooth\", LGraphTextureLinearAvgSmooth );\n\n\t// Image To Texture *****************************************\n\tfunction LGraphImageToTexture() {\n\t\tthis.addInput(\"Image\", \"image\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = {};\n\t}\n\n\tLGraphImageToTexture.title = \"Image to Texture\";\n\tLGraphImageToTexture.desc = \"Uploads an image to the GPU\";\n\t//LGraphImageToTexture.widgets_info = { size: { widget:\"combo\", values:[0,32,64,128,256,512,1024,2048]} };\n\n\tLGraphImageToTexture.prototype.onExecute = function() {\n\t\tvar img = this.getInputData(0);\n\t\tif (!img) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = img.videoWidth || img.width;\n\t\tvar height = img.videoHeight || img.height;\n\n\t\t//this is in case we are using a webgl canvas already, no need to reupload it\n\t\tif (img.gltexture) {\n\t\t\tthis.setOutputData(0, img.gltexture);\n\t\t\treturn;\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\t\tif (!temp || temp.width != width || temp.height != height) {\n\t\t\tthis._temp_texture = new GL.Texture(width, height, {\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\tthis._temp_texture.uploadImage(img);\n\t\t} catch (err) {\n\t\t\tconsole.error(\n\t\t\t\t\"image comes from an unsafe location, cannot be uploaded to webgl: \" +\n\t\t\t\t\terr\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/imageToTexture\",\n\t\tLGraphImageToTexture\n\t);\n\n\t// Texture LUT *****************************************\n\tfunction LGraphTextureLUT() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addInput(\"LUT\", \"Texture\");\n\t\tthis.addInput(\"Intensity\", \"number\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = { enabled: true, intensity: 1, precision: LGraphTexture.DEFAULT, texture: null };\n\n\t\tif (!LGraphTextureLUT._shader) {\n\t\t\tLGraphTextureLUT._shader = new GL.Shader( Shader.SCREEN_VERTEX_SHADER, LGraphTextureLUT.pixel_shader );\n\t\t}\n\t}\n\n\tLGraphTextureLUT.widgets_info = {\n\t\ttexture: { widget: \"texture\" },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureLUT.title = \"LUT\";\n\tLGraphTextureLUT.desc = \"Apply LUT to Texture\";\n\n\tLGraphTextureLUT.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH || this.properties.enabled === false) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar lut_tex = this.getInputData(1);\n\n\t\tif (!lut_tex) {\n\t\t\tlut_tex = LGraphTexture.getTexture(this.properties.texture);\n\t\t}\n\n\t\tif (!lut_tex) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tlut_tex.bind(0);\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n\t\tgl.texParameteri(\n\t\t\tgl.TEXTURE_2D,\n\t\t\tgl.TEXTURE_WRAP_S,\n\t\t\tgl.CLAMP_TO_EDGE\n\t\t);\n\t\tgl.texParameteri(\n\t\t\tgl.TEXTURE_2D,\n\t\t\tgl.TEXTURE_WRAP_T,\n\t\t\tgl.CLAMP_TO_EDGE\n\t\t);\n\t\tgl.bindTexture(gl.TEXTURE_2D, null);\n\n\t\tvar intensity = this.properties.intensity;\n\t\tif (this.isInputConnected(2)) {\n\t\t\tthis.properties.intensity = intensity = this.getInputData(2);\n\t\t}\n\n\t\tthis._tex = LGraphTexture.getTargetTexture(\n\t\t\ttex,\n\t\t\tthis._tex,\n\t\t\tthis.properties.precision\n\t\t);\n\n\t\t//var mesh = Mesh.getScreenQuad();\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tlut_tex.bind(1);\n\t\t\ttex.toViewport(LGraphTextureLUT._shader, {\n\t\t\t\tu_texture: 0,\n\t\t\t\tu_textureB: 1,\n\t\t\t\tu_amount: intensity\n\t\t\t});\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureLUT.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tuniform float u_amount;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\t lowp vec4 textureColor = clamp( texture2D(u_texture, v_coord), vec4(0.0), vec4(1.0) );\\n\\\n\t\t\t mediump float blueColor = textureColor.b * 63.0;\\n\\\n\t\t\t mediump vec2 quad1;\\n\\\n\t\t\t quad1.y = floor(floor(blueColor) / 8.0);\\n\\\n\t\t\t quad1.x = floor(blueColor) - (quad1.y * 8.0);\\n\\\n\t\t\t mediump vec2 quad2;\\n\\\n\t\t\t quad2.y = floor(ceil(blueColor) / 8.0);\\n\\\n\t\t\t quad2.x = ceil(blueColor) - (quad2.y * 8.0);\\n\\\n\t\t\t highp vec2 texPos1;\\n\\\n\t\t\t texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\\n\\\n\t\t\t texPos1.y = 1.0 - ((quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g));\\n\\\n\t\t\t highp vec2 texPos2;\\n\\\n\t\t\t texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\\n\\\n\t\t\t texPos2.y = 1.0 - ((quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g));\\n\\\n\t\t\t lowp vec4 newColor1 = texture2D(u_textureB, texPos1);\\n\\\n\t\t\t lowp vec4 newColor2 = texture2D(u_textureB, texPos2);\\n\\\n\t\t\t lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\\n\\\n\t\t\t gl_FragColor = vec4( mix( textureColor.rgb, newColor.rgb, u_amount), textureColor.w);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/LUT\", LGraphTextureLUT);\n\n\n\t// Texture LUT *****************************************\n\tfunction LGraphTextureEncode() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addInput(\"Atlas\", \"Texture\");\n\t\tthis.addOutput(\"\", \"Texture\");\n\t\tthis.properties = { enabled: true, num_row_symbols: 4, symbol_size: 16, brightness: 1, colorize: false, filter: false, invert: false, precision: LGraphTexture.DEFAULT, generate_mipmaps: false, texture: null };\n\n\t\tif (!LGraphTextureEncode._shader) {\n\t\t\tLGraphTextureEncode._shader = new GL.Shader( Shader.SCREEN_VERTEX_SHADER, LGraphTextureEncode.pixel_shader );\n\t\t}\n\n\t\tthis._uniforms = {\n\t\t\t\tu_texture: 0,\n\t\t\t\tu_textureB: 1,\n\t\t\t\tu_row_simbols: 4,\n\t\t\t\tu_simbol_size: 16,\n\t\t\t\tu_res: vec2.create()\n\t\t};\n\t}\n\n\tLGraphTextureEncode.widgets_info = {\n\t\ttexture: { widget: \"texture\" },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureEncode.title = \"Encode\";\n\tLGraphTextureEncode.desc = \"Apply a texture atlas to encode a texture\";\n\n\tLGraphTextureEncode.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH || this.properties.enabled === false) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar symbols_tex = this.getInputData(1);\n\n\t\tif (!symbols_tex) {\n\t\t\tsymbols_tex = LGraphTexture.getTexture(this.properties.texture);\n\t\t}\n\n\t\tif (!symbols_tex) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tsymbols_tex.bind(0);\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, this.properties.filter ? gl.LINEAR : gl.NEAREST );\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, this.properties.filter ? gl.LINEAR : gl.NEAREST );\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE );\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE );\n\t\tgl.bindTexture(gl.TEXTURE_2D, null);\n\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_row_simbols = Math.floor(this.properties.num_row_symbols);\n\t\tuniforms.u_symbol_size = this.properties.symbol_size;\n\t\tuniforms.u_brightness = this.properties.brightness;\n\t\tuniforms.u_invert = this.properties.invert ? 1 : 0;\n\t\tuniforms.u_colorize = this.properties.colorize ? 1 : 0;\n\n\t\tthis._tex = LGraphTexture.getTargetTexture( tex, this._tex, this.properties.precision );\n\t\tuniforms.u_res[0] = this._tex.width;\n\t\tuniforms.u_res[1] = this._tex.height;\n\t\tthis._tex.bind(0);\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST );\n\t\tgl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST );\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tsymbols_tex.bind(1);\n\t\t\ttex.toViewport(LGraphTextureEncode._shader, uniforms);\n\t\t});\n\n\t\tif (this.properties.generate_mipmaps) {\n\t\t\tthis._tex.bind(0);\n\t\t\tgl.generateMipmap(this._tex.texture_type);\n\t\t\tthis._tex.unbind(0);\n\t\t}\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureEncode.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tuniform float u_row_simbols;\\n\\\n\t\tuniform float u_symbol_size;\\n\\\n\t\tuniform float u_brightness;\\n\\\n\t\tuniform float u_invert;\\n\\\n\t\tuniform float u_colorize;\\n\\\n\t\tuniform vec2 u_res;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec2 total_symbols = u_res / u_symbol_size;\\n\\\n\t\t\tvec2 uv = floor(v_coord * total_symbols) / total_symbols; //pixelate \\n\\\n\t\t\tvec2 local_uv = mod(v_coord * u_res, u_symbol_size) / u_symbol_size;\\n\\\n\t\t\tlowp vec4 textureColor = texture2D(u_texture, uv );\\n\\\n\t\t\tfloat lum = clamp(u_brightness * (textureColor.x + textureColor.y + textureColor.z)/3.0,0.0,1.0);\\n\\\n\t\t\tif( u_invert == 1.0 ) lum = 1.0 - lum;\\n\\\n\t\t\tfloat index = floor( lum * (u_row_simbols * u_row_simbols - 1.0));\\n\\\n\t\t\tfloat col = mod( index, u_row_simbols );\\n\\\n\t\t\tfloat row = u_row_simbols - floor( index / u_row_simbols ) - 1.0;\\n\\\n\t\t\tvec2 simbol_uv = ( vec2( col, row ) + local_uv ) / u_row_simbols;\\n\\\n\t\t\tvec4 color = texture2D( u_textureB, simbol_uv );\\n\\\n\t\t\tif(u_colorize == 1.0)\\n\\\n\t\t\t\tcolor *= textureColor;\\n\\\n\t\t\tgl_FragColor = color;\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/encode\", LGraphTextureEncode);\n\n\t// Texture Channels *****************************************\n\tfunction LGraphTextureChannels() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\n\t\tthis.addOutput(\"R\", \"Texture\");\n\t\tthis.addOutput(\"G\", \"Texture\");\n\t\tthis.addOutput(\"B\", \"Texture\");\n\t\tthis.addOutput(\"A\", \"Texture\");\n\n\t\t//this.properties = { use_single_channel: true };\n\t\tif (!LGraphTextureChannels._shader) {\n\t\t\tLGraphTextureChannels._shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureChannels.pixel_shader\n\t\t\t);\n\t\t}\n\t}\n\n\tLGraphTextureChannels.title = \"Texture to Channels\";\n\tLGraphTextureChannels.desc = \"Split texture channels\";\n\n\tLGraphTextureChannels.prototype.onExecute = function() {\n\t\tvar texA = this.getInputData(0);\n\t\tif (!texA) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._channels) {\n\t\t\tthis._channels = Array(4);\n\t\t}\n\n\t\t//var format = this.properties.use_single_channel ? gl.LUMINANCE : gl.RGBA; //not supported by WebGL1\n\t\tvar format = gl.RGB;\n\t\tvar connections = 0;\n\t\tfor (var i = 0; i < 4; i++) {\n\t\t\tif (this.isOutputConnected(i)) {\n\t\t\t\tif (\n\t\t\t\t\t!this._channels[i] ||\n\t\t\t\t\tthis._channels[i].width != texA.width ||\n\t\t\t\t\tthis._channels[i].height != texA.height ||\n\t\t\t\t\tthis._channels[i].type != texA.type ||\n\t\t\t\t\tthis._channels[i].format != format\n\t\t\t\t) {\n\t\t\t\t\tthis._channels[i] = new GL.Texture(\n\t\t\t\t\t\ttexA.width,\n\t\t\t\t\t\ttexA.height,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: texA.type,\n\t\t\t\t\t\t\tformat: format,\n\t\t\t\t\t\t\tfilter: gl.LINEAR\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconnections++;\n\t\t\t} else {\n\t\t\t\tthis._channels[i] = null;\n\t\t\t}\n\t\t}\n\n\t\tif (!connections) {\n\t\t\treturn;\n\t\t}\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tvar shader = LGraphTextureChannels._shader;\n\t\tvar masks = [\n\t\t\t[1, 0, 0, 0],\n\t\t\t[0, 1, 0, 0],\n\t\t\t[0, 0, 1, 0],\n\t\t\t[0, 0, 0, 1]\n\t\t];\n\n\t\tfor (var i = 0; i < 4; i++) {\n\t\t\tif (!this._channels[i]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis._channels[i].drawTo(function() {\n\t\t\t\ttexA.bind(0);\n\t\t\t\tshader\n\t\t\t\t\t.uniforms({ u_texture: 0, u_mask: masks[i] })\n\t\t\t\t\t.draw(mesh);\n\t\t\t});\n\t\t\tthis.setOutputData(i, this._channels[i]);\n\t\t}\n\t};\n\n\tLGraphTextureChannels.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec4 u_mask;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t gl_FragColor = vec4( vec3( length( texture2D(u_texture, v_coord) * u_mask )), 1.0 );\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/textureChannels\",\n\t\tLGraphTextureChannels\n\t);\n\n\t// Texture Channels to Texture *****************************************\n\tfunction LGraphChannelsTexture() {\n\t\tthis.addInput(\"R\", \"Texture\");\n\t\tthis.addInput(\"G\", \"Texture\");\n\t\tthis.addInput(\"B\", \"Texture\");\n\t\tthis.addInput(\"A\", \"Texture\");\n\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\n\t\tthis.properties = {\n\t\t\tprecision: LGraphTexture.DEFAULT,\n\t\t\tR: 1,\n\t\t\tG: 1,\n\t\t\tB: 1,\n\t\t\tA: 1\n\t\t};\n\t\tthis._color = vec4.create();\n\t\tthis._uniforms = {\n\t\t\tu_textureR: 0,\n\t\t\tu_textureG: 1,\n\t\t\tu_textureB: 2,\n\t\t\tu_textureA: 3,\n\t\t\tu_color: this._color\n\t\t};\n\t}\n\n\tLGraphChannelsTexture.title = \"Channels to Texture\";\n\tLGraphChannelsTexture.desc = \"Split texture channels\";\n\tLGraphChannelsTexture.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphChannelsTexture.prototype.onExecute = function() {\n\t\tvar white = LGraphTexture.getWhiteTexture();\n\t\tvar texR = this.getInputData(0) || white;\n\t\tvar texG = this.getInputData(1) || white;\n\t\tvar texB = this.getInputData(2) || white;\n\t\tvar texA = this.getInputData(3) || white;\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tif (!LGraphChannelsTexture._shader) {\n\t\t\tLGraphChannelsTexture._shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphChannelsTexture.pixel_shader\n\t\t\t);\n\t\t}\n\t\tvar shader = LGraphChannelsTexture._shader;\n\n\t\tvar w = Math.max(texR.width, texG.width, texB.width, texA.width);\n\t\tvar h = Math.max(\n\t\t\ttexR.height,\n\t\t\ttexG.height,\n\t\t\ttexB.height,\n\t\t\ttexA.height\n\t\t);\n\t\tvar type =\n\t\t\tthis.properties.precision == LGraphTexture.HIGH\n\t\t\t\t? LGraphTexture.HIGH_PRECISION_FORMAT\n\t\t\t\t: gl.UNSIGNED_BYTE;\n\n\t\tif (\n\t\t\t!this._texture ||\n\t\t\tthis._texture.width != w ||\n\t\t\tthis._texture.height != h ||\n\t\t\tthis._texture.type != type\n\t\t) {\n\t\t\tthis._texture = new GL.Texture(w, h, {\n\t\t\t\ttype: type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tvar color = this._color;\n\t\tcolor[0] = this.properties.R;\n\t\tcolor[1] = this.properties.G;\n\t\tcolor[2] = this.properties.B;\n\t\tcolor[3] = this.properties.A;\n\t\tvar uniforms = this._uniforms;\n\n\t\tthis._texture.drawTo(function() {\n\t\t\ttexR.bind(0);\n\t\t\ttexG.bind(1);\n\t\t\ttexB.bind(2);\n\t\t\ttexA.bind(3);\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\t\tthis.setOutputData(0, this._texture);\n\t};\n\n\tLGraphChannelsTexture.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_textureR;\\n\\\n\t\tuniform sampler2D u_textureG;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\tuniform sampler2D u_textureA;\\n\\\n\t\tuniform vec4 u_color;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t gl_FragColor = u_color * vec4( \\\n\t\t\t\t\ttexture2D(u_textureR, v_coord).r,\\\n\t\t\t\t\ttexture2D(u_textureG, v_coord).r,\\\n\t\t\t\t\ttexture2D(u_textureB, v_coord).r,\\\n\t\t\t\t\ttexture2D(u_textureA, v_coord).r);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/channelsTexture\",\n\t\tLGraphChannelsTexture\n\t);\n\n\t// Texture Color *****************************************\n\tfunction LGraphTextureColor() {\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\n\t\tthis._tex_color = vec4.create();\n\t\tthis.properties = {\n\t\t\tcolor: vec4.create(),\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureColor.title = \"Color\";\n\tLGraphTextureColor.desc =\n\t\t\"Generates a 1x1 texture with a constant color\";\n\n\tLGraphTextureColor.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureColor.prototype.onDrawBackground = function(ctx) {\n\t\tvar c = this.properties.color;\n\t\tctx.fillStyle =\n\t\t\t\"rgb(\" +\n\t\t\tMath.floor(Math.clamp(c[0], 0, 1) * 255) +\n\t\t\t\",\" +\n\t\t\tMath.floor(Math.clamp(c[1], 0, 1) * 255) +\n\t\t\t\",\" +\n\t\t\tMath.floor(Math.clamp(c[2], 0, 1) * 255) +\n\t\t\t\")\";\n\t\tif (this.flags.collapsed) {\n\t\t\tthis.boxcolor = ctx.fillStyle;\n\t\t} else {\n\t\t\tctx.fillRect(0, 0, this.size[0], this.size[1]);\n\t\t}\n\t};\n\n\tLGraphTextureColor.prototype.onExecute = function() {\n\t\tvar type =\n\t\t\tthis.properties.precision == LGraphTexture.HIGH\n\t\t\t\t? LGraphTexture.HIGH_PRECISION_FORMAT\n\t\t\t\t: gl.UNSIGNED_BYTE;\n\n\t\tif (!this._tex || this._tex.type != type) {\n\t\t\tthis._tex = new GL.Texture(1, 1, {\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\ttype: type,\n\t\t\t\tminFilter: gl.NEAREST\n\t\t\t});\n\t\t}\n\t\tvar color = this.properties.color;\n\n\t\tif (this.inputs) {\n\t\t\tfor (var i = 0; i < this.inputs.length; i++) {\n\t\t\t\tvar input = this.inputs[i];\n\t\t\t\tvar v = this.getInputData(i);\n\t\t\t\tif (v === undefined) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tswitch (input.name) {\n\t\t\t\t\tcase \"RGB\":\n\t\t\t\t\tcase \"RGBA\":\n\t\t\t\t\t\tcolor.set(v);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"R\":\n\t\t\t\t\t\tcolor[0] = v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"G\":\n\t\t\t\t\t\tcolor[1] = v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"B\":\n\t\t\t\t\t\tcolor[2] = v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"A\":\n\t\t\t\t\t\tcolor[3] = v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (vec4.sqrDist(this._tex_color, color) > 0.001) {\n\t\t\tthis._tex_color.set(color);\n\t\t\tthis._tex.fill(color);\n\t\t}\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureColor.prototype.onGetInputs = function() {\n\t\treturn [\n\t\t\t[\"RGB\", \"vec3\"],\n\t\t\t[\"RGBA\", \"vec4\"],\n\t\t\t[\"R\", \"number\"],\n\t\t\t[\"G\", \"number\"],\n\t\t\t[\"B\", \"number\"],\n\t\t\t[\"A\", \"number\"]\n\t\t];\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/color\", LGraphTextureColor);\n\n\t// Texture Channels to Texture *****************************************\n\tfunction LGraphTextureGradient() {\n\t\tthis.addInput(\"A\", \"color\");\n\t\tthis.addInput(\"B\", \"color\");\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\n\t\tthis.properties = {\n\t\t\tangle: 0,\n\t\t\tscale: 1,\n\t\t\tA: [0, 0, 0],\n\t\t\tB: [1, 1, 1],\n\t\t\ttexture_size: 32\n\t\t};\n\t\tif (!LGraphTextureGradient._shader) {\n\t\t\tLGraphTextureGradient._shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureGradient.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tthis._uniforms = {\n\t\t\tu_angle: 0,\n\t\t\tu_colorA: vec3.create(),\n\t\t\tu_colorB: vec3.create()\n\t\t};\n\t}\n\n\tLGraphTextureGradient.title = \"Gradient\";\n\tLGraphTextureGradient.desc = \"Generates a gradient\";\n\tLGraphTextureGradient[\"@A\"] = { type: \"color\" };\n\tLGraphTextureGradient[\"@B\"] = { type: \"color\" };\n\tLGraphTextureGradient[\"@texture_size\"] = {\n\t\ttype: \"enum\",\n\t\tvalues: [32, 64, 128, 256, 512]\n\t};\n\n\tLGraphTextureGradient.prototype.onExecute = function() {\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tvar mesh = GL.Mesh.getScreenQuad();\n\t\tvar shader = LGraphTextureGradient._shader;\n\n\t\tvar A = this.getInputData(0);\n\t\tif (!A) {\n\t\t\tA = this.properties.A;\n\t\t}\n\t\tvar B = this.getInputData(1);\n\t\tif (!B) {\n\t\t\tB = this.properties.B;\n\t\t}\n\n\t\t//angle and scale\n\t\tfor (var i = 2; i < this.inputs.length; i++) {\n\t\t\tvar input = this.inputs[i];\n\t\t\tvar v = this.getInputData(i);\n\t\t\tif (v === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.properties[input.name] = v;\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\t\tthis._uniforms.u_angle = this.properties.angle * DEG2RAD;\n\t\tthis._uniforms.u_scale = this.properties.scale;\n\t\tvec3.copy(uniforms.u_colorA, A);\n\t\tvec3.copy(uniforms.u_colorB, B);\n\n\t\tvar size = parseInt(this.properties.texture_size);\n\t\tif (!this._tex || this._tex.width != size) {\n\t\t\tthis._tex = new GL.Texture(size, size, {\n\t\t\t\tformat: gl.RGB,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tthis._tex.drawTo(function() {\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureGradient.prototype.onGetInputs = function() {\n\t\treturn [[\"angle\", \"number\"], [\"scale\", \"number\"]];\n\t};\n\n\tLGraphTextureGradient.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform float u_angle;\\n\\\n\t\tuniform float u_scale;\\n\\\n\t\tuniform vec3 u_colorA;\\n\\\n\t\tuniform vec3 u_colorB;\\n\\\n\t\t\\n\\\n\t\tvec2 rotate(vec2 v, float angle)\\n\\\n\t\t{\\n\\\n\t\t\tvec2 result;\\n\\\n\t\t\tfloat _cos = cos(angle);\\n\\\n\t\t\tfloat _sin = sin(angle);\\n\\\n\t\t\tresult.x = v.x * _cos - v.y * _sin;\\n\\\n\t\t\tresult.y = v.x * _sin + v.y * _cos;\\n\\\n\t\t\treturn result;\\n\\\n\t\t}\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tfloat f = (rotate(u_scale * (v_coord - vec2(0.5)), u_angle) + vec2(0.5)).x;\\n\\\n\t\t\tvec3 color = mix(u_colorA,u_colorB,clamp(f,0.0,1.0));\\n\\\n\t\t gl_FragColor = vec4(color,1.0);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/gradient\", LGraphTextureGradient);\n\n\t// Texture Mix *****************************************\n\tfunction LGraphTextureMix() {\n\t\tthis.addInput(\"A\", \"Texture\");\n\t\tthis.addInput(\"B\", \"Texture\");\n\t\tthis.addInput(\"Mixer\", \"Texture\");\n\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\t\tthis.properties = { factor: 0.5, size_from_biggest: true, invert: false, precision: LGraphTexture.DEFAULT };\n\t\tthis._uniforms = {\n\t\t\tu_textureA: 0,\n\t\t\tu_textureB: 1,\n\t\t\tu_textureMix: 2,\n\t\t\tu_mix: vec4.create()\n\t\t};\n\t}\n\n\tLGraphTextureMix.title = \"Mix\";\n\tLGraphTextureMix.desc = \"Generates a texture mixing two textures\";\n\n\tLGraphTextureMix.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureMix.prototype.onExecute = function() {\n\t\tvar texA = this.getInputData(0);\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, texA);\n\t\t\treturn;\n\t\t}\n\n\t\tvar texB = this.getInputData(1);\n\t\tif (!texA || !texB) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar texMix = this.getInputData(2);\n\n\t\tvar factor = this.getInputData(3);\n\n\t\tthis._tex = LGraphTexture.getTargetTexture(\n\t\t\tthis.properties.size_from_biggest && texB.width > texA.width ? texB : texA,\n\t\t\tthis._tex,\n\t\t\tthis.properties.precision\n\t\t);\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tvar shader = null;\n\t\tvar uniforms = this._uniforms;\n\t\tif (texMix) {\n\t\t\tshader = LGraphTextureMix._shader_tex;\n\t\t\tif (!shader) {\n\t\t\t\tshader = LGraphTextureMix._shader_tex = new GL.Shader(\n\t\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\tLGraphTextureMix.pixel_shader,\n\t\t\t\t\t{ MIX_TEX: \"\" }\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tshader = LGraphTextureMix._shader_factor;\n\t\t\tif (!shader) {\n\t\t\t\tshader = LGraphTextureMix._shader_factor = new GL.Shader(\n\t\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\tLGraphTextureMix.pixel_shader\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar f = factor == null ? this.properties.factor : factor;\n\t\t\tuniforms.u_mix.set([f, f, f, f]);\n\t\t}\n\n\t\tvar invert = this.properties.invert;\n\n\t\tthis._tex.drawTo(function() {\n\t\t\ttexA.bind( invert ? 1 : 0 );\n\t\t\ttexB.bind( invert ? 0 : 1 );\n\t\t\tif (texMix) {\n\t\t\t\ttexMix.bind(2);\n\t\t\t}\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureMix.prototype.onGetInputs = function() {\n\t\treturn [[\"factor\", \"number\"]];\n\t};\n\n\tLGraphTextureMix.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_textureA;\\n\\\n\t\tuniform sampler2D u_textureB;\\n\\\n\t\t#ifdef MIX_TEX\\n\\\n\t\t\tuniform sampler2D u_textureMix;\\n\\\n\t\t#else\\n\\\n\t\t\tuniform vec4 u_mix;\\n\\\n\t\t#endif\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\t#ifdef MIX_TEX\\n\\\n\t\t\t vec4 f = texture2D(u_textureMix, v_coord);\\n\\\n\t\t\t#else\\n\\\n\t\t\t vec4 f = u_mix;\\n\\\n\t\t\t#endif\\n\\\n\t\t gl_FragColor = mix( texture2D(u_textureA, v_coord), texture2D(u_textureB, v_coord), f );\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/mix\", LGraphTextureMix);\n\n\t// Texture Edges detection *****************************************\n\tfunction LGraphTextureEdges() {\n\t\tthis.addInput(\"Tex.\", \"Texture\");\n\n\t\tthis.addOutput(\"Edges\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tinvert: true,\n\t\t\tthreshold: false,\n\t\t\tfactor: 1,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\n\t\tif (!LGraphTextureEdges._shader) {\n\t\t\tLGraphTextureEdges._shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureEdges.pixel_shader\n\t\t\t);\n\t\t}\n\t}\n\n\tLGraphTextureEdges.title = \"Edges\";\n\tLGraphTextureEdges.desc = \"Detects edges\";\n\n\tLGraphTextureEdges.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureEdges.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._tex = LGraphTexture.getTargetTexture(\n\t\t\ttex,\n\t\t\tthis._tex,\n\t\t\tthis.properties.precision\n\t\t);\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tvar shader = LGraphTextureEdges._shader;\n\t\tvar invert = this.properties.invert;\n\t\tvar factor = this.properties.factor;\n\t\tvar threshold = this.properties.threshold ? 1 : 0;\n\n\t\tthis._tex.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader\n\t\t\t\t.uniforms({\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tu_isize: [1 / tex.width, 1 / tex.height],\n\t\t\t\t\tu_factor: factor,\n\t\t\t\t\tu_threshold: threshold,\n\t\t\t\t\tu_invert: invert ? 1 : 0\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureEdges.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 u_isize;\\n\\\n\t\tuniform int u_invert;\\n\\\n\t\tuniform float u_factor;\\n\\\n\t\tuniform float u_threshold;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 center = texture2D(u_texture, v_coord);\\n\\\n\t\t\tvec4 up = texture2D(u_texture, v_coord + u_isize * vec2(0.0,1.0) );\\n\\\n\t\t\tvec4 down = texture2D(u_texture, v_coord + u_isize * vec2(0.0,-1.0) );\\n\\\n\t\t\tvec4 left = texture2D(u_texture, v_coord + u_isize * vec2(1.0,0.0) );\\n\\\n\t\t\tvec4 right = texture2D(u_texture, v_coord + u_isize * vec2(-1.0,0.0) );\\n\\\n\t\t\tvec4 diff = abs(center - up) + abs(center - down) + abs(center - left) + abs(center - right);\\n\\\n\t\t\tdiff *= u_factor;\\n\\\n\t\t\tif(u_invert == 1)\\n\\\n\t\t\t\tdiff.xyz = vec3(1.0) - diff.xyz;\\n\\\n\t\t\tif( u_threshold == 0.0 )\\n\\\n\t\t\t\tgl_FragColor = vec4( diff.xyz, center.a );\\n\\\n\t\t\telse\\n\\\n\t\t\t\tgl_FragColor = vec4( diff.x > 0.5 ? 1.0 : 0.0, diff.y > 0.5 ? 1.0 : 0.0, diff.z > 0.5 ? 1.0 : 0.0, center.a );\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType(\"texture/edges\", LGraphTextureEdges);\n\n\t// Texture Depth *****************************************\n\tfunction LGraphTextureDepthRange() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addInput(\"Distance\", \"number\");\n\t\tthis.addInput(\"Range\", \"number\");\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tdistance: 100,\n\t\t\trange: 50,\n\t\t\tonly_depth: false,\n\t\t\thigh_precision: false\n\t\t};\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_distance: 100,\n\t\t\tu_range: 50,\n\t\t\tu_camera_planes: null\n\t\t};\n\t}\n\n\tLGraphTextureDepthRange.title = \"Depth Range\";\n\tLGraphTextureDepthRange.desc = \"Generates a texture with a depth range\";\n\n\tLGraphTextureDepthRange.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar precision = gl.UNSIGNED_BYTE;\n\t\tif (this.properties.high_precision) {\n\t\t\tprecision = gl.half_float_ext ? gl.HALF_FLOAT_OES : gl.FLOAT;\n\t\t}\n\n\t\tif (\n\t\t\t!this._temp_texture ||\n\t\t\tthis._temp_texture.type != precision ||\n\t\t\tthis._temp_texture.width != tex.width ||\n\t\t\tthis._temp_texture.height != tex.height\n\t\t) {\n\t\t\tthis._temp_texture = new GL.Texture(tex.width, tex.height, {\n\t\t\t\ttype: precision,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\n\t\t//iterations\n\t\tvar distance = this.properties.distance;\n\t\tif (this.isInputConnected(1)) {\n\t\t\tdistance = this.getInputData(1);\n\t\t\tthis.properties.distance = distance;\n\t\t}\n\n\t\tvar range = this.properties.range;\n\t\tif (this.isInputConnected(2)) {\n\t\t\trange = this.getInputData(2);\n\t\t\tthis.properties.range = range;\n\t\t}\n\n\t\tuniforms.u_distance = distance;\n\t\tuniforms.u_range = range;\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tif (!LGraphTextureDepthRange._shader) {\n\t\t\tLGraphTextureDepthRange._shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureDepthRange.pixel_shader\n\t\t\t);\n\t\t\tLGraphTextureDepthRange._shader_onlydepth = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureDepthRange.pixel_shader,\n\t\t\t\t{ ONLY_DEPTH: \"\" }\n\t\t\t);\n\t\t}\n\t\tvar shader = this.properties.only_depth\n\t\t\t? LGraphTextureDepthRange._shader_onlydepth\n\t\t\t: LGraphTextureDepthRange._shader;\n\n\t\t//NEAR AND FAR PLANES\n\t\tvar planes = null;\n\t\tif (tex.near_far_planes) {\n\t\t\tplanes = tex.near_far_planes;\n\t\t} else if (window.LS && LS.Renderer._main_camera) {\n\t\t\tplanes = LS.Renderer._main_camera._uniforms.u_camera_planes;\n\t\t} else {\n\t\t\tplanes = [0.1, 1000];\n\t\t} //hardcoded\n\t\tuniforms.u_camera_planes = planes;\n\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\n\t\tthis._temp_texture.near_far_planes = planes;\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\tLGraphTextureDepthRange.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 u_camera_planes;\\n\\\n\t\tuniform float u_distance;\\n\\\n\t\tuniform float u_range;\\n\\\n\t\t\\n\\\n\t\tfloat LinearDepth()\\n\\\n\t\t{\\n\\\n\t\t\tfloat zNear = u_camera_planes.x;\\n\\\n\t\t\tfloat zFar = u_camera_planes.y;\\n\\\n\t\t\tfloat depth = texture2D(u_texture, v_coord).x;\\n\\\n\t\t\tdepth = depth * 2.0 - 1.0;\\n\\\n\t\t\treturn zNear * (depth + 1.0) / (zFar + zNear - depth * (zFar - zNear));\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tfloat depth = LinearDepth();\\n\\\n\t\t\t#ifdef ONLY_DEPTH\\n\\\n\t\t\t gl_FragColor = vec4(depth);\\n\\\n\t\t\t#else\\n\\\n\t\t\t\tfloat diff = abs(depth * u_camera_planes.y - u_distance);\\n\\\n\t\t\t\tfloat dof = 1.0;\\n\\\n\t\t\t\tif(diff <= u_range)\\n\\\n\t\t\t\t\tdof = diff / u_range;\\n\\\n\t\t\t gl_FragColor = vec4(dof);\\n\\\n\t\t\t#endif\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType( \"texture/depth_range\", LGraphTextureDepthRange );\n\n\n\t// Texture Depth *****************************************\n\tfunction LGraphTextureLinearDepth() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"Texture\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tprecision: LGraphTexture.DEFAULT,\n\t\t\tinvert: false\n\t\t};\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_camera_planes: null, //filled later\n\t\t\tu_ires: vec2.create()\n\t\t};\n\t}\n\n\tLGraphTextureLinearDepth.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureLinearDepth.title = \"Linear Depth\";\n\tLGraphTextureLinearDepth.desc = \"Creates a color texture with linear depth\";\n\n\tLGraphTextureLinearDepth.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex || (tex.format != gl.DEPTH_COMPONENT && tex.format != gl.DEPTH_STENCIL) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar precision = this.properties.precision == LGraphTexture.HIGH ? gl.HIGH_PRECISION_FORMAT : gl.UNSIGNED_BYTE;\n\n\t\tif ( !this._temp_texture || this._temp_texture.type != precision || this._temp_texture.width != tex.width || this._temp_texture.height != tex.height ) {\n\t\t\tthis._temp_texture = new GL.Texture(tex.width, tex.height, {\n\t\t\t\ttype: precision,\n\t\t\t\tformat: gl.RGB,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_invert = this.properties.invert ? 1 : 0;\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tif(!LGraphTextureLinearDepth._shader)\n\t\t\tLGraphTextureLinearDepth._shader = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphTextureLinearDepth.pixel_shader);\n\t\tvar shader = LGraphTextureLinearDepth._shader;\n\n\t\t//NEAR AND FAR PLANES\n\t\tvar planes = null;\n\t\tif (tex.near_far_planes) {\n\t\t\tplanes = tex.near_far_planes;\n\t\t} else if (window.LS && LS.Renderer._main_camera) {\n\t\t\tplanes = LS.Renderer._main_camera._uniforms.u_camera_planes;\n\t\t} else {\n\t\t\tplanes = [0.1, 1000];\n\t\t} //hardcoded\n\t\tuniforms.u_camera_planes = planes;\n\t\t//uniforms.u_ires.set([1/tex.width, 1/tex.height]);\n\t\tuniforms.u_ires.set([0,0]);\n\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\n\t\tthis._temp_texture.near_far_planes = planes;\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\tLGraphTextureLinearDepth.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 u_camera_planes;\\n\\\n\t\tuniform int u_invert;\\n\\\n\t\tuniform vec2 u_ires;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tfloat zNear = u_camera_planes.x;\\n\\\n\t\t\tfloat zFar = u_camera_planes.y;\\n\\\n\t\t\tfloat depth = texture2D(u_texture, v_coord + u_ires*0.5).x * 2.0 - 1.0;\\n\\\n\t\t\tfloat f = zNear * (depth + 1.0) / (zFar + zNear - depth * (zFar - zNear));\\n\\\n\t\t\tif( u_invert == 1 )\\n\\\n\t\t\t\tf = 1.0 - f;\\n\\\n\t\t\tgl_FragColor = vec4(vec3(f),1.0);\\n\\\n\t\t}\\n\\\n\t\t\";\n\n\tLiteGraph.registerNodeType( \"texture/linear_depth\", LGraphTextureLinearDepth );\n\n\t// Texture Blur *****************************************\n\tfunction LGraphTextureBlur() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addInput(\"Iterations\", \"number\");\n\t\tthis.addInput(\"Intensity\", \"number\");\n\t\tthis.addOutput(\"Blurred\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tintensity: 1,\n\t\t\titerations: 1,\n\t\t\tpreserve_aspect: false,\n\t\t\tscale: [1, 1],\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureBlur.title = \"Blur\";\n\tLGraphTextureBlur.desc = \"Blur a texture\";\n\n\tLGraphTextureBlur.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureBlur.max_iterations = 20;\n\n\tLGraphTextureBlur.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar temp = this._final_texture;\n\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\t//we need two textures to do the blurring\n\t\t\t//this._temp_texture = new GL.Texture( tex.width, tex.height, { type: tex.type, format: gl.RGBA, filter: gl.LINEAR });\n\t\t\ttemp = this._final_texture = new GL.Texture(\n\t\t\t\ttex.width,\n\t\t\t\ttex.height,\n\t\t\t\t{ type: tex.type, format: gl.RGBA, filter: gl.LINEAR }\n\t\t\t);\n\t\t}\n\n\t\t//iterations\n\t\tvar iterations = this.properties.iterations;\n\t\tif (this.isInputConnected(1)) {\n\t\t\titerations = this.getInputData(1);\n\t\t\tthis.properties.iterations = iterations;\n\t\t}\n\t\titerations = Math.min(\n\t\t\tMath.floor(iterations),\n\t\t\tLGraphTextureBlur.max_iterations\n\t\t);\n\t\tif (iterations == 0) {\n\t\t\t//skip blurring\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar intensity = this.properties.intensity;\n\t\tif (this.isInputConnected(2)) {\n\t\t\tintensity = this.getInputData(2);\n\t\t\tthis.properties.intensity = intensity;\n\t\t}\n\n\t\t//blur sometimes needs an aspect correction\n\t\tvar aspect = LiteGraph.camera_aspect;\n\t\tif (!aspect && window.gl !== undefined) {\n\t\t\taspect = gl.canvas.height / gl.canvas.width;\n\t\t}\n\t\tif (!aspect) {\n\t\t\taspect = 1;\n\t\t}\n\t\taspect = this.properties.preserve_aspect ? aspect : 1;\n\n\t\tvar scale = this.properties.scale || [1, 1];\n\t\ttex.applyBlur(aspect * scale[0], scale[1], intensity, temp);\n\t\tfor (var i = 1; i < iterations; ++i) {\n\t\t\ttemp.applyBlur(\n\t\t\t\taspect * scale[0] * (i + 1),\n\t\t\t\tscale[1] * (i + 1),\n\t\t\t\tintensity\n\t\t\t);\n\t\t}\n\n\t\tthis.setOutputData(0, temp);\n\t};\n\n\t/*\nLGraphTextureBlur.pixel_shader = \"precision highp float;\\n\\\n\t\tprecision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec2 u_offset;\\n\\\n\t\tuniform float u_intensity;\\n\\\n\t\tvoid main() {\\n\\\n\t\t vec4 sum = vec4(0.0);\\n\\\n\t\t vec4 center = texture2D(u_texture, v_coord);\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * -4.0) * 0.05/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * -3.0) * 0.09/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * -2.0) * 0.12/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * -1.0) * 0.15/0.98;\\n\\\n\t\t sum += center * 0.16/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * 4.0) * 0.05/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * 3.0) * 0.09/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * 2.0) * 0.12/0.98;\\n\\\n\t\t sum += texture2D(u_texture, v_coord + u_offset * 1.0) * 0.15/0.98;\\n\\\n\t\t gl_FragColor = u_intensity * sum;\\n\\\n\t\t}\\n\\\n\t\t\";\n*/\n\n\tLiteGraph.registerNodeType(\"texture/blur\", LGraphTextureBlur);\n\n\t//Independent glow FX\n\t//based on https://catlikecoding.com/unity/tutorials/advanced-rendering/bloom/\n\tfunction FXGlow()\n\t{\n\t\tthis.intensity = 0.5;\n\t\tthis.persistence = 0.6;\n\t\tthis.iterations = 8;\n\t\tthis.threshold = 0.8;\n\t\tthis.scale = 1;\n\n\t\tthis.dirt_texture = null;\n\t\tthis.dirt_factor = 0.5;\n\n\t\tthis._textures = [];\n\t\tthis._uniforms = {\n\t\t\tu_intensity: 1,\n\t\t\tu_texture: 0,\n\t\t\tu_glow_texture: 1,\n\t\t\tu_threshold: 0,\n\t\t\tu_texel_size: vec2.create()\n\t\t};\n\t}\n\n\tFXGlow.prototype.applyFX = function( tex, output_texture, glow_texture, average_texture ) {\n\n\t\tvar width = tex.width;\n\t\tvar height = tex.height;\n\n\t\tvar texture_info = {\n\t\t\tformat: tex.format,\n\t\t\ttype: tex.type,\n\t\t\tminFilter: GL.LINEAR,\n\t\t\tmagFilter: GL.LINEAR,\n\t\t\twrap: gl.CLAMP_TO_EDGE\n\t\t};\n\n\t\tvar uniforms = this._uniforms;\n\t\tvar textures = this._textures;\n\n\t\t//cut\n\t\tvar shader = FXGlow._cut_shader;\n\t\tif (!shader) {\n\t\t\tshader = FXGlow._cut_shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tFXGlow.cut_pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\tgl.disable(gl.BLEND);\n\n\t\tuniforms.u_threshold = this.threshold;\n\t\tvar currentDestination = (textures[0] = GL.Texture.getTemporary(\n\t\t\twidth,\n\t\t\theight,\n\t\t\ttexture_info\n\t\t));\n\t\ttex.blit( currentDestination, shader.uniforms(uniforms) );\n\t\tvar currentSource = currentDestination;\n\n\t\tvar iterations = this.iterations;\n\t\titerations = Math.clamp(iterations, 1, 16) | 0;\n\t\tvar texel_size = uniforms.u_texel_size;\n\t\tvar intensity = this.intensity;\n\n\t\tuniforms.u_intensity = 1;\n\t\tuniforms.u_delta = this.scale; //1\n\n\t\t//downscale/upscale shader\n\t\tvar shader = FXGlow._shader;\n\t\tif (!shader) {\n\t\t\tshader = FXGlow._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tFXGlow.scale_pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar i = 1;\n\t\t//downscale\n\t\tfor (; i < iterations; i++) {\n\t\t\twidth = width >> 1;\n\t\t\tif ((height | 0) > 1) {\n\t\t\t\theight = height >> 1;\n\t\t\t}\n\t\t\tif (width < 2) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcurrentDestination = textures[i] = GL.Texture.getTemporary(\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\ttexture_info\n\t\t\t);\n\t\t\ttexel_size[0] = 1 / currentSource.width;\n\t\t\ttexel_size[1] = 1 / currentSource.height;\n\t\t\tcurrentSource.blit(\n\t\t\t\tcurrentDestination,\n\t\t\t\tshader.uniforms(uniforms)\n\t\t\t);\n\t\t\tcurrentSource = currentDestination;\n\t\t}\n\n\t\t//average\n\t\tif (average_texture) {\n\t\t\ttexel_size[0] = 1 / currentSource.width;\n\t\t\ttexel_size[1] = 1 / currentSource.height;\n\t\t\tuniforms.u_intensity = intensity;\n\t\t\tuniforms.u_delta = 1;\n\t\t\tcurrentSource.blit(average_texture, shader.uniforms(uniforms));\n\t\t}\n\n\t\t//upscale and blend\n\t\tgl.enable(gl.BLEND);\n\t\tgl.blendFunc(gl.ONE, gl.ONE);\n\t\tuniforms.u_intensity = this.persistence;\n\t\tuniforms.u_delta = 0.5;\n\n\t\t// i-=2 => -1 to point to last element in array, -1 to go to texture above\n\t\tfor ( i -= 2; i >= 0; i-- ) \n\t\t{\n\t\t\tcurrentDestination = textures[i];\n\t\t\ttextures[i] = null;\n\t\t\ttexel_size[0] = 1 / currentSource.width;\n\t\t\ttexel_size[1] = 1 / currentSource.height;\n\t\t\tcurrentSource.blit(\n\t\t\t\tcurrentDestination,\n\t\t\t\tshader.uniforms(uniforms)\n\t\t\t);\n\t\t\tGL.Texture.releaseTemporary(currentSource);\n\t\t\tcurrentSource = currentDestination;\n\t\t}\n\t\tgl.disable(gl.BLEND);\n\n\t\t//glow\n\t\tif (glow_texture) {\n\t\t\tcurrentSource.blit(glow_texture);\n\t\t}\n\n\t\t//final composition\n\t\tif ( output_texture ) {\n\t\t\tvar final_texture = output_texture;\n\t\t\tvar dirt_texture = this.dirt_texture;\n\t\t\tvar dirt_factor = this.dirt_factor;\n\t\t\tuniforms.u_intensity = intensity;\n\n\t\t\tshader = dirt_texture\n\t\t\t\t? FXGlow._dirt_final_shader\n\t\t\t\t: FXGlow._final_shader;\n\t\t\tif (!shader) {\n\t\t\t\tif (dirt_texture) {\n\t\t\t\t\tshader = FXGlow._dirt_final_shader = new GL.Shader(\n\t\t\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\t\tFXGlow.final_pixel_shader,\n\t\t\t\t\t\t{ USE_DIRT: \"\" }\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tshader = FXGlow._final_shader = new GL.Shader(\n\t\t\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\t\tFXGlow.final_pixel_shader\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfinal_texture.drawTo(function() {\n\t\t\t\ttex.bind(0);\n\t\t\t\tcurrentSource.bind(1);\n\t\t\t\tif (dirt_texture) {\n\t\t\t\t\tshader.setUniform(\"u_dirt_factor\", dirt_factor);\n\t\t\t\t\tshader.setUniform(\n\t\t\t\t\t\t\"u_dirt_texture\",\n\t\t\t\t\t\tdirt_texture.bind(2)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tshader.toViewport(uniforms);\n\t\t\t});\n\t\t}\n\n\t\tGL.Texture.releaseTemporary(currentSource);\n\t};\n\n\tFXGlow.cut_pixel_shader =\n\t\t\"precision highp float;\\n\\\n\tvarying vec2 v_coord;\\n\\\n\tuniform sampler2D u_texture;\\n\\\n\tuniform float u_threshold;\\n\\\n\tvoid main() {\\n\\\n\t\tgl_FragColor = max( texture2D( u_texture, v_coord ) - vec4( u_threshold ), vec4(0.0) );\\n\\\n\t}\";\n\n\tFXGlow.scale_pixel_shader =\n\t\t\"precision highp float;\\n\\\n\tvarying vec2 v_coord;\\n\\\n\tuniform sampler2D u_texture;\\n\\\n\tuniform vec2 u_texel_size;\\n\\\n\tuniform float u_delta;\\n\\\n\tuniform float u_intensity;\\n\\\n\t\\n\\\n\tvec4 sampleBox(vec2 uv) {\\n\\\n\t\tvec4 o = u_texel_size.xyxy * vec2(-u_delta, u_delta).xxyy;\\n\\\n\t\tvec4 s = texture2D( u_texture, uv + o.xy ) + texture2D( u_texture, uv + o.zy) + texture2D( u_texture, uv + o.xw) + texture2D( u_texture, uv + o.zw);\\n\\\n\t\treturn s * 0.25;\\n\\\n\t}\\n\\\n\tvoid main() {\\n\\\n\t\tgl_FragColor = u_intensity * sampleBox( v_coord );\\n\\\n\t}\";\n\n\tFXGlow.final_pixel_shader =\n\t\t\"precision highp float;\\n\\\n\tvarying vec2 v_coord;\\n\\\n\tuniform sampler2D u_texture;\\n\\\n\tuniform sampler2D u_glow_texture;\\n\\\n\t#ifdef USE_DIRT\\n\\\n\t\tuniform sampler2D u_dirt_texture;\\n\\\n\t#endif\\n\\\n\tuniform vec2 u_texel_size;\\n\\\n\tuniform float u_delta;\\n\\\n\tuniform float u_intensity;\\n\\\n\tuniform float u_dirt_factor;\\n\\\n\t\\n\\\n\tvec4 sampleBox(vec2 uv) {\\n\\\n\t\tvec4 o = u_texel_size.xyxy * vec2(-u_delta, u_delta).xxyy;\\n\\\n\t\tvec4 s = texture2D( u_glow_texture, uv + o.xy ) + texture2D( u_glow_texture, uv + o.zy) + texture2D( u_glow_texture, uv + o.xw) + texture2D( u_glow_texture, uv + o.zw);\\n\\\n\t\treturn s * 0.25;\\n\\\n\t}\\n\\\n\tvoid main() {\\n\\\n\t\tvec4 glow = sampleBox( v_coord );\\n\\\n\t\t#ifdef USE_DIRT\\n\\\n\t\t\tglow = mix( glow, glow * texture2D( u_dirt_texture, v_coord ), u_dirt_factor );\\n\\\n\t\t#endif\\n\\\n\t\tgl_FragColor = texture2D( u_texture, v_coord ) + u_intensity * glow;\\n\\\n\t}\";\n\n\n\t// Texture Glow *****************************************\n\tfunction LGraphTextureGlow() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"dirt\", \"Texture\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.addOutput(\"glow\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tenabled: true,\n\t\t\tintensity: 1,\n\t\t\tpersistence: 0.99,\n\t\t\titerations: 16,\n\t\t\tthreshold: 0,\n\t\t\tscale: 1,\n\t\t\tdirt_factor: 0.5,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\n\t\tthis.fx = new FXGlow();\n\t}\n\n\tLGraphTextureGlow.title = \"Glow\";\n\tLGraphTextureGlow.desc = \"Filters a texture giving it a glow effect\";\n\n\tLGraphTextureGlow.widgets_info = {\n\t\titerations: {\n\t\t\ttype: \"number\",\n\t\t\tmin: 0,\n\t\t\tmax: 16,\n\t\t\tstep: 1,\n\t\t\tprecision: 0\n\t\t},\n\t\tthreshold: {\n\t\t\ttype: \"number\",\n\t\t\tmin: 0,\n\t\t\tmax: 10,\n\t\t\tstep: 0.01,\n\t\t\tprecision: 2\n\t\t},\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureGlow.prototype.onGetInputs = function() {\n\t\treturn [\n\t\t\t[\"enabled\", \"boolean\"],\n\t\t\t[\"threshold\", \"number\"],\n\t\t\t[\"intensity\", \"number\"],\n\t\t\t[\"persistence\", \"number\"],\n\t\t\t[\"iterations\", \"number\"],\n\t\t\t[\"dirt_factor\", \"number\"]\n\t\t];\n\t};\n\n\tLGraphTextureGlow.prototype.onGetOutputs = function() {\n\t\treturn [[\"average\", \"Texture\"]];\n\t};\n\n\tLGraphTextureGlow.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isAnyOutputConnected()) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (\n\t\t\tthis.properties.precision === LGraphTexture.PASS_THROUGH ||\n\t\t\tthis.getInputOrProperty(\"enabled\") === false\n\t\t) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = tex.width;\n\t\tvar height = tex.height;\n\n\t\tvar fx = this.fx;\n\t\tfx.threshold = this.getInputOrProperty(\"threshold\");\n\t\tfx.iterations = this.getInputOrProperty(\"iterations\");\n\t\tfx.intensity = this.getInputOrProperty(\"intensity\");\n\t\tfx.persistence = this.getInputOrProperty(\"persistence\");\n\t\tfx.dirt_texture = this.getInputData(1);\n\t\tfx.dirt_factor = this.getInputOrProperty(\"dirt_factor\");\n\t\tfx.scale = this.properties.scale;\n\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision, tex );\n\n\t\tvar average_texture = null;\n\t\tif (this.isOutputConnected(2)) {\n\t\t\taverage_texture = this._average_texture;\n\t\t\tif (\n\t\t\t\t!average_texture ||\n\t\t\t\taverage_texture.type != tex.type ||\n\t\t\t\taverage_texture.format != tex.format\n\t\t\t) {\n\t\t\t\taverage_texture = this._average_texture = new GL.Texture(\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: tex.type,\n\t\t\t\t\t\tformat: tex.format,\n\t\t\t\t\t\tfilter: gl.LINEAR\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tvar glow_texture = null;\n\t\tif (this.isOutputConnected(1)) {\n\t\t\tglow_texture = this._glow_texture;\n\t\t\tif (\n\t\t\t\t!glow_texture ||\n\t\t\t\tglow_texture.width != tex.width ||\n\t\t\t\tglow_texture.height != tex.height ||\n\t\t\t\tglow_texture.type != type ||\n\t\t\t\tglow_texture.format != tex.format\n\t\t\t) {\n\t\t\t\tglow_texture = this._glow_texture = new GL.Texture(\n\t\t\t\t\ttex.width,\n\t\t\t\t\ttex.height,\n\t\t\t\t\t{ type: type, format: tex.format, filter: gl.LINEAR }\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tvar final_texture = null;\n\t\tif (this.isOutputConnected(0)) {\n\t\t\tfinal_texture = this._final_texture;\n\t\t\tif (\n\t\t\t\t!final_texture ||\n\t\t\t\tfinal_texture.width != tex.width ||\n\t\t\t\tfinal_texture.height != tex.height ||\n\t\t\t\tfinal_texture.type != type ||\n\t\t\t\tfinal_texture.format != tex.format\n\t\t\t) {\n\t\t\t\tfinal_texture = this._final_texture = new GL.Texture(\n\t\t\t\t\ttex.width,\n\t\t\t\t\ttex.height,\n\t\t\t\t\t{ type: type, format: tex.format, filter: gl.LINEAR }\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\t//apply FX\n\t\tfx.applyFX(tex, final_texture, glow_texture, average_texture );\n\n\t\tif (this.isOutputConnected(0))\n\t\t\tthis.setOutputData(0, final_texture);\n\n\t\tif (this.isOutputConnected(1))\n\t\t\tthis.setOutputData(1, average_texture);\n\n\t\tif (this.isOutputConnected(2))\n\t\t\tthis.setOutputData(2, glow_texture);\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/glow\", LGraphTextureGlow);\n\n\t// Texture Filter *****************************************\n\tfunction LGraphTextureKuwaharaFilter() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"Filtered\", \"Texture\");\n\t\tthis.properties = { intensity: 1, radius: 5 };\n\t}\n\n\tLGraphTextureKuwaharaFilter.title = \"Kuwahara Filter\";\n\tLGraphTextureKuwaharaFilter.desc =\n\t\t\"Filters a texture giving an artistic oil canvas painting\";\n\n\tLGraphTextureKuwaharaFilter.max_radius = 10;\n\tLGraphTextureKuwaharaFilter._shaders = [];\n\n\tLGraphTextureKuwaharaFilter.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar temp = this._temp_texture;\n\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\tthis._temp_texture = new GL.Texture(tex.width, tex.height, {\n\t\t\t\ttype: tex.type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\t//iterations\n\t\tvar radius = this.properties.radius;\n\t\tradius = Math.min(\n\t\t\tMath.floor(radius),\n\t\t\tLGraphTextureKuwaharaFilter.max_radius\n\t\t);\n\t\tif (radius == 0) {\n\t\t\t//skip blurring\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar intensity = this.properties.intensity;\n\n\t\t//blur sometimes needs an aspect correction\n\t\tvar aspect = LiteGraph.camera_aspect;\n\t\tif (!aspect && window.gl !== undefined) {\n\t\t\taspect = gl.canvas.height / gl.canvas.width;\n\t\t}\n\t\tif (!aspect) {\n\t\t\taspect = 1;\n\t\t}\n\t\taspect = this.properties.preserve_aspect ? aspect : 1;\n\n\t\tif (!LGraphTextureKuwaharaFilter._shaders[radius]) {\n\t\t\tLGraphTextureKuwaharaFilter._shaders[radius] = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureKuwaharaFilter.pixel_shader,\n\t\t\t\t{ RADIUS: radius.toFixed(0) }\n\t\t\t);\n\t\t}\n\n\t\tvar shader = LGraphTextureKuwaharaFilter._shaders[radius];\n\t\tvar mesh = GL.Mesh.getScreenQuad();\n\t\ttex.bind(0);\n\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\tshader\n\t\t\t\t.uniforms({\n\t\t\t\t\tu_texture: 0,\n\t\t\t\t\tu_intensity: intensity,\n\t\t\t\t\tu_resolution: [tex.width, tex.height],\n\t\t\t\t\tu_iResolution: [1 / tex.width, 1 / tex.height]\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\t//from https://www.shadertoy.com/view/MsXSz4\n\tLGraphTextureKuwaharaFilter.pixel_shader =\n\t\t\"\\n\\\nprecision highp float;\\n\\\nvarying vec2 v_coord;\\n\\\nuniform sampler2D u_texture;\\n\\\nuniform float u_intensity;\\n\\\nuniform vec2 u_resolution;\\n\\\nuniform vec2 u_iResolution;\\n\\\n#ifndef RADIUS\\n\\\n\t#define RADIUS 7\\n\\\n#endif\\n\\\nvoid main() {\\n\\\n\\n\\\n\tconst int radius = RADIUS;\\n\\\n\tvec2 fragCoord = v_coord;\\n\\\n\tvec2 src_size = u_iResolution;\\n\\\n\tvec2 uv = v_coord;\\n\\\n\tfloat n = float((radius + 1) * (radius + 1));\\n\\\n\tint i;\\n\\\n\tint j;\\n\\\n\tvec3 m0 = vec3(0.0); vec3 m1 = vec3(0.0); vec3 m2 = vec3(0.0); vec3 m3 = vec3(0.0);\\n\\\n\tvec3 s0 = vec3(0.0); vec3 s1 = vec3(0.0); vec3 s2 = vec3(0.0); vec3 s3 = vec3(0.0);\\n\\\n\tvec3 c;\\n\\\n\t\\n\\\n\tfor (int j = -radius; j <= 0; ++j) {\\n\\\n\t\tfor (int i = -radius; i <= 0; ++i) {\\n\\\n\t\t\tc = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb;\\n\\\n\t\t\tm0 += c;\\n\\\n\t\t\ts0 += c * c;\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\t\\n\\\n\tfor (int j = -radius; j <= 0; ++j) {\\n\\\n\t\tfor (int i = 0; i <= radius; ++i) {\\n\\\n\t\t\tc = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb;\\n\\\n\t\t\tm1 += c;\\n\\\n\t\t\ts1 += c * c;\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\t\\n\\\n\tfor (int j = 0; j <= radius; ++j) {\\n\\\n\t\tfor (int i = 0; i <= radius; ++i) {\\n\\\n\t\t\tc = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb;\\n\\\n\t\t\tm2 += c;\\n\\\n\t\t\ts2 += c * c;\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\t\\n\\\n\tfor (int j = 0; j <= radius; ++j) {\\n\\\n\t\tfor (int i = -radius; i <= 0; ++i) {\\n\\\n\t\t\tc = texture2D(u_texture, uv + vec2(i,j) * src_size).rgb;\\n\\\n\t\t\tm3 += c;\\n\\\n\t\t\ts3 += c * c;\\n\\\n\t\t}\\n\\\n\t}\\n\\\n\t\\n\\\n\tfloat min_sigma2 = 1e+2;\\n\\\n\tm0 /= n;\\n\\\n\ts0 = abs(s0 / n - m0 * m0);\\n\\\n\t\\n\\\n\tfloat sigma2 = s0.r + s0.g + s0.b;\\n\\\n\tif (sigma2 < min_sigma2) {\\n\\\n\t\tmin_sigma2 = sigma2;\\n\\\n\t\tgl_FragColor = vec4(m0, 1.0);\\n\\\n\t}\\n\\\n\t\\n\\\n\tm1 /= n;\\n\\\n\ts1 = abs(s1 / n - m1 * m1);\\n\\\n\t\\n\\\n\tsigma2 = s1.r + s1.g + s1.b;\\n\\\n\tif (sigma2 < min_sigma2) {\\n\\\n\t\tmin_sigma2 = sigma2;\\n\\\n\t\tgl_FragColor = vec4(m1, 1.0);\\n\\\n\t}\\n\\\n\t\\n\\\n\tm2 /= n;\\n\\\n\ts2 = abs(s2 / n - m2 * m2);\\n\\\n\t\\n\\\n\tsigma2 = s2.r + s2.g + s2.b;\\n\\\n\tif (sigma2 < min_sigma2) {\\n\\\n\t\tmin_sigma2 = sigma2;\\n\\\n\t\tgl_FragColor = vec4(m2, 1.0);\\n\\\n\t}\\n\\\n\t\\n\\\n\tm3 /= n;\\n\\\n\ts3 = abs(s3 / n - m3 * m3);\\n\\\n\t\\n\\\n\tsigma2 = s3.r + s3.g + s3.b;\\n\\\n\tif (sigma2 < min_sigma2) {\\n\\\n\t\tmin_sigma2 = sigma2;\\n\\\n\t\tgl_FragColor = vec4(m3, 1.0);\\n\\\n\t}\\n\\\n}\\n\\\n\";\n\n\tLiteGraph.registerNodeType(\n\t\t\"texture/kuwahara\",\n\t\tLGraphTextureKuwaharaFilter\n\t);\n\n\t// Texture *****************************************\n\tfunction LGraphTextureXDoGFilter() {\n\t\tthis.addInput(\"Texture\", \"Texture\");\n\t\tthis.addOutput(\"Filtered\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tsigma: 1.4,\n\t\t\tk: 1.6,\n\t\t\tp: 21.7,\n\t\t\tepsilon: 79,\n\t\t\tphi: 0.017\n\t\t};\n\t}\n\n\tLGraphTextureXDoGFilter.title = \"XDoG Filter\";\n\tLGraphTextureXDoGFilter.desc =\n\t\t\"Filters a texture giving an artistic ink style\";\n\n\tLGraphTextureXDoGFilter.max_radius = 10;\n\tLGraphTextureXDoGFilter._shaders = [];\n\n\tLGraphTextureXDoGFilter.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar temp = this._temp_texture;\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\tthis._temp_texture = new GL.Texture(tex.width, tex.height, {\n\t\t\t\ttype: tex.type,\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tif (!LGraphTextureXDoGFilter._xdog_shader) {\n\t\t\tLGraphTextureXDoGFilter._xdog_shader = new GL.Shader(\n\t\t\t\tShader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureXDoGFilter.xdog_pixel_shader\n\t\t\t);\n\t\t}\n\t\tvar shader = LGraphTextureXDoGFilter._xdog_shader;\n\t\tvar mesh = GL.Mesh.getScreenQuad();\n\n\t\tvar sigma = this.properties.sigma;\n\t\tvar k = this.properties.k;\n\t\tvar p = this.properties.p;\n\t\tvar epsilon = this.properties.epsilon;\n\t\tvar phi = this.properties.phi;\n\t\ttex.bind(0);\n\t\tthis._temp_texture.drawTo(function() {\n\t\t\tshader\n\t\t\t\t.uniforms({\n\t\t\t\t\tsrc: 0,\n\t\t\t\t\tsigma: sigma,\n\t\t\t\t\tk: k,\n\t\t\t\t\tp: p,\n\t\t\t\t\tepsilon: epsilon,\n\t\t\t\t\tphi: phi,\n\t\t\t\t\tcvsWidth: tex.width,\n\t\t\t\t\tcvsHeight: tex.height\n\t\t\t\t})\n\t\t\t\t.draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\t//from https://github.com/RaymondMcGuire/GPU-Based-Image-Processing-Tools/blob/master/lib_webgl/scripts/main.js\n\tLGraphTextureXDoGFilter.xdog_pixel_shader =\n\t\t\"\\n\\\nprecision highp float;\\n\\\nuniform sampler2D src;\\n\\n\\\nuniform float cvsHeight;\\n\\\nuniform float cvsWidth;\\n\\n\\\nuniform float sigma;\\n\\\nuniform float k;\\n\\\nuniform float p;\\n\\\nuniform float epsilon;\\n\\\nuniform float phi;\\n\\\nvarying vec2 v_coord;\\n\\n\\\nfloat cosh(float val)\\n\\\n{\\n\\\n\tfloat tmp = exp(val);\\n\\\n\tfloat cosH = (tmp + 1.0 / tmp) / 2.0;\\n\\\n\treturn cosH;\\n\\\n}\\n\\n\\\nfloat tanh(float val)\\n\\\n{\\n\\\n\tfloat tmp = exp(val);\\n\\\n\tfloat tanH = (tmp - 1.0 / tmp) / (tmp + 1.0 / tmp);\\n\\\n\treturn tanH;\\n\\\n}\\n\\n\\\nfloat sinh(float val)\\n\\\n{\\n\\\n\tfloat tmp = exp(val);\\n\\\n\tfloat sinH = (tmp - 1.0 / tmp) / 2.0;\\n\\\n\treturn sinH;\\n\\\n}\\n\\n\\\nvoid main(void){\\n\\\n\tvec3 destColor = vec3(0.0);\\n\\\n\tfloat tFrag = 1.0 / cvsHeight;\\n\\\n\tfloat sFrag = 1.0 / cvsWidth;\\n\\\n\tvec2 Frag = vec2(sFrag,tFrag);\\n\\\n\tvec2 uv = gl_FragCoord.st;\\n\\\n\tfloat twoSigmaESquared = 2.0 * sigma * sigma;\\n\\\n\tfloat twoSigmaRSquared = twoSigmaESquared * k * k;\\n\\\n\tint halfWidth = int(ceil( 1.0 * sigma * k ));\\n\\n\\\n\tconst int MAX_NUM_ITERATION = 99999;\\n\\\n\tvec2 sum = vec2(0.0);\\n\\\n\tvec2 norm = vec2(0.0);\\n\\n\\\n\tfor(int cnt=0;cnt (2*halfWidth+1)*(2*halfWidth+1)){break;}\\n\\\n\t\tint i = int(cnt / (2*halfWidth+1)) - halfWidth;\\n\\\n\t\tint j = cnt - halfWidth - int(cnt / (2*halfWidth+1)) * (2*halfWidth+1);\\n\\n\\\n\t\tfloat d = length(vec2(i,j));\\n\\\n\t\tvec2 kernel = vec2( exp( -d * d / twoSigmaESquared ), \\n\\\n\t\t\t\t\t\t\texp( -d * d / twoSigmaRSquared ));\\n\\n\\\n\t\tvec2 L = texture2D(src, (uv + vec2(i,j)) * Frag).xx;\\n\\n\\\n\t\tnorm += kernel;\\n\\\n\t\tsum += kernel * L;\\n\\\n\t}\\n\\n\\\n\tsum /= norm;\\n\\n\\\n\tfloat H = 100.0 * ((1.0 + p) * sum.x - p * sum.y);\\n\\\n\tfloat edge = ( H > epsilon )? 1.0 : 1.0 + tanh( phi * (H - epsilon));\\n\\\n\tdestColor = vec3(edge);\\n\\\n\tgl_FragColor = vec4(destColor, 1.0);\\n\\\n}\";\n\n\tLiteGraph.registerNodeType(\"texture/xDoG\", LGraphTextureXDoGFilter);\n\n\t// Texture Webcam *****************************************\n\tfunction LGraphTextureWebcam() {\n\t\tthis.addOutput(\"Webcam\", \"Texture\");\n\t\tthis.properties = { texture_name: \"\", facingMode: \"user\" };\n\t\tthis.boxcolor = \"black\";\n\t\tthis.version = 0;\n\t}\n\n\tLGraphTextureWebcam.title = \"Webcam\";\n\tLGraphTextureWebcam.desc = \"Webcam texture\";\n\n\tLGraphTextureWebcam.is_webcam_open = false;\n\n\tLGraphTextureWebcam.prototype.openStream = function() {\n\t\tif (!navigator.getUserMedia) {\n\t\t\t//console.log('getUserMedia() is not supported in your browser, use chrome and enable WebRTC from about://flags');\n\t\t\treturn;\n\t\t}\n\n\t\tthis._waiting_confirmation = true;\n\n\t\t// Not showing vendor prefixes.\n\t\tvar constraints = {\n\t\t\taudio: false,\n\t\t\tvideo: { facingMode: this.properties.facingMode }\n\t\t};\n\t\tnavigator.mediaDevices\n\t\t\t.getUserMedia(constraints)\n\t\t\t.then(this.streamReady.bind(this))\n\t\t\t.catch(onFailSoHard);\n\n\t\tvar that = this;\n\t\tfunction onFailSoHard(e) {\n\t\t\tLGraphTextureWebcam.is_webcam_open = false;\n\t\t\tconsole.log(\"Webcam rejected\", e);\n\t\t\tthat._webcam_stream = false;\n\t\t\tthat.boxcolor = \"red\";\n\t\t\tthat.trigger(\"stream_error\");\n\t\t}\n\t};\n\n\tLGraphTextureWebcam.prototype.closeStream = function() {\n\t\tif (this._webcam_stream) {\n\t\t\tvar tracks = this._webcam_stream.getTracks();\n\t\t\tif (tracks.length) {\n\t\t\t\tfor (var i = 0; i < tracks.length; ++i) {\n\t\t\t\t\ttracks[i].stop();\n\t\t\t\t}\n\t\t\t}\n\t\t\tLGraphTextureWebcam.is_webcam_open = false;\n\t\t\tthis._webcam_stream = null;\n\t\t\tthis._video = null;\n\t\t\tthis.boxcolor = \"black\";\n\t\t\tthis.trigger(\"stream_closed\");\n\t\t}\n\t};\n\n\tLGraphTextureWebcam.prototype.streamReady = function(localMediaStream) {\n\t\tthis._webcam_stream = localMediaStream;\n\t\t//this._waiting_confirmation = false;\n\t\tthis.boxcolor = \"green\";\n\t\tvar video = this._video;\n\t\tif (!video) {\n\t\t\tvideo = document.createElement(\"video\");\n\t\t\tvideo.autoplay = true;\n\t\t\tvideo.srcObject = localMediaStream;\n\t\t\tthis._video = video;\n\t\t\t//document.body.appendChild( video ); //debug\n\t\t\t//when video info is loaded (size and so)\n\t\t\tvideo.onloadedmetadata = function(e) {\n\t\t\t\t// Ready to go. Do some stuff.\n\t\t\t\tLGraphTextureWebcam.is_webcam_open = true;\n\t\t\t\tconsole.log(e);\n\t\t\t};\n\t\t}\n\t\tthis.trigger(\"stream_ready\", video);\n\t};\n\n\tLGraphTextureWebcam.prototype.onPropertyChanged = function(\n\t\tname,\n\t\tvalue\n\t) {\n\t\tif (name == \"facingMode\") {\n\t\t\tthis.properties.facingMode = value;\n\t\t\tthis.closeStream();\n\t\t\tthis.openStream();\n\t\t}\n\t};\n\n\tLGraphTextureWebcam.prototype.onRemoved = function() {\n\t\tif (!this._webcam_stream) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tracks = this._webcam_stream.getTracks();\n\t\tif (tracks.length) {\n\t\t\tfor (var i = 0; i < tracks.length; ++i) {\n\t\t\t\ttracks[i].stop();\n\t\t\t}\n\t\t}\n\n\t\tthis._webcam_stream = null;\n\t\tthis._video = null;\n\t};\n\n\tLGraphTextureWebcam.prototype.onDrawBackground = function(ctx) {\n\t\tif (this.flags.collapsed || this.size[1] <= 20) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._video) {\n\t\t\treturn;\n\t\t}\n\n\t\t//render to graph canvas\n\t\tctx.save();\n\t\tif (!ctx.webgl) {\n\t\t\t//reverse image\n\t\t\tctx.drawImage(this._video, 0, 0, this.size[0], this.size[1]);\n\t\t} else {\n\t\t\tif (this._video_texture) {\n\t\t\t\tctx.drawImage(\n\t\t\t\t\tthis._video_texture,\n\t\t\t\t\t0,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.size[0],\n\t\t\t\t\tthis.size[1]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tctx.restore();\n\t};\n\n\tLGraphTextureWebcam.prototype.onExecute = function() {\n\t\tif (this._webcam_stream == null && !this._waiting_confirmation) {\n\t\t\tthis.openStream();\n\t\t}\n\n\t\tif (!this._video || !this._video.videoWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar width = this._video.videoWidth;\n\t\tvar height = this._video.videoHeight;\n\n\t\tvar temp = this._video_texture;\n\t\tif (!temp || temp.width != width || temp.height != height) {\n\t\t\tthis._video_texture = new GL.Texture(width, height, {\n\t\t\t\tformat: gl.RGB,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tthis._video_texture.uploadImage(this._video);\n\t\tthis._video_texture.version = ++this.version;\n\n\t\tif (this.properties.texture_name) {\n\t\t\tvar container = LGraphTexture.getTexturesContainer();\n\t\t\tcontainer[this.properties.texture_name] = this._video_texture;\n\t\t}\n\n\t\tthis.setOutputData(0, this._video_texture);\n\t\tfor (var i = 1; i < this.outputs.length; ++i) {\n\t\t\tif (!this.outputs[i]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (this.outputs[i].name) {\n\t\t\t\tcase \"width\":\n\t\t\t\t\tthis.setOutputData(i, this._video.videoWidth);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"height\":\n\t\t\t\t\tthis.setOutputData(i, this._video.videoHeight);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\tLGraphTextureWebcam.prototype.onGetOutputs = function() {\n\t\treturn [\n\t\t\t[\"width\", \"number\"],\n\t\t\t[\"height\", \"number\"],\n\t\t\t[\"stream_ready\", LiteGraph.EVENT],\n\t\t\t[\"stream_closed\", LiteGraph.EVENT],\n\t\t\t[\"stream_error\", LiteGraph.EVENT]\n\t\t];\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/webcam\", LGraphTextureWebcam);\n\n\t//from https://github.com/spite/Wagner\n\tfunction LGraphLensFX() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"f\", \"number\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tenabled: true,\n\t\t\tfactor: 1,\n\t\t\tprecision: LGraphTexture.LOW\n\t\t};\n\n\t\tthis._uniforms = { u_texture: 0, u_factor: 1 };\n\t}\n\n\tLGraphLensFX.title = \"Lens FX\";\n\tLGraphLensFX.desc = \"distortion and chromatic aberration\";\n\n\tLGraphLensFX.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphLensFX.prototype.onGetInputs = function() {\n\t\treturn [[\"enabled\", \"boolean\"]];\n\t};\n\n\tLGraphLensFX.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (\n\t\t\tthis.properties.precision === LGraphTexture.PASS_THROUGH ||\n\t\t\tthis.getInputOrProperty(\"enabled\") === false\n\t\t) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\ttemp = this._temp_texture = new GL.Texture(\n\t\t\t\ttex.width,\n\t\t\t\ttex.height,\n\t\t\t\t{ type: tex.type, format: gl.RGBA, filter: gl.LINEAR }\n\t\t\t);\n\t\t}\n\n\t\tvar shader = LGraphLensFX._shader;\n\t\tif (!shader) {\n\t\t\tshader = LGraphLensFX._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphLensFX.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar factor = this.getInputData(1);\n\t\tif (factor == null) {\n\t\t\tfactor = this.properties.factor;\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_factor = factor;\n\n\t\t//apply shader\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\ttemp.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, temp);\n\t};\n\n\tLGraphLensFX.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_factor;\\n\\\n\t\tvec2 barrelDistortion(vec2 coord, float amt) {\\n\\\n\t\t\tvec2 cc = coord - 0.5;\\n\\\n\t\t\tfloat dist = dot(cc, cc);\\n\\\n\t\t\treturn coord + cc * dist * amt;\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tfloat sat( float t )\\n\\\n\t\t{\\n\\\n\t\t\treturn clamp( t, 0.0, 1.0 );\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tfloat linterp( float t ) {\\n\\\n\t\t\treturn sat( 1.0 - abs( 2.0*t - 1.0 ) );\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tfloat remap( float t, float a, float b ) {\\n\\\n\t\t\treturn sat( (t - a) / (b - a) );\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tvec4 spectrum_offset( float t ) {\\n\\\n\t\t\tvec4 ret;\\n\\\n\t\t\tfloat lo = step(t,0.5);\\n\\\n\t\t\tfloat hi = 1.0-lo;\\n\\\n\t\t\tfloat w = linterp( remap( t, 1.0/6.0, 5.0/6.0 ) );\\n\\\n\t\t\tret = vec4(lo,1.0,hi, 1.) * vec4(1.0-w, w, 1.0-w, 1.);\\n\\\n\t\t\\n\\\n\t\t\treturn pow( ret, vec4(1.0/2.2) );\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tconst float max_distort = 2.2;\\n\\\n\t\tconst int num_iter = 12;\\n\\\n\t\tconst float reci_num_iter_f = 1.0 / float(num_iter);\\n\\\n\t\t\\n\\\n\t\tvoid main()\\n\\\n\t\t{\t\\n\\\n\t\t\tvec2 uv=v_coord;\\n\\\n\t\t\tvec4 sumcol = vec4(0.0);\\n\\\n\t\t\tvec4 sumw = vec4(0.0);\t\\n\\\n\t\t\tfor ( int i=0; iTex\";\n\tLGraphTextureFromData.desc = \"Generates or applies a curve to a texture\";\n\tLGraphTextureFromData.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureFromData.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar data = this.getInputData(0);\n\t\tif(!data)\n\t\t\treturn;\n\n\t\tvar channels = this.properties.channels;\n\t\tvar w = this.properties.width;\n\t\tvar h = this.properties.height;\n\t\tif(!w || !h)\n\t\t{\n\t\t\tw = Math.floor(data.length / channels);\n\t\t\th = 1;\n\t\t}\n\t\tvar format = gl.RGBA;\n\t\tif( channels == 3 )\n\t\t\tformat = gl.RGB;\n\t\telse if( channels == 1 )\n\t\t\tformat = gl.LUMINANCE;\n\n\t\tvar temp = this._temp_texture;\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision );\n\t\tif ( !temp || temp.width != w || temp.height != h || temp.type != type ) {\n\t\t\ttemp = this._temp_texture = new GL.Texture( w, h, { type: type, format: format, filter: gl.LINEAR } );\n\t\t}\n\n\t\ttemp.uploadData( data );\n\t\tthis.setOutputData(0, temp);\n\t}\n\n\tLiteGraph.registerNodeType(\"texture/fromdata\", LGraphTextureFromData);\n\n\t//applies a curve (or generates one)\n\tfunction LGraphTextureCurve() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = { precision: LGraphTexture.LOW, split_channels: false };\n\t\tthis._values = new Uint8Array(256*4);\n\t\tthis._values.fill(255);\n\t\tthis._curve_texture = null;\n\t\tthis._uniforms = { u_texture: 0, u_curve: 1, u_range: 1.0 };\n\t\tthis._must_update = true;\n\t\tthis._points = {\n\t\t\tRGB: [[0,0],[1,1]],\n\t\t\tR: [[0,0],[1,1]],\n\t\t\tG: [[0,0],[1,1]],\n\t\t\tB: [[0,0],[1,1]]\n\t\t};\n\t\tthis.curve_editor = null;\n\t\tthis.addWidget(\"toggle\",\"Split Channels\",false,\"split_channels\");\n\t\tthis.addWidget(\"combo\",\"Channel\",\"RGB\",{ values:[\"RGB\",\"R\",\"G\",\"B\"]});\n\t\tthis.curve_offset = 68;\n\t\tthis.size = [ 240, 160 ];\n\t}\n\n\tLGraphTextureCurve.title = \"Curve\";\n\tLGraphTextureCurve.desc = \"Generates or applies a curve to a texture\";\n\tLGraphTextureCurve.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureCurve.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\n\t\tvar temp = this._temp_texture;\n\t\tif(!tex) //generate one texture, nothing else\n\t\t{\n\t\t\tif(this._must_update || !this._curve_texture )\n\t\t\t\tthis.updateCurve();\n\t\t\tthis.setOutputData(0, this._curve_texture);\n\t\t\treturn;\n\t\t}\n\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision, tex );\n\t\t\n\t\t//apply curve to input texture\n\t\tif ( !temp || temp.type != type || temp.width != tex.width || temp.height != tex.height || temp.format != tex.format)\n\t\t\ttemp = this._temp_texture = new GL.Texture( tex.width, tex.height, { type: type, format: tex.format, filter: gl.LINEAR } );\n\n\t\tvar shader = LGraphTextureCurve._shader;\n\t\tif (!shader) {\n\t\t\tshader = LGraphTextureCurve._shader = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphTextureCurve.pixel_shader );\n\t\t}\n\n\t\tif(this._must_update || !this._curve_texture )\n\t\t\tthis.updateCurve();\n\n\t\tvar uniforms = this._uniforms;\n\t\tvar curve_texture = this._curve_texture;\n\n\t\t//apply shader\n\t\ttemp.drawTo(function() {\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\ttex.bind(0);\n\t\t\tcurve_texture.bind(1);\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, temp);\n\t}\n\n\tLGraphTextureCurve.prototype.sampleCurve = function(f,points)\n\t{\n\t\tvar points = points || this._points.RGB;\n\t\tif(!points)\n\t\t\treturn;\n\t\tfor(var i = 0; i < points.length - 1; ++i)\n\t\t{\n\t\t\tvar p = points[i];\n\t\t\tvar pn = points[i+1];\n\t\t\tif(pn[0] < f)\n\t\t\t\tcontinue;\n\t\t\tvar r = (pn[0] - p[0]);\n\t\t\tif( Math.abs(r) < 0.00001 )\n\t\t\t\treturn p[1];\n\t\t\tvar local_f = (f - p[0]) / r;\n\t\t\treturn p[1] * (1.0 - local_f) + pn[1] * local_f;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tLGraphTextureCurve.prototype.updateCurve = function()\n\t{\n\t\tvar values = this._values;\n\t\tvar num = values.length / 4;\n\t\tvar split = this.properties.split_channels;\n\t\tfor(var i = 0; i < num; ++i)\n\t\t{\n\t\t\tif(split)\n\t\t\t{\n\t\t\t\tvalues[i*4] = Math.clamp( this.sampleCurve(i/num,this._points.R)*255,0,255);\n\t\t\t\tvalues[i*4+1] = Math.clamp( this.sampleCurve(i/num,this._points.G)*255,0,255);\n\t\t\t\tvalues[i*4+2] = Math.clamp( this.sampleCurve(i/num,this._points.B)*255,0,255);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tvar v = this.sampleCurve(i/num);//sample curve\n\t\t\t\tvalues[i*4] = values[i*4+1] = values[i*4+2] = Math.clamp(v*255,0,255);\n\t\t\t}\n\t\t\tvalues[i*4+3] = 255; //alpha fixed\n\t\t}\n\t\tif(!this._curve_texture)\n\t\t\tthis._curve_texture = new GL.Texture(256,1,{ format: gl.RGBA, magFilter: gl.LINEAR, wrap: gl.CLAMP_TO_EDGE });\n\t\tthis._curve_texture.uploadData(values,null,true);\n\t}\n\n\tLGraphTextureCurve.prototype.onSerialize = function(o)\n\t{\n\t\tvar curves = {};\n\t\tfor(var i in this._points)\n\t\t\tcurves[i] = this._points[i].concat();\n\t\to.curves = curves;\n\t}\n\n\tLGraphTextureCurve.prototype.onConfigure = function(o)\n\t{\n\t\tthis._points = o.curves;\n\t\tif(this.curve_editor)\n\t\t\tcurve_editor.points = this._points;\n\t\tthis._must_update = true;\n\t}\n\n\tLGraphTextureCurve.prototype.onMouseDown = function(e, localpos, graphcanvas)\n\t{\n\t\tif(this.curve_editor)\n\t\t{\n\t\t\tvar r = this.curve_editor.onMouseDown([localpos[0],localpos[1]-this.curve_offset], graphcanvas);\n\t\t\tif(r)\n\t\t\t\tthis.captureInput(true);\n\t\t\treturn r;\n\t\t}\n\t}\n\n\tLGraphTextureCurve.prototype.onMouseMove = function(e, localpos, graphcanvas)\n\t{\n\t\tif(this.curve_editor)\n\t\t\treturn this.curve_editor.onMouseMove([localpos[0],localpos[1]-this.curve_offset], graphcanvas);\n\t}\n\n\tLGraphTextureCurve.prototype.onMouseUp = function(e, localpos, graphcanvas)\n\t{\n\t\tif(this.curve_editor)\n\t\t\treturn this.curve_editor.onMouseUp([localpos[0],localpos[1]-this.curve_offset], graphcanvas);\n\t\tthis.captureInput(false);\n\t}\n\n\tLGraphTextureCurve.channel_line_colors = { \"RGB\":\"#666\",\"R\":\"#F33\",\"G\":\"#3F3\",\"B\":\"#33F\" };\n\n\tLGraphTextureCurve.prototype.onDrawBackground = function(ctx, graphcanvas)\n\t{\n\t\tif(this.flags.collapsed)\n\t\t\treturn;\n\n\t\tif(!this.curve_editor)\n\t\t\tthis.curve_editor = new LiteGraph.CurveEditor(this._points.R);\n\t\tctx.save();\n\t\tctx.translate(0,this.curve_offset);\n\t\tvar channel = this.widgets[1].value;\n\n\t\tif(this.properties.split_channels)\n\t\t{\n\t\t\tif(channel == \"RGB\")\n\t\t\t{\n\t\t\t\tthis.widgets[1].value = channel = \"R\";\n\t\t\t\tthis.widgets[1].disabled = false;\n\t\t\t}\n\t\t\tthis.curve_editor.points = this._points.R;\n\t\t\tthis.curve_editor.draw( ctx, [this.size[0],this.size[1] - this.curve_offset], graphcanvas, \"#111\", LGraphTextureCurve.channel_line_colors.R, true );\n\t\t\tctx.globalCompositeOperation = \"lighten\";\n\t\t\tthis.curve_editor.points = this._points.G;\n\t\t\tthis.curve_editor.draw( ctx, [this.size[0],this.size[1] - this.curve_offset], graphcanvas, null, LGraphTextureCurve.channel_line_colors.G, true );\n\t\t\tthis.curve_editor.points = this._points.B;\n\t\t\tthis.curve_editor.draw( ctx, [this.size[0],this.size[1] - this.curve_offset], graphcanvas, null, LGraphTextureCurve.channel_line_colors.B, true );\n\t\t\tctx.globalCompositeOperation = \"source-over\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.widgets[1].value = channel = \"RGB\";\n\t\t\tthis.widgets[1].disabled = true;\n\t\t}\n\n\t\tthis.curve_editor.points = this._points[channel];\n\t\tthis.curve_editor.draw( ctx, [this.size[0],this.size[1] - this.curve_offset], graphcanvas, this.properties.split_channels ? null : \"#111\", LGraphTextureCurve.channel_line_colors[channel] );\n\t\tctx.restore();\n\t}\n\n\tLGraphTextureCurve.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform sampler2D u_curve;\\n\\\n\t\tuniform float u_range;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = texture2D( u_texture, v_coord ) * u_range;\\n\\\n\t\t\tcolor.x = texture2D( u_curve, vec2( color.x, 0.5 ) ).x;\\n\\\n\t\t\tcolor.y = texture2D( u_curve, vec2( color.y, 0.5 ) ).y;\\n\\\n\t\t\tcolor.z = texture2D( u_curve, vec2( color.z, 0.5 ) ).z;\\n\\\n\t\t\t//color.w = texture2D( u_curve, vec2( color.w, 0.5 ) ).w;\\n\\\n\t\t\tgl_FragColor = color;\\n\\\n\t\t}\";\n\n\tLiteGraph.registerNodeType(\"texture/curve\", LGraphTextureCurve);\n\n\t//simple exposition, but plan to expand it to support different gamma curves\n\tfunction LGraphExposition() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"exp\", \"number\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = { exposition: 1, precision: LGraphTexture.LOW };\n\t\tthis._uniforms = { u_texture: 0, u_exposition: 1 };\n\t}\n\n\tLGraphExposition.title = \"Exposition\";\n\tLGraphExposition.desc = \"Controls texture exposition\";\n\n\tLGraphExposition.widgets_info = {\n\t\texposition: { widget: \"slider\", min: 0, max: 3 },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphExposition.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar temp = this._temp_texture;\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\ttemp = this._temp_texture = new GL.Texture(\n\t\t\t\ttex.width,\n\t\t\t\ttex.height,\n\t\t\t\t{ type: tex.type, format: gl.RGBA, filter: gl.LINEAR }\n\t\t\t);\n\t\t}\n\n\t\tvar shader = LGraphExposition._shader;\n\t\tif (!shader) {\n\t\t\tshader = LGraphExposition._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphExposition.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tvar exp = this.properties.exposition;\n\t\tvar exp_input = this.getInputData(1);\n\t\tif (exp_input != null) {\n\t\t\texp = this.properties.exposition = exp_input;\n\t\t}\n\t\tvar uniforms = this._uniforms;\n\n\t\t//apply shader\n\t\ttemp.drawTo(function() {\n\t\t\tgl.disable(gl.DEPTH_TEST);\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, temp);\n\t};\n\n\tLGraphExposition.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_exposition;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = texture2D( u_texture, v_coord );\\n\\\n\t\t\tgl_FragColor = vec4( color.xyz * u_exposition, color.a );\\n\\\n\t\t}\";\n\n\tLiteGraph.registerNodeType(\"texture/exposition\", LGraphExposition);\n\n\tfunction LGraphToneMapping() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\t\tthis.addInput(\"avg\", \"number,Texture\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tenabled: true,\n\t\t\tscale: 1,\n\t\t\tgamma: 1,\n\t\t\taverage_lum: 1,\n\t\t\tlum_white: 1,\n\t\t\tprecision: LGraphTexture.LOW\n\t\t};\n\n\t\tthis._uniforms = {\n\t\t\tu_texture: 0,\n\t\t\tu_lumwhite2: 1,\n\t\t\tu_igamma: 1,\n\t\t\tu_scale: 1,\n\t\t\tu_average_lum: 1\n\t\t};\n\t}\n\n\tLGraphToneMapping.title = \"Tone Mapping\";\n\tLGraphToneMapping.desc =\n\t\t\"Applies Tone Mapping to convert from high to low\";\n\n\tLGraphToneMapping.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphToneMapping.prototype.onGetInputs = function() {\n\t\treturn [[\"enabled\", \"boolean\"]];\n\t};\n\n\tLGraphToneMapping.prototype.onExecute = function() {\n\t\tvar tex = this.getInputData(0);\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tif (\n\t\t\tthis.properties.precision === LGraphTexture.PASS_THROUGH ||\n\t\t\tthis.getInputOrProperty(\"enabled\") === false\n\t\t) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tvar temp = this._temp_texture;\n\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != tex.width ||\n\t\t\ttemp.height != tex.height ||\n\t\t\ttemp.type != tex.type\n\t\t) {\n\t\t\ttemp = this._temp_texture = new GL.Texture(\n\t\t\t\ttex.width,\n\t\t\t\ttex.height,\n\t\t\t\t{ type: tex.type, format: gl.RGBA, filter: gl.LINEAR }\n\t\t\t);\n\t\t}\n\n\t\tvar avg = this.getInputData(1);\n\t\tif (avg == null) {\n\t\t\tavg = this.properties.average_lum;\n\t\t}\n\n\t\tvar uniforms = this._uniforms;\n\t\tvar shader = null;\n\n\t\tif (avg.constructor === Number) {\n\t\t\tthis.properties.average_lum = avg;\n\t\t\tuniforms.u_average_lum = this.properties.average_lum;\n\t\t\tshader = LGraphToneMapping._shader;\n\t\t\tif (!shader) {\n\t\t\t\tshader = LGraphToneMapping._shader = new GL.Shader(\n\t\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\tLGraphToneMapping.pixel_shader\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (avg.constructor === GL.Texture) {\n\t\t\tuniforms.u_average_texture = avg.bind(1);\n\t\t\tshader = LGraphToneMapping._shader_texture;\n\t\t\tif (!shader) {\n\t\t\t\tshader = LGraphToneMapping._shader_texture = new GL.Shader(\n\t\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\t\tLGraphToneMapping.pixel_shader,\n\t\t\t\t\t{ AVG_TEXTURE: \"\" }\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tuniforms.u_lumwhite2 =\n\t\t\tthis.properties.lum_white * this.properties.lum_white;\n\t\tuniforms.u_scale = this.properties.scale;\n\t\tuniforms.u_igamma = 1 / this.properties.gamma;\n\n\t\t//apply shader\n\t\tgl.disable(gl.DEPTH_TEST);\n\t\ttemp.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, this._temp_texture);\n\t};\n\n\tLGraphToneMapping.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform float u_scale;\\n\\\n\t\t#ifdef AVG_TEXTURE\\n\\\n\t\t\tuniform sampler2D u_average_texture;\\n\\\n\t\t#else\\n\\\n\t\t\tuniform float u_average_lum;\\n\\\n\t\t#endif\\n\\\n\t\tuniform float u_lumwhite2;\\n\\\n\t\tuniform float u_igamma;\\n\\\n\t\tvec3 RGB2xyY (vec3 rgb)\\n\\\n\t\t{\\n\\\n\t\t\t const mat3 RGB2XYZ = mat3(0.4124, 0.3576, 0.1805,\\n\\\n\t\t\t\t\t\t\t\t\t 0.2126, 0.7152, 0.0722,\\n\\\n\t\t\t\t\t\t\t\t\t 0.0193, 0.1192, 0.9505);\\n\\\n\t\t\tvec3 XYZ = RGB2XYZ * rgb;\\n\\\n\t\t\t\\n\\\n\t\t\tfloat f = (XYZ.x + XYZ.y + XYZ.z);\\n\\\n\t\t\treturn vec3(XYZ.x / f,\\n\\\n\t\t\t\t\t\tXYZ.y / f,\\n\\\n\t\t\t\t\t\tXYZ.y);\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec4 color = texture2D( u_texture, v_coord );\\n\\\n\t\t\tvec3 rgb = color.xyz;\\n\\\n\t\t\tfloat average_lum = 0.0;\\n\\\n\t\t\t#ifdef AVG_TEXTURE\\n\\\n\t\t\t\tvec3 pixel = texture2D(u_average_texture,vec2(0.5)).xyz;\\n\\\n\t\t\t\taverage_lum = (pixel.x + pixel.y + pixel.z) / 3.0;\\n\\\n\t\t\t#else\\n\\\n\t\t\t\taverage_lum = u_average_lum;\\n\\\n\t\t\t#endif\\n\\\n\t\t\t//Ld - this part of the code is the same for both versions\\n\\\n\t\t\tfloat lum = dot(rgb, vec3(0.2126, 0.7152, 0.0722));\\n\\\n\t\t\tfloat L = (u_scale / average_lum) * lum;\\n\\\n\t\t\tfloat Ld = (L * (1.0 + L / u_lumwhite2)) / (1.0 + L);\\n\\\n\t\t\t//first\\n\\\n\t\t\t//vec3 xyY = RGB2xyY(rgb);\\n\\\n\t\t\t//xyY.z *= Ld;\\n\\\n\t\t\t//rgb = xyYtoRGB(xyY);\\n\\\n\t\t\t//second\\n\\\n\t\t\trgb = (rgb / lum) * Ld;\\n\\\n\t\t\trgb = max(rgb,vec3(0.001));\\n\\\n\t\t\trgb = pow( rgb, vec3( u_igamma ) );\\n\\\n\t\t\tgl_FragColor = vec4( rgb, color.a );\\n\\\n\t\t}\";\n\n\tLiteGraph.registerNodeType(\"texture/tonemapping\", LGraphToneMapping);\n\n\tfunction LGraphTexturePerlin() {\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\twidth: 512,\n\t\t\theight: 512,\n\t\t\tseed: 0,\n\t\t\tpersistence: 0.1,\n\t\t\toctaves: 8,\n\t\t\tscale: 1,\n\t\t\toffset: [0, 0],\n\t\t\tamplitude: 1,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t\tthis._key = 0;\n\t\tthis._texture = null;\n\t\tthis._uniforms = {\n\t\t\tu_persistence: 0.1,\n\t\t\tu_seed: 0,\n\t\t\tu_offset: vec2.create(),\n\t\t\tu_scale: 1,\n\t\t\tu_viewport: vec2.create()\n\t\t};\n\t}\n\n\tLGraphTexturePerlin.title = \"Perlin\";\n\tLGraphTexturePerlin.desc = \"Generates a perlin noise texture\";\n\n\tLGraphTexturePerlin.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES },\n\t\twidth: { type: \"number\", precision: 0, step: 1 },\n\t\theight: { type: \"number\", precision: 0, step: 1 },\n\t\toctaves: { type: \"number\", precision: 0, step: 1, min: 1, max: 50 }\n\t};\n\n\tLGraphTexturePerlin.prototype.onGetInputs = function() {\n\t\treturn [\n\t\t\t[\"seed\", \"number\"],\n\t\t\t[\"persistence\", \"number\"],\n\t\t\t[\"octaves\", \"number\"],\n\t\t\t[\"scale\", \"number\"],\n\t\t\t[\"amplitude\", \"number\"],\n\t\t\t[\"offset\", \"vec2\"]\n\t\t];\n\t};\n\n\tLGraphTexturePerlin.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar w = this.properties.width | 0;\n\t\tvar h = this.properties.height | 0;\n\t\tif (w == 0) {\n\t\t\tw = gl.viewport_data[2];\n\t\t} //0 means default\n\t\tif (h == 0) {\n\t\t\th = gl.viewport_data[3];\n\t\t} //0 means default\n\t\tvar type = LGraphTexture.getTextureType(this.properties.precision);\n\n\t\tvar temp = this._texture;\n\t\tif (\n\t\t\t!temp ||\n\t\t\ttemp.width != w ||\n\t\t\ttemp.height != h ||\n\t\t\ttemp.type != type\n\t\t) {\n\t\t\ttemp = this._texture = new GL.Texture(w, h, {\n\t\t\t\ttype: type,\n\t\t\t\tformat: gl.RGB,\n\t\t\t\tfilter: gl.LINEAR\n\t\t\t});\n\t\t}\n\n\t\tvar persistence = this.getInputOrProperty(\"persistence\");\n\t\tvar octaves = this.getInputOrProperty(\"octaves\");\n\t\tvar offset = this.getInputOrProperty(\"offset\");\n\t\tvar scale = this.getInputOrProperty(\"scale\");\n\t\tvar amplitude = this.getInputOrProperty(\"amplitude\");\n\t\tvar seed = this.getInputOrProperty(\"seed\");\n\n\t\t//reusing old texture\n\t\tvar key =\n\t\t\t\"\" +\n\t\t\tw +\n\t\t\th +\n\t\t\ttype +\n\t\t\tpersistence +\n\t\t\toctaves +\n\t\t\tscale +\n\t\t\tseed +\n\t\t\toffset[0] +\n\t\t\toffset[1] +\n\t\t\tamplitude;\n\t\tif (key == this._key) {\n\t\t\tthis.setOutputData(0, temp);\n\t\t\treturn;\n\t\t}\n\t\tthis._key = key;\n\n\t\t//gather uniforms\n\t\tvar uniforms = this._uniforms;\n\t\tuniforms.u_persistence = persistence;\n\t\tuniforms.u_octaves = octaves;\n\t\tuniforms.u_offset.set(offset);\n\t\tuniforms.u_scale = scale;\n\t\tuniforms.u_amplitude = amplitude;\n\t\tuniforms.u_seed = seed * 128;\n\t\tuniforms.u_viewport[0] = w;\n\t\tuniforms.u_viewport[1] = h;\n\n\t\t//render\n\t\tvar shader = LGraphTexturePerlin._shader;\n\t\tif (!shader) {\n\t\t\tshader = LGraphTexturePerlin._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTexturePerlin.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\ttemp.drawTo(function() {\n\t\t\tshader.uniforms(uniforms).draw(GL.Mesh.getScreenQuad());\n\t\t});\n\n\t\tthis.setOutputData(0, temp);\n\t};\n\n\tLGraphTexturePerlin.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform vec2 u_offset;\\n\\\n\t\tuniform float u_scale;\\n\\\n\t\tuniform float u_persistence;\\n\\\n\t\tuniform int u_octaves;\\n\\\n\t\tuniform float u_amplitude;\\n\\\n\t\tuniform vec2 u_viewport;\\n\\\n\t\tuniform float u_seed;\\n\\\n\t\t#define M_PI 3.14159265358979323846\\n\\\n\t\t\\n\\\n\t\tfloat rand(vec2 c){\treturn fract(sin(dot(c.xy ,vec2( 12.9898 + u_seed,78.233 + u_seed))) * 43758.5453); }\\n\\\n\t\t\\n\\\n\t\tfloat noise(vec2 p, float freq ){\\n\\\n\t\t\tfloat unit = u_viewport.x/freq;\\n\\\n\t\t\tvec2 ij = floor(p/unit);\\n\\\n\t\t\tvec2 xy = mod(p,unit)/unit;\\n\\\n\t\t\t//xy = 3.*xy*xy-2.*xy*xy*xy;\\n\\\n\t\t\txy = .5*(1.-cos(M_PI*xy));\\n\\\n\t\t\tfloat a = rand((ij+vec2(0.,0.)));\\n\\\n\t\t\tfloat b = rand((ij+vec2(1.,0.)));\\n\\\n\t\t\tfloat c = rand((ij+vec2(0.,1.)));\\n\\\n\t\t\tfloat d = rand((ij+vec2(1.,1.)));\\n\\\n\t\t\tfloat x1 = mix(a, b, xy.x);\\n\\\n\t\t\tfloat x2 = mix(c, d, xy.x);\\n\\\n\t\t\treturn mix(x1, x2, xy.y);\\n\\\n\t\t}\\n\\\n\t\t\\n\\\n\t\tfloat pNoise(vec2 p, int res){\\n\\\n\t\t\tfloat persistance = u_persistence;\\n\\\n\t\t\tfloat n = 0.;\\n\\\n\t\t\tfloat normK = 0.;\\n\\\n\t\t\tfloat f = 4.;\\n\\\n\t\t\tfloat amp = 1.0;\\n\\\n\t\t\tint iCount = 0;\\n\\\n\t\t\tfor (int i = 0; i<50; i++){\\n\\\n\t\t\t\tn+=amp*noise(p, f);\\n\\\n\t\t\t\tf*=2.;\\n\\\n\t\t\t\tnormK+=amp;\\n\\\n\t\t\t\tamp*=persistance;\\n\\\n\t\t\t\tif (iCount >= res)\\n\\\n\t\t\t\t\tbreak;\\n\\\n\t\t\t\tiCount++;\\n\\\n\t\t\t}\\n\\\n\t\t\tfloat nf = n/normK;\\n\\\n\t\t\treturn nf*nf*nf*nf;\\n\\\n\t\t}\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec2 uv = v_coord * u_scale * u_viewport + u_offset * u_scale;\\n\\\n\t\t\tvec4 color = vec4( pNoise( uv, u_octaves ) * u_amplitude );\\n\\\n\t\t\tgl_FragColor = color;\\n\\\n\t\t}\";\n\n\tLiteGraph.registerNodeType(\"texture/perlin\", LGraphTexturePerlin);\n\n\tfunction LGraphTextureCanvas2D() {\n\t\tthis.addInput(\"v\");\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tcode: LGraphTextureCanvas2D.default_code,\n\t\t\twidth: 512,\n\t\t\theight: 512,\n\t\t\tclear: true,\n\t\t\tprecision: LGraphTexture.DEFAULT,\n\t\t\tuse_html_canvas: false\n\t\t};\n\t\tthis._func = null;\n\t\tthis._temp_texture = null;\n\t\tthis.compileCode();\n\t}\n\n\tLGraphTextureCanvas2D.title = \"Canvas2D\";\n\tLGraphTextureCanvas2D.desc = \"Executes Canvas2D code inside a texture or the viewport.\";\n\tLGraphTextureCanvas2D.help = \"Set width and height to 0 to match viewport size.\";\n\n\tLGraphTextureCanvas2D.default_code = \"//vars: canvas,ctx,time\\nctx.fillStyle='red';\\nctx.fillRect(0,0,50,50);\\n\";\n\n\tLGraphTextureCanvas2D.widgets_info = {\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES },\n\t\tcode: { type: \"code\" },\n\t\twidth: { type: \"number\", precision: 0, step: 1 },\n\t\theight: { type: \"number\", precision: 0, step: 1 }\n\t};\n\n\tLGraphTextureCanvas2D.prototype.onPropertyChanged = function( name, value ) {\n\t\tif (name == \"code\" )\n\t\t\tthis.compileCode( value );\n\t}\n\t\n\tLGraphTextureCanvas2D.prototype.compileCode = function( code ) {\n\t\tthis._func = null;\n\t\tif( !LiteGraph.allow_scripts )\n\t\t\treturn;\n\n\t\ttry {\n\t\t\tthis._func = new Function( \"canvas\", \"ctx\", \"time\", \"script\",\"v\", code );\n\t\t\tthis.boxcolor = \"#00FF00\";\n\t\t} catch (err) {\n\t\t\tthis.boxcolor = \"#FF0000\";\n\t\t\tconsole.error(\"Error parsing script\");\n\t\t\tconsole.error(err);\n\t\t}\n\t};\n\n\tLGraphTextureCanvas2D.prototype.onExecute = function() {\n\t\tvar func = this._func;\n\t\tif (!func || !this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.executeDraw( func );\n\t}\n\n\tLGraphTextureCanvas2D.prototype.executeDraw = function( func_context ) {\n\n\t\tvar width = this.properties.width || gl.canvas.width;\n\t\tvar height = this.properties.height || gl.canvas.height;\n\t\tvar temp = this._temp_texture;\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision );\n\t\tif (!temp || temp.width != width || temp.height != height || temp.type != type ) {\n\t\t\ttemp = this._temp_texture = new GL.Texture(width, height, {\n\t\t\t\tformat: gl.RGBA,\n\t\t\t\tfilter: gl.LINEAR,\n\t\t\t\ttype: type\n\t\t\t});\n\t\t}\n\n\t\tvar v = this.getInputData(0);\n\n\t\tvar properties = this.properties;\n\t\tvar that = this;\n\t\tvar time = this.graph.getTime();\n\t\tvar ctx = gl;\n\t\tvar canvas = gl.canvas;\n\t\tif( this.properties.use_html_canvas || !global.enableWebGLCanvas )\n\t\t{\n\t\t\tif(!this._canvas)\n\t\t\t{\n\t\t\t\tcanvas = this._canvas = createCanvas(width.height);\n\t\t\t\tctx = this._ctx = canvas.getContext(\"2d\");\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcanvas = this._canvas;\n\t\t\t\tctx = this._ctx;\n\t\t\t}\n\t\t\tcanvas.width = width;\n\t\t\tcanvas.height = height;\n\t\t}\n\n\t\tif(ctx == gl) //using Canvas2DtoWebGL\n\t\t\ttemp.drawTo(function() {\n\t\t\t\tgl.start2D();\n\t\t\t\tif(properties.clear)\n\t\t\t\t{\n\t\t\t\t\tgl.clearColor(0,0,0,0);\n\t\t\t\t\tgl.clear( gl.COLOR_BUFFER_BIT );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tif (func_context.draw) {\n\t\t\t\t\t\tfunc_context.draw.call(that, canvas, ctx, time, func_context, v);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfunc_context.call(that, canvas, ctx, time, func_context,v);\n\t\t\t\t\t}\n\t\t\t\t\tthat.boxcolor = \"#00FF00\";\n\t\t\t\t} catch (err) {\n\t\t\t\t\tthat.boxcolor = \"#FF0000\";\n\t\t\t\t\tconsole.error(\"Error executing script\");\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}\n\t\t\t\tgl.finish2D();\n\t\t\t});\n\t\telse //rendering to offscren canvas and uploading to texture\n\t\t{\n\t\t\tif(properties.clear)\n\t\t\t\tctx.clearRect(0,0,canvas.width,canvas.height);\n\n\t\t\ttry {\n\t\t\t\tif (func_context.draw) {\n\t\t\t\t\tfunc_context.draw.call(this, canvas, ctx, time, func_context, v);\n\t\t\t\t} else {\n\t\t\t\t\tfunc_context.call(this, canvas, ctx, time, func_context,v);\n\t\t\t\t}\n\t\t\t\tthis.boxcolor = \"#00FF00\";\n\t\t\t} catch (err) {\n\t\t\t\tthis.boxcolor = \"#FF0000\";\n\t\t\t\tconsole.error(\"Error executing script\");\n\t\t\t\tconsole.error(err);\n\t\t\t}\n\t\t\ttemp.uploadImage( canvas );\n\t\t}\n\n\t\tthis.setOutputData(0, temp);\n\t};\n\n\tLiteGraph.registerNodeType(\"texture/canvas2D\", LGraphTextureCanvas2D);\n\n\t// To do chroma keying *****************\n\n\tfunction LGraphTextureMatte() {\n\t\tthis.addInput(\"in\", \"Texture\");\n\n\t\tthis.addOutput(\"out\", \"Texture\");\n\t\tthis.properties = {\n\t\t\tkey_color: vec3.fromValues(0, 1, 0),\n\t\t\tthreshold: 0.8,\n\t\t\tslope: 0.2,\n\t\t\tprecision: LGraphTexture.DEFAULT\n\t\t};\n\t}\n\n\tLGraphTextureMatte.title = \"Matte\";\n\tLGraphTextureMatte.desc = \"Extracts background\";\n\n\tLGraphTextureMatte.widgets_info = {\n\t\tkey_color: { widget: \"color\" },\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\n\t};\n\n\tLGraphTextureMatte.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0)) {\n\t\t\treturn;\n\t\t} //saves work\n\n\t\tvar tex = this.getInputData(0);\n\n\t\tif (this.properties.precision === LGraphTexture.PASS_THROUGH) {\n\t\t\tthis.setOutputData(0, tex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!tex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._tex = LGraphTexture.getTargetTexture(\n\t\t\ttex,\n\t\t\tthis._tex,\n\t\t\tthis.properties.precision\n\t\t);\n\n\t\tgl.disable(gl.BLEND);\n\t\tgl.disable(gl.DEPTH_TEST);\n\n\t\tif (!this._uniforms) {\n\t\t\tthis._uniforms = {\n\t\t\t\tu_texture: 0,\n\t\t\t\tu_key_color: this.properties.key_color,\n\t\t\t\tu_threshold: 1,\n\t\t\t\tu_slope: 1\n\t\t\t};\n\t\t}\n\t\tvar uniforms = this._uniforms;\n\n\t\tvar mesh = Mesh.getScreenQuad();\n\t\tvar shader = LGraphTextureMatte._shader;\n\t\tif (!shader) {\n\t\t\tshader = LGraphTextureMatte._shader = new GL.Shader(\n\t\t\t\tGL.Shader.SCREEN_VERTEX_SHADER,\n\t\t\t\tLGraphTextureMatte.pixel_shader\n\t\t\t);\n\t\t}\n\n\t\tuniforms.u_key_color = this.properties.key_color;\n\t\tuniforms.u_threshold = this.properties.threshold;\n\t\tuniforms.u_slope = this.properties.slope;\n\n\t\tthis._tex.drawTo(function() {\n\t\t\ttex.bind(0);\n\t\t\tshader.uniforms(uniforms).draw(mesh);\n\t\t});\n\n\t\tthis.setOutputData(0, this._tex);\n\t};\n\n\tLGraphTextureMatte.pixel_shader =\n\t\t\"precision highp float;\\n\\\n\t\tvarying vec2 v_coord;\\n\\\n\t\tuniform sampler2D u_texture;\\n\\\n\t\tuniform vec3 u_key_color;\\n\\\n\t\tuniform float u_threshold;\\n\\\n\t\tuniform float u_slope;\\n\\\n\t\t\\n\\\n\t\tvoid main() {\\n\\\n\t\t\tvec3 color = texture2D( u_texture, v_coord ).xyz;\\n\\\n\t\t\tfloat diff = length( normalize(color) - normalize(u_key_color) );\\n\\\n\t\t\tfloat edge = u_threshold * (1.0 - u_slope);\\n\\\n\t\t\tfloat alpha = smoothstep( edge, u_threshold, diff);\\n\\\n\t\t\tgl_FragColor = vec4( color, alpha );\\n\\\n\t\t}\";\n\n\tLiteGraph.registerNodeType(\"texture/matte\", LGraphTextureMatte);\n\n\t//***********************************\n\tfunction LGraphCubemapToTexture2D() {\n\t\tthis.addInput(\"in\", \"texture\");\n\t\tthis.addInput(\"yaw\", \"number\");\n\t\tthis.addOutput(\"out\", \"texture\");\n\t\tthis.properties = { yaw: 0 };\n\t}\n\n\tLGraphCubemapToTexture2D.title = \"CubemapToTexture2D\";\n\tLGraphCubemapToTexture2D.desc = \"Transforms a CUBEMAP texture into a TEXTURE2D in Polar Representation\";\n\n\tLGraphCubemapToTexture2D.prototype.onExecute = function() {\n\t\tif (!this.isOutputConnected(0))\n\t\t\treturn;\n\n\t\tvar tex = this.getInputData(0);\n\t\tif ( !tex || tex.texture_type != GL.TEXTURE_CUBE_MAP )\n\t\t\treturn;\n\t\tif( this._last_tex && ( this._last_tex.height != tex.height || this._last_tex.type != tex.type ))\n\t\t\tthis._last_tex = null;\n\t\tvar yaw = this.getInputOrProperty(\"yaw\");\n\t\tthis._last_tex = GL.Texture.cubemapToTexture2D( tex, tex.height, this._last_tex, true, yaw );\n\t\tthis.setOutputData( 0, this._last_tex );\n\t};\n\n\tLiteGraph.registerNodeType( \"texture/cubemapToTexture2D\", LGraphCubemapToTexture2D );\n})(this);\n\n(function(global) {\r\n\r\n if (typeof GL == \"undefined\")\r\n\t\treturn;\r\n\r\n var LiteGraph = global.LiteGraph;\r\n\tvar LGraphCanvas = global.LGraphCanvas;\r\n\r\n\tvar SHADERNODES_COLOR = \"#345\";\r\n\r\n\tvar LGShaders = LiteGraph.Shaders = {};\r\n\r\n\tvar GLSL_types = LGShaders.GLSL_types = [\"float\",\"vec2\",\"vec3\",\"vec4\",\"mat3\",\"mat4\",\"sampler2D\",\"samplerCube\"];\r\n\tvar GLSL_types_const = LGShaders.GLSL_types_const = [\"float\",\"vec2\",\"vec3\",\"vec4\"];\r\n\r\n\tvar GLSL_functions_desc = {\r\n\t\t\"radians\": \"T radians(T degrees)\",\r\n\t\t\"degrees\": \"T degrees(T radians)\",\r\n\t\t\"sin\": \"T sin(T angle)\",\r\n\t\t\"cos\": \"T cos(T angle)\",\r\n\t\t\"tan\": \"T tan(T angle)\",\r\n\t\t\"asin\": \"T asin(T x)\",\r\n\t\t\"acos\": \"T acos(T x)\",\r\n\t\t\"atan\": \"T atan(T x)\",\r\n\t\t\"atan2\": \"T atan(T x,T y)\",\r\n\t\t\"pow\": \"T pow(T x,T y)\",\r\n\t\t\"exp\": \"T exp(T x)\",\r\n\t\t\"log\": \"T log(T x)\",\r\n\t\t\"exp2\": \"T exp2(T x)\",\r\n\t\t\"log2\": \"T log2(T x)\",\r\n\t\t\"sqrt\": \"T sqrt(T x)\",\r\n\t\t\"inversesqrt\": \"T inversesqrt(T x)\",\r\n\t\t\"abs\": \"T abs(T x)\",\r\n\t\t\"sign\": \"T sign(T x)\",\r\n\t\t\"floor\": \"T floor(T x)\",\r\n\t\t\"round\": \"T round(T x)\",\r\n\t\t\"ceil\": \"T ceil(T x)\",\r\n\t\t\"fract\": \"T fract(T x)\",\r\n\t\t\"mod\": \"T mod(T x,T y)\", //\"T mod(T x,float y)\"\r\n\t\t\"min\": \"T min(T x,T y)\",\r\n\t\t\"max\": \"T max(T x,T y)\",\r\n\t\t\"clamp\": \"T clamp(T x,T minVal = 0.0,T maxVal = 1.0)\",\r\n\t\t\"mix\": \"T mix(T x,T y,T a)\", //\"T mix(T x,T y,float a)\"\r\n\t\t\"step\": \"T step(T edge, T edge2, T x)\", //\"T step(float edge, T x)\"\r\n\t\t\"smoothstep\": \"T smoothstep(T edge, T edge2, T x)\", //\"T smoothstep(float edge, T x)\"\r\n\t\t\"length\":\"float length(T x)\",\r\n\t\t\"distance\":\"float distance(T p0, T p1)\",\r\n\t\t\"normalize\":\"T normalize(T x)\",\r\n\t\t\"dot\": \"float dot(T x,T y)\",\r\n\t\t\"cross\": \"vec3 cross(vec3 x,vec3 y)\",\r\n\t\t\"reflect\": \"vec3 reflect(vec3 V,vec3 N)\",\r\n\t\t\"refract\": \"vec3 refract(vec3 V,vec3 N, float IOR)\"\r\n\t};\r\n\r\n\t//parse them\r\n\tvar GLSL_functions = {};\r\n\tvar GLSL_functions_name = [];\r\n\tparseGLSLDescriptions();\r\n\r\n\tLGShaders.ALL_TYPES = \"float,vec2,vec3,vec4\";\r\n\r\n\tfunction parseGLSLDescriptions()\r\n\t{\r\n\t\tGLSL_functions_name.length = 0;\r\n\r\n\t\tfor(var i in GLSL_functions_desc)\r\n\t\t{\r\n\t\t\tvar op = GLSL_functions_desc[i];\r\n\t\t\tvar index = op.indexOf(\" \");\r\n\t\t\tvar return_type = op.substr(0,index);\r\n\t\t\tvar index2 = op.indexOf(\"(\",index);\r\n\t\t\tvar func_name = op.substr(index,index2-index).trim();\r\n\t\t\tvar params = op.substr(index2 + 1, op.length - index2 - 2).split(\",\");\r\n\t\t\tfor(var j in params)\r\n\t\t\t{\r\n\t\t\t\tvar p = params[j].split(\" \").filter(function(a){ return a; });\r\n\t\t\t\tparams[j] = { type: p[0].trim(), name: p[1].trim() };\r\n\t\t\t\tif(p[2] == \"=\")\r\n\t\t\t\t\tparams[j].value = p[3].trim();\r\n\t\t\t}\r\n\t\t\tGLSL_functions[i] = { return_type: return_type, func: func_name, params: params };\r\n\t\t\tGLSL_functions_name.push( func_name );\r\n\t\t\t//console.log( GLSL_functions[i] );\r\n\t\t}\r\n\t}\r\n\r\n\t//common actions to all shader node classes\r\n\tfunction registerShaderNode( type, node_ctor )\r\n\t{\r\n\t\t//static attributes\r\n\t\tnode_ctor.color = SHADERNODES_COLOR;\r\n\t\tnode_ctor.filter = \"shader\";\r\n\r\n\t\t//common methods\r\n\t\tnode_ctor.prototype.clearDestination = function(){ this.shader_destination = {}; }\r\n\t\tnode_ctor.prototype.propagateDestination = function propagateDestination( dest_name )\r\n\t\t{\r\n\t\t\tthis.shader_destination[ dest_name ] = true;\r\n\t\t\tif(this.inputs)\r\n\t\t\tfor(var i = 0; i < this.inputs.length; ++i)\r\n\t\t\t{\r\n\t\t\t\tvar origin_node = this.getInputNode(i);\r\n\t\t\t\tif(origin_node)\r\n\t\t\t\t\torigin_node.propagateDestination( dest_name );\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!node_ctor.prototype.onPropertyChanged)\r\n\t\t\tnode_ctor.prototype.onPropertyChanged = function()\r\n\t\t\t{\r\n\t\t\t\tif(this.graph)\r\n\t\t\t\t\t this.graph._version++;\r\n\t\t\t}\r\n\r\n\t\t/*\r\n\t\tif(!node_ctor.prototype.onGetCode)\r\n\t\t\tnode_ctor.prototype.onGetCode = function()\r\n\t\t\t{\r\n\t\t\t\t//check destination to avoid lonely nodes\r\n\t\t\t\tif(!this.shader_destination)\r\n\t\t\t\t\treturn;\r\n\t\t\t\t//grab inputs with types\r\n\t\t\t\tvar inputs = [];\r\n\t\t\t\tif(this.inputs)\r\n\t\t\t\tfor(var i = 0; i < this.inputs.length; ++i)\r\n\t\t\t\t\tinputs.push({ type: this.getInputData(i), name: getInputLinkID(this,i) });\r\n\t\t\t\tvar outputs = [];\r\n\t\t\t\tif(this.outputs)\r\n\t\t\t\tfor(var i = 0; i < this.outputs.length; ++i)\r\n\t\t\t\t\toutputs.push({ name: getOutputLinkID(this,i) });\r\n\t\t\t\t//pass to code func\r\n\t\t\t\tvar results = this.extractCode(inputs);\r\n\t\t\t\t//grab output, pass to next\r\n\t\t\t\tif(results)\r\n\t\t\t\tfor(var i = 0; i < results.length; ++i)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar r = results[i];\r\n\t\t\t\t\tif(!r)\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\tthis.setOutputData(i,r.value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t*/\r\n\r\n\t\tLiteGraph.registerNodeType( \"shader::\" + type, node_ctor );\r\n\t}\r\n\r\n\tfunction getShaderNodeVarName( node, name )\r\n\t{\r\n\t\treturn \"VAR_\" + (name || \"TEMP\") + \"_\" + node.id;\r\n\t}\r\n\r\n\tfunction getInputLinkID( node, slot )\r\n\t{\r\n\t\tif(!node.inputs)\r\n\t\t\treturn null;\r\n\t\tvar link = node.getInputLink( slot );\r\n\t\tif( !link )\r\n\t\t\treturn null;\r\n\t\tvar origin_node = node.graph.getNodeById( link.origin_id );\r\n\t\tif( !origin_node )\r\n\t\t\treturn null;\r\n\t\tif(origin_node.getOutputVarName)\r\n\t\t\treturn origin_node.getOutputVarName(link.origin_slot);\r\n\t\t//generate\r\n\t\treturn \"link_\" + origin_node.id + \"_\" + link.origin_slot;\r\n\t}\r\n\r\n\tfunction getOutputLinkID( node, slot )\r\n\t{\r\n\t\tif (!node.isOutputConnected(slot))\r\n\t\t\treturn null;\r\n\t\treturn \"link_\" + node.id + \"_\" + slot;\r\n\t}\r\n\r\n\tLGShaders.registerShaderNode = registerShaderNode;\r\n\tLGShaders.getInputLinkID = getInputLinkID;\r\n\tLGShaders.getOutputLinkID = getOutputLinkID;\r\n\tLGShaders.getShaderNodeVarName = getShaderNodeVarName;\r\n\tLGShaders.parseGLSLDescriptions = parseGLSLDescriptions;\r\n\r\n\t//given a const number, it transform it to a string that matches a type\r\n\tvar valueToGLSL = LiteGraph.valueToGLSL = function valueToGLSL( v, type, precision )\r\n\t{\r\n\t\tvar n = 5; //num decimals\r\n\t\tif(precision != null)\r\n\t\t\tn = precision;\r\n\t\tif(!type)\r\n\t\t{\r\n\t\t\tif(v.constructor === Number)\r\n\t\t\t\ttype = \"float\";\r\n\t\t\telse if(v.length)\r\n\t\t\t{\r\n\t\t\t\tswitch(v.length)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase 2: type = \"vec2\"; break;\r\n\t\t\t\t\tcase 3: type = \"vec3\"; break;\r\n\t\t\t\t\tcase 4: type = \"vec4\"; break;\r\n\t\t\t\t\tcase 9: type = \"mat3\"; break;\r\n\t\t\t\t\tcase 16: type = \"mat4\"; break;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthrow(\"unknown type for glsl value size\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tthrow(\"unknown type for glsl value: \" + v.constructor);\r\n\t\t}\r\n\t\tswitch(type)\r\n\t\t{\r\n\t\t\tcase 'float': return v.toFixed(n); break;\r\n\t\t\tcase 'vec2': return \"vec2(\" + v[0].toFixed(n) + \",\" + v[1].toFixed(n) + \")\"; break;\r\n\t\t\tcase 'color3':\r\n\t\t\tcase 'vec3': return \"vec3(\" + v[0].toFixed(n) + \",\" + v[1].toFixed(n) + \",\" + v[2].toFixed(n) + \")\"; break;\r\n\t\t\tcase 'color4':\r\n\t\t\tcase 'vec4': return \"vec4(\" + v[0].toFixed(n) + \",\" + v[1].toFixed(n) + \",\" + v[2].toFixed(n) + \",\" + v[3].toFixed(n) + \")\"; break;\r\n\t\t\tcase 'mat3': return \"mat3(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0)\"; break; //not fully supported yet\r\n\t\t\tcase 'mat4': return \"mat4(1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0)\"; break;//not fully supported yet\r\n\t\t\tdefault:\r\n\t\t\t\tthrow(\"unknown glsl type in valueToGLSL:\", type);\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t//makes sure that a var is of a type, and if not, it converts it\r\n\tvar varToTypeGLSL = LiteGraph.varToTypeGLSL = function varToTypeGLSL( v, input_type, output_type )\r\n\t{\r\n\t\tif(input_type == output_type)\r\n\t\t\treturn v;\r\n\t\tif(v == null)\r\n\t\t\tswitch(output_type)\r\n\t\t\t{\r\n\t\t\t\tcase \"float\": return \"0.0\";\r\n\t\t\t\tcase \"vec2\": return \"vec2(0.0)\";\r\n\t\t\t\tcase \"vec3\": return \"vec3(0.0)\";\r\n\t\t\t\tcase \"vec4\": return \"vec4(0.0,0.0,0.0,1.0)\";\r\n\t\t\t\tdefault: //null\r\n\t\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\tif(!output_type)\r\n\t\t\tthrow(\"error: no output type specified\");\r\n\t\tif(output_type == \"float\")\r\n\t\t{\r\n\t\t\tswitch(input_type)\r\n\t\t\t{\r\n\t\t\t\t//case \"float\":\r\n\t\t\t\tcase \"vec2\":\r\n\t\t\t\tcase \"vec3\":\r\n\t\t\t\tcase \"vec4\":\r\n\t\t\t\t\treturn v + \".x\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault: //null\r\n\t\t\t\t\treturn \"0.0\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(output_type == \"vec2\")\r\n\t\t{\r\n\t\t\tswitch(input_type)\r\n\t\t\t{\r\n\t\t\t\tcase \"float\":\r\n\t\t\t\t\treturn \"vec2(\"+v+\")\";\r\n\t\t\t\t//case \"vec2\":\r\n\t\t\t\tcase \"vec3\":\r\n\t\t\t\tcase \"vec4\":\r\n\t\t\t\t\treturn v + \".xy\";\r\n\t\t\t\tdefault: //null\r\n\t\t\t\t\treturn \"vec2(0.0)\";\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(output_type == \"vec3\")\r\n\t\t{\r\n\t\t\tswitch(input_type)\r\n\t\t\t{\r\n\t\t\t\tcase \"float\":\r\n\t\t\t\t\treturn \"vec3(\"+v+\")\";\r\n\t\t\t\tcase \"vec2\":\r\n\t\t\t\t\treturn \"vec3(\" + v + \",0.0)\";\r\n\t\t\t\t//case \"vec3\":\r\n\t\t\t\tcase \"vec4\":\r\n\t\t\t\t\treturn v + \".xyz\";\r\n\t\t\t\tdefault: //null\r\n\t\t\t\t\treturn \"vec3(0.0)\";\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(output_type == \"vec4\")\r\n\t\t{\r\n\t\t\tswitch(input_type)\r\n\t\t\t{\r\n\t\t\t\tcase \"float\":\r\n\t\t\t\t\treturn \"vec4(\"+v+\")\";\r\n\t\t\t\tcase \"vec2\":\r\n\t\t\t\t\treturn \"vec4(\" + v + \",0.0,1.0)\";\r\n\t\t\t\tcase \"vec3\":\r\n\t\t\t\t\treturn \"vec4(\" + v + \",1.0)\";\r\n\t\t\t\tdefault: //null\r\n\t\t\t\t\treturn \"vec4(0.0,0.0,0.0,1.0)\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tthrow(\"type cannot be converted\");\r\n\t}\r\n\r\n\r\n\t//used to plug incompatible stuff\r\n\tvar convertVarToGLSLType = LiteGraph.convertVarToGLSLType = function convertVarToGLSLType( varname, type, target_type )\r\n\t{\r\n\t\tif(type == target_type)\r\n\t\t\treturn varname;\r\n\t\tif(type == \"float\")\r\n\t\t\treturn target_type + \"(\" + varname + \")\";\r\n\t\tif(target_type == \"vec2\") //works for vec2,vec3 and vec4\r\n\t\t\treturn \"vec2(\" + varname + \".xy)\";\r\n\t\tif(target_type == \"vec3\") //works for vec2,vec3 and vec4\r\n\t\t{\r\n\t\t\tif(type == \"vec2\")\r\n\t\t\t\treturn \"vec3(\" + varname + \",0.0)\";\r\n\t\t\tif(type == \"vec4\")\r\n\t\t\t\treturn \"vec4(\" + varname + \".xyz)\";\r\n\t\t}\r\n\t\tif(target_type == \"vec4\")\r\n\t\t{\r\n\t\t\tif(type == \"vec2\")\r\n\t\t\t\treturn \"vec4(\" + varname + \",0.0,0.0)\";\r\n\t\t\tif(target_type == \"vec3\")\r\n\t\t\t\treturn \"vec4(\" + varname + \",1.0)\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t//used to host a shader body **************************************\r\n\tfunction LGShaderContext()\r\n\t{\r\n\t\t//to store the code template\r\n\t\tthis.vs_template = \"\";\r\n\t\tthis.fs_template = \"\";\r\n\r\n\t\t//required so nodes now where to fetch the input data\r\n\t\tthis.buffer_names = {\r\n\t\t\tuvs: \"v_coord\"\r\n\t\t};\r\n\r\n\t\tthis.extra = {}; //to store custom info from the nodes (like if this shader supports a feature, etc)\r\n\r\n\t\tthis._functions = {};\r\n\t\tthis._uniforms = {};\r\n\t\tthis._codeparts = {};\r\n\t\tthis._uniform_value = null;\r\n\t}\r\n\r\n\tLGShaderContext.prototype.clear = function()\r\n\t{\r\n\t\tthis._uniforms = {};\r\n\t\tthis._functions = {};\r\n\t\tthis._codeparts = {};\r\n\t\tthis._uniform_value = null;\r\n\r\n\t\tthis.extra = {};\r\n\t}\r\n\r\n\tLGShaderContext.prototype.addUniform = function( name, type, value )\r\n\t{\r\n\t\tthis._uniforms[ name ] = type;\r\n\t\tif(value != null)\r\n\t\t{\r\n\t\t\tif(!this._uniform_value)\r\n\t\t\t\tthis._uniform_value = {};\r\n\t\t\tthis._uniform_value[name] = value;\r\n\t\t}\r\n\t}\r\n\r\n\tLGShaderContext.prototype.addFunction = function( name, code )\r\n\t{\r\n\t\tthis._functions[name] = code;\r\n\t}\r\n\r\n\tLGShaderContext.prototype.addCode = function( hook, code, destinations )\r\n\t{\r\n\t\tdestinations = destinations || {\"\":\"\"};\r\n\t\tfor(var i in destinations)\r\n\t\t{\r\n\t\t\tvar h = i ? i + \"_\" + hook : hook;\r\n\t\t\tif(!this._codeparts[ h ])\r\n\t\t\t\tthis._codeparts[ h ] = code + \"\\n\";\r\n\t\t\telse\r\n\t\t\t\tthis._codeparts[ h ] += code + \"\\n\";\r\n\t\t}\r\n\t}\r\n\r\n\t//the system works by grabbing code fragments from every node and concatenating them in blocks depending on where must they be attached\r\n\tLGShaderContext.prototype.computeCodeBlocks = function( graph, extra_uniforms )\r\n\t{\r\n\t\t//prepare context\r\n\t\tthis.clear();\r\n\r\n\t\t//grab output nodes\r\n\t\tvar vertexout = graph.findNodesByType(\"shader::output/vertex\");\r\n\t\tvertexout = vertexout && vertexout.length ? vertexout[0] : null;\r\n\t\tvar fragmentout = graph.findNodesByType(\"shader::output/fragcolor\");\r\n\t\tfragmentout = fragmentout && fragmentout.length ? fragmentout[0] : null;\r\n\t\tif(!fragmentout) //??\r\n\t\t\treturn null; \r\n\r\n\t\t//propagate back destinations\r\n\t\tgraph.sendEventToAllNodes( \"clearDestination\" );\r\n\t\tif(vertexout)\r\n\t\t\tvertexout.propagateDestination(\"vs\");\r\n\t\tif(fragmentout)\r\n\t\t\tfragmentout.propagateDestination(\"fs\");\r\n\r\n\t\t//gets code from graph\r\n\t\tgraph.sendEventToAllNodes(\"onGetCode\", this );\r\n\r\n\t\tvar uniforms = \"\";\r\n\t\tfor(var i in this._uniforms)\r\n\t\t\tuniforms += \"uniform \" + this._uniforms[i] + \" \" + i + \";\\n\";\r\n\t\tif(extra_uniforms)\r\n\t\t\tfor(var i in extra_uniforms)\r\n\t\t\t\tuniforms += \"uniform \" + extra_uniforms[i] + \" \" + i + \";\\n\";\r\n\r\n\t\tvar functions = \"\";\r\n\t\tfor(var i in this._functions)\r\n\t\t\tfunctions += \"//\" + i + \"\\n\" + this._functions[i] + \"\\n\";\r\n\r\n\t\tvar blocks = this._codeparts;\r\n\t\tblocks.uniforms = uniforms;\r\n\t\tblocks.functions = functions;\r\n\t\treturn blocks;\r\n\t}\r\n\r\n\t//replaces blocks using the vs and fs template and returns the final codes\r\n\tLGShaderContext.prototype.computeShaderCode = function( graph )\r\n\t{\r\n\t\tvar blocks = this.computeCodeBlocks( graph );\r\n\t\tvar vs_code = GL.Shader.replaceCodeUsingContext( this.vs_template, blocks );\r\n\t\tvar fs_code = GL.Shader.replaceCodeUsingContext( this.fs_template, blocks );\r\n\t\treturn {\r\n\t\t\tvs_code: vs_code,\r\n\t\t\tfs_code: fs_code\r\n\t\t};\r\n\t}\r\n\r\n\t//generates the shader code from the template and the \r\n\tLGShaderContext.prototype.computeShader = function( graph, shader )\r\n\t{\r\n\t\tvar finalcode = this.computeShaderCode( graph );\r\n\t\tconsole.log( finalcode.vs_code, finalcode.fs_code );\r\n\r\n\t\tif(!LiteGraph.catch_exceptions)\r\n\t\t{\r\n\t\t\tthis._shader_error = true;\r\n\t\t\tif(shader)\r\n\t\t\t\tshader.updateShader( finalcode.vs_code, finalcode.fs_code );\r\n\t\t\telse\r\n\t\t\t\tshader = new GL.Shader( finalcode.vs_code, finalcode.fs_code );\r\n\t\t\tthis._shader_error = false;\r\n\t\t\treturn shader;\r\n\t\t}\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tif(shader)\r\n\t\t\t\tshader.updateShader( finalcode.vs_code, finalcode.fs_code );\r\n\t\t\telse\r\n\t\t\t\tshader = new GL.Shader( finalcode.vs_code, finalcode.fs_code );\r\n\t\t\tthis._shader_error = false;\r\n\t\t\treturn shader;\r\n\t\t}\r\n\t\tcatch (err)\r\n\t\t{\r\n\t\t\tif(!this._shader_error)\r\n\t\t\t{\r\n\t\t\t\tconsole.error(err);\r\n\t\t\t\tif(err.indexOf(\"Fragment shader\") != -1)\r\n\t\t\t\t\tconsole.log( finalcode.fs_code.split(\"\\n\").map(function(v,i){ return i + \".- \" + v; }).join(\"\\n\") );\r\n\t\t\t\telse\r\n\t\t\t\t\tconsole.log( finalcode.vs_code );\r\n\t\t\t}\r\n\t\t\tthis._shader_error = true;\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn null;//never here\r\n\t}\r\n\r\n\tLGShaderContext.prototype.getShader = function( graph )\r\n\t{\r\n\t\t//if graph not changed?\r\n\t\tif(this._shader && this._shader._version == graph._version)\r\n\t\t\treturn this._shader;\r\n\r\n\t\t//compile shader\r\n\t\tvar shader = this.computeShader( graph, this._shader );\r\n\t\tif(!shader)\r\n\t\t\treturn null;\r\n\t\t\r\n\t\tthis._shader = shader;\r\n\t\tshader._version = graph._version;\r\n\t\treturn shader;\r\n\t}\r\n\r\n\t//some shader nodes could require to fill the box with some uniforms\r\n\tLGShaderContext.prototype.fillUniforms = function( uniforms, param )\r\n\t{\r\n\t\tif(!this._uniform_value)\r\n\t\t\treturn;\r\n\r\n\t\tfor(var i in this._uniform_value)\r\n\t\t{\r\n\t\t\tvar v = this._uniform_value[i];\r\n\t\t\tif(v == null)\r\n\t\t\t\tcontinue;\r\n\t\t\tif(v.constructor === Function)\r\n\t\t\t\tuniforms[i] = v.call( this, param );\r\n\t\t\telse if(v.constructor === GL.Texture)\r\n\t\t\t{\r\n\t\t\t\t//todo...\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tuniforms[i] = v;\r\n\t\t}\r\n\t}\r\n\r\n\tLiteGraph.ShaderContext = LiteGraph.Shaders.Context = LGShaderContext;\r\n\r\n\t// LGraphShaderGraph *****************************\r\n\t// applies a shader graph to texture, it can be uses as an example\r\n\r\n\tfunction LGraphShaderGraph() {\r\n\r\n\t\t//before inputs\r\n this.subgraph = new LiteGraph.LGraph();\r\n this.subgraph._subgraph_node = this;\r\n this.subgraph._is_subgraph = true;\r\n\t\tthis.subgraph.filter = \"shader\";\r\n\r\n\t\tthis.addInput(\"in\", \"texture\");\r\n\t\tthis.addOutput(\"out\", \"texture\");\r\n\t\tthis.properties = { width: 0, height: 0, alpha: false, precision: typeof(LGraphTexture) != \"undefined\" ? LGraphTexture.DEFAULT : 2 };\r\n\r\n\t\tvar inputNode = this.subgraph.findNodesByType(\"shader::input/uniform\")[0];\r\n\t\tinputNode.pos = [200,300];\r\n\r\n\t\tvar sampler = LiteGraph.createNode(\"shader::texture/sampler2D\");\r\n\t\tsampler.pos = [400,300];\r\n\t\tthis.subgraph.add( sampler );\r\n\r\n\t\tvar outnode = LiteGraph.createNode(\"shader::output/fragcolor\");\r\n\t\toutnode.pos = [600,300];\r\n\t\tthis.subgraph.add( outnode );\r\n\r\n\t\tinputNode.connect( 0, sampler );\r\n\t\tsampler.connect( 0, outnode );\r\n\r\n\t\tthis.size = [180,60];\r\n\t\tthis.redraw_on_mouse = true; //force redraw\r\n\r\n\t\tthis._uniforms = {};\r\n\t\tthis._shader = null;\r\n\t\tthis._context = new LGShaderContext();\r\n\t\tthis._context.vs_template = \"#define VERTEX\\n\" + GL.Shader.SCREEN_VERTEX_SHADER;\r\n\t\tthis._context.fs_template = LGraphShaderGraph.template;\r\n\t}\r\n\r\n\tLGraphShaderGraph.template = \"\\n\\\r\n#define FRAGMENT\\n\\\r\nprecision highp float;\\n\\\r\nvarying vec2 v_coord;\\n\\\r\n{{varying}}\\n\\\r\n{{uniforms}}\\n\\\r\n{{functions}}\\n\\\r\n{{fs_functions}}\\n\\\r\nvoid main() {\\n\\n\\\r\nvec2 uv = v_coord;\\n\\\r\nvec4 fragcolor = vec4(0.0);\\n\\\r\nvec4 fragcolor1 = vec4(0.0);\\n\\\r\n{{fs_code}}\\n\\\r\ngl_FragColor = fragcolor;\\n\\\r\n}\\n\\\r\n\t\";\r\n\r\n\tLGraphShaderGraph.widgets_info = {\r\n\t\tprecision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\r\n\t};\r\n\r\n\tLGraphShaderGraph.title = \"ShaderGraph\";\r\n\tLGraphShaderGraph.desc = \"Builds a shader using a graph\";\r\n\tLGraphShaderGraph.input_node_type = \"input/uniform\";\r\n\tLGraphShaderGraph.output_node_type = \"output/fragcolor\";\r\n\tLGraphShaderGraph.title_color = SHADERNODES_COLOR;\r\n\r\n\tLGraphShaderGraph.prototype.onSerialize = function(o)\r\n\t{\r\n\t\to.subgraph = this.subgraph.serialize();\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.onConfigure = function(o)\r\n\t{\r\n\t\tthis.subgraph.configure(o.subgraph);\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.onExecute = function() {\r\n\t\tif (!this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\t//read input texture\r\n\t\tvar intex = this.getInputData(0);\r\n\t\tif(intex && intex.constructor != GL.Texture)\r\n\t\t\tintex = null;\r\n\r\n\t\tvar w = this.properties.width | 0;\r\n\t\tvar h = this.properties.height | 0;\r\n\t\tif (w == 0) {\r\n\t\t\tw = intex ? intex.width : gl.viewport_data[2];\r\n\t\t} //0 means default\r\n\t\tif (h == 0) {\r\n\t\t\th = intex ? intex.height : gl.viewport_data[3];\r\n\t\t} //0 means default\r\n\r\n\t\tvar type = LGraphTexture.getTextureType( this.properties.precision, intex );\r\n\r\n\t\tvar texture = this._texture;\r\n\t\tif ( !texture || texture.width != w || texture.height != h || texture.type != type ) {\r\n\t\t\ttexture = this._texture = new GL.Texture(w, h, {\r\n\t\t\t\ttype: type,\r\n\t\t\t\tformat: this.alpha ? gl.RGBA : gl.RGB,\r\n\t\t\t\tfilter: gl.LINEAR\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tvar shader = this.getShader( this.subgraph );\r\n\t\tif(!shader)\r\n\t\t\treturn;\r\n\r\n\t\tvar uniforms = this._uniforms;\r\n\t\tthis._context.fillUniforms( uniforms );\r\n\r\n\t\tvar tex_slot = 0;\r\n\t\tif(this.inputs)\r\n\t\tfor(var i = 0; i < this.inputs.length; ++i)\r\n\t\t{\r\n\t\t\tvar input = this.inputs[i];\r\n\t\t\tvar data = this.getInputData(i);\r\n\t\t\tif(input.type == \"texture\")\r\n\t\t\t{\r\n\t\t\t\tif(!data)\r\n\t\t\t\t\tdata = GL.Texture.getWhiteTexture();\r\n\t\t\t\tdata = data.bind(tex_slot++);\r\n\t\t\t}\r\n\r\n\t\t\tif(data != null)\r\n\t\t\t\tuniforms[ \"u_\" + input.name ] = data;\r\n\t\t}\r\n\r\n\t\tvar mesh = GL.Mesh.getScreenQuad();\r\n\r\n\t\tgl.disable( gl.DEPTH_TEST );\r\n\t\tgl.disable( gl.BLEND );\r\n\r\n\t\ttexture.drawTo(function(){\r\n\t\t\tshader.uniforms( uniforms );\r\n\t\t\tshader.draw( mesh );\r\n\t\t});\r\n\r\n\t\t//use subgraph output \r\n\t\tthis.setOutputData(0, texture );\r\n\t};\r\n\r\n\t//add input node inside subgraph\r\n\tLGraphShaderGraph.prototype.onInputAdded = function( slot_info )\r\n\t{\r\n\t\tvar subnode = LiteGraph.createNode(\"shader::input/uniform\");\r\n\t\tsubnode.setProperty(\"name\",slot_info.name);\r\n\t\tsubnode.setProperty(\"type\",slot_info.type);\r\n\t\tthis.subgraph.add( subnode );\r\n\t}\r\n\r\n\t//remove all\r\n\tLGraphShaderGraph.prototype.onInputRemoved = function( slot, slot_info )\r\n\t{\r\n\t\tvar nodes = this.subgraph.findNodesByType(\"shader::input/uniform\");\r\n\t\tfor(var i = 0; i < nodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar node = nodes[i];\r\n\t\t\tif(node.properties.name == slot_info.name )\r\n\t\t\t\tthis.subgraph.remove( node );\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.computeSize = function()\r\n\t{\r\n\t\tvar num_inputs = this.inputs ? this.inputs.length : 0;\r\n\t\tvar num_outputs = this.outputs ? this.outputs.length : 0;\r\n\t\treturn [ 200, Math.max(num_inputs,num_outputs) * LiteGraph.NODE_SLOT_HEIGHT + LiteGraph.NODE_TITLE_HEIGHT + 10];\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.getShader = function()\r\n\t{\r\n\t\tvar shader = this._context.getShader( this.subgraph );\r\n\t\tif(!shader)\r\n\t\t\tthis.boxcolor = \"red\";\r\n\t\telse\r\n\t\t\tthis.boxcolor = null;\r\n\t\treturn shader;\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.onDrawBackground = function(ctx, graphcanvas, canvas, pos)\r\n\t{\r\n\t\tif(this.flags.collapsed)\r\n\t\t\treturn;\r\n\r\n\t\t//allows to preview the node if the canvas is a webgl canvas\r\n\t\tvar tex = this.getOutputData(0);\r\n\t\tvar inputs_y = this.inputs ? this.inputs.length * LiteGraph.NODE_SLOT_HEIGHT : 0;\r\n\t\tif (tex && ctx == tex.gl && this.size[1] > inputs_y + LiteGraph.NODE_TITLE_HEIGHT ) {\r\n\t\t\tctx.drawImage( tex, 10,y, this.size[0] - 20, this.size[1] - inputs_y - LiteGraph.NODE_TITLE_HEIGHT );\r\n\t\t}\r\n\r\n\t\tvar y = this.size[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5;\r\n\r\n\t\t//button\r\n\t\tvar over = LiteGraph.isInsideRectangle(pos[0],pos[1],this.pos[0],this.pos[1] + y,this.size[0],LiteGraph.NODE_TITLE_HEIGHT);\r\n\t\tctx.fillStyle = over ? \"#555\" : \"#222\";\r\n\t\tctx.beginPath();\r\n\t\tif (this._shape == LiteGraph.BOX_SHAPE)\r\n\t\t\tctx.rect(0, y, this.size[0]+1, LiteGraph.NODE_TITLE_HEIGHT);\r\n\t\telse\r\n\t\t\tctx.roundRect( 0, y, this.size[0]+1, LiteGraph.NODE_TITLE_HEIGHT, 0, 8);\r\n\t\tctx.fill();\r\n\r\n\t\t//button\r\n\t\tctx.textAlign = \"center\";\r\n\t\tctx.font = \"24px Arial\";\r\n\t\tctx.fillStyle = over ? \"#DDD\" : \"#999\";\r\n\t\tctx.fillText( \"+\", this.size[0] * 0.5, y + 24 );\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.onMouseDown = function(e, localpos, graphcanvas)\r\n\t{\r\n\t\tvar y = this.size[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5;\r\n\t\tif(localpos[1] > y)\r\n\t\t{\r\n\t\t\tgraphcanvas.showSubgraphPropertiesDialog(this);\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.onDrawSubgraphBackground = function(graphcanvas)\r\n\t{\r\n\t\t//TODO\r\n\t}\r\n\r\n\tLGraphShaderGraph.prototype.getExtraMenuOptions = function(graphcanvas)\r\n\t{\r\n\t\tvar that = this;\r\n\t\tvar options = [{ content: \"Print Code\", callback: function(){\r\n\t\t\tvar code = that._context.computeShaderCode();\r\n\t\t\tconsole.log( code.vs_code, code.fs_code );\r\n\t\t}}];\r\n\r\n\t\treturn options;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"texture/shaderGraph\", LGraphShaderGraph );\r\n\r\n\tfunction shaderNodeFromFunction( classname, params, return_type, code )\r\n\t{\r\n\t\t//TODO\r\n\t}\r\n\r\n\t//Shader Nodes ***********************************************************\r\n\r\n\t//applies a shader graph to a code\r\n\tfunction LGraphShaderUniform() {\r\n\t\tthis.addOutput(\"out\", \"\");\r\n\t\tthis.properties = { name: \"\", type: \"\" };\r\n\t}\r\n\r\n\tLGraphShaderUniform.title = \"Uniform\";\r\n\tLGraphShaderUniform.desc = \"Input data for the shader\";\r\n\r\n\tLGraphShaderUniform.prototype.getTitle = function()\r\n\t{\r\n\t\tif( this.properties.name && this.flags.collapsed)\r\n\t\t\treturn this.properties.type + \" \" + this.properties.name;\r\n\t\treturn \"Uniform\";\r\n\t}\r\n\r\n\tLGraphShaderUniform.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tthis.outputs[0].name = this.properties.type + \" \" + this.properties.name;\r\n\t}\r\n\r\n\tLGraphShaderUniform.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar type = this.properties.type;\r\n\t\tif( !type )\r\n\t\t{\r\n\t\t\tif( !context.onGetPropertyInfo )\r\n\t\t\t\treturn;\r\n\t\t\tvar info = context.onGetPropertyInfo( this.property.name );\r\n\t\t\tif(!info)\r\n\t\t\t\treturn;\r\n\t\t\ttype = info.type;\r\n\t\t}\r\n\t\tif(type == \"number\")\r\n\t\t\ttype = \"float\";\r\n\t\telse if(type == \"texture\")\r\n\t\t\ttype = \"sampler2D\";\r\n\t\tif ( LGShaders.GLSL_types.indexOf(type) == -1 )\r\n\t\t\treturn;\r\n\r\n\t\tcontext.addUniform( \"u_\" + this.properties.name, type );\r\n\t\tthis.setOutputData( 0, type );\r\n\t}\r\n\r\n\tLGraphShaderUniform.prototype.getOutputVarName = function(slot)\r\n\t{\r\n\t\treturn \"u_\" + this.properties.name;\r\n\t}\r\n\r\n\tregisterShaderNode( \"input/uniform\", LGraphShaderUniform );\r\n\r\n\r\n\tfunction LGraphShaderAttribute() {\r\n\t\tthis.addOutput(\"out\", \"vec2\");\r\n\t\tthis.properties = { name: \"coord\", type: \"vec2\" };\r\n\t}\r\n\r\n\tLGraphShaderAttribute.title = \"Attribute\";\r\n\tLGraphShaderAttribute.desc = \"Input data from mesh attribute\";\r\n\r\n\tLGraphShaderAttribute.prototype.getTitle = function()\r\n\t{\r\n\t\treturn \"att. \" + this.properties.name;\r\n\t}\r\n\r\n\tLGraphShaderAttribute.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar type = this.properties.type;\r\n\t\tif( !type || LGShaders.GLSL_types.indexOf(type) == -1 )\r\n\t\t\treturn;\r\n\t\tif(type == \"number\")\r\n\t\t\ttype = \"float\";\r\n\t\tif( this.properties.name != \"coord\")\r\n\t\t{\r\n\t\t\tcontext.addCode( \"varying\", \" varying \" + type +\" v_\" + this.properties.name + \";\" );\r\n\t\t\t//if( !context.varyings[ this.properties.name ] )\r\n\t\t\t//context.addCode( \"vs_code\", \"v_\" + this.properties.name + \" = \" + input_name + \";\" );\r\n\t\t}\r\n\t\tthis.setOutputData( 0, type );\r\n\t}\r\n\r\n\tLGraphShaderAttribute.prototype.getOutputVarName = function(slot)\r\n\t{\r\n\t\treturn \"v_\" + this.properties.name;\r\n\t}\r\n\r\n\tregisterShaderNode( \"input/attribute\", LGraphShaderAttribute );\r\n\r\n\tfunction LGraphShaderSampler2D() {\r\n\t\tthis.addInput(\"tex\", \"sampler2D\");\r\n\t\tthis.addInput(\"uv\", \"vec2\");\r\n\t\tthis.addOutput(\"rgba\", \"vec4\");\r\n\t\tthis.addOutput(\"rgb\", \"vec3\");\r\n\t}\r\n\r\n\tLGraphShaderSampler2D.title = \"Sampler2D\";\r\n\tLGraphShaderSampler2D.desc = \"Reads a pixel from a texture\";\r\n\r\n\tLGraphShaderSampler2D.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar texname = getInputLinkID( this, 0 );\r\n\t\tvar varname = getShaderNodeVarName(this);\r\n\t\tvar code = \"vec4 \" + varname + \" = vec4(0.0);\\n\";\r\n\t\tif(texname)\r\n\t\t{\r\n\t\t\tvar uvname = getInputLinkID( this, 1 ) || context.buffer_names.uvs;\r\n\t\t\tcode += varname + \" = texture2D(\"+texname+\",\"+uvname+\");\\n\";\r\n\t\t}\r\n\r\n\t\tvar link0 = getOutputLinkID( this, 0 );\r\n\t\tif(link0)\r\n\t\t\tcode += \"vec4 \" + getOutputLinkID( this, 0 ) + \" = \"+varname+\";\\n\";\r\n\r\n\t\tvar link1 = getOutputLinkID( this, 1 );\r\n\t\tif(link1)\r\n\t\t\tcode += \"vec3 \" + getOutputLinkID( this, 1 ) + \" = \"+varname+\".xyz;\\n\";\r\n\r\n\t\tcontext.addCode( \"code\", code, this.shader_destination );\r\n\t\tthis.setOutputData( 0, \"vec4\" );\r\n\t\tthis.setOutputData( 1, \"vec3\" );\r\n\t}\r\n\r\n\tregisterShaderNode( \"texture/sampler2D\", LGraphShaderSampler2D );\r\n\r\n\t//*********************************\r\n\r\n\tfunction LGraphShaderConstant()\r\n\t{\r\n\t\tthis.addOutput(\"\",\"float\");\r\n\r\n\t\tthis.properties = {\r\n\t\t\ttype: \"float\",\r\n\t\t\tvalue: 0\r\n\t\t};\r\n\r\n\t\tthis.addWidget(\"combo\",\"type\",\"float\",null, { values: GLSL_types_const, property: \"type\" } );\r\n\t\tthis.updateWidgets();\r\n\t}\r\n\r\n\tLGraphShaderConstant.title = \"const\";\r\n\r\n\tLGraphShaderConstant.prototype.getTitle = function()\r\n\t{\r\n\t\tif(this.flags.collapsed)\r\n\t\t\treturn valueToGLSL( this.properties.value, this.properties.type, 2 );\r\n\t\treturn \"Const\";\r\n\t}\r\n\r\n\tLGraphShaderConstant.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tvar that = this;\r\n\t\tif(name == \"type\")\r\n\t\t{\r\n\t\t\tif(this.outputs[0].type != value)\r\n\t\t\t{\r\n\t\t\t\tthis.disconnectOutput(0);\r\n\t\t\t\tthis.outputs[0].type = value;\r\n\t\t\t}\r\n\t\t\tthis.widgets.length = 1; //remove extra widgets\r\n\t\t\tthis.updateWidgets();\r\n\t\t}\r\n\t\tif(name == \"value\")\r\n\t\t{\r\n\t\t\tif(!value.length)\r\n\t\t\t\tthis.widgets[1].value = value;\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.widgets[1].value = value[1];\r\n\t\t\t\tif(value.length > 2)\r\n\t\t\t\t\tthis.widgets[2].value = value[2];\r\n\t\t\t\tif(value.length > 3)\r\n\t\t\t\t\tthis.widgets[3].value = value[3];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderConstant.prototype.updateWidgets = function( old_value )\r\n\t{\r\n\t\tvar that = this;\r\n\t\tvar old_value = this.properties.value;\r\n\t\tvar options = { step: 0.01 };\r\n\t\tswitch(this.properties.type)\r\n\t\t{\r\n\t\t\tcase 'float': \r\n\t\t\t\tthis.properties.value = 0;\r\n\t\t\t\tthis.addWidget(\"number\",\"v\",0,{ step:0.01, property: \"value\" });\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'vec2': \r\n\t\t\t\tthis.properties.value = old_value && old_value.length == 2 ? [old_value[0],old_value[1]] : [0,0,0];\r\n\t\t\t\tthis.addWidget(\"number\",\"x\",this.properties.value[0], function(v){ that.properties.value[0] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"y\",this.properties.value[1], function(v){ that.properties.value[1] = v; },options); \r\n\t\t\t\tbreak;\r\n\t\t\tcase 'vec3': \r\n\t\t\t\tthis.properties.value = old_value && old_value.length == 3 ? [old_value[0],old_value[1],old_value[2]] : [0,0,0];\r\n\t\t\t\tthis.addWidget(\"number\",\"x\",this.properties.value[0], function(v){ that.properties.value[0] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"y\",this.properties.value[1], function(v){ that.properties.value[1] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"z\",this.properties.value[2], function(v){ that.properties.value[2] = v; },options); \r\n\t\t\t\tbreak;\r\n\t\t\tcase 'vec4': \r\n\t\t\t\tthis.properties.value = old_value && old_value.length == 4 ? [old_value[0],old_value[1],old_value[2],old_value[3]] : [0,0,0,0];\r\n\t\t\t\tthis.addWidget(\"number\",\"x\",this.properties.value[0], function(v){ that.properties.value[0] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"y\",this.properties.value[1], function(v){ that.properties.value[1] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"z\",this.properties.value[2], function(v){ that.properties.value[2] = v; },options); \r\n\t\t\t\tthis.addWidget(\"number\",\"w\",this.properties.value[3], function(v){ that.properties.value[3] = v; },options); \r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"unknown type for constant\");\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderConstant.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar value = valueToGLSL( this.properties.value, this.properties.type );\r\n\t\tvar link_name = getOutputLinkID(this,0);\r\n\t\tif(!link_name) //not connected\r\n\t\t\treturn;\r\n\r\n\t\tvar code = \"\t\" + this.properties.type + \" \" + link_name + \" = \" + value + \";\";\r\n\t\tcontext.addCode( \"code\", code, this.shader_destination );\r\n\r\n\t\tthis.setOutputData( 0, this.properties.type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"const/const\", LGraphShaderConstant );\r\n\r\n\tfunction LGraphShaderVec2()\r\n\t{\r\n\t\tthis.addInput(\"xy\",\"vec2\");\r\n\t\tthis.addInput(\"x\",\"float\");\r\n\t\tthis.addInput(\"y\",\"float\");\r\n\t\tthis.addOutput(\"xy\",\"vec2\");\r\n\t\tthis.addOutput(\"x\",\"float\");\r\n\t\tthis.addOutput(\"y\",\"float\");\r\n\r\n\t\tthis.properties = { x: 0, y: 0 };\r\n\t}\r\n\r\n\tLGraphShaderVec2.title = \"vec2\";\r\n\tLGraphShaderVec2.varmodes = [\"xy\",\"x\",\"y\"];\r\n\r\n\tLGraphShaderVec2.prototype.onPropertyChanged = function()\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\t this.graph._version++;\r\n\t}\r\n\r\n\tLGraphShaderVec2.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar props = this.properties;\r\n\r\n\t\tvar varname = getShaderNodeVarName(this);\r\n\t\tvar code = \"\tvec2 \" + varname + \" = \" + valueToGLSL([props.x,props.y]) + \";\\n\";\r\n\r\n\t\tfor(var i = 0;i < LGraphShaderVec2.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec2.varmodes[i];\r\n\t\t\tvar inlink = getInputLinkID(this,i);\r\n\t\t\tif(!inlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tcode += \"\t\" + varname + \".\"+varmode+\" = \" + inlink + \";\\n\";\r\n\t\t}\r\n\r\n\t\tfor(var i = 0;i < LGraphShaderVec2.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec2.varmodes[i];\r\n\t\t\tvar outlink = getOutputLinkID(this,i);\r\n\t\t\tif(!outlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tvar type = GLSL_types_const[varmode.length - 1];\r\n\t\t\tcode += \"\t\"+type+\" \" + outlink + \" = \" + varname + \".\" + varmode + \";\\n\";\r\n\t\t\tthis.setOutputData( i, type );\r\n\t\t}\r\n\r\n\t\tcontext.addCode( \"code\", code, this.shader_destination );\r\n\t}\r\n\r\n\tregisterShaderNode( \"const/vec2\", LGraphShaderVec2 );\t\r\n\r\n\tfunction LGraphShaderVec3()\r\n\t{\r\n\t\tthis.addInput(\"xyz\",\"vec3\");\r\n\t\tthis.addInput(\"x\",\"float\");\r\n\t\tthis.addInput(\"y\",\"float\");\r\n\t\tthis.addInput(\"z\",\"float\");\r\n\t\tthis.addInput(\"xy\",\"vec2\");\r\n\t\tthis.addInput(\"xz\",\"vec2\");\r\n\t\tthis.addInput(\"yz\",\"vec2\");\r\n\t\tthis.addOutput(\"xyz\",\"vec3\");\r\n\t\tthis.addOutput(\"x\",\"float\");\r\n\t\tthis.addOutput(\"y\",\"float\");\r\n\t\tthis.addOutput(\"z\",\"float\");\r\n\t\tthis.addOutput(\"xy\",\"vec2\");\r\n\t\tthis.addOutput(\"xz\",\"vec2\");\r\n\t\tthis.addOutput(\"yz\",\"vec2\");\r\n\r\n\t\tthis.properties = { x:0, y: 0, z: 0 };\r\n\t}\r\n\r\n\tLGraphShaderVec3.title = \"vec3\";\r\n\tLGraphShaderVec3.varmodes = [\"xyz\",\"x\",\"y\",\"z\",\"xy\",\"xz\",\"yz\"];\r\n\r\n\tLGraphShaderVec3.prototype.onPropertyChanged = function()\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\tthis.graph._version++;\r\n\t}\r\n\r\n\tLGraphShaderVec3.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar props = this.properties;\r\n\r\n\t\tvar varname = getShaderNodeVarName(this);\r\n\t\tvar code = \"vec3 \" + varname + \" = \" + valueToGLSL([props.x,props.y,props.z]) + \";\\n\";\r\n\r\n\t\tfor(var i = 0;i < LGraphShaderVec3.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec3.varmodes[i];\r\n\t\t\tvar inlink = getInputLinkID(this,i);\r\n\t\t\tif(!inlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tcode += \"\t\" + varname + \".\"+varmode+\" = \" + inlink + \";\\n\";\r\n\t\t}\r\n\r\n\t\tfor(var i = 0; i < LGraphShaderVec3.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec3.varmodes[i];\r\n\t\t\tvar outlink = getOutputLinkID(this,i);\r\n\t\t\tif(!outlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tvar type = GLSL_types_const[varmode.length - 1];\r\n\t\t\tcode += \"\t\"+type+\" \" + outlink + \" = \" + varname + \".\" + varmode + \";\\n\";\r\n\t\t\tthis.setOutputData( i, type );\r\n\t\t}\r\n\r\n\t\tcontext.addCode( \"code\", code, this.shader_destination );\r\n\t}\r\n\r\n\tregisterShaderNode( \"const/vec3\", LGraphShaderVec3 );\t\r\n\r\n\r\n\tfunction LGraphShaderVec4()\r\n\t{\r\n\t\tthis.addInput(\"xyzw\",\"vec4\");\r\n\t\tthis.addInput(\"xyz\",\"vec3\");\r\n\t\tthis.addInput(\"x\",\"float\");\r\n\t\tthis.addInput(\"y\",\"float\");\r\n\t\tthis.addInput(\"z\",\"float\");\r\n\t\tthis.addInput(\"w\",\"float\");\r\n\t\tthis.addInput(\"xy\",\"vec2\");\r\n\t\tthis.addInput(\"yz\",\"vec2\");\r\n\t\tthis.addInput(\"zw\",\"vec2\");\r\n\t\tthis.addOutput(\"xyzw\",\"vec4\");\r\n\t\tthis.addOutput(\"xyz\",\"vec3\");\r\n\t\tthis.addOutput(\"x\",\"float\");\r\n\t\tthis.addOutput(\"y\",\"float\");\r\n\t\tthis.addOutput(\"z\",\"float\");\r\n\t\tthis.addOutput(\"xy\",\"vec2\");\r\n\t\tthis.addOutput(\"yz\",\"vec2\");\r\n\t\tthis.addOutput(\"zw\",\"vec2\");\r\n\r\n\t\tthis.properties = { x:0, y: 0, z: 0, w: 0 };\r\n\t}\r\n\r\n\tLGraphShaderVec4.title = \"vec4\";\r\n\tLGraphShaderVec4.varmodes = [\"xyzw\",\"xyz\",\"x\",\"y\",\"z\",\"w\",\"xy\",\"yz\",\"zw\"];\r\n\r\n\tLGraphShaderVec4.prototype.onPropertyChanged = function()\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\tthis.graph._version++;\r\n\t}\r\n\r\n\tLGraphShaderVec4.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tvar props = this.properties;\r\n\r\n\t\tvar varname = getShaderNodeVarName(this);\r\n\t\tvar code = \"vec4 \" + varname + \" = \" + valueToGLSL([props.x,props.y,props.z,props.w]) + \";\\n\";\r\n\r\n\t\tfor(var i = 0;i < LGraphShaderVec4.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec4.varmodes[i];\r\n\t\t\tvar inlink = getInputLinkID(this,i);\r\n\t\t\tif(!inlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tcode += \"\t\" + varname + \".\"+varmode+\" = \" + inlink + \";\\n\";\r\n\t\t}\r\n\r\n\t\tfor(var i = 0;i < LGraphShaderVec4.varmodes.length; ++i)\r\n\t\t{\r\n\t\t\tvar varmode = LGraphShaderVec4.varmodes[i];\r\n\t\t\tvar outlink = getOutputLinkID(this,i);\r\n\t\t\tif(!outlink)\r\n\t\t\t\tcontinue;\r\n\t\t\tvar type = GLSL_types_const[varmode.length - 1];\r\n\t\t\tcode += \"\t\"+type+\" \" + outlink + \" = \" + varname + \".\" + varmode + \";\\n\";\r\n\t\t\tthis.setOutputData( i, type );\r\n\t\t}\r\n\r\n\t\tcontext.addCode( \"code\", code, this.shader_destination );\r\n\r\n\t}\r\n\r\n\tregisterShaderNode( \"const/vec4\", LGraphShaderVec4 );\t\r\n\t\r\n\t//*********************************\r\n\r\n\tfunction LGraphShaderFragColor() {\r\n\t\tthis.addInput(\"color\", LGShaders.ALL_TYPES );\r\n\t\tthis.block_delete = true;\r\n\t}\r\n\r\n\tLGraphShaderFragColor.title = \"FragColor\";\r\n\tLGraphShaderFragColor.desc = \"Pixel final color\";\r\n\r\n\tLGraphShaderFragColor.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tvar link_name = getInputLinkID( this, 0 );\r\n\t\tif(!link_name)\r\n\t\t\treturn;\r\n\t\tvar type = this.getInputData(0);\r\n\t\tvar code = varToTypeGLSL( link_name, type, \"vec4\" );\r\n\t\tcontext.addCode(\"fs_code\", \"fragcolor = \" + code + \";\");\r\n\t}\r\n\r\n\tregisterShaderNode( \"output/fragcolor\", LGraphShaderFragColor );\r\n\r\n\r\n\t/*\r\n\tfunction LGraphShaderDiscard()\r\n\t{\r\n\t\tthis.addInput(\"v\",\"T\");\r\n\t\tthis.addInput(\"min\",\"T\");\r\n\t\tthis.properties = { min_value: 0.0 };\r\n\t\tthis.addWidget(\"number\",\"min\",0,{ step: 0.01, property: \"min_value\" });\r\n\t}\r\n\r\n\tLGraphShaderDiscard.title = \"Discard\";\r\n\r\n\tLGraphShaderDiscard.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlink = getInputLinkID(this,0);\r\n\t\tvar inlink1 = getInputLinkID(this,1);\r\n\r\n\t\tif(!inlink && !inlink1) //not connected\r\n\t\t\treturn;\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = ( (\" + inlink + \" - \"+minv+\") / (\"+ maxv+\" - \"+minv+\") ) * (\"+ maxv2+\" - \"+minv2+\") + \" + minv2 + \";\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"output/discard\", LGraphShaderDiscard );\r\n\t*/\r\n\r\n\r\n\t// *************************************************\r\n\r\n\tfunction LGraphShaderOperation()\r\n\t{\r\n\t\tthis.addInput(\"A\", LGShaders.ALL_TYPES );\r\n\t\tthis.addInput(\"B\", LGShaders.ALL_TYPES );\r\n\t\tthis.addOutput(\"out\",\"\");\r\n\t\tthis.properties = {\r\n\t\t\toperation: \"*\"\r\n\t\t};\r\n\t\tthis.addWidget(\"combo\",\"op.\",this.properties.operation,{ property: \"operation\", values: LGraphShaderOperation.operations });\r\n\t}\r\n\r\n\tLGraphShaderOperation.title = \"Operation\";\r\n\tLGraphShaderOperation.operations = [\"+\",\"-\",\"*\",\"/\"];\r\n\r\n\tLGraphShaderOperation.prototype.getTitle = function()\r\n\t{\r\n\t\tif(this.flags.collapsed)\r\n\t\t\treturn \"A\" + this.properties.operation + \"B\";\r\n\t\telse\r\n\t\t\treturn \"Operation\";\r\n\t}\r\n\r\n\tLGraphShaderOperation.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tif(!this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlinks = [];\r\n\t\tfor(var i = 0; i < 3; ++i)\r\n\t\t\tinlinks.push( { name: getInputLinkID(this,i), type: this.getInputData(i) || \"float\" } );\r\n\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\t\tif(!outlink) //not connected\r\n\t\t\treturn;\r\n\r\n\t\t//func_desc\r\n\t\tvar base_type = inlinks[0].type;\r\n\t\tvar return_type = base_type;\r\n\t\tvar op = this.properties.operation;\r\n\r\n\t\tvar params = [];\r\n\t\tfor(var i = 0; i < 2; ++i)\r\n\t\t{\r\n\t\t\tvar param_code = inlinks[i].name;\r\n\t\t\tif(param_code == null) //not plugged\r\n\t\t\t{\r\n\t\t\t\tparam_code = p.value != null ? p.value : \"(1.0)\";\r\n\t\t\t\tinlinks[i].type = \"float\";\r\n\t\t\t}\r\n\r\n\t\t\t//convert\r\n\t\t\tif( inlinks[i].type != base_type ) \r\n\t\t\t{\r\n\t\t\t\tif( inlinks[i].type == \"float\" && (op == \"*\" || op == \"/\") )\r\n\t\t\t\t{\r\n\t\t\t\t\t//I find hard to create the opposite condition now, so I prefeer an else\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\tparam_code = convertVarToGLSLType( param_code, inlinks[i].type, base_type );\r\n\t\t\t}\r\n\t\t\tparams.push( param_code );\r\n\t\t}\r\n\t\t\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = \"+ params[0] + op + params[1] + \";\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"math/operation\", LGraphShaderOperation );\r\n\r\n\r\n\tfunction LGraphShaderFunc()\r\n\t{\r\n\t\tthis.addInput(\"A\", LGShaders.ALL_TYPES );\r\n\t\tthis.addInput(\"B\", LGShaders.ALL_TYPES );\r\n\t\tthis.addOutput(\"out\",\"\");\r\n\t\tthis.properties = {\r\n\t\t\tfunc: \"floor\"\r\n\t\t};\r\n\t\tthis._current = \"floor\";\r\n\t\tthis.addWidget(\"combo\",\"func\",this.properties.func,{ property: \"func\", values: GLSL_functions_name });\r\n\t}\r\n\r\n\tLGraphShaderFunc.title = \"Func\";\r\n\r\n\tLGraphShaderFunc.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\tthis.graph._version++;\r\n\r\n\t\tif(name == \"func\")\r\n\t\t{\r\n\t\t\tvar func_desc = GLSL_functions[ value ];\r\n\t\t\tif(!func_desc)\r\n\t\t\t\treturn;\r\n\r\n\t\t\t//remove extra inputs\r\n\t\t\tfor(var i = func_desc.params.length; i < this.inputs.length; ++i)\r\n\t\t\t\tthis.removeInput(i);\r\n\r\n\t\t\t//add and update inputs\r\n\t\t\tfor(var i = 0; i < func_desc.params.length; ++i)\r\n\t\t\t{\r\n\t\t\t\tvar p = func_desc.params[i];\r\n\t\t\t\tif( this.inputs[i] )\r\n\t\t\t\t\tthis.inputs[i].name = p.name + (p.value ? \" (\" + p.value + \")\" : \"\");\r\n\t\t\t\telse\r\n\t\t\t\t\tthis.addInput( p.name, LGShaders.ALL_TYPES );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderFunc.prototype.getTitle = function()\r\n\t{\r\n\t\tif(this.flags.collapsed)\r\n\t\t\treturn this.properties.func;\r\n\t\telse\r\n\t\t\treturn \"Func\";\r\n\t}\r\n\r\n\tLGraphShaderFunc.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination)\r\n\t\t\treturn;\r\n\r\n\t\tif(!this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlinks = [];\r\n\t\tfor(var i = 0; i < 3; ++i)\r\n\t\t\tinlinks.push( { name: getInputLinkID(this,i), type: this.getInputData(i) || \"float\" } );\r\n\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\t\tif(!outlink) //not connected\r\n\t\t\treturn;\r\n\r\n\t\tvar func_desc = GLSL_functions[ this.properties.func ];\r\n\t\tif(!func_desc)\r\n\t\t\treturn;\r\n\r\n\t\t//func_desc\r\n\t\tvar base_type = inlinks[0].type;\r\n\t\tvar return_type = func_desc.return_type;\r\n\t\tif( return_type == \"T\" )\r\n\t\t\treturn_type = base_type;\r\n\r\n\t\tvar params = [];\r\n\t\tfor(var i = 0; i < func_desc.params.length; ++i)\r\n\t\t{\r\n\t\t\tvar p = func_desc.params[i];\r\n\t\t\tvar param_code = inlinks[i].name;\r\n\t\t\tif(param_code == null) //not plugged\r\n\t\t\t{\r\n\t\t\t\tparam_code = p.value != null ? p.value : \"(1.0)\";\r\n\t\t\t\tinlinks[i].type = \"float\";\r\n\t\t\t}\r\n\t\t\tif( (p.type == \"T\" && inlinks[i].type != base_type) ||\r\n\t\t\t\t(p.type != \"T\" && inlinks[i].type != base_type) )\r\n\t\t\t\tparam_code = convertVarToGLSLType( param_code, inlinks[i].type, base_type );\r\n\t\t\tparams.push( param_code );\r\n\t\t}\r\n\t\t\r\n\t\tcontext.addFunction(\"round\",\"float round(float v){ return floor(v+0.5); }\\nvec2 round(vec2 v){ return floor(v+vec2(0.5));}\\nvec3 round(vec3 v){ return floor(v+vec3(0.5));}\\nvec4 round(vec4 v){ return floor(v+vec4(0.5)); }\\n\");\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = \"+func_desc.func+\"(\"+params.join(\",\")+\");\", this.shader_destination );\r\n\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"math/func\", LGraphShaderFunc );\r\n\r\n\r\n\r\n\tfunction LGraphShaderSnippet()\r\n\t{\r\n\t\tthis.addInput(\"A\", LGShaders.ALL_TYPES );\r\n\t\tthis.addInput(\"B\", LGShaders.ALL_TYPES );\r\n\t\tthis.addOutput(\"C\",\"vec4\");\r\n\t\tthis.properties = {\r\n\t\t\tcode:\"C = A+B\",\r\n\t\t\ttype: \"vec4\"\r\n\t\t}\r\n\t\tthis.addWidget(\"text\",\"code\",this.properties.code,{ property: \"code\" });\r\n\t\tthis.addWidget(\"combo\",\"type\",this.properties.type,{ values:[\"float\",\"vec2\",\"vec3\",\"vec4\"], property: \"type\" });\r\n\t}\r\n\r\n\tLGraphShaderSnippet.title = \"Snippet\";\r\n\r\n\tLGraphShaderSnippet.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\tthis.graph._version++;\r\n\r\n\t\tif(name == \"type\"&& this.outputs[0].type != value)\r\n\t\t{\r\n\t\t\tthis.disconnectOutput(0);\r\n\t\t\tthis.outputs[0].type = value;\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphShaderSnippet.prototype.getTitle = function()\r\n\t{\r\n\t\tif(this.flags.collapsed)\r\n\t\t\treturn this.properties.code;\r\n\t\telse\r\n\t\t\treturn \"Snippet\";\r\n\t}\r\n\r\n\tLGraphShaderSnippet.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlinkA = getInputLinkID(this,0);\r\n\t\tif(!inlinkA)\r\n\t\t\tinlinkA = \"1.0\";\r\n\t\tvar inlinkB = getInputLinkID(this,1);\r\n\t\tif(!inlinkB)\r\n\t\t\tinlinkB = \"1.0\";\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\t\tif(!outlink) //not connected\r\n\t\t\treturn;\r\n\r\n\t\tvar inA_type = this.getInputData(0) || \"float\";\r\n\t\tvar inB_type = this.getInputData(1) || \"float\";\r\n\t\tvar return_type = this.properties.type;\r\n\r\n\t\t//cannot resolve input\r\n\t\tif(inA_type == \"T\" || inB_type == \"T\")\r\n\t\t{\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tvar funcname = \"funcSnippet\" + this.id;\r\n\r\n\t\tvar func_code = \"\\n\" + return_type + \" \" + funcname + \"( \" + inA_type + \" A, \" + inB_type + \" B) {\\n\";\r\n\t\tfunc_code += \"\t\" + return_type + \" C = \" + return_type + \"(0.0);\\n\";\r\n\t\tfunc_code += \"\t\" + this.properties.code + \";\\n\";\r\n\t\tfunc_code += \"\treturn C;\\n}\\n\";\r\n\r\n\t\tcontext.addCode(\"functions\", func_code, this.shader_destination );\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = \"+funcname+\"(\"+inlinkA+\",\"+inlinkB+\");\", this.shader_destination );\r\n\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"utils/snippet\", LGraphShaderSnippet );\r\n\r\n\t//************************************\r\n\r\n\tfunction LGraphShaderRand()\r\n\t{\r\n\t\tthis.addOutput(\"out\",\"float\");\r\n\t}\r\n\r\n\tLGraphShaderRand.title = \"Rand\";\r\n\r\n\tLGraphShaderRand.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\r\n\t\tcontext.addUniform( \"u_rand\" + this.id, \"float\", function(){ return Math.random(); });\r\n\t\tcontext.addCode(\"code\", \"float \" + outlink + \" = u_rand\" + this.id +\";\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, \"float\" );\r\n\t}\r\n\r\n\tregisterShaderNode( \"input/rand\", LGraphShaderRand );\r\n\r\n\t//noise\r\n\t//https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83\r\n\tfunction LGraphShaderNoise()\r\n\t{\r\n\t\tthis.addInput(\"out\", LGShaders.ALL_TYPES );\r\n\t\tthis.addInput(\"scale\", \"float\" );\r\n\t\tthis.addOutput(\"out\",\"float\");\r\n\t\tthis.properties = {\r\n\t\t\ttype: \"noise\",\r\n\t\t\tscale: 1\r\n\t\t};\r\n\t\tthis.addWidget(\"combo\",\"type\", this.properties.type, { property: \"type\", values: LGraphShaderNoise.NOISE_TYPES });\r\n\t\tthis.addWidget(\"number\",\"scale\", this.properties.scale, { property: \"scale\" });\r\n\t}\r\n\r\n\tLGraphShaderNoise.NOISE_TYPES = [\"noise\",\"rand\"];\r\n\r\n\tLGraphShaderNoise.title = \"noise\";\r\n\r\n\tLGraphShaderNoise.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlink = getInputLinkID(this,0);\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\r\n\t\tvar intype = this.getInputData(0);\r\n\t\tif(!inlink)\r\n\t\t{\r\n\t\t\tintype = \"vec2\";\r\n\t\t\tinlink = context.buffer_names.uvs;\r\n\t\t}\r\n\r\n\t\tcontext.addFunction(\"noise\",LGraphShaderNoise.shader_functions);\r\n\t\tcontext.addUniform( \"u_noise_scale\" + this.id, \"float\", this.properties.scale );\r\n\t\tif( intype == \"float\" )\r\n\t\t\tcontext.addCode(\"code\", \"float \" + outlink + \" = snoise( vec2(\" + inlink +\") * u_noise_scale\" + this.id +\");\", this.shader_destination );\r\n\t\telse if( intype == \"vec2\" || intype == \"vec3\" )\r\n\t\t\tcontext.addCode(\"code\", \"float \" + outlink + \" = snoise(\" + inlink +\" * u_noise_scale\" + this.id +\");\", this.shader_destination );\r\n\t\telse if( intype == \"vec4\" )\r\n\t\t\tcontext.addCode(\"code\", \"float \" + outlink + \" = snoise(\" + inlink +\".xyz * u_noise_scale\" + this.id +\");\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, \"float\" );\r\n\t}\r\n\r\n\tregisterShaderNode( \"math/noise\", LGraphShaderNoise );\r\n\r\nLGraphShaderNoise.shader_functions = \"\\n\\\r\nvec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); }\\n\\\r\n\\n\\\r\nfloat snoise(vec2 v){\\n\\\r\n const vec4 C = vec4(0.211324865405187, 0.366025403784439,-0.577350269189626, 0.024390243902439);\\n\\\r\n vec2 i = floor(v + dot(v, C.yy) );\\n\\\r\n vec2 x0 = v - i + dot(i, C.xx);\\n\\\r\n vec2 i1;\\n\\\r\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\\n\\\r\n vec4 x12 = x0.xyxy + C.xxzz;\\n\\\r\n x12.xy -= i1;\\n\\\r\n i = mod(i, 289.0);\\n\\\r\n vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 ))\\n\\\r\n + i.x + vec3(0.0, i1.x, 1.0 ));\\n\\\r\n vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)), 0.0);\\n\\\r\n m = m*m ;\\n\\\r\n m = m*m ;\\n\\\r\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\\n\\\r\n vec3 h = abs(x) - 0.5;\\n\\\r\n vec3 ox = floor(x + 0.5);\\n\\\r\n vec3 a0 = x - ox;\\n\\\r\n m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h );\\n\\\r\n vec3 g;\\n\\\r\n g.x = a0.x * x0.x + h.x * x0.y;\\n\\\r\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\\n\\\r\n return 130.0 * dot(m, g);\\n\\\r\n}\\n\\\r\nvec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}\\n\\\r\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\\n\\\r\n\\n\\\r\nfloat snoise(vec3 v){ \\n\\\r\n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\\n\\\r\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\\n\\\r\n\\n\\\r\n// First corner\\n\\\r\n vec3 i = floor(v + dot(v, C.yyy) );\\n\\\r\n vec3 x0 = v - i + dot(i, C.xxx) ;\\n\\\r\n\\n\\\r\n// Other corners\\n\\\r\n vec3 g = step(x0.yzx, x0.xyz);\\n\\\r\n vec3 l = 1.0 - g;\\n\\\r\n vec3 i1 = min( g.xyz, l.zxy );\\n\\\r\n vec3 i2 = max( g.xyz, l.zxy );\\n\\\r\n\\n\\\r\n // x0 = x0 - 0. + 0.0 * C \\n\\\r\n vec3 x1 = x0 - i1 + 1.0 * C.xxx;\\n\\\r\n vec3 x2 = x0 - i2 + 2.0 * C.xxx;\\n\\\r\n vec3 x3 = x0 - 1. + 3.0 * C.xxx;\\n\\\r\n\\n\\\r\n// Permutations\\n\\\r\n i = mod(i, 289.0 ); \\n\\\r\n vec4 p = permute( permute( permute( \\n\\\r\n i.z + vec4(0.0, i1.z, i2.z, 1.0 ))\\n\\\r\n + i.y + vec4(0.0, i1.y, i2.y, 1.0 )) \\n\\\r\n + i.x + vec4(0.0, i1.x, i2.x, 1.0 ));\\n\\\r\n\\n\\\r\n// Gradients\\n\\\r\n// ( N*N points uniformly over a square, mapped onto an octahedron.)\\n\\\r\n float n_ = 1.0/7.0; // N=7\\n\\\r\n vec3 ns = n_ * D.wyz - D.xzx;\\n\\\r\n\\n\\\r\n vec4 j = p - 49.0 * floor(p * ns.z *ns.z); // mod(p,N*N)\\n\\\r\n\\n\\\r\n vec4 x_ = floor(j * ns.z);\\n\\\r\n vec4 y_ = floor(j - 7.0 * x_ ); // mod(j,N)\\n\\\r\n\\n\\\r\n vec4 x = x_ *ns.x + ns.yyyy;\\n\\\r\n vec4 y = y_ *ns.x + ns.yyyy;\\n\\\r\n vec4 h = 1.0 - abs(x) - abs(y);\\n\\\r\n\\n\\\r\n vec4 b0 = vec4( x.xy, y.xy );\\n\\\r\n vec4 b1 = vec4( x.zw, y.zw );\\n\\\r\n\\n\\\r\n vec4 s0 = floor(b0)*2.0 + 1.0;\\n\\\r\n vec4 s1 = floor(b1)*2.0 + 1.0;\\n\\\r\n vec4 sh = -step(h, vec4(0.0));\\n\\\r\n\\n\\\r\n vec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy ;\\n\\\r\n vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww ;\\n\\\r\n\\n\\\r\n vec3 p0 = vec3(a0.xy,h.x);\\n\\\r\n vec3 p1 = vec3(a0.zw,h.y);\\n\\\r\n vec3 p2 = vec3(a1.xy,h.z);\\n\\\r\n vec3 p3 = vec3(a1.zw,h.w);\\n\\\r\n\\n\\\r\n//Normalise gradients\\n\\\r\n vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\\n\\\r\n p0 *= norm.x;\\n\\\r\n p1 *= norm.y;\\n\\\r\n p2 *= norm.z;\\n\\\r\n p3 *= norm.w;\\n\\\r\n\\n\\\r\n// Mix final noise value\\n\\\r\n vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);\\n\\\r\n m = m * m;\\n\\\r\n return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),dot(p2,x2), dot(p3,x3) ) );\\n\\\r\n}\\n\\\r\n\\n\\\r\nvec3 hash3( vec2 p ){\\n\\\r\n vec3 q = vec3( dot(p,vec2(127.1,311.7)), \\n\\\r\n\t\t\t\t dot(p,vec2(269.5,183.3)), \\n\\\r\n\t\t\t\t dot(p,vec2(419.2,371.9)) );\\n\\\r\n\treturn fract(sin(q)*43758.5453);\\n\\\r\n}\\n\\\r\nvec4 hash4( vec3 p ){\\n\\\r\n vec4 q = vec4( dot(p,vec3(127.1,311.7,257.3)), \\n\\\r\n\t\t\t\t dot(p,vec3(269.5,183.3,335.1)), \\n\\\r\n\t\t\t\t dot(p,vec3(314.5,235.1,467.3)), \\n\\\r\n\t\t\t\t dot(p,vec3(419.2,371.9,114.9)) );\\n\\\r\n\treturn fract(sin(q)*43758.5453);\\n\\\r\n}\\n\\\r\n\\n\\\r\nfloat iqnoise( in vec2 x, float u, float v ){\\n\\\r\n vec2 p = floor(x);\\n\\\r\n vec2 f = fract(x);\\n\\\r\n\t\\n\\\r\n\tfloat k = 1.0+63.0*pow(1.0-v,4.0);\\n\\\r\n\t\\n\\\r\n\tfloat va = 0.0;\\n\\\r\n\tfloat wt = 0.0;\\n\\\r\n for( int j=-2; j<=2; j++ )\\n\\\r\n for( int i=-2; i<=2; i++ )\\n\\\r\n {\\n\\\r\n vec2 g = vec2( float(i),float(j) );\\n\\\r\n\t\tvec3 o = hash3( p + g )*vec3(u,u,1.0);\\n\\\r\n\t\tvec2 r = g - f + o.xy;\\n\\\r\n\t\tfloat d = dot(r,r);\\n\\\r\n\t\tfloat ww = pow( 1.0-smoothstep(0.0,1.414,sqrt(d)), k );\\n\\\r\n\t\tva += o.z*ww;\\n\\\r\n\t\twt += ww;\\n\\\r\n }\\n\\\r\n\t\\n\\\r\n return va/wt;\\n\\\r\n}\\n\\\r\n\"\r\n\r\n\tfunction LGraphShaderTime()\r\n\t{\r\n\t\tthis.addOutput(\"out\",\"float\");\r\n\t}\r\n\r\n\tLGraphShaderTime.title = \"Time\";\r\n\r\n\tLGraphShaderTime.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\r\n\t\tcontext.addUniform( \"u_time\" + this.id, \"float\", function(){ return getTime() * 0.001; });\r\n\t\tcontext.addCode(\"code\", \"float \" + outlink + \" = u_time\" + this.id +\";\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, \"float\" );\r\n\t}\r\n\r\n\tregisterShaderNode( \"input/time\", LGraphShaderTime );\r\n\r\n\r\n\tfunction LGraphShaderDither()\r\n\t{\r\n\t\tthis.addInput(\"in\",\"T\");\r\n\t\tthis.addOutput(\"out\",\"float\");\r\n\t}\r\n\r\n\tLGraphShaderDither.title = \"Dither\";\r\n\r\n\tLGraphShaderDither.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlink = getInputLinkID(this,0);\r\n\t\tvar return_type = \"float\";\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\t\tvar intype = this.getInputData(0);\r\n\t\tinlink = varToTypeGLSL( inlink, intype, \"float\" );\r\n\t\tcontext.addFunction(\"dither8x8\", LGraphShaderDither.dither_func);\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = dither8x8(\"+ inlink +\");\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tLGraphShaderDither.dither_values = [0.515625,0.140625,0.640625,0.046875,0.546875,0.171875,0.671875,0.765625,0.265625,0.890625,0.390625,0.796875,0.296875,0.921875,0.421875,0.203125,0.703125,0.078125,0.578125,0.234375,0.734375,0.109375,0.609375,0.953125,0.453125,0.828125,0.328125,0.984375,0.484375,0.859375,0.359375,0.0625,0.5625,0.1875,0.6875,0.03125,0.53125,0.15625,0.65625,0.8125,0.3125,0.9375,0.4375,0.78125,0.28125,0.90625,0.40625,0.25,0.75,0.125,0.625,0.21875,0.71875,0.09375,0.59375,1.0001,0.5,0.875,0.375,0.96875,0.46875,0.84375,0.34375];\r\n\t\r\n\tLGraphShaderDither.dither_func = \"\\n\\\r\n\t\tfloat dither8x8(float brightness) {\\n\\\r\n\t\t vec2 position = vec2(0.0);\\n\\\r\n\t\t #ifdef FRAGMENT\\n\\\r\n\t\t\tposition = gl_FragCoord.xy;\\n\\\r\n\t\t #endif\\n\\\r\n\t\t int x = int(mod(position.x, 8.0));\\n\\\r\n\t\t int y = int(mod(position.y, 8.0));\\n\\\r\n\t\t int index = x + y * 8;\\n\\\r\n\t\t float limit = 0.0;\\n\\\r\n\t\t if (x < 8) {\\n\\\r\n\t\t\tif(index==0) limit = 0.015625;\\n\\\r\n\t\t\t\"+(LGraphShaderDither.dither_values.map( function(v,i){ return \"else if(index== \"+(i+1)+\") limit = \" + v + \";\"}).join(\"\\n\"))+\"\\n\\\r\n\t\t }\\n\\\r\n\t\t return brightness < limit ? 0.0 : 1.0;\\n\\\r\n\t\t}\\n\",\r\n\r\n\tregisterShaderNode( \"math/dither\", LGraphShaderDither );\r\n\r\n\tfunction LGraphShaderRemap()\r\n\t{\r\n\t\tthis.addInput(\"\", LGShaders.ALL_TYPES );\r\n\t\tthis.addOutput(\"\",\"\");\r\n\t\tthis.properties = {\r\n\t\t\tmin_value: 0,\r\n\t\t\tmax_value: 1,\r\n\t\t\tmin_value2: 0,\r\n\t\t\tmax_value2: 1\r\n\t\t};\r\n\t\tthis.addWidget(\"number\",\"min\",0,{ step: 0.1, property: \"min_value\" });\r\n\t\tthis.addWidget(\"number\",\"max\",1,{ step: 0.1, property: \"max_value\" });\r\n\t\tthis.addWidget(\"number\",\"min2\",0,{ step: 0.1, property: \"min_value2\"});\r\n\t\tthis.addWidget(\"number\",\"max2\",1,{ step: 0.1, property: \"max_value2\"});\r\n\t}\r\n\r\n\tLGraphShaderRemap.title = \"Remap\";\r\n\r\n\tLGraphShaderRemap.prototype.onPropertyChanged = function()\r\n\t{\r\n\t\tif(this.graph)\r\n\t\t\tthis.graph._version++;\r\n\t}\r\n\r\n\tLGraphShaderRemap.prototype.onConnectionsChange = function()\r\n\t{\r\n\t\tvar return_type = this.getInputDataType(0);\r\n\t\tthis.outputs[0].type = return_type || \"T\";\r\n\t}\r\n\r\n\tLGraphShaderRemap.prototype.onGetCode = function( context )\r\n\t{\r\n\t\tif(!this.shader_destination || !this.isOutputConnected(0))\r\n\t\t\treturn;\r\n\r\n\t\tvar inlink = getInputLinkID(this,0);\r\n\t\tvar outlink = getOutputLinkID(this,0);\r\n\t\tif(!inlink && !outlink) //not connected\r\n\t\t\treturn;\r\n\r\n\t\tvar return_type = this.getInputDataType(0);\r\n\t\tthis.outputs[0].type = return_type;\r\n\t\tif(return_type == \"T\")\r\n\t\t{\r\n\t\t\tconsole.warn(\"node type is T and cannot be resolved\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif(!inlink)\r\n\t\t{\r\n\t\t\tcontext.addCode(\"code\",\"\t\" + return_type + \" \" + outlink + \" = \" + return_type + \"(0.0);\\n\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar minv = valueToGLSL( this.properties.min_value );\r\n\t\tvar maxv = valueToGLSL( this.properties.max_value );\r\n\t\tvar minv2 = valueToGLSL( this.properties.min_value2 );\r\n\t\tvar maxv2 = valueToGLSL( this.properties.max_value2 );\r\n\r\n\t\tcontext.addCode(\"code\", return_type + \" \" + outlink + \" = ( (\" + inlink + \" - \"+minv+\") / (\"+ maxv+\" - \"+minv+\") ) * (\"+ maxv2+\" - \"+minv2+\") + \" + minv2 + \";\", this.shader_destination );\r\n\t\tthis.setOutputData( 0, return_type );\r\n\t}\r\n\r\n\tregisterShaderNode( \"math/remap\", LGraphShaderRemap );\r\n\r\n})(this);\r\n\r\n\r\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n\tvar view_matrix = new Float32Array(16);\r\n\tvar projection_matrix = new Float32Array(16);\r\n\tvar viewprojection_matrix = new Float32Array(16);\r\n\tvar model_matrix = new Float32Array(16);\r\n\tvar global_uniforms = {\r\n\t\tu_view: view_matrix,\r\n\t\tu_projection: projection_matrix,\r\n\t\tu_viewprojection: viewprojection_matrix,\r\n\t\tu_model: model_matrix \r\n\t};\r\n\r\n\tLiteGraph.LGraphRender = {\r\n\t\tonRequestCameraMatrices: null //overwrite with your 3D engine specifics, it will receive (view_matrix, projection_matrix,viewprojection_matrix) and must be filled\r\n\t};\r\n\r\n\tfunction generateGeometryId() {\r\n\t\treturn (Math.random() * 100000)|0;\r\n\t}\r\n\r\n\tfunction LGraphPoints3D() {\r\n\r\n\t\tthis.addInput(\"obj\", \"\");\r\n\t\tthis.addInput(\"radius\", \"number\");\r\n\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\t\tthis.addOutput(\"points\", \"[vec3]\");\r\n\t\tthis.properties = {\r\n\t\t\tradius: 1,\r\n\t\t\tnum_points: 4096,\r\n\t\t\tgenerate_normals: true,\r\n\t\t\tregular: false,\r\n\t\t\tmode: LGraphPoints3D.SPHERE,\r\n\t\t\tforce_update: false\r\n\t\t};\r\n\r\n\t\tthis.points = new Float32Array( this.properties.num_points * 3 );\r\n\t\tthis.normals = new Float32Array( this.properties.num_points * 3 );\r\n\t\tthis.must_update = true;\r\n\t\tthis.version = 0;\r\n\r\n\t\tvar that = this;\r\n\t\tthis.addWidget(\"button\",\"update\",null, function(){ that.must_update = true; });\r\n\r\n\t\tthis.geometry = {\r\n\t\t\tvertices: null,\r\n\t\t\t_id: generateGeometryId()\r\n\t\t}\r\n\r\n\t\tthis._old_obj = null;\r\n\t\tthis._last_radius = null;\r\n\t}\r\n\r\n\tglobal.LGraphPoints3D = LGraphPoints3D;\r\n\r\n\tLGraphPoints3D.RECTANGLE = 1;\r\n\tLGraphPoints3D.CIRCLE = 2;\r\n\r\n\tLGraphPoints3D.CUBE = 10;\r\n\tLGraphPoints3D.SPHERE = 11;\r\n\tLGraphPoints3D.HEMISPHERE = 12;\r\n\tLGraphPoints3D.INSIDE_SPHERE = 13;\r\n\r\n\tLGraphPoints3D.OBJECT = 20;\r\n\tLGraphPoints3D.OBJECT_UNIFORMLY = 21;\r\n\tLGraphPoints3D.OBJECT_INSIDE = 22;\r\n\r\n\tLGraphPoints3D.MODE_VALUES = { \"rectangle\":LGraphPoints3D.RECTANGLE, \"circle\":LGraphPoints3D.CIRCLE, \"cube\":LGraphPoints3D.CUBE, \"sphere\":LGraphPoints3D.SPHERE, \"hemisphere\":LGraphPoints3D.HEMISPHERE, \"inside_sphere\":LGraphPoints3D.INSIDE_SPHERE, \"object\":LGraphPoints3D.OBJECT, \"object_uniformly\":LGraphPoints3D.OBJECT_UNIFORMLY, \"object_inside\":LGraphPoints3D.OBJECT_INSIDE };\r\n\r\n\tLGraphPoints3D.widgets_info = {\r\n\t\tmode: { widget: \"combo\", values: LGraphPoints3D.MODE_VALUES }\r\n\t};\r\n\r\n\tLGraphPoints3D.title = \"list of points\";\r\n\tLGraphPoints3D.desc = \"returns an array of points\";\r\n\r\n\tLGraphPoints3D.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tthis.must_update = true;\r\n\t}\r\n\r\n\tLGraphPoints3D.prototype.onExecute = function() {\r\n\r\n\t\tvar obj = this.getInputData(0);\r\n\t\tif( obj != this._old_obj || (obj && obj._version != this._old_obj_version) )\r\n\t\t{\r\n\t\t\tthis._old_obj = obj;\r\n\t\t\tthis.must_update = true;\r\n\t\t}\r\n\r\n\t\tvar radius = this.getInputData(1);\r\n\t\tif(radius == null)\r\n\t\t\tradius = this.properties.radius;\r\n\t\tif( this._last_radius != radius )\r\n\t\t{\r\n\t\t\tthis._last_radius = radius;\r\n\t\t\tthis.must_update = true;\r\n\t\t}\r\n\r\n\t\tif(this.must_update || this.properties.force_update )\r\n\t\t{\r\n\t\t\tthis.must_update = false;\r\n\t\t\tthis.updatePoints();\r\n\t\t}\r\n\r\n\t\tthis.geometry.vertices = this.points;\r\n\t\tthis.geometry.normals = this.normals;\r\n\t\tthis.geometry._version = this.version;\r\n\r\n\t\tthis.setOutputData( 0, this.geometry );\r\n\t}\r\n\r\n\tLGraphPoints3D.prototype.updatePoints = function() {\r\n\t\tvar num_points = this.properties.num_points|0;\r\n\t\tif(num_points < 1)\r\n\t\t\tnum_points = 1;\r\n\r\n\t\tif(!this.points || this.points.length != num_points * 3)\r\n\t\t\tthis.points = new Float32Array( num_points * 3 );\r\n\r\n\t\tif(this.properties.generate_normals)\r\n\t\t{\r\n\t\t\tif (!this.normals || this.normals.length != this.points.length)\r\n\t\t\t\tthis.normals = new Float32Array( this.points.length );\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis.normals = null;\r\n\r\n\t\tvar radius = this._last_radius || this.properties.radius;\r\n\t\tvar mode = this.properties.mode;\r\n\r\n\t\tvar obj = this.getInputData(0);\r\n\t\tthis._old_obj_version = obj ? obj._version : null;\r\n\r\n\t\tthis.points = LGraphPoints3D.generatePoints( radius, num_points, mode, this.points, this.normals, this.properties.regular, obj );\r\n\r\n\t\tthis.version++;\r\n\t}\r\n\r\n\t//global\r\n\tLGraphPoints3D.generatePoints = function( radius, num_points, mode, points, normals, regular, obj )\r\n\t{\r\n\t\tvar size = num_points * 3;\r\n\t\tif(!points || points.length != size)\r\n\t\t\tpoints = new Float32Array( size );\r\n\t\tvar temp = new Float32Array(3);\r\n\t\tvar UP = new Float32Array([0,1,0]);\r\n\r\n\t\tif(regular)\r\n\t\t{\r\n\t\t\tif( mode == LGraphPoints3D.RECTANGLE)\r\n\t\t\t{\r\n\t\t\t\tvar side = Math.floor(Math.sqrt(num_points));\r\n\t\t\t\tfor(var i = 0; i < side; ++i)\r\n\t\t\t\tfor(var j = 0; j < side; ++j)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar pos = i*3 + j*3*side;\r\n\t\t\t\t\tpoints[pos] = ((i/side) - 0.5) * radius * 2;\r\n\t\t\t\t\tpoints[pos+1] = 0;\r\n\t\t\t\t\tpoints[pos+2] = ((j/side) - 0.5) * radius * 2;\r\n\t\t\t\t}\r\n\t\t\t\tpoints = new Float32Array( points.subarray(0,side*side*3) );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i = 0; i < normals.length; i+=3)\r\n\t\t\t\t\t\tnormals.set(UP, i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.SPHERE)\r\n\t\t\t{\r\n\t\t\t\tvar side = Math.floor(Math.sqrt(num_points));\r\n\t\t\t\tfor(var i = 0; i < side; ++i)\r\n\t\t\t\tfor(var j = 0; j < side; ++j)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar pos = i*3 + j*3*side;\r\n\t\t\t\t\tpolarToCartesian( temp, (i/side) * 2 * Math.PI, ((j/side) - 0.5) * 2 * Math.PI, radius );\r\n\t\t\t\t\tpoints[pos] = temp[0];\r\n\t\t\t\t\tpoints[pos+1] = temp[1];\r\n\t\t\t\t\tpoints[pos+2] = temp[2];\r\n\t\t\t\t}\r\n\t\t\t\tpoints = new Float32Array( points.subarray(0,side*side*3) );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.CIRCLE)\r\n\t\t\t{\r\n\t\t\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar angle = 2 * Math.PI * (i/size);\r\n\t\t\t\t\tpoints[i] = Math.cos( angle ) * radius;\r\n\t\t\t\t\tpoints[i+1] = 0;\r\n\t\t\t\t\tpoints[i+2] = Math.sin( angle ) * radius;\r\n\t\t\t\t}\r\n\t\t\t\tif(normals)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i = 0; i < normals.length; i+=3)\r\n\t\t\t\t\t\tnormals.set(UP, i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse //non regular\r\n\t\t{\r\n\t\t\tif( mode == LGraphPoints3D.RECTANGLE)\r\n\t\t\t{\r\n\t\t\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t\t\t{\r\n\t\t\t\t\tpoints[i] = (Math.random() - 0.5) * radius * 2;\r\n\t\t\t\t\tpoints[i+1] = 0;\r\n\t\t\t\t\tpoints[i+2] = (Math.random() - 0.5) * radius * 2;\r\n\t\t\t\t}\r\n\t\t\t\tif(normals)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i = 0; i < normals.length; i+=3)\r\n\t\t\t\t\t\tnormals.set(UP, i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.CUBE)\r\n\t\t\t{\r\n\t\t\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t\t\t{\r\n\t\t\t\t\tpoints[i] = (Math.random() - 0.5) * radius * 2;\r\n\t\t\t\t\tpoints[i+1] = (Math.random() - 0.5) * radius * 2;\r\n\t\t\t\t\tpoints[i+2] = (Math.random() - 0.5) * radius * 2;\r\n\t\t\t\t}\r\n\t\t\t\tif(normals)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i = 0; i < normals.length; i+=3)\r\n\t\t\t\t\t\tnormals.set(UP, i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.SPHERE)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateSphere( points, size, radius );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.HEMISPHERE)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateHemisphere( points, size, radius );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.CIRCLE)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateInsideCircle( points, size, radius );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.INSIDE_SPHERE)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateInsideSphere( points, size, radius );\r\n\t\t\t\tif(normals)\r\n\t\t\t\t\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.OBJECT)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateFromObject( points, normals, size, obj, false );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.OBJECT_UNIFORMLY)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateFromObject( points, normals, size, obj, true );\r\n\t\t\t}\r\n\t\t\telse if( mode == LGraphPoints3D.OBJECT_INSIDE)\r\n\t\t\t{\r\n\t\t\t\tLGraphPoints3D.generateFromInsideObject( points, size, obj );\r\n\t\t\t\t//if(normals)\r\n\t\t\t\t//\tLGraphPoints3D.generateSphericalNormals( points, normals );\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tconsole.warn(\"wrong mode in LGraphPoints3D\");\r\n\t\t}\r\n\r\n\t\treturn points;\r\n\t}\r\n\r\n\tLGraphPoints3D.generateSphericalNormals = function(points, normals)\r\n\t{\r\n\t\tvar temp = new Float32Array(3);\r\n\t\tfor(var i = 0; i < normals.length; i+=3)\r\n\t\t{\r\n\t\t\ttemp[0] = points[i];\r\n\t\t\ttemp[1] = points[i+1];\r\n\t\t\ttemp[2] = points[i+2];\r\n\t\t\tvec3.normalize(temp,temp);\r\n\t\t\tnormals.set(temp,i);\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphPoints3D.generateSphere = function (points, size, radius)\r\n\t{\r\n\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t{\r\n\t\t\tvar r1 = Math.random();\r\n\t\t\tvar r2 = Math.random();\r\n\t\t\tvar x = 2 * Math.cos( 2 * Math.PI * r1 ) * Math.sqrt( r2 * (1-r2) );\r\n\t\t\tvar y = 1 - 2 * r2;\r\n\t\t\tvar z = 2 * Math.sin( 2 * Math.PI * r1 ) * Math.sqrt( r2 * (1-r2) );\r\n\t\t\tpoints[i] = x * radius;\r\n\t\t\tpoints[i+1] = y * radius;\r\n\t\t\tpoints[i+2] = z * radius;\r\n\t\t}\t\t\t\r\n\t}\r\n\r\n\tLGraphPoints3D.generateHemisphere = function (points, size, radius)\r\n\t{\r\n\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t{\r\n\t\t\tvar r1 = Math.random();\r\n\t\t\tvar r2 = Math.random();\r\n\t\t\tvar x = Math.cos( 2 * Math.PI * r1 ) * Math.sqrt(1 - r2*r2 );\r\n\t\t\tvar y = r2;\r\n\t\t\tvar z = Math.sin( 2 * Math.PI * r1 ) * Math.sqrt(1 - r2*r2 );\r\n\t\t\tpoints[i] = x * radius;\r\n\t\t\tpoints[i+1] = y * radius;\r\n\t\t\tpoints[i+2] = z * radius;\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphPoints3D.generateInsideCircle = function (points, size, radius)\r\n\t{\r\n\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t{\r\n\t\t\tvar r1 = Math.random();\r\n\t\t\tvar r2 = Math.random();\r\n\t\t\tvar x = Math.cos( 2 * Math.PI * r1 ) * Math.sqrt(1 - r2*r2 );\r\n\t\t\tvar y = r2;\r\n\t\t\tvar z = Math.sin( 2 * Math.PI * r1 ) * Math.sqrt(1 - r2*r2 );\r\n\t\t\tpoints[i] = x * radius;\r\n\t\t\tpoints[i+1] = 0;\r\n\t\t\tpoints[i+2] = z * radius;\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphPoints3D.generateInsideSphere = function (points, size, radius)\r\n\t{\r\n\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t{\r\n\t\t\tvar u = Math.random();\r\n\t\t\tvar v = Math.random();\r\n\t\t\tvar theta = u * 2.0 * Math.PI;\r\n\t\t\tvar phi = Math.acos(2.0 * v - 1.0);\r\n\t\t\tvar r = Math.cbrt(Math.random()) * radius;\r\n\t\t\tvar sinTheta = Math.sin(theta);\r\n\t\t\tvar cosTheta = Math.cos(theta);\r\n\t\t\tvar sinPhi = Math.sin(phi);\r\n\t\t\tvar cosPhi = Math.cos(phi);\r\n\t\t\tpoints[i] = r * sinPhi * cosTheta;\r\n\t\t\tpoints[i+1] = r * sinPhi * sinTheta;\r\n\t\t\tpoints[i+2] = r * cosPhi;\r\n\t\t}\t\r\n\t}\r\n\r\n\tfunction findRandomTriangle( areas, f )\r\n\t{\r\n\t\tvar l = areas.length;\r\n\t\tvar imin = 0;\r\n\t\tvar imid = 0;\r\n\t\tvar imax = l;\r\n\r\n\t\tif(l == 0)\r\n\t\t\treturn -1;\r\n\t\tif(l == 1)\r\n\t\t\treturn 0;\r\n\t\t//dichotimic search\r\n\t\twhile (imax >= imin)\r\n\t\t{\r\n\t\t\timid = ((imax + imin)*0.5)|0;\r\n\t\t\tvar t = areas[ imid ];\r\n\t\t\tif( t == f )\r\n\t\t\t\treturn imid; \r\n\t\t\tif( imin == (imax - 1) )\r\n\t\t\t\treturn imin;\r\n\t\t\tif (t < f)\r\n\t\t\t\timin = imid;\r\n\t\t\telse \r\n\t\t\t\timax = imid;\r\n\t\t}\r\n\t\treturn imid;\t\t\r\n\t}\r\n\r\n\tLGraphPoints3D.generateFromObject = function( points, normals, size, obj, evenly )\r\n\t{\r\n\t\tif(!obj)\r\n\t\t\treturn;\r\n\r\n\t\tvar vertices = null;\r\n\t\tvar mesh_normals = null;\r\n\t\tvar indices = null;\r\n\t\tvar areas = null;\r\n\t\tif( obj.constructor === GL.Mesh )\r\n\t\t{\r\n\t\t\tvertices = obj.vertexBuffers.vertices.data;\r\n\t\t\tmesh_normals = obj.vertexBuffers.normals ? obj.vertexBuffers.normals.data : null;\r\n\t\t\tindices = obj.indexBuffers.indices ? obj.indexBuffers.indices.data : null;\r\n\t\t\tif(!indices)\r\n\t\t\t\tindices = obj.indexBuffers.triangles ? obj.indexBuffers.triangles.data : null;\r\n\t\t}\r\n\t\tif(!vertices)\r\n\t\t\treturn null;\r\n\t\tvar num_triangles = indices ? indices.length / 3 : vertices.length / (3*3);\r\n\t\tvar total_area = 0; //sum of areas of all triangles\r\n\r\n\t\tif(evenly)\r\n\t\t{\r\n\t\t\tareas = new Float32Array(num_triangles); //accum\r\n\t\t\tfor(var i = 0; i < num_triangles; ++i)\r\n\t\t\t{\r\n\t\t\t\tif(indices)\r\n\t\t\t\t{\r\n\t\t\t\t\ta = indices[i*3]*3;\r\n\t\t\t\t\tb = indices[i*3+1]*3;\r\n\t\t\t\t\tc = indices[i*3+2]*3;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\ta = i*9;\r\n\t\t\t\t\tb = i*9+3;\r\n\t\t\t\t\tc = i*9+6;\r\n\t\t\t\t}\r\n\t\t\t\tvar P1 = vertices.subarray(a,a+3);\r\n\t\t\t\tvar P2 = vertices.subarray(b,b+3);\r\n\t\t\t\tvar P3 = vertices.subarray(c,c+3);\r\n\t\t\t\tvar aL = vec3.distance( P1, P2 );\r\n\t\t\t\tvar bL = vec3.distance( P2, P3 );\r\n\t\t\t\tvar cL = vec3.distance( P3, P1 );\r\n\t\t\t\tvar s = (aL + bL+ cL) / 2;\r\n\t\t\t\ttotal_area += Math.sqrt(s * (s - aL) * (s - bL) * (s - cL));\r\n\t\t\t\tareas[i] = total_area;\r\n\t\t\t}\t\t\t\r\n\t\t\tfor(var i = 0; i < num_triangles; ++i) //normalize\r\n\t\t\t\tareas[i] /= total_area;\r\n\t\t}\r\n\r\n\t\tfor(var i = 0; i < size; i+=3)\r\n\t\t{\r\n\t\t\tvar r = Math.random();\r\n\t\t\tvar index = evenly ? findRandomTriangle( areas, r ) : Math.floor(r * num_triangles );\r\n\t\t\t//get random triangle\r\n\t\t\tvar a = 0;\r\n\t\t\tvar b = 0;\r\n\t\t\tvar c = 0;\r\n\t\t\tif(indices)\r\n\t\t\t{\r\n\t\t\t\ta = indices[index*3]*3;\r\n\t\t\t\tb = indices[index*3+1]*3;\r\n\t\t\t\tc = indices[index*3+2]*3;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ta = index*9;\r\n\t\t\t\tb = index*9+3;\r\n\t\t\t\tc = index*9+6;\r\n\t\t\t}\r\n\t\t\tvar s = Math.random();\r\n\t\t\tvar t = Math.random();\r\n\t\t\tvar sqrt_s = Math.sqrt(s);\r\n\t\t\tvar af = 1 - sqrt_s;\r\n\t\t\tvar bf = sqrt_s * ( 1 - t);\r\n\t\t\tvar cf = t * sqrt_s;\r\n\t\t\tpoints[i] = af * vertices[a] + bf*vertices[b] + cf*vertices[c];\r\n\t\t\tpoints[i+1] = af * vertices[a+1] + bf*vertices[b+1] + cf*vertices[c+1];\r\n\t\t\tpoints[i+2] = af * vertices[a+2] + bf*vertices[b+2] + cf*vertices[c+2];\r\n\t\t\tif(normals && mesh_normals)\r\n\t\t\t{\r\n\t\t\t\tnormals[i] = af * mesh_normals[a] + bf*mesh_normals[b] + cf*mesh_normals[c];\r\n\t\t\t\tnormals[i+1] = af * mesh_normals[a+1] + bf*mesh_normals[b+1] + cf*mesh_normals[c+1];\r\n\t\t\t\tnormals[i+2] = af * mesh_normals[a+2] + bf*mesh_normals[b+2] + cf*mesh_normals[c+2];\r\n\t\t\t\tvar N = normals.subarray(i,i+3);\r\n\t\t\t\tvec3.normalize(N,N);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphPoints3D.generateFromInsideObject = function( points, size, mesh )\r\n\t{\r\n\t\tif(!mesh || mesh.constructor !== GL.Mesh)\r\n\t\t\treturn;\r\n\r\n\t\tvar aabb = mesh.getBoundingBox();\r\n\t\tif(!mesh.octree)\r\n\t\t\tmesh.octree = new GL.Octree( mesh );\r\n\t\tvar octree = mesh.octree;\r\n\t\tvar origin = vec3.create();\r\n\t\tvar direction = vec3.fromValues(1,0,0);\r\n\t\tvar temp = vec3.create();\r\n\t\tvar i = 0;\r\n\t\tvar tries = 0;\r\n\t\twhile(i < size && tries < points.length * 10) //limit to avoid problems\r\n\t\t{\r\n\t\t\ttries += 1\r\n\t\t\tvar r = vec3.random(temp); //random point inside the aabb\r\n\t\t\tr[0] = (r[0] * 2 - 1) * aabb[3] + aabb[0];\r\n\t\t\tr[1] = (r[1] * 2 - 1) * aabb[4] + aabb[1];\r\n\t\t\tr[2] = (r[2] * 2 - 1) * aabb[5] + aabb[2];\r\n\t\t\torigin.set(r);\r\n\t\t\tvar hit = octree.testRay( origin, direction, 0, 10000, true, GL.Octree.ALL );\r\n\t\t\tif(!hit || hit.length % 2 == 0) //not inside\r\n\t\t\t\tcontinue;\r\n\t\t\tpoints.set( r, i );\r\n\t\t\ti+=3;\r\n\t\t}\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/points3D\", LGraphPoints3D );\r\n\r\n\r\n\r\n\tfunction LGraphPointsToInstances() {\r\n\t\tthis.addInput(\"points\", \"geometry\");\r\n\t\tthis.addOutput(\"instances\", \"[mat4]\");\r\n\t\tthis.properties = {\r\n\t\t\tmode: 1,\r\n\t\t\tautoupdate: true\r\n\t\t};\r\n\r\n\t\tthis.must_update = true;\r\n\t\tthis.matrices = [];\r\n\t\tthis.first_time = true;\r\n\t}\r\n\r\n\tLGraphPointsToInstances.NORMAL = 0;\r\n\tLGraphPointsToInstances.VERTICAL = 1;\r\n\tLGraphPointsToInstances.SPHERICAL = 2;\r\n\tLGraphPointsToInstances.RANDOM = 3;\r\n\tLGraphPointsToInstances.RANDOM_VERTICAL = 4;\r\n\r\n\tLGraphPointsToInstances.modes = {\"normal\":0,\"vertical\":1,\"spherical\":2,\"random\":3,\"random_vertical\":4};\r\n\tLGraphPointsToInstances.widgets_info = {\r\n\t\tmode: { widget: \"combo\", values: LGraphPointsToInstances.modes }\r\n\t};\r\n\r\n\tLGraphPointsToInstances.title = \"points to inst\";\r\n\r\n\tLGraphPointsToInstances.prototype.onExecute = function()\r\n\t{\r\n\t\tvar geo = this.getInputData(0);\r\n\t\tif( !geo )\r\n\t\t{\r\n\t\t\tthis.setOutputData(0,null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif( !this.isOutputConnected(0) )\r\n\t\t\treturn;\r\n\r\n\t\tvar has_changed = (geo._version != this._version || geo._id != this._geometry_id);\r\n\r\n\t\tif( has_changed && this.properties.autoupdate || this.first_time )\r\n\t\t{\r\n\t\t\tthis.first_time = false;\r\n\t\t\tthis.updateInstances( geo );\r\n\t\t}\r\n\r\n\t\tthis.setOutputData( 0, this.matrices );\r\n\t}\r\n\r\n\tLGraphPointsToInstances.prototype.updateInstances = function( geometry )\r\n\t{\r\n\t\tvar vertices = geometry.vertices;\r\n\t\tif(!vertices)\r\n\t\t\treturn null;\r\n\t\tvar normals = geometry.normals;\r\n\r\n\t\tvar matrices = this.matrices;\r\n\t\tvar num_points = vertices.length / 3;\r\n\t\tif( matrices.length != num_points)\r\n\t\t\tmatrices.length = num_points;\r\n\t\tvar identity = mat4.create();\r\n\t\tvar temp = vec3.create();\r\n\t\tvar zero = vec3.create();\r\n\t\tvar UP = vec3.fromValues(0,1,0);\r\n\t\tvar FRONT = vec3.fromValues(0,0,-1);\r\n\t\tvar RIGHT = vec3.fromValues(1,0,0);\r\n\t\tvar R = quat.create();\r\n\r\n\t\tvar front = vec3.create();\r\n\t\tvar right = vec3.create();\r\n\t\tvar top = vec3.create();\r\n\r\n\t\tfor(var i = 0; i < vertices.length; i += 3)\r\n\t\t{\r\n\t\t\tvar index = i/3;\r\n\t\t\tvar m = matrices[index];\r\n\t\t\tif(!m)\r\n\t\t\t\tm = matrices[index] = mat4.create();\r\n\t\t\tm.set( identity );\r\n\t\t\tvar point = vertices.subarray(i,i+3);\r\n\r\n\t\t\tswitch(this.properties.mode)\r\n\t\t\t{\r\n\t\t\t\tcase LGraphPointsToInstances.NORMAL: \r\n\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\tif(normals)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar normal = normals.subarray(i,i+3);\r\n\t\t\t\t\t\ttop.set( normal );\r\n\t\t\t\t\t\tvec3.normalize( top, top );\r\n\t\t\t\t\t\tvec3.cross( right, FRONT, top );\r\n\t\t\t\t\t\tvec3.normalize( right, right );\r\n\t\t\t\t\t\tvec3.cross( front, right, top );\r\n\t\t\t\t\t\tvec3.normalize( front, front );\r\n\t\t\t\t\t\tm.set(right,0);\r\n\t\t\t\t\t\tm.set(top,4);\r\n\t\t\t\t\t\tm.set(front,8);\r\n\t\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LGraphPointsToInstances.VERTICAL: \r\n\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LGraphPointsToInstances.SPHERICAL: \r\n\t\t\t\t\tfront.set( point );\r\n\t\t\t\t\tvec3.normalize( front, front );\r\n\t\t\t\t\tvec3.cross( right, UP, front );\r\n\t\t\t\t\tvec3.normalize( right, right );\r\n\t\t\t\t\tvec3.cross( top, front, right );\r\n\t\t\t\t\tvec3.normalize( top, top );\r\n\t\t\t\t\tm.set(right,0);\r\n\t\t\t\t\tm.set(top,4);\r\n\t\t\t\t\tm.set(front,8);\r\n\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LGraphPointsToInstances.RANDOM:\r\n\t\t\t\t\ttemp[0] = Math.random()*2 - 1;\r\n\t\t\t\t\ttemp[1] = Math.random()*2 - 1;\r\n\t\t\t\t\ttemp[2] = Math.random()*2 - 1;\r\n\t\t\t\t\tvec3.normalize( temp, temp );\r\n\t\t\t\t\tquat.setAxisAngle( R, temp, Math.random() * 2 * Math.PI );\r\n\t\t\t\t\tmat4.fromQuat(m, R);\r\n\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase LGraphPointsToInstances.RANDOM_VERTICAL:\r\n\t\t\t\t\tquat.setAxisAngle( R, UP, Math.random() * 2 * Math.PI );\r\n\t\t\t\t\tmat4.fromQuat(m, R);\r\n\t\t\t\t\tmat4.setTranslation( m, point );\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._version = geometry._version;\r\n\t\tthis._geometry_id = geometry._id;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/points_to_instances\", LGraphPointsToInstances );\r\n\r\n\r\n\tfunction LGraphGeometryTransform() {\r\n\t\tthis.addInput(\"in\", \"geometry,[mat4]\");\r\n\t\tthis.addInput(\"mat4\", \"mat4\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\t\tthis.properties = {};\r\n\r\n\t\tthis.geometry = {\r\n\t\t\ttype: \"triangles\",\r\n\t\t\tvertices: null,\r\n\t\t\t_id: generateGeometryId(),\r\n\t\t\t_version: 0\r\n\t\t};\r\n\r\n\t\tthis._last_geometry_id = -1;\r\n\t\tthis._last_version = -1;\r\n\t\tthis._last_key = \"\";\r\n\r\n\t\tthis.must_update = true;\r\n\t}\r\n\r\n\tLGraphGeometryTransform.title = \"Transform\";\r\n\r\n\tLGraphGeometryTransform.prototype.onExecute = function() {\r\n\r\n\t\tvar input = this.getInputData(0);\r\n\t\tvar model = this.getInputData(1);\r\n\r\n\t\tif(!input)\r\n\t\t\treturn;\r\n\r\n\t\t//array of matrices\r\n\t\tif(input.constructor === Array)\r\n\t\t{\r\n\t\t\tif(input.length == 0)\r\n\t\t\t\treturn;\r\n\t\t\tthis.outputs[0].type = \"[mat4]\";\r\n\t\t\tif( !this.isOutputConnected(0) )\r\n\t\t\t\treturn;\r\n\r\n\t\t\tif(!model)\r\n\t\t\t{\r\n\t\t\t\tthis.setOutputData(0,input);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif(!this._output)\r\n\t\t\t\tthis._output = new Array();\r\n\t\t\tif(this._output.length != input.length)\r\n\t\t\t\tthis._output.length = input.length;\r\n\t\t\tfor(var i = 0; i < input.length; ++i)\r\n\t\t\t{\r\n\t\t\t\tvar m = this._output[i];\r\n\t\t\t\tif(!m)\r\n\t\t\t\t\tm = this._output[i] = mat4.create();\r\n\t\t\t\tmat4.multiply(m,input[i],model);\r\n\t\t\t}\r\n\t\t\tthis.setOutputData(0,this._output);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//geometry\r\n\t\tif(!input.vertices || !input.vertices.length)\r\n\t\t\treturn;\r\n\t\tvar geo = input;\r\n\t\tthis.outputs[0].type = \"geometry\";\r\n\t\tif( !this.isOutputConnected(0) )\r\n\t\t\treturn;\r\n\t\tif(!model)\r\n\t\t{\r\n\t\t\tthis.setOutputData(0,geo);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar key = typedArrayToArray(model).join(\",\");\r\n\r\n\t\tif( this.must_update || geo._id != this._last_geometry_id || geo._version != this._last_version || key != this._last_key )\r\n\t\t{\r\n\t\t\tthis.updateGeometry(geo, model);\r\n\t\t\tthis._last_key = key;\r\n\t\t\tthis._last_version = geo._version;\r\n\t\t\tthis._last_geometry_id = geo._id;\r\n\t\t\tthis.must_update = false;\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0,this.geometry);\r\n\t}\r\n\r\n\tLGraphGeometryTransform.prototype.updateGeometry = function(geometry, model) {\r\n\t\tvar old_vertices = geometry.vertices;\r\n\t\tvar vertices = this.geometry.vertices;\r\n\t\tif( !vertices || vertices.length != old_vertices.length )\r\n\t\t\tvertices = this.geometry.vertices = new Float32Array( old_vertices.length );\r\n\t\tvar temp = vec3.create();\r\n\r\n\t\tfor(var i = 0, l = vertices.length; i < l; i+=3)\r\n\t\t{\r\n\t\t\ttemp[0] = old_vertices[i]; temp[1] = old_vertices[i+1]; temp[2] = old_vertices[i+2]; \r\n\t\t\tmat4.multiplyVec3( temp, model, temp );\r\n\t\t\tvertices[i] = temp[0]; vertices[i+1] = temp[1]; vertices[i+2] = temp[2];\r\n\t\t}\r\n\r\n\t\tif(geometry.normals)\r\n\t\t{\r\n\t\t\tif( !this.geometry.normals || this.geometry.normals.length != geometry.normals.length )\r\n\t\t\t\tthis.geometry.normals = new Float32Array( geometry.normals.length );\r\n\t\t\tvar normals = this.geometry.normals;\r\n\t\t\tvar normal_model = mat4.invert(mat4.create(), model);\r\n\t\t\tif(normal_model)\r\n\t\t\t\tmat4.transpose(normal_model, normal_model);\r\n\t\t\tvar old_normals = geometry.normals;\r\n\t\t\tfor(var i = 0, l = normals.length; i < l; i+=3)\r\n\t\t\t{\r\n\t\t\t\ttemp[0] = old_normals[i]; temp[1] = old_normals[i+1]; temp[2] = old_normals[i+2]; \r\n\t\t\t\tmat4.multiplyVec3( temp, normal_model, temp );\r\n\t\t\t\tnormals[i] = temp[0]; normals[i+1] = temp[1]; normals[i+2] = temp[2];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.geometry.type = geometry.type;\r\n\t\tthis.geometry._version++;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/transform\", LGraphGeometryTransform );\r\n\r\n\r\n\tfunction LGraphGeometryPolygon() {\r\n\t\tthis.addInput(\"sides\", \"number\");\r\n\t\tthis.addInput(\"radius\", \"number\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\t\tthis.properties = { sides: 6, radius: 1, uvs: false }\r\n\r\n\t\tthis.geometry = {\r\n\t\t\ttype: \"line_loop\",\r\n\t\t\tvertices: null,\r\n\t\t\t_id: generateGeometryId()\r\n\t\t};\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.must_update = true;\r\n\r\n\t\tthis.last_info = { sides: -1, radius: -1 };\r\n\t}\r\n\r\n\tLGraphGeometryPolygon.title = \"Polygon\";\r\n\r\n\tLGraphGeometryPolygon.prototype.onExecute = function() {\r\n\r\n\t\tif( !this.isOutputConnected(0) )\r\n\t\t\treturn;\r\n\r\n\t\tvar sides = this.getInputOrProperty(\"sides\");\r\n\t\tvar radius = this.getInputOrProperty(\"radius\");\r\n\t\tsides = Math.max(3,sides)|0;\r\n\r\n\t\t//update\r\n\t\tif( this.last_info.sides != sides || this.last_info.radius != radius )\r\n\t\t\tthis.updateGeometry(sides, radius);\r\n\r\n\t\tthis.setOutputData(0,this.geometry);\r\n\t}\r\n\r\n\tLGraphGeometryPolygon.prototype.updateGeometry = function(sides, radius) {\r\n\t\tvar num = 3*sides;\r\n\t\tvar vertices = this.geometry.vertices;\r\n\t\tif( !vertices || vertices.length != num )\r\n\t\t\tvertices = this.geometry.vertices = new Float32Array( 3*sides );\r\n\t\tvar delta = (Math.PI * 2) / sides;\r\n\t\tvar gen_uvs = this.properties.uvs;\r\n\t\tif(gen_uvs)\r\n\t\t{\r\n\t\t\tuvs = this.geometry.coords = new Float32Array( 3*sides );\r\n\t\t}\r\n\r\n\r\n\t\tfor(var i = 0; i < sides; ++i)\r\n\t\t{\r\n\t\t\tvar angle = delta * -i;\r\n\t\t\tvar x = Math.cos( angle ) * radius;\r\n\t\t\tvar y = 0;\r\n\t\t\tvar z = Math.sin( angle ) * radius;\r\n\t\t\tvertices[i*3] = x;\r\n\t\t\tvertices[i*3+1] = y;\r\n\t\t\tvertices[i*3+2] = z;\r\n\r\n\t\t\tif(gen_uvs)\r\n\t\t\t{\r\n\t\t\t\t\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.geometry._id = ++this.geometry_id;\r\n\t\tthis.geometry._version = ++this.version;\r\n\t\tthis.last_info.sides = sides;\r\n\t\tthis.last_info.radius = radius;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/polygon\", LGraphGeometryPolygon );\r\n\r\n\r\n\tfunction LGraphGeometryExtrude() {\r\n\r\n\t\tthis.addInput(\"\", \"geometry\");\r\n\t\tthis.addOutput(\"\", \"geometry\");\r\n\t\tthis.properties = { top_cap: true, bottom_cap: true, offset: [0,100,0] };\r\n\t\tthis.version = -1;\r\n\r\n\t\tthis._last_geo_version = -1;\r\n\t\tthis._must_update = true;\r\n\t}\r\n\r\n\tLGraphGeometryExtrude.title = \"extrude\";\r\n\r\n\tLGraphGeometryExtrude.prototype.onPropertyChanged = function(name, value)\r\n\t{\r\n\t\tthis._must_update = true;\r\n\t}\r\n\r\n\tLGraphGeometryExtrude.prototype.onExecute = function()\r\n\t{\r\n\t\tvar geo = this.getInputData(0);\r\n\t\tif( !geo || !this.isOutputConnected(0) )\r\n\t\t\treturn;\r\n\r\n\t\tif(geo.version != this._last_geo_version || this._must_update)\r\n\t\t{\r\n\t\t\tthis._geo = this.extrudeGeometry( geo, this._geo );\r\n\t\t\tif(this._geo)\r\n\t\t\t\tthis._geo.version = this.version++;\r\n\t\t\tthis._must_update = false;\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0, this._geo);\r\n\t}\r\n\r\n\tLGraphGeometryExtrude.prototype.extrudeGeometry = function( geo )\r\n\t{\r\n\t\t//for every pair of vertices\r\n\t\tvar vertices = geo.vertices;\r\n\t\tvar num_points = vertices.length / 3;\r\n\r\n\t\tvar tempA = vec3.create();\r\n\t\tvar tempB = vec3.create();\r\n\t\tvar tempC = vec3.create();\r\n\t\tvar tempD = vec3.create();\r\n\t\tvar offset = new Float32Array( this.properties.offset );\r\n\r\n\t\tif(geo.type == \"line_loop\")\r\n\t\t{\r\n\t\t\tvar new_vertices = new Float32Array( num_points * 6 * 3 ); //every points become 6 ( caps not included )\r\n\t\t\tvar npos = 0;\r\n\t\t\tfor(var i = 0, l = vertices.length; i < l; i += 3)\r\n\t\t\t{\r\n\t\t\t\ttempA[0] = vertices[i]; tempA[1] = vertices[i+1]; tempA[2] = vertices[i+2];\r\n\r\n\t\t\t\tif( i+3 < l ) //loop\r\n\t\t\t\t{\r\n\t\t\t\t\ttempB[0] = vertices[i+3]; tempB[1] = vertices[i+4]; tempB[2] = vertices[i+5];\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\ttempB[0] = vertices[0]; tempB[1] = vertices[1]; tempB[2] = vertices[2];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvec3.add( tempC, tempA, offset );\r\n\t\t\t\tvec3.add( tempD, tempB, offset );\r\n\r\n\t\t\t\tnew_vertices.set( tempA, npos ); npos += 3;\r\n\t\t\t\tnew_vertices.set( tempB, npos ); npos += 3;\r\n\t\t\t\tnew_vertices.set( tempC, npos ); npos += 3;\r\n\r\n\t\t\t\tnew_vertices.set( tempB, npos ); npos += 3;\r\n\t\t\t\tnew_vertices.set( tempD, npos ); npos += 3;\r\n\t\t\t\tnew_vertices.set( tempC, npos ); npos += 3;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar out_geo = {\r\n\t\t\t_id: generateGeometryId(),\r\n\t\t\ttype: \"triangles\",\r\n\t\t\tvertices: new_vertices\r\n\t\t};\r\n\r\n\t\treturn out_geo;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/extrude\", LGraphGeometryExtrude );\r\n\r\n\r\n\tfunction LGraphGeometryEval() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\r\n\t\tthis.properties = {\r\n\t\t\tcode: \"V[1] += 0.01 * Math.sin(I + T*0.001);\",\r\n\t\t\texecute_every_frame: false\r\n\t\t};\r\n\r\n\t\tthis.geometry = null;\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.must_update = true;\r\n\r\n\t\tthis.vertices = null;\r\n\t\tthis.func = null;\r\n\t}\r\n\r\n\tLGraphGeometryEval.title = \"geoeval\";\r\n\tLGraphGeometryEval.desc = \"eval code\";\r\n\r\n\tLGraphGeometryEval.widgets_info = {\r\n\t\tcode: { widget: \"code\" }\r\n\t};\r\n\r\n\tLGraphGeometryEval.prototype.onConfigure = function(o)\r\n\t{\r\n\t\tthis.compileCode();\r\n\t}\r\n\r\n\tLGraphGeometryEval.prototype.compileCode = function()\r\n\t{\r\n\t\tif(!this.properties.code)\r\n\t\t\treturn;\r\n\r\n\t\ttry\r\n\t\t{\r\n\t\t\tthis.func = new Function(\"V\",\"I\",\"T\", this.properties.code); \r\n\t\t\tthis.boxcolor = \"#AFA\";\r\n\t\t\tthis.must_update = true;\r\n\t\t}\r\n\t\tcatch (err)\r\n\t\t{\r\n\t\t\tthis.boxcolor = \"red\";\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphGeometryEval.prototype.onPropertyChanged = function(name, value)\r\n\t{\r\n\t\tif(name == \"code\")\r\n\t\t{\r\n\t\t\tthis.properties.code = value;\r\n\t\t\tthis.compileCode();\r\n\t\t}\r\n\t}\r\n\r\n\tLGraphGeometryEval.prototype.onExecute = function() {\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\r\n\t\tif(!this.func)\r\n\t\t{\r\n\t\t\tthis.setOutputData(0,geometry);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif( this.geometry_id != geometry._id || this.version != geometry._version || this.must_update || this.properties.execute_every_frame )\r\n\t\t{\r\n\t\t\tthis.must_update = false;\r\n\t\t\tthis.geometry_id = geometry._id;\r\n\t\t\tif(this.properties.execute_every_frame)\r\n\t\t\t\tthis.version++;\r\n\t\t\telse\r\n\t\t\t\tthis.version = geometry._version;\r\n\t\t\tvar func = this.func;\r\n\t\t\tvar T = getTime();\r\n\r\n\t\t\t//clone\r\n\t\t\tif(!this.geometry)\r\n\t\t\t\tthis.geometry = {};\r\n\t\t\tfor(var i in geometry)\r\n\t\t\t{\r\n\t\t\t\tif(geometry[i] == null)\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\tif( geometry[i].constructor == Float32Array )\r\n\t\t\t\t\tthis.geometry[i] = new Float32Array( geometry[i] );\r\n\t\t\t\telse\r\n\t\t\t\t\tthis.geometry[i] = geometry[i];\r\n\t\t\t}\r\n\t\t\tthis.geometry._id = geometry._id;\r\n\t\t\tif(this.properties.execute_every_frame)\r\n\t\t\t\tthis.geometry._version = this.version;\r\n\t\t\telse\r\n\t\t\t\tthis.geometry._version = geometry._version + 1;\r\n\r\n\t\t\tvar V = vec3.create();\r\n\t\t\tvar vertices = this.vertices;\r\n\t\t\tif(!vertices || this.vertices.length != geometry.vertices.length)\r\n\t\t\t\tvertices = this.vertices = new Float32Array( geometry.vertices );\r\n\t\t\telse\r\n\t\t\t\tvertices.set( geometry.vertices );\r\n\t\t\tfor(var i = 0; i < vertices.length; i+=3)\r\n\t\t\t{\r\n\t\t\t\tV[0] = vertices[i];\r\n\t\t\t\tV[1] = vertices[i+1];\r\n\t\t\t\tV[2] = vertices[i+2];\r\n\t\t\t\tfunc(V,i/3,T);\r\n\t\t\t\tvertices[i] = V[0];\r\n\t\t\t\tvertices[i+1] = V[1];\r\n\t\t\t\tvertices[i+2] = V[2];\r\n\t\t\t}\r\n\t\t\tthis.geometry.vertices = vertices;\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0,this.geometry);\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/eval\", LGraphGeometryEval );\r\n\r\n/*\r\nfunction LGraphGeometryDisplace() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addInput(\"img\", \"image\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\r\n\t\tthis.properties = {\r\n\t\t\tgrid_size: 1\r\n\t\t};\r\n\r\n\t\tthis.geometry = null;\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.must_update = true;\r\n\r\n\t\tthis.vertices = null;\r\n\t}\r\n\r\n\tLGraphGeometryDisplace.title = \"displace\";\r\n\tLGraphGeometryDisplace.desc = \"displace points\";\r\n\r\n\tLGraphGeometryDisplace.prototype.onExecute = function() {\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tvar image = this.getInputData(1);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\r\n\t\tif(!image)\r\n\t\t{\r\n\t\t\tthis.setOutputData(0,geometry);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif( this.geometry_id != geometry._id || this.version != geometry._version || this.must_update )\r\n\t\t{\r\n\t\t\tthis.must_update = false;\r\n\t\t\tthis.geometry_id = geometry._id;\r\n\t\t\tthis.version = geometry._version;\r\n\r\n\t\t\t//copy\r\n\t\t\tthis.geometry = {};\r\n\t\t\tfor(var i in geometry)\r\n\t\t\t\tthis.geometry[i] = geometry[i];\r\n\t\t\tthis.geometry._id = geometry._id;\r\n\t\t\tthis.geometry._version = geometry._version + 1;\r\n\r\n\t\t\tvar grid_size = this.properties.grid_size;\r\n\t\t\tif(grid_size != 0)\r\n\t\t\t{\r\n\t\t\t\tvar vertices = this.vertices;\r\n\t\t\t\tif(!vertices || this.vertices.length != this.geometry.vertices.length)\r\n\t\t\t\t\tvertices = this.vertices = new Float32Array( this.geometry.vertices );\r\n\t\t\t\tfor(var i = 0; i < vertices.length; i+=3)\r\n\t\t\t\t{\r\n\t\t\t\t\tvertices[i] = Math.round(vertices[i]/grid_size) * grid_size;\r\n\t\t\t\t\tvertices[i+1] = Math.round(vertices[i+1]/grid_size) * grid_size;\r\n\t\t\t\t\tvertices[i+2] = Math.round(vertices[i+2]/grid_size) * grid_size;\r\n\t\t\t\t}\r\n\t\t\t\tthis.geometry.vertices = vertices;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0,this.geometry);\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/displace\", LGraphGeometryDisplace );\r\n*/\r\n\r\n\tfunction LGraphConnectPoints() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\r\n\t\tthis.properties = {\r\n\t\t\tmin_dist: 0.4,\r\n\t\t\tmax_dist: 0.5,\r\n\t\t\tmax_connections: 0,\r\n\t\t\tprobability: 1\r\n\t\t};\r\n\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.my_version = 1;\r\n\t\tthis.must_update = true;\r\n\t}\r\n\r\n\tLGraphConnectPoints.title = \"connect points\";\r\n\tLGraphConnectPoints.desc = \"adds indices between near points\";\r\n\r\n\tLGraphConnectPoints.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tthis.must_update = true;\r\n\t}\r\n\r\n\tLGraphConnectPoints.prototype.onExecute = function() {\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\r\n\t\tif( this.geometry_id != geometry._id || this.version != geometry._version || this.must_update )\r\n\t\t{\r\n\t\t\tthis.must_update = false;\r\n\t\t\tthis.geometry_id = geometry._id;\r\n\t\t\tthis.version = geometry._version;\r\n\r\n\t\t\t//copy\r\n\t\t\tthis.geometry = {};\r\n\t\t\tfor(var i in geometry)\r\n\t\t\t\tthis.geometry[i] = geometry[i];\r\n\t\t\tthis.geometry._id = generateGeometryId();\r\n\t\t\tthis.geometry._version = this.my_version++;\r\n\r\n\t\t\tvar vertices = geometry.vertices;\r\n\t\t\tvar l = vertices.length;\r\n\t\t\tvar min_dist = this.properties.min_dist;\r\n\t\t\tvar max_dist = this.properties.max_dist;\r\n\t\t\tvar probability = this.properties.probability;\r\n\t\t\tvar max_connections = this.properties.max_connections;\r\n\t\t\tvar indices = [];\r\n\t\t\t\r\n\t\t\tfor(var i = 0; i < l; i+=3)\r\n\t\t\t{\r\n\t\t\t\tvar x = vertices[i];\r\n\t\t\t\tvar y = vertices[i+1];\r\n\t\t\t\tvar z = vertices[i+2];\r\n\t\t\t\tvar connections = 0;\r\n\t\t\t\tfor(var j = i+3; j < l; j+=3)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar x2 = vertices[j];\r\n\t\t\t\t\tvar y2 = vertices[j+1];\r\n\t\t\t\t\tvar z2 = vertices[j+2];\r\n\t\t\t\t\tvar dist = Math.sqrt( (x-x2)*(x-x2) + (y-y2)*(y-y2) + (z-z2)*(z-z2));\r\n\t\t\t\t\tif(dist > max_dist || dist < min_dist || (probability < 1 && probability < Math.random()) )\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\tindices.push(i/3,j/3);\r\n\t\t\t\t\tconnections += 1;\r\n\t\t\t\t\tif(max_connections && connections > max_connections)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.geometry.indices = this.indices = new Uint32Array(indices);\r\n\t\t}\r\n\r\n\t\tif(this.indices && this.indices.length)\r\n\t\t{\r\n\t\t\tthis.geometry.indices = this.indices;\r\n\t\t\tthis.setOutputData( 0, this.geometry );\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis.setOutputData( 0, null );\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/connectPoints\", LGraphConnectPoints );\r\n\r\n //Works with Litegl.js to create WebGL nodes\r\n if (typeof GL == \"undefined\") //LiteGL RELATED **********************************************\r\n\t\treturn;\r\n\r\n\tfunction LGraphToGeometry() {\r\n\t\tthis.addInput(\"mesh\", \"mesh\");\r\n\t\tthis.addOutput(\"out\", \"geometry\");\r\n\r\n\t\tthis.geometry = {};\r\n\t\tthis.last_mesh = null;\r\n\t}\r\n\r\n\tLGraphToGeometry.title = \"to geometry\";\r\n\tLGraphToGeometry.desc = \"converts a mesh to geometry\";\r\n\r\n\tLGraphToGeometry.prototype.onExecute = function() {\r\n\t\tvar mesh = this.getInputData(0);\r\n\t\tif(!mesh)\r\n\t\t\treturn;\r\n\r\n\t\tif(mesh != this.last_mesh)\r\n\t\t{\r\n\t\t\tthis.last_mesh = mesh;\r\n\t\t\tfor(i in mesh.vertexBuffers)\r\n\t\t\t{\r\n\t\t\t\tvar buffer = mesh.vertexBuffers[i];\r\n\t\t\t\tthis.geometry[i] = buffer.data\r\n\t\t\t}\r\n\t\t\tif(mesh.indexBuffers[\"triangles\"])\r\n\t\t\t\tthis.geometry.indices = mesh.indexBuffers[\"triangles\"].data;\r\n\r\n\t\t\tthis.geometry._id = generateGeometryId();\r\n\t\t\tthis.geometry._version = 0;\r\n\t\t}\r\n\r\n\t\tthis.setOutputData(0,this.geometry);\r\n\t\tif(this.geometry)\r\n\t\t\tthis.setOutputData(1,this.geometry.vertices);\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/toGeometry\", LGraphToGeometry );\r\n\r\n\tfunction LGraphGeometryToMesh() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addOutput(\"mesh\", \"mesh\");\r\n\t\tthis.properties = {};\r\n\t\tthis.version = -1;\r\n\t\tthis.mesh = null;\r\n\t}\r\n\r\n\tLGraphGeometryToMesh.title = \"Geo to Mesh\";\r\n\r\n\tLGraphGeometryToMesh.prototype.updateMesh = function(geometry)\r\n\t{\r\n\t\tif(!this.mesh)\r\n\t\t\tthis.mesh = new GL.Mesh();\r\n\r\n\t\tfor(var i in geometry)\r\n\t\t{\r\n\t\t\tif(i[0] == \"_\")\r\n\t\t\t\tcontinue;\r\n\r\n\t\t\tvar buffer_data = geometry[i];\r\n\r\n\t\t\tvar info = GL.Mesh.common_buffers[i];\r\n\t\t\tif(!info && i != \"indices\") //unknown buffer\r\n\t\t\t\tcontinue;\r\n\t\t\tvar spacing = info ? info.spacing : 3;\r\n\t\t\tvar mesh_buffer = this.mesh.vertexBuffers[i];\r\n\r\n\t\t\tif(!mesh_buffer || mesh_buffer.data.length != buffer_data.length)\r\n\t\t\t{\r\n\t\t\t\tmesh_buffer = new GL.Buffer( i == \"indices\" ? GL.ELEMENT_ARRAY_BUFFER : GL.ARRAY_BUFFER, buffer_data, spacing, GL.DYNAMIC_DRAW );\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tmesh_buffer.data.set( buffer_data );\r\n\t\t\t\tmesh_buffer.upload(GL.DYNAMIC_DRAW);\r\n\t\t\t}\r\n\r\n\t\t\tthis.mesh.addBuffer( i, mesh_buffer );\r\n\t\t}\r\n\r\n\t\tif(this.mesh.vertexBuffers.normals &&this.mesh.vertexBuffers.normals.data.length != this.mesh.vertexBuffers.vertices.data.length )\r\n\t\t{\r\n\t\t\tvar n = new Float32Array([0,1,0]);\r\n\t\t\tvar normals = new Float32Array( this.mesh.vertexBuffers.vertices.data.length );\r\n\t\t\tfor(var i = 0; i < normals.length; i+= 3)\r\n\t\t\t\tnormals.set( n, i );\r\n\t\t\tmesh_buffer = new GL.Buffer( GL.ARRAY_BUFFER, normals, 3 );\r\n\t\t\tthis.mesh.addBuffer( \"normals\", mesh_buffer );\r\n\t\t}\r\n\r\n\t\tthis.mesh.updateBoundingBox();\r\n\t\tthis.geometry_id = this.mesh.id = geometry._id;\r\n\t\tthis.version = this.mesh.version = geometry._version;\r\n\t\treturn this.mesh;\r\n\t}\r\n\r\n\tLGraphGeometryToMesh.prototype.onExecute = function() {\r\n\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\t\tif( this.version != geometry._version || this.geometry_id != geometry._id )\r\n\t\t\tthis.updateMesh( geometry );\r\n\t\tthis.setOutputData(0, this.mesh);\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/toMesh\", LGraphGeometryToMesh );\r\n\r\n\tfunction LGraphRenderMesh() {\r\n\t\tthis.addInput(\"mesh\", \"mesh\");\r\n\t\tthis.addInput(\"mat4\", \"mat4\");\r\n\t\tthis.addInput(\"tex\", \"texture\");\r\n\r\n\t\tthis.properties = {\r\n\t\t\tenabled: true,\r\n\t\t\tprimitive: GL.TRIANGLES,\r\n\t\t\tadditive: false,\r\n\t\t\tcolor: [1,1,1],\r\n\t\t\topacity: 1\r\n\t\t};\r\n\r\n\t\tthis.color = vec4.create([1,1,1,1]);\r\n\t\tthis.model_matrix = mat4.create();\r\n\t\tthis.uniforms = {\r\n\t\t\tu_color: this.color,\r\n\t\t\tu_model: this.model_matrix\r\n\t\t};\r\n\t}\r\n\r\n\tLGraphRenderMesh.title = \"Render Mesh\";\r\n\tLGraphRenderMesh.desc = \"renders a mesh flat\";\r\n\r\n\tLGraphRenderMesh.PRIMITIVE_VALUES = { \"points\":GL.POINTS, \"lines\":GL.LINES, \"line_loop\":GL.LINE_LOOP,\"line_strip\":GL.LINE_STRIP, \"triangles\":GL.TRIANGLES, \"triangle_fan\":GL.TRIANGLE_FAN, \"triangle_strip\":GL.TRIANGLE_STRIP };\r\n\r\n\tLGraphRenderMesh.widgets_info = {\r\n\t\tprimitive: { widget: \"combo\", values: LGraphRenderMesh.PRIMITIVE_VALUES },\r\n\t\tcolor: { widget: \"color\" }\r\n\t};\r\n\r\n\tLGraphRenderMesh.prototype.onExecute = function() {\r\n\r\n\t\tif(!this.properties.enabled)\r\n\t\t\treturn;\r\n\r\n\t\tvar mesh = this.getInputData(0);\r\n\t\tif(!mesh)\r\n\t\t\treturn;\r\n\r\n\t\tif(!LiteGraph.LGraphRender.onRequestCameraMatrices)\r\n\t\t{\r\n\t\t\tconsole.warn(\"cannot render geometry, LiteGraph.onRequestCameraMatrices is null, remember to fill this with a callback(view_matrix, projection_matrix,viewprojection_matrix) to use 3D rendering from the graph\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tLiteGraph.LGraphRender.onRequestCameraMatrices( view_matrix, projection_matrix,viewprojection_matrix );\r\n\t\tvar shader = null;\r\n\t\tvar texture = this.getInputData(2);\r\n\t\tif(texture)\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"textured\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"textured\"] = new GL.Shader( LGraphRenderPoints.vertex_shader_code, LGraphRenderPoints.fragment_shader_code, { USE_TEXTURE:\"\" });\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"flat\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"flat\"] = new GL.Shader( LGraphRenderPoints.vertex_shader_code, LGraphRenderPoints.fragment_shader_code );\r\n\t\t}\r\n\r\n\t\tthis.color.set( this.properties.color );\r\n\t\tthis.color[3] = this.properties.opacity;\r\n\r\n\t\tvar model_matrix = this.model_matrix;\r\n\t\tvar m = this.getInputData(1);\r\n\t\tif(m)\r\n\t\t\tmodel_matrix.set(m);\r\n\t\telse\r\n\t\t\tmat4.identity( model_matrix );\r\n\r\n\t\tthis.uniforms.u_point_size = 1;\r\n\t\tvar primitive = this.properties.primitive;\r\n\r\n\t\tshader.uniforms( global_uniforms );\r\n\t\tshader.uniforms( this.uniforms );\r\n\r\n\t\tif(this.properties.opacity >= 1)\r\n\t\t\tgl.disable( gl.BLEND );\r\n\t\telse\r\n\t\t\tgl.enable( gl.BLEND );\r\n\t\tgl.enable( gl.DEPTH_TEST );\r\n\t\tif( this.properties.additive )\r\n\t\t{\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\r\n\t\t\tgl.depthMask( false );\r\n\t\t}\r\n\t\telse\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA );\r\n\r\n\t\tvar indices = \"indices\";\r\n\t\tif( mesh.indexBuffers.triangles )\r\n\t\t\tindices = \"triangles\";\r\n\t\tshader.draw( mesh, primitive, indices );\r\n\t\tgl.disable( gl.BLEND );\r\n\t\tgl.depthMask( true );\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/render_mesh\", LGraphRenderMesh );\r\n\r\n\t//**************************\r\n\r\n\r\n\tfunction LGraphGeometryPrimitive() {\r\n\t\tthis.addInput(\"size\", \"number\");\r\n\t\tthis.addOutput(\"out\", \"mesh\");\r\n\t\tthis.properties = { type: 1, size: 1, subdivisions: 32 };\r\n\r\n\t\tthis.version = (Math.random() * 100000)|0;\r\n\t\tthis.last_info = { type: -1, size: -1, subdivisions: -1 };\r\n\t}\r\n\r\n\tLGraphGeometryPrimitive.title = \"Primitive\";\r\n\r\n\tLGraphGeometryPrimitive.VALID = { \"CUBE\":1, \"PLANE\":2, \"CYLINDER\":3, \"SPHERE\":4, \"CIRCLE\":5, \"HEMISPHERE\":6, \"ICOSAHEDRON\":7, \"CONE\":8, \"QUAD\":9 };\r\n\tLGraphGeometryPrimitive.widgets_info = {\r\n\t\ttype: { widget: \"combo\", values: LGraphGeometryPrimitive.VALID }\r\n\t};\r\n\r\n\tLGraphGeometryPrimitive.prototype.onExecute = function() {\r\n\r\n\t\tif( !this.isOutputConnected(0) )\r\n\t\t\treturn;\r\n\r\n\t\tvar size = this.getInputOrProperty(\"size\");\r\n\r\n\t\t//update\r\n\t\tif( this.last_info.type != this.properties.type || this.last_info.size != size || this.last_info.subdivisions != this.properties.subdivisions )\r\n\t\t\tthis.updateMesh( this.properties.type, size, this.properties.subdivisions );\r\n\r\n\t\tthis.setOutputData(0,this._mesh);\r\n\t}\r\n\r\n\tLGraphGeometryPrimitive.prototype.updateMesh = function(type, size, subdivisions)\r\n\t{\r\n\t\tsubdivisions = Math.max(0,subdivisions)|0;\r\n\r\n\t\tswitch (type)\r\n\t\t{\r\n\t\t\tcase 1: //CUBE: \r\n\t\t\t\tthis._mesh = GL.Mesh.cube({size: size, normals:true,coords:true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2: //PLANE:\r\n\t\t\t\tthis._mesh = GL.Mesh.plane({size: size, xz: true, detail: subdivisions, normals:true,coords:true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3: //CYLINDER:\r\n\t\t\t\tthis._mesh = GL.Mesh.cylinder({size: size, subdivisions: subdivisions, normals:true,coords:true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 4: //SPHERE:\r\n\t\t\t\tthis._mesh = GL.Mesh.sphere({size: size, \"long\": subdivisions, lat: subdivisions, normals:true,coords:true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 5: //CIRCLE:\r\n\t\t\t\tthis._mesh = GL.Mesh.circle({size: size, slices: subdivisions, normals:true, coords:true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 6: //HEMISPHERE:\r\n\t\t\t\tthis._mesh = GL.Mesh.sphere({size: size, \"long\": subdivisions, lat: subdivisions, normals:true, coords:true, hemi: true});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 7: //ICOSAHEDRON:\r\n\t\t\t\tthis._mesh = GL.Mesh.icosahedron({size: size, subdivisions:subdivisions });\r\n\t\t\t\tbreak;\r\n\t\t\tcase 8: //CONE:\r\n\t\t\t\tthis._mesh = GL.Mesh.cone({radius: size, height: size, subdivisions:subdivisions });\r\n\t\t\t\tbreak;\r\n\t\t\tcase 9: //QUAD:\r\n\t\t\t\tthis._mesh = GL.Mesh.plane({size: size, xz: false, detail: subdivisions, normals:true, coords:true });\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tthis.last_info.type = type;\r\n\t\tthis.last_info.size = size;\r\n\t\tthis.last_info.subdivisions = subdivisions;\r\n\t\tthis._mesh.version = this.version++;\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/mesh_primitive\", LGraphGeometryPrimitive );\r\n\r\n\r\n\tfunction LGraphRenderPoints() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addInput(\"mat4\", \"mat4\");\r\n\t\tthis.addInput(\"tex\", \"texture\");\r\n\t\tthis.properties = {\r\n\t\t\tenabled: true,\r\n\t\t\tpoint_size: 0.1,\r\n\t\t\tfixed_size: false,\r\n\t\t\tadditive: true,\r\n\t\t\tcolor: [1,1,1],\r\n\t\t\topacity: 1\r\n\t\t};\r\n\r\n\t\tthis.color = vec4.create([1,1,1,1]);\r\n\r\n\t\tthis.uniforms = {\r\n\t\t\tu_point_size: 1,\r\n\t\t\tu_perspective: 1,\r\n\t\t\tu_point_perspective: 1,\r\n\t\t\tu_color: this.color\r\n\t\t};\r\n\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.mesh = null;\r\n\t}\r\n\r\n\tLGraphRenderPoints.title = \"renderPoints\";\r\n\tLGraphRenderPoints.desc = \"render points with a texture\";\r\n\r\n\tLGraphRenderPoints.widgets_info = {\r\n\t\tcolor: { widget: \"color\" }\r\n\t};\r\n\r\n\tLGraphRenderPoints.prototype.updateMesh = function(geometry)\r\n\t{\r\n\t\tvar buffer = this.buffer;\r\n\t\tif(!this.buffer || !this.buffer.data || this.buffer.data.length != geometry.vertices.length)\r\n\t\t\tthis.buffer = new GL.Buffer( GL.ARRAY_BUFFER, geometry.vertices,3,GL.DYNAMIC_DRAW);\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.buffer.data.set( geometry.vertices );\r\n\t\t\tthis.buffer.upload(GL.DYNAMIC_DRAW);\r\n\t\t}\r\n\r\n\t\tif(!this.mesh)\r\n\t\t\tthis.mesh = new GL.Mesh();\r\n\r\n\t\tthis.mesh.addBuffer(\"vertices\",this.buffer);\r\n\t\tthis.geometry_id = this.mesh.id = geometry._id;\r\n\t\tthis.version = this.mesh.version = geometry._version;\r\n\t}\r\n\r\n\tLGraphRenderPoints.prototype.onExecute = function() {\r\n\r\n\t\tif(!this.properties.enabled)\r\n\t\t\treturn;\r\n\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\t\tif(this.version != geometry._version || this.geometry_id != geometry._id )\r\n\t\t\tthis.updateMesh( geometry );\r\n\r\n\t\tif(!LiteGraph.LGraphRender.onRequestCameraMatrices)\r\n\t\t{\r\n\t\t\tconsole.warn(\"cannot render geometry, LiteGraph.onRequestCameraMatrices is null, remember to fill this with a callback(view_matrix, projection_matrix,viewprojection_matrix) to use 3D rendering from the graph\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tLiteGraph.LGraphRender.onRequestCameraMatrices( view_matrix, projection_matrix,viewprojection_matrix );\r\n\t\tvar shader = null;\r\n\r\n\t\tvar texture = this.getInputData(2);\r\n\t\t\r\n\t\tif(texture)\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"textured_points\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"textured_points\"] = new GL.Shader( LGraphRenderPoints.vertex_shader_code, LGraphRenderPoints.fragment_shader_code, { USE_TEXTURED_POINTS:\"\" });\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"points\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"points\"] = new GL.Shader( LGraphRenderPoints.vertex_shader_code, LGraphRenderPoints.fragment_shader_code, { USE_POINTS: \"\" });\r\n\t\t}\r\n\r\n\t\tthis.color.set( this.properties.color );\r\n\t\tthis.color[3] = this.properties.opacity;\r\n\r\n\t\tvar m = this.getInputData(1);\r\n\t\tif(m)\r\n\t\t\tmodel_matrix.set(m);\r\n\t\telse\r\n\t\t\tmat4.identity( model_matrix );\r\n\r\n\t\tthis.uniforms.u_point_size = this.properties.point_size;\r\n\t\tthis.uniforms.u_point_perspective = this.properties.fixed_size ? 0 : 1;\r\n\t\tthis.uniforms.u_perspective = gl.viewport_data[3] * projection_matrix[5];\r\n\r\n\t\tshader.uniforms( global_uniforms );\r\n\t\tshader.uniforms( this.uniforms );\r\n\r\n\t\tif(this.properties.opacity >= 1)\r\n\t\t\tgl.disable( gl.BLEND );\r\n\t\telse\r\n\t\t\tgl.enable( gl.BLEND );\r\n\r\n\t\tgl.enable( gl.DEPTH_TEST );\r\n\t\tif( this.properties.additive )\r\n\t\t{\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\r\n\t\t\tgl.depthMask( false );\r\n\t\t}\r\n\t\telse\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA );\r\n\r\n\t\tshader.draw( this.mesh, GL.POINTS );\r\n\r\n\t\tgl.disable( gl.BLEND );\r\n\t\tgl.depthMask( true );\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/render_points\", LGraphRenderPoints );\r\n\r\n\tLGraphRenderPoints.vertex_shader_code = '\\\r\n\t\tprecision mediump float;\\n\\\r\n\t\tattribute vec3 a_vertex;\\n\\\r\n\t\tvarying vec3 v_vertex;\\n\\\r\n\t\tattribute vec3 a_normal;\\n\\\r\n\t\tvarying vec3 v_normal;\\n\\\r\n\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\tattribute vec4 a_color;\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tattribute vec2 a_coord;\\n\\\r\n\t\tvarying vec2 v_coord;\\n\\\r\n\t\t#ifdef USE_SIZE\\n\\\r\n\t\t\tattribute float a_extra;\\n\\\r\n\t\t#endif\\n\\\r\n\t\t#ifdef USE_INSTANCING\\n\\\r\n\t\t\tattribute mat4 u_model;\\n\\\r\n\t\t#else\\n\\\r\n\t\t\tuniform mat4 u_model;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tuniform mat4 u_viewprojection;\\n\\\r\n\t\tuniform float u_point_size;\\n\\\r\n\t\tuniform float u_perspective;\\n\\\r\n\t\tuniform float u_point_perspective;\\n\\\r\n\t\tfloat computePointSize(float radius, float w)\\n\\\r\n\t\t{\\n\\\r\n\t\t\tif(radius < 0.0)\\n\\\r\n\t\t\t\treturn -radius;\\n\\\r\n\t\t\treturn u_perspective * radius / w;\\n\\\r\n\t\t}\\n\\\r\n\t\tvoid main() {\\n\\\r\n\t\t\tv_coord = a_coord;\\n\\\r\n\t\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\t\tv_color = a_color;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tv_vertex = ( u_model * vec4( a_vertex, 1.0 )).xyz;\\n\\\r\n\t\t\tv_normal = ( u_model * vec4( a_normal, 0.0 )).xyz;\\n\\\r\n\t\t\tgl_Position = u_viewprojection * vec4(v_vertex,1.0);\\n\\\r\n\t\t\tgl_PointSize = u_point_size;\\n\\\r\n\t\t\t#ifdef USE_SIZE\\n\\\r\n\t\t\t\tgl_PointSize = a_extra;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tif(u_point_perspective != 0.0)\\n\\\r\n\t\t\t\tgl_PointSize = computePointSize( gl_PointSize, gl_Position.w );\\n\\\r\n\t\t}\\\r\n\t';\r\n\r\n\tLGraphRenderPoints.fragment_shader_code = '\\\r\n\t\tprecision mediump float;\\n\\\r\n\t\tuniform vec4 u_color;\\n\\\r\n\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tvarying vec2 v_coord;\\n\\\r\n\t\tuniform sampler2D u_texture;\\n\\\r\n\t\tvoid main() {\\n\\\r\n\t\t\tvec4 color = u_color;\\n\\\r\n\t\t\t#ifdef USE_TEXTURED_POINTS\\n\\\r\n\t\t\t\tcolor *= texture2D(u_texture, gl_PointCoord.xy);\\n\\\r\n\t\t\t#else\\n\\\r\n\t\t\t\t#ifdef USE_TEXTURE\\n\\\r\n\t\t\t\t color *= texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\t if(color.a < 0.1)\\n\\\r\n\t\t\t\t\tdiscard;\\n\\\r\n\t\t\t\t#endif\\n\\\r\n\t\t\t\t#ifdef USE_POINTS\\n\\\r\n\t\t\t\t\tfloat dist = length( gl_PointCoord.xy - vec2(0.5) );\\n\\\r\n\t\t\t\t\tif( dist > 0.45 )\\n\\\r\n\t\t\t\t\t\tdiscard;\\n\\\r\n\t\t\t\t#endif\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\t\tcolor *= v_color;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tgl_FragColor = color;\\n\\\r\n\t\t}\\\r\n\t';\r\n\r\n\t//based on https://inconvergent.net/2019/depth-of-field/\r\n\t/*\r\n\tfunction LGraphRenderGeometryDOF() {\r\n\t\tthis.addInput(\"in\", \"geometry\");\r\n\t\tthis.addInput(\"mat4\", \"mat4\");\r\n\t\tthis.addInput(\"tex\", \"texture\");\r\n\t\tthis.properties = {\r\n\t\t\tenabled: true,\r\n\t\t\tlines: true,\r\n\t\t\tpoint_size: 0.1,\r\n\t\t\tfixed_size: false,\r\n\t\t\tadditive: true,\r\n\t\t\tcolor: [1,1,1],\r\n\t\t\topacity: 1\r\n\t\t};\r\n\r\n\t\tthis.color = vec4.create([1,1,1,1]);\r\n\r\n\t\tthis.uniforms = {\r\n\t\t\tu_point_size: 1,\r\n\t\t\tu_perspective: 1,\r\n\t\t\tu_point_perspective: 1,\r\n\t\t\tu_color: this.color\r\n\t\t};\r\n\r\n\t\tthis.geometry_id = -1;\r\n\t\tthis.version = -1;\r\n\t\tthis.mesh = null;\r\n\t}\r\n\r\n\tLGraphRenderGeometryDOF.widgets_info = {\r\n\t\tcolor: { widget: \"color\" }\r\n\t};\r\n\r\n\tLGraphRenderGeometryDOF.prototype.updateMesh = function(geometry)\r\n\t{\r\n\t\tvar buffer = this.buffer;\r\n\t\tif(!this.buffer || this.buffer.data.length != geometry.vertices.length)\r\n\t\t\tthis.buffer = new GL.Buffer( GL.ARRAY_BUFFER, geometry.vertices,3,GL.DYNAMIC_DRAW);\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.buffer.data.set( geometry.vertices );\r\n\t\t\tthis.buffer.upload(GL.DYNAMIC_DRAW);\r\n\t\t}\r\n\r\n\t\tif(!this.mesh)\r\n\t\t\tthis.mesh = new GL.Mesh();\r\n\r\n\t\tthis.mesh.addBuffer(\"vertices\",this.buffer);\r\n\t\tthis.geometry_id = this.mesh.id = geometry._id;\r\n\t\tthis.version = this.mesh.version = geometry._version;\r\n\t}\r\n\r\n\tLGraphRenderGeometryDOF.prototype.onExecute = function() {\r\n\r\n\t\tif(!this.properties.enabled)\r\n\t\t\treturn;\r\n\r\n\t\tvar geometry = this.getInputData(0);\r\n\t\tif(!geometry)\r\n\t\t\treturn;\r\n\t\tif(this.version != geometry._version || this.geometry_id != geometry._id )\r\n\t\t\tthis.updateMesh( geometry );\r\n\r\n\t\tif(!LiteGraph.LGraphRender.onRequestCameraMatrices)\r\n\t\t{\r\n\t\t\tconsole.warn(\"cannot render geometry, LiteGraph.onRequestCameraMatrices is null, remember to fill this with a callback(view_matrix, projection_matrix,viewprojection_matrix) to use 3D rendering from the graph\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tLiteGraph.LGraphRender.onRequestCameraMatrices( view_matrix, projection_matrix,viewprojection_matrix );\r\n\t\tvar shader = null;\r\n\r\n\t\tvar texture = this.getInputData(2);\r\n\t\t\r\n\t\tif(texture)\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"textured_points\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"textured_points\"] = new GL.Shader( LGraphRenderGeometryDOF.vertex_shader_code, LGraphRenderGeometryDOF.fragment_shader_code, { USE_TEXTURED_POINTS:\"\" });\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tshader = gl.shaders[\"points\"];\r\n\t\t\tif(!shader)\r\n\t\t\t\tshader = gl.shaders[\"points\"] = new GL.Shader( LGraphRenderGeometryDOF.vertex_shader_code, LGraphRenderGeometryDOF.fragment_shader_code, { USE_POINTS: \"\" });\r\n\t\t}\r\n\r\n\t\tthis.color.set( this.properties.color );\r\n\t\tthis.color[3] = this.properties.opacity;\r\n\r\n\t\tvar m = this.getInputData(1);\r\n\t\tif(m)\r\n\t\t\tmodel_matrix.set(m);\r\n\t\telse\r\n\t\t\tmat4.identity( model_matrix );\r\n\r\n\t\tthis.uniforms.u_point_size = this.properties.point_size;\r\n\t\tthis.uniforms.u_point_perspective = this.properties.fixed_size ? 0 : 1;\r\n\t\tthis.uniforms.u_perspective = gl.viewport_data[3] * projection_matrix[5];\r\n\r\n\t\tshader.uniforms( global_uniforms );\r\n\t\tshader.uniforms( this.uniforms );\r\n\r\n\t\tif(this.properties.opacity >= 1)\r\n\t\t\tgl.disable( gl.BLEND );\r\n\t\telse\r\n\t\t\tgl.enable( gl.BLEND );\r\n\r\n\t\tgl.enable( gl.DEPTH_TEST );\r\n\t\tif( this.properties.additive )\r\n\t\t{\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\r\n\t\t\tgl.depthMask( false );\r\n\t\t}\r\n\t\telse\r\n\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA );\r\n\r\n\t\tshader.draw( this.mesh, GL.POINTS );\r\n\r\n\t\tgl.disable( gl.BLEND );\r\n\t\tgl.depthMask( true );\r\n\t}\r\n\r\n\tLiteGraph.registerNodeType( \"geometry/render_dof\", LGraphRenderGeometryDOF );\r\n\r\n\tLGraphRenderGeometryDOF.vertex_shader_code = '\\\r\n\t\tprecision mediump float;\\n\\\r\n\t\tattribute vec3 a_vertex;\\n\\\r\n\t\tvarying vec3 v_vertex;\\n\\\r\n\t\tattribute vec3 a_normal;\\n\\\r\n\t\tvarying vec3 v_normal;\\n\\\r\n\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\tattribute vec4 a_color;\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tattribute vec2 a_coord;\\n\\\r\n\t\tvarying vec2 v_coord;\\n\\\r\n\t\t#ifdef USE_SIZE\\n\\\r\n\t\t\tattribute float a_extra;\\n\\\r\n\t\t#endif\\n\\\r\n\t\t#ifdef USE_INSTANCING\\n\\\r\n\t\t\tattribute mat4 u_model;\\n\\\r\n\t\t#else\\n\\\r\n\t\t\tuniform mat4 u_model;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tuniform mat4 u_viewprojection;\\n\\\r\n\t\tuniform float u_point_size;\\n\\\r\n\t\tuniform float u_perspective;\\n\\\r\n\t\tuniform float u_point_perspective;\\n\\\r\n\t\tfloat computePointSize(float radius, float w)\\n\\\r\n\t\t{\\n\\\r\n\t\t\tif(radius < 0.0)\\n\\\r\n\t\t\t\treturn -radius;\\n\\\r\n\t\t\treturn u_perspective * radius / w;\\n\\\r\n\t\t}\\n\\\r\n\t\tvoid main() {\\n\\\r\n\t\t\tv_coord = a_coord;\\n\\\r\n\t\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\t\tv_color = a_color;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tv_vertex = ( u_model * vec4( a_vertex, 1.0 )).xyz;\\n\\\r\n\t\t\tv_normal = ( u_model * vec4( a_normal, 0.0 )).xyz;\\n\\\r\n\t\t\tgl_Position = u_viewprojection * vec4(v_vertex,1.0);\\n\\\r\n\t\t\tgl_PointSize = u_point_size;\\n\\\r\n\t\t\t#ifdef USE_SIZE\\n\\\r\n\t\t\t\tgl_PointSize = a_extra;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tif(u_point_perspective != 0.0)\\n\\\r\n\t\t\t\tgl_PointSize = computePointSize( gl_PointSize, gl_Position.w );\\n\\\r\n\t\t}\\\r\n\t';\r\n\r\n\tLGraphRenderGeometryDOF.fragment_shader_code = '\\\r\n\t\tprecision mediump float;\\n\\\r\n\t\tuniform vec4 u_color;\\n\\\r\n\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t#endif\\n\\\r\n\t\tvarying vec2 v_coord;\\n\\\r\n\t\tuniform sampler2D u_texture;\\n\\\r\n\t\tvoid main() {\\n\\\r\n\t\t\tvec4 color = u_color;\\n\\\r\n\t\t\t#ifdef USE_TEXTURED_POINTS\\n\\\r\n\t\t\t\tcolor *= texture2D(u_texture, gl_PointCoord.xy);\\n\\\r\n\t\t\t#else\\n\\\r\n\t\t\t\t#ifdef USE_TEXTURE\\n\\\r\n\t\t\t\t color *= texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\t if(color.a < 0.1)\\n\\\r\n\t\t\t\t\tdiscard;\\n\\\r\n\t\t\t\t#endif\\n\\\r\n\t\t\t\t#ifdef USE_POINTS\\n\\\r\n\t\t\t\t\tfloat dist = length( gl_PointCoord.xy - vec2(0.5) );\\n\\\r\n\t\t\t\t\tif( dist > 0.45 )\\n\\\r\n\t\t\t\t\t\tdiscard;\\n\\\r\n\t\t\t\t#endif\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\t#ifdef USE_COLOR\\n\\\r\n\t\t\t\tcolor *= v_color;\\n\\\r\n\t\t\t#endif\\n\\\r\n\t\t\tgl_FragColor = color;\\n\\\r\n\t\t}\\\r\n\t';\r\n\t*/\r\n\r\n\r\n\r\n})(this);\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n var LGraphTexture = global.LGraphTexture;\r\n\r\n //Works with Litegl.js to create WebGL nodes\r\n if (typeof GL != \"undefined\") {\r\n // Texture Lens *****************************************\r\n function LGraphFXLens() {\r\n this.addInput(\"Texture\", \"Texture\");\r\n this.addInput(\"Aberration\", \"number\");\r\n this.addInput(\"Distortion\", \"number\");\r\n this.addInput(\"Blur\", \"number\");\r\n this.addOutput(\"Texture\", \"Texture\");\r\n this.properties = {\r\n aberration: 1.0,\r\n distortion: 1.0,\r\n blur: 1.0,\r\n precision: LGraphTexture.DEFAULT\r\n };\r\n\r\n if (!LGraphFXLens._shader) {\r\n LGraphFXLens._shader = new GL.Shader(\r\n GL.Shader.SCREEN_VERTEX_SHADER,\r\n LGraphFXLens.pixel_shader\r\n );\r\n LGraphFXLens._texture = new GL.Texture(3, 1, {\r\n format: gl.RGB,\r\n wrap: gl.CLAMP_TO_EDGE,\r\n magFilter: gl.LINEAR,\r\n minFilter: gl.LINEAR,\r\n pixel_data: [255, 0, 0, 0, 255, 0, 0, 0, 255]\r\n });\r\n }\r\n }\r\n\r\n LGraphFXLens.title = \"Lens\";\r\n LGraphFXLens.desc = \"Camera Lens distortion\";\r\n LGraphFXLens.widgets_info = {\r\n precision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\r\n };\r\n\r\n LGraphFXLens.prototype.onExecute = function() {\r\n var tex = this.getInputData(0);\r\n if (this.properties.precision === LGraphTexture.PASS_THROUGH) {\r\n this.setOutputData(0, tex);\r\n return;\r\n }\r\n\r\n if (!tex) {\r\n return;\r\n }\r\n\r\n this._tex = LGraphTexture.getTargetTexture(\r\n tex,\r\n this._tex,\r\n this.properties.precision\r\n );\r\n\r\n var aberration = this.properties.aberration;\r\n if (this.isInputConnected(1)) {\r\n aberration = this.getInputData(1);\r\n this.properties.aberration = aberration;\r\n }\r\n\r\n var distortion = this.properties.distortion;\r\n if (this.isInputConnected(2)) {\r\n distortion = this.getInputData(2);\r\n this.properties.distortion = distortion;\r\n }\r\n\r\n var blur = this.properties.blur;\r\n if (this.isInputConnected(3)) {\r\n blur = this.getInputData(3);\r\n this.properties.blur = blur;\r\n }\r\n\r\n gl.disable(gl.BLEND);\r\n gl.disable(gl.DEPTH_TEST);\r\n var mesh = Mesh.getScreenQuad();\r\n var shader = LGraphFXLens._shader;\r\n //var camera = LS.Renderer._current_camera;\r\n\r\n this._tex.drawTo(function() {\r\n tex.bind(0);\r\n shader\r\n .uniforms({\r\n u_texture: 0,\r\n u_aberration: aberration,\r\n u_distortion: distortion,\r\n u_blur: blur\r\n })\r\n .draw(mesh);\r\n });\r\n\r\n this.setOutputData(0, this._tex);\r\n };\r\n\r\n LGraphFXLens.pixel_shader =\r\n \"precision highp float;\\n\\\r\n\t\t\tprecision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform vec2 u_camera_planes;\\n\\\r\n\t\t\tuniform float u_aberration;\\n\\\r\n\t\t\tuniform float u_distortion;\\n\\\r\n\t\t\tuniform float u_blur;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec2 coord = v_coord;\\n\\\r\n\t\t\t\tfloat dist = distance(vec2(0.5), coord);\\n\\\r\n\t\t\t\tvec2 dist_coord = coord - vec2(0.5);\\n\\\r\n\t\t\t\tfloat percent = 1.0 + ((0.5 - dist) / 0.5) * u_distortion;\\n\\\r\n\t\t\t\tdist_coord *= percent;\\n\\\r\n\t\t\t\tcoord = dist_coord + vec2(0.5);\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture,coord, u_blur * dist);\\n\\\r\n\t\t\t\tcolor.r = texture2D(u_texture,vec2(0.5) + dist_coord * (1.0+0.01*u_aberration), u_blur * dist ).r;\\n\\\r\n\t\t\t\tcolor.b = texture2D(u_texture,vec2(0.5) + dist_coord * (1.0-0.01*u_aberration), u_blur * dist ).b;\\n\\\r\n\t\t\t\tgl_FragColor = color;\\n\\\r\n\t\t\t}\\n\\\r\n\t\t\t\";\r\n /*\r\n\t\t\tfloat normalized_tunable_sigmoid(float xs, float k)\\n\\\r\n\t\t\t{\\n\\\r\n\t\t\t\txs = xs * 2.0 - 1.0;\\n\\\r\n\t\t\t\tfloat signx = sign(xs);\\n\\\r\n\t\t\t\tfloat absx = abs(xs);\\n\\\r\n\t\t\t\treturn signx * ((-k - 1.0)*absx)/(2.0*(-2.0*k*absx+k-1.0)) + 0.5;\\n\\\r\n\t\t\t}\\n\\\r\n\t\t*/\r\n\r\n LiteGraph.registerNodeType(\"fx/lens\", LGraphFXLens);\r\n global.LGraphFXLens = LGraphFXLens;\r\n\r\n /* not working yet\r\n\tfunction LGraphDepthOfField()\r\n\t{\r\n\t\tthis.addInput(\"Color\",\"Texture\");\r\n\t\tthis.addInput(\"Linear Depth\",\"Texture\");\r\n\t\tthis.addInput(\"Camera\",\"camera\");\r\n\t\tthis.addOutput(\"Texture\",\"Texture\");\r\n\t\tthis.properties = { high_precision: false };\r\n\t}\r\n\r\n\tLGraphDepthOfField.title = \"Depth Of Field\";\r\n\tLGraphDepthOfField.desc = \"Applies a depth of field effect\";\r\n\r\n\tLGraphDepthOfField.prototype.onExecute = function()\r\n\t{\r\n\t\tvar tex = this.getInputData(0);\r\n\t\tvar depth = this.getInputData(1);\r\n\t\tvar camera = this.getInputData(2);\r\n\r\n\t\tif(!tex || !depth || !camera) \r\n\t\t{\r\n\t\t\tthis.setOutputData(0, tex);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar precision = gl.UNSIGNED_BYTE;\r\n\t\tif(this.properties.high_precision)\r\n\t\t\tprecision = gl.half_float_ext ? gl.HALF_FLOAT_OES : gl.FLOAT;\t\t\t\r\n\t\tif(!this._temp_texture || this._temp_texture.type != precision ||\r\n\t\t\tthis._temp_texture.width != tex.width || this._temp_texture.height != tex.height)\r\n\t\t\tthis._temp_texture = new GL.Texture( tex.width, tex.height, { type: precision, format: gl.RGBA, filter: gl.LINEAR });\r\n\r\n\t\tvar shader = LGraphDepthOfField._shader = new GL.Shader( GL.Shader.SCREEN_VERTEX_SHADER, LGraphDepthOfField._pixel_shader );\r\n\r\n\t\tvar screen_mesh = Mesh.getScreenQuad();\r\n\r\n\t\tgl.disable( gl.DEPTH_TEST );\r\n\t\tgl.disable( gl.BLEND );\r\n\r\n\t\tvar camera_position = camera.getEye();\r\n\t\tvar focus_point = camera.getCenter();\r\n\t\tvar distance = vec3.distance( camera_position, focus_point );\r\n\t\tvar far = camera.far;\r\n\t\tvar focus_range = distance * 0.5;\r\n\r\n\t\tthis._temp_texture.drawTo( function() {\r\n\t\t\ttex.bind(0);\r\n\t\t\tdepth.bind(1);\r\n\t\t\tshader.uniforms({u_texture:0, u_depth_texture:1, u_resolution: [1/tex.width, 1/tex.height], u_far: far, u_focus_point: distance, u_focus_scale: focus_range }).draw(screen_mesh);\r\n\t\t});\r\n\r\n\t\tthis.setOutputData(0, this._temp_texture);\r\n\t}\r\n\r\n\t//from http://tuxedolabs.blogspot.com.es/2018/05/bokeh-depth-of-field-in-single-pass.html\r\n\tLGraphDepthOfField._pixel_shader = \"\\n\\\r\n\t\tprecision highp float;\\n\\\r\n\t\tvarying vec2 v_coord;\\n\\\r\n\t\tuniform sampler2D u_texture; //Image to be processed\\n\\\r\n\t\tuniform sampler2D u_depth_texture; //Linear depth, where 1.0 == far plane\\n\\\r\n\t\tuniform vec2 u_iresolution; //The size of a pixel: vec2(1.0/width, 1.0/height)\\n\\\r\n\t\tuniform float u_far; // Far plane\\n\\\r\n\t\tuniform float u_focus_point;\\n\\\r\n\t\tuniform float u_focus_scale;\\n\\\r\n\t\t\\n\\\r\n\t\tconst float GOLDEN_ANGLE = 2.39996323;\\n\\\r\n\t\tconst float MAX_BLUR_SIZE = 20.0;\\n\\\r\n\t\tconst float RAD_SCALE = 0.5; // Smaller = nicer blur, larger = faster\\n\\\r\n\t\t\\n\\\r\n\t\tfloat getBlurSize(float depth, float focusPoint, float focusScale)\\n\\\r\n\t\t{\\n\\\r\n\t\t float coc = clamp((1.0 / focusPoint - 1.0 / depth)*focusScale, -1.0, 1.0);\\n\\\r\n\t\t return abs(coc) * MAX_BLUR_SIZE;\\n\\\r\n\t\t}\\n\\\r\n\t\t\\n\\\r\n\t\tvec3 depthOfField(vec2 texCoord, float focusPoint, float focusScale)\\n\\\r\n\t\t{\\n\\\r\n\t\t float centerDepth = texture2D(u_depth_texture, texCoord).r * u_far;\\n\\\r\n\t\t float centerSize = getBlurSize(centerDepth, focusPoint, focusScale);\\n\\\r\n\t\t vec3 color = texture2D(u_texture, v_coord).rgb;\\n\\\r\n\t\t float tot = 1.0;\\n\\\r\n\t\t\\n\\\r\n\t\t float radius = RAD_SCALE;\\n\\\r\n\t\t for (float ang = 0.0; ang < 100.0; ang += GOLDEN_ANGLE)\\n\\\r\n\t\t {\\n\\\r\n\t\t vec2 tc = texCoord + vec2(cos(ang), sin(ang)) * u_iresolution * radius;\\n\\\r\n\t\t\t\\n\\\r\n\t\t vec3 sampleColor = texture2D(u_texture, tc).rgb;\\n\\\r\n\t\t float sampleDepth = texture2D(u_depth_texture, tc).r * u_far;\\n\\\r\n\t\t float sampleSize = getBlurSize( sampleDepth, focusPoint, focusScale );\\n\\\r\n\t\t if (sampleDepth > centerDepth)\\n\\\r\n\t\t sampleSize = clamp(sampleSize, 0.0, centerSize*2.0);\\n\\\r\n\t\t\t\\n\\\r\n\t\t float m = smoothstep(radius-0.5, radius+0.5, sampleSize);\\n\\\r\n\t\t color += mix(color/tot, sampleColor, m);\\n\\\r\n\t\t tot += 1.0;\\n\\\r\n\t\t radius += RAD_SCALE/radius;\\n\\\r\n\t\t if(radius>=MAX_BLUR_SIZE)\\n\\\r\n\t\t\t return color / tot;\\n\\\r\n\t\t }\\n\\\r\n\t\t return color / tot;\\n\\\r\n\t\t}\\n\\\r\n\t\tvoid main()\\n\\\r\n\t\t{\\n\\\r\n\t\t\tgl_FragColor = vec4( depthOfField( v_coord, u_focus_point, u_focus_scale ), 1.0 );\\n\\\r\n\t\t\t//gl_FragColor = vec4( texture2D(u_depth_texture, v_coord).r );\\n\\\r\n\t\t}\\n\\\r\n\t\t\";\r\n\r\n\tLiteGraph.registerNodeType(\"fx/DOF\", LGraphDepthOfField );\r\n\tglobal.LGraphDepthOfField = LGraphDepthOfField;\r\n\t*/\r\n\r\n //*******************************************************\r\n\r\n function LGraphFXBokeh() {\r\n this.addInput(\"Texture\", \"Texture\");\r\n this.addInput(\"Blurred\", \"Texture\");\r\n this.addInput(\"Mask\", \"Texture\");\r\n this.addInput(\"Threshold\", \"number\");\r\n this.addOutput(\"Texture\", \"Texture\");\r\n this.properties = {\r\n shape: \"\",\r\n size: 10,\r\n alpha: 1.0,\r\n threshold: 1.0,\r\n high_precision: false\r\n };\r\n }\r\n\r\n LGraphFXBokeh.title = \"Bokeh\";\r\n LGraphFXBokeh.desc = \"applies an Bokeh effect\";\r\n\r\n LGraphFXBokeh.widgets_info = { shape: { widget: \"texture\" } };\r\n\r\n LGraphFXBokeh.prototype.onExecute = function() {\r\n var tex = this.getInputData(0);\r\n var blurred_tex = this.getInputData(1);\r\n var mask_tex = this.getInputData(2);\r\n if (!tex || !mask_tex || !this.properties.shape) {\r\n this.setOutputData(0, tex);\r\n return;\r\n }\r\n\r\n if (!blurred_tex) {\r\n blurred_tex = tex;\r\n }\r\n\r\n var shape_tex = LGraphTexture.getTexture(this.properties.shape);\r\n if (!shape_tex) {\r\n return;\r\n }\r\n\r\n var threshold = this.properties.threshold;\r\n if (this.isInputConnected(3)) {\r\n threshold = this.getInputData(3);\r\n this.properties.threshold = threshold;\r\n }\r\n\r\n var precision = gl.UNSIGNED_BYTE;\r\n if (this.properties.high_precision) {\r\n precision = gl.half_float_ext ? gl.HALF_FLOAT_OES : gl.FLOAT;\r\n }\r\n if (\r\n !this._temp_texture ||\r\n this._temp_texture.type != precision ||\r\n this._temp_texture.width != tex.width ||\r\n this._temp_texture.height != tex.height\r\n ) {\r\n this._temp_texture = new GL.Texture(tex.width, tex.height, {\r\n type: precision,\r\n format: gl.RGBA,\r\n filter: gl.LINEAR\r\n });\r\n }\r\n\r\n //iterations\r\n var size = this.properties.size;\r\n\r\n var first_shader = LGraphFXBokeh._first_shader;\r\n if (!first_shader) {\r\n first_shader = LGraphFXBokeh._first_shader = new GL.Shader(\r\n Shader.SCREEN_VERTEX_SHADER,\r\n LGraphFXBokeh._first_pixel_shader\r\n );\r\n }\r\n\r\n var second_shader = LGraphFXBokeh._second_shader;\r\n if (!second_shader) {\r\n second_shader = LGraphFXBokeh._second_shader = new GL.Shader(\r\n LGraphFXBokeh._second_vertex_shader,\r\n LGraphFXBokeh._second_pixel_shader\r\n );\r\n }\r\n\r\n var points_mesh = this._points_mesh;\r\n if (\r\n !points_mesh ||\r\n points_mesh._width != tex.width ||\r\n points_mesh._height != tex.height ||\r\n points_mesh._spacing != 2\r\n ) {\r\n points_mesh = this.createPointsMesh(tex.width, tex.height, 2);\r\n }\r\n\r\n var screen_mesh = Mesh.getScreenQuad();\r\n\r\n var point_size = this.properties.size;\r\n var min_light = this.properties.min_light;\r\n var alpha = this.properties.alpha;\r\n\r\n gl.disable(gl.DEPTH_TEST);\r\n gl.disable(gl.BLEND);\r\n\r\n this._temp_texture.drawTo(function() {\r\n tex.bind(0);\r\n blurred_tex.bind(1);\r\n mask_tex.bind(2);\r\n first_shader\r\n .uniforms({\r\n u_texture: 0,\r\n u_texture_blur: 1,\r\n u_mask: 2,\r\n u_texsize: [tex.width, tex.height]\r\n })\r\n .draw(screen_mesh);\r\n });\r\n\r\n this._temp_texture.drawTo(function() {\r\n //clear because we use blending\r\n //gl.clearColor(0.0,0.0,0.0,1.0);\r\n //gl.clear( gl.COLOR_BUFFER_BIT );\r\n gl.enable(gl.BLEND);\r\n gl.blendFunc(gl.ONE, gl.ONE);\r\n\r\n tex.bind(0);\r\n shape_tex.bind(3);\r\n second_shader\r\n .uniforms({\r\n u_texture: 0,\r\n u_mask: 2,\r\n u_shape: 3,\r\n u_alpha: alpha,\r\n u_threshold: threshold,\r\n u_pointSize: point_size,\r\n u_itexsize: [1.0 / tex.width, 1.0 / tex.height]\r\n })\r\n .draw(points_mesh, gl.POINTS);\r\n });\r\n\r\n this.setOutputData(0, this._temp_texture);\r\n };\r\n\r\n LGraphFXBokeh.prototype.createPointsMesh = function(\r\n width,\r\n height,\r\n spacing\r\n ) {\r\n var nwidth = Math.round(width / spacing);\r\n var nheight = Math.round(height / spacing);\r\n\r\n var vertices = new Float32Array(nwidth * nheight * 2);\r\n\r\n var ny = -1;\r\n var dx = (2 / width) * spacing;\r\n var dy = (2 / height) * spacing;\r\n for (var y = 0; y < nheight; ++y) {\r\n var nx = -1;\r\n for (var x = 0; x < nwidth; ++x) {\r\n var pos = y * nwidth * 2 + x * 2;\r\n vertices[pos] = nx;\r\n vertices[pos + 1] = ny;\r\n nx += dx;\r\n }\r\n ny += dy;\r\n }\r\n\r\n this._points_mesh = GL.Mesh.load({ vertices2D: vertices });\r\n this._points_mesh._width = width;\r\n this._points_mesh._height = height;\r\n this._points_mesh._spacing = spacing;\r\n\r\n return this._points_mesh;\r\n };\r\n\r\n /*\r\n\tLGraphTextureBokeh._pixel_shader = \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 a_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform sampler2D u_shape;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D( u_texture, gl_PointCoord );\\n\\\r\n\t\t\t\tcolor *= v_color * u_alpha;\\n\\\r\n\t\t\t\tgl_FragColor = color;\\n\\\r\n\t\t\t}\\n\";\r\n\t*/\r\n\r\n LGraphFXBokeh._first_pixel_shader =\r\n \"precision highp float;\\n\\\r\n\t\t\tprecision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform sampler2D u_texture_blur;\\n\\\r\n\t\t\tuniform sampler2D u_mask;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tvec4 blurred_color = texture2D(u_texture_blur, v_coord);\\n\\\r\n\t\t\t\tfloat mask = texture2D(u_mask, v_coord).x;\\n\\\r\n\t\t\t gl_FragColor = mix(color, blurred_color, mask);\\n\\\r\n\t\t\t}\\n\\\r\n\t\t\t\";\r\n\r\n LGraphFXBokeh._second_vertex_shader =\r\n \"precision highp float;\\n\\\r\n\t\t\tattribute vec2 a_vertex2D;\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform sampler2D u_mask;\\n\\\r\n\t\t\tuniform vec2 u_itexsize;\\n\\\r\n\t\t\tuniform float u_pointSize;\\n\\\r\n\t\t\tuniform float u_threshold;\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec2 coord = a_vertex2D * 0.5 + 0.5;\\n\\\r\n\t\t\t\tv_color = texture2D( u_texture, coord );\\n\\\r\n\t\t\t\tv_color += texture2D( u_texture, coord + vec2(u_itexsize.x, 0.0) );\\n\\\r\n\t\t\t\tv_color += texture2D( u_texture, coord + vec2(0.0, u_itexsize.y));\\n\\\r\n\t\t\t\tv_color += texture2D( u_texture, coord + u_itexsize);\\n\\\r\n\t\t\t\tv_color *= 0.25;\\n\\\r\n\t\t\t\tfloat mask = texture2D(u_mask, coord).x;\\n\\\r\n\t\t\t\tfloat luminance = length(v_color) * mask;\\n\\\r\n\t\t\t\t/*luminance /= (u_pointSize*u_pointSize)*0.01 */;\\n\\\r\n\t\t\t\tluminance -= u_threshold;\\n\\\r\n\t\t\t\tif(luminance < 0.0)\\n\\\r\n\t\t\t\t{\\n\\\r\n\t\t\t\t\tgl_Position.x = -100.0;\\n\\\r\n\t\t\t\t\treturn;\\n\\\r\n\t\t\t\t}\\n\\\r\n\t\t\t\tgl_PointSize = u_pointSize;\\n\\\r\n\t\t\t\tgl_Position = vec4(a_vertex2D,0.0,1.0);\\n\\\r\n\t\t\t}\\n\\\r\n\t\t\t\";\r\n\r\n LGraphFXBokeh._second_pixel_shader =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec4 v_color;\\n\\\r\n\t\t\tuniform sampler2D u_shape;\\n\\\r\n\t\t\tuniform float u_alpha;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D( u_shape, gl_PointCoord );\\n\\\r\n\t\t\t\tcolor *= v_color * u_alpha;\\n\\\r\n\t\t\t\tgl_FragColor = color;\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LiteGraph.registerNodeType(\"fx/bokeh\", LGraphFXBokeh);\r\n global.LGraphFXBokeh = LGraphFXBokeh;\r\n\r\n //************************************************\r\n\r\n function LGraphFXGeneric() {\r\n this.addInput(\"Texture\", \"Texture\");\r\n this.addInput(\"value1\", \"number\");\r\n this.addInput(\"value2\", \"number\");\r\n this.addOutput(\"Texture\", \"Texture\");\r\n this.properties = {\r\n fx: \"halftone\",\r\n value1: 1,\r\n value2: 1,\r\n precision: LGraphTexture.DEFAULT\r\n };\r\n }\r\n\r\n LGraphFXGeneric.title = \"FX\";\r\n LGraphFXGeneric.desc = \"applies an FX from a list\";\r\n\r\n LGraphFXGeneric.widgets_info = {\r\n fx: {\r\n widget: \"combo\",\r\n values: [\"halftone\", \"pixelate\", \"lowpalette\", \"noise\", \"gamma\"]\r\n },\r\n precision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\r\n };\r\n LGraphFXGeneric.shaders = {};\r\n\r\n LGraphFXGeneric.prototype.onExecute = function() {\r\n if (!this.isOutputConnected(0)) {\r\n return;\r\n } //saves work\r\n\r\n var tex = this.getInputData(0);\r\n if (this.properties.precision === LGraphTexture.PASS_THROUGH) {\r\n this.setOutputData(0, tex);\r\n return;\r\n }\r\n\r\n if (!tex) {\r\n return;\r\n }\r\n\r\n this._tex = LGraphTexture.getTargetTexture(\r\n tex,\r\n this._tex,\r\n this.properties.precision\r\n );\r\n\r\n //iterations\r\n var value1 = this.properties.value1;\r\n if (this.isInputConnected(1)) {\r\n value1 = this.getInputData(1);\r\n this.properties.value1 = value1;\r\n }\r\n\r\n var value2 = this.properties.value2;\r\n if (this.isInputConnected(2)) {\r\n value2 = this.getInputData(2);\r\n this.properties.value2 = value2;\r\n }\r\n\r\n var fx = this.properties.fx;\r\n var shader = LGraphFXGeneric.shaders[fx];\r\n if (!shader) {\r\n var pixel_shader_code = LGraphFXGeneric[\"pixel_shader_\" + fx];\r\n if (!pixel_shader_code) {\r\n return;\r\n }\r\n\r\n shader = LGraphFXGeneric.shaders[fx] = new GL.Shader(\r\n Shader.SCREEN_VERTEX_SHADER,\r\n pixel_shader_code\r\n );\r\n }\r\n\r\n gl.disable(gl.BLEND);\r\n gl.disable(gl.DEPTH_TEST);\r\n var mesh = Mesh.getScreenQuad();\r\n var camera = global.LS ? LS.Renderer._current_camera : null;\r\n var camera_planes;\r\n if (camera) {\r\n camera_planes = [\r\n LS.Renderer._current_camera.near,\r\n LS.Renderer._current_camera.far\r\n ];\r\n } else {\r\n camera_planes = [1, 100];\r\n }\r\n\r\n var noise = null;\r\n if (fx == \"noise\") {\r\n noise = LGraphTexture.getNoiseTexture();\r\n }\r\n\r\n this._tex.drawTo(function() {\r\n tex.bind(0);\r\n if (fx == \"noise\") {\r\n noise.bind(1);\r\n }\r\n\r\n shader\r\n .uniforms({\r\n u_texture: 0,\r\n u_noise: 1,\r\n u_size: [tex.width, tex.height],\r\n u_rand: [Math.random(), Math.random()],\r\n u_value1: value1,\r\n u_value2: value2,\r\n u_camera_planes: camera_planes\r\n })\r\n .draw(mesh);\r\n });\r\n\r\n this.setOutputData(0, this._tex);\r\n };\r\n\r\n LGraphFXGeneric.pixel_shader_halftone =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform vec2 u_camera_planes;\\n\\\r\n\t\t\tuniform vec2 u_size;\\n\\\r\n\t\t\tuniform float u_value1;\\n\\\r\n\t\t\tuniform float u_value2;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tfloat pattern() {\\n\\\r\n\t\t\t\tfloat s = sin(u_value1 * 3.1415), c = cos(u_value1 * 3.1415);\\n\\\r\n\t\t\t\tvec2 tex = v_coord * u_size.xy;\\n\\\r\n\t\t\t\tvec2 point = vec2(\\n\\\r\n\t\t\t\t c * tex.x - s * tex.y ,\\n\\\r\n\t\t\t\t s * tex.x + c * tex.y \\n\\\r\n\t\t\t\t) * u_value2;\\n\\\r\n\t\t\t\treturn (sin(point.x) * sin(point.y)) * 4.0;\\n\\\r\n\t\t\t}\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tfloat average = (color.r + color.g + color.b) / 3.0;\\n\\\r\n\t\t\t\tgl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a);\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LGraphFXGeneric.pixel_shader_pixelate =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform vec2 u_camera_planes;\\n\\\r\n\t\t\tuniform vec2 u_size;\\n\\\r\n\t\t\tuniform float u_value1;\\n\\\r\n\t\t\tuniform float u_value2;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec2 coord = vec2( floor(v_coord.x * u_value1) / u_value1, floor(v_coord.y * u_value2) / u_value2 );\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, coord);\\n\\\r\n\t\t\t\tgl_FragColor = color;\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LGraphFXGeneric.pixel_shader_lowpalette =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform vec2 u_camera_planes;\\n\\\r\n\t\t\tuniform vec2 u_size;\\n\\\r\n\t\t\tuniform float u_value1;\\n\\\r\n\t\t\tuniform float u_value2;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tgl_FragColor = floor(color * u_value1) / u_value1;\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LGraphFXGeneric.pixel_shader_noise =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform sampler2D u_noise;\\n\\\r\n\t\t\tuniform vec2 u_size;\\n\\\r\n\t\t\tuniform float u_value1;\\n\\\r\n\t\t\tuniform float u_value2;\\n\\\r\n\t\t\tuniform vec2 u_rand;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tvec3 noise = texture2D(u_noise, v_coord * vec2(u_size.x / 512.0, u_size.y / 512.0) + u_rand).xyz - vec3(0.5);\\n\\\r\n\t\t\t\tgl_FragColor = vec4( color.xyz + noise * u_value1, color.a );\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LGraphFXGeneric.pixel_shader_gamma =\r\n \"precision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform float u_value1;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tfloat gamma = 1.0 / u_value1;\\n\\\r\n\t\t\t\tgl_FragColor = vec4( pow( color.xyz, vec3(gamma) ), color.a );\\n\\\r\n\t\t\t}\\n\";\r\n\r\n LiteGraph.registerNodeType(\"fx/generic\", LGraphFXGeneric);\r\n global.LGraphFXGeneric = LGraphFXGeneric;\r\n\r\n // Vigneting ************************************\r\n\r\n function LGraphFXVigneting() {\r\n this.addInput(\"Tex.\", \"Texture\");\r\n this.addInput(\"intensity\", \"number\");\r\n\r\n this.addOutput(\"Texture\", \"Texture\");\r\n this.properties = {\r\n intensity: 1,\r\n invert: false,\r\n precision: LGraphTexture.DEFAULT\r\n };\r\n\r\n if (!LGraphFXVigneting._shader) {\r\n LGraphFXVigneting._shader = new GL.Shader(\r\n Shader.SCREEN_VERTEX_SHADER,\r\n LGraphFXVigneting.pixel_shader\r\n );\r\n }\r\n }\r\n\r\n LGraphFXVigneting.title = \"Vigneting\";\r\n LGraphFXVigneting.desc = \"Vigneting\";\r\n\r\n LGraphFXVigneting.widgets_info = {\r\n precision: { widget: \"combo\", values: LGraphTexture.MODE_VALUES }\r\n };\r\n\r\n LGraphFXVigneting.prototype.onExecute = function() {\r\n var tex = this.getInputData(0);\r\n\r\n if (this.properties.precision === LGraphTexture.PASS_THROUGH) {\r\n this.setOutputData(0, tex);\r\n return;\r\n }\r\n\r\n if (!tex) {\r\n return;\r\n }\r\n\r\n this._tex = LGraphTexture.getTargetTexture(\r\n tex,\r\n this._tex,\r\n this.properties.precision\r\n );\r\n\r\n var intensity = this.properties.intensity;\r\n if (this.isInputConnected(1)) {\r\n intensity = this.getInputData(1);\r\n this.properties.intensity = intensity;\r\n }\r\n\r\n gl.disable(gl.BLEND);\r\n gl.disable(gl.DEPTH_TEST);\r\n\r\n var mesh = Mesh.getScreenQuad();\r\n var shader = LGraphFXVigneting._shader;\r\n var invert = this.properties.invert;\r\n\r\n this._tex.drawTo(function() {\r\n tex.bind(0);\r\n shader\r\n .uniforms({\r\n u_texture: 0,\r\n u_intensity: intensity,\r\n u_isize: [1 / tex.width, 1 / tex.height],\r\n u_invert: invert ? 1 : 0\r\n })\r\n .draw(mesh);\r\n });\r\n\r\n this.setOutputData(0, this._tex);\r\n };\r\n\r\n LGraphFXVigneting.pixel_shader =\r\n \"precision highp float;\\n\\\r\n\t\t\tprecision highp float;\\n\\\r\n\t\t\tvarying vec2 v_coord;\\n\\\r\n\t\t\tuniform sampler2D u_texture;\\n\\\r\n\t\t\tuniform float u_intensity;\\n\\\r\n\t\t\tuniform int u_invert;\\n\\\r\n\t\t\t\\n\\\r\n\t\t\tvoid main() {\\n\\\r\n\t\t\t\tfloat luminance = 1.0 - length( v_coord - vec2(0.5) ) * 1.414;\\n\\\r\n\t\t\t\tvec4 color = texture2D(u_texture, v_coord);\\n\\\r\n\t\t\t\tif(u_invert == 1)\\n\\\r\n\t\t\t\t\tluminance = 1.0 - luminance;\\n\\\r\n\t\t\t\tluminance = mix(1.0, luminance, u_intensity);\\n\\\r\n\t\t\t gl_FragColor = vec4( luminance * color.xyz, color.a);\\n\\\r\n\t\t\t}\\n\\\r\n\t\t\t\";\r\n\r\n LiteGraph.registerNodeType(\"fx/vigneting\", LGraphFXVigneting);\r\n global.LGraphFXVigneting = LGraphFXVigneting;\r\n }\r\n})(this);\r\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n var MIDI_COLOR = \"#243\";\r\n\r\n function MIDIEvent(data) {\r\n this.channel = 0;\r\n this.cmd = 0;\r\n this.data = new Uint32Array(3);\r\n\r\n if (data) {\r\n this.setup(data);\r\n }\r\n }\r\n\r\n LiteGraph.MIDIEvent = MIDIEvent;\r\n\r\n MIDIEvent.prototype.fromJSON = function(o) {\r\n this.setup(o.data);\r\n };\r\n\r\n MIDIEvent.prototype.setup = function(data) {\r\n var raw_data = data;\r\n if (data.constructor === Object) {\r\n raw_data = data.data;\r\n }\r\n\r\n this.data.set(raw_data);\r\n\r\n var midiStatus = raw_data[0];\r\n this.status = midiStatus;\r\n\r\n var midiCommand = midiStatus & 0xf0;\r\n\r\n if (midiStatus >= 0xf0) {\r\n this.cmd = midiStatus;\r\n } else {\r\n this.cmd = midiCommand;\r\n }\r\n\r\n if (this.cmd == MIDIEvent.NOTEON && this.velocity == 0) {\r\n this.cmd = MIDIEvent.NOTEOFF;\r\n }\r\n\r\n this.cmd_str = MIDIEvent.commands[this.cmd] || \"\";\r\n\r\n if (\r\n midiCommand >= MIDIEvent.NOTEON ||\r\n midiCommand <= MIDIEvent.NOTEOFF\r\n ) {\r\n this.channel = midiStatus & 0x0f;\r\n }\r\n };\r\n\r\n Object.defineProperty(MIDIEvent.prototype, \"velocity\", {\r\n get: function() {\r\n if (this.cmd == MIDIEvent.NOTEON) {\r\n return this.data[2];\r\n }\r\n return -1;\r\n },\r\n set: function(v) {\r\n this.data[2] = v; // v / 127;\r\n },\r\n enumerable: true\r\n });\r\n\r\n MIDIEvent.notes = [\r\n \"A\",\r\n \"A#\",\r\n \"B\",\r\n \"C\",\r\n \"C#\",\r\n \"D\",\r\n \"D#\",\r\n \"E\",\r\n \"F\",\r\n \"F#\",\r\n \"G\",\r\n \"G#\"\r\n ];\r\n MIDIEvent.note_to_index = {\r\n A: 0,\r\n \"A#\": 1,\r\n B: 2,\r\n C: 3,\r\n \"C#\": 4,\r\n D: 5,\r\n \"D#\": 6,\r\n E: 7,\r\n F: 8,\r\n \"F#\": 9,\r\n G: 10,\r\n \"G#\": 11\r\n };\r\n\r\n Object.defineProperty(MIDIEvent.prototype, \"note\", {\r\n get: function() {\r\n if (this.cmd != MIDIEvent.NOTEON) {\r\n return -1;\r\n }\r\n return MIDIEvent.toNoteString(this.data[1], true);\r\n },\r\n set: function(v) {\r\n throw \"notes cannot be assigned this way, must modify the data[1]\";\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperty(MIDIEvent.prototype, \"octave\", {\r\n get: function() {\r\n if (this.cmd != MIDIEvent.NOTEON) {\r\n return -1;\r\n }\r\n var octave = this.data[1] - 24;\r\n return Math.floor(octave / 12 + 1);\r\n },\r\n set: function(v) {\r\n throw \"octave cannot be assigned this way, must modify the data[1]\";\r\n },\r\n enumerable: true\r\n });\r\n\r\n //returns HZs\r\n MIDIEvent.prototype.getPitch = function() {\r\n return Math.pow(2, (this.data[1] - 69) / 12) * 440;\r\n };\r\n\r\n MIDIEvent.computePitch = function(note) {\r\n return Math.pow(2, (note - 69) / 12) * 440;\r\n };\r\n\r\n MIDIEvent.prototype.getCC = function() {\r\n return this.data[1];\r\n };\r\n\r\n MIDIEvent.prototype.getCCValue = function() {\r\n return this.data[2];\r\n };\r\n\r\n //not tested, there is a formula missing here\r\n MIDIEvent.prototype.getPitchBend = function() {\r\n return this.data[1] + (this.data[2] << 7) - 8192;\r\n };\r\n\r\n MIDIEvent.computePitchBend = function(v1, v2) {\r\n return v1 + (v2 << 7) - 8192;\r\n };\r\n\r\n MIDIEvent.prototype.setCommandFromString = function(str) {\r\n this.cmd = MIDIEvent.computeCommandFromString(str);\r\n };\r\n\r\n MIDIEvent.computeCommandFromString = function(str) {\r\n if (!str) {\r\n return 0;\r\n }\r\n\r\n if (str && str.constructor === Number) {\r\n return str;\r\n }\r\n\r\n str = str.toUpperCase();\r\n switch (str) {\r\n case \"NOTE ON\":\r\n case \"NOTEON\":\r\n return MIDIEvent.NOTEON;\r\n break;\r\n case \"NOTE OFF\":\r\n case \"NOTEOFF\":\r\n return MIDIEvent.NOTEON;\r\n break;\r\n case \"KEY PRESSURE\":\r\n case \"KEYPRESSURE\":\r\n return MIDIEvent.KEYPRESSURE;\r\n break;\r\n case \"CONTROLLER CHANGE\":\r\n case \"CONTROLLERCHANGE\":\r\n case \"CC\":\r\n return MIDIEvent.CONTROLLERCHANGE;\r\n break;\r\n case \"PROGRAM CHANGE\":\r\n case \"PROGRAMCHANGE\":\r\n case \"PC\":\r\n return MIDIEvent.PROGRAMCHANGE;\r\n break;\r\n case \"CHANNEL PRESSURE\":\r\n case \"CHANNELPRESSURE\":\r\n return MIDIEvent.CHANNELPRESSURE;\r\n break;\r\n case \"PITCH BEND\":\r\n case \"PITCHBEND\":\r\n return MIDIEvent.PITCHBEND;\r\n break;\r\n case \"TIME TICK\":\r\n case \"TIMETICK\":\r\n return MIDIEvent.TIMETICK;\r\n break;\r\n default:\r\n return Number(str); //asume its a hex code\r\n }\r\n };\r\n\r\n //transform from a pitch number to string like \"C4\"\r\n MIDIEvent.toNoteString = function(d, skip_octave) {\r\n d = Math.round(d); //in case it has decimals\r\n var note = d - 21;\r\n var octave = Math.floor((d - 24) / 12 + 1);\r\n note = note % 12;\r\n if (note < 0) {\r\n note = 12 + note;\r\n }\r\n return MIDIEvent.notes[note] + (skip_octave ? \"\" : octave);\r\n };\r\n\r\n MIDIEvent.NoteStringToPitch = function(str) {\r\n str = str.toUpperCase();\r\n var note = str[0];\r\n var octave = 4;\r\n\r\n if (str[1] == \"#\") {\r\n note += \"#\";\r\n if (str.length > 2) {\r\n octave = Number(str[2]);\r\n }\r\n } else {\r\n if (str.length > 1) {\r\n octave = Number(str[1]);\r\n }\r\n }\r\n var pitch = MIDIEvent.note_to_index[note];\r\n if (pitch == null) {\r\n return null;\r\n }\r\n return (octave - 1) * 12 + pitch + 21;\r\n };\r\n\r\n MIDIEvent.prototype.toString = function() {\r\n var str = \"\" + this.channel + \". \";\r\n switch (this.cmd) {\r\n case MIDIEvent.NOTEON:\r\n str += \"NOTEON \" + MIDIEvent.toNoteString(this.data[1]);\r\n break;\r\n case MIDIEvent.NOTEOFF:\r\n str += \"NOTEOFF \" + MIDIEvent.toNoteString(this.data[1]);\r\n break;\r\n case MIDIEvent.CONTROLLERCHANGE:\r\n str += \"CC \" + this.data[1] + \" \" + this.data[2];\r\n break;\r\n case MIDIEvent.PROGRAMCHANGE:\r\n str += \"PC \" + this.data[1];\r\n break;\r\n case MIDIEvent.PITCHBEND:\r\n str += \"PITCHBEND \" + this.getPitchBend();\r\n break;\r\n case MIDIEvent.KEYPRESSURE:\r\n str += \"KEYPRESS \" + this.data[1];\r\n break;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n MIDIEvent.prototype.toHexString = function() {\r\n var str = \"\";\r\n for (var i = 0; i < this.data.length; i++) {\r\n str += this.data[i].toString(16) + \" \";\r\n }\r\n };\r\n\r\n MIDIEvent.prototype.toJSON = function() {\r\n return {\r\n data: [this.data[0], this.data[1], this.data[2]],\r\n object_class: \"MIDIEvent\"\r\n };\r\n };\r\n\r\n MIDIEvent.NOTEOFF = 0x80;\r\n MIDIEvent.NOTEON = 0x90;\r\n MIDIEvent.KEYPRESSURE = 0xa0;\r\n MIDIEvent.CONTROLLERCHANGE = 0xb0;\r\n MIDIEvent.PROGRAMCHANGE = 0xc0;\r\n MIDIEvent.CHANNELPRESSURE = 0xd0;\r\n MIDIEvent.PITCHBEND = 0xe0;\r\n MIDIEvent.TIMETICK = 0xf8;\r\n\r\n MIDIEvent.commands = {\r\n 0x80: \"note off\",\r\n 0x90: \"note on\",\r\n 0xa0: \"key pressure\",\r\n 0xb0: \"controller change\",\r\n 0xc0: \"program change\",\r\n 0xd0: \"channel pressure\",\r\n 0xe0: \"pitch bend\",\r\n 0xf0: \"system\",\r\n 0xf2: \"Song pos\",\r\n 0xf3: \"Song select\",\r\n 0xf6: \"Tune request\",\r\n 0xf8: \"time tick\",\r\n 0xfa: \"Start Song\",\r\n 0xfb: \"Continue Song\",\r\n 0xfc: \"Stop Song\",\r\n 0xfe: \"Sensing\",\r\n 0xff: \"Reset\"\r\n };\r\n\r\n MIDIEvent.commands_short = {\r\n 0x80: \"NOTEOFF\",\r\n 0x90: \"NOTEOFF\",\r\n 0xa0: \"KEYP\",\r\n 0xb0: \"CC\",\r\n 0xc0: \"PC\",\r\n 0xd0: \"CP\",\r\n 0xe0: \"PB\",\r\n 0xf0: \"SYS\",\r\n 0xf2: \"POS\",\r\n 0xf3: \"SELECT\",\r\n 0xf6: \"TUNEREQ\",\r\n 0xf8: \"TT\",\r\n 0xfa: \"START\",\r\n 0xfb: \"CONTINUE\",\r\n 0xfc: \"STOP\",\r\n 0xfe: \"SENS\",\r\n 0xff: \"RESET\"\r\n };\r\n\r\n MIDIEvent.commands_reversed = {};\r\n for (var i in MIDIEvent.commands) {\r\n MIDIEvent.commands_reversed[MIDIEvent.commands[i]] = i;\r\n }\r\n\r\n //MIDI wrapper, instantiate by MIDIIn and MIDIOut\r\n function MIDIInterface(on_ready, on_error) {\r\n if (!navigator.requestMIDIAccess) {\r\n this.error = \"not suppoorted\";\r\n if (on_error) {\r\n on_error(\"Not supported\");\r\n } else {\r\n console.error(\"MIDI NOT SUPPORTED, enable by chrome://flags\");\r\n }\r\n return;\r\n }\r\n\r\n this.on_ready = on_ready;\r\n\r\n this.state = {\r\n note: [],\r\n cc: []\r\n };\r\n\r\n\t\tthis.input_ports = null;\r\n\t\tthis.input_ports_info = [];\r\n\t\tthis.output_ports = null;\r\n\t\tthis.output_ports_info = [];\r\n\r\n navigator.requestMIDIAccess().then(this.onMIDISuccess.bind(this), this.onMIDIFailure.bind(this));\r\n }\r\n\r\n MIDIInterface.input = null;\r\n\r\n MIDIInterface.MIDIEvent = MIDIEvent;\r\n\r\n MIDIInterface.prototype.onMIDISuccess = function(midiAccess) {\r\n console.log(\"MIDI ready!\");\r\n console.log(midiAccess);\r\n this.midi = midiAccess; // store in the global (in real usage, would probably keep in an object instance)\r\n this.updatePorts();\r\n\r\n if (this.on_ready) {\r\n this.on_ready(this);\r\n }\r\n };\r\n\r\n MIDIInterface.prototype.updatePorts = function() {\r\n var midi = this.midi;\r\n this.input_ports = midi.inputs;\r\n\t\tthis.input_ports_info = [];\r\n this.output_ports = midi.outputs;\r\n\t\tthis.output_ports_info = [];\r\n\r\n var num = 0;\r\n\r\n var it = this.input_ports.values();\r\n var it_value = it.next();\r\n while (it_value && it_value.done === false) {\r\n var port_info = it_value.value;\r\n\t\t\tthis.input_ports_info.push(port_info);\r\n console.log( \"Input port [type:'\" + port_info.type + \"'] id:'\" + port_info.id + \"' manufacturer:'\" + port_info.manufacturer + \"' name:'\" + port_info.name + \"' version:'\" + port_info.version + \"'\" );\r\n num++;\r\n it_value = it.next();\r\n }\r\n this.num_input_ports = num;\r\n\r\n num = 0;\r\n var it = this.output_ports.values();\r\n var it_value = it.next();\r\n while (it_value && it_value.done === false) {\r\n var port_info = it_value.value;\r\n\t\t\tthis.output_ports_info.push(port_info);\r\n console.log( \"Output port [type:'\" + port_info.type + \"'] id:'\" + port_info.id + \"' manufacturer:'\" + port_info.manufacturer + \"' name:'\" + port_info.name + \"' version:'\" + port_info.version + \"'\" );\r\n num++;\r\n it_value = it.next();\r\n }\r\n this.num_output_ports = num;\r\n };\r\n\r\n MIDIInterface.prototype.onMIDIFailure = function(msg) {\r\n console.error(\"Failed to get MIDI access - \" + msg);\r\n };\r\n\r\n MIDIInterface.prototype.openInputPort = function(port, callback) {\r\n var input_port = this.input_ports.get(\"input-\" + port);\r\n if (!input_port) {\r\n return false;\r\n }\r\n MIDIInterface.input = this;\r\n var that = this;\r\n\r\n input_port.onmidimessage = function(a) {\r\n var midi_event = new MIDIEvent(a.data);\r\n that.updateState(midi_event);\r\n if (callback) {\r\n callback(a.data, midi_event);\r\n }\r\n if (MIDIInterface.on_message) {\r\n MIDIInterface.on_message(a.data, midi_event);\r\n }\r\n };\r\n console.log(\"port open: \", input_port);\r\n return true;\r\n };\r\n\r\n MIDIInterface.parseMsg = function(data) {};\r\n\r\n MIDIInterface.prototype.updateState = function(midi_event) {\r\n switch (midi_event.cmd) {\r\n case MIDIEvent.NOTEON:\r\n this.state.note[midi_event.value1 | 0] = midi_event.value2;\r\n break;\r\n case MIDIEvent.NOTEOFF:\r\n this.state.note[midi_event.value1 | 0] = 0;\r\n break;\r\n case MIDIEvent.CONTROLLERCHANGE:\r\n this.state.cc[midi_event.getCC()] = midi_event.getCCValue();\r\n break;\r\n }\r\n };\r\n\r\n MIDIInterface.prototype.sendMIDI = function(port, midi_data) {\r\n if (!midi_data) {\r\n return;\r\n }\r\n\r\n var output_port = this.output_ports_info[port];//this.output_ports.get(\"output-\" + port);\r\n if (!output_port) {\r\n return;\r\n }\r\n\r\n MIDIInterface.output = this;\r\n\r\n if (midi_data.constructor === MIDIEvent) {\r\n output_port.send(midi_data.data);\r\n } else {\r\n output_port.send(midi_data);\r\n }\r\n };\r\n\r\n function LGMIDIIn() {\r\n this.addOutput(\"on_midi\", LiteGraph.EVENT);\r\n this.addOutput(\"out\", \"midi\");\r\n this.properties = { port: 0 };\r\n this._last_midi_event = null;\r\n this._current_midi_event = null;\r\n this.boxcolor = \"#AAA\";\r\n this._last_time = 0;\r\n\r\n var that = this;\r\n new MIDIInterface(function(midi) {\r\n //open\r\n that._midi = midi;\r\n if (that._waiting) {\r\n that.onStart();\r\n }\r\n that._waiting = false;\r\n });\r\n }\r\n\r\n LGMIDIIn.MIDIInterface = MIDIInterface;\r\n\r\n LGMIDIIn.title = \"MIDI Input\";\r\n LGMIDIIn.desc = \"Reads MIDI from a input port\";\r\n LGMIDIIn.color = MIDI_COLOR;\r\n\r\n LGMIDIIn.prototype.getPropertyInfo = function(name) {\r\n if (!this._midi) {\r\n return;\r\n }\r\n\r\n if (name == \"port\") {\r\n var values = {};\r\n for (var i = 0; i < this._midi.input_ports_info.length; ++i) {\r\n var input = this._midi.input_ports_info[i];\r\n values[i] = i + \".- \" + input.name + \" version:\" + input.version;\r\n }\r\n return { type: \"enum\", values: values };\r\n }\r\n };\r\n\r\n LGMIDIIn.prototype.onStart = function() {\r\n if (this._midi) {\r\n this._midi.openInputPort(\r\n this.properties.port,\r\n this.onMIDIEvent.bind(this)\r\n );\r\n } else {\r\n this._waiting = true;\r\n }\r\n };\r\n\r\n LGMIDIIn.prototype.onMIDIEvent = function(data, midi_event) {\r\n this._last_midi_event = midi_event;\r\n this.boxcolor = \"#AFA\";\r\n this._last_time = LiteGraph.getTime();\r\n this.trigger(\"on_midi\", midi_event);\r\n if (midi_event.cmd == MIDIEvent.NOTEON) {\r\n this.trigger(\"on_noteon\", midi_event);\r\n } else if (midi_event.cmd == MIDIEvent.NOTEOFF) {\r\n this.trigger(\"on_noteoff\", midi_event);\r\n } else if (midi_event.cmd == MIDIEvent.CONTROLLERCHANGE) {\r\n this.trigger(\"on_cc\", midi_event);\r\n } else if (midi_event.cmd == MIDIEvent.PROGRAMCHANGE) {\r\n this.trigger(\"on_pc\", midi_event);\r\n } else if (midi_event.cmd == MIDIEvent.PITCHBEND) {\r\n this.trigger(\"on_pitchbend\", midi_event);\r\n }\r\n };\r\n\r\n LGMIDIIn.prototype.onDrawBackground = function(ctx) {\r\n this.boxcolor = \"#AAA\";\r\n if (!this.flags.collapsed && this._last_midi_event) {\r\n ctx.fillStyle = \"white\";\r\n var now = LiteGraph.getTime();\r\n var f = 1.0 - Math.max(0, (now - this._last_time) * 0.001);\r\n if (f > 0) {\r\n var t = ctx.globalAlpha;\r\n ctx.globalAlpha *= f;\r\n ctx.font = \"12px Tahoma\";\r\n ctx.fillText(\r\n this._last_midi_event.toString(),\r\n 2,\r\n this.size[1] * 0.5 + 3\r\n );\r\n //ctx.fillRect(0,0,this.size[0],this.size[1]);\r\n ctx.globalAlpha = t;\r\n }\r\n }\r\n };\r\n\r\n LGMIDIIn.prototype.onExecute = function() {\r\n if (this.outputs) {\r\n var last = this._last_midi_event;\r\n for (var i = 0; i < this.outputs.length; ++i) {\r\n var output = this.outputs[i];\r\n var v = null;\r\n switch (output.name) {\r\n case \"midi\":\r\n v = this._midi;\r\n break;\r\n case \"last_midi\":\r\n v = last;\r\n break;\r\n default:\r\n continue;\r\n }\r\n this.setOutputData(i, v);\r\n }\r\n }\r\n };\r\n\r\n LGMIDIIn.prototype.onGetOutputs = function() {\r\n return [\r\n [\"last_midi\", \"midi\"],\r\n [\"on_midi\", LiteGraph.EVENT],\r\n [\"on_noteon\", LiteGraph.EVENT],\r\n [\"on_noteoff\", LiteGraph.EVENT],\r\n [\"on_cc\", LiteGraph.EVENT],\r\n [\"on_pc\", LiteGraph.EVENT],\r\n [\"on_pitchbend\", LiteGraph.EVENT]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/input\", LGMIDIIn);\r\n\r\n function LGMIDIOut() {\r\n this.addInput(\"send\", LiteGraph.EVENT);\r\n this.properties = { port: 0 };\r\n\r\n var that = this;\r\n new MIDIInterface(function(midi) {\r\n that._midi = midi;\r\n\t\t\tthat.widget.options.values = that.getMIDIOutputs();\r\n });\r\n\t\tthis.widget = this.addWidget(\"combo\",\"Device\",this.properties.port,{ property: \"port\", values: this.getMIDIOutputs.bind(this) });\r\n\t\tthis.size = [340,60];\r\n }\r\n\r\n LGMIDIOut.MIDIInterface = MIDIInterface;\r\n\r\n LGMIDIOut.title = \"MIDI Output\";\r\n LGMIDIOut.desc = \"Sends MIDI to output channel\";\r\n LGMIDIOut.color = MIDI_COLOR;\r\n\r\n LGMIDIOut.prototype.onGetPropertyInfo = function(name) {\r\n if (!this._midi) {\r\n return;\r\n }\r\n\r\n if (name == \"port\") {\r\n\t\t\tvar values = this.getMIDIOutputs();\r\n return { type: \"enum\", values: values };\r\n }\r\n };\r\n\tLGMIDIOut.default_ports = {0:\"unknown\"};\r\n\r\n\tLGMIDIOut.prototype.getMIDIOutputs = function()\r\n\t{\r\n\t\tvar values = {};\r\n\t\tif(!this._midi)\r\n\t\t\treturn LGMIDIOut.default_ports;\r\n\t\tif(this._midi.output_ports_info)\r\n\t\tfor (var i = 0; i < this._midi.output_ports_info.length; ++i) {\r\n\t\t\tvar output = this._midi.output_ports_info[i];\r\n\t\t\tif(!output)\r\n\t\t\t\tcontinue;\r\n\t\t\tvar name = i + \".- \" + output.name + \" version:\" + output.version;\r\n\t\t\tvalues[i] = name;\r\n\t\t}\r\n\t\treturn values;\r\n\t}\r\n\r\n LGMIDIOut.prototype.onAction = function(event, midi_event) {\r\n //console.log(midi_event);\r\n if (!this._midi) {\r\n return;\r\n }\r\n if (event == \"send\") {\r\n this._midi.sendMIDI(this.properties.port, midi_event);\r\n }\r\n this.trigger(\"midi\", midi_event);\r\n };\r\n\r\n LGMIDIOut.prototype.onGetInputs = function() {\r\n return [[\"send\", LiteGraph.ACTION]];\r\n };\r\n\r\n LGMIDIOut.prototype.onGetOutputs = function() {\r\n return [[\"on_midi\", LiteGraph.EVENT]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/output\", LGMIDIOut);\r\n\r\n\r\n function LGMIDIShow() {\r\n this.addInput(\"on_midi\", LiteGraph.EVENT);\r\n this._str = \"\";\r\n this.size = [200, 40];\r\n }\r\n\r\n LGMIDIShow.title = \"MIDI Show\";\r\n LGMIDIShow.desc = \"Shows MIDI in the graph\";\r\n LGMIDIShow.color = MIDI_COLOR;\r\n\r\n LGMIDIShow.prototype.getTitle = function() {\r\n if (this.flags.collapsed) {\r\n return this._str;\r\n }\r\n return this.title;\r\n };\r\n\r\n LGMIDIShow.prototype.onAction = function(event, midi_event) {\r\n if (!midi_event) {\r\n return;\r\n }\r\n if (midi_event.constructor === MIDIEvent) {\r\n this._str = midi_event.toString();\r\n } else {\r\n this._str = \"???\";\r\n }\r\n };\r\n\r\n LGMIDIShow.prototype.onDrawForeground = function(ctx) {\r\n if (!this._str || this.flags.collapsed) {\r\n return;\r\n }\r\n\r\n ctx.font = \"30px Arial\";\r\n ctx.fillText(this._str, 10, this.size[1] * 0.8);\r\n };\r\n\r\n LGMIDIShow.prototype.onGetInputs = function() {\r\n return [[\"in\", LiteGraph.ACTION]];\r\n };\r\n\r\n LGMIDIShow.prototype.onGetOutputs = function() {\r\n return [[\"on_midi\", LiteGraph.EVENT]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/show\", LGMIDIShow);\r\n\r\n function LGMIDIFilter() {\r\n this.properties = {\r\n channel: -1,\r\n cmd: -1,\r\n min_value: -1,\r\n max_value: -1\r\n };\r\n\r\n var that = this;\r\n this._learning = false;\r\n this.addWidget(\"button\", \"Learn\", \"\", function() {\r\n that._learning = true;\r\n that.boxcolor = \"#FA3\";\r\n });\r\n\r\n this.addInput(\"in\", LiteGraph.EVENT);\r\n this.addOutput(\"on_midi\", LiteGraph.EVENT);\r\n this.boxcolor = \"#AAA\";\r\n }\r\n\r\n LGMIDIFilter.title = \"MIDI Filter\";\r\n LGMIDIFilter.desc = \"Filters MIDI messages\";\r\n LGMIDIFilter.color = MIDI_COLOR;\r\n\r\n LGMIDIFilter[\"@cmd\"] = {\r\n type: \"enum\",\r\n title: \"Command\",\r\n values: MIDIEvent.commands_reversed\r\n };\r\n\r\n LGMIDIFilter.prototype.getTitle = function() {\r\n var str = null;\r\n if (this.properties.cmd == -1) {\r\n str = \"Nothing\";\r\n } else {\r\n str = MIDIEvent.commands_short[this.properties.cmd] || \"Unknown\";\r\n }\r\n\r\n if (\r\n this.properties.min_value != -1 &&\r\n this.properties.max_value != -1\r\n ) {\r\n str +=\r\n \" \" +\r\n (this.properties.min_value == this.properties.max_value\r\n ? this.properties.max_value\r\n : this.properties.min_value +\r\n \"..\" +\r\n this.properties.max_value);\r\n }\r\n\r\n return \"Filter: \" + str;\r\n };\r\n\r\n LGMIDIFilter.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"cmd\") {\r\n var num = Number(value);\r\n if (isNaN(num)) {\r\n num = MIDIEvent.commands[value] || 0;\r\n }\r\n this.properties.cmd = num;\r\n }\r\n };\r\n\r\n LGMIDIFilter.prototype.onAction = function(event, midi_event) {\r\n if (!midi_event || midi_event.constructor !== MIDIEvent) {\r\n return;\r\n }\r\n\r\n if (this._learning) {\r\n this._learning = false;\r\n this.boxcolor = \"#AAA\";\r\n this.properties.channel = midi_event.channel;\r\n this.properties.cmd = midi_event.cmd;\r\n this.properties.min_value = this.properties.max_value =\r\n midi_event.data[1];\r\n } else {\r\n if (\r\n this.properties.channel != -1 &&\r\n midi_event.channel != this.properties.channel\r\n ) {\r\n return;\r\n }\r\n if (\r\n this.properties.cmd != -1 &&\r\n midi_event.cmd != this.properties.cmd\r\n ) {\r\n return;\r\n }\r\n if (\r\n this.properties.min_value != -1 &&\r\n midi_event.data[1] < this.properties.min_value\r\n ) {\r\n return;\r\n }\r\n if (\r\n this.properties.max_value != -1 &&\r\n midi_event.data[1] > this.properties.max_value\r\n ) {\r\n return;\r\n }\r\n }\r\n\r\n this.trigger(\"on_midi\", midi_event);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/filter\", LGMIDIFilter);\r\n\r\n function LGMIDIEvent() {\r\n this.properties = {\r\n channel: 0,\r\n cmd: 144, //0x90\r\n value1: 1,\r\n value2: 1\r\n };\r\n\r\n this.addInput(\"send\", LiteGraph.EVENT);\r\n this.addInput(\"assign\", LiteGraph.EVENT);\r\n this.addOutput(\"on_midi\", LiteGraph.EVENT);\r\n\r\n this.midi_event = new MIDIEvent();\r\n this.gate = false;\r\n }\r\n\r\n LGMIDIEvent.title = \"MIDIEvent\";\r\n LGMIDIEvent.desc = \"Create a MIDI Event\";\r\n LGMIDIEvent.color = MIDI_COLOR;\r\n\r\n LGMIDIEvent.prototype.onAction = function(event, midi_event) {\r\n if (event == \"assign\") {\r\n this.properties.channel = midi_event.channel;\r\n this.properties.cmd = midi_event.cmd;\r\n this.properties.value1 = midi_event.data[1];\r\n this.properties.value2 = midi_event.data[2];\r\n if (midi_event.cmd == MIDIEvent.NOTEON) {\r\n this.gate = true;\r\n } else if (midi_event.cmd == MIDIEvent.NOTEOFF) {\r\n this.gate = false;\r\n }\r\n return;\r\n }\r\n\r\n //send\r\n var midi_event = this.midi_event;\r\n midi_event.channel = this.properties.channel;\r\n if (this.properties.cmd && this.properties.cmd.constructor === String) {\r\n midi_event.setCommandFromString(this.properties.cmd);\r\n } else {\r\n midi_event.cmd = this.properties.cmd;\r\n }\r\n midi_event.data[0] = midi_event.cmd | midi_event.channel;\r\n midi_event.data[1] = Number(this.properties.value1);\r\n midi_event.data[2] = Number(this.properties.value2);\r\n\r\n this.trigger(\"on_midi\", midi_event);\r\n };\r\n\r\n LGMIDIEvent.prototype.onExecute = function() {\r\n var props = this.properties;\r\n\r\n if (this.inputs) {\r\n for (var i = 0; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == -1) {\r\n continue;\r\n }\r\n switch (input.name) {\r\n case \"note\":\r\n var v = this.getInputData(i);\r\n if (v != null) {\r\n if (v.constructor === String) {\r\n v = MIDIEvent.NoteStringToPitch(v);\r\n }\r\n this.properties.value1 = (v | 0) % 255;\r\n }\r\n break;\r\n case \"cmd\":\r\n var v = this.getInputData(i);\r\n if (v != null) {\r\n this.properties.cmd = v;\r\n }\r\n break;\r\n case \"value1\":\r\n var v = this.getInputData(i);\r\n if (v != null) {\r\n this.properties.value1 = Math.clamp(v|0,0,127);\r\n }\r\n break;\r\n case \"value2\":\r\n var v = this.getInputData(i);\r\n if (v != null) {\r\n this.properties.value2 = Math.clamp(v|0,0,127);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.outputs) {\r\n for (var i = 0; i < this.outputs.length; ++i) {\r\n var output = this.outputs[i];\r\n var v = null;\r\n switch (output.name) {\r\n case \"midi\":\r\n v = new MIDIEvent();\r\n v.setup([props.cmd, props.value1, props.value2]);\r\n v.channel = props.channel;\r\n break;\r\n case \"command\":\r\n v = props.cmd;\r\n break;\r\n case \"cc\":\r\n v = props.value1;\r\n break;\r\n case \"cc_value\":\r\n v = props.value2;\r\n break;\r\n case \"note\":\r\n v =\r\n props.cmd == MIDIEvent.NOTEON ||\r\n props.cmd == MIDIEvent.NOTEOFF\r\n ? props.value1\r\n : null;\r\n break;\r\n case \"velocity\":\r\n v = props.cmd == MIDIEvent.NOTEON ? props.value2 : null;\r\n break;\r\n case \"pitch\":\r\n v =\r\n props.cmd == MIDIEvent.NOTEON\r\n ? MIDIEvent.computePitch(props.value1)\r\n : null;\r\n break;\r\n case \"pitchbend\":\r\n v =\r\n props.cmd == MIDIEvent.PITCHBEND\r\n ? MIDIEvent.computePitchBend(\r\n props.value1,\r\n props.value2\r\n )\r\n : null;\r\n break;\r\n case \"gate\":\r\n v = this.gate;\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (v !== null) {\r\n this.setOutputData(i, v);\r\n }\r\n }\r\n }\r\n };\r\n\r\n LGMIDIEvent.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"cmd\") {\r\n this.properties.cmd = MIDIEvent.computeCommandFromString(value);\r\n }\r\n };\r\n\r\n LGMIDIEvent.prototype.onGetInputs = function() {\r\n return [[\"cmd\", \"number\"],[\"note\", \"number\"],[\"value1\", \"number\"],[\"value2\", \"number\"]];\r\n };\r\n\r\n LGMIDIEvent.prototype.onGetOutputs = function() {\r\n return [\r\n [\"midi\", \"midi\"],\r\n [\"on_midi\", LiteGraph.EVENT],\r\n [\"command\", \"number\"],\r\n [\"note\", \"number\"],\r\n [\"velocity\", \"number\"],\r\n [\"cc\", \"number\"],\r\n [\"cc_value\", \"number\"],\r\n [\"pitch\", \"number\"],\r\n [\"gate\", \"bool\"],\r\n [\"pitchbend\", \"number\"]\r\n ];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/event\", LGMIDIEvent);\r\n\r\n function LGMIDICC() {\r\n this.properties = {\r\n //\t\tchannel: 0,\r\n cc: 1,\r\n value: 0\r\n };\r\n\r\n this.addOutput(\"value\", \"number\");\r\n }\r\n\r\n LGMIDICC.title = \"MIDICC\";\r\n LGMIDICC.desc = \"gets a Controller Change\";\r\n LGMIDICC.color = MIDI_COLOR;\r\n\r\n LGMIDICC.prototype.onExecute = function() {\r\n var props = this.properties;\r\n if (MIDIInterface.input) {\r\n this.properties.value =\r\n MIDIInterface.input.state.cc[this.properties.cc];\r\n }\r\n this.setOutputData(0, this.properties.value);\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/cc\", LGMIDICC);\r\n\r\n function LGMIDIGenerator() {\r\n this.addInput(\"generate\", LiteGraph.ACTION);\r\n this.addInput(\"scale\", \"string\");\r\n this.addInput(\"octave\", \"number\");\r\n this.addOutput(\"note\", LiteGraph.EVENT);\r\n this.properties = {\r\n notes: \"A,A#,B,C,C#,D,D#,E,F,F#,G,G#\",\r\n octave: 2,\r\n duration: 0.5,\r\n mode: \"sequence\"\r\n };\r\n\r\n this.notes_pitches = LGMIDIGenerator.processScale(\r\n this.properties.notes\r\n );\r\n this.sequence_index = 0;\r\n }\r\n\r\n LGMIDIGenerator.title = \"MIDI Generator\";\r\n LGMIDIGenerator.desc = \"Generates a random MIDI note\";\r\n LGMIDIGenerator.color = MIDI_COLOR;\r\n\r\n LGMIDIGenerator.processScale = function(scale) {\r\n var notes = scale.split(\",\");\r\n for (var i = 0; i < notes.length; ++i) {\r\n var n = notes[i];\r\n if ((n.length == 2 && n[1] != \"#\") || n.length > 2) {\r\n notes[i] = -LiteGraph.MIDIEvent.NoteStringToPitch(n);\r\n } else {\r\n notes[i] = MIDIEvent.note_to_index[n] || 0;\r\n }\r\n }\r\n return notes;\r\n };\r\n\r\n LGMIDIGenerator.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"notes\") {\r\n this.notes_pitches = LGMIDIGenerator.processScale(value);\r\n }\r\n };\r\n\r\n LGMIDIGenerator.prototype.onExecute = function() {\r\n var octave = this.getInputData(2);\r\n if (octave != null) {\r\n this.properties.octave = octave;\r\n }\r\n\r\n var scale = this.getInputData(1);\r\n if (scale) {\r\n this.notes_pitches = LGMIDIGenerator.processScale(scale);\r\n }\r\n };\r\n\r\n LGMIDIGenerator.prototype.onAction = function(event, midi_event) {\r\n //var range = this.properties.max - this.properties.min;\r\n //var pitch = this.properties.min + ((Math.random() * range)|0);\r\n var pitch = 0;\r\n var range = this.notes_pitches.length;\r\n var index = 0;\r\n\r\n if (this.properties.mode == \"sequence\") {\r\n index = this.sequence_index = (this.sequence_index + 1) % range;\r\n } else if (this.properties.mode == \"random\") {\r\n index = Math.floor(Math.random() * range);\r\n }\r\n\r\n var note = this.notes_pitches[index];\r\n if (note >= 0) {\r\n pitch = note + (this.properties.octave - 1) * 12 + 33;\r\n } else {\r\n pitch = -note;\r\n }\r\n\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEON, pitch, 10]);\r\n var duration = this.properties.duration || 1;\r\n this.trigger(\"note\", midi_event);\r\n\r\n //noteoff\r\n setTimeout(\r\n function() {\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEOFF, pitch, 0]);\r\n this.trigger(\"note\", midi_event);\r\n }.bind(this),\r\n duration * 1000\r\n );\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/generator\", LGMIDIGenerator);\r\n\r\n function LGMIDITranspose() {\r\n this.properties = {\r\n amount: 0\r\n };\r\n this.addInput(\"in\", LiteGraph.ACTION);\r\n this.addInput(\"amount\", \"number\");\r\n this.addOutput(\"out\", LiteGraph.EVENT);\r\n\r\n this.midi_event = new MIDIEvent();\r\n }\r\n\r\n LGMIDITranspose.title = \"MIDI Transpose\";\r\n LGMIDITranspose.desc = \"Transpose a MIDI note\";\r\n LGMIDITranspose.color = MIDI_COLOR;\r\n\r\n LGMIDITranspose.prototype.onAction = function(event, midi_event) {\r\n if (!midi_event || midi_event.constructor !== MIDIEvent) {\r\n return;\r\n }\r\n\r\n if (\r\n midi_event.data[0] == MIDIEvent.NOTEON ||\r\n midi_event.data[0] == MIDIEvent.NOTEOFF\r\n ) {\r\n this.midi_event = new MIDIEvent();\r\n this.midi_event.setup(midi_event.data);\r\n this.midi_event.data[1] = Math.round(\r\n this.midi_event.data[1] + this.properties.amount\r\n );\r\n this.trigger(\"out\", this.midi_event);\r\n } else {\r\n this.trigger(\"out\", midi_event);\r\n }\r\n };\r\n\r\n LGMIDITranspose.prototype.onExecute = function() {\r\n var amount = this.getInputData(1);\r\n if (amount != null) {\r\n this.properties.amount = amount;\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/transpose\", LGMIDITranspose);\r\n\r\n function LGMIDIQuantize() {\r\n this.properties = {\r\n scale: \"A,A#,B,C,C#,D,D#,E,F,F#,G,G#\"\r\n };\r\n this.addInput(\"note\", LiteGraph.ACTION);\r\n this.addInput(\"scale\", \"string\");\r\n this.addOutput(\"out\", LiteGraph.EVENT);\r\n\r\n this.valid_notes = new Array(12);\r\n this.offset_notes = new Array(12);\r\n this.processScale(this.properties.scale);\r\n }\r\n\r\n LGMIDIQuantize.title = \"MIDI Quantize Pitch\";\r\n LGMIDIQuantize.desc = \"Transpose a MIDI note tp fit an scale\";\r\n LGMIDIQuantize.color = MIDI_COLOR;\r\n\r\n LGMIDIQuantize.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"scale\") {\r\n this.processScale(value);\r\n }\r\n };\r\n\r\n LGMIDIQuantize.prototype.processScale = function(scale) {\r\n this._current_scale = scale;\r\n this.notes_pitches = LGMIDIGenerator.processScale(scale);\r\n for (var i = 0; i < 12; ++i) {\r\n this.valid_notes[i] = this.notes_pitches.indexOf(i) != -1;\r\n }\r\n for (var i = 0; i < 12; ++i) {\r\n if (this.valid_notes[i]) {\r\n this.offset_notes[i] = 0;\r\n continue;\r\n }\r\n for (var j = 1; j < 12; ++j) {\r\n if (this.valid_notes[(i - j) % 12]) {\r\n this.offset_notes[i] = -j;\r\n break;\r\n }\r\n if (this.valid_notes[(i + j) % 12]) {\r\n this.offset_notes[i] = j;\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n\r\n LGMIDIQuantize.prototype.onAction = function(event, midi_event) {\r\n if (!midi_event || midi_event.constructor !== MIDIEvent) {\r\n return;\r\n }\r\n\r\n if (\r\n midi_event.data[0] == MIDIEvent.NOTEON ||\r\n midi_event.data[0] == MIDIEvent.NOTEOFF\r\n ) {\r\n this.midi_event = new MIDIEvent();\r\n this.midi_event.setup(midi_event.data);\r\n var note = midi_event.note;\r\n var index = MIDIEvent.note_to_index[note];\r\n var offset = this.offset_notes[index];\r\n this.midi_event.data[1] += offset;\r\n this.trigger(\"out\", this.midi_event);\r\n } else {\r\n this.trigger(\"out\", midi_event);\r\n }\r\n };\r\n\r\n LGMIDIQuantize.prototype.onExecute = function() {\r\n var scale = this.getInputData(1);\r\n if (scale != null && scale != this._current_scale) {\r\n this.processScale(scale);\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/quantize\", LGMIDIQuantize);\r\n\r\n\tfunction LGMIDIFromFile() {\r\n this.properties = {\r\n url: \"\",\r\n\t\t\tautoplay: true\r\n };\r\n\r\n this.addInput(\"play\", LiteGraph.ACTION);\r\n this.addInput(\"pause\", LiteGraph.ACTION);\r\n this.addOutput(\"note\", LiteGraph.EVENT);\r\n\t\tthis._midi = null;\r\n\t\tthis._current_time = 0;\r\n\t\tthis._playing = false;\r\n\r\n if (typeof MidiParser == \"undefined\") {\r\n console.error(\r\n \"midi-parser.js not included, LGMidiPlay requires that library: https://raw.githubusercontent.com/colxi/midi-parser-js/master/src/main.js\"\r\n );\r\n this.boxcolor = \"red\";\r\n\t\t}\r\n\r\n\t}\r\n\r\n LGMIDIFromFile.title = \"MIDI fromFile\";\r\n LGMIDIFromFile.desc = \"Plays a MIDI file\";\r\n LGMIDIFromFile.color = MIDI_COLOR;\r\n\r\n\tLGMIDIFromFile.prototype.onAction = function( name )\r\n\t{\r\n\t\tif(name == \"play\")\r\n\t\t\tthis.play();\r\n\t\telse if(name == \"pause\")\r\n\t\t\tthis._playing = !this._playing;\r\n\t}\r\n\r\n\tLGMIDIFromFile.prototype.onPropertyChanged = function(name,value)\r\n\t{\r\n\t\tif(name == \"url\")\r\n\t\t\tthis.loadMIDIFile(value);\r\n\t}\r\n\r\n LGMIDIFromFile.prototype.onExecute = function() {\r\n\t\tif(!this._midi)\r\n\t\t\treturn;\r\n\r\n\t\tif(!this._playing)\r\n\t\t\treturn;\r\n\r\n\t\tthis._current_time += this.graph.elapsed_time;\r\n\t\tvar current_time = this._current_time * 100;\r\n\r\n\t\tfor(var i = 0; i < this._midi.tracks; ++i)\r\n\t\t{\r\n\t\t\tvar track = this._midi.track[i];\r\n\t\t\tif(!track._last_pos)\r\n\t\t\t{\r\n\t\t\t\ttrack._last_pos = 0;\r\n\t\t\t\ttrack._time = 0;\r\n\t\t\t}\r\n\r\n\t\t\tvar elem = track.event[ track._last_pos ];\r\n\t\t\tif(elem && (track._time + elem.deltaTime) <= current_time )\r\n\t\t\t{\r\n\t\t\t\ttrack._last_pos++;\r\n\t\t\t\ttrack._time += elem.deltaTime;\r\n\r\n\t\t\t\tif(elem.data)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar midi_cmd = elem.type << 4 + elem.channel;\r\n\t\t\t\t\tvar midi_event = new MIDIEvent();\r\n\t\t\t\t\tmidi_event.setup([midi_cmd, elem.data[0], elem.data[1]]);\r\n\t\t\t\t\tthis.trigger(\"note\", midi_event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n };\r\n\r\n\tLGMIDIFromFile.prototype.play = function()\r\n\t{\r\n\t\tthis._playing = true;\r\n\t\tthis._current_time = 0;\r\n\t\tif(!this._midi)\r\n\t\t\treturn;\r\n\r\n\t\tfor(var i = 0; i < this._midi.tracks; ++i)\r\n\t\t{\r\n\t\t\tvar track = this._midi.track[i];\r\n\t\t\ttrack._last_pos = 0;\r\n\t\t\ttrack._time = 0;\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tLGMIDIFromFile.prototype.loadMIDIFile = function(url)\r\n\t{\r\n\t\tvar that = this;\r\n\t\tLiteGraph.fetchFile( url, \"arraybuffer\", function(data)\r\n\t\t{\r\n\t\t\tthat.boxcolor = \"#AFA\";\r\n\t\t\tthat._midi = MidiParser.parse( new Uint8Array(data) );\r\n\t\t\tif(that.properties.autoplay)\r\n\t\t\t\tthat.play();\r\n\t\t}, function(err){\r\n\t\t\tthat.boxcolor = \"#FAA\";\r\n\t\t\tthat._midi = null;\r\n\t\t});\r\n\t}\r\n\r\n\tLGMIDIFromFile.prototype.onDropFile = function(file)\r\n\t{\r\n\t\tthis.properties.url = \"\";\r\n\t\tthis.loadMIDIFile( file );\r\n\t}\r\n\r\n LiteGraph.registerNodeType(\"midi/fromFile\", LGMIDIFromFile);\r\n\r\n\r\n function LGMIDIPlay() {\r\n this.properties = {\r\n volume: 0.5,\r\n duration: 1\r\n };\r\n this.addInput(\"note\", LiteGraph.ACTION);\r\n this.addInput(\"volume\", \"number\");\r\n this.addInput(\"duration\", \"number\");\r\n this.addOutput(\"note\", LiteGraph.EVENT);\r\n\r\n if (typeof AudioSynth == \"undefined\") {\r\n console.error(\r\n \"Audiosynth.js not included, LGMidiPlay requires that library\"\r\n );\r\n this.boxcolor = \"red\";\r\n } else {\r\n var Synth = (this.synth = new AudioSynth());\r\n this.instrument = Synth.createInstrument(\"piano\");\r\n }\r\n }\r\n\r\n LGMIDIPlay.title = \"MIDI Play\";\r\n LGMIDIPlay.desc = \"Plays a MIDI note\";\r\n LGMIDIPlay.color = MIDI_COLOR;\r\n\r\n LGMIDIPlay.prototype.onAction = function(event, midi_event) {\r\n if (!midi_event || midi_event.constructor !== MIDIEvent) {\r\n return;\r\n }\r\n\r\n if (this.instrument && midi_event.data[0] == MIDIEvent.NOTEON) {\r\n var note = midi_event.note; //C#\r\n if (!note || note == \"undefined\" || note.constructor !== String) {\r\n return;\r\n }\r\n this.instrument.play(\r\n note,\r\n midi_event.octave,\r\n this.properties.duration,\r\n this.properties.volume\r\n );\r\n }\r\n this.trigger(\"note\", midi_event);\r\n };\r\n\r\n LGMIDIPlay.prototype.onExecute = function() {\r\n var volume = this.getInputData(1);\r\n if (volume != null) {\r\n this.properties.volume = volume;\r\n }\r\n\r\n var duration = this.getInputData(2);\r\n if (duration != null) {\r\n this.properties.duration = duration;\r\n }\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/play\", LGMIDIPlay);\r\n\r\n function LGMIDIKeys() {\r\n this.properties = {\r\n num_octaves: 2,\r\n start_octave: 2\r\n };\r\n this.addInput(\"note\", LiteGraph.ACTION);\r\n this.addInput(\"reset\", LiteGraph.ACTION);\r\n this.addOutput(\"note\", LiteGraph.EVENT);\r\n this.size = [400, 100];\r\n this.keys = [];\r\n this._last_key = -1;\r\n }\r\n\r\n LGMIDIKeys.title = \"MIDI Keys\";\r\n LGMIDIKeys.desc = \"Keyboard to play notes\";\r\n LGMIDIKeys.color = MIDI_COLOR;\r\n\r\n LGMIDIKeys.keys = [\r\n { x: 0, w: 1, h: 1, t: 0 },\r\n { x: 0.75, w: 0.5, h: 0.6, t: 1 },\r\n { x: 1, w: 1, h: 1, t: 0 },\r\n { x: 1.75, w: 0.5, h: 0.6, t: 1 },\r\n { x: 2, w: 1, h: 1, t: 0 },\r\n { x: 2.75, w: 0.5, h: 0.6, t: 1 },\r\n { x: 3, w: 1, h: 1, t: 0 },\r\n { x: 4, w: 1, h: 1, t: 0 },\r\n { x: 4.75, w: 0.5, h: 0.6, t: 1 },\r\n { x: 5, w: 1, h: 1, t: 0 },\r\n { x: 5.75, w: 0.5, h: 0.6, t: 1 },\r\n { x: 6, w: 1, h: 1, t: 0 }\r\n ];\r\n\r\n LGMIDIKeys.prototype.onDrawForeground = function(ctx) {\r\n if (this.flags.collapsed) {\r\n return;\r\n }\r\n\r\n var num_keys = this.properties.num_octaves * 12;\r\n this.keys.length = num_keys;\r\n var key_width = this.size[0] / (this.properties.num_octaves * 7);\r\n var key_height = this.size[1];\r\n\r\n ctx.globalAlpha = 1;\r\n\r\n for (\r\n var k = 0;\r\n k < 2;\r\n k++ //draw first whites (0) then blacks (1)\r\n ) {\r\n for (var i = 0; i < num_keys; ++i) {\r\n var key_info = LGMIDIKeys.keys[i % 12];\r\n if (key_info.t != k) {\r\n continue;\r\n }\r\n var octave = Math.floor(i / 12);\r\n var x = octave * 7 * key_width + key_info.x * key_width;\r\n if (k == 0) {\r\n ctx.fillStyle = this.keys[i] ? \"#CCC\" : \"white\";\r\n } else {\r\n ctx.fillStyle = this.keys[i] ? \"#333\" : \"black\";\r\n }\r\n ctx.fillRect(\r\n x + 1,\r\n 0,\r\n key_width * key_info.w - 2,\r\n key_height * key_info.h\r\n );\r\n }\r\n }\r\n };\r\n\r\n LGMIDIKeys.prototype.getKeyIndex = function(pos) {\r\n var num_keys = this.properties.num_octaves * 12;\r\n var key_width = this.size[0] / (this.properties.num_octaves * 7);\r\n var key_height = this.size[1];\r\n\r\n for (\r\n var k = 1;\r\n k >= 0;\r\n k-- //test blacks first (1) then whites (0)\r\n ) {\r\n for (var i = 0; i < this.keys.length; ++i) {\r\n var key_info = LGMIDIKeys.keys[i % 12];\r\n if (key_info.t != k) {\r\n continue;\r\n }\r\n var octave = Math.floor(i / 12);\r\n var x = octave * 7 * key_width + key_info.x * key_width;\r\n var w = key_width * key_info.w;\r\n var h = key_height * key_info.h;\r\n if (pos[0] < x || pos[0] > x + w || pos[1] > h) {\r\n continue;\r\n }\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n LGMIDIKeys.prototype.onAction = function(event, params) {\r\n if (event == \"reset\") {\r\n for (var i = 0; i < this.keys.length; ++i) {\r\n this.keys[i] = false;\r\n }\r\n return;\r\n }\r\n\r\n if (!params || params.constructor !== MIDIEvent) {\r\n return;\r\n }\r\n var midi_event = params;\r\n var start_note = (this.properties.start_octave - 1) * 12 + 29;\r\n var index = midi_event.data[1] - start_note;\r\n if (index >= 0 && index < this.keys.length) {\r\n if (midi_event.data[0] == MIDIEvent.NOTEON) {\r\n this.keys[index] = true;\r\n } else if (midi_event.data[0] == MIDIEvent.NOTEOFF) {\r\n this.keys[index] = false;\r\n }\r\n }\r\n\r\n this.trigger(\"note\", midi_event);\r\n };\r\n\r\n LGMIDIKeys.prototype.onMouseDown = function(e, pos) {\r\n if (pos[1] < 0) {\r\n return;\r\n }\r\n var index = this.getKeyIndex(pos);\r\n this.keys[index] = true;\r\n this._last_key = index;\r\n var pitch = (this.properties.start_octave - 1) * 12 + 29 + index;\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEON, pitch, 100]);\r\n this.trigger(\"note\", midi_event);\r\n return true;\r\n };\r\n\r\n LGMIDIKeys.prototype.onMouseMove = function(e, pos) {\r\n if (pos[1] < 0 || this._last_key == -1) {\r\n return;\r\n }\r\n this.setDirtyCanvas(true);\r\n var index = this.getKeyIndex(pos);\r\n if (this._last_key == index) {\r\n return true;\r\n }\r\n this.keys[this._last_key] = false;\r\n var pitch =\r\n (this.properties.start_octave - 1) * 12 + 29 + this._last_key;\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEOFF, pitch, 100]);\r\n this.trigger(\"note\", midi_event);\r\n\r\n this.keys[index] = true;\r\n var pitch = (this.properties.start_octave - 1) * 12 + 29 + index;\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEON, pitch, 100]);\r\n this.trigger(\"note\", midi_event);\r\n\r\n this._last_key = index;\r\n return true;\r\n };\r\n\r\n LGMIDIKeys.prototype.onMouseUp = function(e, pos) {\r\n if (pos[1] < 0) {\r\n return;\r\n }\r\n var index = this.getKeyIndex(pos);\r\n this.keys[index] = false;\r\n this._last_key = -1;\r\n var pitch = (this.properties.start_octave - 1) * 12 + 29 + index;\r\n var midi_event = new MIDIEvent();\r\n midi_event.setup([MIDIEvent.NOTEOFF, pitch, 100]);\r\n this.trigger(\"note\", midi_event);\r\n return true;\r\n };\r\n\r\n LiteGraph.registerNodeType(\"midi/keys\", LGMIDIKeys);\r\n\r\n function now() {\r\n return window.performance.now();\r\n }\r\n})(this);\r\n\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n var LGAudio = {};\r\n global.LGAudio = LGAudio;\r\n\r\n LGAudio.getAudioContext = function() {\r\n if (!this._audio_context) {\r\n window.AudioContext =\r\n window.AudioContext || window.webkitAudioContext;\r\n if (!window.AudioContext) {\r\n console.error(\"AudioContext not supported by browser\");\r\n return null;\r\n }\r\n this._audio_context = new AudioContext();\r\n this._audio_context.onmessage = function(msg) {\r\n console.log(\"msg\", msg);\r\n };\r\n this._audio_context.onended = function(msg) {\r\n console.log(\"ended\", msg);\r\n };\r\n this._audio_context.oncomplete = function(msg) {\r\n console.log(\"complete\", msg);\r\n };\r\n }\r\n\r\n //in case it crashes\r\n //if(this._audio_context.state == \"suspended\")\r\n //\tthis._audio_context.resume();\r\n return this._audio_context;\r\n };\r\n\r\n LGAudio.connect = function(audionodeA, audionodeB) {\r\n try {\r\n audionodeA.connect(audionodeB);\r\n } catch (err) {\r\n console.warn(\"LGraphAudio:\", err);\r\n }\r\n };\r\n\r\n LGAudio.disconnect = function(audionodeA, audionodeB) {\r\n try {\r\n audionodeA.disconnect(audionodeB);\r\n } catch (err) {\r\n console.warn(\"LGraphAudio:\", err);\r\n }\r\n };\r\n\r\n LGAudio.changeAllAudiosConnections = function(node, connect) {\r\n if (node.inputs) {\r\n for (var i = 0; i < node.inputs.length; ++i) {\r\n var input = node.inputs[i];\r\n var link_info = node.graph.links[input.link];\r\n if (!link_info) {\r\n continue;\r\n }\r\n\r\n var origin_node = node.graph.getNodeById(link_info.origin_id);\r\n var origin_audionode = null;\r\n if (origin_node.getAudioNodeInOutputSlot) {\r\n origin_audionode = origin_node.getAudioNodeInOutputSlot(\r\n link_info.origin_slot\r\n );\r\n } else {\r\n origin_audionode = origin_node.audionode;\r\n }\r\n\r\n var target_audionode = null;\r\n if (node.getAudioNodeInInputSlot) {\r\n target_audionode = node.getAudioNodeInInputSlot(i);\r\n } else {\r\n target_audionode = node.audionode;\r\n }\r\n\r\n if (connect) {\r\n LGAudio.connect(origin_audionode, target_audionode);\r\n } else {\r\n LGAudio.disconnect(origin_audionode, target_audionode);\r\n }\r\n }\r\n }\r\n\r\n if (node.outputs) {\r\n for (var i = 0; i < node.outputs.length; ++i) {\r\n var output = node.outputs[i];\r\n for (var j = 0; j < output.links.length; ++j) {\r\n var link_info = node.graph.links[output.links[j]];\r\n if (!link_info) {\r\n continue;\r\n }\r\n\r\n var origin_audionode = null;\r\n if (node.getAudioNodeInOutputSlot) {\r\n origin_audionode = node.getAudioNodeInOutputSlot(i);\r\n } else {\r\n origin_audionode = node.audionode;\r\n }\r\n\r\n var target_node = node.graph.getNodeById(\r\n link_info.target_id\r\n );\r\n var target_audionode = null;\r\n if (target_node.getAudioNodeInInputSlot) {\r\n target_audionode = target_node.getAudioNodeInInputSlot(\r\n link_info.target_slot\r\n );\r\n } else {\r\n target_audionode = target_node.audionode;\r\n }\r\n\r\n if (connect) {\r\n LGAudio.connect(origin_audionode, target_audionode);\r\n } else {\r\n LGAudio.disconnect(origin_audionode, target_audionode);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n //used by many nodes\r\n LGAudio.onConnectionsChange = function(\r\n connection,\r\n slot,\r\n connected,\r\n link_info\r\n ) {\r\n //only process the outputs events\r\n if (connection != LiteGraph.OUTPUT) {\r\n return;\r\n }\r\n\r\n var target_node = null;\r\n if (link_info) {\r\n target_node = this.graph.getNodeById(link_info.target_id);\r\n }\r\n\r\n if (!target_node) {\r\n return;\r\n }\r\n\r\n //get origin audionode\r\n var local_audionode = null;\r\n if (this.getAudioNodeInOutputSlot) {\r\n local_audionode = this.getAudioNodeInOutputSlot(slot);\r\n } else {\r\n local_audionode = this.audionode;\r\n }\r\n\r\n //get target audionode\r\n var target_audionode = null;\r\n if (target_node.getAudioNodeInInputSlot) {\r\n target_audionode = target_node.getAudioNodeInInputSlot(\r\n link_info.target_slot\r\n );\r\n } else {\r\n target_audionode = target_node.audionode;\r\n }\r\n\r\n //do the connection/disconnection\r\n if (connected) {\r\n LGAudio.connect(local_audionode, target_audionode);\r\n } else {\r\n LGAudio.disconnect(local_audionode, target_audionode);\r\n }\r\n };\r\n\r\n //this function helps creating wrappers to existing classes\r\n LGAudio.createAudioNodeWrapper = function(class_object) {\r\n var old_func = class_object.prototype.onPropertyChanged;\r\n\r\n class_object.prototype.onPropertyChanged = function(name, value) {\r\n if (old_func) {\r\n old_func.call(this, name, value);\r\n }\r\n\r\n if (!this.audionode) {\r\n return;\r\n }\r\n\r\n if (this.audionode[name] === undefined) {\r\n return;\r\n }\r\n\r\n if (this.audionode[name].value !== undefined) {\r\n this.audionode[name].value = value;\r\n } else {\r\n this.audionode[name] = value;\r\n }\r\n };\r\n\r\n class_object.prototype.onConnectionsChange =\r\n LGAudio.onConnectionsChange;\r\n };\r\n\r\n //contains the samples decoded of the loaded audios in AudioBuffer format\r\n LGAudio.cached_audios = {};\r\n\r\n LGAudio.loadSound = function(url, on_complete, on_error) {\r\n if (LGAudio.cached_audios[url] && url.indexOf(\"blob:\") == -1) {\r\n if (on_complete) {\r\n on_complete(LGAudio.cached_audios[url]);\r\n }\r\n return;\r\n }\r\n\r\n if (LGAudio.onProcessAudioURL) {\r\n url = LGAudio.onProcessAudioURL(url);\r\n }\r\n\r\n //load new sample\r\n var request = new XMLHttpRequest();\r\n request.open(\"GET\", url, true);\r\n request.responseType = \"arraybuffer\";\r\n\r\n var context = LGAudio.getAudioContext();\r\n\r\n // Decode asynchronously\r\n request.onload = function() {\r\n console.log(\"AudioSource loaded\");\r\n context.decodeAudioData(\r\n request.response,\r\n function(buffer) {\r\n console.log(\"AudioSource decoded\");\r\n LGAudio.cached_audios[url] = buffer;\r\n if (on_complete) {\r\n on_complete(buffer);\r\n }\r\n },\r\n onError\r\n );\r\n };\r\n request.send();\r\n\r\n function onError(err) {\r\n console.log(\"Audio loading sample error:\", err);\r\n if (on_error) {\r\n on_error(err);\r\n }\r\n }\r\n\r\n return request;\r\n };\r\n\r\n //****************************************************\r\n\r\n function LGAudioSource() {\r\n this.properties = {\r\n src: \"\",\r\n gain: 0.5,\r\n loop: true,\r\n autoplay: true,\r\n playbackRate: 1\r\n };\r\n\r\n this._loading_audio = false;\r\n this._audiobuffer = null; //points to AudioBuffer with the audio samples decoded\r\n this._audionodes = [];\r\n this._last_sourcenode = null; //the last AudioBufferSourceNode (there could be more if there are several sounds playing)\r\n\r\n this.addOutput(\"out\", \"audio\");\r\n this.addInput(\"gain\", \"number\");\r\n\r\n //init context\r\n var context = LGAudio.getAudioContext();\r\n\r\n //create gain node to control volume\r\n this.audionode = context.createGain();\r\n this.audionode.graphnode = this;\r\n this.audionode.gain.value = this.properties.gain;\r\n\r\n //debug\r\n if (this.properties.src) {\r\n this.loadSound(this.properties.src);\r\n }\r\n }\r\n\r\n\tLGAudioSource.desc = \"Plays an audio file\";\r\n LGAudioSource[\"@src\"] = { widget: \"resource\" };\r\n LGAudioSource.supported_extensions = [\"wav\", \"ogg\", \"mp3\"];\r\n\r\n LGAudioSource.prototype.onAdded = function(graph) {\r\n if (graph.status === LGraph.STATUS_RUNNING) {\r\n this.onStart();\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.onStart = function() {\r\n if (!this._audiobuffer) {\r\n return;\r\n }\r\n\r\n if (this.properties.autoplay) {\r\n\t\t\tthis.playBuffer(this._audiobuffer);\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.onStop = function() {\r\n this.stopAllSounds();\r\n };\r\n\r\n LGAudioSource.prototype.onPause = function() {\r\n this.pauseAllSounds();\r\n };\r\n\r\n LGAudioSource.prototype.onUnpause = function() {\r\n this.unpauseAllSounds();\r\n //this.onStart();\r\n };\r\n\r\n LGAudioSource.prototype.onRemoved = function() {\r\n this.stopAllSounds();\r\n if (this._dropped_url) {\r\n URL.revokeObjectURL(this._url);\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.stopAllSounds = function() {\r\n //iterate and stop\r\n for (var i = 0; i < this._audionodes.length; ++i) {\r\n if (this._audionodes[i].started) {\r\n this._audionodes[i].started = false;\r\n this._audionodes[i].stop();\r\n }\r\n //this._audionodes[i].disconnect( this.audionode );\r\n }\r\n this._audionodes.length = 0;\r\n };\r\n\r\n LGAudioSource.prototype.pauseAllSounds = function() {\r\n LGAudio.getAudioContext().suspend();\r\n };\r\n\r\n LGAudioSource.prototype.unpauseAllSounds = function() {\r\n LGAudio.getAudioContext().resume();\r\n };\r\n\r\n LGAudioSource.prototype.onExecute = function() {\r\n if (this.inputs) {\r\n for (var i = 0; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v === undefined) {\r\n continue;\r\n }\r\n if (input.name == \"gain\")\r\n this.audionode.gain.value = v;\r\n else if (input.name == \"src\") {\r\n this.setProperty(\"src\",v);\r\n } else if (input.name == \"playbackRate\") {\r\n this.properties.playbackRate = v;\r\n for (var j = 0; j < this._audionodes.length; ++j) {\r\n this._audionodes[j].playbackRate.value = v;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.outputs) {\r\n for (var i = 0; i < this.outputs.length; ++i) {\r\n var output = this.outputs[i];\r\n if (output.name == \"buffer\" && this._audiobuffer) {\r\n this.setOutputData(i, this._audiobuffer);\r\n }\r\n }\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.onAction = function(event) {\r\n if (this._audiobuffer) {\r\n if (event == \"Play\") {\r\n this.playBuffer(this._audiobuffer);\r\n } else if (event == \"Stop\") {\r\n this.stopAllSounds();\r\n }\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"src\") {\r\n this.loadSound(value);\r\n } else if (name == \"gain\") {\r\n this.audionode.gain.value = value;\r\n } else if (name == \"playbackRate\") {\r\n for (var j = 0; j < this._audionodes.length; ++j) {\r\n this._audionodes[j].playbackRate.value = value;\r\n }\r\n }\r\n };\r\n\r\n LGAudioSource.prototype.playBuffer = function(buffer) {\r\n var that = this;\r\n var context = LGAudio.getAudioContext();\r\n\r\n //create a new audionode (this is mandatory, AudioAPI doesnt like to reuse old ones)\r\n var audionode = context.createBufferSource(); //create a AudioBufferSourceNode\r\n this._last_sourcenode = audionode;\r\n audionode.graphnode = this;\r\n audionode.buffer = buffer;\r\n audionode.loop = this.properties.loop;\r\n audionode.playbackRate.value = this.properties.playbackRate;\r\n this._audionodes.push(audionode);\r\n audionode.connect(this.audionode); //connect to gain\r\n\r\n\t\tthis._audionodes.push(audionode);\r\n\r\n\t\tthis.trigger(\"start\");\r\n\r\n audionode.onended = function() {\r\n //console.log(\"ended!\");\r\n that.trigger(\"ended\");\r\n //remove\r\n var index = that._audionodes.indexOf(audionode);\r\n if (index != -1) {\r\n that._audionodes.splice(index, 1);\r\n }\r\n };\r\n\r\n if (!audionode.started) {\r\n audionode.started = true;\r\n audionode.start();\r\n }\r\n return audionode;\r\n };\r\n\r\n LGAudioSource.prototype.loadSound = function(url) {\r\n var that = this;\r\n\r\n //kill previous load\r\n if (this._request) {\r\n this._request.abort();\r\n this._request = null;\r\n }\r\n\r\n this._audiobuffer = null; //points to the audiobuffer once the audio is loaded\r\n this._loading_audio = false;\r\n\r\n if (!url) {\r\n return;\r\n }\r\n\r\n this._request = LGAudio.loadSound(url, inner);\r\n\r\n this._loading_audio = true;\r\n this.boxcolor = \"#AA4\";\r\n\r\n function inner(buffer) {\r\n this.boxcolor = LiteGraph.NODE_DEFAULT_BOXCOLOR;\r\n that._audiobuffer = buffer;\r\n that._loading_audio = false;\r\n //if is playing, then play it\r\n if (that.graph && that.graph.status === LGraph.STATUS_RUNNING) {\r\n that.onStart();\r\n } //this controls the autoplay already\r\n }\r\n };\r\n\r\n //Helps connect/disconnect AudioNodes when new connections are made in the node\r\n LGAudioSource.prototype.onConnectionsChange = LGAudio.onConnectionsChange;\r\n\r\n LGAudioSource.prototype.onGetInputs = function() {\r\n return [\r\n [\"playbackRate\", \"number\"],\r\n\t\t\t[\"src\",\"string\"],\r\n [\"Play\", LiteGraph.ACTION],\r\n [\"Stop\", LiteGraph.ACTION]\r\n ];\r\n };\r\n\r\n LGAudioSource.prototype.onGetOutputs = function() {\r\n return [[\"buffer\", \"audiobuffer\"], [\"start\", LiteGraph.EVENT], [\"ended\", LiteGraph.EVENT]];\r\n };\r\n\r\n LGAudioSource.prototype.onDropFile = function(file) {\r\n if (this._dropped_url) {\r\n URL.revokeObjectURL(this._dropped_url);\r\n }\r\n var url = URL.createObjectURL(file);\r\n this.properties.src = url;\r\n this.loadSound(url);\r\n this._dropped_url = url;\r\n };\r\n\r\n LGAudioSource.title = \"Source\";\r\n LGAudioSource.desc = \"Plays audio\";\r\n LiteGraph.registerNodeType(\"audio/source\", LGAudioSource);\r\n\r\n //****************************************************\r\n\r\n function LGAudioMediaSource() {\r\n this.properties = {\r\n gain: 0.5\r\n };\r\n\r\n this._audionodes = [];\r\n this._media_stream = null;\r\n\r\n this.addOutput(\"out\", \"audio\");\r\n this.addInput(\"gain\", \"number\");\r\n\r\n //create gain node to control volume\r\n var context = LGAudio.getAudioContext();\r\n this.audionode = context.createGain();\r\n this.audionode.graphnode = this;\r\n this.audionode.gain.value = this.properties.gain;\r\n }\r\n\r\n LGAudioMediaSource.prototype.onAdded = function(graph) {\r\n if (graph.status === LGraph.STATUS_RUNNING) {\r\n this.onStart();\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.onStart = function() {\r\n if (this._media_stream == null && !this._waiting_confirmation) {\r\n this.openStream();\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.onStop = function() {\r\n this.audionode.gain.value = 0;\r\n };\r\n\r\n LGAudioMediaSource.prototype.onPause = function() {\r\n this.audionode.gain.value = 0;\r\n };\r\n\r\n LGAudioMediaSource.prototype.onUnpause = function() {\r\n this.audionode.gain.value = this.properties.gain;\r\n };\r\n\r\n LGAudioMediaSource.prototype.onRemoved = function() {\r\n this.audionode.gain.value = 0;\r\n if (this.audiosource_node) {\r\n this.audiosource_node.disconnect(this.audionode);\r\n this.audiosource_node = null;\r\n }\r\n if (this._media_stream) {\r\n var tracks = this._media_stream.getTracks();\r\n if (tracks.length) {\r\n tracks[0].stop();\r\n }\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.openStream = function() {\r\n if (!navigator.mediaDevices) {\r\n console.log(\r\n \"getUserMedia() is not supported in your browser, use chrome and enable WebRTC from about://flags\"\r\n );\r\n return;\r\n }\r\n\r\n this._waiting_confirmation = true;\r\n\r\n // Not showing vendor prefixes.\r\n navigator.mediaDevices\r\n .getUserMedia({ audio: true, video: false })\r\n .then(this.streamReady.bind(this))\r\n .catch(onFailSoHard);\r\n\r\n var that = this;\r\n function onFailSoHard(err) {\r\n console.log(\"Media rejected\", err);\r\n that._media_stream = false;\r\n that.boxcolor = \"red\";\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.streamReady = function(localMediaStream) {\r\n this._media_stream = localMediaStream;\r\n //this._waiting_confirmation = false;\r\n\r\n //init context\r\n if (this.audiosource_node) {\r\n this.audiosource_node.disconnect(this.audionode);\r\n }\r\n var context = LGAudio.getAudioContext();\r\n this.audiosource_node = context.createMediaStreamSource(\r\n localMediaStream\r\n );\r\n this.audiosource_node.graphnode = this;\r\n this.audiosource_node.connect(this.audionode);\r\n this.boxcolor = \"white\";\r\n };\r\n\r\n LGAudioMediaSource.prototype.onExecute = function() {\r\n if (this._media_stream == null && !this._waiting_confirmation) {\r\n this.openStream();\r\n }\r\n\r\n if (this.inputs) {\r\n for (var i = 0; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v === undefined) {\r\n continue;\r\n }\r\n if (input.name == \"gain\") {\r\n this.audionode.gain.value = this.properties.gain = v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.onAction = function(event) {\r\n if (event == \"Play\") {\r\n this.audionode.gain.value = this.properties.gain;\r\n } else if (event == \"Stop\") {\r\n this.audionode.gain.value = 0;\r\n }\r\n };\r\n\r\n LGAudioMediaSource.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"gain\") {\r\n this.audionode.gain.value = value;\r\n }\r\n };\r\n\r\n //Helps connect/disconnect AudioNodes when new connections are made in the node\r\n LGAudioMediaSource.prototype.onConnectionsChange =\r\n LGAudio.onConnectionsChange;\r\n\r\n LGAudioMediaSource.prototype.onGetInputs = function() {\r\n return [\r\n [\"playbackRate\", \"number\"],\r\n [\"Play\", LiteGraph.ACTION],\r\n [\"Stop\", LiteGraph.ACTION]\r\n ];\r\n };\r\n\r\n LGAudioMediaSource.title = \"MediaSource\";\r\n LGAudioMediaSource.desc = \"Plays microphone\";\r\n LiteGraph.registerNodeType(\"audio/media_source\", LGAudioMediaSource);\r\n\r\n //*****************************************************\r\n\r\n function LGAudioAnalyser() {\r\n this.properties = {\r\n fftSize: 2048,\r\n minDecibels: -100,\r\n maxDecibels: -10,\r\n smoothingTimeConstant: 0.5\r\n };\r\n\r\n var context = LGAudio.getAudioContext();\r\n\r\n this.audionode = context.createAnalyser();\r\n this.audionode.graphnode = this;\r\n this.audionode.fftSize = this.properties.fftSize;\r\n this.audionode.minDecibels = this.properties.minDecibels;\r\n this.audionode.maxDecibels = this.properties.maxDecibels;\r\n this.audionode.smoothingTimeConstant = this.properties.smoothingTimeConstant;\r\n\r\n this.addInput(\"in\", \"audio\");\r\n this.addOutput(\"freqs\", \"array\");\r\n this.addOutput(\"samples\", \"array\");\r\n\r\n this._freq_bin = null;\r\n this._time_bin = null;\r\n }\r\n\r\n LGAudioAnalyser.prototype.onPropertyChanged = function(name, value) {\r\n this.audionode[name] = value;\r\n };\r\n\r\n LGAudioAnalyser.prototype.onExecute = function() {\r\n if (this.isOutputConnected(0)) {\r\n //send FFT\r\n var bufferLength = this.audionode.frequencyBinCount;\r\n if (!this._freq_bin || this._freq_bin.length != bufferLength) {\r\n this._freq_bin = new Uint8Array(bufferLength);\r\n }\r\n this.audionode.getByteFrequencyData(this._freq_bin);\r\n this.setOutputData(0, this._freq_bin);\r\n }\r\n\r\n //send analyzer\r\n if (this.isOutputConnected(1)) {\r\n //send Samples\r\n var bufferLength = this.audionode.frequencyBinCount;\r\n if (!this._time_bin || this._time_bin.length != bufferLength) {\r\n this._time_bin = new Uint8Array(bufferLength);\r\n }\r\n this.audionode.getByteTimeDomainData(this._time_bin);\r\n this.setOutputData(1, this._time_bin);\r\n }\r\n\r\n //properties\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v !== undefined) {\r\n this.audionode[input.name].value = v;\r\n }\r\n }\r\n\r\n //time domain\r\n //this.audionode.getFloatTimeDomainData( dataArray );\r\n };\r\n\r\n LGAudioAnalyser.prototype.onGetInputs = function() {\r\n return [\r\n [\"minDecibels\", \"number\"],\r\n [\"maxDecibels\", \"number\"],\r\n [\"smoothingTimeConstant\", \"number\"]\r\n ];\r\n };\r\n\r\n LGAudioAnalyser.prototype.onGetOutputs = function() {\r\n return [[\"freqs\", \"array\"], [\"samples\", \"array\"]];\r\n };\r\n\r\n LGAudioAnalyser.title = \"Analyser\";\r\n LGAudioAnalyser.desc = \"Audio Analyser\";\r\n LiteGraph.registerNodeType(\"audio/analyser\", LGAudioAnalyser);\r\n\r\n //*****************************************************\r\n\r\n function LGAudioGain() {\r\n //default\r\n this.properties = {\r\n gain: 1\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createGain();\r\n this.addInput(\"in\", \"audio\");\r\n this.addInput(\"gain\", \"number\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioGain.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n var v = this.getInputData(i);\r\n if (v !== undefined) {\r\n this.audionode[input.name].value = v;\r\n }\r\n }\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioGain);\r\n\r\n LGAudioGain.title = \"Gain\";\r\n LGAudioGain.desc = \"Audio gain\";\r\n LiteGraph.registerNodeType(\"audio/gain\", LGAudioGain);\r\n\r\n function LGAudioConvolver() {\r\n //default\r\n this.properties = {\r\n impulse_src: \"\",\r\n normalize: true\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createConvolver();\r\n this.addInput(\"in\", \"audio\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioConvolver);\r\n\r\n LGAudioConvolver.prototype.onRemove = function() {\r\n if (this._dropped_url) {\r\n URL.revokeObjectURL(this._dropped_url);\r\n }\r\n };\r\n\r\n LGAudioConvolver.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"impulse_src\") {\r\n this.loadImpulse(value);\r\n } else if (name == \"normalize\") {\r\n this.audionode.normalize = value;\r\n }\r\n };\r\n\r\n LGAudioConvolver.prototype.onDropFile = function(file) {\r\n if (this._dropped_url) {\r\n URL.revokeObjectURL(this._dropped_url);\r\n }\r\n this._dropped_url = URL.createObjectURL(file);\r\n this.properties.impulse_src = this._dropped_url;\r\n this.loadImpulse(this._dropped_url);\r\n };\r\n\r\n LGAudioConvolver.prototype.loadImpulse = function(url) {\r\n var that = this;\r\n\r\n //kill previous load\r\n if (this._request) {\r\n this._request.abort();\r\n this._request = null;\r\n }\r\n\r\n this._impulse_buffer = null;\r\n this._loading_impulse = false;\r\n\r\n if (!url) {\r\n return;\r\n }\r\n\r\n //load new sample\r\n this._request = LGAudio.loadSound(url, inner);\r\n this._loading_impulse = true;\r\n\r\n // Decode asynchronously\r\n function inner(buffer) {\r\n that._impulse_buffer = buffer;\r\n that.audionode.buffer = buffer;\r\n console.log(\"Impulse signal set\");\r\n that._loading_impulse = false;\r\n }\r\n };\r\n\r\n LGAudioConvolver.title = \"Convolver\";\r\n LGAudioConvolver.desc = \"Convolves the signal (used for reverb)\";\r\n LiteGraph.registerNodeType(\"audio/convolver\", LGAudioConvolver);\r\n\r\n function LGAudioDynamicsCompressor() {\r\n //default\r\n this.properties = {\r\n threshold: -50,\r\n knee: 40,\r\n ratio: 12,\r\n reduction: -20,\r\n attack: 0,\r\n release: 0.25\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createDynamicsCompressor();\r\n this.addInput(\"in\", \"audio\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioDynamicsCompressor);\r\n\r\n LGAudioDynamicsCompressor.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v !== undefined) {\r\n this.audionode[input.name].value = v;\r\n }\r\n }\r\n };\r\n\r\n LGAudioDynamicsCompressor.prototype.onGetInputs = function() {\r\n return [\r\n [\"threshold\", \"number\"],\r\n [\"knee\", \"number\"],\r\n [\"ratio\", \"number\"],\r\n [\"reduction\", \"number\"],\r\n [\"attack\", \"number\"],\r\n [\"release\", \"number\"]\r\n ];\r\n };\r\n\r\n LGAudioDynamicsCompressor.title = \"DynamicsCompressor\";\r\n LGAudioDynamicsCompressor.desc = \"Dynamics Compressor\";\r\n LiteGraph.registerNodeType(\r\n \"audio/dynamicsCompressor\",\r\n LGAudioDynamicsCompressor\r\n );\r\n\r\n function LGAudioWaveShaper() {\r\n //default\r\n this.properties = {};\r\n\r\n this.audionode = LGAudio.getAudioContext().createWaveShaper();\r\n this.addInput(\"in\", \"audio\");\r\n this.addInput(\"shape\", \"waveshape\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioWaveShaper.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n var v = this.getInputData(1);\r\n if (v === undefined) {\r\n return;\r\n }\r\n this.audionode.curve = v;\r\n };\r\n\r\n LGAudioWaveShaper.prototype.setWaveShape = function(shape) {\r\n this.audionode.curve = shape;\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioWaveShaper);\r\n\r\n /* disabled till I dont find a way to do a wave shape\r\nLGAudioWaveShaper.title = \"WaveShaper\";\r\nLGAudioWaveShaper.desc = \"Distortion using wave shape\";\r\nLiteGraph.registerNodeType(\"audio/waveShaper\", LGAudioWaveShaper);\r\n*/\r\n\r\n function LGAudioMixer() {\r\n //default\r\n this.properties = {\r\n gain1: 0.5,\r\n gain2: 0.5\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createGain();\r\n\r\n this.audionode1 = LGAudio.getAudioContext().createGain();\r\n this.audionode1.gain.value = this.properties.gain1;\r\n this.audionode2 = LGAudio.getAudioContext().createGain();\r\n this.audionode2.gain.value = this.properties.gain2;\r\n\r\n this.audionode1.connect(this.audionode);\r\n this.audionode2.connect(this.audionode);\r\n\r\n this.addInput(\"in1\", \"audio\");\r\n this.addInput(\"in1 gain\", \"number\");\r\n this.addInput(\"in2\", \"audio\");\r\n this.addInput(\"in2 gain\", \"number\");\r\n\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioMixer.prototype.getAudioNodeInInputSlot = function(slot) {\r\n if (slot == 0) {\r\n return this.audionode1;\r\n } else if (slot == 2) {\r\n return this.audionode2;\r\n }\r\n };\r\n\r\n LGAudioMixer.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"gain1\") {\r\n this.audionode1.gain.value = value;\r\n } else if (name == \"gain2\") {\r\n this.audionode2.gain.value = value;\r\n }\r\n };\r\n\r\n LGAudioMixer.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n\r\n if (input.link == null || input.type == \"audio\") {\r\n continue;\r\n }\r\n\r\n var v = this.getInputData(i);\r\n if (v === undefined) {\r\n continue;\r\n }\r\n\r\n if (i == 1) {\r\n this.audionode1.gain.value = v;\r\n } else if (i == 3) {\r\n this.audionode2.gain.value = v;\r\n }\r\n }\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioMixer);\r\n\r\n LGAudioMixer.title = \"Mixer\";\r\n LGAudioMixer.desc = \"Audio mixer\";\r\n LiteGraph.registerNodeType(\"audio/mixer\", LGAudioMixer);\r\n\r\n function LGAudioADSR() {\r\n //default\r\n this.properties = {\r\n A: 0.1,\r\n D: 0.1,\r\n S: 0.1,\r\n R: 0.1\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createGain();\r\n this.audionode.gain.value = 0;\r\n this.addInput(\"in\", \"audio\");\r\n this.addInput(\"gate\", \"bool\");\r\n this.addOutput(\"out\", \"audio\");\r\n this.gate = false;\r\n }\r\n\r\n LGAudioADSR.prototype.onExecute = function() {\r\n var audioContext = LGAudio.getAudioContext();\r\n var now = audioContext.currentTime;\r\n var node = this.audionode;\r\n var gain = node.gain;\r\n var current_gate = this.getInputData(1);\r\n\r\n var A = this.getInputOrProperty(\"A\");\r\n var D = this.getInputOrProperty(\"D\");\r\n var S = this.getInputOrProperty(\"S\");\r\n var R = this.getInputOrProperty(\"R\");\r\n\r\n if (!this.gate && current_gate) {\r\n gain.cancelScheduledValues(0);\r\n gain.setValueAtTime(0, now);\r\n gain.linearRampToValueAtTime(1, now + A);\r\n gain.linearRampToValueAtTime(S, now + A + D);\r\n } else if (this.gate && !current_gate) {\r\n gain.cancelScheduledValues(0);\r\n gain.setValueAtTime(gain.value, now);\r\n gain.linearRampToValueAtTime(0, now + R);\r\n }\r\n\r\n this.gate = current_gate;\r\n };\r\n\r\n LGAudioADSR.prototype.onGetInputs = function() {\r\n return [\r\n [\"A\", \"number\"],\r\n [\"D\", \"number\"],\r\n [\"S\", \"number\"],\r\n [\"R\", \"number\"]\r\n ];\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioADSR);\r\n\r\n LGAudioADSR.title = \"ADSR\";\r\n LGAudioADSR.desc = \"Audio envelope\";\r\n LiteGraph.registerNodeType(\"audio/adsr\", LGAudioADSR);\r\n\r\n function LGAudioDelay() {\r\n //default\r\n this.properties = {\r\n delayTime: 0.5\r\n };\r\n\r\n this.audionode = LGAudio.getAudioContext().createDelay(10);\r\n this.audionode.delayTime.value = this.properties.delayTime;\r\n this.addInput(\"in\", \"audio\");\r\n this.addInput(\"time\", \"number\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioDelay);\r\n\r\n LGAudioDelay.prototype.onExecute = function() {\r\n var v = this.getInputData(1);\r\n if (v !== undefined) {\r\n this.audionode.delayTime.value = v;\r\n }\r\n };\r\n\r\n LGAudioDelay.title = \"Delay\";\r\n LGAudioDelay.desc = \"Audio delay\";\r\n LiteGraph.registerNodeType(\"audio/delay\", LGAudioDelay);\r\n\r\n function LGAudioBiquadFilter() {\r\n //default\r\n this.properties = {\r\n frequency: 350,\r\n detune: 0,\r\n Q: 1\r\n };\r\n this.addProperty(\"type\", \"lowpass\", \"enum\", {\r\n values: [\r\n \"lowpass\",\r\n \"highpass\",\r\n \"bandpass\",\r\n \"lowshelf\",\r\n \"highshelf\",\r\n \"peaking\",\r\n \"notch\",\r\n \"allpass\"\r\n ]\r\n });\r\n\r\n //create node\r\n this.audionode = LGAudio.getAudioContext().createBiquadFilter();\r\n\r\n //slots\r\n this.addInput(\"in\", \"audio\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioBiquadFilter.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v !== undefined) {\r\n this.audionode[input.name].value = v;\r\n }\r\n }\r\n };\r\n\r\n LGAudioBiquadFilter.prototype.onGetInputs = function() {\r\n return [[\"frequency\", \"number\"], [\"detune\", \"number\"], [\"Q\", \"number\"]];\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioBiquadFilter);\r\n\r\n LGAudioBiquadFilter.title = \"BiquadFilter\";\r\n LGAudioBiquadFilter.desc = \"Audio filter\";\r\n LiteGraph.registerNodeType(\"audio/biquadfilter\", LGAudioBiquadFilter);\r\n\r\n function LGAudioOscillatorNode() {\r\n //default\r\n this.properties = {\r\n frequency: 440,\r\n detune: 0,\r\n type: \"sine\"\r\n };\r\n this.addProperty(\"type\", \"sine\", \"enum\", {\r\n values: [\"sine\", \"square\", \"sawtooth\", \"triangle\", \"custom\"]\r\n });\r\n\r\n //create node\r\n this.audionode = LGAudio.getAudioContext().createOscillator();\r\n\r\n //slots\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioOscillatorNode.prototype.onStart = function() {\r\n if (!this.audionode.started) {\r\n this.audionode.started = true;\r\n try {\r\n this.audionode.start();\r\n } catch (err) {}\r\n }\r\n };\r\n\r\n LGAudioOscillatorNode.prototype.onStop = function() {\r\n if (this.audionode.started) {\r\n this.audionode.started = false;\r\n this.audionode.stop();\r\n }\r\n };\r\n\r\n LGAudioOscillatorNode.prototype.onPause = function() {\r\n this.onStop();\r\n };\r\n\r\n LGAudioOscillatorNode.prototype.onUnpause = function() {\r\n this.onStart();\r\n };\r\n\r\n LGAudioOscillatorNode.prototype.onExecute = function() {\r\n if (!this.inputs || !this.inputs.length) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < this.inputs.length; ++i) {\r\n var input = this.inputs[i];\r\n if (input.link == null) {\r\n continue;\r\n }\r\n var v = this.getInputData(i);\r\n if (v !== undefined) {\r\n this.audionode[input.name].value = v;\r\n }\r\n }\r\n };\r\n\r\n LGAudioOscillatorNode.prototype.onGetInputs = function() {\r\n return [\r\n [\"frequency\", \"number\"],\r\n [\"detune\", \"number\"],\r\n [\"type\", \"string\"]\r\n ];\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioOscillatorNode);\r\n\r\n LGAudioOscillatorNode.title = \"Oscillator\";\r\n LGAudioOscillatorNode.desc = \"Oscillator\";\r\n LiteGraph.registerNodeType(\"audio/oscillator\", LGAudioOscillatorNode);\r\n\r\n //*****************************************************\r\n\r\n //EXTRA\r\n\r\n function LGAudioVisualization() {\r\n this.properties = {\r\n continuous: true,\r\n mark: -1\r\n };\r\n\r\n this.addInput(\"data\", \"array\");\r\n this.addInput(\"mark\", \"number\");\r\n this.size = [300, 200];\r\n this._last_buffer = null;\r\n }\r\n\r\n LGAudioVisualization.prototype.onExecute = function() {\r\n this._last_buffer = this.getInputData(0);\r\n var v = this.getInputData(1);\r\n if (v !== undefined) {\r\n this.properties.mark = v;\r\n }\r\n this.setDirtyCanvas(true, false);\r\n };\r\n\r\n LGAudioVisualization.prototype.onDrawForeground = function(ctx) {\r\n if (!this._last_buffer) {\r\n return;\r\n }\r\n\r\n var buffer = this._last_buffer;\r\n\r\n //delta represents how many samples we advance per pixel\r\n var delta = buffer.length / this.size[0];\r\n var h = this.size[1];\r\n\r\n ctx.fillStyle = \"black\";\r\n ctx.fillRect(0, 0, this.size[0], this.size[1]);\r\n ctx.strokeStyle = \"white\";\r\n ctx.beginPath();\r\n var x = 0;\r\n\r\n if (this.properties.continuous) {\r\n ctx.moveTo(x, h);\r\n for (var i = 0; i < buffer.length; i += delta) {\r\n ctx.lineTo(x, h - (buffer[i | 0] / 255) * h);\r\n x++;\r\n }\r\n } else {\r\n for (var i = 0; i < buffer.length; i += delta) {\r\n ctx.moveTo(x + 0.5, h);\r\n ctx.lineTo(x + 0.5, h - (buffer[i | 0] / 255) * h);\r\n x++;\r\n }\r\n }\r\n ctx.stroke();\r\n\r\n if (this.properties.mark >= 0) {\r\n var samplerate = LGAudio.getAudioContext().sampleRate;\r\n var binfreq = samplerate / buffer.length;\r\n var x = (2 * (this.properties.mark / binfreq)) / delta;\r\n if (x >= this.size[0]) {\r\n x = this.size[0] - 1;\r\n }\r\n ctx.strokeStyle = \"red\";\r\n ctx.beginPath();\r\n ctx.moveTo(x, h);\r\n ctx.lineTo(x, 0);\r\n ctx.stroke();\r\n }\r\n };\r\n\r\n LGAudioVisualization.title = \"Visualization\";\r\n LGAudioVisualization.desc = \"Audio Visualization\";\r\n LiteGraph.registerNodeType(\"audio/visualization\", LGAudioVisualization);\r\n\r\n function LGAudioBandSignal() {\r\n //default\r\n this.properties = {\r\n band: 440,\r\n amplitude: 1\r\n };\r\n\r\n this.addInput(\"freqs\", \"array\");\r\n this.addOutput(\"signal\", \"number\");\r\n }\r\n\r\n LGAudioBandSignal.prototype.onExecute = function() {\r\n this._freqs = this.getInputData(0);\r\n if (!this._freqs) {\r\n return;\r\n }\r\n\r\n var band = this.properties.band;\r\n var v = this.getInputData(1);\r\n if (v !== undefined) {\r\n band = v;\r\n }\r\n\r\n var samplerate = LGAudio.getAudioContext().sampleRate;\r\n var binfreq = samplerate / this._freqs.length;\r\n var index = 2 * (band / binfreq);\r\n var v = 0;\r\n if (index < 0) {\r\n v = this._freqs[0];\r\n }\r\n if (index >= this._freqs.length) {\r\n v = this._freqs[this._freqs.length - 1];\r\n } else {\r\n var pos = index | 0;\r\n var v0 = this._freqs[pos];\r\n var v1 = this._freqs[pos + 1];\r\n var f = index - pos;\r\n v = v0 * (1 - f) + v1 * f;\r\n }\r\n\r\n this.setOutputData(0, (v / 255) * this.properties.amplitude);\r\n };\r\n\r\n LGAudioBandSignal.prototype.onGetInputs = function() {\r\n return [[\"band\", \"number\"]];\r\n };\r\n\r\n LGAudioBandSignal.title = \"Signal\";\r\n LGAudioBandSignal.desc = \"extract the signal of some frequency\";\r\n LiteGraph.registerNodeType(\"audio/signal\", LGAudioBandSignal);\r\n\r\n function LGAudioScript() {\r\n if (!LGAudioScript.default_code) {\r\n var code = LGAudioScript.default_function.toString();\r\n var index = code.indexOf(\"{\") + 1;\r\n var index2 = code.lastIndexOf(\"}\");\r\n LGAudioScript.default_code = code.substr(index, index2 - index);\r\n }\r\n\r\n //default\r\n this.properties = {\r\n code: LGAudioScript.default_code\r\n };\r\n\r\n //create node\r\n var ctx = LGAudio.getAudioContext();\r\n if (ctx.createScriptProcessor) {\r\n this.audionode = ctx.createScriptProcessor(4096, 1, 1);\r\n }\r\n //buffer size, input channels, output channels\r\n else {\r\n console.warn(\"ScriptProcessorNode deprecated\");\r\n this.audionode = ctx.createGain(); //bypass audio\r\n }\r\n\r\n this.processCode();\r\n if (!LGAudioScript._bypass_function) {\r\n LGAudioScript._bypass_function = this.audionode.onaudioprocess;\r\n }\r\n\r\n //slots\r\n this.addInput(\"in\", \"audio\");\r\n this.addOutput(\"out\", \"audio\");\r\n }\r\n\r\n LGAudioScript.prototype.onAdded = function(graph) {\r\n if (graph.status == LGraph.STATUS_RUNNING) {\r\n this.audionode.onaudioprocess = this._callback;\r\n }\r\n };\r\n\r\n LGAudioScript[\"@code\"] = { widget: \"code\", type: \"code\" };\r\n\r\n LGAudioScript.prototype.onStart = function() {\r\n this.audionode.onaudioprocess = this._callback;\r\n };\r\n\r\n LGAudioScript.prototype.onStop = function() {\r\n this.audionode.onaudioprocess = LGAudioScript._bypass_function;\r\n };\r\n\r\n LGAudioScript.prototype.onPause = function() {\r\n this.audionode.onaudioprocess = LGAudioScript._bypass_function;\r\n };\r\n\r\n LGAudioScript.prototype.onUnpause = function() {\r\n this.audionode.onaudioprocess = this._callback;\r\n };\r\n\r\n LGAudioScript.prototype.onExecute = function() {\r\n //nothing! because we need an onExecute to receive onStart... fix that\r\n };\r\n\r\n LGAudioScript.prototype.onRemoved = function() {\r\n this.audionode.onaudioprocess = LGAudioScript._bypass_function;\r\n };\r\n\r\n LGAudioScript.prototype.processCode = function() {\r\n try {\r\n var func = new Function(\"properties\", this.properties.code);\r\n this._script = new func(this.properties);\r\n this._old_code = this.properties.code;\r\n this._callback = this._script.onaudioprocess;\r\n } catch (err) {\r\n console.error(\"Error in onaudioprocess code\", err);\r\n this._callback = LGAudioScript._bypass_function;\r\n this.audionode.onaudioprocess = this._callback;\r\n }\r\n };\r\n\r\n LGAudioScript.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"code\") {\r\n this.properties.code = value;\r\n this.processCode();\r\n if (this.graph && this.graph.status == LGraph.STATUS_RUNNING) {\r\n this.audionode.onaudioprocess = this._callback;\r\n }\r\n }\r\n };\r\n\r\n LGAudioScript.default_function = function() {\r\n this.onaudioprocess = function(audioProcessingEvent) {\r\n // The input buffer is the song we loaded earlier\r\n var inputBuffer = audioProcessingEvent.inputBuffer;\r\n\r\n // The output buffer contains the samples that will be modified and played\r\n var outputBuffer = audioProcessingEvent.outputBuffer;\r\n\r\n // Loop through the output channels (in this case there is only one)\r\n for (\r\n var channel = 0;\r\n channel < outputBuffer.numberOfChannels;\r\n channel++\r\n ) {\r\n var inputData = inputBuffer.getChannelData(channel);\r\n var outputData = outputBuffer.getChannelData(channel);\r\n\r\n // Loop through the 4096 samples\r\n for (var sample = 0; sample < inputBuffer.length; sample++) {\r\n // make output equal to the same as the input\r\n outputData[sample] = inputData[sample];\r\n }\r\n }\r\n };\r\n };\r\n\r\n LGAudio.createAudioNodeWrapper(LGAudioScript);\r\n\r\n LGAudioScript.title = \"Script\";\r\n LGAudioScript.desc = \"apply script to signal\";\r\n LiteGraph.registerNodeType(\"audio/script\", LGAudioScript);\r\n\r\n function LGAudioDestination() {\r\n this.audionode = LGAudio.getAudioContext().destination;\r\n this.addInput(\"in\", \"audio\");\r\n }\r\n\r\n LGAudioDestination.title = \"Destination\";\r\n LGAudioDestination.desc = \"Audio output\";\r\n LiteGraph.registerNodeType(\"audio/destination\", LGAudioDestination);\r\n})(this);\r\n\n//event related nodes\r\n(function(global) {\r\n var LiteGraph = global.LiteGraph;\r\n\r\n function LGWebSocket() {\r\n this.size = [60, 20];\r\n this.addInput(\"send\", LiteGraph.ACTION);\r\n this.addOutput(\"received\", LiteGraph.EVENT);\r\n this.addInput(\"in\", 0);\r\n this.addOutput(\"out\", 0);\r\n this.properties = {\r\n url: \"\",\r\n room: \"lgraph\", //allows to filter messages,\r\n only_send_changes: true\r\n };\r\n this._ws = null;\r\n this._last_sent_data = [];\r\n this._last_received_data = [];\r\n }\r\n\r\n LGWebSocket.title = \"WebSocket\";\r\n LGWebSocket.desc = \"Send data through a websocket\";\r\n\r\n LGWebSocket.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"url\") {\r\n this.connectSocket();\r\n }\r\n };\r\n\r\n LGWebSocket.prototype.onExecute = function() {\r\n if (!this._ws && this.properties.url) {\r\n this.connectSocket();\r\n }\r\n\r\n if (!this._ws || this._ws.readyState != WebSocket.OPEN) {\r\n return;\r\n }\r\n\r\n var room = this.properties.room;\r\n var only_changes = this.properties.only_send_changes;\r\n\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var data = this.getInputData(i);\r\n if (data == null) {\r\n continue;\r\n }\r\n var json;\r\n try {\r\n json = JSON.stringify({\r\n type: 0,\r\n room: room,\r\n channel: i,\r\n data: data\r\n });\r\n } catch (err) {\r\n continue;\r\n }\r\n if (only_changes && this._last_sent_data[i] == json) {\r\n continue;\r\n }\r\n\r\n this._last_sent_data[i] = json;\r\n this._ws.send(json);\r\n }\r\n\r\n for (var i = 1; i < this.outputs.length; ++i) {\r\n this.setOutputData(i, this._last_received_data[i]);\r\n }\r\n\r\n if (this.boxcolor == \"#AFA\") {\r\n this.boxcolor = \"#6C6\";\r\n }\r\n };\r\n\r\n LGWebSocket.prototype.connectSocket = function() {\r\n var that = this;\r\n var url = this.properties.url;\r\n if (url.substr(0, 2) != \"ws\") {\r\n url = \"ws://\" + url;\r\n }\r\n this._ws = new WebSocket(url);\r\n this._ws.onopen = function() {\r\n console.log(\"ready\");\r\n that.boxcolor = \"#6C6\";\r\n };\r\n this._ws.onmessage = function(e) {\r\n that.boxcolor = \"#AFA\";\r\n var data = JSON.parse(e.data);\r\n if (data.room && data.room != that.properties.room) {\r\n return;\r\n }\r\n if (data.type == 1) {\r\n if (\r\n data.data.object_class &&\r\n LiteGraph[data.data.object_class]\r\n ) {\r\n var obj = null;\r\n try {\r\n obj = new LiteGraph[data.data.object_class](data.data);\r\n that.triggerSlot(0, obj);\r\n } catch (err) {\r\n return;\r\n }\r\n } else {\r\n that.triggerSlot(0, data.data);\r\n }\r\n } else {\r\n that._last_received_data[data.channel || 0] = data.data;\r\n }\r\n };\r\n this._ws.onerror = function(e) {\r\n console.log(\"couldnt connect to websocket\");\r\n that.boxcolor = \"#E88\";\r\n };\r\n this._ws.onclose = function(e) {\r\n console.log(\"connection closed\");\r\n that.boxcolor = \"#000\";\r\n };\r\n };\r\n\r\n LGWebSocket.prototype.send = function(data) {\r\n if (!this._ws || this._ws.readyState != WebSocket.OPEN) {\r\n return;\r\n }\r\n this._ws.send(JSON.stringify({ type: 1, msg: data }));\r\n };\r\n\r\n LGWebSocket.prototype.onAction = function(action, param) {\r\n if (!this._ws || this._ws.readyState != WebSocket.OPEN) {\r\n return;\r\n }\r\n this._ws.send({\r\n type: 1,\r\n room: this.properties.room,\r\n action: action,\r\n data: param\r\n });\r\n };\r\n\r\n LGWebSocket.prototype.onGetInputs = function() {\r\n return [[\"in\", 0]];\r\n };\r\n\r\n LGWebSocket.prototype.onGetOutputs = function() {\r\n return [[\"out\", 0]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"network/websocket\", LGWebSocket);\r\n\r\n //It is like a websocket but using the SillyServer.js server that bounces packets back to all clients connected:\r\n //For more information: https://github.com/jagenjo/SillyServer.js\r\n\r\n function LGSillyClient() {\r\n //this.size = [60,20];\r\n this.room_widget = this.addWidget(\r\n \"text\",\r\n \"Room\",\r\n \"lgraph\",\r\n this.setRoom.bind(this)\r\n );\r\n this.addWidget(\r\n \"button\",\r\n \"Reconnect\",\r\n null,\r\n this.connectSocket.bind(this)\r\n );\r\n\r\n this.addInput(\"send\", LiteGraph.ACTION);\r\n this.addOutput(\"received\", LiteGraph.EVENT);\r\n this.addInput(\"in\", 0);\r\n this.addOutput(\"out\", 0);\r\n this.properties = {\r\n url: \"tamats.com:55000\",\r\n room: \"lgraph\",\r\n only_send_changes: true\r\n };\r\n\r\n this._server = null;\r\n this.connectSocket();\r\n this._last_sent_data = [];\r\n this._last_received_data = [];\r\n\r\n\t\tif(typeof(SillyClient) == \"undefined\")\r\n\t\t\tconsole.warn(\"remember to add SillyClient.js to your project: https://tamats.com/projects/sillyserver/src/sillyclient.js\");\r\n }\r\n\r\n LGSillyClient.title = \"SillyClient\";\r\n LGSillyClient.desc = \"Connects to SillyServer to broadcast messages\";\r\n\r\n LGSillyClient.prototype.onPropertyChanged = function(name, value) {\r\n if (name == \"room\") {\r\n this.room_widget.value = value;\r\n }\r\n this.connectSocket();\r\n };\r\n\r\n LGSillyClient.prototype.setRoom = function(room_name) {\r\n this.properties.room = room_name;\r\n this.room_widget.value = room_name;\r\n this.connectSocket();\r\n };\r\n\r\n //force label names\r\n LGSillyClient.prototype.onDrawForeground = function() {\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var slot = this.inputs[i];\r\n slot.label = \"in_\" + i;\r\n }\r\n for (var i = 1; i < this.outputs.length; ++i) {\r\n var slot = this.outputs[i];\r\n slot.label = \"out_\" + i;\r\n }\r\n };\r\n\r\n LGSillyClient.prototype.onExecute = function() {\r\n if (!this._server || !this._server.is_connected) {\r\n return;\r\n }\r\n\r\n var only_send_changes = this.properties.only_send_changes;\r\n\r\n for (var i = 1; i < this.inputs.length; ++i) {\r\n var data = this.getInputData(i);\r\n\t\t\tvar prev_data = this._last_sent_data[i];\r\n if (data != null) {\r\n if (only_send_changes)\r\n\t\t\t\t{\t\r\n\t\t\t\t\tvar is_equal = true;\r\n\t\t\t\t\tif( data && data.length && prev_data && prev_data.length == data.length && data.constructor !== String)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfor(var j = 0; j < data.length; ++j)\r\n\t\t\t\t\t\t\tif( prev_data[j] != data[j] )\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tis_equal = false;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(this._last_sent_data[i] != data)\r\n\t\t\t\t\t\tis_equal = false;\r\n\t\t\t\t\tif(is_equal)\r\n\t\t\t\t\t\t\tcontinue;\r\n }\r\n this._server.sendMessage({ type: 0, channel: i, data: data });\r\n\t\t\t\tif( data.length && data.constructor !== String )\r\n\t\t\t\t{\r\n\t\t\t\t\tif( this._last_sent_data[i] )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._last_sent_data[i].length = data.length;\r\n\t\t\t\t\t\tfor(var j = 0; j < data.length; ++j)\r\n\t\t\t\t\t\t\tthis._last_sent_data[i][j] = data[j];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse //create\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(data.constructor === Array)\r\n\t\t\t\t\t\t\tthis._last_sent_data[i] = data.concat();\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tthis._last_sent_data[i] = new data.constructor( data );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t this._last_sent_data[i] = data; //should be cloned\r\n }\r\n }\r\n\r\n for (var i = 1; i < this.outputs.length; ++i) {\r\n this.setOutputData(i, this._last_received_data[i]);\r\n }\r\n\r\n if (this.boxcolor == \"#AFA\") {\r\n this.boxcolor = \"#6C6\";\r\n }\r\n };\r\n\r\n LGSillyClient.prototype.connectSocket = function() {\r\n var that = this;\r\n if (typeof SillyClient == \"undefined\") {\r\n if (!this._error) {\r\n console.error(\r\n \"SillyClient node cannot be used, you must include SillyServer.js\"\r\n );\r\n }\r\n this._error = true;\r\n return;\r\n }\r\n\r\n this._server = new SillyClient();\r\n this._server.on_ready = function() {\r\n console.log(\"ready\");\r\n that.boxcolor = \"#6C6\";\r\n };\r\n this._server.on_message = function(id, msg) {\r\n var data = null;\r\n try {\r\n data = JSON.parse(msg);\r\n } catch (err) {\r\n return;\r\n }\r\n\r\n if (data.type == 1) {\r\n //EVENT slot\r\n if (\r\n data.data.object_class &&\r\n LiteGraph[data.data.object_class]\r\n ) {\r\n var obj = null;\r\n try {\r\n obj = new LiteGraph[data.data.object_class](data.data);\r\n that.triggerSlot(0, obj);\r\n } catch (err) {\r\n return;\r\n }\r\n } else {\r\n that.triggerSlot(0, data.data);\r\n }\r\n } //for FLOW slots\r\n else {\r\n that._last_received_data[data.channel || 0] = data.data;\r\n }\r\n that.boxcolor = \"#AFA\";\r\n };\r\n this._server.on_error = function(e) {\r\n console.log(\"couldnt connect to websocket\");\r\n that.boxcolor = \"#E88\";\r\n };\r\n this._server.on_close = function(e) {\r\n console.log(\"connection closed\");\r\n that.boxcolor = \"#000\";\r\n };\r\n\r\n if (this.properties.url && this.properties.room) {\r\n try {\r\n this._server.connect(this.properties.url, this.properties.room);\r\n } catch (err) {\r\n console.error(\"SillyServer error: \" + err);\r\n this._server = null;\r\n return;\r\n }\r\n this._final_url = this.properties.url + \"/\" + this.properties.room;\r\n }\r\n };\r\n\r\n LGSillyClient.prototype.send = function(data) {\r\n if (!this._server || !this._server.is_connected) {\r\n return;\r\n }\r\n this._server.sendMessage({ type: 1, data: data });\r\n };\r\n\r\n LGSillyClient.prototype.onAction = function(action, param) {\r\n if (!this._server || !this._server.is_connected) {\r\n return;\r\n }\r\n this._server.sendMessage({ type: 1, action: action, data: param });\r\n };\r\n\r\n LGSillyClient.prototype.onGetInputs = function() {\r\n return [[\"in\", 0]];\r\n };\r\n\r\n LGSillyClient.prototype.onGetOutputs = function() {\r\n return [[\"out\", 0]];\r\n };\r\n\r\n LiteGraph.registerNodeType(\"network/sillyclient\", LGSillyClient);\r\n})(this);\r\n\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Lazy {\n constructor(executor) {\n this.executor = executor;\n this._didRun = false;\n }\n /**\n * Get the wrapped value.\n *\n * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only\n * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value\n */\n getValue() {\n if (!this._didRun) {\n try {\n this._value = this.executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n /**\n * Get the wrapped value without forcing evaluation.\n */\n get rawValue() { return this._value; }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getDomNodePagePosition } from '../../../base/browser/dom.js';\nimport { Action, Separator } from '../../../base/common/actions.js';\nimport { canceled } from '../../../base/common/errors.js';\nimport { Lazy } from '../../../base/common/lazy.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { Position } from '../../common/core/position.js';\nimport { CodeActionProviderRegistry } from '../../common/modes.js';\nimport { codeActionCommandId, CodeActionItem, fixAllCommandId, organizeImportsCommandId, refactorCommandId, sourceActionCommandId } from './codeAction.js';\nimport { CodeActionCommandArgs, CodeActionKind } from './types.js';\nimport { IContextMenuService } from '../../../platform/contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nclass CodeActionAction extends Action {\n constructor(action, callback) {\n super(action.command ? action.command.id : action.title, stripNewlines(action.title), undefined, !action.disabled, callback);\n this.action = action;\n }\n}\nfunction stripNewlines(str) {\n return str.replace(/\\r\\n|\\r|\\n/g, ' ');\n}\nlet CodeActionMenu = class CodeActionMenu extends Disposable {\n constructor(_editor, _delegate, _contextMenuService, keybindingService) {\n super();\n this._editor = _editor;\n this._delegate = _delegate;\n this._contextMenuService = _contextMenuService;\n this._visible = false;\n this._showingActions = this._register(new MutableDisposable());\n this._keybindingResolver = new CodeActionKeybindingResolver({\n getKeybindings: () => keybindingService.getKeybindings()\n });\n }\n get isVisible() {\n return this._visible;\n }\n show(trigger, codeActions, at, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const actionsToShow = options.includeDisabledActions ? codeActions.allActions : codeActions.validActions;\n if (!actionsToShow.length) {\n this._visible = false;\n return;\n }\n if (!this._editor.getDomNode()) {\n // cancel when editor went off-dom\n this._visible = false;\n throw canceled();\n }\n this._visible = true;\n this._showingActions.value = codeActions;\n const menuActions = this.getMenuActions(trigger, actionsToShow, codeActions.documentation);\n const anchor = Position.isIPosition(at) ? this._toCoords(at) : at || { x: 0, y: 0 };\n const resolver = this._keybindingResolver.getResolver();\n const useShadowDOM = this._editor.getOption(113 /* useShadowDOM */);\n this._contextMenuService.showContextMenu({\n domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : undefined,\n getAnchor: () => anchor,\n getActions: () => menuActions,\n onHide: () => {\n this._visible = false;\n this._editor.focus();\n },\n autoSelectFirstItem: true,\n getKeyBinding: action => action instanceof CodeActionAction ? resolver(action.action) : undefined,\n });\n });\n }\n getMenuActions(trigger, actionsToShow, documentation) {\n var _a, _b;\n const toCodeActionAction = (item) => new CodeActionAction(item.action, () => this._delegate.onSelectCodeAction(item));\n const result = actionsToShow\n .map(toCodeActionAction);\n const allDocumentation = [...documentation];\n const model = this._editor.getModel();\n if (model && result.length) {\n for (const provider of CodeActionProviderRegistry.all(model)) {\n if (provider._getAdditionalMenuItems) {\n allDocumentation.push(...provider._getAdditionalMenuItems({ trigger: trigger.type, only: (_b = (_a = trigger.filter) === null || _a === void 0 ? void 0 : _a.include) === null || _b === void 0 ? void 0 : _b.value }, actionsToShow.map(item => item.action)));\n }\n }\n }\n if (allDocumentation.length) {\n result.push(new Separator(), ...allDocumentation.map(command => toCodeActionAction(new CodeActionItem({\n title: command.title,\n command: command,\n }, undefined))));\n }\n return result;\n }\n _toCoords(position) {\n if (!this._editor.hasModel()) {\n return { x: 0, y: 0 };\n }\n this._editor.revealPosition(position, 1 /* Immediate */);\n this._editor.render();\n // Translate to absolute editor position\n const cursorCoords = this._editor.getScrolledVisiblePosition(position);\n const editorCoords = getDomNodePagePosition(this._editor.getDomNode());\n const x = editorCoords.left + cursorCoords.left;\n const y = editorCoords.top + cursorCoords.top + cursorCoords.height;\n return { x, y };\n }\n};\nCodeActionMenu = __decorate([\n __param(2, IContextMenuService),\n __param(3, IKeybindingService)\n], CodeActionMenu);\nexport { CodeActionMenu };\nexport class CodeActionKeybindingResolver {\n constructor(_keybindingProvider) {\n this._keybindingProvider = _keybindingProvider;\n }\n getResolver() {\n // Lazy since we may not actually ever read the value\n const allCodeActionBindings = new Lazy(() => this._keybindingProvider.getKeybindings()\n .filter(item => CodeActionKeybindingResolver.codeActionCommands.indexOf(item.command) >= 0)\n .filter(item => item.resolvedKeybinding)\n .map((item) => {\n // Special case these commands since they come built-in with VS Code and don't use 'commandArgs'\n let commandArgs = item.commandArgs;\n if (item.command === organizeImportsCommandId) {\n commandArgs = { kind: CodeActionKind.SourceOrganizeImports.value };\n }\n else if (item.command === fixAllCommandId) {\n commandArgs = { kind: CodeActionKind.SourceFixAll.value };\n }\n return Object.assign({ resolvedKeybinding: item.resolvedKeybinding }, CodeActionCommandArgs.fromUser(commandArgs, {\n kind: CodeActionKind.None,\n apply: \"never\" /* Never */\n }));\n }));\n return (action) => {\n if (action.kind) {\n const binding = this.bestKeybindingForCodeAction(action, allCodeActionBindings.getValue());\n return binding === null || binding === void 0 ? void 0 : binding.resolvedKeybinding;\n }\n return undefined;\n };\n }\n bestKeybindingForCodeAction(action, candidates) {\n if (!action.kind) {\n return undefined;\n }\n const kind = new CodeActionKind(action.kind);\n return candidates\n .filter(candidate => candidate.kind.contains(kind))\n .filter(candidate => {\n if (candidate.preferred) {\n // If the candidate keybinding only applies to preferred actions, the this action must also be preferred\n return action.isPreferred;\n }\n return true;\n })\n .reduceRight((currentBest, candidate) => {\n if (!currentBest) {\n return candidate;\n }\n // Select the more specific binding\n return currentBest.kind.contains(candidate.kind) ? candidate : currentBest;\n }, undefined);\n }\n}\nCodeActionKeybindingResolver.codeActionCommands = [\n refactorCommandId,\n codeActionCommandId,\n sourceActionCommandId,\n organizeImportsCommandId,\n fixAllCommandId\n];\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { GlobalMouseMoveMonitor, standardMouseMoveMerger } from '../../../base/browser/globalMouseMoveMonitor.js';\nimport { Gesture } from '../../../base/browser/touch.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport './lightBulbWidget.css';\nimport { TextModel } from '../../common/model/textModel.js';\nimport * as nls from '../../../nls.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { editorBackground, editorLightBulbAutoFixForeground, editorLightBulbForeground } from '../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant } from '../../../platform/theme/common/themeService.js';\nvar LightBulbState;\n(function (LightBulbState) {\n LightBulbState.Hidden = { type: 0 /* Hidden */ };\n class Showing {\n constructor(actions, trigger, editorPosition, widgetPosition) {\n this.actions = actions;\n this.trigger = trigger;\n this.editorPosition = editorPosition;\n this.widgetPosition = widgetPosition;\n this.type = 1 /* Showing */;\n }\n }\n LightBulbState.Showing = Showing;\n})(LightBulbState || (LightBulbState = {}));\nlet LightBulbWidget = class LightBulbWidget extends Disposable {\n constructor(_editor, _quickFixActionId, _preferredFixActionId, _keybindingService) {\n super();\n this._editor = _editor;\n this._quickFixActionId = _quickFixActionId;\n this._preferredFixActionId = _preferredFixActionId;\n this._keybindingService = _keybindingService;\n this._onClick = this._register(new Emitter());\n this.onClick = this._onClick.event;\n this._state = LightBulbState.Hidden;\n this._domNode = document.createElement('div');\n this._domNode.className = Codicon.lightBulb.classNames;\n this._editor.addContentWidget(this);\n this._register(this._editor.onDidChangeModelContent(_ => {\n // cancel when the line in question has been removed\n const editorModel = this._editor.getModel();\n if (this.state.type !== 1 /* Showing */ || !editorModel || this.state.editorPosition.lineNumber >= editorModel.getLineCount()) {\n this.hide();\n }\n }));\n Gesture.ignoreTarget(this._domNode);\n this._register(dom.addStandardDisposableGenericMouseDownListner(this._domNode, e => {\n if (this.state.type !== 1 /* Showing */) {\n return;\n }\n // Make sure that focus / cursor location is not lost when clicking widget icon\n this._editor.focus();\n e.preventDefault();\n // a bit of extra work to make sure the menu\n // doesn't cover the line-text\n const { top, height } = dom.getDomNodePagePosition(this._domNode);\n const lineHeight = this._editor.getOption(58 /* lineHeight */);\n let pad = Math.floor(lineHeight / 3);\n if (this.state.widgetPosition.position !== null && this.state.widgetPosition.position.lineNumber < this.state.editorPosition.lineNumber) {\n pad += lineHeight;\n }\n this._onClick.fire({\n x: e.posx,\n y: top + height + pad,\n actions: this.state.actions,\n trigger: this.state.trigger,\n });\n }));\n this._register(dom.addDisposableListener(this._domNode, 'mouseenter', (e) => {\n if ((e.buttons & 1) !== 1) {\n return;\n }\n // mouse enters lightbulb while the primary/left button\n // is being pressed -> hide the lightbulb and block future\n // showings until mouse is released\n this.hide();\n const monitor = new GlobalMouseMoveMonitor();\n monitor.startMonitoring(e.target, e.buttons, standardMouseMoveMerger, () => { }, () => {\n monitor.dispose();\n });\n }));\n this._register(this._editor.onDidChangeConfiguration(e => {\n // hide when told to do so\n if (e.hasChanged(56 /* lightbulb */) && !this._editor.getOption(56 /* lightbulb */).enabled) {\n this.hide();\n }\n }));\n this._updateLightBulbTitleAndIcon();\n this._register(this._keybindingService.onDidUpdateKeybindings(this._updateLightBulbTitleAndIcon, this));\n }\n dispose() {\n super.dispose();\n this._editor.removeContentWidget(this);\n }\n getId() {\n return 'LightBulbWidget';\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return this._state.type === 1 /* Showing */ ? this._state.widgetPosition : null;\n }\n update(actions, trigger, atPosition) {\n if (actions.validActions.length <= 0) {\n return this.hide();\n }\n const options = this._editor.getOptions();\n if (!options.get(56 /* lightbulb */).enabled) {\n return this.hide();\n }\n const model = this._editor.getModel();\n if (!model) {\n return this.hide();\n }\n const { lineNumber, column } = model.validatePosition(atPosition);\n const tabSize = model.getOptions().tabSize;\n const fontInfo = options.get(43 /* fontInfo */);\n const lineContent = model.getLineContent(lineNumber);\n const indent = TextModel.computeIndentLevel(lineContent, tabSize);\n const lineHasSpace = fontInfo.spaceWidth * indent > 22;\n const isFolded = (lineNumber) => {\n return lineNumber > 2 && this._editor.getTopForLineNumber(lineNumber) === this._editor.getTopForLineNumber(lineNumber - 1);\n };\n let effectiveLineNumber = lineNumber;\n if (!lineHasSpace) {\n if (lineNumber > 1 && !isFolded(lineNumber - 1)) {\n effectiveLineNumber -= 1;\n }\n else if (!isFolded(lineNumber + 1)) {\n effectiveLineNumber += 1;\n }\n else if (column * fontInfo.spaceWidth < 22) {\n // cannot show lightbulb above/below and showing\n // it inline would overlay the cursor...\n return this.hide();\n }\n }\n this.state = new LightBulbState.Showing(actions, trigger, atPosition, {\n position: { lineNumber: effectiveLineNumber, column: 1 },\n preference: LightBulbWidget._posPref\n });\n this._editor.layoutContentWidget(this);\n }\n hide() {\n this.state = LightBulbState.Hidden;\n this._editor.layoutContentWidget(this);\n }\n get state() { return this._state; }\n set state(value) {\n this._state = value;\n this._updateLightBulbTitleAndIcon();\n }\n _updateLightBulbTitleAndIcon() {\n if (this.state.type === 1 /* Showing */ && this.state.actions.hasAutoFix) {\n // update icon\n this._domNode.classList.remove(...Codicon.lightBulb.classNamesArray);\n this._domNode.classList.add(...Codicon.lightbulbAutofix.classNamesArray);\n const preferredKb = this._keybindingService.lookupKeybinding(this._preferredFixActionId);\n if (preferredKb) {\n this.title = nls.localize('preferredcodeActionWithKb', \"Show Code Actions. Preferred Quick Fix Available ({0})\", preferredKb.getLabel());\n return;\n }\n }\n // update icon\n this._domNode.classList.remove(...Codicon.lightbulbAutofix.classNamesArray);\n this._domNode.classList.add(...Codicon.lightBulb.classNamesArray);\n const kb = this._keybindingService.lookupKeybinding(this._quickFixActionId);\n if (kb) {\n this.title = nls.localize('codeActionWithKb', \"Show Code Actions ({0})\", kb.getLabel());\n }\n else {\n this.title = nls.localize('codeAction', \"Show Code Actions\");\n }\n }\n set title(value) {\n this._domNode.title = value;\n }\n};\nLightBulbWidget._posPref = [0 /* EXACT */];\nLightBulbWidget = __decorate([\n __param(3, IKeybindingService)\n], LightBulbWidget);\nexport { LightBulbWidget };\nregisterThemingParticipant((theme, collector) => {\n var _a;\n const editorBackgroundColor = (_a = theme.getColor(editorBackground)) === null || _a === void 0 ? void 0 : _a.transparent(0.7);\n // Lightbulb Icon\n const editorLightBulbForegroundColor = theme.getColor(editorLightBulbForeground);\n if (editorLightBulbForegroundColor) {\n collector.addRule(`\n\t\t.monaco-editor .contentWidgets ${Codicon.lightBulb.cssSelector} {\n\t\t\tcolor: ${editorLightBulbForegroundColor};\n\t\t\tbackground-color: ${editorBackgroundColor};\n\t\t}`);\n }\n // Lightbulb Auto Fix Icon\n const editorLightBulbAutoFixForegroundColor = theme.getColor(editorLightBulbAutoFixForeground);\n if (editorLightBulbAutoFixForegroundColor) {\n collector.addRule(`\n\t\t.monaco-editor .contentWidgets ${Codicon.lightbulbAutofix.cssSelector} {\n\t\t\tcolor: ${editorLightBulbAutoFixForegroundColor};\n\t\t\tbackground-color: ${editorBackgroundColor};\n\t\t}`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CodeActionUi_disposed;\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Lazy } from '../../../base/common/lazy.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { MessageController } from '../message/messageController.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { CodeActionMenu } from './codeActionMenu.js';\nimport { LightBulbWidget } from './lightBulbWidget.js';\nlet CodeActionUi = class CodeActionUi extends Disposable {\n constructor(_editor, quickFixActionId, preferredFixActionId, delegate, instantiationService) {\n super();\n this._editor = _editor;\n this.delegate = delegate;\n this._activeCodeActions = this._register(new MutableDisposable());\n _CodeActionUi_disposed.set(this, false);\n this._codeActionWidget = new Lazy(() => {\n return this._register(instantiationService.createInstance(CodeActionMenu, this._editor, {\n onSelectCodeAction: (action) => __awaiter(this, void 0, void 0, function* () {\n this.delegate.applyCodeAction(action, /* retrigger */ true);\n })\n }));\n });\n this._lightBulbWidget = new Lazy(() => {\n const widget = this._register(instantiationService.createInstance(LightBulbWidget, this._editor, quickFixActionId, preferredFixActionId));\n this._register(widget.onClick(e => this.showCodeActionList(e.trigger, e.actions, e, { includeDisabledActions: false })));\n return widget;\n });\n }\n dispose() {\n __classPrivateFieldSet(this, _CodeActionUi_disposed, true, \"f\");\n super.dispose();\n }\n update(newState) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n if (newState.type !== 1 /* Triggered */) {\n (_a = this._lightBulbWidget.rawValue) === null || _a === void 0 ? void 0 : _a.hide();\n return;\n }\n let actions;\n try {\n actions = yield newState.actions;\n }\n catch (e) {\n onUnexpectedError(e);\n return;\n }\n if (__classPrivateFieldGet(this, _CodeActionUi_disposed, \"f\")) {\n return;\n }\n this._lightBulbWidget.getValue().update(actions, newState.trigger, newState.position);\n if (newState.trigger.type === 1 /* Invoke */) {\n if ((_b = newState.trigger.filter) === null || _b === void 0 ? void 0 : _b.include) { // Triggered for specific scope\n // Check to see if we want to auto apply.\n const validActionToApply = this.tryGetValidActionToApply(newState.trigger, actions);\n if (validActionToApply) {\n try {\n this._lightBulbWidget.getValue().hide();\n yield this.delegate.applyCodeAction(validActionToApply, false);\n }\n finally {\n actions.dispose();\n }\n return;\n }\n // Check to see if there is an action that we would have applied were it not invalid\n if (newState.trigger.context) {\n const invalidAction = this.getInvalidActionThatWouldHaveBeenApplied(newState.trigger, actions);\n if (invalidAction && invalidAction.action.disabled) {\n MessageController.get(this._editor).showMessage(invalidAction.action.disabled, newState.trigger.context.position);\n actions.dispose();\n return;\n }\n }\n }\n const includeDisabledActions = !!((_c = newState.trigger.filter) === null || _c === void 0 ? void 0 : _c.include);\n if (newState.trigger.context) {\n if (!actions.allActions.length || !includeDisabledActions && !actions.validActions.length) {\n MessageController.get(this._editor).showMessage(newState.trigger.context.notAvailableMessage, newState.trigger.context.position);\n this._activeCodeActions.value = actions;\n actions.dispose();\n return;\n }\n }\n this._activeCodeActions.value = actions;\n this._codeActionWidget.getValue().show(newState.trigger, actions, newState.position, { includeDisabledActions });\n }\n else {\n // auto magically triggered\n if (this._codeActionWidget.getValue().isVisible) {\n // TODO: Figure out if we should update the showing menu?\n actions.dispose();\n }\n else {\n this._activeCodeActions.value = actions;\n }\n }\n });\n }\n getInvalidActionThatWouldHaveBeenApplied(trigger, actions) {\n if (!actions.allActions.length) {\n return undefined;\n }\n if ((trigger.autoApply === \"first\" /* First */ && actions.validActions.length === 0)\n || (trigger.autoApply === \"ifSingle\" /* IfSingle */ && actions.allActions.length === 1)) {\n return actions.allActions.find(({ action }) => action.disabled);\n }\n return undefined;\n }\n tryGetValidActionToApply(trigger, actions) {\n if (!actions.validActions.length) {\n return undefined;\n }\n if ((trigger.autoApply === \"first\" /* First */ && actions.validActions.length > 0)\n || (trigger.autoApply === \"ifSingle\" /* IfSingle */ && actions.validActions.length === 1)) {\n return actions.validActions[0];\n }\n return undefined;\n }\n showCodeActionList(trigger, actions, at, options) {\n return __awaiter(this, void 0, void 0, function* () {\n this._codeActionWidget.getValue().show(trigger, actions, at, options);\n });\n }\n};\n_CodeActionUi_disposed = new WeakMap();\nCodeActionUi = __decorate([\n __param(4, IInstantiationService)\n], CodeActionUi);\nexport { CodeActionUi };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CodeActionModel_isDisposed;\nimport { createCancelablePromise, TimeoutTimer } from '../../../base/common/async.js';\nimport { isPromiseCanceledError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { isEqual } from '../../../base/common/resources.js';\nimport { Range } from '../../common/core/range.js';\nimport { CodeActionProviderRegistry } from '../../common/modes.js';\nimport { RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nimport { Progress } from '../../../platform/progress/common/progress.js';\nimport { getCodeActions } from './codeAction.js';\nexport const SUPPORTED_CODE_ACTIONS = new RawContextKey('supportedCodeAction', '');\nclass CodeActionOracle extends Disposable {\n constructor(_editor, _markerService, _signalChange, _delay = 250) {\n super();\n this._editor = _editor;\n this._markerService = _markerService;\n this._signalChange = _signalChange;\n this._delay = _delay;\n this._autoTriggerTimer = this._register(new TimeoutTimer());\n this._register(this._markerService.onMarkerChanged(e => this._onMarkerChanges(e)));\n this._register(this._editor.onDidChangeCursorPosition(() => this._onCursorChange()));\n }\n trigger(trigger) {\n const selection = this._getRangeOfSelectionUnlessWhitespaceEnclosed(trigger);\n return this._createEventAndSignalChange(trigger, selection);\n }\n _onMarkerChanges(resources) {\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n if (resources.some(resource => isEqual(resource, model.uri))) {\n this._autoTriggerTimer.cancelAndSet(() => {\n this.trigger({ type: 2 /* Auto */ });\n }, this._delay);\n }\n }\n _onCursorChange() {\n this._autoTriggerTimer.cancelAndSet(() => {\n this.trigger({ type: 2 /* Auto */ });\n }, this._delay);\n }\n _getRangeOfMarker(selection) {\n const model = this._editor.getModel();\n if (!model) {\n return undefined;\n }\n for (const marker of this._markerService.read({ resource: model.uri })) {\n const markerRange = model.validateRange(marker);\n if (Range.intersectRanges(markerRange, selection)) {\n return Range.lift(markerRange);\n }\n }\n return undefined;\n }\n _getRangeOfSelectionUnlessWhitespaceEnclosed(trigger) {\n if (!this._editor.hasModel()) {\n return undefined;\n }\n const model = this._editor.getModel();\n const selection = this._editor.getSelection();\n if (selection.isEmpty() && trigger.type === 2 /* Auto */) {\n const { lineNumber, column } = selection.getPosition();\n const line = model.getLineContent(lineNumber);\n if (line.length === 0) {\n // empty line\n return undefined;\n }\n else if (column === 1) {\n // look only right\n if (/\\s/.test(line[0])) {\n return undefined;\n }\n }\n else if (column === model.getLineMaxColumn(lineNumber)) {\n // look only left\n if (/\\s/.test(line[line.length - 1])) {\n return undefined;\n }\n }\n else {\n // look left and right\n if (/\\s/.test(line[column - 2]) && /\\s/.test(line[column - 1])) {\n return undefined;\n }\n }\n }\n return selection;\n }\n _createEventAndSignalChange(trigger, selection) {\n const model = this._editor.getModel();\n if (!selection || !model) {\n // cancel\n this._signalChange(undefined);\n return undefined;\n }\n const markerRange = this._getRangeOfMarker(selection);\n const position = markerRange ? markerRange.getStartPosition() : selection.getStartPosition();\n const e = {\n trigger,\n selection,\n position\n };\n this._signalChange(e);\n return e;\n }\n}\nexport var CodeActionsState;\n(function (CodeActionsState) {\n CodeActionsState.Empty = { type: 0 /* Empty */ };\n class Triggered {\n constructor(trigger, rangeOrSelection, position, _cancellablePromise) {\n this.trigger = trigger;\n this.rangeOrSelection = rangeOrSelection;\n this.position = position;\n this._cancellablePromise = _cancellablePromise;\n this.type = 1 /* Triggered */;\n this.actions = _cancellablePromise.catch((e) => {\n if (isPromiseCanceledError(e)) {\n return emptyCodeActionSet;\n }\n throw e;\n });\n }\n cancel() {\n this._cancellablePromise.cancel();\n }\n }\n CodeActionsState.Triggered = Triggered;\n})(CodeActionsState || (CodeActionsState = {}));\nconst emptyCodeActionSet = {\n allActions: [],\n validActions: [],\n dispose: () => { },\n documentation: [],\n hasAutoFix: false\n};\nexport class CodeActionModel extends Disposable {\n constructor(_editor, _markerService, contextKeyService, _progressService) {\n super();\n this._editor = _editor;\n this._markerService = _markerService;\n this._progressService = _progressService;\n this._codeActionOracle = this._register(new MutableDisposable());\n this._state = CodeActionsState.Empty;\n this._onDidChangeState = this._register(new Emitter());\n this.onDidChangeState = this._onDidChangeState.event;\n _CodeActionModel_isDisposed.set(this, false);\n this._supportedCodeActions = SUPPORTED_CODE_ACTIONS.bindTo(contextKeyService);\n this._register(this._editor.onDidChangeModel(() => this._update()));\n this._register(this._editor.onDidChangeModelLanguage(() => this._update()));\n this._register(CodeActionProviderRegistry.onDidChange(() => this._update()));\n this._update();\n }\n dispose() {\n if (__classPrivateFieldGet(this, _CodeActionModel_isDisposed, \"f\")) {\n return;\n }\n __classPrivateFieldSet(this, _CodeActionModel_isDisposed, true, \"f\");\n super.dispose();\n this.setState(CodeActionsState.Empty, true);\n }\n _update() {\n if (__classPrivateFieldGet(this, _CodeActionModel_isDisposed, \"f\")) {\n return;\n }\n this._codeActionOracle.value = undefined;\n this.setState(CodeActionsState.Empty);\n const model = this._editor.getModel();\n if (model\n && CodeActionProviderRegistry.has(model)\n && !this._editor.getOption(80 /* readOnly */)) {\n const supportedActions = [];\n for (const provider of CodeActionProviderRegistry.all(model)) {\n if (Array.isArray(provider.providedCodeActionKinds)) {\n supportedActions.push(...provider.providedCodeActionKinds);\n }\n }\n this._supportedCodeActions.set(supportedActions.join(' '));\n this._codeActionOracle.value = new CodeActionOracle(this._editor, this._markerService, trigger => {\n var _a;\n if (!trigger) {\n this.setState(CodeActionsState.Empty);\n return;\n }\n const actions = createCancelablePromise(token => getCodeActions(model, trigger.selection, trigger.trigger, Progress.None, token));\n if (trigger.trigger.type === 1 /* Invoke */) {\n (_a = this._progressService) === null || _a === void 0 ? void 0 : _a.showWhile(actions, 250);\n }\n this.setState(new CodeActionsState.Triggered(trigger.trigger, trigger.selection, trigger.position, actions));\n }, undefined);\n this._codeActionOracle.value.trigger({ type: 2 /* Auto */ });\n }\n else {\n this._supportedCodeActions.reset();\n }\n }\n trigger(trigger) {\n if (this._codeActionOracle.value) {\n this._codeActionOracle.value.trigger(trigger);\n }\n }\n setState(newState, skipNotify) {\n if (newState === this._state) {\n return;\n }\n // Cancel old request\n if (this._state.type === 1 /* Triggered */) {\n this._state.cancel();\n }\n this._state = newState;\n if (!skipNotify && !__classPrivateFieldGet(this, _CodeActionModel_isDisposed, \"f\")) {\n this._onDidChangeState.fire(newState);\n }\n }\n}\n_CodeActionModel_isDisposed = new WeakMap();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Lazy } from '../../../base/common/lazy.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { escapeRegExpCharacters } from '../../../base/common/strings.js';\nimport { EditorAction, EditorCommand } from '../../browser/editorExtensions.js';\nimport { IBulkEditService, ResourceEdit } from '../../browser/services/bulkEditService.js';\nimport { EditorContextKeys } from '../../common/editorContextKeys.js';\nimport { codeActionCommandId, fixAllCommandId, organizeImportsCommandId, refactorCommandId, sourceActionCommandId } from './codeAction.js';\nimport { CodeActionUi } from './codeActionUi.js';\nimport { MessageController } from '../message/messageController.js';\nimport * as nls from '../../../nls.js';\nimport { ICommandService } from '../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\nimport { INotificationService } from '../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../platform/progress/common/progress.js';\nimport { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js';\nimport { CodeActionModel, SUPPORTED_CODE_ACTIONS } from './codeActionModel.js';\nimport { CodeActionCommandArgs, CodeActionKind } from './types.js';\nfunction contextKeyForSupportedActions(kind) {\n return ContextKeyExpr.regex(SUPPORTED_CODE_ACTIONS.keys()[0], new RegExp('(\\\\s|^)' + escapeRegExpCharacters(kind.value) + '\\\\b'));\n}\nconst argsSchema = {\n type: 'object',\n defaultSnippets: [{ body: { kind: '' } }],\n properties: {\n 'kind': {\n type: 'string',\n description: nls.localize('args.schema.kind', \"Kind of the code action to run.\"),\n },\n 'apply': {\n type: 'string',\n description: nls.localize('args.schema.apply', \"Controls when the returned actions are applied.\"),\n default: \"ifSingle\" /* IfSingle */,\n enum: [\"first\" /* First */, \"ifSingle\" /* IfSingle */, \"never\" /* Never */],\n enumDescriptions: [\n nls.localize('args.schema.apply.first', \"Always apply the first returned code action.\"),\n nls.localize('args.schema.apply.ifSingle', \"Apply the first returned code action if it is the only one.\"),\n nls.localize('args.schema.apply.never', \"Do not apply the returned code actions.\"),\n ]\n },\n 'preferred': {\n type: 'boolean',\n default: false,\n description: nls.localize('args.schema.preferred', \"Controls if only preferred code actions should be returned.\"),\n }\n }\n};\nlet QuickFixController = class QuickFixController extends Disposable {\n constructor(editor, markerService, contextKeyService, progressService, _instantiationService) {\n super();\n this._instantiationService = _instantiationService;\n this._editor = editor;\n this._model = this._register(new CodeActionModel(this._editor, markerService, contextKeyService, progressService));\n this._register(this._model.onDidChangeState(newState => this.update(newState)));\n this._ui = new Lazy(() => this._register(new CodeActionUi(editor, QuickFixAction.Id, AutoFixAction.Id, {\n applyCodeAction: (action, retrigger) => __awaiter(this, void 0, void 0, function* () {\n try {\n yield this._applyCodeAction(action);\n }\n finally {\n if (retrigger) {\n this._trigger({ type: 2 /* Auto */, filter: {} });\n }\n }\n })\n }, this._instantiationService)));\n }\n static get(editor) {\n return editor.getContribution(QuickFixController.ID);\n }\n update(newState) {\n this._ui.getValue().update(newState);\n }\n showCodeActions(trigger, actions, at) {\n return this._ui.getValue().showCodeActionList(trigger, actions, at, { includeDisabledActions: false });\n }\n manualTriggerAtCurrentPosition(notAvailableMessage, filter, autoApply) {\n if (!this._editor.hasModel()) {\n return;\n }\n MessageController.get(this._editor).closeMessage();\n const triggerPosition = this._editor.getPosition();\n this._trigger({ type: 1 /* Invoke */, filter, autoApply, context: { notAvailableMessage, position: triggerPosition } });\n }\n _trigger(trigger) {\n return this._model.trigger(trigger);\n }\n _applyCodeAction(action) {\n return this._instantiationService.invokeFunction(applyCodeAction, action, this._editor);\n }\n};\nQuickFixController.ID = 'editor.contrib.quickFixController';\nQuickFixController = __decorate([\n __param(1, IMarkerService),\n __param(2, IContextKeyService),\n __param(3, IEditorProgressService),\n __param(4, IInstantiationService)\n], QuickFixController);\nexport { QuickFixController };\nexport function applyCodeAction(accessor, item, editor) {\n return __awaiter(this, void 0, void 0, function* () {\n const bulkEditService = accessor.get(IBulkEditService);\n const commandService = accessor.get(ICommandService);\n const telemetryService = accessor.get(ITelemetryService);\n const notificationService = accessor.get(INotificationService);\n telemetryService.publicLog2('codeAction.applyCodeAction', {\n codeActionTitle: item.action.title,\n codeActionKind: item.action.kind,\n codeActionIsPreferred: !!item.action.isPreferred,\n });\n yield item.resolve(CancellationToken.None);\n if (item.action.edit) {\n yield bulkEditService.apply(ResourceEdit.convert(item.action.edit), { editor, label: item.action.title });\n }\n if (item.action.command) {\n try {\n yield commandService.executeCommand(item.action.command.id, ...(item.action.command.arguments || []));\n }\n catch (err) {\n const message = asMessage(err);\n notificationService.error(typeof message === 'string'\n ? message\n : nls.localize('applyCodeActionFailed', \"An unknown error occurred while applying the code action\"));\n }\n }\n });\n}\nfunction asMessage(err) {\n if (typeof err === 'string') {\n return err;\n }\n else if (err instanceof Error && typeof err.message === 'string') {\n return err.message;\n }\n else {\n return undefined;\n }\n}\nfunction triggerCodeActionsForEditorSelection(editor, notAvailableMessage, filter, autoApply) {\n if (editor.hasModel()) {\n const controller = QuickFixController.get(editor);\n if (controller) {\n controller.manualTriggerAtCurrentPosition(notAvailableMessage, filter, autoApply);\n }\n }\n}\nexport class QuickFixAction extends EditorAction {\n constructor() {\n super({\n id: QuickFixAction.Id,\n label: nls.localize('quickfix.trigger.label', \"Quick Fix...\"),\n alias: 'Quick Fix...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* CtrlCmd */ | 84 /* Period */,\n weight: 100 /* EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.quickFix.noneMessage', \"No code actions available\"), undefined, undefined);\n }\n}\nQuickFixAction.Id = 'editor.action.quickFix';\nexport class CodeActionCommand extends EditorCommand {\n constructor() {\n super({\n id: codeActionCommandId,\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n description: {\n description: 'Trigger a code action',\n args: [{ name: 'args', schema: argsSchema, }]\n }\n });\n }\n runEditorCommand(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: CodeActionKind.Empty,\n apply: \"ifSingle\" /* IfSingle */,\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.codeAction.noneMessage.preferred.kind', \"No preferred code actions for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.codeAction.noneMessage.kind', \"No code actions for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.codeAction.noneMessage.preferred', \"No preferred code actions available\")\n : nls.localize('editor.action.codeAction.noneMessage', \"No code actions available\"), {\n include: args.kind,\n includeSourceActions: true,\n onlyIncludePreferredActions: args.preferred,\n }, args.apply);\n }\n}\nexport class RefactorAction extends EditorAction {\n constructor() {\n super({\n id: refactorCommandId,\n label: nls.localize('refactor.label', \"Refactor...\"),\n alias: 'Refactor...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* CtrlCmd */ | 1024 /* Shift */ | 48 /* KeyR */,\n mac: {\n primary: 256 /* WinCtrl */ | 1024 /* Shift */ | 48 /* KeyR */\n },\n weight: 100 /* EditorContrib */\n },\n contextMenuOpts: {\n group: '1_modification',\n order: 2,\n when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Refactor)),\n },\n description: {\n description: 'Refactor...',\n args: [{ name: 'args', schema: argsSchema }]\n }\n });\n }\n run(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: CodeActionKind.Refactor,\n apply: \"never\" /* Never */\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.refactor.noneMessage.preferred.kind', \"No preferred refactorings for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.refactor.noneMessage.kind', \"No refactorings for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.refactor.noneMessage.preferred', \"No preferred refactorings available\")\n : nls.localize('editor.action.refactor.noneMessage', \"No refactorings available\"), {\n include: CodeActionKind.Refactor.contains(args.kind) ? args.kind : CodeActionKind.None,\n onlyIncludePreferredActions: args.preferred,\n }, args.apply);\n }\n}\nexport class SourceAction extends EditorAction {\n constructor() {\n super({\n id: sourceActionCommandId,\n label: nls.localize('source.label', \"Source Action...\"),\n alias: 'Source Action...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n contextMenuOpts: {\n group: '1_modification',\n order: 2.1,\n when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Source)),\n },\n description: {\n description: 'Source Action...',\n args: [{ name: 'args', schema: argsSchema }]\n }\n });\n }\n run(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: CodeActionKind.Source,\n apply: \"never\" /* Never */\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.source.noneMessage.preferred.kind', \"No preferred source actions for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.source.noneMessage.kind', \"No source actions for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.source.noneMessage.preferred', \"No preferred source actions available\")\n : nls.localize('editor.action.source.noneMessage', \"No source actions available\"), {\n include: CodeActionKind.Source.contains(args.kind) ? args.kind : CodeActionKind.None,\n includeSourceActions: true,\n onlyIncludePreferredActions: args.preferred,\n }, args.apply);\n }\n}\nexport class OrganizeImportsAction extends EditorAction {\n constructor() {\n super({\n id: organizeImportsCommandId,\n label: nls.localize('organizeImports.label', \"Organize Imports\"),\n alias: 'Organize Imports',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceOrganizeImports)),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* Shift */ | 512 /* Alt */ | 45 /* KeyO */,\n weight: 100 /* EditorContrib */\n },\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.organize.noneMessage', \"No organize imports action available\"), { include: CodeActionKind.SourceOrganizeImports, includeSourceActions: true }, \"ifSingle\" /* IfSingle */);\n }\n}\nexport class FixAllAction extends EditorAction {\n constructor() {\n super({\n id: fixAllCommandId,\n label: nls.localize('fixAll.label', \"Fix All\"),\n alias: 'Fix All',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceFixAll))\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('fixAll.noneMessage', \"No fix all action available\"), { include: CodeActionKind.SourceFixAll, includeSourceActions: true }, \"ifSingle\" /* IfSingle */);\n }\n}\nexport class AutoFixAction extends EditorAction {\n constructor() {\n super({\n id: AutoFixAction.Id,\n label: nls.localize('autoFix.label', \"Auto Fix...\"),\n alias: 'Auto Fix...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.QuickFix)),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 512 /* Alt */ | 1024 /* Shift */ | 84 /* Period */,\n mac: {\n primary: 2048 /* CtrlCmd */ | 512 /* Alt */ | 84 /* Period */\n },\n weight: 100 /* EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.autoFix.noneMessage', \"No auto fixes available\"), {\n include: CodeActionKind.QuickFix,\n onlyIncludePreferredActions: true\n }, \"ifSingle\" /* IfSingle */);\n }\n}\nAutoFixAction.Id = 'editor.action.autoFix';\n","import * as React from 'react';\nimport type { IRefObject, Point } from '@fluentui/utilities';\n\n/**\n * FocusZone component class interface.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZone {\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focus(forceIntoFirstElement?: boolean): boolean;\n\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusLast(): boolean;\n\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param childElement - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n focusElement(childElement?: HTMLElement, forceAlignment?: boolean): boolean;\n\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference, rather\n * than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n setFocusAlignment(point: Point): void;\n}\n\n/**\n * FocusZone component props.\n * {@docCategory FocusZone}\n */\nexport interface IFocusZoneProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the IFocusZone interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * Optional callback to access the root DOM element.\n * @deprecated Temporary solution which will be replaced with ref in the V8 release.\n */\n elementRef?: React.Ref;\n\n /**\n * Additional class name to provide on the root element, in addition to the ms-FocusZone class.\n */\n className?: string;\n\n /**\n * Defines which arrows to react to.\n * @defaultvalue FocusZoneDirection.bidirectional\n */\n direction?: FocusZoneDirection;\n\n /**\n * Optionally defines the initial tabbable element inside the FocusZone.\n * If a string is passed then it is treated as a selector for identifying the initial tabbable element.\n * If a function is passed then it uses the root element as a parameter to return the initial tabbable element.\n */\n defaultTabbableElement?: string | ((root: HTMLElement) => HTMLElement);\n\n /**\n * Optionally provide a selector for identifying the initial active element.\n * @deprecated Use `defaultTabbableElement` instead.\n */\n defaultActiveElement?: string;\n\n /**\n * Determines if a default tabbable element should be force focused on FocusZone mount.\n * @default false\n */\n shouldFocusOnMount?: boolean;\n\n /**\n * If set, the FocusZone will not be tabbable and keyboard navigation will be disabled.\n * This does not affect disabled attribute of any child.\n */\n disabled?: boolean;\n\n /**\n * Element type the root element will use. Default is \"div\".\n * @deprecated Use `as` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n elementType?: any /* TODO should be `keyof React.ReactHTML`, tracking with https://github.com/Microsoft/TypeScript/issues/30050 */;\n\n /**\n * A component that should be used as the root element of the FocusZone component.\n */\n as?: React.ElementType;\n\n /**\n * If set, will cycle to the beginning of the targets once the user navigates to the\n * next target while at the end, and to the end when navigate to the previous at the beginning.\n */\n isCircularNavigation?: boolean;\n\n /**\n * If provided, this callback will be executed on keypresses to determine if the user\n * intends to navigate into the inner zone. Returning true will ask the first inner zone to\n * set focus.\n * @deprecated Use `shouldEnterInnerZone` instead.\n */\n isInnerZoneKeystroke?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Callback function that will be executed on keypresses to determine if the user intends to navigate into\n * the inner (nested) zone. Returning true will ask the first inner zone to set focus.\n */\n shouldEnterInnerZone?: (ev: React.KeyboardEvent) => boolean;\n\n /**\n * Sets the aria-labelledby attribute.\n * @deprecated Directly use the `aria-labelledby` attribute instead\n */\n ariaLabelledBy?: string;\n\n /**\n * Sets the aria-describedby attribute.\n * @deprecated Directly use the `aria-describedby` attribute instead\n */\n ariaDescribedBy?: string;\n\n /**\n * Callback for when one of immediate children elements gets active by getting focused\n * or by having one of its respective children elements focused.\n */\n onActiveElementChanged?: (element?: HTMLElement, ev?: React.FocusEvent) => void;\n\n /**\n * @deprecated Div props provided to the FocusZone will be mixed into the root element.\n * Deprecated at v1.12.1.\n */\n rootProps?: React.HTMLAttributes;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n * @deprecated Use `shouldReceiveFocus` instead.\n */\n onBeforeFocus?: (childElement?: HTMLElement) => boolean;\n\n /**\n * Callback method for determining if focus should indeed be set on the given element.\n * @param element - The child element within the zone to focus.\n * @returns True if focus should be set to the given element, false to avoid setting focus.\n */\n shouldReceiveFocus?: (childElement?: HTMLElement) => boolean;\n\n /** Allows focus to park on root when focus is in the `FocusZone` at render time. */\n allowFocusRoot?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n * @deprecated Use `handleTabKey` instead.\n *\n */\n allowTabKey?: boolean;\n\n /**\n * Allows tab key to be handled to tab through a list of items in the focus zone,\n * an unfortunate side effect is that users will not be able to tab out of the focus zone\n * and have to hit escape or some other key.\n */\n handleTabKey?: FocusZoneTabbableElements;\n\n /**\n * If true and FocusZone's root element (container) receives focus, the focus will land either on the\n * defaultTabbableElement (if set) or on the first tabbable element of this FocusZone.\n * Usually a case for nested focus zones, when the nested focus zone's container is a focusable element.\n */\n shouldFocusInnerElementWhenReceivedFocus?: boolean;\n\n /**\n * If true and TAB key is not handled by FocusZone, resets current active element to null value.\n * For example, when roving index is not desirable and focus should always reset to the default tabbable element.\n */\n shouldResetActiveElementWhenTabFromZone?: boolean;\n\n /**\n * Determines whether the FocusZone will walk up the DOM trying to invoke click callbacks on focusable elements on\n * Enter and Space keydowns to ensure accessibility for tags that don't guarantee this behavior.\n * @defaultvalue true\n */\n shouldRaiseClicks?: boolean;\n\n /**\n * Relates to `shouldRaiseClicks`.\n * Allows the click event raising for the \"Enter\" key to be set independently from `shouldRaiseClicks`.\n * Inherits the value of `shouldRaiseClicks` if not set explicitly.\n */\n shouldRaiseClicksOnEnter?: boolean;\n\n /**\n * Relates to `shouldRaiseClicks`.\n * Allows the click event raising for the \"Space\" key to be set independently from `shouldRaiseClicks`.\n * Inherits the value of `shouldRaiseClicks` if not set explicitly.\n */\n shouldRaiseClicksOnSpace?: boolean;\n\n /**\n * A callback method to determine if the input element should lose focus on arrow keys\n * @param inputElement - The input element which is to loose focus.\n * @returns True if input element should loose focus or false otherwise.\n */\n shouldInputLoseFocusOnArrowKey?: (inputElement: HTMLInputElement) => boolean;\n\n /**\n * Determines whether to disable the paging support for Page Up and Page Down keyboard scenarios.\n * @defaultvalue false\n */\n pagingSupportDisabled?: boolean;\n\n /**\n * Determines whether to check for data-no-horizontal-wrap or data-no-vertical-wrap attributes\n * when determining how to move focus\n * @defaultvalue false\n */\n checkForNoWrap?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n * @deprecated Use `stopFocusPropagation` instead.\n */\n doNotAllowFocusEventToPropagate?: boolean;\n\n /**\n * Whether the FocusZone should allow focus events to propagate past the FocusZone.\n */\n stopFocusPropagation?: boolean;\n\n /**\n * Callback to notify creators that focus has been set on the FocusZone\n * @deprecated Use `onFocus` instead.\n */\n onFocusNotification?: () => void;\n\n /**\n * Callback called when \"focus\" event triggered in FocusZone.\n * @param event - React's original FocusEvent.\n */\n onFocus?: (event: React.FocusEvent) => void;\n\n /**\n * If true, FocusZone prevents the default behavior of Keyboard events when changing focus between elements.\n * @defaultvalue false\n */\n preventDefaultWhenHandled?: boolean;\n\n /**\n * If true, prevents the FocusZone from attempting to restore the focus to the inner element when the focus is on the\n * root element after componentDidUpdate.\n * @defaultvalue false\n */\n preventFocusRestoration?: boolean;\n}\n/**\n * {@docCategory FocusZone}\n */\nexport const FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0 as 0,\n\n /** All tabbing action is allowed */\n all: 1 as 1,\n\n /** Tabbing is allowed only on input elements */\n inputOnly: 2 as 2,\n};\n\n/**\n * {@docCategory FocusZone}\n */\nexport type FocusZoneTabbableElements = typeof FocusZoneTabbableElements[keyof typeof FocusZoneTabbableElements];\n\n/**\n * {@docCategory FocusZone}\n */\nexport enum FocusZoneDirection {\n /** Only react to up/down arrows. */\n vertical = 0,\n\n /** Only react to left/right arrows. */\n horizontal = 1,\n\n /** React to all arrows. */\n bidirectional = 2,\n\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n domOrder = 3,\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\n/**\n * Return a hash value for an object.\n */\nexport function hash(obj) {\n return doHash(obj, 0);\n}\nexport function doHash(obj, hashVal) {\n switch (typeof obj) {\n case 'object':\n if (obj === null) {\n return numberHash(349, hashVal);\n }\n else if (Array.isArray(obj)) {\n return arrayHash(obj, hashVal);\n }\n return objectHash(obj, hashVal);\n case 'string':\n return stringHash(obj, hashVal);\n case 'boolean':\n return booleanHash(obj, hashVal);\n case 'number':\n return numberHash(obj, hashVal);\n case 'undefined':\n return numberHash(937, hashVal);\n default:\n return numberHash(617, hashVal);\n }\n}\nexport function numberHash(val, initialHashVal) {\n return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32\n}\nfunction booleanHash(b, initialHashVal) {\n return numberHash(b ? 433 : 863, initialHashVal);\n}\nexport function stringHash(s, hashVal) {\n hashVal = numberHash(149417, hashVal);\n for (let i = 0, length = s.length; i < length; i++) {\n hashVal = numberHash(s.charCodeAt(i), hashVal);\n }\n return hashVal;\n}\nfunction arrayHash(arr, initialHashVal) {\n initialHashVal = numberHash(104579, initialHashVal);\n return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal);\n}\nfunction objectHash(obj, initialHashVal) {\n initialHashVal = numberHash(181387, initialHashVal);\n return Object.keys(obj).sort().reduce((hashVal, key) => {\n hashVal = stringHash(key, hashVal);\n return doHash(obj[key], hashVal);\n }, initialHashVal);\n}\nfunction leftRotate(value, bits, totalBits = 32) {\n // delta + bits = totalBits\n const delta = totalBits - bits;\n // All ones, expect `delta` zeros aligned to the right\n const mask = ~((1 << delta) - 1);\n // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits)\n return ((value << bits) | ((mask & value) >>> delta)) >>> 0;\n}\nfunction fill(dest, index = 0, count = dest.byteLength, value = 0) {\n for (let i = 0; i < count; i++) {\n dest[index + i] = value;\n }\n}\nfunction leftPad(value, length, char = '0') {\n while (value.length < length) {\n value = char + value;\n }\n return value;\n}\nexport function toHexString(bufferOrValue, bitsize = 32) {\n if (bufferOrValue instanceof ArrayBuffer) {\n return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join('');\n }\n return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4);\n}\n/**\n * A SHA1 implementation that works with strings and does not allocate.\n */\nexport class StringSHA1 {\n constructor() {\n this._h0 = 0x67452301;\n this._h1 = 0xEFCDAB89;\n this._h2 = 0x98BADCFE;\n this._h3 = 0x10325476;\n this._h4 = 0xC3D2E1F0;\n this._buff = new Uint8Array(64 /* BLOCK_SIZE */ + 3 /* to fit any utf-8 */);\n this._buffDV = new DataView(this._buff.buffer);\n this._buffLen = 0;\n this._totalLen = 0;\n this._leftoverHighSurrogate = 0;\n this._finished = false;\n }\n update(str) {\n const strLen = str.length;\n if (strLen === 0) {\n return;\n }\n const buff = this._buff;\n let buffLen = this._buffLen;\n let leftoverHighSurrogate = this._leftoverHighSurrogate;\n let charCode;\n let offset;\n if (leftoverHighSurrogate !== 0) {\n charCode = leftoverHighSurrogate;\n offset = -1;\n leftoverHighSurrogate = 0;\n }\n else {\n charCode = str.charCodeAt(0);\n offset = 0;\n }\n while (true) {\n let codePoint = charCode;\n if (strings.isHighSurrogate(charCode)) {\n if (offset + 1 < strLen) {\n const nextCharCode = str.charCodeAt(offset + 1);\n if (strings.isLowSurrogate(nextCharCode)) {\n offset++;\n codePoint = strings.computeCodePoint(charCode, nextCharCode);\n }\n else {\n // illegal => unicode replacement character\n codePoint = 65533 /* UNICODE_REPLACEMENT */;\n }\n }\n else {\n // last character is a surrogate pair\n leftoverHighSurrogate = charCode;\n break;\n }\n }\n else if (strings.isLowSurrogate(charCode)) {\n // illegal => unicode replacement character\n codePoint = 65533 /* UNICODE_REPLACEMENT */;\n }\n buffLen = this._push(buff, buffLen, codePoint);\n offset++;\n if (offset < strLen) {\n charCode = str.charCodeAt(offset);\n }\n else {\n break;\n }\n }\n this._buffLen = buffLen;\n this._leftoverHighSurrogate = leftoverHighSurrogate;\n }\n _push(buff, buffLen, codePoint) {\n if (codePoint < 0x0080) {\n buff[buffLen++] = codePoint;\n }\n else if (codePoint < 0x0800) {\n buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint < 0x10000) {\n buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (buffLen >= 64 /* BLOCK_SIZE */) {\n this._step();\n buffLen -= 64 /* BLOCK_SIZE */;\n this._totalLen += 64 /* BLOCK_SIZE */;\n // take last 3 in case of UTF8 overflow\n buff[0] = buff[64 /* BLOCK_SIZE */ + 0];\n buff[1] = buff[64 /* BLOCK_SIZE */ + 1];\n buff[2] = buff[64 /* BLOCK_SIZE */ + 2];\n }\n return buffLen;\n }\n digest() {\n if (!this._finished) {\n this._finished = true;\n if (this._leftoverHighSurrogate) {\n // illegal => unicode replacement character\n this._leftoverHighSurrogate = 0;\n this._buffLen = this._push(this._buff, this._buffLen, 65533 /* UNICODE_REPLACEMENT */);\n }\n this._totalLen += this._buffLen;\n this._wrapUp();\n }\n return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4);\n }\n _wrapUp() {\n this._buff[this._buffLen++] = 0x80;\n fill(this._buff, this._buffLen);\n if (this._buffLen > 56) {\n this._step();\n fill(this._buff);\n }\n // this will fit because the mantissa can cover up to 52 bits\n const ml = 8 * this._totalLen;\n this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false);\n this._buffDV.setUint32(60, ml % 4294967296, false);\n this._step();\n }\n _step() {\n const bigBlock32 = StringSHA1._bigBlock32;\n const data = this._buffDV;\n for (let j = 0; j < 64 /* 16*4 */; j += 4) {\n bigBlock32.setUint32(j, data.getUint32(j, false), false);\n }\n for (let j = 64; j < 320 /* 80*4 */; j += 4) {\n bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false);\n }\n let a = this._h0;\n let b = this._h1;\n let c = this._h2;\n let d = this._h3;\n let e = this._h4;\n let f, k;\n let temp;\n for (let j = 0; j < 80; j++) {\n if (j < 20) {\n f = (b & c) | ((~b) & d);\n k = 0x5A827999;\n }\n else if (j < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (j < 60) {\n f = (b & c) | (b & d) | (c & d);\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff;\n e = d;\n d = c;\n c = leftRotate(b, 30);\n b = a;\n a = temp;\n }\n this._h0 = (this._h0 + a) & 0xffffffff;\n this._h1 = (this._h1 + b) & 0xffffffff;\n this._h2 = (this._h2 + c) & 0xffffffff;\n this._h3 = (this._h3 + d) & 0xffffffff;\n this._h4 = (this._h4 + e) & 0xffffffff;\n }\n}\nStringSHA1._bigBlock32 = new DataView(new ArrayBuffer(320)); // 80 * 4 = 320\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { CSSIcon } from '../../../common/codicons.js';\nconst labelWithIconsRegex = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${CSSIcon.iconNameExpression}(?:${CSSIcon.iconModifierExpression})?)\\\\)`, 'g');\nexport function renderLabelWithIcons(text) {\n const elements = new Array();\n let match;\n let textStart = 0, textStop = 0;\n while ((match = labelWithIconsRegex.exec(text)) !== null) {\n textStop = match.index || 0;\n elements.push(text.substring(textStart, textStop));\n textStart = (match.index || 0) + match[0].length;\n const [, escaped, codicon] = match;\n elements.push(escaped ? `$(${codicon})` : renderIcon({ id: codicon }));\n }\n if (textStart < text.length) {\n elements.push(text.substring(textStart));\n }\n return elements;\n}\nexport function renderIcon(icon) {\n const node = dom.$(`span`);\n node.classList.add(...CSSIcon.asClassNameArray(icon));\n return node;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IStandaloneThemeService = createDecorator('themeService');\n","import \"../../utilities/globals\";\n\nimport { Trie } from \"@wry/trie\";\nimport {\n canUseWeakMap,\n canUseWeakSet,\n isNonNullObject as isObjectOrArray,\n} from \"../../utilities\";\n\nfunction shallowCopy(value: T): T {\n if (isObjectOrArray(value)) {\n return Array.isArray(value)\n ? value.slice(0) as any as T\n : { __proto__: Object.getPrototypeOf(value), ...value };\n }\n return value;\n}\n\n// When programmers talk about the \"canonical form\" of an object, they\n// usually have the following meaning in mind, which I've copied from\n// https://en.wiktionary.org/wiki/canonical_form:\n//\n// 1. A standard or normal presentation of a mathematical entity [or\n// object]. A canonical form is an element of a set of representatives\n// of equivalence classes of forms such that there is a function or\n// procedure which projects every element of each equivalence class\n// onto that one element, the canonical form of that equivalence\n// class. The canonical form is expected to be simpler than the rest of\n// the forms in some way.\n//\n// That's a long-winded way of saying any two objects that have the same\n// canonical form may be considered equivalent, even if they are !==,\n// which usually means the objects are structurally equivalent (deeply\n// equal), but don't necessarily use the same memory.\n//\n// Like a literary or musical canon, this ObjectCanon class represents a\n// collection of unique canonical items (JavaScript objects), with the\n// important property that canon.admit(a) === canon.admit(b) if a and b\n// are deeply equal to each other. In terms of the definition above, the\n// canon.admit method is the \"function or procedure which projects every\"\n// object \"onto that one element, the canonical form.\"\n//\n// In the worst case, the canonicalization process may involve looking at\n// every property in the provided object tree, so it takes the same order\n// of time as deep equality checking. Fortunately, already-canonicalized\n// objects are returned immediately from canon.admit, so the presence of\n// canonical subtrees tends to speed up canonicalization.\n//\n// Since consumers of canonical objects can check for deep equality in\n// constant time, canonicalizing cache results can massively improve the\n// performance of application code that skips re-rendering unchanged\n// results, such as \"pure\" UI components in a framework like React.\n//\n// Of course, since canonical objects may be shared widely between\n// unrelated consumers, it's important to think of them as immutable, even\n// though they are not actually frozen with Object.freeze in production,\n// due to the extra performance overhead that comes with frozen objects.\n//\n// Custom scalar objects whose internal class name is neither Array nor\n// Object can be included safely in the admitted tree, but they will not\n// be replaced with a canonical version (to put it another way, they are\n// assumed to be canonical already).\n//\n// If we ignore custom objects, no detection of cycles or repeated object\n// references is currently required by the StoreReader class, since\n// GraphQL result objects are JSON-serializable trees (and thus contain\n// neither cycles nor repeated subtrees), so we can avoid the complexity\n// of keeping track of objects we've already seen during the recursion of\n// the admit method.\n//\n// In the future, we may consider adding additional cases to the switch\n// statement to handle other common object types, such as \"[object Date]\"\n// objects, as needed.\nexport class ObjectCanon {\n // Set of all canonical objects this ObjectCanon has admitted, allowing\n // canon.admit to return previously-canonicalized objects immediately.\n private known = new (canUseWeakSet ? WeakSet : Set)();\n\n // Efficient storage/lookup structure for canonical objects.\n private pool = new Trie<{\n array?: any[];\n object?: Record;\n keys?: SortedKeysInfo;\n }>(canUseWeakMap);\n\n public isKnown(value: any): boolean {\n return isObjectOrArray(value) && this.known.has(value);\n }\n\n // Make the ObjectCanon assume this value has already been\n // canonicalized.\n private passes = new WeakMap();\n public pass(value: T): T;\n public pass(value: any) {\n if (isObjectOrArray(value)) {\n const copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n }\n\n // Returns the canonical version of value.\n public admit(value: T): T;\n public admit(value: any) {\n if (isObjectOrArray(value)) {\n const original = this.passes.get(value);\n if (original) return original;\n\n const proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value)) return value;\n const array: any[] = (value as any[]).map(this.admit, this);\n // Arrays are looked up in the Trie using their recursively\n // canonicalized elements, and the known version of the array is\n // preserved as node.array.\n const node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n // Since canonical arrays may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n\n case null:\n case Object.prototype: {\n if (this.known.has(value)) return value;\n const proto = Object.getPrototypeOf(value);\n const array = [proto];\n const keys = this.sortedKeys(value);\n array.push(keys.json);\n const firstValueIndex = array.length;\n keys.sorted.forEach(key => {\n array.push(this.admit((value as any)[key]));\n });\n // Objects are looked up in the Trie by their prototype (which\n // is *not* recursively canonicalized), followed by a JSON\n // representation of their (sorted) keys, followed by the\n // sequence of recursively canonicalized values corresponding to\n // those keys. To keep the final results unambiguous with other\n // sequences (such as arrays that just happen to contain [proto,\n // keys.json, value1, value2, ...]), the known version of the\n // object is stored as node.object.\n const node = this.pool.lookupArray(array);\n if (!node.object) {\n const obj = node.object = Object.create(proto);\n this.known.add(obj);\n keys.sorted.forEach((key, i) => {\n obj[key] = array[firstValueIndex + i];\n });\n // Since canonical objects may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(obj);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n }\n\n // It's worthwhile to cache the sorting of arrays of strings, since the\n // same initial unsorted arrays tend to be encountered many times.\n // Fortunately, we can reuse the Trie machinery to look up the sorted\n // arrays in linear time (which is faster than sorting large arrays).\n private sortedKeys(obj: object) {\n const keys = Object.keys(obj);\n const node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n const json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json });\n }\n }\n return node.keys;\n }\n // Arrays that contain the same elements in a different order can share\n // the same SortedKeysInfo object, to save memory.\n private keysByJSON = new Map();\n\n // This has to come last because it depends on keysByJSON.\n public readonly empty = this.admit({});\n}\n\ntype SortedKeysInfo = {\n sorted: string[];\n json: string;\n};\n\n// Since the keys of canonical objects are always created in lexicographically\n// sorted order, we can use the ObjectCanon to implement a fast and stable\n// version of JSON.stringify, which automatically sorts object keys.\nexport const canonicalStringify = Object.assign(function (value: any): string {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n const canonical = stringifyCanon.admit(value);\n let json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(\n canonical,\n json = JSON.stringify(canonical),\n );\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\n\n// Can be reset by calling canonicalStringify.reset().\nlet stringifyCanon: ObjectCanon;\nlet stringifyCache: WeakMap;\n\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n","import '../utilities/globals';\n\nimport { GraphQLError } from 'graphql';\n\nimport { isNonEmptyArray } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n const errors = ((err.graphQLErrors || []) as readonly Error[])\n .concat(err.clientErrors || []);\n errors.forEach((error: Error) => {\n const errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += `${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += `${err.networkError.message}\\n`;\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport type GraphQLErrors = ReadonlyArray;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public clientErrors: ReadonlyArray;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray;\n clientErrors?: ReadonlyArray;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","import { assign } from './object';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * @internal\n */\nexport interface IEventRecord {\n target: any;\n eventName: string;\n parent: any;\n callback: (args?: any) => void;\n elementCallback?: (...args: any[]) => void;\n objectCallback?: (args?: any) => void;\n options?: boolean | AddEventListenerOptions;\n}\n\n/**\n * @internal\n */\nexport interface IEventRecordsByName {\n [eventName: string]: IEventRecordList;\n}\n\n/**\n * @internal\n */\nexport interface IEventRecordList {\n [id: string]: IEventRecord[] | number;\n count: number;\n}\n\n/**\n * @internal\n */\nexport interface IDeclaredEventsByName {\n [eventName: string]: boolean;\n}\n\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nexport class EventGroup {\n private static _uniqueId: number = 0;\n private _parent: any;\n private _eventRecords: IEventRecord[];\n private _id: number = EventGroup._uniqueId++;\n private _isDisposed!: boolean;\n\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n public static raise(target: any, eventName: string, eventArgs?: any, bubbleEvent?: boolean): boolean | undefined {\n let retVal;\n\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n let ev = document.createEvent('HTMLEvents');\n\n ev.initEvent(eventName, bubbleEvent || false, true);\n\n assign(ev, eventArgs);\n\n retVal = target.dispatchEvent(ev);\n } else if (typeof document !== 'undefined' && (document as any).createEventObject) {\n // IE8\n let evObj = (document as any).createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n let events = target.__events__;\n let eventRecords = events ? events[eventName] : null;\n\n if (eventRecords) {\n for (let id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n let eventRecordList = eventRecords[id];\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (let listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n let record = eventRecordList[listIndex];\n\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n\n return retVal;\n }\n\n public static isObserved(target: any, eventName: string): boolean {\n let events = target && target.__events__;\n\n return !!events && !!events[eventName];\n }\n\n /** Check to see if the target has declared support of the given event. */\n public static isDeclared(target: any, eventName: string): boolean {\n let declaredEvents = target && target.__declaredEvents;\n\n return !!declaredEvents && !!declaredEvents[eventName];\n }\n\n public static stopPropagation(event: any): void {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else {\n // IE8\n event.cancelBubble = true;\n }\n }\n\n private static _isElement(target: HTMLElement): boolean {\n return (\n !!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement))\n );\n }\n\n /** parent: the context in which events attached to non-HTMLElements are called */\n public constructor(parent: any) {\n this._parent = parent;\n this._eventRecords = [];\n }\n\n public dispose(): void {\n if (!this._isDisposed) {\n this._isDisposed = true;\n\n this.off();\n this._parent = null;\n }\n }\n\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n public onAll(target: any, events: { [key: string]: (args?: any) => void }, useCapture?: boolean): void {\n for (let eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n }\n\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n public on(\n target: any,\n eventName: string,\n callback: (args?: any) => void,\n options?: boolean | AddEventListenerOptions,\n ): void {\n if (eventName.indexOf(',') > -1) {\n let events = eventName.split(/[ ,]+/);\n\n for (let i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n } else {\n let parent = this._parent;\n let eventRecord: IEventRecord = {\n target: target,\n eventName: eventName,\n parent: parent,\n callback: callback,\n options,\n };\n\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n let events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n (events[eventName][this._id]).push(eventRecord);\n events[eventName].count++;\n\n if (EventGroup._isElement(target)) {\n let processElementEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n let result;\n try {\n result = callback.apply(parent, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n let e = args[0];\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n\n e.cancelBubble = true;\n }\n } catch (e) {\n // ignore\n }\n\n return result;\n };\n\n eventRecord.elementCallback = processElementEvent;\n\n if (target.addEventListener) {\n (target).addEventListener(eventName, processElementEvent, options);\n } else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n } else {\n let processObjectEvent = (...args: any[]) => {\n if (this._isDisposed) {\n return;\n }\n\n return callback.apply(parent, args);\n };\n\n eventRecord.objectCallback = processObjectEvent;\n }\n\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n }\n\n public off(\n target?: any,\n eventName?: string,\n callback?: (args?: any) => void,\n options?: boolean | AddEventListenerOptions,\n ): void {\n for (let i = 0; i < this._eventRecords.length; i++) {\n let eventRecord = this._eventRecords[i];\n if (\n (!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)\n ) {\n let events = eventRecord.target.__events__;\n let targetArrayLookup = events[eventRecord.eventName];\n let targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n } else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(\n eventRecord.eventName,\n eventRecord.elementCallback,\n eventRecord.options,\n );\n } else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n\n this._eventRecords.splice(i--, 1);\n }\n }\n }\n\n /** Trigger the given event in the context of this instance of EventGroup. */\n public raise(eventName: string, eventArgs?: any, bubbleEvent?: boolean): boolean | undefined {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n }\n\n /** Declare an event as being supported by this instance of EventGroup. */\n public declare(event: string | string[]): void {\n let declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n } else {\n for (let i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { globals, isMacintosh, isWindows, setImmediate } from './platform.js';\nlet safeProcess;\n// Native sandbox environment\nif (typeof globals.vscode !== 'undefined' && typeof globals.vscode.process !== 'undefined') {\n const sandboxProcess = globals.vscode.process;\n safeProcess = {\n get platform() { return sandboxProcess.platform; },\n get arch() { return sandboxProcess.arch; },\n get env() { return sandboxProcess.env; },\n cwd() { return sandboxProcess.cwd(); },\n nextTick(callback) { return setImmediate(callback); }\n };\n}\n// Native node.js environment\nelse if (typeof process !== 'undefined') {\n safeProcess = {\n get platform() { return process.platform; },\n get arch() { return process.arch; },\n get env() { return process.env; },\n cwd() { return process.env['VSCODE_CWD'] || process.cwd(); },\n nextTick(callback) { return process.nextTick(callback); }\n };\n}\n// Web environment\nelse {\n safeProcess = {\n // Supported\n get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n get arch() { return undefined; /* arch is undefined in web */ },\n nextTick(callback) { return setImmediate(callback); },\n // Unsupported\n get env() { return {}; },\n cwd() { return '/'; }\n };\n}\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n */\nexport const cwd = safeProcess.cwd;\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\n\nexport class Trie {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap>;\n private strong?: Map>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup(...array: T): Data {\n return this.lookupArray(array);\n }\n\n public lookupArray(array: T): Data {\n let node: Trie = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return node.data || (node.data = this.makeData(slice.call(array)));\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap>())\n : this.strong || (this.strong = new Map>());\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","interface Node {\n key: K;\n value: V;\n newer: Node | null;\n older: Node | null;\n}\n\nfunction defaultDispose() {}\n\nexport class Cache {\n private map = new Map>();\n private newest: Node | null = null;\n private oldest: Node | null = null;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key: K) => void = defaultDispose,\n ) {}\n\n public has(key: K): boolean {\n return this.map.has(key);\n }\n\n public get(key: K): V | undefined {\n const node = this.getNode(key);\n return node && node.value;\n }\n\n private getNode(key: K): Node | undefined {\n const node = this.map.get(key);\n\n if (node && node !== this.newest) {\n const { older, newer } = node;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n node.older = this.newest;\n node.older!.newer = node;\n\n node.newer = null;\n this.newest = node;\n\n if (node === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return node;\n }\n\n public set(key: K, value: V): V {\n let node = this.getNode(key);\n if (node) {\n return node.value = value;\n }\n\n node = {\n key,\n value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = node;\n }\n\n this.newest = node;\n this.oldest = this.oldest || node;\n\n this.map.set(key, node);\n\n return node.value;\n }\n\n public clean() {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n\n public delete(key: K): boolean {\n const node = this.map.get(key);\n if (node) {\n if (node === this.newest) {\n this.newest = node.older;\n }\n\n if (node === this.oldest) {\n this.oldest = node.newer;\n }\n\n if (node.newer) {\n node.newer.older = node.older;\n }\n\n if (node.older) {\n node.older.newer = node.newer;\n }\n\n this.map.delete(key);\n this.dispose(node.value, key);\n\n return true;\n }\n\n return false;\n }\n}\n","import { Slot } from \"./slot\";\nexport { Slot }\nexport const { bind, noContext } = Slot;\n\n// Relying on the @types/node declaration of global.setTimeout can make\n// things tricky for dowstream projects (see PR #7).\ndeclare function setTimeout(\n callback: (...args: any[]) => any,\n ms?: number,\n ...args: any[]\n): any;\n\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback: () => any, delay: number) {\n return setTimeout(bind(callback), delay);\n}\n\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen<\n TArgs extends any[],\n TYield = any,\n TReturn = any,\n TNext = any,\n>(\n genFn: (...args: TArgs) => Generator\n) {\n return function (this: any) {\n const gen = genFn.apply(this, arguments as any);\n\n type Method = (\n this: Generator,\n arg: any,\n ) => IteratorResult;\n\n const boundNext: Method = bind(gen.next);\n const boundThrow: Method = bind(gen.throw!);\n\n return new Promise((resolve, reject) => {\n function invoke(method: Method, argument: any) {\n try {\n var result: any = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n const next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n const invokeNext = (value?: any) => invoke(boundNext, value);\n const invokeThrow = (error: any) => invoke(boundThrow, error);\n invokeNext();\n });\n } as (...args: TArgs) => Promise;\n}\n\nfunction isPromiseLike(value: any): value is PromiseLike {\n return value && typeof value.then === \"function\";\n}\n\n// If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\nconst wrappedFibers: Function[] = [];\nexport function wrapYieldingFiberMethods(Fiber: F): F {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n const wrap = (obj: any, method: string) => {\n const fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments as any, this);\n };\n }\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\n","export const {\n hasOwnProperty,\n} = Object.prototype;\n\nexport const {\n // This Array.from polyfill is restricted to working with Set for now,\n // but we can improve the polyfill and add other input types, as needed. Note\n // that this fallback implementation will only be used if the host environment\n // does not support a native Array.from function. In most modern JS runtimes,\n // the toArray function exported here will be === Array.from.\n from: toArray = (collection: Set) => {\n const array: any[] = [];\n collection.forEach(item => array.push(item));\n return array;\n },\n} = Array;\n\nexport type Unsubscribable = {\n unsubscribe?: void | (() => any);\n}\n\nexport function maybeUnsubscribe(entryOrDep: Unsubscribable) {\n const { unsubscribe } = entryOrDep;\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","import { parentEntrySlot } from \"./context\";\nimport { OptimisticWrapOptions } from \"./index\";\nimport { Dep } from \"./dep\";\nimport { maybeUnsubscribe, toArray, Unsubscribable } from \"./helpers\";\n\nconst emptySetPool: Set[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value, b: Value) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value: Value): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy(value: Value): Value {\n return value.slice(0) as Value;\n}\n\nexport type AnyEntry = Entry;\n\nexport class Entry {\n public static count = 0;\n\n public subscribe: OptimisticWrapOptions[\"subscribe\"];\n public unsubscribe: Unsubscribable[\"unsubscribe\"];\n\n public readonly parents = new Set();\n public readonly childValues = new Map>();\n\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n public dirtyChildren: Set | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n ) {\n ++Entry.count;\n }\n\n public peek(): TValue | undefined {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }\n\n // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n public recompute(args: TArgs): TValue {\n assert(! this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this)\n ? reallyRecompute(this, args)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n maybeUnsubscribe(this);\n }\n\n public dispose() {\n this.setDirty();\n\n // Sever any dependency relationships with our own children, so those\n // children don't retain this parent Entry in their child.parents sets,\n // thereby preventing it from being fully garbage collected.\n forgetChildren(this);\n\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n eachParent(this, (parent, child) => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n\n public forget() {\n // The code that creates Entry objects in index.ts will replace this method\n // with one that actually removes the Entry from the cache, which will also\n // trigger the entry.dispose method.\n this.dispose();\n }\n\n private deps: Set> | null = null;\n\n public dependOn(dep: Dep) {\n dep.add(this);\n if (! this.deps) {\n this.deps = emptySetPool.pop() || new Set>();\n }\n this.deps.add(dep);\n }\n\n public forgetDeps() {\n if (this.deps) {\n toArray(this.deps).forEach(dep => dep.delete(this));\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n child.parents.add(parent);\n\n if (! parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry: AnyEntry, args: any[]) {\n forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n\n if (maybeSubscribe(entry, args)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry: AnyEntry, args: any[]) {\n entry.recomputing = true;\n // Set entry.value as unknown.\n entry.value.length = 0;\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n }\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child: AnyEntry) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child: AnyEntry) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(\n child: AnyEntry,\n callback: (parent: AnyEntry, child: AnyEntry) => any,\n) {\n const parentCount = child.parents.size;\n if (parentCount) {\n const parents = toArray(child.parents);\n for (let i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n const parentWasClean = !mightBeDirty(parent);\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child);\n\n // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n if (parentWasClean) {\n reportDirty(parent);\n }\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (! valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n });\n }\n\n // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n parent.forgetDeps();\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry, args: any[]) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n","import { AnyEntry } from \"./entry\";\nimport { OptimisticWrapOptions } from \"./index\";\nimport { parentEntrySlot } from \"./context\";\nimport { hasOwnProperty, Unsubscribable, maybeUnsubscribe, toArray } from \"./helpers\";\n\ntype EntryMethodName = keyof typeof EntryMethods;\nconst EntryMethods = {\n setDirty: true, // Mark parent Entry as needing to be recomputed (default)\n dispose: true, // Detach parent Entry from parents and children, but leave in LRU cache\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\n};\n\nexport type OptimisticDependencyFunction =\n ((key: TKey) => void) & {\n dirty: (key: TKey, entryMethodName?: EntryMethodName) => void;\n };\n\nexport type Dep = Set & {\n subscribe: OptimisticWrapOptions<[TKey]>[\"subscribe\"];\n} & Unsubscribable;\n\nexport function dep(options?: {\n subscribe: Dep[\"subscribe\"];\n}) {\n const depsByKey = new Map>();\n const subscribe = options && options.subscribe;\n\n function depend(key: TKey) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n let dep = depsByKey.get(key);\n if (!dep) {\n depsByKey.set(key, dep = new Set as Dep);\n }\n parent.dependOn(dep);\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep);\n dep.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(\n key: TKey,\n entryMethodName?: EntryMethodName,\n ) {\n const dep = depsByKey.get(key);\n if (dep) {\n const m: EntryMethodName = (\n entryMethodName &&\n hasOwnProperty.call(EntryMethods, entryMethodName)\n ) ? entryMethodName : \"setDirty\";\n // We have to use toArray(dep).forEach instead of dep.forEach, because\n // modifying a Set while iterating over it can cause elements in the Set\n // to be removed from the Set before they've been iterated over.\n toArray(dep).forEach(entry => entry[m]());\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend as OptimisticDependencyFunction;\n}\n","/**\n * @internal\n */\nexport function isThemeColor(o) {\n return o && typeof o.id === 'string';\n}\n/**\n * The type of the `IEditor`.\n */\nexport const EditorType = {\n ICodeEditor: 'vs.editor.ICodeEditor',\n IDiffEditor: 'vs.editor.IDiffEditor'\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './mouseCursor.css';\nexport const MOUSE_CURSOR_TEXT_CSS_CLASS_NAME = `monaco-mouse-cursor-text`;\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(name: M) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILabelService = createDecorator('labelService');\n","import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IDialogService = createDecorator('dialogService');\n","import { MAX_COLOR_ALPHA } from './consts';\n\n/**\n * @internal\n * Get a CSS color string from some color components.\n * If `a` is specified and not 100, returns an `rgba()` string.\n * Otherwise returns `hex` prefixed with #.\n */\nexport function _rgbaOrHexString(r: number, g: number, b: number, a: number | undefined, hex: string): string {\n return a === MAX_COLOR_ALPHA || typeof a !== 'number' ? `#${hex}` : `rgba(${r}, ${g}, ${b}, ${a / MAX_COLOR_ALPHA})`;\n}\n","/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n}\n\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\n\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\n\nvar regExpTest = unapply(RegExp.prototype.test);\n\nvar typeErrorCreate = unconstruct(TypeError);\n\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\n\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nvar html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nvar svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\nvar mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nvar mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\nvar text = freeze(['#text']);\n\nvar html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\nvar svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.1';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/';\n };\n renderer.link = (href, title, text) => {\n // Remove markdown escapes. Workaround for https://github.com/chjj/marked/issues/829\n if (href === text) { // raw link case\n text = removeMarkdownEscapes(text);\n }\n href = _href(href, false);\n if (options.baseUrl) {\n const hasScheme = /^\\w[\\w\\d+.-]*:/.test(href);\n if (!hasScheme) {\n href = resolvePath(options.baseUrl, href).toString();\n }\n }\n title = removeMarkdownEscapes(title);\n href = removeMarkdownEscapes(href);\n if (!href\n || href.match(/^data:|javascript:/i)\n || (href.match(/^command:/i) && !markdown.isTrusted)\n || href.match(/^command:(\\/\\/\\/)?_workbench\\.downloadResource/i)) {\n // drop the link\n return text;\n }\n else {\n // HTML Encode href\n href = href.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n return `${text}`;\n }\n };\n renderer.paragraph = (text) => {\n return `

${text}

`;\n };\n if (options.codeBlockRenderer) {\n renderer.code = (code, lang) => {\n const value = options.codeBlockRenderer(lang, code);\n // when code-block rendering is async we return sync\n // but update the node with the real result later.\n const id = defaultGenerator.nextId();\n raceCancellation(Promise.all([value, withInnerHTML]), cts.token).then(values => {\n var _a;\n if (!isDisposed && values) {\n const span = element.querySelector(`div[data-code=\"${id}\"]`);\n if (span) {\n DOM.reset(span, values[0]);\n }\n (_a = options.asyncRenderCallback) === null || _a === void 0 ? void 0 : _a.call(options);\n }\n }).catch(() => {\n // ignore\n });\n return `
${escape(code)}
`;\n };\n }\n if (options.actionHandler) {\n const onClick = options.actionHandler.disposables.add(new DomEmitter(element, 'click'));\n const onAuxClick = options.actionHandler.disposables.add(new DomEmitter(element, 'auxclick'));\n options.actionHandler.disposables.add(Event.any(onClick.event, onAuxClick.event)(e => {\n const mouseEvent = new StandardMouseEvent(e);\n if (!mouseEvent.leftButton && !mouseEvent.middleButton) {\n return;\n }\n let target = mouseEvent.target;\n if (target.tagName !== 'A') {\n target = target.parentElement;\n if (!target || target.tagName !== 'A') {\n return;\n }\n }\n try {\n const href = target.dataset['href'];\n if (href) {\n options.actionHandler.callback(href, mouseEvent);\n }\n }\n catch (err) {\n onUnexpectedError(err);\n }\n finally {\n mouseEvent.preventDefault();\n }\n }));\n }\n if (!markdown.supportHtml) {\n // TODO: Can we deprecated this in favor of 'supportHtml'?\n // Use our own sanitizer so that we can let through only spans.\n // Otherwise, we'd be letting all html be rendered.\n // If we want to allow markdown permitted tags, then we can delete sanitizer and sanitize.\n // We always pass the output through dompurify after this so that we don't rely on\n // marked for sanitization.\n markedOptions.sanitizer = (html) => {\n const match = markdown.isTrusted ? html.match(/^(]+>)|(<\\/\\s*span>)$/) : undefined;\n return match ? html : '';\n };\n markedOptions.sanitize = true;\n markedOptions.silent = true;\n }\n markedOptions.renderer = renderer;\n // values that are too long will freeze the UI\n let value = (_a = markdown.value) !== null && _a !== void 0 ? _a : '';\n if (value.length > 100000) {\n value = `${value.substr(0, 100000)}…`;\n }\n // escape theme icons\n if (markdown.supportThemeIcons) {\n value = markdownEscapeEscapedIcons(value);\n }\n let renderedMarkdown = marked.parse(value, markedOptions);\n // Rewrite theme icons\n if (markdown.supportThemeIcons) {\n const elements = renderLabelWithIcons(renderedMarkdown);\n renderedMarkdown = elements.map(e => typeof e === 'string' ? e : e.outerHTML).join('');\n }\n element.innerHTML = sanitizeRenderedMarkdown(markdown, renderedMarkdown);\n // signal that async code blocks can be now be inserted\n signalInnerHTML();\n // signal size changes for image tags\n if (options.asyncRenderCallback) {\n for (const img of element.getElementsByTagName('img')) {\n const listener = disposables.add(DOM.addDisposableListener(img, 'load', () => {\n listener.dispose();\n options.asyncRenderCallback();\n }));\n }\n }\n return {\n element,\n dispose: () => {\n isDisposed = true;\n cts.cancel();\n disposables.dispose();\n }\n };\n}\nfunction sanitizeRenderedMarkdown(options, renderedMarkdown) {\n const { config, allowedSchemes } = getSanitizerOptions(options);\n dompurify.addHook('uponSanitizeAttribute', (element, e) => {\n if (e.attrName === 'style' || e.attrName === 'class') {\n if (element.tagName === 'SPAN') {\n if (e.attrName === 'style') {\n e.keepAttr = /^(color\\:#[0-9a-fA-F]+;)?(background-color\\:#[0-9a-fA-F]+;)?$/.test(e.attrValue);\n return;\n }\n else if (e.attrName === 'class') {\n e.keepAttr = /^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(e.attrValue);\n return;\n }\n }\n e.keepAttr = false;\n return;\n }\n });\n // build an anchor to map URLs to\n const anchor = document.createElement('a');\n // https://github.com/cure53/DOMPurify/blob/main/demos/hooks-scheme-allowlist.html\n dompurify.addHook('afterSanitizeAttributes', (node) => {\n // check all href/src attributes for validity\n for (const attr of ['href', 'src']) {\n if (node.hasAttribute(attr)) {\n anchor.href = node.getAttribute(attr);\n if (!allowedSchemes.includes(anchor.protocol.replace(/:$/, ''))) {\n node.removeAttribute(attr);\n }\n }\n }\n });\n try {\n return dompurify.sanitize(renderedMarkdown, Object.assign(Object.assign({}, config), { RETURN_TRUSTED_TYPE: true }));\n }\n finally {\n dompurify.removeHook('uponSanitizeAttribute');\n dompurify.removeHook('afterSanitizeAttributes');\n }\n}\nfunction getSanitizerOptions(options) {\n const allowedSchemes = [\n Schemas.http,\n Schemas.https,\n Schemas.mailto,\n Schemas.data,\n Schemas.file,\n Schemas.vscodeFileResource,\n Schemas.vscodeRemote,\n Schemas.vscodeRemoteResource,\n ];\n if (options.isTrusted) {\n allowedSchemes.push(Schemas.command);\n }\n return {\n config: {\n // allowedTags should included everything that markdown renders to.\n // Since we have our own sanitize function for marked, it's possible we missed some tag so let dompurify make sure.\n // HTML tags that can result from markdown are from reading https://spec.commonmark.org/0.29/\n // HTML table tags that can result from markdown are from https://github.github.com/gfm/#tables-extension-\n ALLOWED_TAGS: ['ul', 'li', 'p', 'b', 'i', 'code', 'blockquote', 'ol', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'em', 'pre', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'div', 'del', 'a', 'strong', 'br', 'img', 'span'],\n ALLOWED_ATTR: ['href', 'data-href', 'target', 'title', 'src', 'alt', 'class', 'style', 'data-code', 'width', 'height', 'align'],\n ALLOW_UNKNOWN_PROTOCOLS: true,\n },\n allowedSchemes\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nimport { renderMarkdown } from '../../../base/browser/markdownRenderer.js';\nimport { IOpenerService } from '../../../platform/opener/common/opener.js';\nimport { IModeService } from '../../common/services/modeService.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { tokenizeToString } from '../../common/modes/textToHtmlTokenizer.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { TokenizationRegistry } from '../../common/modes.js';\nimport { Configuration } from '../config/configuration.js';\n/**\n * Markdown renderer that can render codeblocks with the editor mechanics. This\n * renderer should always be preferred.\n */\nlet MarkdownRenderer = class MarkdownRenderer {\n constructor(_options, _modeService, _openerService) {\n this._options = _options;\n this._modeService = _modeService;\n this._openerService = _openerService;\n this._onDidRenderAsync = new Emitter();\n this.onDidRenderAsync = this._onDidRenderAsync.event;\n }\n dispose() {\n this._onDidRenderAsync.dispose();\n }\n render(markdown, options, markedOptions) {\n if (!markdown) {\n const element = document.createElement('span');\n return { element, dispose: () => { } };\n }\n const disposables = new DisposableStore();\n const rendered = disposables.add(renderMarkdown(markdown, Object.assign(Object.assign({}, this._getRenderOptions(markdown, disposables)), options), markedOptions));\n return {\n element: rendered.element,\n dispose: () => disposables.dispose()\n };\n }\n _getRenderOptions(markdown, disposeables) {\n return {\n baseUrl: this._options.baseUrl,\n codeBlockRenderer: (languageAlias, value) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n // In markdown,\n // it is possible that we stumble upon language aliases (e.g.js instead of javascript)\n // it is possible no alias is given in which case we fall back to the current editor lang\n let languageId;\n if (languageAlias) {\n languageId = this._modeService.getModeIdForLanguageName(languageAlias);\n }\n else if (this._options.editor) {\n languageId = (_a = this._options.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n }\n if (!languageId) {\n languageId = 'plaintext';\n }\n this._modeService.triggerMode(languageId);\n const tokenization = (_b = yield TokenizationRegistry.getPromise(languageId)) !== null && _b !== void 0 ? _b : undefined;\n const element = document.createElement('span');\n element.innerHTML = ((_d = (_c = MarkdownRenderer._ttpTokenizer) === null || _c === void 0 ? void 0 : _c.createHTML(value, this._modeService.languageIdCodec, tokenization)) !== null && _d !== void 0 ? _d : tokenizeToString(value, this._modeService.languageIdCodec, tokenization));\n // use \"good\" font\n if (this._options.editor) {\n const fontInfo = this._options.editor.getOption(43 /* fontInfo */);\n Configuration.applyFontInfoSlow(element, fontInfo);\n }\n else if (this._options.codeBlockFontFamily) {\n element.style.fontFamily = this._options.codeBlockFontFamily;\n }\n return element;\n }),\n asyncRenderCallback: () => this._onDidRenderAsync.fire(),\n actionHandler: {\n callback: (content) => this._openerService.open(content, { fromUserGesture: true, allowContributedOpeners: true, allowCommands: markdown.isTrusted }).catch(onUnexpectedError),\n disposables: disposeables\n }\n };\n }\n};\nMarkdownRenderer._ttpTokenizer = (_a = window.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy('tokenizeToString', {\n createHTML(value, languageIdCodec, tokenizer) {\n return tokenizeToString(value, languageIdCodec, tokenizer);\n }\n});\nMarkdownRenderer = __decorate([\n __param(1, IModeService),\n __param(2, IOpenerService)\n], MarkdownRenderer);\nexport { MarkdownRenderer };\n","import { IStyleOptions } from './IStyleOptions';\n\n/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL: boolean): void {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n\n/**\n * Gets the current RTL value.\n */\nexport function getRTL(): boolean {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nlet _rtl: boolean;\n_rtl = getRTL();\n\nexport function getStyleOptions(): IStyleOptions {\n return {\n rtl: getRTL(),\n };\n}\n","export function maybe(thunk: () => T): T | undefined {\n try { return thunk() } catch {}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { isObject } from '../../../base/common/types.js';\nexport const IBulkEditService = createDecorator('IWorkspaceEditService');\nfunction isWorkspaceFileEdit(thing) {\n return isObject(thing) && (Boolean(thing.newUri) || Boolean(thing.oldUri));\n}\nfunction isWorkspaceTextEdit(thing) {\n return isObject(thing) && URI.isUri(thing.resource) && isObject(thing.edit);\n}\nexport class ResourceEdit {\n constructor(metadata) {\n this.metadata = metadata;\n }\n static convert(edit) {\n return edit.edits.map(edit => {\n if (isWorkspaceTextEdit(edit)) {\n return new ResourceTextEdit(edit.resource, edit.edit, edit.modelVersionId, edit.metadata);\n }\n if (isWorkspaceFileEdit(edit)) {\n return new ResourceFileEdit(edit.oldUri, edit.newUri, edit.options, edit.metadata);\n }\n throw new Error('Unsupported edit');\n });\n }\n}\nexport class ResourceTextEdit extends ResourceEdit {\n constructor(resource, textEdit, versionId, metadata) {\n super(metadata);\n this.resource = resource;\n this.textEdit = textEdit;\n this.versionId = versionId;\n }\n}\nexport class ResourceFileEdit extends ResourceEdit {\n constructor(oldResource, newResource, options, metadata) {\n super(metadata);\n this.oldResource = oldResource;\n this.newResource = newResource;\n this.options = options;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { alert } from '../../../base/browser/ui/aria/aria.js';\nimport { TimeoutTimer } from '../../../base/common/async.js';\nimport { DisposableStore, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport './messageController.css';\nimport { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../browser/editorExtensions.js';\nimport { Range } from '../../common/core/range.js';\nimport * as nls from '../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nimport { inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground } from '../../../platform/theme/common/colorRegistry.js';\nimport { ColorScheme } from '../../../platform/theme/common/theme.js';\nimport { registerThemingParticipant } from '../../../platform/theme/common/themeService.js';\nlet MessageController = class MessageController {\n constructor(editor, contextKeyService) {\n this._messageWidget = new MutableDisposable();\n this._messageListeners = new DisposableStore();\n this._editor = editor;\n this._visible = MessageController.MESSAGE_VISIBLE.bindTo(contextKeyService);\n this._editorListener = this._editor.onDidAttemptReadOnlyEdit(() => this._onDidAttemptReadOnlyEdit());\n }\n static get(editor) {\n return editor.getContribution(MessageController.ID);\n }\n dispose() {\n this._editorListener.dispose();\n this._messageListeners.dispose();\n this._messageWidget.dispose();\n this._visible.reset();\n }\n showMessage(message, position) {\n alert(message);\n this._visible.set(true);\n this._messageWidget.clear();\n this._messageListeners.clear();\n this._messageWidget.value = new MessageWidget(this._editor, position, message);\n // close on blur, cursor, model change, dispose\n this._messageListeners.add(this._editor.onDidBlurEditorText(() => this.closeMessage()));\n this._messageListeners.add(this._editor.onDidChangeCursorPosition(() => this.closeMessage()));\n this._messageListeners.add(this._editor.onDidDispose(() => this.closeMessage()));\n this._messageListeners.add(this._editor.onDidChangeModel(() => this.closeMessage()));\n // 3sec\n this._messageListeners.add(new TimeoutTimer(() => this.closeMessage(), 3000));\n // close on mouse move\n let bounds;\n this._messageListeners.add(this._editor.onMouseMove(e => {\n // outside the text area\n if (!e.target.position) {\n return;\n }\n if (!bounds) {\n // define bounding box around position and first mouse occurance\n bounds = new Range(position.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1);\n }\n else if (!bounds.containsPosition(e.target.position)) {\n // check if position is still in bounds\n this.closeMessage();\n }\n }));\n }\n closeMessage() {\n this._visible.reset();\n this._messageListeners.clear();\n if (this._messageWidget.value) {\n this._messageListeners.add(MessageWidget.fadeOut(this._messageWidget.value));\n }\n }\n _onDidAttemptReadOnlyEdit() {\n if (this._editor.hasModel()) {\n this.showMessage(nls.localize('editor.readonly', \"Cannot edit in read-only editor\"), this._editor.getPosition());\n }\n }\n};\nMessageController.ID = 'editor.contrib.messageController';\nMessageController.MESSAGE_VISIBLE = new RawContextKey('messageVisible', false, nls.localize('messageVisible', 'Whether the editor is currently showing an inline message'));\nMessageController = __decorate([\n __param(1, IContextKeyService)\n], MessageController);\nexport { MessageController };\nconst MessageCommand = EditorCommand.bindToContribution(MessageController.get);\nregisterEditorCommand(new MessageCommand({\n id: 'leaveEditorMessage',\n precondition: MessageController.MESSAGE_VISIBLE,\n handler: c => c.closeMessage(),\n kbOpts: {\n weight: 100 /* EditorContrib */ + 30,\n primary: 9 /* Escape */\n }\n}));\nclass MessageWidget {\n constructor(editor, { lineNumber, column }, text) {\n // Editor.IContentWidget.allowEditorOverflow\n this.allowEditorOverflow = true;\n this.suppressMouseDown = false;\n this._editor = editor;\n this._editor.revealLinesInCenterIfOutsideViewport(lineNumber, lineNumber, 0 /* Smooth */);\n this._position = { lineNumber, column: column - 1 };\n this._domNode = document.createElement('div');\n this._domNode.classList.add('monaco-editor-overlaymessage');\n const anchorTop = document.createElement('div');\n anchorTop.classList.add('anchor', 'top');\n this._domNode.appendChild(anchorTop);\n const message = document.createElement('div');\n message.classList.add('message');\n message.textContent = text;\n this._domNode.appendChild(message);\n const anchorBottom = document.createElement('div');\n anchorBottom.classList.add('anchor', 'below');\n this._domNode.appendChild(anchorBottom);\n this._editor.addContentWidget(this);\n this._domNode.classList.add('fadeIn');\n }\n static fadeOut(messageWidget) {\n let handle;\n const dispose = () => {\n messageWidget.dispose();\n clearTimeout(handle);\n messageWidget.getDomNode().removeEventListener('animationend', dispose);\n };\n handle = setTimeout(dispose, 110);\n messageWidget.getDomNode().addEventListener('animationend', dispose);\n messageWidget.getDomNode().classList.add('fadeOut');\n return { dispose };\n }\n dispose() {\n this._editor.removeContentWidget(this);\n }\n getId() {\n return 'messageoverlay';\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return { position: this._position, preference: [1 /* ABOVE */, 2 /* BELOW */] };\n }\n afterRender(position) {\n this._domNode.classList.toggle('below', position === 2 /* BELOW */);\n }\n}\nregisterEditorContribution(MessageController.ID, MessageController);\nregisterThemingParticipant((theme, collector) => {\n const border = theme.getColor(inputValidationInfoBorder);\n if (border) {\n let borderWidth = theme.type === ColorScheme.HIGH_CONTRAST ? 2 : 1;\n collector.addRule(`.monaco-editor .monaco-editor-overlaymessage .anchor.below { border-top-color: ${border}; }`);\n collector.addRule(`.monaco-editor .monaco-editor-overlaymessage .anchor.top { border-bottom-color: ${border}; }`);\n collector.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { border: ${borderWidth}px solid ${border}; }`);\n }\n const background = theme.getColor(inputValidationInfoBackground);\n if (background) {\n collector.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { background-color: ${background}; }`);\n }\n const foreground = theme.getColor(inputValidationInfoForeground);\n if (foreground) {\n collector.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { color: ${foreground}; }`);\n }\n});\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\n/**\n * Encodes a string in base64 format.\n * @param value the string to encode\n */\nexport function encodeString(value) {\n return btoa(value);\n}\n/**\n * Encodes a byte array in base64 format.\n * @param value the Uint8Aray to encode\n */\nexport function encodeByteArray(value) {\n var str = \"\";\n for (var i = 0; i < value.length; i++) {\n str += String.fromCharCode(value[i]);\n }\n return btoa(str);\n}\n/**\n * Decodes a base64 string into a byte array.\n * @param value the base64 string to decode\n */\nexport function decodeString(value) {\n var byteString = atob(value);\n var arr = new Uint8Array(byteString.length);\n for (var i = 0; i < byteString.length; i++) {\n arr[i] = byteString.charCodeAt(i);\n }\n return arr;\n}\n//# sourceMappingURL=base64.browser.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\nimport * as base64 from \"./util/base64\";\nimport * as utils from \"./util/utils\";\nvar Serializer = /** @class */ (function () {\n function Serializer(modelMappers, isXML) {\n if (modelMappers === void 0) { modelMappers = {}; }\n this.modelMappers = modelMappers;\n this.isXML = isXML;\n }\n Serializer.prototype.validateConstraints = function (mapper, value, objectName) {\n var failValidation = function (constraintName, constraintValue) {\n throw new Error(\"\\\"\" + objectName + \"\\\" with value \\\"\" + value + \"\\\" should satisfy the constraint \\\"\" + constraintName + \"\\\": \" + constraintValue + \".\");\n };\n if (mapper.constraints && value != undefined) {\n var _a = mapper.constraints, ExclusiveMaximum = _a.ExclusiveMaximum, ExclusiveMinimum = _a.ExclusiveMinimum, InclusiveMaximum = _a.InclusiveMaximum, InclusiveMinimum = _a.InclusiveMinimum, MaxItems = _a.MaxItems, MaxLength = _a.MaxLength, MinItems = _a.MinItems, MinLength = _a.MinLength, MultipleOf = _a.MultipleOf, Pattern = _a.Pattern, UniqueItems = _a.UniqueItems;\n if (ExclusiveMaximum != undefined && value >= ExclusiveMaximum) {\n failValidation(\"ExclusiveMaximum\", ExclusiveMaximum);\n }\n if (ExclusiveMinimum != undefined && value <= ExclusiveMinimum) {\n failValidation(\"ExclusiveMinimum\", ExclusiveMinimum);\n }\n if (InclusiveMaximum != undefined && value > InclusiveMaximum) {\n failValidation(\"InclusiveMaximum\", InclusiveMaximum);\n }\n if (InclusiveMinimum != undefined && value < InclusiveMinimum) {\n failValidation(\"InclusiveMinimum\", InclusiveMinimum);\n }\n if (MaxItems != undefined && value.length > MaxItems) {\n failValidation(\"MaxItems\", MaxItems);\n }\n if (MaxLength != undefined && value.length > MaxLength) {\n failValidation(\"MaxLength\", MaxLength);\n }\n if (MinItems != undefined && value.length < MinItems) {\n failValidation(\"MinItems\", MinItems);\n }\n if (MinLength != undefined && value.length < MinLength) {\n failValidation(\"MinLength\", MinLength);\n }\n if (MultipleOf != undefined && value % MultipleOf !== 0) {\n failValidation(\"MultipleOf\", MultipleOf);\n }\n if (Pattern) {\n var pattern = typeof Pattern === \"string\" ? new RegExp(Pattern) : Pattern;\n if (typeof value !== \"string\" || value.match(pattern) === null) {\n failValidation(\"Pattern\", Pattern);\n }\n }\n if (UniqueItems &&\n value.some(function (item, i, ar) { return ar.indexOf(item) !== i; })) {\n failValidation(\"UniqueItems\", UniqueItems);\n }\n }\n };\n /**\n * Serialize the given object based on its metadata defined in the mapper\n *\n * @param {Mapper} mapper The mapper which defines the metadata of the serializable object\n *\n * @param {object|string|Array|number|boolean|Date|stream} object A valid Javascript object to be serialized\n *\n * @param {string} objectName Name of the serialized object\n *\n * @returns {object|string|Array|number|boolean|Date|stream} A valid serialized Javascript object\n */\n Serializer.prototype.serialize = function (mapper, object, objectName) {\n var payload = {};\n var mapperType = mapper.type.name;\n if (!objectName) {\n objectName = mapper.serializedName;\n }\n if (mapperType.match(/^Sequence$/gi) !== null) {\n payload = [];\n }\n if (mapper.isConstant) {\n object = mapper.defaultValue;\n }\n // This table of allowed values should help explain\n // the mapper.required and mapper.nullable properties.\n // X means \"neither undefined or null are allowed\".\n // || required\n // || true | false\n // nullable || ==========================\n // true || null | undefined/null\n // false || X | undefined\n // undefined || X | undefined/null\n var required = mapper.required, nullable = mapper.nullable;\n if (required && nullable && object === undefined) {\n throw new Error(objectName + \" cannot be undefined.\");\n }\n if (required && !nullable && object == undefined) {\n throw new Error(objectName + \" cannot be null or undefined.\");\n }\n if (!required && nullable === false && object === null) {\n throw new Error(objectName + \" cannot be null.\");\n }\n if (object == undefined) {\n payload = object;\n }\n else {\n // Validate Constraints if any\n this.validateConstraints(mapper, object, objectName);\n if (mapperType.match(/^any$/gi) !== null) {\n payload = object;\n }\n else if (mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/gi) !== null) {\n payload = serializeBasicTypes(mapperType, objectName, object);\n }\n else if (mapperType.match(/^Enum$/gi) !== null) {\n var enumMapper = mapper;\n payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object);\n }\n else if (mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/gi) !== null) {\n payload = serializeDateTypes(mapperType, object, objectName);\n }\n else if (mapperType.match(/^ByteArray$/gi) !== null) {\n payload = serializeByteArrayType(objectName, object);\n }\n else if (mapperType.match(/^Base64Url$/gi) !== null) {\n payload = serializeBase64UrlType(objectName, object);\n }\n else if (mapperType.match(/^Sequence$/gi) !== null) {\n payload = serializeSequenceType(this, mapper, object, objectName);\n }\n else if (mapperType.match(/^Dictionary$/gi) !== null) {\n payload = serializeDictionaryType(this, mapper, object, objectName);\n }\n else if (mapperType.match(/^Composite$/gi) !== null) {\n payload = serializeCompositeType(this, mapper, object, objectName);\n }\n }\n return payload;\n };\n /**\n * Deserialize the given object based on its metadata defined in the mapper\n *\n * @param {object} mapper The mapper which defines the metadata of the serializable object\n *\n * @param {object|string|Array|number|boolean|Date|stream} responseBody A valid Javascript entity to be deserialized\n *\n * @param {string} objectName Name of the deserialized object\n *\n * @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object\n */\n Serializer.prototype.deserialize = function (mapper, responseBody, objectName) {\n if (responseBody == undefined) {\n if (this.isXML && mapper.type.name === \"Sequence\" && !mapper.xmlIsWrapped) {\n // Edge case for empty XML non-wrapped lists. xml2js can't distinguish\n // between the list being empty versus being missing,\n // so let's do the more user-friendly thing and return an empty list.\n responseBody = [];\n }\n // specifically check for undefined as default value can be a falsey value `0, \"\", false, null`\n if (mapper.defaultValue !== undefined) {\n responseBody = mapper.defaultValue;\n }\n return responseBody;\n }\n var payload;\n var mapperType = mapper.type.name;\n if (!objectName) {\n objectName = mapper.serializedName;\n }\n if (mapperType.match(/^Composite$/gi) !== null) {\n payload = deserializeCompositeType(this, mapper, responseBody, objectName);\n }\n else {\n if (this.isXML) {\n /**\n * If the mapper specifies this as a non-composite type value but the responseBody contains\n * both header (\"$\") and body (\"_\") properties, then just reduce the responseBody value to\n * the body (\"_\") property.\n */\n if (responseBody[\"$\"] != undefined && responseBody[\"_\"] != undefined) {\n responseBody = responseBody[\"_\"];\n }\n }\n if (mapperType.match(/^Number$/gi) !== null) {\n payload = parseFloat(responseBody);\n if (isNaN(payload)) {\n payload = responseBody;\n }\n }\n else if (mapperType.match(/^Boolean$/gi) !== null) {\n if (responseBody === \"true\") {\n payload = true;\n }\n else if (responseBody === \"false\") {\n payload = false;\n }\n else {\n payload = responseBody;\n }\n }\n else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/gi) !== null) {\n payload = responseBody;\n }\n else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/gi) !== null) {\n payload = new Date(responseBody);\n }\n else if (mapperType.match(/^UnixTime$/gi) !== null) {\n payload = unixTimeToDate(responseBody);\n }\n else if (mapperType.match(/^ByteArray$/gi) !== null) {\n payload = base64.decodeString(responseBody);\n }\n else if (mapperType.match(/^Base64Url$/gi) !== null) {\n payload = base64UrlToByteArray(responseBody);\n }\n else if (mapperType.match(/^Sequence$/gi) !== null) {\n payload = deserializeSequenceType(this, mapper, responseBody, objectName);\n }\n else if (mapperType.match(/^Dictionary$/gi) !== null) {\n payload = deserializeDictionaryType(this, mapper, responseBody, objectName);\n }\n }\n if (mapper.isConstant) {\n payload = mapper.defaultValue;\n }\n return payload;\n };\n return Serializer;\n}());\nexport { Serializer };\nfunction trimEnd(str, ch) {\n var len = str.length;\n while (len - 1 >= 0 && str[len - 1] === ch) {\n --len;\n }\n return str.substr(0, len);\n}\nfunction bufferToBase64Url(buffer) {\n if (!buffer) {\n return undefined;\n }\n if (!(buffer instanceof Uint8Array)) {\n throw new Error(\"Please provide an input of type Uint8Array for converting to Base64Url.\");\n }\n // Uint8Array to Base64.\n var str = base64.encodeByteArray(buffer);\n // Base64 to Base64Url.\n return trimEnd(str, \"=\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n}\nfunction base64UrlToByteArray(str) {\n if (!str) {\n return undefined;\n }\n if (str && typeof str.valueOf() !== \"string\") {\n throw new Error(\"Please provide an input of type string for converting to Uint8Array\");\n }\n // Base64Url to Base64.\n str = str.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\");\n // Base64 to Uint8Array.\n return base64.decodeString(str);\n}\nfunction splitSerializeName(prop) {\n var classes = [];\n var partialclass = \"\";\n if (prop) {\n var subwords = prop.split(\".\");\n for (var _i = 0, subwords_1 = subwords; _i < subwords_1.length; _i++) {\n var item = subwords_1[_i];\n if (item.charAt(item.length - 1) === \"\\\\\") {\n partialclass += item.substr(0, item.length - 1) + \".\";\n }\n else {\n partialclass += item;\n classes.push(partialclass);\n partialclass = \"\";\n }\n }\n }\n return classes;\n}\nfunction dateToUnixTime(d) {\n if (!d) {\n return undefined;\n }\n if (typeof d.valueOf() === \"string\") {\n d = new Date(d);\n }\n return Math.floor(d.getTime() / 1000);\n}\nfunction unixTimeToDate(n) {\n if (!n) {\n return undefined;\n }\n return new Date(n * 1000);\n}\nfunction serializeBasicTypes(typeName, objectName, value) {\n if (value !== null && value !== undefined) {\n if (typeName.match(/^Number$/gi) !== null) {\n if (typeof value !== \"number\") {\n throw new Error(objectName + \" with value \" + value + \" must be of type number.\");\n }\n }\n else if (typeName.match(/^String$/gi) !== null) {\n if (typeof value.valueOf() !== \"string\") {\n throw new Error(objectName + \" with value \\\"\" + value + \"\\\" must be of type string.\");\n }\n }\n else if (typeName.match(/^Uuid$/gi) !== null) {\n if (!(typeof value.valueOf() === \"string\" && utils.isValidUuid(value))) {\n throw new Error(objectName + \" with value \\\"\" + value + \"\\\" must be of type string and a valid uuid.\");\n }\n }\n else if (typeName.match(/^Boolean$/gi) !== null) {\n if (typeof value !== \"boolean\") {\n throw new Error(objectName + \" with value \" + value + \" must be of type boolean.\");\n }\n }\n else if (typeName.match(/^Stream$/gi) !== null) {\n var objectType = typeof value;\n if (objectType !== \"string\" &&\n objectType !== \"function\" &&\n !(value instanceof ArrayBuffer) &&\n !ArrayBuffer.isView(value) &&\n !(typeof Blob === \"function\" && value instanceof Blob)) {\n throw new Error(objectName + \" must be a string, Blob, ArrayBuffer, ArrayBufferView, or a function returning NodeJS.ReadableStream.\");\n }\n }\n }\n return value;\n}\nfunction serializeEnumType(objectName, allowedValues, value) {\n if (!allowedValues) {\n throw new Error(\"Please provide a set of allowedValues to validate \" + objectName + \" as an Enum Type.\");\n }\n var isPresent = allowedValues.some(function (item) {\n if (typeof item.valueOf() === \"string\") {\n return item.toLowerCase() === value.toLowerCase();\n }\n return item === value;\n });\n if (!isPresent) {\n throw new Error(value + \" is not a valid value for \" + objectName + \". The valid values are: \" + JSON.stringify(allowedValues) + \".\");\n }\n return value;\n}\nfunction serializeByteArrayType(objectName, value) {\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(objectName + \" must be of type Uint8Array.\");\n }\n value = base64.encodeByteArray(value);\n }\n return value;\n}\nfunction serializeBase64UrlType(objectName, value) {\n if (value != undefined) {\n if (!(value instanceof Uint8Array)) {\n throw new Error(objectName + \" must be of type Uint8Array.\");\n }\n value = bufferToBase64Url(value);\n }\n return value;\n}\nfunction serializeDateTypes(typeName, value, objectName) {\n if (value != undefined) {\n if (typeName.match(/^Date$/gi) !== null) {\n if (!(value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n throw new Error(objectName + \" must be an instanceof Date or a string in ISO8601 format.\");\n }\n value =\n value instanceof Date\n ? value.toISOString().substring(0, 10)\n : new Date(value).toISOString().substring(0, 10);\n }\n else if (typeName.match(/^DateTime$/gi) !== null) {\n if (!(value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n throw new Error(objectName + \" must be an instanceof Date or a string in ISO8601 format.\");\n }\n value = value instanceof Date ? value.toISOString() : new Date(value).toISOString();\n }\n else if (typeName.match(/^DateTimeRfc1123$/gi) !== null) {\n if (!(value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n throw new Error(objectName + \" must be an instanceof Date or a string in RFC-1123 format.\");\n }\n value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString();\n }\n else if (typeName.match(/^UnixTime$/gi) !== null) {\n if (!(value instanceof Date ||\n (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n throw new Error(objectName + \" must be an instanceof Date or a string in RFC-1123/ISO8601 format \" +\n \"for it to be serialized in UnixTime/Epoch format.\");\n }\n value = dateToUnixTime(value);\n }\n else if (typeName.match(/^TimeSpan$/gi) !== null) {\n if (!utils.isDuration(value)) {\n throw new Error(objectName + \" must be a string in ISO 8601 format. Instead was \\\"\" + value + \"\\\".\");\n }\n value = value;\n }\n }\n return value;\n}\nfunction serializeSequenceType(serializer, mapper, object, objectName) {\n if (!Array.isArray(object)) {\n throw new Error(objectName + \" must be of type Array.\");\n }\n var elementType = mapper.type.element;\n if (!elementType || typeof elementType !== \"object\") {\n throw new Error(\"element\\\" metadata for an Array must be defined in the \" +\n (\"mapper and it must of type \\\"object\\\" in \" + objectName + \".\"));\n }\n var tempArray = [];\n for (var i = 0; i < object.length; i++) {\n tempArray[i] = serializer.serialize(elementType, object[i], objectName);\n }\n return tempArray;\n}\nfunction serializeDictionaryType(serializer, mapper, object, objectName) {\n if (typeof object !== \"object\") {\n throw new Error(objectName + \" must be of type object.\");\n }\n var valueType = mapper.type.value;\n if (!valueType || typeof valueType !== \"object\") {\n throw new Error(\"\\\"value\\\" metadata for a Dictionary must be defined in the \" +\n (\"mapper and it must of type \\\"object\\\" in \" + objectName + \".\"));\n }\n var tempDictionary = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n tempDictionary[key] = serializer.serialize(valueType, object[key], objectName + \".\" + key);\n }\n return tempDictionary;\n}\n/**\n * Resolves a composite mapper's modelProperties.\n * @param serializer the serializer containing the entire set of mappers\n * @param mapper the composite mapper to resolve\n */\nfunction resolveModelProperties(serializer, mapper, objectName) {\n var modelProps = mapper.type.modelProperties;\n if (!modelProps) {\n var className = mapper.type.className;\n if (!className) {\n throw new Error(\"Class name for model \\\"\" + objectName + \"\\\" is not provided in the mapper \\\"\" + JSON.stringify(mapper, undefined, 2) + \"\\\".\");\n }\n var modelMapper = serializer.modelMappers[className];\n if (!modelMapper) {\n throw new Error(\"mapper() cannot be null or undefined for model \\\"\" + className + \"\\\".\");\n }\n modelProps = modelMapper.type.modelProperties;\n if (!modelProps) {\n throw new Error(\"modelProperties cannot be null or undefined in the \" +\n (\"mapper \\\"\" + JSON.stringify(modelMapper) + \"\\\" of type \\\"\" + className + \"\\\" for object \\\"\" + objectName + \"\\\".\"));\n }\n }\n return modelProps;\n}\nfunction serializeCompositeType(serializer, mapper, object, objectName) {\n var _a;\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, object, \"clientName\");\n }\n if (object != undefined) {\n var payload = {};\n var modelProps = resolveModelProperties(serializer, mapper, objectName);\n for (var _i = 0, _b = Object.keys(modelProps); _i < _b.length; _i++) {\n var key = _b[_i];\n var propertyMapper = modelProps[key];\n if (propertyMapper.readOnly) {\n continue;\n }\n var propName = void 0;\n var parentObject = payload;\n if (serializer.isXML) {\n if (propertyMapper.xmlIsWrapped) {\n propName = propertyMapper.xmlName;\n }\n else {\n propName = propertyMapper.xmlElementName || propertyMapper.xmlName;\n }\n }\n else {\n var paths = splitSerializeName(propertyMapper.serializedName);\n propName = paths.pop();\n for (var _c = 0, paths_1 = paths; _c < paths_1.length; _c++) {\n var pathName = paths_1[_c];\n var childObject = parentObject[pathName];\n if (childObject == undefined && object[key] != undefined) {\n parentObject[pathName] = {};\n }\n parentObject = parentObject[pathName];\n }\n }\n if (parentObject != undefined) {\n var propertyObjectName = propertyMapper.serializedName !== \"\"\n ? objectName + \".\" + propertyMapper.serializedName\n : objectName;\n var toSerialize = object[key];\n var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (polymorphicDiscriminator &&\n polymorphicDiscriminator.clientName === key &&\n toSerialize == undefined) {\n toSerialize = mapper.serializedName;\n }\n var serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName);\n if (serializedValue !== undefined && propName != undefined) {\n if (propertyMapper.xmlIsAttribute) {\n // $ is the key attributes are kept under in xml2js.\n // This keeps things simple while preventing name collision\n // with names in user documents.\n parentObject.$ = parentObject.$ || {};\n parentObject.$[propName] = serializedValue;\n }\n else if (propertyMapper.xmlIsWrapped) {\n parentObject[propName] = (_a = {}, _a[propertyMapper.xmlElementName] = serializedValue, _a);\n }\n else {\n parentObject[propName] = serializedValue;\n }\n }\n }\n }\n var additionalPropertiesMapper = mapper.type.additionalProperties;\n if (additionalPropertiesMapper) {\n var propNames = Object.keys(modelProps);\n var _loop_1 = function (clientPropName) {\n var isAdditionalProperty = propNames.every(function (pn) { return pn !== clientPropName; });\n if (isAdditionalProperty) {\n payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '[\"' + clientPropName + '\"]');\n }\n };\n for (var clientPropName in object) {\n _loop_1(clientPropName);\n }\n }\n return payload;\n }\n return object;\n}\nfunction isSpecialXmlProperty(propertyName) {\n return [\"$\", \"_\"].includes(propertyName);\n}\nfunction deserializeCompositeType(serializer, mapper, responseBody, objectName) {\n if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n mapper = getPolymorphicMapper(serializer, mapper, responseBody, \"serializedName\");\n }\n var modelProps = resolveModelProperties(serializer, mapper, objectName);\n var instance = {};\n var handledPropertyNames = [];\n for (var _i = 0, _a = Object.keys(modelProps); _i < _a.length; _i++) {\n var key = _a[_i];\n var propertyMapper = modelProps[key];\n var paths = splitSerializeName(modelProps[key].serializedName);\n handledPropertyNames.push(paths[0]);\n var serializedName = propertyMapper.serializedName, xmlName = propertyMapper.xmlName, xmlElementName = propertyMapper.xmlElementName;\n var propertyObjectName = objectName;\n if (serializedName !== \"\" && serializedName !== undefined) {\n propertyObjectName = objectName + \".\" + serializedName;\n }\n var headerCollectionPrefix = propertyMapper.headerCollectionPrefix;\n if (headerCollectionPrefix) {\n var dictionary = {};\n for (var _b = 0, _c = Object.keys(responseBody); _b < _c.length; _b++) {\n var headerKey = _c[_b];\n if (headerKey.startsWith(headerCollectionPrefix)) {\n dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName);\n }\n handledPropertyNames.push(headerKey);\n }\n instance[key] = dictionary;\n }\n else if (serializer.isXML) {\n if (propertyMapper.xmlIsAttribute && responseBody.$) {\n instance[key] = serializer.deserialize(propertyMapper, responseBody.$[xmlName], propertyObjectName);\n }\n else {\n var propertyName = xmlElementName || xmlName || serializedName;\n var unwrappedProperty = responseBody[propertyName];\n if (propertyMapper.xmlIsWrapped) {\n unwrappedProperty = responseBody[xmlName];\n unwrappedProperty = unwrappedProperty && unwrappedProperty[xmlElementName];\n var isEmptyWrappedList = unwrappedProperty === undefined;\n if (isEmptyWrappedList) {\n unwrappedProperty = [];\n }\n }\n instance[key] = serializer.deserialize(propertyMapper, unwrappedProperty, propertyObjectName);\n }\n }\n else {\n // deserialize the property if it is present in the provided responseBody instance\n var propertyInstance = void 0;\n var res = responseBody;\n // traversing the object step by step.\n for (var _d = 0, paths_2 = paths; _d < paths_2.length; _d++) {\n var item = paths_2[_d];\n if (!res)\n break;\n res = res[item];\n }\n propertyInstance = res;\n var polymorphicDiscriminator = mapper.type.polymorphicDiscriminator;\n // checking that the model property name (key)(ex: \"fishtype\") and the\n // clientName of the polymorphicDiscriminator {metadata} (ex: \"fishtype\")\n // instead of the serializedName of the polymorphicDiscriminator (ex: \"fish.type\")\n // is a better approach. The generator is not consistent with escaping '\\.' in the\n // serializedName of the property (ex: \"fish\\.type\") that is marked as polymorphic discriminator\n // and the serializedName of the metadata polymorphicDiscriminator (ex: \"fish.type\"). However,\n // the clientName transformation of the polymorphicDiscriminator (ex: \"fishtype\") and\n // the transformation of model property name (ex: \"fishtype\") is done consistently.\n // Hence, it is a safer bet to rely on the clientName of the polymorphicDiscriminator.\n if (polymorphicDiscriminator &&\n key === polymorphicDiscriminator.clientName &&\n propertyInstance == undefined) {\n propertyInstance = mapper.serializedName;\n }\n var serializedValue = void 0;\n // paging\n if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === \"\") {\n propertyInstance = responseBody[key];\n var arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName);\n // Copy over any properties that have already been added into the instance, where they do\n // not exist on the newly de-serialized array\n for (var _e = 0, _f = Object.entries(instance); _e < _f.length; _e++) {\n var _g = _f[_e], key_1 = _g[0], value = _g[1];\n if (!arrayInstance.hasOwnProperty(key_1)) {\n arrayInstance[key_1] = value;\n }\n }\n instance = arrayInstance;\n }\n else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {\n serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName);\n instance[key] = serializedValue;\n }\n }\n }\n var additionalPropertiesMapper = mapper.type.additionalProperties;\n if (additionalPropertiesMapper) {\n var isAdditionalProperty = function (responsePropName) {\n for (var clientPropName in modelProps) {\n var paths = splitSerializeName(modelProps[clientPropName].serializedName);\n if (paths[0] === responsePropName) {\n return false;\n }\n }\n return true;\n };\n for (var responsePropName in responseBody) {\n if (isAdditionalProperty(responsePropName)) {\n instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '[\"' + responsePropName + '\"]');\n }\n }\n }\n else if (responseBody) {\n for (var _h = 0, _j = Object.keys(responseBody); _h < _j.length; _h++) {\n var key = _j[_h];\n if (instance[key] === undefined &&\n !handledPropertyNames.includes(key) &&\n !isSpecialXmlProperty(key)) {\n instance[key] = responseBody[key];\n }\n }\n }\n return instance;\n}\nfunction deserializeDictionaryType(serializer, mapper, responseBody, objectName) {\n /*jshint validthis: true */\n var value = mapper.type.value;\n if (!value || typeof value !== \"object\") {\n throw new Error(\"\\\"value\\\" metadata for a Dictionary must be defined in the \" +\n (\"mapper and it must of type \\\"object\\\" in \" + objectName));\n }\n if (responseBody) {\n var tempDictionary = {};\n for (var _i = 0, _a = Object.keys(responseBody); _i < _a.length; _i++) {\n var key = _a[_i];\n tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName);\n }\n return tempDictionary;\n }\n return responseBody;\n}\nfunction deserializeSequenceType(serializer, mapper, responseBody, objectName) {\n /*jshint validthis: true */\n var element = mapper.type.element;\n if (!element || typeof element !== \"object\") {\n throw new Error(\"element\\\" metadata for an Array must be defined in the \" +\n (\"mapper and it must of type \\\"object\\\" in \" + objectName));\n }\n if (responseBody) {\n if (!Array.isArray(responseBody)) {\n // xml2js will interpret a single element array as just the element, so force it to be an array\n responseBody = [responseBody];\n }\n var tempArray = [];\n for (var i = 0; i < responseBody.length; i++) {\n tempArray[i] = serializer.deserialize(element, responseBody[i], objectName + \"[\" + i + \"]\");\n }\n return tempArray;\n }\n return responseBody;\n}\nfunction getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) {\n var polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n if (polymorphicDiscriminator) {\n var discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];\n if (discriminatorName != undefined) {\n var discriminatorValue = object[discriminatorName];\n if (discriminatorValue != undefined) {\n var typeName = mapper.type.uberParent || mapper.type.className;\n var indexDiscriminator = discriminatorValue === typeName\n ? discriminatorValue\n : typeName + \".\" + discriminatorValue;\n var polymorphicMapper = serializer.modelMappers.discriminators[indexDiscriminator];\n if (polymorphicMapper) {\n mapper = polymorphicMapper;\n }\n }\n }\n }\n return mapper;\n}\nfunction getPolymorphicDiscriminatorRecursively(serializer, mapper) {\n return (mapper.type.polymorphicDiscriminator ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) ||\n getPolymorphicDiscriminatorSafely(serializer, mapper.type.className));\n}\nfunction getPolymorphicDiscriminatorSafely(serializer, typeName) {\n return (typeName &&\n serializer.modelMappers[typeName] &&\n serializer.modelMappers[typeName].type.polymorphicDiscriminator);\n}\n// TODO: why is this here?\nexport function serializeObject(toSerialize) {\n if (toSerialize == undefined)\n return undefined;\n if (toSerialize instanceof Uint8Array) {\n toSerialize = base64.encodeByteArray(toSerialize);\n return toSerialize;\n }\n else if (toSerialize instanceof Date) {\n return toSerialize.toISOString();\n }\n else if (Array.isArray(toSerialize)) {\n var array = [];\n for (var i = 0; i < toSerialize.length; i++) {\n array.push(serializeObject(toSerialize[i]));\n }\n return array;\n }\n else if (typeof toSerialize === \"object\") {\n var dictionary = {};\n for (var property in toSerialize) {\n dictionary[property] = serializeObject(toSerialize[property]);\n }\n return dictionary;\n }\n return toSerialize;\n}\n/**\n * Utility function to create a K:V from a list of strings\n */\nfunction strEnum(o) {\n var result = {};\n for (var _i = 0, o_1 = o; _i < o_1.length; _i++) {\n var key = o_1[_i];\n result[key] = key;\n }\n return result;\n}\nexport var MapperType = strEnum([\n \"Base64Url\",\n \"Boolean\",\n \"ByteArray\",\n \"Composite\",\n \"Date\",\n \"DateTime\",\n \"DateTimeRfc1123\",\n \"Dictionary\",\n \"Enum\",\n \"Number\",\n \"Object\",\n \"Sequence\",\n \"String\",\n \"Stream\",\n \"TimeSpan\",\n \"UnixTime\",\n]);\n//# sourceMappingURL=serializer.js.map","import { mergeStyleSets } from '../../Styling';\nimport type { IIconStyleProps, IIconStyles } from './Icon.types';\n\n/** Class names used in themeable and non-themeable Icon components */\nexport const classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport const MS_ICON = 'ms-Icon';\n\nexport const getStyles = (props: IIconStyleProps): IIconStyles => {\n const { className, iconClassName, isPlaceholder, isImage, styles } = props;\n\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n","import * as React from 'react';\nimport type { ITheme, IStyle } from '../../Styling';\nimport type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';\n\n/**\n * {@docCategory Spinner}\n */\nexport interface ISpinner {}\n\n/**\n * Spinner component props.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerProps extends React.HTMLAttributes {\n /**\n * Optional callback to access the ISpinner interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject;\n\n /**\n * @deprecated Use `size` instead. Will be removed at \\>= 2.0.0.\n */\n // eslint-disable-next-line deprecation/deprecation\n type?: SpinnerType;\n\n /**\n * The size of Spinner to render.\n * @defaultvalue SpinnerType.medium\n */\n size?: SpinnerSize;\n\n /**\n * The label to show next to the Spinner. Label updates will be announced to the screen readers.\n * Use ariaLive to control politeness level.\n */\n label?: string;\n\n /**\n * Additional CSS class(es) to apply to the Spinner.\n */\n className?: string;\n\n /**\n * Politeness setting for label update announcement.\n * @defaultvalue polite\n */\n ariaLive?: 'assertive' | 'polite' | 'off';\n\n /**\n * Alternative status label for screen reader\n */\n ariaLabel?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject;\n\n /**\n * The position of the label in regards of the spinner animation.\n * @defaultvalue SpinnerLabelPosition.bottom\n */\n labelPosition?: SpinnerLabelPosition;\n}\n\n/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport enum SpinnerSize {\n /**\n * 12px Spinner diameter\n */\n xSmall = 0,\n\n /**\n * 16px Spinner diameter\n */\n small = 1,\n\n /**\n * 20px Spinner diameter\n */\n medium = 2,\n\n /**\n * 28px Spinner diameter\n */\n large = 3,\n}\n\n/**\n * Possible locations of the label in regards to the spinner\n * {@docCategory Spinner}\n */\nexport type SpinnerLabelPosition = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport enum SpinnerType {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n normal = 0,\n\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n large = 1,\n}\n\n/**\n * The props needed to construct styles.\n * This represents the simplified set of immutable things which control the class names.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerStyleProps {\n /** Theme provided by High-Order Component. */\n theme: ITheme;\n\n /** Size of the spinner animation. */\n size?: SpinnerSize;\n\n /** CSS class name for the component attached to the root stylable area. */\n className?: string;\n\n /** Position of the label in regards to the spinner animation. */\n labelPosition?: SpinnerLabelPosition;\n}\n\n/**\n * Represents the stylable areas of the control.\n * {@docCategory Spinner}\n */\nexport interface ISpinnerStyles {\n /** Styles for the root element. Refers to the wrapper containing both the circle and the label. */\n root?: IStyle;\n\n /** Styles for the spinner circle animation. */\n circle?: IStyle;\n\n /** Styles for the label accompanying the circle. */\n label?: IStyle;\n\n /** Styles for the hidden helper element to aid with screen readers. */\n screenReaderText?: IStyle;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class SyncDescriptor {\n constructor(ctor, staticArguments = [], supportsDelayedInstantiation = false) {\n this.ctor = ctor;\n this.staticArguments = staticArguments;\n this.supportsDelayedInstantiation = supportsDelayedInstantiation;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const inlineSuggestCommitId = 'editor.action.inlineSuggest.commit';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Range } from '../../common/core/range.js';\nexport class GhostText {\n constructor(lineNumber, parts, additionalReservedLineCount = 0) {\n this.lineNumber = lineNumber;\n this.parts = parts;\n this.additionalReservedLineCount = additionalReservedLineCount;\n }\n renderForScreenReader(lineText) {\n if (this.parts.length === 0) {\n return '';\n }\n const lastPart = this.parts[this.parts.length - 1];\n const cappedLineText = lineText.substr(0, lastPart.column - 1);\n const text = applyEdits(cappedLineText, this.parts.map(p => ({\n range: { startLineNumber: 1, endLineNumber: 1, startColumn: p.column, endColumn: p.column },\n text: p.lines.join('\\n')\n })));\n return text.substring(this.parts[0].column - 1);\n }\n}\nclass PositionOffsetTransformer {\n constructor(text) {\n this.lineStartOffsetByLineIdx = [];\n this.lineStartOffsetByLineIdx.push(0);\n for (let i = 0; i < text.length; i++) {\n if (text.charAt(i) === '\\n') {\n this.lineStartOffsetByLineIdx.push(i + 1);\n }\n }\n }\n getOffset(position) {\n return this.lineStartOffsetByLineIdx[position.lineNumber - 1] + position.column - 1;\n }\n}\nfunction applyEdits(text, edits) {\n const transformer = new PositionOffsetTransformer(text);\n const offsetEdits = edits.map(e => {\n const range = Range.lift(e.range);\n return ({\n startOffset: transformer.getOffset(range.getStartPosition()),\n endOffset: transformer.getOffset(range.getEndPosition()),\n text: e.text\n });\n });\n offsetEdits.sort((a, b) => b.startOffset - a.startOffset);\n for (const edit of offsetEdits) {\n text = text.substring(0, edit.startOffset) + edit.text + text.substring(edit.endOffset);\n }\n return text;\n}\nexport class GhostTextPart {\n constructor(column, lines, \n /**\n * Indicates if this part is a preview of an inline suggestion when a suggestion is previewed.\n */\n preview) {\n this.column = column;\n this.lines = lines;\n this.preview = preview;\n }\n}\nexport class BaseGhostTextWidgetModel extends Disposable {\n constructor(editor) {\n super();\n this.editor = editor;\n this._expanded = undefined;\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this._register(editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(105 /* suggest */) && this._expanded === undefined) {\n this.onDidChangeEmitter.fire();\n }\n }));\n }\n setExpanded(expanded) {\n this._expanded = true;\n this.onDidChangeEmitter.fire();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LcsDiff } from '../../../base/common/diff/diff.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../../common/core/range.js';\nimport { GhostText, GhostTextPart } from './ghostText.js';\nexport function normalizedInlineCompletionsEquals(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.range.equalsRange(b.range) && a.text === b.text && a.command === b.command;\n}\n/**\n * @param previewSuffixLength Sets where to split `inlineCompletion.text`.\n * \tIf the text is `hello` and the suffix length is 2, the non-preview part is `hel` and the preview-part is `lo`.\n*/\nexport function inlineCompletionToGhostText(inlineCompletion, textModel, mode, cursorPosition, previewSuffixLength = 0) {\n if (inlineCompletion.range.startLineNumber !== inlineCompletion.range.endLineNumber) {\n // Only single line replacements are supported.\n return undefined;\n }\n const sourceLine = textModel.getLineContent(inlineCompletion.range.startLineNumber);\n const sourceIndentationLength = strings.getLeadingWhitespace(sourceLine).length;\n const suggestionTouchesIndentation = inlineCompletion.range.startColumn - 1 <= sourceIndentationLength;\n if (suggestionTouchesIndentation) {\n // source: ··········[······abc]\n // ^^^^^^^^^ inlineCompletion.range\n // ^^^^^^^^^^ ^^^^^^ sourceIndentationLength\n // ^^^^^^ replacedIndentation.length\n // ^^^ rangeThatDoesNotReplaceIndentation\n // inlineCompletion.text: '··foo'\n // ^^ suggestionAddedIndentationLength\n const suggestionAddedIndentationLength = strings.getLeadingWhitespace(inlineCompletion.text).length;\n const replacedIndentation = sourceLine.substring(inlineCompletion.range.startColumn - 1, sourceIndentationLength);\n const rangeThatDoesNotReplaceIndentation = Range.fromPositions(inlineCompletion.range.getStartPosition().delta(0, replacedIndentation.length), inlineCompletion.range.getEndPosition());\n const suggestionWithoutIndentationChange = inlineCompletion.text.startsWith(replacedIndentation)\n // Adds more indentation without changing existing indentation: We can add ghost text for this\n ? inlineCompletion.text.substring(replacedIndentation.length)\n // Changes or removes existing indentation. Only add ghost text for the non-indentation part.\n : inlineCompletion.text.substring(suggestionAddedIndentationLength);\n inlineCompletion = {\n range: rangeThatDoesNotReplaceIndentation,\n text: suggestionWithoutIndentationChange,\n command: inlineCompletion.command\n };\n }\n // This is a single line string\n const valueToBeReplaced = textModel.getValueInRange(inlineCompletion.range);\n const changes = cachingDiff(valueToBeReplaced, inlineCompletion.text);\n if (!changes) {\n // No ghost text in case the diff would be too slow to compute\n return undefined;\n }\n const lineNumber = inlineCompletion.range.startLineNumber;\n const parts = new Array();\n if (mode === 'prefix') {\n const filteredChanges = changes.filter(c => c.originalLength === 0);\n if (filteredChanges.length > 1 || filteredChanges.length === 1 && filteredChanges[0].originalStart !== valueToBeReplaced.length) {\n // Prefixes only have a single change.\n return undefined;\n }\n }\n const previewStartInCompletionText = inlineCompletion.text.length - previewSuffixLength;\n for (const c of changes) {\n const insertColumn = inlineCompletion.range.startColumn + c.originalStart + c.originalLength;\n if (mode === 'subwordSmart' && cursorPosition && cursorPosition.lineNumber === inlineCompletion.range.startLineNumber && insertColumn < cursorPosition.column) {\n // No ghost text before cursor\n return undefined;\n }\n if (c.originalLength > 0) {\n return undefined;\n }\n if (c.modifiedLength === 0) {\n continue;\n }\n const modifiedEnd = c.modifiedStart + c.modifiedLength;\n const nonPreviewTextEnd = Math.max(c.modifiedStart, Math.min(modifiedEnd, previewStartInCompletionText));\n const nonPreviewText = inlineCompletion.text.substring(c.modifiedStart, nonPreviewTextEnd);\n const italicText = inlineCompletion.text.substring(nonPreviewTextEnd, Math.max(c.modifiedStart, modifiedEnd));\n if (nonPreviewText.length > 0) {\n const lines = strings.splitLines(nonPreviewText);\n parts.push(new GhostTextPart(insertColumn, lines, false));\n }\n if (italicText.length > 0) {\n const lines = strings.splitLines(italicText);\n parts.push(new GhostTextPart(insertColumn, lines, true));\n }\n }\n return new GhostText(lineNumber, parts, 0);\n}\nlet lastRequest = undefined;\nfunction cachingDiff(originalValue, newValue) {\n if ((lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.originalValue) === originalValue && (lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.newValue) === newValue) {\n return lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.changes;\n }\n else {\n const changes = smartDiff(originalValue, newValue);\n lastRequest = {\n originalValue,\n newValue,\n changes\n };\n return changes;\n }\n}\n/**\n * When matching `if ()` with `if (f() = 1) { g(); }`,\n * align it like this: `if ( )`\n * Not like this:\t\t\t `if ( )`\n * Also not like this:\t\t `if ( )`.\n *\n * The parenthesis are preprocessed to ensure that they match correctly.\n */\nfunction smartDiff(originalValue, newValue) {\n if (originalValue.length > 5000 || newValue.length > 5000) {\n // We don't want to work on strings that are too big\n return undefined;\n }\n function getMaxCharCode(val) {\n let maxCharCode = 0;\n for (let i = 0, len = val.length; i < len; i++) {\n const charCode = val.charCodeAt(i);\n if (charCode > maxCharCode) {\n maxCharCode = charCode;\n }\n }\n return maxCharCode;\n }\n const maxCharCode = Math.max(getMaxCharCode(originalValue), getMaxCharCode(newValue));\n function getUniqueCharCode(id) {\n if (id < 0) {\n throw new Error('unexpected');\n }\n return maxCharCode + id + 1;\n }\n function getElements(source) {\n let level = 0;\n let group = 0;\n const characters = new Int32Array(source.length);\n for (let i = 0, len = source.length; i < len; i++) {\n const id = group * 100 + level;\n // TODO support more brackets\n if (source[i] === '(') {\n characters[i] = getUniqueCharCode(2 * id);\n level++;\n }\n else if (source[i] === ')') {\n characters[i] = getUniqueCharCode(2 * id + 1);\n if (level === 1) {\n group++;\n }\n level = Math.max(level - 1, 0);\n }\n else {\n characters[i] = source.charCodeAt(i);\n }\n }\n return characters;\n }\n const elements1 = getElements(originalValue);\n const elements2 = getElements(newValue);\n return new LcsDiff({ getElements: () => elements1 }, { getElements: () => elements2 }).ComputeDiff(false).changes;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { createCancelablePromise, RunOnceScheduler } from '../../../base/common/async.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { commonPrefixLength, commonSuffixLength } from '../../../base/common/strings.js';\nimport { CoreEditingCommands } from '../../browser/controller/coreCommands.js';\nimport { RedoCommand, UndoCommand } from '../../browser/editorExtensions.js';\nimport { EditOperation } from '../../common/core/editOperation.js';\nimport { Range } from '../../common/core/range.js';\nimport { InlineCompletionsProviderRegistry, InlineCompletionTriggerKind } from '../../common/modes.js';\nimport { BaseGhostTextWidgetModel } from './ghostText.js';\nimport { ICommandService } from '../../../platform/commands/common/commands.js';\nimport { inlineSuggestCommitId } from './consts.js';\nimport { inlineCompletionToGhostText } from './inlineCompletionToGhostText.js';\nlet InlineCompletionsModel = class InlineCompletionsModel extends Disposable {\n constructor(editor, cache, commandService) {\n super();\n this.editor = editor;\n this.cache = cache;\n this.commandService = commandService;\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.completionSession = this._register(new MutableDisposable());\n this.active = false;\n this.disposed = false;\n this._register(commandService.onDidExecuteCommand(e => {\n // These commands don't trigger onDidType.\n const commands = new Set([\n UndoCommand.id,\n RedoCommand.id,\n CoreEditingCommands.Tab.id,\n CoreEditingCommands.DeleteLeft.id,\n CoreEditingCommands.DeleteRight.id,\n inlineSuggestCommitId,\n 'acceptSelectedSuggestion'\n ]);\n if (commands.has(e.commandId) && editor.hasTextFocus()) {\n this.handleUserInput();\n }\n }));\n this._register(this.editor.onDidType((e) => {\n this.handleUserInput();\n }));\n this._register(this.editor.onDidChangeCursorPosition((e) => {\n if (this.session && !this.session.isValid) {\n this.hide();\n }\n }));\n this._register(toDisposable(() => {\n this.disposed = true;\n }));\n this._register(this.editor.onDidBlurEditorWidget(() => {\n this.hide();\n }));\n }\n handleUserInput() {\n if (this.session && !this.session.isValid) {\n this.hide();\n }\n setTimeout(() => {\n if (this.disposed) {\n return;\n }\n // Wait for the cursor update that happens in the same iteration loop iteration\n this.startSessionIfTriggered();\n }, 0);\n }\n get session() {\n return this.completionSession.value;\n }\n get ghostText() {\n var _a;\n return (_a = this.session) === null || _a === void 0 ? void 0 : _a.ghostText;\n }\n get minReservedLineCount() {\n return this.session ? this.session.minReservedLineCount : 0;\n }\n setExpanded(expanded) {\n var _a;\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.setExpanded(expanded);\n }\n setActive(active) {\n var _a;\n this.active = active;\n if (active) {\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.scheduleAutomaticUpdate();\n }\n }\n startSessionIfTriggered() {\n const suggestOptions = this.editor.getOption(54 /* inlineSuggest */);\n if (!suggestOptions.enabled) {\n return;\n }\n if (this.session && this.session.isValid) {\n return;\n }\n this.trigger(InlineCompletionTriggerKind.Automatic);\n }\n trigger(triggerKind) {\n if (this.completionSession.value) {\n if (triggerKind === InlineCompletionTriggerKind.Explicit) {\n void this.completionSession.value.ensureUpdateWithExplicitContext();\n }\n return;\n }\n this.completionSession.value = new InlineCompletionsSession(this.editor, this.editor.getPosition(), () => this.active, this.commandService, this.cache, triggerKind);\n this.completionSession.value.takeOwnership(this.completionSession.value.onDidChange(() => {\n this.onDidChangeEmitter.fire();\n }));\n }\n hide() {\n this.completionSession.clear();\n this.onDidChangeEmitter.fire();\n }\n commitCurrentSuggestion() {\n var _a;\n // Don't dispose the session, so that after committing, more suggestions are shown.\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.commitCurrentCompletion();\n }\n showNext() {\n var _a;\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.showNextInlineCompletion();\n }\n showPrevious() {\n var _a;\n (_a = this.session) === null || _a === void 0 ? void 0 : _a.showPreviousInlineCompletion();\n }\n hasMultipleInlineCompletions() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield ((_a = this.session) === null || _a === void 0 ? void 0 : _a.hasMultipleInlineCompletions());\n return result !== undefined ? result : false;\n });\n }\n};\nInlineCompletionsModel = __decorate([\n __param(2, ICommandService)\n], InlineCompletionsModel);\nexport { InlineCompletionsModel };\nexport class InlineCompletionsSession extends BaseGhostTextWidgetModel {\n constructor(editor, triggerPosition, shouldUpdate, commandService, cache, initialTriggerKind) {\n super(editor);\n this.triggerPosition = triggerPosition;\n this.shouldUpdate = shouldUpdate;\n this.commandService = commandService;\n this.cache = cache;\n this.initialTriggerKind = initialTriggerKind;\n this.minReservedLineCount = 0;\n this.updateOperation = this._register(new MutableDisposable());\n this.updateSoon = this._register(new RunOnceScheduler(() => {\n let triggerKind = this.initialTriggerKind;\n // All subsequent triggers are automatic.\n this.initialTriggerKind = InlineCompletionTriggerKind.Automatic;\n return this.update(triggerKind);\n }, 50));\n //#region Selection\n // We use a semantic id to track the selection even if the cache changes.\n this.currentlySelectedCompletionId = undefined;\n let lastCompletionItem = undefined;\n this._register(this.onDidChange(() => {\n const currentCompletion = this.currentCompletion;\n if (currentCompletion && currentCompletion.sourceInlineCompletion !== lastCompletionItem) {\n lastCompletionItem = currentCompletion.sourceInlineCompletion;\n const provider = currentCompletion.sourceProvider;\n if (provider.handleItemDidShow) {\n provider.handleItemDidShow(currentCompletion.sourceInlineCompletions, lastCompletionItem);\n }\n }\n }));\n this._register(toDisposable(() => {\n this.cache.clear();\n }));\n this._register(this.editor.onDidChangeCursorPosition((e) => {\n if (this.cache.value) {\n this.onDidChangeEmitter.fire();\n }\n }));\n this._register(this.editor.onDidChangeModelContent((e) => {\n this.scheduleAutomaticUpdate();\n }));\n this._register(InlineCompletionsProviderRegistry.onDidChange(() => {\n this.updateSoon.schedule();\n }));\n this.scheduleAutomaticUpdate();\n }\n fixAndGetIndexOfCurrentSelection() {\n if (!this.currentlySelectedCompletionId || !this.cache.value) {\n return 0;\n }\n if (this.cache.value.completions.length === 0) {\n // don't reset the selection in this case\n return 0;\n }\n const idx = this.cache.value.completions.findIndex(v => v.semanticId === this.currentlySelectedCompletionId);\n if (idx === -1) {\n // Reset the selection so that the selection does not jump back when it appears again\n this.currentlySelectedCompletionId = undefined;\n return 0;\n }\n return idx;\n }\n get currentCachedCompletion() {\n if (!this.cache.value) {\n return undefined;\n }\n return this.cache.value.completions[this.fixAndGetIndexOfCurrentSelection()];\n }\n showNextInlineCompletion() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n yield this.ensureUpdateWithExplicitContext();\n const completions = ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.completions) || [];\n if (completions.length > 0) {\n const newIdx = (this.fixAndGetIndexOfCurrentSelection() + 1) % completions.length;\n this.currentlySelectedCompletionId = completions[newIdx].semanticId;\n }\n else {\n this.currentlySelectedCompletionId = undefined;\n }\n this.onDidChangeEmitter.fire();\n });\n }\n showPreviousInlineCompletion() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n yield this.ensureUpdateWithExplicitContext();\n const completions = ((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.completions) || [];\n if (completions.length > 0) {\n const newIdx = (this.fixAndGetIndexOfCurrentSelection() + completions.length - 1) % completions.length;\n this.currentlySelectedCompletionId = completions[newIdx].semanticId;\n }\n else {\n this.currentlySelectedCompletionId = undefined;\n }\n this.onDidChangeEmitter.fire();\n });\n }\n ensureUpdateWithExplicitContext() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (this.updateOperation.value) {\n // Restart or wait for current update operation\n if (this.updateOperation.value.triggerKind === InlineCompletionTriggerKind.Explicit) {\n yield this.updateOperation.value.promise;\n }\n else {\n yield this.update(InlineCompletionTriggerKind.Explicit);\n }\n }\n else if (((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.triggerKind) !== InlineCompletionTriggerKind.Explicit) {\n // Refresh cache\n yield this.update(InlineCompletionTriggerKind.Explicit);\n }\n });\n }\n hasMultipleInlineCompletions() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n yield this.ensureUpdateWithExplicitContext();\n return (((_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.completions.length) || 0) > 1;\n });\n }\n //#endregion\n get ghostText() {\n const currentCompletion = this.currentCompletion;\n const mode = this.editor.getOptions().get(54 /* inlineSuggest */).mode;\n return currentCompletion ? inlineCompletionToGhostText(currentCompletion, this.editor.getModel(), mode, this.editor.getPosition()) : undefined;\n }\n get currentCompletion() {\n const completion = this.currentCachedCompletion;\n if (!completion) {\n return undefined;\n }\n return completion.toLiveInlineCompletion();\n }\n get isValid() {\n return this.editor.getPosition().lineNumber === this.triggerPosition.lineNumber;\n }\n scheduleAutomaticUpdate() {\n // Since updateSoon debounces, starvation can happen.\n // To prevent stale cache, we clear the current update operation.\n this.updateOperation.clear();\n this.updateSoon.schedule();\n }\n update(triggerKind) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.shouldUpdate()) {\n return;\n }\n const position = this.editor.getPosition();\n const promise = createCancelablePromise((token) => __awaiter(this, void 0, void 0, function* () {\n let result;\n try {\n result = yield provideInlineCompletions(position, this.editor.getModel(), { triggerKind, selectedSuggestionInfo: undefined }, token);\n }\n catch (e) {\n onUnexpectedError(e);\n return;\n }\n if (token.isCancellationRequested) {\n return;\n }\n this.cache.setValue(this.editor, result, triggerKind);\n this.onDidChangeEmitter.fire();\n }));\n const operation = new UpdateOperation(promise, triggerKind);\n this.updateOperation.value = operation;\n yield promise;\n if (this.updateOperation.value === operation) {\n this.updateOperation.clear();\n }\n });\n }\n takeOwnership(disposable) {\n this._register(disposable);\n }\n commitCurrentCompletion() {\n if (!this.ghostText) {\n // No ghost text was shown for this completion.\n // Thus, we don't want to commit anything.\n return;\n }\n const completion = this.currentCompletion;\n if (completion) {\n this.commit(completion);\n }\n }\n commit(completion) {\n // Mark the cache as stale, but don't dispose it yet,\n // otherwise command args might get disposed.\n const cache = this.cache.clearAndLeak();\n this.editor.executeEdits('inlineSuggestion.accept', [\n EditOperation.replaceMove(completion.range, completion.text)\n ]);\n if (completion.command) {\n this.commandService\n .executeCommand(completion.command.id, ...(completion.command.arguments || []))\n .finally(() => {\n cache === null || cache === void 0 ? void 0 : cache.dispose();\n })\n .then(undefined, onUnexpectedExternalError);\n }\n else {\n cache === null || cache === void 0 ? void 0 : cache.dispose();\n }\n this.onDidChangeEmitter.fire();\n }\n}\nexport class UpdateOperation {\n constructor(promise, triggerKind) {\n this.promise = promise;\n this.triggerKind = triggerKind;\n }\n dispose() {\n this.promise.cancel();\n }\n}\n/**\n * The cache keeps itself in sync with the editor.\n * It also owns the completions result and disposes it when the cache is diposed.\n*/\nexport class SynchronizedInlineCompletionsCache extends Disposable {\n constructor(editor, completionsSource, onChange, triggerKind) {\n super();\n this.triggerKind = triggerKind;\n const decorationIds = editor.deltaDecorations([], completionsSource.items.map(i => ({\n range: i.range,\n options: {\n description: 'inline-completion-tracking-range'\n },\n })));\n this._register(toDisposable(() => {\n editor.deltaDecorations(decorationIds, []);\n }));\n this.completions = completionsSource.items.map((c, idx) => new CachedInlineCompletion(c, decorationIds[idx]));\n this._register(editor.onDidChangeModelContent(() => {\n let hasChanged = false;\n const model = editor.getModel();\n for (const c of this.completions) {\n const newRange = model.getDecorationRange(c.decorationId);\n if (!newRange) {\n onUnexpectedError(new Error('Decoration has no range'));\n continue;\n }\n if (!c.synchronizedRange.equalsRange(newRange)) {\n hasChanged = true;\n c.synchronizedRange = newRange;\n }\n }\n if (hasChanged) {\n onChange();\n }\n }));\n this._register(completionsSource);\n }\n}\nclass CachedInlineCompletion {\n constructor(inlineCompletion, decorationId) {\n this.inlineCompletion = inlineCompletion;\n this.decorationId = decorationId;\n this.semanticId = JSON.stringify({\n text: this.inlineCompletion.text,\n startLine: this.inlineCompletion.range.startLineNumber,\n startColumn: this.inlineCompletion.range.startColumn,\n command: this.inlineCompletion.command\n });\n this.synchronizedRange = inlineCompletion.range;\n }\n toLiveInlineCompletion() {\n return {\n text: this.inlineCompletion.text,\n range: this.synchronizedRange,\n command: this.inlineCompletion.command,\n sourceProvider: this.inlineCompletion.sourceProvider,\n sourceInlineCompletions: this.inlineCompletion.sourceInlineCompletions,\n sourceInlineCompletion: this.inlineCompletion.sourceInlineCompletion,\n };\n }\n}\nfunction getDefaultRange(position, model) {\n const word = model.getWordAtPosition(position);\n const maxColumn = model.getLineMaxColumn(position.lineNumber);\n // By default, always replace up until the end of the current line.\n // This default might be subject to change!\n return word\n ? new Range(position.lineNumber, word.startColumn, position.lineNumber, maxColumn)\n : Range.fromPositions(position, position.with(undefined, maxColumn));\n}\nexport function provideInlineCompletions(position, model, context, token = CancellationToken.None) {\n return __awaiter(this, void 0, void 0, function* () {\n const defaultReplaceRange = getDefaultRange(position, model);\n const providers = InlineCompletionsProviderRegistry.all(model);\n const results = yield Promise.all(providers.map((provider) => __awaiter(this, void 0, void 0, function* () {\n const completions = yield provider.provideInlineCompletions(model, position, context, token);\n return ({\n completions,\n provider,\n dispose: () => {\n if (completions) {\n provider.freeInlineCompletions(completions);\n }\n }\n });\n })));\n const itemsByHash = new Map();\n for (const result of results) {\n const completions = result.completions;\n if (completions) {\n for (const item of completions.items.map(item => ({\n text: item.text,\n range: item.range ? Range.lift(item.range) : defaultReplaceRange,\n command: item.command,\n sourceProvider: result.provider,\n sourceInlineCompletions: completions,\n sourceInlineCompletion: item\n }))) {\n if (item.range.startLineNumber !== item.range.endLineNumber) {\n // Ignore invalid ranges.\n continue;\n }\n itemsByHash.set(JSON.stringify({ text: item.text, range: item.range }), item);\n }\n }\n }\n return {\n items: [...itemsByHash.values()],\n dispose: () => {\n for (const result of results) {\n result.dispose();\n }\n },\n };\n });\n}\nexport function minimizeInlineCompletion(model, inlineCompletion) {\n if (!inlineCompletion) {\n return inlineCompletion;\n }\n const valueToReplace = model.getValueInRange(inlineCompletion.range);\n const commonPrefixLen = commonPrefixLength(valueToReplace, inlineCompletion.text);\n const startOffset = model.getOffsetAt(inlineCompletion.range.getStartPosition()) + commonPrefixLen;\n const start = model.getPositionAt(startOffset);\n const remainingValueToReplace = valueToReplace.substr(commonPrefixLen);\n const commonSuffixLen = commonSuffixLength(remainingValueToReplace, inlineCompletion.text);\n const end = model.getPositionAt(Math.max(startOffset, model.getOffsetAt(inlineCompletion.range.getEndPosition()) - commonSuffixLen));\n return {\n range: Range.fromPositions(start, end),\n text: inlineCompletion.text.substr(commonPrefixLen, inlineCompletion.text.length - commonPrefixLen - commonSuffixLen),\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { SnippetParser } from '../snippet/snippetParser.js';\nimport { SnippetSession } from '../snippet/snippetSession.js';\nimport { SuggestController } from '../suggest/suggestController.js';\nimport { minimizeInlineCompletion } from './inlineCompletionsModel.js';\nimport { normalizedInlineCompletionsEquals } from './inlineCompletionToGhostText.js';\nimport { compareBy, compareByNumber, findMaxBy } from './utils.js';\nexport class SuggestWidgetInlineCompletionProvider extends Disposable {\n constructor(editor, suggestControllerPreselector) {\n super();\n this.editor = editor;\n this.suggestControllerPreselector = suggestControllerPreselector;\n this.isSuggestWidgetVisible = false;\n this.isShiftKeyPressed = false;\n this._isActive = false;\n this._currentInlineCompletion = undefined;\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n // This delay fixes a suggest widget issue when typing \".\" immediately restarts the suggestion session.\n this.setInactiveDelayed = this._register(new RunOnceScheduler(() => {\n if (!this.isSuggestWidgetVisible) {\n if (this._isActive) {\n this._isActive = false;\n this.onDidChangeEmitter.fire();\n }\n }\n }, 100));\n // See the command acceptAlternativeSelectedSuggestion that is bound to shift+tab\n this._register(editor.onKeyDown(e => {\n if (e.shiftKey && !this.isShiftKeyPressed) {\n this.isShiftKeyPressed = true;\n this.update(this._isActive);\n }\n }));\n this._register(editor.onKeyUp(e => {\n if (e.shiftKey && this.isShiftKeyPressed) {\n this.isShiftKeyPressed = false;\n this.update(this._isActive);\n }\n }));\n const suggestController = SuggestController.get(this.editor);\n if (suggestController) {\n this._register(suggestController.registerSelector({\n priority: 100,\n select: (model, pos, suggestItems) => {\n const textModel = this.editor.getModel();\n const normalizedItemToPreselect = minimizeInlineCompletion(textModel, this.suggestControllerPreselector());\n if (!normalizedItemToPreselect) {\n return -1;\n }\n const position = Position.lift(pos);\n const candidates = suggestItems\n .map((suggestItem, index) => {\n const inlineSuggestItem = suggestionToInlineCompletion(suggestController, position, suggestItem, this.isShiftKeyPressed);\n const normalizedSuggestItem = minimizeInlineCompletion(textModel, inlineSuggestItem);\n if (!normalizedSuggestItem) {\n return undefined;\n }\n const valid = rangeStartsWith(normalizedItemToPreselect.range, normalizedSuggestItem.range) &&\n normalizedItemToPreselect.text.startsWith(normalizedSuggestItem.text);\n return { index, valid, prefixLength: normalizedSuggestItem.text.length, suggestItem };\n })\n .filter(item => item && item.valid);\n const result = findMaxBy(candidates, compareBy(s => s.prefixLength, compareByNumber()));\n return result ? result.index : -1;\n }\n }));\n let isBoundToSuggestWidget = false;\n const bindToSuggestWidget = () => {\n if (isBoundToSuggestWidget) {\n return;\n }\n isBoundToSuggestWidget = true;\n this._register(suggestController.widget.value.onDidShow(() => {\n this.isSuggestWidgetVisible = true;\n this.update(true);\n }));\n this._register(suggestController.widget.value.onDidHide(() => {\n this.isSuggestWidgetVisible = false;\n this.setInactiveDelayed.schedule();\n this.update(this._isActive);\n }));\n this._register(suggestController.widget.value.onDidFocus(() => {\n this.isSuggestWidgetVisible = true;\n this.update(true);\n }));\n };\n this._register(Event.once(suggestController.model.onDidTrigger)(e => {\n bindToSuggestWidget();\n }));\n }\n this.update(this._isActive);\n }\n /**\n * Returns undefined if the suggest widget is not active.\n */\n get state() {\n if (!this._isActive) {\n return undefined;\n }\n return { selectedItemAsInlineCompletion: this._currentInlineCompletion };\n }\n update(newActive) {\n const newInlineCompletion = this.getInlineCompletion();\n let shouldFire = false;\n if (!normalizedInlineCompletionsEquals(this._currentInlineCompletion, newInlineCompletion)) {\n this._currentInlineCompletion = newInlineCompletion;\n shouldFire = true;\n }\n if (this._isActive !== newActive) {\n this._isActive = newActive;\n shouldFire = true;\n }\n if (shouldFire) {\n this.onDidChangeEmitter.fire();\n }\n }\n getInlineCompletion() {\n const suggestController = SuggestController.get(this.editor);\n if (!suggestController) {\n return undefined;\n }\n if (!this.isSuggestWidgetVisible) {\n return undefined;\n }\n const focusedItem = suggestController.widget.value.getFocusedItem();\n if (!focusedItem) {\n return undefined;\n }\n // TODO: item.isResolved\n return suggestionToInlineCompletion(suggestController, this.editor.getPosition(), focusedItem.item, this.isShiftKeyPressed);\n }\n stopForceRenderingAbove() {\n const suggestController = SuggestController.get(this.editor);\n if (suggestController) {\n suggestController.stopForceRenderingAbove();\n }\n }\n forceRenderingAbove() {\n const suggestController = SuggestController.get(this.editor);\n if (suggestController) {\n suggestController.forceRenderingAbove();\n }\n }\n}\nfunction rangeStartsWith(rangeToTest, prefix) {\n return (rangeToTest.startLineNumber === prefix.startLineNumber &&\n rangeToTest.startColumn === prefix.startColumn &&\n (rangeToTest.endLineNumber < prefix.endLineNumber ||\n (rangeToTest.endLineNumber === prefix.endLineNumber &&\n rangeToTest.endColumn <= prefix.endColumn)));\n}\nfunction suggestionToInlineCompletion(suggestController, position, item, toggleMode) {\n // additionalTextEdits might not be resolved here, this could be problematic.\n if (Array.isArray(item.completion.additionalTextEdits) && item.completion.additionalTextEdits.length > 0) {\n // cannot represent additional text edits\n return {\n text: '',\n range: Range.fromPositions(position, position),\n };\n }\n let { insertText } = item.completion;\n if (item.completion.insertTextRules & 4 /* InsertAsSnippet */) {\n const snippet = new SnippetParser().parse(insertText);\n const model = suggestController.editor.getModel();\n // Ignore snippets that are too large.\n // Adjust whitespace is expensive for them.\n if (snippet.children.length > 100) {\n return undefined;\n }\n SnippetSession.adjustWhitespace(model, position, snippet, true, true);\n insertText = snippet.toString();\n }\n const info = suggestController.getOverwriteInfo(item, toggleMode);\n return {\n text: insertText,\n range: Range.fromPositions(position.delta(0, -info.overwriteBefore), position.delta(0, Math.max(info.overwriteAfter, 0))),\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createDisposableRef(object, disposable) {\n return {\n object,\n dispose: () => disposable === null || disposable === void 0 ? void 0 : disposable.dispose(),\n };\n}\nexport function compareBy(selector, comparator) {\n return (a, b) => comparator(selector(a), selector(b));\n}\nexport function compareByNumber() {\n return (a, b) => a - b;\n}\nexport function findMaxBy(items, comparator) {\n let min = undefined;\n for (const item of items) {\n if (min === undefined || comparator(item, min) > 0) {\n min = item;\n }\n }\n return min;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { createCancelablePromise, RunOnceScheduler } from '../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { MutableDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { InlineCompletionTriggerKind } from '../../common/modes.js';\nimport { BaseGhostTextWidgetModel, GhostText } from './ghostText.js';\nimport { minimizeInlineCompletion, provideInlineCompletions, UpdateOperation } from './inlineCompletionsModel.js';\nimport { inlineCompletionToGhostText } from './inlineCompletionToGhostText.js';\nimport { SuggestWidgetInlineCompletionProvider } from './suggestWidgetInlineCompletionProvider.js';\nexport class SuggestWidgetPreviewModel extends BaseGhostTextWidgetModel {\n constructor(editor, cache) {\n super(editor);\n this.cache = cache;\n this.suggestionInlineCompletionSource = this._register(new SuggestWidgetInlineCompletionProvider(this.editor, \n // Use the first cache item (if any) as preselection.\n () => { var _a, _b; return (_b = (_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.completions[0]) === null || _b === void 0 ? void 0 : _b.toLiveInlineCompletion(); }));\n this.updateOperation = this._register(new MutableDisposable());\n this.updateCacheSoon = this._register(new RunOnceScheduler(() => this.updateCache(), 50));\n this.minReservedLineCount = 0;\n this._register(this.suggestionInlineCompletionSource.onDidChange(() => {\n this.updateCacheSoon.schedule();\n const suggestWidgetState = this.suggestionInlineCompletionSource.state;\n if (!suggestWidgetState) {\n this.minReservedLineCount = 0;\n }\n const newGhostText = this.ghostText;\n if (newGhostText) {\n this.minReservedLineCount = Math.max(this.minReservedLineCount, sum(newGhostText.parts.map(p => p.lines.length - 1)));\n }\n if (this.minReservedLineCount >= 1 && this.isSuggestionPreviewEnabled()) {\n this.suggestionInlineCompletionSource.forceRenderingAbove();\n }\n else {\n this.suggestionInlineCompletionSource.stopForceRenderingAbove();\n }\n this.onDidChangeEmitter.fire();\n }));\n this._register(this.cache.onDidChange(() => {\n this.onDidChangeEmitter.fire();\n }));\n this._register(this.editor.onDidChangeCursorPosition((e) => {\n if (this.isSuggestionPreviewEnabled()) {\n this.minReservedLineCount = 0;\n this.updateCacheSoon.schedule();\n this.onDidChangeEmitter.fire();\n }\n }));\n this._register(toDisposable(() => this.suggestionInlineCompletionSource.stopForceRenderingAbove()));\n }\n get isActive() {\n return this.suggestionInlineCompletionSource.state !== undefined;\n }\n isSuggestionPreviewEnabled() {\n const suggestOptions = this.editor.getOption(105 /* suggest */);\n return suggestOptions.preview;\n }\n updateCache() {\n return __awaiter(this, void 0, void 0, function* () {\n const state = this.suggestionInlineCompletionSource.state;\n if (!state || !state.selectedItemAsInlineCompletion) {\n return;\n }\n const info = {\n text: state.selectedItemAsInlineCompletion.text,\n range: state.selectedItemAsInlineCompletion.range,\n };\n const position = this.editor.getPosition();\n const promise = createCancelablePromise((token) => __awaiter(this, void 0, void 0, function* () {\n let result;\n try {\n result = yield provideInlineCompletions(position, this.editor.getModel(), { triggerKind: InlineCompletionTriggerKind.Automatic, selectedSuggestionInfo: info }, token);\n }\n catch (e) {\n onUnexpectedError(e);\n return;\n }\n if (token.isCancellationRequested) {\n return;\n }\n this.cache.setValue(this.editor, result, InlineCompletionTriggerKind.Automatic);\n this.onDidChangeEmitter.fire();\n }));\n const operation = new UpdateOperation(promise, InlineCompletionTriggerKind.Automatic);\n this.updateOperation.value = operation;\n yield promise;\n if (this.updateOperation.value === operation) {\n this.updateOperation.clear();\n }\n });\n }\n get ghostText() {\n var _a, _b;\n if (!this.isSuggestionPreviewEnabled()) {\n return undefined;\n }\n const suggestWidgetState = this.suggestionInlineCompletionSource.state;\n const originalInlineCompletion = minimizeInlineCompletion(this.editor.getModel(), suggestWidgetState === null || suggestWidgetState === void 0 ? void 0 : suggestWidgetState.selectedItemAsInlineCompletion);\n const augmentedCompletion = minimizeInlineCompletion(this.editor.getModel(), (_b = (_a = this.cache.value) === null || _a === void 0 ? void 0 : _a.completions[0]) === null || _b === void 0 ? void 0 : _b.toLiveInlineCompletion());\n const finalCompletion = augmentedCompletion\n && originalInlineCompletion\n && augmentedCompletion.text.startsWith(originalInlineCompletion.text)\n && augmentedCompletion.range.equalsRange(originalInlineCompletion.range)\n ? augmentedCompletion : (originalInlineCompletion || augmentedCompletion);\n const inlineCompletionPreviewLength = originalInlineCompletion ? ((finalCompletion === null || finalCompletion === void 0 ? void 0 : finalCompletion.text.length) || 0) - (originalInlineCompletion.text.length) : 0;\n const toGhostText = (completion) => {\n const mode = this.editor.getOptions().get(105 /* suggest */).previewMode;\n return completion\n ? (inlineCompletionToGhostText(completion, this.editor.getModel(), mode, this.editor.getPosition(), inlineCompletionPreviewLength) ||\n // Show an invisible ghost text to reserve space\n new GhostText(completion.range.endLineNumber, [], this.minReservedLineCount))\n : undefined;\n };\n const newGhostText = toGhostText(finalCompletion);\n return newGhostText;\n }\n}\nfunction sum(arr) {\n return arr.reduce((a, b) => a + b, 0);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { Position } from '../../common/core/position.js';\nimport { InlineCompletionTriggerKind } from '../../common/modes.js';\nimport { InlineCompletionsModel, SynchronizedInlineCompletionsCache } from './inlineCompletionsModel.js';\nimport { SuggestWidgetPreviewModel } from './suggestWidgetPreviewModel.js';\nimport { createDisposableRef } from './utils.js';\nimport { ICommandService } from '../../../platform/commands/common/commands.js';\nexport class DelegatingModel extends Disposable {\n constructor() {\n super(...arguments);\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.hasCachedGhostText = false;\n this.currentModelRef = this._register(new MutableDisposable());\n }\n get targetModel() {\n var _a;\n return (_a = this.currentModelRef.value) === null || _a === void 0 ? void 0 : _a.object;\n }\n setTargetModel(model) {\n var _a;\n if (((_a = this.currentModelRef.value) === null || _a === void 0 ? void 0 : _a.object) === model) {\n return;\n }\n this.currentModelRef.clear();\n this.currentModelRef.value = model ? createDisposableRef(model, model.onDidChange(() => {\n this.hasCachedGhostText = false;\n this.onDidChangeEmitter.fire();\n })) : undefined;\n this.hasCachedGhostText = false;\n this.onDidChangeEmitter.fire();\n }\n get ghostText() {\n var _a, _b;\n if (!this.hasCachedGhostText) {\n this.cachedGhostText = (_b = (_a = this.currentModelRef.value) === null || _a === void 0 ? void 0 : _a.object) === null || _b === void 0 ? void 0 : _b.ghostText;\n this.hasCachedGhostText = true;\n }\n return this.cachedGhostText;\n }\n setExpanded(expanded) {\n var _a;\n (_a = this.targetModel) === null || _a === void 0 ? void 0 : _a.setExpanded(expanded);\n }\n get minReservedLineCount() {\n return this.targetModel ? this.targetModel.minReservedLineCount : 0;\n }\n}\n/**\n * A ghost text model that is both driven by inline completions and the suggest widget.\n*/\nlet GhostTextModel = class GhostTextModel extends DelegatingModel {\n constructor(editor, commandService) {\n super();\n this.editor = editor;\n this.commandService = commandService;\n this.sharedCache = this._register(new SharedInlineCompletionCache());\n this.suggestWidgetAdapterModel = this._register(new SuggestWidgetPreviewModel(this.editor, this.sharedCache));\n this.inlineCompletionsModel = this._register(new InlineCompletionsModel(this.editor, this.sharedCache, this.commandService));\n this._register(this.suggestWidgetAdapterModel.onDidChange(() => {\n this.updateModel();\n }));\n this.updateModel();\n }\n get activeInlineCompletionsModel() {\n if (this.targetModel === this.inlineCompletionsModel) {\n return this.inlineCompletionsModel;\n }\n return undefined;\n }\n updateModel() {\n this.setTargetModel(this.suggestWidgetAdapterModel.isActive\n ? this.suggestWidgetAdapterModel\n : this.inlineCompletionsModel);\n this.inlineCompletionsModel.setActive(this.targetModel === this.inlineCompletionsModel);\n }\n shouldShowHoverAt(hoverRange) {\n var _a;\n const ghostText = (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.ghostText;\n if (ghostText) {\n return ghostText.parts.some(p => hoverRange.containsPosition(new Position(ghostText.lineNumber, p.column)));\n }\n return false;\n }\n triggerInlineCompletion() {\n var _a;\n (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.trigger(InlineCompletionTriggerKind.Explicit);\n }\n commitInlineCompletion() {\n var _a;\n (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.commitCurrentSuggestion();\n }\n hideInlineCompletion() {\n var _a;\n (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.hide();\n }\n showNextInlineCompletion() {\n var _a;\n (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.showNext();\n }\n showPreviousInlineCompletion() {\n var _a;\n (_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.showPrevious();\n }\n hasMultipleInlineCompletions() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield ((_a = this.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.hasMultipleInlineCompletions());\n return result !== undefined ? result : false;\n });\n }\n};\nGhostTextModel = __decorate([\n __param(1, ICommandService)\n], GhostTextModel);\nexport { GhostTextModel };\nexport class SharedInlineCompletionCache extends Disposable {\n constructor() {\n super(...arguments);\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.cache = this._register(new MutableDisposable());\n }\n get value() {\n return this.cache.value;\n }\n setValue(editor, completionsSource, triggerKind) {\n this.cache.value = new SynchronizedInlineCompletionsCache(editor, completionsSource, () => this.onDidChangeEmitter.fire(), triggerKind);\n }\n clearAndLeak() {\n return this.cache.clearAndLeak();\n }\n clear() {\n this.cache.clear();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nimport * as dom from '../../../base/browser/dom.js';\nimport { Color, RGBA } from '../../../base/common/color.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport './ghostText.css';\nimport { Configuration } from '../../browser/config/configuration.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { EditorFontLigatures } from '../../common/config/editorOptions.js';\nimport { CursorColumns } from '../../common/controller/cursorCommon.js';\nimport { LineTokens } from '../../common/core/lineTokens.js';\nimport { Position } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { createStringBuilder } from '../../common/core/stringBuilder.js';\nimport { IModeService } from '../../common/services/modeService.js';\nimport { ghostTextBorder, ghostTextForeground } from '../../common/view/editorColorRegistry.js';\nimport { LineDecoration } from '../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../common/viewLayout/viewLineRenderer.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { IThemeService, registerThemingParticipant } from '../../../platform/theme/common/themeService.js';\nconst ttPolicy = (_a = window.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy('editorGhostText', { createHTML: value => value });\nlet GhostTextWidget = class GhostTextWidget extends Disposable {\n constructor(editor, model, instantiationService, modeService) {\n super();\n this.editor = editor;\n this.model = model;\n this.instantiationService = instantiationService;\n this.modeService = modeService;\n this.disposed = false;\n this.partsWidget = this._register(this.instantiationService.createInstance(DecorationsWidget, this.editor));\n this.additionalLinesWidget = this._register(new AdditionalLinesWidget(this.editor, this.modeService.languageIdCodec));\n this.viewMoreContentWidget = undefined;\n this._register(this.editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(29 /* disableMonospaceOptimizations */)\n || e.hasChanged(104 /* stopRenderingLineAfter */)\n || e.hasChanged(87 /* renderWhitespace */)\n || e.hasChanged(82 /* renderControlCharacters */)\n || e.hasChanged(44 /* fontLigatures */)\n || e.hasChanged(43 /* fontInfo */)\n || e.hasChanged(58 /* lineHeight */)) {\n this.update();\n }\n }));\n this._register(toDisposable(() => {\n var _a;\n this.disposed = true;\n this.update();\n (_a = this.viewMoreContentWidget) === null || _a === void 0 ? void 0 : _a.dispose();\n this.viewMoreContentWidget = undefined;\n }));\n this._register(model.onDidChange(() => {\n this.update();\n }));\n this.update();\n }\n shouldShowHoverAtViewZone(viewZoneId) {\n return (this.additionalLinesWidget.viewZoneId === viewZoneId);\n }\n update() {\n var _a;\n const ghostText = this.model.ghostText;\n if (!this.editor.hasModel() || !ghostText || this.disposed) {\n this.partsWidget.clear();\n this.additionalLinesWidget.clear();\n return;\n }\n const inlineTexts = new Array();\n const additionalLines = new Array();\n function addToAdditionalLines(lines, className) {\n if (additionalLines.length > 0) {\n const lastLine = additionalLines[additionalLines.length - 1];\n if (className) {\n lastLine.decorations.push(new LineDecoration(lastLine.content.length + 1, lastLine.content.length + 1 + lines[0].length, className, 0 /* Regular */));\n }\n lastLine.content += lines[0];\n lines = lines.slice(1);\n }\n for (const line of lines) {\n additionalLines.push({\n content: line,\n decorations: className ? [new LineDecoration(1, line.length + 1, className, 0 /* Regular */)] : []\n });\n }\n }\n const textBufferLine = this.editor.getModel().getLineContent(ghostText.lineNumber);\n this.editor.getModel().getLineTokens(ghostText.lineNumber);\n let hiddenTextStartColumn = undefined;\n let lastIdx = 0;\n for (const part of ghostText.parts) {\n let lines = part.lines;\n if (hiddenTextStartColumn === undefined) {\n inlineTexts.push({\n column: part.column,\n text: lines[0],\n preview: part.preview,\n });\n lines = lines.slice(1);\n }\n else {\n addToAdditionalLines([textBufferLine.substring(lastIdx, part.column - 1)], undefined);\n }\n if (lines.length > 0) {\n addToAdditionalLines(lines, 'ghost-text');\n if (hiddenTextStartColumn === undefined && part.column <= textBufferLine.length) {\n hiddenTextStartColumn = part.column;\n }\n }\n lastIdx = part.column - 1;\n }\n if (hiddenTextStartColumn !== undefined) {\n addToAdditionalLines([textBufferLine.substring(lastIdx)], undefined);\n }\n this.partsWidget.setParts(ghostText.lineNumber, inlineTexts, hiddenTextStartColumn !== undefined ? { column: hiddenTextStartColumn, length: textBufferLine.length + 1 - hiddenTextStartColumn } : undefined);\n this.additionalLinesWidget.updateLines(ghostText.lineNumber, additionalLines, ghostText.additionalReservedLineCount);\n if (ghostText.parts.some(p => p.lines.length < 0)) {\n // Not supported at the moment, condition is always false.\n this.viewMoreContentWidget = this.renderViewMoreLines(new Position(ghostText.lineNumber, this.editor.getModel().getLineMaxColumn(ghostText.lineNumber)), '', 0);\n }\n else {\n (_a = this.viewMoreContentWidget) === null || _a === void 0 ? void 0 : _a.dispose();\n this.viewMoreContentWidget = undefined;\n }\n }\n renderViewMoreLines(position, firstLineText, remainingLinesLength) {\n const fontInfo = this.editor.getOption(43 /* fontInfo */);\n const domNode = document.createElement('div');\n domNode.className = 'suggest-preview-additional-widget';\n Configuration.applyFontInfoSlow(domNode, fontInfo);\n const spacer = document.createElement('span');\n spacer.className = 'content-spacer';\n spacer.append(firstLineText);\n domNode.append(spacer);\n const newline = document.createElement('span');\n newline.className = 'content-newline suggest-preview-text';\n newline.append('⏎ ');\n domNode.append(newline);\n const disposableStore = new DisposableStore();\n const button = document.createElement('div');\n button.className = 'button suggest-preview-text';\n button.append(`+${remainingLinesLength} lines…`);\n disposableStore.add(dom.addStandardDisposableListener(button, 'mousedown', (e) => {\n var _a;\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.setExpanded(true);\n e.preventDefault();\n this.editor.focus();\n }));\n domNode.append(button);\n return new ViewMoreLinesContentWidget(this.editor, position, domNode, disposableStore);\n }\n};\nGhostTextWidget = __decorate([\n __param(2, IInstantiationService),\n __param(3, IModeService)\n], GhostTextWidget);\nexport { GhostTextWidget };\nlet DecorationsWidget = class DecorationsWidget {\n constructor(editor, codeEditorService, themeService, contextKeyService) {\n this.editor = editor;\n this.codeEditorService = codeEditorService;\n this.themeService = themeService;\n this.contextKeyService = contextKeyService;\n this.decorationIds = [];\n this.disposableStore = new DisposableStore();\n }\n dispose() {\n this.clear();\n this.disposableStore.dispose();\n }\n clear() {\n this.editor.deltaDecorations(this.decorationIds, []);\n this.disposableStore.clear();\n }\n setParts(lineNumber, parts, hiddenText) {\n this.disposableStore.clear();\n const colorTheme = this.themeService.getColorTheme();\n const foreground = colorTheme.getColor(ghostTextForeground);\n let opacity = undefined;\n let color = undefined;\n if (foreground) {\n opacity = String(foreground.rgba.a);\n color = Color.Format.CSS.format(opaque(foreground));\n }\n const borderColor = colorTheme.getColor(ghostTextBorder);\n let border = undefined;\n if (borderColor) {\n border = `2px dashed ${borderColor}`;\n }\n const textModel = this.editor.getModel();\n if (!textModel) {\n return;\n }\n const { tabSize } = textModel.getOptions();\n const line = textModel.getLineContent(lineNumber) || '';\n let lastIndex = 0;\n let currentLinePrefix = '';\n const hiddenTextDecorations = new Array();\n if (hiddenText) {\n hiddenTextDecorations.push({\n range: Range.fromPositions(new Position(lineNumber, hiddenText.column), new Position(lineNumber, hiddenText.column + hiddenText.length)),\n options: {\n inlineClassName: 'ghost-text-hidden',\n description: 'ghost-text-hidden'\n }\n });\n }\n const key = this.contextKeyService.getContextKeyValue('config.editor.useInjectedText');\n const shouldUseInjectedText = key === undefined ? true : !!key;\n this.decorationIds = this.editor.deltaDecorations(this.decorationIds, parts.map(p => {\n currentLinePrefix += line.substring(lastIndex, p.column - 1);\n lastIndex = p.column - 1;\n // To avoid visual confusion, we don't want to render visible whitespace\n const contentText = shouldUseInjectedText ? p.text : this.renderSingleLineText(p.text, currentLinePrefix, tabSize, false);\n const decorationType = this.disposableStore.add(registerDecorationType(this.codeEditorService, 'ghost-text', '0-ghost-text-', {\n after: {\n // TODO: escape?\n contentText,\n opacity,\n color,\n border,\n fontWeight: p.preview ? 'bold' : 'normal',\n },\n }));\n return ({\n range: Range.fromPositions(new Position(lineNumber, p.column)),\n options: shouldUseInjectedText ? {\n description: 'ghost-text',\n after: { content: contentText, inlineClassName: p.preview ? 'ghost-text-decoration-preview' : 'ghost-text-decoration' },\n showIfCollapsed: true,\n } : Object.assign({}, decorationType.resolve())\n });\n }).concat(hiddenTextDecorations));\n }\n renderSingleLineText(text, lineStart, tabSize, renderWhitespace) {\n const newLine = lineStart + text;\n const visibleColumnsByColumns = CursorColumns.visibleColumnsByColumns(newLine, tabSize);\n let contentText = '';\n let curCol = lineStart.length + 1;\n for (const c of text) {\n if (c === '\\t') {\n const width = visibleColumnsByColumns[curCol + 1] - visibleColumnsByColumns[curCol];\n if (renderWhitespace) {\n contentText += '→';\n for (let i = 1; i < width; i++) {\n contentText += '\\xa0';\n }\n }\n else {\n for (let i = 0; i < width; i++) {\n contentText += '\\xa0';\n }\n }\n }\n else if (c === ' ') {\n if (renderWhitespace) {\n contentText += '·';\n }\n else {\n contentText += '\\xa0';\n }\n }\n else {\n contentText += c;\n }\n curCol += 1;\n }\n return contentText;\n }\n};\nDecorationsWidget = __decorate([\n __param(1, ICodeEditorService),\n __param(2, IThemeService),\n __param(3, IContextKeyService)\n], DecorationsWidget);\nfunction opaque(color) {\n const { r, b, g } = color.rgba;\n return new Color(new RGBA(r, g, b, 255));\n}\nclass AdditionalLinesWidget {\n constructor(editor, languageIdCodec) {\n this.editor = editor;\n this.languageIdCodec = languageIdCodec;\n this._viewZoneId = undefined;\n }\n get viewZoneId() { return this._viewZoneId; }\n dispose() {\n this.clear();\n }\n clear() {\n this.editor.changeViewZones((changeAccessor) => {\n if (this._viewZoneId) {\n changeAccessor.removeZone(this._viewZoneId);\n this._viewZoneId = undefined;\n }\n });\n }\n updateLines(lineNumber, additionalLines, minReservedLineCount) {\n const textModel = this.editor.getModel();\n if (!textModel) {\n return;\n }\n const { tabSize } = textModel.getOptions();\n this.editor.changeViewZones((changeAccessor) => {\n if (this._viewZoneId) {\n changeAccessor.removeZone(this._viewZoneId);\n this._viewZoneId = undefined;\n }\n const heightInLines = Math.max(additionalLines.length, minReservedLineCount);\n if (heightInLines > 0) {\n const domNode = document.createElement('div');\n renderLines(domNode, tabSize, additionalLines, this.editor.getOptions(), this.languageIdCodec);\n this._viewZoneId = changeAccessor.addZone({\n afterLineNumber: lineNumber,\n heightInLines: heightInLines,\n domNode,\n });\n }\n });\n }\n}\nfunction renderLines(domNode, tabSize, lines, opts, languageIdCodec) {\n const disableMonospaceOptimizations = opts.get(29 /* disableMonospaceOptimizations */);\n const stopRenderingLineAfter = opts.get(104 /* stopRenderingLineAfter */);\n // To avoid visual confusion, we don't want to render visible whitespace\n const renderWhitespace = 'none';\n const renderControlCharacters = opts.get(82 /* renderControlCharacters */);\n const fontLigatures = opts.get(44 /* fontLigatures */);\n const fontInfo = opts.get(43 /* fontInfo */);\n const lineHeight = opts.get(58 /* lineHeight */);\n const sb = createStringBuilder(10000);\n sb.appendASCIIString('
');\n for (let i = 0, len = lines.length; i < len; i++) {\n const lineData = lines[i];\n const line = lineData.content;\n sb.appendASCIIString('
');\n const isBasicASCII = strings.isBasicASCII(line);\n const containsRTL = strings.containsRTL(line);\n const lineTokens = LineTokens.createEmpty(line, languageIdCodec);\n renderViewLine(new RenderLineInput((fontInfo.isMonospace && !disableMonospaceOptimizations), fontInfo.canUseHalfwidthRightwardsArrow, line, false, isBasicASCII, containsRTL, 0, lineTokens, lineData.decorations, tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures !== EditorFontLigatures.OFF, null), sb);\n sb.appendASCIIString('
');\n }\n sb.appendASCIIString('
');\n Configuration.applyFontInfoSlow(domNode, fontInfo);\n const html = sb.build();\n const trustedhtml = ttPolicy ? ttPolicy.createHTML(html) : html;\n domNode.innerHTML = trustedhtml;\n}\nlet keyCounter = 0;\nfunction registerDecorationType(service, description, keyPrefix, options) {\n const key = keyPrefix + (keyCounter++);\n service.registerDecorationType(description, key, options);\n return {\n dispose() {\n service.removeDecorationType(key);\n },\n resolve() {\n return service.resolveDecorationOptions(key, true);\n }\n };\n}\nclass ViewMoreLinesContentWidget extends Disposable {\n constructor(editor, position, domNode, disposableStore) {\n super();\n this.editor = editor;\n this.position = position;\n this.domNode = domNode;\n this.allowEditorOverflow = false;\n this.suppressMouseDown = false;\n this._register(disposableStore);\n this._register(toDisposable(() => {\n this.editor.removeContentWidget(this);\n }));\n this.editor.addContentWidget(this);\n }\n getId() {\n return 'editor.widget.viewMoreLinesWidget';\n }\n getDomNode() {\n return this.domNode;\n }\n getPosition() {\n return {\n position: this.position,\n preference: [0 /* EXACT */]\n };\n }\n}\nregisterThemingParticipant((theme, collector) => {\n const foreground = theme.getColor(ghostTextForeground);\n if (foreground) {\n const opacity = String(foreground.rgba.a);\n const color = Color.Format.CSS.format(opaque(foreground));\n // `!important` ensures that other decorations don't cause a style conflict (#132017).\n collector.addRule(`.monaco-editor .ghost-text-decoration { opacity: ${opacity} !important; color: ${color} !important; }`);\n collector.addRule(`.monaco-editor .ghost-text-decoration-preview { color: ${foreground.toString()} !important; }`);\n collector.addRule(`.monaco-editor .suggest-preview-text .ghost-text { opacity: ${opacity} !important; color: ${color} !important; }`);\n }\n const border = theme.getColor(ghostTextBorder);\n if (border) {\n collector.addRule(`.monaco-editor .suggest-preview-text .ghost-text { border: 1px solid ${border}; }`);\n collector.addRule(`.monaco-editor .ghost-text-decoration { border: 1px solid ${border}; }`);\n collector.addRule(`.monaco-editor .ghost-text-decoration-preview { border: 1px solid ${border}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Disposable, MutableDisposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { firstNonWhitespaceIndex } from '../../../base/common/strings.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../browser/editorExtensions.js';\nimport { CursorColumns } from '../../common/controller/cursorColumns.js';\nimport { EditorContextKeys } from '../../common/editorContextKeys.js';\nimport { inlineSuggestCommitId } from './consts.js';\nimport { GhostTextModel } from './ghostTextModel.js';\nimport { GhostTextWidget } from './ghostTextWidget.js';\nimport * as nls from '../../../nls.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../../platform/keybinding/common/keybindingsRegistry.js';\nlet GhostTextController = class GhostTextController extends Disposable {\n constructor(editor, instantiationService) {\n super();\n this.editor = editor;\n this.instantiationService = instantiationService;\n this.triggeredExplicitly = false;\n this.activeController = this._register(new MutableDisposable());\n this._register(this.editor.onDidChangeModel(() => {\n this.updateModelController();\n }));\n this._register(this.editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(105 /* suggest */)) {\n this.updateModelController();\n }\n if (e.hasChanged(54 /* inlineSuggest */)) {\n this.updateModelController();\n }\n }));\n this.updateModelController();\n }\n static get(editor) {\n return editor.getContribution(GhostTextController.ID);\n }\n get activeModel() {\n var _a;\n return (_a = this.activeController.value) === null || _a === void 0 ? void 0 : _a.model;\n }\n // Don't call this method when not neccessary. It will recreate the activeController.\n updateModelController() {\n const suggestOptions = this.editor.getOption(105 /* suggest */);\n const inlineSuggestOptions = this.editor.getOption(54 /* inlineSuggest */);\n this.activeController.value = undefined;\n // ActiveGhostTextController is only created if one of those settings is set or if the inline completions are triggered explicitly.\n this.activeController.value =\n this.editor.hasModel() && (suggestOptions.preview || inlineSuggestOptions.enabled || this.triggeredExplicitly)\n ? this.instantiationService.createInstance(ActiveGhostTextController, this.editor)\n : undefined;\n }\n shouldShowHoverAt(hoverRange) {\n var _a;\n return ((_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.shouldShowHoverAt(hoverRange)) || false;\n }\n shouldShowHoverAtViewZone(viewZoneId) {\n var _a, _b;\n return ((_b = (_a = this.activeController.value) === null || _a === void 0 ? void 0 : _a.widget) === null || _b === void 0 ? void 0 : _b.shouldShowHoverAtViewZone(viewZoneId)) || false;\n }\n trigger() {\n var _a;\n this.triggeredExplicitly = true;\n if (!this.activeController.value) {\n this.updateModelController();\n }\n (_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.triggerInlineCompletion();\n }\n commit() {\n var _a;\n (_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.commitInlineCompletion();\n }\n hide() {\n var _a;\n (_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.hideInlineCompletion();\n }\n showNextInlineCompletion() {\n var _a;\n (_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.showNextInlineCompletion();\n }\n showPreviousInlineCompletion() {\n var _a;\n (_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.showPreviousInlineCompletion();\n }\n hasMultipleInlineCompletions() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield ((_a = this.activeModel) === null || _a === void 0 ? void 0 : _a.hasMultipleInlineCompletions());\n return result !== undefined ? result : false;\n });\n }\n};\nGhostTextController.inlineSuggestionVisible = new RawContextKey('inlineSuggestionVisible', false, nls.localize('inlineSuggestionVisible', \"Whether an inline suggestion is visible\"));\nGhostTextController.inlineSuggestionHasIndentation = new RawContextKey('inlineSuggestionHasIndentation', false, nls.localize('inlineSuggestionHasIndentation', \"Whether the inline suggestion starts with whitespace\"));\nGhostTextController.inlineSuggestionHasIndentationLessThanTabSize = new RawContextKey('inlineSuggestionHasIndentationLessThanTabSize', true, nls.localize('inlineSuggestionHasIndentationLessThanTabSize', \"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\"));\nGhostTextController.ID = 'editor.contrib.ghostTextController';\nGhostTextController = __decorate([\n __param(1, IInstantiationService)\n], GhostTextController);\nexport { GhostTextController };\nclass GhostTextContextKeys {\n constructor(contextKeyService) {\n this.contextKeyService = contextKeyService;\n this.inlineCompletionVisible = GhostTextController.inlineSuggestionVisible.bindTo(this.contextKeyService);\n this.inlineCompletionSuggestsIndentation = GhostTextController.inlineSuggestionHasIndentation.bindTo(this.contextKeyService);\n this.inlineCompletionSuggestsIndentationLessThanTabSize = GhostTextController.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService);\n }\n}\n/**\n * The controller for a text editor with an initialized text model.\n * Must be disposed as soon as the model detaches from the editor.\n*/\nlet ActiveGhostTextController = class ActiveGhostTextController extends Disposable {\n constructor(editor, instantiationService, contextKeyService) {\n super();\n this.editor = editor;\n this.instantiationService = instantiationService;\n this.contextKeyService = contextKeyService;\n this.contextKeys = new GhostTextContextKeys(this.contextKeyService);\n this.model = this._register(this.instantiationService.createInstance(GhostTextModel, this.editor));\n this.widget = this._register(this.instantiationService.createInstance(GhostTextWidget, this.editor, this.model));\n this._register(toDisposable(() => {\n this.contextKeys.inlineCompletionVisible.set(false);\n this.contextKeys.inlineCompletionSuggestsIndentation.set(false);\n this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(true);\n }));\n this._register(this.model.onDidChange(() => {\n this.updateContextKeys();\n }));\n this.updateContextKeys();\n }\n updateContextKeys() {\n var _a;\n this.contextKeys.inlineCompletionVisible.set(((_a = this.model.activeInlineCompletionsModel) === null || _a === void 0 ? void 0 : _a.ghostText) !== undefined);\n let startsWithIndentation = false;\n let startsWithIndentationLessThanTabSize = true;\n const ghostText = this.model.inlineCompletionsModel.ghostText;\n if (!!this.model.activeInlineCompletionsModel && ghostText && ghostText.parts.length > 0) {\n const { column, lines } = ghostText.parts[0];\n const firstLine = lines[0];\n const indentationEndColumn = this.editor.getModel().getLineIndentColumn(ghostText.lineNumber);\n const inIndentation = column <= indentationEndColumn;\n if (inIndentation) {\n let firstNonWsIdx = firstNonWhitespaceIndex(firstLine);\n if (firstNonWsIdx === -1) {\n firstNonWsIdx = firstLine.length - 1;\n }\n startsWithIndentation = firstNonWsIdx > 0;\n const tabSize = this.editor.getModel().getOptions().tabSize;\n const visibleColumnIndentation = CursorColumns.visibleColumnFromColumn(firstLine, firstNonWsIdx + 1, tabSize);\n startsWithIndentationLessThanTabSize = visibleColumnIndentation < tabSize;\n }\n }\n this.contextKeys.inlineCompletionSuggestsIndentation.set(startsWithIndentation);\n this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(startsWithIndentationLessThanTabSize);\n }\n};\nActiveGhostTextController = __decorate([\n __param(1, IInstantiationService),\n __param(2, IContextKeyService)\n], ActiveGhostTextController);\nexport { ActiveGhostTextController };\nconst GhostTextCommand = EditorCommand.bindToContribution(GhostTextController.get);\nexport const commitInlineSuggestionAction = new GhostTextCommand({\n id: inlineSuggestCommitId,\n precondition: GhostTextController.inlineSuggestionVisible,\n handler(x) {\n x.commit();\n x.editor.focus();\n }\n});\nregisterEditorCommand(commitInlineSuggestionAction);\nKeybindingsRegistry.registerKeybindingRule({\n primary: 2 /* Tab */,\n weight: 200,\n id: commitInlineSuggestionAction.id,\n when: ContextKeyExpr.and(commitInlineSuggestionAction.precondition, EditorContextKeys.tabMovesFocus.toNegated(), GhostTextController.inlineSuggestionHasIndentationLessThanTabSize),\n});\nregisterEditorCommand(new GhostTextCommand({\n id: 'editor.action.inlineSuggest.hide',\n precondition: GhostTextController.inlineSuggestionVisible,\n kbOpts: {\n weight: 100,\n primary: 9 /* Escape */,\n },\n handler(x) {\n x.hide();\n }\n}));\nexport class ShowNextInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: ShowNextInlineSuggestionAction.ID,\n label: nls.localize('action.inlineSuggest.showNext', \"Show Next Inline Suggestion\"),\n alias: 'Show Next Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, GhostTextController.inlineSuggestionVisible),\n kbOpts: {\n weight: 100,\n primary: 512 /* Alt */ | 89 /* BracketRight */,\n },\n });\n }\n run(accessor, editor) {\n return __awaiter(this, void 0, void 0, function* () {\n const controller = GhostTextController.get(editor);\n if (controller) {\n controller.showNextInlineCompletion();\n editor.focus();\n }\n });\n }\n}\nShowNextInlineSuggestionAction.ID = 'editor.action.inlineSuggest.showNext';\nexport class ShowPreviousInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: ShowPreviousInlineSuggestionAction.ID,\n label: nls.localize('action.inlineSuggest.showPrevious', \"Show Previous Inline Suggestion\"),\n alias: 'Show Previous Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, GhostTextController.inlineSuggestionVisible),\n kbOpts: {\n weight: 100,\n primary: 512 /* Alt */ | 87 /* BracketLeft */,\n },\n });\n }\n run(accessor, editor) {\n return __awaiter(this, void 0, void 0, function* () {\n const controller = GhostTextController.get(editor);\n if (controller) {\n controller.showPreviousInlineCompletion();\n editor.focus();\n }\n });\n }\n}\nShowPreviousInlineSuggestionAction.ID = 'editor.action.inlineSuggest.showPrevious';\nexport class TriggerInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inlineSuggest.trigger',\n label: nls.localize('action.inlineSuggest.trigger', \"Trigger Inline Suggestion\"),\n alias: 'Trigger Inline Suggestion',\n precondition: EditorContextKeys.writable\n });\n }\n run(accessor, editor) {\n return __awaiter(this, void 0, void 0, function* () {\n const controller = GhostTextController.get(editor);\n if (controller) {\n controller.trigger();\n }\n });\n }\n}\nregisterEditorContribution(GhostTextController.ID, GhostTextController);\nregisterEditorAction(TriggerInlineSuggestionAction);\nregisterEditorAction(ShowNextInlineSuggestionAction);\nregisterEditorAction(ShowPreviousInlineSuggestionAction);\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\n// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nlet currentContext: Context | null = null;\n\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nconst makeSlotClass = () => class Slot {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext!.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = parent;\n }\n }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind(\n callback: (this: TThis, ...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: TThis) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg!, args!);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\nconst globalKey = \"@wry/context:Slot\";\nconst host = Array as any;\n\nexport const Slot: ReturnType = host[globalKey] || function () {\n const Slot = makeSlotClass();\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n } finally {\n return Slot;\n }\n}();\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\nexport var Constants = {\n /**\n * The ms-rest version\n * @const\n * @type {string}\n */\n msRestVersion: \"2.6.0\",\n /**\n * Specifies HTTP.\n *\n * @const\n * @type {string}\n */\n HTTP: \"http:\",\n /**\n * Specifies HTTPS.\n *\n * @const\n * @type {string}\n */\n HTTPS: \"https:\",\n /**\n * Specifies HTTP Proxy.\n *\n * @const\n * @type {string}\n */\n HTTP_PROXY: \"HTTP_PROXY\",\n /**\n * Specifies HTTPS Proxy.\n *\n * @const\n * @type {string}\n */\n HTTPS_PROXY: \"HTTPS_PROXY\",\n /**\n * Specifies NO Proxy.\n */\n NO_PROXY: \"NO_PROXY\",\n /**\n * Specifies ALL Proxy.\n */\n ALL_PROXY: \"ALL_PROXY\",\n HttpConstants: {\n /**\n * Http Verbs\n *\n * @const\n * @enum {string}\n */\n HttpVerbs: {\n PUT: \"PUT\",\n GET: \"GET\",\n DELETE: \"DELETE\",\n POST: \"POST\",\n MERGE: \"MERGE\",\n HEAD: \"HEAD\",\n PATCH: \"PATCH\",\n },\n StatusCodes: {\n TooManyRequests: 429,\n },\n },\n /**\n * Defines constants for use with HTTP headers.\n */\n HeaderConstants: {\n /**\n * The Authorization header.\n *\n * @const\n * @type {string}\n */\n AUTHORIZATION: \"authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n /**\n * The Retry-After response-header field can be used with a 503 (Service\n * Unavailable) or 349 (Too Many Requests) responses to indicate how long\n * the service is expected to be unavailable to the requesting client.\n *\n * @const\n * @type {string}\n */\n RETRY_AFTER: \"Retry-After\",\n /**\n * The UserAgent header.\n *\n * @const\n * @type {string}\n */\n USER_AGENT: \"User-Agent\",\n },\n};\n//# sourceMappingURL=constants.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as objects from '../../../base/common/objects.js';\nimport { ICodeEditorService } from '../services/codeEditorService.js';\nimport { CodeEditorWidget } from './codeEditorWidget.js';\nimport { ICommandService } from '../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../platform/notification/common/notification.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nlet EmbeddedCodeEditorWidget = class EmbeddedCodeEditorWidget extends CodeEditorWidget {\n constructor(domElement, options, parentEditor, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService) {\n super(domElement, Object.assign(Object.assign({}, parentEditor.getRawOptions()), { overflowWidgetsDomNode: parentEditor.getOverflowWidgetsDomNode() }), {}, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService);\n this._parentEditor = parentEditor;\n this._overwriteOptions = options;\n // Overwrite parent's options\n super.updateOptions(this._overwriteOptions);\n this._register(parentEditor.onDidChangeConfiguration((e) => this._onParentConfigurationChanged(e)));\n }\n getParentEditor() {\n return this._parentEditor;\n }\n _onParentConfigurationChanged(e) {\n super.updateOptions(this._parentEditor.getRawOptions());\n super.updateOptions(this._overwriteOptions);\n }\n updateOptions(newOptions) {\n objects.mixin(this._overwriteOptions, newOptions, true);\n super.updateOptions(this._overwriteOptions);\n }\n};\nEmbeddedCodeEditorWidget = __decorate([\n __param(3, IInstantiationService),\n __param(4, ICodeEditorService),\n __param(5, ICommandService),\n __param(6, IContextKeyService),\n __param(7, IThemeService),\n __param(8, INotificationService),\n __param(9, IAccessibilityService)\n], EmbeddedCodeEditorWidget);\nexport { EmbeddedCodeEditorWidget };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ServiceCollection {\n constructor(...entries) {\n this._entries = new Map();\n for (let [id, service] of entries) {\n this.set(id, service);\n }\n }\n set(id, instanceOrDescriptor) {\n const result = this._entries.get(id);\n this._entries.set(id, instanceOrDescriptor);\n return result;\n }\n has(id) {\n return this._entries.has(id);\n }\n get(id) {\n return this._entries.get(id);\n }\n}\n","import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextResourceConfigurationService = createDecorator('textResourceConfigurationService');\nexport const ITextResourcePropertiesService = createDecorator('textResourcePropertiesService');\n","export interface IVendorSettings {\n isWebkit?: boolean;\n isMoz?: boolean;\n isMs?: boolean;\n isOpera?: boolean;\n}\n\nlet _vendorSettings: IVendorSettings | undefined;\n\nexport function getVendorSettings(): IVendorSettings {\n if (!_vendorSettings) {\n const doc = typeof document !== 'undefined' ? document : undefined;\n const nav = typeof navigator !== 'undefined' ? navigator : undefined;\n const userAgent = nav ? nav.userAgent.toLowerCase() : undefined;\n\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n } else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n\n return _vendorSettings;\n}\n\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings?: IVendorSettings): void {\n _vendorSettings = vendorSettings;\n}\n","const rules: { [key: string]: string } = {};\n\nexport function kebabRules(rulePairs: (string | number)[], index: number): void {\n const rule: string = rulePairs[index] as string;\n\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n","import { getVendorSettings } from '../getVendorSettings';\n\nconst autoPrefixNames: { [key: string]: number } = {\n 'user-select': 1,\n};\n\nexport function prefixRules(rulePairs: (string | number)[], index: number): void {\n const vendorSettings = getVendorSettings();\n\n const name = rulePairs[index];\n\n if (autoPrefixNames[name]) {\n const value = rulePairs[index + 1];\n\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n","const NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\n\nexport function provideUnits(rulePairs: (string | number)[], index: number): void {\n const name = rulePairs[index] as string;\n const value = rulePairs[index + 1];\n\n if (typeof value === 'number') {\n const isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name as string) > -1;\n const isVariableOrPrefixed = name.indexOf('--') > -1;\n const unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n\n rulePairs[index + 1] = `${value}${unit}`;\n }\n}\n","import { IStyleOptions } from '../IStyleOptions';\n\nconst LEFT = 'left';\nconst RIGHT = 'right';\nconst NO_FLIP = '@noflip';\nconst NAME_REPLACEMENTS: { [key: string]: string } = {\n [LEFT]: RIGHT,\n [RIGHT]: LEFT,\n};\nconst VALUE_REPLACEMENTS: { [key: string]: string } = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options: IStyleOptions, rulePairs: (string | number)[], index: number): void {\n if (options.rtl) {\n const name = rulePairs[index] as string;\n\n if (!name) {\n return;\n }\n\n const value = rulePairs[index + 1] as string;\n\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n } else if (name.indexOf(LEFT) >= 0) {\n rulePairs[index] = name.replace(LEFT, RIGHT);\n } else if (name.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name.replace(RIGHT, LEFT);\n } else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n } else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n } else if (NAME_REPLACEMENTS[name]) {\n rulePairs[index] = NAME_REPLACEMENTS[name];\n } else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n } else {\n switch (name) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value: string, partIndex: number): string {\n const parts = value.split(' ');\n const numberVal = parseInt(parts[partIndex], 10);\n\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n\n return parts.join(' ');\n}\n\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value: string): string {\n if (typeof value === 'string') {\n const parts = value.split(' ');\n\n if (parts.length === 4) {\n return `${parts[0]} ${parts[3]} ${parts[2]} ${parts[1]}`;\n }\n }\n\n return value;\n}\n","import { IStyle } from './IStyle';\nimport { IRawStyle } from './IRawStyle';\n\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { IStyleOptions } from './IStyleOptions';\n\nconst DISPLAY_NAME = 'displayName';\n\ntype IDictionary = { [key: string]: any };\n\ninterface IRuleSet {\n __order: string[];\n [key: string]: IDictionary;\n}\n\nfunction getDisplayName(rules?: { [key: string]: IRawStyle }): string | undefined {\n const rootStyle: IStyle = rules && rules['&'];\n\n return rootStyle ? (rootStyle as IRawStyle).displayName : undefined;\n}\n\nconst globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n\ntype ReplacementInfo = [number, number, string];\n\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals: string): string {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n\n const replacementInfo: ReplacementInfo[] = [];\n\n const findGlobal = /\\:global\\((.+?)\\)/g;\n let match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map((v: string) => `:global(${v.trim()})`)\n .join(', '),\n ]);\n }\n }\n\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce((selector: string, [matchIndex, matchEndIndex, replacement]: ReplacementInfo) => {\n const prefix = selector.slice(0, matchIndex);\n const suffix = selector.slice(matchEndIndex);\n\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\n\nfunction expandSelector(newSelector: string, currentSelector: string): string {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n } else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n } else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n\n return newSelector;\n}\n\nfunction extractSelector(currentSelector: string, rules: IRuleSet = { __order: [] }, selector: string, value: IStyle) {\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n } else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map((s: string) => s.trim())\n .forEach((separatedSelector: string) =>\n extractRules([value], rules, expandSelector(separatedSelector, currentSelector)),\n );\n } else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\n\nfunction extractRules(args: IStyle[], rules: IRuleSet = { __order: [] }, currentSelector: string = '&'): IRuleSet {\n const stylesheet = Stylesheet.getInstance();\n let currentRules: IDictionary | undefined = rules[currentSelector] as IDictionary;\n\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n\n for (const arg of args) {\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n const expandedRules = stylesheet.argsFromClassName(arg);\n\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n } else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n } else {\n for (const prop in arg as any) {\n if ((arg as any).hasOwnProperty(prop)) {\n const propValue = (arg as any)[prop];\n\n if (prop === 'selectors') {\n // every child is a selector.\n const selectors: { [key: string]: IStyle } = (arg as any).selectors;\n\n for (const newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n } else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n } else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n } else {\n (currentRules as any)[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n\n return rules;\n}\n\nfunction expandQuads(currentRules: IDictionary, name: string, value: string): void {\n const parts = typeof value === 'string' ? value.split(' ') : [value];\n\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\n\nfunction getKeyForRules(options: IStyleOptions, rules: IRuleSet): string | undefined {\n const serialized: string[] = [options.rtl ? 'rtl' : 'ltr'];\n let hasProps = false;\n\n for (const selector of rules.__order) {\n serialized.push(selector);\n const rulesForSelector = rules[selector];\n\n for (const propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n\n return hasProps ? serialized.join('') : undefined;\n}\n\nfunction repeatString(target: string, count: number): string {\n if (count <= 0) {\n return '';\n }\n\n if (count === 1) {\n return target;\n }\n\n return target + repeatString(target, count - 1);\n}\n\nexport function serializeRuleEntries(options: IStyleOptions, ruleEntries: { [key: string]: string | number }): string {\n if (!ruleEntries) {\n return '';\n }\n\n const allEntries: (string | number)[] = [];\n\n for (const entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n\n // Apply transforms.\n for (let i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n\n // Apply punctuation.\n for (let i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n\n return allEntries.join('');\n}\n\nexport interface IRegistration {\n className: string;\n key: string;\n args: IStyle[];\n rulesToInsert: string[];\n}\n\nexport function styleToRegistration(options: IStyleOptions, ...args: IStyle[]): IRegistration | undefined {\n const rules: IRuleSet = extractRules(args);\n const key = getKeyForRules(options, rules);\n\n if (key) {\n const stylesheet = Stylesheet.getInstance();\n const registration: Partial = {\n className: stylesheet.classNameFromKey(key),\n key,\n args,\n };\n\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n const rulesToInsert: string[] = [];\n\n for (const selector of rules.__order) {\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n\n return registration as IRegistration;\n }\n\n return undefined;\n}\n\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration: IRegistration, specificityMultiplier: number = 1): void {\n const stylesheet = Stylesheet.getInstance();\n const { className, key, args, rulesToInsert } = registration;\n\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (let i = 0; i < rulesToInsert.length; i += 2) {\n const rules = rulesToInsert[i + 1];\n if (rules) {\n let selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(`.${registration.className}`, specificityMultiplier));\n\n // Insert. Note if a media query, we must close the query with a final bracket.\n const processedRule = `${selector}{${rules}}${selector.indexOf('@') === 0 ? '}' : ''}`;\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className!, key!, args!, rulesToInsert);\n }\n}\n\nexport function styleToClassName(options: IStyleOptions, ...args: IStyle[]): string {\n const registration = styleToRegistration(options, ...args);\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n\n return registration.className;\n }\n\n return '';\n}\n","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value: string): string[] {\n const parts = [];\n let partStart = 0;\n let parens = 0;\n\n for (let i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n\n return parts;\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License. See License.txt in the project root for license information.\n/**\n * A collection of HttpHeaders that can be sent with a HTTP request.\n */\nfunction getHeaderKey(headerName) {\n return headerName.toLowerCase();\n}\nexport function isHttpHeadersLike(object) {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n if (typeof object.rawHeaders === \"function\" &&\n typeof object.clone === \"function\" &&\n typeof object.get === \"function\" &&\n typeof object.set === \"function\" &&\n typeof object.contains === \"function\" &&\n typeof object.remove === \"function\" &&\n typeof object.headersArray === \"function\" &&\n typeof object.headerValues === \"function\" &&\n typeof object.headerNames === \"function\" &&\n typeof object.toJson === \"function\") {\n return true;\n }\n return false;\n}\n/**\n * A collection of HTTP header key/value pairs.\n */\nvar HttpHeaders = /** @class */ (function () {\n function HttpHeaders(rawHeaders) {\n this._headersMap = {};\n if (rawHeaders) {\n for (var headerName in rawHeaders) {\n this.set(headerName, rawHeaders[headerName]);\n }\n }\n }\n /**\n * Set a header in this collection with the provided name and value. The name is\n * case-insensitive.\n * @param headerName The name of the header to set. This value is case-insensitive.\n * @param headerValue The value of the header to set.\n */\n HttpHeaders.prototype.set = function (headerName, headerValue) {\n this._headersMap[getHeaderKey(headerName)] = {\n name: headerName,\n value: headerValue.toString(),\n };\n };\n /**\n * Get the header value for the provided header name, or undefined if no header exists in this\n * collection with the provided name.\n * @param headerName The name of the header.\n */\n HttpHeaders.prototype.get = function (headerName) {\n var header = this._headersMap[getHeaderKey(headerName)];\n return !header ? undefined : header.value;\n };\n /**\n * Get whether or not this header collection contains a header entry for the provided header name.\n */\n HttpHeaders.prototype.contains = function (headerName) {\n return !!this._headersMap[getHeaderKey(headerName)];\n };\n /**\n * Remove the header with the provided headerName. Return whether or not the header existed and\n * was removed.\n * @param headerName The name of the header to remove.\n */\n HttpHeaders.prototype.remove = function (headerName) {\n var result = this.contains(headerName);\n delete this._headersMap[getHeaderKey(headerName)];\n return result;\n };\n /**\n * Get the headers that are contained this collection as an object.\n */\n HttpHeaders.prototype.rawHeaders = function () {\n var result = {};\n for (var headerKey in this._headersMap) {\n var header = this._headersMap[headerKey];\n result[header.name.toLowerCase()] = header.value;\n }\n return result;\n };\n /**\n * Get the headers that are contained in this collection as an array.\n */\n HttpHeaders.prototype.headersArray = function () {\n var headers = [];\n for (var headerKey in this._headersMap) {\n headers.push(this._headersMap[headerKey]);\n }\n return headers;\n };\n /**\n * Get the header names that are contained in this collection.\n */\n HttpHeaders.prototype.headerNames = function () {\n var headerNames = [];\n var headers = this.headersArray();\n for (var i = 0; i < headers.length; ++i) {\n headerNames.push(headers[i].name);\n }\n return headerNames;\n };\n /**\n * Get the header names that are contained in this collection.\n */\n HttpHeaders.prototype.headerValues = function () {\n var headerValues = [];\n var headers = this.headersArray();\n for (var i = 0; i < headers.length; ++i) {\n headerValues.push(headers[i].value);\n }\n return headerValues;\n };\n /**\n * Get the JSON object representation of this HTTP header collection.\n */\n HttpHeaders.prototype.toJson = function () {\n return this.rawHeaders();\n };\n /**\n * Get the string representation of this HTTP header collection.\n */\n HttpHeaders.prototype.toString = function () {\n return JSON.stringify(this.toJson());\n };\n /**\n * Create a deep clone/copy of this HttpHeaders collection.\n */\n HttpHeaders.prototype.clone = function () {\n return new HttpHeaders(this.rawHeaders());\n };\n return HttpHeaders;\n}());\nexport { HttpHeaders };\n//# sourceMappingURL=httpHeaders.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from '../../../base/browser/browser.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { TextAreaState, _debugComposition } from './textAreaState.js';\nimport { Position } from '../../common/core/position.js';\nimport { Selection } from '../../common/core/selection.js';\nexport var TextAreaSyntethicEvents;\n(function (TextAreaSyntethicEvents) {\n TextAreaSyntethicEvents.Tap = '-monaco-textarea-synthetic-tap';\n})(TextAreaSyntethicEvents || (TextAreaSyntethicEvents = {}));\nexport const CopyOptions = {\n forceCopyWithSyntaxHighlighting: false\n};\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n constructor() {\n this._lastState = null;\n }\n set(lastCopiedValue, data) {\n this._lastState = { lastCopiedValue, data };\n }\n get(pastedText) {\n if (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n // match!\n return this._lastState.data;\n }\n this._lastState = null;\n return null;\n }\n}\nInMemoryClipboardMetadataManager.INSTANCE = new InMemoryClipboardMetadataManager();\n/**\n * Writes screen reader content to the textarea and is able to analyze its input events to generate:\n * - onCut\n * - onPaste\n * - onType\n *\n * Composition events are generated for presentation purposes (composition input is reflected in onType).\n */\nexport class TextAreaInput extends Disposable {\n constructor(host, textArea) {\n super();\n this.textArea = textArea;\n this._onFocus = this._register(new Emitter());\n this.onFocus = this._onFocus.event;\n this._onBlur = this._register(new Emitter());\n this.onBlur = this._onBlur.event;\n this._onKeyDown = this._register(new Emitter());\n this.onKeyDown = this._onKeyDown.event;\n this._onKeyUp = this._register(new Emitter());\n this.onKeyUp = this._onKeyUp.event;\n this._onCut = this._register(new Emitter());\n this.onCut = this._onCut.event;\n this._onPaste = this._register(new Emitter());\n this.onPaste = this._onPaste.event;\n this._onType = this._register(new Emitter());\n this.onType = this._onType.event;\n this._onCompositionStart = this._register(new Emitter());\n this.onCompositionStart = this._onCompositionStart.event;\n this._onCompositionUpdate = this._register(new Emitter());\n this.onCompositionUpdate = this._onCompositionUpdate.event;\n this._onCompositionEnd = this._register(new Emitter());\n this.onCompositionEnd = this._onCompositionEnd.event;\n this._onSelectionChangeRequest = this._register(new Emitter());\n this.onSelectionChangeRequest = this._onSelectionChangeRequest.event;\n this._host = host;\n this._textArea = this._register(new TextAreaWrapper(textArea));\n this._asyncTriggerCut = this._register(new RunOnceScheduler(() => this._onCut.fire(), 0));\n this._asyncFocusGainWriteScreenReaderContent = this._register(new RunOnceScheduler(() => this.writeScreenReaderContent('asyncFocusGain'), 0));\n this._textAreaState = TextAreaState.EMPTY;\n this._selectionChangeListener = null;\n this.writeScreenReaderContent('ctor');\n this._hasFocus = false;\n this._isDoingComposition = false;\n this._nextCommand = 0 /* Type */;\n let lastKeyDown = null;\n this._register(dom.addStandardDisposableListener(textArea.domNode, 'keydown', (e) => {\n if (e.keyCode === 109 /* KEY_IN_COMPOSITION */\n || (this._isDoingComposition && e.keyCode === 1 /* Backspace */)) {\n // Stop propagation for keyDown events if the IME is processing key input\n e.stopPropagation();\n }\n if (e.equals(9 /* Escape */)) {\n // Prevent default always for `Esc`, otherwise it will generate a keypress\n // See https://msdn.microsoft.com/en-us/library/ie/ms536939(v=vs.85).aspx\n e.preventDefault();\n }\n lastKeyDown = e;\n this._onKeyDown.fire(e);\n }));\n this._register(dom.addStandardDisposableListener(textArea.domNode, 'keyup', (e) => {\n this._onKeyUp.fire(e);\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'compositionstart', (e) => {\n if (_debugComposition) {\n console.log(`[compositionstart]`, e);\n }\n if (this._isDoingComposition) {\n return;\n }\n this._isDoingComposition = true;\n if (platform.isMacintosh\n && this._textAreaState.selectionStart === this._textAreaState.selectionEnd\n && this._textAreaState.selectionStart > 0\n && this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data) {\n const isArrowKey = (lastKeyDown && lastKeyDown.equals(109 /* KEY_IN_COMPOSITION */)\n && (lastKeyDown.code === 'ArrowRight' || lastKeyDown.code === 'ArrowLeft'));\n if (isArrowKey || browser.isFirefox) {\n // Handling long press case on Chromium/Safari macOS + arrow key => pretend the character was selected\n // or long press case on Firefox on macOS\n if (_debugComposition) {\n console.log(`[compositionstart] Handling long press case on macOS + arrow key or Firefox`, e);\n }\n this._textAreaState = new TextAreaState(this._textAreaState.value, this._textAreaState.selectionStart - 1, this._textAreaState.selectionEnd, this._textAreaState.selectionStartPosition ? new Position(this._textAreaState.selectionStartPosition.lineNumber, this._textAreaState.selectionStartPosition.column - 1) : null, this._textAreaState.selectionEndPosition);\n this._onCompositionStart.fire({ revealDeltaColumns: -1 });\n return;\n }\n }\n if (browser.isAndroid) {\n // when tapping on the editor, Android enters composition mode to edit the current word\n // so we cannot clear the textarea on Android and we must pretend the current word was selected\n this._onCompositionStart.fire({ revealDeltaColumns: -this._textAreaState.selectionStart });\n return;\n }\n this._setAndWriteTextAreaState('compositionstart', TextAreaState.EMPTY);\n this._onCompositionStart.fire({ revealDeltaColumns: 0 });\n }));\n /**\n * Deduce the typed input from a text area's value and the last observed state.\n */\n const deduceInputFromTextAreaValue = (couldBeEmojiInput) => {\n const oldState = this._textAreaState;\n const newState = TextAreaState.readFromTextArea(this._textArea);\n return [newState, TextAreaState.deduceInput(oldState, newState, couldBeEmojiInput)];\n };\n const deduceAndroidCompositionInput = () => {\n const oldState = this._textAreaState;\n const newState = TextAreaState.readFromTextArea(this._textArea);\n return [newState, TextAreaState.deduceAndroidCompositionInput(oldState, newState)];\n };\n /**\n * Deduce the composition input from a string.\n */\n const deduceComposition = (text) => {\n const oldState = this._textAreaState;\n const newState = TextAreaState.selectedText(text);\n const typeInput = {\n text: newState.value,\n replacePrevCharCnt: oldState.selectionEnd - oldState.selectionStart,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n return [newState, typeInput];\n };\n this._register(dom.addDisposableListener(textArea.domNode, 'compositionupdate', (e) => {\n if (_debugComposition) {\n console.log(`[compositionupdate]`, e);\n }\n if (browser.isAndroid) {\n // On Android, the data sent with the composition update event is unusable.\n // For example, if the cursor is in the middle of a word like Mic|osoft\n // and Microsoft is chosen from the keyboard's suggestions, the e.data will contain \"Microsoft\".\n // This is not really usable because it doesn't tell us where the edit began and where it ended.\n const [newState, typeInput] = deduceAndroidCompositionInput();\n this._textAreaState = newState;\n this._onType.fire(typeInput);\n this._onCompositionUpdate.fire(e);\n return;\n }\n const [newState, typeInput] = deduceComposition(e.data || '');\n this._textAreaState = newState;\n this._onType.fire(typeInput);\n this._onCompositionUpdate.fire(e);\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'compositionend', (e) => {\n if (_debugComposition) {\n console.log(`[compositionend]`, e);\n }\n // https://github.com/microsoft/monaco-editor/issues/1663\n // On iOS 13.2, Chinese system IME randomly trigger an additional compositionend event with empty data\n if (!this._isDoingComposition) {\n return;\n }\n this._isDoingComposition = false;\n if (browser.isAndroid) {\n // On Android, the data sent with the composition update event is unusable.\n // For example, if the cursor is in the middle of a word like Mic|osoft\n // and Microsoft is chosen from the keyboard's suggestions, the e.data will contain \"Microsoft\".\n // This is not really usable because it doesn't tell us where the edit began and where it ended.\n const [newState, typeInput] = deduceAndroidCompositionInput();\n this._textAreaState = newState;\n this._onType.fire(typeInput);\n this._onCompositionEnd.fire();\n return;\n }\n const [newState, typeInput] = deduceComposition(e.data || '');\n this._textAreaState = newState;\n this._onType.fire(typeInput);\n // isChrome: the textarea is not updated correctly when composition ends\n // isFirefox: the textarea is not updated correctly after inserting emojis\n // => we cannot assume the text at the end consists only of the composited text\n if (browser.isChrome || browser.isFirefox) {\n this._textAreaState = TextAreaState.readFromTextArea(this._textArea);\n }\n this._onCompositionEnd.fire();\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'input', () => {\n // Pretend here we touched the text area, as the `input` event will most likely\n // result in a `selectionchange` event which we want to ignore\n this._textArea.setIgnoreSelectionChangeTime('received input event');\n if (this._isDoingComposition) {\n return;\n }\n const [newState, typeInput] = deduceInputFromTextAreaValue(/*couldBeEmojiInput*/ platform.isMacintosh);\n if (typeInput.replacePrevCharCnt === 0 && typeInput.text.length === 1 && strings.isHighSurrogate(typeInput.text.charCodeAt(0))) {\n // Ignore invalid input but keep it around for next time\n return;\n }\n this._textAreaState = newState;\n if (this._nextCommand === 0 /* Type */) {\n if (typeInput.text !== '' || typeInput.replacePrevCharCnt !== 0) {\n this._onType.fire(typeInput);\n }\n }\n else {\n if (typeInput.text !== '' || typeInput.replacePrevCharCnt !== 0) {\n this._firePaste(typeInput.text, null);\n }\n this._nextCommand = 0 /* Type */;\n }\n }));\n // --- Clipboard operations\n this._register(dom.addDisposableListener(textArea.domNode, 'cut', (e) => {\n // Pretend here we touched the text area, as the `cut` event will most likely\n // result in a `selectionchange` event which we want to ignore\n this._textArea.setIgnoreSelectionChangeTime('received cut event');\n this._ensureClipboardGetsEditorSelection(e);\n this._asyncTriggerCut.schedule();\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'copy', (e) => {\n this._ensureClipboardGetsEditorSelection(e);\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'paste', (e) => {\n // Pretend here we touched the text area, as the `paste` event will most likely\n // result in a `selectionchange` event which we want to ignore\n this._textArea.setIgnoreSelectionChangeTime('received paste event');\n if (ClipboardEventUtils.canUseTextData(e)) {\n const [pastePlainText, metadata] = ClipboardEventUtils.getTextData(e);\n if (pastePlainText !== '') {\n this._firePaste(pastePlainText, metadata);\n }\n }\n else {\n if (this._textArea.getSelectionStart() !== this._textArea.getSelectionEnd()) {\n // Clean up the textarea, to get a clean paste\n this._setAndWriteTextAreaState('paste', TextAreaState.EMPTY);\n }\n this._nextCommand = 1 /* Paste */;\n }\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'focus', () => {\n const hadFocus = this._hasFocus;\n this._setHasFocus(true);\n if (browser.isSafari && !hadFocus && this._hasFocus) {\n // When \"tabbing into\" the textarea, immediately after dispatching the 'focus' event,\n // Safari will always move the selection at offset 0 in the textarea\n this._asyncFocusGainWriteScreenReaderContent.schedule();\n }\n }));\n this._register(dom.addDisposableListener(textArea.domNode, 'blur', () => {\n if (this._isDoingComposition) {\n // See https://github.com/microsoft/vscode/issues/112621\n // where compositionend is not triggered when the editor\n // is taken off-dom during a composition\n // Clear the flag to be able to write to the textarea\n this._isDoingComposition = false;\n // Clear the textarea to avoid an unwanted cursor type\n this.writeScreenReaderContent('blurWithoutCompositionEnd');\n // Fire artificial composition end\n this._onCompositionEnd.fire();\n }\n this._setHasFocus(false);\n }));\n this._register(dom.addDisposableListener(textArea.domNode, TextAreaSyntethicEvents.Tap, () => {\n if (browser.isAndroid && this._isDoingComposition) {\n // on Android, tapping does not cancel the current composition, so the\n // textarea is stuck showing the old composition\n // Clear the flag to be able to write to the textarea\n this._isDoingComposition = false;\n // Clear the textarea to avoid an unwanted cursor type\n this.writeScreenReaderContent('tapWithoutCompositionEnd');\n // Fire artificial composition end\n this._onCompositionEnd.fire();\n }\n }));\n }\n _installSelectionChangeListener() {\n // See https://github.com/microsoft/vscode/issues/27216 and https://github.com/microsoft/vscode/issues/98256\n // When using a Braille display, it is possible for users to reposition the\n // system caret. This is reflected in Chrome as a `selectionchange` event.\n //\n // The `selectionchange` event appears to be emitted under numerous other circumstances,\n // so it is quite a challenge to distinguish a `selectionchange` coming in from a user\n // using a Braille display from all the other cases.\n //\n // The problems with the `selectionchange` event are:\n // * the event is emitted when the textarea is focused programmatically -- textarea.focus()\n // * the event is emitted when the selection is changed in the textarea programmatically -- textarea.setSelectionRange(...)\n // * the event is emitted when the value of the textarea is changed programmatically -- textarea.value = '...'\n // * the event is emitted when tabbing into the textarea\n // * the event is emitted asynchronously (sometimes with a delay as high as a few tens of ms)\n // * the event sometimes comes in bursts for a single logical textarea operation\n // `selectionchange` events often come multiple times for a single logical change\n // so throttle multiple `selectionchange` events that burst in a short period of time.\n let previousSelectionChangeEventTime = 0;\n return dom.addDisposableListener(document, 'selectionchange', (e) => {\n if (!this._hasFocus) {\n return;\n }\n if (this._isDoingComposition) {\n return;\n }\n if (!browser.isChrome) {\n // Support only for Chrome until testing happens on other browsers\n return;\n }\n const now = Date.now();\n const delta1 = now - previousSelectionChangeEventTime;\n previousSelectionChangeEventTime = now;\n if (delta1 < 5) {\n // received another `selectionchange` event within 5ms of the previous `selectionchange` event\n // => ignore it\n return;\n }\n const delta2 = now - this._textArea.getIgnoreSelectionChangeTime();\n this._textArea.resetSelectionChangeTime();\n if (delta2 < 100) {\n // received a `selectionchange` event within 100ms since we touched the textarea\n // => ignore it, since we caused it\n return;\n }\n if (!this._textAreaState.selectionStartPosition || !this._textAreaState.selectionEndPosition) {\n // Cannot correlate a position in the textarea with a position in the editor...\n return;\n }\n const newValue = this._textArea.getValue();\n if (this._textAreaState.value !== newValue) {\n // Cannot correlate a position in the textarea with a position in the editor...\n return;\n }\n const newSelectionStart = this._textArea.getSelectionStart();\n const newSelectionEnd = this._textArea.getSelectionEnd();\n if (this._textAreaState.selectionStart === newSelectionStart && this._textAreaState.selectionEnd === newSelectionEnd) {\n // Nothing to do...\n return;\n }\n const _newSelectionStartPosition = this._textAreaState.deduceEditorPosition(newSelectionStart);\n const newSelectionStartPosition = this._host.deduceModelPosition(_newSelectionStartPosition[0], _newSelectionStartPosition[1], _newSelectionStartPosition[2]);\n const _newSelectionEndPosition = this._textAreaState.deduceEditorPosition(newSelectionEnd);\n const newSelectionEndPosition = this._host.deduceModelPosition(_newSelectionEndPosition[0], _newSelectionEndPosition[1], _newSelectionEndPosition[2]);\n const newSelection = new Selection(newSelectionStartPosition.lineNumber, newSelectionStartPosition.column, newSelectionEndPosition.lineNumber, newSelectionEndPosition.column);\n this._onSelectionChangeRequest.fire(newSelection);\n });\n }\n dispose() {\n super.dispose();\n if (this._selectionChangeListener) {\n this._selectionChangeListener.dispose();\n this._selectionChangeListener = null;\n }\n }\n focusTextArea() {\n // Setting this._hasFocus and writing the screen reader content\n // will result in a focus() and setSelectionRange() in the textarea\n this._setHasFocus(true);\n // If the editor is off DOM, focus cannot be really set, so let's double check that we have managed to set the focus\n this.refreshFocusState();\n }\n isFocused() {\n return this._hasFocus;\n }\n refreshFocusState() {\n const shadowRoot = dom.getShadowRoot(this.textArea.domNode);\n if (shadowRoot) {\n this._setHasFocus(shadowRoot.activeElement === this.textArea.domNode);\n }\n else if (dom.isInDOM(this.textArea.domNode)) {\n this._setHasFocus(document.activeElement === this.textArea.domNode);\n }\n else {\n this._setHasFocus(false);\n }\n }\n _setHasFocus(newHasFocus) {\n if (this._hasFocus === newHasFocus) {\n // no change\n return;\n }\n this._hasFocus = newHasFocus;\n if (this._selectionChangeListener) {\n this._selectionChangeListener.dispose();\n this._selectionChangeListener = null;\n }\n if (this._hasFocus) {\n this._selectionChangeListener = this._installSelectionChangeListener();\n }\n if (this._hasFocus) {\n this.writeScreenReaderContent('focusgain');\n }\n if (this._hasFocus) {\n this._onFocus.fire();\n }\n else {\n this._onBlur.fire();\n }\n }\n _setAndWriteTextAreaState(reason, textAreaState) {\n if (!this._hasFocus) {\n textAreaState = textAreaState.collapseSelection();\n }\n textAreaState.writeToTextArea(reason, this._textArea, this._hasFocus);\n this._textAreaState = textAreaState;\n }\n writeScreenReaderContent(reason) {\n if (this._isDoingComposition) {\n // Do not write to the text area when doing composition\n return;\n }\n this._setAndWriteTextAreaState(reason, this._host.getScreenReaderContent(this._textAreaState));\n }\n _ensureClipboardGetsEditorSelection(e) {\n const dataToCopy = this._host.getDataToCopy(ClipboardEventUtils.canUseTextData(e));\n const storedMetadata = {\n version: 1,\n isFromEmptySelection: dataToCopy.isFromEmptySelection,\n multicursorText: dataToCopy.multicursorText,\n mode: dataToCopy.mode\n };\n InMemoryClipboardMetadataManager.INSTANCE.set(\n // When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n // Firefox pastes \"LINE\\n\", so let's work around this quirk\n (browser.isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text), storedMetadata);\n if (!ClipboardEventUtils.canUseTextData(e)) {\n // Looks like an old browser. The strategy is to place the text\n // we'd like to be copied to the clipboard in the textarea and select it.\n this._setAndWriteTextAreaState('copy or cut', TextAreaState.selectedText(dataToCopy.text));\n return;\n }\n ClipboardEventUtils.setTextData(e, dataToCopy.text, dataToCopy.html, storedMetadata);\n }\n _firePaste(text, metadata) {\n if (!metadata) {\n // try the in-memory store\n metadata = InMemoryClipboardMetadataManager.INSTANCE.get(text);\n }\n this._onPaste.fire({\n text: text,\n metadata: metadata\n });\n }\n}\nclass ClipboardEventUtils {\n static canUseTextData(e) {\n if (e.clipboardData) {\n return true;\n }\n return false;\n }\n static getTextData(e) {\n if (e.clipboardData) {\n e.preventDefault();\n const text = e.clipboardData.getData(Mimes.text);\n let metadata = null;\n const rawmetadata = e.clipboardData.getData('vscode-editor-data');\n if (typeof rawmetadata === 'string') {\n try {\n metadata = JSON.parse(rawmetadata);\n if (metadata.version !== 1) {\n metadata = null;\n }\n }\n catch (err) {\n // no problem!\n }\n }\n return [text, metadata];\n }\n throw new Error('ClipboardEventUtils.getTextData: Cannot use text data!');\n }\n static setTextData(e, text, html, metadata) {\n if (e.clipboardData) {\n e.clipboardData.setData(Mimes.text, text);\n if (typeof html === 'string') {\n e.clipboardData.setData('text/html', html);\n }\n e.clipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\n e.preventDefault();\n return;\n }\n throw new Error('ClipboardEventUtils.setTextData: Cannot use text data!');\n }\n}\nclass TextAreaWrapper extends Disposable {\n constructor(_textArea) {\n super();\n this._actual = _textArea;\n this._ignoreSelectionChangeTime = 0;\n }\n setIgnoreSelectionChangeTime(reason) {\n this._ignoreSelectionChangeTime = Date.now();\n }\n getIgnoreSelectionChangeTime() {\n return this._ignoreSelectionChangeTime;\n }\n resetSelectionChangeTime() {\n this._ignoreSelectionChangeTime = 0;\n }\n getValue() {\n // console.log('current value: ' + this._textArea.value);\n return this._actual.domNode.value;\n }\n setValue(reason, value) {\n const textArea = this._actual.domNode;\n if (textArea.value === value) {\n // No change\n return;\n }\n // console.log('reason: ' + reason + ', current value: ' + textArea.value + ' => new value: ' + value);\n this.setIgnoreSelectionChangeTime('setValue');\n textArea.value = value;\n }\n getSelectionStart() {\n return this._actual.domNode.selectionDirection === 'backward' ? this._actual.domNode.selectionEnd : this._actual.domNode.selectionStart;\n }\n getSelectionEnd() {\n return this._actual.domNode.selectionDirection === 'backward' ? this._actual.domNode.selectionStart : this._actual.domNode.selectionEnd;\n }\n setSelectionRange(reason, selectionStart, selectionEnd) {\n const textArea = this._actual.domNode;\n let activeElement = null;\n const shadowRoot = dom.getShadowRoot(textArea);\n if (shadowRoot) {\n activeElement = shadowRoot.activeElement;\n }\n else {\n activeElement = document.activeElement;\n }\n const currentIsFocused = (activeElement === textArea);\n const currentSelectionStart = textArea.selectionStart;\n const currentSelectionEnd = textArea.selectionEnd;\n if (currentIsFocused && currentSelectionStart === selectionStart && currentSelectionEnd === selectionEnd) {\n // No change\n // Firefox iframe bug https://github.com/microsoft/monaco-editor/issues/643#issuecomment-367871377\n if (browser.isFirefox && window.parent !== window) {\n textArea.focus();\n }\n return;\n }\n // console.log('reason: ' + reason + ', setSelectionRange: ' + selectionStart + ' -> ' + selectionEnd);\n if (currentIsFocused) {\n // No need to focus, only need to change the selection range\n this.setIgnoreSelectionChangeTime('setSelectionRange');\n textArea.setSelectionRange(selectionStart, selectionEnd);\n if (browser.isFirefox && window.parent !== window) {\n textArea.focus();\n }\n return;\n }\n // If the focus is outside the textarea, browsers will try really hard to reveal the textarea.\n // Here, we try to undo the browser's desperate reveal.\n try {\n const scrollState = dom.saveParentsScrollTop(textArea);\n this.setIgnoreSelectionChangeTime('setSelectionRange');\n textArea.focus();\n textArea.setSelectionRange(selectionStart, selectionEnd);\n dom.restoreParentsScrollTop(textArea, scrollState);\n }\n catch (e) {\n // Sometimes IE throws when setting selection (e.g. textarea is off-DOM)\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport * as objects from '../../../common/objects.js';\nexport class HighlightedLabel {\n constructor(container, supportIcons) {\n this.supportIcons = supportIcons;\n this.text = '';\n this.title = '';\n this.highlights = [];\n this.didEverRender = false;\n this.domNode = document.createElement('span');\n this.domNode.className = 'monaco-highlighted-label';\n container.appendChild(this.domNode);\n }\n get element() {\n return this.domNode;\n }\n set(text, highlights = [], title = '', escapeNewLines) {\n if (!text) {\n text = '';\n }\n if (escapeNewLines) {\n // adjusts highlights inplace\n text = HighlightedLabel.escapeNewLines(text, highlights);\n }\n if (this.didEverRender && this.text === text && this.title === title && objects.equals(this.highlights, highlights)) {\n return;\n }\n this.text = text;\n this.title = title;\n this.highlights = highlights;\n this.render();\n }\n render() {\n const children = [];\n let pos = 0;\n for (const highlight of this.highlights) {\n if (highlight.end === highlight.start) {\n continue;\n }\n if (pos < highlight.start) {\n const substring = this.text.substring(pos, highlight.start);\n children.push(dom.$('span', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]));\n pos = highlight.end;\n }\n const substring = this.text.substring(highlight.start, highlight.end);\n const element = dom.$('span.highlight', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]);\n if (highlight.extraClasses) {\n element.classList.add(highlight.extraClasses);\n }\n children.push(element);\n pos = highlight.end;\n }\n if (pos < this.text.length) {\n const substring = this.text.substring(pos);\n children.push(dom.$('span', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]));\n }\n dom.reset(this.domNode, ...children);\n if (this.title) {\n this.domNode.title = this.title;\n }\n else {\n this.domNode.removeAttribute('title');\n }\n this.didEverRender = true;\n }\n static escapeNewLines(text, highlights) {\n let total = 0;\n let extra = 0;\n return text.replace(/\\r\\n|\\r|\\n/g, (match, offset) => {\n extra = match === '\\r\\n' ? -1 : 0;\n offset += total;\n for (const highlight of highlights) {\n if (highlight.end <= offset) {\n continue;\n }\n if (highlight.start >= offset) {\n highlight.start += extra;\n }\n if (highlight.end >= offset) {\n highlight.end += extra;\n }\n }\n total += extra;\n return '\\u23CE';\n });\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { isFunction } from \"./HelperFuncs\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nvar TelemetryPluginChain = /** @class */ (function () {\r\n function TelemetryPluginChain(plugin, defItemCtx) {\r\n var _self = this;\r\n var _nextProxy = null;\r\n var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\r\n var _hasSetNext = isFunction(plugin.setNextPlugin);\r\n _self._hasRun = false;\r\n _self.getPlugin = function () {\r\n return plugin;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + \":processTelemetry\"; }, function () {\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && (_nextProxy._hasRun = false);\r\n plugin.processTelemetry(env, itemCtx);\r\n }\r\n catch (error) {\r\n var hasRun = _nextProxy && _nextProxy._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + dumpObj(error));\r\n }\r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n }\r\n else if (_nextProxy) {\r\n _self._hasRun = true;\r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n }\r\n return TelemetryPluginChain;\r\n}());\r\nexport { TelemetryPluginChain };\r\n//# sourceMappingURL=TelemetryPluginChain.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins, itemCtx) {\r\n var proxies = [];\r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy = null;\r\n for (var idx = 0; idx < plugins.length; idx++) {\r\n var thePlugin = plugins[idx];\r\n if (thePlugin && isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\r\n var plugins = [];\r\n var add = startAt ? false : true;\r\n if (proxy) {\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\r\n var plugins = srcPlugins;\r\n var add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n arrForEach(srcPlugins, function (thePlugin) {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(plugins, config, core, startAt) {\r\n var _self = this;\r\n var _nextProxy = null; // Null == No next plugin\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && isFunction(plugins.getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\r\n }\r\n else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins, _self, startAt);\r\n }\r\n else if (isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins, _self);\r\n }\r\n }\r\n }\r\n _self.core = function () {\r\n return core;\r\n };\r\n _self.diagLog = function () {\r\n return safeGetLogger(core, config);\r\n };\r\n _self.getCfg = function () {\r\n return config;\r\n };\r\n _self.getExtCfg = function (identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n return (theConfig ? theConfig : defaultValue);\r\n };\r\n _self.getConfig = function (identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n _self.hasNext = function () {\r\n return _nextProxy != null;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processNext = function (env) {\r\n var nextPlugin = _nextProxy;\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n _self.createNew = function (plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\r\n };\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { InvariantError } from '../globals';\n\nimport {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n SelectionSetNode,\n DocumentNode,\n} from 'graphql';\n\nimport { isNonNullObject } from '../common/objects';\nimport { FragmentMap, getFragmentFromSelection } from './fragments';\n\nexport interface Reference {\n readonly __ref: string;\n}\n\nexport function makeReference(id: string): Reference {\n return { __ref: String(id) };\n}\n\nexport function isReference(obj: any): obj is Reference {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | Reference\n | Reference[]\n | null\n | undefined\n | void\n | Object;\n\nexport interface StoreObject {\n __typename?: string;\n [storeFieldName: string]: StoreValue;\n}\n\nexport function isDocumentNode(value: any): value is DocumentNode {\n return (\n isNonNullObject(value) &&\n (value as DocumentNode).kind === \"Document\" &&\n Array.isArray((value as DocumentNode).definitions)\n );\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport const getStoreKeyName = Object.assign(function (\n fieldName: string,\n args?: Record | null,\n directives?: Directives,\n): string {\n if (\n args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = args[key];\n });\n\n return `${directives['connection']['key']}(${stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}, {\n setStringify(s: typeof stringify) {\n const previous = stringify;\n stringify = s;\n return previous;\n },\n});\n\n// Default stable JSON.stringify implementation. Can be updated/replaced with\n// something better by calling getStoreKeyName.setStringify.\nlet stringify = function defaultStringify(value: any): string {\n return JSON.stringify(value, stringifyReplacer);\n};\n\nfunction stringifyReplacer(_key: string, value: any): any {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce((copy, key) => {\n copy[key] = value[key];\n return copy;\n }, {} as Record);\n }\n return value;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables?: Record,\n): Object | null {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function getTypenameFromResult(\n result: Record,\n selectionSet: SelectionSetNode,\n fragmentMap?: FragmentMap,\n): string | undefined {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n\n for (const selection of selectionSet.selections) {\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n } else {\n const typename = getTypenameFromResult(\n result,\n getFragmentFromSelection(selection, fragmentMap)!.selectionSet,\n fragmentMap,\n );\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Selection } from '../core/selection.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { TextChange, compressConsecutiveTextChanges } from './textChange.js';\nimport * as buffer from '../../../base/common/buffer.js';\nimport { basename } from '../../../base/common/resources.js';\nfunction uriGetComparisonKey(resource) {\n return resource.toString();\n}\nexport class SingleModelEditStackData {\n constructor(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes) {\n this.beforeVersionId = beforeVersionId;\n this.afterVersionId = afterVersionId;\n this.beforeEOL = beforeEOL;\n this.afterEOL = afterEOL;\n this.beforeCursorState = beforeCursorState;\n this.afterCursorState = afterCursorState;\n this.changes = changes;\n }\n static create(model, beforeCursorState) {\n const alternativeVersionId = model.getAlternativeVersionId();\n const eol = getModelEOL(model);\n return new SingleModelEditStackData(alternativeVersionId, alternativeVersionId, eol, eol, beforeCursorState, beforeCursorState, []);\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n if (textChanges.length > 0) {\n this.changes = compressConsecutiveTextChanges(this.changes, textChanges);\n }\n this.afterEOL = afterEOL;\n this.afterVersionId = afterVersionId;\n this.afterCursorState = afterCursorState;\n }\n static _writeSelectionsSize(selections) {\n return 4 + 4 * 4 * (selections ? selections.length : 0);\n }\n static _writeSelections(b, selections, offset) {\n buffer.writeUInt32BE(b, (selections ? selections.length : 0), offset);\n offset += 4;\n if (selections) {\n for (const selection of selections) {\n buffer.writeUInt32BE(b, selection.selectionStartLineNumber, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.selectionStartColumn, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.positionLineNumber, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.positionColumn, offset);\n offset += 4;\n }\n }\n return offset;\n }\n static _readSelections(b, offset, dest) {\n const count = buffer.readUInt32BE(b, offset);\n offset += 4;\n for (let i = 0; i < count; i++) {\n const selectionStartLineNumber = buffer.readUInt32BE(b, offset);\n offset += 4;\n const selectionStartColumn = buffer.readUInt32BE(b, offset);\n offset += 4;\n const positionLineNumber = buffer.readUInt32BE(b, offset);\n offset += 4;\n const positionColumn = buffer.readUInt32BE(b, offset);\n offset += 4;\n dest.push(new Selection(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn));\n }\n return offset;\n }\n serialize() {\n let necessarySize = (+4 // beforeVersionId\n + 4 // afterVersionId\n + 1 // beforeEOL\n + 1 // afterEOL\n + SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState)\n + SingleModelEditStackData._writeSelectionsSize(this.afterCursorState)\n + 4 // change count\n );\n for (const change of this.changes) {\n necessarySize += change.writeSize();\n }\n const b = new Uint8Array(necessarySize);\n let offset = 0;\n buffer.writeUInt32BE(b, this.beforeVersionId, offset);\n offset += 4;\n buffer.writeUInt32BE(b, this.afterVersionId, offset);\n offset += 4;\n buffer.writeUInt8(b, this.beforeEOL, offset);\n offset += 1;\n buffer.writeUInt8(b, this.afterEOL, offset);\n offset += 1;\n offset = SingleModelEditStackData._writeSelections(b, this.beforeCursorState, offset);\n offset = SingleModelEditStackData._writeSelections(b, this.afterCursorState, offset);\n buffer.writeUInt32BE(b, this.changes.length, offset);\n offset += 4;\n for (const change of this.changes) {\n offset = change.write(b, offset);\n }\n return b.buffer;\n }\n static deserialize(source) {\n const b = new Uint8Array(source);\n let offset = 0;\n const beforeVersionId = buffer.readUInt32BE(b, offset);\n offset += 4;\n const afterVersionId = buffer.readUInt32BE(b, offset);\n offset += 4;\n const beforeEOL = buffer.readUInt8(b, offset);\n offset += 1;\n const afterEOL = buffer.readUInt8(b, offset);\n offset += 1;\n const beforeCursorState = [];\n offset = SingleModelEditStackData._readSelections(b, offset, beforeCursorState);\n const afterCursorState = [];\n offset = SingleModelEditStackData._readSelections(b, offset, afterCursorState);\n const changeCount = buffer.readUInt32BE(b, offset);\n offset += 4;\n const changes = [];\n for (let i = 0; i < changeCount; i++) {\n offset = TextChange.read(b, offset, changes);\n }\n return new SingleModelEditStackData(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes);\n }\n}\nexport class SingleModelEditStackElement {\n constructor(model, beforeCursorState) {\n this.model = model;\n this._data = SingleModelEditStackData.create(model, beforeCursorState);\n }\n get type() {\n return 0 /* Resource */;\n }\n get resource() {\n if (URI.isUri(this.model)) {\n return this.model;\n }\n return this.model.uri;\n }\n get label() {\n return nls.localize('edit', \"Typing\");\n }\n toString() {\n const data = (this._data instanceof SingleModelEditStackData ? this._data : SingleModelEditStackData.deserialize(this._data));\n return data.changes.map(change => change.toString()).join(', ');\n }\n matchesResource(resource) {\n const uri = (URI.isUri(this.model) ? this.model : this.model.uri);\n return (uri.toString() === resource.toString());\n }\n setModel(model) {\n this.model = model;\n }\n canAppend(model) {\n return (this.model === model && this._data instanceof SingleModelEditStackData);\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n if (this._data instanceof SingleModelEditStackData) {\n this._data.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n }\n }\n close() {\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n }\n open() {\n if (!(this._data instanceof SingleModelEditStackData)) {\n this._data = SingleModelEditStackData.deserialize(this._data);\n }\n }\n undo() {\n if (URI.isUri(this.model)) {\n // don't have a model\n throw new Error(`Invalid SingleModelEditStackElement`);\n }\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n const data = SingleModelEditStackData.deserialize(this._data);\n this.model._applyUndo(data.changes, data.beforeEOL, data.beforeVersionId, data.beforeCursorState);\n }\n redo() {\n if (URI.isUri(this.model)) {\n // don't have a model\n throw new Error(`Invalid SingleModelEditStackElement`);\n }\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n const data = SingleModelEditStackData.deserialize(this._data);\n this.model._applyRedo(data.changes, data.afterEOL, data.afterVersionId, data.afterCursorState);\n }\n heapSize() {\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n return this._data.byteLength + 168 /*heap overhead*/;\n }\n}\nexport class MultiModelEditStackElement {\n constructor(label, editStackElements) {\n this.type = 1 /* Workspace */;\n this.label = label;\n this._isOpen = true;\n this._editStackElementsArr = editStackElements.slice(0);\n this._editStackElementsMap = new Map();\n for (const editStackElement of this._editStackElementsArr) {\n const key = uriGetComparisonKey(editStackElement.resource);\n this._editStackElementsMap.set(key, editStackElement);\n }\n this._delegate = null;\n }\n get resources() {\n return this._editStackElementsArr.map(editStackElement => editStackElement.resource);\n }\n prepareUndoRedo() {\n if (this._delegate) {\n return this._delegate.prepareUndoRedo(this);\n }\n }\n matchesResource(resource) {\n const key = uriGetComparisonKey(resource);\n return (this._editStackElementsMap.has(key));\n }\n setModel(model) {\n const key = uriGetComparisonKey(URI.isUri(model) ? model : model.uri);\n if (this._editStackElementsMap.has(key)) {\n this._editStackElementsMap.get(key).setModel(model);\n }\n }\n canAppend(model) {\n if (!this._isOpen) {\n return false;\n }\n const key = uriGetComparisonKey(model.uri);\n if (this._editStackElementsMap.has(key)) {\n const editStackElement = this._editStackElementsMap.get(key);\n return editStackElement.canAppend(model);\n }\n return false;\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n const key = uriGetComparisonKey(model.uri);\n const editStackElement = this._editStackElementsMap.get(key);\n editStackElement.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n }\n close() {\n this._isOpen = false;\n }\n open() {\n // cannot reopen\n }\n undo() {\n this._isOpen = false;\n for (const editStackElement of this._editStackElementsArr) {\n editStackElement.undo();\n }\n }\n redo() {\n for (const editStackElement of this._editStackElementsArr) {\n editStackElement.redo();\n }\n }\n heapSize(resource) {\n const key = uriGetComparisonKey(resource);\n if (this._editStackElementsMap.has(key)) {\n const editStackElement = this._editStackElementsMap.get(key);\n return editStackElement.heapSize();\n }\n return 0;\n }\n split() {\n return this._editStackElementsArr;\n }\n toString() {\n let result = [];\n for (const editStackElement of this._editStackElementsArr) {\n result.push(`${basename(editStackElement.resource)}: ${editStackElement}`);\n }\n return `{${result.join(', ')}}`;\n }\n}\nfunction getModelEOL(model) {\n const eol = model.getEOL();\n if (eol === '\\n') {\n return 0 /* LF */;\n }\n else {\n return 1 /* CRLF */;\n }\n}\nexport function isEditStackElement(element) {\n if (!element) {\n return false;\n }\n return ((element instanceof SingleModelEditStackElement) || (element instanceof MultiModelEditStackElement));\n}\nexport class EditStack {\n constructor(model, undoRedoService) {\n this._model = model;\n this._undoRedoService = undoRedoService;\n }\n pushStackElement() {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement)) {\n lastElement.close();\n }\n }\n popStackElement() {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement)) {\n lastElement.open();\n }\n }\n clear() {\n this._undoRedoService.removeElements(this._model.uri);\n }\n _getOrCreateEditStackElement(beforeCursorState) {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement) && lastElement.canAppend(this._model)) {\n return lastElement;\n }\n const newElement = new SingleModelEditStackElement(this._model, beforeCursorState);\n this._undoRedoService.pushElement(newElement);\n return newElement;\n }\n pushEOL(eol) {\n const editStackElement = this._getOrCreateEditStackElement(null);\n this._model.setEOL(eol);\n editStackElement.append(this._model, [], getModelEOL(this._model), this._model.getAlternativeVersionId(), null);\n }\n pushEditOperation(beforeCursorState, editOperations, cursorStateComputer) {\n const editStackElement = this._getOrCreateEditStackElement(beforeCursorState);\n const inverseEditOperations = this._model.applyEdits(editOperations, true);\n const afterCursorState = EditStack._computeCursorState(cursorStateComputer, inverseEditOperations);\n const textChanges = inverseEditOperations.map((op, index) => ({ index: index, textChange: op.textChange }));\n textChanges.sort((a, b) => {\n if (a.textChange.oldPosition === b.textChange.oldPosition) {\n return a.index - b.index;\n }\n return a.textChange.oldPosition - b.textChange.oldPosition;\n });\n editStackElement.append(this._model, textChanges.map(op => op.textChange), getModelEOL(this._model), this._model.getAlternativeVersionId(), afterCursorState);\n return afterCursorState;\n }\n static _computeCursorState(cursorStateComputer, inverseEditOperations) {\n try {\n return cursorStateComputer ? cursorStateComputer(inverseEditOperations) : null;\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\n/**\n * Common operations that work and make sense both on the model and on the view model.\n */\nexport class CursorColumns {\n static visibleColumnFromColumn(lineContent, column, tabSize) {\n const lineContentLength = lineContent.length;\n const endOffset = column - 1 < lineContentLength ? column - 1 : lineContentLength;\n let result = 0;\n let i = 0;\n while (i < endOffset) {\n const codePoint = strings.getNextCodePoint(lineContent, endOffset, i);\n i += (codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n if (codePoint === 9 /* Tab */) {\n result = CursorColumns.nextRenderTabStop(result, tabSize);\n }\n else {\n let graphemeBreakType = strings.getGraphemeBreakType(codePoint);\n while (i < endOffset) {\n const nextCodePoint = strings.getNextCodePoint(lineContent, endOffset, i);\n const nextGraphemeBreakType = strings.getGraphemeBreakType(nextCodePoint);\n if (strings.breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n break;\n }\n i += (nextCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n graphemeBreakType = nextGraphemeBreakType;\n }\n if (strings.isFullWidthCharacter(codePoint) || strings.isEmojiImprecise(codePoint)) {\n result = result + 2;\n }\n else {\n result = result + 1;\n }\n }\n }\n return result;\n }\n /**\n * Returns an array that maps one based columns to one based visible columns. The entry at position 0 is -1.\n */\n static visibleColumnsByColumns(lineContent, tabSize) {\n const endOffset = lineContent.length;\n let result = new Array();\n result.push(-1);\n let pos = 0;\n let i = 0;\n while (i < endOffset) {\n const codePoint = strings.getNextCodePoint(lineContent, endOffset, i);\n i += (codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n result.push(pos);\n if (codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */) {\n result.push(pos);\n }\n if (codePoint === 9 /* Tab */) {\n pos = CursorColumns.nextRenderTabStop(pos, tabSize);\n }\n else {\n let graphemeBreakType = strings.getGraphemeBreakType(codePoint);\n while (i < endOffset) {\n const nextCodePoint = strings.getNextCodePoint(lineContent, endOffset, i);\n const nextGraphemeBreakType = strings.getGraphemeBreakType(nextCodePoint);\n if (strings.breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n break;\n }\n i += (nextCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n result.push(pos);\n if (codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */) {\n result.push(pos);\n }\n graphemeBreakType = nextGraphemeBreakType;\n }\n if (strings.isFullWidthCharacter(codePoint) || strings.isEmojiImprecise(codePoint)) {\n pos = pos + 2;\n }\n else {\n pos = pos + 1;\n }\n }\n }\n result.push(pos);\n return result;\n }\n static visibleColumnFromColumn2(config, model, position) {\n return this.visibleColumnFromColumn(model.getLineContent(position.lineNumber), position.column, config.tabSize);\n }\n static columnFromVisibleColumn(lineContent, visibleColumn, tabSize) {\n if (visibleColumn <= 0) {\n return 1;\n }\n const lineLength = lineContent.length;\n let beforeVisibleColumn = 0;\n let beforeColumn = 1;\n let i = 0;\n while (i < lineLength) {\n const codePoint = strings.getNextCodePoint(lineContent, lineLength, i);\n i += (codePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n let afterVisibleColumn;\n if (codePoint === 9 /* Tab */) {\n afterVisibleColumn = CursorColumns.nextRenderTabStop(beforeVisibleColumn, tabSize);\n }\n else {\n let graphemeBreakType = strings.getGraphemeBreakType(codePoint);\n while (i < lineLength) {\n const nextCodePoint = strings.getNextCodePoint(lineContent, lineLength, i);\n const nextGraphemeBreakType = strings.getGraphemeBreakType(nextCodePoint);\n if (strings.breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n break;\n }\n i += (nextCodePoint >= 65536 /* UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n graphemeBreakType = nextGraphemeBreakType;\n }\n if (strings.isFullWidthCharacter(codePoint) || strings.isEmojiImprecise(codePoint)) {\n afterVisibleColumn = beforeVisibleColumn + 2;\n }\n else {\n afterVisibleColumn = beforeVisibleColumn + 1;\n }\n }\n const afterColumn = i + 1;\n if (afterVisibleColumn >= visibleColumn) {\n const beforeDelta = visibleColumn - beforeVisibleColumn;\n const afterDelta = afterVisibleColumn - visibleColumn;\n if (afterDelta < beforeDelta) {\n return afterColumn;\n }\n else {\n return beforeColumn;\n }\n }\n beforeVisibleColumn = afterVisibleColumn;\n beforeColumn = afterColumn;\n }\n // walked the entire string\n return lineLength + 1;\n }\n static columnFromVisibleColumn2(config, model, lineNumber, visibleColumn) {\n let result = this.columnFromVisibleColumn(model.getLineContent(lineNumber), visibleColumn, config.tabSize);\n let minColumn = model.getLineMinColumn(lineNumber);\n if (result < minColumn) {\n return minColumn;\n }\n let maxColumn = model.getLineMaxColumn(lineNumber);\n if (result > maxColumn) {\n return maxColumn;\n }\n return result;\n }\n /**\n * ATTENTION: This works with 0-based columns (as oposed to the regular 1-based columns)\n */\n static nextRenderTabStop(visibleColumn, tabSize) {\n return visibleColumn + tabSize - visibleColumn % tabSize;\n }\n /**\n * ATTENTION: This works with 0-based columns (as oposed to the regular 1-based columns)\n */\n static nextIndentTabStop(visibleColumn, indentSize) {\n return visibleColumn + indentSize - visibleColumn % indentSize;\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n */\n static prevRenderTabStop(column, tabSize) {\n return Math.max(0, column - 1 - (column - 1) % tabSize);\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n */\n static prevIndentTabStop(column, indentSize) {\n return Math.max(0, column - 1 - (column - 1) % indentSize);\n }\n}\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nimport type { IButtonStyles } from './Button.types';\nimport type { ITheme, IRawStyle } from '../../Styling';\n\nconst noOutline: IRawStyle = {\n outline: 0,\n};\n\nconst iconStyle = (fontSize?: string | number): IRawStyle => {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport const getStyles = memoizeFunction(\n (theme: ITheme): IButtonStyles => {\n const { semanticColors, effects, fonts } = theme;\n\n const border = semanticColors.buttonBorder;\n const disabledBackground = semanticColors.disabledBackground;\n const disabledText = semanticColors.disabledText;\n const buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n boxSizing: 'border-box',\n border: '1px solid ' + border,\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n padding: '0 16px',\n borderRadius: effects.roundedCorner2,\n\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > *': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n\n iconDisabled: {\n color: disabledText,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n\n menuIconDisabled: {\n color: disabledText,\n selectors: {\n [HighContrastSelector]: {\n color: 'GrayText',\n },\n },\n },\n\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n\n icon: iconStyle(fonts.mediumPlus.fontSize),\n\n menuIcon: iconStyle(fonts.small.fontSize),\n\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n\n screenReaderText: hiddenContentStyle,\n };\n },\n);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nexport class ScrollState {\n constructor(width, scrollWidth, scrollLeft, height, scrollHeight, scrollTop) {\n this._scrollStateBrand = undefined;\n width = width | 0;\n scrollWidth = scrollWidth | 0;\n scrollLeft = scrollLeft | 0;\n height = height | 0;\n scrollHeight = scrollHeight | 0;\n scrollTop = scrollTop | 0;\n this.rawScrollLeft = scrollLeft; // before validation\n this.rawScrollTop = scrollTop; // before validation\n if (width < 0) {\n width = 0;\n }\n if (scrollLeft + width > scrollWidth) {\n scrollLeft = scrollWidth - width;\n }\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n if (height < 0) {\n height = 0;\n }\n if (scrollTop + height > scrollHeight) {\n scrollTop = scrollHeight - height;\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n this.width = width;\n this.scrollWidth = scrollWidth;\n this.scrollLeft = scrollLeft;\n this.height = height;\n this.scrollHeight = scrollHeight;\n this.scrollTop = scrollTop;\n }\n equals(other) {\n return (this.rawScrollLeft === other.rawScrollLeft\n && this.rawScrollTop === other.rawScrollTop\n && this.width === other.width\n && this.scrollWidth === other.scrollWidth\n && this.scrollLeft === other.scrollLeft\n && this.height === other.height\n && this.scrollHeight === other.scrollHeight\n && this.scrollTop === other.scrollTop);\n }\n withScrollDimensions(update, useRawScrollPositions) {\n return new ScrollState((typeof update.width !== 'undefined' ? update.width : this.width), (typeof update.scrollWidth !== 'undefined' ? update.scrollWidth : this.scrollWidth), useRawScrollPositions ? this.rawScrollLeft : this.scrollLeft, (typeof update.height !== 'undefined' ? update.height : this.height), (typeof update.scrollHeight !== 'undefined' ? update.scrollHeight : this.scrollHeight), useRawScrollPositions ? this.rawScrollTop : this.scrollTop);\n }\n withScrollPosition(update) {\n return new ScrollState(this.width, this.scrollWidth, (typeof update.scrollLeft !== 'undefined' ? update.scrollLeft : this.rawScrollLeft), this.height, this.scrollHeight, (typeof update.scrollTop !== 'undefined' ? update.scrollTop : this.rawScrollTop));\n }\n createScrollEvent(previous, inSmoothScrolling) {\n const widthChanged = (this.width !== previous.width);\n const scrollWidthChanged = (this.scrollWidth !== previous.scrollWidth);\n const scrollLeftChanged = (this.scrollLeft !== previous.scrollLeft);\n const heightChanged = (this.height !== previous.height);\n const scrollHeightChanged = (this.scrollHeight !== previous.scrollHeight);\n const scrollTopChanged = (this.scrollTop !== previous.scrollTop);\n return {\n inSmoothScrolling: inSmoothScrolling,\n oldWidth: previous.width,\n oldScrollWidth: previous.scrollWidth,\n oldScrollLeft: previous.scrollLeft,\n width: this.width,\n scrollWidth: this.scrollWidth,\n scrollLeft: this.scrollLeft,\n oldHeight: previous.height,\n oldScrollHeight: previous.scrollHeight,\n oldScrollTop: previous.scrollTop,\n height: this.height,\n scrollHeight: this.scrollHeight,\n scrollTop: this.scrollTop,\n widthChanged: widthChanged,\n scrollWidthChanged: scrollWidthChanged,\n scrollLeftChanged: scrollLeftChanged,\n heightChanged: heightChanged,\n scrollHeightChanged: scrollHeightChanged,\n scrollTopChanged: scrollTopChanged,\n };\n }\n}\nexport class Scrollable extends Disposable {\n constructor(smoothScrollDuration, scheduleAtNextAnimationFrame) {\n super();\n this._scrollableBrand = undefined;\n this._onScroll = this._register(new Emitter());\n this.onScroll = this._onScroll.event;\n this._smoothScrollDuration = smoothScrollDuration;\n this._scheduleAtNextAnimationFrame = scheduleAtNextAnimationFrame;\n this._state = new ScrollState(0, 0, 0, 0, 0, 0);\n this._smoothScrolling = null;\n }\n dispose() {\n if (this._smoothScrolling) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n }\n super.dispose();\n }\n setSmoothScrollDuration(smoothScrollDuration) {\n this._smoothScrollDuration = smoothScrollDuration;\n }\n validateScrollPosition(scrollPosition) {\n return this._state.withScrollPosition(scrollPosition);\n }\n getScrollDimensions() {\n return this._state;\n }\n setScrollDimensions(dimensions, useRawScrollPositions) {\n const newState = this._state.withScrollDimensions(dimensions, useRawScrollPositions);\n this._setState(newState, Boolean(this._smoothScrolling));\n // Validate outstanding animated scroll position target\n if (this._smoothScrolling) {\n this._smoothScrolling.acceptScrollDimensions(this._state);\n }\n }\n /**\n * Returns the final scroll position that the instance will have once the smooth scroll animation concludes.\n * If no scroll animation is occurring, it will return the current scroll position instead.\n */\n getFutureScrollPosition() {\n if (this._smoothScrolling) {\n return this._smoothScrolling.to;\n }\n return this._state;\n }\n /**\n * Returns the current scroll position.\n * Note: This result might be an intermediate scroll position, as there might be an ongoing smooth scroll animation.\n */\n getCurrentScrollPosition() {\n return this._state;\n }\n setScrollPositionNow(update) {\n // no smooth scrolling requested\n const newState = this._state.withScrollPosition(update);\n // Terminate any outstanding smooth scrolling\n if (this._smoothScrolling) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n }\n this._setState(newState, false);\n }\n setScrollPositionSmooth(update, reuseAnimation) {\n if (this._smoothScrollDuration === 0) {\n // Smooth scrolling not supported.\n return this.setScrollPositionNow(update);\n }\n if (this._smoothScrolling) {\n // Combine our pending scrollLeft/scrollTop with incoming scrollLeft/scrollTop\n update = {\n scrollLeft: (typeof update.scrollLeft === 'undefined' ? this._smoothScrolling.to.scrollLeft : update.scrollLeft),\n scrollTop: (typeof update.scrollTop === 'undefined' ? this._smoothScrolling.to.scrollTop : update.scrollTop)\n };\n // Validate `update`\n const validTarget = this._state.withScrollPosition(update);\n if (this._smoothScrolling.to.scrollLeft === validTarget.scrollLeft && this._smoothScrolling.to.scrollTop === validTarget.scrollTop) {\n // No need to interrupt or extend the current animation since we're going to the same place\n return;\n }\n let newSmoothScrolling;\n if (reuseAnimation) {\n newSmoothScrolling = new SmoothScrollingOperation(this._smoothScrolling.from, validTarget, this._smoothScrolling.startTime, this._smoothScrolling.duration);\n }\n else {\n newSmoothScrolling = this._smoothScrolling.combine(this._state, validTarget, this._smoothScrollDuration);\n }\n this._smoothScrolling.dispose();\n this._smoothScrolling = newSmoothScrolling;\n }\n else {\n // Validate `update`\n const validTarget = this._state.withScrollPosition(update);\n this._smoothScrolling = SmoothScrollingOperation.start(this._state, validTarget, this._smoothScrollDuration);\n }\n // Begin smooth scrolling animation\n this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n if (!this._smoothScrolling) {\n return;\n }\n this._smoothScrolling.animationFrameDisposable = null;\n this._performSmoothScrolling();\n });\n }\n _performSmoothScrolling() {\n if (!this._smoothScrolling) {\n return;\n }\n const update = this._smoothScrolling.tick();\n const newState = this._state.withScrollPosition(update);\n this._setState(newState, true);\n if (!this._smoothScrolling) {\n // Looks like someone canceled the smooth scrolling\n // from the scroll event handler\n return;\n }\n if (update.isDone) {\n this._smoothScrolling.dispose();\n this._smoothScrolling = null;\n return;\n }\n // Continue smooth scrolling animation\n this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n if (!this._smoothScrolling) {\n return;\n }\n this._smoothScrolling.animationFrameDisposable = null;\n this._performSmoothScrolling();\n });\n }\n _setState(newState, inSmoothScrolling) {\n const oldState = this._state;\n if (oldState.equals(newState)) {\n // no change\n return;\n }\n this._state = newState;\n this._onScroll.fire(this._state.createScrollEvent(oldState, inSmoothScrolling));\n }\n}\nexport class SmoothScrollingUpdate {\n constructor(scrollLeft, scrollTop, isDone) {\n this.scrollLeft = scrollLeft;\n this.scrollTop = scrollTop;\n this.isDone = isDone;\n }\n}\nfunction createEaseOutCubic(from, to) {\n const delta = to - from;\n return function (completion) {\n return from + delta * easeOutCubic(completion);\n };\n}\nfunction createComposed(a, b, cut) {\n return function (completion) {\n if (completion < cut) {\n return a(completion / cut);\n }\n return b((completion - cut) / (1 - cut));\n };\n}\nexport class SmoothScrollingOperation {\n constructor(from, to, startTime, duration) {\n this.from = from;\n this.to = to;\n this.duration = duration;\n this.startTime = startTime;\n this.animationFrameDisposable = null;\n this._initAnimations();\n }\n _initAnimations() {\n this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width);\n this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height);\n }\n _initAnimation(from, to, viewportSize) {\n const delta = Math.abs(from - to);\n if (delta > 2.5 * viewportSize) {\n let stop1, stop2;\n if (from < to) {\n // scroll to 75% of the viewportSize\n stop1 = from + 0.75 * viewportSize;\n stop2 = to - 0.75 * viewportSize;\n }\n else {\n stop1 = from - 0.75 * viewportSize;\n stop2 = to + 0.75 * viewportSize;\n }\n return createComposed(createEaseOutCubic(from, stop1), createEaseOutCubic(stop2, to), 0.33);\n }\n return createEaseOutCubic(from, to);\n }\n dispose() {\n if (this.animationFrameDisposable !== null) {\n this.animationFrameDisposable.dispose();\n this.animationFrameDisposable = null;\n }\n }\n acceptScrollDimensions(state) {\n this.to = state.withScrollPosition(this.to);\n this._initAnimations();\n }\n tick() {\n return this._tick(Date.now());\n }\n _tick(now) {\n const completion = (now - this.startTime) / this.duration;\n if (completion < 1) {\n const newScrollLeft = this.scrollLeft(completion);\n const newScrollTop = this.scrollTop(completion);\n return new SmoothScrollingUpdate(newScrollLeft, newScrollTop, false);\n }\n return new SmoothScrollingUpdate(this.to.scrollLeft, this.to.scrollTop, true);\n }\n combine(from, to, duration) {\n return SmoothScrollingOperation.start(from, to, duration);\n }\n static start(from, to, duration) {\n // +10 / -10 : pretend the animation already started for a quicker response to a scroll request\n duration = duration + 10;\n const startTime = Date.now() - 10;\n return new SmoothScrollingOperation(from, to, startTime, duration);\n }\n}\nfunction easeInCubic(t) {\n return Math.pow(t, 3);\n}\nfunction easeOutCubic(t) {\n return 1 - easeInCubic(1 - t);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class IdGenerator {\n constructor(prefix) {\n this._prefix = prefix;\n this._lastId = 0;\n }\n nextId() {\n return this._prefix + (++this._lastId);\n }\n}\nexport const defaultGenerator = new IdGenerator('id#');\n","import { MAX_COLOR_RGB } from './consts';\nimport type { IRGB } from './interfaces';\n\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h: number, s: number, v: number): IRGB {\n s = s / 100;\n v = v / 100;\n\n let rgb: number[] = [];\n\n const c = v * s;\n const hh = h / 60;\n const x = c * (1 - Math.abs((hh % 2) - 1));\n const m = v - c;\n\n switch (Math.floor(hh)) {\n case 0:\n rgb = [c, x, 0];\n break;\n\n case 1:\n rgb = [x, c, 0];\n break;\n\n case 2:\n rgb = [0, c, x];\n break;\n\n case 3:\n rgb = [0, x, c];\n break;\n\n case 4:\n rgb = [x, 0, c];\n break;\n\n case 5:\n rgb = [c, 0, x];\n break;\n }\n\n return {\n r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n };\n}\n","import { MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n\n/** Converts RGB components to a hex color string (without # prefix). */\nexport function rgb2hex(r: number, g: number, b: number): string {\n return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');\n}\n\n/** Converts an RGB component to a 0-padded hex component of length 2. */\nfunction _rgbToPaddedHex(num: number): string {\n num = clamp(num, MAX_COLOR_RGB);\n const hex = num.toString(16);\n\n return hex.length === 1 ? '0' + hex : hex;\n}\n","import * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport type { IImageIconProps } from './Icon.types';\n\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport const ImageIcon: React.FunctionComponent = props => {\n const { className, imageProps } = props;\n\n const nativeProps = getNativeProps>(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n const altText = imageProps.alt || props['aria-label'];\n const hasName =\n altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n\n // move naming or describing attributes from the container (where they are invalid) to the image\n const imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n\n const containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n\n return (\n
\n {hasName\n
\n );\n};\n","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport type { IButtonStyles } from '../Button.types';\n\nexport interface ISplitButtonClassNames {\n root?: string;\n icon?: string;\n splitButtonContainer?: string;\n flexContainer?: string;\n divider?: string;\n}\n\nexport const getSplitButtonClassNames = memoizeFunction(\n (\n styles: IButtonStyles,\n disabled: boolean,\n expanded: boolean,\n checked: boolean,\n primaryDisabled?: boolean,\n ): ISplitButtonClassNames => {\n return {\n root: mergeStyles(\n styles.splitButtonMenuButton,\n expanded && [styles.splitButtonMenuButtonExpanded],\n disabled && [styles.splitButtonMenuButtonDisabled],\n checked && !disabled && [styles.splitButtonMenuButtonChecked],\n primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ],\n ),\n\n splitButtonContainer: mergeStyles(\n styles.splitButtonContainer,\n !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ],\n !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ],\n disabled && styles.splitButtonContainerDisabled,\n ),\n\n icon: mergeStyles(\n styles.splitButtonMenuIcon,\n disabled && styles.splitButtonMenuIconDisabled,\n !disabled && primaryDisabled && styles.splitButtonMenuIcon,\n ),\n\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n\n divider: mergeStyles(\n styles.splitButtonDivider,\n (primaryDisabled || disabled) && styles.splitButtonDividerDisabled,\n ),\n };\n },\n);\n","import * as React from 'react';\nimport {\n anchorProperties,\n assign,\n buttonProperties,\n createMergedRef,\n css,\n getId,\n getNativeProps,\n initializeComponentRef,\n memoizeFunction,\n mergeAriaAttributeValues,\n nullRender,\n portalContainsElement,\n setFocusVisibility,\n warnConditionallyRequiredProps,\n warnDeprecations,\n Async,\n EventGroup,\n FocusRects,\n KeyCodes,\n} from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport type { IRenderFunction } from '../../Utilities';\nimport type { IContextualMenuProps } from '../../ContextualMenu';\nimport type { IButtonProps, IButton } from './Button.types';\nimport type { IButtonClassNames } from './BaseButton.classNames';\nimport type { ISplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport type { IKeytipProps } from '../../Keytip';\n\n/**\n * {@docCategory Button}\n */\nexport interface IBaseButtonProps extends IButtonProps {\n baseClassName?: string;\n variantClassName?: string;\n}\n\n/**\n * {@docCategory Button}\n */\nexport interface IBaseButtonState {\n menuHidden: boolean;\n}\n\nconst TouchIdleDelay = 500; /* ms */\nconst COMPONENT_NAME = 'BaseButton';\n\n/**\n * {@docCategory Button}\n */\nexport class BaseButton extends React.Component implements IButton {\n private get _isSplitButton(): boolean {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n }\n\n public static defaultProps: Partial = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n\n private _async: Async;\n private _events: EventGroup;\n private _buttonElement = React.createRef();\n private _splitButtonContainer = React.createRef();\n private _mergedRef = createMergedRef();\n private _labelId: string;\n private _descriptionId: string;\n private _ariaDescriptionId: string;\n private _classNames: IButtonClassNames;\n private _processingTouch: boolean;\n private _lastTouchTimeoutId: number | undefined;\n private _renderedVisibleMenu: boolean = false;\n\n // These fields will be used to set corresponding props on the menu.\n private _menuShouldFocusOnContainer: boolean | undefined;\n private _menuShouldFocusOnMount: boolean | undefined;\n\n private _getMemoizedMenuButtonKeytipProps = memoizeFunction((keytipProps: IKeytipProps) => {\n return {\n ...keytipProps,\n hasMenu: true,\n };\n });\n\n constructor(props: IBaseButtonProps) {\n super(props);\n\n initializeComponentRef(this);\n this._async = new Async(this);\n this._events = new EventGroup(this);\n\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', this.props.split!);\n\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n this._labelId = getId();\n this._descriptionId = getId();\n this._ariaDescriptionId = getId();\n\n this.state = {\n menuHidden: true,\n };\n }\n\n public render(): JSX.Element {\n const {\n ariaDescription,\n ariaLabel,\n ariaHidden,\n className,\n disabled,\n allowDisabledFocus,\n primaryDisabled,\n // eslint-disable-next-line deprecation/deprecation\n secondaryText = this.props.description,\n href,\n iconProps,\n menuIconProps,\n styles,\n checked,\n variantClassName,\n theme,\n toggle,\n getClassNames,\n role,\n } = this.props;\n\n const { menuHidden } = this.state;\n\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n const isPrimaryButtonDisabled = disabled || primaryDisabled;\n\n this._classNames = getClassNames\n ? getClassNames(\n theme!,\n className!,\n variantClassName!,\n iconProps && iconProps.className,\n menuIconProps && menuIconProps.className,\n isPrimaryButtonDisabled!,\n checked!,\n !menuHidden,\n !!this.props.menuProps,\n this.props.split,\n !!allowDisabledFocus,\n )\n : getBaseButtonClassNames(\n theme!,\n styles!,\n className!,\n variantClassName!,\n iconProps && iconProps.className,\n menuIconProps && menuIconProps.className,\n isPrimaryButtonDisabled!,\n !!this.props.menuProps,\n checked!,\n !menuHidden,\n this.props.split,\n );\n\n const { _ariaDescriptionId, _labelId, _descriptionId } = this;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n const renderAsAnchor: boolean = !isPrimaryButtonDisabled && !!href;\n const tag = renderAsAnchor ? 'a' : 'button';\n\n const nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props),\n renderAsAnchor ? anchorProperties : buttonProperties,\n [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ],\n );\n\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n const resolvedAriaLabel = ariaLabel || (nativeProps as any)['aria-label'];\n\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n let ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n } else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n } else if ((nativeProps as any)['aria-describedby']) {\n ariaDescribedBy = (nativeProps as any)['aria-describedby'];\n }\n\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n let ariaLabelledBy = undefined;\n if ((nativeProps as any)['aria-labelledby']) {\n ariaLabelledBy = (nativeProps as any)['aria-labelledby'];\n } else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n\n const dataIsFocusable =\n (this.props as any)['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n\n const isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n const checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n\n const buttonProps = assign(nativeProps, {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable,\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n [isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed']: checkedOrPressedValue,\n });\n\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n } else if (this.props.menuProps) {\n const { id = `${this._labelId}-menu` } = this.props.menuProps;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n\n return this._onRenderContent(tag, buttonProps);\n }\n\n public componentDidMount() {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n }\n\n public componentDidUpdate(prevProps: IBaseButtonProps, prevState: IBaseButtonState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n }\n\n public componentWillUnmount(): void {\n this._async.dispose();\n this._events.dispose();\n }\n\n public focus(): void {\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true);\n this._splitButtonContainer.current.focus();\n } else if (this._buttonElement.current) {\n setFocusVisibility(true);\n this._buttonElement.current.focus();\n }\n }\n\n public dismissMenu(): void {\n this._dismissMenu();\n }\n\n public openMenu(shouldFocusOnContainer?: boolean, shouldFocusOnMount?: boolean): void {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n }\n\n private _onRenderContent(tag: any, buttonProps: IButtonProps): JSX.Element {\n const props = this.props;\n const Tag = tag;\n const {\n menuIconProps,\n menuProps,\n onRenderIcon = this._onRenderIcon,\n onRenderAriaDescription = this._onRenderAriaDescription,\n onRenderChildren = this._onRenderChildren,\n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = this._onRenderMenu,\n onRenderMenuIcon = this._onRenderMenuIcon,\n disabled,\n } = props;\n let { keytipProps } = props;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n\n const Button = (keytipAttributes?: any): JSX.Element => (\n \n \n {onRenderIcon(props, this._onRenderIcon)}\n {this._onRenderTextContents()}\n {onRenderAriaDescription(props, this._onRenderAriaDescription)}\n {onRenderChildren(props, this._onRenderChildren)}\n {!this._isSplitButton &&\n (menuProps || menuIconProps || this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(this.props, this._onRenderMenuIcon)}\n {menuProps &&\n !menuProps.doNotLayer &&\n this._shouldRenderMenu() &&\n onRenderMenu(menuProps, this._onRenderMenu)}\n \n \n );\n\n const Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n \n {(keytipAttributes: any): JSX.Element => Button(keytipAttributes)}\n \n ) : (\n Button()\n );\n\n if (menuProps && menuProps.doNotLayer) {\n return (\n <>\n {Content}\n {this._shouldRenderMenu() && onRenderMenu(menuProps, this._onRenderMenu)}\n \n );\n }\n\n return (\n <>\n {Content}\n \n \n );\n }\n\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n private _shouldRenderMenu() {\n const { menuHidden } = this.state;\n // eslint-disable-next-line deprecation/deprecation\n const { persistMenu, renderPersistedMenuHiddenOnMount } = this.props;\n\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n } else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n\n return false;\n }\n\n private _onRenderIcon = (\n buttonProps?: IButtonProps,\n defaultRender?: IRenderFunction,\n ): JSX.Element | null => {\n const { iconProps } = this.props;\n\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n const { className, imageProps, ...rest } = iconProps;\n\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return ;\n }\n if (iconProps.iconName) {\n return ;\n }\n if (imageProps) {\n return ;\n }\n }\n return null;\n };\n\n private _onRenderTextContents = (): JSX.Element | (JSX.Element | null)[] => {\n const {\n text,\n children,\n // eslint-disable-next-line deprecation/deprecation\n secondaryText = this.props.description,\n onRenderText = this._onRenderText,\n onRenderDescription = this._onRenderDescription,\n } = this.props;\n\n if (text || typeof children === 'string' || secondaryText) {\n return (\n \n {onRenderText(this.props, this._onRenderText)}\n {onRenderDescription(this.props, this._onRenderDescription)}\n \n );\n }\n return [onRenderText(this.props, this._onRenderText), onRenderDescription(this.props, this._onRenderDescription)];\n };\n\n private _onRenderText = (): JSX.Element | null => {\n let { text } = this.props;\n const { children } = this.props;\n\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n\n if (this._hasText()) {\n return (\n \n {text}\n \n );\n }\n\n return null;\n };\n\n private _hasText(): boolean {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n }\n\n private _onRenderChildren = (): JSX.Element | null => {\n const { children } = this.props;\n\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n\n return children as any;\n };\n\n private _onRenderDescription = (props: IButtonProps) => {\n // eslint-disable-next-line deprecation/deprecation\n const { secondaryText = this.props.description } = props;\n\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (\n \n {secondaryText}\n \n ) : null;\n };\n\n private _onRenderAriaDescription = () => {\n const { ariaDescription } = this.props;\n\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (\n \n {ariaDescription}\n \n ) : null;\n };\n\n private _onRenderMenuIcon = (props: IButtonProps): JSX.Element | null => {\n const { menuIconProps } = this.props;\n\n return ;\n };\n\n private _onRenderMenu = (menuProps: IContextualMenuProps): JSX.Element => {\n const { persistMenu } = this.props;\n const { menuHidden } = this.state;\n const MenuType = this.props.menuAs || (ContextualMenu as React.ElementType);\n\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = { ...menuProps, labelElementId: this._labelId };\n }\n\n return (\n