@snowcone-app/canvas 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +70 -0
- package/README.md +357 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs +65 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs.map +1 -0
- package/dist/CanvasStateV1-ejb4d_LM.js +3692 -0
- package/dist/CanvasStateV1-ejb4d_LM.js.map +1 -0
- package/dist/ElementFactory-B7UOaJSD.cjs +23865 -0
- package/dist/ElementFactory-B7UOaJSD.cjs.map +1 -0
- package/dist/ElementFactory-uJTXU-nP.js +29615 -0
- package/dist/ElementFactory-uJTXU-nP.js.map +1 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js +8048 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js.map +1 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs +8 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs.map +1 -0
- package/dist/ImportManager-BYwuK6n4.cjs +2 -0
- package/dist/ImportManager-BYwuK6n4.cjs.map +1 -0
- package/dist/ImportManager-CxiaRg1N.js +222 -0
- package/dist/ImportManager-CxiaRg1N.js.map +1 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs +2 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs.map +1 -0
- package/dist/ThemeContext-H0Z-MqqR.js +1077 -0
- package/dist/ThemeContext-H0Z-MqqR.js.map +1 -0
- package/dist/advanced.d.ts +2 -0
- package/dist/advanced.js +48 -0
- package/dist/advanced.js.map +1 -0
- package/dist/advanced.mjs +15679 -0
- package/dist/advanced.mjs.map +1 -0
- package/dist/api/advanced.d.ts +110 -0
- package/dist/api/internals.d.ts +39 -0
- package/dist/api/stable.d.ts +44 -0
- package/dist/api/testing.d.ts +25 -0
- package/dist/browser-module-D0gHY9rY.cjs +9 -0
- package/dist/browser-module-D0gHY9rY.cjs.map +1 -0
- package/dist/browser-module-DFvKXBUE.js +15474 -0
- package/dist/browser-module-DFvKXBUE.js.map +1 -0
- package/dist/components/ArtboardDistressPanel.d.ts +7 -0
- package/dist/components/ArtboardImageMaskPanel.d.ts +7 -0
- package/dist/components/ArtboardPropertiesToolbar.d.ts +19 -0
- package/dist/components/ArtboardToolbar.d.ts +10 -0
- package/dist/components/BackButton.d.ts +7 -0
- package/dist/components/BackgroundPickerDropdown.d.ts +11 -0
- package/dist/components/BackgroundSwitcher.d.ts +7 -0
- package/dist/components/CanvasA11yFallback.d.ts +62 -0
- package/dist/components/CanvasEditor/CanvasRendererComponent.d.ts +51 -0
- package/dist/components/CanvasEditor/handlers/cropModeHandlers.d.ts +114 -0
- package/dist/components/CanvasEditor/handlers/groupChildHandlers.d.ts +65 -0
- package/dist/components/CanvasEditor/handlers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/handlers/multiSelectionHandlers.d.ts +86 -0
- package/dist/components/CanvasEditor/hooks/buildSpreadClipShape.d.ts +20 -0
- package/dist/components/CanvasEditor/hooks/index.d.ts +24 -0
- package/dist/components/CanvasEditor/hooks/useActiveChild.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useAnimatedFocusRect.d.ts +17 -0
- package/dist/components/CanvasEditor/hooks/useCanvasInteraction.d.ts +284 -0
- package/dist/components/CanvasEditor/hooks/useCanvasLayout.d.ts +50 -0
- package/dist/components/CanvasEditor/hooks/useCanvasRenderLoop.d.ts +140 -0
- package/dist/components/CanvasEditor/hooks/useCropMode.d.ts +4 -0
- package/dist/components/CanvasEditor/hooks/useHoverState.d.ts +9 -0
- package/dist/components/CanvasEditor/hooks/useInteractionState.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useKeyboardHandlers.d.ts +16 -0
- package/dist/components/CanvasEditor/hooks/useMarqueeSelection.d.ts +22 -0
- package/dist/components/CanvasEditor/hooks/useMultiSelection.d.ts +5 -0
- package/dist/components/CanvasEditor/hooks/usePenTool.d.ts +10 -0
- package/dist/components/CanvasEditor/hooks/useRenderState.d.ts +31 -0
- package/dist/components/CanvasEditor/hooks/useSnapAndSpacing.d.ts +42 -0
- package/dist/components/CanvasEditor/hooks/useTextEditing.d.ts +56 -0
- package/dist/components/CanvasEditor/hooks/useTextEditingHandlers.d.ts +75 -0
- package/dist/components/CanvasEditor/renderers/hoverRenderer.d.ts +12 -0
- package/dist/components/CanvasEditor/renderers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/renderers/marqueeRenderer.d.ts +21 -0
- package/dist/components/CanvasEditor/renderers/multiSelectionRenderer.d.ts +52 -0
- package/dist/components/CanvasEditor/renderers/renderingConstants.d.ts +59 -0
- package/dist/components/CanvasEditor/types/index.d.ts +11 -0
- package/dist/components/CanvasEditor.d.ts +102 -0
- package/dist/components/ColorPickerDropdown.d.ts +29 -0
- package/dist/components/CompositingPanel.d.ts +8 -0
- package/dist/components/ContextualToolbars.d.ts +150 -0
- package/dist/components/CropPanel.d.ts +20 -0
- package/dist/components/DistressPanel.d.ts +7 -0
- package/dist/components/DocsPage.d.ts +6 -0
- package/dist/components/Drawer.d.ts +39 -0
- package/dist/components/EffectsPanel.d.ts +14 -0
- package/dist/components/ExportTestPanel.d.ts +16 -0
- package/dist/components/FontBrowserDrawer.d.ts +20 -0
- package/dist/components/FontSizeDropdown.d.ts +12 -0
- package/dist/components/GlyphBrowserDrawer.d.ts +13 -0
- package/dist/components/GlyphPicker.d.ts +14 -0
- package/dist/components/IconMatchTest.d.ts +3 -0
- package/dist/components/IconSizeTest.d.ts +3 -0
- package/dist/components/ImageBrowserDrawer.d.ts +27 -0
- package/dist/components/ImageToolbar.d.ts +47 -0
- package/dist/components/LayerEffects.d.ts +11 -0
- package/dist/components/LayerLeadingChip.d.ts +9 -0
- package/dist/components/LayersPanel.d.ts +30 -0
- package/dist/components/MaskItem.d.ts +12 -0
- package/dist/components/MasksPanel.d.ts +7 -0
- package/dist/components/MonotypeDemoPage.d.ts +2 -0
- package/dist/components/MoreMenu.d.ts +15 -0
- package/dist/components/OpenTypeFeaturesPanel.d.ts +12 -0
- package/dist/components/PathToolbar.d.ts +10 -0
- package/dist/components/PenToolDemo.d.ts +3 -0
- package/dist/components/ProgressiveBlur.d.ts +25 -0
- package/dist/components/RotationHandle.d.ts +47 -0
- package/dist/components/SaveLoadMenu.d.ts +15 -0
- package/dist/components/ShapeToolbar.d.ts +71 -0
- package/dist/components/ShapeTypeDrawer.d.ts +10 -0
- package/dist/components/StrokePanel.d.ts +7 -0
- package/dist/components/TailwindDemo.d.ts +3 -0
- package/dist/components/TextEffectsDropdown.d.ts +14 -0
- package/dist/components/TextToolbar.d.ts +47 -0
- package/dist/components/TextTypeDrawer.d.ts +8 -0
- package/dist/components/ThemeToggle.d.ts +2 -0
- package/dist/components/TransformControlPanel.d.ts +12 -0
- package/dist/components/VisualGuideOverlay.d.ts +156 -0
- package/dist/components/embed/ArtboardTabs.d.ts +74 -0
- package/dist/components/embed/Canvas.d.ts +72 -0
- package/dist/components/embed/EffectsPanel.d.ts +76 -0
- package/dist/components/embed/ErrorBoundary.d.ts +34 -0
- package/dist/components/embed/ExportPanel.d.ts +51 -0
- package/dist/components/embed/GlyphPanel.d.ts +70 -0
- package/dist/components/embed/ImagePanel.d.ts +58 -0
- package/dist/components/embed/LayersPanel.d.ts +13 -0
- package/dist/components/embed/LoadingStates.d.ts +32 -0
- package/dist/components/embed/MenuButton.d.ts +47 -0
- package/dist/components/embed/SnowconeCanvas.d.ts +844 -0
- package/dist/components/embed/ZoomControls.d.ts +16 -0
- package/dist/components/embed/index.d.ts +129 -0
- package/dist/components/embed/primitives/index.d.ts +42 -0
- package/dist/components/embed/ui/index.d.ts +52 -0
- package/dist/components/embed/utils/index.d.ts +31 -0
- package/dist/components/embedded/ArtboardEmbed.d.ts +70 -0
- package/dist/components/embedded/MerchifyThemeWrapper.d.ts +30 -0
- package/dist/components/embedded/ProductPreviewCard.d.ts +8 -0
- package/dist/components/embedded/index.d.ts +7 -0
- package/dist/components/primitives/ButtonGroup.d.ts +27 -0
- package/dist/components/primitives/ControlGroup.d.ts +15 -0
- package/dist/components/primitives/Dropdown.d.ts +27 -0
- package/dist/components/primitives/DropdownMenu.d.ts +9 -0
- package/dist/components/primitives/MenuItem.d.ts +13 -0
- package/dist/components/primitives/Panel.d.ts +25 -0
- package/dist/components/primitives/SecondaryToolbar.d.ts +9 -0
- package/dist/components/primitives/Switch.d.ts +10 -0
- package/dist/components/primitives/Toggle.d.ts +17 -0
- package/dist/components/primitives/index.d.ts +22 -0
- package/dist/components/stories/utils/MockEditorProvider.d.ts +32 -0
- package/dist/components/stories/utils/QACanvasCard.d.ts +41 -0
- package/dist/components/stories/utils/VisualQACard.d.ts +24 -0
- package/dist/components/stories/utils/element-factories.d.ts +188 -0
- package/dist/components/stories/utils/spec-to-elements.d.ts +74 -0
- package/dist/components/stories/utils/themeDecorator.d.ts +45 -0
- package/dist/components/stories/utils/unified-test-cases.d.ts +27 -0
- package/dist/components/text-toolbar/BoldButton.d.ts +5 -0
- package/dist/components/text-toolbar/FontColorButton.d.ts +6 -0
- package/dist/components/text-toolbar/FontSizeGroup.d.ts +5 -0
- package/dist/components/text-toolbar/ItalicButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextAlignButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextMoreMenu.d.ts +7 -0
- package/dist/components/text-toolbar/UnderlineButton.d.ts +5 -0
- package/dist/components/text-toolbar/UppercaseButton.d.ts +5 -0
- package/dist/components/text-toolbar/index.d.ts +25 -0
- package/dist/components/toolbars/EmbeddedToolbarLayout.d.ts +49 -0
- package/dist/components/toolbars/ExpandedPanelIcon.d.ts +13 -0
- package/dist/components/toolbars/FloatingPanels.d.ts +23 -0
- package/dist/components/toolbars/GroupElementToolbar.d.ts +35 -0
- package/dist/components/toolbars/SecondaryPanels.d.ts +125 -0
- package/dist/components/toolbars/index.d.ts +18 -0
- package/dist/components/toolbars/shared/ColorPanelWrapper.d.ts +9 -0
- package/dist/components/toolbars/shared/SecondaryPanelWrapper.d.ts +9 -0
- package/dist/components/ui/PresetCarousel.d.ts +21 -0
- package/dist/components/ui/SecondaryPanel.d.ts +28 -0
- package/dist/components/ui/SliderRow.d.ts +30 -0
- package/dist/components/ui/collapsed-toolbar-header.d.ts +14 -0
- package/dist/components/ui/custom-icons.d.ts +25 -0
- package/dist/components/ui/icons.d.ts +100 -0
- package/dist/components/ui/index.d.ts +48 -0
- package/dist/components/ui/normalized-icon.d.ts +63 -0
- package/dist/components/ui/toolbar-button.d.ts +24 -0
- package/dist/compose-Bo108juW.cjs +33 -0
- package/dist/compose-Bo108juW.cjs.map +1 -0
- package/dist/compose-DQ1FZS3O.js +7690 -0
- package/dist/compose-DQ1FZS3O.js.map +1 -0
- package/dist/constants.d.ts +121 -0
- package/dist/contexts/CommandContext.d.ts +87 -0
- package/dist/contexts/EditorContext.d.ts +190 -0
- package/dist/contexts/ElementsContext.d.ts +104 -0
- package/dist/contexts/HistoryContext.d.ts +60 -0
- package/dist/contexts/KitContext.d.ts +50 -0
- package/dist/contexts/SelectionContext.d.ts +51 -0
- package/dist/contexts/ThemeContext.d.ts +55 -0
- package/dist/contexts/ToolStateContext.d.ts +60 -0
- package/dist/contexts/ViewportContext.d.ts +87 -0
- package/dist/core/AlignmentSnapSystem.d.ts +270 -0
- package/dist/core/ArtboardElement.d.ts +106 -0
- package/dist/core/ArtboardManager.d.ts +130 -0
- package/dist/core/ArtboardRenderer.d.ts +97 -0
- package/dist/core/BaseElement.d.ts +94 -0
- package/dist/core/CanvasRenderer.d.ts +237 -0
- package/dist/core/CommandHistory.d.ts +173 -0
- package/dist/core/CoordinateTransform.d.ts +69 -0
- package/dist/core/CropModeController.d.ts +90 -0
- package/dist/core/EditModeRenderer.d.ts +51 -0
- package/dist/core/ElementFactory.d.ts +73 -0
- package/dist/core/ElementStore.d.ts +69 -0
- package/dist/core/EventBus.d.ts +163 -0
- package/dist/core/GeometryUtils.d.ts +247 -0
- package/dist/core/GroupElement.d.ts +134 -0
- package/dist/core/HoverRenderer.d.ts +103 -0
- package/dist/core/HybridHistoryManager.d.ts +137 -0
- package/dist/core/ImageCache.d.ts +63 -0
- package/dist/core/ImageElement.d.ts +226 -0
- package/dist/core/ImageLoadEvents.d.ts +23 -0
- package/dist/core/InteractionFeedbackRenderer.d.ts +15 -0
- package/dist/core/InteractionStateMachine.d.ts +199 -0
- package/dist/core/PathElement.d.ts +84 -0
- package/dist/core/PenToolManager.d.ts +112 -0
- package/dist/core/PinchHandler.d.ts +32 -0
- package/dist/core/ResizeHandler.d.ts +51 -0
- package/dist/core/ResizePipeline.d.ts +83 -0
- package/dist/core/ResizeUtils.d.ts +17 -0
- package/dist/core/RotationAnchorResolver.d.ts +60 -0
- package/dist/core/RotationUtils.d.ts +28 -0
- package/dist/core/SelectionRenderer.d.ts +24 -0
- package/dist/core/ShapeElement.d.ts +121 -0
- package/dist/core/SpacingSystem.d.ts +73 -0
- package/dist/core/SpatialGrid.d.ts +53 -0
- package/dist/core/TextElement.d.ts +80 -0
- package/dist/core/TextMetrics.d.ts +117 -0
- package/dist/core/Transform.d.ts +158 -0
- package/dist/core/TransformConverter.d.ts +16 -0
- package/dist/core/TransformHandles.d.ts +55 -0
- package/dist/core/artboardReducer.d.ts +46 -0
- package/dist/effects/DistressGenerator.d.ts +26 -0
- package/dist/effects/DistressTextureCache.d.ts +49 -0
- package/dist/effects/distress-presets.d.ts +86 -0
- package/dist/effects/distress-textures.d.ts +34 -0
- package/dist/effects/distress-utils.d.ts +39 -0
- package/dist/effects/mask-presets.d.ts +36 -0
- package/dist/fonts/google-fonts.d.ts +48 -0
- package/dist/google-fonts.json +1 -0
- package/dist/hooks/index.d.ts +42 -0
- package/dist/hooks/useArtboards.d.ts +71 -0
- package/dist/hooks/useAutoExport.d.ts +66 -0
- package/dist/hooks/useBreakpoint.d.ts +53 -0
- package/dist/hooks/useCanvasEvents.d.ts +8 -0
- package/dist/hooks/useCanvasReady.d.ts +22 -0
- package/dist/hooks/useClickOutside.d.ts +3 -0
- package/dist/hooks/useCommandHistory.d.ts +39 -0
- package/dist/hooks/useCommands.d.ts +47 -0
- package/dist/hooks/useContentReady.d.ts +18 -0
- package/dist/hooks/useElementById.d.ts +20 -0
- package/dist/hooks/useElementByName.d.ts +10 -0
- package/dist/hooks/useElementProperties.d.ts +29 -0
- package/dist/hooks/useExport.d.ts +89 -0
- package/dist/hooks/useImageBinding.d.ts +34 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +13 -0
- package/dist/hooks/useLayerDndKit.d.ts +24 -0
- package/dist/hooks/useLayerDragDrop.d.ts +58 -0
- package/dist/hooks/useLayerPreview.d.ts +31 -0
- package/dist/hooks/useLayerSelection.d.ts +76 -0
- package/dist/hooks/useLayers.d.ts +91 -0
- package/dist/hooks/usePerformance.d.ts +48 -0
- package/dist/hooks/useProjectLoader.d.ts +64 -0
- package/dist/hooks/useSelectedElement.d.ts +17 -0
- package/dist/hooks/useTextBinding.d.ts +26 -0
- package/dist/hooks/useTextToolbar.d.ts +61 -0
- package/dist/hooks/useViewport.d.ts +46 -0
- package/dist/icons/icon-data.d.ts +2 -0
- package/dist/icons/registry.d.ts +28 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1138 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internals.d.ts +2 -0
- package/dist/internals.js +2 -0
- package/dist/internals.js.map +1 -0
- package/dist/internals.mjs +219 -0
- package/dist/internals.mjs.map +1 -0
- package/dist/kits/compose.d.ts +69 -0
- package/dist/kits/index.d.ts +21 -0
- package/dist/kits/presets.d.ts +40 -0
- package/dist/kits/registry.d.ts +33 -0
- package/dist/kits/sections.d.ts +119 -0
- package/dist/kits/serialization.d.ts +78 -0
- package/dist/kits/types.d.ts +129 -0
- package/dist/kits/validation.d.ts +36 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/plugins/ElementTypePlugin.d.ts +90 -0
- package/dist/presets/artboard-color-presets.d.ts +22 -0
- package/dist/presets/tshirt-presets.d.ts +60 -0
- package/dist/rendering/CompositingRenderer.d.ts +33 -0
- package/dist/rendering/DistressTextureRenderer.d.ts +39 -0
- package/dist/rendering/ElementRenderUtils.d.ts +17 -0
- package/dist/rendering/MaskRenderer.d.ts +41 -0
- package/dist/rendering/PieceGuideRenderer.d.ts +177 -0
- package/dist/rendering/StrokeRenderer.d.ts +24 -0
- package/dist/rendering/canvas-renderer.d.ts +18 -0
- package/dist/rendering/element-serializer.d.ts +143 -0
- package/dist/rendering/image-renderer.d.ts +6 -0
- package/dist/rendering/knockout-utils.d.ts +48 -0
- package/dist/rendering/mask-utils.d.ts +65 -0
- package/dist/rendering/renderer-types.d.ts +79 -0
- package/dist/rendering/rich-text-renderer.d.ts +43 -0
- package/dist/rendering/serialize-for-server.d.ts +45 -0
- package/dist/rendering/shape-renderer.d.ts +6 -0
- package/dist/rendering/stroke-utils.d.ts +18 -0
- package/dist/rendering/text-renderer.d.ts +71 -0
- package/dist/rendering/transform-renderer.d.ts +33 -0
- package/dist/services/AutoExportManager.d.ts +107 -0
- package/dist/services/falApi.d.ts +63 -0
- package/dist/services/nounProjectApi.d.ts +90 -0
- package/dist/services/recraftApi.d.ts +65 -0
- package/dist/services/runwareApi.d.ts +69 -0
- package/dist/state/CanvasStateV1.d.ts +373 -0
- package/dist/state/index.d.ts +10 -0
- package/dist/style.css +1 -0
- package/dist/taco-reference-cropped.jpg +0 -0
- package/dist/testing/MockEditorProvider.d.ts +49 -0
- package/dist/testing/index.d.ts +25 -0
- package/dist/testing/utils.d.ts +128 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -0
- package/dist/testing.mjs +140 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/textures/glass-frame.svg +32 -0
- package/dist/theme.d.ts +99 -0
- package/dist/themes/index.d.ts +23 -0
- package/dist/transforms/ArchTransform.d.ts +14 -0
- package/dist/transforms/AscendTransform.d.ts +14 -0
- package/dist/transforms/CircleTransform.d.ts +51 -0
- package/dist/transforms/CustomTransform.d.ts +81 -0
- package/dist/transforms/FlagTransform.d.ts +14 -0
- package/dist/transforms/LeanTransform.d.ts +14 -0
- package/dist/transforms/WaveTransform.d.ts +16 -0
- package/dist/transforms/defaults.d.ts +33 -0
- package/dist/transforms/index.d.ts +10 -0
- package/dist/transforms/registry.d.ts +51 -0
- package/dist/types/capabilities.d.ts +50 -0
- package/dist/types/guards.d.ts +31 -0
- package/dist/types/index.d.ts +765 -0
- package/dist/types/public.d.ts +31 -0
- package/dist/types/react.d.ts +132 -0
- package/dist/utils/ArtworkPlacement.d.ts +97 -0
- package/dist/utils/ElementPreviewRenderer.d.ts +19 -0
- package/dist/utils/ExportManager.d.ts +208 -0
- package/dist/utils/FontAnalyzer.d.ts +137 -0
- package/dist/utils/GlyphRenderer.d.ts +55 -0
- package/dist/utils/GoogleFontsService.d.ts +37 -0
- package/dist/utils/ImageLoader.d.ts +124 -0
- package/dist/utils/ImportManager.d.ts +72 -0
- package/dist/utils/MonotypeCategoryMapping.d.ts +36 -0
- package/dist/utils/MonotypeService.d.ts +148 -0
- package/dist/utils/PerformanceMonitor.d.ts +54 -0
- package/dist/utils/TextureManager.d.ts +60 -0
- package/dist/utils/UnifiedFontService.d.ts +117 -0
- package/dist/utils/WorkerExportManager.d.ts +185 -0
- package/dist/utils/clickProtection.d.ts +39 -0
- package/dist/utils/cn.d.ts +4 -0
- package/dist/utils/colorConversion.d.ts +101 -0
- package/dist/utils/documentColors.d.ts +108 -0
- package/dist/utils/featureApplied.d.ts +14 -0
- package/dist/utils/google-fonts-loader.d.ts +67 -0
- package/dist/utils/logger.d.ts +66 -0
- package/dist/utils/selectionPreservation.d.ts +42 -0
- package/dist/utils/textCursorUtils.d.ts +39 -0
- package/dist/utils/textUtils.d.ts +11 -0
- package/dist/workers/export-protocol.d.ts +119 -0
- package/dist/workers/export-worker.bundle.string.d.ts +2 -0
- package/dist/workers/export-worker.d.ts +5 -0
- package/package.json +201 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-module-D0gHY9rY.cjs","sources":["../../../node_modules/.pnpm/vite-plugin-node-polyfills@0.24.0_rollup@4.60.3_vite@5.4.21_@types+node@25.7.0_lightningcss@1.32.0_terser@5.47.1_/node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/DecodeStream.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/EncodeStream.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Base.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Number.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/utils.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Array.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/LazyArray.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Bitfield.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Buffer.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Optional.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Reserved.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/String.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Struct.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/VersionedStruct.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Pointer.js","../../../node_modules/.pnpm/@swc+helpers@0.5.21/node_modules/@swc/helpers/esm/_define_property.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","../../../node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js","../../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js","../../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js","../../../node_modules/.pnpm/unicode-properties@1.4.1/node_modules/unicode-properties/dist/module.mjs","../../../node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js","../../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.bin.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-browser.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js","../../../node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/browser-module.mjs"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","// Node back-compat.\nconst ENCODING_MAPPING = {\n utf16le: 'utf-16le',\n ucs2: 'utf-16le',\n utf16be: 'utf-16be'\n}\n\nexport class DecodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.pos = 0;\n this.length = this.buffer.length;\n }\n\n readString(length, encoding = 'ascii') {\n encoding = ENCODING_MAPPING[encoding] || encoding;\n\n let buf = this.readBuffer(length);\n try {\n let decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n } catch (err) {\n return buf;\n }\n }\n\n readBuffer(length) {\n return this.buffer.slice(this.pos, (this.pos += length));\n }\n\n readUInt24BE() {\n return (this.readUInt16BE() << 8) + this.readUInt8();\n }\n\n readUInt24LE() {\n return this.readUInt16LE() + (this.readUInt8() << 16);\n }\n\n readInt24BE() {\n return (this.readInt16BE() << 8) + this.readUInt8();\n }\n\n readInt24LE() {\n return this.readUInt16LE() + (this.readInt8() << 16);\n }\n}\n\nDecodeStream.TYPES = {\n UInt8: 1,\n UInt16: 2,\n UInt24: 3,\n UInt32: 4,\n Int8: 1,\n Int16: 2,\n Int24: 3,\n Int32: 4,\n Float: 4,\n Double: 8\n};\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'get') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n DecodeStream.prototype['read' + type + (bytes === 1 ? '' : 'BE')] = function () {\n const ret = this.view[key](this.pos, false);\n this.pos += bytes;\n return ret;\n };\n\n if (bytes !== 1) {\n DecodeStream.prototype['read' + type + 'LE'] = function () {\n const ret = this.view[key](this.pos, true);\n this.pos += bytes;\n return ret;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\n\nconst textEncoder = new TextEncoder();\nconst isBigEndian = new Uint8Array(new Uint16Array([0x1234]).buffer)[0] == 0x12;\n\nexport class EncodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n this.pos = 0;\n }\n\n writeBuffer(buffer) {\n this.buffer.set(buffer, this.pos);\n this.pos += buffer.length;\n }\n\n writeString(string, encoding = 'ascii') {\n let buf;\n switch (encoding) {\n case 'utf16le':\n case 'utf16-le':\n case 'ucs2': // node treats this the same as utf16.\n buf = stringToUtf16(string, isBigEndian);\n break;\n\n case 'utf16be':\n case 'utf16-be':\n buf = stringToUtf16(string, !isBigEndian);\n break;\n\n case 'utf8':\n buf = textEncoder.encode(string);\n break;\n\n case 'ascii':\n buf = stringToAscii(string);\n break;\n\n default:\n throw new Error(`Unsupported encoding: ${encoding}`);\n }\n\n this.writeBuffer(buf);\n }\n\n writeUInt24BE(val) {\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = val & 0xff;\n }\n\n writeUInt24LE(val) {\n this.buffer[this.pos++] = val & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n }\n\n writeInt24BE(val) {\n if (val >= 0) {\n this.writeUInt24BE(val);\n } else {\n this.writeUInt24BE(val + 0xffffff + 1);\n }\n }\n\n writeInt24LE(val) {\n if (val >= 0) {\n this.writeUInt24LE(val);\n } else {\n this.writeUInt24LE(val + 0xffffff + 1);\n }\n }\n\n fill(val, length) {\n if (length < this.buffer.length) {\n this.buffer.fill(val, this.pos, this.pos + length);\n this.pos += length;\n } else {\n const buf = new Uint8Array(length);\n buf.fill(val);\n this.writeBuffer(buf);\n }\n }\n}\n\nfunction stringToUtf16(string, swap) {\n let buf = new Uint16Array(string.length);\n for (let i = 0; i < string.length; i++) {\n let code = string.charCodeAt(i);\n if (swap) {\n code = (code >> 8) | ((code & 0xff) << 8);\n }\n buf[i] = code;\n }\n return new Uint8Array(buf.buffer);\n}\n\nfunction stringToAscii(string) {\n let buf = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n // Match node.js behavior - encoding allows 8-bit rather than 7-bit.\n buf[i] = string.charCodeAt(i);\n }\n return buf;\n}\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'set') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n EncodeStream.prototype['write' + type + (bytes === 1 ? '' : 'BE')] = function (value) {\n this.view[key](this.pos, value, false);\n this.pos += bytes;\n };\n\n if (bytes !== 1) {\n EncodeStream.prototype['write' + type + 'LE'] = function (value) {\n this.view[key](this.pos, value, true);\n this.pos += bytes;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {EncodeStream} from './EncodeStream.js';\n\nexport class Base {\n fromBuffer(buffer) {\n let stream = new DecodeStream(buffer);\n return this.decode(stream);\n }\n\n toBuffer(value) {\n let size = this.size(value);\n let buffer = new Uint8Array(size);\n let stream = new EncodeStream(buffer);\n this.encode(stream, value);\n return buffer;\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {Base} from './Base.js';\n\nclass NumberT extends Base {\n constructor(type, endian = 'BE') {\n super();\n this.type = type;\n this.endian = endian;\n this.fn = this.type;\n if (this.type[this.type.length - 1] !== '8') {\n this.fn += this.endian;\n }\n }\n\n size() {\n return DecodeStream.TYPES[this.type];\n }\n\n decode(stream) {\n return stream[`read${this.fn}`]();\n }\n\n encode(stream, val) {\n return stream[`write${this.fn}`](val);\n }\n}\n\nexport {NumberT as Number};\n\nexport const uint8 = new NumberT('UInt8');\nexport const uint16be = new NumberT('UInt16', 'BE');\nexport const uint16 = uint16be;\nexport const uint16le = new NumberT('UInt16', 'LE');\nexport const uint24be = new NumberT('UInt24', 'BE');\nexport const uint24 = uint24be;\nexport const uint24le = new NumberT('UInt24', 'LE');\nexport const uint32be = new NumberT('UInt32', 'BE');\nexport const uint32 = uint32be;\nexport const uint32le = new NumberT('UInt32', 'LE');\nexport const int8 = new NumberT('Int8');\nexport const int16be = new NumberT('Int16', 'BE');\nexport const int16 = int16be;\nexport const int16le = new NumberT('Int16', 'LE');\nexport const int24be = new NumberT('Int24', 'BE');\nexport const int24 = int24be;\nexport const int24le = new NumberT('Int24', 'LE');\nexport const int32be = new NumberT('Int32', 'BE');\nexport const int32 = int32be;\nexport const int32le = new NumberT('Int32', 'LE');\nexport const floatbe = new NumberT('Float', 'BE');\nexport const float = floatbe;\nexport const floatle = new NumberT('Float', 'LE');\nexport const doublebe = new NumberT('Double', 'BE');\nexport const double = doublebe;\nexport const doublele = new NumberT('Double', 'LE');\n\nexport class Fixed extends NumberT {\n constructor(size, endian, fracBits = size >> 1) {\n super(`Int${size}`, endian);\n this._point = 1 << fracBits;\n }\n\n decode(stream) {\n return super.decode(stream) / this._point;\n }\n\n encode(stream, val) {\n return super.encode(stream, (val * this._point) | 0);\n }\n}\n\nexport const fixed16be = new Fixed(16, 'BE');\nexport const fixed16 = fixed16be;\nexport const fixed16le = new Fixed(16, 'LE');\nexport const fixed32be = new Fixed(32, 'BE');\nexport const fixed32 = fixed32be;\nexport const fixed32le = new Fixed(32, 'LE');\n","import {Number as NumberT} from './Number.js';\n\nexport function resolveLength(length, stream, parent) {\n let res;\n if (typeof length === 'number') {\n res = length;\n\n } else if (typeof length === 'function') {\n res = length.call(parent, parent);\n\n } else if (parent && (typeof length === 'string')) {\n res = parent[length];\n\n } else if (stream && length instanceof NumberT) {\n res = length.decode(stream);\n }\n\n if (isNaN(res)) {\n throw new Error('Not a fixed size');\n }\n\n return res;\n};\n\nexport class PropertyDescriptor {\n constructor(opts = {}) {\n this.enumerable = true;\n this.configurable = true;\n\n for (let key in opts) {\n const val = opts[key];\n this[key] = val;\n }\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass ArrayT extends Base {\n constructor(type, length, lengthType = 'count') {\n super();\n this.type = type;\n this.length = length;\n this.lengthType = lengthType;\n }\n\n decode(stream, parent) {\n let length;\n const { pos } = stream;\n\n const res = [];\n let ctx = parent;\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n }\n\n if (this.length instanceof NumberT) {\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n ctx = res;\n }\n\n if ((length == null) || (this.lengthType === 'bytes')) {\n const target = (length != null) ?\n stream.pos + length\n : (parent != null ? parent._length : undefined) ?\n parent._startOffset + parent._length\n :\n stream.length;\n\n while (stream.pos < target) {\n res.push(this.type.decode(stream, ctx));\n }\n\n } else {\n for (let i = 0, end = length; i < end; i++) {\n res.push(this.type.decode(stream, ctx));\n }\n }\n\n return res;\n }\n\n size(array, ctx, includePointers = true) {\n if (!array) {\n return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n }\n\n let size = 0;\n if (this.length instanceof NumberT) {\n size += this.length.size();\n ctx = {parent: ctx, pointerSize: 0};\n }\n\n for (let item of array) {\n size += this.type.size(item, ctx);\n }\n\n if (ctx && includePointers && this.length instanceof NumberT) {\n size += ctx.pointerSize;\n }\n \n return size;\n }\n\n encode(stream, array, parent) {\n let ctx = parent;\n if (this.length instanceof NumberT) {\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent\n };\n\n ctx.pointerOffset = stream.pos + this.size(array, ctx, false);\n this.length.encode(stream, array.length);\n }\n\n for (let item of array) {\n this.type.encode(stream, item, ctx);\n }\n\n if (this.length instanceof NumberT) {\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n }\n}\n\nexport {ArrayT as Array};\n","import {Array as ArrayT} from './Array.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class LazyArray extends ArrayT {\n decode(stream, parent) {\n const { pos } = stream;\n const length = utils.resolveLength(this.length, stream, parent);\n\n if (this.length instanceof NumberT) {\n parent = {\n parent,\n _startOffset: pos,\n _currentOffset: 0,\n _length: length\n };\n }\n\n const res = new LazyArrayValue(this.type, length, stream, parent);\n\n stream.pos += length * this.type.size(null, parent);\n return res;\n }\n\n size(val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.size(val, ctx);\n }\n\n encode(stream, val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.encode(stream, val, ctx);\n }\n}\n\nclass LazyArrayValue {\n constructor(type, length, stream, ctx) {\n this.type = type;\n this.length = length;\n this.stream = stream;\n this.ctx = ctx;\n this.base = this.stream.pos;\n this.items = [];\n }\n\n get(index) {\n if ((index < 0) || (index >= this.length)) {\n return undefined;\n }\n\n if (this.items[index] == null) {\n const { pos } = this.stream;\n this.stream.pos = this.base + (this.type.size(null, this.ctx) * index);\n this.items[index] = this.type.decode(this.stream, this.ctx);\n this.stream.pos = pos;\n }\n\n return this.items[index];\n }\n\n toArray() {\n const result = [];\n for (let i = 0, end = this.length; i < end; i++) {\n result.push(this.get(i));\n }\n return result;\n }\n}\n","import {Base} from './Base.js';\n\nexport class Bitfield extends Base {\n constructor(type, flags = []) {\n super();\n this.type = type;\n this.flags = flags;\n }\n\n decode(stream) {\n const val = this.type.decode(stream);\n\n const res = {};\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n res[flag] = !!(val & (1 << i));\n }\n }\n\n return res;\n }\n\n size() {\n return this.type.size();\n }\n\n encode(stream, keys) {\n let val = 0;\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n if (keys[flag]) { val |= (1 << i); }\n }\n }\n\n return this.type.encode(stream, val);\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class BufferT extends Base {\n constructor(length) {\n super();\n this.length = length;\n }\n \n decode(stream, parent) {\n const length = utils.resolveLength(this.length, stream, parent);\n return stream.readBuffer(length);\n }\n\n size(val, parent) {\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let len = val.length;\n if (this.length instanceof NumberT) {\n len += this.length.size();\n }\n\n return len;\n }\n\n encode(stream, buf, parent) {\n if (this.length instanceof NumberT) {\n this.length.encode(stream, buf.length);\n }\n\n return stream.writeBuffer(buf);\n }\n}\n\nexport {BufferT as Buffer};\n","import {Base} from './Base.js';\n\nexport class Optional extends Base {\n constructor(type, condition = true) {\n super();\n this.type = type;\n this.condition = condition;\n }\n\n decode(stream, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.decode(stream, parent);\n }\n }\n\n size(val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.size(val, parent);\n } else {\n return 0;\n }\n }\n\n encode(stream, val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.encode(stream, val, parent);\n }\n }\n}\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Reserved extends Base {\n constructor(type, count = 1) {\n super();\n this.type = type;\n this.count = count;\n }\n decode(stream, parent) {\n stream.pos += this.size(null, parent);\n return undefined;\n }\n\n size(data, parent) {\n const count = utils.resolveLength(this.count, null, parent);\n return this.type.size() * count;\n }\n\n encode(stream, val, parent) {\n return stream.fill(0, this.size(val, parent));\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass StringT extends Base {\n constructor(length, encoding = 'ascii') {\n super();\n this.length = length;\n this.encoding = encoding;\n }\n\n decode(stream, parent) {\n let length, pos;\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent, parent) || 'ascii';\n }\n let width = encodingWidth(encoding);\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n } else {\n let buffer;\n ({buffer, length, pos} = stream);\n\n while ((pos < length - width + 1) &&\n (buffer[pos] !== 0x00 ||\n (width === 2 && buffer[pos+1] !== 0x00)\n )) {\n pos += width;\n }\n\n length = pos - stream.pos;\n }\n\n\n const string = stream.readString(length, encoding);\n\n if ((this.length == null) && (stream.pos < stream.length)) {\n stream.pos+=width;\n }\n\n return string;\n }\n\n size(val, parent) {\n // Use the defined value if no value was given\n if (val === undefined || val === null) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (encoding === 'utf16be') {\n encoding = 'utf16le';\n }\n\n let size = byteLength(val, encoding);\n if (this.length instanceof NumberT) {\n size += this.length.size();\n }\n\n if ((this.length == null)) {\n size += encodingWidth(encoding);\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (this.length instanceof NumberT) {\n this.length.encode(stream, byteLength(val, encoding));\n }\n\n stream.writeString(val, encoding);\n\n if ((this.length == null)) {\n return encodingWidth(encoding) == 2 ?\n stream.writeUInt16LE(0x0000) :\n stream.writeUInt8(0x00);\n }\n }\n}\n\nfunction encodingWidth(encoding) {\n switch(encoding) {\n case 'ascii':\n case 'utf8': // utf8 is a byte-based encoding for zero-term string\n return 1;\n case 'utf16le':\n case 'utf16-le':\n case 'utf-16be':\n case 'utf-16le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return 2;\n default:\n //TODO: assume all other encodings are 1-byters\n //throw new Error('Unknown encoding ' + encoding);\n return 1;\n }\n}\n\nfunction byteLength(string, encoding) {\n switch (encoding) {\n case 'ascii':\n return string.length;\n case 'utf8':\n let len = 0;\n for (let i = 0; i < string.length; i++) {\n let c = string.charCodeAt(i);\n\n if (c >= 0xd800 && c <= 0xdbff && i < string.length - 1) {\n let c2 = string.charCodeAt(++i);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = ((c & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n } else {\n // unmatched surrogate.\n i--;\n }\n }\n\n if ((c & 0xffffff80) === 0) {\n len++;\n } else if ((c & 0xfffff800) === 0) {\n len += 2;\n } else if ((c & 0xffff0000) === 0) {\n len += 3;\n } else if ((c & 0xffe00000) === 0) {\n len += 4;\n }\n }\n return len;\n case 'utf16le':\n case 'utf16-le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return string.length * 2;\n default:\n throw new Error('Unknown encoding ' + encoding);\n }\n}\n\nexport {StringT as String};\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Struct extends Base {\n constructor(fields = {}) {\n super();\n this.fields = fields;\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n this._parseFields(stream, res, this.fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n _setup(stream, parent, length) {\n const res = {};\n\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: stream.pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n return res;\n }\n\n _parseFields(stream, res, fields) {\n for (let key in fields) {\n var val;\n const type = fields[key];\n if (typeof type === 'function') {\n val = type.call(res, res);\n } else {\n val = type.decode(stream, res);\n }\n\n if (val !== undefined) {\n if (val instanceof utils.PropertyDescriptor) {\n Object.defineProperty(res, key, val);\n } else {\n res[key] = val;\n }\n }\n\n res._currentOffset = stream.pos - res._startOffset;\n }\n\n }\n\n size(val, parent, includePointers = true) {\n if (val == null) { val = {}; }\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n let size = 0;\n for (let key in this.fields) {\n const type = this.fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n for (let key in this.fields) {\n type = this.fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import {Struct} from './Struct.js';\n\nconst getPath = (object, pathArray) => {\n return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object);\n};\n\nexport class VersionedStruct extends Struct {\n constructor(type, versions = {}) {\n super();\n this.type = type;\n this.versions = versions;\n if (typeof type === 'string') {\n this.versionPath = type.split('.');\n }\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n\n if (typeof this.type === 'string') {\n res.version = getPath(parent, this.versionPath);\n } else {\n res.version = this.type.decode(stream);\n }\n\n if (this.versions.header) {\n this._parseFields(stream, res, this.versions.header);\n }\n\n const fields = this.versions[res.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${res.version}`);\n }\n\n if (fields instanceof VersionedStruct) {\n return fields.decode(stream, parent);\n }\n\n this._parseFields(stream, res, fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n size(val, parent, includePointers = true) {\n let key, type;\n if (!val) {\n throw new Error('Not a fixed size');\n }\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n let size = 0;\n if (typeof this.type !== 'string') {\n size += this.type.size(val.version, ctx);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${val.version}`);\n }\n\n for (key in fields) {\n type = fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let key, type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n if (typeof this.type !== 'string') {\n this.type.encode(stream, val.version);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n for (key in fields) {\n type = fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import * as utils from './utils.js';\nimport {Base} from './Base.js';\n\nexport class Pointer extends Base {\n constructor(offsetType, type, options = {}) {\n super();\n this.offsetType = offsetType;\n this.type = type;\n this.options = options;\n if (this.type === 'void') { this.type = null; }\n if (this.options.type == null) { this.options.type = 'local'; }\n if (this.options.allowNull == null) { this.options.allowNull = true; }\n if (this.options.nullValue == null) { this.options.nullValue = 0; }\n if (this.options.lazy == null) { this.options.lazy = false; }\n if (this.options.relativeTo) {\n if (typeof this.options.relativeTo !== 'function') {\n throw new Error('relativeTo option must be a function');\n }\n this.relativeToGetter = options.relativeTo;\n }\n }\n\n decode(stream, ctx) {\n const offset = this.offsetType.decode(stream, ctx);\n\n // handle NULL pointers\n if ((offset === this.options.nullValue) && this.options.allowNull) {\n return null;\n }\n\n let relative;\n switch (this.options.type) {\n case 'local': relative = ctx._startOffset; break;\n case 'immediate': relative = stream.pos - this.offsetType.size(); break;\n case 'parent': relative = ctx.parent._startOffset; break;\n default:\n var c = ctx;\n while (c.parent) {\n c = c.parent;\n }\n\n relative = c._startOffset || 0;\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(ctx);\n }\n\n const ptr = offset + relative;\n\n if (this.type != null) {\n let val = null;\n const decodeValue = () => {\n if (val != null) { return val; }\n\n const { pos } = stream;\n stream.pos = ptr;\n val = this.type.decode(stream, ctx);\n stream.pos = pos;\n return val;\n };\n\n // If this is a lazy pointer, define a getter to decode only when needed.\n // This obviously only works when the pointer is contained by a Struct.\n if (this.options.lazy) {\n return new utils.PropertyDescriptor({\n get: decodeValue});\n }\n\n return decodeValue();\n } else {\n return ptr;\n }\n }\n\n size(val, ctx) {\n const parent = ctx;\n switch (this.options.type) {\n case 'local': case 'immediate':\n break;\n case 'parent':\n ctx = ctx.parent;\n break;\n default: // global\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n if (val && ctx) {\n // Must be written as two separate lines rather than += in case `type.size` mutates ctx.pointerSize.\n let size = type.size(val, parent);\n ctx.pointerSize += size;\n }\n\n return this.offsetType.size();\n }\n\n encode(stream, val, ctx) {\n let relative;\n const parent = ctx;\n if ((val == null)) {\n this.offsetType.encode(stream, this.options.nullValue);\n return;\n }\n\n switch (this.options.type) {\n case 'local':\n relative = ctx.startOffset;\n break;\n case 'immediate':\n relative = stream.pos + this.offsetType.size(val, parent);\n break;\n case 'parent':\n ctx = ctx.parent;\n relative = ctx.startOffset;\n break;\n default: // global\n relative = 0;\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(parent.val);\n }\n\n this.offsetType.encode(stream, ctx.pointerOffset - relative);\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n ctx.pointers.push({\n type,\n val,\n parent\n });\n\n return ctx.pointerOffset += type.size(val, parent);\n }\n}\n\n// A pointer whose type is determined at decode time\nexport class VoidPointer {\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexport { _define_property as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(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}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(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}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(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}\n\nexport function __classPrivateFieldSet(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}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n","const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;","import $bdjGp$base64js from \"base64-js\";\nimport $bdjGp$unicodetrie from \"unicode-trie\";\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n\nvar $f4087201da764553$exports = {};\n$f4087201da764553$exports = JSON.parse('{\"categories\":[\"Cc\",\"Zs\",\"Po\",\"Sc\",\"Ps\",\"Pe\",\"Sm\",\"Pd\",\"Nd\",\"Lu\",\"Sk\",\"Pc\",\"Ll\",\"So\",\"Lo\",\"Pi\",\"Cf\",\"No\",\"Pf\",\"Lt\",\"Lm\",\"Mn\",\"Me\",\"Mc\",\"Nl\",\"Zl\",\"Zp\",\"Cs\",\"Co\"],\"combiningClasses\":[\"Not_Reordered\",\"Above\",\"Above_Right\",\"Below\",\"Attached_Above_Right\",\"Attached_Below\",\"Overlay\",\"Iota_Subscript\",\"Double_Below\",\"Double_Above\",\"Below_Right\",\"Above_Left\",\"CCC10\",\"CCC11\",\"CCC12\",\"CCC13\",\"CCC14\",\"CCC15\",\"CCC16\",\"CCC17\",\"CCC18\",\"CCC19\",\"CCC20\",\"CCC21\",\"CCC22\",\"CCC23\",\"CCC24\",\"CCC25\",\"CCC30\",\"CCC31\",\"CCC32\",\"CCC27\",\"CCC28\",\"CCC29\",\"CCC33\",\"CCC34\",\"CCC35\",\"CCC36\",\"Nukta\",\"Virama\",\"CCC84\",\"CCC91\",\"CCC103\",\"CCC107\",\"CCC118\",\"CCC122\",\"CCC129\",\"CCC130\",\"CCC132\",\"Attached_Above\",\"Below_Left\",\"Left\",\"Kana_Voicing\",\"CCC26\",\"Right\"],\"scripts\":[\"Common\",\"Latin\",\"Bopomofo\",\"Inherited\",\"Greek\",\"Coptic\",\"Cyrillic\",\"Armenian\",\"Hebrew\",\"Arabic\",\"Syriac\",\"Thaana\",\"Nko\",\"Samaritan\",\"Mandaic\",\"Devanagari\",\"Bengali\",\"Gurmukhi\",\"Gujarati\",\"Oriya\",\"Tamil\",\"Telugu\",\"Kannada\",\"Malayalam\",\"Sinhala\",\"Thai\",\"Lao\",\"Tibetan\",\"Myanmar\",\"Georgian\",\"Hangul\",\"Ethiopic\",\"Cherokee\",\"Canadian_Aboriginal\",\"Ogham\",\"Runic\",\"Tagalog\",\"Hanunoo\",\"Buhid\",\"Tagbanwa\",\"Khmer\",\"Mongolian\",\"Limbu\",\"Tai_Le\",\"New_Tai_Lue\",\"Buginese\",\"Tai_Tham\",\"Balinese\",\"Sundanese\",\"Batak\",\"Lepcha\",\"Ol_Chiki\",\"Braille\",\"Glagolitic\",\"Tifinagh\",\"Han\",\"Hiragana\",\"Katakana\",\"Yi\",\"Lisu\",\"Vai\",\"Bamum\",\"Syloti_Nagri\",\"Phags_Pa\",\"Saurashtra\",\"Kayah_Li\",\"Rejang\",\"Javanese\",\"Cham\",\"Tai_Viet\",\"Meetei_Mayek\",\"null\",\"Linear_B\",\"Lycian\",\"Carian\",\"Old_Italic\",\"Gothic\",\"Old_Permic\",\"Ugaritic\",\"Old_Persian\",\"Deseret\",\"Shavian\",\"Osmanya\",\"Osage\",\"Elbasan\",\"Caucasian_Albanian\",\"Linear_A\",\"Cypriot\",\"Imperial_Aramaic\",\"Palmyrene\",\"Nabataean\",\"Hatran\",\"Phoenician\",\"Lydian\",\"Meroitic_Hieroglyphs\",\"Meroitic_Cursive\",\"Kharoshthi\",\"Old_South_Arabian\",\"Old_North_Arabian\",\"Manichaean\",\"Avestan\",\"Inscriptional_Parthian\",\"Inscriptional_Pahlavi\",\"Psalter_Pahlavi\",\"Old_Turkic\",\"Old_Hungarian\",\"Hanifi_Rohingya\",\"Old_Sogdian\",\"Sogdian\",\"Elymaic\",\"Brahmi\",\"Kaithi\",\"Sora_Sompeng\",\"Chakma\",\"Mahajani\",\"Sharada\",\"Khojki\",\"Multani\",\"Khudawadi\",\"Grantha\",\"Newa\",\"Tirhuta\",\"Siddham\",\"Modi\",\"Takri\",\"Ahom\",\"Dogra\",\"Warang_Citi\",\"Nandinagari\",\"Zanabazar_Square\",\"Soyombo\",\"Pau_Cin_Hau\",\"Bhaiksuki\",\"Marchen\",\"Masaram_Gondi\",\"Gunjala_Gondi\",\"Makasar\",\"Cuneiform\",\"Egyptian_Hieroglyphs\",\"Anatolian_Hieroglyphs\",\"Mro\",\"Bassa_Vah\",\"Pahawh_Hmong\",\"Medefaidrin\",\"Miao\",\"Tangut\",\"Nushu\",\"Duployan\",\"SignWriting\",\"Nyiakeng_Puachue_Hmong\",\"Wancho\",\"Mende_Kikakui\",\"Adlam\"],\"eaw\":[\"N\",\"Na\",\"A\",\"W\",\"H\",\"F\"]}');\n\n\nconst $747425b437e121da$var$trie = new (0, $bdjGp$unicodetrie)((0, $bdjGp$base64js).toByteArray(\"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\"));\nconst $747425b437e121da$var$log2 = Math.log2 || ((n)=>Math.log(n) / Math.LN2);\nconst $747425b437e121da$var$bits = (n)=>$747425b437e121da$var$log2(n) + 1 | 0;\n// compute the number of bits stored for each field\nconst $747425b437e121da$var$CATEGORY_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories.length - 1);\nconst $747425b437e121da$var$COMBINING_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses.length - 1);\nconst $747425b437e121da$var$SCRIPT_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts.length - 1);\nconst $747425b437e121da$var$EAW_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw.length - 1);\nconst $747425b437e121da$var$NUMBER_BITS = 10;\n// compute shift and mask values for each field\nconst $747425b437e121da$var$CATEGORY_SHIFT = $747425b437e121da$var$COMBINING_BITS + $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$COMBINING_SHIFT = $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$SCRIPT_SHIFT = $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$EAW_SHIFT = $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$CATEGORY_MASK = (1 << $747425b437e121da$var$CATEGORY_BITS) - 1;\nconst $747425b437e121da$var$COMBINING_MASK = (1 << $747425b437e121da$var$COMBINING_BITS) - 1;\nconst $747425b437e121da$var$SCRIPT_MASK = (1 << $747425b437e121da$var$SCRIPT_BITS) - 1;\nconst $747425b437e121da$var$EAW_MASK = (1 << $747425b437e121da$var$EAW_BITS) - 1;\nconst $747425b437e121da$var$NUMBER_MASK = (1 << $747425b437e121da$var$NUMBER_BITS) - 1;\nfunction $747425b437e121da$export$410364bbb673ddbc(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories[val >> $747425b437e121da$var$CATEGORY_SHIFT & $747425b437e121da$var$CATEGORY_MASK];\n}\nfunction $747425b437e121da$export$c03b919c6651ed55(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses[val >> $747425b437e121da$var$COMBINING_SHIFT & $747425b437e121da$var$COMBINING_MASK];\n}\nfunction $747425b437e121da$export$941569448d136665(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts[val >> $747425b437e121da$var$SCRIPT_SHIFT & $747425b437e121da$var$SCRIPT_MASK];\n}\nfunction $747425b437e121da$export$92f6187db8ca6d26(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw[val >> $747425b437e121da$var$EAW_SHIFT & $747425b437e121da$var$EAW_MASK];\n}\nfunction $747425b437e121da$export$7d1258ebb7625a0d(codePoint) {\n let val = $747425b437e121da$var$trie.get(codePoint);\n let num = val & $747425b437e121da$var$NUMBER_MASK;\n if (num === 0) return null;\n else if (num <= 50) return num - 1;\n else if (num < 0x1e0) {\n const numerator = (num >> 4) - 12;\n const denominator = (num & 0xf) + 1;\n return numerator / denominator;\n } else if (num < 0x300) {\n val = (num >> 5) - 14;\n let exp = (num & 0x1f) + 2;\n while(exp > 0){\n val *= 10;\n exp--;\n }\n return val;\n } else {\n val = (num >> 2) - 0xbf;\n let exp = (num & 3) + 1;\n while(exp > 0){\n val *= 60;\n exp--;\n }\n return val;\n }\n}\nfunction $747425b437e121da$export$52c8ea63abd07594(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Nl\";\n}\nfunction $747425b437e121da$export$727d9dbc4fbb948f(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Nd\";\n}\nfunction $747425b437e121da$export$a5b49f4dc6a07d2c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Pc\" || category === \"Pd\" || category === \"Pe\" || category === \"Pf\" || category === \"Pi\" || category === \"Po\" || category === \"Ps\";\n}\nfunction $747425b437e121da$export$7b6804e8df61fcf5(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Ll\";\n}\nfunction $747425b437e121da$export$aebd617640818cda(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lu\";\n}\nfunction $747425b437e121da$export$de8b4ee23b2cf823(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lt\";\n}\nfunction $747425b437e121da$export$3c52dd84024ae72c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Zs\" || category === \"Zl\" || category === \"Zp\";\n}\nfunction $747425b437e121da$export$a11bdcffe109e74b(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Nd\" || category === \"No\" || category === \"Nl\" || category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Me\" || category === \"Mc\";\n}\nfunction $747425b437e121da$export$e33ad6871e762338(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Mn\" || category === \"Me\" || category === \"Mc\";\n}\nvar // Backwards compatibility.\n$747425b437e121da$export$2e2bcd8739ae039 = {\n getCategory: $747425b437e121da$export$410364bbb673ddbc,\n getCombiningClass: $747425b437e121da$export$c03b919c6651ed55,\n getScript: $747425b437e121da$export$941569448d136665,\n getEastAsianWidth: $747425b437e121da$export$92f6187db8ca6d26,\n getNumericValue: $747425b437e121da$export$7d1258ebb7625a0d,\n isAlphabetic: $747425b437e121da$export$52c8ea63abd07594,\n isDigit: $747425b437e121da$export$727d9dbc4fbb948f,\n isPunctuation: $747425b437e121da$export$a5b49f4dc6a07d2c,\n isLowerCase: $747425b437e121da$export$7b6804e8df61fcf5,\n isUpperCase: $747425b437e121da$export$aebd617640818cda,\n isTitleCase: $747425b437e121da$export$de8b4ee23b2cf823,\n isWhiteSpace: $747425b437e121da$export$3c52dd84024ae72c,\n isBaseForm: $747425b437e121da$export$a11bdcffe109e74b,\n isMark: $747425b437e121da$export$e33ad6871e762338\n};\n\n\nexport {$747425b437e121da$export$410364bbb673ddbc as getCategory, $747425b437e121da$export$c03b919c6651ed55 as getCombiningClass, $747425b437e121da$export$941569448d136665 as getScript, $747425b437e121da$export$92f6187db8ca6d26 as getEastAsianWidth, $747425b437e121da$export$7d1258ebb7625a0d as getNumericValue, $747425b437e121da$export$52c8ea63abd07594 as isAlphabetic, $747425b437e121da$export$727d9dbc4fbb948f as isDigit, $747425b437e121da$export$a5b49f4dc6a07d2c as isPunctuation, $747425b437e121da$export$7b6804e8df61fcf5 as isLowerCase, $747425b437e121da$export$aebd617640818cda as isUpperCase, $747425b437e121da$export$de8b4ee23b2cf823 as isTitleCase, $747425b437e121da$export$3c52dd84024ae72c as isWhiteSpace, $747425b437e121da$export$a11bdcffe109e74b as isBaseForm, $747425b437e121da$export$e33ad6871e762338 as isMark, $747425b437e121da$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=module.mjs.map\n","'use strict';\n\nvar INITIAL_STATE = 1;\nvar FAIL_STATE = 0;\n/**\n * A StateMachine represents a deterministic finite automaton.\n * It can perform matches over a sequence of values, similar to a regular expression.\n */\n\nclass StateMachine {\n constructor(dfa) {\n this.stateTable = dfa.stateTable;\n this.accepting = dfa.accepting;\n this.tags = dfa.tags;\n }\n /**\n * Returns an iterable object that yields pattern matches over the input sequence.\n * Matches are of the form [startIndex, endIndex, tags].\n */\n\n\n match(str) {\n var self = this;\n return {\n *[Symbol.iterator]() {\n var state = INITIAL_STATE;\n var startRun = null;\n var lastAccepting = null;\n var lastState = null;\n\n for (var p = 0; p < str.length; p++) {\n var c = str[p];\n lastState = state;\n state = self.stateTable[state][c];\n\n if (state === FAIL_STATE) {\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[lastState]];\n } // reset the state as if we started over from the initial state\n\n\n state = self.stateTable[INITIAL_STATE][c];\n startRun = null;\n } // start a run if not in the failure state\n\n\n if (state !== FAIL_STATE && startRun == null) {\n startRun = p;\n } // if accepting, mark the potential match end\n\n\n if (self.accepting[state]) {\n lastAccepting = p;\n } // reset the state to the initial state if we get into the failure state\n\n\n if (state === FAIL_STATE) {\n state = INITIAL_STATE;\n }\n } // yield the last match if any\n\n\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[state]];\n }\n }\n\n };\n }\n /**\n * For each match over the input sequence, action functions matching\n * the tag definitions in the input pattern are called with the startIndex,\n * endIndex, and sub-match sequence.\n */\n\n\n apply(str, actions) {\n for (var [start, end, tags] of this.match(str)) {\n for (var tag of tags) {\n if (typeof actions[tag] === 'function') {\n actions[tag](start, end, str.slice(start, end + 1));\n }\n }\n }\n }\n\n}\n\nmodule.exports = StateMachine;\n//# sourceMappingURL=index.js.map\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","function BrotliInput(buffer) {\n this.buffer = buffer;\n this.pos = 0;\n}\n\nBrotliInput.prototype.read = function(buf, i, count) {\n if (this.pos + count > this.buffer.length) {\n count = this.buffer.length - this.pos;\n }\n \n for (var p = 0; p < count; p++)\n buf[i + p] = this.buffer[this.pos + p];\n \n this.pos += count;\n return count;\n}\n\nexports.BrotliInput = BrotliInput;\n\nfunction BrotliOutput(buf) {\n this.buffer = buf;\n this.pos = 0;\n}\n\nBrotliOutput.prototype.write = function(buf, count) {\n if (this.pos + count > this.buffer.length)\n throw new Error('Output buffer is not large enough');\n \n this.buffer.set(buf.subarray(0, count), this.pos);\n this.pos += count;\n return count;\n};\n\nexports.BrotliOutput = BrotliOutput;\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Bit reading helpers\n*/\n\nvar BROTLI_READ_SIZE = 4096;\nvar BROTLI_IBUF_SIZE = (2 * BROTLI_READ_SIZE + 32);\nvar BROTLI_IBUF_MASK = (2 * BROTLI_READ_SIZE - 1);\n\nvar kBitMask = new Uint32Array([\n 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767,\n 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215\n]);\n\n/* Input byte buffer, consist of a ringbuffer and a \"slack\" region where */\n/* bytes from the start of the ringbuffer are copied. */\nfunction BrotliBitReader(input) {\n this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);\n this.input_ = input; /* input callback */\n \n this.reset();\n}\n\nBrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;\nBrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;\n\nBrotliBitReader.prototype.reset = function() {\n this.buf_ptr_ = 0; /* next input will write here */\n this.val_ = 0; /* pre-fetched bits */\n this.pos_ = 0; /* byte position in stream */\n this.bit_pos_ = 0; /* current bit-reading position in val_ */\n this.bit_end_pos_ = 0; /* bit-reading end position from LSB of val_ */\n this.eos_ = 0; /* input stream is finished */\n \n this.readMoreInput();\n for (var i = 0; i < 4; i++) {\n this.val_ |= this.buf_[this.pos_] << (8 * i);\n ++this.pos_;\n }\n \n return this.bit_end_pos_ > 0;\n};\n\n/* Fills up the input ringbuffer by calling the input callback.\n\n Does nothing if there are at least 32 bytes present after current position.\n\n Returns 0 if either:\n - the input callback returned an error, or\n - there is no more input and the position is past the end of the stream.\n\n After encountering the end of the input stream, 32 additional zero bytes are\n copied to the ringbuffer, therefore it is safe to call this function after\n every 32 bytes of input is read.\n*/\nBrotliBitReader.prototype.readMoreInput = function() {\n if (this.bit_end_pos_ > 256) {\n return;\n } else if (this.eos_) {\n if (this.bit_pos_ > this.bit_end_pos_)\n throw new Error('Unexpected end of input ' + this.bit_pos_ + ' ' + this.bit_end_pos_);\n } else {\n var dst = this.buf_ptr_;\n var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);\n if (bytes_read < 0) {\n throw new Error('Unexpected end of input');\n }\n \n if (bytes_read < BROTLI_READ_SIZE) {\n this.eos_ = 1;\n /* Store 32 bytes of zero after the stream end. */\n for (var p = 0; p < 32; p++)\n this.buf_[dst + bytes_read + p] = 0;\n }\n \n if (dst === 0) {\n /* Copy the head of the ringbuffer to the slack region. */\n for (var p = 0; p < 32; p++)\n this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];\n\n this.buf_ptr_ = BROTLI_READ_SIZE;\n } else {\n this.buf_ptr_ = 0;\n }\n \n this.bit_end_pos_ += bytes_read << 3;\n }\n};\n\n/* Guarantees that there are at least 24 bits in the buffer. */\nBrotliBitReader.prototype.fillBitWindow = function() { \n while (this.bit_pos_ >= 8) {\n this.val_ >>>= 8;\n this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;\n ++this.pos_;\n this.bit_pos_ = this.bit_pos_ - 8 >>> 0;\n this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;\n }\n};\n\n/* Reads the specified number of bits from Read Buffer. */\nBrotliBitReader.prototype.readBits = function(n_bits) {\n if (32 - this.bit_pos_ < n_bits) {\n this.fillBitWindow();\n }\n \n var val = ((this.val_ >>> this.bit_pos_) & kBitMask[n_bits]);\n this.bit_pos_ += n_bits;\n return val;\n};\n\nmodule.exports = BrotliBitReader;\n","module.exports=\"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\";\n","var base64 = require('base64-js');\n\n/**\n * The normal dictionary-data.js is quite large, which makes it \n * unsuitable for browser usage. In order to make it smaller, \n * we read dictionary.bin, which is a compressed version of\n * the dictionary, and on initial load, Brotli decompresses \n * it's own dictionary. 😜\n */\nexports.init = function() {\n var BrotliDecompressBuffer = require('./decode').BrotliDecompressBuffer;\n var compressed = base64.toByteArray(require('./dictionary.bin.js'));\n return BrotliDecompressBuffer(compressed);\n};\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Collection of static dictionary words.\n*/\n\nvar data = require('./dictionary-data');\nexports.init = function() {\n exports.dictionary = data.init();\n};\n\nexports.offsetsByLength = new Uint32Array([\n 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032,\n 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536,\n 115968, 118528, 119872, 121280, 122016,\n]);\n\nexports.sizeBitsByLength = new Uint8Array([\n 0, 0, 0, 0, 10, 10, 11, 11, 10, 10,\n 10, 10, 10, 9, 9, 8, 7, 7, 8, 7,\n 7, 6, 6, 5, 5,\n]);\n\nexports.minDictionaryWordLength = 4;\nexports.maxDictionaryWordLength = 24;\n","function HuffmanCode(bits, value) {\n this.bits = bits; /* number of bits used for this symbol */\n this.value = value; /* symbol value or table offset */\n}\n\nexports.HuffmanCode = HuffmanCode;\n\nvar MAX_LENGTH = 15;\n\n/* Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the\n bit-wise reversal of the len least significant bits of key. */\nfunction GetNextKey(key, len) {\n var step = 1 << (len - 1);\n while (key & step) {\n step >>= 1;\n }\n return (key & (step - 1)) + step;\n}\n\n/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\n/* Assumes that end is an integer multiple of step */\nfunction ReplicateValue(table, i, step, end, code) {\n do {\n end -= step;\n table[i + end] = new HuffmanCode(code.bits, code.value);\n } while (end > 0);\n}\n\n/* Returns the table width of the next 2nd level table. count is the histogram\n of bit lengths for the remaining symbols, len is the code length of the next\n processed symbol */\nfunction NextTableBitSize(count, len, root_bits) {\n var left = 1 << (len - root_bits);\n while (len < MAX_LENGTH) {\n left -= count[len];\n if (left <= 0) break;\n ++len;\n left <<= 1;\n }\n return len - root_bits;\n}\n\nexports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {\n var start_table = table;\n var code; /* current table entry */\n var len; /* current code length */\n var symbol; /* symbol index in original or sorted table */\n var key; /* reversed prefix code */\n var step; /* step size to replicate values in current table */\n var low; /* low bits for current root entry */\n var mask; /* mask for low bits */\n var table_bits; /* key length of current table */\n var table_size; /* size of current table */\n var total_size; /* sum of root table size and 2nd level table sizes */\n var sorted; /* symbols sorted by code length */\n var count = new Int32Array(MAX_LENGTH + 1); /* number of codes of each length */\n var offset = new Int32Array(MAX_LENGTH + 1); /* offsets in sorted table for each length */\n\n sorted = new Int32Array(code_lengths_size);\n\n /* build histogram of code lengths */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n count[code_lengths[symbol]]++;\n }\n\n /* generate offsets into sorted symbol table by code length */\n offset[1] = 0;\n for (len = 1; len < MAX_LENGTH; len++) {\n offset[len + 1] = offset[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n if (code_lengths[symbol] !== 0) {\n sorted[offset[code_lengths[symbol]]++] = symbol;\n }\n }\n \n table_bits = root_bits;\n table_size = 1 << table_bits;\n total_size = table_size;\n\n /* special case code with only one value */\n if (offset[MAX_LENGTH] === 1) {\n for (key = 0; key < total_size; ++key) {\n root_table[table + key] = new HuffmanCode(0, sorted[0] & 0xffff);\n }\n \n return total_size;\n }\n\n /* fill in root table */\n key = 0;\n symbol = 0;\n for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n code = new HuffmanCode(len & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + key, step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n\n /* fill in 2nd level tables and add pointers to root table */\n mask = total_size - 1;\n low = -1;\n for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n if ((key & mask) !== low) {\n table += table_size;\n table_bits = NextTableBitSize(count, len, root_bits);\n table_size = 1 << table_bits;\n total_size += table_size;\n low = key & mask;\n root_table[start_table + low] = new HuffmanCode((table_bits + root_bits) & 0xff, ((table - start_table) - low) & 0xffff);\n }\n code = new HuffmanCode((len - root_bits) & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n \n return total_size;\n}\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Lookup table to map the previous two bytes to a context id.\n\n There are four different context modeling modes defined here:\n CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\n CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\n CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\n CONTEXT_SIGNED: second-order context model tuned for signed integers.\n\n The context id for the UTF8 context model is calculated as follows. If p1\n and p2 are the previous two bytes, we calcualte the context as\n\n context = kContextLookup[p1] | kContextLookup[p2 + 256].\n\n If the previous two bytes are ASCII characters (i.e. < 128), this will be\n equivalent to\n\n context = 4 * context1(p1) + context2(p2),\n\n where context1 is based on the previous byte in the following way:\n\n 0 : non-ASCII control\n 1 : \\t, \\n, \\r\n 2 : space\n 3 : other punctuation\n 4 : \" '\n 5 : %\n 6 : ( < [ {\n 7 : ) > ] }\n 8 : , ; :\n 9 : .\n 10 : =\n 11 : number\n 12 : upper-case vowel\n 13 : upper-case consonant\n 14 : lower-case vowel\n 15 : lower-case consonant\n\n and context2 is based on the second last byte:\n\n 0 : control, space\n 1 : punctuation\n 2 : upper-case letter, number\n 3 : lower-case letter\n\n If the last byte is ASCII, and the second last byte is not (in a valid UTF8\n stream it will be a continuation byte, value between 128 and 191), the\n context is the same as if the second last byte was an ASCII control or space.\n\n If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\n be a continuation byte and the context id is 2 or 3 depending on the LSB of\n the last byte and to a lesser extent on the second last byte if it is ASCII.\n\n If the last byte is a UTF8 continuation byte, the second last byte can be:\n - continuation byte: the next byte is probably ASCII or lead byte (assuming\n 4-byte UTF8 characters are rare) and the context id is 0 or 1.\n - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\n - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\n\n The possible value combinations of the previous two bytes, the range of\n context ids and the type of the next byte is summarized in the table below:\n\n |--------\\-----------------------------------------------------------------|\n | \\ Last byte |\n | Second \\---------------------------------------------------------------|\n | last byte \\ ASCII | cont. byte | lead byte |\n | \\ (0-127) | (128-191) | (192-) |\n |=============|===================|=====================|==================|\n | ASCII | next: ASCII/lead | not valid | next: cont. |\n | (0-127) | context: 4 - 63 | | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. |\n | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: ASCII/lead | not valid |\n | (192-207) | | context: 0 - 1 | |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: cont. | not valid |\n | (208-) | | context: 2 - 3 | |\n |-------------|-------------------|---------------------|------------------|\n\n The context id for the signed context mode is calculated as:\n\n context = (kContextLookup[512 + p1] << 3) | kContextLookup[512 + p2].\n\n For any context modeling modes, the context ids can be calculated by |-ing\n together two lookups from one table using context model dependent offsets:\n\n context = kContextLookup[offset1 + p1] | kContextLookup[offset2 + p2].\n\n where offset1 and offset2 are dependent on the context mode.\n*/\n\nvar CONTEXT_LSB6 = 0;\nvar CONTEXT_MSB6 = 1;\nvar CONTEXT_UTF8 = 2;\nvar CONTEXT_SIGNED = 3;\n\n/* Common context lookup table for all context modes. */\nexports.lookup = new Uint8Array([\n /* CONTEXT_UTF8, last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,\n 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\n 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,\n 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,\n 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,\n 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0,\n /* UTF8 continuation byte range. */\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n /* UTF8 lead byte range. */\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n /* CONTEXT_UTF8 second last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,\n 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,\n 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\n /* UTF8 continuation byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n /* UTF8 lead byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n /* CONTEXT_SIGNED, second last byte. */\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,\n /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\n 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\n /* CONTEXT_LSB6, last byte. */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n /* CONTEXT_MSB6, last byte. */\n 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,\n 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,\n 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11,\n 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,\n 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\n 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,\n 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,\n 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,\n 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,\n 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,\n 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,\n 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\n 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,\n 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,\n 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,\n 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,\n /* CONTEXT_{M,L}SB6, second last byte, */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n]);\n\nexports.lookupOffsets = new Uint16Array([\n /* CONTEXT_LSB6 */\n 1024, 1536,\n /* CONTEXT_MSB6 */\n 1280, 1536,\n /* CONTEXT_UTF8 */\n 0, 256,\n /* CONTEXT_SIGNED */\n 768, 512,\n]);\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Lookup tables to map prefix codes to value ranges. This is used during\n decoding of the block lengths, literal insertion lengths and copy lengths.\n*/\n\n/* Represents the range of values belonging to a prefix code: */\n/* [offset, offset + 2^nbits) */\nfunction PrefixCodeRange(offset, nbits) {\n this.offset = offset;\n this.nbits = nbits;\n}\n\nexports.kBlockLengthPrefixCode = [\n new PrefixCodeRange(1, 2), new PrefixCodeRange(5, 2), new PrefixCodeRange(9, 2), new PrefixCodeRange(13, 2),\n new PrefixCodeRange(17, 3), new PrefixCodeRange(25, 3), new PrefixCodeRange(33, 3), new PrefixCodeRange(41, 3),\n new PrefixCodeRange(49, 4), new PrefixCodeRange(65, 4), new PrefixCodeRange(81, 4), new PrefixCodeRange(97, 4),\n new PrefixCodeRange(113, 5), new PrefixCodeRange(145, 5), new PrefixCodeRange(177, 5), new PrefixCodeRange(209, 5),\n new PrefixCodeRange(241, 6), new PrefixCodeRange(305, 6), new PrefixCodeRange(369, 7), new PrefixCodeRange(497, 8),\n new PrefixCodeRange(753, 9), new PrefixCodeRange(1265, 10), new PrefixCodeRange(2289, 11), new PrefixCodeRange(4337, 12),\n new PrefixCodeRange(8433, 13), new PrefixCodeRange(16625, 24)\n];\n\nexports.kInsertLengthPrefixCode = [\n new PrefixCodeRange(0, 0), new PrefixCodeRange(1, 0), new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0),\n new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 1), new PrefixCodeRange(8, 1),\n new PrefixCodeRange(10, 2), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 3), new PrefixCodeRange(26, 3),\n new PrefixCodeRange(34, 4), new PrefixCodeRange(50, 4), new PrefixCodeRange(66, 5), new PrefixCodeRange(98, 5),\n new PrefixCodeRange(130, 6), new PrefixCodeRange(194, 7), new PrefixCodeRange(322, 8), new PrefixCodeRange(578, 9),\n new PrefixCodeRange(1090, 10), new PrefixCodeRange(2114, 12), new PrefixCodeRange(6210, 14), new PrefixCodeRange(22594, 24),\n];\n\nexports.kCopyLengthPrefixCode = [\n new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0),\n new PrefixCodeRange(6, 0), new PrefixCodeRange(7, 0), new PrefixCodeRange(8, 0), new PrefixCodeRange(9, 0),\n new PrefixCodeRange(10, 1), new PrefixCodeRange(12, 1), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 2),\n new PrefixCodeRange(22, 3), new PrefixCodeRange(30, 3), new PrefixCodeRange(38, 4), new PrefixCodeRange(54, 4),\n new PrefixCodeRange(70, 5), new PrefixCodeRange(102, 5), new PrefixCodeRange(134, 6), new PrefixCodeRange(198, 7),\n new PrefixCodeRange(326, 8), new PrefixCodeRange(582, 9), new PrefixCodeRange(1094, 10), new PrefixCodeRange(2118, 24),\n];\n\nexports.kInsertRangeLut = [\n 0, 0, 8, 8, 0, 16, 8, 16, 16,\n];\n\nexports.kCopyRangeLut = [\n 0, 8, 0, 8, 16, 0, 16, 8, 16,\n];\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n Transformations on dictionary words.\n*/\n\nvar BrotliDictionary = require('./dictionary');\n\nvar kIdentity = 0;\nvar kOmitLast1 = 1;\nvar kOmitLast2 = 2;\nvar kOmitLast3 = 3;\nvar kOmitLast4 = 4;\nvar kOmitLast5 = 5;\nvar kOmitLast6 = 6;\nvar kOmitLast7 = 7;\nvar kOmitLast8 = 8;\nvar kOmitLast9 = 9;\nvar kUppercaseFirst = 10;\nvar kUppercaseAll = 11;\nvar kOmitFirst1 = 12;\nvar kOmitFirst2 = 13;\nvar kOmitFirst3 = 14;\nvar kOmitFirst4 = 15;\nvar kOmitFirst5 = 16;\nvar kOmitFirst6 = 17;\nvar kOmitFirst7 = 18;\nvar kOmitFirst8 = 19;\nvar kOmitFirst9 = 20;\n\nfunction Transform(prefix, transform, suffix) {\n this.prefix = new Uint8Array(prefix.length);\n this.transform = transform;\n this.suffix = new Uint8Array(suffix.length);\n \n for (var i = 0; i < prefix.length; i++)\n this.prefix[i] = prefix.charCodeAt(i);\n \n for (var i = 0; i < suffix.length; i++)\n this.suffix[i] = suffix.charCodeAt(i);\n}\n\nvar kTransforms = [\n new Transform( \"\", kIdentity, \"\" ),\n new Transform( \"\", kIdentity, \" \" ),\n new Transform( \" \", kIdentity, \" \" ),\n new Transform( \"\", kOmitFirst1, \"\" ),\n new Transform( \"\", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" the \" ),\n new Transform( \" \", kIdentity, \"\" ),\n new Transform( \"s \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \" of \" ),\n new Transform( \"\", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \" and \" ),\n new Transform( \"\", kOmitFirst2, \"\" ),\n new Transform( \"\", kOmitLast1, \"\" ),\n new Transform( \", \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \", \" ),\n new Transform( \" \", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" in \" ),\n new Transform( \"\", kIdentity, \" to \" ),\n new Transform( \"e \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \"\\\"\" ),\n new Transform( \"\", kIdentity, \".\" ),\n new Transform( \"\", kIdentity, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"\\n\" ),\n new Transform( \"\", kOmitLast3, \"\" ),\n new Transform( \"\", kIdentity, \"]\" ),\n new Transform( \"\", kIdentity, \" for \" ),\n new Transform( \"\", kOmitFirst3, \"\" ),\n new Transform( \"\", kOmitLast2, \"\" ),\n new Transform( \"\", kIdentity, \" a \" ),\n new Transform( \"\", kIdentity, \" that \" ),\n new Transform( \" \", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \". \" ),\n new Transform( \".\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \", \" ),\n new Transform( \"\", kOmitFirst4, \"\" ),\n new Transform( \"\", kIdentity, \" with \" ),\n new Transform( \"\", kIdentity, \"'\" ),\n new Transform( \"\", kIdentity, \" from \" ),\n new Transform( \"\", kIdentity, \" by \" ),\n new Transform( \"\", kOmitFirst5, \"\" ),\n new Transform( \"\", kOmitFirst6, \"\" ),\n new Transform( \" the \", kIdentity, \"\" ),\n new Transform( \"\", kOmitLast4, \"\" ),\n new Transform( \"\", kIdentity, \". The \" ),\n new Transform( \"\", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \" on \" ),\n new Transform( \"\", kIdentity, \" as \" ),\n new Transform( \"\", kIdentity, \" is \" ),\n new Transform( \"\", kOmitLast7, \"\" ),\n new Transform( \"\", kOmitLast1, \"ing \" ),\n new Transform( \"\", kIdentity, \"\\n\\t\" ),\n new Transform( \"\", kIdentity, \":\" ),\n new Transform( \" \", kIdentity, \". \" ),\n new Transform( \"\", kIdentity, \"ed \" ),\n new Transform( \"\", kOmitFirst9, \"\" ),\n new Transform( \"\", kOmitFirst7, \"\" ),\n new Transform( \"\", kOmitLast6, \"\" ),\n new Transform( \"\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \", \" ),\n new Transform( \"\", kOmitLast8, \"\" ),\n new Transform( \"\", kIdentity, \" at \" ),\n new Transform( \"\", kIdentity, \"ly \" ),\n new Transform( \" the \", kIdentity, \" of \" ),\n new Transform( \"\", kOmitLast5, \"\" ),\n new Transform( \"\", kOmitLast9, \"\" ),\n new Transform( \" \", kUppercaseFirst, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\"\" ),\n new Transform( \".\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseAll, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"=\\\"\" ),\n new Transform( \" \", kIdentity, \".\" ),\n new Transform( \".com/\", kIdentity, \"\" ),\n new Transform( \" the \", kIdentity, \" of the \" ),\n new Transform( \"\", kUppercaseFirst, \"'\" ),\n new Transform( \"\", kIdentity, \". This \" ),\n new Transform( \"\", kIdentity, \",\" ),\n new Transform( \".\", kIdentity, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \".\" ),\n new Transform( \"\", kIdentity, \" not \" ),\n new Transform( \" \", kIdentity, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"er \" ),\n new Transform( \" \", kUppercaseAll, \" \" ),\n new Transform( \"\", kIdentity, \"al \" ),\n new Transform( \" \", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseAll, \"\\\"\" ),\n new Transform( \"\", kUppercaseFirst, \". \" ),\n new Transform( \" \", kIdentity, \"(\" ),\n new Transform( \"\", kIdentity, \"ful \" ),\n new Transform( \" \", kUppercaseFirst, \". \" ),\n new Transform( \"\", kIdentity, \"ive \" ),\n new Transform( \"\", kIdentity, \"less \" ),\n new Transform( \"\", kUppercaseAll, \"'\" ),\n new Transform( \"\", kIdentity, \"est \" ),\n new Transform( \" \", kUppercaseFirst, \".\" ),\n new Transform( \"\", kUppercaseAll, \"\\\">\" ),\n new Transform( \" \", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseFirst, \",\" ),\n new Transform( \"\", kIdentity, \"ize \" ),\n new Transform( \"\", kUppercaseAll, \".\" ),\n new Transform( \"\\xc2\\xa0\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \",\" ),\n new Transform( \"\", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \"\", kUppercaseAll, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"ous \" ),\n new Transform( \"\", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \",\" ),\n new Transform( \" \", kUppercaseAll, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseAll, \",\" ),\n new Transform( \"\", kUppercaseAll, \"(\" ),\n new Transform( \"\", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseAll, \".\" ),\n new Transform( \"\", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \"='\" )\n];\n\nexports.kTransforms = kTransforms;\nexports.kNumTransforms = kTransforms.length;\n\nfunction ToUpperCase(p, i) {\n if (p[i] < 0xc0) {\n if (p[i] >= 97 && p[i] <= 122) {\n p[i] ^= 32;\n }\n return 1;\n }\n \n /* An overly simplified uppercasing model for utf-8. */\n if (p[i] < 0xe0) {\n p[i + 1] ^= 32;\n return 2;\n }\n \n /* An arbitrary transform for three byte characters. */\n p[i + 2] ^= 5;\n return 3;\n}\n\nexports.transformDictionaryWord = function(dst, idx, word, len, transform) {\n var prefix = kTransforms[transform].prefix;\n var suffix = kTransforms[transform].suffix;\n var t = kTransforms[transform].transform;\n var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);\n var i = 0;\n var start_idx = idx;\n var uppercase;\n \n if (skip > len) {\n skip = len;\n }\n \n var prefix_pos = 0;\n while (prefix_pos < prefix.length) {\n dst[idx++] = prefix[prefix_pos++];\n }\n \n word += skip;\n len -= skip;\n \n if (t <= kOmitLast9) {\n len -= t;\n }\n \n for (i = 0; i < len; i++) {\n dst[idx++] = BrotliDictionary.dictionary[word + i];\n }\n \n uppercase = idx - len;\n \n if (t === kUppercaseFirst) {\n ToUpperCase(dst, uppercase);\n } else if (t === kUppercaseAll) {\n while (len > 0) {\n var step = ToUpperCase(dst, uppercase);\n uppercase += step;\n len -= step;\n }\n }\n \n var suffix_pos = 0;\n while (suffix_pos < suffix.length) {\n dst[idx++] = suffix[suffix_pos++];\n }\n \n return idx - start_idx;\n}\n","/* Copyright 2013 Google Inc. All Rights Reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\nvar BrotliInput = require('./streams').BrotliInput;\nvar BrotliOutput = require('./streams').BrotliOutput;\nvar BrotliBitReader = require('./bit_reader');\nvar BrotliDictionary = require('./dictionary');\nvar HuffmanCode = require('./huffman').HuffmanCode;\nvar BrotliBuildHuffmanTable = require('./huffman').BrotliBuildHuffmanTable;\nvar Context = require('./context');\nvar Prefix = require('./prefix');\nvar Transform = require('./transform');\n\nvar kDefaultCodeLength = 8;\nvar kCodeLengthRepeatCode = 16;\nvar kNumLiteralCodes = 256;\nvar kNumInsertAndCopyCodes = 704;\nvar kNumBlockLengthCodes = 26;\nvar kLiteralContextBits = 6;\nvar kDistanceContextBits = 2;\n\nvar HUFFMAN_TABLE_BITS = 8;\nvar HUFFMAN_TABLE_MASK = 0xff;\n/* Maximum possible Huffman table size for an alphabet size of 704, max code\n * length 15 and root table bits 8. */\nvar HUFFMAN_MAX_TABLE_SIZE = 1080;\n\nvar CODE_LENGTH_CODES = 18;\nvar kCodeLengthCodeOrder = new Uint8Array([\n 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n]);\n\nvar NUM_DISTANCE_SHORT_CODES = 16;\nvar kDistanceShortCodeIndexOffset = new Uint8Array([\n 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2\n]);\n\nvar kDistanceShortCodeValueOffset = new Int8Array([\n 0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3\n]);\n\nvar kMaxHuffmanTableSize = new Uint16Array([\n 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822,\n 854, 886, 920, 952, 984, 1016, 1048, 1080\n]);\n\nfunction DecodeWindowBits(br) {\n var n;\n if (br.readBits(1) === 0) {\n return 16;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 17 + n;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 8 + n;\n }\n \n return 17;\n}\n\n/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\nfunction DecodeVarLenUint8(br) {\n if (br.readBits(1)) {\n var nbits = br.readBits(3);\n if (nbits === 0) {\n return 1;\n } else {\n return br.readBits(nbits) + (1 << nbits);\n }\n }\n return 0;\n}\n\nfunction MetaBlockLength() {\n this.meta_block_length = 0;\n this.input_end = 0;\n this.is_uncompressed = 0;\n this.is_metadata = false;\n}\n\nfunction DecodeMetaBlockLength(br) {\n var out = new MetaBlockLength; \n var size_nibbles;\n var size_bytes;\n var i;\n \n out.input_end = br.readBits(1);\n if (out.input_end && br.readBits(1)) {\n return out;\n }\n \n size_nibbles = br.readBits(2) + 4;\n if (size_nibbles === 7) {\n out.is_metadata = true;\n \n if (br.readBits(1) !== 0)\n throw new Error('Invalid reserved bit');\n \n size_bytes = br.readBits(2);\n if (size_bytes === 0)\n return out;\n \n for (i = 0; i < size_bytes; i++) {\n var next_byte = br.readBits(8);\n if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0)\n throw new Error('Invalid size byte');\n \n out.meta_block_length |= next_byte << (i * 8);\n }\n } else {\n for (i = 0; i < size_nibbles; ++i) {\n var next_nibble = br.readBits(4);\n if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)\n throw new Error('Invalid size nibble');\n \n out.meta_block_length |= next_nibble << (i * 4);\n }\n }\n \n ++out.meta_block_length;\n \n if (!out.input_end && !out.is_metadata) {\n out.is_uncompressed = br.readBits(1);\n }\n \n return out;\n}\n\n/* Decodes the next Huffman code from bit-stream. */\nfunction ReadSymbol(table, index, br) {\n var start_index = index;\n \n var nbits;\n br.fillBitWindow();\n index += (br.val_ >>> br.bit_pos_) & HUFFMAN_TABLE_MASK;\n nbits = table[index].bits - HUFFMAN_TABLE_BITS;\n if (nbits > 0) {\n br.bit_pos_ += HUFFMAN_TABLE_BITS;\n index += table[index].value;\n index += (br.val_ >>> br.bit_pos_) & ((1 << nbits) - 1);\n }\n br.bit_pos_ += table[index].bits;\n return table[index].value;\n}\n\nfunction ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {\n var symbol = 0;\n var prev_code_len = kDefaultCodeLength;\n var repeat = 0;\n var repeat_code_len = 0;\n var space = 32768;\n \n var table = [];\n for (var i = 0; i < 32; i++)\n table.push(new HuffmanCode(0, 0));\n \n BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);\n\n while (symbol < num_symbols && space > 0) {\n var p = 0;\n var code_len;\n \n br.readMoreInput();\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 31;\n br.bit_pos_ += table[p].bits;\n code_len = table[p].value & 0xff;\n if (code_len < kCodeLengthRepeatCode) {\n repeat = 0;\n code_lengths[symbol++] = code_len;\n if (code_len !== 0) {\n prev_code_len = code_len;\n space -= 32768 >> code_len;\n }\n } else {\n var extra_bits = code_len - 14;\n var old_repeat;\n var repeat_delta;\n var new_len = 0;\n if (code_len === kCodeLengthRepeatCode) {\n new_len = prev_code_len;\n }\n if (repeat_code_len !== new_len) {\n repeat = 0;\n repeat_code_len = new_len;\n }\n old_repeat = repeat;\n if (repeat > 0) {\n repeat -= 2;\n repeat <<= extra_bits;\n }\n repeat += br.readBits(extra_bits) + 3;\n repeat_delta = repeat - old_repeat;\n if (symbol + repeat_delta > num_symbols) {\n throw new Error('[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols');\n }\n \n for (var x = 0; x < repeat_delta; x++)\n code_lengths[symbol + x] = repeat_code_len;\n \n symbol += repeat_delta;\n \n if (repeat_code_len !== 0) {\n space -= repeat_delta << (15 - repeat_code_len);\n }\n }\n }\n if (space !== 0) {\n throw new Error(\"[ReadHuffmanCodeLengths] space = \" + space);\n }\n \n for (; symbol < num_symbols; symbol++)\n code_lengths[symbol] = 0;\n}\n\nfunction ReadHuffmanCode(alphabet_size, tables, table, br) {\n var table_size = 0;\n var simple_code_or_skip;\n var code_lengths = new Uint8Array(alphabet_size);\n \n br.readMoreInput();\n \n /* simple_code_or_skip is used as follows:\n 1 for simple code;\n 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\n simple_code_or_skip = br.readBits(2);\n if (simple_code_or_skip === 1) {\n /* Read symbols, codes & code lengths directly. */\n var i;\n var max_bits_counter = alphabet_size - 1;\n var max_bits = 0;\n var symbols = new Int32Array(4);\n var num_symbols = br.readBits(2) + 1;\n while (max_bits_counter) {\n max_bits_counter >>= 1;\n ++max_bits;\n }\n\n for (i = 0; i < num_symbols; ++i) {\n symbols[i] = br.readBits(max_bits) % alphabet_size;\n code_lengths[symbols[i]] = 2;\n }\n code_lengths[symbols[0]] = 1;\n switch (num_symbols) {\n case 1:\n break;\n case 3:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[1] === symbols[2])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n break;\n case 2:\n if (symbols[0] === symbols[1]) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n code_lengths[symbols[1]] = 1;\n break;\n case 4:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[0] === symbols[3]) ||\n (symbols[1] === symbols[2]) ||\n (symbols[1] === symbols[3]) ||\n (symbols[2] === symbols[3])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n if (br.readBits(1)) {\n code_lengths[symbols[2]] = 3;\n code_lengths[symbols[3]] = 3;\n } else {\n code_lengths[symbols[0]] = 2;\n }\n break;\n }\n } else { /* Decode Huffman-coded code lengths. */\n var i;\n var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);\n var space = 32;\n var num_codes = 0;\n /* Static Huffman code for the code length code lengths */\n var huff = [\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 1),\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 5)\n ];\n for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {\n var code_len_idx = kCodeLengthCodeOrder[i];\n var p = 0;\n var v;\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 15;\n br.bit_pos_ += huff[p].bits;\n v = huff[p].value;\n code_length_code_lengths[code_len_idx] = v;\n if (v !== 0) {\n space -= (32 >> v);\n ++num_codes;\n }\n }\n \n if (!(num_codes === 1 || space === 0))\n throw new Error('[ReadHuffmanCode] invalid num_codes or space');\n \n ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);\n }\n \n table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);\n \n if (table_size === 0) {\n throw new Error(\"[ReadHuffmanCode] BuildHuffmanTable failed: \");\n }\n \n return table_size;\n}\n\nfunction ReadBlockLength(table, index, br) {\n var code;\n var nbits;\n code = ReadSymbol(table, index, br);\n nbits = Prefix.kBlockLengthPrefixCode[code].nbits;\n return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);\n}\n\nfunction TranslateShortCodes(code, ringbuffer, index) {\n var val;\n if (code < NUM_DISTANCE_SHORT_CODES) {\n index += kDistanceShortCodeIndexOffset[code];\n index &= 3;\n val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];\n } else {\n val = code - NUM_DISTANCE_SHORT_CODES + 1;\n }\n return val;\n}\n\nfunction MoveToFront(v, index) {\n var value = v[index];\n var i = index;\n for (; i; --i) v[i] = v[i - 1];\n v[0] = value;\n}\n\nfunction InverseMoveToFrontTransform(v, v_len) {\n var mtf = new Uint8Array(256);\n var i;\n for (i = 0; i < 256; ++i) {\n mtf[i] = i;\n }\n for (i = 0; i < v_len; ++i) {\n var index = v[i];\n v[i] = mtf[index];\n if (index) MoveToFront(mtf, index);\n }\n}\n\n/* Contains a collection of huffman trees with the same alphabet size. */\nfunction HuffmanTreeGroup(alphabet_size, num_htrees) {\n this.alphabet_size = alphabet_size;\n this.num_htrees = num_htrees;\n this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[(alphabet_size + 31) >>> 5]); \n this.htrees = new Uint32Array(num_htrees);\n}\n\nHuffmanTreeGroup.prototype.decode = function(br) {\n var i;\n var table_size;\n var next = 0;\n for (i = 0; i < this.num_htrees; ++i) {\n this.htrees[i] = next;\n table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);\n next += table_size;\n }\n};\n\nfunction DecodeContextMap(context_map_size, br) {\n var out = { num_htrees: null, context_map: null };\n var use_rle_for_zeros;\n var max_run_length_prefix = 0;\n var table;\n var i;\n \n br.readMoreInput();\n var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;\n\n var context_map = out.context_map = new Uint8Array(context_map_size);\n if (num_htrees <= 1) {\n return out;\n }\n\n use_rle_for_zeros = br.readBits(1);\n if (use_rle_for_zeros) {\n max_run_length_prefix = br.readBits(4) + 1;\n }\n \n table = [];\n for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {\n table[i] = new HuffmanCode(0, 0);\n }\n \n ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);\n \n for (i = 0; i < context_map_size;) {\n var code;\n\n br.readMoreInput();\n code = ReadSymbol(table, 0, br);\n if (code === 0) {\n context_map[i] = 0;\n ++i;\n } else if (code <= max_run_length_prefix) {\n var reps = 1 + (1 << code) + br.readBits(code);\n while (--reps) {\n if (i >= context_map_size) {\n throw new Error(\"[DecodeContextMap] i >= context_map_size\");\n }\n context_map[i] = 0;\n ++i;\n }\n } else {\n context_map[i] = code - max_run_length_prefix;\n ++i;\n }\n }\n if (br.readBits(1)) {\n InverseMoveToFrontTransform(context_map, context_map_size);\n }\n \n return out;\n}\n\nfunction DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {\n var ringbuffer = tree_type * 2;\n var index = tree_type;\n var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);\n var block_type;\n if (type_code === 0) {\n block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];\n } else if (type_code === 1) {\n block_type = ringbuffers[ringbuffer + ((indexes[index] - 1) & 1)] + 1;\n } else {\n block_type = type_code - 2;\n }\n if (block_type >= max_block_type) {\n block_type -= max_block_type;\n }\n block_types[tree_type] = block_type;\n ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;\n ++indexes[index];\n}\n\nfunction CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {\n var rb_size = ringbuffer_mask + 1;\n var rb_pos = pos & ringbuffer_mask;\n var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;\n var nbytes;\n\n /* For short lengths copy byte-by-byte */\n if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {\n while (len-- > 0) {\n br.readMoreInput();\n ringbuffer[rb_pos++] = br.readBits(8);\n if (rb_pos === rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos = 0;\n }\n }\n return;\n }\n\n if (br.bit_end_pos_ < 32) {\n throw new Error('[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32');\n }\n\n /* Copy remaining 0-4 bytes from br.val_ to ringbuffer. */\n while (br.bit_pos_ < 32) {\n ringbuffer[rb_pos] = (br.val_ >>> br.bit_pos_);\n br.bit_pos_ += 8;\n ++rb_pos;\n --len;\n }\n\n /* Copy remaining bytes from br.buf_ to ringbuffer. */\n nbytes = (br.bit_end_pos_ - br.bit_pos_) >> 3;\n if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {\n var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;\n for (var x = 0; x < tail; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n nbytes -= tail;\n rb_pos += tail;\n len -= tail;\n br_pos = 0;\n }\n\n for (var x = 0; x < nbytes; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n rb_pos += nbytes;\n len -= nbytes;\n\n /* If we wrote past the logical end of the ringbuffer, copy the tail of the\n ringbuffer to its beginning and flush the ringbuffer to the output. */\n if (rb_pos >= rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos -= rb_size; \n for (var x = 0; x < rb_pos; x++)\n ringbuffer[x] = ringbuffer[rb_size + x];\n }\n\n /* If we have more to copy than the remaining size of the ringbuffer, then we\n first fill the ringbuffer from the input and then flush the ringbuffer to\n the output */\n while (rb_pos + len >= rb_size) {\n nbytes = rb_size - rb_pos;\n if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n output.write(ringbuffer, rb_size);\n len -= nbytes;\n rb_pos = 0;\n }\n\n /* Copy straight from the input onto the ringbuffer. The ringbuffer will be\n flushed to the output at a later time. */\n if (br.input_.read(ringbuffer, rb_pos, len) < len) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n\n /* Restore the state of the bit reader. */\n br.reset();\n}\n\n/* Advances the bit reader position to the next byte boundary and verifies\n that any skipped bits are set to zero. */\nfunction JumpToByteBoundary(br) {\n var new_bit_pos = (br.bit_pos_ + 7) & ~7;\n var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);\n return pad_bits == 0;\n}\n\nfunction BrotliDecompressedSize(buffer) {\n var input = new BrotliInput(buffer);\n var br = new BrotliBitReader(input);\n DecodeWindowBits(br);\n var out = DecodeMetaBlockLength(br);\n return out.meta_block_length;\n}\n\nexports.BrotliDecompressedSize = BrotliDecompressedSize;\n\nfunction BrotliDecompressBuffer(buffer, output_size) {\n var input = new BrotliInput(buffer);\n \n if (output_size == null) {\n output_size = BrotliDecompressedSize(buffer);\n }\n \n var output_buffer = new Uint8Array(output_size);\n var output = new BrotliOutput(output_buffer);\n \n BrotliDecompress(input, output);\n \n if (output.pos < output.buffer.length) {\n output.buffer = output.buffer.subarray(0, output.pos);\n }\n \n return output.buffer;\n}\n\nexports.BrotliDecompressBuffer = BrotliDecompressBuffer;\n\nfunction BrotliDecompress(input, output) {\n var i;\n var pos = 0;\n var input_end = 0;\n var window_bits = 0;\n var max_backward_distance;\n var max_distance = 0;\n var ringbuffer_size;\n var ringbuffer_mask;\n var ringbuffer;\n var ringbuffer_end;\n /* This ring buffer holds a few past copy distances that will be used by */\n /* some special distance codes. */\n var dist_rb = [ 16, 15, 11, 4 ];\n var dist_rb_idx = 0;\n /* The previous 2 bytes used for context. */\n var prev_byte1 = 0;\n var prev_byte2 = 0;\n var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];\n var block_type_trees;\n var block_len_trees;\n var br;\n\n /* We need the slack region for the following reasons:\n - always doing two 8-byte copies for fast backward copying\n - transforms\n - flushing the input ringbuffer when decoding uncompressed blocks */\n var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;\n\n br = new BrotliBitReader(input);\n\n /* Decode window size. */\n window_bits = DecodeWindowBits(br);\n max_backward_distance = (1 << window_bits) - 16;\n\n ringbuffer_size = 1 << window_bits;\n ringbuffer_mask = ringbuffer_size - 1;\n ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);\n ringbuffer_end = ringbuffer_size;\n\n block_type_trees = [];\n block_len_trees = [];\n for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {\n block_type_trees[x] = new HuffmanCode(0, 0);\n block_len_trees[x] = new HuffmanCode(0, 0);\n }\n\n while (!input_end) {\n var meta_block_remaining_len = 0;\n var is_uncompressed;\n var block_length = [ 1 << 28, 1 << 28, 1 << 28 ];\n var block_type = [ 0 ];\n var num_block_types = [ 1, 1, 1 ];\n var block_type_rb = [ 0, 1, 0, 1, 0, 1 ];\n var block_type_rb_index = [ 0 ];\n var distance_postfix_bits;\n var num_direct_distance_codes;\n var distance_postfix_mask;\n var num_distance_codes;\n var context_map = null;\n var context_modes = null;\n var num_literal_htrees;\n var dist_context_map = null;\n var num_dist_htrees;\n var context_offset = 0;\n var context_map_slice = null;\n var literal_htree_index = 0;\n var dist_context_offset = 0;\n var dist_context_map_slice = null;\n var dist_htree_index = 0;\n var context_lookup_offset1 = 0;\n var context_lookup_offset2 = 0;\n var context_mode;\n var htree_command;\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].codes = null;\n hgroup[i].htrees = null;\n }\n\n br.readMoreInput();\n \n var _out = DecodeMetaBlockLength(br);\n meta_block_remaining_len = _out.meta_block_length;\n if (pos + meta_block_remaining_len > output.buffer.length) {\n /* We need to grow the output buffer to fit the additional data. */\n var tmp = new Uint8Array( pos + meta_block_remaining_len );\n tmp.set( output.buffer );\n output.buffer = tmp;\n } \n input_end = _out.input_end;\n is_uncompressed = _out.is_uncompressed;\n \n if (_out.is_metadata) {\n JumpToByteBoundary(br);\n \n for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {\n br.readMoreInput();\n /* Read one byte and ignore it. */\n br.readBits(8);\n }\n \n continue;\n }\n \n if (meta_block_remaining_len === 0) {\n continue;\n }\n \n if (is_uncompressed) {\n br.bit_pos_ = (br.bit_pos_ + 7) & ~7;\n CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos,\n ringbuffer, ringbuffer_mask, br);\n pos += meta_block_remaining_len;\n continue;\n }\n \n for (i = 0; i < 3; ++i) {\n num_block_types[i] = DecodeVarLenUint8(br) + 1;\n if (num_block_types[i] >= 2) {\n ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_type_rb_index[i] = 1;\n }\n }\n \n br.readMoreInput();\n \n distance_postfix_bits = br.readBits(2);\n num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);\n distance_postfix_mask = (1 << distance_postfix_bits) - 1;\n num_distance_codes = (num_direct_distance_codes + (48 << distance_postfix_bits));\n context_modes = new Uint8Array(num_block_types[0]);\n\n for (i = 0; i < num_block_types[0]; ++i) {\n br.readMoreInput();\n context_modes[i] = (br.readBits(2) << 1);\n }\n \n var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);\n num_literal_htrees = _o1.num_htrees;\n context_map = _o1.context_map;\n \n var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);\n num_dist_htrees = _o2.num_htrees;\n dist_context_map = _o2.context_map;\n \n hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);\n hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);\n hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].decode(br);\n }\n\n context_map_slice = 0;\n dist_context_map_slice = 0;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n htree_command = hgroup[1].htrees[0];\n\n while (meta_block_remaining_len > 0) {\n var cmd_code;\n var range_idx;\n var insert_code;\n var copy_code;\n var insert_length;\n var copy_length;\n var distance_code;\n var distance;\n var context;\n var j;\n var copy_dst;\n\n br.readMoreInput();\n \n if (block_length[1] === 0) {\n DecodeBlockType(num_block_types[1],\n block_type_trees, 1, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);\n htree_command = hgroup[1].htrees[block_type[1]];\n }\n --block_length[1];\n cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);\n range_idx = cmd_code >> 6;\n if (range_idx >= 2) {\n range_idx -= 2;\n distance_code = -1;\n } else {\n distance_code = 0;\n }\n insert_code = Prefix.kInsertRangeLut[range_idx] + ((cmd_code >> 3) & 7);\n copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);\n insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset +\n br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);\n copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset +\n br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);\n prev_byte1 = ringbuffer[pos-1 & ringbuffer_mask];\n prev_byte2 = ringbuffer[pos-2 & ringbuffer_mask];\n for (j = 0; j < insert_length; ++j) {\n br.readMoreInput();\n\n if (block_length[0] === 0) {\n DecodeBlockType(num_block_types[0],\n block_type_trees, 0, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[0] = ReadBlockLength(block_len_trees, 0, br);\n context_offset = block_type[0] << kLiteralContextBits;\n context_map_slice = context_offset;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n }\n context = (Context.lookup[context_lookup_offset1 + prev_byte1] |\n Context.lookup[context_lookup_offset2 + prev_byte2]);\n literal_htree_index = context_map[context_map_slice + context];\n --block_length[0];\n prev_byte2 = prev_byte1;\n prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);\n ringbuffer[pos & ringbuffer_mask] = prev_byte1;\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n }\n meta_block_remaining_len -= insert_length;\n if (meta_block_remaining_len <= 0) break;\n\n if (distance_code < 0) {\n var context;\n \n br.readMoreInput();\n if (block_length[2] === 0) {\n DecodeBlockType(num_block_types[2],\n block_type_trees, 2, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);\n dist_context_offset = block_type[2] << kDistanceContextBits;\n dist_context_map_slice = dist_context_offset;\n }\n --block_length[2];\n context = (copy_length > 4 ? 3 : copy_length - 2) & 0xff;\n dist_htree_index = dist_context_map[dist_context_map_slice + context];\n distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);\n if (distance_code >= num_direct_distance_codes) {\n var nbits;\n var postfix;\n var offset;\n distance_code -= num_direct_distance_codes;\n postfix = distance_code & distance_postfix_mask;\n distance_code >>= distance_postfix_bits;\n nbits = (distance_code >> 1) + 1;\n offset = ((2 + (distance_code & 1)) << nbits) - 4;\n distance_code = num_direct_distance_codes +\n ((offset + br.readBits(nbits)) <<\n distance_postfix_bits) + postfix;\n }\n }\n\n /* Convert the distance code to the actual distance by possibly looking */\n /* up past distnaces from the ringbuffer. */\n distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);\n if (distance < 0) {\n throw new Error('[BrotliDecompress] invalid distance');\n }\n\n if (pos < max_backward_distance &&\n max_distance !== max_backward_distance) {\n max_distance = pos;\n } else {\n max_distance = max_backward_distance;\n }\n\n copy_dst = pos & ringbuffer_mask;\n\n if (distance > max_distance) {\n if (copy_length >= BrotliDictionary.minDictionaryWordLength &&\n copy_length <= BrotliDictionary.maxDictionaryWordLength) {\n var offset = BrotliDictionary.offsetsByLength[copy_length];\n var word_id = distance - max_distance - 1;\n var shift = BrotliDictionary.sizeBitsByLength[copy_length];\n var mask = (1 << shift) - 1;\n var word_idx = word_id & mask;\n var transform_idx = word_id >> shift;\n offset += word_idx * copy_length;\n if (transform_idx < Transform.kNumTransforms) {\n var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);\n copy_dst += len;\n pos += len;\n meta_block_remaining_len -= len;\n if (copy_dst >= ringbuffer_end) {\n output.write(ringbuffer, ringbuffer_size);\n \n for (var _x = 0; _x < (copy_dst - ringbuffer_end); _x++)\n ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n if (distance_code > 0) {\n dist_rb[dist_rb_idx & 3] = distance;\n ++dist_rb_idx;\n }\n\n if (copy_length > meta_block_remaining_len) {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n\n for (j = 0; j < copy_length; ++j) {\n ringbuffer[pos & ringbuffer_mask] = ringbuffer[(pos - distance) & ringbuffer_mask];\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n --meta_block_remaining_len;\n }\n }\n\n /* When we get here, we must have inserted at least one literal and */\n /* made a copy of at least length two, therefore accessing the last 2 */\n /* bytes is valid. */\n prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask];\n prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask];\n }\n\n /* Protect pos from overflow, wrap it around at every GB of input data */\n pos &= 0x3fffffff;\n }\n\n output.write(ringbuffer, pos & ringbuffer_mask);\n}\n\nexports.BrotliDecompress = BrotliDecompress;\n\nBrotliDictionary.init();\n","module.exports = require('./dec/decode').BrotliDecompressBuffer;\n","import {DecodeStream as $6uUbQ$DecodeStream, Struct as $6uUbQ$Struct, String as $6uUbQ$String, uint32 as $6uUbQ$uint32, Pointer as $6uUbQ$Pointer, uint16 as $6uUbQ$uint16, Array as $6uUbQ$Array, VoidPointer as $6uUbQ$VoidPointer, int16 as $6uUbQ$int16, uint24 as $6uUbQ$uint24, uint8 as $6uUbQ$uint8, VersionedStruct as $6uUbQ$VersionedStruct, LazyArray as $6uUbQ$LazyArray, Reserved as $6uUbQ$Reserved, int32 as $6uUbQ$int32, Bitfield as $6uUbQ$Bitfield, fixed32 as $6uUbQ$fixed32, Buffer as $6uUbQ$Buffer, Number as $6uUbQ$Number, resolveLength as $6uUbQ$resolveLength, fixed16 as $6uUbQ$fixed16, PropertyDescriptor as $6uUbQ$PropertyDescriptor, Fixed as $6uUbQ$Fixed, int8 as $6uUbQ$int8, Optional as $6uUbQ$Optional, EncodeStream as $6uUbQ$EncodeStream} from \"restructure\";\nimport {_ as $6uUbQ$_} from \"@swc/helpers/_/_define_property\";\nimport {_ as $6uUbQ$_1} from \"@swc/helpers/_/_ts_decorate\";\nimport $6uUbQ$fastdeepequal from \"fast-deep-equal\";\nimport {getCombiningClass as $6uUbQ$getCombiningClass, getScript as $6uUbQ$getScript, isDigit as $6uUbQ$isDigit, getCategory as $6uUbQ$getCategory, isMark as $6uUbQ$isMark} from \"unicode-properties\";\nimport $6uUbQ$unicodetrie from \"unicode-trie\";\nimport $6uUbQ$dfa from \"dfa\";\nimport $6uUbQ$clone from \"clone\";\nimport $6uUbQ$tinyinflate from \"tiny-inflate\";\nimport $6uUbQ$brotlidecompressjs from \"brotli/decompress.js\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nvar $d636bc798e7178db$exports = {};\n\n$parcel$export($d636bc798e7178db$exports, \"logErrors\", () => $d636bc798e7178db$export$bd5c5d8b8dcafd78);\n$parcel$export($d636bc798e7178db$exports, \"registerFormat\", () => $d636bc798e7178db$export$36b2f24e97d43be);\n$parcel$export($d636bc798e7178db$exports, \"create\", () => $d636bc798e7178db$export$185802fd694ee1f5);\n$parcel$export($d636bc798e7178db$exports, \"defaultLanguage\", () => $d636bc798e7178db$export$42940898df819940);\n$parcel$export($d636bc798e7178db$exports, \"setDefaultLanguage\", () => $d636bc798e7178db$export$5157e7780d44cc36);\n\nlet $d636bc798e7178db$export$bd5c5d8b8dcafd78 = false;\nlet $d636bc798e7178db$var$formats = [];\nfunction $d636bc798e7178db$export$36b2f24e97d43be(format) {\n $d636bc798e7178db$var$formats.push(format);\n}\nfunction $d636bc798e7178db$export$185802fd694ee1f5(buffer, postscriptName) {\n for(let i = 0; i < $d636bc798e7178db$var$formats.length; i++){\n let format = $d636bc798e7178db$var$formats[i];\n if (format.probe(buffer)) {\n let font = new format(new (0, $6uUbQ$DecodeStream)(buffer));\n if (postscriptName) return font.getFont(postscriptName);\n return font;\n }\n }\n throw new Error('Unknown font format');\n}\nlet $d636bc798e7178db$export$42940898df819940 = 'en';\nfunction $d636bc798e7178db$export$5157e7780d44cc36(lang = 'en') {\n $d636bc798e7178db$export$42940898df819940 = lang;\n}\n\n\n\n\n\n/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */ function $e71565f2ce09cb6b$export$69a3209f1a06c04d(target, key, descriptor) {\n if (descriptor.get) {\n let get = descriptor.get;\n descriptor.get = function() {\n let value = get.call(this);\n Object.defineProperty(this, key, {\n value: value\n });\n return value;\n };\n } else if (typeof descriptor.value === 'function') {\n let fn = descriptor.value;\n return {\n get () {\n let cache = new Map;\n function memoized(...args) {\n let key = args.length > 0 ? args[0] : 'value';\n if (cache.has(key)) return cache.get(key);\n let result = fn.apply(this, args);\n cache.set(key, result);\n return result;\n }\n Object.defineProperty(this, key, {\n value: memoized\n });\n return memoized;\n }\n };\n }\n}\n\n\n\n\n\nlet $26a62205ad06574e$var$SubHeader = new $6uUbQ$Struct({\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n idDelta: $6uUbQ$int16,\n idRangeOffset: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$CmapGroup = new $6uUbQ$Struct({\n startCharCode: $6uUbQ$uint32,\n endCharCode: $6uUbQ$uint32,\n glyphID: $6uUbQ$uint32\n});\nlet $26a62205ad06574e$var$UnicodeValueRange = new $6uUbQ$Struct({\n startUnicodeValue: $6uUbQ$uint24,\n additionalCount: $6uUbQ$uint8\n});\nlet $26a62205ad06574e$var$UVSMapping = new $6uUbQ$Struct({\n unicodeValue: $6uUbQ$uint24,\n glyphID: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$DefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UnicodeValueRange, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$NonDefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UVSMapping, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$VarSelectorRecord = new $6uUbQ$Struct({\n varSelector: $6uUbQ$uint24,\n defaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$DefaultUVS, {\n type: 'parent'\n }),\n nonDefaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$NonDefaultUVS, {\n type: 'parent'\n })\n});\nlet $26a62205ad06574e$var$CmapSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n codeMap: new $6uUbQ$LazyArray($6uUbQ$uint8, 256)\n },\n 2: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n subHeaderKeys: new $6uUbQ$Array($6uUbQ$uint16, 256),\n subHeaderCount: (t)=>Math.max.apply(Math, t.subHeaderKeys),\n subHeaders: new $6uUbQ$LazyArray($26a62205ad06574e$var$SubHeader, 'subHeaderCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, 'subHeaderCount')\n },\n 4: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n segCountX2: $6uUbQ$uint16,\n segCount: (t)=>t.segCountX2 >> 1,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n endCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n reservedPad: new $6uUbQ$Reserved($6uUbQ$uint16),\n startCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n idDelta: new $6uUbQ$LazyArray($6uUbQ$int16, 'segCount'),\n idRangeOffset: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, (t)=>(t.length - t._currentOffset) / 2)\n },\n 6: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'entryCount')\n },\n 8: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint16,\n is32: new $6uUbQ$LazyArray($6uUbQ$uint8, 8192),\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 10: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n firstCode: $6uUbQ$uint32,\n entryCount: $6uUbQ$uint32,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'numChars')\n },\n 12: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 13: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 14: {\n length: $6uUbQ$uint32,\n numRecords: $6uUbQ$uint32,\n varSelectors: new $6uUbQ$LazyArray($26a62205ad06574e$var$VarSelectorRecord, 'numRecords')\n }\n});\nlet $26a62205ad06574e$var$CmapEntry = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n table: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$CmapSubtable, {\n type: 'parent',\n lazy: true\n })\n});\nvar // character to glyph mapping\n$26a62205ad06574e$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numSubtables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($26a62205ad06574e$var$CmapEntry, 'numSubtables')\n});\n\n\n\nvar // font header\n$f2612a29f92ac062$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n revision: $6uUbQ$int32,\n checkSumAdjustment: $6uUbQ$uint32,\n magicNumber: $6uUbQ$uint32,\n flags: $6uUbQ$uint16,\n unitsPerEm: $6uUbQ$uint16,\n created: new $6uUbQ$Array($6uUbQ$int32, 2),\n modified: new $6uUbQ$Array($6uUbQ$int32, 2),\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n macStyle: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'bold',\n 'italic',\n 'underline',\n 'outline',\n 'shadow',\n 'condensed',\n 'extended'\n ]),\n lowestRecPPEM: $6uUbQ$uint16,\n fontDirectionHint: $6uUbQ$int16,\n indexToLocFormat: $6uUbQ$int16,\n glyphDataFormat: $6uUbQ$int16 // 0 for current format\n});\n\n\n\nvar // horizontal header\n$2c179dd593583073$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceWidthMax: $6uUbQ$uint16,\n minLeftSideBearing: $6uUbQ$int16,\n minRightSideBearing: $6uUbQ$int16,\n xMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance widths in 'hmtx' table\n});\n\n\n\nlet $bdc9060542264b85$var$HmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16\n});\nvar $bdc9060542264b85$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($bdc9060542264b85$var$HmtxEntry, (t)=>t.parent.hhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics)\n});\n\n\n\nvar // maxiumum profile\n$dbf51cb3d3fe409d$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n numGlyphs: $6uUbQ$uint16,\n maxPoints: $6uUbQ$uint16,\n maxContours: $6uUbQ$uint16,\n maxComponentPoints: $6uUbQ$uint16,\n maxComponentContours: $6uUbQ$uint16,\n maxZones: $6uUbQ$uint16,\n maxTwilightPoints: $6uUbQ$uint16,\n maxStorage: $6uUbQ$uint16,\n maxFunctionDefs: $6uUbQ$uint16,\n maxInstructionDefs: $6uUbQ$uint16,\n maxStackElements: $6uUbQ$uint16,\n maxSizeOfInstructions: $6uUbQ$uint16,\n maxComponentElements: $6uUbQ$uint16,\n maxComponentDepth: $6uUbQ$uint16 // Maximum levels of recursion; 1 for simple components\n});\n\n\n\n/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */ function $e449ad78d50845fe$export$badc544e0651b6b1(platformID, encodingID, languageID = 0) {\n if (platformID === 1 && $e449ad78d50845fe$export$479e671907f486d1[languageID]) return $e449ad78d50845fe$export$479e671907f486d1[languageID];\n return $e449ad78d50845fe$export$6fef87b7618bdf0b[platformID][encodingID];\n}\nconst $e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS = new Set([\n 'x-mac-roman',\n 'x-mac-cyrillic',\n 'iso-8859-6',\n 'iso-8859-8'\n]);\nconst $e449ad78d50845fe$var$MAC_ENCODINGS = {\n 'x-mac-croatian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\u0160\\u2122\\xb4\\xa8\\u2260\\u017D\\xd8\\u221E\\xb1\\u2264\\u2265\\u2206\\xb5\\u2202\\u2211\\u220F\\u0161\\u222B\\xaa\\xba\\u03A9\\u017E\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u0106\\xab\\u010C\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u0110\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\uF8FF\\xa9\\u2044\\u20AC\\u2039\\u203A\\xc6\\xbb\\u2013\\xb7\\u201A\\u201E\\u2030\\xc2\\u0107\\xc1\\u010D\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u0111\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u03C0\\xcb\\u02DA\\xb8\\xca\\xe6\\u02C7\",\n 'x-mac-gaelic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u1E02\\xb1\\u2264\\u2265\\u1E03\\u010A\\u010B\\u1E0A\\u1E0B\\u1E1E\\u1E1F\\u0120\\u0121\\u1E40\\xe6\\xf8\\u1E41\\u1E56\\u1E57\\u027C\\u0192\\u017F\\u1E60\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1E61\\u1E9B\\xff\\u0178\\u1E6A\\u20AC\\u2039\\u203A\\u0176\\u0177\\u1E6B\\xb7\\u1EF2\\u1EF3\\u204A\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u2663\\xd2\\xda\\xdb\\xd9\\u0131\\xdd\\xfd\\u0174\\u0175\\u1E84\\u1E85\\u1E80\\u1E81\\u1E82\\u1E83\",\n 'x-mac-greek': \"\\xc4\\xb9\\xb2\\xc9\\xb3\\xd6\\xdc\\u0385\\xe0\\xe2\\xe4\\u0384\\xa8\\xe7\\xe9\\xe8\\xea\\xeb\\xa3\\u2122\\xee\\xef\\u2022\\xbd\\u2030\\xf4\\xf6\\xa6\\u20AC\\xf9\\xfb\\xfc\\u2020\\u0393\\u0394\\u0398\\u039B\\u039E\\u03A0\\xdf\\xae\\xa9\\u03A3\\u03AA\\xa7\\u2260\\xb0\\xb7\\u0391\\xb1\\u2264\\u2265\\xa5\\u0392\\u0395\\u0396\\u0397\\u0399\\u039A\\u039C\\u03A6\\u03AB\\u03A8\\u03A9\\u03AC\\u039D\\xac\\u039F\\u03A1\\u2248\\u03A4\\xab\\xbb\\u2026 \\u03A5\\u03A7\\u0386\\u0388\\u0153\\u2013\\u2015\\u201C\\u201D\\u2018\\u2019\\xf7\\u0389\\u038A\\u038C\\u038E\\u03AD\\u03AE\\u03AF\\u03CC\\u038F\\u03CD\\u03B1\\u03B2\\u03C8\\u03B4\\u03B5\\u03C6\\u03B3\\u03B7\\u03B9\\u03BE\\u03BA\\u03BB\\u03BC\\u03BD\\u03BF\\u03C0\\u03CE\\u03C1\\u03C3\\u03C4\\u03B8\\u03C9\\u03C2\\u03C7\\u03C5\\u03B6\\u03CA\\u03CB\\u0390\\u03B0\\xad\",\n 'x-mac-icelandic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\xdd\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\xd0\\xf0\\xde\\xfe\\xfd\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-inuit': \"\\u1403\\u1404\\u1405\\u1406\\u140A\\u140B\\u1431\\u1432\\u1433\\u1434\\u1438\\u1439\\u1449\\u144E\\u144F\\u1450\\u1451\\u1455\\u1456\\u1466\\u146D\\u146E\\u146F\\u1470\\u1472\\u1473\\u1483\\u148B\\u148C\\u148D\\u148E\\u1490\\u1491\\xb0\\u14A1\\u14A5\\u14A6\\u2022\\xb6\\u14A7\\xae\\xa9\\u2122\\u14A8\\u14AA\\u14AB\\u14BB\\u14C2\\u14C3\\u14C4\\u14C5\\u14C7\\u14C8\\u14D0\\u14EF\\u14F0\\u14F1\\u14F2\\u14F4\\u14F5\\u1505\\u14D5\\u14D6\\u14D7\\u14D8\\u14DA\\u14DB\\u14EA\\u1528\\u1529\\u152A\\u152B\\u152D\\u2026 \\u152E\\u153E\\u1555\\u1556\\u1557\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1558\\u1559\\u155A\\u155D\\u1546\\u1547\\u1548\\u1549\\u154B\\u154C\\u1550\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1596\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u157C\\u0141\\u0142\",\n 'x-mac-ce': \"\\xc4\\u0100\\u0101\\xc9\\u0104\\xd6\\xdc\\xe1\\u0105\\u010C\\xe4\\u010D\\u0106\\u0107\\xe9\\u0179\\u017A\\u010E\\xed\\u010F\\u0112\\u0113\\u0116\\xf3\\u0117\\xf4\\xf6\\xf5\\xfa\\u011A\\u011B\\xfc\\u2020\\xb0\\u0118\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\u0119\\xa8\\u2260\\u0123\\u012E\\u012F\\u012A\\u2264\\u2265\\u012B\\u0136\\u2202\\u2211\\u0142\\u013B\\u013C\\u013D\\u013E\\u0139\\u013A\\u0145\\u0146\\u0143\\xac\\u221A\\u0144\\u0147\\u2206\\xab\\xbb\\u2026 \\u0148\\u0150\\xd5\\u0151\\u014C\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\u014D\\u0154\\u0155\\u0158\\u2039\\u203A\\u0159\\u0156\\u0157\\u0160\\u201A\\u201E\\u0161\\u015A\\u015B\\xc1\\u0164\\u0165\\xcd\\u017D\\u017E\\u016A\\xd3\\xd4\\u016B\\u016E\\xda\\u016F\\u0170\\u0171\\u0172\\u0173\\xdd\\xfd\\u0137\\u017B\\u0141\\u017C\\u0122\\u02C7\",\n 'x-mac-romanian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\u0102\\u0218\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\u0103\\u0219\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\u2039\\u203A\\u021A\\u021B\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-turkish': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u011E\\u011F\\u0130\\u0131\\u015E\\u015F\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\uF8A0\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\"\n};\nconst $e449ad78d50845fe$var$encodingCache = new Map();\nfunction $e449ad78d50845fe$export$1dceb3c14ed68bee(encoding) {\n let cached = $e449ad78d50845fe$var$encodingCache.get(encoding);\n if (cached) return cached;\n // These encodings aren't supported by TextDecoder.\n let mapping = $e449ad78d50845fe$var$MAC_ENCODINGS[encoding];\n if (mapping) {\n let res = new Map();\n for(let i = 0; i < mapping.length; i++)res.set(mapping.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n // Only single byte encodings can be mapped 1:1.\n if ($e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS.has(encoding)) {\n // TextEncoder only supports utf8, whereas TextDecoder supports legacy encodings.\n // Use this to create a mapping of code points.\n let decoder = new TextDecoder(encoding);\n let mapping = new Uint8Array(0x80);\n for(let i = 0; i < 0x80; i++)mapping[i] = 0x80 + i;\n let res = new Map();\n let s = decoder.decode(mapping);\n for(let i = 0; i < 0x80; i++)res.set(s.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n}\nconst $e449ad78d50845fe$export$6fef87b7618bdf0b = [\n // unicode\n [\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be'\n ],\n // macintosh\n // Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n // 0\tRoman 17\tMalayalam\n // 1\tJapanese\t 18\tSinhalese\n // 2\tTraditional Chinese\t 19\tBurmese\n // 3\tKorean\t 20\tKhmer\n // 4\tArabic\t 21\tThai\n // 5\tHebrew\t 22\tLaotian\n // 6\tGreek\t 23\tGeorgian\n // 7\tRussian\t 24\tArmenian\n // 8\tRSymbol\t 25\tSimplified Chinese\n // 9\tDevanagari\t 26\tTibetan\n // 10\tGurmukhi\t 27\tMongolian\n // 11\tGujarati\t 28\tGeez\n // 12\tOriya\t 29\tSlavic\n // 13\tBengali\t 30\tVietnamese\n // 14\tTamil\t 31\tSindhi\n // 15\tTelugu\t 32\t(Uninterpreted)\n // 16\tKannada\n [\n 'x-mac-roman',\n 'shift-jis',\n 'big5',\n 'euc-kr',\n 'iso-8859-6',\n 'iso-8859-8',\n 'x-mac-greek',\n 'x-mac-cyrillic',\n 'x-mac-symbol',\n 'x-mac-devanagari',\n 'x-mac-gurmukhi',\n 'x-mac-gujarati',\n 'Oriya',\n 'Bengali',\n 'Tamil',\n 'Telugu',\n 'Kannada',\n 'Malayalam',\n 'Sinhalese',\n 'Burmese',\n 'Khmer',\n 'iso-8859-11',\n 'Laotian',\n 'Georgian',\n 'Armenian',\n 'gbk',\n 'Tibetan',\n 'Mongolian',\n 'Geez',\n 'x-mac-ce',\n 'Vietnamese',\n 'Sindhi'\n ],\n // ISO (deprecated)\n [\n 'ascii',\n null,\n 'iso-8859-1'\n ],\n // windows\n // Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n [\n 'symbol',\n 'utf-16be',\n 'shift-jis',\n 'gb18030',\n 'big5',\n 'euc-kr',\n 'johab',\n null,\n null,\n null,\n 'utf-16be'\n ]\n];\nconst $e449ad78d50845fe$export$479e671907f486d1 = {\n 15: 'x-mac-icelandic',\n 17: 'x-mac-turkish',\n 18: 'x-mac-croatian',\n 24: 'x-mac-ce',\n 25: 'x-mac-ce',\n 26: 'x-mac-ce',\n 27: 'x-mac-ce',\n 28: 'x-mac-ce',\n 30: 'x-mac-icelandic',\n 37: 'x-mac-romanian',\n 38: 'x-mac-ce',\n 39: 'x-mac-ce',\n 40: 'x-mac-ce',\n 143: 'x-mac-inuit',\n 146: 'x-mac-gaelic'\n};\nconst $e449ad78d50845fe$export$2092376fd002e13 = [\n // unicode\n [],\n {\n 0: 'en',\n 30: 'fo',\n 60: 'ks',\n 90: 'rw',\n 1: 'fr',\n 31: 'fa',\n 61: 'ku',\n 91: 'rn',\n 2: 'de',\n 32: 'ru',\n 62: 'sd',\n 92: 'ny',\n 3: 'it',\n 33: 'zh',\n 63: 'bo',\n 93: 'mg',\n 4: 'nl',\n 34: 'nl-BE',\n 64: 'ne',\n 94: 'eo',\n 5: 'sv',\n 35: 'ga',\n 65: 'sa',\n 128: 'cy',\n 6: 'es',\n 36: 'sq',\n 66: 'mr',\n 129: 'eu',\n 7: 'da',\n 37: 'ro',\n 67: 'bn',\n 130: 'ca',\n 8: 'pt',\n 38: 'cz',\n 68: 'as',\n 131: 'la',\n 9: 'no',\n 39: 'sk',\n 69: 'gu',\n 132: 'qu',\n 10: 'he',\n 40: 'si',\n 70: 'pa',\n 133: 'gn',\n 11: 'ja',\n 41: 'yi',\n 71: 'or',\n 134: 'ay',\n 12: 'ar',\n 42: 'sr',\n 72: 'ml',\n 135: 'tt',\n 13: 'fi',\n 43: 'mk',\n 73: 'kn',\n 136: 'ug',\n 14: 'el',\n 44: 'bg',\n 74: 'ta',\n 137: 'dz',\n 15: 'is',\n 45: 'uk',\n 75: 'te',\n 138: 'jv',\n 16: 'mt',\n 46: 'be',\n 76: 'si',\n 139: 'su',\n 17: 'tr',\n 47: 'uz',\n 77: 'my',\n 140: 'gl',\n 18: 'hr',\n 48: 'kk',\n 78: 'km',\n 141: 'af',\n 19: 'zh-Hant',\n 49: 'az-Cyrl',\n 79: 'lo',\n 142: 'br',\n 20: 'ur',\n 50: 'az-Arab',\n 80: 'vi',\n 143: 'iu',\n 21: 'hi',\n 51: 'hy',\n 81: 'id',\n 144: 'gd',\n 22: 'th',\n 52: 'ka',\n 82: 'tl',\n 145: 'gv',\n 23: 'ko',\n 53: 'mo',\n 83: 'ms',\n 146: 'ga',\n 24: 'lt',\n 54: 'ky',\n 84: 'ms-Arab',\n 147: 'to',\n 25: 'pl',\n 55: 'tg',\n 85: 'am',\n 148: 'el-polyton',\n 26: 'hu',\n 56: 'tk',\n 86: 'ti',\n 149: 'kl',\n 27: 'es',\n 57: 'mn-CN',\n 87: 'om',\n 150: 'az',\n 28: 'lv',\n 58: 'mn',\n 88: 'so',\n 151: 'nn',\n 29: 'se',\n 59: 'ps',\n 89: 'sw'\n },\n // ISO (deprecated)\n [],\n {\n 0x0436: 'af',\n 0x4009: 'en-IN',\n 0x0487: 'rw',\n 0x0432: 'tn',\n 0x041C: 'sq',\n 0x1809: 'en-IE',\n 0x0441: 'sw',\n 0x045B: 'si',\n 0x0484: 'gsw',\n 0x2009: 'en-JM',\n 0x0457: 'kok',\n 0x041B: 'sk',\n 0x045E: 'am',\n 0x4409: 'en-MY',\n 0x0412: 'ko',\n 0x0424: 'sl',\n 0x1401: 'ar-DZ',\n 0x1409: 'en-NZ',\n 0x0440: 'ky',\n 0x2C0A: 'es-AR',\n 0x3C01: 'ar-BH',\n 0x3409: 'en-PH',\n 0x0454: 'lo',\n 0x400A: 'es-BO',\n 0x0C01: 'ar',\n 0x4809: 'en-SG',\n 0x0426: 'lv',\n 0x340A: 'es-CL',\n 0x0801: 'ar-IQ',\n 0x1C09: 'en-ZA',\n 0x0427: 'lt',\n 0x240A: 'es-CO',\n 0x2C01: 'ar-JO',\n 0x2C09: 'en-TT',\n 0x082E: 'dsb',\n 0x140A: 'es-CR',\n 0x3401: 'ar-KW',\n 0x0809: 'en-GB',\n 0x046E: 'lb',\n 0x1C0A: 'es-DO',\n 0x3001: 'ar-LB',\n 0x0409: 'en',\n 0x042F: 'mk',\n 0x300A: 'es-EC',\n 0x1001: 'ar-LY',\n 0x3009: 'en-ZW',\n 0x083E: 'ms-BN',\n 0x440A: 'es-SV',\n 0x1801: 'ary',\n 0x0425: 'et',\n 0x043E: 'ms',\n 0x100A: 'es-GT',\n 0x2001: 'ar-OM',\n 0x0438: 'fo',\n 0x044C: 'ml',\n 0x480A: 'es-HN',\n 0x4001: 'ar-QA',\n 0x0464: 'fil',\n 0x043A: 'mt',\n 0x080A: 'es-MX',\n 0x0401: 'ar-SA',\n 0x040B: 'fi',\n 0x0481: 'mi',\n 0x4C0A: 'es-NI',\n 0x2801: 'ar-SY',\n 0x080C: 'fr-BE',\n 0x047A: 'arn',\n 0x180A: 'es-PA',\n 0x1C01: 'aeb',\n 0x0C0C: 'fr-CA',\n 0x044E: 'mr',\n 0x3C0A: 'es-PY',\n 0x3801: 'ar-AE',\n 0x040C: 'fr',\n 0x047C: 'moh',\n 0x280A: 'es-PE',\n 0x2401: 'ar-YE',\n 0x140C: 'fr-LU',\n 0x0450: 'mn',\n 0x500A: 'es-PR',\n 0x042B: 'hy',\n 0x180C: 'fr-MC',\n 0x0850: 'mn-CN',\n 0x0C0A: 'es',\n 0x044D: 'as',\n 0x100C: 'fr-CH',\n 0x0461: 'ne',\n 0x040A: 'es',\n 0x082C: 'az-Cyrl',\n 0x0462: 'fy',\n 0x0414: 'nb',\n 0x540A: 'es-US',\n 0x042C: 'az',\n 0x0456: 'gl',\n 0x0814: 'nn',\n 0x380A: 'es-UY',\n 0x046D: 'ba',\n 0x0437: 'ka',\n 0x0482: 'oc',\n 0x200A: 'es-VE',\n 0x042D: 'eu',\n 0x0C07: 'de-AT',\n 0x0448: 'or',\n 0x081D: 'sv-FI',\n 0x0423: 'be',\n 0x0407: 'de',\n 0x0463: 'ps',\n 0x041D: 'sv',\n 0x0845: 'bn',\n 0x1407: 'de-LI',\n 0x0415: 'pl',\n 0x045A: 'syr',\n 0x0445: 'bn-IN',\n 0x1007: 'de-LU',\n 0x0416: 'pt',\n 0x0428: 'tg',\n 0x201A: 'bs-Cyrl',\n 0x0807: 'de-CH',\n 0x0816: 'pt-PT',\n 0x085F: 'tzm',\n 0x141A: 'bs',\n 0x0408: 'el',\n 0x0446: 'pa',\n 0x0449: 'ta',\n 0x047E: 'br',\n 0x046F: 'kl',\n 0x046B: 'qu-BO',\n 0x0444: 'tt',\n 0x0402: 'bg',\n 0x0447: 'gu',\n 0x086B: 'qu-EC',\n 0x044A: 'te',\n 0x0403: 'ca',\n 0x0468: 'ha',\n 0x0C6B: 'qu',\n 0x041E: 'th',\n 0x0C04: 'zh-HK',\n 0x040D: 'he',\n 0x0418: 'ro',\n 0x0451: 'bo',\n 0x1404: 'zh-MO',\n 0x0439: 'hi',\n 0x0417: 'rm',\n 0x041F: 'tr',\n 0x0804: 'zh',\n 0x040E: 'hu',\n 0x0419: 'ru',\n 0x0442: 'tk',\n 0x1004: 'zh-SG',\n 0x040F: 'is',\n 0x243B: 'smn',\n 0x0480: 'ug',\n 0x0404: 'zh-TW',\n 0x0470: 'ig',\n 0x103B: 'smj-NO',\n 0x0422: 'uk',\n 0x0483: 'co',\n 0x0421: 'id',\n 0x143B: 'smj',\n 0x042E: 'hsb',\n 0x041A: 'hr',\n 0x045D: 'iu',\n 0x0C3B: 'se-FI',\n 0x0420: 'ur',\n 0x101A: 'hr-BA',\n 0x085D: 'iu-Latn',\n 0x043B: 'se',\n 0x0843: 'uz-Cyrl',\n 0x0405: 'cs',\n 0x083C: 'ga',\n 0x083B: 'se-SE',\n 0x0443: 'uz',\n 0x0406: 'da',\n 0x0434: 'xh',\n 0x203B: 'sms',\n 0x042A: 'vi',\n 0x048C: 'prs',\n 0x0435: 'zu',\n 0x183B: 'sma-NO',\n 0x0452: 'cy',\n 0x0465: 'dv',\n 0x0410: 'it',\n 0x1C3B: 'sms',\n 0x0488: 'wo',\n 0x0813: 'nl-BE',\n 0x0810: 'it-CH',\n 0x044F: 'sa',\n 0x0485: 'sah',\n 0x0413: 'nl',\n 0x0411: 'ja',\n 0x1C1A: 'sr-Cyrl-BA',\n 0x0478: 'ii',\n 0x0C09: 'en-AU',\n 0x044B: 'kn',\n 0x0C1A: 'sr',\n 0x046A: 'yo',\n 0x2809: 'en-BZ',\n 0x043F: 'kk',\n 0x181A: 'sr-Latn-BA',\n 0x1009: 'en-CA',\n 0x0453: 'km',\n 0x081A: 'sr-Latn',\n 0x2409: 'en-029',\n 0x0486: 'quc',\n 0x046C: 'nso'\n }\n];\n\n\nlet $2bcf221753ec8e32$var$NameRecord = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n languageID: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n string: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', (t)=>(0, $e449ad78d50845fe$export$badc544e0651b6b1)(t.platformID, t.encodingID, t.languageID)), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.parent.stringOffset,\n allowNull: false\n })\n});\nlet $2bcf221753ec8e32$var$LangTagRecord = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n tag: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', 'utf16be'), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.stringOffset\n })\n});\nvar $2bcf221753ec8e32$var$NameTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count')\n },\n 1: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count'),\n langTagCount: $6uUbQ$uint16,\n langTags: new $6uUbQ$Array($2bcf221753ec8e32$var$LangTagRecord, 'langTagCount')\n }\n});\nvar $2bcf221753ec8e32$export$2e2bcd8739ae039 = $2bcf221753ec8e32$var$NameTable;\nconst $2bcf221753ec8e32$var$NAMES = [\n 'copyright',\n 'fontFamily',\n 'fontSubfamily',\n 'uniqueSubfamily',\n 'fullName',\n 'version',\n 'postscriptName',\n 'trademark',\n 'manufacturer',\n 'designer',\n 'description',\n 'vendorURL',\n 'designerURL',\n 'license',\n 'licenseURL',\n null,\n 'preferredFamily',\n 'preferredSubfamily',\n 'compatibleFull',\n 'sampleText',\n 'postscriptCIDFontName',\n 'wwsFamilyName',\n 'wwsSubfamilyName'\n];\n$2bcf221753ec8e32$var$NameTable.process = function(stream) {\n var records = {};\n for (let record of this.records){\n // find out what language this is for\n let language = (0, $e449ad78d50845fe$export$2092376fd002e13)[record.platformID][record.languageID];\n if (language == null && this.langTags != null && record.languageID >= 0x8000) language = this.langTags[record.languageID - 0x8000].tag;\n if (language == null) language = record.platformID + '-' + record.languageID;\n // if the nameID is >= 256, it is a font feature record (AAT)\n let key = record.nameID >= 256 ? 'fontFeatures' : $2bcf221753ec8e32$var$NAMES[record.nameID] || record.nameID;\n if (records[key] == null) records[key] = {};\n let obj = records[key];\n if (record.nameID >= 256) obj = obj[record.nameID] || (obj[record.nameID] = {});\n if (typeof record.string === 'string' || typeof obj[language] !== 'string') obj[language] = record.string;\n }\n this.records = records;\n};\n$2bcf221753ec8e32$var$NameTable.preEncode = function() {\n if (Array.isArray(this.records)) return;\n this.version = 0;\n let records = [];\n for(let key in this.records){\n let val = this.records[key];\n if (key === 'fontFeatures') continue;\n records.push({\n platformID: 3,\n encodingID: 1,\n languageID: 0x409,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length * 2,\n string: val.en\n });\n if (key === 'postscriptName') records.push({\n platformID: 1,\n encodingID: 0,\n languageID: 0,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length,\n string: val.en\n });\n }\n this.records = records;\n this.count = records.length;\n this.stringOffset = $2bcf221753ec8e32$var$NameTable.size(this, null, false);\n};\n\n\n\nvar $84b272aa31b70606$var$OS2 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n xAvgCharWidth: $6uUbQ$int16,\n usWeightClass: $6uUbQ$uint16,\n usWidthClass: $6uUbQ$uint16,\n fsType: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n null,\n 'noEmbedding',\n 'viewOnly',\n 'editable',\n null,\n null,\n null,\n null,\n 'noSubsetting',\n 'bitmapOnly'\n ]),\n ySubscriptXSize: $6uUbQ$int16,\n ySubscriptYSize: $6uUbQ$int16,\n ySubscriptXOffset: $6uUbQ$int16,\n ySubscriptYOffset: $6uUbQ$int16,\n ySuperscriptXSize: $6uUbQ$int16,\n ySuperscriptYSize: $6uUbQ$int16,\n ySuperscriptXOffset: $6uUbQ$int16,\n ySuperscriptYOffset: $6uUbQ$int16,\n yStrikeoutSize: $6uUbQ$int16,\n yStrikeoutPosition: $6uUbQ$int16,\n sFamilyClass: $6uUbQ$int16,\n panose: new $6uUbQ$Array($6uUbQ$uint8, 10),\n ulCharRange: new $6uUbQ$Array($6uUbQ$uint32, 4),\n vendorID: new $6uUbQ$String(4),\n fsSelection: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'italic',\n 'underscore',\n 'negative',\n 'outlined',\n 'strikeout',\n 'bold',\n 'regular',\n 'useTypoMetrics',\n 'wws',\n 'oblique'\n ]),\n usFirstCharIndex: $6uUbQ$uint16,\n usLastCharIndex: $6uUbQ$uint16 // The maximum Unicode index in this font\n },\n // The Apple version of this table ends here, but the Microsoft one continues on...\n 0: {},\n 1: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2)\n },\n 2: {\n // these should be common with version 1 somehow\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16\n },\n 5: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16,\n usLowerOpticalPointSize: $6uUbQ$uint16,\n usUpperOpticalPointSize: $6uUbQ$uint16\n }\n});\nlet $84b272aa31b70606$var$versions = $84b272aa31b70606$var$OS2.versions;\n$84b272aa31b70606$var$versions[3] = $84b272aa31b70606$var$versions[4] = $84b272aa31b70606$var$versions[2];\nvar $84b272aa31b70606$export$2e2bcd8739ae039 = $84b272aa31b70606$var$OS2;\n\n\n\nvar // PostScript information\n$32d9e2eb9565d93c$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$fixed32, {\n header: {\n italicAngle: $6uUbQ$fixed32,\n underlinePosition: $6uUbQ$int16,\n underlineThickness: $6uUbQ$int16,\n isFixedPitch: $6uUbQ$uint32,\n minMemType42: $6uUbQ$uint32,\n maxMemType42: $6uUbQ$uint32,\n minMemType1: $6uUbQ$uint32,\n maxMemType1: $6uUbQ$uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n },\n 1: {},\n 2: {\n numberOfGlyphs: $6uUbQ$uint16,\n glyphNameIndex: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfGlyphs'),\n names: new $6uUbQ$Array(new $6uUbQ$String($6uUbQ$uint8))\n },\n 2.5: {\n numberOfGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint8, 'numberOfGlyphs')\n },\n 3: {},\n 4: {\n map: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.maxp.numGlyphs)\n }\n});\n\n\n\nvar // An array of predefined values accessible by instructions\n$5202bd9d9ad8eaac$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValues: new $6uUbQ$Array($6uUbQ$int16)\n});\n\n\n\nvar // A list of instructions that are executed once when a font is first used.\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\n$5c0f37ca5ffb1850$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n instructions: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nlet $2b2b260902b1c57e$var$loca = new $6uUbQ$VersionedStruct('head.indexToLocFormat', {\n 0: {\n offsets: new $6uUbQ$Array($6uUbQ$uint16)\n },\n 1: {\n offsets: new $6uUbQ$Array($6uUbQ$uint32)\n }\n});\n$2b2b260902b1c57e$var$loca.process = function() {\n if (this.version === 0 && !this._processed) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] <<= 1;\n this._processed = true;\n }\n};\n$2b2b260902b1c57e$var$loca.preEncode = function() {\n if (this.version === 0 && this._processed !== false) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] >>>= 1;\n this._processed = false;\n }\n};\nvar $2b2b260902b1c57e$export$2e2bcd8739ae039 = $2b2b260902b1c57e$var$loca;\n\n\n\nvar // Set of instructions executed whenever the point size or font transformation change\n$7afb878c7bea4f66$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValueProgram: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nvar // only used for encoding\n$6c92b6371bce8bd9$export$2e2bcd8739ae039 = new $6uUbQ$Array(new $6uUbQ$Buffer);\n\n\n\n\nclass $43e9821ef3717eec$export$2e2bcd8739ae039 {\n getCFFVersion(ctx) {\n while(ctx && !ctx.hdrSize)ctx = ctx.parent;\n return ctx ? ctx.version : -1;\n }\n decode(stream, parent) {\n let version = this.getCFFVersion(parent);\n let count = version >= 2 ? stream.readUInt32BE() : stream.readUInt16BE();\n if (count === 0) return [];\n let offSize = stream.readUInt8();\n let offsetType;\n if (offSize === 1) offsetType = $6uUbQ$uint8;\n else if (offSize === 2) offsetType = $6uUbQ$uint16;\n else if (offSize === 3) offsetType = $6uUbQ$uint24;\n else if (offSize === 4) offsetType = $6uUbQ$uint32;\n else throw new Error(`Bad offset size in CFFIndex: ${offSize} ${stream.pos}`);\n let ret = [];\n let startPos = stream.pos + (count + 1) * offSize - 1;\n let start = offsetType.decode(stream);\n for(let i = 0; i < count; i++){\n let end = offsetType.decode(stream);\n if (this.type != null) {\n let pos = stream.pos;\n stream.pos = startPos + start;\n parent.length = end - start;\n ret.push(this.type.decode(stream, parent));\n stream.pos = pos;\n } else ret.push({\n offset: startPos + start,\n length: end - start\n });\n start = end;\n }\n stream.pos = startPos + start;\n return ret;\n }\n size(arr, parent) {\n let size = 2;\n if (arr.length === 0) return size;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let offset = 1;\n for(let i = 0; i < arr.length; i++){\n let item = arr[i];\n offset += type.size(item, parent);\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n size += 1 + offsetType.size() * (arr.length + 1);\n size += offset - 1;\n return size;\n }\n encode(stream, arr, parent) {\n stream.writeUInt16BE(arr.length);\n if (arr.length === 0) return;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let sizes = [];\n let offset = 1;\n for (let item of arr){\n let s = type.size(item, parent);\n sizes.push(s);\n offset += s;\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n // write offset size\n stream.writeUInt8(offsetType.size());\n // write elements\n offset = 1;\n offsetType.encode(stream, offset);\n for (let size of sizes){\n offset += size;\n offsetType.encode(stream, offset);\n }\n for (let item of arr)type.encode(stream, item, parent);\n return;\n }\n constructor(type){\n this.type = type;\n }\n}\n\n\n\n\n\nconst $c2d28e92708f99da$var$FLOAT_EOF = 0xf;\nconst $c2d28e92708f99da$var$FLOAT_LOOKUP = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'E',\n 'E-',\n null,\n '-'\n];\nconst $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP = {\n '.': 10,\n 'E': 11,\n 'E-': 12,\n '-': 14\n};\nclass $c2d28e92708f99da$export$2e2bcd8739ae039 {\n static decode(stream, value) {\n if (32 <= value && value <= 246) return value - 139;\n if (247 <= value && value <= 250) return (value - 247) * 256 + stream.readUInt8() + 108;\n if (251 <= value && value <= 254) return -(value - 251) * 256 - stream.readUInt8() - 108;\n if (value === 28) return stream.readInt16BE();\n if (value === 29) return stream.readInt32BE();\n if (value === 30) {\n let str = '';\n while(true){\n let b = stream.readUInt8();\n let n1 = b >> 4;\n if (n1 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n1];\n let n2 = b & 15;\n if (n2 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n2];\n }\n return parseFloat(str);\n }\n return null;\n }\n static size(value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, set to 32768\n if (value.forceLarge) value = 32768;\n if ((value | 0) !== value) {\n let str = '' + value;\n return 1 + Math.ceil((str.length + 1) / 2);\n } else if (-107 <= value && value <= 107) return 1;\n else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) return 2;\n else if (-32768 <= value && value <= 32767) return 3;\n else return 5;\n }\n static encode(stream, value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, save the old value and set to 32768\n let val = Number(value);\n if (value.forceLarge) {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n } else if ((val | 0) !== val) {\n stream.writeUInt8(30);\n let str = '' + val;\n for(let i = 0; i < str.length; i += 2){\n let c1 = str[i];\n let n1 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c1] || +c1;\n if (i === str.length - 1) var n2 = $c2d28e92708f99da$var$FLOAT_EOF;\n else {\n let c2 = str[i + 1];\n var n2 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c2] || +c2;\n }\n stream.writeUInt8(n1 << 4 | n2 & 15);\n }\n if (n2 !== $c2d28e92708f99da$var$FLOAT_EOF) return stream.writeUInt8($c2d28e92708f99da$var$FLOAT_EOF << 4);\n } else if (-107 <= val && val <= 107) return stream.writeUInt8(val + 139);\n else if (108 <= val && val <= 1131) {\n val -= 108;\n stream.writeUInt8((val >> 8) + 247);\n return stream.writeUInt8(val & 0xff);\n } else if (-1131 <= val && val <= -108) {\n val = -val - 108;\n stream.writeUInt8((val >> 8) + 251);\n return stream.writeUInt8(val & 0xff);\n } else if (-32768 <= val && val <= 32767) {\n stream.writeUInt8(28);\n return stream.writeInt16BE(val);\n } else {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n }\n }\n}\n\n\nclass $61aa549f16d58b9b$export$2e2bcd8739ae039 {\n decodeOperands(type, stream, ret, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.decodeOperands(type[i], stream, ret, [\n op\n ]));\n else if (type.decode != null) return type.decode(stream, ret, operands);\n else switch(type){\n case 'number':\n case 'offset':\n case 'sid':\n return operands[0];\n case 'boolean':\n return !!operands[0];\n default:\n return operands;\n }\n }\n encodeOperands(type, stream, ctx, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.encodeOperands(type[i], stream, ctx, op)[0]);\n else if (type.encode != null) return type.encode(stream, operands, ctx);\n else if (typeof operands === 'number') return [\n operands\n ];\n else if (typeof operands === 'boolean') return [\n +operands\n ];\n else if (Array.isArray(operands)) return operands;\n else return [\n operands\n ];\n }\n decode(stream, parent) {\n let end = stream.pos + parent.length;\n let ret = {};\n let operands = [];\n // define hidden properties\n Object.defineProperties(ret, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: stream.pos\n }\n });\n // fill in defaults\n for(let key in this.fields){\n let field = this.fields[key];\n ret[field[1]] = field[3];\n }\n while(stream.pos < end){\n let b = stream.readUInt8();\n if (b < 28) {\n if (b === 12) b = b << 8 | stream.readUInt8();\n let field = this.fields[b];\n if (!field) throw new Error(`Unknown operator ${b}`);\n let val = this.decodeOperands(field[2], stream, ret, operands);\n if (val != null) {\n if (val instanceof (0, $6uUbQ$PropertyDescriptor)) Object.defineProperty(ret, field[1], val);\n else ret[field[1]] = val;\n }\n operands = [];\n } else operands.push((0, $c2d28e92708f99da$export$2e2bcd8739ae039).decode(stream, b));\n }\n return ret;\n }\n size(dict, parent, includePointers = true) {\n let ctx = {\n parent: parent,\n val: dict,\n pointerSize: 0,\n startOffset: parent.startOffset || 0\n };\n let len = 0;\n for(let k in this.fields){\n let field = this.fields[k];\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], null, ctx, val);\n for (let op of operands)len += (0, $c2d28e92708f99da$export$2e2bcd8739ae039).size(op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n len += key.length;\n }\n if (includePointers) len += ctx.pointerSize;\n return len;\n }\n encode(stream, dict, parent) {\n let ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: dict,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n for (let field of this.ops){\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], stream, ctx, val);\n for (let op of operands)(0, $c2d28e92708f99da$export$2e2bcd8739ae039).encode(stream, op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n for (let op of key)stream.writeUInt8(op);\n }\n let i = 0;\n while(i < ctx.pointers.length){\n let ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n return;\n }\n constructor(ops = []){\n this.ops = ops;\n this.fields = {};\n for (let field of ops){\n let key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n this.fields[key] = field;\n }\n }\n}\n\n\n\n\nclass $0e34a43d05bde82c$export$2e2bcd8739ae039 extends $6uUbQ$Pointer {\n decode(stream, parent, operands) {\n this.offsetType = {\n decode: ()=>operands[0]\n };\n return super.decode(stream, parent, operands);\n }\n encode(stream, value, ctx) {\n if (!stream) {\n // compute the size (so ctx.pointerSize is correct)\n this.offsetType = {\n size: ()=>0\n };\n this.size(value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(0)\n ];\n }\n let ptr = null;\n this.offsetType = {\n encode: (stream, val)=>ptr = val\n };\n super.encode(stream, value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(ptr)\n ];\n }\n constructor(type, options = {}){\n if (options.type == null) options.type = 'global';\n super(null, type, options);\n }\n}\nclass $0e34a43d05bde82c$var$Ptr {\n valueOf() {\n return this.val;\n }\n constructor(val){\n this.val = val;\n this.forceLarge = true;\n }\n}\n\n\n\n\n\nclass $6d59db2e29cc77b3$var$CFFBlendOp {\n static decode(stream, parent, operands) {\n let numBlends = operands.pop();\n // TODO: actually blend. For now just consume the deltas\n // since we don't use any of the values anyway.\n while(operands.length > numBlends)operands.pop();\n }\n}\nvar $6d59db2e29cc77b3$export$2e2bcd8739ae039 = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type default\n [\n 6,\n 'BlueValues',\n 'delta',\n null\n ],\n [\n 7,\n 'OtherBlues',\n 'delta',\n null\n ],\n [\n 8,\n 'FamilyBlues',\n 'delta',\n null\n ],\n [\n 9,\n 'FamilyOtherBlues',\n 'delta',\n null\n ],\n [\n [\n 12,\n 9\n ],\n 'BlueScale',\n 'number',\n 0.039625\n ],\n [\n [\n 12,\n 10\n ],\n 'BlueShift',\n 'number',\n 7\n ],\n [\n [\n 12,\n 11\n ],\n 'BlueFuzz',\n 'number',\n 1\n ],\n [\n 10,\n 'StdHW',\n 'number',\n null\n ],\n [\n 11,\n 'StdVW',\n 'number',\n null\n ],\n [\n [\n 12,\n 12\n ],\n 'StemSnapH',\n 'delta',\n null\n ],\n [\n [\n 12,\n 13\n ],\n 'StemSnapV',\n 'delta',\n null\n ],\n [\n [\n 12,\n 14\n ],\n 'ForceBold',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 17\n ],\n 'LanguageGroup',\n 'number',\n 0\n ],\n [\n [\n 12,\n 18\n ],\n 'ExpansionFactor',\n 'number',\n 0.06\n ],\n [\n [\n 12,\n 19\n ],\n 'initialRandomSeed',\n 'number',\n 0\n ],\n [\n 20,\n 'defaultWidthX',\n 'number',\n 0\n ],\n [\n 21,\n 'nominalWidthX',\n 'number',\n 0\n ],\n [\n 22,\n 'vsindex',\n 'number',\n 0\n ],\n [\n 23,\n 'blend',\n $6d59db2e29cc77b3$var$CFFBlendOp,\n null\n ],\n [\n 19,\n 'Subrs',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039), {\n type: 'local'\n }),\n null\n ]\n]);\n\n\n// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nvar $229224aec43783c5$export$2e2bcd8739ae039 = [\n \".notdef\",\n \"space\",\n \"exclam\",\n \"quotedbl\",\n \"numbersign\",\n \"dollar\",\n \"percent\",\n \"ampersand\",\n \"quoteright\",\n \"parenleft\",\n \"parenright\",\n \"asterisk\",\n \"plus\",\n \"comma\",\n \"hyphen\",\n \"period\",\n \"slash\",\n \"zero\",\n \"one\",\n \"two\",\n \"three\",\n \"four\",\n \"five\",\n \"six\",\n \"seven\",\n \"eight\",\n \"nine\",\n \"colon\",\n \"semicolon\",\n \"less\",\n \"equal\",\n \"greater\",\n \"question\",\n \"at\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n \"bracketleft\",\n \"backslash\",\n \"bracketright\",\n \"asciicircum\",\n \"underscore\",\n \"quoteleft\",\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"j\",\n \"k\",\n \"l\",\n \"m\",\n \"n\",\n \"o\",\n \"p\",\n \"q\",\n \"r\",\n \"s\",\n \"t\",\n \"u\",\n \"v\",\n \"w\",\n \"x\",\n \"y\",\n \"z\",\n \"braceleft\",\n \"bar\",\n \"braceright\",\n \"asciitilde\",\n \"exclamdown\",\n \"cent\",\n \"sterling\",\n \"fraction\",\n \"yen\",\n \"florin\",\n \"section\",\n \"currency\",\n \"quotesingle\",\n \"quotedblleft\",\n \"guillemotleft\",\n \"guilsinglleft\",\n \"guilsinglright\",\n \"fi\",\n \"fl\",\n \"endash\",\n \"dagger\",\n \"daggerdbl\",\n \"periodcentered\",\n \"paragraph\",\n \"bullet\",\n \"quotesinglbase\",\n \"quotedblbase\",\n \"quotedblright\",\n \"guillemotright\",\n \"ellipsis\",\n \"perthousand\",\n \"questiondown\",\n \"grave\",\n \"acute\",\n \"circumflex\",\n \"tilde\",\n \"macron\",\n \"breve\",\n \"dotaccent\",\n \"dieresis\",\n \"ring\",\n \"cedilla\",\n \"hungarumlaut\",\n \"ogonek\",\n \"caron\",\n \"emdash\",\n \"AE\",\n \"ordfeminine\",\n \"Lslash\",\n \"Oslash\",\n \"OE\",\n \"ordmasculine\",\n \"ae\",\n \"dotlessi\",\n \"lslash\",\n \"oslash\",\n \"oe\",\n \"germandbls\",\n \"onesuperior\",\n \"logicalnot\",\n \"mu\",\n \"trademark\",\n \"Eth\",\n \"onehalf\",\n \"plusminus\",\n \"Thorn\",\n \"onequarter\",\n \"divide\",\n \"brokenbar\",\n \"degree\",\n \"thorn\",\n \"threequarters\",\n \"twosuperior\",\n \"registered\",\n \"minus\",\n \"eth\",\n \"multiply\",\n \"threesuperior\",\n \"copyright\",\n \"Aacute\",\n \"Acircumflex\",\n \"Adieresis\",\n \"Agrave\",\n \"Aring\",\n \"Atilde\",\n \"Ccedilla\",\n \"Eacute\",\n \"Ecircumflex\",\n \"Edieresis\",\n \"Egrave\",\n \"Iacute\",\n \"Icircumflex\",\n \"Idieresis\",\n \"Igrave\",\n \"Ntilde\",\n \"Oacute\",\n \"Ocircumflex\",\n \"Odieresis\",\n \"Ograve\",\n \"Otilde\",\n \"Scaron\",\n \"Uacute\",\n \"Ucircumflex\",\n \"Udieresis\",\n \"Ugrave\",\n \"Yacute\",\n \"Ydieresis\",\n \"Zcaron\",\n \"aacute\",\n \"acircumflex\",\n \"adieresis\",\n \"agrave\",\n \"aring\",\n \"atilde\",\n \"ccedilla\",\n \"eacute\",\n \"ecircumflex\",\n \"edieresis\",\n \"egrave\",\n \"iacute\",\n \"icircumflex\",\n \"idieresis\",\n \"igrave\",\n \"ntilde\",\n \"oacute\",\n \"ocircumflex\",\n \"odieresis\",\n \"ograve\",\n \"otilde\",\n \"scaron\",\n \"uacute\",\n \"ucircumflex\",\n \"udieresis\",\n \"ugrave\",\n \"yacute\",\n \"ydieresis\",\n \"zcaron\",\n \"exclamsmall\",\n \"Hungarumlautsmall\",\n \"dollaroldstyle\",\n \"dollarsuperior\",\n \"ampersandsmall\",\n \"Acutesmall\",\n \"parenleftsuperior\",\n \"parenrightsuperior\",\n \"twodotenleader\",\n \"onedotenleader\",\n \"zerooldstyle\",\n \"oneoldstyle\",\n \"twooldstyle\",\n \"threeoldstyle\",\n \"fouroldstyle\",\n \"fiveoldstyle\",\n \"sixoldstyle\",\n \"sevenoldstyle\",\n \"eightoldstyle\",\n \"nineoldstyle\",\n \"commasuperior\",\n \"threequartersemdash\",\n \"periodsuperior\",\n \"questionsmall\",\n \"asuperior\",\n \"bsuperior\",\n \"centsuperior\",\n \"dsuperior\",\n \"esuperior\",\n \"isuperior\",\n \"lsuperior\",\n \"msuperior\",\n \"nsuperior\",\n \"osuperior\",\n \"rsuperior\",\n \"ssuperior\",\n \"tsuperior\",\n \"ff\",\n \"ffi\",\n \"ffl\",\n \"parenleftinferior\",\n \"parenrightinferior\",\n \"Circumflexsmall\",\n \"hyphensuperior\",\n \"Gravesmall\",\n \"Asmall\",\n \"Bsmall\",\n \"Csmall\",\n \"Dsmall\",\n \"Esmall\",\n \"Fsmall\",\n \"Gsmall\",\n \"Hsmall\",\n \"Ismall\",\n \"Jsmall\",\n \"Ksmall\",\n \"Lsmall\",\n \"Msmall\",\n \"Nsmall\",\n \"Osmall\",\n \"Psmall\",\n \"Qsmall\",\n \"Rsmall\",\n \"Ssmall\",\n \"Tsmall\",\n \"Usmall\",\n \"Vsmall\",\n \"Wsmall\",\n \"Xsmall\",\n \"Ysmall\",\n \"Zsmall\",\n \"colonmonetary\",\n \"onefitted\",\n \"rupiah\",\n \"Tildesmall\",\n \"exclamdownsmall\",\n \"centoldstyle\",\n \"Lslashsmall\",\n \"Scaronsmall\",\n \"Zcaronsmall\",\n \"Dieresissmall\",\n \"Brevesmall\",\n \"Caronsmall\",\n \"Dotaccentsmall\",\n \"Macronsmall\",\n \"figuredash\",\n \"hypheninferior\",\n \"Ogoneksmall\",\n \"Ringsmall\",\n \"Cedillasmall\",\n \"questiondownsmall\",\n \"oneeighth\",\n \"threeeighths\",\n \"fiveeighths\",\n \"seveneighths\",\n \"onethird\",\n \"twothirds\",\n \"zerosuperior\",\n \"foursuperior\",\n \"fivesuperior\",\n \"sixsuperior\",\n \"sevensuperior\",\n \"eightsuperior\",\n \"ninesuperior\",\n \"zeroinferior\",\n \"oneinferior\",\n \"twoinferior\",\n \"threeinferior\",\n \"fourinferior\",\n \"fiveinferior\",\n \"sixinferior\",\n \"seveninferior\",\n \"eightinferior\",\n \"nineinferior\",\n \"centinferior\",\n \"dollarinferior\",\n \"periodinferior\",\n \"commainferior\",\n \"Agravesmall\",\n \"Aacutesmall\",\n \"Acircumflexsmall\",\n \"Atildesmall\",\n \"Adieresissmall\",\n \"Aringsmall\",\n \"AEsmall\",\n \"Ccedillasmall\",\n \"Egravesmall\",\n \"Eacutesmall\",\n \"Ecircumflexsmall\",\n \"Edieresissmall\",\n \"Igravesmall\",\n \"Iacutesmall\",\n \"Icircumflexsmall\",\n \"Idieresissmall\",\n \"Ethsmall\",\n \"Ntildesmall\",\n \"Ogravesmall\",\n \"Oacutesmall\",\n \"Ocircumflexsmall\",\n \"Otildesmall\",\n \"Odieresissmall\",\n \"OEsmall\",\n \"Oslashsmall\",\n \"Ugravesmall\",\n \"Uacutesmall\",\n \"Ucircumflexsmall\",\n \"Udieresissmall\",\n \"Yacutesmall\",\n \"Thornsmall\",\n \"Ydieresissmall\",\n \"001.000\",\n \"001.001\",\n \"001.002\",\n \"001.003\",\n \"Black\",\n \"Bold\",\n \"Book\",\n \"Light\",\n \"Medium\",\n \"Regular\",\n \"Roman\",\n \"Semibold\"\n];\n\n\nlet $bc0433d9b7e41f5f$export$dee0027060fa13bd = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n '',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n '',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n '',\n 'questiondown',\n '',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n '',\n 'ring',\n 'cedilla',\n '',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'AE',\n '',\n 'ordfeminine',\n '',\n '',\n '',\n '',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n '',\n '',\n '',\n '',\n '',\n 'ae',\n '',\n '',\n '',\n 'dotlessi',\n '',\n '',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls'\n];\nlet $bc0433d9b7e41f5f$export$4f58f497e14a53c3 = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n '',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n '',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n '',\n '',\n 'isuperior',\n '',\n '',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n '',\n '',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n '',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n '',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n '',\n '',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n '',\n 'Dotaccentsmall',\n '',\n '',\n 'Macronsmall',\n '',\n '',\n 'figuredash',\n 'hypheninferior',\n '',\n '',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n '',\n '',\n '',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n '',\n '',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\n\n\nlet $ef658f5c9a1488b2$export$c33b50336c234f16 = [\n '.notdef',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n 'questiondown',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n 'AE',\n 'ordfeminine',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n 'ae',\n 'dotlessi',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n 'onesuperior',\n 'logicalnot',\n 'mu',\n 'trademark',\n 'Eth',\n 'onehalf',\n 'plusminus',\n 'Thorn',\n 'onequarter',\n 'divide',\n 'brokenbar',\n 'degree',\n 'thorn',\n 'threequarters',\n 'twosuperior',\n 'registered',\n 'minus',\n 'eth',\n 'multiply',\n 'threesuperior',\n 'copyright',\n 'Aacute',\n 'Acircumflex',\n 'Adieresis',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Ccedilla',\n 'Eacute',\n 'Ecircumflex',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Ntilde',\n 'Oacute',\n 'Ocircumflex',\n 'Odieresis',\n 'Ograve',\n 'Otilde',\n 'Scaron',\n 'Uacute',\n 'Ucircumflex',\n 'Udieresis',\n 'Ugrave',\n 'Yacute',\n 'Ydieresis',\n 'Zcaron',\n 'aacute',\n 'acircumflex',\n 'adieresis',\n 'agrave',\n 'aring',\n 'atilde',\n 'ccedilla',\n 'eacute',\n 'ecircumflex',\n 'edieresis',\n 'egrave',\n 'iacute',\n 'icircumflex',\n 'idieresis',\n 'igrave',\n 'ntilde',\n 'oacute',\n 'ocircumflex',\n 'odieresis',\n 'ograve',\n 'otilde',\n 'scaron',\n 'uacute',\n 'ucircumflex',\n 'udieresis',\n 'ugrave',\n 'yacute',\n 'ydieresis',\n 'zcaron'\n];\nlet $ef658f5c9a1488b2$export$3ed0f9e1fee8d489 = [\n '.notdef',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n 'Dotaccentsmall',\n 'Macronsmall',\n 'figuredash',\n 'hypheninferior',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\nlet $ef658f5c9a1488b2$export$dc28be11139d4120 = [\n '.notdef',\n 'space',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'hyphensuperior',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'centoldstyle',\n 'figuredash',\n 'hypheninferior',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior'\n];\n\n\n\n//########################\n// Scripts and Languages #\n//########################\nlet $7cbbe4e24ef3cb75$var$LangSysTable = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n reqFeatureIndex: $6uUbQ$uint16,\n featureCount: $6uUbQ$uint16,\n featureIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'featureCount')\n});\nlet $7cbbe4e24ef3cb75$var$LangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n langSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$var$Script = new $6uUbQ$Struct({\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable),\n count: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LangSysRecord, 'count')\n});\nlet $7cbbe4e24ef3cb75$var$ScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Script, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$3e15fc05ce864229 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ScriptRecord, $6uUbQ$uint16);\n//#######################\n// Features and Lookups #\n//#######################\nlet $7cbbe4e24ef3cb75$var$FeatureParams = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$6e91cf7616333d5 = new $6uUbQ$Struct({\n featureParams: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$FeatureParams),\n lookupCount: $6uUbQ$uint16,\n lookupListIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$FeatureRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n feature: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$6e91cf7616333d5, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$aa18130def4b6cb4 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$FeatureRecord, $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$LookupFlags = new $6uUbQ$Struct({\n markAttachmentType: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'rightToLeft',\n 'ignoreBaseGlyphs',\n 'ignoreLigatures',\n 'ignoreMarks',\n 'useMarkFilteringSet'\n ])\n});\nfunction $7cbbe4e24ef3cb75$export$df0008c6ff2da22a(SubTable) {\n let Lookup = new $6uUbQ$Struct({\n lookupType: $6uUbQ$uint16,\n flags: $7cbbe4e24ef3cb75$var$LookupFlags,\n subTableCount: $6uUbQ$uint16,\n subTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, SubTable), 'subTableCount'),\n markFilteringSet: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.flags.flags.useMarkFilteringSet)\n });\n return new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, Lookup), $6uUbQ$uint16);\n}\n//#################\n// Coverage Table #\n//#################\nlet $7cbbe4e24ef3cb75$var$RangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n startCoverageIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$17608c3f81a6111 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n glyphCount: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n rangeCount: $6uUbQ$uint16,\n rangeRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$RangeRecord, 'rangeCount')\n }\n});\n//#########################\n// Class Definition Table #\n//#########################\nlet $7cbbe4e24ef3cb75$var$ClassRangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n class: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$843d551fbbafef71 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n startGlyph: $6uUbQ$uint16,\n glyphCount: $6uUbQ$uint16,\n classValueArray: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n classRangeCount: $6uUbQ$uint16,\n classRangeRecord: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ClassRangeRecord, 'classRangeCount')\n }\n});\nlet $7cbbe4e24ef3cb75$export$8215d14a63d9fb10 = new $6uUbQ$Struct({\n a: $6uUbQ$uint16,\n b: $6uUbQ$uint16,\n deltaFormat: $6uUbQ$uint16\n});\n//#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\nlet $7cbbe4e24ef3cb75$var$LookupRecord = new $6uUbQ$Struct({\n sequenceIndex: $6uUbQ$uint16,\n lookupListIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$var$Rule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$RuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Rule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$ClassRule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n classes: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ClassSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$841858b892ce1f4c = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n ruleSetCount: $6uUbQ$uint16,\n ruleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$RuleSet), 'ruleSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n classDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n classSetCnt: $6uUbQ$uint16,\n classSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassSet), 'classSetCnt')\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n coverages: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'glyphCount'),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n//######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\nlet $7cbbe4e24ef3cb75$var$ChainRule = new $6uUbQ$Struct({\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrack: new $6uUbQ$Array($6uUbQ$uint16, 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.inputGlyphCount - 1),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookahead: new $6uUbQ$Array($6uUbQ$uint16, 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ChainRuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$5e6d09e6861162f6 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n chainCount: $6uUbQ$uint16,\n chainRuleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n backtrackClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n inputClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n lookaheadClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n chainCount: $6uUbQ$uint16,\n chainClassSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 3: {\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n inputCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'inputGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n\n\n\n/*******************\n * Variation Store *\n *******************/ let $1a47b0c45c1c22fe$var$F2DOT14 = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $1a47b0c45c1c22fe$var$RegionAxisCoordinates = new $6uUbQ$Struct({\n startCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n peakCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n endCoord: $1a47b0c45c1c22fe$var$F2DOT14\n});\nlet $1a47b0c45c1c22fe$var$VariationRegionList = new $6uUbQ$Struct({\n axisCount: $6uUbQ$uint16,\n regionCount: $6uUbQ$uint16,\n variationRegions: new $6uUbQ$Array(new $6uUbQ$Array($1a47b0c45c1c22fe$var$RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\nlet $1a47b0c45c1c22fe$var$DeltaSet = new $6uUbQ$Struct({\n shortDeltas: new $6uUbQ$Array($6uUbQ$int16, (t)=>t.parent.shortDeltaCount),\n regionDeltas: new $6uUbQ$Array($6uUbQ$int8, (t)=>t.parent.regionIndexCount - t.parent.shortDeltaCount),\n deltas: (t)=>t.shortDeltas.concat(t.regionDeltas)\n});\nlet $1a47b0c45c1c22fe$var$ItemVariationData = new $6uUbQ$Struct({\n itemCount: $6uUbQ$uint16,\n shortDeltaCount: $6uUbQ$uint16,\n regionIndexCount: $6uUbQ$uint16,\n regionIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'regionIndexCount'),\n deltaSets: new $6uUbQ$Array($1a47b0c45c1c22fe$var$DeltaSet, 'itemCount')\n});\nlet $1a47b0c45c1c22fe$export$fe1b122a2710f241 = new $6uUbQ$Struct({\n format: $6uUbQ$uint16,\n variationRegionList: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$VariationRegionList),\n variationDataCount: $6uUbQ$uint16,\n itemVariationData: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ItemVariationData), 'variationDataCount')\n});\n/**********************\n * Feature Variations *\n **********************/ let $1a47b0c45c1c22fe$var$ConditionTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n axisIndex: $6uUbQ$uint16,\n axisIndex: $6uUbQ$uint16,\n filterRangeMinValue: $1a47b0c45c1c22fe$var$F2DOT14,\n filterRangeMaxValue: $1a47b0c45c1c22fe$var$F2DOT14\n }\n});\nlet $1a47b0c45c1c22fe$var$ConditionSet = new $6uUbQ$Struct({\n conditionCount: $6uUbQ$uint16,\n conditionTable: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionTable), 'conditionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord = new $6uUbQ$Struct({\n featureIndex: $6uUbQ$uint16,\n alternateFeatureTable: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$6e91cf7616333d5), {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitution = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n substitutionCount: $6uUbQ$uint16,\n substitutions: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord, 'substitutionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureVariationRecord = new $6uUbQ$Struct({\n conditionSet: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionSet, {\n type: 'parent'\n }),\n featureTableSubstitution: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$FeatureTableSubstitution, {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$export$441b70b7971dd419 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n featureVariationRecordCount: $6uUbQ$uint32,\n featureVariationRecords: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureVariationRecord, 'featureVariationRecordCount')\n});\n\n\n// Checks if an operand is an index of a predefined value,\n// otherwise delegates to the provided type.\nclass $b84fd3dd9d8eddb2$var$PredefinedOp {\n decode(stream, parent, operands) {\n if (this.predefinedOps[operands[0]]) return this.predefinedOps[operands[0]];\n return this.type.decode(stream, parent, operands);\n }\n size(value, ctx) {\n return this.type.size(value, ctx);\n }\n encode(stream, value, ctx) {\n let index = this.predefinedOps.indexOf(value);\n if (index !== -1) return index;\n return this.type.encode(stream, value, ctx);\n }\n constructor(predefinedOps, type){\n this.predefinedOps = predefinedOps;\n this.type = type;\n }\n}\nclass $b84fd3dd9d8eddb2$var$CFFEncodingVersion extends $6uUbQ$Number {\n decode(stream) {\n return $6uUbQ$uint8.decode(stream) & 0x7f;\n }\n constructor(){\n super('UInt8');\n }\n}\nlet $b84fd3dd9d8eddb2$var$Range1 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$Range2 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$CFFCustomEncoding = new $6uUbQ$VersionedStruct(new $b84fd3dd9d8eddb2$var$CFFEncodingVersion(), {\n 0: {\n nCodes: $6uUbQ$uint8,\n codes: new $6uUbQ$Array($6uUbQ$uint8, 'nCodes')\n },\n 1: {\n nRanges: $6uUbQ$uint8,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$Range1, 'nRanges')\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFEncoding = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd),\n (0, $bc0433d9b7e41f5f$export$4f58f497e14a53c3)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomEncoding, {\n lazy: true\n}));\n// Decodes an array of ranges until the total\n// length is equal to the provided length.\nclass $b84fd3dd9d8eddb2$var$RangeArray extends $6uUbQ$Array {\n decode(stream, parent) {\n let length = (0, $6uUbQ$resolveLength)(this.length, stream, parent);\n let count = 0;\n let res = [];\n while(count < length){\n let range = this.type.decode(stream, parent);\n range.offset = count;\n count += range.nLeft + 1;\n res.push(range);\n }\n return res;\n }\n}\nlet $b84fd3dd9d8eddb2$var$CFFCustomCharset = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.CharStrings.length - 1)\n },\n 1: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range1, (t)=>t.parent.CharStrings.length - 1)\n },\n 2: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range2, (t)=>t.parent.CharStrings.length - 1)\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFCharset = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16),\n (0, $ef658f5c9a1488b2$export$3ed0f9e1fee8d489),\n (0, $ef658f5c9a1488b2$export$dc28be11139d4120)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomCharset, {\n lazy: true\n}));\nlet $b84fd3dd9d8eddb2$var$FDRange3 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n fd: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$FDRange4 = new $6uUbQ$Struct({\n first: $6uUbQ$uint32,\n fd: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$FDSelect = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n fds: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.CharStrings.length)\n },\n 3: {\n nRanges: $6uUbQ$uint16,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange3, 'nRanges'),\n sentinel: $6uUbQ$uint16\n },\n 4: {\n nRanges: $6uUbQ$uint32,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange4, 'nRanges'),\n sentinel: $6uUbQ$uint32\n }\n});\nlet $b84fd3dd9d8eddb2$var$ptr = new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)((0, $6d59db2e29cc77b3$export$2e2bcd8739ae039));\nclass $b84fd3dd9d8eddb2$var$CFFPrivateOp {\n decode(stream, parent, operands) {\n parent.length = operands[0];\n return $b84fd3dd9d8eddb2$var$ptr.decode(stream, parent, [\n operands[1]\n ]);\n }\n size(dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.size(dict, ctx)[0]\n ];\n }\n encode(stream, dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.encode(stream, dict, ctx)[0]\n ];\n }\n}\nlet $b84fd3dd9d8eddb2$var$FontDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n [\n 12,\n 30\n ],\n 'ROS',\n [\n 'sid',\n 'sid',\n 'number'\n ],\n null\n ],\n [\n 0,\n 'version',\n 'sid',\n null\n ],\n [\n 1,\n 'Notice',\n 'sid',\n null\n ],\n [\n [\n 12,\n 0\n ],\n 'Copyright',\n 'sid',\n null\n ],\n [\n 2,\n 'FullName',\n 'sid',\n null\n ],\n [\n 3,\n 'FamilyName',\n 'sid',\n null\n ],\n [\n 4,\n 'Weight',\n 'sid',\n null\n ],\n [\n [\n 12,\n 1\n ],\n 'isFixedPitch',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 2\n ],\n 'ItalicAngle',\n 'number',\n 0\n ],\n [\n [\n 12,\n 3\n ],\n 'UnderlinePosition',\n 'number',\n -100\n ],\n [\n [\n 12,\n 4\n ],\n 'UnderlineThickness',\n 'number',\n 50\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 6\n ],\n 'CharstringType',\n 'number',\n 2\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 13,\n 'UniqueID',\n 'number',\n null\n ],\n [\n 5,\n 'FontBBox',\n 'array',\n [\n 0,\n 0,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 8\n ],\n 'StrokeWidth',\n 'number',\n 0\n ],\n [\n 14,\n 'XUID',\n 'array',\n null\n ],\n [\n 15,\n 'charset',\n $b84fd3dd9d8eddb2$var$CFFCharset,\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16)\n ],\n [\n 16,\n 'Encoding',\n $b84fd3dd9d8eddb2$var$CFFEncoding,\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd)\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 20\n ],\n 'SyntheticBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 21\n ],\n 'PostScript',\n 'sid',\n null\n ],\n [\n [\n 12,\n 22\n ],\n 'BaseFontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 23\n ],\n 'BaseFontBlend',\n 'delta',\n null\n ],\n // CID font specific\n [\n [\n 12,\n 31\n ],\n 'CIDFontVersion',\n 'number',\n 0\n ],\n [\n [\n 12,\n 32\n ],\n 'CIDFontRevision',\n 'number',\n 0\n ],\n [\n [\n 12,\n 33\n ],\n 'CIDFontType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 34\n ],\n 'CIDCount',\n 'number',\n 8720\n ],\n [\n [\n 12,\n 35\n ],\n 'UIDBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$VariationStore = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n itemVariationStore: (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)\n});\nlet $b84fd3dd9d8eddb2$var$CFF2TopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n 24,\n 'vstore',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$VariationStore),\n null\n ],\n [\n 25,\n 'maxstack',\n 'number',\n 193\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTop = new $6uUbQ$VersionedStruct($6uUbQ$fixed16, {\n 1: {\n hdrSize: $6uUbQ$uint8,\n offSize: $6uUbQ$uint8,\n nameIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n topDictIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFTopDict),\n stringIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n },\n 2: {\n hdrSize: $6uUbQ$uint8,\n length: $6uUbQ$uint16,\n topDict: $b84fd3dd9d8eddb2$var$CFF2TopDict,\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n }\n});\nvar $b84fd3dd9d8eddb2$export$2e2bcd8739ae039 = $b84fd3dd9d8eddb2$var$CFFTop;\n\n\n\n\nclass $822ac0d589e4e237$var$CFFFont {\n static decode(stream) {\n return new $822ac0d589e4e237$var$CFFFont(stream);\n }\n decode() {\n let start = this.stream.pos;\n let top = (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).decode(this.stream);\n for(let key in top){\n let val = top[key];\n this[key] = val;\n }\n if (this.version < 2) {\n if (this.topDictIndex.length !== 1) throw new Error(\"Only a single font is allowed in CFF\");\n this.topDict = this.topDictIndex[0];\n }\n this.isCIDFont = this.topDict.ROS != null;\n return this;\n }\n string(sid) {\n if (this.version >= 2) return null;\n if (sid < (0, $229224aec43783c5$export$2e2bcd8739ae039).length) return (0, $229224aec43783c5$export$2e2bcd8739ae039)[sid];\n return this.stringIndex[sid - (0, $229224aec43783c5$export$2e2bcd8739ae039).length];\n }\n get postscriptName() {\n if (this.version < 2) return this.nameIndex[0];\n return null;\n }\n get fullName() {\n return this.string(this.topDict.FullName);\n }\n get familyName() {\n return this.string(this.topDict.FamilyName);\n }\n getCharString(glyph) {\n this.stream.pos = this.topDict.CharStrings[glyph].offset;\n return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n }\n getGlyphName(gid) {\n // CFF2 glyph names are in the post table.\n if (this.version >= 2) return null;\n // CID-keyed fonts don't have glyph names\n if (this.isCIDFont) return null;\n let { charset: charset } = this.topDict;\n if (Array.isArray(charset)) return charset[gid];\n if (gid === 0) return '.notdef';\n gid -= 1;\n switch(charset.version){\n case 0:\n return this.string(charset.glyphs[gid]);\n case 1:\n case 2:\n for(let i = 0; i < charset.ranges.length; i++){\n let range = charset.ranges[i];\n if (range.offset <= gid && gid <= range.offset + range.nLeft) return this.string(range.first + (gid - range.offset));\n }\n break;\n }\n return null;\n }\n fdForGlyph(gid) {\n if (!this.topDict.FDSelect) return null;\n switch(this.topDict.FDSelect.version){\n case 0:\n return this.topDict.FDSelect.fds[gid];\n case 3:\n case 4:\n let { ranges: ranges } = this.topDict.FDSelect;\n let low = 0;\n let high = ranges.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n if (gid < ranges[mid].first) high = mid - 1;\n else if (mid < high && gid >= ranges[mid + 1].first) low = mid + 1;\n else return ranges[mid].fd;\n }\n default:\n throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`);\n }\n }\n privateDictForGlyph(gid) {\n if (this.topDict.FDSelect) {\n let fd = this.fdForGlyph(gid);\n if (this.topDict.FDArray[fd]) return this.topDict.FDArray[fd].Private;\n return null;\n }\n if (this.version < 2) return this.topDict.Private;\n return this.topDict.FDArray[0].Private;\n }\n constructor(stream){\n this.stream = stream;\n this.decode();\n }\n}\nvar $822ac0d589e4e237$export$2e2bcd8739ae039 = $822ac0d589e4e237$var$CFFFont;\n\n\n\nlet $2bbf2bc1ce37cd8f$var$VerticalOrigin = new $6uUbQ$Struct({\n glyphIndex: $6uUbQ$uint16,\n vertOriginY: $6uUbQ$int16\n});\nvar $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n defaultVertOriginY: $6uUbQ$int16,\n numVertOriginYMetrics: $6uUbQ$uint16,\n metrics: new $6uUbQ$Array($2bbf2bc1ce37cd8f$var$VerticalOrigin, 'numVertOriginYMetrics')\n});\n\n\n\n\nlet $0941618dc22a946d$export$16b227cb15d716a0 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n horiBearingX: $6uUbQ$int8,\n horiBearingY: $6uUbQ$int8,\n horiAdvance: $6uUbQ$uint8,\n vertBearingX: $6uUbQ$int8,\n vertBearingY: $6uUbQ$int8,\n vertAdvance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$export$62c53e75f69bfe12 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n bearingX: $6uUbQ$int8,\n bearingY: $6uUbQ$int8,\n advance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$var$EBDTComponent = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n xOffset: $6uUbQ$int8,\n yOffset: $6uUbQ$int8\n});\nclass $0941618dc22a946d$var$ByteAligned {\n}\nclass $0941618dc22a946d$var$BitAligned {\n}\nlet $0941618dc22a946d$export$f1f5ddeb20d14f = new $6uUbQ$VersionedStruct('version', {\n 1: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 2: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$BitAligned\n },\n // format 3 is deprecated\n // format 4 is not supported by Microsoft\n 5: {\n data: $0941618dc22a946d$var$BitAligned\n },\n 6: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 7: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$BitAligned\n },\n 8: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 9: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 17: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 18: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 19: {\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n }\n});\n\n\nlet $9911c4c7201c13de$var$SBitLineMetrics = new $6uUbQ$Struct({\n ascender: $6uUbQ$int8,\n descender: $6uUbQ$int8,\n widthMax: $6uUbQ$uint8,\n caretSlopeNumerator: $6uUbQ$int8,\n caretSlopeDenominator: $6uUbQ$int8,\n caretOffset: $6uUbQ$int8,\n minOriginSB: $6uUbQ$int8,\n minAdvanceSB: $6uUbQ$int8,\n maxBeforeBL: $6uUbQ$int8,\n minAfterBL: $6uUbQ$int8,\n pad: new $6uUbQ$Reserved($6uUbQ$int8, 2)\n});\nlet $9911c4c7201c13de$var$CodeOffsetPair = new $6uUbQ$Struct({\n glyphCode: $6uUbQ$uint16,\n offset: $6uUbQ$uint16\n});\nlet $9911c4c7201c13de$var$IndexSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n imageFormat: $6uUbQ$uint16,\n imageDataOffset: $6uUbQ$uint32\n },\n 1: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 2: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0)\n },\n 3: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 4: {\n numGlyphs: $6uUbQ$uint32,\n glyphArray: new $6uUbQ$Array($9911c4c7201c13de$var$CodeOffsetPair, (t)=>t.numGlyphs + 1)\n },\n 5: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0),\n numGlyphs: $6uUbQ$uint32,\n glyphCodeArray: new $6uUbQ$Array($6uUbQ$uint16, 'numGlyphs')\n }\n});\nlet $9911c4c7201c13de$var$IndexSubtableArray = new $6uUbQ$Struct({\n firstGlyphIndex: $6uUbQ$uint16,\n lastGlyphIndex: $6uUbQ$uint16,\n subtable: new $6uUbQ$Pointer($6uUbQ$uint32, $9911c4c7201c13de$var$IndexSubtable)\n});\nlet $9911c4c7201c13de$var$BitmapSizeTable = new $6uUbQ$Struct({\n indexSubTableArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($9911c4c7201c13de$var$IndexSubtableArray, 1), {\n type: 'parent'\n }),\n indexTablesSize: $6uUbQ$uint32,\n numberOfIndexSubTables: $6uUbQ$uint32,\n colorRef: $6uUbQ$uint32,\n hori: $9911c4c7201c13de$var$SBitLineMetrics,\n vert: $9911c4c7201c13de$var$SBitLineMetrics,\n startGlyphIndex: $6uUbQ$uint16,\n endGlyphIndex: $6uUbQ$uint16,\n ppemX: $6uUbQ$uint8,\n ppemY: $6uUbQ$uint8,\n bitDepth: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'vertical'\n ])\n});\nvar $9911c4c7201c13de$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numSizes: $6uUbQ$uint32,\n sizes: new $6uUbQ$Array($9911c4c7201c13de$var$BitmapSizeTable, 'numSizes')\n});\n\n\n\nlet $abb847051efd51b1$var$ImageTable = new $6uUbQ$Struct({\n ppem: $6uUbQ$uint16,\n resolution: $6uUbQ$uint16,\n imageOffsets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, 'void'), (t)=>t.parent.parent.maxp.numGlyphs + 1)\n});\nvar // This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\n$abb847051efd51b1$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'renderOutlines'\n ]),\n numImgTables: $6uUbQ$uint32,\n imageTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $abb847051efd51b1$var$ImageTable), 'numImgTables')\n});\n\n\n\nlet $eb629188f3dfefdd$var$LayerRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n paletteIndex: $6uUbQ$uint16 // Index value to use in the appropriate palette. This value must\n}); // be less than numPaletteEntries in the CPAL table, except for\n// the special case noted below. Each palette entry is 16 bits.\n// A palette index of 0xFFFF is a special case indicating that\n// the text foreground color should be used.\nlet $eb629188f3dfefdd$var$BaseGlyphRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n // and is not rendered for color.\n firstLayerIndex: $6uUbQ$uint16,\n // There will be numLayers consecutive entries for this base glyph.\n numLayers: $6uUbQ$uint16\n});\nvar $eb629188f3dfefdd$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numBaseGlyphRecords: $6uUbQ$uint16,\n baseGlyphRecord: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$BaseGlyphRecord, 'numBaseGlyphRecords')),\n layerRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$LayerRecord, 'numLayerRecords'), {\n lazy: true\n }),\n numLayerRecords: $6uUbQ$uint16\n});\n\n\n\nlet $08734b8e7dc64587$var$ColorRecord = new $6uUbQ$Struct({\n blue: $6uUbQ$uint8,\n green: $6uUbQ$uint8,\n red: $6uUbQ$uint8,\n alpha: $6uUbQ$uint8\n});\nvar $08734b8e7dc64587$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n numPaletteEntries: $6uUbQ$uint16,\n numPalettes: $6uUbQ$uint16,\n numColorRecords: $6uUbQ$uint16,\n colorRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($08734b8e7dc64587$var$ColorRecord, 'numColorRecords')),\n colorRecordIndices: new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')\n },\n 0: {},\n 1: {\n offsetPaletteTypeArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint32, 'numPalettes')),\n offsetPaletteLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')),\n offsetPaletteEntryLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPaletteEntries'))\n }\n});\n\n\n\n\n\nlet $497cef411d884e34$var$BaseCoord = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16 // X or Y value, in design units\n },\n 2: {\n coordinate: $6uUbQ$int16,\n referenceGlyph: $6uUbQ$uint16,\n baseCoordPoint: $6uUbQ$uint16 // Index of contour point on the referenceGlyph\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)) // Device table for X or Y value\n }\n});\nlet $497cef411d884e34$var$BaseValues = new $6uUbQ$Struct({\n defaultIndex: $6uUbQ$uint16,\n baseCoordCount: $6uUbQ$uint16,\n baseCoords: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord), 'baseCoordCount')\n});\nlet $497cef411d884e34$var$FeatMinMaxRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }) // May be NULL\n});\nlet $497cef411d884e34$var$MinMax = new $6uUbQ$Struct({\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n featMinMaxCount: $6uUbQ$uint16,\n featMinMaxRecords: new $6uUbQ$Array($497cef411d884e34$var$FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n});\nlet $497cef411d884e34$var$BaseLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScript = new $6uUbQ$Struct({\n baseValues: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseValues),\n defaultMinMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax),\n baseLangSysCount: $6uUbQ$uint16,\n baseLangSysRecords: new $6uUbQ$Array($497cef411d884e34$var$BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n});\nlet $497cef411d884e34$var$BaseScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScript, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScriptList = new $6uUbQ$Array($497cef411d884e34$var$BaseScriptRecord, $6uUbQ$uint16);\n// Array of 4-byte baseline identification tags-must be in alphabetical order\nlet $497cef411d884e34$var$BaseTagList = new $6uUbQ$Array(new $6uUbQ$String(4), $6uUbQ$uint16);\nlet $497cef411d884e34$var$Axis = new $6uUbQ$Struct({\n baseTagList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseTagList),\n baseScriptList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScriptList)\n});\nvar $497cef411d884e34$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n horizAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis),\n vertAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis) // May be NULL\n },\n 0x00010000: {},\n 0x00010001: {\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $cf5f33c63ef209e6$var$AttachPoint = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$AttachList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n attachPoints: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachPoint), 'glyphCount')\n});\nlet $cf5f33c63ef209e6$var$CaretValue = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16\n },\n 2: {\n caretValuePoint: $6uUbQ$uint16\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $cf5f33c63ef209e6$var$LigGlyph = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$CaretValue), $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$LigCaretList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligGlyphCount: $6uUbQ$uint16,\n ligGlyphs: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigGlyph), 'ligGlyphCount')\n});\nlet $cf5f33c63ef209e6$var$MarkGlyphSetsDef = new $6uUbQ$Struct({\n markSetTableFormat: $6uUbQ$uint16,\n markSetCount: $6uUbQ$uint16,\n coverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'markSetCount')\n});\nvar $cf5f33c63ef209e6$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n glyphClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n attachList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachList),\n ligCaretList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigCaretList),\n markAttachClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71))\n },\n 0x00010000: {},\n 0x00010002: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef)\n },\n 0x00010003: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef),\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $47e0e8ef515d9903$var$ValueFormat = new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'xPlacement',\n 'yPlacement',\n 'xAdvance',\n 'yAdvance',\n 'xPlaDevice',\n 'yPlaDevice',\n 'xAdvDevice',\n 'yAdvDevice'\n]);\nlet $47e0e8ef515d9903$var$types = {\n xPlacement: $6uUbQ$int16,\n yPlacement: $6uUbQ$int16,\n xAdvance: $6uUbQ$int16,\n yAdvance: $6uUbQ$int16,\n xPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n xAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n })\n};\nclass $47e0e8ef515d9903$var$ValueRecord {\n buildStruct(parent) {\n let struct = parent;\n while(!struct[this.key] && struct.parent)struct = struct.parent;\n if (!struct[this.key]) return;\n let fields = {};\n fields.rel = ()=>struct._startOffset;\n let format = struct[this.key];\n for(let key in format)if (format[key]) fields[key] = $47e0e8ef515d9903$var$types[key];\n return new $6uUbQ$Struct(fields);\n }\n size(val, ctx) {\n return this.buildStruct(ctx).size(val, ctx);\n }\n decode(stream, parent) {\n let res = this.buildStruct(parent).decode(stream, parent);\n delete res.rel;\n return res;\n }\n constructor(key = 'valueFormat'){\n this.key = key;\n }\n}\nlet $47e0e8ef515d9903$var$PairValueRecord = new $6uUbQ$Struct({\n secondGlyph: $6uUbQ$uint16,\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$PairSet = new $6uUbQ$Array($47e0e8ef515d9903$var$PairValueRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$Class2Record = new $6uUbQ$Struct({\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$Anchor = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16\n },\n 2: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n anchorPoint: $6uUbQ$uint16\n },\n 3: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n xDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)),\n yDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $47e0e8ef515d9903$var$EntryExitRecord = new $6uUbQ$Struct({\n entryAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n }),\n exitAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkRecord = new $6uUbQ$Struct({\n class: $6uUbQ$uint16,\n markAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkArray = new $6uUbQ$Array($47e0e8ef515d9903$var$MarkRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$BaseRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.classCount);\nlet $47e0e8ef515d9903$var$BaseArray = new $6uUbQ$Array($47e0e8ef515d9903$var$BaseRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$ComponentRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.parent.classCount);\nlet $47e0e8ef515d9903$var$LigatureAttach = new $6uUbQ$Array($47e0e8ef515d9903$var$ComponentRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$LigatureArray = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureAttach), $6uUbQ$uint16);\nlet $47e0e8ef515d9903$export$73a8cfb19cd43a0f = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n value: new $47e0e8ef515d9903$var$ValueRecord()\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n valueCount: $6uUbQ$uint16,\n values: new $6uUbQ$LazyArray(new $47e0e8ef515d9903$var$ValueRecord(), 'valueCount')\n }\n }),\n 2: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n pairSetCount: $6uUbQ$uint16,\n pairSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$PairSet), 'pairSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n classDef1: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n classDef2: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n class1Count: $6uUbQ$uint16,\n class2Count: $6uUbQ$uint16,\n classRecords: new $6uUbQ$LazyArray(new $6uUbQ$LazyArray($47e0e8ef515d9903$var$Class2Record, 'class2Count'), 'class1Count')\n }\n }),\n 3: {\n format: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n entryExitCount: $6uUbQ$uint16,\n entryExitRecords: new $6uUbQ$Array($47e0e8ef515d9903$var$EntryExitRecord, 'entryExitCount')\n },\n 4: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n baseCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n baseArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 5: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligatureCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n ligatureArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureArray)\n },\n 6: {\n format: $6uUbQ$uint16,\n mark1Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n mark2Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n mark1Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n mark2Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 7: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 8: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 9: {\n posFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n }\n});\n// Fix circular reference\n$47e0e8ef515d9903$export$73a8cfb19cd43a0f.versions[9].extension.type = $47e0e8ef515d9903$export$73a8cfb19cd43a0f;\nvar $47e0e8ef515d9903$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($47e0e8ef515d9903$export$73a8cfb19cd43a0f))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $d3f442064af66e06$var$Sequence = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $d3f442064af66e06$var$AlternateSet = $d3f442064af66e06$var$Sequence;\nlet $d3f442064af66e06$var$Ligature = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n compCount: $6uUbQ$uint16,\n components: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.compCount - 1)\n});\nlet $d3f442064af66e06$var$LigatureSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Ligature), $6uUbQ$uint16);\nlet $d3f442064af66e06$var$GSUBLookup = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n deltaGlyphID: $6uUbQ$int16\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n substitute: new $6uUbQ$LazyArray($6uUbQ$uint16, 'glyphCount')\n }\n }),\n 2: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n sequences: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Sequence), 'count')\n },\n 3: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n alternateSet: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$AlternateSet), 'count')\n },\n 4: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n ligatureSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$LigatureSet), 'count')\n },\n 5: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 6: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 7: {\n substFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n },\n 8: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'backtrackGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'lookaheadGlyphCount'),\n glyphCount: $6uUbQ$uint16,\n substitutes: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n }\n});\n// Fix circular reference\n$d3f442064af66e06$var$GSUBLookup.versions[7].extension.type = $d3f442064af66e06$var$GSUBLookup;\nvar $d3f442064af66e06$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($d3f442064af66e06$var$GSUBLookup))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $71cfb3c4767fbd0c$var$JstfGSUBModList = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfPriority = new $6uUbQ$Struct({\n shrinkageEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f))),\n extensionEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f)))\n});\nlet $71cfb3c4767fbd0c$var$JstfLangSys = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfPriority), $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n jstfLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys)\n});\nlet $71cfb3c4767fbd0c$var$JstfScript = new $6uUbQ$Struct({\n extenderGlyphs: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)),\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys),\n langSysCount: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfLangSysRecord, 'langSysCount')\n});\nlet $71cfb3c4767fbd0c$var$JstfScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfScript, {\n type: 'parent'\n })\n});\nvar $71cfb3c4767fbd0c$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n scriptCount: $6uUbQ$uint16,\n scriptList: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfScriptRecord, 'scriptCount')\n});\n\n\n\n\n// TODO: add this to restructure\nclass $d059a6bd2d3b5b63$var$VariableSizeNumber {\n decode(stream, parent) {\n switch(this.size(0, parent)){\n case 1:\n return stream.readUInt8();\n case 2:\n return stream.readUInt16BE();\n case 3:\n return stream.readUInt24BE();\n case 4:\n return stream.readUInt32BE();\n }\n }\n size(val, parent) {\n return (0, $6uUbQ$resolveLength)(this._size, null, parent);\n }\n constructor(size){\n this._size = size;\n }\n}\nlet $d059a6bd2d3b5b63$var$MapDataEntry = new $6uUbQ$Struct({\n entry: new $d059a6bd2d3b5b63$var$VariableSizeNumber((t)=>((t.parent.entryFormat & 0x0030) >> 4) + 1),\n outerIndex: (t)=>t.entry >> (t.parent.entryFormat & 0x000F) + 1,\n innerIndex: (t)=>t.entry & (1 << (t.parent.entryFormat & 0x000F) + 1) - 1\n});\nlet $d059a6bd2d3b5b63$var$DeltaSetIndexMap = new $6uUbQ$Struct({\n entryFormat: $6uUbQ$uint16,\n mapCount: $6uUbQ$uint16,\n mapData: new $6uUbQ$Array($d059a6bd2d3b5b63$var$MapDataEntry, 'mapCount')\n});\nvar $d059a6bd2d3b5b63$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)),\n advanceWidthMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n LSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n RSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap)\n});\n\n\n\nlet $dceeca3e1977ce30$var$Signature = new $6uUbQ$Struct({\n format: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n offset: $6uUbQ$uint32\n});\nlet $dceeca3e1977ce30$var$SignatureBlock = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16, 2),\n cbSignature: $6uUbQ$uint32,\n signature: new $6uUbQ$Buffer('cbSignature')\n});\nvar $dceeca3e1977ce30$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n ulVersion: $6uUbQ$uint32,\n usNumSigs: $6uUbQ$uint16,\n usFlag: $6uUbQ$uint16,\n signatures: new $6uUbQ$Array($dceeca3e1977ce30$var$Signature, 'usNumSigs'),\n signatureBlocks: new $6uUbQ$Array($dceeca3e1977ce30$var$SignatureBlock, 'usNumSigs')\n});\n\n\n\nlet $8acd740a9435aad0$var$GaspRange = new $6uUbQ$Struct({\n rangeMaxPPEM: $6uUbQ$uint16,\n rangeGaspBehavior: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'grayscale',\n 'gridfit',\n 'symmetricSmoothing',\n 'symmetricGridfit' // only in version 1, for ClearType\n ])\n});\nvar $8acd740a9435aad0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRanges: $6uUbQ$uint16,\n gaspRanges: new $6uUbQ$Array($8acd740a9435aad0$var$GaspRange, 'numRanges') // Sorted by ppem\n});\n\n\n\nlet $b5f380243c34d6a0$var$DeviceRecord = new $6uUbQ$Struct({\n pixelSize: $6uUbQ$uint8,\n maximumWidth: $6uUbQ$uint8,\n widths: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.parent.maxp.numGlyphs)\n});\nvar // The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\n$b5f380243c34d6a0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecords: $6uUbQ$int16,\n sizeDeviceRecord: $6uUbQ$int32,\n records: new $6uUbQ$Array($b5f380243c34d6a0$var$DeviceRecord, 'numRecords')\n});\n\n\n\nlet $ca2df1256966e313$var$KernPair = new $6uUbQ$Struct({\n left: $6uUbQ$uint16,\n right: $6uUbQ$uint16,\n value: $6uUbQ$int16\n});\nlet $ca2df1256966e313$var$ClassTable = new $6uUbQ$Struct({\n firstGlyph: $6uUbQ$uint16,\n nGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'nGlyphs'),\n max: (t)=>t.offsets.length && Math.max.apply(Math, t.offsets)\n});\nlet $ca2df1256966e313$var$Kern2Array = new $6uUbQ$Struct({\n off: (t)=>t._startOffset - t.parent.parent._startOffset,\n len: (t)=>((t.parent.leftTable.max - t.off) / t.parent.rowWidth + 1) * (t.parent.rowWidth / 2),\n values: new $6uUbQ$LazyArray($6uUbQ$int16, 'len')\n});\nlet $ca2df1256966e313$var$KernSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n nPairs: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n pairs: new $6uUbQ$Array($ca2df1256966e313$var$KernPair, 'nPairs')\n },\n 2: {\n rowWidth: $6uUbQ$uint16,\n leftTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n rightTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n array: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$Kern2Array, {\n type: 'parent'\n })\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n kernValueCount: $6uUbQ$uint8,\n leftClassCount: $6uUbQ$uint8,\n rightClassCount: $6uUbQ$uint8,\n flags: $6uUbQ$uint8,\n kernValue: new $6uUbQ$Array($6uUbQ$int16, 'kernValueCount'),\n leftClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n rightClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n kernIndex: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.leftClassCount * t.rightClassCount)\n }\n});\nlet $ca2df1256966e313$var$KernTable = new $6uUbQ$VersionedStruct('version', {\n 0: {\n subVersion: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n format: $6uUbQ$uint8,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'minimum',\n 'crossStream',\n 'override' // If set to 1 the value in this table replaces the accumulated value\n ]),\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n },\n 1: {\n length: $6uUbQ$uint32,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n 'variation',\n 'crossStream',\n 'vertical' // Set if table has vertical kerning values\n ]),\n format: $6uUbQ$uint8,\n tupleIndex: $6uUbQ$uint16,\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n }\n});\nvar $ca2df1256966e313$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n nTables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n },\n 1: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n nTables: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n }\n});\n\n\n\nvar // Linear Threshold table\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\n$7a9f92b0c46ebe33$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numGlyphs: $6uUbQ$uint16,\n yPels: new $6uUbQ$Array($6uUbQ$uint8, 'numGlyphs')\n});\n\n\n\nvar // PCL 5 Table\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\n$2b2ccc419d152631$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n fontNumber: $6uUbQ$uint32,\n pitch: $6uUbQ$uint16,\n xHeight: $6uUbQ$uint16,\n style: $6uUbQ$uint16,\n typeFamily: $6uUbQ$uint16,\n capHeight: $6uUbQ$uint16,\n symbolSet: $6uUbQ$uint16,\n typeface: new $6uUbQ$String(16),\n characterComplement: new $6uUbQ$String(8),\n fileName: new $6uUbQ$String(6),\n strokeWeight: new $6uUbQ$String(1),\n widthType: new $6uUbQ$String(1),\n serifStyle: $6uUbQ$uint8,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8)\n});\n\n\n\n// VDMX tables contain ascender/descender overrides for certain (usually small)\n// sizes. This is needed in order to match font metrics on Windows.\nlet $ca5b40b9bcda9c9b$var$Ratio = new $6uUbQ$Struct({\n bCharSet: $6uUbQ$uint8,\n xRatio: $6uUbQ$uint8,\n yStartRatio: $6uUbQ$uint8,\n yEndRatio: $6uUbQ$uint8 // Ending y-Ratio value\n});\nlet $ca5b40b9bcda9c9b$var$vTable = new $6uUbQ$Struct({\n yPelHeight: $6uUbQ$uint16,\n yMax: $6uUbQ$int16,\n yMin: $6uUbQ$int16 // Minimum value (in pels) for this yPelHeight\n});\nlet $ca5b40b9bcda9c9b$var$VdmxGroup = new $6uUbQ$Struct({\n recs: $6uUbQ$uint16,\n startsz: $6uUbQ$uint8,\n endsz: $6uUbQ$uint8,\n entries: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$vTable, 'recs') // The VDMX records\n});\nvar $ca5b40b9bcda9c9b$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecs: $6uUbQ$uint16,\n numRatios: $6uUbQ$uint16,\n ratioRanges: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$Ratio, 'numRatios'),\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'numRatios'),\n groups: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$VdmxGroup, 'numRecs') // The actual VDMX groupings\n});\n\n\n\nvar // Vertical Header Table\n$69530a3c40755af0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceHeightMax: $6uUbQ$int16,\n minTopSideBearing: $6uUbQ$int16,\n minBottomSideBearing: $6uUbQ$int16,\n yMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance heights in the Vertical Metrics table\n});\n\n\n\nlet $344073dd270f0e62$var$VmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16 // The top sidebearing of the glyph\n});\nvar // Vertical Metrics Table\n$344073dd270f0e62$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($344073dd270f0e62$var$VmtxEntry, (t)=>t.parent.vhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics)\n});\n\n\n\nlet $3793b781918cfced$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $3793b781918cfced$var$Correspondence = new $6uUbQ$Struct({\n fromCoord: $3793b781918cfced$var$shortFrac,\n toCoord: $3793b781918cfced$var$shortFrac\n});\nlet $3793b781918cfced$var$Segment = new $6uUbQ$Struct({\n pairCount: $6uUbQ$uint16,\n correspondence: new $6uUbQ$Array($3793b781918cfced$var$Correspondence, 'pairCount')\n});\nvar $3793b781918cfced$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n axisCount: $6uUbQ$uint32,\n segment: new $6uUbQ$Array($3793b781918cfced$var$Segment, 'axisCount')\n});\n\n\n\n\nclass $6cb7dd5f47d82580$var$UnboundedArrayAccessor {\n getItem(index) {\n if (this._items[index] == null) {\n let pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n this._items[index] = this.type.decode(this.stream, this.parent);\n this.stream.pos = pos;\n }\n return this._items[index];\n }\n inspect() {\n return `[UnboundedArray ${this.type.constructor.name}]`;\n }\n constructor(type, stream, parent){\n this.type = type;\n this.stream = stream;\n this.parent = parent;\n this.base = this.stream.pos;\n this._items = [];\n }\n}\nclass $6cb7dd5f47d82580$export$c5af1eebc882e39a extends $6uUbQ$Array {\n decode(stream, parent) {\n return new $6cb7dd5f47d82580$var$UnboundedArrayAccessor(this.type, stream, parent);\n }\n constructor(type){\n super(type, 0);\n }\n}\nlet $6cb7dd5f47d82580$export$8351f8c2ae2f103c = function(ValueType = $6uUbQ$uint16) {\n // Helper class that makes internal structures invisible to pointers\n class Shadow {\n decode(stream, ctx) {\n ctx = ctx.parent.parent;\n return this.type.decode(stream, ctx);\n }\n size(val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.size(val, ctx);\n }\n encode(stream, val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.encode(stream, val, ctx);\n }\n constructor(type){\n this.type = type;\n }\n }\n ValueType = new Shadow(ValueType);\n let BinarySearchHeader = new $6uUbQ$Struct({\n unitSize: $6uUbQ$uint16,\n nUnits: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16\n });\n let LookupSegmentSingle = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n value: ValueType\n });\n let LookupSegmentArray = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array(ValueType, (t)=>t.lastGlyph - t.firstGlyph + 1), {\n type: 'parent'\n })\n });\n let LookupSingle = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n value: ValueType\n });\n return new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n values: new $6cb7dd5f47d82580$export$c5af1eebc882e39a(ValueType) // length == number of glyphs maybe?\n },\n 2: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 4: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentArray, (t)=>t.binarySearchHeader.nUnits)\n },\n 6: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 8: {\n firstGlyph: $6uUbQ$uint16,\n count: $6uUbQ$uint16,\n values: new $6uUbQ$Array(ValueType, 'count')\n }\n });\n};\nfunction $6cb7dd5f47d82580$export$79f7d93d790934ba(entryData = {}, lookupType = $6uUbQ$uint16) {\n let entry = Object.assign({\n newState: $6uUbQ$uint16,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.nClasses));\n let StateHeader = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint32,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$8351f8c2ae2f103c(lookupType)),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint32, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader;\n}\nfunction $6cb7dd5f47d82580$export$105027425199cc51(entryData = {}, lookupType = $6uUbQ$uint16) {\n let ClassLookupTable = new $6uUbQ$Struct({\n version () {\n return 8;\n },\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16)\n });\n let entry = Object.assign({\n newStateOffset: $6uUbQ$uint16,\n // convert offset to stateArray index\n newState: (t)=>(t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.nClasses));\n let StateHeader1 = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint16,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, ClassLookupTable),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint16, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint16, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader1;\n}\n\n\nlet $6a3746e8c708f5a3$var$BslnSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32)\n },\n 1: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n },\n 2: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32)\n },\n 3: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n }\n});\nvar $6a3746e8c708f5a3$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n defaultBaseline: $6uUbQ$uint16,\n subtable: $6a3746e8c708f5a3$var$BslnSubtable\n});\n\n\n\nlet $d0c76fac617b308a$var$Setting = new $6uUbQ$Struct({\n setting: $6uUbQ$uint16,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nlet $d0c76fac617b308a$var$FeatureName = new $6uUbQ$Struct({\n feature: $6uUbQ$uint16,\n nSettings: $6uUbQ$uint16,\n settingTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($d0c76fac617b308a$var$Setting, 'nSettings'), {\n type: 'parent'\n }),\n featureFlags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n null,\n 'hasDefault',\n 'exclusive'\n ]),\n defaultSetting: $6uUbQ$uint8,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nvar $d0c76fac617b308a$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n featureNameCount: $6uUbQ$uint16,\n reserved1: new $6uUbQ$Reserved($6uUbQ$uint16),\n reserved2: new $6uUbQ$Reserved($6uUbQ$uint32),\n featureNames: new $6uUbQ$Array($d0c76fac617b308a$var$FeatureName, 'featureNameCount')\n});\n\n\n\nlet $e83fd065f00fcd01$var$Axis = new $6uUbQ$Struct({\n axisTag: new $6uUbQ$String(4),\n minValue: $6uUbQ$fixed32,\n defaultValue: $6uUbQ$fixed32,\n maxValue: $6uUbQ$fixed32,\n flags: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID]\n});\nlet $e83fd065f00fcd01$var$Instance = new $6uUbQ$Struct({\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID],\n flags: $6uUbQ$uint16,\n coord: new $6uUbQ$Array($6uUbQ$fixed32, (t)=>t.parent.axisCount),\n postscriptNameID: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.parent.instanceSize - t._currentOffset > 0)\n});\nvar $e83fd065f00fcd01$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n offsetToData: $6uUbQ$uint16,\n countSizePairs: $6uUbQ$uint16,\n axisCount: $6uUbQ$uint16,\n axisSize: $6uUbQ$uint16,\n instanceCount: $6uUbQ$uint16,\n instanceSize: $6uUbQ$uint16,\n axis: new $6uUbQ$Array($e83fd065f00fcd01$var$Axis, 'axisCount'),\n instance: new $6uUbQ$Array($e83fd065f00fcd01$var$Instance, 'instanceCount')\n});\n\n\n\nlet $dbe33c8d3a7f131c$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nclass $dbe33c8d3a7f131c$var$Offset {\n static decode(stream, parent) {\n // In short format, offsets are multiplied by 2.\n // This doesn't seem to be documented by Apple, but it\n // is implemented this way in Freetype.\n return parent.flags ? stream.readUInt32BE() : stream.readUInt16BE() * 2;\n }\n}\nlet $dbe33c8d3a7f131c$var$gvar = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n axisCount: $6uUbQ$uint16,\n globalCoordCount: $6uUbQ$uint16,\n globalCoords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array(new $6uUbQ$Array($dbe33c8d3a7f131c$var$shortFrac, 'axisCount'), 'globalCoordCount')),\n glyphCount: $6uUbQ$uint16,\n flags: $6uUbQ$uint16,\n offsetToData: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array(new $6uUbQ$Pointer($dbe33c8d3a7f131c$var$Offset, 'void', {\n relativeTo: (ctx)=>ctx.offsetToData,\n allowNull: false\n }), (t)=>t.glyphCount + 1)\n});\nvar $dbe33c8d3a7f131c$export$2e2bcd8739ae039 = $dbe33c8d3a7f131c$var$gvar;\n\n\n\n\nlet $05b01887df96c4ee$var$ClassTable = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n coverage: $6uUbQ$uint16,\n subFeatureFlags: $6uUbQ$uint32,\n stateTable: new (0, $6cb7dd5f47d82580$export$105027425199cc51)\n});\nlet $05b01887df96c4ee$var$WidthDeltaRecord = new $6uUbQ$Struct({\n justClass: $6uUbQ$uint32,\n beforeGrowLimit: $6uUbQ$fixed32,\n beforeShrinkLimit: $6uUbQ$fixed32,\n afterGrowLimit: $6uUbQ$fixed32,\n afterShrinkLimit: $6uUbQ$fixed32,\n growFlags: $6uUbQ$uint16,\n shrinkFlags: $6uUbQ$uint16\n});\nlet $05b01887df96c4ee$var$WidthDeltaCluster = new $6uUbQ$Array($05b01887df96c4ee$var$WidthDeltaRecord, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$ActionData = new $6uUbQ$VersionedStruct('actionType', {\n 0: {\n lowerLimit: $6uUbQ$fixed32,\n upperLimit: $6uUbQ$fixed32,\n order: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)\n },\n 1: {\n addGlyph: $6uUbQ$uint16\n },\n 2: {\n substThreshold: $6uUbQ$fixed32,\n addGlyph: $6uUbQ$uint16,\n substGlyph: $6uUbQ$uint16\n },\n 3: {},\n 4: {\n variationAxis: $6uUbQ$uint32,\n minimumLimit: $6uUbQ$fixed32,\n noStretchValue: $6uUbQ$fixed32,\n maximumLimit: $6uUbQ$fixed32\n },\n 5: {\n flags: $6uUbQ$uint16,\n glyph: $6uUbQ$uint16\n }\n});\nlet $05b01887df96c4ee$var$Action = new $6uUbQ$Struct({\n actionClass: $6uUbQ$uint16,\n actionType: $6uUbQ$uint16,\n actionLength: $6uUbQ$uint32,\n actionData: $05b01887df96c4ee$var$ActionData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.actionLength - t._currentOffset)\n});\nlet $05b01887df96c4ee$var$PostcompensationAction = new $6uUbQ$Array($05b01887df96c4ee$var$Action, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$PostCompensationTable = new $6uUbQ$Struct({\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostcompensationAction))\n});\nlet $05b01887df96c4ee$var$JustificationTable = new $6uUbQ$Struct({\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$ClassTable, {\n type: 'parent'\n }),\n wdcOffset: $6uUbQ$uint16,\n postCompensationTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostCompensationTable, {\n type: 'parent'\n }),\n widthDeltaClusters: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$WidthDeltaCluster, {\n type: 'parent',\n relativeTo: (ctx)=>ctx.wdcOffset\n }))\n});\nvar $05b01887df96c4ee$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n format: $6uUbQ$uint16,\n horizontal: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable),\n vertical: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable)\n});\n\n\n\n\nlet $03ee6ebd54db1053$var$LigatureData = {\n action: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$ContextualData = {\n markIndex: $6uUbQ$uint16,\n currentIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$InsertionData = {\n currentInsertIndex: $6uUbQ$uint16,\n markedInsertIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$SubstitutionTable = new $6uUbQ$Struct({\n items: new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)))\n});\nlet $03ee6ebd54db1053$var$SubtableData = new $6uUbQ$VersionedStruct('type', {\n 0: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)\n },\n 1: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$ContextualData),\n substitutionTable: new $6uUbQ$Pointer($6uUbQ$uint32, $03ee6ebd54db1053$var$SubstitutionTable)\n },\n 2: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$LigatureData),\n ligatureActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint32)),\n components: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16)),\n ligatureList: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n },\n 4: {\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)\n },\n 5: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$InsertionData),\n insertionActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n }\n});\nlet $03ee6ebd54db1053$var$Subtable = new $6uUbQ$Struct({\n length: $6uUbQ$uint32,\n coverage: $6uUbQ$uint24,\n type: $6uUbQ$uint8,\n subFeatureFlags: $6uUbQ$uint32,\n table: $03ee6ebd54db1053$var$SubtableData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n});\nlet $03ee6ebd54db1053$var$FeatureEntry = new $6uUbQ$Struct({\n featureType: $6uUbQ$uint16,\n featureSetting: $6uUbQ$uint16,\n enableFlags: $6uUbQ$uint32,\n disableFlags: $6uUbQ$uint32\n});\nlet $03ee6ebd54db1053$var$MorxChain = new $6uUbQ$Struct({\n defaultFlags: $6uUbQ$uint32,\n chainLength: $6uUbQ$uint32,\n nFeatureEntries: $6uUbQ$uint32,\n nSubtables: $6uUbQ$uint32,\n features: new $6uUbQ$Array($03ee6ebd54db1053$var$FeatureEntry, 'nFeatureEntries'),\n subtables: new $6uUbQ$Array($03ee6ebd54db1053$var$Subtable, 'nSubtables')\n});\nvar $03ee6ebd54db1053$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n unused: new $6uUbQ$Reserved($6uUbQ$uint16),\n nChains: $6uUbQ$uint32,\n chains: new $6uUbQ$Array($03ee6ebd54db1053$var$MorxChain, 'nChains')\n});\n\n\n\n\nlet $b7492a80b0d1a056$var$OpticalBounds = new $6uUbQ$Struct({\n left: $6uUbQ$int16,\n top: $6uUbQ$int16,\n right: $6uUbQ$int16,\n bottom: $6uUbQ$int16\n});\nvar $b7492a80b0d1a056$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($b7492a80b0d1a056$var$OpticalBounds)\n});\n\n\nlet $c3395722bea751e2$var$tables = {};\nvar $c3395722bea751e2$export$2e2bcd8739ae039 = $c3395722bea751e2$var$tables;\n$c3395722bea751e2$var$tables.cmap = (0, $26a62205ad06574e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.head = (0, $f2612a29f92ac062$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hhea = (0, $2c179dd593583073$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hmtx = (0, $bdc9060542264b85$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.maxp = (0, $dbf51cb3d3fe409d$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.name = (0, $2bcf221753ec8e32$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['OS/2'] = (0, $84b272aa31b70606$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.post = (0, $32d9e2eb9565d93c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fpgm = (0, $5c0f37ca5ffb1850$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.loca = (0, $2b2b260902b1c57e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.prep = (0, $7afb878c7bea4f66$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['cvt '] = (0, $5202bd9d9ad8eaac$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.glyf = (0, $6c92b6371bce8bd9$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF '] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF2'] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VORG = (0, $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.EBLC = (0, $9911c4c7201c13de$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CBLC = $c3395722bea751e2$var$tables.EBLC;\n$c3395722bea751e2$var$tables.sbix = (0, $abb847051efd51b1$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.COLR = (0, $eb629188f3dfefdd$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CPAL = (0, $08734b8e7dc64587$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.BASE = (0, $497cef411d884e34$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GDEF = (0, $cf5f33c63ef209e6$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GPOS = (0, $47e0e8ef515d9903$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GSUB = (0, $d3f442064af66e06$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.JSTF = (0, $71cfb3c4767fbd0c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.HVAR = (0, $d059a6bd2d3b5b63$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.DSIG = (0, $dceeca3e1977ce30$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gasp = (0, $8acd740a9435aad0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hdmx = (0, $b5f380243c34d6a0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.kern = (0, $ca2df1256966e313$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.LTSH = (0, $7a9f92b0c46ebe33$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.PCLT = (0, $2b2ccc419d152631$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VDMX = (0, $ca5b40b9bcda9c9b$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vhea = (0, $69530a3c40755af0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vmtx = (0, $344073dd270f0e62$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.avar = (0, $3793b781918cfced$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.bsln = (0, $6a3746e8c708f5a3$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.feat = (0, $d0c76fac617b308a$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fvar = (0, $e83fd065f00fcd01$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gvar = (0, $dbe33c8d3a7f131c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.just = (0, $05b01887df96c4ee$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.morx = (0, $03ee6ebd54db1053$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.opbd = (0, $b7492a80b0d1a056$export$2e2bcd8739ae039);\n\n\nlet $816c07a04b6dba87$var$TableEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n checkSum: $6uUbQ$uint32,\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n length: $6uUbQ$uint32\n});\nlet $816c07a04b6dba87$var$Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n numTables: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($816c07a04b6dba87$var$TableEntry, 'numTables')\n});\n$816c07a04b6dba87$var$Directory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\n$816c07a04b6dba87$var$Directory.preEncode = function() {\n if (!Array.isArray(this.tables)) {\n let tables = [];\n for(let tag in this.tables){\n let table = this.tables[tag];\n if (table) tables.push({\n tag: tag,\n checkSum: 0,\n offset: new $6uUbQ$VoidPointer((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag], table),\n length: (0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag].size(table)\n });\n }\n this.tables = tables;\n }\n this.tag = 'true';\n this.numTables = this.tables.length;\n let maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);\n let maxPowerOf2 = Math.pow(2, maxExponentFor2);\n this.searchRange = maxPowerOf2 * 16;\n this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n this.rangeShift = this.numTables * 16 - this.searchRange;\n};\nvar $816c07a04b6dba87$export$2e2bcd8739ae039 = $816c07a04b6dba87$var$Directory;\n\n\n\n\nfunction $12727730ddfc8bfe$export$2e0ae67339d5f1ac(arr, cmp) {\n let min = 0;\n let max = arr.length - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let res = cmp(arr[mid]);\n if (res < 0) max = mid - 1;\n else if (res > 0) min = mid + 1;\n else return mid;\n }\n return -1;\n}\nfunction $12727730ddfc8bfe$export$d02631cccf789723(index, end) {\n let range = [];\n while(index < end)range.push(index++);\n return range;\n}\nconst $12727730ddfc8bfe$export$3d28c1996ced1f14 = new TextDecoder('ascii');\n// Based on https://github.com/niklasvh/base64-arraybuffer. MIT license.\nconst $12727730ddfc8bfe$var$CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst $12727730ddfc8bfe$var$LOOKUP = new Uint8Array(256);\nfor(let i = 0; i < $12727730ddfc8bfe$var$CHARS.length; i++)$12727730ddfc8bfe$var$LOOKUP[$12727730ddfc8bfe$var$CHARS.charCodeAt(i)] = i;\nfunction $12727730ddfc8bfe$export$94fdf11bafc8de6b(base64) {\n let bufferLength = base64.length * 0.75;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') bufferLength--;\n }\n let bytes = new Uint8Array(bufferLength);\n let p = 0;\n for(let i = 0, len = base64.length; i < len; i += 4){\n let encoded1 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i)];\n let encoded2 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 1)];\n let encoded3 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 2)];\n let encoded4 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return bytes;\n}\n\n\n\n\nclass $f08dd41ef10b694c$export$2e2bcd8739ae039 {\n findSubtable(cmapTable, pairs) {\n for (let [platformID, encodingID] of pairs)for (let cmap of cmapTable.tables){\n if (cmap.platformID === platformID && cmap.encodingID === encodingID) return cmap.table;\n }\n return null;\n }\n lookup(codepoint, variationSelector) {\n // If there is no Unicode cmap in this font, we need to re-encode\n // the codepoint in the encoding that the cmap supports.\n if (this.encoding) codepoint = this.encoding.get(codepoint) || codepoint;\n else if (variationSelector) {\n let gid = this.getVariationSelector(codepoint, variationSelector);\n if (gid) return gid;\n }\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return cmap.codeMap.get(codepoint) || 0;\n case 4:\n {\n let min = 0;\n let max = cmap.segCount - 1;\n while(min <= max){\n let mid = min + max >> 1;\n if (codepoint < cmap.startCode.get(mid)) max = mid - 1;\n else if (codepoint > cmap.endCode.get(mid)) min = mid + 1;\n else {\n let rangeOffset = cmap.idRangeOffset.get(mid);\n let gid;\n if (rangeOffset === 0) gid = codepoint + cmap.idDelta.get(mid);\n else {\n let index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n gid = cmap.glyphIndexArray.get(index) || 0;\n if (gid !== 0) gid += cmap.idDelta.get(mid);\n }\n return gid & 0xffff;\n }\n }\n return 0;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n case 12:\n case 13:\n {\n let min = 0;\n let max = cmap.nGroups - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let group = cmap.groups.get(mid);\n if (codepoint < group.startCharCode) max = mid - 1;\n else if (codepoint > group.endCharCode) min = mid + 1;\n else {\n if (cmap.version === 12) return group.glyphID + (codepoint - group.startCharCode);\n else return group.glyphID;\n }\n }\n return 0;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n getVariationSelector(codepoint, variationSelector) {\n if (!this.uvs) return 0;\n let selectors = this.uvs.varSelectors.toArray();\n let i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(selectors, (x)=>variationSelector - x.varSelector);\n let sel = selectors[i];\n if (i !== -1 && sel.defaultUVS) i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.defaultUVS, (x)=>codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? 1 : 0);\n if (i !== -1 && sel.nonDefaultUVS) {\n i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.nonDefaultUVS, (x)=>codepoint - x.unicodeValue);\n if (i !== -1) return sel.nonDefaultUVS[i].glyphID;\n }\n return 0;\n }\n getCharacterSet() {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(0, cmap.codeMap.length);\n case 4:\n {\n let res = [];\n let endCodes = cmap.endCode.toArray();\n for(let i = 0; i < endCodes.length; i++){\n let tail = endCodes[i] + 1;\n let start = cmap.startCode.get(i);\n res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(start, tail));\n }\n return res;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n case 12:\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n codePointsForGlyph(gid) {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n {\n let res = [];\n for(let i = 0; i < 256; i++)if (cmap.codeMap.get(i) === gid) res.push(i);\n return res;\n }\n case 4:\n {\n let res = [];\n for(let i = 0; i < cmap.segCount; i++){\n let end = cmap.endCode.get(i);\n let start = cmap.startCode.get(i);\n let rangeOffset = cmap.idRangeOffset.get(i);\n let delta = cmap.idDelta.get(i);\n for(var c = start; c <= end; c++){\n let g = 0;\n if (rangeOffset === 0) g = c + delta;\n else {\n let index = rangeOffset / 2 + (c - start) - (cmap.segCount - i);\n g = cmap.glyphIndexArray.get(index) || 0;\n if (g !== 0) g += delta;\n }\n if (g === gid) res.push(c);\n }\n }\n return res;\n }\n case 12:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) res.push(group.startCharCode + (gid - group.glyphID));\n return res;\n }\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid === group.glyphID) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n constructor(cmapTable){\n // Attempt to find a Unicode cmap first\n this.encoding = null;\n this.cmap = this.findSubtable(cmapTable, [\n // 32-bit subtables\n [\n 3,\n 10\n ],\n [\n 0,\n 6\n ],\n [\n 0,\n 4\n ],\n // 16-bit subtables\n [\n 3,\n 1\n ],\n [\n 0,\n 3\n ],\n [\n 0,\n 2\n ],\n [\n 0,\n 1\n ],\n [\n 0,\n 0\n ]\n ]);\n // If not unicode cmap was found, take the first table with a supported encoding.\n if (!this.cmap) for (let cmap of cmapTable.tables){\n let encoding = (0, $e449ad78d50845fe$export$badc544e0651b6b1)(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n let mapping = (0, $e449ad78d50845fe$export$1dceb3c14ed68bee)(encoding);\n if (mapping) {\n this.cmap = cmap.table;\n this.encoding = mapping;\n }\n }\n if (!this.cmap) throw new Error(\"Could not find a supported cmap table\");\n this.uvs = this.findSubtable(cmapTable, [\n [\n 0,\n 5\n ]\n ]);\n if (this.uvs && this.uvs.version !== 14) this.uvs = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"getCharacterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"codePointsForGlyph\", null);\n\n\n\nclass $0bba3a9db57637f3$export$2e2bcd8739ae039 {\n process(glyphs, positions) {\n for(let glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++){\n let left = glyphs[glyphIndex].id;\n let right = glyphs[glyphIndex + 1].id;\n positions[glyphIndex].xAdvance += this.getKerning(left, right);\n }\n }\n getKerning(left, right) {\n let res = 0;\n for (let table of this.kern.tables){\n if (table.coverage.crossStream) continue;\n switch(table.version){\n case 0:\n if (!table.coverage.horizontal) continue;\n break;\n case 1:\n if (table.coverage.vertical || table.coverage.variation) continue;\n break;\n default:\n throw new Error(`Unsupported kerning table version ${table.version}`);\n }\n let val = 0;\n let s = table.subtable;\n switch(table.format){\n case 0:\n let pairIdx = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(s.pairs, function(pair) {\n return left - pair.left || right - pair.right;\n });\n if (pairIdx >= 0) val = s.pairs[pairIdx].value;\n break;\n case 2:\n let leftOffset = 0, rightOffset = 0;\n if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n else leftOffset = s.array.off;\n if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n let index = (leftOffset + rightOffset - s.array.off) / 2;\n val = s.array.values.get(index);\n break;\n case 3:\n if (left >= s.glyphCount || right >= s.glyphCount) return 0;\n val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n break;\n default:\n throw new Error(`Unsupported kerning sub-table format ${table.format}`);\n }\n // Microsoft supports the override flag, which resets the result\n // Otherwise, the sum of the results from all subtables is returned\n if (table.coverage.override) res = val;\n else res += val;\n }\n return res;\n }\n constructor(font){\n this.kern = font.kern;\n }\n}\n\n\n\nclass $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039 {\n positionGlyphs(glyphs, positions) {\n // find each base + mark cluster, and position the marks relative to the base\n let clusterStart = 0;\n let clusterEnd = 0;\n for(let index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.isMark) clusterEnd = index;\n else {\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n clusterStart = clusterEnd = index;\n }\n }\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n return positions;\n }\n positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n let base = glyphs[clusterStart];\n let baseBox = base.cbox.copy();\n // adjust bounding box for ligature glyphs\n if (base.codePoints.length > 1) // LTR. TODO: RTL support.\n baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;\n let xOffset = -positions[clusterStart].xAdvance;\n let yOffset = 0;\n let yGap = this.font.unitsPerEm / 16;\n // position each of the mark glyphs relative to the base glyph\n for(let index = clusterStart + 1; index <= clusterEnd; index++){\n let mark = glyphs[index];\n let markBox = mark.cbox;\n let position = positions[index];\n let combiningClass = this.getCombiningClass(mark.codePoints[0]);\n if (combiningClass !== 'Not_Reordered') {\n position.xOffset = position.yOffset = 0;\n // x positioning\n switch(combiningClass){\n case 'Double_Above':\n case 'Double_Below':\n // LTR. TODO: RTL support.\n position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n break;\n case 'Attached_Below_Left':\n case 'Below_Left':\n case 'Above_Left':\n // left align\n position.xOffset += baseBox.minX - markBox.minX;\n break;\n case 'Attached_Above_Right':\n case 'Below_Right':\n case 'Above_Right':\n // right align\n position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n break;\n default:\n // center align\n position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n }\n // y positioning\n switch(combiningClass){\n case 'Double_Below':\n case 'Below_Left':\n case 'Below':\n case 'Below_Right':\n case 'Attached_Below_Left':\n case 'Attached_Below':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') baseBox.minY += yGap;\n position.yOffset = -baseBox.minY - markBox.maxY;\n baseBox.minY += markBox.height;\n break;\n case 'Double_Above':\n case 'Above_Left':\n case 'Above':\n case 'Above_Right':\n case 'Attached_Above':\n case 'Attached_Above_Right':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') baseBox.maxY += yGap;\n position.yOffset = baseBox.maxY - markBox.minY;\n baseBox.maxY += markBox.height;\n break;\n }\n position.xAdvance = position.yAdvance = 0;\n position.xOffset += xOffset;\n position.yOffset += yOffset;\n } else {\n xOffset -= position.xAdvance;\n yOffset -= position.yAdvance;\n }\n }\n return;\n }\n getCombiningClass(codePoint) {\n let combiningClass = (0, $6uUbQ$getCombiningClass)(codePoint);\n // Thai / Lao need some per-character work\n if ((codePoint & -256) === 0x0e00) {\n if (combiningClass === 'Not_Reordered') switch(codePoint){\n case 0x0e31:\n case 0x0e34:\n case 0x0e35:\n case 0x0e36:\n case 0x0e37:\n case 0x0e47:\n case 0x0e4c:\n case 0x0e3d:\n case 0x0e4e:\n return 'Above_Right';\n case 0x0eb1:\n case 0x0eb4:\n case 0x0eb5:\n case 0x0eb6:\n case 0x0eb7:\n case 0x0ebb:\n case 0x0ecc:\n case 0x0ecd:\n return 'Above';\n case 0x0ebc:\n return 'Below';\n }\n else if (codePoint === 0x0e3a) return 'Below_Right';\n }\n switch(combiningClass){\n // Hebrew\n case 'CCC10':\n case 'CCC11':\n case 'CCC12':\n case 'CCC13':\n case 'CCC14':\n case 'CCC15':\n case 'CCC16':\n case 'CCC17':\n case 'CCC18':\n case 'CCC20':\n case 'CCC22':\n return 'Below';\n case 'CCC23':\n return 'Attached_Above';\n case 'CCC24':\n return 'Above_Right';\n case 'CCC25':\n case 'CCC19':\n return 'Above_Left';\n case 'CCC26':\n return 'Above';\n case 'CCC21':\n break;\n // Arabic and Syriac\n case 'CCC27':\n case 'CCC28':\n case 'CCC30':\n case 'CCC31':\n case 'CCC33':\n case 'CCC34':\n case 'CCC35':\n case 'CCC36':\n return 'Above';\n case 'CCC29':\n case 'CCC32':\n return 'Below';\n // Thai\n case 'CCC103':\n return 'Below_Right';\n case 'CCC107':\n return 'Above_Right';\n // Lao\n case 'CCC118':\n return 'Below';\n case 'CCC122':\n return 'Above';\n // Tibetan\n case 'CCC129':\n case 'CCC132':\n return 'Below';\n case 'CCC130':\n return 'Above';\n }\n return combiningClass;\n }\n constructor(font){\n this.font = font;\n }\n}\n\n\n/**\n * Represents a glyph bounding box\n */ class $f34600ab9d7f70d8$export$2e2bcd8739ae039 {\n /**\n * The width of the bounding box\n * @type {number}\n */ get width() {\n return this.maxX - this.minX;\n }\n /**\n * The height of the bounding box\n * @type {number}\n */ get height() {\n return this.maxY - this.minY;\n }\n addPoint(x, y) {\n if (Math.abs(x) !== Infinity) {\n if (x < this.minX) this.minX = x;\n if (x > this.maxX) this.maxX = x;\n }\n if (Math.abs(y) !== Infinity) {\n if (y < this.minY) this.minY = y;\n if (y > this.maxY) this.maxY = y;\n }\n }\n copy() {\n return new $f34600ab9d7f70d8$export$2e2bcd8739ae039(this.minX, this.minY, this.maxX, this.maxY);\n }\n constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity){\n /**\n * The minimum X position in the bounding box\n * @type {number}\n */ this.minX = minX;\n /**\n * The minimum Y position in the bounding box\n * @type {number}\n */ this.minY = minY;\n /**\n * The maxmimum X position in the bounding box\n * @type {number}\n */ this.maxX = maxX;\n /**\n * The maxmimum Y position in the bounding box\n * @type {number}\n */ this.maxY = maxY;\n }\n}\n\n\n\n// This maps the Unicode Script property to an OpenType script tag\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\nconst $130d1a642ebcd2b7$var$UNICODE_SCRIPTS = {\n Caucasian_Albanian: 'aghb',\n Arabic: 'arab',\n Imperial_Aramaic: 'armi',\n Armenian: 'armn',\n Avestan: 'avst',\n Balinese: 'bali',\n Bamum: 'bamu',\n Bassa_Vah: 'bass',\n Batak: 'batk',\n Bengali: [\n 'bng2',\n 'beng'\n ],\n Bopomofo: 'bopo',\n Brahmi: 'brah',\n Braille: 'brai',\n Buginese: 'bugi',\n Buhid: 'buhd',\n Chakma: 'cakm',\n Canadian_Aboriginal: 'cans',\n Carian: 'cari',\n Cham: 'cham',\n Cherokee: 'cher',\n Coptic: 'copt',\n Cypriot: 'cprt',\n Cyrillic: 'cyrl',\n Devanagari: [\n 'dev2',\n 'deva'\n ],\n Deseret: 'dsrt',\n Duployan: 'dupl',\n Egyptian_Hieroglyphs: 'egyp',\n Elbasan: 'elba',\n Ethiopic: 'ethi',\n Georgian: 'geor',\n Glagolitic: 'glag',\n Gothic: 'goth',\n Grantha: 'gran',\n Greek: 'grek',\n Gujarati: [\n 'gjr2',\n 'gujr'\n ],\n Gurmukhi: [\n 'gur2',\n 'guru'\n ],\n Hangul: 'hang',\n Han: 'hani',\n Hanunoo: 'hano',\n Hebrew: 'hebr',\n Hiragana: 'hira',\n Pahawh_Hmong: 'hmng',\n Katakana_Or_Hiragana: 'hrkt',\n Old_Italic: 'ital',\n Javanese: 'java',\n Kayah_Li: 'kali',\n Katakana: 'kana',\n Kharoshthi: 'khar',\n Khmer: 'khmr',\n Khojki: 'khoj',\n Kannada: [\n 'knd2',\n 'knda'\n ],\n Kaithi: 'kthi',\n Tai_Tham: 'lana',\n Lao: 'lao ',\n Latin: 'latn',\n Lepcha: 'lepc',\n Limbu: 'limb',\n Linear_A: 'lina',\n Linear_B: 'linb',\n Lisu: 'lisu',\n Lycian: 'lyci',\n Lydian: 'lydi',\n Mahajani: 'mahj',\n Mandaic: 'mand',\n Manichaean: 'mani',\n Mende_Kikakui: 'mend',\n Meroitic_Cursive: 'merc',\n Meroitic_Hieroglyphs: 'mero',\n Malayalam: [\n 'mlm2',\n 'mlym'\n ],\n Modi: 'modi',\n Mongolian: 'mong',\n Mro: 'mroo',\n Meetei_Mayek: 'mtei',\n Myanmar: [\n 'mym2',\n 'mymr'\n ],\n Old_North_Arabian: 'narb',\n Nabataean: 'nbat',\n Nko: 'nko ',\n Ogham: 'ogam',\n Ol_Chiki: 'olck',\n Old_Turkic: 'orkh',\n Oriya: [\n 'ory2',\n 'orya'\n ],\n Osmanya: 'osma',\n Palmyrene: 'palm',\n Pau_Cin_Hau: 'pauc',\n Old_Permic: 'perm',\n Phags_Pa: 'phag',\n Inscriptional_Pahlavi: 'phli',\n Psalter_Pahlavi: 'phlp',\n Phoenician: 'phnx',\n Miao: 'plrd',\n Inscriptional_Parthian: 'prti',\n Rejang: 'rjng',\n Runic: 'runr',\n Samaritan: 'samr',\n Old_South_Arabian: 'sarb',\n Saurashtra: 'saur',\n Shavian: 'shaw',\n Sharada: 'shrd',\n Siddham: 'sidd',\n Khudawadi: 'sind',\n Sinhala: 'sinh',\n Sora_Sompeng: 'sora',\n Sundanese: 'sund',\n Syloti_Nagri: 'sylo',\n Syriac: 'syrc',\n Tagbanwa: 'tagb',\n Takri: 'takr',\n Tai_Le: 'tale',\n New_Tai_Lue: 'talu',\n Tamil: [\n 'tml2',\n 'taml'\n ],\n Tai_Viet: 'tavt',\n Telugu: [\n 'tel2',\n 'telu'\n ],\n Tifinagh: 'tfng',\n Tagalog: 'tglg',\n Thaana: 'thaa',\n Thai: 'thai',\n Tibetan: 'tibt',\n Tirhuta: 'tirh',\n Ugaritic: 'ugar',\n Vai: 'vai ',\n Warang_Citi: 'wara',\n Old_Persian: 'xpeo',\n Cuneiform: 'xsux',\n Yi: 'yi ',\n Inherited: 'zinh',\n Common: 'zyyy',\n Unknown: 'zzzz'\n};\nconst $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS = {};\nfor(let script in $130d1a642ebcd2b7$var$UNICODE_SCRIPTS){\n let tag = $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n if (Array.isArray(tag)) for (let t of tag)$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[t] = script;\n else $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag] = script;\n}\nfunction $130d1a642ebcd2b7$export$b32f0b5f69d65e51(script) {\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n}\nfunction $130d1a642ebcd2b7$export$ce50e82f12a827a4(tag) {\n return $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag];\n}\nfunction $130d1a642ebcd2b7$export$e5cb25e204fb8450(string) {\n let len = string.length;\n let idx = 0;\n while(idx < len){\n let code = string.charCodeAt(idx++);\n // Check if this is a high surrogate\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n // Check if this is a low surrogate\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n }\n }\n let script = (0, $6uUbQ$getScript)(code);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\nfunction $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints) {\n for(let i = 0; i < codePoints.length; i++){\n let codePoint = codePoints[i];\n let script = (0, $6uUbQ$getScript)(codePoint);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\n// The scripts in this map are written from right to left\nconst $130d1a642ebcd2b7$var$RTL = {\n arab: true,\n hebr: true,\n syrc: true,\n thaa: true,\n cprt: true,\n khar: true,\n phnx: true,\n 'nko ': true,\n lydi: true,\n avst: true,\n armi: true,\n phli: true,\n prti: true,\n sarb: true,\n orkh: true,\n samr: true,\n mand: true,\n merc: true,\n mero: true,\n // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n mani: true,\n mend: true,\n nbat: true,\n narb: true,\n palm: true,\n phlp: true // Psalter Pahlavi\n};\nfunction $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script) {\n if ($130d1a642ebcd2b7$var$RTL[script]) return 'rtl';\n return 'ltr';\n}\n\n\nclass $be07b3e97a42687a$export$2e2bcd8739ae039 {\n /**\n * The total advance width of the run.\n * @type {number}\n */ get advanceWidth() {\n let width = 0;\n for (let position of this.positions)width += position.xAdvance;\n return width;\n }\n /**\n * The total advance height of the run.\n * @type {number}\n */ get advanceHeight() {\n let height = 0;\n for (let position of this.positions)height += position.yAdvance;\n return height;\n }\n /**\n * The bounding box containing all glyphs in the run.\n * @type {BBox}\n */ get bbox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let x = 0;\n let y = 0;\n for(let index = 0; index < this.glyphs.length; index++){\n let glyph = this.glyphs[index];\n let p = this.positions[index];\n let b = glyph.bbox;\n bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n x += p.xAdvance;\n y += p.yAdvance;\n }\n return bbox;\n }\n constructor(glyphs, features, script, language, direction){\n /**\n * An array of Glyph objects in the run\n * @type {Glyph[]}\n */ this.glyphs = glyphs;\n /**\n * An array of GlyphPosition objects for each glyph in the run\n * @type {GlyphPosition[]}\n */ this.positions = null;\n /**\n * The script that was requested for shaping. This was either passed in or detected automatically.\n * @type {string}\n */ this.script = script;\n /**\n * The language requested for shaping, as passed in. If `null`, the default language for the\n * script was used.\n * @type {string}\n */ this.language = language || null;\n /**\n * The direction requested for shaping, as passed in (either ltr or rtl).\n * If `null`, the default direction of the script is used.\n * @type {string}\n */ this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n /**\n * The features requested during shaping. This is a combination of user\n * specified features and features chosen by the shaper.\n * @type {object}\n */ this.features = {};\n // Convert features to an object\n if (Array.isArray(features)) for (let tag of features)this.features[tag] = true;\n else if (typeof features === 'object') this.features = features;\n }\n}\n\n\n/**\n * Represents positioning information for a glyph in a GlyphRun.\n */ class $1ac75d9a55b67f01$export$2e2bcd8739ae039 {\n constructor(xAdvance = 0, yAdvance = 0, xOffset = 0, yOffset = 0){\n /**\n * The amount to move the virtual pen in the X direction after rendering this glyph.\n * @type {number}\n */ this.xAdvance = xAdvance;\n /**\n * The amount to move the virtual pen in the Y direction after rendering this glyph.\n * @type {number}\n */ this.yAdvance = yAdvance;\n /**\n * The offset from the pen position in the X direction at which to render this glyph.\n * @type {number}\n */ this.xOffset = xOffset;\n /**\n * The offset from the pen position in the Y direction at which to render this glyph.\n * @type {number}\n */ this.yOffset = yOffset;\n }\n}\n\n\n\n// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nconst $3b6302b64eccc32c$var$features = {\n allTypographicFeatures: {\n code: 0,\n exclusive: false,\n allTypeFeatures: 0\n },\n ligatures: {\n code: 1,\n exclusive: false,\n requiredLigatures: 0,\n commonLigatures: 2,\n rareLigatures: 4,\n // logos: 6\n rebusPictures: 8,\n diphthongLigatures: 10,\n squaredLigatures: 12,\n abbrevSquaredLigatures: 14,\n symbolLigatures: 16,\n contextualLigatures: 18,\n historicalLigatures: 20\n },\n cursiveConnection: {\n code: 2,\n exclusive: true,\n unconnected: 0,\n partiallyConnected: 1,\n cursive: 2\n },\n letterCase: {\n code: 3,\n exclusive: true\n },\n // upperAndLowerCase: 0 # deprecated\n // allCaps: 1 # deprecated\n // allLowerCase: 2 # deprecated\n // smallCaps: 3 # deprecated\n // initialCaps: 4 # deprecated\n // initialCapsAndSmallCaps: 5 # deprecated\n verticalSubstitution: {\n code: 4,\n exclusive: false,\n substituteVerticalForms: 0\n },\n linguisticRearrangement: {\n code: 5,\n exclusive: false,\n linguisticRearrangement: 0\n },\n numberSpacing: {\n code: 6,\n exclusive: true,\n monospacedNumbers: 0,\n proportionalNumbers: 1,\n thirdWidthNumbers: 2,\n quarterWidthNumbers: 3\n },\n smartSwash: {\n code: 8,\n exclusive: false,\n wordInitialSwashes: 0,\n wordFinalSwashes: 2,\n // lineInitialSwashes: 4\n // lineFinalSwashes: 6\n nonFinalSwashes: 8\n },\n diacritics: {\n code: 9,\n exclusive: true,\n showDiacritics: 0,\n hideDiacritics: 1,\n decomposeDiacritics: 2\n },\n verticalPosition: {\n code: 10,\n exclusive: true,\n normalPosition: 0,\n superiors: 1,\n inferiors: 2,\n ordinals: 3,\n scientificInferiors: 4\n },\n fractions: {\n code: 11,\n exclusive: true,\n noFractions: 0,\n verticalFractions: 1,\n diagonalFractions: 2\n },\n overlappingCharacters: {\n code: 13,\n exclusive: false,\n preventOverlap: 0\n },\n typographicExtras: {\n code: 14,\n exclusive: false,\n // hyphensToEmDash: 0\n // hyphenToEnDash: 2\n slashedZero: 4\n },\n // formInterrobang: 6\n // smartQuotes: 8\n // periodsToEllipsis: 10\n mathematicalExtras: {\n code: 15,\n exclusive: false,\n // hyphenToMinus: 0\n // asteristoMultiply: 2\n // slashToDivide: 4\n // inequalityLigatures: 6\n // exponents: 8\n mathematicalGreek: 10\n },\n ornamentSets: {\n code: 16,\n exclusive: true,\n noOrnaments: 0,\n dingbats: 1,\n piCharacters: 2,\n fleurons: 3,\n decorativeBorders: 4,\n internationalSymbols: 5,\n mathSymbols: 6\n },\n characterAlternatives: {\n code: 17,\n exclusive: true,\n noAlternates: 0\n },\n // user defined options\n designComplexity: {\n code: 18,\n exclusive: true,\n designLevel1: 0,\n designLevel2: 1,\n designLevel3: 2,\n designLevel4: 3,\n designLevel5: 4\n },\n styleOptions: {\n code: 19,\n exclusive: true,\n noStyleOptions: 0,\n displayText: 1,\n engravedText: 2,\n illuminatedCaps: 3,\n titlingCaps: 4,\n tallCaps: 5\n },\n characterShape: {\n code: 20,\n exclusive: true,\n traditionalCharacters: 0,\n simplifiedCharacters: 1,\n JIS1978Characters: 2,\n JIS1983Characters: 3,\n JIS1990Characters: 4,\n traditionalAltOne: 5,\n traditionalAltTwo: 6,\n traditionalAltThree: 7,\n traditionalAltFour: 8,\n traditionalAltFive: 9,\n expertCharacters: 10,\n JIS2004Characters: 11,\n hojoCharacters: 12,\n NLCCharacters: 13,\n traditionalNamesCharacters: 14\n },\n numberCase: {\n code: 21,\n exclusive: true,\n lowerCaseNumbers: 0,\n upperCaseNumbers: 1\n },\n textSpacing: {\n code: 22,\n exclusive: true,\n proportionalText: 0,\n monospacedText: 1,\n halfWidthText: 2,\n thirdWidthText: 3,\n quarterWidthText: 4,\n altProportionalText: 5,\n altHalfWidthText: 6\n },\n transliteration: {\n code: 23,\n exclusive: true,\n noTransliteration: 0\n },\n // hanjaToHangul: 1\n // hiraganaToKatakana: 2\n // katakanaToHiragana: 3\n // kanaToRomanization: 4\n // romanizationToHiragana: 5\n // romanizationToKatakana: 6\n // hanjaToHangulAltOne: 7\n // hanjaToHangulAltTwo: 8\n // hanjaToHangulAltThree: 9\n annotation: {\n code: 24,\n exclusive: true,\n noAnnotation: 0,\n boxAnnotation: 1,\n roundedBoxAnnotation: 2,\n circleAnnotation: 3,\n invertedCircleAnnotation: 4,\n parenthesisAnnotation: 5,\n periodAnnotation: 6,\n romanNumeralAnnotation: 7,\n diamondAnnotation: 8,\n invertedBoxAnnotation: 9,\n invertedRoundedBoxAnnotation: 10\n },\n kanaSpacing: {\n code: 25,\n exclusive: true,\n fullWidthKana: 0,\n proportionalKana: 1\n },\n ideographicSpacing: {\n code: 26,\n exclusive: true,\n fullWidthIdeographs: 0,\n proportionalIdeographs: 1,\n halfWidthIdeographs: 2\n },\n unicodeDecomposition: {\n code: 27,\n exclusive: false,\n canonicalComposition: 0,\n compatibilityComposition: 2,\n transcodingComposition: 4\n },\n rubyKana: {\n code: 28,\n exclusive: false,\n // noRubyKana: 0 # deprecated - use rubyKanaOff instead\n // rubyKana: 1 # deprecated - use rubyKanaOn instead\n rubyKana: 2\n },\n CJKSymbolAlternatives: {\n code: 29,\n exclusive: true,\n noCJKSymbolAlternatives: 0,\n CJKSymbolAltOne: 1,\n CJKSymbolAltTwo: 2,\n CJKSymbolAltThree: 3,\n CJKSymbolAltFour: 4,\n CJKSymbolAltFive: 5\n },\n ideographicAlternatives: {\n code: 30,\n exclusive: true,\n noIdeographicAlternatives: 0,\n ideographicAltOne: 1,\n ideographicAltTwo: 2,\n ideographicAltThree: 3,\n ideographicAltFour: 4,\n ideographicAltFive: 5\n },\n CJKVerticalRomanPlacement: {\n code: 31,\n exclusive: true,\n CJKVerticalRomanCentered: 0,\n CJKVerticalRomanHBaseline: 1\n },\n italicCJKRoman: {\n code: 32,\n exclusive: false,\n // noCJKItalicRoman: 0 # deprecated - use CJKItalicRomanOff instead\n // CJKItalicRoman: 1 # deprecated - use CJKItalicRomanOn instead\n CJKItalicRoman: 2\n },\n caseSensitiveLayout: {\n code: 33,\n exclusive: false,\n caseSensitiveLayout: 0,\n caseSensitiveSpacing: 2\n },\n alternateKana: {\n code: 34,\n exclusive: false,\n alternateHorizKana: 0,\n alternateVertKana: 2\n },\n stylisticAlternatives: {\n code: 35,\n exclusive: false,\n noStylisticAlternates: 0,\n stylisticAltOne: 2,\n stylisticAltTwo: 4,\n stylisticAltThree: 6,\n stylisticAltFour: 8,\n stylisticAltFive: 10,\n stylisticAltSix: 12,\n stylisticAltSeven: 14,\n stylisticAltEight: 16,\n stylisticAltNine: 18,\n stylisticAltTen: 20,\n stylisticAltEleven: 22,\n stylisticAltTwelve: 24,\n stylisticAltThirteen: 26,\n stylisticAltFourteen: 28,\n stylisticAltFifteen: 30,\n stylisticAltSixteen: 32,\n stylisticAltSeventeen: 34,\n stylisticAltEighteen: 36,\n stylisticAltNineteen: 38,\n stylisticAltTwenty: 40\n },\n contextualAlternates: {\n code: 36,\n exclusive: false,\n contextualAlternates: 0,\n swashAlternates: 2,\n contextualSwashAlternates: 4\n },\n lowerCase: {\n code: 37,\n exclusive: true,\n defaultLowerCase: 0,\n lowerCaseSmallCaps: 1,\n lowerCasePetiteCaps: 2\n },\n upperCase: {\n code: 38,\n exclusive: true,\n defaultUpperCase: 0,\n upperCaseSmallCaps: 1,\n upperCasePetiteCaps: 2\n },\n languageTag: {\n code: 39,\n exclusive: true\n },\n CJKRomanSpacing: {\n code: 103,\n exclusive: true,\n halfWidthCJKRoman: 0,\n proportionalCJKRoman: 1,\n defaultCJKRoman: 2,\n fullWidthCJKRoman: 3\n }\n};\nconst $3b6302b64eccc32c$var$feature = (name, selector)=>[\n $3b6302b64eccc32c$var$features[name].code,\n $3b6302b64eccc32c$var$features[name][selector]\n ];\nconst $3b6302b64eccc32c$var$OTMapping = {\n rlig: $3b6302b64eccc32c$var$feature('ligatures', 'requiredLigatures'),\n clig: $3b6302b64eccc32c$var$feature('ligatures', 'contextualLigatures'),\n dlig: $3b6302b64eccc32c$var$feature('ligatures', 'rareLigatures'),\n hlig: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n liga: $3b6302b64eccc32c$var$feature('ligatures', 'commonLigatures'),\n hist: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n smcp: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCaseSmallCaps'),\n pcap: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCasePetiteCaps'),\n frac: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n dnom: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n numr: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n afrc: $3b6302b64eccc32c$var$feature('fractions', 'verticalFractions'),\n // aalt\n // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n // unic, vatu, vhal, vjmo, vpal, vrt2\n // dist -> trak table?\n // kern, vkrn -> kern table\n // lfbd + opbd + rtbd -> opbd table?\n // mark, mkmk -> acnt table?\n // locl -> languageTag + ltag table\n case: $3b6302b64eccc32c$var$feature('caseSensitiveLayout', 'caseSensitiveLayout'),\n ccmp: $3b6302b64eccc32c$var$feature('unicodeDecomposition', 'canonicalComposition'),\n cpct: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n valt: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n swsh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'swashAlternates'),\n cswh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualSwashAlternates'),\n curs: $3b6302b64eccc32c$var$feature('cursiveConnection', 'cursive'),\n c2pc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCasePetiteCaps'),\n c2sc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCaseSmallCaps'),\n init: $3b6302b64eccc32c$var$feature('smartSwash', 'wordInitialSwashes'),\n fin2: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n medi: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n med2: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n fin3: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n fina: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n pkna: $3b6302b64eccc32c$var$feature('kanaSpacing', 'proportionalKana'),\n half: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n halt: $3b6302b64eccc32c$var$feature('textSpacing', 'altHalfWidthText'),\n hkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateHorizKana'),\n vkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateVertKana'),\n // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n ital: $3b6302b64eccc32c$var$feature('italicCJKRoman', 'CJKItalicRoman'),\n lnum: $3b6302b64eccc32c$var$feature('numberCase', 'upperCaseNumbers'),\n onum: $3b6302b64eccc32c$var$feature('numberCase', 'lowerCaseNumbers'),\n mgrk: $3b6302b64eccc32c$var$feature('mathematicalExtras', 'mathematicalGreek'),\n // nalt: not enough info. what type of annotation?\n // ornm: ditto, which ornament style?\n calt: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualAlternates'),\n vrt2: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n vert: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n tnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'monospacedNumbers'),\n pnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'proportionalNumbers'),\n sups: $3b6302b64eccc32c$var$feature('verticalPosition', 'superiors'),\n subs: $3b6302b64eccc32c$var$feature('verticalPosition', 'inferiors'),\n ordn: $3b6302b64eccc32c$var$feature('verticalPosition', 'ordinals'),\n pwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n hwid: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n qwid: $3b6302b64eccc32c$var$feature('textSpacing', 'quarterWidthText'),\n twid: $3b6302b64eccc32c$var$feature('textSpacing', 'thirdWidthText'),\n fwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n palt: $3b6302b64eccc32c$var$feature('textSpacing', 'altProportionalText'),\n trad: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalCharacters'),\n smpl: $3b6302b64eccc32c$var$feature('characterShape', 'simplifiedCharacters'),\n jp78: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1978Characters'),\n jp83: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1983Characters'),\n jp90: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1990Characters'),\n jp04: $3b6302b64eccc32c$var$feature('characterShape', 'JIS2004Characters'),\n expt: $3b6302b64eccc32c$var$feature('characterShape', 'expertCharacters'),\n hojo: $3b6302b64eccc32c$var$feature('characterShape', 'hojoCharacters'),\n nlck: $3b6302b64eccc32c$var$feature('characterShape', 'NLCCharacters'),\n tnam: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalNamesCharacters'),\n ruby: $3b6302b64eccc32c$var$feature('rubyKana', 'rubyKana'),\n titl: $3b6302b64eccc32c$var$feature('styleOptions', 'titlingCaps'),\n zero: $3b6302b64eccc32c$var$feature('typographicExtras', 'slashedZero'),\n ss01: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltOne'),\n ss02: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwo'),\n ss03: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThree'),\n ss04: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFour'),\n ss05: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFive'),\n ss06: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSix'),\n ss07: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeven'),\n ss08: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEight'),\n ss09: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNine'),\n ss10: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTen'),\n ss11: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEleven'),\n ss12: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwelve'),\n ss13: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThirteen'),\n ss14: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFourteen'),\n ss15: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFifteen'),\n ss16: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSixteen'),\n ss17: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n ss18: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEighteen'),\n ss19: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNineteen'),\n ss20: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwenty')\n};\n// salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n// Add cv01-cv99 features\nfor(let i = 1; i <= 99; i++)$3b6302b64eccc32c$var$OTMapping[`cv${`00${i}`.slice(-2)}`] = [\n $3b6302b64eccc32c$var$features.characterAlternatives.code,\n i\n];\n// create inverse mapping\nlet $3b6302b64eccc32c$var$AATMapping = {};\nfor(let ot in $3b6302b64eccc32c$var$OTMapping){\n let aat = $3b6302b64eccc32c$var$OTMapping[ot];\n if ($3b6302b64eccc32c$var$AATMapping[aat[0]] == null) $3b6302b64eccc32c$var$AATMapping[aat[0]] = {};\n $3b6302b64eccc32c$var$AATMapping[aat[0]][aat[1]] = ot;\n}\nfunction $3b6302b64eccc32c$export$b813f7d2a1677c16(features) {\n let res = {};\n for(let k in features){\n let r;\n if (r = $3b6302b64eccc32c$var$OTMapping[k]) {\n if (res[r[0]] == null) res[r[0]] = {};\n res[r[0]][r[1]] = features[k];\n }\n }\n return res;\n}\n// Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\nfunction $3b6302b64eccc32c$var$mapFeatureStrings(f) {\n let [type, setting] = f;\n if (isNaN(type)) var typeCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type].code;\n else var typeCode = type;\n if (isNaN(setting)) var settingCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type][setting];\n else var settingCode = setting;\n return [\n typeCode,\n settingCode\n ];\n}\nfunction $3b6302b64eccc32c$export$bd6df347a4f391c4(features) {\n let res = {};\n if (Array.isArray(features)) for(let k = 0; k < features.length; k++){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings(features[k]);\n if (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]]) res[r] = true;\n }\n else if (typeof features === 'object') for(let type in features){\n let feature = features[type];\n for(let setting in feature){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings([\n type,\n setting\n ]);\n if (feature[setting] && (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]])) res[r] = true;\n }\n }\n return Object.keys(res);\n}\n\n\n\n\n\n\n\nclass $ff5ce077dae0f144$export$2e2bcd8739ae039 {\n lookup(glyph) {\n switch(this.table.version){\n case 0:\n return this.table.values.getItem(glyph);\n case 2:\n case 4:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.firstGlyph === 0xffff) return null;\n if (glyph < seg.firstGlyph) max = mid - 1;\n else if (glyph > seg.lastGlyph) min = mid + 1;\n else {\n if (this.table.version === 2) return seg.value;\n else return seg.values[glyph - seg.firstGlyph];\n }\n }\n return null;\n }\n case 6:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.glyph === 0xffff) return null;\n if (glyph < seg.glyph) max = mid - 1;\n else if (glyph > seg.glyph) min = mid + 1;\n else return seg.value;\n }\n return null;\n }\n case 8:\n return this.table.values[glyph - this.table.firstGlyph];\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n }\n glyphsForValue(classValue) {\n let res = [];\n switch(this.table.version){\n case 2:\n case 4:\n for (let segment of this.table.segments)if (this.table.version === 2 && segment.value === classValue) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(segment.firstGlyph, segment.lastGlyph + 1));\n else {\n for(let index = 0; index < segment.values.length; index++)if (segment.values[index] === classValue) res.push(segment.firstGlyph + index);\n }\n break;\n case 6:\n for (let segment of this.table.segments)if (segment.value === classValue) res.push(segment.glyph);\n break;\n case 8:\n for(let i = 0; i < this.table.values.length; i++)if (this.table.values[i] === classValue) res.push(this.table.firstGlyph + i);\n break;\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n return res;\n }\n constructor(table){\n this.table = table;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $ff5ce077dae0f144$export$2e2bcd8739ae039.prototype, \"glyphsForValue\", null);\n\n\nconst $50c7aac9316f2948$var$START_OF_TEXT_STATE = 0;\nconst $50c7aac9316f2948$var$START_OF_LINE_STATE = 1;\nconst $50c7aac9316f2948$var$END_OF_TEXT_CLASS = 0;\nconst $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS = 1;\nconst $50c7aac9316f2948$var$DELETED_GLYPH_CLASS = 2;\nconst $50c7aac9316f2948$var$END_OF_LINE_CLASS = 3;\nconst $50c7aac9316f2948$var$DONT_ADVANCE = 0x4000;\nclass $50c7aac9316f2948$export$2e2bcd8739ae039 {\n process(glyphs, reverse, processEntry) {\n let currentState = $50c7aac9316f2948$var$START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n let index = reverse ? glyphs.length - 1 : 0;\n let dir = reverse ? -1 : 1;\n while(dir === 1 && index <= glyphs.length || dir === -1 && index >= -1){\n let glyph = null;\n let classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n let shouldAdvance = true;\n if (index === glyphs.length || index === -1) classCode = $50c7aac9316f2948$var$END_OF_TEXT_CLASS;\n else {\n glyph = glyphs[index];\n if (glyph.id === 0xffff) classCode = $50c7aac9316f2948$var$DELETED_GLYPH_CLASS;\n else {\n classCode = this.lookupTable.lookup(glyph.id);\n if (classCode == null) classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n }\n }\n let row = this.stateTable.stateArray.getItem(currentState);\n let entryIndex = row[classCode];\n let entry = this.stateTable.entryTable.getItem(entryIndex);\n if (classCode !== $50c7aac9316f2948$var$END_OF_TEXT_CLASS && classCode !== $50c7aac9316f2948$var$DELETED_GLYPH_CLASS) {\n processEntry(glyph, entry, index);\n shouldAdvance = !(entry.flags & $50c7aac9316f2948$var$DONT_ADVANCE);\n }\n currentState = entry.newState;\n if (shouldAdvance) index += dir;\n }\n return glyphs;\n }\n /**\n * Performs a depth-first traversal of the glyph strings\n * represented by the state machine.\n */ traverse(opts, state = 0, visited = new Set) {\n if (visited.has(state)) return;\n visited.add(state);\n let { nClasses: nClasses, stateArray: stateArray, entryTable: entryTable } = this.stateTable;\n let row = stateArray.getItem(state);\n // Skip predefined classes\n for(let classCode = 4; classCode < nClasses; classCode++){\n let entryIndex = row[classCode];\n let entry = entryTable.getItem(entryIndex);\n // Try all glyphs in the class\n for (let glyph of this.lookupTable.glyphsForValue(classCode)){\n if (opts.enter) opts.enter(glyph, entry);\n if (entry.newState !== 0) this.traverse(opts, entry.newState, visited);\n if (opts.exit) opts.exit(glyph, entry);\n }\n }\n }\n constructor(stateTable){\n this.stateTable = stateTable;\n this.lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(stateTable.classTable);\n }\n}\n\n\n\n\n// indic replacement flags\nconst $55f71433a605c87d$var$MARK_FIRST = 0x8000;\nconst $55f71433a605c87d$var$MARK_LAST = 0x2000;\nconst $55f71433a605c87d$var$VERB = 0x000F;\n// contextual substitution and glyph insertion flag\nconst $55f71433a605c87d$var$SET_MARK = 0x8000;\n// ligature entry flags\nconst $55f71433a605c87d$var$SET_COMPONENT = 0x8000;\nconst $55f71433a605c87d$var$PERFORM_ACTION = 0x2000;\n// ligature action masks\nconst $55f71433a605c87d$var$LAST_MASK = 0x80000000;\nconst $55f71433a605c87d$var$STORE_MASK = 0x40000000;\nconst $55f71433a605c87d$var$OFFSET_MASK = 0x3FFFFFFF;\nconst $55f71433a605c87d$var$VERTICAL_ONLY = 0x800000;\nconst $55f71433a605c87d$var$REVERSE_DIRECTION = 0x400000;\nconst $55f71433a605c87d$var$HORIZONTAL_AND_VERTICAL = 0x200000;\n// glyph insertion flags\nconst $55f71433a605c87d$var$CURRENT_IS_KASHIDA_LIKE = 0x2000;\nconst $55f71433a605c87d$var$MARKED_IS_KASHIDA_LIKE = 0x1000;\nconst $55f71433a605c87d$var$CURRENT_INSERT_BEFORE = 0x0800;\nconst $55f71433a605c87d$var$MARKED_INSERT_BEFORE = 0x0400;\nconst $55f71433a605c87d$var$CURRENT_INSERT_COUNT = 0x03E0;\nconst $55f71433a605c87d$var$MARKED_INSERT_COUNT = 0x001F;\nclass $55f71433a605c87d$export$2e2bcd8739ae039 {\n // Processes an array of glyphs and applies the specified features\n // Features should be in the form of {featureType:{featureSetting:boolean}}\n process(glyphs, features = {}) {\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n // enable/disable the requested features\n for (let feature of chain.features){\n let f;\n if (f = features[feature.featureType]) {\n if (f[feature.featureSetting]) {\n flags &= feature.disableFlags;\n flags |= feature.enableFlags;\n } else if (f[feature.featureSetting] === false) {\n flags |= ~feature.disableFlags;\n flags &= ~feature.enableFlags;\n }\n }\n }\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.processSubtable(subtable, glyphs);\n }\n // remove deleted glyphs\n let index = glyphs.length - 1;\n while(index >= 0){\n if (glyphs[index].id === 0xffff) glyphs.splice(index, 1);\n index--;\n }\n return glyphs;\n }\n processSubtable(subtable, glyphs) {\n this.subtable = subtable;\n this.glyphs = glyphs;\n if (this.subtable.type === 4) {\n this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n return;\n }\n this.ligatureStack = [];\n this.markedGlyph = null;\n this.firstGlyph = null;\n this.lastGlyph = null;\n this.markedIndex = null;\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let reverse = !!(this.subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n return stateMachine.process(this.glyphs, reverse, process);\n }\n getStateMachine(subtable) {\n return new (0, $50c7aac9316f2948$export$2e2bcd8739ae039)(subtable.table.stateTable);\n }\n getProcessor() {\n switch(this.subtable.type){\n case 0:\n return this.processIndicRearragement;\n case 1:\n return this.processContextualSubstitution;\n case 2:\n return this.processLigature;\n case 4:\n return this.processNoncontextualSubstitutions;\n case 5:\n return this.processGlyphInsertion;\n default:\n throw new Error(`Invalid morx subtable type: ${this.subtable.type}`);\n }\n }\n processIndicRearragement(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$MARK_FIRST) this.firstGlyph = index;\n if (entry.flags & $55f71433a605c87d$var$MARK_LAST) this.lastGlyph = index;\n $55f71433a605c87d$var$reorderGlyphs(this.glyphs, entry.flags & $55f71433a605c87d$var$VERB, this.firstGlyph, this.lastGlyph);\n }\n processContextualSubstitution(glyph, entry, index) {\n let subsitutions = this.subtable.table.substitutionTable.items;\n if (entry.markIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.markIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[this.markedGlyph];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.currentIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.currentIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[index];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedGlyph = index;\n }\n processLigature(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_COMPONENT) this.ligatureStack.push(index);\n if (entry.flags & $55f71433a605c87d$var$PERFORM_ACTION) {\n let actions = this.subtable.table.ligatureActions;\n let components = this.subtable.table.components;\n let ligatureList = this.subtable.table.ligatureList;\n let actionIndex = entry.action;\n let last = false;\n let ligatureIndex = 0;\n let codePoints = [];\n let ligatureGlyphs = [];\n while(!last){\n let componentGlyph = this.ligatureStack.pop();\n codePoints.unshift(...this.glyphs[componentGlyph].codePoints);\n let action = actions.getItem(actionIndex++);\n last = !!(action & $55f71433a605c87d$var$LAST_MASK);\n let store = !!(action & $55f71433a605c87d$var$STORE_MASK);\n let offset = (action & $55f71433a605c87d$var$OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n offset += this.glyphs[componentGlyph].id;\n let component = components.getItem(offset);\n ligatureIndex += component;\n if (last || store) {\n let ligatureEntry = ligatureList.getItem(ligatureIndex);\n this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n ligatureGlyphs.push(componentGlyph);\n ligatureIndex = 0;\n codePoints = [];\n } else this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n }\n // Put ligature glyph indexes back on the stack\n this.ligatureStack.push(...ligatureGlyphs);\n }\n }\n processNoncontextualSubstitutions(subtable, glyphs, index) {\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(subtable.table.lookupTable);\n for(index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.id !== 0xffff) {\n let gid = lookupTable.lookup(glyph.id);\n if (gid) glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n }\n _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n let insertions = [];\n while(count--){\n let gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n insertions.push(this.font.getGlyph(gid));\n }\n if (!isBefore) glyphIndex++;\n this.glyphs.splice(glyphIndex, 0, ...insertions);\n }\n processGlyphInsertion(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedIndex = index;\n if (entry.markedInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$MARKED_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$MARKED_INSERT_BEFORE);\n this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n }\n if (entry.currentInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_BEFORE);\n this._insertGlyphs(index, entry.currentInsertIndex, count, isBefore);\n }\n }\n getSupportedFeatures() {\n let features = [];\n for (let chain of this.morx.chains)for (let feature of chain.features)features.push([\n feature.featureType,\n feature.featureSetting\n ]);\n return features;\n }\n generateInputs(gid) {\n if (!this.inputCache) this.generateInputCache();\n return this.inputCache[gid] || [];\n }\n generateInputCache() {\n this.inputCache = {};\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.generateInputsForSubtable(subtable);\n }\n }\n generateInputsForSubtable(subtable) {\n // Currently, only supporting ligature subtables.\n if (subtable.type !== 2) return;\n let reverse = !!(subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n if (reverse) throw new Error('Reverse subtable, not supported.');\n this.subtable = subtable;\n this.ligatureStack = [];\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let input = [];\n let stack = [];\n this.glyphs = [];\n stateMachine.traverse({\n enter: (glyph, entry)=>{\n let glyphs = this.glyphs;\n stack.push({\n glyphs: glyphs.slice(),\n ligatureStack: this.ligatureStack.slice()\n });\n // Add glyph to input and glyphs to process.\n let g = this.font.getGlyph(glyph);\n input.push(g);\n glyphs.push(input[input.length - 1]);\n // Process ligature substitution\n process(glyphs[glyphs.length - 1], entry, glyphs.length - 1);\n // Add input to result if only one matching (non-deleted) glyph remains.\n let count = 0;\n let found = 0;\n for(let i = 0; i < glyphs.length && count <= 1; i++)if (glyphs[i].id !== 0xffff) {\n count++;\n found = glyphs[i].id;\n }\n if (count === 1) {\n let result = input.map((g)=>g.id);\n let cache = this.inputCache[found];\n if (cache) cache.push(result);\n else this.inputCache[found] = [\n result\n ];\n }\n },\n exit: ()=>{\n ({ glyphs: this.glyphs, ligatureStack: this.ligatureStack } = stack.pop());\n input.pop();\n }\n });\n }\n constructor(font){\n this.processIndicRearragement = this.processIndicRearragement.bind(this);\n this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n this.processLigature = this.processLigature.bind(this);\n this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n this.font = font;\n this.morx = font.morx;\n this.inputCache = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $55f71433a605c87d$export$2e2bcd8739ae039.prototype, \"getStateMachine\", null);\n// swaps the glyphs in rangeA with those in rangeB\n// reverse the glyphs inside those ranges if specified\n// ranges are in [offset, length] format\nfunction $55f71433a605c87d$var$swap(glyphs, rangeA, rangeB, reverseA = false, reverseB = false) {\n let end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n if (reverseB) end.reverse();\n let start = glyphs.splice(rangeA[0], rangeA[1], ...end);\n if (reverseA) start.reverse();\n glyphs.splice(rangeB[0] - (rangeA[1] - 1), 0, ...start);\n return glyphs;\n}\nfunction $55f71433a605c87d$var$reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n let length = lastGlyph - firstGlyph + 1;\n switch(verb){\n case 0:\n return glyphs;\n case 1:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 0\n ]);\n case 2:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 1\n ]);\n case 3:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 1\n ]);\n case 4:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ]);\n case 5:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ], true, false);\n case 6:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ]);\n case 7:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 8:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ]);\n case 9:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 10:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ]);\n case 11:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ], true, false);\n case 12:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ]);\n case 13:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, false);\n case 14:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 15:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, true);\n default:\n throw new Error(`Unknown verb: ${verb}`);\n }\n}\n\n\nclass $ba6dd74203be8728$export$2e2bcd8739ae039 {\n substitute(glyphRun) {\n // AAT expects the glyphs to be in visual order prior to morx processing,\n // so reverse the glyphs if the script is right-to-left.\n if (glyphRun.direction === 'rtl') glyphRun.glyphs.reverse();\n this.morxProcessor.process(glyphRun.glyphs, $3b6302b64eccc32c$export$b813f7d2a1677c16(glyphRun.features));\n }\n getAvailableFeatures(script, language) {\n return $3b6302b64eccc32c$export$bd6df347a4f391c4(this.morxProcessor.getSupportedFeatures());\n }\n stringsForGlyph(gid) {\n let glyphStrings = this.morxProcessor.generateInputs(gid);\n let result = new Set;\n for (let glyphs of glyphStrings)this._addStrings(glyphs, 0, result, '');\n return result;\n }\n _addStrings(glyphs, index, strings, string) {\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n for (let codePoint of codePoints){\n let s = string + String.fromCodePoint(codePoint);\n if (index < glyphs.length - 1) this._addStrings(glyphs, index + 1, strings, s);\n else strings.add(s);\n }\n }\n constructor(font){\n this.font = font;\n this.morxProcessor = new (0, $55f71433a605c87d$export$2e2bcd8739ae039)(font);\n this.fallbackPosition = false;\n }\n}\n\n\n\nclass $94d7a73bd2edfc9a$export$2e2bcd8739ae039 {\n /**\n * Adds the given features to the last stage.\n * Ignores features that have already been applied.\n */ _addFeatures(features, global) {\n let stageIndex = this.stages.length - 1;\n let stage = this.stages[stageIndex];\n for (let feature of features)if (this.allFeatures[feature] == null) {\n stage.push(feature);\n this.allFeatures[feature] = stageIndex;\n if (global) this.globalFeatures[feature] = true;\n }\n }\n /**\n * Add features to the last stage\n */ add(arg, global = true) {\n if (this.stages.length === 0) this.stages.push([]);\n if (typeof arg === 'string') arg = [\n arg\n ];\n if (Array.isArray(arg)) this._addFeatures(arg, global);\n else if (typeof arg === 'object') {\n this._addFeatures(arg.global || [], true);\n this._addFeatures(arg.local || [], false);\n } else throw new Error(\"Unsupported argument to ShapingPlan#add\");\n }\n /**\n * Add a new stage\n */ addStage(arg, global) {\n if (typeof arg === 'function') this.stages.push(arg, []);\n else {\n this.stages.push([]);\n this.add(arg, global);\n }\n }\n setFeatureOverrides(features) {\n if (Array.isArray(features)) this.add(features);\n else if (typeof features === 'object') for(let tag in features){\n if (features[tag]) this.add(tag);\n else if (this.allFeatures[tag] != null) {\n let stage = this.stages[this.allFeatures[tag]];\n stage.splice(stage.indexOf(tag), 1);\n delete this.allFeatures[tag];\n delete this.globalFeatures[tag];\n }\n }\n }\n /**\n * Assigns the global features to the given glyphs\n */ assignGlobalFeatures(glyphs) {\n for (let glyph of glyphs)for(let feature in this.globalFeatures)glyph.features[feature] = true;\n }\n /**\n * Executes the planned stages using the given OTProcessor\n */ process(processor, glyphs, positions) {\n for (let stage of this.stages){\n if (typeof stage === 'function') {\n if (!positions) stage(this.font, glyphs, this);\n } else if (stage.length > 0) processor.applyFeatures(stage, glyphs, positions);\n }\n }\n constructor(font, script, direction){\n this.font = font;\n this.script = script;\n this.direction = direction;\n this.stages = [];\n this.globalFeatures = {};\n this.allFeatures = {};\n }\n}\n\n\n\n\nconst $649970d87335b30f$var$VARIATION_FEATURES = [\n 'rvrn'\n];\nconst $649970d87335b30f$var$COMMON_FEATURES = [\n 'ccmp',\n 'locl',\n 'rlig',\n 'mark',\n 'mkmk'\n];\nconst $649970d87335b30f$var$FRACTIONAL_FEATURES = [\n 'frac',\n 'numr',\n 'dnom'\n];\nconst $649970d87335b30f$var$HORIZONTAL_FEATURES = [\n 'calt',\n 'clig',\n 'liga',\n 'rclt',\n 'curs',\n 'kern'\n];\nconst $649970d87335b30f$var$VERTICAL_FEATURES = [\n 'vert'\n];\nconst $649970d87335b30f$var$DIRECTIONAL_FEATURES = {\n ltr: [\n 'ltra',\n 'ltrm'\n ],\n rtl: [\n 'rtla',\n 'rtlm'\n ]\n};\nclass $649970d87335b30f$export$2e2bcd8739ae039 {\n static plan(plan, glyphs, features) {\n // Plan the features we want to apply\n this.planPreprocessing(plan);\n this.planFeatures(plan);\n this.planPostprocessing(plan, features);\n // Assign the global features to all the glyphs\n plan.assignGlobalFeatures(glyphs);\n // Assign local features to glyphs\n this.assignFeatures(plan, glyphs);\n }\n static planPreprocessing(plan) {\n plan.add({\n global: [\n ...$649970d87335b30f$var$VARIATION_FEATURES,\n ...$649970d87335b30f$var$DIRECTIONAL_FEATURES[plan.direction]\n ],\n local: $649970d87335b30f$var$FRACTIONAL_FEATURES\n });\n }\n static planFeatures(plan) {\n // Do nothing by default. Let subclasses override this.\n }\n static planPostprocessing(plan, userFeatures) {\n plan.add([\n ...$649970d87335b30f$var$COMMON_FEATURES,\n ...$649970d87335b30f$var$HORIZONTAL_FEATURES\n ]);\n plan.setFeatureOverrides(userFeatures);\n }\n static assignFeatures(plan, glyphs) {\n // Enable contextual fractions\n for(let i = 0; i < glyphs.length; i++){\n let glyph = glyphs[i];\n if (glyph.codePoints[0] === 0x2044) {\n let start = i;\n let end = i + 1;\n // Apply numerator\n while(start > 0 && (0, $6uUbQ$isDigit)(glyphs[start - 1].codePoints[0])){\n glyphs[start - 1].features.numr = true;\n glyphs[start - 1].features.frac = true;\n start--;\n }\n // Apply denominator\n while(end < glyphs.length && (0, $6uUbQ$isDigit)(glyphs[end].codePoints[0])){\n glyphs[end].features.dnom = true;\n glyphs[end].features.frac = true;\n end++;\n }\n // Apply fraction slash\n glyph.features.frac = true;\n i = end - 1;\n }\n }\n }\n}\n(0, $6uUbQ$_)($649970d87335b30f$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'AFTER_GPOS');\n\n\n\n\n\n\nconst $764eb544bbe1ccf0$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==\"));\nconst $764eb544bbe1ccf0$var$FEATURES = [\n 'isol',\n 'fina',\n 'fin2',\n 'fin3',\n 'medi',\n 'med2',\n 'init'\n];\nconst $764eb544bbe1ccf0$var$ShapingClasses = {\n Non_Joining: 0,\n Left_Joining: 1,\n Right_Joining: 2,\n Dual_Joining: 3,\n Join_Causing: 3,\n ALAPH: 4,\n 'DALATH RISH': 5,\n Transparent: 6\n};\nconst $764eb544bbe1ccf0$var$ISOL = 'isol';\nconst $764eb544bbe1ccf0$var$FINA = 'fina';\nconst $764eb544bbe1ccf0$var$FIN2 = 'fin2';\nconst $764eb544bbe1ccf0$var$FIN3 = 'fin3';\nconst $764eb544bbe1ccf0$var$MEDI = 'medi';\nconst $764eb544bbe1ccf0$var$MED2 = 'med2';\nconst $764eb544bbe1ccf0$var$INIT = 'init';\nconst $764eb544bbe1ccf0$var$NONE = null;\n// Each entry is [prevAction, curAction, nextState]\nconst $764eb544bbe1ccf0$var$STATE_TABLE = [\n // Non_Joining, Left_Joining, Right_Joining, Dual_Joining, ALAPH, DALATH RISH\n // State 0: prev was U, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 1: prev was R or ISOL/ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 2: prev was D/L in ISOL form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 3: prev was D in FINA form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 4: prev was FINA ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 5: prev was FIN2/FIN3 ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 6: prev was DALATH/RISH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN3,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ]\n];\nclass $764eb544bbe1ccf0$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ccmp',\n 'locl'\n ]);\n for(let i = 0; i < $764eb544bbe1ccf0$var$FEATURES.length; i++){\n let feature = $764eb544bbe1ccf0$var$FEATURES[i];\n plan.addStage(feature, false);\n }\n plan.addStage('mset');\n }\n static assignFeatures(plan, glyphs) {\n super.assignFeatures(plan, glyphs);\n let prev = -1;\n let state = 0;\n let actions = [];\n // Apply the state machine to map glyphs to features\n for(let i = 0; i < glyphs.length; i++){\n let curAction, prevAction;\n var glyph = glyphs[i];\n let type = $764eb544bbe1ccf0$var$getShapingClass(glyph.codePoints[0]);\n if (type === $764eb544bbe1ccf0$var$ShapingClasses.Transparent) {\n actions[i] = $764eb544bbe1ccf0$var$NONE;\n continue;\n }\n [prevAction, curAction, state] = $764eb544bbe1ccf0$var$STATE_TABLE[state][type];\n if (prevAction !== $764eb544bbe1ccf0$var$NONE && prev !== -1) actions[prev] = prevAction;\n actions[i] = curAction;\n prev = i;\n }\n // Apply the chosen features to their respective glyphs\n for(let index = 0; index < glyphs.length; index++){\n let feature;\n var glyph = glyphs[index];\n if (feature = actions[index]) glyph.features[feature] = true;\n }\n }\n}\nfunction $764eb544bbe1ccf0$var$getShapingClass(codePoint) {\n let res = $764eb544bbe1ccf0$var$trie.get(codePoint);\n if (res) return res - 1;\n let category = (0, $6uUbQ$getCategory)(codePoint);\n if (category === 'Mn' || category === 'Me' || category === 'Cf') return $764eb544bbe1ccf0$var$ShapingClasses.Transparent;\n return $764eb544bbe1ccf0$var$ShapingClasses.Non_Joining;\n}\n\n\n\n\n\nclass $85d408632270248b$export$2e2bcd8739ae039 {\n reset(options = {}, index = 0) {\n this.options = options;\n this.flags = options.flags || {};\n this.markAttachmentType = options.markAttachmentType || 0;\n this.index = index;\n }\n get cur() {\n return this.glyphs[this.index] || null;\n }\n shouldIgnore(glyph) {\n return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;\n }\n move(dir) {\n this.index += dir;\n while(0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index]))this.index += dir;\n if (0 > this.index || this.index >= this.glyphs.length) return null;\n return this.glyphs[this.index];\n }\n next() {\n return this.move(1);\n }\n prev() {\n return this.move(-1);\n }\n peek(count = 1) {\n let idx = this.index;\n let res = this.increment(count);\n this.index = idx;\n return res;\n }\n peekIndex(count = 1) {\n let idx = this.index;\n this.increment(count);\n let res = this.index;\n this.index = idx;\n return res;\n }\n increment(count = 1) {\n let dir = count < 0 ? -1 : 1;\n count = Math.abs(count);\n while(count--)this.move(dir);\n return this.glyphs[this.index];\n }\n constructor(glyphs, options){\n this.glyphs = glyphs;\n this.reset(options);\n }\n}\n\n\n\nconst $a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS = [\n 'DFLT',\n 'dflt',\n 'latn'\n];\nclass $a83b9c36aaa94fd3$export$2e2bcd8739ae039 {\n findScript(script) {\n if (this.table.scriptList == null) return null;\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script)for (let entry of this.table.scriptList){\n if (entry.tag === s) return entry;\n }\n return null;\n }\n selectScript(script, language, direction) {\n let changed = false;\n let entry;\n if (!this.script || script !== this.scriptTag) {\n entry = this.findScript(script);\n if (!entry) entry = this.findScript($a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS);\n if (!entry) return this.scriptTag;\n this.scriptTag = entry.tag;\n this.script = entry.script;\n this.language = null;\n this.languageTag = null;\n changed = true;\n }\n if (!direction || direction !== this.direction) this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n if (language && language.length < 4) language += ' '.repeat(4 - language.length);\n if (!language || language !== this.languageTag) {\n this.language = null;\n for (let lang of this.script.langSysRecords)if (lang.tag === language) {\n this.language = lang.langSys;\n this.languageTag = lang.tag;\n break;\n }\n if (!this.language) {\n this.language = this.script.defaultLangSys;\n this.languageTag = null;\n }\n changed = true;\n }\n // Build a feature lookup table\n if (changed) {\n this.features = {};\n if (this.language) for (let featureIndex of this.language.featureIndexes){\n let record = this.table.featureList[featureIndex];\n let substituteFeature = this.substituteFeatureForVariations(featureIndex);\n this.features[record.tag] = substituteFeature || record.feature;\n }\n }\n return this.scriptTag;\n }\n lookupsForFeatures(userFeatures = [], exclude) {\n let lookups = [];\n for (let tag of userFeatures){\n let feature = this.features[tag];\n if (!feature) continue;\n for (let lookupIndex of feature.lookupListIndexes){\n if (exclude && exclude.indexOf(lookupIndex) !== -1) continue;\n lookups.push({\n feature: tag,\n index: lookupIndex,\n lookup: this.table.lookupList.get(lookupIndex)\n });\n }\n }\n lookups.sort((a, b)=>a.index - b.index);\n return lookups;\n }\n substituteFeatureForVariations(featureIndex) {\n if (this.variationsIndex === -1) return null;\n let record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n let substitutions = record.featureTableSubstitution.substitutions;\n for (let substitution of substitutions){\n if (substitution.featureIndex === featureIndex) return substitution.alternateFeatureTable;\n }\n return null;\n }\n findVariationsIndex(coords) {\n let variations = this.table.featureVariations;\n if (!variations) return -1;\n let records = variations.featureVariationRecords;\n for(let i = 0; i < records.length; i++){\n let conditions = records[i].conditionSet.conditionTable;\n if (this.variationConditionsMatch(conditions, coords)) return i;\n }\n return -1;\n }\n variationConditionsMatch(conditions, coords) {\n return conditions.every((condition)=>{\n let coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n });\n }\n applyFeatures(userFeatures, glyphs, advances) {\n let lookups = this.lookupsForFeatures(userFeatures);\n this.applyLookups(lookups, glyphs, advances);\n }\n applyLookups(lookups, glyphs, positions) {\n this.glyphs = glyphs;\n this.positions = positions;\n this.glyphIterator = new (0, $85d408632270248b$export$2e2bcd8739ae039)(glyphs);\n for (let { feature: feature, lookup: lookup } of lookups){\n this.currentFeature = feature;\n this.glyphIterator.reset(lookup.flags);\n while(this.glyphIterator.index < glyphs.length){\n if (!(feature in this.glyphIterator.cur.features)) {\n this.glyphIterator.next();\n continue;\n }\n for (let table of lookup.subTables){\n let res = this.applyLookup(lookup.lookupType, table);\n if (res) break;\n }\n this.glyphIterator.next();\n }\n }\n }\n applyLookup(lookup, table) {\n throw new Error(\"applyLookup must be implemented by subclasses\");\n }\n applyLookupList(lookupRecords) {\n let options = this.glyphIterator.options;\n let glyphIndex = this.glyphIterator.index;\n for (let lookupRecord of lookupRecords){\n // Reset flags and find glyph index for this lookup record\n this.glyphIterator.reset(options, glyphIndex);\n this.glyphIterator.increment(lookupRecord.sequenceIndex);\n // Get the lookup and setup flags for subtables\n let lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);\n // Apply lookup subtables until one matches\n for (let table of lookup.subTables){\n if (this.applyLookup(lookup.lookupType, table)) break;\n }\n }\n this.glyphIterator.reset(options, glyphIndex);\n return true;\n }\n coverageIndex(coverage, glyph) {\n if (glyph == null) glyph = this.glyphIterator.cur.id;\n switch(coverage.version){\n case 1:\n return coverage.glyphs.indexOf(glyph);\n case 2:\n for (let range of coverage.rangeRecords){\n if (range.start <= glyph && glyph <= range.end) return range.startCoverageIndex + glyph - range.start;\n }\n break;\n }\n return -1;\n }\n match(sequenceIndex, sequence, fn, matched) {\n let pos = this.glyphIterator.index;\n let glyph = this.glyphIterator.increment(sequenceIndex);\n let idx = 0;\n while(idx < sequence.length && glyph && fn(sequence[idx], glyph)){\n if (matched) matched.push(this.glyphIterator.index);\n idx++;\n glyph = this.glyphIterator.next();\n }\n this.glyphIterator.index = pos;\n if (idx < sequence.length) return false;\n return matched || true;\n }\n sequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>component === glyph.id);\n }\n sequenceMatchIndices(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>{\n // If the current feature doesn't apply to this glyph,\n if (!(this.currentFeature in glyph.features)) return false;\n return component === glyph.id;\n }, []);\n }\n coverageSequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (coverage, glyph)=>this.coverageIndex(coverage, glyph.id) >= 0);\n }\n getClassID(glyph, classDef) {\n switch(classDef.version){\n case 1:\n let i = glyph - classDef.startGlyph;\n if (i >= 0 && i < classDef.classValueArray.length) return classDef.classValueArray[i];\n break;\n case 2:\n for (let range of classDef.classRangeRecord){\n if (range.start <= glyph && glyph <= range.end) return range.class;\n }\n break;\n }\n return 0;\n }\n classSequenceMatches(sequenceIndex, sequence, classDef) {\n return this.match(sequenceIndex, sequence, (classID, glyph)=>classID === this.getClassID(glyph.id, classDef));\n }\n applyContext(table) {\n let index, set;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n set = table.ruleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(1, rule.input)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n if (index === -1) return false;\n set = table.classSet[index];\n for (let rule of set){\n if (this.classSequenceMatches(1, rule.classes, table.classDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(0, table.coverages)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n applyChainingContext(table) {\n let index;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let set = table.chainRuleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n let rules = table.chainClassSet[index];\n if (!rules) return false;\n for (let rule of rules){\n if (this.classSequenceMatches(-rule.backtrack.length, rule.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, rule.input, table.inputClassDef) && this.classSequenceMatches(1 + rule.input.length, rule.lookahead, table.lookaheadClassDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n constructor(font, table){\n this.font = font;\n this.table = table;\n this.script = null;\n this.scriptTag = null;\n this.language = null;\n this.languageTag = null;\n this.features = {};\n this.lookups = {};\n // Setup variation substitutions\n this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1;\n // initialize to default script + language\n this.selectScript();\n // current context (set by applyFeatures)\n this.glyphs = [];\n this.positions = []; // only used by GPOS\n this.ligatureID = 1;\n this.currentFeature = null;\n }\n}\n\n\nclass $10e7b257e1a9a756$export$2e2bcd8739ae039 {\n get id() {\n return this._id;\n }\n set id(id) {\n this._id = id;\n this.substituted = true;\n let GDEF = this._font.GDEF;\n if (GDEF && GDEF.glyphClassDef) {\n // TODO: clean this up\n let classID = (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.glyphClassDef);\n this.isBase = classID === 1;\n this.isLigature = classID === 2;\n this.isMark = classID === 3;\n this.markAttachmentType = GDEF.markAttachClassDef ? (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n } else {\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isBase = !this.isMark;\n this.isLigature = this.codePoints.length > 1;\n this.markAttachmentType = 0;\n }\n }\n copy() {\n return new $10e7b257e1a9a756$export$2e2bcd8739ae039(this._font, this.id, this.codePoints, this.features);\n }\n constructor(font, id, codePoints = [], features){\n this._font = font;\n this.codePoints = codePoints;\n this.id = id;\n this.features = {};\n if (Array.isArray(features)) for(let i = 0; i < features.length; i++){\n let feature = features[i];\n this.features[feature] = true;\n }\n else if (typeof features === 'object') Object.assign(this.features, features);\n this.ligatureID = null;\n this.ligatureComponent = null;\n this.isLigated = false;\n this.cursiveAttachment = null;\n this.markAttachment = null;\n this.shaperInfo = null;\n this.substituted = false;\n this.isMultiplied = false;\n }\n}\n\n\nclass $e1c6bbc8cb416f8c$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ljmo',\n 'vjmo',\n 'tjmo'\n ], false);\n }\n static assignFeatures(plan, glyphs) {\n let state = 0;\n let i = 0;\n while(i < glyphs.length){\n let action;\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n [action, state] = $e1c6bbc8cb416f8c$var$STATE_TABLE[state][type];\n switch(action){\n case $e1c6bbc8cb416f8c$var$DECOMPOSE:\n // Decompose the composed syllable if it is not supported by the font.\n if (!plan.font.hasGlyphForCodePoint(code)) i = $e1c6bbc8cb416f8c$var$decompose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$COMPOSE:\n // Found a decomposed syllable. Try to compose if supported by the font.\n i = $e1c6bbc8cb416f8c$var$compose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$TONE_MARK:\n // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$INVALID:\n // Tone mark has no valid syllable to attach to, so insert a dotted circle\n i = $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, plan.font);\n break;\n }\n i++;\n }\n }\n}\n(0, $6uUbQ$_)($e1c6bbc8cb416f8c$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nconst $e1c6bbc8cb416f8c$var$HANGUL_BASE = 0xac00;\nconst $e1c6bbc8cb416f8c$var$HANGUL_END = 0xd7a4;\nconst $e1c6bbc8cb416f8c$var$HANGUL_COUNT = $e1c6bbc8cb416f8c$var$HANGUL_END - $e1c6bbc8cb416f8c$var$HANGUL_BASE + 1;\nconst $e1c6bbc8cb416f8c$var$L_BASE = 0x1100; // lead\nconst $e1c6bbc8cb416f8c$var$V_BASE = 0x1161; // vowel\nconst $e1c6bbc8cb416f8c$var$T_BASE = 0x11a7; // trail\nconst $e1c6bbc8cb416f8c$var$L_COUNT = 19;\nconst $e1c6bbc8cb416f8c$var$V_COUNT = 21;\nconst $e1c6bbc8cb416f8c$var$T_COUNT = 28;\nconst $e1c6bbc8cb416f8c$var$L_END = $e1c6bbc8cb416f8c$var$L_BASE + $e1c6bbc8cb416f8c$var$L_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$V_END = $e1c6bbc8cb416f8c$var$V_BASE + $e1c6bbc8cb416f8c$var$V_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$T_END = $e1c6bbc8cb416f8c$var$T_BASE + $e1c6bbc8cb416f8c$var$T_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE = 0x25cc;\nconst $e1c6bbc8cb416f8c$var$isL = (code)=>0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\nconst $e1c6bbc8cb416f8c$var$isV = (code)=>0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\nconst $e1c6bbc8cb416f8c$var$isT = (code)=>0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\nconst $e1c6bbc8cb416f8c$var$isTone = (code)=>0x302e <= code && code <= 0x302f;\nconst $e1c6bbc8cb416f8c$var$isLVT = (code)=>$e1c6bbc8cb416f8c$var$HANGUL_BASE <= code && code <= $e1c6bbc8cb416f8c$var$HANGUL_END;\nconst $e1c6bbc8cb416f8c$var$isLV = (code)=>code - $e1c6bbc8cb416f8c$var$HANGUL_BASE < $e1c6bbc8cb416f8c$var$HANGUL_COUNT && (code - $e1c6bbc8cb416f8c$var$HANGUL_BASE) % $e1c6bbc8cb416f8c$var$T_COUNT === 0;\nconst $e1c6bbc8cb416f8c$var$isCombiningL = (code)=>$e1c6bbc8cb416f8c$var$L_BASE <= code && code <= $e1c6bbc8cb416f8c$var$L_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningV = (code)=>$e1c6bbc8cb416f8c$var$V_BASE <= code && code <= $e1c6bbc8cb416f8c$var$V_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningT = (code)=>$e1c6bbc8cb416f8c$var$T_BASE + 1 && 1 <= code && code <= $e1c6bbc8cb416f8c$var$T_END;\n// Character categories\nconst $e1c6bbc8cb416f8c$var$X = 0; // Other character\nconst $e1c6bbc8cb416f8c$var$L = 1; // Leading consonant\nconst $e1c6bbc8cb416f8c$var$V = 2; // Medial vowel\nconst $e1c6bbc8cb416f8c$var$T = 3; // Trailing consonant\nconst $e1c6bbc8cb416f8c$var$LV = 4; // Composed <LV> syllable\nconst $e1c6bbc8cb416f8c$var$LVT = 5; // Composed <LVT> syllable\nconst $e1c6bbc8cb416f8c$var$M = 6; // Tone mark\n// This function classifies a character using the above categories.\nfunction $e1c6bbc8cb416f8c$var$getType(code) {\n if ($e1c6bbc8cb416f8c$var$isL(code)) return $e1c6bbc8cb416f8c$var$L;\n if ($e1c6bbc8cb416f8c$var$isV(code)) return $e1c6bbc8cb416f8c$var$V;\n if ($e1c6bbc8cb416f8c$var$isT(code)) return $e1c6bbc8cb416f8c$var$T;\n if ($e1c6bbc8cb416f8c$var$isLV(code)) return $e1c6bbc8cb416f8c$var$LV;\n if ($e1c6bbc8cb416f8c$var$isLVT(code)) return $e1c6bbc8cb416f8c$var$LVT;\n if ($e1c6bbc8cb416f8c$var$isTone(code)) return $e1c6bbc8cb416f8c$var$M;\n return $e1c6bbc8cb416f8c$var$X;\n}\n// State machine actions\nconst $e1c6bbc8cb416f8c$var$NO_ACTION = 0;\nconst $e1c6bbc8cb416f8c$var$DECOMPOSE = 1;\nconst $e1c6bbc8cb416f8c$var$COMPOSE = 2;\nconst $e1c6bbc8cb416f8c$var$TONE_MARK = 4;\nconst $e1c6bbc8cb416f8c$var$INVALID = 5;\n// Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\nconst $e1c6bbc8cb416f8c$var$STATE_TABLE = [\n // X L V T LV LVT M\n // State 0: start state\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 1: <L>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 2: <L,V> or <LV>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ],\n // State 3: <L,V,T> or <LVT>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ]\n];\nfunction $e1c6bbc8cb416f8c$var$getGlyph(font, code, features) {\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, font.glyphForCodePoint(code).id, [\n code\n ], features);\n}\nfunction $e1c6bbc8cb416f8c$var$decompose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let s = code - $e1c6bbc8cb416f8c$var$HANGUL_BASE;\n let t = $e1c6bbc8cb416f8c$var$T_BASE + s % $e1c6bbc8cb416f8c$var$T_COUNT;\n s = s / $e1c6bbc8cb416f8c$var$T_COUNT | 0;\n let l = $e1c6bbc8cb416f8c$var$L_BASE + s / $e1c6bbc8cb416f8c$var$V_COUNT | 0;\n let v = $e1c6bbc8cb416f8c$var$V_BASE + s % $e1c6bbc8cb416f8c$var$V_COUNT;\n // Don't decompose if all of the components are not available\n if (!font.hasGlyphForCodePoint(l) || !font.hasGlyphForCodePoint(v) || t !== $e1c6bbc8cb416f8c$var$T_BASE && !font.hasGlyphForCodePoint(t)) return i;\n // Replace the current glyph with decomposed L, V, and T glyphs,\n // and apply the proper OpenType features to each component.\n let ljmo = $e1c6bbc8cb416f8c$var$getGlyph(font, l, glyph.features);\n ljmo.features.ljmo = true;\n let vjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, v, glyph.features);\n vjmo.features.vjmo = true;\n let insert = [\n ljmo,\n vjmo\n ];\n if (t > $e1c6bbc8cb416f8c$var$T_BASE) {\n let tjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, t, glyph.features);\n tjmo.features.tjmo = true;\n insert.push(tjmo);\n }\n glyphs.splice(i, 1, ...insert);\n return i + insert.length - 1;\n}\nfunction $e1c6bbc8cb416f8c$var$compose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n let prev = glyphs[i - 1].codePoints[0];\n let prevType = $e1c6bbc8cb416f8c$var$getType(prev);\n // Figure out what type of syllable we're dealing with\n let lv, ljmo, vjmo, tjmo;\n if (prevType === $e1c6bbc8cb416f8c$var$LV && type === $e1c6bbc8cb416f8c$var$T) {\n // <LV,T>\n lv = prev;\n tjmo = glyph;\n } else {\n if (type === $e1c6bbc8cb416f8c$var$V) {\n // <L,V>\n ljmo = glyphs[i - 1];\n vjmo = glyph;\n } else {\n // <L,V,T>\n ljmo = glyphs[i - 2];\n vjmo = glyphs[i - 1];\n tjmo = glyph;\n }\n let l = ljmo.codePoints[0];\n let v = vjmo.codePoints[0];\n // Make sure L and V are combining characters\n if ($e1c6bbc8cb416f8c$var$isCombiningL(l) && $e1c6bbc8cb416f8c$var$isCombiningV(v)) lv = $e1c6bbc8cb416f8c$var$HANGUL_BASE + ((l - $e1c6bbc8cb416f8c$var$L_BASE) * $e1c6bbc8cb416f8c$var$V_COUNT + (v - $e1c6bbc8cb416f8c$var$V_BASE)) * $e1c6bbc8cb416f8c$var$T_COUNT;\n }\n let t = tjmo && tjmo.codePoints[0] || $e1c6bbc8cb416f8c$var$T_BASE;\n if (lv != null && (t === $e1c6bbc8cb416f8c$var$T_BASE || $e1c6bbc8cb416f8c$var$isCombiningT(t))) {\n let s = lv + (t - $e1c6bbc8cb416f8c$var$T_BASE);\n // Replace with a composed glyph if supported by the font,\n // otherwise apply the proper OpenType features to each component.\n if (font.hasGlyphForCodePoint(s)) {\n let del = prevType === $e1c6bbc8cb416f8c$var$V ? 3 : 2;\n glyphs.splice(i - del + 1, del, $e1c6bbc8cb416f8c$var$getGlyph(font, s, glyph.features));\n return i - del + 1;\n }\n }\n // Didn't compose (either a non-combining component or unsupported by font).\n if (ljmo) ljmo.features.ljmo = true;\n if (vjmo) vjmo.features.vjmo = true;\n if (tjmo) tjmo.features.tjmo = true;\n if (prevType === $e1c6bbc8cb416f8c$var$LV) {\n // Sequence was originally <L,V>, which got combined earlier.\n // Either the T was non-combining, or the LVT glyph wasn't supported.\n // Decompose the glyph again and apply OT features.\n $e1c6bbc8cb416f8c$var$decompose(glyphs, i - 1, font);\n return i + 1;\n }\n return i;\n}\nfunction $e1c6bbc8cb416f8c$var$getLength(code) {\n switch($e1c6bbc8cb416f8c$var$getType(code)){\n case $e1c6bbc8cb416f8c$var$LV:\n case $e1c6bbc8cb416f8c$var$LVT:\n return 1;\n case $e1c6bbc8cb416f8c$var$V:\n return 2;\n case $e1c6bbc8cb416f8c$var$T:\n return 3;\n }\n}\nfunction $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n // Move tone mark to the beginning of the previous syllable, unless it is zero width\n if (font.glyphForCodePoint(code).advanceWidth === 0) return;\n let prev = glyphs[i - 1].codePoints[0];\n let len = $e1c6bbc8cb416f8c$var$getLength(prev);\n glyphs.splice(i, 1);\n return glyphs.splice(i - len, 0, glyph);\n}\nfunction $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n if (font.hasGlyphForCodePoint($e1c6bbc8cb416f8c$var$DOTTED_CIRCLE)) {\n let dottedCircle = $e1c6bbc8cb416f8c$var$getGlyph(font, $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE, glyph.features);\n // If the tone mark is zero width, insert the dotted circle before, otherwise after\n let idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n glyphs.splice(idx, 0, dottedCircle);\n i++;\n }\n return i;\n}\n\n\n\n\n\n\n\n\n\nvar $4b0735ca6c692ea5$exports = {};\n$4b0735ca6c692ea5$exports = JSON.parse(\"{\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],\\\"accepting\\\":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"standalone_cluster\\\"]]}\");\n\n\nvar $aa333a9607471296$exports = {};\n$aa333a9607471296$exports = JSON.parse(\"{\\\"categories\\\":[\\\"O\\\",\\\"IND\\\",\\\"S\\\",\\\"GB\\\",\\\"B\\\",\\\"FM\\\",\\\"CGJ\\\",\\\"VMAbv\\\",\\\"VMPst\\\",\\\"VAbv\\\",\\\"VPst\\\",\\\"CMBlw\\\",\\\"VPre\\\",\\\"VBlw\\\",\\\"H\\\",\\\"VMBlw\\\",\\\"CMAbv\\\",\\\"MBlw\\\",\\\"CS\\\",\\\"R\\\",\\\"SUB\\\",\\\"MPst\\\",\\\"MPre\\\",\\\"FAbv\\\",\\\"FPst\\\",\\\"FBlw\\\",\\\"null\\\",\\\"SMAbv\\\",\\\"SMBlw\\\",\\\"VMPre\\\",\\\"ZWNJ\\\",\\\"ZWJ\\\",\\\"WJ\\\",\\\"M\\\",\\\"VS\\\",\\\"N\\\",\\\"HN\\\",\\\"MAbv\\\"],\\\"decompositions\\\":{\\\"2507\\\":[2503,2494],\\\"2508\\\":[2503,2519],\\\"2888\\\":[2887,2902],\\\"2891\\\":[2887,2878],\\\"2892\\\":[2887,2903],\\\"3018\\\":[3014,3006],\\\"3019\\\":[3015,3006],\\\"3020\\\":[3014,3031],\\\"3144\\\":[3142,3158],\\\"3264\\\":[3263,3285],\\\"3271\\\":[3270,3285],\\\"3272\\\":[3270,3286],\\\"3274\\\":[3270,3266],\\\"3275\\\":[3270,3266,3285],\\\"3402\\\":[3398,3390],\\\"3403\\\":[3399,3390],\\\"3404\\\":[3398,3415],\\\"3546\\\":[3545,3530],\\\"3548\\\":[3545,3535],\\\"3549\\\":[3545,3535,3530],\\\"3550\\\":[3545,3551],\\\"3635\\\":[3661,3634],\\\"3763\\\":[3789,3762],\\\"3955\\\":[3953,3954],\\\"3957\\\":[3953,3956],\\\"3958\\\":[4018,3968],\\\"3959\\\":[4018,3953,3968],\\\"3960\\\":[4019,3968],\\\"3961\\\":[4019,3953,3968],\\\"3969\\\":[3953,3968],\\\"6971\\\":[6970,6965],\\\"6973\\\":[6972,6965],\\\"6976\\\":[6974,6965],\\\"6977\\\":[6975,6965],\\\"6979\\\":[6978,6965],\\\"69934\\\":[69937,69927],\\\"69935\\\":[69938,69927],\\\"70475\\\":[70471,70462],\\\"70476\\\":[70471,70487],\\\"70843\\\":[70841,70842],\\\"70844\\\":[70841,70832],\\\"70846\\\":[70841,70845],\\\"71098\\\":[71096,71087],\\\"71099\\\":[71097,71087]},\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],\\\"accepting\\\":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"virama_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"number_joiner_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"numeral_cluster\\\"]]}\");\n\n\n// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nconst $90a9d3398ee54fe5$export$a513ea61a7bee91c = {\n X: 1,\n C: 2,\n V: 4,\n N: 8,\n H: 16,\n ZWNJ: 32,\n ZWJ: 64,\n M: 128,\n SM: 256,\n VD: 512,\n A: 1024,\n Placeholder: 2048,\n Dotted_Circle: 4096,\n RS: 8192,\n Coeng: 16384,\n Repha: 32768,\n Ra: 65536,\n CM: 131072,\n Symbol: 262144 // Avagraha, etc that take marks (SM,A,VD).\n};\nconst $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0 = {\n Start: 1,\n Ra_To_Become_Reph: 2,\n Pre_M: 4,\n Pre_C: 8,\n Base_C: 16,\n After_Main: 32,\n Above_C: 64,\n Before_Sub: 128,\n Below_C: 256,\n After_Sub: 512,\n Before_Post: 1024,\n Post_C: 2048,\n After_Post: 4096,\n Final_C: 8192,\n SMVD: 16384,\n End: 32768\n};\nconst $90a9d3398ee54fe5$export$8519deaa7de2b07 = $90a9d3398ee54fe5$export$a513ea61a7bee91c.C | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Ra | $90a9d3398ee54fe5$export$a513ea61a7bee91c.CM | $90a9d3398ee54fe5$export$a513ea61a7bee91c.V | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Placeholder | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Dotted_Circle;\nconst $90a9d3398ee54fe5$export$bbcd928767338e0d = $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWJ | $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWNJ;\nconst $90a9d3398ee54fe5$export$ca9599b2a300afc = $90a9d3398ee54fe5$export$a513ea61a7bee91c.H | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Coeng;\nconst $90a9d3398ee54fe5$export$e99d119da76a0fc5 = {\n Default: {\n hasOldSpec: false,\n virama: 0,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Devanagari: {\n hasOldSpec: true,\n virama: 0x094D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Bengali: {\n hasOldSpec: true,\n virama: 0x09CD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gurmukhi: {\n hasOldSpec: true,\n virama: 0x0A4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gujarati: {\n hasOldSpec: true,\n virama: 0x0ACD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Oriya: {\n hasOldSpec: true,\n virama: 0x0B4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Tamil: {\n hasOldSpec: true,\n virama: 0x0BCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Telugu: {\n hasOldSpec: true,\n virama: 0x0C4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Explicit',\n blwfMode: 'Post_Only'\n },\n Kannada: {\n hasOldSpec: true,\n virama: 0x0CCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Post_Only'\n },\n Malayalam: {\n hasOldSpec: true,\n virama: 0x0D4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Log_Repha',\n blwfMode: 'Pre_And_Post'\n },\n // Handled by UniversalShaper\n // Sinhala: {\n // hasOldSpec: false,\n // virama: 0x0DCA,\n // basePos: 'Last_Sinhala',\n // rephPos: POSITIONS.After_Main,\n // rephMode: 'Explicit',\n // blwfMode: 'Pre_And_Post'\n // },\n Khmer: {\n hasOldSpec: false,\n virama: 0x17D2,\n basePos: 'First',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Ra_To_Become_Reph,\n rephMode: 'Vis_Repha',\n blwfMode: 'Pre_And_Post'\n }\n};\nconst $90a9d3398ee54fe5$export$f647c9cfdd77d95a = {\n // Khmer\n 0x17BE: [\n 0x17C1,\n 0x17BE\n ],\n 0x17BF: [\n 0x17C1,\n 0x17BF\n ],\n 0x17C0: [\n 0x17C1,\n 0x17C0\n ],\n 0x17C4: [\n 0x17C1,\n 0x17C4\n ],\n 0x17C5: [\n 0x17C1,\n 0x17C5\n ]\n};\n\n\n\nconst { decompositions: $7826f90f6f0cecc9$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7826f90f6f0cecc9$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7826f90f6f0cecc9$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($4b0735ca6c692ea5$exports))));\nclass $7826f90f6f0cecc9$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7826f90f6f0cecc9$var$setupSyllables);\n plan.addStage([\n 'locl',\n 'ccmp'\n ]);\n plan.addStage($7826f90f6f0cecc9$var$initialReordering);\n plan.addStage('nukt');\n plan.addStage('akhn');\n plan.addStage('rphf', false);\n plan.addStage('rkrf');\n plan.addStage('pref', false);\n plan.addStage('blwf', false);\n plan.addStage('abvf', false);\n plan.addStage('half', false);\n plan.addStage('pstf', false);\n plan.addStage('vatu');\n plan.addStage('cjct');\n plan.addStage('cfar', false);\n plan.addStage($7826f90f6f0cecc9$var$finalReordering);\n plan.addStage({\n local: [\n 'init'\n ],\n global: [\n 'pres',\n 'abvs',\n 'blws',\n 'psts',\n 'haln',\n 'dist',\n 'abvm',\n 'blwm',\n 'calt',\n 'clig'\n ]\n });\n // Setup the indic config for the selected script\n plan.unicodeScript = $130d1a642ebcd2b7$export$ce50e82f12a827a4(plan.script);\n plan.indicConfig = (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5)[plan.unicodeScript] || (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5).Default;\n plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2';\n // TODO: turn off kern (Khmer) and liga features.\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split matras\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n let d = (0, $90a9d3398ee54fe5$export$f647c9cfdd77d95a)[codepoint] || $7826f90f6f0cecc9$var$decompositions[codepoint];\n if (d) {\n let decomposed = d.map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7826f90f6f0cecc9$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nfunction $7826f90f6f0cecc9$var$indicCategory(glyph) {\n return $7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) >> 8;\n}\nfunction $7826f90f6f0cecc9$var$indicPosition(glyph) {\n return 1 << ($7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) & 0xff);\n}\nclass $7826f90f6f0cecc9$var$IndicInfo {\n constructor(category, position, syllableType, syllable){\n this.category = category;\n this.position = position;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7826f90f6f0cecc9$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n let last = 0;\n for (let [start, end, tags] of $7826f90f6f0cecc9$var$stateMachine.match(glyphs.map($7826f90f6f0cecc9$var$indicCategory))){\n if (start > last) {\n ++syllable;\n for(let i = last; i < start; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(glyphs[i]), $7826f90f6f0cecc9$var$indicPosition(glyphs[i]), tags[0], syllable);\n last = end + 1;\n }\n if (last < glyphs.length) {\n ++syllable;\n for(let i = last; i < glyphs.length; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n}\nfunction $7826f90f6f0cecc9$var$isConsonant(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$8519deaa7de2b07);\n}\nfunction $7826f90f6f0cecc9$var$isJoiner(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$bbcd928767338e0d);\n}\nfunction $7826f90f6f0cecc9$var$isHalantOrCoeng(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$ca9599b2a300afc);\n}\nfunction $7826f90f6f0cecc9$var$wouldSubstitute(glyphs, feature) {\n for (let glyph of glyphs)glyph.features = {\n [feature]: true\n };\n let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n GSUB.applyFeatures([\n feature\n ], glyphs);\n return glyphs.length === 1;\n}\nfunction $7826f90f6f0cecc9$var$consonantPosition(font, consonant, virama) {\n let glyphs = [\n virama,\n consonant,\n virama\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'blwf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'blwf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pstf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pstf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pref') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pref')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n}\nfunction $7826f90f6f0cecc9$var$initialReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n let virama = font.glyphForCodePoint(indicConfig.virama).id;\n if (virama) {\n let info = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, virama, [\n indicConfig.virama\n ]);\n for(let i = 0; i < glyphs.length; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) glyphs[i].shaperInfo.position = $7826f90f6f0cecc9$var$consonantPosition(font, glyphs[i].copy(), info);\n }\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n let { category: category, syllableType: syllableType } = glyphs[start].shaperInfo;\n if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') continue;\n if (syllableType === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(g), $7826f90f6f0cecc9$var$indicPosition(g), glyphs[start].shaperInfo.syllableType, glyphs[start].shaperInfo.syllable);\n // Insert after possible Repha.\n let i = start;\n while(i < end && glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha)i++;\n glyphs.splice(i++, 0, g);\n end++;\n }\n // 1. Find base consonant:\n //\n // The shaping engine finds the base consonant of the syllable, using the\n // following algorithm: starting from the end of the syllable, move backwards\n // until a consonant is found that does not have a below-base or post-base\n // form (post-base forms have to follow below-base forms), or that is not a\n // pre-base reordering Ra, or arrive at the first consonant. The consonant\n // stopped at will be the base.\n let base = end;\n let limit = start;\n let hasReph = false;\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n if (indicConfig.rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && features.rphf && start + 3 <= end && (indicConfig.rephMode === 'Implicit' && !$7826f90f6f0cecc9$var$isJoiner(glyphs[start + 2]) || indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n // See if it matches the 'rphf' feature.\n let g = [\n glyphs[start].copy(),\n glyphs[start + 1].copy(),\n glyphs[start + 2].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g.slice(0, 2), 'rphf') || indicConfig.rephMode === 'Explicit' && $7826f90f6f0cecc9$var$wouldSubstitute(g, 'rphf')) {\n limit += 2;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha) {\n limit++;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n switch(indicConfig.basePos){\n case 'Last':\n {\n // starting from the end of the syllable, move backwards\n let i = end;\n let seenBelow = false;\n do {\n let info = glyphs[--i].shaperInfo;\n // until a consonant is found\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n // that does not have a below-base or post-base form\n // (post-base forms have to follow below-base forms),\n if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C && (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C || seenBelow)) {\n base = i;\n break;\n }\n // or that is not a pre-base reordering Ra,\n //\n // IMPLEMENTATION NOTES:\n //\n // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n // by the logic above already.\n //\n // or arrive at the first consonant. The consonant stopped at will\n // be the base.\n if (info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) seenBelow = true;\n base = i;\n } else if (start < i && info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ && glyphs[i - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }while (i > limit);\n break;\n }\n case 'First':\n // The first consonant is always the base.\n base = start;\n // Mark all subsequent consonants as below.\n for(let i = base + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) glyphs[i].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n }\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n //\n // Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n if (hasReph && base === start && limit - base <= 2) hasReph = false;\n // 2. Decompose and reorder Matras:\n //\n // Each matra and any syllable modifier sign in the cluster are moved to the\n // appropriate position relative to the consonant(s) in the cluster. The\n // shaping engine decomposes two- or three-part matras into their constituent\n // parts before any repositioning. Matra characters are classified by which\n // consonant in a conjunct they have affinity for and are reordered to the\n // following positions:\n //\n // o Before first half form in the syllable\n // o After subjoined consonants\n // o After post-form consonant\n // o After main consonant (for above marks)\n //\n // IMPLEMENTATION NOTES:\n //\n // The normalize() routine has already decomposed matras for us, so we don't\n // need to worry about that.\n // 3. Reorder marks to canonical order:\n //\n // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n // if necessary, so that the nukta is first.\n //\n // IMPLEMENTATION NOTES:\n //\n // We don't need to do this: the normalize() routine already did this for us.\n // Reorder characters\n for(let i = start; i < base; i++){\n let info = glyphs[i].shaperInfo;\n info.position = Math.min((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_C, info.position);\n }\n if (base < end) glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n // Mark final consonants. A final consonant is one appearing after a matra,\n // like in Khmer.\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n for(let j = i + 1; j < end; j++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j])) {\n glyphs[j].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Final_C;\n break;\n }\n break;\n }\n // Handle beginning Ra\n if (hasReph) glyphs[start].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph;\n // For old-style Indic script tags, move the first post-base Halant after\n // last consonant.\n //\n // Reports suggest that in some scripts Uniscribe does this only if there\n // is *not* a Halant after last consonant already (eg. Kannada), while it\n // does it unconditionally in other scripts (eg. Malayalam). We don't\n // currently know about other scripts, so we single out Malayalam for now.\n //\n // Kannada test case:\n // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n // With some versions of Lohit Kannada.\n // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n //\n // Malayalam test case:\n // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n if (plan.isOldSpec) {\n let disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) {\n let j;\n for(j = end - 1; j > i; j--){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j]) || disallowDoubleHalants && glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }\n if (glyphs[j].shaperInfo.category !== (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && j > i) {\n // Move Halant to after last consonant.\n let t = glyphs[i];\n glyphs.splice(i, 0, ...glyphs.splice(i + 1, j - i));\n glyphs[j] = t;\n }\n break;\n }\n }\n // Attach misc marks to previous char to move with them.\n let lastPos = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Start;\n for(let i = start; i < end; i++){\n let info = glyphs[i].shaperInfo;\n if (info.category & ((0, $90a9d3398ee54fe5$export$bbcd928767338e0d) | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).RS | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).CM | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc) & info.category)) {\n info.position = lastPos;\n if (info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Uniscribe doesn't move the Halant with Left Matra.\n // TEST: U+092B,U+093F,U+094DE\n // We follow. This is important for the Sinhala\n // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n // where U+0DD9 is a left matra and U+0DCA is the virama.\n // We don't want to move the virama with the left matra.\n // TEST: U+0D9A,U+0DDA\n for(let j = i; j > start; j--)if (glyphs[j - 1].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n info.position = glyphs[j - 1].shaperInfo.position;\n break;\n }\n }\n } else if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) lastPos = info.position;\n }\n // For post-base consonants let them own anything before them\n // since the last consonant or matra.\n let last = base;\n for(let i = base + 1; i < end; i++){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n for(let j = last + 1; j < i; j++)if (glyphs[j].shaperInfo.position < (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) glyphs[j].shaperInfo.position = glyphs[i].shaperInfo.position;\n last = i;\n } else if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) last = i;\n }\n let arr = glyphs.slice(start, end);\n arr.sort((a, b)=>a.shaperInfo.position - b.shaperInfo.position);\n glyphs.splice(start, arr.length, ...arr);\n // Find base again\n for(let i = start; i < end; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n base = i;\n break;\n }\n // Setup features now\n // Reph\n for(let i = start; i < end && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph; i++)glyphs[i].features.rphf = true;\n // Pre-base\n let blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n for(let i = start; i < base; i++){\n glyphs[i].features.half = true;\n if (blwf) glyphs[i].features.blwf = true;\n }\n // Post-base\n for(let i = base + 1; i < end; i++){\n glyphs[i].features.abvf = true;\n glyphs[i].features.pstf = true;\n glyphs[i].features.blwf = true;\n }\n if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n // Old-spec eye-lash Ra needs special handling. From the\n // spec:\n //\n // \"The feature 'below-base form' is applied to consonants\n // having below-base forms and following the base consonant.\n // The exception is vattu, which may appear below half forms\n // as well as below the base glyph. The feature 'below-base\n // form' will be applied to all such occurrences of Ra as well.\"\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n // with Sanskrit 2003 font.\n //\n // However, note that Ra,Halant,ZWJ is the correct way to\n // request eyelash form of Ra, so we wouldbn't inhibit it\n // in that sequence.\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n for(let i = start; i + 1 < base; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Ra && glyphs[i + 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && (i + 1 === base || glyphs[i + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n glyphs[i].features.blwf = true;\n glyphs[i + 1].features.blwf = true;\n }\n }\n let prefLen = 2;\n if (features.pref && base + prefLen < end) // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n for(let i = base + 1; i + prefLen - 1 < end; i++){\n let g = [\n glyphs[i].copy(),\n glyphs[i + 1].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g, 'pref')) {\n for(let j = 0; j < prefLen; j++)glyphs[i++].features.pref = true;\n // Mark the subsequent stuff with 'cfar'. Used in Khmer.\n // Read the feature spec.\n // This allows distinguishing the following cases with MS Khmer fonts:\n // U+1784,U+17D2,U+179A,U+17D2,U+1782\n // U+1784,U+17D2,U+1782,U+17D2,U+179A\n if (features.cfar) for(; i < end; i++)glyphs[i].features.cfar = true;\n break;\n }\n }\n // Apply ZWJ/ZWNJ effects\n for(let i = start + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isJoiner(glyphs[i])) {\n let nonJoiner = glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWNJ;\n let j = i;\n do {\n j--;\n // ZWJ/ZWNJ should disable CJCT. They do that by simply\n // being there, since we don't skip them for the CJCT\n // feature (ie. F_MANUAL_ZWJ)\n // A ZWNJ disables HALF.\n if (nonJoiner) delete glyphs[j].features.half;\n }while (j > start && !$7826f90f6f0cecc9$var$isConsonant(glyphs[j]));\n }\n }\n}\nfunction $7826f90f6f0cecc9$var$finalReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n // 4. Final reordering:\n //\n // After the localized forms and basic shaping forms GSUB features have been\n // applied (see below), the shaping engine performs some final glyph\n // reordering before applying all the remaining font features to the entire\n // cluster.\n let tryPref = !!features.pref;\n // Find base again\n let base = start;\n for(; base < end; base++)if (glyphs[base].shaperInfo.position >= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n // Ok, this was a 'pref' candidate but didn't form any.\n // Base is around here...\n base = i;\n while(base < end && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[base]))base++;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).BASE_C;\n tryPref = false;\n }\n break;\n }\n }\n // For Malayalam, skip over unformed below- (but NOT post-) forms.\n if (plan.unicodeScript === 'Malayalam') for(let i = base + 1; i < end; i++){\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i === end || !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[i])) break;\n i++; // Skip halant.\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i < end && $7826f90f6f0cecc9$var$isConsonant(glyphs[i]) && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) {\n base = i;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n }\n }\n if (start < base && glyphs[base].shaperInfo.position > (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) base--;\n break;\n }\n if (base === end && start < base && glyphs[base - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ) base--;\n if (base < end) while(start < base && glyphs[base].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc)))base--;\n // o Reorder matras:\n //\n // If a pre-base matra character had been reordered before applying basic\n // features, the glyph can be moved closer to the main consonant based on\n // whether half-forms had been formed. Actual position for the matra is\n // defined as “after last standalone halant glyph, after initial matra\n // position and before the main consonant”. If ZWJ or ZWNJ follow this\n // halant, position is moved after it.\n //\n if (start + 1 < end && start < base) {\n // If we lost track of base, alas, position before last thingy.\n let newPos = base === end ? base - 2 : base - 1;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // If we found no Halant we are done.\n // Otherwise only proceed if the Halant does\n // not belong to the Matra itself!\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) // If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos + 1 < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos + 1])) newPos++;\n } else newPos = start; // No move.\n }\n if (start < newPos && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Now go see if there's actually any matras...\n for(let i = newPos; i > start; i--)if (glyphs[i - 1].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n let oldPos = i - 1;\n if (oldPos < base && base <= newPos) base--;\n let tmp = glyphs[oldPos];\n glyphs.splice(oldPos, 0, ...glyphs.splice(oldPos + 1, newPos - oldPos));\n glyphs[newPos] = tmp;\n newPos--;\n }\n }\n }\n // o Reorder reph:\n //\n // Reph’s original position is always at the beginning of the syllable,\n // (i.e. it is not reordered at the character reordering stage). However,\n // it will be reordered according to the basic-forms shaping results.\n // Possible positions for reph, depending on the script, are; after main,\n // before post-base consonant forms, and after post-base consonant forms.\n // Two cases:\n //\n // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n // we should only move it if the sequence ligated to the repha form.\n //\n // - If repha is encoded separately and in the logical position, we should only\n // move it if it did NOT ligate. If it ligated, it's probably the font trying\n // to make it work without the reordering.\n if (start + 1 < end && glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)) {\n let newRephPos;\n let rephPos = indicConfig.rephPos;\n let found = false;\n // 1. If reph should be positioned after post-base consonant forms,\n // proceed to step 5.\n if (rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post) {\n // 2. If the reph repositioning class is not after post-base: target\n // position is after the first explicit halant glyph between the\n // first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n // are following this halant, position is moved after it. If such\n // position is found, this is the target position. Otherwise,\n // proceed to the next step.\n //\n // Note: in old-implementation fonts, where classifications were\n // fixed in shaping engine, there was no case where reph position\n // will be found on this step.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n // 3. If reph should be repositioned after the main consonant: find the\n // first consonant not ligated with main, or find the first\n // consonant that is not a potential pre-base reordering Ra.\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main) {\n newRephPos = base;\n while(newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main)newRephPos++;\n found = newRephPos < end;\n }\n // 4. If reph should be positioned before post-base consonant, find\n // first post-base classified consonant not ligated with main. If no\n // consonant is found, the target position should be before the\n // first matra, syllable modifier sign or vedic sign.\n //\n // This is our take on what step 4 is trying to say (and failing, BADLY).\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Sub) {\n newRephPos = base;\n while(newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & ((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)))newRephPos++;\n found = newRephPos < end;\n }\n }\n // 5. If no consonant is found in steps 3 or 4, move reph to a position\n // immediately before the first post-base matra, syllable modifier\n // sign or vedic sign that has a reordering class after the intended\n // reph position. For example, if the reordering position for reph\n // is post-main, it will skip above-base matras that also have a\n // post-main position.\n if (!found) {\n // Copied from step 2.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n }\n // 6. Otherwise, reorder reph to the end of the syllable.\n if (!found) {\n newRephPos = end - 1;\n while(newRephPos > start && glyphs[newRephPos].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)newRephPos--;\n // If the Reph is to be ending up after a Matra,Halant sequence,\n // position it before that Halant so it can interact with the Matra.\n // However, if it's a plain Consonant,Halant we shouldn't do that.\n // Uniscribe doesn't do this.\n // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n for(let i = base + 1; i < newRephPos; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) newRephPos--;\n }\n }\n let reph = glyphs[start];\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, newRephPos - start));\n glyphs[newRephPos] = reph;\n if (start < base && base <= newRephPos) base--;\n }\n // o Reorder pre-base reordering consonants:\n //\n // If a pre-base reordering consonant is found, reorder it according to\n // the following rules:\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n // 1. Only reorder a glyph produced by substitution during application\n // of the <pref> feature. (Note that a font may shape a Ra consonant with\n // the feature generally but block it in certain contexts.)\n // Note: We just check that something got substituted. We don't check that\n // the <pref> feature actually did it...\n //\n // Reorder pref only if it ligated.\n if (glyphs[i].isLigated && !glyphs[i].isMultiplied) {\n // 2. Try to find a target position the same way as for pre-base matra.\n // If it is found, reorder pre-base consonant glyph.\n //\n // 3. If position is not found, reorder immediately before main\n // consonant.\n let newPos = base;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos - 1].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // In Khmer coeng model, a H,Ra can go *after* matras. If it goes after a\n // split matra, it should be reordered to *before* the left part of such matra.\n if (newPos > start && glyphs[newPos - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n let oldPos = i;\n for(let j = base + 1; j < oldPos; j++)if (glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n newPos--;\n break;\n }\n }\n }\n if (newPos > start && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos - 1])) // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos])) newPos++;\n }\n let oldPos = i;\n let tmp = glyphs[oldPos];\n glyphs.splice(newPos + 1, 0, ...glyphs.splice(newPos, oldPos - newPos));\n glyphs[newPos] = tmp;\n if (newPos <= base && base < oldPos) base++;\n }\n break;\n }\n }\n // Apply 'init' to the Left Matra if it's a word start.\n if (glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M && (!start || !/Cf|Mn/.test((0, $6uUbQ$getCategory)(glyphs[start - 1].codePoints[0])))) glyphs[start].features.init = true;\n }\n}\nfunction $7826f90f6f0cecc9$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\n\n\n\n\n\n\n\n\n\nconst { categories: $7ab494fe977143c6$var$categories, decompositions: $7ab494fe977143c6$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7ab494fe977143c6$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7ab494fe977143c6$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports))));\nclass $7ab494fe977143c6$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7ab494fe977143c6$var$setupSyllables);\n // Default glyph pre-processing group\n plan.addStage([\n 'locl',\n 'ccmp',\n 'nukt',\n 'akhn'\n ]);\n // Reordering group\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'rphf'\n ], false);\n plan.addStage($7ab494fe977143c6$var$recordRphf);\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'pref'\n ]);\n plan.addStage($7ab494fe977143c6$var$recordPref);\n // Orthographic unit shaping group\n plan.addStage([\n 'rkrf',\n 'abvf',\n 'blwf',\n 'half',\n 'pstf',\n 'vatu',\n 'cjct'\n ]);\n plan.addStage($7ab494fe977143c6$var$reorder);\n // Topographical features\n // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n // Standard topographic presentation and positional feature application\n plan.addStage([\n 'abvs',\n 'blws',\n 'pres',\n 'psts',\n 'dist',\n 'abvm',\n 'blwm'\n ]);\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split vowels\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n if ($7ab494fe977143c6$var$decompositions[codepoint]) {\n let decomposed = $7ab494fe977143c6$var$decompositions[codepoint].map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7ab494fe977143c6$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'BEFORE_GPOS');\nfunction $7ab494fe977143c6$var$useCategory(glyph) {\n return $7ab494fe977143c6$var$trie.get(glyph.codePoints[0]);\n}\nclass $7ab494fe977143c6$var$USEInfo {\n constructor(category, syllableType, syllable){\n this.category = category;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7ab494fe977143c6$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n for (let [start, end, tags] of $7ab494fe977143c6$var$stateMachine.match(glyphs.map($7ab494fe977143c6$var$useCategory))){\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7ab494fe977143c6$var$USEInfo($7ab494fe977143c6$var$categories[$7ab494fe977143c6$var$useCategory(glyphs[i])], tags[0], syllable);\n // Assign rphf feature\n let limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n for(let i = start; i < start + limit; i++)glyphs[i].features.rphf = true;\n }\n}\nfunction $7ab494fe977143c6$var$clearSubstitutionFlags(font, glyphs) {\n for (let glyph of glyphs)glyph.substituted = false;\n}\nfunction $7ab494fe977143c6$var$recordRphf(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted && glyph.features.rphf) // Mark a substituted repha.\n glyph.shaperInfo.category = 'R';\n}\nfunction $7ab494fe977143c6$var$recordPref(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted) // Mark a substituted pref as VPre, as they behave the same way.\n glyph.shaperInfo.category = 'VPre';\n}\nfunction $7ab494fe977143c6$var$reorder(font, glyphs) {\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n for(let start = 0, end = $7ab494fe977143c6$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7ab494fe977143c6$var$nextSyllable(glyphs, start)){\n let i, j;\n let info = glyphs[start].shaperInfo;\n let type = info.syllableType;\n // Only a few syllable types need reordering.\n if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') continue;\n // Insert a dotted circle glyph in broken clusters.\n if (type === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = info;\n // Insert after possible Repha.\n for(i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++);\n glyphs.splice(++i, 0, g);\n end++;\n }\n // Move things forward.\n if (info.category === 'R' && end - start > 1) // Got a repha. Reorder it to after first base, before first halant.\n for(i = start + 1; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) {\n // If we hit a halant, move before it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n if ($7ab494fe977143c6$var$isHalant(glyphs[i])) i--;\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, i - start), glyphs[i]);\n break;\n }\n }\n // Move things back.\n for(i = start, j = end; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) // If we hit a halant, move after it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n j = $7ab494fe977143c6$var$isHalant(glyphs[i]) ? i + 1 : i;\n else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) glyphs.splice(j, 1, glyphs[i], ...glyphs.splice(j, i - j));\n }\n }\n}\nfunction $7ab494fe977143c6$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\nfunction $7ab494fe977143c6$var$isHalant(glyph) {\n return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\nfunction $7ab494fe977143c6$var$isBase(info) {\n return info.category === 'B' || info.category === 'GB';\n}\n\n\nconst $102b6fe50f1d50b4$var$SHAPERS = {\n arab: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mong: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n syrc: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n 'nko ': (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phag: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mand: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mani: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phlp: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n hang: (0, $e1c6bbc8cb416f8c$export$2e2bcd8739ae039),\n bng2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n beng: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n dev2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n deva: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gjr2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gujr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n guru: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gur2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knda: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knd2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlm2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlym: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n ory2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n orya: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n taml: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tml2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n telu: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tel2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n khmr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n bali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n batk: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n brah: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n bugi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n buhd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cakm: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cham: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n dupl: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n egyp: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n gran: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n hano: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n java: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kthi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khar: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khoj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sind: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lepc: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n limb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n mahj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mand: UniversalShaper, // Mandaic\n // mani: UniversalShaper, // Manichaean\n mtei: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n modi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mong: UniversalShaper, // Mongolian\n // 'nko ': UniversalShaper, // N’Ko\n hmng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // phag: UniversalShaper, // Phags-pa\n // phlp: UniversalShaper, // Psalter Pahlavi\n rjng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n saur: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n shrd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sidd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sinh: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n sund: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sylo: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tglg: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tagb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tale: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lana: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tavt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n takr: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tibt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tfng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tirh: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n latn: (0, $649970d87335b30f$export$2e2bcd8739ae039),\n DFLT: (0, $649970d87335b30f$export$2e2bcd8739ae039 // Default\n )\n};\nfunction $102b6fe50f1d50b4$export$7877a478dd30fd3d(script) {\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script){\n let shaper = $102b6fe50f1d50b4$var$SHAPERS[s];\n if (shaper) return shaper;\n }\n return 0, $649970d87335b30f$export$2e2bcd8739ae039;\n}\n\n\n\n\n\nclass $0a876c45f1f7c41c$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let glyph = this.glyphIterator.cur;\n switch(table.version){\n case 1:\n glyph.id = glyph.id + table.deltaGlyphID & 0xffff;\n break;\n case 2:\n glyph.id = table.substitute.get(index);\n break;\n }\n return true;\n }\n case 2:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let sequence = table.sequences.get(index);\n if (sequence.length === 0) {\n // If the sequence length is zero, delete the glyph.\n // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n this.glyphs.splice(this.glyphIterator.index, 1);\n return true;\n }\n this.glyphIterator.cur.id = sequence[0];\n this.glyphIterator.cur.ligatureComponent = 0;\n let features = this.glyphIterator.cur.features;\n let curGlyph = this.glyphIterator.cur;\n let replacement = sequence.slice(1).map((gid, i)=>{\n let glyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, gid, undefined, features);\n glyph.shaperInfo = curGlyph.shaperInfo;\n glyph.isLigated = curGlyph.isLigated;\n glyph.ligatureComponent = i + 1;\n glyph.substituted = true;\n glyph.isMultiplied = true;\n return glyph;\n });\n this.glyphs.splice(this.glyphIterator.index + 1, 0, ...replacement);\n return true;\n }\n return false;\n }\n case 3:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let USER_INDEX = 0; // TODO\n this.glyphIterator.cur.id = table.alternateSet.get(index)[USER_INDEX];\n return true;\n }\n return false;\n }\n case 4:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n for (let ligature of table.ligatureSets.get(index)){\n let matched = this.sequenceMatchIndices(1, ligature.components);\n if (!matched) continue;\n let curGlyph = this.glyphIterator.cur;\n // Concatenate all of the characters the new ligature will represent\n let characters = curGlyph.codePoints.slice();\n for (let index of matched)characters.push(...this.glyphs[index].codePoints);\n // Create the replacement ligature glyph\n let ligatureGlyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, ligature.glyph, characters, curGlyph.features);\n ligatureGlyph.shaperInfo = curGlyph.shaperInfo;\n ligatureGlyph.isLigated = true;\n ligatureGlyph.substituted = true;\n // From Harfbuzz:\n // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n // the ligature to keep its old ligature id. This will allow it to attach to\n // a base ligature in GPOS. Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n // and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n // ligature id and component value of 2. Then if SHADDA,FATHA form a ligature\n // later, we don't want them to lose their ligature id/component, otherwise\n // GPOS will fail to correctly position the mark ligature on top of the\n // LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n //\n // - If a ligature is formed of components that some of which are also ligatures\n // themselves, and those ligature components had marks attached to *their*\n // components, we have to attach the marks to the new ligature component\n // positions! Now *that*'s tricky! And these marks may be following the\n // last component of the whole sequence, so we should loop forward looking\n // for them and update them.\n //\n // Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n // 'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n // id and component == 1. Now, during 'liga', the LAM and the LAM-HEH ligature\n // form a LAM-LAM-HEH ligature. We need to reassign the SHADDA and FATHA to\n // the new ligature with a component value of 2.\n //\n // This in fact happened to a font... See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n let isMarkLigature = curGlyph.isMark;\n for(let i = 0; i < matched.length && isMarkLigature; i++)isMarkLigature = this.glyphs[matched[i]].isMark;\n ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n let lastLigID = curGlyph.ligatureID;\n let lastNumComps = curGlyph.codePoints.length;\n let curComps = lastNumComps;\n let idx = this.glyphIterator.index + 1;\n // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n // This allows GPOS to attach marks to the correct ligature components.\n for (let matchIndex of matched){\n // Don't assign new ligature components for mark ligatures (see above)\n if (isMarkLigature) idx = matchIndex;\n else while(idx < matchIndex){\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n this.glyphs[idx].ligatureComponent = ligatureComponent;\n idx++;\n }\n lastLigID = this.glyphs[idx].ligatureID;\n lastNumComps = this.glyphs[idx].codePoints.length;\n curComps += lastNumComps;\n idx++; // skip base glyph\n }\n // Adjust ligature components for any marks following\n if (lastLigID && !isMarkLigature) for(let i = idx; i < this.glyphs.length; i++){\n if (this.glyphs[i].ligatureID === lastLigID) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[i].ligatureComponent || 1, lastNumComps);\n this.glyphs[i].ligatureComponent = ligatureComponent;\n } else break;\n }\n // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n for(let i = matched.length - 1; i >= 0; i--)this.glyphs.splice(matched[i], 1);\n this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n return true;\n }\n return false;\n }\n case 5:\n return this.applyContext(table);\n case 6:\n return this.applyChainingContext(table);\n case 7:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`GSUB lookupType ${lookupType} is not supported`);\n }\n }\n}\n\n\n\nclass $c96c93587d49c14d$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyPositionValue(sequenceIndex, value) {\n let position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n if (value.xAdvance != null) position.xAdvance += value.xAdvance;\n if (value.yAdvance != null) position.yAdvance += value.yAdvance;\n if (value.xPlacement != null) position.xOffset += value.xPlacement;\n if (value.yPlacement != null) position.yOffset += value.yPlacement;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (value.xPlaDevice) position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n if (value.yPlaDevice) position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n if (value.xAdvDevice) position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n if (value.yAdvDevice) position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n }\n // TODO: device tables\n }\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n this.applyPositionValue(0, table.value);\n break;\n case 2:\n this.applyPositionValue(0, table.values.get(index));\n break;\n }\n return true;\n }\n case 2:\n {\n let nextGlyph = this.glyphIterator.peek();\n if (!nextGlyph) return false;\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n let set = table.pairSets.get(index);\n for (let pair of set)if (pair.secondGlyph === nextGlyph.id) {\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n return false;\n case 2:\n let class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n let class2 = this.getClassID(nextGlyph.id, table.classDef2);\n if (class1 === -1 || class2 === -1) return false;\n var pair = table.classRecords.get(class1).get(class2);\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n case 3:\n {\n let nextIndex = this.glyphIterator.peekIndex();\n let nextGlyph = this.glyphs[nextIndex];\n if (!nextGlyph) return false;\n let curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n if (!curRecord || !curRecord.exitAnchor) return false;\n let nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, nextGlyph.id)];\n if (!nextRecord || !nextRecord.entryAnchor) return false;\n let entry = this.getAnchor(nextRecord.entryAnchor);\n let exit = this.getAnchor(curRecord.exitAnchor);\n let cur = this.positions[this.glyphIterator.index];\n let next = this.positions[nextIndex];\n let d;\n switch(this.direction){\n case 'ltr':\n cur.xAdvance = exit.x + cur.xOffset;\n d = entry.x + next.xOffset;\n next.xAdvance -= d;\n next.xOffset -= d;\n break;\n case 'rtl':\n d = exit.x + cur.xOffset;\n cur.xAdvance -= d;\n cur.xOffset -= d;\n next.xAdvance = entry.x + next.xOffset;\n break;\n }\n if (this.glyphIterator.flags.rightToLeft) {\n this.glyphIterator.cur.cursiveAttachment = nextIndex;\n cur.yOffset = entry.y - exit.y;\n } else {\n nextGlyph.cursiveAttachment = this.glyphIterator.index;\n cur.yOffset = exit.y - entry.y;\n }\n return true;\n }\n case 4:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0));\n if (baseGlyphIndex < 0) return false;\n let baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n if (baseIndex === -1) return false;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = table.baseArray[baseIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 5:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && this.glyphs[baseGlyphIndex].isMark);\n if (baseGlyphIndex < 0) return false;\n let ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[baseGlyphIndex].id);\n if (ligIndex === -1) return false;\n let ligAttach = table.ligatureArray[ligIndex];\n let markGlyph = this.glyphIterator.cur;\n let ligGlyph = this.glyphs[baseGlyphIndex];\n let compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = ligAttach[compIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 6:\n {\n let mark1Index = this.coverageIndex(table.mark1Coverage);\n if (mark1Index === -1) return false;\n // get the previous mark to attach to\n let prevIndex = this.glyphIterator.peekIndex(-1);\n let prev = this.glyphs[prevIndex];\n if (!prev || !prev.isMark) return false;\n let cur = this.glyphIterator.cur;\n // The following logic was borrowed from Harfbuzz\n let good = false;\n if (cur.ligatureID === prev.ligatureID) {\n if (!cur.ligatureID) good = true;\n else if (cur.ligatureComponent === prev.ligatureComponent) good = true;\n } else // If ligature ids don't match, it may be the case that one of the marks\n // itself is a ligature, in which case match.\n if (cur.ligatureID && !cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) good = true;\n if (!good) return false;\n let mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n if (mark2Index === -1) return false;\n let markRecord = table.mark1Array[mark1Index];\n let baseAnchor = table.mark2Array[mark2Index][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, prevIndex);\n return true;\n }\n case 7:\n return this.applyContext(table);\n case 8:\n return this.applyChainingContext(table);\n case 9:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`Unsupported GPOS table: ${lookupType}`);\n }\n }\n applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n let baseCoords = this.getAnchor(baseAnchor);\n let markCoords = this.getAnchor(markRecord.markAnchor);\n let basePos = this.positions[baseGlyphIndex];\n let markPos = this.positions[this.glyphIterator.index];\n markPos.xOffset = baseCoords.x - markCoords.x;\n markPos.yOffset = baseCoords.y - markCoords.y;\n this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n }\n getAnchor(anchor) {\n // TODO: contour point, device tables\n let x = anchor.xCoordinate;\n let y = anchor.yCoordinate;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (anchor.xDeviceTable) x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n if (anchor.yDeviceTable) y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n }\n return {\n x: x,\n y: y\n };\n }\n applyFeatures(userFeatures, glyphs, advances) {\n super.applyFeatures(userFeatures, glyphs, advances);\n for(var i = 0; i < this.glyphs.length; i++)this.fixCursiveAttachment(i);\n this.fixMarkAttachment();\n }\n fixCursiveAttachment(i) {\n let glyph = this.glyphs[i];\n if (glyph.cursiveAttachment != null) {\n let j = glyph.cursiveAttachment;\n glyph.cursiveAttachment = null;\n this.fixCursiveAttachment(j);\n this.positions[i].yOffset += this.positions[j].yOffset;\n }\n }\n fixMarkAttachment() {\n for(let i = 0; i < this.glyphs.length; i++){\n let glyph = this.glyphs[i];\n if (glyph.markAttachment != null) {\n let j = glyph.markAttachment;\n this.positions[i].xOffset += this.positions[j].xOffset;\n this.positions[i].yOffset += this.positions[j].yOffset;\n if (this.direction === 'ltr') for(let k = j; k < i; k++){\n this.positions[i].xOffset -= this.positions[k].xAdvance;\n this.positions[i].yOffset -= this.positions[k].yAdvance;\n }\n else for(let k = j + 1; k < i + 1; k++){\n this.positions[i].xOffset += this.positions[k].xAdvance;\n this.positions[i].yOffset += this.positions[k].yAdvance;\n }\n }\n }\n }\n}\n\n\nclass $a62492810de27e3d$export$2e2bcd8739ae039 {\n setup(glyphRun) {\n // Map glyphs to GlyphInfo objects so data can be passed between\n // GSUB and GPOS without mutating the real (shared) Glyph objects.\n this.glyphInfos = glyphRun.glyphs.map((glyph)=>new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, glyph.id, [\n ...glyph.codePoints\n ]));\n // Select a script based on what is available in GSUB/GPOS.\n let script = null;\n if (this.GPOSProcessor) script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n if (this.GSUBProcessor) script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n // Choose a shaper based on the script, and setup a shaping plan.\n // This determines which features to apply to which glyphs.\n this.shaper = $102b6fe50f1d50b4$export$7877a478dd30fd3d(script);\n this.plan = new (0, $94d7a73bd2edfc9a$export$2e2bcd8739ae039)(this.font, script, glyphRun.direction);\n this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);\n // Assign chosen features to output glyph run\n for(let key in this.plan.allFeatures)glyphRun.features[key] = true;\n }\n substitute(glyphRun) {\n if (this.GSUBProcessor) {\n this.plan.process(this.GSUBProcessor, this.glyphInfos);\n // Map glyph infos back to normal Glyph objects\n glyphRun.glyphs = this.glyphInfos.map((glyphInfo)=>this.font.getGlyph(glyphInfo.id, glyphInfo.codePoints));\n }\n }\n position(glyphRun) {\n if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n if (this.GPOSProcessor) this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n // Reverse the glyphs and positions if the script is right-to-left\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n glyphRun.positions.reverse();\n }\n return this.GPOSProcessor && this.GPOSProcessor.features;\n }\n zeroMarkAdvances(positions) {\n for(let i = 0; i < this.glyphInfos.length; i++)if (this.glyphInfos[i].isMark) {\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n cleanup() {\n this.glyphInfos = null;\n this.plan = null;\n this.shaper = null;\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.GSUBProcessor) {\n this.GSUBProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GSUBProcessor.features));\n }\n if (this.GPOSProcessor) {\n this.GPOSProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GPOSProcessor.features));\n }\n return features;\n }\n constructor(font){\n this.font = font;\n this.glyphInfos = null;\n this.plan = null;\n this.GSUBProcessor = null;\n this.GPOSProcessor = null;\n this.fallbackPosition = true;\n if (font.GSUB) this.GSUBProcessor = new (0, $0a876c45f1f7c41c$export$2e2bcd8739ae039)(font, font.GSUB);\n if (font.GPOS) this.GPOSProcessor = new (0, $c96c93587d49c14d$export$2e2bcd8739ae039)(font, font.GPOS);\n }\n}\n\n\nclass $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039 {\n layout(string, features, script, language, direction) {\n // Make the features parameter optional\n if (typeof features === 'string') {\n direction = language;\n language = script;\n script = features;\n features = [];\n }\n // Map string to glyphs if needed\n if (typeof string === 'string') {\n // Attempt to detect the script from the string if not provided.\n if (script == null) script = $130d1a642ebcd2b7$export$e5cb25e204fb8450(string);\n var glyphs = this.font.glyphsForString(string);\n } else {\n // Attempt to detect the script from the glyph code points if not provided.\n if (script == null) {\n let codePoints = [];\n for (let glyph of string)codePoints.push(...glyph.codePoints);\n script = $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints);\n }\n var glyphs = string;\n }\n let glyphRun = new (0, $be07b3e97a42687a$export$2e2bcd8739ae039)(glyphs, features, script, language, direction);\n // Return early if there are no glyphs\n if (glyphs.length === 0) {\n glyphRun.positions = [];\n return glyphRun;\n }\n // Setup the advanced layout engine\n if (this.engine && this.engine.setup) this.engine.setup(glyphRun);\n // Substitute and position the glyphs\n this.substitute(glyphRun);\n this.position(glyphRun);\n this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);\n // Let the layout engine clean up any state it might have\n if (this.engine && this.engine.cleanup) this.engine.cleanup();\n return glyphRun;\n }\n substitute(glyphRun) {\n // Call the advanced layout engine to make substitutions\n if (this.engine && this.engine.substitute) this.engine.substitute(glyphRun);\n }\n position(glyphRun) {\n // Get initial glyph positions\n glyphRun.positions = glyphRun.glyphs.map((glyph)=>new (0, $1ac75d9a55b67f01$export$2e2bcd8739ae039)(glyph.advanceWidth));\n let positioned = null;\n // Call the advanced layout engine. Returns the features applied.\n if (this.engine && this.engine.position) positioned = this.engine.position(glyphRun);\n // if there is no GPOS table, use unicode properties to position marks.\n if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n if (!this.unicodeLayoutEngine) this.unicodeLayoutEngine = new (0, $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039)(this.font);\n this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n }\n // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n if (!this.kernProcessor) this.kernProcessor = new (0, $0bba3a9db57637f3$export$2e2bcd8739ae039)(this.font);\n this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n glyphRun.features.kern = true;\n }\n }\n hideDefaultIgnorables(glyphs, positions) {\n let space = this.font.glyphForCodePoint(0x20);\n for(let i = 0; i < glyphs.length; i++)if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n glyphs[i] = space;\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n isDefaultIgnorable(ch) {\n // From DerivedCoreProperties.txt in the Unicode database,\n // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n // Harfbuzz and Uniscribe do.\n let plane = ch >> 16;\n if (plane === 0) // BMP\n switch(ch >> 8){\n case 0x00:\n return ch === 0x00AD;\n case 0x03:\n return ch === 0x034F;\n case 0x06:\n return ch === 0x061C;\n case 0x17:\n return 0x17B4 <= ch && ch <= 0x17B5;\n case 0x18:\n return 0x180B <= ch && ch <= 0x180E;\n case 0x20:\n return 0x200B <= ch && ch <= 0x200F || 0x202A <= ch && ch <= 0x202E || 0x2060 <= ch && ch <= 0x206F;\n case 0xFE:\n return 0xFE00 <= ch && ch <= 0xFE0F || ch === 0xFEFF;\n case 0xFF:\n return 0xFFF0 <= ch && ch <= 0xFFF8;\n default:\n return false;\n }\n else // Other planes\n switch(plane){\n case 0x01:\n return 0x1BCA0 <= ch && ch <= 0x1BCA3 || 0x1D173 <= ch && ch <= 0x1D17A;\n case 0x0E:\n return 0xE0000 <= ch && ch <= 0xE0FFF;\n default:\n return false;\n }\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.engine) features.push(...this.engine.getAvailableFeatures(script, language));\n if (this.font.kern && features.indexOf('kern') === -1) features.push('kern');\n return features;\n }\n stringsForGlyph(gid) {\n let result = new Set;\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n for (let codePoint of codePoints)result.add(String.fromCodePoint(codePoint));\n if (this.engine && this.engine.stringsForGlyph) for (let string of this.engine.stringsForGlyph(gid))result.add(string);\n return Array.from(result);\n }\n constructor(font){\n this.font = font;\n this.unicodeLayoutEngine = null;\n this.kernProcessor = null;\n // Choose an advanced layout engine. We try the AAT morx table first since more\n // scripts are currently supported because the shaping logic is built into the font.\n if (this.font.morx) this.engine = new (0, $ba6dd74203be8728$export$2e2bcd8739ae039)(this.font);\n else if (this.font.GSUB || this.font.GPOS) this.engine = new (0, $a62492810de27e3d$export$2e2bcd8739ae039)(this.font);\n }\n}\n\n\n\n\n\n\nconst $f43aec954cdfdf21$var$SVG_COMMANDS = {\n moveTo: 'M',\n lineTo: 'L',\n quadraticCurveTo: 'Q',\n bezierCurveTo: 'C',\n closePath: 'Z'\n};\nclass $f43aec954cdfdf21$export$2e2bcd8739ae039 {\n /**\n * Compiles the path to a JavaScript function that can be applied with\n * a graphics context in order to render the path.\n * @return {string}\n */ toFunction() {\n return (ctx)=>{\n this.commands.forEach((c)=>{\n return ctx[c.command].apply(ctx, c.args);\n });\n };\n }\n /**\n * Converts the path to an SVG path data string\n * @return {string}\n */ toSVG() {\n let cmds = this.commands.map((c)=>{\n let args = c.args.map((arg)=>Math.round(arg * 100) / 100);\n return `${$f43aec954cdfdf21$var$SVG_COMMANDS[c.command]}${args.join(' ')}`;\n });\n return cmds.join('');\n }\n /**\n * Gets the \"control box\" of a path.\n * This is like the bounding box, but it includes all points including\n * control points of bezier segments and is much faster to compute than\n * the real bounding box.\n * @type {BBox}\n */ get cbox() {\n if (!this._cbox) {\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for (let command of this.commands)for(let i = 0; i < command.args.length; i += 2)cbox.addPoint(command.args[i], command.args[i + 1]);\n this._cbox = Object.freeze(cbox);\n }\n return this._cbox;\n }\n /**\n * Gets the exact bounding box of the path by evaluating curve segments.\n * Slower to compute than the control box, but more accurate.\n * @type {BBox}\n */ get bbox() {\n if (this._bbox) return this._bbox;\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let cx = 0, cy = 0;\n let f = (t)=>Math.pow(1 - t, 3) * p0[i] + 3 * Math.pow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i];\n for (let c of this.commands)switch(c.command){\n case 'moveTo':\n case 'lineTo':\n let [x, y] = c.args;\n bbox.addPoint(x, y);\n cx = x;\n cy = y;\n break;\n case 'quadraticCurveTo':\n case 'bezierCurveTo':\n if (c.command === 'quadraticCurveTo') {\n // http://fontforge.org/bezier.html\n var [qp1x, qp1y, p3x, p3y] = c.args;\n var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n var cp1y = cy + 2 / 3 * (qp1y - cy);\n var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n } else var [cp1x, cp1y, cp2x, cp2y, p3x, p3y] = c.args;\n // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n bbox.addPoint(p3x, p3y);\n var p0 = [\n cx,\n cy\n ];\n var p1 = [\n cp1x,\n cp1y\n ];\n var p2 = [\n cp2x,\n cp2y\n ];\n var p3 = [\n p3x,\n p3y\n ];\n for(var i = 0; i <= 1; i++){\n let b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n let a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n if (a === 0) {\n if (b === 0) continue;\n let t = -c / b;\n if (0 < t && t < 1) {\n if (i === 0) bbox.addPoint(f(t), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t));\n }\n continue;\n }\n let b2ac = Math.pow(b, 2) - 4 * c * a;\n if (b2ac < 0) continue;\n let t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (0 < t1 && t1 < 1) {\n if (i === 0) bbox.addPoint(f(t1), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t1));\n }\n let t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (0 < t2 && t2 < 1) {\n if (i === 0) bbox.addPoint(f(t2), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t2));\n }\n }\n cx = p3x;\n cy = p3y;\n break;\n }\n return this._bbox = Object.freeze(bbox);\n }\n /**\n * Applies a mapping function to each point in the path.\n * @param {function} fn\n * @return {Path}\n */ mapPoints(fn) {\n let path = new $f43aec954cdfdf21$export$2e2bcd8739ae039;\n for (let c of this.commands){\n let args = [];\n for(let i = 0; i < c.args.length; i += 2){\n let [x, y] = fn(c.args[i], c.args[i + 1]);\n args.push(x, y);\n }\n path[c.command](...args);\n }\n return path;\n }\n /**\n * Transforms the path by the given matrix.\n */ transform(m0, m1, m2, m3, m4, m5) {\n return this.mapPoints((x, y)=>{\n const tx = m0 * x + m2 * y + m4;\n const ty = m1 * x + m3 * y + m5;\n return [\n tx,\n ty\n ];\n });\n }\n /**\n * Translates the path by the given offset.\n */ translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n }\n /**\n * Rotates the path by the given angle (in radians).\n */ rotate(angle) {\n let cos = Math.cos(angle);\n let sin = Math.sin(angle);\n return this.transform(cos, sin, -sin, cos, 0, 0);\n }\n /**\n * Scales the path.\n */ scale(scaleX, scaleY = scaleX) {\n return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n }\n constructor(){\n this.commands = [];\n this._bbox = null;\n this._cbox = null;\n }\n}\nfor (let command of [\n 'moveTo',\n 'lineTo',\n 'quadraticCurveTo',\n 'bezierCurveTo',\n 'closePath'\n])$f43aec954cdfdf21$export$2e2bcd8739ae039.prototype[command] = function(...args) {\n this._bbox = this._cbox = null;\n this.commands.push({\n command: command,\n args: args\n });\n return this;\n};\n\n\n\nvar $7713b9b7b438dff8$export$2e2bcd8739ae039 = [\n '.notdef',\n '.null',\n 'nonmarkingreturn',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quotesingle',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'grave',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'Adieresis',\n 'Aring',\n 'Ccedilla',\n 'Eacute',\n 'Ntilde',\n 'Odieresis',\n 'Udieresis',\n 'aacute',\n 'agrave',\n 'acircumflex',\n 'adieresis',\n 'atilde',\n 'aring',\n 'ccedilla',\n 'eacute',\n 'egrave',\n 'ecircumflex',\n 'edieresis',\n 'iacute',\n 'igrave',\n 'icircumflex',\n 'idieresis',\n 'ntilde',\n 'oacute',\n 'ograve',\n 'ocircumflex',\n 'odieresis',\n 'otilde',\n 'uacute',\n 'ugrave',\n 'ucircumflex',\n 'udieresis',\n 'dagger',\n 'degree',\n 'cent',\n 'sterling',\n 'section',\n 'bullet',\n 'paragraph',\n 'germandbls',\n 'registered',\n 'copyright',\n 'trademark',\n 'acute',\n 'dieresis',\n 'notequal',\n 'AE',\n 'Oslash',\n 'infinity',\n 'plusminus',\n 'lessequal',\n 'greaterequal',\n 'yen',\n 'mu',\n 'partialdiff',\n 'summation',\n 'product',\n 'pi',\n 'integral',\n 'ordfeminine',\n 'ordmasculine',\n 'Omega',\n 'ae',\n 'oslash',\n 'questiondown',\n 'exclamdown',\n 'logicalnot',\n 'radical',\n 'florin',\n 'approxequal',\n 'Delta',\n 'guillemotleft',\n 'guillemotright',\n 'ellipsis',\n 'nonbreakingspace',\n 'Agrave',\n 'Atilde',\n 'Otilde',\n 'OE',\n 'oe',\n 'endash',\n 'emdash',\n 'quotedblleft',\n 'quotedblright',\n 'quoteleft',\n 'quoteright',\n 'divide',\n 'lozenge',\n 'ydieresis',\n 'Ydieresis',\n 'fraction',\n 'currency',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'daggerdbl',\n 'periodcentered',\n 'quotesinglbase',\n 'quotedblbase',\n 'perthousand',\n 'Acircumflex',\n 'Ecircumflex',\n 'Aacute',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Oacute',\n 'Ocircumflex',\n 'apple',\n 'Ograve',\n 'Uacute',\n 'Ucircumflex',\n 'Ugrave',\n 'dotlessi',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'Lslash',\n 'lslash',\n 'Scaron',\n 'scaron',\n 'Zcaron',\n 'zcaron',\n 'brokenbar',\n 'Eth',\n 'eth',\n 'Yacute',\n 'yacute',\n 'Thorn',\n 'thorn',\n 'minus',\n 'multiply',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'onehalf',\n 'onequarter',\n 'threequarters',\n 'franc',\n 'Gbreve',\n 'gbreve',\n 'Idotaccent',\n 'Scedilla',\n 'scedilla',\n 'Cacute',\n 'cacute',\n 'Ccaron',\n 'ccaron',\n 'dcroat'\n];\n\n\nclass $f92906be28e61769$export$2e2bcd8739ae039 {\n _getPath() {\n return new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();\n }\n _getCBox() {\n return this.path.cbox;\n }\n _getBBox() {\n return this.path.bbox;\n }\n _getTableMetrics(table) {\n if (this.id < table.metrics.length) return table.metrics.get(this.id);\n let metric = table.metrics.get(table.metrics.length - 1);\n let res = {\n advance: metric ? metric.advance : 0,\n bearing: table.bearings.get(this.id - table.metrics.length) || 0\n };\n return res;\n }\n _getMetrics(cbox) {\n if (this._metrics) return this._metrics;\n let { advance: advanceWidth, bearing: leftBearing } = this._getTableMetrics(this._font.hmtx);\n // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n if (this._font.vmtx) var { advance: advanceHeight, bearing: topBearing } = this._getTableMetrics(this._font.vmtx);\n else {\n let os2;\n if (typeof cbox === 'undefined' || cbox === null) ({ cbox: cbox } = this);\n if ((os2 = this._font['OS/2']) && os2.version > 0) {\n var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n var topBearing = os2.typoAscender - cbox.maxY;\n } else {\n let { hhea: hhea } = this._font;\n var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n var topBearing = hhea.ascent - cbox.maxY;\n }\n }\n if (this._font._variationProcessor && this._font.HVAR) advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n return this._metrics = {\n advanceWidth: advanceWidth,\n advanceHeight: advanceHeight,\n leftBearing: leftBearing,\n topBearing: topBearing\n };\n }\n /**\n * The glyph’s control box.\n * This is often the same as the bounding box, but is faster to compute.\n * Because of the way bezier curves are defined, some of the control points\n * can be outside of the bounding box. Where `bbox` takes this into account,\n * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n * for a more detailed description.\n *\n * @type {BBox}\n */ get cbox() {\n return this._getCBox();\n }\n /**\n * The glyph’s bounding box, i.e. the rectangle that encloses the\n * glyph outline as tightly as possible.\n * @type {BBox}\n */ get bbox() {\n return this._getBBox();\n }\n /**\n * A vector Path object representing the glyph outline.\n * @type {Path}\n */ get path() {\n // Cache the path so we only decode it once\n // Decoding is actually performed by subclasses\n return this._getPath();\n }\n /**\n * Returns a path scaled to the given font size.\n * @param {number} size\n * @return {Path}\n */ getScaledPath(size) {\n let scale = 1 / this._font.unitsPerEm * size;\n return this.path.scale(scale);\n }\n /**\n * The glyph's advance width.\n * @type {number}\n */ get advanceWidth() {\n return this._getMetrics().advanceWidth;\n }\n /**\n * The glyph's advance height.\n * @type {number}\n */ get advanceHeight() {\n return this._getMetrics().advanceHeight;\n }\n get ligatureCaretPositions() {}\n _getName() {\n let { post: post } = this._font;\n if (!post) return null;\n switch(post.version){\n case 1:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id];\n case 2:\n let id = post.glyphNameIndex[this.id];\n if (id < (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length) return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[id];\n return post.names[id - (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length];\n case 2.5:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id + post.offsets[this.id]];\n case 4:\n return String.fromCharCode(post.map[this.id]);\n }\n }\n /**\n * The glyph's name\n * @type {string}\n */ get name() {\n return this._getName();\n }\n /**\n * Renders the glyph to the given graphics context, at the specified font size.\n * @param {CanvasRenderingContext2d} ctx\n * @param {number} size\n */ render(ctx, size) {\n ctx.save();\n let scale = 1 / this._font.head.unitsPerEm * size;\n ctx.scale(scale, scale);\n let fn = this.path.toFunction();\n fn(ctx);\n ctx.fill();\n ctx.restore();\n }\n constructor(id, codePoints, font){\n /**\n * The glyph id in the font\n * @type {number}\n */ this.id = id;\n /**\n * An array of unicode code points that are represented by this glyph.\n * There can be multiple code points in the case of ligatures and other glyphs\n * that represent multiple visual characters.\n * @type {number[]}\n */ this.codePoints = codePoints;\n this._font = font;\n // TODO: get this info from GDEF if available\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isLigature = this.codePoints.length > 1;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"cbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"path\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceWidth\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceHeight\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"name\", null);\n\n\n\n\n\n// The header for both simple and composite glyphs\nlet $69aac16029968692$var$GlyfHeader = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16\n});\n// Flags for simple glyphs\nconst $69aac16029968692$var$ON_CURVE = 1;\nconst $69aac16029968692$var$X_SHORT_VECTOR = 2;\nconst $69aac16029968692$var$Y_SHORT_VECTOR = 4;\nconst $69aac16029968692$var$REPEAT = 8;\nconst $69aac16029968692$var$SAME_X = 16;\nconst $69aac16029968692$var$SAME_Y = 32;\n// Flags for composite glyphs\nconst $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS = 1;\nconst $69aac16029968692$var$ARGS_ARE_XY_VALUES = 2;\nconst $69aac16029968692$var$ROUND_XY_TO_GRID = 4;\nconst $69aac16029968692$var$WE_HAVE_A_SCALE = 8;\nconst $69aac16029968692$var$MORE_COMPONENTS = 32;\nconst $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE = 64;\nconst $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO = 128;\nconst $69aac16029968692$var$WE_HAVE_INSTRUCTIONS = 256;\nconst $69aac16029968692$var$USE_MY_METRICS = 512;\nconst $69aac16029968692$var$OVERLAP_COMPOUND = 1024;\nconst $69aac16029968692$var$SCALED_COMPONENT_OFFSET = 2048;\nconst $69aac16029968692$var$UNSCALED_COMPONENT_OFFSET = 4096;\nclass $69aac16029968692$export$baf26146a414f24a {\n copy() {\n return new $69aac16029968692$export$baf26146a414f24a(this.onCurve, this.endContour, this.x, this.y);\n }\n constructor(onCurve, endContour, x = 0, y = 0){\n this.onCurve = onCurve;\n this.endContour = endContour;\n this.x = x;\n this.y = y;\n }\n}\n// Represents a component in a composite glyph\nclass $69aac16029968692$var$Component {\n constructor(glyphID, dx, dy){\n this.glyphID = glyphID;\n this.dx = dx;\n this.dy = dy;\n this.pos = 0;\n this.scaleX = this.scaleY = 1;\n this.scale01 = this.scale10 = 0;\n }\n}\nclass $69aac16029968692$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n // Parses just the glyph header and returns the bounding box\n _getCBox(internal) {\n // We need to decode the glyph if variation processing is requested,\n // so it's easier just to recompute the path's cbox after decoding.\n if (this._font._variationProcessor && !internal) return this.path.cbox;\n let stream = this._font._getTableStream('glyf');\n stream.pos += this._font.loca.offsets[this.id];\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n return Object.freeze(cbox);\n }\n // Parses a single glyph coordinate\n _parseGlyphCoord(stream, prev, short, same) {\n if (short) {\n var val = stream.readUInt8();\n if (!same) val = -val;\n val += prev;\n } else if (same) var val = prev;\n else var val = prev + stream.readInt16BE();\n return val;\n }\n // Decodes the glyph data into points for simple glyphs,\n // or components for composite glyphs\n _decode() {\n let glyfPos = this._font.loca.offsets[this.id];\n let nextPos = this._font.loca.offsets[this.id + 1];\n // Nothing to do if there is no data for this glyph\n if (glyfPos === nextPos) return null;\n let stream = this._font._getTableStream('glyf');\n stream.pos += glyfPos;\n let startPos = stream.pos;\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n if (glyph.numberOfContours > 0) this._decodeSimple(glyph, stream);\n else if (glyph.numberOfContours < 0) this._decodeComposite(glyph, stream, startPos);\n return glyph;\n }\n _decodeSimple(glyph, stream) {\n // this is a simple glyph\n glyph.points = [];\n let endPtsOfContours = new $6uUbQ$Array($6uUbQ$uint16, glyph.numberOfContours).decode(stream);\n glyph.instructions = new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16).decode(stream);\n let flags = [];\n let numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n while(flags.length < numCoords){\n var flag = stream.readUInt8();\n flags.push(flag);\n // check for repeat flag\n if (flag & $69aac16029968692$var$REPEAT) {\n let count = stream.readUInt8();\n for(let j = 0; j < count; j++)flags.push(flag);\n }\n }\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n let point = new $69aac16029968692$export$baf26146a414f24a(!!(flag & $69aac16029968692$var$ON_CURVE), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n glyph.points.push(point);\n }\n let px = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & $69aac16029968692$var$X_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_X);\n }\n let py = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & $69aac16029968692$var$Y_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_Y);\n }\n if (this._font._variationProcessor) {\n let points = glyph.points.slice();\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.slice(-4);\n }\n return;\n }\n _decodeComposite(glyph, stream, offset = 0) {\n // this is a composite glyph\n glyph.components = [];\n let haveInstructions = false;\n let flags = $69aac16029968692$var$MORE_COMPONENTS;\n while(flags & $69aac16029968692$var$MORE_COMPONENTS){\n flags = stream.readUInt16BE();\n let gPos = stream.pos - offset;\n let glyphID = stream.readUInt16BE();\n if (!haveInstructions) haveInstructions = (flags & $69aac16029968692$var$WE_HAVE_INSTRUCTIONS) !== 0;\n if (flags & $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS) {\n var dx = stream.readInt16BE();\n var dy = stream.readInt16BE();\n } else {\n var dx = stream.readInt8();\n var dy = stream.readInt8();\n }\n var component = new $69aac16029968692$var$Component(glyphID, dx, dy);\n component.pos = gPos;\n if (flags & $69aac16029968692$var$WE_HAVE_A_SCALE) // fixed number with 14 bits of fraction\n component.scaleX = component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n else if (flags & $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n } else if (flags & $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale01 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale10 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n }\n glyph.components.push(component);\n }\n if (this._font._variationProcessor) {\n let points = [];\n for(let j = 0; j < glyph.components.length; j++){\n var component = glyph.components[j];\n points.push(new $69aac16029968692$export$baf26146a414f24a(true, true, component.dx, component.dy));\n }\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.splice(-4, 4);\n for(let i = 0; i < points.length; i++){\n let point = points[i];\n glyph.components[i].dx = point.x;\n glyph.components[i].dy = point.y;\n }\n }\n return haveInstructions;\n }\n _getPhantomPoints(glyph) {\n let cbox = this._getCBox(true);\n if (this._metrics == null) this._metrics = (0, $f92906be28e61769$export$2e2bcd8739ae039).prototype._getMetrics.call(this, cbox);\n let { advanceWidth: advanceWidth, advanceHeight: advanceHeight, leftBearing: leftBearing, topBearing: topBearing } = this._metrics;\n return [\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing + advanceWidth, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing + advanceHeight)\n ];\n }\n // Decodes font data, resolves composite glyphs, and returns an array of contours\n _getContours() {\n let glyph = this._decode();\n if (!glyph) return [];\n let points = [];\n if (glyph.numberOfContours < 0) // resolve composite glyphs\n for (let component of glyph.components){\n let contours = this._font.getGlyph(component.glyphID)._getContours();\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n for(let j = 0; j < contour.length; j++){\n let point = contour[j];\n let x = point.x * component.scaleX + point.y * component.scale01 + component.dx;\n let y = point.y * component.scaleY + point.x * component.scale10 + component.dy;\n points.push(new $69aac16029968692$export$baf26146a414f24a(point.onCurve, point.endContour, x, y));\n }\n }\n }\n else points = glyph.points || [];\n // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n }\n let contours = [];\n let cur = [];\n for(let k = 0; k < points.length; k++){\n var point = points[k];\n cur.push(point);\n if (point.endContour) {\n contours.push(cur);\n cur = [];\n }\n }\n return contours;\n }\n _getMetrics() {\n if (this._metrics) return this._metrics;\n let cbox = this._getCBox(true);\n super._getMetrics(cbox);\n if (this._font._variationProcessor && !this._font.HVAR) // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n this.path;\n return this._metrics;\n }\n // Converts contours to a Path object that can be rendered\n _getPath() {\n let contours = this._getContours();\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n let firstPt = contour[0];\n let lastPt = contour[contour.length - 1];\n let start = 0;\n if (firstPt.onCurve) {\n // The first point will be consumed by the moveTo command, so skip in the loop\n var curvePt = null;\n start = 1;\n } else {\n if (lastPt.onCurve) // Start at the last point if the first point is off curve and the last point is on curve\n firstPt = lastPt;\n else // Start at the middle if both the first and last points are off curve\n firstPt = new $69aac16029968692$export$baf26146a414f24a(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n var curvePt = firstPt;\n }\n path.moveTo(firstPt.x, firstPt.y);\n for(let j = start; j < contour.length; j++){\n let pt = contour[j];\n let prevPt = j === 0 ? firstPt : contour[j - 1];\n if (prevPt.onCurve && pt.onCurve) path.lineTo(pt.x, pt.y);\n else if (prevPt.onCurve && !pt.onCurve) var curvePt = pt;\n else if (!prevPt.onCurve && !pt.onCurve) {\n let midX = (prevPt.x + pt.x) / 2;\n let midY = (prevPt.y + pt.y) / 2;\n path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n var curvePt = pt;\n } else if (!prevPt.onCurve && pt.onCurve) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n var curvePt = null;\n } else throw new Error(\"Unknown TTF path state\");\n }\n // Connect the first and last points\n if (curvePt) path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n path.closePath();\n }\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n }\n}\n\n\n\n\n\nclass $62cc5109c6101893$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getName() {\n if (this._font.CFF2) return super._getName();\n return this._font['CFF '].getGlyphName(this.id);\n }\n bias(s) {\n if (s.length < 1240) return 107;\n else if (s.length < 33900) return 1131;\n else return 32768;\n }\n _getPath() {\n let cff = this._font.CFF2 || this._font['CFF '];\n let { stream: stream } = cff;\n let str = cff.topDict.CharStrings[this.id];\n let end = str.offset + str.length;\n stream.pos = str.offset;\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n let stack = [];\n let trans = [];\n let width = null;\n let nStems = 0;\n let x = 0, y = 0;\n let usedGsubrs;\n let usedSubrs;\n let open = false;\n this._usedGsubrs = usedGsubrs = {};\n this._usedSubrs = usedSubrs = {};\n let gsubrs = cff.globalSubrIndex || [];\n let gsubrsBias = this.bias(gsubrs);\n let privateDict = cff.privateDictForGlyph(this.id) || {};\n let subrs = privateDict.Subrs || [];\n let subrsBias = this.bias(subrs);\n let vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n let vsindex = privateDict.vsindex;\n let variationProcessor = this._font._variationProcessor;\n function checkWidth() {\n if (width == null) width = stack.shift() + privateDict.nominalWidthX;\n }\n function parseStems() {\n if (stack.length % 2 !== 0) checkWidth();\n nStems += stack.length >> 1;\n return stack.length = 0;\n }\n function moveTo(x, y) {\n if (open) path.closePath();\n path.moveTo(x, y);\n open = true;\n }\n let parse = function() {\n while(stream.pos < end){\n let op = stream.readUInt8();\n if (op < 32) {\n let index, subr, phase;\n let c1x, c1y, c2x, c2y, c3x, c3y;\n let c4x, c4y, c5x, c5y, c6x, c6y;\n let pts;\n switch(op){\n case 1:\n case 3:\n case 18:\n case 23:\n parseStems();\n break;\n case 4:\n if (stack.length > 1) checkWidth();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 5:\n while(stack.length >= 2){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n break;\n case 6:\n case 7:\n phase = op === 6;\n while(stack.length >= 1){\n if (phase) x += stack.shift();\n else y += stack.shift();\n path.lineTo(x, y);\n phase = !phase;\n }\n break;\n case 8:\n while(stack.length > 0){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 10:\n index = stack.pop() + subrsBias;\n subr = subrs[index];\n if (subr) {\n usedSubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 11:\n if (cff.version >= 2) break;\n return;\n case 14:\n if (cff.version >= 2) break;\n if (stack.length > 0) checkWidth();\n if (open) {\n path.closePath();\n open = false;\n }\n break;\n case 15:\n if (cff.version < 2) throw new Error('vsindex operator not supported in CFF v1');\n vsindex = stack.pop();\n break;\n case 16:\n {\n if (cff.version < 2) throw new Error('blend operator not supported in CFF v1');\n if (!variationProcessor) throw new Error('blend operator in non-variation font');\n let blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n let numBlends = stack.pop();\n let numOperands = numBlends * blendVector.length;\n let delta = stack.length - numOperands;\n let base = delta - numBlends;\n for(let i = 0; i < numBlends; i++){\n let sum = stack[base + i];\n for(let j = 0; j < blendVector.length; j++)sum += blendVector[j] * stack[delta++];\n stack[base + i] = sum;\n }\n while(numOperands--)stack.pop();\n break;\n }\n case 19:\n case 20:\n parseStems();\n stream.pos += nStems + 7 >> 3;\n break;\n case 21:\n if (stack.length > 2) checkWidth();\n x += stack.shift();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 22:\n if (stack.length > 1) checkWidth();\n x += stack.shift();\n moveTo(x, y);\n break;\n case 24:\n while(stack.length >= 8){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n break;\n case 25:\n while(stack.length >= 8){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26:\n if (stack.length % 2) x += stack.shift();\n while(stack.length >= 4){\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) y += stack.shift();\n while(stack.length >= 4){\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 28:\n stack.push(stream.readInt16BE());\n break;\n case 29:\n index = stack.pop() + gsubrsBias;\n subr = gsubrs[index];\n if (subr) {\n usedGsubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 30:\n case 31:\n phase = op === 31;\n while(stack.length >= 4){\n if (phase) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n } else {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n }\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n phase = !phase;\n }\n break;\n case 12:\n op = stream.readUInt8();\n switch(op){\n case 3:\n let a = stack.pop();\n let b = stack.pop();\n stack.push(a && b ? 1 : 0);\n break;\n case 4:\n a = stack.pop();\n b = stack.pop();\n stack.push(a || b ? 1 : 0);\n break;\n case 5:\n a = stack.pop();\n stack.push(a ? 0 : 1);\n break;\n case 9:\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 10:\n a = stack.pop();\n b = stack.pop();\n stack.push(a + b);\n break;\n case 11:\n a = stack.pop();\n b = stack.pop();\n stack.push(a - b);\n break;\n case 12:\n a = stack.pop();\n b = stack.pop();\n stack.push(a / b);\n break;\n case 14:\n a = stack.pop();\n stack.push(-a);\n break;\n case 15:\n a = stack.pop();\n b = stack.pop();\n stack.push(a === b ? 1 : 0);\n break;\n case 18:\n stack.pop();\n break;\n case 20:\n let val = stack.pop();\n let idx = stack.pop();\n trans[idx] = val;\n break;\n case 21:\n idx = stack.pop();\n stack.push(trans[idx] || 0);\n break;\n case 22:\n let s1 = stack.pop();\n let s2 = stack.pop();\n let v1 = stack.pop();\n let v2 = stack.pop();\n stack.push(v1 <= v2 ? s1 : s2);\n break;\n case 23:\n stack.push(Math.random());\n break;\n case 24:\n a = stack.pop();\n b = stack.pop();\n stack.push(a * b);\n break;\n case 26:\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 27:\n a = stack.pop();\n stack.push(a, a);\n break;\n case 28:\n a = stack.pop();\n b = stack.pop();\n stack.push(b, a);\n break;\n case 29:\n idx = stack.pop();\n if (idx < 0) idx = 0;\n else if (idx > stack.length - 1) idx = stack.length - 1;\n stack.push(stack[idx]);\n break;\n case 30:\n let n = stack.pop();\n let j = stack.pop();\n if (j >= 0) while(j > 0){\n var t = stack[n - 1];\n for(let i = n - 2; i >= 0; i--)stack[i + 1] = stack[i];\n stack[0] = t;\n j--;\n }\n else while(j < 0){\n var t = stack[0];\n for(let i = 0; i <= n; i++)stack[i] = stack[i + 1];\n stack[n - 1] = t;\n j++;\n }\n break;\n case 34:\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y;\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 35:\n pts = [];\n for(let i = 0; i <= 5; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n stack.shift(); // fd\n break;\n case 36:\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y + stack.shift();\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 37:\n let startx = x;\n let starty = y;\n pts = [];\n for(let i = 0; i <= 4; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n if (Math.abs(x - startx) > Math.abs(y - starty)) {\n x += stack.shift();\n y = starty;\n } else {\n x = startx;\n y += stack.shift();\n }\n pts.push(x, y);\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n break;\n default:\n throw new Error(`Unknown op: 12 ${op}`);\n }\n break;\n default:\n throw new Error(`Unknown op: ${op}`);\n }\n } else if (op < 247) stack.push(op - 139);\n else if (op < 251) {\n var b1 = stream.readUInt8();\n stack.push((op - 247) * 256 + b1 + 108);\n } else if (op < 255) {\n var b1 = stream.readUInt8();\n stack.push(-(op - 251) * 256 - b1 - 108);\n } else stack.push(stream.readInt32BE() / 65536);\n }\n };\n parse();\n if (open) path.closePath();\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'CFF');\n }\n}\n\n\n\n\n\nlet $25d8f049c222084c$var$SBIXImage = new $6uUbQ$Struct({\n originX: $6uUbQ$uint16,\n originY: $6uUbQ$uint16,\n type: new $6uUbQ$String(4),\n data: new $6uUbQ$Buffer((t)=>t.parent.buflen - t._currentOffset)\n});\nclass $25d8f049c222084c$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n /**\n * Returns an object representing a glyph image at the given point size.\n * The object has a data property with a Buffer containing the actual image data,\n * along with the image type, and origin.\n *\n * @param {number} size\n * @return {object}\n */ getImageForSize(size) {\n for(let i = 0; i < this._font.sbix.imageTables.length; i++){\n var table = this._font.sbix.imageTables[i];\n if (table.ppem >= size) break;\n }\n let offsets = table.imageOffsets;\n let start = offsets[this.id];\n let end = offsets[this.id + 1];\n if (start === end) return null;\n this._font.stream.pos = start;\n return $25d8f049c222084c$var$SBIXImage.decode(this._font.stream, {\n buflen: end - start\n });\n }\n render(ctx, size) {\n let img = this.getImageForSize(size);\n if (img != null) {\n let scale = size / this._font.unitsPerEm;\n ctx.image(img.data, {\n height: size,\n x: img.originX,\n y: (this.bbox.minY - img.originY) * scale\n });\n }\n if (this._font.sbix.flags.renderOutlines) super.render(ctx, size);\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'SBIX');\n }\n}\n\n\n\n\n\nclass $0d411f0165859681$var$COLRLayer {\n constructor(glyph, color){\n this.glyph = glyph;\n this.color = color;\n }\n}\nclass $0d411f0165859681$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getBBox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for(let i = 0; i < this.layers.length; i++){\n let layer = this.layers[i];\n let b = layer.glyph.bbox;\n bbox.addPoint(b.minX, b.minY);\n bbox.addPoint(b.maxX, b.maxY);\n }\n return bbox;\n }\n /**\n * Returns an array of objects containing the glyph and color for\n * each layer in the composite color glyph.\n * @type {object[]}\n */ get layers() {\n let cpal = this._font.CPAL;\n let colr = this._font.COLR;\n let low = 0;\n let high = colr.baseGlyphRecord.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n var rec = colr.baseGlyphRecord[mid];\n if (this.id < rec.gid) high = mid - 1;\n else if (this.id > rec.gid) low = mid + 1;\n else {\n var baseLayer = rec;\n break;\n }\n }\n // if base glyph not found in COLR table,\n // default to normal glyph from glyf or CFF\n if (baseLayer == null) {\n var g = this._font._getBaseGlyph(this.id);\n var color = {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 255\n };\n return [\n new $0d411f0165859681$var$COLRLayer(g, color)\n ];\n }\n // otherwise, return an array of all the layers\n let layers = [];\n for(let i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++){\n var rec = colr.layerRecords[i];\n var color = cpal.colorRecords[rec.paletteIndex];\n var g = this._font._getBaseGlyph(rec.gid);\n layers.push(new $0d411f0165859681$var$COLRLayer(g, color));\n }\n return layers;\n }\n render(ctx, size) {\n for (let { glyph: glyph, color: color } of this.layers){\n ctx.fillColor([\n color.red,\n color.green,\n color.blue\n ], color.alpha / 255 * 100);\n glyph.render(ctx, size);\n }\n return;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'COLR');\n }\n}\n\n\nconst $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nconst $0bb840cac04e911b$var$TUPLE_COUNT_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD = 0x8000;\nconst $0bb840cac04e911b$var$INTERMEDIATE_TUPLE = 0x4000;\nconst $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS = 0x2000;\nconst $0bb840cac04e911b$var$TUPLE_INDEX_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$POINTS_ARE_WORDS = 0x80;\nconst $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK = 0x7f;\nconst $0bb840cac04e911b$var$DELTAS_ARE_ZERO = 0x80;\nconst $0bb840cac04e911b$var$DELTAS_ARE_WORDS = 0x40;\nconst $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK = 0x3f;\nclass $0bb840cac04e911b$export$2e2bcd8739ae039 {\n normalizeCoords(coords) {\n // the default mapping is linear along each axis, in two segments:\n // from the minValue to defaultValue, and from defaultValue to maxValue.\n let normalized = [];\n for(var i = 0; i < this.font.fvar.axis.length; i++){\n let axis = this.font.fvar.axis[i];\n if (coords[i] < axis.defaultValue) normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));\n else normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));\n }\n // if there is an avar table, the normalized value is calculated\n // by interpolating between the two nearest mapped values.\n if (this.font.avar) for(var i = 0; i < this.font.avar.segment.length; i++){\n let segment = this.font.avar.segment[i];\n for(let j = 0; j < segment.correspondence.length; j++){\n let pair = segment.correspondence[j];\n if (j >= 1 && normalized[i] < pair.fromCoord) {\n let prev = segment.correspondence[j - 1];\n normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) / (pair.fromCoord - prev.fromCoord + Number.EPSILON) + prev.toCoord;\n break;\n }\n }\n }\n return normalized;\n }\n transformPoints(gid, glyphPoints) {\n if (!this.font.fvar || !this.font.gvar) return;\n let { gvar: gvar } = this.font;\n if (gid >= gvar.glyphCount) return;\n let offset = gvar.offsets[gid];\n if (offset === gvar.offsets[gid + 1]) return;\n // Read the gvar data for this glyph\n let { stream: stream } = this.font;\n stream.pos = offset;\n if (stream.pos >= stream.length) return;\n let tupleCount = stream.readUInt16BE();\n let offsetToData = offset + stream.readUInt16BE();\n if (tupleCount & $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS) {\n var here = stream.pos;\n stream.pos = offsetToData;\n var sharedPoints = this.decodePoints();\n offsetToData = stream.pos;\n stream.pos = here;\n }\n let origPoints = glyphPoints.map((pt)=>pt.copy());\n tupleCount &= $0bb840cac04e911b$var$TUPLE_COUNT_MASK;\n for(let i = 0; i < tupleCount; i++){\n let tupleDataSize = stream.readUInt16BE();\n let tupleIndex = stream.readUInt16BE();\n if (tupleIndex & $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD) {\n var tupleCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)tupleCoords.push(stream.readInt16BE() / 16384);\n } else {\n if ((tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK) >= gvar.globalCoordCount) throw new Error('Invalid gvar table');\n var tupleCoords = gvar.globalCoords[tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK];\n }\n if (tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) {\n var startCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)startCoords.push(stream.readInt16BE() / 16384);\n var endCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)endCoords.push(stream.readInt16BE() / 16384);\n }\n // Get the factor at which to apply this tuple\n let factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n if (factor === 0) {\n offsetToData += tupleDataSize;\n continue;\n }\n var here = stream.pos;\n stream.pos = offsetToData;\n if (tupleIndex & $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS) var points = this.decodePoints();\n else var points = sharedPoints;\n // points.length = 0 means there are deltas for all points\n let nPoints = points.length === 0 ? glyphPoints.length : points.length;\n let xDeltas = this.decodeDeltas(nPoints);\n let yDeltas = this.decodeDeltas(nPoints);\n if (points.length === 0) for(let i = 0; i < glyphPoints.length; i++){\n var point = glyphPoints[i];\n point.x += Math.round(xDeltas[i] * factor);\n point.y += Math.round(yDeltas[i] * factor);\n }\n else {\n let outPoints = origPoints.map((pt)=>pt.copy());\n let hasDelta = glyphPoints.map(()=>false);\n for(let i = 0; i < points.length; i++){\n let idx = points[i];\n if (idx < glyphPoints.length) {\n let point = outPoints[idx];\n hasDelta[idx] = true;\n point.x += xDeltas[i] * factor;\n point.y += yDeltas[i] * factor;\n }\n }\n this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n for(let i = 0; i < glyphPoints.length; i++){\n let deltaX = outPoints[i].x - origPoints[i].x;\n let deltaY = outPoints[i].y - origPoints[i].y;\n glyphPoints[i].x = Math.round(glyphPoints[i].x + deltaX);\n glyphPoints[i].y = Math.round(glyphPoints[i].y + deltaY);\n }\n }\n offsetToData += tupleDataSize;\n stream.pos = here;\n }\n }\n decodePoints() {\n let stream = this.font.stream;\n let count = stream.readUInt8();\n if (count & $0bb840cac04e911b$var$POINTS_ARE_WORDS) count = (count & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n let points = new Uint16Array(count);\n let i = 0;\n let point = 0;\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) + 1;\n let fn = run & $0bb840cac04e911b$var$POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n for(let j = 0; j < runCount && i < count; j++){\n point += fn.call(stream);\n points[i++] = point;\n }\n }\n return points;\n }\n decodeDeltas(count) {\n let stream = this.font.stream;\n let i = 0;\n let deltas = new Int16Array(count);\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK) + 1;\n if (run & $0bb840cac04e911b$var$DELTAS_ARE_ZERO) i += runCount;\n else {\n let fn = run & $0bb840cac04e911b$var$DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n for(let j = 0; j < runCount && i < count; j++)deltas[i++] = fn.call(stream);\n }\n }\n return deltas;\n }\n tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n let normalized = this.normalizedCoords;\n let { gvar: gvar } = this.font;\n let factor = 1;\n for(let i = 0; i < gvar.axisCount; i++){\n if (tupleCoords[i] === 0) continue;\n if (normalized[i] === 0) return 0;\n if ((tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) === 0) {\n if (normalized[i] < Math.min(0, tupleCoords[i]) || normalized[i] > Math.max(0, tupleCoords[i])) return 0;\n factor = (factor * normalized[i] + Number.EPSILON) / (tupleCoords[i] + Number.EPSILON);\n } else {\n if (normalized[i] < startCoords[i] || normalized[i] > endCoords[i]) return 0;\n else if (normalized[i] < tupleCoords[i]) factor = factor * (normalized[i] - startCoords[i] + Number.EPSILON) / (tupleCoords[i] - startCoords[i] + Number.EPSILON);\n else factor = factor * (endCoords[i] - normalized[i] + Number.EPSILON) / (endCoords[i] - tupleCoords[i] + Number.EPSILON);\n }\n }\n return factor;\n }\n // Interpolates points without delta values.\n // Needed for the Ø and Q glyphs in Skia.\n // Algorithm from Freetype.\n interpolateMissingDeltas(points, inPoints, hasDelta) {\n if (points.length === 0) return;\n let point = 0;\n while(point < points.length){\n let firstPoint = point;\n // find the end point of the contour\n let endPoint = point;\n let pt = points[endPoint];\n while(!pt.endContour)pt = points[++endPoint];\n // find the first point that has a delta\n while(point <= endPoint && !hasDelta[point])point++;\n if (point > endPoint) continue;\n let firstDelta = point;\n let curDelta = point;\n point++;\n while(point <= endPoint){\n // find the next point with a delta, and interpolate intermediate points\n if (hasDelta[point]) {\n this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n curDelta = point;\n }\n point++;\n }\n // shift contour if we only have a single delta\n if (curDelta === firstDelta) this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n else {\n // otherwise, handle the remaining points at the end and beginning of the contour\n this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n if (firstDelta > 0) this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n }\n point = endPoint + 1;\n }\n }\n deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n if (p1 > p2) return;\n let iterable = [\n 'x',\n 'y'\n ];\n for(let i = 0; i < iterable.length; i++){\n let k = iterable[i];\n if (inPoints[ref1][k] > inPoints[ref2][k]) {\n var p = ref1;\n ref1 = ref2;\n ref2 = p;\n }\n let in1 = inPoints[ref1][k];\n let in2 = inPoints[ref2][k];\n let out1 = outPoints[ref1][k];\n let out2 = outPoints[ref2][k];\n // If the reference points have the same coordinate but different\n // delta, inferred delta is zero. Otherwise interpolate.\n if (in1 !== in2 || out1 === out2) {\n let scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n for(let p = p1; p <= p2; p++){\n let out = inPoints[p][k];\n if (out <= in1) out += out1 - in1;\n else if (out >= in2) out += out2 - in2;\n else out = out1 + (out - in1) * scale;\n outPoints[p][k] = out;\n }\n }\n }\n }\n deltaShift(p1, p2, ref, inPoints, outPoints) {\n let deltaX = outPoints[ref].x - inPoints[ref].x;\n let deltaY = outPoints[ref].y - inPoints[ref].y;\n if (deltaX === 0 && deltaY === 0) return;\n for(let p = p1; p <= p2; p++)if (p !== ref) {\n outPoints[p].x += deltaX;\n outPoints[p].y += deltaY;\n }\n }\n getAdvanceAdjustment(gid, table) {\n let outerIndex, innerIndex;\n if (table.advanceWidthMapping) {\n let idx = gid;\n if (idx >= table.advanceWidthMapping.mapCount) idx = table.advanceWidthMapping.mapCount - 1;\n let entryFormat = table.advanceWidthMapping.entryFormat;\n ({ outerIndex: outerIndex, innerIndex: innerIndex } = table.advanceWidthMapping.mapData[idx]);\n } else {\n outerIndex = 0;\n innerIndex = gid;\n }\n return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n }\n // See pseudo code from `Font Variations Overview'\n // in the OpenType specification.\n getDelta(itemStore, outerIndex, innerIndex) {\n if (outerIndex >= itemStore.itemVariationData.length) return 0;\n let varData = itemStore.itemVariationData[outerIndex];\n if (innerIndex >= varData.deltaSets.length) return 0;\n let deltaSet = varData.deltaSets[innerIndex];\n let blendVector = this.getBlendVector(itemStore, outerIndex);\n let netAdjustment = 0;\n for(let master = 0; master < varData.regionIndexCount; master++)netAdjustment += deltaSet.deltas[master] * blendVector[master];\n return netAdjustment;\n }\n getBlendVector(itemStore, outerIndex) {\n let varData = itemStore.itemVariationData[outerIndex];\n if (this.blendVectors.has(varData)) return this.blendVectors.get(varData);\n let normalizedCoords = this.normalizedCoords;\n let blendVector = [];\n // outer loop steps through master designs to be blended\n for(let master = 0; master < varData.regionIndexCount; master++){\n let scalar = 1;\n let regionIndex = varData.regionIndexes[master];\n let axes = itemStore.variationRegionList.variationRegions[regionIndex];\n // inner loop steps through axes in this region\n for(let j = 0; j < axes.length; j++){\n let axis = axes[j];\n let axisScalar;\n // compute the scalar contribution of this axis\n // ignore invalid ranges\n if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) axisScalar = 1;\n else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) axisScalar = 1;\n else if (axis.peakCoord === 0) axisScalar = 1;\n else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) axisScalar = 0;\n else {\n if (normalizedCoords[j] === axis.peakCoord) axisScalar = 1;\n else if (normalizedCoords[j] < axis.peakCoord) axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) / (axis.peakCoord - axis.startCoord + Number.EPSILON);\n else axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) / (axis.endCoord - axis.peakCoord + Number.EPSILON);\n }\n // take product of all the axis scalars\n scalar *= axisScalar;\n }\n blendVector[master] = scalar;\n }\n this.blendVectors.set(varData, blendVector);\n return blendVector;\n }\n constructor(font, coords){\n this.font = font;\n this.normalizedCoords = this.normalizeCoords(coords);\n this.blendVectors = new Map;\n }\n}\n\n\n\n\nconst $5cc7476da92df375$var$resolved = Promise.resolve();\nclass $5cc7476da92df375$export$2e2bcd8739ae039 {\n includeGlyph(glyph) {\n if (typeof glyph === 'object') glyph = glyph.id;\n if (this.mapping[glyph] == null) {\n this.glyphs.push(glyph);\n this.mapping[glyph] = this.glyphs.length - 1;\n }\n return this.mapping[glyph];\n }\n constructor(font){\n this.font = font;\n this.glyphs = [];\n this.mapping = {};\n // always include the missing glyph\n this.includeGlyph(0);\n }\n}\n\n\n\n\n\n// Flags for simple glyphs\nconst $807e58506be70005$var$ON_CURVE = 1;\nconst $807e58506be70005$var$X_SHORT_VECTOR = 2;\nconst $807e58506be70005$var$Y_SHORT_VECTOR = 4;\nconst $807e58506be70005$var$REPEAT = 8;\nconst $807e58506be70005$var$SAME_X = 16;\nconst $807e58506be70005$var$SAME_Y = 32;\nclass $807e58506be70005$var$Point {\n static size(val) {\n return val >= 0 && val <= 255 ? 1 : 2;\n }\n static encode(stream, value) {\n if (value >= 0 && value <= 255) stream.writeUInt8(value);\n else stream.writeInt16BE(value);\n }\n}\nlet $807e58506be70005$var$Glyf = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n endPtsOfContours: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfContours'),\n instructions: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16),\n flags: new $6uUbQ$Array($6uUbQ$uint8, 0),\n xPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0),\n yPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0)\n});\nclass $807e58506be70005$export$2e2bcd8739ae039 {\n encodeSimple(path, instructions = []) {\n let endPtsOfContours = [];\n let xPoints = [];\n let yPoints = [];\n let flags = [];\n let same = 0;\n let lastX = 0, lastY = 0, lastFlag = 0;\n let pointCount = 0;\n for(let i = 0; i < path.commands.length; i++){\n let c = path.commands[i];\n for(let j = 0; j < c.args.length; j += 2){\n let x = c.args[j];\n let y = c.args[j + 1];\n let flag = 0;\n // If the ending point of a quadratic curve is the midpoint\n // between the control point and the control point of the next\n // quadratic curve, we can omit the ending point.\n if (c.command === 'quadraticCurveTo' && j === 2) {\n let next = path.commands[i + 1];\n if (next && next.command === 'quadraticCurveTo') {\n let midX = (lastX + next.args[0]) / 2;\n let midY = (lastY + next.args[1]) / 2;\n if (x === midX && y === midY) continue;\n }\n }\n // All points except control points are on curve.\n if (!(c.command === 'quadraticCurveTo' && j === 0)) flag |= $807e58506be70005$var$ON_CURVE;\n flag = this._encodePoint(x, lastX, xPoints, flag, $807e58506be70005$var$X_SHORT_VECTOR, $807e58506be70005$var$SAME_X);\n flag = this._encodePoint(y, lastY, yPoints, flag, $807e58506be70005$var$Y_SHORT_VECTOR, $807e58506be70005$var$SAME_Y);\n if (flag === lastFlag && same < 255) {\n flags[flags.length - 1] |= $807e58506be70005$var$REPEAT;\n same++;\n } else {\n if (same > 0) {\n flags.push(same);\n same = 0;\n }\n flags.push(flag);\n lastFlag = flag;\n }\n lastX = x;\n lastY = y;\n pointCount++;\n }\n if (c.command === 'closePath') endPtsOfContours.push(pointCount - 1);\n }\n // Close the path if the last command didn't already\n if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') endPtsOfContours.push(pointCount - 1);\n let bbox = path.bbox;\n let glyf = {\n numberOfContours: endPtsOfContours.length,\n xMin: bbox.minX,\n yMin: bbox.minY,\n xMax: bbox.maxX,\n yMax: bbox.maxY,\n endPtsOfContours: endPtsOfContours,\n instructions: instructions,\n flags: flags,\n xPoints: xPoints,\n yPoints: yPoints\n };\n let size = $807e58506be70005$var$Glyf.size(glyf);\n let tail = 4 - size % 4;\n let stream = new $6uUbQ$EncodeStream(size + tail);\n $807e58506be70005$var$Glyf.encode(stream, glyf);\n // Align to 4-byte length\n if (tail !== 0) stream.fill(0, tail);\n return stream.buffer;\n }\n _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n let diff = value - last;\n if (value === last) flag |= sameFlag;\n else {\n if (-255 <= diff && diff <= 255) {\n flag |= shortFlag;\n if (diff < 0) diff = -diff;\n else flag |= sameFlag;\n }\n points.push(diff);\n }\n return flag;\n }\n}\n\n\nclass $4abbb6a5dbdc441a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n _addGlyph(gid) {\n let glyph = this.font.getGlyph(gid);\n let glyf = glyph._decode();\n // get the offset to the glyph from the loca table\n let curOffset = this.font.loca.offsets[gid];\n let nextOffset = this.font.loca.offsets[gid + 1];\n let stream = this.font._getTableStream('glyf');\n stream.pos += curOffset;\n let buffer = stream.readBuffer(nextOffset - curOffset);\n // if it is a compound glyph, include its components\n if (glyf && glyf.numberOfContours < 0) {\n buffer = new Uint8Array(buffer);\n let view = new DataView(buffer.buffer);\n for (let component of glyf.components){\n gid = this.includeGlyph(component.glyphID);\n view.setUint16(component.pos, gid);\n }\n } else if (glyf && this.font._variationProcessor) // If this is a TrueType variation glyph, re-encode the path\n buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n this.glyf.push(buffer);\n this.loca.offsets.push(this.offset);\n this.hmtx.metrics.push({\n advance: glyph.advanceWidth,\n bearing: glyph._getMetrics().leftBearing\n });\n this.offset += buffer.length;\n return this.glyf.length - 1;\n }\n encode() {\n // tables required by PDF spec:\n // head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n //\n // additional tables required for standalone fonts:\n // name, cmap, OS/2, post\n this.glyf = [];\n this.offset = 0;\n this.loca = {\n offsets: [],\n version: this.font.loca.version\n };\n this.hmtx = {\n metrics: [],\n bearings: []\n };\n // include all the glyphs\n // not using a for loop because we need to support adding more\n // glyphs to the array as we go, and CoffeeScript caches the length.\n let i = 0;\n while(i < this.glyphs.length)this._addGlyph(this.glyphs[i++]);\n let maxp = (0, $6uUbQ$clone)(this.font.maxp);\n maxp.numGlyphs = this.glyf.length;\n this.loca.offsets.push(this.offset);\n let head = (0, $6uUbQ$clone)(this.font.head);\n head.indexToLocFormat = this.loca.version;\n let hhea = (0, $6uUbQ$clone)(this.font.hhea);\n hhea.numberOfMetrics = this.hmtx.metrics.length;\n // map = []\n // for index in [0...256]\n // if index < @numGlyphs\n // map[index] = index\n // else\n // map[index] = 0\n //\n // cmapTable =\n // version: 0\n // length: 262\n // language: 0\n // codeMap: map\n //\n // cmap =\n // version: 0\n // numSubtables: 1\n // tables: [\n // platformID: 1\n // encodingID: 0\n // table: cmapTable\n // ]\n // TODO: subset prep, cvt, fpgm?\n return (0, $816c07a04b6dba87$export$2e2bcd8739ae039).toBuffer({\n tables: {\n head: head,\n hhea: hhea,\n loca: this.loca,\n maxp: maxp,\n 'cvt ': this.font['cvt '],\n prep: this.font.prep,\n glyf: this.glyf,\n hmtx: this.hmtx,\n fpgm: this.font.fpgm\n }\n });\n }\n constructor(font){\n super(font);\n this.glyphEncoder = new (0, $807e58506be70005$export$2e2bcd8739ae039);\n }\n}\n\n\n\n\n\n\nclass $001d739428a71d5a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n subsetCharstrings() {\n this.charstrings = [];\n let gsubrs = {};\n for (let gid of this.glyphs){\n this.charstrings.push(this.cff.getCharString(gid));\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedGsubrs)gsubrs[subr] = true;\n }\n this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n }\n subsetSubrs(subrs, used) {\n let res = [];\n for(let i = 0; i < subrs.length; i++){\n let subr = subrs[i];\n if (used[i]) {\n this.cff.stream.pos = subr.offset;\n res.push(this.cff.stream.readBuffer(subr.length));\n } else res.push(new Uint8Array([\n 11\n ])); // return\n }\n return res;\n }\n subsetFontdict(topDict) {\n topDict.FDArray = [];\n topDict.FDSelect = {\n version: 0,\n fds: []\n };\n let used_fds = {};\n let used_subrs = [];\n let fd_select = {};\n for (let gid of this.glyphs){\n let fd = this.cff.fdForGlyph(gid);\n if (fd == null) continue;\n if (!used_fds[fd]) {\n topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd]));\n used_subrs.push({});\n fd_select[fd] = topDict.FDArray.length - 1;\n }\n used_fds[fd] = true;\n topDict.FDSelect.fds.push(fd_select[fd]);\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[fd_select[fd]][subr] = true;\n }\n for(let i = 0; i < topDict.FDArray.length; i++){\n let dict = topDict.FDArray[i];\n delete dict.FontName;\n if (dict.Private && dict.Private.Subrs) {\n dict.Private = Object.assign({}, dict.Private);\n dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n }\n }\n return;\n }\n createCIDFontdict(topDict) {\n let used_subrs = {};\n for (let gid of this.glyphs){\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[subr] = true;\n }\n let privateDict = Object.assign({}, this.cff.topDict.Private);\n if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n topDict.FDArray = [\n {\n Private: privateDict\n }\n ];\n return topDict.FDSelect = {\n version: 3,\n nRanges: 1,\n ranges: [\n {\n first: 0,\n fd: 0\n }\n ],\n sentinel: this.charstrings.length\n };\n }\n addString(string) {\n if (!string) return null;\n if (!this.strings) this.strings = [];\n this.strings.push(string);\n return (0, $229224aec43783c5$export$2e2bcd8739ae039).length + this.strings.length - 1;\n }\n encode() {\n this.subsetCharstrings();\n let charset = {\n version: this.charstrings.length > 255 ? 2 : 1,\n ranges: [\n {\n first: 1,\n nLeft: this.charstrings.length - 2\n }\n ]\n };\n let topDict = Object.assign({}, this.cff.topDict);\n topDict.Private = null;\n topDict.charset = charset;\n topDict.Encoding = null;\n topDict.CharStrings = this.charstrings;\n for (let key of [\n 'version',\n 'Notice',\n 'Copyright',\n 'FullName',\n 'FamilyName',\n 'Weight',\n 'PostScript',\n 'BaseFontName',\n 'FontName'\n ])topDict[key] = this.addString(this.cff.string(topDict[key]));\n topDict.ROS = [\n this.addString('Adobe'),\n this.addString('Identity'),\n 0\n ];\n topDict.CIDCount = this.charstrings.length;\n if (this.cff.isCIDFont) this.subsetFontdict(topDict);\n else this.createCIDFontdict(topDict);\n let top = {\n version: 1,\n hdrSize: this.cff.hdrSize,\n offSize: 4,\n header: this.cff.header,\n nameIndex: [\n this.cff.postscriptName\n ],\n topDictIndex: [\n topDict\n ],\n stringIndex: this.strings,\n globalSubrIndex: this.gsubrs\n };\n return (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).toBuffer(top);\n }\n constructor(font){\n super(font);\n this.cff = this.font['CFF '];\n if (!this.cff) throw new Error('Not a CFF Font');\n }\n}\n\n\n\n\nclass $4c1709dee528ea76$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let format = (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4));\n return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n }\n setDefaultLanguage(lang = null) {\n this.defaultLanguage = lang;\n }\n _getTable(table) {\n if (!(table.tag in this._tables)) try {\n this._tables[table.tag] = this._decodeTable(table);\n } catch (e) {\n if ($d636bc798e7178db$export$bd5c5d8b8dcafd78) {\n console.error(`Error decoding table ${table.tag}`);\n console.error(e.stack);\n }\n }\n return this._tables[table.tag];\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n return this.stream;\n }\n return null;\n }\n _decodeDirectory() {\n return this.directory = (0, $816c07a04b6dba87$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _decodeTable(table) {\n let pos = this.stream.pos;\n let stream = this._getTableStream(table.tag);\n let result = (0, $c3395722bea751e2$export$2e2bcd8739ae039)[table.tag].decode(stream, this, table.length);\n this.stream.pos = pos;\n return result;\n }\n /**\n * Gets a string from the font's `name` table\n * `lang` is a BCP-47 language code.\n * @return {string}\n */ getName(key, lang = this.defaultLanguage || $d636bc798e7178db$export$42940898df819940) {\n let record = this.name && this.name.records[key];\n if (record) // Attempt to retrieve the entry, depending on which translation is available:\n return record[lang] || record[this.defaultLanguage] || record[$d636bc798e7178db$export$42940898df819940] || record['en'] || record[Object.keys(record)[0]] // Seriously, ANY language would be fine\n || null;\n return null;\n }\n /**\n * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n * @type {string}\n */ get postscriptName() {\n return this.getName('postscriptName');\n }\n /**\n * The font's full name, e.g. \"Helvetica Bold\"\n * @type {string}\n */ get fullName() {\n return this.getName('fullName');\n }\n /**\n * The font's family name, e.g. \"Helvetica\"\n * @type {string}\n */ get familyName() {\n return this.getName('fontFamily');\n }\n /**\n * The font's sub-family, e.g. \"Bold\".\n * @type {string}\n */ get subfamilyName() {\n return this.getName('fontSubfamily');\n }\n /**\n * The font's copyright information\n * @type {string}\n */ get copyright() {\n return this.getName('copyright');\n }\n /**\n * The font's version number\n * @type {string}\n */ get version() {\n return this.getName('version');\n }\n /**\n * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n * @type {number}\n */ get ascent() {\n return this.hhea.ascent;\n }\n /**\n * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n * @type {number}\n */ get descent() {\n return this.hhea.descent;\n }\n /**\n * The amount of space that should be included between lines\n * @type {number}\n */ get lineGap() {\n return this.hhea.lineGap;\n }\n /**\n * The offset from the normal underline position that should be used\n * @type {number}\n */ get underlinePosition() {\n return this.post.underlinePosition;\n }\n /**\n * The weight of the underline that should be used\n * @type {number}\n */ get underlineThickness() {\n return this.post.underlineThickness;\n }\n /**\n * If this is an italic font, the angle the cursor should be drawn at to match the font design\n * @type {number}\n */ get italicAngle() {\n return this.post.italicAngle;\n }\n /**\n * The height of capital letters above the baseline.\n * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n * @type {number}\n */ get capHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.capHeight : this.ascent;\n }\n /**\n * The height of lower case letters in the font.\n * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n * @type {number}\n */ get xHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.xHeight : 0;\n }\n /**\n * The number of glyphs in the font.\n * @type {number}\n */ get numGlyphs() {\n return this.maxp.numGlyphs;\n }\n /**\n * The size of the font’s internal coordinate grid\n * @type {number}\n */ get unitsPerEm() {\n return this.head.unitsPerEm;\n }\n /**\n * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n * @type {BBox}\n */ get bbox() {\n return Object.freeze(new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n }\n get _cmapProcessor() {\n return new (0, $f08dd41ef10b694c$export$2e2bcd8739ae039)(this.cmap);\n }\n /**\n * An array of all of the unicode code points supported by the font.\n * @type {number[]}\n */ get characterSet() {\n return this._cmapProcessor.getCharacterSet();\n }\n /**\n * Returns whether there is glyph in the font for the given unicode code point.\n *\n * @param {number} codePoint\n * @return {boolean}\n */ hasGlyphForCodePoint(codePoint) {\n return !!this._cmapProcessor.lookup(codePoint);\n }\n /**\n * Maps a single unicode code point to a Glyph object.\n * Does not perform any advanced substitutions (there is no context to do so).\n *\n * @param {number} codePoint\n * @return {Glyph}\n */ glyphForCodePoint(codePoint) {\n return this.getGlyph(this._cmapProcessor.lookup(codePoint), [\n codePoint\n ]);\n }\n /**\n * Returns an array of Glyph objects for the given string.\n * This is only a one-to-one mapping from characters to glyphs.\n * For most uses, you should use font.layout (described below), which\n * provides a much more advanced mapping supporting AAT and OpenType shaping.\n *\n * @param {string} string\n * @return {Glyph[]}\n */ glyphsForString(string) {\n let glyphs = [];\n let len = string.length;\n let idx = 0;\n let last = -1;\n let state = -1;\n while(idx <= len){\n let code = 0;\n let nextState = 0;\n if (idx < len) {\n // Decode the next codepoint from UTF 16\n code = string.charCodeAt(idx++);\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n }\n }\n // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n nextState = 0xfe00 <= code && code <= 0xfe0f || 0xe0100 <= code && code <= 0xe01ef ? 1 : 0;\n } else idx++;\n if (state === 0 && nextState === 1) // Variation selector following normal codepoint.\n glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [\n last,\n code\n ]));\n else if (state === 0 && nextState === 0) // Normal codepoint following normal codepoint.\n glyphs.push(this.glyphForCodePoint(last));\n last = code;\n state = nextState;\n }\n return glyphs;\n }\n get _layoutEngine() {\n return new (0, $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n *\n * @param {string} string\n * @param {string[]} [userFeatures]\n * @param {string} [script]\n * @param {string} [language]\n * @param {string} [direction]\n * @return {GlyphRun}\n */ layout(string, userFeatures, script, language, direction) {\n return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n }\n /**\n * Returns an array of strings that map to the given glyph id.\n * @param {number} gid - glyph id\n */ stringsForGlyph(gid) {\n return this._layoutEngine.stringsForGlyph(gid);\n }\n /**\n * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n * (or mapped AAT tags) supported by the font.\n * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n *\n * @type {string[]}\n */ get availableFeatures() {\n return this._layoutEngine.getAvailableFeatures();\n }\n getAvailableFeatures(script, language) {\n return this._layoutEngine.getAvailableFeatures(script, language);\n }\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf) this._glyphs[glyph] = new (0, $69aac16029968692$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) this._glyphs[glyph] = new (0, $62cc5109c6101893$export$2e2bcd8739ae039)(glyph, characters, this);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a glyph object for the given glyph id.\n * You can pass the array of code points this glyph represents for\n * your use later, and it will be stored in the glyph object.\n *\n * @param {number} glyph\n * @param {number[]} characters\n * @return {Glyph}\n */ getGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.sbix) this._glyphs[glyph] = new (0, $25d8f049c222084c$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables.COLR && this.directory.tables.CPAL) this._glyphs[glyph] = new (0, $0d411f0165859681$export$2e2bcd8739ae039)(glyph, characters, this);\n else this._getBaseGlyph(glyph, characters);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a Subset for this font.\n * @return {Subset}\n */ createSubset() {\n if (this.directory.tables['CFF ']) return new (0, $001d739428a71d5a$export$2e2bcd8739ae039)(this);\n return new (0, $4abbb6a5dbdc441a$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns an object describing the available variation axes\n * that this font supports. Keys are setting tags, and values\n * contain the axis name, range, and default value.\n *\n * @type {object}\n */ get variationAxes() {\n let res = {};\n if (!this.fvar) return res;\n for (let axis of this.fvar.axis)res[axis.axisTag.trim()] = {\n name: axis.name.en,\n min: axis.minValue,\n default: axis.defaultValue,\n max: axis.maxValue\n };\n return res;\n }\n /**\n * Returns an object describing the named variation instances\n * that the font designer has specified. Keys are variation names\n * and values are the variation settings for this instance.\n *\n * @type {object}\n */ get namedVariations() {\n let res = {};\n if (!this.fvar) return res;\n for (let instance of this.fvar.instance){\n let settings = {};\n for(let i = 0; i < this.fvar.axis.length; i++){\n let axis = this.fvar.axis[i];\n settings[axis.axisTag.trim()] = instance.coord[i];\n }\n res[instance.name.en] = settings;\n }\n return res;\n }\n /**\n * Returns a new font with the given variation settings applied.\n * Settings can either be an instance name, or an object containing\n * variation tags as specified by the `variationAxes` property.\n *\n * @param {object} settings\n * @return {TTFFont}\n */ getVariation(settings) {\n if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n if (typeof settings === 'string') settings = this.namedVariations[settings];\n if (typeof settings !== 'object') throw new Error('Variation settings must be either a variation name or settings object.');\n // normalize the coordinates\n let coords = this.fvar.axis.map((axis, i)=>{\n let axisTag = axis.axisTag.trim();\n if (axisTag in settings) return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n else return axis.defaultValue;\n });\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = this._directoryPos;\n let font = new $4c1709dee528ea76$export$2e2bcd8739ae039(stream, coords);\n font._tables = this._tables;\n return font;\n }\n get _variationProcessor() {\n if (!this.fvar) return null;\n let variationCoords = this.variationCoords;\n // Ignore if no variation coords and not CFF2\n if (!variationCoords && !this.CFF2) return null;\n if (!variationCoords) variationCoords = this.fvar.axis.map((axis)=>axis.defaultValue);\n return new (0, $0bb840cac04e911b$export$2e2bcd8739ae039)(this, variationCoords);\n }\n // Standardized format plugin API\n getFont(name) {\n return this.getVariation(name);\n }\n constructor(stream, variationCoords = null){\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n this.defaultLanguage = null;\n this.stream = stream;\n this.variationCoords = variationCoords;\n this._directoryPos = this.stream.pos;\n this._tables = {};\n this._glyphs = {};\n this._decodeDirectory();\n // define properties for each table to lazily parse\n for(let tag in this.directory.tables){\n let table = this.directory.tables[tag];\n if ((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag] && table.length > 0) Object.defineProperty(this, tag, {\n get: this._getTable.bind(this, table)\n });\n }\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_cmapProcessor\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"characterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_layoutEngine\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"variationAxes\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"namedVariations\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_variationProcessor\", null);\n\n\n\n\n\n\nlet $c1726355ecc5b889$var$WOFFDirectoryEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n compLength: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n origChecksum: $6uUbQ$uint32\n});\nlet $c1726355ecc5b889$var$WOFFDirectory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c1726355ecc5b889$var$WOFFDirectoryEntry, 'numTables')\n});\n$c1726355ecc5b889$var$WOFFDirectory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\nvar $c1726355ecc5b889$export$2e2bcd8739ae039 = $c1726355ecc5b889$var$WOFFDirectory;\n\n\n\n\n\n\nclass $760785214b9fc52c$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOFF';\n }\n _decodeDirectory() {\n this.directory = (0, $c1726355ecc5b889$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n if (table.compLength < table.length) {\n this.stream.pos += 2; // skip deflate header\n let outBuffer = new Uint8Array(table.length);\n let buf = (0, $6uUbQ$tinyinflate)(this.stream.readBuffer(table.compLength - 2), outBuffer);\n return new $6uUbQ$DecodeStream(buf);\n } else return this.stream;\n }\n return null;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF');\n }\n}\n\n\n\n\n\n\n\n\n\nclass $8046190c9f1ad19e$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n _decode() {\n // We have to decode in advance (in WOFF2Font), so just return the pre-decoded data.\n return this._font._transformedGlyphs[this.id];\n }\n _getCBox() {\n return this.path.bbox;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n\n\n\nconst $c28ec7bbb3b8de3a$var$Base128 = {\n decode (stream) {\n let result = 0;\n let iterable = [\n 0,\n 1,\n 2,\n 3,\n 4\n ];\n for(let j = 0; j < iterable.length; j++){\n let i = iterable[j];\n let code = stream.readUInt8();\n // If any of the top seven bits are set then we're about to overflow.\n if (result & 0xe0000000) throw new Error('Overflow');\n result = result << 7 | code & 0x7f;\n if ((code & 0x80) === 0) return result;\n }\n throw new Error('Bad base 128 number');\n }\n};\nlet $c28ec7bbb3b8de3a$var$knownTags = [\n 'cmap',\n 'head',\n 'hhea',\n 'hmtx',\n 'maxp',\n 'name',\n 'OS/2',\n 'post',\n 'cvt ',\n 'fpgm',\n 'glyf',\n 'loca',\n 'prep',\n 'CFF ',\n 'VORG',\n 'EBDT',\n 'EBLC',\n 'gasp',\n 'hdmx',\n 'kern',\n 'LTSH',\n 'PCLT',\n 'VDMX',\n 'vhea',\n 'vmtx',\n 'BASE',\n 'GDEF',\n 'GPOS',\n 'GSUB',\n 'EBSC',\n 'JSTF',\n 'MATH',\n 'CBDT',\n 'CBLC',\n 'COLR',\n 'CPAL',\n 'SVG ',\n 'sbix',\n 'acnt',\n 'avar',\n 'bdat',\n 'bloc',\n 'bsln',\n 'cvar',\n 'fdsc',\n 'feat',\n 'fmtx',\n 'fvar',\n 'gvar',\n 'hsty',\n 'just',\n 'lcar',\n 'mort',\n 'morx',\n 'opbd',\n 'prop',\n 'trak',\n 'Zapf',\n 'Silf',\n 'Glat',\n 'Gloc',\n 'Feat',\n 'Sill'\n];\nlet $c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry = new $6uUbQ$Struct({\n flags: $6uUbQ$uint8,\n customTag: new $6uUbQ$Optional(new $6uUbQ$String(4), (t)=>(t.flags & 0x3f) === 0x3f),\n tag: (t)=>t.customTag || $c28ec7bbb3b8de3a$var$knownTags[t.flags & 0x3f],\n length: $c28ec7bbb3b8de3a$var$Base128,\n transformVersion: (t)=>t.flags >>> 6 & 0x03,\n transformed: (t)=>t.tag === 'glyf' || t.tag === 'loca' ? t.transformVersion === 0 : t.transformVersion !== 0,\n transformLength: new $6uUbQ$Optional($c28ec7bbb3b8de3a$var$Base128, (t)=>t.transformed)\n});\nlet $c28ec7bbb3b8de3a$var$WOFF2Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n totalCompressedSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry, 'numTables')\n});\n$c28ec7bbb3b8de3a$var$WOFF2Directory.process = function() {\n let tables = {};\n for(let i = 0; i < this.tables.length; i++){\n let table = this.tables[i];\n tables[table.tag] = table;\n }\n return this.tables = tables;\n};\nvar $c28ec7bbb3b8de3a$export$2e2bcd8739ae039 = $c28ec7bbb3b8de3a$var$WOFF2Directory;\n\n\n\nclass $21ee218f84ac7f32$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOF2';\n }\n _decodeDirectory() {\n this.directory = (0, $c28ec7bbb3b8de3a$export$2e2bcd8739ae039).decode(this.stream);\n this._dataPos = this.stream.pos;\n }\n _decompress() {\n // decompress data and setup table offsets if we haven't already\n if (!this._decompressed) {\n this.stream.pos = this._dataPos;\n let buffer = this.stream.readBuffer(this.directory.totalCompressedSize);\n let decompressedSize = 0;\n for(let tag in this.directory.tables){\n let entry = this.directory.tables[tag];\n entry.offset = decompressedSize;\n decompressedSize += entry.transformLength != null ? entry.transformLength : entry.length;\n }\n let decompressed = (0, $6uUbQ$brotlidecompressjs)(buffer, decompressedSize);\n if (!decompressed) throw new Error('Error decoding compressed data in WOFF2');\n this.stream = new $6uUbQ$DecodeStream(decompressed);\n this._decompressed = true;\n }\n }\n _decodeTable(table) {\n this._decompress();\n return super._decodeTable(table);\n }\n // Override this method to get a glyph and return our\n // custom subclass if there is a glyf table.\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {\n if (!this._transformedGlyphs) this._transformGlyfTable();\n return this._glyphs[glyph] = new (0, $8046190c9f1ad19e$export$2e2bcd8739ae039)(glyph, characters, this);\n } else return super._getBaseGlyph(glyph, characters);\n }\n }\n _transformGlyfTable() {\n this._decompress();\n this.stream.pos = this.directory.tables.glyf.offset;\n let table = $21ee218f84ac7f32$var$GlyfTable.decode(this.stream);\n let glyphs = [];\n for(let index = 0; index < table.numGlyphs; index++){\n let glyph = {};\n let nContours = table.nContours.readInt16BE();\n glyph.numberOfContours = nContours;\n if (nContours > 0) {\n let nPoints = [];\n let totalPoints = 0;\n for(let i = 0; i < nContours; i++){\n let r = $21ee218f84ac7f32$var$read255UInt16(table.nPoints);\n totalPoints += r;\n nPoints.push(totalPoints);\n }\n glyph.points = $21ee218f84ac7f32$var$decodeTriplet(table.flags, table.glyphs, totalPoints);\n for(let i = 0; i < nContours; i++)glyph.points[nPoints[i] - 1].endContour = true;\n var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n } else if (nContours < 0) {\n let haveInstructions = (0, $69aac16029968692$export$2e2bcd8739ae039).prototype._decodeComposite.call({\n _font: this\n }, glyph, table.composites);\n if (haveInstructions) var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n }\n glyphs.push(glyph);\n }\n this._transformedGlyphs = glyphs;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n// Special class that accepts a length and returns a sub-stream for that data\nclass $21ee218f84ac7f32$var$Substream {\n decode(stream, parent) {\n return new $6uUbQ$DecodeStream(this._buf.decode(stream, parent));\n }\n constructor(length){\n this.length = length;\n this._buf = new $6uUbQ$Buffer(length);\n }\n}\n// This struct represents the entire glyf table\nlet $21ee218f84ac7f32$var$GlyfTable = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numGlyphs: $6uUbQ$uint16,\n indexFormat: $6uUbQ$uint16,\n nContourStreamSize: $6uUbQ$uint32,\n nPointsStreamSize: $6uUbQ$uint32,\n flagStreamSize: $6uUbQ$uint32,\n glyphStreamSize: $6uUbQ$uint32,\n compositeStreamSize: $6uUbQ$uint32,\n bboxStreamSize: $6uUbQ$uint32,\n instructionStreamSize: $6uUbQ$uint32,\n nContours: new $21ee218f84ac7f32$var$Substream('nContourStreamSize'),\n nPoints: new $21ee218f84ac7f32$var$Substream('nPointsStreamSize'),\n flags: new $21ee218f84ac7f32$var$Substream('flagStreamSize'),\n glyphs: new $21ee218f84ac7f32$var$Substream('glyphStreamSize'),\n composites: new $21ee218f84ac7f32$var$Substream('compositeStreamSize'),\n bboxes: new $21ee218f84ac7f32$var$Substream('bboxStreamSize'),\n instructions: new $21ee218f84ac7f32$var$Substream('instructionStreamSize')\n});\nconst $21ee218f84ac7f32$var$WORD_CODE = 253;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2 = 254;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1 = 255;\nconst $21ee218f84ac7f32$var$LOWEST_U_CODE = 253;\nfunction $21ee218f84ac7f32$var$read255UInt16(stream) {\n let code = stream.readUInt8();\n if (code === $21ee218f84ac7f32$var$WORD_CODE) return stream.readUInt16BE();\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE;\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE * 2;\n return code;\n}\nfunction $21ee218f84ac7f32$var$withSign(flag, baseval) {\n return flag & 1 ? baseval : -baseval;\n}\nfunction $21ee218f84ac7f32$var$decodeTriplet(flags, glyphs, nPoints) {\n let y;\n let x = y = 0;\n let res = [];\n for(let i = 0; i < nPoints; i++){\n let dx = 0, dy = 0;\n let flag = flags.readUInt8();\n let onCurve = !(flag >> 7);\n flag &= 0x7f;\n if (flag < 10) {\n dx = 0;\n dy = $21ee218f84ac7f32$var$withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());\n } else if (flag < 20) {\n dx = $21ee218f84ac7f32$var$withSign(flag, ((flag - 10 & 14) << 7) + glyphs.readUInt8());\n dy = 0;\n } else if (flag < 84) {\n var b0 = flag - 20;\n var b1 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 & 0x30) + (b1 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + ((b0 & 0x0c) << 2) + (b1 & 0x0f));\n } else if (flag < 120) {\n var b0 = flag - 84;\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 / 12 << 8) + glyphs.readUInt8());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + (b0 % 12 >> 2 << 8) + glyphs.readUInt8());\n } else if (flag < 124) {\n var b1 = glyphs.readUInt8();\n let b2 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, (b1 << 4) + (b2 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, ((b2 & 0x0f) << 8) + glyphs.readUInt8());\n } else {\n dx = $21ee218f84ac7f32$var$withSign(flag, glyphs.readUInt16BE());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, glyphs.readUInt16BE());\n }\n x += dx;\n y += dy;\n res.push(new (0, $69aac16029968692$export$baf26146a414f24a)(onCurve, false, x, y));\n }\n return res;\n}\n\n\n\n\n\n\n\n\nlet $cd5853a56c68fec7$var$TTCHeader = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n 0x00010000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts')\n },\n 0x00020000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts'),\n dsigTag: $6uUbQ$uint32,\n dsigLength: $6uUbQ$uint32,\n dsigOffset: $6uUbQ$uint32\n }\n});\nclass $cd5853a56c68fec7$export$2e2bcd8739ae039 {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'ttcf';\n }\n getFont(name) {\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'TTC');\n this.stream = stream;\n if (stream.readString(4) !== 'ttcf') throw new Error('Not a TrueType collection');\n this.header = $cd5853a56c68fec7$var$TTCHeader.decode(stream);\n }\n}\n\n\n\n\n\nlet $05f49f930186144e$var$DFontName = new $6uUbQ$String($6uUbQ$uint8);\nlet $05f49f930186144e$var$DFontData = new $6uUbQ$Struct({\n len: $6uUbQ$uint32,\n buf: new $6uUbQ$Buffer('len')\n});\nlet $05f49f930186144e$var$Ref = new $6uUbQ$Struct({\n id: $6uUbQ$uint16,\n nameOffset: $6uUbQ$int16,\n attr: $6uUbQ$uint8,\n dataOffset: $6uUbQ$uint24,\n handle: $6uUbQ$uint32\n});\nlet $05f49f930186144e$var$Type = new $6uUbQ$Struct({\n name: new $6uUbQ$String(4),\n maxTypeIndex: $6uUbQ$uint16,\n refList: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($05f49f930186144e$var$Ref, (t)=>t.maxTypeIndex + 1), {\n type: 'parent'\n })\n});\nlet $05f49f930186144e$var$TypeList = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n types: new $6uUbQ$Array($05f49f930186144e$var$Type, (t)=>t.length + 1)\n});\nlet $05f49f930186144e$var$DFontMap = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8, 24),\n typeList: new $6uUbQ$Pointer($6uUbQ$uint16, $05f49f930186144e$var$TypeList),\n nameListOffset: new $6uUbQ$Pointer($6uUbQ$uint16, 'void')\n});\nlet $05f49f930186144e$var$DFontHeader = new $6uUbQ$Struct({\n dataOffset: $6uUbQ$uint32,\n map: new $6uUbQ$Pointer($6uUbQ$uint32, $05f49f930186144e$var$DFontMap),\n dataLength: $6uUbQ$uint32,\n mapLength: $6uUbQ$uint32\n});\nclass $05f49f930186144e$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let stream = new $6uUbQ$DecodeStream(buffer);\n try {\n var header = $05f49f930186144e$var$DFontHeader.decode(stream);\n } catch (e) {\n return false;\n }\n for (let type of header.map.typeList.types){\n if (type.name === 'sfnt') return true;\n }\n return false;\n }\n getFont(name) {\n if (!this.sfnt) return null;\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'DFont');\n this.stream = stream;\n this.header = $05f49f930186144e$var$DFontHeader.decode(this.stream);\n for (let type of this.header.map.typeList.types){\n for (let ref of type.refList)if (ref.nameOffset >= 0) {\n this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n ref.name = $05f49f930186144e$var$DFontName.decode(this.stream);\n } else ref.name = null;\n if (type.name === 'sfnt') this.sfnt = type;\n }\n }\n}\n\n\n// Register font formats\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $4c1709dee528ea76$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $760785214b9fc52c$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $21ee218f84ac7f32$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $cd5853a56c68fec7$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $05f49f930186144e$export$2e2bcd8739ae039));\n\n\nexport {$d636bc798e7178db$export$bd5c5d8b8dcafd78 as logErrors, $d636bc798e7178db$export$36b2f24e97d43be as registerFormat, $d636bc798e7178db$export$185802fd694ee1f5 as create, $d636bc798e7178db$export$42940898df819940 as defaultLanguage, $d636bc798e7178db$export$5157e7780d44cc36 as setDefaultLanguage};\n//# sourceMappingURL=browser-module.mjs.map\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","ENCODING_MAPPING","DecodeStream","key","textEncoder","isBigEndian","EncodeStream","stringToUtf16","stringToAscii","stream","NumberT","endian","uint16be","uint16","uint24be","uint24","uint32be","uint32","int8","int16be","int16","int32be","int32","Fixed","fracBits","fixed16be","fixed16","fixed32be","fixed32","resolveLength","parent","PropertyDescriptor","opts","ArrayT","lengthType","ctx","utils.resolveLength","includePointers","item","ptr","LazyArray","LazyArrayValue","index","result","Bitfield","flags","flag","keys","BufferT","Optional","condition","Reserved","count","data","StringT","width","encodingWidth","c2","Struct","fields","utils.PropertyDescriptor","getPath","object","pathArray","prevObj","VersionedStruct","versions","Pointer","offsetType","options","relative","decodeValue","VoidPointer","_define_property","__decorate","decorators","desc","r","fastDeepEqual","equal","TINF_OK","TINF_DATA_ERROR","Tree","Data","source","dest","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","bits","base","delta","sum","tinf_build_fixed_trees","lt","dt","offs","tinf_build_tree","t","off","tinf_getbit","bit","tinf_read_bits","tinf_decode_symbol","cur","tag","tinf_decode_trees","hlit","hdist","hclen","clen","prev","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","invlength","tinf_uncompress","bfinal","btype","tinyInflate","swap32","swap32LE","swap_1","inflate","require$$0","require$$1","SHIFT_1","SHIFT_2","SHIFT_1_2","OMITTED_BMP_INDEX_1_LENGTH","INDEX_2_BLOCK_LENGTH","INDEX_2_MASK","INDEX_SHIFT","DATA_BLOCK_LENGTH","DATA_MASK","LSCP_INDEX_2_OFFSET","LSCP_INDEX_2_LENGTH","INDEX_2_BMP_LENGTH","UTF8_2B_INDEX_2_OFFSET","UTF8_2B_INDEX_2_LENGTH","INDEX_1_OFFSET","DATA_GRANULARITY","UnicodeTrie","isBuffer","uncompressedLength","view","unicodeTrie","$parcel$interopDefault","$f4087201da764553$exports","$747425b437e121da$var$trie","$bdjGp$unicodetrie","$bdjGp$base64js","$747425b437e121da$var$log2","$747425b437e121da$var$bits","$747425b437e121da$var$CATEGORY_BITS","$747425b437e121da$var$COMBINING_BITS","$747425b437e121da$var$SCRIPT_BITS","$747425b437e121da$var$EAW_BITS","$747425b437e121da$var$NUMBER_BITS","$747425b437e121da$var$CATEGORY_SHIFT","$747425b437e121da$var$COMBINING_SHIFT","$747425b437e121da$var$SCRIPT_SHIFT","$747425b437e121da$var$CATEGORY_MASK","$747425b437e121da$var$COMBINING_MASK","$747425b437e121da$var$SCRIPT_MASK","$747425b437e121da$export$410364bbb673ddbc","$747425b437e121da$export$c03b919c6651ed55","$747425b437e121da$export$941569448d136665","$747425b437e121da$export$727d9dbc4fbb948f","$747425b437e121da$export$e33ad6871e762338","category","INITIAL_STATE","FAIL_STATE","StateMachine","dfa","self","state","startRun","lastAccepting","lastState","p","actions","tags","clone","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","prototype","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","child","resolve","reject","err","__getRegExpFlags","keyChild","valueChild","entryChild","attrs","symbols","symbol","descriptor","allPropertyNames","propertyName","__objToStr","o","__isDate","__isArray","__isRegExp","re","module","BrotliInput","streams","BrotliOutput","BROTLI_READ_SIZE","BROTLI_IBUF_SIZE","BROTLI_IBUF_MASK","kBitMask","BrotliBitReader","bytes_read","n_bits","bit_reader","dictionary_bin","dictionaryBrowser","BrotliDecompressBuffer","compressed","require$$2","dictionary","HuffmanCode","huffman","MAX_LENGTH","GetNextKey","step","ReplicateValue","NextTableBitSize","root_bits","left","root_table","code_lengths","code_lengths_size","start_table","low","mask","table_bits","table_size","total_size","sorted","context","PrefixCodeRange","nbits","prefix","BrotliDictionary","kIdentity","kOmitLast1","kOmitLast2","kOmitLast3","kOmitLast4","kOmitLast5","kOmitLast6","kOmitLast7","kOmitLast8","kOmitLast9","kUppercaseFirst","kUppercaseAll","kOmitFirst1","kOmitFirst2","kOmitFirst3","kOmitFirst4","kOmitFirst5","kOmitFirst6","kOmitFirst7","kOmitFirst9","Transform","transform","suffix","kTransforms","ToUpperCase","idx","word","skip","start_idx","uppercase","prefix_pos","suffix_pos","require$$3","BrotliBuildHuffmanTable","Context","require$$4","Prefix","require$$5","require$$6","kDefaultCodeLength","kCodeLengthRepeatCode","kNumLiteralCodes","kNumInsertAndCopyCodes","kNumBlockLengthCodes","kLiteralContextBits","kDistanceContextBits","HUFFMAN_TABLE_BITS","HUFFMAN_TABLE_MASK","HUFFMAN_MAX_TABLE_SIZE","CODE_LENGTH_CODES","kCodeLengthCodeOrder","NUM_DISTANCE_SHORT_CODES","kDistanceShortCodeIndexOffset","kDistanceShortCodeValueOffset","kMaxHuffmanTableSize","DecodeWindowBits","br","DecodeVarLenUint8","MetaBlockLength","DecodeMetaBlockLength","size_nibbles","size_bytes","next_byte","next_nibble","ReadSymbol","ReadHuffmanCodeLengths","code_length_code_lengths","num_symbols","prev_code_len","repeat","repeat_code_len","space","code_len","extra_bits","old_repeat","repeat_delta","new_len","ReadHuffmanCode","alphabet_size","tables","simple_code_or_skip","max_bits_counter","max_bits","num_codes","huff","code_len_idx","v","ReadBlockLength","TranslateShortCodes","ringbuffer","MoveToFront","InverseMoveToFrontTransform","v_len","mtf","HuffmanTreeGroup","num_htrees","next","DecodeContextMap","context_map_size","use_rle_for_zeros","max_run_length_prefix","context_map","reps","DecodeBlockType","max_block_type","trees","tree_type","block_types","ringbuffers","indexes","type_code","block_type","CopyUncompressedBlockToOutput","ringbuffer_mask","rb_size","rb_pos","br_pos","nbytes","tail","JumpToByteBoundary","new_bit_pos","pad_bits","BrotliDecompressedSize","decode","output_size","output_buffer","BrotliDecompress","input_end","window_bits","max_backward_distance","max_distance","ringbuffer_size","ringbuffer_end","dist_rb","dist_rb_idx","prev_byte1","prev_byte2","hgroup","block_type_trees","block_len_trees","kRingBufferWriteAheadSlack","meta_block_remaining_len","is_uncompressed","block_length","num_block_types","block_type_rb","block_type_rb_index","distance_postfix_bits","num_direct_distance_codes","distance_postfix_mask","num_distance_codes","context_modes","num_literal_htrees","dist_context_map","num_dist_htrees","context_offset","context_map_slice","literal_htree_index","dist_context_offset","dist_context_map_slice","dist_htree_index","context_lookup_offset1","context_lookup_offset2","context_mode","htree_command","_out","_o1","_o2","cmd_code","range_idx","insert_code","copy_code","insert_length","copy_length","distance_code","distance","copy_dst","postfix","word_id","shift","word_idx","transform_idx","_x","decompress","$parcel$export","$d636bc798e7178db$exports","$d636bc798e7178db$export$bd5c5d8b8dcafd78","$d636bc798e7178db$export$36b2f24e97d43be","$d636bc798e7178db$export$185802fd694ee1f5","$d636bc798e7178db$export$42940898df819940","$d636bc798e7178db$export$5157e7780d44cc36","$d636bc798e7178db$var$formats","format","postscriptName","font","$6uUbQ$DecodeStream","lang","$e71565f2ce09cb6b$export$69a3209f1a06c04d","get","cache","memoized","args","$26a62205ad06574e$var$SubHeader","$6uUbQ$Struct","$6uUbQ$uint16","$6uUbQ$int16","$26a62205ad06574e$var$CmapGroup","$6uUbQ$uint32","$26a62205ad06574e$var$UnicodeValueRange","$6uUbQ$uint24","$6uUbQ$uint8","$26a62205ad06574e$var$UVSMapping","$26a62205ad06574e$var$DefaultUVS","$6uUbQ$Array","$26a62205ad06574e$var$NonDefaultUVS","$26a62205ad06574e$var$VarSelectorRecord","$6uUbQ$Pointer","$26a62205ad06574e$var$CmapSubtable","$6uUbQ$VersionedStruct","$6uUbQ$LazyArray","$6uUbQ$Reserved","$26a62205ad06574e$var$CmapEntry","$26a62205ad06574e$export$2e2bcd8739ae039","$f2612a29f92ac062$export$2e2bcd8739ae039","$6uUbQ$int32","$6uUbQ$Bitfield","$2c179dd593583073$export$2e2bcd8739ae039","$bdc9060542264b85$var$HmtxEntry","$bdc9060542264b85$export$2e2bcd8739ae039","$dbf51cb3d3fe409d$export$2e2bcd8739ae039","$e449ad78d50845fe$export$badc544e0651b6b1","platformID","encodingID","languageID","$e449ad78d50845fe$export$479e671907f486d1","$e449ad78d50845fe$export$6fef87b7618bdf0b","$e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS","$e449ad78d50845fe$var$MAC_ENCODINGS","$e449ad78d50845fe$var$encodingCache","$e449ad78d50845fe$export$1dceb3c14ed68bee","cached","mapping","decoder","$e449ad78d50845fe$export$2092376fd002e13","$2bcf221753ec8e32$var$NameRecord","$6uUbQ$String","$2bcf221753ec8e32$var$LangTagRecord","$2bcf221753ec8e32$var$NameTable","$2bcf221753ec8e32$export$2e2bcd8739ae039","$2bcf221753ec8e32$var$NAMES","records","record","language","$84b272aa31b70606$var$OS2","$84b272aa31b70606$var$versions","$84b272aa31b70606$export$2e2bcd8739ae039","$32d9e2eb9565d93c$export$2e2bcd8739ae039","$6uUbQ$fixed32","$5202bd9d9ad8eaac$export$2e2bcd8739ae039","$5c0f37ca5ffb1850$export$2e2bcd8739ae039","$2b2b260902b1c57e$var$loca","$2b2b260902b1c57e$export$2e2bcd8739ae039","$7afb878c7bea4f66$export$2e2bcd8739ae039","$6c92b6371bce8bd9$export$2e2bcd8739ae039","$6uUbQ$Buffer","$43e9821ef3717eec$export$2e2bcd8739ae039","offSize","startPos","sizes","$c2d28e92708f99da$var$FLOAT_EOF","$c2d28e92708f99da$var$FLOAT_LOOKUP","$c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP","$c2d28e92708f99da$export$2e2bcd8739ae039","n1","n2","c1","$61aa549f16d58b9b$export$2e2bcd8739ae039","operands","op","field","$6uUbQ$PropertyDescriptor","dict","k","$6uUbQ$fastdeepequal","ops","$0e34a43d05bde82c$export$2e2bcd8739ae039","$0e34a43d05bde82c$var$Ptr","$6d59db2e29cc77b3$var$CFFBlendOp","numBlends","$6d59db2e29cc77b3$export$2e2bcd8739ae039","$229224aec43783c5$export$2e2bcd8739ae039","$bc0433d9b7e41f5f$export$dee0027060fa13bd","$bc0433d9b7e41f5f$export$4f58f497e14a53c3","$ef658f5c9a1488b2$export$c33b50336c234f16","$ef658f5c9a1488b2$export$3ed0f9e1fee8d489","$ef658f5c9a1488b2$export$dc28be11139d4120","$7cbbe4e24ef3cb75$var$LangSysTable","$7cbbe4e24ef3cb75$var$LangSysRecord","$7cbbe4e24ef3cb75$var$Script","$7cbbe4e24ef3cb75$var$ScriptRecord","$7cbbe4e24ef3cb75$export$3e15fc05ce864229","$7cbbe4e24ef3cb75$var$FeatureParams","$7cbbe4e24ef3cb75$export$6e91cf7616333d5","$7cbbe4e24ef3cb75$var$FeatureRecord","$7cbbe4e24ef3cb75$export$aa18130def4b6cb4","$7cbbe4e24ef3cb75$var$LookupFlags","$7cbbe4e24ef3cb75$export$df0008c6ff2da22a","SubTable","Lookup","$6uUbQ$Optional","$7cbbe4e24ef3cb75$var$RangeRecord","$7cbbe4e24ef3cb75$export$17608c3f81a6111","$7cbbe4e24ef3cb75$var$ClassRangeRecord","$7cbbe4e24ef3cb75$export$843d551fbbafef71","$7cbbe4e24ef3cb75$export$8215d14a63d9fb10","$7cbbe4e24ef3cb75$var$LookupRecord","$7cbbe4e24ef3cb75$var$Rule","$7cbbe4e24ef3cb75$var$RuleSet","$7cbbe4e24ef3cb75$var$ClassRule","$7cbbe4e24ef3cb75$var$ClassSet","$7cbbe4e24ef3cb75$export$841858b892ce1f4c","$7cbbe4e24ef3cb75$var$ChainRule","$7cbbe4e24ef3cb75$var$ChainRuleSet","$7cbbe4e24ef3cb75$export$5e6d09e6861162f6","$1a47b0c45c1c22fe$var$F2DOT14","$6uUbQ$Fixed","$1a47b0c45c1c22fe$var$RegionAxisCoordinates","$1a47b0c45c1c22fe$var$VariationRegionList","$1a47b0c45c1c22fe$var$DeltaSet","$6uUbQ$int8","$1a47b0c45c1c22fe$var$ItemVariationData","$1a47b0c45c1c22fe$export$fe1b122a2710f241","$1a47b0c45c1c22fe$var$ConditionTable","$1a47b0c45c1c22fe$var$ConditionSet","$1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord","$1a47b0c45c1c22fe$var$FeatureTableSubstitution","$1a47b0c45c1c22fe$var$FeatureVariationRecord","$1a47b0c45c1c22fe$export$441b70b7971dd419","$b84fd3dd9d8eddb2$var$PredefinedOp","predefinedOps","$b84fd3dd9d8eddb2$var$CFFEncodingVersion","$6uUbQ$Number","$b84fd3dd9d8eddb2$var$Range1","$b84fd3dd9d8eddb2$var$Range2","$b84fd3dd9d8eddb2$var$CFFCustomEncoding","$b84fd3dd9d8eddb2$var$CFFEncoding","$b84fd3dd9d8eddb2$var$RangeArray","$6uUbQ$resolveLength","$b84fd3dd9d8eddb2$var$CFFCustomCharset","$b84fd3dd9d8eddb2$var$CFFCharset","$b84fd3dd9d8eddb2$var$FDRange3","$b84fd3dd9d8eddb2$var$FDRange4","$b84fd3dd9d8eddb2$var$FDSelect","$b84fd3dd9d8eddb2$var$ptr","$b84fd3dd9d8eddb2$var$CFFPrivateOp","$b84fd3dd9d8eddb2$var$FontDict","$b84fd3dd9d8eddb2$var$CFFTopDict","$b84fd3dd9d8eddb2$var$VariationStore","$b84fd3dd9d8eddb2$var$CFF2TopDict","$b84fd3dd9d8eddb2$var$CFFTop","$6uUbQ$fixed16","$b84fd3dd9d8eddb2$export$2e2bcd8739ae039","$822ac0d589e4e237$var$CFFFont","top","sid","glyph","gid","charset","ranges","high","mid","fd","$822ac0d589e4e237$export$2e2bcd8739ae039","$2bbf2bc1ce37cd8f$var$VerticalOrigin","$2bbf2bc1ce37cd8f$export$2e2bcd8739ae039","$0941618dc22a946d$export$16b227cb15d716a0","$0941618dc22a946d$export$62c53e75f69bfe12","$0941618dc22a946d$var$EBDTComponent","$0941618dc22a946d$var$ByteAligned","$0941618dc22a946d$var$BitAligned","$9911c4c7201c13de$var$SBitLineMetrics","$9911c4c7201c13de$var$CodeOffsetPair","$9911c4c7201c13de$var$IndexSubtable","$9911c4c7201c13de$var$IndexSubtableArray","$9911c4c7201c13de$var$BitmapSizeTable","$9911c4c7201c13de$export$2e2bcd8739ae039","$abb847051efd51b1$var$ImageTable","$abb847051efd51b1$export$2e2bcd8739ae039","$eb629188f3dfefdd$var$LayerRecord","$eb629188f3dfefdd$var$BaseGlyphRecord","$eb629188f3dfefdd$export$2e2bcd8739ae039","$08734b8e7dc64587$var$ColorRecord","$08734b8e7dc64587$export$2e2bcd8739ae039","$497cef411d884e34$var$BaseCoord","$497cef411d884e34$var$BaseValues","$497cef411d884e34$var$FeatMinMaxRecord","$497cef411d884e34$var$MinMax","$497cef411d884e34$var$BaseLangSysRecord","$497cef411d884e34$var$BaseScript","$497cef411d884e34$var$BaseScriptRecord","$497cef411d884e34$var$BaseScriptList","$497cef411d884e34$var$BaseTagList","$497cef411d884e34$var$Axis","$497cef411d884e34$export$2e2bcd8739ae039","$cf5f33c63ef209e6$var$AttachPoint","$cf5f33c63ef209e6$var$AttachList","$cf5f33c63ef209e6$var$CaretValue","$cf5f33c63ef209e6$var$LigGlyph","$cf5f33c63ef209e6$var$LigCaretList","$cf5f33c63ef209e6$var$MarkGlyphSetsDef","$cf5f33c63ef209e6$export$2e2bcd8739ae039","$47e0e8ef515d9903$var$ValueFormat","$47e0e8ef515d9903$var$types","$47e0e8ef515d9903$var$ValueRecord","struct","$47e0e8ef515d9903$var$PairValueRecord","$47e0e8ef515d9903$var$PairSet","$47e0e8ef515d9903$var$Class2Record","$47e0e8ef515d9903$var$Anchor","$47e0e8ef515d9903$var$EntryExitRecord","$47e0e8ef515d9903$var$MarkRecord","$47e0e8ef515d9903$var$MarkArray","$47e0e8ef515d9903$var$BaseRecord","$47e0e8ef515d9903$var$BaseArray","$47e0e8ef515d9903$var$ComponentRecord","$47e0e8ef515d9903$var$LigatureAttach","$47e0e8ef515d9903$var$LigatureArray","$47e0e8ef515d9903$export$73a8cfb19cd43a0f","$47e0e8ef515d9903$export$2e2bcd8739ae039","$d3f442064af66e06$var$Sequence","$d3f442064af66e06$var$AlternateSet","$d3f442064af66e06$var$Ligature","$d3f442064af66e06$var$LigatureSet","$d3f442064af66e06$var$GSUBLookup","$d3f442064af66e06$export$2e2bcd8739ae039","$71cfb3c4767fbd0c$var$JstfGSUBModList","$71cfb3c4767fbd0c$var$JstfPriority","$71cfb3c4767fbd0c$var$JstfLangSys","$71cfb3c4767fbd0c$var$JstfLangSysRecord","$71cfb3c4767fbd0c$var$JstfScript","$71cfb3c4767fbd0c$var$JstfScriptRecord","$71cfb3c4767fbd0c$export$2e2bcd8739ae039","$d059a6bd2d3b5b63$var$VariableSizeNumber","$d059a6bd2d3b5b63$var$MapDataEntry","$d059a6bd2d3b5b63$var$DeltaSetIndexMap","$d059a6bd2d3b5b63$export$2e2bcd8739ae039","$dceeca3e1977ce30$var$Signature","$dceeca3e1977ce30$var$SignatureBlock","$dceeca3e1977ce30$export$2e2bcd8739ae039","$8acd740a9435aad0$var$GaspRange","$8acd740a9435aad0$export$2e2bcd8739ae039","$b5f380243c34d6a0$var$DeviceRecord","$b5f380243c34d6a0$export$2e2bcd8739ae039","$ca2df1256966e313$var$KernPair","$ca2df1256966e313$var$ClassTable","$ca2df1256966e313$var$Kern2Array","$ca2df1256966e313$var$KernSubtable","$ca2df1256966e313$var$KernTable","$ca2df1256966e313$export$2e2bcd8739ae039","$7a9f92b0c46ebe33$export$2e2bcd8739ae039","$2b2ccc419d152631$export$2e2bcd8739ae039","$ca5b40b9bcda9c9b$var$Ratio","$ca5b40b9bcda9c9b$var$vTable","$ca5b40b9bcda9c9b$var$VdmxGroup","$ca5b40b9bcda9c9b$export$2e2bcd8739ae039","$69530a3c40755af0$export$2e2bcd8739ae039","$344073dd270f0e62$var$VmtxEntry","$344073dd270f0e62$export$2e2bcd8739ae039","$3793b781918cfced$var$shortFrac","$3793b781918cfced$var$Correspondence","$3793b781918cfced$var$Segment","$3793b781918cfced$export$2e2bcd8739ae039","$6cb7dd5f47d82580$var$UnboundedArrayAccessor","$6cb7dd5f47d82580$export$c5af1eebc882e39a","$6cb7dd5f47d82580$export$8351f8c2ae2f103c","ValueType","Shadow","BinarySearchHeader","LookupSegmentSingle","LookupSegmentArray","LookupSingle","$6cb7dd5f47d82580$export$79f7d93d790934ba","entryData","lookupType","entry","Entry","StateArray","$6cb7dd5f47d82580$export$105027425199cc51","ClassLookupTable","$6a3746e8c708f5a3$var$BslnSubtable","$6a3746e8c708f5a3$export$2e2bcd8739ae039","$d0c76fac617b308a$var$Setting","$d0c76fac617b308a$var$FeatureName","$d0c76fac617b308a$export$2e2bcd8739ae039","$e83fd065f00fcd01$var$Axis","$e83fd065f00fcd01$var$Instance","$e83fd065f00fcd01$export$2e2bcd8739ae039","$dbe33c8d3a7f131c$var$shortFrac","$dbe33c8d3a7f131c$var$Offset","$dbe33c8d3a7f131c$var$gvar","$dbe33c8d3a7f131c$export$2e2bcd8739ae039","$05b01887df96c4ee$var$ClassTable","$05b01887df96c4ee$var$WidthDeltaRecord","$05b01887df96c4ee$var$WidthDeltaCluster","$05b01887df96c4ee$var$ActionData","$05b01887df96c4ee$var$Action","$05b01887df96c4ee$var$PostcompensationAction","$05b01887df96c4ee$var$PostCompensationTable","$05b01887df96c4ee$var$JustificationTable","$05b01887df96c4ee$export$2e2bcd8739ae039","$03ee6ebd54db1053$var$LigatureData","$03ee6ebd54db1053$var$ContextualData","$03ee6ebd54db1053$var$InsertionData","$03ee6ebd54db1053$var$SubstitutionTable","$03ee6ebd54db1053$var$SubtableData","$03ee6ebd54db1053$var$Subtable","$03ee6ebd54db1053$var$FeatureEntry","$03ee6ebd54db1053$var$MorxChain","$03ee6ebd54db1053$export$2e2bcd8739ae039","$b7492a80b0d1a056$var$OpticalBounds","$b7492a80b0d1a056$export$2e2bcd8739ae039","$c3395722bea751e2$var$tables","$c3395722bea751e2$export$2e2bcd8739ae039","$816c07a04b6dba87$var$TableEntry","$816c07a04b6dba87$var$Directory","$6uUbQ$VoidPointer","maxExponentFor2","maxPowerOf2","$816c07a04b6dba87$export$2e2bcd8739ae039","$12727730ddfc8bfe$export$2e0ae67339d5f1ac","cmp","$12727730ddfc8bfe$export$d02631cccf789723","$12727730ddfc8bfe$export$3d28c1996ced1f14","$12727730ddfc8bfe$var$CHARS","$12727730ddfc8bfe$var$LOOKUP","$12727730ddfc8bfe$export$94fdf11bafc8de6b","bufferLength","encoded1","encoded2","encoded3","encoded4","$f08dd41ef10b694c$export$2e2bcd8739ae039","cmapTable","pairs","cmap","codepoint","variationSelector","rangeOffset","group","selectors","sel","endCodes","g","$6uUbQ$_1","$0bba3a9db57637f3$export$2e2bcd8739ae039","glyphs","positions","glyphIndex","right","pairIdx","pair","leftOffset","rightOffset","$0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039","clusterStart","clusterEnd","baseBox","xOffset","yOffset","yGap","mark","markBox","position","combiningClass","$6uUbQ$getCombiningClass","$f34600ab9d7f70d8$export$2e2bcd8739ae039","minX","minY","maxX","maxY","$130d1a642ebcd2b7$var$UNICODE_SCRIPTS","$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS","script","$130d1a642ebcd2b7$export$ce50e82f12a827a4","$130d1a642ebcd2b7$export$e5cb25e204fb8450","$6uUbQ$getScript","$130d1a642ebcd2b7$export$16fab0757cfc223d","$130d1a642ebcd2b7$var$RTL","$130d1a642ebcd2b7$export$9fddb9d0dd7d8a54","$be07b3e97a42687a$export$2e2bcd8739ae039","height","bbox","features","direction","$1ac75d9a55b67f01$export$2e2bcd8739ae039","xAdvance","yAdvance","$3b6302b64eccc32c$var$features","$3b6302b64eccc32c$var$feature","selector","$3b6302b64eccc32c$var$OTMapping","$3b6302b64eccc32c$var$AATMapping","ot","aat","$3b6302b64eccc32c$export$b813f7d2a1677c16","$3b6302b64eccc32c$var$mapFeatureStrings","f","setting","typeCode","settingCode","$3b6302b64eccc32c$export$bd6df347a4f391c4","feature","$ff5ce077dae0f144$export$2e2bcd8739ae039","seg","classValue","segment","$50c7aac9316f2948$var$START_OF_TEXT_STATE","$50c7aac9316f2948$var$END_OF_TEXT_CLASS","$50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS","$50c7aac9316f2948$var$DELETED_GLYPH_CLASS","$50c7aac9316f2948$var$DONT_ADVANCE","$50c7aac9316f2948$export$2e2bcd8739ae039","reverse","processEntry","currentState","classCode","shouldAdvance","entryIndex","visited","nClasses","stateArray","entryTable","row","stateTable","$55f71433a605c87d$var$MARK_FIRST","$55f71433a605c87d$var$MARK_LAST","$55f71433a605c87d$var$VERB","$55f71433a605c87d$var$SET_MARK","$55f71433a605c87d$var$SET_COMPONENT","$55f71433a605c87d$var$PERFORM_ACTION","$55f71433a605c87d$var$LAST_MASK","$55f71433a605c87d$var$STORE_MASK","$55f71433a605c87d$var$OFFSET_MASK","$55f71433a605c87d$var$REVERSE_DIRECTION","$55f71433a605c87d$var$CURRENT_INSERT_BEFORE","$55f71433a605c87d$var$MARKED_INSERT_BEFORE","$55f71433a605c87d$var$CURRENT_INSERT_COUNT","$55f71433a605c87d$var$MARKED_INSERT_COUNT","$55f71433a605c87d$export$2e2bcd8739ae039","chain","subtable","stateMachine","process","$55f71433a605c87d$var$reorderGlyphs","subsitutions","lookupTable","components","ligatureList","actionIndex","ligatureIndex","ligatureGlyphs","componentGlyph","action","store","component","ligatureEntry","insertionActionIndex","isBefore","insertions","stack","$55f71433a605c87d$var$swap","rangeA","rangeB","reverseA","reverseB","verb","firstGlyph","lastGlyph","$ba6dd74203be8728$export$2e2bcd8739ae039","glyphRun","glyphStrings","strings","$94d7a73bd2edfc9a$export$2e2bcd8739ae039","global","stageIndex","stage","processor","$649970d87335b30f$var$VARIATION_FEATURES","$649970d87335b30f$var$COMMON_FEATURES","$649970d87335b30f$var$FRACTIONAL_FEATURES","$649970d87335b30f$var$HORIZONTAL_FEATURES","$649970d87335b30f$var$DIRECTIONAL_FEATURES","$649970d87335b30f$export$2e2bcd8739ae039","plan","userFeatures","$6uUbQ$isDigit","$6uUbQ$_","$764eb544bbe1ccf0$var$trie","$6uUbQ$unicodetrie","$764eb544bbe1ccf0$var$FEATURES","$764eb544bbe1ccf0$var$ShapingClasses","$764eb544bbe1ccf0$var$ISOL","$764eb544bbe1ccf0$var$FINA","$764eb544bbe1ccf0$var$FIN2","$764eb544bbe1ccf0$var$FIN3","$764eb544bbe1ccf0$var$MEDI","$764eb544bbe1ccf0$var$MED2","$764eb544bbe1ccf0$var$INIT","$764eb544bbe1ccf0$var$NONE","$764eb544bbe1ccf0$var$STATE_TABLE","$764eb544bbe1ccf0$export$2e2bcd8739ae039","curAction","prevAction","$764eb544bbe1ccf0$var$getShapingClass","$6uUbQ$getCategory","$85d408632270248b$export$2e2bcd8739ae039","$a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS","$a83b9c36aaa94fd3$export$2e2bcd8739ae039","changed","featureIndex","substituteFeature","exclude","lookups","lookupIndex","substitutions","substitution","coords","variations","conditions","coord","advances","lookupRecords","lookupRecord","coverage","sequenceIndex","sequence","matched","classDef","classID","set","rule","rules","$10e7b257e1a9a756$export$2e2bcd8739ae039","id","GDEF","$6uUbQ$isMark","$e1c6bbc8cb416f8c$export$2e2bcd8739ae039","$e1c6bbc8cb416f8c$var$getType","$e1c6bbc8cb416f8c$var$STATE_TABLE","$e1c6bbc8cb416f8c$var$DECOMPOSE","$e1c6bbc8cb416f8c$var$decompose","$e1c6bbc8cb416f8c$var$COMPOSE","$e1c6bbc8cb416f8c$var$compose","$e1c6bbc8cb416f8c$var$TONE_MARK","$e1c6bbc8cb416f8c$var$reorderToneMark","$e1c6bbc8cb416f8c$var$INVALID","$e1c6bbc8cb416f8c$var$insertDottedCircle","$e1c6bbc8cb416f8c$var$HANGUL_BASE","$e1c6bbc8cb416f8c$var$HANGUL_END","$e1c6bbc8cb416f8c$var$HANGUL_COUNT","$e1c6bbc8cb416f8c$var$L_BASE","$e1c6bbc8cb416f8c$var$V_BASE","$e1c6bbc8cb416f8c$var$T_BASE","$e1c6bbc8cb416f8c$var$L_COUNT","$e1c6bbc8cb416f8c$var$V_COUNT","$e1c6bbc8cb416f8c$var$T_COUNT","$e1c6bbc8cb416f8c$var$L_END","$e1c6bbc8cb416f8c$var$V_END","$e1c6bbc8cb416f8c$var$T_END","$e1c6bbc8cb416f8c$var$DOTTED_CIRCLE","$e1c6bbc8cb416f8c$var$isL","$e1c6bbc8cb416f8c$var$isV","$e1c6bbc8cb416f8c$var$isT","$e1c6bbc8cb416f8c$var$isTone","$e1c6bbc8cb416f8c$var$isLVT","$e1c6bbc8cb416f8c$var$isLV","$e1c6bbc8cb416f8c$var$isCombiningL","$e1c6bbc8cb416f8c$var$isCombiningV","$e1c6bbc8cb416f8c$var$isCombiningT","$e1c6bbc8cb416f8c$var$X","$e1c6bbc8cb416f8c$var$L","$e1c6bbc8cb416f8c$var$V","$e1c6bbc8cb416f8c$var$T","$e1c6bbc8cb416f8c$var$LV","$e1c6bbc8cb416f8c$var$LVT","$e1c6bbc8cb416f8c$var$M","$e1c6bbc8cb416f8c$var$NO_ACTION","$e1c6bbc8cb416f8c$var$getGlyph","l","ljmo","vjmo","insert","tjmo","prevType","lv","del","$e1c6bbc8cb416f8c$var$getLength","dottedCircle","$4b0735ca6c692ea5$exports","$aa333a9607471296$exports","$90a9d3398ee54fe5$export$a513ea61a7bee91c","$90a9d3398ee54fe5$export$1a1f61c9c4dd9df0","$90a9d3398ee54fe5$export$8519deaa7de2b07","$90a9d3398ee54fe5$export$bbcd928767338e0d","$90a9d3398ee54fe5$export$ca9599b2a300afc","$90a9d3398ee54fe5$export$e99d119da76a0fc5","$90a9d3398ee54fe5$export$f647c9cfdd77d95a","$7826f90f6f0cecc9$var$decompositions","$7826f90f6f0cecc9$var$trie","$7826f90f6f0cecc9$var$stateMachine","$6uUbQ$dfa","$7826f90f6f0cecc9$export$2e2bcd8739ae039","$7826f90f6f0cecc9$var$setupSyllables","$7826f90f6f0cecc9$var$initialReordering","$7826f90f6f0cecc9$var$finalReordering","decomposed","$7826f90f6f0cecc9$var$indicCategory","$7826f90f6f0cecc9$var$indicPosition","$7826f90f6f0cecc9$var$IndicInfo","syllableType","syllable","$7826f90f6f0cecc9$var$isConsonant","$7826f90f6f0cecc9$var$isJoiner","$7826f90f6f0cecc9$var$isHalantOrCoeng","$7826f90f6f0cecc9$var$wouldSubstitute","$7826f90f6f0cecc9$var$consonantPosition","consonant","virama","indicConfig","info","$7826f90f6f0cecc9$var$nextSyllable","hasReph","seenBelow","disallowDoubleHalants","lastPos","blwf","prefLen","nonJoiner","tryPref","newPos","oldPos","newRephPos","rephPos","reph","$7ab494fe977143c6$var$categories","$7ab494fe977143c6$var$decompositions","$7ab494fe977143c6$var$trie","$7ab494fe977143c6$var$stateMachine","$7ab494fe977143c6$export$2e2bcd8739ae039","$7ab494fe977143c6$var$setupSyllables","$7ab494fe977143c6$var$clearSubstitutionFlags","$7ab494fe977143c6$var$recordRphf","$7ab494fe977143c6$var$recordPref","$7ab494fe977143c6$var$reorder","$7ab494fe977143c6$var$useCategory","$7ab494fe977143c6$var$USEInfo","$7ab494fe977143c6$var$nextSyllable","$7ab494fe977143c6$var$isBase","$7ab494fe977143c6$var$isHalant","$102b6fe50f1d50b4$var$SHAPERS","$102b6fe50f1d50b4$export$7877a478dd30fd3d","shaper","$0a876c45f1f7c41c$export$2e2bcd8739ae039","curGlyph","replacement","USER_INDEX","ligature","characters","ligatureGlyph","isMarkLigature","lastLigID","lastNumComps","curComps","matchIndex","ligatureComponent","$c96c93587d49c14d$export$2e2bcd8739ae039","variationProcessor","variationStore","nextGlyph","class1","class2","nextIndex","curRecord","nextRecord","exit","markIndex","baseGlyphIndex","baseIndex","markRecord","baseAnchor","ligIndex","ligAttach","markGlyph","ligGlyph","compIndex","mark1Index","prevIndex","good","mark2Index","baseCoords","markCoords","markPos","anchor","$a62492810de27e3d$export$2e2bcd8739ae039","glyphInfo","$4c0a7fa5df7a9ab1$export$2e2bcd8739ae039","positioned","ch","plane","$f43aec954cdfdf21$var$SVG_COMMANDS","$f43aec954cdfdf21$export$2e2bcd8739ae039","cbox","command","cx","cy","p0","p1","p2","p3","qp1x","qp1y","p3x","p3y","cp1x","cp1y","cp2x","cp2y","b2ac","t1","t2","path","m0","m1","m2","m3","m4","m5","tx","ty","angle","cos","sin","scaleX","scaleY","$7713b9b7b438dff8$export$2e2bcd8739ae039","$f92906be28e61769$export$2e2bcd8739ae039","metric","advanceWidth","leftBearing","advanceHeight","topBearing","os2","hhea","scale","post","$69aac16029968692$var$GlyfHeader","$69aac16029968692$var$ON_CURVE","$69aac16029968692$var$X_SHORT_VECTOR","$69aac16029968692$var$Y_SHORT_VECTOR","$69aac16029968692$var$REPEAT","$69aac16029968692$var$SAME_X","$69aac16029968692$var$SAME_Y","$69aac16029968692$var$ARG_1_AND_2_ARE_WORDS","$69aac16029968692$var$WE_HAVE_A_SCALE","$69aac16029968692$var$MORE_COMPONENTS","$69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE","$69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO","$69aac16029968692$var$WE_HAVE_INSTRUCTIONS","$69aac16029968692$export$baf26146a414f24a","onCurve","endContour","$69aac16029968692$var$Component","glyphID","dx","dy","$69aac16029968692$export$2e2bcd8739ae039","internal","short","same","glyfPos","nextPos","endPtsOfContours","numCoords","point","px","py","points","haveInstructions","gPos","contours","contour","firstPt","lastPt","curvePt","pt","prevPt","midX","midY","$62cc5109c6101893$export$2e2bcd8739ae039","cff","trans","nStems","usedGsubrs","usedSubrs","open","gsubrs","gsubrsBias","privateDict","subrs","subrsBias","vstore","vsindex","checkWidth","parseStems","moveTo","parse","subr","phase","c1x","c1y","c2x","c2y","c3x","c3y","c4x","c4y","c5x","c5y","c6x","c6y","pts","blendVector","numOperands","s1","s2","v1","v2","startx","starty","b1","$25d8f049c222084c$var$SBIXImage","$25d8f049c222084c$export$2e2bcd8739ae039","offsets","img","$0d411f0165859681$var$COLRLayer","color","$0d411f0165859681$export$2e2bcd8739ae039","cpal","colr","rec","baseLayer","layers","$0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS","$0bb840cac04e911b$var$TUPLE_COUNT_MASK","$0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD","$0bb840cac04e911b$var$INTERMEDIATE_TUPLE","$0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS","$0bb840cac04e911b$var$TUPLE_INDEX_MASK","$0bb840cac04e911b$var$POINTS_ARE_WORDS","$0bb840cac04e911b$var$POINT_RUN_COUNT_MASK","$0bb840cac04e911b$var$DELTAS_ARE_ZERO","$0bb840cac04e911b$var$DELTAS_ARE_WORDS","$0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK","$0bb840cac04e911b$export$2e2bcd8739ae039","normalized","axis","glyphPoints","gvar","tupleCount","offsetToData","here","sharedPoints","origPoints","tupleDataSize","tupleIndex","tupleCoords","startCoords","endCoords","factor","nPoints","xDeltas","yDeltas","outPoints","hasDelta","deltaX","deltaY","run","runCount","deltas","inPoints","firstPoint","endPoint","firstDelta","curDelta","ref1","ref2","iterable","in1","in2","out1","out2","ref","outerIndex","innerIndex","itemStore","varData","deltaSet","netAdjustment","master","normalizedCoords","scalar","regionIndex","axes","axisScalar","$5cc7476da92df375$export$2e2bcd8739ae039","$807e58506be70005$var$ON_CURVE","$807e58506be70005$var$X_SHORT_VECTOR","$807e58506be70005$var$Y_SHORT_VECTOR","$807e58506be70005$var$REPEAT","$807e58506be70005$var$SAME_X","$807e58506be70005$var$SAME_Y","$807e58506be70005$var$Point","$807e58506be70005$var$Glyf","$807e58506be70005$export$2e2bcd8739ae039","instructions","xPoints","yPoints","lastX","lastY","lastFlag","pointCount","glyf","$6uUbQ$EncodeStream","shortFlag","sameFlag","diff","$4abbb6a5dbdc441a$export$2e2bcd8739ae039","curOffset","nextOffset","maxp","$6uUbQ$clone","head","$001d739428a71d5a$export$2e2bcd8739ae039","used","topDict","used_fds","used_subrs","fd_select","$4c1709dee528ea76$export$2e2bcd8739ae039","nextState","instance","settings","axisTag","variationCoords","$c1726355ecc5b889$var$WOFFDirectoryEntry","$c1726355ecc5b889$var$WOFFDirectory","$c1726355ecc5b889$export$2e2bcd8739ae039","$760785214b9fc52c$export$2e2bcd8739ae039","outBuffer","$6uUbQ$tinyinflate","$8046190c9f1ad19e$export$2e2bcd8739ae039","$c28ec7bbb3b8de3a$var$Base128","$c28ec7bbb3b8de3a$var$knownTags","$c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry","$c28ec7bbb3b8de3a$var$WOFF2Directory","$c28ec7bbb3b8de3a$export$2e2bcd8739ae039","$21ee218f84ac7f32$export$2e2bcd8739ae039","decompressedSize","decompressed","$6uUbQ$brotlidecompressjs","$21ee218f84ac7f32$var$GlyfTable","nContours","totalPoints","$21ee218f84ac7f32$var$read255UInt16","$21ee218f84ac7f32$var$decodeTriplet","instructionSize","$21ee218f84ac7f32$var$Substream","$21ee218f84ac7f32$var$WORD_CODE","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1","$21ee218f84ac7f32$var$LOWEST_U_CODE","$21ee218f84ac7f32$var$withSign","baseval","b0","b2","$cd5853a56c68fec7$var$TTCHeader","$cd5853a56c68fec7$export$2e2bcd8739ae039","fonts","$05f49f930186144e$var$DFontName","$05f49f930186144e$var$Ref","$05f49f930186144e$var$Type","$05f49f930186144e$var$TypeList","$05f49f930186144e$var$DFontMap","$05f49f930186144e$var$DFontHeader","$05f49f930186144e$export$2e2bcd8739ae039","header"],"mappings":"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GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAK,EAE7D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAG7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE5C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC9C,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE3D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAC5D,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE5D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC7C,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,E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AAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,QACR,MAAQ,QACR,KAAQ,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,KACR,KAAQ,MACR,MAAQ,QACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,SACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,MACR,KAAQ,MACR,KAAQ,KACR,K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CA,SACA,CACR,EACI,CACI,CACI,GACA,EACZ,EACQ,kBACA,SACA,GACR,EACI,CACI,CACI,GACA,EACZ,EACQ,oBACA,SACA,CACR,EACI,CACI,GACA,gBACA,SACA,CACR,EACI,CACI,GACA,gBACA,SACA,CACR,EACI,CACI,GACA,UACA,SACA,CACR,EACI,CACI,GACA,QACAW,GACA,IACR,EACI,CACI,GACA,QACA,IAAQF,GAA0C,IAAQpB,GAA2C,CACjG,KAAM,OAClB,CAAS,EACD,IACR,CACA,CAAC,EAKGyB,GAA2C,CAC3C,UACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,SACA,SACA,YACA,iBACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,eACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,OACA,UACA,eACA,SACA,QACA,SACA,KACA,cACA,SACA,SACA,KACA,eACA,KACA,WACA,SACA,SACA,KACA,aACA,cACA,aACA,KACA,YACA,MACA,UACA,YACA,QACA,aACA,SACA,YACA,SACA,QACA,gBACA,cACA,aACA,QACA,MACA,WACA,gBACA,YACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,cACA,oBACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,gBACA,sBACA,iBACA,gBACA,YACA,YACA,eACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,KACA,MACA,MACA,oBACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,kBACA,eACA,cACA,cACA,cACA,gBACA,aACA,aACA,iBACA,cACA,aACA,iBACA,cACA,YACA,eACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,eACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,iBACA,UACA,UACA,UACA,UACA,QACA,OACA,OACA,QACA,SACA,UACA,QACA,UACJ,EAGA,IAAIC,GAA4C,CAC5C,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,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,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,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,GACA,SACA,SACA,YACA,iBACA,GACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,GACA,eACA,GACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,GACA,OACA,UACA,GACA,eACA,SACA,QACA,SACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,KACA,GACA,cACA,GACA,GACA,GACA,GACA,SACA,SACA,KACA,eACA,GACA,GACA,GACA,GACA,GACA,KACA,GACA,GACA,GACA,WACA,GACA,GACA,SACA,SACA,KACA,YACJ,EACIC,GAA4C,CAC5C,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,QACA,cACA,oBACA,GACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,iBACA,gBACA,GACA,YACA,YACA,eACA,YACA,YACA,GACA,GACA,YACA,GACA,GACA,YACA,YACA,YACA,YACA,GACA,GACA,YACA,YACA,YACA,GACA,KACA,KACA,KACA,MACA,MACA,oBACA,GACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,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,kBACA,eACA,cACA,GACA,GACA,cACA,cACA,gBACA,aACA,aACA,GACA,iBACA,GACA,GACA,cACA,GACA,GACA,aACA,iBACA,GACA,GACA,cACA,YACA,eACA,GACA,GACA,GACA,aACA,UACA,gBACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,GACA,GACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,gBACJ,EAGIC,GAA4C,CAC5C,UACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,aACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cACA,YACA,eACA,cACA,aACA,YACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,aACA,OACA,WACA,WACA,MACA,SACA,UACA,WACA,cACA,eACA,gBACA,gBACA,iBACA,KACA,KACA,SACA,SACA,YACA,iBACA,YACA,SACA,iBACA,eACA,gBACA,iBACA,WACA,cACA,eACA,QACA,QACA,aACA,QACA,SACA,QACA,YACA,WACA,OACA,UACA,eACA,SACA,QACA,SACA,KACA,cACA,SACA,SACA,KACA,eACA,KACA,WACA,SACA,SACA,KACA,aACA,cACA,aACA,KACA,YACA,MACA,UACA,YACA,QACA,aACA,SACA,YACA,SACA,QACA,gBACA,cACA,aACA,QACA,MACA,WACA,gBACA,YACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,YACA,QACJ,EACIC,GAA4C,CAC5C,UACA,QACA,cACA,oBACA,iBACA,iBACA,iBACA,aACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,iBACA,gBACA,YACA,YACA,eACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,KACA,KACA,KACA,MACA,MACA,oBACA,qBACA,kBACA,iBACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,gBACA,YACA,SACA,aACA,kBACA,eACA,cACA,cACA,cACA,gBACA,aACA,aACA,iBACA,cACA,aACA,iBACA,cACA,YACA,eACA,aACA,UACA,gBACA,oBACA,YACA,eACA,cACA,eACA,WACA,YACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,eACA,iBACA,iBACA,gBACA,cACA,cACA,mBACA,cACA,iBACA,aACA,UACA,gBACA,cACA,cACA,mBACA,iBACA,cACA,cACA,mBACA,iBACA,WACA,cACA,cACA,cACA,mBACA,cACA,iBACA,UACA,cACA,cACA,cACA,mBACA,iBACA,cACA,aACA,gBACJ,EACIC,GAA4C,CAC5C,UACA,QACA,iBACA,iBACA,oBACA,qBACA,iBACA,iBACA,QACA,SACA,SACA,WACA,eACA,cACA,cACA,gBACA,eACA,eACA,cACA,gBACA,gBACA,eACA,QACA,YACA,gBACA,sBACA,i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ACA,MACA,IACR,EACI,CACI,EACA,WACA,MACA,IACR,EACI,CACI,EACA,aACA,MACA,IACR,EACI,CACI,EACA,SACA,MACA,IACR,EACI,CACI,CACI,GACA,CACZ,EACQ,eACA,UACA,EACR,EACI,CACI,CACI,GACA,CACZ,EACQ,cACA,SACA,CACR,EACI,CACI,CACI,GACA,CACZ,EACQ,oBACA,SACA,IACR,EACI,CACI,CACI,GACA,CACZ,EACQ,qBACA,SACA,EACR,EACI,CACI,CACI,GACA,CACZ,EACQ,YACA,SACA,CACR,EACI,CACI,CACI,GACA,CACZ,EACQ,iBACA,SACA,CACR,EACI,CACI,CACI,GACA,CACZ,EACQ,aACA,QACA,CACI,KACA,EACA,EACA,KACA,EACA,CACZ,CACA,EACI,CACI,GACA,WACA,SACA,IACR,EACI,CACI,EACA,WACA,QACA,CACI,EACA,EACA,EACA,CACZ,CACA,EACI,CACI,CACI,GACA,CACZ,EACQ,cACA,SACA,CACR,EACI,CACI,GACA,OACA,QACA,IACR,EACI,CACI,GACA,UACAyE,GACIxD,EACZ,EACI,CACI,GACA,WACAoD,GACItD,EACZ,EACI,CACI,GACA,cACA,IAAQN,GAA0C,IAAQpB,EAAyC,EACnG,IACR,EACI,CACI,GACA,UACA,IAAIyF,GACJ,IACR,EACI,CACI,CACI,GACA,EACZ,EACQ,gBACA,SACA,IACR,EACI,CACI,CACI,GACA,EACZ,EACQ,aACA,MACA,IACR,EACI,CACI,CACI,GACA,EACZ,EACQ,eACA,MACA,IACR,EACI,CACI,CACI,GACA,EACZ,EACQ,gBACA,QACA,IACR,EAEI,CACI,CACI,GACA,EACZ,EACQ,iBACA,SACA,CACR,EACI,CACI,CACI,GACA,EACZ,EACQ,kBACA,SACA,CACR,EACI,CACI,CACI,GACA,EACZ,EACQ,cACA,SACA,CACR,EACI,CACI,CACI,GACA,EACZ,EACQ,WACA,SACA,IACR,EACI,CACI,CACI,GACA,EACZ,EACQ,UACA,SACA,IACR,EACI,CACI,CAC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CA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,YACA,QACA,WACA,SACA,SACA,YACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,WACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,OACA,WACA,UACA,SACA,YACA,aACA,aACA,YACA,YACA,QACA,WACA,WACA,KACA,SACA,WACA,YACA,YACA,eACA,MACA,KACA,cACA,YACA,UACA,KACA,WACA,cACA,eACA,QACA,KACA,SACA,eACA,aACA,aACA,UACA,SACA,cACA,QACA,gBACA,iBACA,WACA,mBACA,SACA,SACA,SACA,KACA,KACA,SACA,SACA,eACA,gBACA,YACA,aACA,SACA,UACA,YACA,YACA,WACA,WACA,gBACA,iBACA,KACA,KACA,YACA,iBACA,iBACA,eACA,cACA,cACA,cACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,QACA,SACA,SACA,cACA,SACA,WACA,aACA,QACA,SACA,QACA,YACA,OACA,UACA,eACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,YACA,MACA,MACA,SACA,SACA,QACA,QACA,QACA,WACA,cACA,cACA,gBACA,UACA,aACA,gBACA,QACA,SACA,SACA,aACA,WACA,WACA,SACA,SACA,SACA,SACA,QACJ,EAGA,MAAMC,EAAyC,CAC3C,UAAW,CACP,OAAO,IAAQnC,EACnB,CACA,UAAW,CACP,OAAO,KAAK,KAAK,IACrB,CACA,UAAW,CACP,OAAO,KAAK,KAAK,IACrB,CACA,iBAAiB1pC,EAAO,CACpB,GAAI,KAAK,GAAKA,EAAM,QAAQ,OAAQ,OAAOA,EAAM,QAAQ,IAAI,KAAK,EAAE,EACpE,IAAI8rC,EAAS9rC,EAAM,QAAQ,IAAIA,EAAM,QAAQ,OAAS,CAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]}
|