{"version":3,"sources":["webpack:///./node_modules/@ant-design/icons-svg/es/asn/QrcodeOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/QrcodeOutlined.js","webpack:///./src/config/model-version-config.js","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DefineObjectsAndStaticRegion.vue?c306","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelObjects.vue?ae92","webpack:///./src/components/user-panel/pages/process/TaskParameters/TelemetryParameters.vue?a33a","webpack:///./node_modules/@ant-design/icons-svg/es/asn/RedoOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/RedoOutlined.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MenuOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/MenuOutlined.js","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/TagList.vue?38ec","webpack:///./src/components/user-panel/pages/IoT/config.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/PreviewImageCard.vue?8e8d","webpack:///./src/components/user-panel/pages/process/ObjectDetection/RelationSteps.vue?cf9c","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js","webpack:///./src/components/user-panel/pages/RecordData/composables/useActiveDevices.js","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/constants.js","webpack:///./src/components/user-panel/pages/model-versions/wandb_chart/Heatmap.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/HistoryOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/HistoryOutlined.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelObjects.vue?89d3","webpack:///./node_modules/codemirror/addon/selection/active-line.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CloudUploadOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/CloudUploadOutlined.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/CodeEditor.vue?600f","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE39/index.js","webpack:///./src/components/user-panel/pages/process/TaskParameters/SubStepTimes.vue?aa07","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/ITF.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FormOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FormOutlined.js","webpack:///./src/components/user-panel/pages/process/MainProcess.vue?cfa8","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js","webpack:///./src/components/user-panel/pages/devices/joystickComponent.vue?d221","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/TagsOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/TagsOutlined.js","webpack:///./node_modules/codemirror/addon/fold/foldcode.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js","webpack:///./node_modules/jsbarcode/bin/renderers/object.js","webpack:///./node_modules/jsbarcode/bin/help/optionsFromStrings.js","webpack:///./node_modules/codemirror/lib/codemirror.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/ProcessStepTable.vue?ccf6","webpack:///./node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/UploadOutlined.js","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/SignalTower.vue?ef33","webpack:///./node_modules/jsbarcode/bin/JsBarcode.js","webpack:///./src/services/longRunningTask.js","webpack:///./node_modules/diff-match-patch/index.js","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersions.vue?52a7","webpack:///./src/components/user-panel/pages/process/TaskParameters/NegativeStepCard.vue?13b3","webpack:///./src/components/user-panel/pages/process/ObjectDetection/FileList.vue?766c","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelStaticRegions.vue?e39c","webpack:///./src/components/user-panel/pages/process/Translation/SubstepTranslation.vue?ba4e","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/checksums.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js","webpack:///./src/config/models-choice-config.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js","webpack:///./src/mixins/longRunningTask.js","webpack:///./node_modules/jsbarcode/bin/renderers/canvas.js","webpack:///./node_modules/jsbarcode/bin/renderers/index.js","webpack:///./node_modules/codemirror/addon/mode/simple.js","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersionTable.vue?a613","webpack:///./node_modules/jsbarcode/bin/help/fixOptions.js","webpack:///./node_modules/jsbarcode/bin/barcodes/pharmacode/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DrawObjects.vue?190a","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Barcode.vue?173f","webpack:///./src/components/user-panel/pages/process/Translation/StepTranslation.vue?d409","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js","webpack:///./node_modules/jsbarcode/bin/barcodes/MSI/index.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/LaptopOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/LaptopOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FileImageOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FileImageOutlined.js","webpack:///./node_modules/uuid/dist/esm-browser/v1.js","webpack:///./node_modules/uuid/dist/esm-browser/parse.js","webpack:///./node_modules/uuid/dist/esm-browser/v35.js","webpack:///./node_modules/uuid/dist/esm-browser/md5.js","webpack:///./node_modules/uuid/dist/esm-browser/v3.js","webpack:///./node_modules/uuid/dist/esm-browser/sha1.js","webpack:///./node_modules/uuid/dist/esm-browser/v5.js","webpack:///./node_modules/vue-uuid/dist/index.esm.js","webpack:///./src/components/user-panel/pages/IoT/UpdateTagModal.vue?f5e4","webpack:///./src/components/user-panel/pages/process/Task/TaskList.vue?2c3b","webpack:///./src/components/user-panel/pages/process/StepTime/StepTime.vue?c299","webpack:///./node_modules/jsbarcode/bin/barcodes/ITF/index.js","webpack:///./node_modules/jsbarcode/bin/help/linearizeEncodings.js","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/UploadStepMedia.vue?6cf6","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepCompletionCheck.vue?8d09","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js","webpack:///./node_modules/jsbarcode/bin/help/getOptionsFromElement.js","webpack:///./node_modules/jsbarcode/bin/renderers/shared.js","webpack:///./src/components/user-panel/pages/devices/WebRtc.vue?5f6b","webpack:///./node_modules/print-js/dist/print.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/HighlightOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/HighlightOutlined.js","webpack:///./src/components/user-panel/pages/process/Translation/AddTranslation.vue?3b28","webpack:///./node_modules/codemirror/addon/fold/brace-fold.js","webpack:///./src/components/user-panel/pages/IoT/TaskParametersTab.vue?8e3f","webpack:///./src/components/user-panel/pages/process/ObjectDetection/TrainModel.vue?d49a","webpack:///./node_modules/jsbarcode/bin/help/getRenderProperties.js","webpack:///./src/components/user-panel/pages/process/Index.vue","webpack:///./src/components/user-panel/pages/process/MainProcess.vue","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersions.vue","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersionTable.vue","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersionTable.vue?f229","webpack:///./src/components/user-panel/pages/process/ModelVersions/ModelVersions.vue?c174","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Devices.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/ProjectorTab.vue","webpack:///./src/config/iot-pulgins-config.js","webpack:///./src/components/user-panel/pages/devices/WebRtc.vue","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/helper.js","webpack:///./src/mixins/projectorRegionMarking.js","webpack:///./src/mixins/joystickControlButtons.js","webpack:///./src/components/user-panel/pages/devices/joystickComponent.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/MinusOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/MinusOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PoweroffOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/PoweroffOutlined.js","webpack:///./src/components/user-panel/pages/devices/joystickComponent.vue?a11c","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/shapes.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/region.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/arrow.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/circle.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/image.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/text.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/Shapes/gif.js","webpack:///./src/components/user-panel/pages/devices/ProjectiorRegion/shapesHelper.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/BgColorsOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/BgColorsOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FontColorsOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FontColorsOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SnippetsOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SnippetsOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FileGifOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FileGifOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PlayCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/PlayCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/PauseCircleOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/PauseCircleOutlined.js","webpack:///./src/components/user-panel/pages/devices/WebRtc.vue?f5a8","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/ProjectorTab.vue?426a","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/SignalTowerTab.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/SignalTower.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/SignalTower.vue?fd72","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/SignalTowerTab.vue?743c","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/OpcTab.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/TagList.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/AddTag.vue","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/AddTag.vue?a566","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/config.js","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/TagList.vue?eb0e","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/OpcTab.vue?da3a","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Barcode.vue","webpack:///./node_modules/@chenfengyuan/vue-barcode/dist/vue-barcode.esm.js","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Barcode.vue?f736","webpack:///./src/components/user-panel/pages/IoT/TagList.vue","webpack:///./src/components/user-panel/pages/IoT/UpdateTagModal.vue","webpack:///./src/utils/iot.js","webpack:///./src/components/user-panel/pages/IoT/TagParametersTab.vue","webpack:///./src/components/user-panel/pages/IoT/TagParametersTab.vue?6974","webpack:///./src/components/user-panel/pages/IoT/TaskParametersTab.vue","webpack:///./src/components/user-panel/pages/IoT/TaskParametersTab.vue?2ff5","webpack:///./src/components/shared/Helpers/getTaskDetails.js","webpack:///./src/components/user-panel/pages/IoT/UpdateTagModal.vue?c599","webpack:///./src/components/user-panel/pages/IoT/TagList.vue?2418","webpack:///./src/components/user-panel/pages/IoT/AddTagModal.vue","webpack:///./src/components/user-panel/pages/IoT/AddTagModal.vue?0e91","webpack:///./src/components/user-panel/pages/IoT/OPCTags.vue","webpack:///./src/components/user-panel/pages/IoT/OPCTags.vue?1285","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Devices.vue?ce94","webpack:///./src/components/user-panel/pages/process/RegionDefinition/RegionDefinition.vue","webpack:///./src/components/user-panel/pages/LabelData/ObjectAnnotation/helpers.js","webpack:///./src/components/user-panel/pages/LabelData/ObjectAnnotation/object.js","webpack:///./src/mixins/objectsMarking.js","webpack:///./src/components/user-panel/pages/process/RegionDefinition/RegionDefinition.vue?37d5","webpack:///./src/components/user-panel/pages/process/SimilarSteps/SimilarSteps.vue","webpack:///./src/components/user-panel/pages/process/SimilarSteps/SimilarSteps.vue?50d3","webpack:///./src/components/user-panel/pages/process/StepTime/StepTime.vue","webpack:///./src/components/user-panel/pages/process/StepTime/Process.vue","webpack:///./src/components/user-panel/pages/process/StepTime/Step.vue","webpack:///./src/components/user-panel/pages/process/StepTime/Substep.vue","webpack:///./src/components/user-panel/pages/process/StepTime/Substep.vue?4111","webpack:///./src/components/user-panel/pages/process/StepTime/Step.vue?0d9c","webpack:///./src/components/user-panel/pages/process/StepTime/Process.vue?69e7","webpack:///./src/components/user-panel/pages/process/StepTime/StepTime.vue?e372","webpack:///./src/components/user-panel/pages/process/Task/TaskList.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FundProjectionScreenOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FundProjectionScreenOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SettingTwoTone.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SettingTwoTone.js","webpack:///./src/components/user-panel/pages/process/RegionDefinition/AssociateRegion.vue","webpack:///./src/components/user-panel/pages/process/RegionDefinition/AssociateRegion.vue?48ea","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectDetection.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/TrainModel.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/TrainModel.vue?4e78","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DefineObjectsAndStaticRegion.vue","webpack:///./src/utils/detector.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DefineObjectsAndStaticRegion.vue?bf60","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelObjects.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/AppstoreOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/AppstoreOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/BarChartOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/BarChartOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FolderViewOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FolderViewOutlined.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DrawObjects.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FontSizeOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FontSizeOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/BorderOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/BorderOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SelectOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SelectOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/FullscreenOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/FullscreenOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SaveOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SaveOutlined.js","webpack:///./src/services/detector.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/FileList.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/FileList.vue?6fd1","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectSettings.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/config.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectSettings.vue?aa7f","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ShortcutKeysModal.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ShortcutKeysModal.vue?4985","webpack:///./src/components/user-panel/pages/process/ObjectDetection/DrawObjects.vue?c237","webpack:///./src/components/user-panel/pages/process/ObjectDetection/PreviewImageCard.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/PreviewImageCard.vue?7447","webpack:///./src/components/shared/Helpers/uploadFile.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelObjects.vue?152c","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelStaticRegions.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SortAscendingOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SortAscendingOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/SortDescendingOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/SortDescendingOutlined.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelStaticRegions.vue?f033","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelPlaneRegions.vue","webpack:///./node_modules/@ant-design/icons-svg/es/asn/RiseOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/RiseOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/ExclamationOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/ExclamationOutlined.js","webpack:///./node_modules/@ant-design/icons-svg/es/asn/CalculatorOutlined.js","webpack:///./node_modules/@ant-design/icons-vue/es/icons/CalculatorOutlined.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelPlaneRegions.vue?8379","webpack:///./src/components/user-panel/pages/process/ObjectDetection/AssociateSteps.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepObjects.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepObjects.vue?8f4f","webpack:///./src/components/user-panel/pages/process/ObjectDetection/CodeEditor.vue","webpack:///./node_modules/codemirror-editor-vue3/dist/codemirror-editor-vue3.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/CodeEditor.vue?10c1","webpack:///./src/components/user-panel/pages/process/ObjectDetection/AssociateSteps.vue?97e4","webpack:///./src/components/user-panel/pages/process/ObjectDetection/RelationSteps.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/RelationSteps.vue?7515","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepCompletionCheck.vue","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepCompletionCheck.vue?f060","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectDetection.vue?7630","webpack:///./src/components/user-panel/pages/process/Task/TaskList.vue?280e","webpack:///./src/components/user-panel/pages/process/TaskParameters/TaskParameters.vue","webpack:///./src/components/user-panel/pages/process/TaskParameters/config.js","webpack:///./src/components/user-panel/pages/process/TaskParameters/TelemetryParameters.vue","webpack:///./src/components/user-panel/pages/process/TaskParameters/SubStepTimes.vue","webpack:///./src/components/user-panel/pages/process/TaskParameters/SubStepTimes.vue?ad1f","webpack:///./src/components/user-panel/pages/process/TaskParameters/TelemetryParameters.vue?d74b","webpack:///./src/components/user-panel/pages/process/TaskParameters/TrainingParameters.vue","webpack:///./src/config/augmentation-options-config.js","webpack:///./src/components/user-panel/pages/process/TaskParameters/TrainingParameters.vue?0591","webpack:///./src/components/user-panel/pages/process/TaskParameters/NegativeSteps.vue","webpack:///./src/components/user-panel/pages/process/TaskParameters/NegativeStepCard.vue","webpack:///./src/components/user-panel/pages/process/TaskParameters/NegativeStepCard.vue?1741","webpack:///./src/components/user-panel/pages/process/TaskParameters/NegativeSteps.vue?cd48","webpack:///./src/components/user-panel/pages/process/TaskParameters/TaskParameters.vue?81f0","webpack:///./src/components/user-panel/pages/process/Translation/AddTranslation.vue","webpack:///./src/components/user-panel/pages/process/Translation/ProcessTranslation.vue","webpack:///./src/components/user-panel/pages/process/Translation/StepTranslation.vue","webpack:///./src/components/user-panel/pages/process/Translation/SubstepTranslation.vue","webpack:///./src/components/user-panel/pages/process/Translation/SubstepTranslation.vue?ac24","webpack:///./src/components/user-panel/pages/process/Translation/StepTranslation.vue?e737","webpack:///./src/components/user-panel/pages/process/Translation/ProcessTranslation.vue?fd10","webpack:///./src/components/user-panel/pages/process/Translation/AddTranslation.vue?2563","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/UploadStepMedia.vue","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/ProcessStepTable.vue","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/PreviewStepMedia.vue","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/PreviewStepMedia.vue?a96f","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/ProcessStepTable.vue?4dc2","webpack:///./src/components/user-panel/pages/process/UploadStepMedia/UploadStepMedia.vue?3751","webpack:///./src/components/user-panel/pages/process/MainProcess.vue?0531","webpack:///./src/components/user-panel/pages/process/Index.vue?7f70","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelObjects.vue?e925","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/auto.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/AssociateSteps.vue?0128","webpack:///./node_modules/jsbarcode/bin/exceptions/ErrorHandler.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js","webpack:///./node_modules/jsbarcode/bin/renderers/svg.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js","webpack:///./node_modules/html2canvas/dist/html2canvas.js","webpack:///./node_modules/jsbarcode/bin/barcodes/codabar/index.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectSettings.vue?1286","webpack:///./node_modules/codemirror/addon/merge/merge.js","webpack:///./src/components/user-panel/pages/process/Translation/ProcessTranslation.vue?6633","webpack:///./node_modules/jsbarcode/bin/options/defaults.js","webpack:///./node_modules/codemirror/addon/fold/foldgutter.js","webpack:///./src/components/user-panel/pages/process/TaskParameters/TaskParameters.vue?2c90","webpack:///./src/components/user-panel/pages/process/StepTime/Substep.vue?e1f8","webpack:///./node_modules/qrcode.vue/dist/qrcode.vue.browser.js","webpack:///./src/components/user-panel/pages/IoT/TagParametersTab.vue?43f7","webpack:///./node_modules/codemirror/addon/display/placeholder.js","webpack:///./src/components/user-panel/pages/model-versions/wandb_history.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/index.js","webpack:///./node_modules/codemirror/mode/python/python.js","webpack:///./node_modules/jsbarcode/bin/exceptions/exceptions.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/LabelPlaneRegions.vue?bfcc","webpack:///./node_modules/jsbarcode/bin/barcodes/Barcode.js","webpack:///./node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js","webpack:///./src/services/iot.js","webpack:///./src/components/user-panel/pages/process/ProjectorRegions/Opc/AddTag.vue?2296","webpack:///./src/components/user-panel/pages/IoT/AddTagModal.vue?ac7c","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js","webpack:///./node_modules/jsbarcode/bin/barcodes/CODE128/constants.js","webpack:///./src/services/sqs.js","webpack:///./src/components/user-panel/pages/process/ObjectDetection/StepObjects.vue?4dd1","webpack:///./src/components/user-panel/pages/process/ObjectDetection/ObjectDetection.vue?1d53","webpack:///./node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js","webpack:///./node_modules/jsbarcode/bin/help/merge.js","webpack:///./node_modules/jsbarcode/bin/barcodes/index.js"],"names":["_objectSpread","target","i","arguments","length","source","Object","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","_defineProperty","obj","value","defineProperty","configurable","writable","props","context","p","attrs","AntdIcon","displayName","inheritAttrs","validFiles","adminModelVersionTable","title","dataIndex","align","width","userModelVersionTable","userModelVersionModalTable","exports","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","prototype","_ITF2","_ITF3","_interopRequireDefault","__esModule","default","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","checksum","data","res","substr","split","map","num","parseInt","reduce","sum","n","idx","Math","ceil","ITF14","_ITF","options","this","search","getPrototypeOf","_Barcode2","_Barcode3","MSI","_Barcode","ret","digit","bin","toString","addZeroes","b","text","number","columns","customRender","record","OpcConnectionColumns","OpcConfigurationFields","OpcSecurityPolicy","label","_get","get","object","property","receiver","Function","desc","undefined","parent","getter","_EAN2","_EAN3","a","EAN8","_EAN","UPCE","UPC","EAN2","EAN5","EAN13","_EAN4","_EAN5","_EAN6","_EAN7","_EAN8","_UPC","_UPC2","_UPCE","_UPCE2","useActiveDevices","toast","inject","tasks","ref","taskOptions","trainedTasks","isLoadingTasks","taskInputRefs","allDevices","devicesDetails","activeDevicesDict","isLoadingDevices","activeDevicesPolling","activeDevicesPollingTime","showSchedule","deviceToSchedule","startEndTime","selectedDays","isScheduling","isPolled","devicesCount","activeDevices","store","useStore","organization","computed","state","auth","activeDevicesList","d","active","sortedDevices","sort","starred","activeDevicesCount","async","getCachedDeviceStatus","error","DeviceService","fetchAllDevicesOfOrg","devices","device","Task","id","activeDevicesMap","Map","Serial_number","updatedAllDevices","isActive","has","handleDeviceStatus","dataLookup","fromEntries","item","mergedData","getActiveDevices","dispatch","getTasks","TaskService","fetchTasks","getSortedTask","getAllTrainedTasks","fetchTrainedTasksByStatus","trainingStatuses","trained","e","task","getAllDevices","watch","dev","onBeforeMount","setInterval","onBeforeUnmount","clearInterval","deviceStatus","uploading","downloading","serialNumber","updateDevice","deviceDetails","temp","index","findIndex","v","updateDeviceSettings","Promise","updateDeviceSettingsAsync","resolve","oldValue","getOldValues","payload","getPayloadForDeviceSettings","updateDeviceSettingsAndActiveDevices","isUpdated","updateActiveDevices","Array","isArray","keyIndex","deviceIndex","values","handleRecording","record_shift","is_shift_managed","isInferenceRunning","isTaskSet","isShiftBeingManaged","isInGuidanceMode","info","subject","action","handleInference","isTrainedTask","isShiftBeingRecorded","taskId","isTaskTrained","some","handleChangeTask","_taskInputRefs$value$","blur","showScheduleModal","days_of_week","getDaysOfWeek","start","end","getStartEndTimeToPopulate","JSON","parse","day_of_week_for_recording","day_of_week_for_inference","start_recording_time","end_recording_time","shift_start_time","shift_end_time","dateHelper","getTimeFromDate","scheduleRecording","getSchedulePayload","scheduleInference","getStartEndTimeForSchedule","stringify","$d","startDate","getFormattedDate","endDate","startTime","Date","toTimeString","endTime","START_BIN","END_BIN","BINARIES","script","__exports__","render","mod","CodeMirror","WRAP_CLASS","BACK_CLASS","GUTT_CLASS","clearActiveLines","cm","activeLines","removeLineClass","sameArray","updateActiveLines","ranges","range","option","getOption","nonEmpty","anchor","line","head","empty","getLineHandleVisualStart","push","operation","addLineClass","selectionChange","sel","defineOption","val","old","prev","Init","off","listSelections","on","CODE39","toUpperCase","mod43","getCharacter","mod43checksum","result","getEncoding","characters","encodings","character","getBinary","characterValue","indexOf","_constants","ITF","apply","_this2","encoded","match","pair","encodePair","join","second","first","_MSI2","_MSI3","_checksums","MSI11","_MSI","mod11","MSI10","mod10","doFold","pos","force","finder","Pos","minSize","getRange","allowFolded","to","from","marks","findMarksAt","__isFold","cleared","clear","firstLine","myWidget","makeWidget","myRange","e_preventDefault","markText","replacedWith","clearOnEnter","signal","widget","document","createTextNode","createElement","appendChild","className","cloneNode","newFoldFunction","rangeFinder","defineExtension","commands","toggleFold","foldCode","getCursor","fold","unfold","scanUp","foldAll","lastLine","unfoldAll","registerHelper","funcs","slice","found","helpers","getHelpers","cur","defaultOptions","auto","minFoldSize","name","editorOptions","foldOptions","CODE128","_this","substring","bytes","char","charCodeAt","test","startIndex","shift","startSet","SET_BY_CODE","RangeError","shouldEncodeAsEan128","unshift","FNC1","encodingResult","next","replace","getBar","MODULO","STOP","isEAN128","ean128","toLowerCase","BARS","set","SET_A","charCode","SET_B","nextCode","nextSet","SWAP","SHIFT","correctIndex","enc","weight","ObjectRenderer","optionsFromStrings","intOptions","intOption","hasOwnProperty","global","factory","module","userAgent","navigator","platform","gecko","ie_upto10","ie_11up","exec","edge","ie","ie_version","documentMode","webkit","qtwebkit","chrome","chrome_version","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","Number","flipCtrlCmd","captureRightClick","classTest","cls","RegExp","rmClass","node","current","after","removeChildren","count","childNodes","removeChild","firstChild","removeChildrenAndAdd","elt","tag","content","style","cssText","eltP","setAttribute","contains","child","nodeType","parentNode","host","activeElt","rootNode","activeElement","doc","ownerDocument","body","shadowRoot","addClass","joinClasses","as","createRange","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","select","display","wrapper","root","element","getRootNode","win","defaultView","bind","f","args","copyObj","overwrite","prop","countColumn","string","tabSize","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","handler","onTimeout","array","setTimeout","ms","clearTimeout","scrollerGap","Pass","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","col","skipped","min","spaceStrs","spaceStr","lst","arr","out","insertSorted","score","priority","splice","nothing","createObj","base","inst","nonASCIISingleCaseWordChar","isWordCharBasic","ch","isWordChar","helper","isEmpty","extendingChars","isExtendingChar","skipExtendingChars","str","dir","charAt","findFirst","pred","midF","mid","floor","iterateBidiSections","order","part","max","level","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","code","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","direction","outerType","len","types","i$1","type","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","j","i$5","cur$1","type$4","i$6","end$1","before","replace$1","j$1","m","i$7","at","isRTL","j$2","nstart","reverse","getOrder","noHandlers","emitter","addEventListener","attachEvent","_handlers","getHandlers","removeEventListener","detachEvent","handlers","signalDOMEvent","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","l","nl","rt","hasSelection","window","getSelection","te","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","abs","modes","mimeModes","defineMode","mode","dependencies","defineMIME","mime","spec","resolveMode","getMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","nstate","innerMode","startState","a1","a2","StringStream","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","size","Error","chunk","lines","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","diff","lineNo","no","lineAtHeight","h","outer","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","clipPos","last","clipToLen","linelen","clipPosArray","eol","sol","peek","eat","ok","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","inner","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","stream","callBlankLine","readToken","blankLine","token","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","add","attachLine","markedSpansBefore","startCh","isInsert","nw","startsBefore","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","stretchSpansOverChange","change","full","oldFirst","oldLast","sameLine","offset","span$1","found$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","removeReadOnlyRanges","markers","mark","readOnly","parts","mk","find","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","merged","visualLineEnd","visualLineContinued","visualLineNo","lineN","vis","visualLineEndNo","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","rest","addToken","buildToken","buildTokenBadBidi","allowFrontierUpdate","externalMeasured","insertLineContent","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","startStyle","endStyle","css","attributes","displayText","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","attr","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","upto","tokenText","LineView","hidden","buildViewArray","nextPos","view","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","group","callbacks","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","list","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","updateLineBackground","background","wrap","insertBefore","getLineContent","ext","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","ensureLineHeights","rect","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","bottom","top","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","invert","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","targetTop","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","customCursor","$customCursor","primIndex","drawSelectionCursor","showCursorWhenSelecting","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","defaultCharWidth","otherCursor","cmpCoords","fragment","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","fromPos","toPos","openStart","openEnd","openLeft","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","blinker","cursorDiv","visibility","cursorBlinkRate","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","reset","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollIntoView","scrollPosIntoView","margin","limit","changed","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","tabIndex","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","events","scrollbarsClipped","marginBottom","borderRightWidth","selectionSnapshot","anchorNode","extend","anchorOffset","focusNode","focusOffset","restoreSelection","snapshot","nodeName","removeAllRanges","addRange","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","comp","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","clipPath","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","chromeScrollHack","pointerEvents","pixelsPerUnit","deltaMode","deltaX","deltaY","canScrollX","canScrollY","pixels","movedX","movedY","sample","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","lastText","lastSpans","nlines","insert","remove","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","directionChanged","History","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","pop","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","history","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","existing","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","event","newChanges","extendRange","posBefore","extendSelection","setSelection","extendSelections","heads","newSel","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","removed","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","replaceRange","assign","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","remaining","leaf","maybeSpill","me","spilled","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","addLineWidget","insertAt","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markTextShared","addToHistory","curLine","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","getValue","lineSeparator","setValue","getLineHandle","getLineNumber","lineCount","setCursor","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","where","removeLineWidget","setBookmark","realOpts","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","link","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","onDragStart","setData","effectAllowed","setDragImage","img","src","_top","onDragOver","frag","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","3","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","93","106","107","109","110","111","145","173","186","187","188","189","190","191","192","219","220","221","222","224","63232","63233","63234","63235","63272","63273","63275","63276","63277","63302","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","moveInStorageOrder","prep","moveVisually","bidi","mv","getWrappedLineExtent","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","leftPos","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","indentLine","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","up","onKeyUp","onKeyPress","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","compare","onMouseDown","supportsTouch","clickInGutter","repeat","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","unit","addNew","moveOnDrag","contained","behavior","dragDrop","leftButtonStartDrag","leftButtonSelect","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","lastPos","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","counter","curCount","move","buttons","anchorLine","boundary","headIndex","usePart","gutterEvent","prevent","mX","mY","touches","lineBox","g","contextMenuInGutter","themeChanged","theme","defaults","optionHandlers","defineOptions","deflt","notOnInit","newBreaks","refresh","getInputField","spellcheck","autocorrect","autocapitalize","detach","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","wasOn","dragFunctions","toggle","enter","over","leave","drop","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","inp","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","border","addEditorMethods","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getTokenAt","getLineTokens","getTokenTypeAt","getHelper","help","_global","getStateAfter","defaultTextHeight","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","amount","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","check","scrollTo","getScrollInfo","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","close","addText","walk","cmText","markerID","isBlock","textContent","nodeValue","domToPos","lineNode","locateNodeInLineView","textNode","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","resetting","fromTextArea","textarea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","opts","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","dontDelegate","method","func","defineDocExtension","version","encode","structure","separator","_encoder","_encoder2","EAN5_STRUCTURE","_barcodes","_barcodes2","_merge","_merge2","_linearizeEncodings","_linearizeEncodings2","_fixOptions","_fixOptions2","_getRenderProperties","_getRenderProperties2","_optionsFromStrings","_optionsFromStrings2","_ErrorHandler","_ErrorHandler2","_exceptions","_defaults","_defaults2","API","JsBarcode","api","_renderProperties","_encodings","_options","_errorHandler","format","autoSelectBarcode","getModule","registerBarcode","barcodes","wrapBarcodeCall","newOptions","Encoder","encoder","valid","InvalidInputException","renderProperties","Renderer","renderer","afterRender","blank","zeroes","renderProperty","NoElementException","jQuery","fn","elementArray","each","getLongRunningTasks","spinner","queryParams","ApiHelper","createLongRunningTasks","post","getLongRunningTaskById","diff_match_patch","Diff_Timeout","Diff_EditCost","Match_Threshold","Match_Distance","Patch_DeleteThreshold","Patch_Margin","Match_MaxBits","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","Diff","diff_main","text1","text2","opt_checklines","opt_deadline","MAX_VALUE","getTime","deadline","checklines","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_lineMode_","diff_bisect_","diff_linesToChars_","chars1","chars2","linearray","lineArray","diff_charsToLines_","diff_cleanupSemantic","pointer","count_delete","count_insert","text_delete","text_insert","subDiff","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","lineHash","diff_linesToCharsMunge_","chars","lineArrayLength","maxLines","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_commonOverlap_","text_length","best","dmp","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","suffixLength","hm1","hm2","equalities","equalitiesLength","lastEquality","length_insertions1","length_deletions1","length_insertions2","length_deletions2","diff_cleanupSemanticLossless","deletion","insertion","overlap_length1","overlap_length2","diff_cleanupSemanticScore_","one","two","char1","char2","nonAlphaNumeric1","nonAlphaNumericRegex_","nonAlphaNumeric2","whitespace1","whitespaceRegex_","whitespace2","lineBreak1","linebreakRegex_","lineBreak2","blankLine1","blanklineEndRegex_","blankLine2","blanklineStartRegex_","equality1","edit","equality2","commonOffset","commonString","bestEquality1","bestEdit","bestEquality2","bestScore","diff_cleanupEfficiency","pre_ins","pre_del","post_ins","post_del","diff_xIndex","loc","last_chars1","last_chars2","diff_prettyHtml","html","pattern_amp","pattern_lt","pattern_gt","pattern_para","diff_text1","diff_text2","diff_levenshtein","levenshtein","insertions","deletions","diff_toDelta","encodeURI","diff_fromDelta","diffsLength","param","decodeURI","ex","match_main","match_bitap_","s","match_alphabet_","match_bitapScore_","accuracy","proximity","score_threshold","best_loc","lastIndexOf","bin_min","bin_mid","matchmask","last_rd","bin_max","rd","charMatch","patch_addContext_","patch","start2","length1","prefix","suffix","start1","length2","patch_make","opt_b","opt_c","patches","patch_obj","patchDiffLength","char_count1","char_count2","prepatch_text","postpatch_text","diff_type","diff_text","patch_deepCopy","patchesCopy","patchCopy","patch_apply","nullPadding","patch_addPadding","patch_splitMax","results","start_loc","expected_loc","end_loc","index2","index1","paddingLength","extraLength","patch_size","bigpatch","precontext","postcontext","patch_toText","patch_fromText","textline","textPointer","patchHeader","sign","coords1","coords2","weights","_CODE2","_CODE3","_auto","_auto2","CODE128AUTO","_CODE","models_to_avoid","CODE128B","B_START_CHAR","B_CHARS","longRunningTaskInterval","taskUpdateNotification","isTaskBeingUpdated","components","InfoCircleOutlined","beforeUnmount","_this$removeListener","clearLRTInterval","removeListener","methods","setLongRunningTaskInterval","fetchLongRunningTasks","selectedTask","LRTService","actions","updateTask","status","statuses","started","console","log","showTaskUpdateNotification","showNotification","notification","destroy","_shared","CanvasRenderer","canvas","getContext","prepareCanvas","encodingOptions","drawCanvasBarcode","drawCanvasText","moveCanvasDrawing","restoreCanvas","ctx","calculateEncodingAttributes","getTotalWidthOfEncodings","maxHeight","getMaximumHeightOfEncodings","marginRight","clearRect","fillStyle","fillRect","translate","encoding","yFrom","binary","textPosition","fontSize","textMargin","lineColor","barcodePadding","font","fontOptions","displayValue","textAlign","fillText","restore","_canvas","_canvas2","_svg","_svg2","_object","_object2","SVGRenderer","ensureState","states","toRegex","caret","flags","ignoreCase","unicode","asToken","Rule","regex","tokenFunction","config","pending","pend","local","tok","endToken","localState","endScan","curState","rule","matches","stack","enterLocalMode","dedent","pers","persistent","persistentStates","lState","forceEnd","indentFunction","meta","textAfter","dontIndentStates","rules","dedentIfLineStart","defineSimpleMode","simpleMode","states_","hasIndentation","orig","fixOptions","pharmacode","z","MSI1110","MSI1010","lastChar","EAN13_STRUCTURE","_MSI4","_MSI5","_MSI6","_MSI7","_MSI8","_MSI9","_MSI10","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","random","msecs","nsecs","dt","tl","tmh","uuid","validate","Uint8Array","stringToBytes","unescape","encodeURIComponent","DNS","URL","generateUUID","namespace","hashfunc","err","md5","msg","md5ToHexEncodedArray","wordsToMd5","bytesToWords","length32","hexTab","hex","getOutputLength","inputLength8","c","olda","oldb","oldc","oldd","md5ff","md5gg","md5hh","md5ii","safeAdd","length8","Uint32Array","lsw","msw","bitRotateLeft","cnt","md5cmn","q","v3","v35","ROTL","sha1","K","H","N","M","_i","pow","_i2","W","_t","_t2","T","v5","v4","_ITF4","linearizeEncodings","linearEncodings","nextLevel","EAN2_STRUCTURE","getOptionsFromElement","hasAttribute","getBarcodePadding","getEncodingHeight","textWidth","barcodeWidth","barcodeOptions","messureText","measureTextResult","modules","installedModules","__webpack_require__","moduleId","Symbol","toStringTag","ns","__webpack_exports__","_js_init__WEBPACK_IMPORTED_MODULE_1__","printJS","Browser","isFirefox","InstallTrigger","isIE","isEdge","StyleMedia","isChrome","isSafari","HTMLElement","isIOSChrome","addWrapper","capitalizePrint","collectStyles","addHeader","cleanUp","isRawHTML","_modal__WEBPACK_IMPORTED_MODULE_0__","_browser__WEBPACK_IMPORTED_MODULE_1__","_typeof","iterator","htmlData","params","bodyStyle","font_size","elementStyle","targetStyles","targetStyle","targetStylesMatch","getPropertyValue","maxWidth","printElement","headerContainer","header","innerHTML","headerElement","headerNode","headerStyle","showModal","onLoadingEnd","onLoadingStart","revokeObjectURL","printable","onPrintDialogClose","iframe","getElementById","frameId","raw","regexHtml","_functions__WEBPACK_IMPORTED_MODULE_0__","_print__WEBPACK_IMPORTED_MODULE_1__","cloneElement","clone","childNodesArray","ignoreElements","clonedChild","scanStyles","tagName","drawImage","isHtmlElement","print","printFrame","printableElement","send","_browser__WEBPACK_IMPORTED_MODULE_2__","imageStyle","fullyQualifiedSrc","imageWrapper","_browser__WEBPACK_IMPORTED_MODULE_0__","_modal__WEBPACK_IMPORTED_MODULE_1__","_pdf__WEBPACK_IMPORTED_MODULE_2__","_html__WEBPACK_IMPORTED_MODULE_3__","_raw_html__WEBPACK_IMPORTED_MODULE_4__","_image__WEBPACK_IMPORTED_MODULE_5__","_json__WEBPACK_IMPORTED_MODULE_6__","printTypes","fallbackPrintable","gridHeaderStyle","gridStyle","onError","onIncompatibleBrowser","modalMessage","documentTitle","repeatTableHeader","base64","onPdfOpen","honorMarginPadding","honorColor","show","usedFrame","srcdoc","open","jsonToHTML","columnSize","stringData","Modal","modalStyle","printModal","contentDiv","closeButton","messageNode","getElementsByTagName","_print__WEBPACK_IMPORTED_MODULE_0__","_functions__WEBPACK_IMPORTED_MODULE_1__","createBlobAndPrint","localPdf","Blob","createObjectURL","bytesArray","atob","location","req","XMLHttpRequest","responseType","statusText","response","Print","iframeElement","printDocument","contentWindow","contentDocument","images","loadIframeImages","then","performPrint","promises","image","href","loadIframeImage","all","pollImage","naturalWidth","complete","0","bracketFolding","pairs","lineText","findOpening","tokenType","pass","findRange","nextOpen","nextClose","hasImport","semi","startLine","hasInclude","_getOptionsFromElement","_getOptionsFromElement2","_renderers","_renderers2","getRenderProperties","querySelectedRenderProperties","returnArray","HTMLCanvasElement","HTMLImageElement","newCanvasRenderProperties","SVGElement","InvalidElementException","selector","querySelectorAll","imgElement","toDataURL","_createBlock","_component_main_process","_createVNode","_component_a_modal","_ctx","isTranslation","centered","destroy-on-close","closable","footer","similarSteps","onCancel","cancelTranslation","_component_AddTranslation","showSimilarStepsModal","isTranslationEdit","_component_SimilarSteps","showProjectorRegionModal","closeProjectorModal","_component_Devices","showStepTimeModal","isStepTimeExist","_component_StepTime","showTaskParamsModal","_component_TaskParameters","showRegionDefinitionModal","$event","_component_RegionDefinition","showUploadMediaModal","_component_UploadStepMedia","showModelVersionsModal","_cache","$data","SHOW_MODEL_VERSIONS_MODAL","_component_ModelVersions","_component_a_row","class","_component_a_col","xs","sm","md","lg","_component_AddNewTask","onOnCancelEditTask","resetProcessState","_component_TaskList","_createElementBlock","_hoisted_1","_component_ModelVersionTable","_createElementVNode","_component_HeatMap","heatMapConfig","show-close-btn","onClose","_Fragment","_component_a_typography_title","modelChoice","_component_a_table","bordered","data-source","$options","sortedModelVersionList","$setup","pagination","emptyText","_withCtx","_component_laptop_outlined","_hoisted_2","bodyCell","_$options$selectedMod","_hoisted_3","editableData","_hoisted_4","_component_a_input_group","_component_a_textarea","description","allow-clear","_component_a_button","onClick","cancelEdit","icon","_component_close_circle_outlined","_hoisted_5","_toDisplayString","formatDate","_component_a_radio","checked","modelButtonDict","isEdit","onChange","handleChangeModel","isNewSelectedModal","_hoisted_6","loading","isUpdatingModelVersion","isUpdatingAssociateModelVersion","saveRecord","_component_check_outlined","isDefaultModelChange","cancelSelectDefaultModel","_hoisted_7","editRecord","_component_edit_outlined","_component_a_popconfirm","ok-text","cancel-text","selectedModelVersion","onConfirm","toggleDelete","_$options$selectedMod2","danger","_component_delete_outlined","CloseCircleOutlined","CheckOutlined","EditOutlined","DeleteOutlined","LaptopOutlined","HeatMap","setup","heatMap","confusion_matrix","wandbJson","modelChoiceId","mapGetters","taskAssociatedModelVersion","modelVersionsList","model","_Object$keys","currSelected","sorted","is_deleted","model_type","dayjs","date","isAfter","selectedModel","mounted","setModelTypeId","unmounted","mapActions","ModelTypeService","fetchModelTypes","modelChoiceObj","recordId","editedRecord","modelVersionId","updateModelVersion","handleSaveSelectedModel","modelId","modelVersion","updateTaskModelVersion","isEmptyDict","dict","wandb_history","showMatrix","_this$modelVersionsLi","cols","_","ModelVersionTable","mixins","spaceMixin","newSelectedModel","closeModal","modalType","_component_a_tabs","_component_a_tab_pane","tab","_component_projector_tab","_component_barcode","_component_signal_tower_tab","_component_OPCTab","showStreamModal","wrap-class-name","get-popup-container","handleStreamModalClose","_component_WebRtc","serial-number","task-list","device-setting-url","deviceSettingUrlProjector","model-id","task-name","taskName","current-task","currentTask","projector","projectorStatus","ice-options","iceOptions","$props","_component_a_tag","color","headerCell","_record$uploading","_record$uploading3","_record$downloading","display_name","inference","_component_cloud_upload_outlined","_record$uploading2","_component_a_progress","percent","progress","_hoisted_8","_hoisted_9","_component_a_space","block","showStream","_component_a_select","selectedScreen","screens","onSelect","selectScreen","isLoadingRefreshScreens","sendSQSMessageForRefreshScreens","autoplay","playsinline","muted","controls","showConfirmDeleteRegionModal","onOk","handleOkDeleteModal","handleCancelDeleteModal","_component_ExclamationCircleOutlined","isLoading","_component_spinner_component","iceState","iceStateMessage","task_id","show-search","filter-option","filterOption","onChangeTask","isTaskDetailsLoading","_renderList","stepsList","step","_ctx$currentStepList","_normalizeClass","currentStepList","includes","substepIndex","selectedStepIndex","ifStepSelected","isDisableSteps","onClickStep","isPastingTrue","_component_a_spin","copyStepRegions","_component_CopyOutlined","isStepSelected","isStepCopied","sourceStepIndex","pasteStepRegions","_component_SnippetsOutlined","_component_v_stage","stageSize","_component_v_layer","_component_v_image","imageConfig","rectangles","_component_v_rect","toJSON","arrows","arrow","_component_v_line","closed","texts","_component_v_text","circles","circle","_component_v_circle","_hoisted_10","_component_joystick_component","joystickAndMovementButtonsDisable","joystick-and-movement-buttons-disable","selected-shape-type","selectedShapeType","onHandleButtonEvents","handleButtonEvents","onHandleMoveButtonEvents","handleMoveButtonEvents","onUnitDirection","unitDirection","_component_a_card","_component_a_input","objectDisplayName","isRegionSelected","renameObject","_component_a_list","item-layout","objectList","_hoisted_11","_component_a_dropdown","_component_a_menu","_component_a_menu_item","addShape","Region","_component_custom_icon","$customIcons","RegionIcon","Arrow","_component_ArrowRightOutlined","_component_a_upload","accept","file-list","fileList","multiple","before-upload","beforeUpload","custom-request","handleAddImage","handleRemoveImage","show-upload-list","_component_FileImageOutlined","_component_FileGifOutlined","Text","_component_FontColorsOutlined","_component_DownOutlined","renderItem","_component_a_list_item","ifRegionSelected","selectStepRegion","_hoisted_12","_component_a_tooltip","placement","_hoisted_13","_component_a_checkbox","outline","updateRegionOutlineCheck","ProjectorImage","Gif","_hoisted_14","Circle","trigger","colors","assignColorToShape","_hoisted_15","_hoisted_16","_normalizeStyle","_component_bg_colors_outlined","scaleShape","_component_ZoomInOutlined","_component_ZoomOutOutlined","toggleShowConfirmDeleteRegionModal","selectObjectToEdit","selectedShapeName","togglePlayGif","play","_component_PauseCircleOutlined","_component_PlayCircleOutlined","_component_a_list_item_meta","_hoisted_22","_hoisted_23","handleDeselect","saveRegionButtonEnable","regionSaveLoading","saveRegions","clearClipboard","TYPES","rectangle","gif","handleTransform","groups","objToUpdate","rotation","checkOutofBounds","isOut","findNodeByName","stage","$refs","getStage","findOne","checkOutofBoundsExpansion","handleNodeButtonEvents","heightCheck","widthCheck","getAbsolutePosition","handleNodeMoveButtonEvents","shapeGroup","joystickButtons","dclass","propsData","arrowDirections","movementButtons","_resolveDynamicComponent","_mergeProps","ref_for","$emit","handleButtonDirection","movementUnit","joystickButtonsMixin","buttonOutwards","emits","ExclamationCircleOutlined","UpOutlined","DownOutlined","LeftOutlined","RightOutlined","PlusOutlined","MinusOutlined","ArrowLeftOutlined","ArrowRightOutlined","ArrowUpOutlined","ArrowDownOutlined","PoweroffOutlined","ReloadOutlined","ShapeMethodExtensionsInterface","toJSONExt","deepCopyExt","shape","scaleExt","moveShape","units","resizeShape","shapeClone","rotateShape","angle","Shape","super","vertical","horizontal","rotate","scale","scaleWidth","scaleHeight","scaleDirections","addColor","directions","movementDirections","directionLower","setOutline","Rectangle","screenWidth","screenHeight","scaleDirection","calculateMidPoint","midx","midy","points","maxAnimationValue","linePoints","calculateOffset","drawFirstLine","arrowHead","startX","startY","lengthConstant","ax","ay","bx","by","cx","cy","indexJump","lastPoints","firstLineStart","firstLineEnd","pathBack","updatePoints","newPoints","point","updateScale","toFixed","togglePlay","radius","Image","s3Key","fontFamily","ShapeFactory","shapeReferences","joystickComponent","SpinnerComponent","FileImageOutlined","BgColorsOutlined","ZoomInOutlined","ZoomOutOutlined","FontColorsOutlined","CopyOutlined","SnippetsOutlined","FileGifOutlined","PlayCircleOutlined","PauseCircleOutlined","objectsMarkingMixin","required","taskList","deviceSettingUrl","Boolean","message","success","deleteSelectedObject","uploadFile","sliderValue","AddedImageConfig","imageObj","projectEnabled","isEditName","localStorage","getItem","currentRegion","rtcConfiguration","taskStaticObjectsList","video","deviceMac","currentObjectIndex","animation","pressTimer","pressInterval","mediaConnection","simpleRTC","dataChannel","fileChannel","toastCount","unitValue","fileUploading","showProgress","uploadProgress","downloadProgress","targetStepIndex","showDownloadProgress","filterObjectFromList","updateSlider","animationValue","currentObj","updateCurrentRegionSelectedShape","addSelectShapeToCurrentRegions","sendDataThroughChannel","source_step","target_step","resp","TaskObjectService","copyRegions","getTaskObjectList","fill","toggleProjector","applyUnits","warning","doesNameExist","addLongPressToJoystickButtons","btn","addLongPressToButton","addLongPressToMovementButtons","interval","onmousedown","longPressButton","onmouseup","cancelLongPress","onmouseout","setPressInterval","deleteObject","renderExistingStaticObjectList","objList","stepObjectList","createShape","finalObj","createGroups","stepIndex","stepType","getCurrentRegions","currentRegions","shapeTypes","shapeType","entries","getProjectorRegions","isLt2M","task_name","newShapeID","newShape","saveFileViaPresignedURL","currentShape","shapeProxy","newFileList","updateStepRegions","region","WebRtc","getRTCServers","RtcConnection","fcmToken","connectToRemotePeer","MediaRTCConnection","setIceState","getJSONChannel","getFileChannel","onmessage","updateItemProgress","sendFileToRemotePeer","reject","fileSize","readEventHandler","byteLength","chunkReaderBlock","_offset","_file","blob","readAsArrayBuffer","fileName","readyState","httpClient","parseTaskList","task_detail","task_input","pause","stop","resetToastCount","timeout","markStepRegionAsSelected","regions","selectedShape","allRegions","regionName","toBase64","readAsDataURL","createAWSFormData","awsformData","FormData","fields","append","fileObj","getProjectorFileUploadURL","uploadFileToS3","url","_data$get","headers","Accept","axios","onUploadProgress","progressEvent","loaded","total","itemName","hasOwn","bucket","S3Service","getPresignedPostURL","updatePlayForInference","currentStepRegions","shapes","cordinates_of_regions_for_projector","saveNewObjects","updateProjectorRegionsJson","updateProjectorRegions","created","$route","device_id","gifs","layer","getLayer","Konva","Animation","CloudUploadOutlined","CloseOutlined","devicesSettingsDict","devicesStatusDict","rtcServerThreadStatus","streamSignal","getActiveDeviceSettings","updateDeviceSettingRecord","showStreamingModal","useDeviceSettings","handleTrace","recordInference","current_projector_screen","updateCurrentScreen","daysOptions","total_projector_screens","fcm","sendMessageToSQS","showSignalTower","hideSignalTowerComponent","_component_signal_tower","selectedDeviceSerialNumber","showSignalTowerComponent","xl","tower_host","checkBox","updateTowerHost","selectedSignal","updateSignalTower","signal_tower","_component_a_select_option","labels","signalTower","_component_a_switch","enable","buzzer","_$data$colors$$data$s","_$data$signalTower","backgroundColor","saveSignalConfig","isSelectedSignal","11111","22222","33333","44444","55555","66666","77777","88888","99999","missing","clear_missing","idle","selectedDevice","configureSignalTower","sortedData","deviceSettingsURL","getDeviceSettingUrl","deviceSetting","isValidIPv4","ip","toggleEnable","signal_input","updateBlock","showDevicesPage","transformSignalTowerSetting","transformedSetting","_this$selectedDevice","updateDeviceSetting","_this$selectedDevice2","tower_settings","SignalTower","showOPCTags","hideOPCDeviceTagComponent","_component_OPCTagsTab","showOPCDeviceTagComponent","_component_AddTag","onRefresh","refreshTags","tags","isTagsLoading","previousData","tag_name","isTagUpdating","tag_id","editable","_component_a_form_item","max-tag-count","trigger_type","triggerChoices","isTriggerDisabled","handleSave","handleCancel","_component_close_outlined","handleEdit","_component_form_outlined","deleteTag","tagId","IsAddTagButtonLoading","isAddTagDisabled","onAddTag","errorMessage","resetTagId","addOPCTag","isInteger","Device","serial_number","org","addTag","IoTService","_error$response","OpcTagsColumn","OpcTriggers","AddTag","FormOutlined","toastTimeoutDuration","getTagList","toggleTriggerDisabled","resetFormToPreviousState","removePreviousData","addTriggerState","previousTriggers","currentTriggers","addTriggers","deleteTriggers","updateTag","isDeviceOrTaskEmpty","_this$device","_this$device2","deviceId","getOPCTagsByTaskAndDevice","disableTagEdit","deleteOPCTag","OPCTagsTab","_component_QrcodeVue","task_json","inference_json","isLoadingStepList","barcode","barcode_id","enableUpdateButton","enableUpdateButtonForBarcode","updatedQrCode","renameBarcode","inputValue","newQrCode","addBarcode","_component_plus_outlined","showBarCode","vueBarcodeOptions","toggleBarcode","handleRemoveBarcode","printQRCode","_component_MenuOutlined","deep","immediate","$el","generate","$slots","handleDDSpace","MenuOutlined","QrcodeVue","Barcode","VNodes","vnodes","useToast","current_task","task_list","showUploadModal","stepBarcodes","allbarcodes","changeFound","selectedBarcode","showForm","selectedRowData","addNewBarcode","updateBarcode","newBarcodeValue","updatedBarcodeValue","usedBarcodes","el","tempBarcodes","barcode_value","getAllbarcodes","getTaskData","pollingRecords","indexToBarcodeMapping","step_index","new_barcode_value","updateBarcodeValue","enableAddButtonForBarcode","enableAddButton","createQrCode","addBarcodesToSteps","step_barcode","ele","BarcodeService","fetchBarcodes","fetchAssociateBarcodes","getAssociateBarcode","handleSelectedBarcode","updateAssociateBarcodes","createAssociateBarcodes","html2canvas","qrId","removeAssociatedBarcode","deleteBarcode","barcodelengthError","errorBarcodeExists","dismiss","createCustomBarcode","dataSource","handleTableChange","selectedTag","deepClone","updateModalVisible","_component_update_tag_modal","tag-address-tree","tagAddressTree","onRefreshTagList","refreshTagList","activeKey","currentTab","_component_tag_parameters_tab","tagModalVisible","_component_task_parameters_tab","subStepOptions","taskModalVisible","validateTagData","tagData","trigger_on","trigger_params","step_idx","onCompletion","comparator","threshold","_component_a_form","label-col","wrapper-col","_component_a_tree_select","tree-data","treeData","onCheck","checkedItem","selectedItem","onExpand","expandItem","has-feedback","triggerOn","allowClear","handleTriggerChange","triggerParams","selectedKey","addKeysInDataTree","extractedTitles","deviceOptions","isFetchingDevices","isFetchingTasks","allTasks","getSortedDeviceForTag","taskDetail","stepName","setterCallback","processes","text_lines","substeps","steps","trim","TagParametersTab","TaskParametersTab","fetchTaskDetails","clearTaskDetails","newVal","taskDetails","setTaskNameAndProcess","getTaskDetails","ss","TagsOutlined","UpdateTagModal","SearchOutlined","searchText","tagCount","currentPage","page","visibleAddTagModal","FcmMixin","defineComponent","SignalTowerTab","ProjectorTab","OPCTab","orgName","activeDevicesLocal","activeDevicesSettings","activeDevicesStatus","enablePatliteTower","activeDevicesdetails","getActiveDevicesDetails","tempActiveDevicesdetails","getDeviceDetails","getSettingsOfActiveDevices","getActiveDevicesStatuses","getStatusOfActiveDevices","staticObjectName","handleAddRegion","setNewObjectConfigToDraw","_component_a_typography","textColor","imageLoading","indicator","onMousedown","handleStageMouseDown","onTouchstart","_component_v_group","_$data$groups$labels$","onTransformend","_component_v_transformer","_component_a_result","_component_exclamation_circle_outlined","_component_v_contextmenu","_component_v_contextmenu_item","selectedShapeKey","spinning","actual_name","handleCloseRegionDefineModal","saveAnnotation","annotationSaveLoading","randDarkColor","lum","rgb","getRectangleConfig","coordinates","defaultCords","stroke","strokeScaleEnabled","startPointX","startPointY","strokeWidth","freeDrawing","getCircleConfig","pointName","assignObjectPropsToConfig","is_static","cordinates_of_static_object","actual_id","assignRectangleUniqueName","createNewRectangleConfig","rectangleConfig","scaleRectangleDimension","createNewCircleConfig","flag","parseStringCoordsToObj","stringCoords","updated","createNewTextConfig","fontStyle","normX","normY","normalizeDimension","roundObjectValuesToDecimal","parseFloat","calculateRectangleMidPoint","getRectangleBottomRight","normalizePolygonPoints","normPoint","filterRectanglePropsFromObject","isObjectStatic","isDraggable","isObjectMoved","initialObject","object2","sameObjectIDs","obj1","obj2","nestCoordinates","dimensions","returnObj","removeCoordinates","hasCoordinates","isSameObject","flattenNestedCoordinates","isObjectDisabled","mapStaticObjects","newObject","modelObject","getObjects","ordering","imageToMark","imageUrl","loadImage","setTaskImageMarkingUrl","getProjectorObject","createLabelForPolygonConfig","polygonPoints","min_x","min_y","imageDimensions","getPolygonsAnnotations","polygons","polygonsList","polygon","normPoints","is_seg_track","createPolygonsFromExistingObjects","existingObjects","newPolygonsGroups","bucket_name","object_path","path_to_image","VideoService","getPresignedUrl","presigned_url","rejectF","image_url","getImageUrlFromS3","naturalHeight","createRectLabelGroup","lbl","createCircleLabelGroup","plane_points","planePoints","planeColor","plane_color","circle_index","createRectanglesFromExistingObjects","newGroups","addCircleFromObjects","newCircleName","newCircleObj","updateTransformer","_this$$refs","transformerNode","transformer","getNode","selectedNode","nodes","updateSize","isAllNodeSelected","selectedShapeNames","shapeName","textToUpdate","rectToUpdate","_this$getLabelVertica","updateShapeSizeTransformer","getLabelVerticalCoordinate","getDefaultLabelCoordinate","_this$getLabelVertica2","newWidth","newHeight","defaultSize","negativeAxis","defaultAxis","labelVerticalGap","currentLabelSize","pointname","planeName","updateCirclePoints","getAnnotations","tempAnnotationsGroups","annotationList","serializedRectangle","serializeNodeToObject","annotation","OBJECT","dimensionInJson","calculateNodeCoordinates","ht","wt","sc","rectWidth","rectHeight","midpoints","bottomPoints","beforeMount","setImage","existedObjectIds","deleteObjectIds","Set","updatedStaticObjectIds","isMarking","currentRects","oldRects","newColor","newLabels","SET_SHOW_REGION_DEFINE_MODAL","setUpdatedObjectState","taskRegionMarkingImgUrl","imgUrl","getImageForObjectsMarking","isExist","currentLabel","_e$target","_e$target$getStage","_e$target2","_e$target$getParent","_e$target3","clickedOnTransformer","getParent","handleResizeTransformer","resizeEnabled","rotateEnabled","getObjectListFromState","localeCompare","sensitivity","existingStaticObs","existGroups","step_id","deleteIds","getDeletedObjects","deleteObjects","annotations","staticObjects","newAnnotations","getNewCreatedObjects","updatedAnnotations","getUpdatedObjects","updateObjects","setStateOnSave","_staticObjects$filter","_staticObjects$filter2","_this$updatedStaticOb","saveCreatedRegions","updateRegions","getTaskStaticObjectsList","deleteRectKey","deleteLabelKey","labelId","ids","deleteRegions","overflowY","ghost","handleAddSimilarStepsToGroup","checkedSteps","grid","taskProcesses","isUpdatingSimilarSteps","process","substep","_$data$stepsToIndexMa","_$data$stepsToIndexMa2","stepsToIndexMapping","handleChange","updateSimilarSteps","okButtonProps","cancelButtonProps","updateSimilarStepsModalState","COLORS","similarStepsList","currentGroup","initializeState","populateState","isMarked","ifConcurrentSteps","every","ifStepsMarkedBefore","tempGroup","similarStepsDict","_component_a_typography_text","avgCycleTime","handleAvgCycleTimeChange","isUpdatingStepTime","processIndex","_component_Process","deleteStepsTime","SET_SHOW_STEP_TIME_MODAL","addStepTime","isStepTimeEdit","strong","_component_Step","body-style","_component_Substep","process-index","step-index","substep-index","stepAvgTime","handleStepAvgTimeChange","changeStepAvgTime","Substep","Step","Process","isDisabled","stepTime","changeAvgCycleTime","showConfirmModal","cancel-button-props","ok-button-props","handleCheckText","isError","taskDeleteMsg","closeIcon","showAssociateRegionModal","toggleAssociateRegionModal","_component_AssociateRegion","show-associate-region-modal","selected-step-for-region","selectedStepForRegion","selected-step-index","onToggleAssociateRegionModal","showObjectModal","handleCloseModal","html-type","isSavingObjectDetectionRule","layout","onFinish","handleSaveObjectDetectionRule","non_static_object","taskObjectOptions","handleAddObjects","onDeselect","handleRemoveObjects","_component_ObjectDetection","extra","taskMenuItems","_withModifiers","_component_more_outlined","checkTaskSelection","showUpdateButton","updateSteps","SET_SHOW_TASK_PARAMS_MODAL","SET_SHOW_OD_SETUP_MODAL","upsertTranslation","translationDetails","_component_plus_circle_outlined","SET_SHOW_PROJECTOR_REGION_MODAL","_component_FundProjectionScreenOutlined","handleSelectTask","selectedLang","changeSelectedLanguage","translationLanguage","hoverable","isFetchingTaskDetails","getTaskName","outlined","isUpdatingTaskFields","updateStarField","isTaskStarred","_component_star_filled","_component_star_outlined","isFetchingTaskStatus","onClickEditTask","_component_SettingTwoTone","spin","_ctx$stepToAttributes","_ctx$stepToAttributes2","showBarCodeIcon","_component_QrcodeOutlined","stepToAttributesMapping","isNegative","isOptional","_ctx$stepToAttributes3","_ctx$stepToAttributes4","handleChangeOptionalStepChange","_ctx$stepToAttributes5","_ctx$stepToAttributes6","handleChangeNegativeStepChange","primaryColor","secondaryColor","renderExistingObjectList","projectorRegions","getProjectorImageForObjectsMarking","newData","getProjectorRegionCoordinates","showODSetupModal","after-close","currentStep","_component_a_steps","stepsToPerform","_component_a_step","handlePageChange","gotoPreviousStep","_$setup$stepsToPerfor","prevButton","_$setup$stepsToPerfor2","handleClickNextStep","nextButton","component","pipeline-step","onNextStep","gotoNextStep","onHandleDone","handleDone","onUpdateStep","updateStep","fullPath","handleTrainModel","$router","path","entity","compact","newEntity","onPressEnter","createHandler","listData","is_3d","editingEntityId","onClickEditEntity","isHandAndFaceObj","_component_EditOutlined","editableObj","changeEntity","endHandler","_component_EnterOutlined","_$data$planeThreshold","_$data$planeThreshold2","plane_id","addPlaneToObject","planeRegions","plane","planeThresholdEditEntity","plane_threshold","changeThreshold","addonAfter","setObject3D","deleteHandle","outline_color","handleChangeObjectColor","onKeyup","handlePressEnter","handleAddPlane","planeLoading","_createSlots","onClickPlaneEditEntity","handleUpdatePlaneEntity","updatePlaneLoading","handleDeletePlaneObject","objName","colorsConfig","EnterOutlined","objects","staticRegions","default_objs","oldEntity","oldPlaneEntity","darkRedColor","handleAddEntity","handleUpdateEntity","handleDeleteEntity","updateTaskObjectsAndStaticRegions","addDefaultObjectsForModelAD","getTaskPlaneObjectsList","setPrevGroups","setPrevPolygons","planeObjectsList","updateTaskObject","objectId","objectData","setOldEntity","taskObjects","setOldPlainEntity","updateValue","isEntityExists","entityExist","isAddingDefaultObjects","isValidPattern","listOfStaticRegions","updatedObject","sortObjects","updateObjectOutlineColor","_item$outline_color","hands","faces","is_new_obj_added","objectExistInTaskObjects","addObject","handsObject","deleteTaskObject","getTaskObjects","isEntityDisabled","object_name","addTaskObject","taskObj","getRandomColor","listOfObjectAndStaticRegions","updatedListEntity","getRandomInt","isTask3d","createNewPlane","tolerance","updatedName","updatedEntity","addPlaneObject","deletePlaneObject","mainComponentStyle","cardBodyStyle","loadingImages","isBulkDelete","selectedImage","_component_arrow_left_outlined","getFileName","selectAllImages","handleSelectAllFiles","imageFileList","totalImagesForAnnotation","getSelectedImagesCount","searchImage","onInput","debouncedSearch","_withKeys","_component_search_outlined","_component_a_pagination","totalImagesCount","currentPageForImage","pageSizeForImage","show-total","page-size-options","onShowSizeChange","handlePageSizeChange","imageSpinner","tip","_component_DrawObjects","image-path-in-bucket","requestedImagePath","image-list","imagesForAnnotation","task-id","annotation-file-name","requestImageAnnotationName","annotation-file-path","requestImageAnnotationPath","image-id","requestedImageId","image-obj","image-index","currentImageIndex","total-results","current-page","page-size","start-index","startIndexCache","end-index","endIndexCache","presigned-url-list","presignedUrlList","onCloseModal","onNextImage","handleImageChange","onPrevImage","onUpdateAnnotationPath","updateAnnotationPath","listView","onDblclick","openAnnotationModal","updateSelectItem","staticImage","path_to_annotations","selectImage","_component_a_badge_ribbon","_component_preview_image_card","presignedUrl","getImagetItemIndex","select-all","get-file-name","open-annotation-modal","delete-annotation","deleteAnnotation","onUpdateSelectAll","updateSelectAll","reloadImages","_component_reload_outlined","handleChangeView","_component_FolderViewOutlined","shouldDeleteDisabled","handleDelete","_component_DeleteOutlined","userRole","fileUpload","_component_UploadOutlined","overflow","annotatedObjectList","handleCancelUploadModal","isUploadingFile","handleUploadImageFile","fileUploadProgress","uploadingZipDetails","maxCount","handleUploadFile","_component_upload_outlined","fileUploadStatus","activeStatus","failedFiles","_component_ShotcutKeysModal","open-modal","shortcutModal","displayShortcutModal","activeObjectArea","onSubmit","annotate","annotationObjectList","default-active-first-option","onSearch","handleSearchChange","notFoundContent","creatingTask","isObjectFetching","isAddingRectangle","_component_border_outlined","prevImageButtonDisabled","isApplyPreviousLabel","isHistoryApplied","renderLastExistingObjectList","_component_HistoryOutlined","handleLayerZoomIn","layerScale","handleLayerZoomOut","_component_a_popover","isPopoverVisible","copySelectedShapes","handleSelectAll","_component_SelectOutlined","copiedShapes","pasteShapes","handleLayerFitWindow","_component_FullscreenOutlined","handleShortcutInfo","_component_InfoCircleOutlined","isAnythingUpdated","saveCurrentImageAnnotation","_component_SaveOutlined","changeImage","_component_ArrowLeftOutlined","nextImageButtonDisabled","deleteShow","layerStyle","handleStageClick","onContextmenu","handleDeleteMenuShow","isDrawing","handleLayerMouseDown","onMouseup","handleLayerMouseUp","onWheel","handleWheel","onMousemove","handleLayerMouseMove","dragBoundFunc","layerDragBoundFunc","onDragstart","handleGroupDragStart","onDragmove","onGroupDragMove","onDragend","handleGroupDragEnd","handleTransformDisplay","handleOpenFloatingBoat","handleTransformEnd","newRect","transformerConfig","_component_ObjectSettings","annotateObjects","onUpdateChecked","updateChecked","onChangeLabelColor","changeLabelColor","onChangeLabelSize","changeLabelSize","onUpdateCurrentObject","updateCurrentObjectName","labeledObjectList","onObjectSelect","_component_file_list","imageList","imageIndexList","onLoadImage","loadImageRange","onRemoveEvents","removeEvents","onSubscribeEvents","subscribeEvents","updateImageAnnotation","apiHelper","updateObjectsCount","updateObjectsCoordinates","put","uploadObjectFile","annotation_id","getImageAnnotation","fileDataList","searchFile","handleFileInputBlur","handleFileInputFocus","handleInputChange","handleClick","inputFocus","searchLowerCase","newIndex","$nextTick","scrollToSelectedItem","selectedElement","settingsItemList","greyBorder","updateLabelColor","_component_a_input_number","handleFontSizeChange","initialLoading","isChecked","staticFrame","handleMarkStaticChanged","getTaskODSteps","is3D","shortcutKeys","insensitiveKey","Delete","click","hold","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","shortcutKeysData","command","TransformerConfig","keepRatio","ignoreStroke","flipEnabled","enabledAnchors","ObjectSettingsConfig","_this$objectList","updateStaticFrame","newList","newName","annotateSelect","taskStaticAnnotationImage","_this$imageObj","annotation_image_id","setTaskStaticImage","displayModal","openModal","FontSizeOutlined","BorderOutlined","HistoryOutlined","HighlightOutlined","SelectOutlined","FullscreenOutlined","SaveOutlined","FileList","ObjectSettings","ShotcutKeysModal","LoadingOutlined","isNewLabel","isNewRectAdded","isAnnotateObjectChecked","selectedShapes","showSaveButton","newLabel","debounceTimeout","generatingImageEmbedding","disableDelete","selectedShapeId","imageToBeAnnotated","loadingSemtrack","currentObjectName","currentObjectId","img_idx","debouncedChangeImage","temp_groups","scaleBy","isWheelScroll","isLayerDragging","annotationCache","imagePresignedUrl","currentRectName","imageIndex","isCachingImage","isCachingAnnotation","objectName","keyHandlers","initialGroupPosition","initialRectPositions","uploadQueue","annotateObjectStroke","cardAntd","searchValue","totalResults","nonStaticObjects","objectStrokeColor","resetInitState","updateLayerZoom","preloadImageandAnnotation","updateImageConfig","updateStats","ResizeStageObjects","cardCover","normalizeRectangle","updateStageAndImageSize","deNormalizeRectangle","updateLabelSize","removeRuntimeObject","createGroupClone","cover","normalizeDim","yAxis","xAxis","_event$evt","evt","handleFloatingBoatPosition","_currentObj","_this$annotate","_obj$name","_this$annotate2","createObject","objectToCheck","addObjectInLabeledList","resetRuntimeObject","startsWith","handleKeyDownEvents","handlePreviousImage","handleNextImage","newTransformer","Transformer","startx","starty","labelX","labelY","newGroupPosition","initialPosition","resetTransform","layerWidth","layerHeight","rectIndex","groupWidth","groupHeight","updateGroupItemsCoordinates","_e$key","userKey","_e$key2","updateLayerBounds","resetLayerScale","handleDeselectAll","shape_name","transformers","batchDraw","shapeAttrs","copiedShape","moveSelectedNodesup","moveSelectedNodesdown","moveSelectedNodesleft","moveSelectedNodesright","_e$evt","oldScale","mousePointTo","getRelativePointerPosition","newScale","_x","_y","drawFreeRectangle","isCompleteAnnotation","getCurrentRectangleFromLayer","updateRectPosition","resetObjectDrawing","_layer$children","_rect$attrs","_rect$attrs2","shouldRemoveRectangle","isDrawingRectangle","shouldRemoveCurrentRectangle","assignStrokeColor","isStrokeExist","deleteRectangle","debounce","wait","getCanvasElement","setPrevShapes","_this$prevGroups","currRects","prevGroups","updateGroups","isAnnotated","annotationFilePath","getObjectName","imagePathInBucket","image_index","my_index","cacheonSelect","prevAnnotation","taskObjectList","presigned_url_annotation","rectObjects","_this$annotationCache","_labeledAnnotations$f","labeledAnnotations","getObjectListFromS3","selectObject","_this$annotationCache2","_labeledAnnotations$f2","getObjectListFromS3History","_this$labeledObjectLi","s3Objects","existingGroups","setObjectColor","initializeLabeledObject","updateRectProperties","annotateObject","hidetoast","currentImageId","imageId","image_path","file_path","file_name","getAnnotationNamePath","getPayloadForUploading","fileUploadResult","DetectorService","getAnnotationPathForState","catch","pathSplit","imageFileName","fileAsJSON","generateBulkImageS3Url","endIndex","annotationPromises","getAnnotationFromUrl","change_index","image_list_length","cacheForwardImages","cacheBackwardImages","image_keys","start_index","end_index","fetchNewImages","first_index","removeStart","object_keys","removeOldKeys","annotation_keys","calculateIndexes","updateCache","shouldUpdateCache","pre_image_keys","applyPresignedUrls","resetCaches","objectPath","deleteNode","trySelectNextShape","_e$evt2","getPointerPosition","selectedObjectName","getObjectTargetName","showDeleteContextMenu","_e$target4","getSelectedObjectName","_e$target5","_e$target6","_e$target$parent","idText","groupChildren","_rect$attrs3","deleteContextMenu","_e$evt3","_e$evt4","handleMouseMoveDrawRectangle","currentRect","layerNode","layerRect","defaultBottomRightX","defaultBottomRightY","floatingCardWidth","floatingCardHeight","finalX","finalY","floatingCard","_this$$refs$annotateS","pointY","cacheImages","resetChangeImage","shouldUpdateFile","getAnnotation","uploadAnnotationToS3","annotationObject","_this$getLabelVertica3","handleDoubleClick","urlLoading","_component_a_divider","handleSelectAllChange","_component_a_card_meta","CheckCircleOutlined","_this$imageObj2","_this$imageObj3","AppstoreOutlined","BarChartOutlined","UploadOutlined","FolderViewOutlined","DrawObjects","PreviewImageCard","openObjectAnnotateDialog","user","isPolling","searchDebounce","longRunningTaskId","assignImageUrl","markStatic","markStaticImageId","getAnnotatedObjectCount","newValue","handleGetImagesForAnnotation","displayStaticSwitch","foundObj","flexGrow","overflowX","getActiveUserRole","resetAnnotationImagesList","new_regions","getNewlyAddedObjs","obj_exists","updateStaticImageList","removeStaticImageCoordinates","updateImageFileList","getMinMaxIndex","search_image_list","minIndex","maxIndex","singleIndex","temp_image","getSearchedFiles","_this$presignedUrlLis","_this$presignedUrlLis2","_this$presignedUrlLis3","indexMap","elementExist","tempAnnotaionImageList","setAnnotationImagesList","imageListWithIndex","_data$failed_files","bulkDeleteAnnotations","msgSuccess","failed_files","updateImageList","updateTaskStaticImageAndCoordinates","resetStaticImageAndCoordinates","resetSelection","addItemInImageList","tempAnnotation","setAnnotationImagesListCount","roles","support_user","isZip","endsWith","maxSizeInBytes","UploadFileHelper","originFileObj","uploadFileOnS3","createLongRunningTaskId","sendMessageToQueue","pollImageStatus","queueName","sqsMessage","long_running_task_id","SQSServices","sendSQSMessage","reloadImagesAfterUpload","initializeTimeout","startPolling","resetPolling","resetTimeout","fetchImageStatus","_data$details","_data$details2","_data$details3","details","files_not_uploaded","error_field","currentImageIndexChanged","openImageForAnnotation","number_of_examples","loadImagesForAnnotation","delete","presigned_keys","presigned_url_length","last_presigned_index","first_presigned_index","getCurrentIndex","setImageData","deleteImageAnnotation","toISOString","updatedAnnotationPath","temp_imgs","staticFrameExist","maskClosable","handleStep","chooseFrame","sortOrder","handleChangeSortOrder","_component_sort_descending_outlined","_component_sort_ascending_outlined","imagePage","pageSizeForImages","show-size-changer","handleSaveStaticImage","saveLoadedImage","removeImageFrameLoading","handleRemoveStaticImage","isStaticAnnotation","frameImagesLoading","_$data$selectedImage2","_$data$selectedImage","handleSelectImage","disableWebMenu","existedObject","SortAscendingOutlined","SortDescendingOutlined","oldObjectsIds","deleteObjectame","annotationSaveLIds","selectedShapeNoading","_this$deleteObjectIds","updateExistedObjects","setObjectList","setImageStaticFrame","resetObjectList","isObjectExist","getAnnotationImages","sorter","ascend","descend","getObjectsPaginated","recentObjects","appendUrlsInObjects","imageObjects","getObjectsUrls","filesUrls","fetchPresignedUrl","objId","getDefaultImage","_this$getDeletedObjec","updatedObjects","_this$updatedStaticOb2","updatedObjectIds","deletedObjects","ob","loadSelectedImage","deletePoint","_component_a_radio_group","selectedOperation","_component_a_radio_button","depthFrame","handleTransformCircle","isObjectFetched","_item$equation","_item$equation2","equation","_component_CheckOutlined","_component_ExclamationOutlined","_$data$groups","handleChangePlaneColor","_component_PlusOutlined","deleteLastPoint","_component_MinusOutlined","calculateEquation","calculatePlanceEquLoader","_component_CalculatorOutlined","resetPlaneEquation","_component_RedoOutlined","overlayCheck","overlayLoading","RiseOutlined","ExclamationOutlined","CalculatorOutlined","RedoOutlined","SettingOutlined","overlayImages","depthFrameUri","selectedCircleId","selectedCircleKey","zeroDepthPixel","prevPoints","prevPointType","generateDepthFrame","resetDepthFrame","getZeroDepthFrame","zero_depth_pixel","zero_depth_pixel_white_image_path","zero_depth_pixel_black_image_path","checkPointInsideGreyRegion","pointx","pointy","isZeroRegion","checkIfpointOverlapEachOther","checkPointsOverlay","key1","key2","ptx","pty","plainName","circleIndex","currentPointType","valx","valy","oldProps","valxy","minX","minY","maxX","maxY","DepthRegionService","getZeroDepthVideoFrames","handleZeroDepthFrameError","errMessage","frameType","planeId","error2","generatePresignedUrl","getOverlayImage","visualize_depth_path","error3","resetDepthVideoFrames","generateDepthVideoFrames","resetStateOnGenerateDepthFrame","selectedPlane","calculatePlaneEquation","depth_video","path_to_overlay_image","imageType","_url","convertDepthFrameToUrl","planeObj","plainPoints","planeData","updatedCircle","existGroup","taskPlaneObjectsList","indexToDelete","isDisable","generateAssociateObjectJson","loadingCustomCode","openPopup","verifiedSteps","addExpression","expressions","exp","staticObjectOptions","_component_CloseOutlined","removeOption","nonStaticObjectOptions","openCodeEditor","Translation","closePopup","_component_Editor","stepname","codevalue","customCodeByTask","onSaveCode","saveCode","isAnnotation","stepObjects","static_object","isStaticDisable","stepNotVerify","changeStaticObject","warningMsgs","isVerification","verify","handleVerifyStepObject","objectAnnotationModes","nonStatic","static","annotationObjectJson","currentAnnotationObjectMode","currentmode","pipelineStep","ODsteps","changeAnnotationStepsObjects","stepsDict","staticObj","multiObjSelect","setObjectWarning","showcode","_component_Codemirror","cmOptions","items","row-key","demo_code","compileStatement","compileStatus","full_trace","_component_CaretDownOutlined","showTrace","_component_CaretUpOutlined","fulltraceStatement","ae","cminstance","ready","emit","initialize","A","__vccOpts","le","ce","MergeView","mergeView","ue","de","pe","fe","he","u","$","innerText","S","ve","ye","ke","we","P","xe","$e","styleActiveLine","be","Ce","internalInstance","merge","editor","vnode","listenerEvents","keepCursorInEnd","Me","presetRef","reload","resize","containerWidth","containerHeight","reviseStyle","R","__name","globalOptions","originalStyle","unseenLines","expose","V","F","L","foldGutter","G","D","J","Z","ref_key","$attrs","onReady","styleInject","styleSheet","Codemirror","CaretUpOutlined","CaretDownOutlined","Table","functionName","compileCustomCode","statusCode","error_trace","StepObjects","Editor","is_verified","customCode","objectWarnings","changeAnnotationObjectTab","setAnnotationObjectJson","stepsJsonData","generateOldExpressionfromStepData","generateExpressionfromStepData","readCodeFromFile","parseCustomCodeTaskVise","substepNames","startParsing","filePath","readFile","getPayload","customCodeModule","getPresignUrl","validateExpressionOnSave","validation","expression","newExp","processName","subStepName","stepdata","generateStepsData","setStepsJsonData","upload","createStepsJsonData","validateAnnotationObjects","steps_data","stepExpression","rule_type","detectionType","expressionFound","verifiedStepDate","boolean_expr","rule_types","timeFormat","step_Index","substep_Index","is_bool","substep_index","verified","curr_expression","boolean_expression","operator_split_expression","temp_arr","rule_type_object_key","rule_type_name","objects_present","condition","threshold_value","prev_stepdata","detect_always","step_relations","key_steps","before_anchor","after_anchor","removeEmptyAnnotationObj","json","sIdx","_tempStepData$non_sta","tempStepData","removeEmptySteps","generateRelationObjectJson","small","_component_smile_outlined","setAnchorStep","dependents","setDependentSteps","setDependentStepOption","suffixIcon","setSimilarStepAssociation","setSimilarStepOption","substepRelation","addRelation","is_anchor","mark_associated_steps","last_anchor_index","associatedSteps","similarStepOption","dependentStepOption","similar_step","stepCount","subindex","generateRelationFromStepData","consecutiveSimilarSteps","isConsecutive","checkInnerConsecutiveSimilarStep","copySimilarSteps","indexOfSimilarStepValue","similarStepValue","relationSteps","isValueFound","uniqueSimilarSteps","indexsToBeUpdated","allSelectedValue","newValueIndex","deletedValue","oldSimilarSteps","oldSimilarStepsIndex","oldStep","oldStepindex","anchor_index","already_anchor","anchor_value","addAnchor","addVerifiedSteps","setAnchor","prevVal","associated_anchor_index","setStepsRelation","generateRelation","anchorRelation","similarRelation","dependent","keystep","similarstep","dept","previousRelation","substepName","dependentKeySteps","similarKeySteps","dependentKey","similarStep","handleSaveAnnotationObjects","_component_StepObjects","oldStepObjects","initExistingObjects","stepIdx","nonStaticObj","generateVerificationJson","updateObjDetectionRule","getAddObjData","objectToIdMapping","getRemoveObjData","obj_id","getObjectDetectinRuleData","verifyStepData","objToAdd","objToRemove","oldStatic","oldNonStatic","createTaskObjectRules","deleteMultipleObjects","verifySteps","stIndex","validateVerifyObjects","associate_verify_tag","updated_steps_data","curr_step_data","static_obj","non_static_obj","verify_step","removeUnVerifiedStepObjects","TrainModel","DefineObjectsAndStaticRegion","LabelObjects","LabelStaticRegions","LabelPlaneRegions","AssociateSteps","StepCompletionCheck","RelationSteps","setTaskSteps","gotoStep","afterClose","PlusCircleOutlined","FundProjectionScreenOutlined","QrcodeOutlined","AssociateRegion","SettingTwoTone","StarOutlined","StarFilled","ObjectDetection","MoreOutlined","longRunningTask","showBarcodeModal","rulesIndexMapping","selectedRule","associatedBarcode","selectedStepForBarcode","showBarcode","selectedObjects","unselectedObjects","idToIsStaticMapping","oldObjects","taskQuery","_this$taskName","_this$taskName2","charLimit","updatedAttributeSteps","negativeSteps","optionalSteps","associateBarcodes","allBarcodes","toggleBarcodeModal","SET_SHOW_UPLOAD_MEDIA_MODAL","getTaskObjectRules","fetchModelVersionsList","get3dSupportInfo","getTaskStepsMediaObj","setSelectedLanguage","fetchVirtualTasks","translationLang","setStepsToIndexMapping","setsubstepsToStepMapping","setStepToAttributesMapping","setIndexToStepsMapping","taskObjectRules","temp_step_to_object_list","stepObj","reduce_objects","query","updateQueryParams","populateTaskParams","fetchAllBarcodes","setListener","stepsInfoShow","setSelectedTask","preventUndo","_this$taskDeleteMsg","deleteTask","handleOpenObjectModal","objectsToAdd","getObjectToAdd","objectsToRemove","getObjectToRemove","createTaskObjectRule","objectToDelete","deleteTaskObjectRules","buildStepsDataJson","getSelectedBarcode","handleAssociateRegionModal","setIndexToBarcodeMapping","objID","printBarcode","QRCode","editTask","setTaskOrganization","startInterval","updateTaskFields","tempTasks","taskIndex","setTasks","setIsTaskStarred","addedObjects","removedObjects","_component_telemetry_parameters","_component_training_parameters","_component_negative_steps","isUpdatingTaskParams","updateTaskJsonParams","telemetryParams","requiredStepsForCycle","paramType","cycleParams","trainingParams","MAX_SAFE_INTEGER","taskParameters","getStepOptions","setParamValue","handleNumberChange","_component_sub_step_times","for","processesSubSteps","sub_steps","subStepTimesJson","handleSubStepTimesChange","processStep","stepRes","changeSubStepTimes","SubStepTimes","substepList","processStepsOptions","isBackgroundTimetoStepTimeEnabled","updateBackgroundTimeAttributionToStepTime","allSubSteps","enableAddBackgroundTimetoStepTime","setIsAddBackgroundTimeToStepTimeEnabled","isAddBackgroundTimeToStepTimeEnabled","add_background_time_to_step_time","paramKey","tempTaskParams","setTaskParameters","isAugmentations","changeParamValue","augmentations","augmentationOptions","model_choice","modelTypes","isModelChoiceBeingUpdatedToAD","obj_exist","addNewStep","canAddNewStep","_component_NegativeStepCard","onDelete","removeStep","stepData","availableOptions","negativeOptions","initialSteps","handleSubmit","labelCol","wrapperCol","_ctx$availableOptions","updateKey1","filteredOptions1","_ctx$availableOptions2","updateKey2","isKey2Disabled","filteredOptions2","deleteStep","NegativeStepCard","optionsArray","selectedOptions","rectificationSteps","negativeStep","negative_step","rectificationStep","rectification_step","_this$steps","newStep","deleteRectificationStep","updatedStep","negativeStepsMapping","createRectificationSteps","fetchedRectificationSteps","TelemetryParameters","TrainingParameters","NegativeSteps","isValidPercentage","percentageAsFloat","isValidTemporalSmoothnessValue","smoothnessValue","isValidAddBackgroundTimetoStepTimeValue","isValidTrainingParams","trainingParamsObj","inputs","notValidObj","inputParam","isValidTaskParameters","min_percentage_of_steps_required_to_end_cycle","temporal_smoothness","maximum_cycle_time","trainingParamsRes","getCycleTimeMultiplier","taskParam","getUpdatedTaskJson","minimum_cycle_time","resTelemetryParams","taskJson","cycle_calculation_params","training_params","processTaskParameters","stringParams","paramValue","getUpdateTaskParametersPayload","updatedTaskParams","updatedTaskJson","substepTimesJson","getSubStepTimesJson","taskParams","substepTimes","updateTaskJson","language","translatedTaskName","setTranslatedTaskName","_component_process_translation","handleDeleteTranslation","isAddingTranslation","isDeletingTranslation","addTaskTranslation","getTranslatedValue","handleChangeProcess","_component_step_translation","handleStepChange","_component_substep_translation","handleSubstepChange","substepsTranslation","updateSubstepTranslation","SubstepTranslation","inputFlag","_this$stepsTranslatio","stepsTranslation","translatedStep","updateStepTranslation","handleSpace","setSelectionRange","StepTranslation","_this$processesTransl","processesTranslation","updateProcessTranslation","ProcessTranslation","translatedTaskString","deleteTranslation","addTranslation","_component_process_step_table","cancelUploadMedia","showMediaFile","previewStepObj","_component_PreviewStepMedia","allStepsData","row-class-name","_record","is_substep","_ctx$taskStepsMediaOb","is_uploading","taskStepsMediaObject","_ctx$taskStepsMediaOb3","_ctx$taskStepsMediaOb2","handlePreviewFile","_component_EyeOutlined","deleteMediaFileFromS3","_ctx$taskStepsMediaOb4","fileType","fileURL","crossorigin","allowedImages","allowedVideos","handleGetFileUrl","extension","customCell","colSpan","EyeOutlined","PreviewStepMedia","selectedStepName","getAllStepsData","processSteps","handleUploadMediaFile","isVideo","isImage","file_type","Upload","LIST_IGNORE","_this$taskStepsMediaO","oldObj","saveMediaViaPresignedURL","updateItem","patchTaskLastUpdate","_this$taskStepsMediaO2","deleteFile","ProcessStepTable","handleUploadMedia","TaskParameters","StepTime","TaskList","AddNewTask","SimilarSteps","AddTranslation","RegionDefinition","UploadStepMedia","ModelVersions","Devices","showPolicyModal","orgTagsModal","isLoadingTag","orgTags","tagDesc","isCreatingObject","getAllTasks","isPolicyAccepted","resetStates","setProcesses","setProcessesTranslation","openTagsModal","fetchOrganizationTags","maxLength","validCharsPattern","descript","createOrganizationTag","addNewTag","_err$response","deleteOrganizationTag","tagIdToNameMap","removeTag","MainProcess","matchSetALength","A_CHARS","matchSetBLength","matchSetC","C_CHARS","autoSelectFromAB","isA","untilC","autoSelectFromC","cMatch","newString","cLength","C_START_CHAR","A_START_CHAR","ErrorHandler","handleCatch","EAN","flat","guardHeight","encodeFlat","encodeGuarded","textOptions","guardOptions","SIDE_BIN","leftEncode","leftText","MIDDLE_BIN","rightEncode","rightText","svgns","svg","xmlDocument","currentX","prepareSVG","createGroup","setGroupOptions","drawSvgBarcode","drawSVGText","setSvgAttributes","drawRect","textElem","createElementNS","EXPANSIONS","PARITIES","isValid","middleDigits","upcA","expandToUPCA","flatEncoding","guardedEncoding","encodeMiddleDigits","numberSystem","checkDigit","parity","lastUpcE","expansion","digitIndex","extendStatics","__extends","__","__assign","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","__generator","sent","trys","verb","__spreadArray","pack","ar","Bounds","fromClientRect","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","EMPTY","parseBounds","parseDocumentSize","toCodePoints$1","codePoints","fromCodePoint$1","fromCodePoint","codeUnits","codePoint","chars$2","lookup$2","chars$1$1","lookup$1$1","i$1$1","decode$1","encoded1","encoded2","encoded3","encoded4","bufferLength","buffer","ArrayBuffer","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_SHIFT_1_2$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_DATA_MASK$1","UTRIE2_LSCP_INDEX_2_LENGTH$1","UTRIE2_INDEX_2_BMP_LENGTH$1","UTRIE2_UTF8_2B_INDEX_2_OFFSET$1","UTRIE2_UTF8_2B_INDEX_2_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","Uint16Array","slice32$1","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","Trie$1","Trie","initialValue","errorValue","highStart","highValueIndex","ix","chars$3","lookup$3","base64$1","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","indices","categories","classType","isAdjacentWithSpaceIgnored","currentIndex","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","prevIndex","cssFormattedClasses","wordBreak","_a","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","E","U","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","integers","int","fraction","fracd","frac","expsign","exponent","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","write","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e3","consumeIdentLikeToken","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","digits","questionMarks","start_1","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","SLICE_STACK_SIZE","endingCodePoint","consumeNumber","repr","hexCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","consumeSimpleBlock","consumeFunction","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","arg","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","_context","PI","isAngle","parseNamedSide","sideOrCorner","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","TRANSPARENT","isTransparent","asString","alpha","blue","green","red","getTokenColorValue","_b","hue2rgb","t1","t2","hue","hsl","saturation","lightness","hsla","rgba","parseColor","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","parseColorStop","processColorStops","stops","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","beforeGap","gapValue","getAngleFromCorner","corner","centerX","centerY","atan2","calculateGradientDirection","radian","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","sqrt","findCorner","closest","corners","stat","optimumDistance","optimumCorner","calculateRadius","gradient","rx","ry","linearGradient","angle$1","firstToken","colorStop","prefixLinearGradient","webkitGradient","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","radialGradient","isColorStop","isAtPosition_1","acc","prefixRadialGradient","isLinearGradient","isRadialGradient","image_1","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","BACKGROUND_SIZE","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderBottomWidth","borderLeftWidth","bit","parseDisplayValue","float","letterSpacing","WORD_BREAK","STRICT","NORMAL","lineHeight","computeLineHeight","listStyleImage","listStylePosition","listStyleType","marginForSide","overflowWrap","paddingForSide","textShadow","shadow","offsetX","offsetY","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","BREAK_ALL","KEEP_ALL","opacity","textDecorationColor","textDecorationLine","accumulator","fontWeight","fontVariant","counterIncrement","increments","filtered","increment","counterReset","resets","duration","quotes","open_1","close_1","getQuote","depth","quote","boxShadow","spread","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","textDecoration","transform","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","elementDebuggerAttribute","getElementDebugType","attribute","isDebugging","elementType","ElementContainer","textNodes","elements","isHTMLElementNode","bounds","chars$1","lookup$1","decode","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_SHIFT_1_2","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_DATA_MASK","UTRIE2_LSCP_INDEX_2_LENGTH","UTRIE2_INDEX_2_BMP_LENGTH","UTRIE2_UTF8_2B_INDEX_2_OFFSET","UTRIE2_UTF8_2B_INDEX_2_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_BLOCK_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","lookup","PseudoElementType","Prepend","CR","LF","Control","Extend","SpacingMark","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","bk","breaker","graphemes","testRangeBounds","TEST_HEIGHT","testElement","selectNode","rangeBounds","rangeHeight","testIOSLineBreak","wordSpacing","textList","supports","boundAhead","testCORS","crossOrigin","testResponseType","testSVG","isGreenPixel","testForeignObject","greenImageSrc","createForeignObjectSVG","loadSerializedSVG$1","getImageData","xmlns","foreignObject","setAttributeNS","XMLSerializer","serializeToString","FEATURES","SUPPORT_RANGE_BOUNDS","fetch","Intl","Segmenter","TextBounds","parseTextBounds","breakText","textBounds","clientRects","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","splitText","getWrapperBounds","SUPPORT_NATIVE_TEXT_SEGMENTATION","segmenter","granularity","segment","segmentWords","breakWords","wordSeparators","words","_loop_1","word_1","TextContainer","CAPITALIZE","capitalize","p1","p2","ImageElementContainer","_super","currentSrc","intrinsicWidth","intrinsicHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","SelectElementContainer","selectedIndex","TextareaElementContainer","IFrameElementContainer","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","childNode","nextNode","isTextNode","isElementNode","isSlotElement","assignedNodes","createContainer","createsRealStackingContext","createsStackingContext","slot","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","entry","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","fallback","createCounterText","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","tmp","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","logger","warn","clonedReferenceElement","fonts","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","createCustomElementClone","copyCSSStyles","sheet","cssRules","inlineImages","clonedCanvas","clonedCtx","allowTaint","putImageData","gl","attribs","getContextAttributes","preserveDrawingBuffer","blankCanvas","appendChildNode","copyStyles","cloneChildNodes","assignedNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","AFTER","pseudoElt","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","counterType_1","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","CORNER","cloneIframeContainer","scrolling","imageReady","ignoredStyleProperties","setProperty","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","getOrigin","_link","protocol","hostname","port","isSameOrigin","_origin","setContext","Cache","isBlobImage","isRenderable","useCORS","useProxy","isInlineImage","SUPPORT_CORS_IMAGES","proxy","SUPPORT_CORS_XHR","debug","isInlineBase64Image","imageTimeout","SUPPORT_RESPONSE_TYPE","xhr","reader_1","queryString","timeout_1","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","Vector","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","ab","bc","cd","abbc","bccd","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isTransformEffect","effect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_data","_document","parseMetrics","whiteSpace","verticalAlign","baseline","middle","getMetrics","MASK_OFFSET","_activeEffects","fontMetrics","textBaseline","applyEffects","popEffect","applyEffect","globalAlpha","clip","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","letters","letter","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineWidth","lineJoin","strokeText","renderReplacedElement","iframeRenderer","beginPath","arc","isTextInputElement","canvasTextAlign","_f","_g","_h","_j","_k","_l","_m","_o","_p","mask","paths","moveTo","lineTo","formatPath","closePath","bezierCurveTo","renderRepeat","resizeImage","renderBackgroundImage","this_1","x0","y0","gradient_1","top_1","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","createRadialGradient","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","renderDashedDottedBorder","strokePaths","boxPaths","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","setLineDash","lineCap","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","enabled","instances","instanceName","instanceCount","logging","renderElement","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","_q","_r","_s","_u","windowWidth","innerWidth","windowHeight","parseBackgroundColor","devicePixelRatio","removeContainer","backgroundColorOverride","defaultBackgroundColor","codabar","getEncodings","svgNS","DiffView","del","connect","ensureDiff","dv","diffOutOfDate","getDiff","ignoreWhitespace","chunks","getChunks","pane","diffViews","allowEditingOriginals","trackAlignable","TrackAlignable","lockButton","classLocation","chunkClassLocation","dealigned","needsScrollSync","showDifferences","registerEvents","otherDv","registerUpdate","setScrollLock","registerScroll","setShowDifferences","updating","debounceChange","marked","updatingFast","copyButtons","clearMarks","updateMarks","alignChunks","makeConnections","syncScroll","setDealign","fast","_cm","toOrig","lockScroll","scrollSetBy","scrollSetAt","sInfo","targetPos","botDist","mix","halfScreen","around","chunkBoundariesAround","getOffsets","offOther","ratio","otherInfo","botDistOther","removeClass","locs","vp","markChanges","lineNr","main","markChunk","bfrom","bto","chunkStart","tp","cleanFrom","startOfLineClean","moveOver","cleanTo","endOfLineClean","posMax","posMin","posEq","vpEdit","vpOrig","outerTop","sTopEdit","sTopOrig","editFrom","editTo","origFrom","origTo","drawConnectorsForChunk","getMatchingOrigLine","editLine","editStart","origStart","alignableFor","isOrig","tracker","trackI","mergeAlignable","origAlignable","setIndex","rI","origI","chunkI","nextR","nextO","rLine","oLine","findAlignedLines","linesToAlign","aligners","alignLines","ln","cmOffset","maxOffset","padAbove","mergeSpacer","flip","topLpx","topRpx","botLpx","botRpx","curveTop","curveBot","editOriginals","topReverse","copyReverse","copyChunk","origEnd","editEnd","revertChunk","origLeft","origRight","hasLeft","hasRight","panes","leftPane","buildGap","editPane","rightPane","wrapElt","collapseIdentical","collapseIdenticalStretches","resizeInterval","lock","lockWrap","gapElts","revertButtons","createSVGRect","startEdit","startOrig","startOff","cleanFromEdit","cleanFromOrig","endOff","cleanToEdit","cleanToOrig","nInEdit","beforeE","afterE","beforeO","afterO","fromLocal","toLocal","collapseSingle","collapseStretch","unclearNearChunks","onCollapse","rightOriginal","leftOriginal","rightChunks","leftChunks","F_WIDGET","F_WIDGET_BELOW","F_MARKER","_min","hasMarker","hasWidgetBelow","hasWidget","nBefore","nAfter","findPrevDiff","findNextDiff","goNearbyDiff","views","widgetFrom","widgetTo","goNextDiff","goPrevDiff","onGutterClick","onViewportChange","onFold","optionChange","State","parseOptions","updateInViewport","indicatorOpen","indicatorFolded","isFolded","updateFoldInfo","foldOption","clsFolded","clsOpen","folded","changeUpdate","foldOnChangeTimeSpan","updateViewportTimeSpan","vue","qrcodegen","SuppressedError","QrCode","errorCorrectionLevel","dataCodewords","msk","isFunction","MIN_VERSION","MAX_VERSION","row","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","assert","encodeText","ecl","segs","QrSegment","makeSegments","encodeSegments","encodeBinary","seg","makeBytes","minVersion","maxVersion","boostEcl","dataUsedBits","dataCapacityBits_1","getNumDataCodewords","usedBits","getTotalBits","Ecc","MEDIUM","QUARTILE","HIGH","newEcl","bb","segs_1","appendBits","modeBits","numChars","numCharCountBits","dataCapacityBits","padByte","getModules","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","formatBits","rem","bits","getBit","xx","yy","isDark","ver","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","ordinal","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","dat","ecc","reedSolomonComputeRemainder","upward","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","PENALTY_N4","degree","reedSolomonMultiply","divisor","_loop_2","factor","coef","data_1","core","currentRunColor","currentRunLength","cond","bitData","data_2","Mode","BYTE","makeNumeric","NUMERIC","makeAlphanumeric","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","toUtf8ByteArray","makeEci","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","segs_2","ccbits","LOW","numBitsCharCount","KANJI","QR","defaultErrorCorrectLevel","ErrorCorrectLevelMap","Q","SUPPORTS_PATH2D","Path2D","addPath","validErrorCorrectLevel","generatePath","cell","QRCodeProps","validator","foreground","QRCodeVueProps","renderAs","QRCodeSvg","numCells","fgPath","cells","onUpdated","viewBox","QRCodeCanvas","canvasEl","rdx","cdx","onMounted","_size","_margin","_level","clearPlaceholder","setPlaceholder","placeHolder","onComposition","placeholderCompose","fps","final_acc","wandb_url","final_balanced_acc","final_class_accuracies","CODE128C","CODE128A","_CODE128_AUTO","_CODE128_AUTO2","_CODE128A","_CODE128A2","_CODE128B","_CODE128B2","_CODE128C","_CODE128C2","wordRegexp","wordOperators","commonKeywords","commonBuiltins","scopes","conf","parserConf","ERRORCLASS","delimiters","singleDelimiters","operators","singleOperators","doubleOperators","doubleDelimiters","tripleDelimiters","hangingIndent","myKeywords","myBuiltins","extra_keywords","extra_builtins","py3","identifiers","stringPrefixes","keywords","builtins","tokenBase","lastToken","scopeOffset","lineOffset","pushPyScope","errorToken","tokenBaseInner","inFormat","floatLiteral","intLiteral","isFmtString","tokenize","formatStringFactory","tokenStringFactory","delimiter","tokenOuter","singleline","OUTCLASS","tokenNestedExpr","tokenString","singleLineStringErrors","isString","pushBracketScope","tokenLexer","beginningOfLine","lambda","delimiter_index","external","basecolumn","addErr","scope","closeBrackets","triples","lineComment","_Error","symbology","_Error2","_Error3","_this3","getOPCTags","getOPCTag","getOPCTagByDevice","getOPCTagByTaskAndDevice","pageId","getOPCTagsByTask","getAllOPCDevices","addOPCDevice","deleteOPCDevice","updateOPCDevice","getOPCDeviceStatus","_SET_BY_CODE","SET_C","START_A","START_B","START_C","101","100","99","GenericBarcode","_extends","replaceObj","_EAN_UPC","_pharmacode","_codabar","_GenericBarcode"],"mappings":"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AAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GACvE,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GACvE,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GACvE,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,CACE,MACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAGJqxI,mBAAoB,sBACpB,uBAAwB,sBACxBC,uBAAwB,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,wB,kCCrOJv2O,OAAOc,eAAekB,EAAS,aAAc,CAC3CnB,OAAO,IAETmB,EAAQw0O,SAAWx0O,EAAQ6jF,SAAW7jF,EAAQy0O,SAAWz0O,EAAQqX,aAAU5S,EAE3E,IAAIiwO,EAAgB,EAAQ,QAExBC,EAAiBj0O,EAAuBg0O,GAExCE,EAAY,EAAQ,QAEpBC,EAAan0O,EAAuBk0O,GAEpCE,EAAY,EAAQ,QAEpBC,EAAar0O,EAAuBo0O,GAEpCE,EAAY,EAAQ,QAEpBC,EAAav0O,EAAuBs0O,GAExC,SAASt0O,EAAuB9B,GAAO,OAAOA,GAAOA,EAAI+B,WAAa/B,EAAM,CAAEgC,QAAShC,GAEvFoB,EAAQqX,QAAUs9N,EAAe/zO,QACjCZ,EAAQy0O,SAAWI,EAAWj0O,QAC9BZ,EAAQ6jF,SAAWkxJ,EAAWn0O,QAC9BZ,EAAQw0O,SAAWS,EAAWr0O,S,sBCzB9B,SAAU8O,GAENA,EAAI,EAAQ,UAFhB,EAOG,SAASC,GACV,aAEA,SAASulO,EAAW13B,GAClB,OAAO,IAAIthM,OAAO,MAAQshM,EAAMvqM,KAAK,OAAS,SAGhD,IAAIkiO,EAAgBD,EAAW,CAAC,MAAO,KAAM,MAAO,OAChDE,EAAiB,CAAC,KAAM,SAAU,QAAS,QAAS,WAClC,MAAO,MAAO,OAAQ,OAAQ,SAAU,UACxC,MAAO,OAAQ,SAAU,KAAM,SAC/B,SAAU,OAAQ,QAAS,SAC3B,MAAO,QAAS,OAAQ,QAAS,KAAM,QAAS,QAClEC,EAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,OAAQ,YAAa,WAAY,MAC7D,cAAe,UAAW,UAAW,UAAW,OAAQ,MAAO,SAC/D,YAAa,OAAQ,SAAU,QAAS,SAAU,YAClD,UAAW,UAAW,UAAW,OAAQ,OAAQ,MAAO,KACxD,QAAS,MAAO,aAAc,aAAc,OAAQ,MACpD,OAAQ,SAAU,MAAO,MAAO,aAAc,MAAO,OACrD,SAAU,MAAO,OAAQ,MAAO,MAAO,WAAY,QACnD,OAAQ,WAAY,QAAS,MAAO,UAAW,QAC/C,SAAU,eAAgB,MAAO,MAAO,QAAS,QACjD,OAAQ,OAAQ,MAAO,aAAc,iBACrC,WAAY,aAGlC,SAAStxM,EAAIr8B,GACX,OAAOA,EAAM4tO,OAAO5tO,EAAM4tO,OAAOx3O,OAAS,GAH5C6R,EAAW6G,eAAe,YAAa,SAAU4+N,EAAeh3O,OAAOi3O,GAAgBj3O,OAAO,CAAC,OAAQ,WAMvGuR,EAAWgb,WAAW,UAAU,SAAS4qN,EAAMC,GAO7C,IANA,IAAIC,EAAa,QAEbC,EAAaF,EAAWE,YAAcF,EAAWG,kBAAoB,4BAErEC,EAAY,CAACJ,EAAWK,gBAAiBL,EAAWM,gBAAiBN,EAAWO,iBAAkBP,EAAWQ,iBAChGR,EAAWI,WAAa,0DAChCh4O,EAAI,EAAGA,EAAIg4O,EAAU93O,OAAQF,IAAUg4O,EAAUh4O,IAAIg4O,EAAU5zN,OAAOpkB,IAAK,GAEpF,IAAIq4O,EAAgBT,EAAWS,eAAiBV,EAAKlyK,WAEjD6yK,EAAad,EAAgBe,EAAad,OACb5wO,GAA7B+wO,EAAWY,iBACbF,EAAaA,EAAW93O,OAAOo3O,EAAWY,sBAEX3xO,GAA7B+wO,EAAWa,iBACbF,EAAaA,EAAW/3O,OAAOo3O,EAAWa,iBAE5C,IAAIC,IAAQd,EAAW7kK,SAAW90D,OAAO25N,EAAW7kK,SAAW,GAC/D,GAAI2lK,EAAK,CAEP,IAAIC,EAAcf,EAAWe,aAAc,oDAC3CL,EAAaA,EAAW93O,OAAO,CAAC,WAAY,OAAQ,QAAS,QAAS,QAAS,QAAS,aAAc,QAAS,SAC/G+3O,EAAaA,EAAW/3O,OAAO,CAAC,QAAS,QAAS,OAAQ,UAC1D,IAAIo4O,EAAiB,IAAIt6N,OAAO,qDAAsD,SACjF,CACDq6N,EAAcf,EAAWe,aAAc,0BAC3CL,EAAaA,EAAW93O,OAAO,CAAC,OAAQ,UACxC+3O,EAAaA,EAAW/3O,OAAO,CAAC,QAAS,aAAc,SAAU,MAAO,SAAU,WAClD,OAAQ,SAAU,OAAQ,YAAa,SAAU,SACjD,SAAU,UAAW,SAAU,SAC3Do4O,EAAiB,IAAIt6N,OAAO,2CAA4C,KAE9E,IAAIu6N,EAAWvB,EAAWgB,GACtBQ,EAAWxB,EAAWiB,GAG1B,SAASQ,EAAUlkN,EAAQ/qB,GACzB,IAAImnB,EAAM4D,EAAO5D,OAA4B,MAAnBnnB,EAAMkvO,UAGhC,GAFI/nN,IAAKnnB,EAAMw7D,OAASzwC,EAAOlD,eAE3BV,GAA0B,MAAnBkV,EAAIr8B,GAAOod,KAAc,CAClC,IAAI+xN,EAAc9yM,EAAIr8B,GAAOwuB,OAC7B,GAAIzD,EAAOvD,WAAY,CACrB,IAAI4nN,EAAarkN,EAAOlD,cAKxB,OAJIunN,EAAaD,EACfE,EAAYrvO,GACLovO,EAAaD,GAAentJ,EAAOj3D,EAAQ/qB,IAA2B,KAAjB+qB,EAAO3D,SACnEpnB,EAAMsvO,YAAa,GACd,KAEP,IAAIh6N,EAAQi6N,EAAexkN,EAAQ/qB,GAGnC,OAFImvO,EAAc,GAAKntJ,EAAOj3D,EAAQ/qB,KACpCsV,GAAS,IAAMy4N,GACVz4N,EAGX,OAAOi6N,EAAexkN,EAAQ/qB,GAGhC,SAASuvO,EAAexkN,EAAQ/qB,EAAOwvO,GACrC,GAAIzkN,EAAOvD,WAAY,OAAO,KAG9B,IAAKgoN,GAAYzkN,EAAO3f,MAAM,QAAS,MAAO,UAG9C,GAAI2f,EAAO3f,MAAM,YAAY,GAAQ,CACnC,IAAIqkO,GAAe,EAKnB,GAHI1kN,EAAO3f,MAAM,iCAAkCqkO,GAAe,GAC9D1kN,EAAO3f,MAAM,kBAAmBqkO,GAAe,GAC/C1kN,EAAO3f,MAAM,YAAaqkO,GAAe,GACzCA,EAGF,OADA1kN,EAAO1D,IAAI,MACJ,SAGT,IAAIqoN,GAAa,EAgBjB,GAdI3kN,EAAO3f,MAAM,oBAAmBskO,GAAa,GAE7C3kN,EAAO3f,MAAM,gBAAeskO,GAAa,GAEzC3kN,EAAO3f,MAAM,iBAAgBskO,GAAa,GAE1C3kN,EAAO3f,MAAM,mCAEf2f,EAAO1D,IAAI,MAEXqoN,GAAa,GAGX3kN,EAAO3f,MAAM,kBAAiBskO,GAAa,GAC3CA,EAGF,OADA3kN,EAAO1D,IAAI,MACJ,SAKX,GAAI0D,EAAO3f,MAAM0jO,GAAiB,CAChC,IAAIa,GAA+D,IAAjD5kN,EAAOpW,UAAUzD,cAAcpG,QAAQ,KACzD,OAAK6kO,GAIH3vO,EAAM4vO,SAAWC,EAAoB9kN,EAAOpW,UAAW3U,EAAM4vO,UACtD5vO,EAAM4vO,SAAS7kN,EAAQ/qB,KAJ9BA,EAAM4vO,SAAWE,EAAmB/kN,EAAOpW,UAAW3U,EAAM4vO,UACrD5vO,EAAM4vO,SAAS7kN,EAAQ/qB,IAOlC,IAAK,IAAI9J,EAAI,EAAGA,EAAIg4O,EAAU93O,OAAQF,IACpC,GAAI60B,EAAO3f,MAAM8iO,EAAUh4O,IAAK,MAAO,WAEzC,OAAI60B,EAAO3f,MAAM4iO,GAAoB,cAEd,KAAnBhuO,EAAMkvO,WAAoBnkN,EAAO3f,MAAMyjO,GAClC,WAEL9jN,EAAO3f,MAAM2jO,IAAahkN,EAAO3f,MAAMqiO,GAClC,UAEL1iN,EAAO3f,MAAM4jO,GACR,UAELjkN,EAAO3f,MAAM,iBACR,aAEL2f,EAAO3f,MAAMyjO,GACQ,OAAnB7uO,EAAMkvO,WAAyC,SAAnBlvO,EAAMkvO,UAC7B,MACF,YAITnkN,EAAOpa,OACA6+N,EAAW,KAAMzB,GAG1B,SAAS8B,EAAoBE,EAAWC,GACtC,MAAO,OAAOllO,QAAQilO,EAAUz0N,OAAO,GAAGpK,gBAAkB,EAC1D6+N,EAAYA,EAAU31O,OAAO,GAE/B,IAAI61O,EAAiC,GAApBF,EAAU35O,OACvB85O,EAAW,SAEf,SAASC,EAAgB9iC,GACvB,OAAO,SAAStiL,EAAQ/qB,GACtB,IAAImoB,EAAQonN,EAAexkN,EAAQ/qB,GAAO,GAS1C,MARa,eAATmoB,IACsB,KAApB4C,EAAOpW,UACT3U,EAAM4vO,SAAWO,EAAgB9iC,EAAQ,GACZ,KAApBtiL,EAAOpW,YACD3U,EAAM4vO,SAAjBviC,EAAQ,EAAoB8iC,EAAgB9iC,EAAQ,GAClC+iC,IAGnBjoN,GAIX,SAASioN,EAAYrlN,EAAQ/qB,GAC3B,OAAQ+qB,EAAO7D,MAEb,GADA6D,EAAOxD,SAAS,eACZwD,EAAO1D,IAAI,OAEb,GADA0D,EAAOpa,OACHs/N,GAAcllN,EAAO7D,MACvB,OAAOgpN,MACJ,IAAInlN,EAAO3f,MAAM2kO,GAEtB,OADA/vO,EAAM4vO,SAAWI,EACVE,EACF,GAAInlN,EAAO3f,MAAM,MAEtB,OAAO8kO,EACF,GAAInlN,EAAO3f,MAAM,KAAK,GAG3B,OADApL,EAAM4vO,SAAWO,EAAgB,GAC7BplN,EAAOpW,UAAkBu7N,EACjBlwO,EAAM4vO,SAAS7kN,EAAQ/qB,GAC9B,GAAI+qB,EAAO3f,MAAM,MACtB,OAAO8kO,EACF,GAAInlN,EAAO3f,MAAM,KAEtB,OAAO2iO,EAEPhjN,EAAO1D,IAAI,QAGf,GAAI4oN,EAAY,CACd,GAAInC,EAAWuC,uBACb,OAAOtC,EAEP/tO,EAAM4vO,SAAWI,EAErB,OAAOE,EAGT,OADAE,EAAYE,UAAW,EAChBF,EAGT,SAASN,EAAmBC,EAAWC,GACrC,MAAO,OAAOllO,QAAQilO,EAAUz0N,OAAO,GAAGpK,gBAAkB,EAC1D6+N,EAAYA,EAAU31O,OAAO,GAE/B,IAAI61O,EAAiC,GAApBF,EAAU35O,OACvB85O,EAAW,SAEf,SAASE,EAAYrlN,EAAQ/qB,GAC3B,OAAQ+qB,EAAO7D,MAEb,GADA6D,EAAOxD,SAAS,WACZwD,EAAO1D,IAAI,OAEb,GADA0D,EAAOpa,OACHs/N,GAAcllN,EAAO7D,MACvB,OAAOgpN,MACJ,IAAInlN,EAAO3f,MAAM2kO,GAEtB,OADA/vO,EAAM4vO,SAAWI,EACVE,EAEPnlN,EAAO1D,IAAI,QAGf,GAAI4oN,EAAY,CACd,GAAInC,EAAWuC,uBACb,OAAOtC,EAEP/tO,EAAM4vO,SAAWI,EAErB,OAAOE,EAGT,OADAE,EAAYE,UAAW,EAChBF,EAGT,SAASf,EAAYrvO,GACnB,MAA0B,MAAnBq8B,EAAIr8B,GAAOod,KAAcpd,EAAM4tO,OAAOxyL,MAC7Cp7C,EAAM4tO,OAAOvkO,KAAK,CAACmlB,OAAQ6N,EAAIr8B,GAAOwuB,OAASq/M,EAAKlyK,WACjCv+C,KAAM,KACNllB,MAAO,OAG5B,SAASq4O,EAAiBxlN,EAAQ/qB,EAAOod,GACvC,IAAIllB,EAAQ6yB,EAAO3f,MAAM,uBAAuB,GAAS,KAAO2f,EAAOnD,SAAW,EAClF5nB,EAAM4tO,OAAOvkO,KAAK,CAACmlB,OAAQxuB,EAAMw7D,OAAS+yK,EACvBnxN,KAAMA,EACNllB,MAAOA,IAG5B,SAAS8pF,EAAOj3D,EAAQ/qB,GACtB,IAAIosB,EAAWrB,EAAOlD,cACtB,MAAO7nB,EAAM4tO,OAAOx3O,OAAS,GAAKimC,EAAIr8B,GAAOwuB,OAASpC,EAAU,CAC9D,GAAuB,MAAnBiQ,EAAIr8B,GAAOod,KAAc,OAAO,EACpCpd,EAAM4tO,OAAOxyL,MAEf,OAAO/e,EAAIr8B,GAAOwuB,QAAUpC,EAG9B,SAASokN,EAAWzlN,EAAQ/qB,GACtB+qB,EAAO5D,QACTnnB,EAAMywO,iBAAkB,EACxBzwO,EAAMgiF,QAAS,GAGjB,IAAI1sE,EAAQtV,EAAM4vO,SAAS7kN,EAAQ/qB,GAC/B2U,EAAUoW,EAAOpW,UAGrB,GAAI3U,EAAMywO,iBAA8B,KAAX97N,EAC3B,OAAOoW,EAAO3f,MAAMyjO,GAAa,GAAS,OAASD,EAAM,WAAab,EAgBxE,GAdI,KAAK99N,KAAK0E,KAAU3U,EAAMywO,iBAAkB,GAElC,YAATn7N,GAAgC,WAATA,GACF,QAAnBtV,EAAMkvO,YACX55N,EAAQ,QAGK,QAAXX,GAAgC,UAAXA,IACvB3U,EAAMgiF,QAAS,GAEF,UAAXrtE,IAAqB3U,EAAM0wO,QAAS,GACzB,KAAX/7N,IAAmB3U,EAAM0wO,QAA6B,MAAnBr0M,EAAIr8B,GAAOod,MAAgB2N,EAAO3f,MAAM,eAAe,IAC5FikO,EAAYrvO,GAEQ,GAAlB2U,EAAQve,SAAgB,iBAAiB6Z,KAAKqF,GAAQ,CACxD,IAAIq7N,EAAkB,MAAM7lO,QAAQ6J,GAKpC,IAJwB,GAApBg8N,GACFJ,EAAiBxlN,EAAQ/qB,EAAO,MAAMgP,MAAM2hO,EAAiBA,EAAgB,IAE/EA,EAAkB,MAAM7lO,QAAQ6J,IACR,GAApBg8N,EAAuB,CACzB,GAAIt0M,EAAIr8B,GAAOod,MAAQzI,EAClB,OAAOo5N,EADoB/tO,EAAMw7D,OAASx7D,EAAM4tO,OAAOxyL,MAAM5sB,OAAS+/M,GAO/E,OAHIvuO,EAAMgiF,QAAUj3D,EAAO7D,OAA4B,MAAnBmV,EAAIr8B,GAAOod,MAAgBpd,EAAM4tO,OAAOx3O,OAAS,GACnF4J,EAAM4tO,OAAOxyL,MAER9lC,EAGT,IAAIs7N,EAAW,CACbvsN,WAAY,SAASwsN,GACnB,MAAO,CACLjB,SAAUX,EACVrB,OAAQ,CAAC,CAACp/M,OAAQqiN,GAAc,EAAGzzN,KAAM,KAAMllB,MAAO,OACtDsjE,OAAQq1K,GAAc,EACtB3B,UAAW,KACXwB,QAAQ,EACR1uJ,OAAQ,IAIZ72D,MAAO,SAASJ,EAAQ/qB,GACtB,IAAI8wO,EAAS9wO,EAAMsvO,WACfwB,IAAQ9wO,EAAMsvO,YAAa,GAC/B,IAAIh6N,EAAQk7N,EAAWzlN,EAAQ/qB,GAQ/B,OANIsV,GAAkB,WAATA,IACXtV,EAAMkvO,UAAsB,WAAT55N,GAA+B,eAATA,EAA0ByV,EAAOpW,UAAYW,GAC3E,eAATA,IAAwBA,EAAQ,MAEhCyV,EAAO7D,OAASlnB,EAAM0wO,SACxB1wO,EAAM0wO,QAAS,GACVI,EAASx7N,EAAQ,IAAMy4N,EAAaz4N,GAG7CkmD,OAAQ,SAASx7D,EAAOwiF,GACtB,GAAIxiF,EAAM4vO,UAAYX,EACpB,OAAOjvO,EAAM4vO,SAASU,SAAWroO,EAAWkR,KAAO,EAErD,IAAI43N,EAAQ10M,EAAIr8B,GACZkiE,EAAU6uK,EAAM3zN,MAAQolE,EAAUlnE,OAAO,IAC3B,MAAdy1N,EAAM3zN,OAAiBpd,EAAMgiF,QAAU,kCAAkC/xE,KAAKuyE,GAClF,OAAmB,MAAfuuJ,EAAM74O,MACD64O,EAAM74O,OAASgqE,EAAU,EAAI,GAE7B6uK,EAAMviN,QAAU0zC,EAAUqsK,EAAgB,IAGrDlxK,cAAe,+CACf2zK,cAAe,CAACC,QAAS,OACzBC,YAAa,IACb1iO,KAAM,UAER,OAAOoiO,KAGT3oO,EAAWmb,WAAW,gBAAiB,UAEvC,IAAI0yL,EAAQ,SAAS16L,GAAO,OAAOA,EAAI/gB,MAAM,MAE7C4N,EAAWmb,WAAW,gBAAiB,CACrC5T,KAAM,SACNk/N,eAAgB54B,EAAM,oI,kCCtY1B,SAAS38M,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAEhH,SAASC,EAA2BC,EAAMC,GAAQ,IAAKD,EAAQ,MAAM,IAAIE,eAAe,6DAAgE,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EAElO,SAASE,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIP,UAAU,kEAAoEO,GAAeD,EAASd,UAAYvC,OAAOuD,OAAOD,GAAcA,EAAWf,UAAW,CAAEiB,YAAa,CAAE3C,MAAOwC,EAAU7C,YAAY,EAAOQ,UAAU,EAAMD,cAAc,KAAeuC,IAAYtD,OAAOyD,eAAiBzD,OAAOyD,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GARjetD,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IASR,IAAIu0E,EAAwB,SAAUylK,GAGrC,SAASzlK,EAAsB0lK,EAAWv8M,GACzC17B,EAAgB+B,KAAMwwE,GAEtB,IAAI97D,EAAQtW,EAA2B4B,MAAOwwE,EAAsB1xE,WAAa1D,OAAO8E,eAAeswE,IAAwBlyE,KAAK0B,OAQpI,OANA0U,EAAMJ,KAAO,wBAEbI,EAAMwhO,UAAYA,EAClBxhO,EAAMilB,MAAQA,EAEdjlB,EAAM2iG,QAAU,IAAM3iG,EAAMilB,MAAQ,8BAAgCjlB,EAAMwhO,UACnExhO,EAGR,OAhBAlW,EAAUgyE,EAAuBylK,GAgB1BzlK,EAjBoB,CAkB1B3mD,OAEE2uE,EAA0B,SAAU29I,GAGvC,SAAS39I,IACRv6F,EAAgB+B,KAAMw4F,GAEtB,IAAIxoF,EAAS5R,EAA2B4B,MAAOw4F,EAAwB15F,WAAa1D,OAAO8E,eAAes4F,IAA0Bl6F,KAAK0B,OAIzI,OAFAgQ,EAAOsE,KAAO,0BACdtE,EAAOqnG,QAAU,kCACVrnG,EAGR,OAZAxR,EAAUg6F,EAAyB29I,GAY5B39I,EAbsB,CAc5B3uE,OAEEmnD,EAAqB,SAAUolK,GAGlC,SAASplK,IACR/yE,EAAgB+B,KAAMgxE,GAEtB,IAAIqlK,EAASj4O,EAA2B4B,MAAOgxE,EAAmBlyE,WAAa1D,OAAO8E,eAAe8wE,IAAqB1yE,KAAK0B,OAI/H,OAFAq2O,EAAO/hO,KAAO,qBACd+hO,EAAOh/H,QAAU,2BACVg/H,EAGR,OAZA73O,EAAUwyE,EAAoBolK,GAYvBplK,EAbiB,CAcvBnnD,OAEFzsB,EAAQozE,sBAAwBA,EAChCpzE,EAAQo7F,wBAA0BA,EAClCp7F,EAAQ4zE,mBAAqBA,G,yDClE7B,W,kCCMA,SAAS/yE,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAJhH/C,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAKR,IAAIuvH,EAAU,SAASA,EAAQxsH,EAAMe,GACpC9B,EAAgB+B,KAAMwrH,GAEtBxrH,KAAKhB,KAAOA,EACZgB,KAAKa,KAAOd,EAAQc,MAAQ7B,EAC5BgB,KAAKD,QAAUA,GAGhB3C,EAAQY,QAAUwtH,G,mCCdlBpwH,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAGR,IAAIoB,EAAe,WAAc,SAASC,EAAiBvC,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAIuC,EAAalB,EAAMrB,GAAIuC,EAAW3B,WAAa2B,EAAW3B,aAAc,EAAO2B,EAAWpB,cAAe,EAAU,UAAWoB,IAAYA,EAAWnB,UAAW,GAAMhB,OAAOc,eAAenB,EAAQwC,EAAWzB,IAAKyB,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYH,EAAiBE,EAAYG,UAAWF,GAAiBC,GAAaJ,EAAiBE,EAAaE,GAAqBF,GAA7gB,GAEnBJ,EAAQ2B,SAAWA,EAEnB,IAAIovE,EAAW,EAAQ,QAEnBC,EAAYtwE,EAAuBqwE,GAEnChuE,EAAY,EAAQ,QAEpBC,EAAYtC,EAAuBqC,GAEvC,SAASrC,EAAuB9B,GAAO,OAAOA,GAAOA,EAAI+B,WAAa/B,EAAM,CAAEgC,QAAShC,GAEvF,SAASiC,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAEhH,SAASC,EAA2BC,EAAMC,GAAQ,IAAKD,EAAQ,MAAM,IAAIE,eAAe,6DAAgE,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EAElO,SAASE,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIP,UAAU,kEAAoEO,GAAeD,EAASd,UAAYvC,OAAOuD,OAAOD,GAAcA,EAAWf,UAAW,CAAEiB,YAAa,CAAE3C,MAAOwC,EAAU7C,YAAY,EAAOQ,UAAU,EAAMD,cAAc,KAAeuC,IAAYtD,OAAOyD,eAAiBzD,OAAOyD,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAGje,IAAI4D,EAAM,SAAUhC,GAGnB,SAASgC,EAAItD,EAAMe,GAClB9B,EAAgB+B,KAAMsC,IAGc,IAAhCtD,EAAKiB,OAAO,iBACfjB,GAAQD,EAASC,IAGlB,IAAI0V,EAAQtW,EAA2B4B,MAAOsC,EAAIxD,WAAa1D,OAAO8E,eAAeoC,IAAMhE,KAAK0B,KAAMhB,EAAMe,IAa5G,OAXA2U,EAAMiwE,aAAe5kF,EAAQ4kF,aAGzB5kF,EAAQskF,SAA2B,GAAhBtkF,EAAQ9C,MAC9ByX,EAAM2vE,SAA2B,GAAhBtkF,EAAQ9C,MAEzByX,EAAM2vE,SAAWtkF,EAAQskF,SAI1B3vE,EAAM0yK,YAAcrnL,EAAQwqB,OAAS7V,EAAM2vE,SAAW,EAAItkF,EAAQukF,WAC3D5vE,EA4FR,OAnHAlW,EAAU8D,EAAKhC,GA0BfjD,EAAaiF,EAAK,CAAC,CAClBxG,IAAK,QACLG,MAAO,WACN,OAA4C,IAArC+D,KAAKhB,KAAKiB,OAAO,gBAAyBD,KAAKhB,KAAK,KAAOD,EAASiB,KAAKhB,QAE/E,CACFlD,IAAK,SACLG,MAAO,WACN,OAAI+D,KAAKD,QAAQonL,KACTnnL,KAAKkpL,eAELlpL,KAAKmpL,oBAGZ,CACFrtL,IAAK,eACLG,MAAO,WACN,IAAIoT,EAAS,GAQb,OANAA,GAAU,MACVA,IAAU,EAAI++D,EAAUpwE,SAASgC,KAAKhB,KAAKE,OAAO,EAAG,GAAI,UACzDmQ,GAAU,QACVA,IAAU,EAAI++D,EAAUpwE,SAASgC,KAAKhB,KAAKE,OAAO,EAAG,GAAI,UACzDmQ,GAAU,MAEH,CACNrQ,KAAMqQ,EACNxO,KAAMb,KAAKa,QAGX,CACF/E,IAAK,kBACLG,MAAO,WACN,IAAIoT,EAAS,GAoDb,OAjDIrP,KAAK2kF,cACRt1E,EAAOlB,KAAK,CACXnP,KAAM,WACN6B,KAAMb,KAAKa,KAAK3B,OAAO,EAAG,GAC1Ba,QAAS,CAAE6kF,UAAW,OAAQP,SAAUrkF,KAAKqkF,YAK/Ch1E,EAAOlB,KAAK,CACXnP,KAAM,OAAQ,EAAIovE,EAAUpwE,SAASgC,KAAKhB,KAAK,GAAI,KACnDe,QAAS,CAAEwqB,OAAQvqB,KAAKonL,eAIzB/3K,EAAOlB,KAAK,CACXnP,MAAM,EAAIovE,EAAUpwE,SAASgC,KAAKhB,KAAKE,OAAO,EAAG,GAAI,SACrD2B,KAAMb,KAAKa,KAAK3B,OAAO,EAAG,GAC1Ba,QAAS,CAAEskF,SAAUrkF,KAAKqkF,YAI3Bh1E,EAAOlB,KAAK,CACXnP,KAAM,QACNe,QAAS,CAAEwqB,OAAQvqB,KAAKonL,eAIzB/3K,EAAOlB,KAAK,CACXnP,MAAM,EAAIovE,EAAUpwE,SAASgC,KAAKhB,KAAKE,OAAO,EAAG,GAAI,SACrD2B,KAAMb,KAAKa,KAAK3B,OAAO,EAAG,GAC1Ba,QAAS,CAAEskF,SAAUrkF,KAAKqkF,YAI3Bh1E,EAAOlB,KAAK,CACXnP,MAAM,EAAIovE,EAAUpwE,SAASgC,KAAKhB,KAAK,IAAK,KAAO,MACnDe,QAAS,CAAEwqB,OAAQvqB,KAAKonL,eAIrBpnL,KAAK2kF,cACRt1E,EAAOlB,KAAK,CACXnP,KAAM,WACN6B,KAAMb,KAAKa,KAAK3B,OAAO,GAAI,GAC3Ba,QAAS,CAAE6kF,UAAW,QAASP,SAAUrkF,KAAKqkF,YAIzCh1E,MAIF/M,EApHE,CAqHRlC,EAAUpC,SAMZ,SAASe,EAAS+B,GACjB,IAEI9F,EAFAqU,EAAS,EAGb,IAAKrU,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACxBqU,GAAU/P,SAASwB,EAAO9F,IAE3B,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACxBqU,GAAgC,EAAtB/P,SAASwB,EAAO9F,IAG3B,OAAQ,GAAKqU,EAAS,IAAM,GAG7BjS,EAAQY,QAAUsE,G,kCClKlBlH,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAGR,IAAIoB,EAAe,WAAc,SAASC,EAAiBvC,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAIuC,EAAalB,EAAMrB,GAAIuC,EAAW3B,WAAa2B,EAAW3B,aAAc,EAAO2B,EAAWpB,cAAe,EAAU,UAAWoB,IAAYA,EAAWnB,UAAW,GAAMhB,OAAOc,eAAenB,EAAQwC,EAAWzB,IAAKyB,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYH,EAAiBE,EAAYG,UAAWF,GAAiBC,GAAaJ,EAAiBE,EAAaE,GAAqBF,GAA7gB,GAEfkjF,EAAS,EAAQ,QAEjBC,EAAS7iF,EAAuB4iF,GAEhC7wE,EAAa,EAAQ,QAEzB,SAAS/R,EAAuB9B,GAAO,OAAOA,GAAOA,EAAI+B,WAAa/B,EAAM,CAAEgC,QAAShC,GAEvF,SAASiC,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAEhH,SAASC,EAA2BC,EAAMC,GAAQ,IAAKD,EAAQ,MAAM,IAAIE,eAAe,6DAAgE,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EAElO,SAASE,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIP,UAAU,kEAAoEO,GAAeD,EAASd,UAAYvC,OAAOuD,OAAOD,GAAcA,EAAWf,UAAW,CAAEiB,YAAa,CAAE3C,MAAOwC,EAAU7C,YAAY,EAAOQ,UAAU,EAAMD,cAAc,KAAeuC,IAAYtD,OAAOyD,eAAiBzD,OAAOyD,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAEje,IAAImzO,EAAW,SAAU9wJ,GAGxB,SAAS8wJ,EAAS50N,EAAQld,GAGzB,OAFA9B,EAAgB+B,KAAM6xO,GAEfzzO,EAA2B4B,MAAO6xO,EAAS/yO,WAAa1D,OAAO8E,eAAe2xO,IAAWvzO,KAAK0B,KAAM6P,EAAWk3K,aAAe9pK,EAAQld,IAU9I,OAfAvB,EAAUqzO,EAAU9wJ,GAQpB1jF,EAAaw0O,EAAU,CAAC,CACvB/1O,IAAK,QACLG,MAAO,WACN,OAAO,IAAIqd,OAAO,IAAMzJ,EAAWs2K,QAAU,MAAMpxK,KAAK/U,KAAKhB,UAIxD6yO,EAhBO,CAiBblxJ,EAAO3iF,SAETZ,EAAQY,QAAU6zO,G,kCCzClB,gBAEAtsO,eAAe+wO,EAAW5gE,EAAQ,GAAIpkG,GAAU,GAC9C,aAAaE,OAAUjwE,IAAI,cAAe+vE,EAASokG,GAGrDnwK,eAAegxO,EAAUhvH,EAAOj2C,GAAU,EAAOokG,EAAQ,IACvD,aAAalkG,OAAUjwE,IAAI,aAAagmH,KAAUj2C,EAASokG,GAG7DnwK,eAAemkH,EAAanC,EAAOj2C,GAAU,EAAOokG,EAAQ,IAC1D,aAAalkG,OAAUrzB,OACrB,wBAAwBopE,KACxBj2C,EACAokG,GAIJnwK,eAAe4jH,EAAU5B,EAAOz+G,EAASwoE,GAAU,GACjD,aAAaE,OAAUmM,MAAM,aAAa4pC,KAAUz+G,EAASwoE,GAG/D/rE,eAAe2iH,EAAOp/G,EAASwoE,GAAU,GACvC,aAAaE,OAAUE,KAAK,qBAAsB5oE,EAASwoE,GAG7D/rE,eAAeixO,EACbnsO,EACAk/G,EACAj4C,GAAU,EACVokG,EAAQ,IAER,aAAalkG,OAAUjwE,IACrB,wBAAwB8I,KAAUk/G,KAClCj4C,EACAokG,GAIJnwK,eAAekxO,EACbpsO,EACAk/G,EACAmtH,EACAplK,GAAU,EACVokG,EAAQ,IAER,aAAalkG,OAAUjwE,IACrB,wBAAwB8I,KAAUk/G,WAAkBmtH,IACpDplK,EACAokG,GAIJnwK,eAAeoxO,EAAiB30J,EAAc0zF,EAAQ,GAAIpkG,GAAU,GAClE,aAAaE,OAAUjwE,IACrB,4BAA4BygF,KAC5B1Q,EACAokG,GAIJnwK,eAAeikH,EACbxnC,EACAunC,EACAmsD,EAAQ,GACRpkG,GAAU,GAEV,aAAaE,OAAUjwE,IACrB,wBAAwBygF,KAAgBunC,IACxCj4C,EACAokG,GAIJnwK,eAAeqxO,EAAiBtlK,GAAU,GACxC,aAAaE,OAAUjwE,IAAI,iBAAkB+vE,EAAS,IAGxD/rE,eAAesxO,EAAa/tO,EAASwoE,GAAU,GAC7C,aAAaE,OAAUE,KAAK,oBAAqB5oE,EAASwoE,GAG5D/rE,eAAeuxO,EAAgBvtH,EAAUj4C,GAAU,EAAOokG,EAAQ,IAChE,aAAalkG,OAAUrzB,OAAO,SAASorE,KAAaj4C,EAASokG,GAG/DnwK,eAAewxO,EAAgBxtH,EAAUzgH,EAASwoE,GAAU,GAC1D,aAAaE,OAAUmM,MAAM,SAAS4rC,KAAazgH,EAASwoE,GAG9D/rE,eAAeyxO,EACbztH,EACAt/G,EACAqnE,GAAU,EACVokG,EAAQ,IAER,aAAalkG,OAAUjwE,IACrB,gBAAgBgoH,KAAYt/G,IAC5BqnE,EACAokG,GAIW,QACb4gE,aACAC,YACA7sH,eACAxB,SACAiB,YACAqtH,oBACAC,2BACAE,mBACAC,mBACAC,eACAC,kBACAC,kBACAvtH,4BACAwtH,uB,kCCrHF,W,kCCAA,W,kCCEA57O,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAGR,IAAIoB,EAAe,WAAc,SAASC,EAAiBvC,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAIuC,EAAalB,EAAMrB,GAAIuC,EAAW3B,WAAa2B,EAAW3B,aAAc,EAAO2B,EAAWpB,cAAe,EAAU,UAAWoB,IAAYA,EAAWnB,UAAW,GAAMhB,OAAOc,eAAenB,EAAQwC,EAAWzB,IAAKyB,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYH,EAAiBE,EAAYG,UAAWF,GAAiBC,GAAaJ,EAAiBE,EAAaE,GAAqBF,GAA7gB,GAEfkjF,EAAS,EAAQ,QAEjBC,EAAS7iF,EAAuB4iF,GAEhC7wE,EAAa,EAAQ,QAEzB,SAAS/R,EAAuB9B,GAAO,OAAOA,GAAOA,EAAI+B,WAAa/B,EAAM,CAAEgC,QAAShC,GAEvF,SAASiC,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAEhH,SAASC,EAA2BC,EAAMC,GAAQ,IAAKD,EAAQ,MAAM,IAAIE,eAAe,6DAAgE,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EAElO,SAASE,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIP,UAAU,kEAAoEO,GAAeD,EAASd,UAAYvC,OAAOuD,OAAOD,GAAcA,EAAWf,UAAW,CAAEiB,YAAa,CAAE3C,MAAOwC,EAAU7C,YAAY,EAAOQ,UAAU,EAAMD,cAAc,KAAeuC,IAAYtD,OAAOyD,eAAiBzD,OAAOyD,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAEje,IAAIkzO,EAAW,SAAU7wJ,GAGxB,SAAS6wJ,EAAS30N,EAAQld,GAGzB,OAFA9B,EAAgB+B,KAAM4xO,GAEfxzO,EAA2B4B,MAAO4xO,EAAS9yO,WAAa1D,OAAO8E,eAAe0xO,IAAWtzO,KAAK0B,KAAM6P,EAAWi3K,aAAe7pK,EAAQld,IAU9I,OAfAvB,EAAUozO,EAAU7wJ,GAQpB1jF,EAAau0O,EAAU,CAAC,CACvB91O,IAAK,QACLG,MAAO,WACN,OAAO,IAAIqd,OAAO,IAAMzJ,EAAWy2K,QAAU,MAAMvxK,KAAK/U,KAAKhB,UAIxD4yO,EAhBO,CAiBbjxJ,EAAO3iF,SAETZ,EAAQY,QAAU4zO,G,kCCnClB,IAAIqF,EAEJ,SAASl7O,EAAgBC,EAAKF,EAAKG,GAAiK,OAApJH,KAAOE,EAAOZ,OAAOc,eAAeF,EAAKF,EAAK,CAAEG,MAAOA,EAAOL,YAAY,EAAMO,cAAc,EAAMC,UAAU,IAAkBJ,EAAIF,GAAOG,EAAgBD,EAN3MZ,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAQR,IAAIka,EAAQ/Y,EAAQ+Y,MAAQ,EACxBE,EAAQjZ,EAAQiZ,MAAQ,EACxB6gO,EAAQ95O,EAAQ85O,MAAQ,EAIxBC,GADQ/5O,EAAQqZ,MAAQ,GACdrZ,EAAQ+5O,QAAU,KAC5BC,EAAUh6O,EAAQg6O,QAAU,IAC5BC,EAAUj6O,EAAQi6O,QAAU,IACnBj6O,EAAQwY,OAAS,IACnBxY,EAAQyY,KAAO,IACfzY,EAAQmY,KAAO,IAGRnY,EAAQ+X,aAAe8hO,EAAe,GAAIl7O,EAAgBk7O,EAAcE,EAAShhO,GAAQpa,EAAgBk7O,EAAcG,EAAS/gO,GAAQta,EAAgBk7O,EAAcI,EAASH,GAAQD,GAG9L75O,EAAQoZ,KAAO,CACzB8gO,IAAKnhO,EACLohO,IAAKlhO,EACLmhO,GAAIN,GAGc95O,EAAQ2pL,aAAe97J,OAAO4mC,aAAa,KAC3Cz0D,EAAQ8jF,aAAej2D,OAAO4mC,aAAa,KAC3Cz0D,EAAQ0pL,aAAe77J,OAAO4mC,aAAa,KAIhDz0D,EAAQ+oL,QAAU,YAIlB/oL,EAAQ+jF,QAAU,WAIlB/jF,EAAQkpL,QAAU,iBAKrBlpL,EAAQ6Y,KAAO,CAAC,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,WAAa,YAAa,WAAa,WAAa,YAAa,WAAa,WAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,UAAa,YAAa,YAAa,YAAa,UAAa,YAAa,UAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,WAAa,YAAa,YAAa,WAAa,YAAa,WAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,UAAa,YAAa,gB,kCCrD73C,gBAEA,MAAMu/I,EAAiBjwJ,MAAOuD,EAASwoE,GAAU,UAClCE,OAAUE,KAAK,4BAA6B5oE,EAASwoE,GAGrD,QACbkkF,mB,kCCPF,W,kCCAA,W,kCCEAp6J,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAERmB,EAAQq6O,oBAAiB51O,EAEzB,IAAIxE,EAAe,WAAc,SAASC,EAAiBvC,EAAQsB,GAAS,IAAK,IAAIrB,EAAI,EAAGA,EAAIqB,EAAMnB,OAAQF,IAAK,CAAE,IAAIuC,EAAalB,EAAMrB,GAAIuC,EAAW3B,WAAa2B,EAAW3B,aAAc,EAAO2B,EAAWpB,cAAe,EAAU,UAAWoB,IAAYA,EAAWnB,UAAW,GAAMhB,OAAOc,eAAenB,EAAQwC,EAAWzB,IAAKyB,IAAiB,OAAO,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYH,EAAiBE,EAAYG,UAAWF,GAAiBC,GAAaJ,EAAiBE,EAAaE,GAAqBF,GAA7gB,GAEf2C,EAAY,EAAQ,QAEpBC,EAAYtC,EAAuBqC,GAEvC,SAASrC,EAAuB9B,GAAO,OAAOA,GAAOA,EAAI+B,WAAa/B,EAAM,CAAEgC,QAAShC,GAEvF,SAASiC,EAAgBC,EAAUV,GAAe,KAAMU,aAAoBV,GAAgB,MAAM,IAAIW,UAAU,qCAEhH,SAASC,EAA2BC,EAAMC,GAAQ,IAAKD,EAAQ,MAAM,IAAIE,eAAe,6DAAgE,OAAOD,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BD,EAAPC,EAElO,SAASE,EAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIP,UAAU,kEAAoEO,GAAeD,EAASd,UAAYvC,OAAOuD,OAAOD,GAAcA,EAAWf,UAAW,CAAEiB,YAAa,CAAE3C,MAAOwC,EAAU7C,YAAY,EAAOQ,UAAU,EAAMD,cAAc,KAAeuC,IAAYtD,OAAOyD,eAAiBzD,OAAOyD,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAEje,IAAI+4O,EAAiB,SAAUn3O,GAG9B,SAASm3O,EAAez4O,EAAMe,GAG7B,OAFA9B,EAAgB+B,KAAMy3O,GAEfr5O,EAA2B4B,MAAOy3O,EAAe34O,WAAa1D,OAAO8E,eAAeu3O,IAAiBn5O,KAAK0B,KAAMhB,EAAMe,IAwB9H,OA7BAvB,EAAUi5O,EAAgBn3O,GAW1BjD,EAAao6O,EAAgB,CAAC,CAC7B37O,IAAK,SACLG,MAAO,WACN,MAAO,CACN+C,KAAM,4CACN6B,KAAMb,KAAKa,QAMX,CACF/E,IAAK,QACLG,MAAO,WACN,OAAO,MAIFw7O,EA9Ba,CA+BnBr3O,EAAUpC,SAEZZ,EAAQq6O,eAAiBA,G,kCCpDzBr8O,OAAOc,eAAekB,EAAS,aAAc,CAC3CnB,OAAO,IAGT,IAAIy7O,EAAWt8O,OAAOgqD,QAAU,SAAUrqD,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIc,KAAOX,EAAcC,OAAOuC,UAAUsZ,eAAe3Y,KAAKnD,EAAQW,KAAQf,EAAOe,GAAOX,EAAOW,IAAY,OAAOf,GAEvPqC,EAAQY,QAAU,SAAU0Q,EAAKipO,GAC/B,OAAOD,EAAS,GAAIhpO,EAAKipO,K,gFCP3Bv8O,OAAOc,eAAekB,EAAS,aAAc,CAC5CnB,OAAO,IAGR,IAAI8kF,EAAQ,EAAQ,QAEhBL,EAAS,EAAQ,QAEjBk3J,EAAW,EAAQ,QAEnB93O,EAAO,EAAQ,QAEf8Q,EAAO,EAAQ,QAEfinO,EAAc,EAAQ,QAEtBC,EAAW,EAAQ,QAEnBC,EAAkB,EAAQ,QAE9B36O,EAAQY,QAAU,CACjBgR,OAAQ+xE,EAAM/xE,OACdyF,QAASisE,EAAOjsE,QAASo9N,SAAUnxJ,EAAOmxJ,SAAU5wJ,SAAUP,EAAOO,SAAU2wJ,SAAUlxJ,EAAOkxJ,SAChGnvO,MAAOm1O,EAASn1O,MAAON,KAAMy1O,EAASz1O,KAAMK,KAAMo1O,EAASp1O,KAAMD,KAAMq1O,EAASr1O,KAAMD,IAAKs1O,EAASt1O,IAAKD,KAAMu1O,EAASv1O,KACxHxC,MAAOC,EAAKD,MACZiQ,IAAKhQ,EAAKgQ,IACVzP,IAAKuQ,EAAKvQ,IAAKyQ,MAAOF,EAAKE,MAAOH,MAAOC,EAAKD,MAAOw3E,QAASv3E,EAAKu3E,QAASD,QAASt3E,EAAKs3E,QAC1FF,WAAY6vJ,EAAY7vJ,WACxByyI,QAASqd,EAASrd,QAClBgd,eAAgBM,EAAgBN","file":"js/chunk-10c94f90.b2a3cca6.js","sourcesContent":["// This icon file is generated automatically.\nvar QrcodeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"qrcode\", \"theme\": \"outlined\" };\nexport default QrcodeOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport QrcodeOutlinedSvg from \"@ant-design/icons-svg/es/asn/QrcodeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar QrcodeOutlined = function QrcodeOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": QrcodeOutlinedSvg\n }), null);\n};\n\nQrcodeOutlined.displayName = 'QrcodeOutlined';\nQrcodeOutlined.inheritAttrs = false;\nexport default QrcodeOutlined;","export const modelTypesValidFiles = {\r\n 'Model A': ['model_a.pth.tar', 'subStepTimes.json', 'label_split.json'],\r\n 'Model C': ['model.pth.tar', 'subStepTimes.json', 'label_split.json'],\r\n 'Model D': ['detector.pt', 'detector.json', 'Detector.py', 'logic.py'],\r\n 'Model AL': [\r\n 'model_a.pth.tar',\r\n 'model_al.pth.tar',\r\n 'subStepTimes.json',\r\n 'label_split.json',\r\n ],\r\n 'Model CL': [\r\n 'model.pth.tar',\r\n 'model_cl.pth.tar',\r\n 'subStepTimes.json',\r\n 'label_split.json',\r\n ],\r\n 'Model O': ['detector.pt', 'detector.json', 'Detector.py'],\r\n 'Model AD': [\r\n 'model_a.pth.tar',\r\n 'subStepTimes.json',\r\n 'detector.pt',\r\n 'detector.json',\r\n 'Detector.py',\r\n 'logic.py',\r\n ],\r\n 'Model A4LT': ['model-a4lt.pth.tar', 'subSteptimes.json', 'label_split.json'],\r\n 'Model A4LT-L': [\r\n 'model-a4lt.pth.tar',\r\n 'model-a4lt-l.pth.tar',\r\n 'subSteptimes.json',\r\n 'label_split.json',\r\n ],\r\n};\r\n\r\nexport const validFiles = ['.pt', '.pth.tar', '.json', '.py'];\r\n\r\nexport const adminModelVersionTable = [\r\n {\r\n title: 'Model Version',\r\n dataIndex: 'version_number',\r\n key: 'version',\r\n align: 'center',\r\n width: '10%',\r\n },\r\n {\r\n title: 'Created At',\r\n dataIndex: 'date',\r\n key: 'created_at',\r\n align: 'center',\r\n width: '15%',\r\n },\r\n {\r\n title: 'Model Type',\r\n dataIndex: 'model_type',\r\n key: 'created_at',\r\n align: 'center',\r\n width: '15%',\r\n },\r\n // {\r\n // title: 'Qc check',\r\n // dataIndex: 'qc_check',\r\n // key: 'qc_check',\r\n // align: 'center',\r\n // width: '20%',\r\n // },\r\n {\r\n title: 'Description',\r\n dataIndex: 'description',\r\n key: 'description',\r\n align: 'center',\r\n width: '30%',\r\n },\r\n {\r\n title: 'Deleted',\r\n dataIndex: 'deleted',\r\n align: 'center',\r\n width: '10%',\r\n },\r\n {\r\n title: 'Actions',\r\n dataIndex: 'action',\r\n align: 'center',\r\n width: '20%',\r\n },\r\n];\r\n\r\nexport const userModelVersionTable = [\r\n {\r\n title: 'Time Trained',\r\n dataIndex: 'date',\r\n key: 'date',\r\n width: '15%',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Version',\r\n dataIndex: 'version_number',\r\n key: 'version',\r\n width: '10%',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Version Description',\r\n dataIndex: 'description',\r\n key: 'description',\r\n width: '35%',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Set Default',\r\n dataIndex: 'id',\r\n width: '10%',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Actions',\r\n dataIndex: 'action',\r\n width: '30%',\r\n align: 'center',\r\n },\r\n];\r\n\r\nexport const userModelVersionModalTable = [\r\n {\r\n title: 'Model Version',\r\n dataIndex: 'date',\r\n align: 'center',\r\n width: '20%',\r\n },\r\n {\r\n title: 'Model Type',\r\n dataIndex: 'model_type',\r\n align: 'center',\r\n width: '15%',\r\n },\r\n {\r\n title: 'Description',\r\n dataIndex: 'description',\r\n align: 'center',\r\n width: '50%',\r\n },\r\n {\r\n title: 'Select',\r\n dataIndex: 'id',\r\n width: '15%',\r\n align: 'center',\r\n },\r\n];\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ITF2 = require('./ITF');\n\nvar _ITF3 = _interopRequireDefault(_ITF2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Calculate the checksum digit\nvar checksum = function checksum(data) {\n\tvar res = data.substr(0, 13).split('').map(function (num) {\n\t\treturn parseInt(num, 10);\n\t}).reduce(function (sum, n, idx) {\n\t\treturn sum + n * (3 - idx % 2 * 2);\n\t}, 0);\n\n\treturn Math.ceil(res / 10) * 10 - res;\n};\n\nvar ITF14 = function (_ITF) {\n\t_inherits(ITF14, _ITF);\n\n\tfunction ITF14(data, options) {\n\t\t_classCallCheck(this, ITF14);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{13}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\t\treturn _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options));\n\t}\n\n\t_createClass(ITF14, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data);\n\t\t}\n\t}]);\n\n\treturn ITF14;\n}(_ITF3.default);\n\nexports.default = ITF14;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DefineObjectsAndStaticRegion.vue?vue&type=style&index=0&id=747109a9&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LabelObjects.vue?vue&type=style&index=1&id=3cc7daba&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TelemetryParameters.vue?vue&type=style&index=0&id=41c6baf0&lang=css\"","// This icon file is generated automatically.\nvar RedoOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z\" } }] }, \"name\": \"redo\", \"theme\": \"outlined\" };\nexport default RedoOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport RedoOutlinedSvg from \"@ant-design/icons-svg/es/asn/RedoOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RedoOutlined = function RedoOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": RedoOutlinedSvg\n }), null);\n};\n\nRedoOutlined.displayName = 'RedoOutlined';\nRedoOutlined.inheritAttrs = false;\nexport default RedoOutlined;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation\n// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup\n\nvar MSI = function (_Barcode) {\n\t_inherits(MSI, _Barcode);\n\n\tfunction MSI(data, options) {\n\t\t_classCallCheck(this, MSI);\n\n\t\treturn _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options));\n\t}\n\n\t_createClass(MSI, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// Start bits\n\t\t\tvar ret = \"110\";\n\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\t// Convert the character to binary (always 4 binary digits)\n\t\t\t\tvar digit = parseInt(this.data[i]);\n\t\t\t\tvar bin = digit.toString(2);\n\t\t\t\tbin = addZeroes(bin, 4 - bin.length);\n\n\t\t\t\t// Add 100 for every zero and 110 for every 1\n\t\t\t\tfor (var b = 0; b < bin.length; b++) {\n\t\t\t\t\tret += bin[b] == \"0\" ? \"100\" : \"110\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// End bits\n\t\t\tret += \"1001\";\n\n\t\t\treturn {\n\t\t\t\tdata: ret,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn MSI;\n}(_Barcode3.default);\n\nfunction addZeroes(number, n) {\n\tfor (var i = 0; i < n; i++) {\n\t\tnumber = \"0\" + number;\n\t}\n\treturn number;\n}\n\nexports.default = MSI;","// This icon file is generated automatically.\nvar MenuOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"menu\", \"theme\": \"outlined\" };\nexport default MenuOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport MenuOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MenuOutlined = function MenuOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": MenuOutlinedSvg\n }), null);\n};\n\nMenuOutlined.displayName = 'MenuOutlined';\nMenuOutlined.inheritAttrs = false;\nexport default MenuOutlined;","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TagList.vue?vue&type=style&index=0&id=39ad8276&lang=css\"","export const columns = [\r\n {\r\n title: 'Tag Name',\r\n dataIndex: 'tagName',\r\n key: 'tagName',\r\n align: 'center'\r\n },\r\n {\r\n title: 'Tag Address',\r\n dataIndex: 'tagId',\r\n key: 'tagId',\r\n align: 'center'\r\n },\r\n {\r\n title: 'Device',\r\n dataIndex: 'serial_number',\r\n key: 'serial_number',\r\n align: 'center',\r\n width: '20%'\r\n },\r\n // {\r\n // title: 'Task',\r\n // dataIndex: 'taskName',\r\n // key: 'taskName',\r\n // align: 'center',\r\n // },\r\n {\r\n title: 'Trigger Type',\r\n dataIndex: 'triggerOn',\r\n key: 'triggerOn',\r\n customRender: ({ text, record }) => {\r\n return text ? text : 'N/A';\r\n },\r\n align: 'center'\r\n },\r\n {\r\n title: 'Operation',\r\n dataIndex: 'operation',\r\n key: 'operation',\r\n align: 'center',\r\n width: '15%'\r\n }\r\n];\r\n\r\nexport const OpcConnectionColumns = [\r\n {\r\n title: 'Device',\r\n dataIndex: 'device',\r\n key: 'device',\r\n width: '20%'\r\n },\r\n {\r\n title: 'Url',\r\n dataIndex: 'url',\r\n key: 'url',\r\n width: '25%'\r\n },\r\n {\r\n title: 'Last connected',\r\n dataIndex: 'lastConnected',\r\n key: 'lastConnected',\r\n width: '20%'\r\n },\r\n {\r\n title: 'Status',\r\n dataIndex: 'status',\r\n key: 'status',\r\n width: '10%'\r\n },\r\n {\r\n title: 'Actions',\r\n dataIndex: 'operation',\r\n key: 'operation',\r\n width: '25%'\r\n }\r\n];\r\n\r\nexport const OpcConfigurationFields = [\r\n 'device',\r\n 'host',\r\n 'port',\r\n 'endpoint',\r\n 'anonymous_access',\r\n 'username',\r\n 'password',\r\n 'security_policy'\r\n];\r\nexport const OpcSecurityPolicy = [\r\n { value: 'None', label: 'None' },\r\n { value: 'Basic256Sha256', label: 'Basic256Sha256' }\r\n];\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// http://www.barcodeisland.com/ean8.phtml\n\n// Calculate the checksum digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 7).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a : sum + a * 3;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN8 = function (_EAN) {\n\t_inherits(EAN8, _EAN);\n\n\tfunction EAN8(data, options) {\n\t\t_classCallCheck(this, EAN8);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{7}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options));\n\t}\n\n\t_createClass(EAN8, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(0, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL');\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(4, 4);\n\t\t\treturn _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR');\n\t\t}\n\t}]);\n\n\treturn EAN8;\n}(_EAN3.default);\n\nexports.default = EAN8;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./PreviewImageCard.vue?vue&type=style&index=0&id=249e11ba&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RelationSteps.vue?vue&type=style&index=0&id=585ee376&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined;\n\nvar _EAN = require('./EAN13.js');\n\nvar _EAN2 = _interopRequireDefault(_EAN);\n\nvar _EAN3 = require('./EAN8.js');\n\nvar _EAN4 = _interopRequireDefault(_EAN3);\n\nvar _EAN5 = require('./EAN5.js');\n\nvar _EAN6 = _interopRequireDefault(_EAN5);\n\nvar _EAN7 = require('./EAN2.js');\n\nvar _EAN8 = _interopRequireDefault(_EAN7);\n\nvar _UPC = require('./UPC.js');\n\nvar _UPC2 = _interopRequireDefault(_UPC);\n\nvar _UPCE = require('./UPCE.js');\n\nvar _UPCE2 = _interopRequireDefault(_UPCE);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.EAN13 = _EAN2.default;\nexports.EAN8 = _EAN4.default;\nexports.EAN5 = _EAN6.default;\nexports.EAN2 = _EAN8.default;\nexports.UPC = _UPC2.default;\nexports.UPCE = _UPCE2.default;","import {\r\n computed,\r\n inject,\r\n onBeforeMount,\r\n onBeforeUnmount,\r\n ref,\r\n watch,\r\n} from 'vue';\r\n\r\nimport DeviceService from '@/services/device';\r\nimport TaskService from '@/services/tasks';\r\nimport dateHelper from 'src/components/shared/Helpers/dateHelper';\r\nimport trainingStatuses from 'src/config/training-status-config.js';\r\nimport { getSortedTask } from 'src/utils/task';\r\nimport { useStore } from 'vuex';\r\n\r\nexport function useActiveDevices() {\r\n const toast = inject('toast');\r\n const emitter = inject('emitter');\r\n const tasks = ref([]);\r\n const taskOptions = ref([]);\r\n const trainedTasks = ref([]);\r\n const isLoadingTasks = ref(false);\r\n const taskInputRefs = ref({});\r\n const allDevices = ref([]);\r\n const devicesDetails = ref({});\r\n const activeDevicesDict = ref({});\r\n const isLoadingDevices = ref(false);\r\n const activeDevicesPolling = ref(null);\r\n const activeDevicesPollingTime = ref(10000);\r\n\r\n // Modal Variables\r\n const showSchedule = ref(false);\r\n const deviceToSchedule = ref();\r\n const startEndTime = ref([]);\r\n const selectedDays = ref([]);\r\n const isScheduling = ref(false);\r\n const isPolled = ref(false);\r\n const devicesCount = ref(0);\r\n const activeDevices = ref([]);\r\n\r\n // Store Variable\r\n const store = useStore();\r\n // const fcmToken = computed(() => store.state.fcm.fcmToken);\r\n const organization = computed(() => store.state.auth.organization);\r\n\r\n const activeDevicesList = computed(() => {\r\n const activeDevices = allDevices.value.filter((d) => d.active);\r\n const sortedDevices = activeDevices.sort((a, b) => b.starred - a.starred);\r\n return sortedDevices;\r\n });\r\n\r\n const activeDevicesCount = computed(() => {\r\n const activeDevices = allDevices.value.filter((d) => d.active);\r\n return activeDevices.length;\r\n });\r\n\r\n watch(\r\n () => allDevices.value,\r\n (value) => {\r\n devicesDetails.value = value.reduce((res, dev) => {\r\n res[dev.Serial_number] = dev;\r\n return res;\r\n }, {});\r\n }\r\n );\r\n\r\n onBeforeMount(() => {\r\n getTasks();\r\n getAllTrainedTasks();\r\n getAllDevices();\r\n getCachedDeviceStatus();\r\n activeDevicesPolling.value = setInterval(\r\n getActiveDevices,\r\n activeDevicesPollingTime.value\r\n );\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n clearInterval(activeDevicesPolling.value);\r\n });\r\n\r\n async function getCachedDeviceStatus() {\r\n const [error, data] = await DeviceService.fetchAllDevicesOfOrg(\r\n organization.value,\r\n true\r\n );\r\n allDevices.value = [...data];\r\n isLoadingDevices.value = false;\r\n if (error) return;\r\n\r\n isPolled.value = false;\r\n\r\n store.state.devices.activeDevices.forEach((device) => {\r\n if (device.Task && typeof device.Task === 'object')\r\n device.Task = device.Task.id;\r\n });\r\n\r\n const activeDevicesMap = new Map(\r\n store.state.devices.activeDevices.map((device) => [\r\n device.Serial_number,\r\n true,\r\n ])\r\n );\r\n const updatedAllDevices = allDevices.value.map((device) => {\r\n const isActive = activeDevicesMap.has(device.Serial_number);\r\n if (isActive) handleDeviceStatus({ ...device, active: isActive });\r\n return { ...device, active: isActive };\r\n });\r\n\r\n devicesCount.value = updatedAllDevices.length;\r\n activeDevices.value = updatedAllDevices.filter((device) => device.active);\r\n const dataLookup = Object.fromEntries(\r\n store.state.devices.activeDevices.map((item) => [\r\n item.Serial_number,\r\n item,\r\n ])\r\n );\r\n\r\n const mergedData = activeDevices.value.map((device) => ({\r\n ...device,\r\n ...(dataLookup[device.Serial_number] || {}),\r\n }));\r\n activeDevices.value = mergedData;\r\n\r\n isLoadingDevices.value = false;\r\n }\r\n\r\n async function getActiveDevices() {\r\n if (isPolled.value) return;\r\n\r\n isPolled.value = true;\r\n\r\n const [error, data] = await store.dispatch('setActiveDevices');\r\n if (error) {\r\n isPolled.value = false;\r\n return;\r\n }\r\n\r\n isPolled.value = false;\r\n\r\n data.forEach((device) => {\r\n if (device.Task && typeof device.Task === 'object')\r\n device.Task = device.Task.id;\r\n });\r\n\r\n const activeDevicesMap = new Map(\r\n data.map((device) => [device.Serial_number, true])\r\n );\r\n\r\n const updatedAllDevices = allDevices.value.map((device) => {\r\n const isActive = activeDevicesMap.has(device.Serial_number);\r\n if (isActive) handleDeviceStatus({ ...device, active: isActive });\r\n return { ...device, active: isActive };\r\n });\r\n\r\n devicesCount.value = updatedAllDevices.length;\r\n activeDevices.value = updatedAllDevices.filter((device) => device.active);\r\n const dataLookup = Object.fromEntries(\r\n data.map((item) => [item.Serial_number, item])\r\n );\r\n\r\n const mergedData = activeDevices.value.map((device) => ({\r\n ...device,\r\n ...(dataLookup[device.Serial_number] || {}),\r\n }));\r\n activeDevices.value = mergedData;\r\n\r\n isLoadingDevices.value = false;\r\n }\r\n\r\n async function getTasks() {\r\n isLoadingTasks.value = true;\r\n const [error, data] = await TaskService.fetchTasks(false);\r\n if (error) return;\r\n tasks.value = data;\r\n taskOptions.value = getSortedTask(data);\r\n isLoadingTasks.value = false;\r\n }\r\n\r\n async function getAllTrainedTasks() {\r\n const [error, data] = await TaskService.fetchTrainedTasksByStatus(\r\n trainingStatuses.trained,\r\n false\r\n );\r\n if (error) return;\r\n trainedTasks.value = data.map((e) => e.task);\r\n }\r\n\r\n async function getAllDevices() {\r\n isLoadingDevices.value = true;\r\n const [error, data] = await DeviceService.fetchAllDevicesOfOrg(\r\n organization.value,\r\n true\r\n );\r\n isLoadingDevices.value = false;\r\n if (error) return;\r\n allDevices.value = [...data];\r\n }\r\n\r\n const handleDeviceStatus = (data) => {\r\n const deviceStatus = data;\r\n const { uploading, downloading } = deviceStatus;\r\n const serialNumber = deviceStatus.Serial_number;\r\n activeDevices;\r\n activeDevicesDict.value = {\r\n ...activeDevicesDict.value,\r\n [serialNumber]: 20,\r\n };\r\n\r\n updateDevice({ ...deviceStatus, uploading, downloading });\r\n };\r\n\r\n function updateDevice(deviceDetails) {\r\n const { Serial_number } = deviceDetails;\r\n const temp = [...allDevices.value];\r\n const index = temp.findIndex((v) => v.Serial_number === Serial_number);\r\n if (temp[index]) {\r\n temp[index] = {\r\n ...temp[index],\r\n ...deviceDetails,\r\n };\r\n }\r\n allDevices.value = temp;\r\n }\r\n\r\n function updateDeviceSettings(deviceDetails) {\r\n return new Promise(async (resolve) => {\r\n await updateDeviceSettingsAsync(deviceDetails);\r\n resolve();\r\n });\r\n }\r\n\r\n async function updateDeviceSettingsAsync(deviceDetails) {\r\n const { id, Serial_number, key, value } = deviceDetails;\r\n const oldValue = getOldValues(allDevices, Serial_number, key);\r\n const payload = getPayloadForDeviceSettings(key, value);\r\n updateDevice({ Serial_number, ...payload });\r\n const [error] = await DeviceService.updateDeviceSettings(\r\n organization.value,\r\n id,\r\n payload,\r\n false\r\n );\r\n if (error) {\r\n toast.error('Unable to update!');\r\n updateDevice({ Serial_number, ...oldValue });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n async function updateDeviceSettingsAndActiveDevices(deviceDetails) {\r\n try {\r\n const isUpdated = await updateDeviceSettingsAsync(deviceDetails);\r\n if (!isUpdated) return;\r\n updateActiveDevices(deviceDetails);\r\n } catch (error) {\r\n toast.error('An unexpected occur has occured. Please refresh the page.');\r\n }\r\n }\r\n\r\n function updateActiveDevices(deviceDetails) {\r\n const index = activeDevices.value.findIndex(\r\n (device) => device.id === deviceDetails.id\r\n );\r\n if (index === -1 || isPolled.value) return;\r\n let device = activeDevices.value[index];\r\n if (\r\n Array.isArray(deviceDetails.key) &&\r\n Array.isArray(deviceDetails.value)\r\n ) {\r\n deviceDetails.key.forEach((item, keyIndex) => {\r\n device[item] = deviceDetails.value[keyIndex];\r\n });\r\n return;\r\n }\r\n device[deviceDetails.key] = deviceDetails.value;\r\n }\r\n\r\n function getOldValues(allDevices, Serial_number, keys) {\r\n const oldValue = {};\r\n const deviceIndex = allDevices.value.findIndex(\r\n (d) => d.Serial_number === Serial_number\r\n );\r\n const deviceDetails = allDevices.value[deviceIndex];\r\n if (Array.isArray(keys)) {\r\n keys.forEach((item) => {\r\n oldValue[item] = deviceDetails[item];\r\n });\r\n } else {\r\n oldValue[keys] = deviceDetails[keys];\r\n }\r\n return oldValue;\r\n }\r\n\r\n function getPayloadForDeviceSettings(keys, values) {\r\n const payload = {};\r\n if (Array.isArray(keys) && Array.isArray(values)) {\r\n keys.forEach((item, index) => {\r\n payload[item] = values[index];\r\n });\r\n } else {\r\n payload[keys] = values;\r\n }\r\n return payload;\r\n }\r\n\r\n async function handleRecording(deviceDetails) {\r\n const {\r\n id,\r\n Task,\r\n record_shift,\r\n Serial_number,\r\n is_shift_managed,\r\n isInferenceRunning,\r\n } = deviceDetails;\r\n\r\n if (!isTaskSet(Task)) return;\r\n if (isShiftBeingManaged(is_shift_managed, 'recording')) return;\r\n if (isInGuidanceMode(isInferenceRunning)) return;\r\n\r\n await updateDeviceSettingsAndActiveDevices({\r\n id,\r\n Serial_number,\r\n key: 'record_shift',\r\n value: !record_shift,\r\n });\r\n }\r\n\r\n function isTaskSet(task) {\r\n !task && toast.info('Please select a task first!');\r\n return !!task;\r\n }\r\n\r\n function isShiftBeingManaged(is_shift_managed, subject) {\r\n is_shift_managed &&\r\n toast.info(`Cannot start ${subject} when Start/End Time is enabled.\r\n Please disabled \"Use Start/End Time\" on \"Devices\" page first.`);\r\n return is_shift_managed;\r\n }\r\n\r\n function isInGuidanceMode(isInferenceRunning, action = 'start') {\r\n isInferenceRunning &&\r\n toast.info(`Cannot ${action} recording when task is being performed!`);\r\n return isInferenceRunning;\r\n }\r\n\r\n async function handleInference(deviceDetails) {\r\n const {\r\n id,\r\n Task,\r\n record_shift,\r\n Serial_number,\r\n is_shift_managed,\r\n isInferenceRunning,\r\n } = deviceDetails;\r\n\r\n if (!isTaskSet(Task)) return;\r\n if (!isTrainedTask(Task)) return;\r\n if (isShiftBeingManaged(is_shift_managed, 'task')) return;\r\n if (isShiftBeingRecorded(record_shift)) return;\r\n\r\n const payload = {\r\n isInferenceRunning: !isInferenceRunning,\r\n };\r\n if (isInferenceRunning) payload['recordInference'] = false;\r\n else payload['recordInference'] = true;\r\n\r\n await updateDeviceSettingsAndActiveDevices({\r\n id,\r\n Serial_number,\r\n key: Object.keys(payload),\r\n value: Object.values(payload),\r\n });\r\n }\r\n\r\n function isTrainedTask(taskId) {\r\n const isTaskTrained = trainedTasks.value.some((task) => task.id === taskId);\r\n !isTaskTrained && toast.info('Cannot start inference on Un-trained Task!');\r\n return isTaskTrained;\r\n }\r\n\r\n function isShiftBeingRecorded(record_shift, action = 'start') {\r\n record_shift &&\r\n toast.info(`Cannot ${action} task when shift is being recorded!`);\r\n return record_shift;\r\n }\r\n\r\n function handleChangeTask(record, taskId) {\r\n taskInputRefs.value[record.Serial_number]?.blur();\r\n updateDeviceSettings({ ...record, key: 'Task', value: taskId });\r\n }\r\n\r\n // Scheduling\r\n function showScheduleModal(deviceDetails, action) {\r\n const days_of_week = getDaysOfWeek(deviceDetails, action);\r\n const { start, end } = getStartEndTimeToPopulate(deviceDetails, action);\r\n startEndTime.value = [start, end];\r\n selectedDays.value = JSON.parse(days_of_week);\r\n showSchedule.value = true;\r\n deviceToSchedule.value = deviceDetails;\r\n }\r\n\r\n function getDaysOfWeek(deviceDetails, action) {\r\n if (action === 'recording') return deviceDetails.day_of_week_for_recording;\r\n if (action === 'inference') return deviceDetails.day_of_week_for_inference;\r\n return '[]';\r\n }\r\n\r\n function getStartEndTimeToPopulate(deviceDetails, action) {\r\n let start = null;\r\n let end = null;\r\n\r\n const {\r\n start_recording_time,\r\n end_recording_time,\r\n shift_start_time,\r\n shift_end_time,\r\n } = deviceDetails;\r\n if (action === 'recording') {\r\n start = dateHelper.getTimeFromDate(start_recording_time);\r\n end = dateHelper.getTimeFromDate(end_recording_time);\r\n } else if (action === 'inference') {\r\n start = dateHelper.getTimeFromDate(shift_start_time);\r\n end = dateHelper.getTimeFromDate(shift_end_time);\r\n }\r\n return { start, end };\r\n }\r\n\r\n async function scheduleRecording() {\r\n isScheduling.value = true;\r\n const { id, Serial_number, isInferenceRunning } = deviceToSchedule.value;\r\n const payload = getSchedulePayload('recording');\r\n\r\n if (isInGuidanceMode(isInferenceRunning, 'schedule')) {\r\n isScheduling.value = false;\r\n return;\r\n }\r\n\r\n await updateDeviceSettingsAndActiveDevices({\r\n id,\r\n Serial_number,\r\n key: payload.keys,\r\n value: payload.values,\r\n });\r\n showSchedule.value = false;\r\n isScheduling.value = false;\r\n }\r\n\r\n async function scheduleInference() {\r\n isScheduling.value = true;\r\n const { id, Serial_number, record_shift } = deviceToSchedule.value;\r\n const payload = getSchedulePayload('inference');\r\n if (isShiftBeingRecorded(record_shift, 'schedule')) {\r\n isScheduling.value = false;\r\n return;\r\n }\r\n\r\n await updateDeviceSettingsAndActiveDevices({\r\n id,\r\n Serial_number,\r\n key: payload.keys,\r\n value: payload.values,\r\n });\r\n showSchedule.value = false;\r\n isScheduling.value = false;\r\n }\r\n\r\n function getSchedulePayload(action) {\r\n const [start, end] = getStartEndTimeForSchedule();\r\n const payload = {\r\n // is_shift_managed: true,\r\n start_recording_time: null,\r\n end_recording_time: null,\r\n shift_start_time: null,\r\n shift_end_time: null,\r\n };\r\n if (action === 'recording') {\r\n payload['start_recording_time'] = start;\r\n payload['end_recording_time'] = end;\r\n payload['day_of_week_for_recording'] = JSON.stringify(selectedDays.value);\r\n } else if (action === 'inference') {\r\n payload['shift_start_time'] = start;\r\n payload['shift_end_time'] = end;\r\n payload['day_of_week_for_inference'] = JSON.stringify(selectedDays.value);\r\n }\r\n return { keys: Object.keys(payload), values: Object.values(payload) };\r\n }\r\n\r\n function getStartEndTimeForSchedule() {\r\n if (!startEndTime.value) return [null, null];\r\n const [start, end] = startEndTime.value;\r\n if (!start.$d && !end.$d) {\r\n toast.info('Schedule time is not properly selected!');\r\n isScheduling.value = false;\r\n return;\r\n }\r\n const startDate = dateHelper.getFormattedDate(start.$d);\r\n const endDate = dateHelper.getFormattedDate(end.$d);\r\n const [startTime] = new Date(start.$d).toTimeString().split(' ');\r\n const [endTime] = new Date(end.$d).toTimeString().split(' ');\r\n return [startDate + 'T' + startTime, endDate + 'T' + endTime];\r\n }\r\n\r\n return {\r\n taskOptions,\r\n updateDevice,\r\n isLoadingTasks,\r\n devicesDetails,\r\n handleRecording,\r\n handleInference,\r\n isLoadingDevices,\r\n showSchedule,\r\n showScheduleModal,\r\n activeDevicesList,\r\n activeDevices,\r\n scheduleRecording,\r\n scheduleInference,\r\n updateDeviceSettings,\r\n updateDeviceSettingsAndActiveDevices,\r\n isScheduling,\r\n selectedDays,\r\n startEndTime,\r\n activeDevicesCount,\r\n taskInputRefs,\r\n handleChangeTask,\r\n };\r\n}\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar START_BIN = exports.START_BIN = '1010';\nvar END_BIN = exports.END_BIN = '11101';\n\nvar BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'];","import { render } from \"./Heatmap.vue?vue&type=template&id=b2535054\"\nconst script = {}\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// This icon file is generated automatically.\nvar HistoryOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z\" } }] }, \"name\": \"history\", \"theme\": \"outlined\" };\nexport default HistoryOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport HistoryOutlinedSvg from \"@ant-design/icons-svg/es/asn/HistoryOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar HistoryOutlined = function HistoryOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": HistoryOutlinedSvg\n }), null);\n};\n\nHistoryOutlined.displayName = 'HistoryOutlined';\nHistoryOutlined.inheritAttrs = false;\nexport default HistoryOutlined;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LabelObjects.vue?vue&type=style&index=0&id=3cc7daba&scoped=true&lang=css\"","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n var WRAP_CLASS = \"CodeMirror-activeline\";\n var BACK_CLASS = \"CodeMirror-activeline-background\";\n var GUTT_CLASS = \"CodeMirror-activeline-gutter\";\n\n CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n var prev = old == CodeMirror.Init ? false : old;\n if (val == prev) return\n if (prev) {\n cm.off(\"beforeSelectionChange\", selectionChange);\n clearActiveLines(cm);\n delete cm.state.activeLines;\n }\n if (val) {\n cm.state.activeLines = [];\n updateActiveLines(cm, cm.listSelections());\n cm.on(\"beforeSelectionChange\", selectionChange);\n }\n });\n\n function clearActiveLines(cm) {\n for (var i = 0; i < cm.state.activeLines.length; i++) {\n cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"gutter\", GUTT_CLASS);\n }\n }\n\n function sameArray(a, b) {\n if (a.length != b.length) return false;\n for (var i = 0; i < a.length; i++)\n if (a[i] != b[i]) return false;\n return true;\n }\n\n function updateActiveLines(cm, ranges) {\n var active = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var option = cm.getOption(\"styleActiveLine\");\n if (typeof option == \"object\" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())\n continue\n var line = cm.getLineHandleVisualStart(range.head.line);\n if (active[active.length - 1] != line) active.push(line);\n }\n if (sameArray(cm.state.activeLines, active)) return;\n cm.operation(function() {\n clearActiveLines(cm);\n for (var i = 0; i < active.length; i++) {\n cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n cm.addLineClass(active[i], \"background\", BACK_CLASS);\n cm.addLineClass(active[i], \"gutter\", GUTT_CLASS);\n }\n cm.state.activeLines = active;\n });\n }\n\n function selectionChange(cm, sel) {\n updateActiveLines(cm, sel.ranges);\n }\n});\n","// This icon file is generated automatically.\nvar CloudUploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M518.3 459a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z\" } }] }, \"name\": \"cloud-upload\", \"theme\": \"outlined\" };\nexport default CloudUploadOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CloudUploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloudUploadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloudUploadOutlined = function CloudUploadOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CloudUploadOutlinedSvg\n }), null);\n};\n\nCloudUploadOutlined.displayName = 'CloudUploadOutlined';\nCloudUploadOutlined.inheritAttrs = false;\nexport default CloudUploadOutlined;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CodeEditor.vue?vue&type=style&index=0&id=1d533835&scoped=true&lang=css\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.CODE39 = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Code_39#Encoding\n\nvar CODE39 = function (_Barcode) {\n\t_inherits(CODE39, _Barcode);\n\n\tfunction CODE39(data, options) {\n\t\t_classCallCheck(this, CODE39);\n\n\t\tdata = data.toUpperCase();\n\n\t\t// Calculate mod43 checksum if enabled\n\t\tif (options.mod43) {\n\t\t\tdata += getCharacter(mod43checksum(data));\n\t\t}\n\n\t\treturn _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options));\n\t}\n\n\t_createClass(CODE39, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\t// First character is always a *\n\t\t\tvar result = getEncoding(\"*\");\n\n\t\t\t// Take every character and add the binary representation to the result\n\t\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t\tresult += getEncoding(this.data[i]) + \"0\";\n\t\t\t}\n\n\t\t\t// Last character is always a *\n\t\t\tresult += getEncoding(\"*\");\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9A-Z\\-\\.\\ \\$\\/\\+\\%]+$/) !== -1;\n\t\t}\n\t}]);\n\n\treturn CODE39;\n}(_Barcode3.default);\n\n// All characters. The position in the array is the (checksum) value\n\n\nvar characters = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"-\", \".\", \" \", \"$\", \"/\", \"+\", \"%\", \"*\"];\n\n// The decimal representation of the characters, is converted to the\n// corresponding binary with the getEncoding function\nvar encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770];\n\n// Get the binary representation of a character by converting the encodings\n// from decimal to binary\nfunction getEncoding(character) {\n\treturn getBinary(characterValue(character));\n}\n\nfunction getBinary(characterValue) {\n\treturn encodings[characterValue].toString(2);\n}\n\nfunction getCharacter(characterValue) {\n\treturn characters[characterValue];\n}\n\nfunction characterValue(character) {\n\treturn characters.indexOf(character);\n}\n\nfunction mod43checksum(data) {\n\tvar checksum = 0;\n\tfor (var i = 0; i < data.length; i++) {\n\t\tchecksum += characterValue(data[i]);\n\t}\n\n\tchecksum = checksum % 43;\n\treturn checksum;\n}\n\nexports.CODE39 = CODE39;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SubStepTimes.vue?vue&type=style&index=0&id=16145714&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ITF = function (_Barcode) {\n\t_inherits(ITF, _Barcode);\n\n\tfunction ITF() {\n\t\t_classCallCheck(this, ITF);\n\n\t\treturn _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments));\n\t}\n\n\t_createClass(ITF, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^([0-9]{2})+$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Calculate all the digit pairs\n\t\t\tvar encoded = this.data.match(/.{2}/g).map(function (pair) {\n\t\t\t\treturn _this2.encodePair(pair);\n\t\t\t}).join('');\n\n\t\t\treturn {\n\t\t\t\tdata: _constants.START_BIN + encoded + _constants.END_BIN,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\n\t\t// Calculate the data of a number pair\n\n\t}, {\n\t\tkey: 'encodePair',\n\t\tvalue: function encodePair(pair) {\n\t\t\tvar second = _constants.BINARIES[pair[1]];\n\n\t\t\treturn _constants.BINARIES[pair[0]].split('').map(function (first, idx) {\n\t\t\t\treturn (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0');\n\t\t\t}).join('');\n\t\t}\n\t}]);\n\n\treturn ITF;\n}(_Barcode3.default);\n\nexports.default = ITF;","// This icon file is generated automatically.\nvar FormOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z\" } }] }, \"name\": \"form\", \"theme\": \"outlined\" };\nexport default FormOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FormOutlinedSvg from \"@ant-design/icons-svg/es/asn/FormOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FormOutlined = function FormOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FormOutlinedSvg\n }), null);\n};\n\nFormOutlined.displayName = 'FormOutlined';\nFormOutlined.inheritAttrs = false;\nexport default FormOutlined;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MainProcess.vue?vue&type=style&index=0&id=04d81e34&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI11 = function (_MSI) {\n\t_inherits(MSI11, _MSI);\n\n\tfunction MSI11(data, options) {\n\t\t_classCallCheck(this, MSI11);\n\n\t\treturn _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options));\n\t}\n\n\treturn MSI11;\n}(_MSI3.default);\n\nexports.default = MSI11;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./joystickComponent.vue?vue&type=style&index=0&id=74d86cd9&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI10 = function (_MSI) {\n\t_inherits(MSI10, _MSI);\n\n\tfunction MSI10(data, options) {\n\t\t_classCallCheck(this, MSI10);\n\n\t\treturn _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options));\n\t}\n\n\treturn MSI10;\n}(_MSI3.default);\n\nexports.default = MSI10;","// This icon file is generated automatically.\nvar TagsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z\" } }] }, \"name\": \"tags\", \"theme\": \"outlined\" };\nexport default TagsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport TagsOutlinedSvg from \"@ant-design/icons-svg/es/asn/TagsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar TagsOutlined = function TagsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": TagsOutlinedSvg\n }), null);\n};\n\nTagsOutlined.displayName = 'TagsOutlined';\nTagsOutlined.inheritAttrs = false;\nexport default TagsOutlined;","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n if (force === \"fold\") return range;\n\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), { scanUp: false }, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), { scanUp: false }, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// This is the master class,\n// it does require the start code to be included in the string\nvar CODE128 = function (_Barcode) {\n\t_inherits(CODE128, _Barcode);\n\n\tfunction CODE128(data, options) {\n\t\t_classCallCheck(this, CODE128);\n\n\t\t// Get array of ascii codes from data\n\t\tvar _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options));\n\n\t\t_this.bytes = data.split('').map(function (char) {\n\t\t\treturn char.charCodeAt(0);\n\t\t});\n\t\treturn _this;\n\t}\n\n\t_createClass(CODE128, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\t// ASCII value ranges 0-127, 200-211\n\t\t\treturn (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(this.data)\n\t\t\t);\n\t\t}\n\n\t\t// The public encoding function\n\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar bytes = this.bytes;\n\t\t\t// Remove the start code from the bytes and set its index\n\t\t\tvar startIndex = bytes.shift() - 105;\n\t\t\t// Get start set by index\n\t\t\tvar startSet = _constants.SET_BY_CODE[startIndex];\n\n\t\t\tif (startSet === undefined) {\n\t\t\t\tthrow new RangeError('The encoding does not start with a start character.');\n\t\t\t}\n\n\t\t\tif (this.shouldEncodeAsEan128() === true) {\n\t\t\t\tbytes.unshift(_constants.FNC1);\n\t\t\t}\n\n\t\t\t// Start encode with the right type\n\t\t\tvar encodingResult = CODE128.next(bytes, 1, startSet);\n\n\t\t\treturn {\n\t\t\t\ttext: this.text === this.data ? this.text.replace(/[^\\x20-\\x7E]/g, '') : this.text,\n\t\t\t\tdata:\n\t\t\t\t// Add the start bits\n\t\t\t\tCODE128.getBar(startIndex) +\n\t\t\t\t// Add the encoded bits\n\t\t\t\tencodingResult.result +\n\t\t\t\t// Add the checksum\n\t\t\t\tCODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) +\n\t\t\t\t// Add the end bits\n\t\t\t\tCODE128.getBar(_constants.STOP)\n\t\t\t};\n\t\t}\n\n\t\t// GS1-128/EAN-128\n\n\t}, {\n\t\tkey: 'shouldEncodeAsEan128',\n\t\tvalue: function shouldEncodeAsEan128() {\n\t\t\tvar isEAN128 = this.options.ean128 || false;\n\t\t\tif (typeof isEAN128 === 'string') {\n\t\t\t\tisEAN128 = isEAN128.toLowerCase() === 'true';\n\t\t\t}\n\t\t\treturn isEAN128;\n\t\t}\n\n\t\t// Get a bar symbol by index\n\n\t}], [{\n\t\tkey: 'getBar',\n\t\tvalue: function getBar(index) {\n\t\t\treturn _constants.BARS[index] ? _constants.BARS[index].toString() : '';\n\t\t}\n\n\t\t// Correct an index by a set and shift it from the bytes array\n\n\t}, {\n\t\tkey: 'correctIndex',\n\t\tvalue: function correctIndex(bytes, set) {\n\t\t\tif (set === _constants.SET_A) {\n\t\t\t\tvar charCode = bytes.shift();\n\t\t\t\treturn charCode < 32 ? charCode + 64 : charCode - 32;\n\t\t\t} else if (set === _constants.SET_B) {\n\t\t\t\treturn bytes.shift() - 32;\n\t\t\t} else {\n\t\t\t\treturn (bytes.shift() - 48) * 10 + bytes.shift() - 48;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'next',\n\t\tvalue: function next(bytes, pos, set) {\n\t\t\tif (!bytes.length) {\n\t\t\t\treturn { result: '', checksum: 0 };\n\t\t\t}\n\n\t\t\tvar nextCode = void 0,\n\t\t\t index = void 0;\n\n\t\t\t// Special characters\n\t\t\tif (bytes[0] >= 200) {\n\t\t\t\tindex = bytes.shift() - 105;\n\t\t\t\tvar nextSet = _constants.SWAP[index];\n\n\t\t\t\t// Swap to other set\n\t\t\t\tif (nextSet !== undefined) {\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, nextSet);\n\t\t\t\t}\n\t\t\t\t// Continue on current set but encode a special character\n\t\t\t\telse {\n\t\t\t\t\t\t// Shift\n\t\t\t\t\t\tif ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) {\n\t\t\t\t\t\t\t// Convert the next character so that is encoded correctly\n\t\t\t\t\t\t\tbytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t\t}\n\t\t\t}\n\t\t\t// Continue encoding\n\t\t\telse {\n\t\t\t\t\tindex = CODE128.correctIndex(bytes, set);\n\t\t\t\t\tnextCode = CODE128.next(bytes, pos + 1, set);\n\t\t\t\t}\n\n\t\t\t// Get the correct binary encoding and calculate the weight\n\t\t\tvar enc = CODE128.getBar(index);\n\t\t\tvar weight = index * pos;\n\n\t\t\treturn {\n\t\t\t\tresult: enc + nextCode.result,\n\t\t\t\tchecksum: weight + nextCode.checksum\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn CODE128;\n}(_Barcode3.default);\n\nexports.default = CODE128;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ObjectRenderer = function () {\n\tfunction ObjectRenderer(object, encodings, options) {\n\t\t_classCallCheck(this, ObjectRenderer);\n\n\t\tthis.object = object;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(ObjectRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tthis.object.encodings = this.encodings;\n\t\t}\n\t}]);\n\n\treturn ObjectRenderer;\n}();\n\nexports.default = ObjectRenderer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = optionsFromStrings;\n\n// Convert string to integers/booleans where it should be\n\nfunction optionsFromStrings(options) {\n\tvar intOptions = [\"width\", \"height\", \"textMargin\", \"fontSize\", \"margin\", \"marginTop\", \"marginBottom\", \"marginLeft\", \"marginRight\"];\n\n\tfor (var intOption in intOptions) {\n\t\tif (intOptions.hasOwnProperty(intOption)) {\n\t\t\tintOption = intOptions[intOption];\n\t\t\tif (typeof options[intOption] === \"string\") {\n\t\t\t\toptions[intOption] = parseInt(options[intOption], 10);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (typeof options[\"displayValue\"] === \"string\") {\n\t\toptions[\"displayValue\"] = options[\"displayValue\"] != \"false\";\n\t}\n\n\treturn options;\n}","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt(rootNode) {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var doc = rootNode.ownerDocument || rootNode;\n var activeElement;\n try {\n activeElement = rootNode.activeElement;\n } catch(e) {\n activeElement = doc.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function doc(cm) { return cm.display.wrapper.ownerDocument }\n\n function root(cm) {\n return rootNode(cm.display.wrapper)\n }\n\n function rootNode(element) {\n // Detect modern browsers (2017+).\n return element.getRootNode ? element.getRootNode() : element.ownerDocument\n }\n\n function win(cm) { return doc(cm).defaultView }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX(doc) {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(doc.body.getBoundingClientRect().left - parseInt(getComputedStyle(doc.body).marginLeft)) }\n return doc.defaultView.pageXOffset || (doc.documentElement || doc.body).scrollLeft\n }\n function pageScrollY(doc) {\n if (chrome && android) { return -(doc.body.getBoundingClientRect().top - parseInt(getComputedStyle(doc.body).marginTop)) }\n return doc.defaultView.pageYOffset || (doc.documentElement || doc.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY(doc(cm)));\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX(doc(cm)));\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX(doc(cm));\n top -= pageScrollY(doc(cm));\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n var doc = display.wrapper.ownerDocument;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (doc.defaultView.innerHeight || doc.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt(root(cm));\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt(root(cm));\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = win(cm).getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt(rootNode(snapshot.activeElt))) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var doc = snapshot.activeElt.ownerDocument;\n var sel = doc.defaultView.getSelection(), range = doc.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n // See #6982. FIXME remove when this has been fixed for a while in Chrome\n if (chrome && chrome_version >= 105) { d.wrapper.style.clipPath = \"inset(0px)\"; }\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version == 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt(root(cm));\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n win(cm).focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(root(cm)); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt(root(cm));\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"on\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"on\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){win(this).focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt(root(this)) },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, win(cm).innerHeight || doc(cm).documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n disableBrowserMagic(te);\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt(rootNode(div));\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt(rootNode(this.div)) == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt(rootNode(this.div)) != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n this.resetting = false;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n var opts = this.cm.options;\n disableBrowserMagic(this.textarea, opts.spellcheck, opts.autocorrect, opts.autocapitalize);\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing && typing) { return }\n var cm = this.cm;\n this.resetting = true;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n this.resetting = false;\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt(rootNode(this.textarea)) != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || this.resetting || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = te.ownerDocument.defaultView.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { te.ownerDocument.defaultView.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt(rootNode(textarea));\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.16\";\n\n return CodeMirror;\n\n})));\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Encode data string\nvar encode = function encode(data, structure, separator) {\n\tvar encoded = data.split('').map(function (val, idx) {\n\t\treturn _constants.BINARIES[structure[idx]];\n\t}).map(function (val, idx) {\n\t\treturn val ? val[data[idx]] : '';\n\t});\n\n\tif (separator) {\n\t\tvar last = data.length - 1;\n\t\tencoded = encoded.map(function (val, idx) {\n\t\t\treturn idx < last ? val + separator : val;\n\t\t});\n\t}\n\n\treturn encoded.join('');\n};\n\nexports.default = encode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_5#Encoding\n\nvar checksum = function checksum(data) {\n\tvar result = data.split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 9 : sum + a * 3;\n\t}, 0);\n\treturn result % 10;\n};\n\nvar EAN5 = function (_Barcode) {\n\t_inherits(EAN5, _Barcode);\n\n\tfunction EAN5(data, options) {\n\t\t_classCallCheck(this, EAN5);\n\n\t\treturn _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options));\n\t}\n\n\t_createClass(EAN5, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{5}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tvar structure = _constants.EAN5_STRUCTURE[checksum(this.data)];\n\t\t\treturn {\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN5;\n}(_Barcode3.default);\n\nexports.default = EAN5;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProcessStepTable.vue?vue&type=style&index=0&id=4c8358f9&lang=css\"","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar UploadOutlined = function UploadOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": UploadOutlinedSvg\n }), null);\n};\n\nUploadOutlined.displayName = 'UploadOutlined';\nUploadOutlined.inheritAttrs = false;\nexport default UploadOutlined;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SignalTower.vue?vue&type=style&index=0&id=5371b6ed&lang=css\"","'use strict';\n\nvar _barcodes = require('./barcodes/');\n\nvar _barcodes2 = _interopRequireDefault(_barcodes);\n\nvar _merge = require('./help/merge.js');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _linearizeEncodings = require('./help/linearizeEncodings.js');\n\nvar _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings);\n\nvar _fixOptions = require('./help/fixOptions.js');\n\nvar _fixOptions2 = _interopRequireDefault(_fixOptions);\n\nvar _getRenderProperties = require('./help/getRenderProperties.js');\n\nvar _getRenderProperties2 = _interopRequireDefault(_getRenderProperties);\n\nvar _optionsFromStrings = require('./help/optionsFromStrings.js');\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _ErrorHandler = require('./exceptions/ErrorHandler.js');\n\nvar _ErrorHandler2 = _interopRequireDefault(_ErrorHandler);\n\nvar _exceptions = require('./exceptions/exceptions.js');\n\nvar _defaults = require('./options/defaults.js');\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The protype of the object returned from the JsBarcode() call\n\n\n// Help functions\nvar API = function API() {};\n\n// The first call of the library API\n// Will return an object with all barcodes calls and the data that is used\n// by the renderers\n\n\n// Default values\n\n\n// Exceptions\n// Import all the barcodes\nvar JsBarcode = function JsBarcode(element, text, options) {\n\tvar api = new API();\n\n\tif (typeof element === \"undefined\") {\n\t\tthrow Error(\"No element to render on was provided.\");\n\t}\n\n\t// Variables that will be pased through the API calls\n\tapi._renderProperties = (0, _getRenderProperties2.default)(element);\n\tapi._encodings = [];\n\tapi._options = _defaults2.default;\n\tapi._errorHandler = new _ErrorHandler2.default(api);\n\n\t// If text is set, use the simple syntax (render the barcode directly)\n\tif (typeof text !== \"undefined\") {\n\t\toptions = options || {};\n\n\t\tif (!options.format) {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tapi.options(options)[options.format](text, options).render();\n\t}\n\n\treturn api;\n};\n\n// To make tests work TODO: remove\nJsBarcode.getModule = function (name) {\n\treturn _barcodes2.default[name];\n};\n\n// Register all barcodes\nfor (var name in _barcodes2.default) {\n\tif (_barcodes2.default.hasOwnProperty(name)) {\n\t\t// Security check if the propery is a prototype property\n\t\tregisterBarcode(_barcodes2.default, name);\n\t}\n}\nfunction registerBarcode(barcodes, name) {\n\tAPI.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) {\n\t\tvar api = this;\n\t\treturn api._errorHandler.wrapBarcodeCall(function () {\n\t\t\t// Ensure text is options.text\n\t\t\toptions.text = typeof options.text === 'undefined' ? undefined : '' + options.text;\n\n\t\t\tvar newOptions = (0, _merge2.default)(api._options, options);\n\t\t\tnewOptions = (0, _optionsFromStrings2.default)(newOptions);\n\t\t\tvar Encoder = barcodes[name];\n\t\t\tvar encoded = encode(text, Encoder, newOptions);\n\t\t\tapi._encodings.push(encoded);\n\n\t\t\treturn api;\n\t\t});\n\t};\n}\n\n// encode() handles the Encoder call and builds the binary string to be rendered\nfunction encode(text, Encoder, options) {\n\t// Ensure that text is a string\n\ttext = \"\" + text;\n\n\tvar encoder = new Encoder(text, options);\n\n\t// If the input is not valid for the encoder, throw error.\n\t// If the valid callback option is set, call it instead of throwing error\n\tif (!encoder.valid()) {\n\t\tthrow new _exceptions.InvalidInputException(encoder.constructor.name, text);\n\t}\n\n\t// Make a request for the binary data (and other infromation) that should be rendered\n\tvar encoded = encoder.encode();\n\n\t// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n\t// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\tencoded = (0, _linearizeEncodings2.default)(encoded);\n\n\t// Merge\n\tfor (var i = 0; i < encoded.length; i++) {\n\t\tencoded[i].options = (0, _merge2.default)(options, encoded[i].options);\n\t}\n\n\treturn encoded;\n}\n\nfunction autoSelectBarcode() {\n\t// If CODE128 exists. Use it\n\tif (_barcodes2.default[\"CODE128\"]) {\n\t\treturn \"CODE128\";\n\t}\n\n\t// Else, take the first (probably only) barcode\n\treturn Object.keys(_barcodes2.default)[0];\n}\n\n// Sets global encoder options\n// Added to the api by the JsBarcode function\nAPI.prototype.options = function (options) {\n\tthis._options = (0, _merge2.default)(this._options, options);\n\treturn this;\n};\n\n// Will create a blank space (usually in between barcodes)\nAPI.prototype.blank = function (size) {\n\tvar zeroes = new Array(size + 1).join(\"0\");\n\tthis._encodings.push({ data: zeroes });\n\treturn this;\n};\n\n// Initialize JsBarcode on all HTML elements defined.\nAPI.prototype.init = function () {\n\t// Should do nothing if no elements where found\n\tif (!this._renderProperties) {\n\t\treturn;\n\t}\n\n\t// Make sure renderProperies is an array\n\tif (!Array.isArray(this._renderProperties)) {\n\t\tthis._renderProperties = [this._renderProperties];\n\t}\n\n\tvar renderProperty;\n\tfor (var i in this._renderProperties) {\n\t\trenderProperty = this._renderProperties[i];\n\t\tvar options = (0, _merge2.default)(this._options, renderProperty.options);\n\n\t\tif (options.format == \"auto\") {\n\t\t\toptions.format = autoSelectBarcode();\n\t\t}\n\n\t\tthis._errorHandler.wrapBarcodeCall(function () {\n\t\t\tvar text = options.value;\n\t\t\tvar Encoder = _barcodes2.default[options.format.toUpperCase()];\n\t\t\tvar encoded = encode(text, Encoder, options);\n\n\t\t\trender(renderProperty, encoded, options);\n\t\t});\n\t}\n};\n\n// The render API call. Calls the real render function.\nAPI.prototype.render = function () {\n\tif (!this._renderProperties) {\n\t\tthrow new _exceptions.NoElementException();\n\t}\n\n\tif (Array.isArray(this._renderProperties)) {\n\t\tfor (var i = 0; i < this._renderProperties.length; i++) {\n\t\t\trender(this._renderProperties[i], this._encodings, this._options);\n\t\t}\n\t} else {\n\t\trender(this._renderProperties, this._encodings, this._options);\n\t}\n\n\treturn this;\n};\n\nAPI.prototype._defaults = _defaults2.default;\n\n// Prepares the encodings and calls the renderer\nfunction render(renderProperties, encodings, options) {\n\tencodings = (0, _linearizeEncodings2.default)(encodings);\n\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tencodings[i].options = (0, _merge2.default)(options, encodings[i].options);\n\t\t(0, _fixOptions2.default)(encodings[i].options);\n\t}\n\n\t(0, _fixOptions2.default)(options);\n\n\tvar Renderer = renderProperties.renderer;\n\tvar renderer = new Renderer(renderProperties.element, encodings, options);\n\trenderer.render();\n\n\tif (renderProperties.afterRender) {\n\t\trenderProperties.afterRender();\n\t}\n}\n\n// Export to browser\nif (typeof window !== \"undefined\") {\n\twindow.JsBarcode = JsBarcode;\n}\n\n// Export to jQuery\n/*global jQuery */\nif (typeof jQuery !== 'undefined') {\n\tjQuery.fn.JsBarcode = function (content, options) {\n\t\tvar elementArray = [];\n\t\tjQuery(this).each(function () {\n\t\t\telementArray.push(this);\n\t\t});\n\t\treturn JsBarcode(elementArray, content, options);\n\t};\n}\n\n// Export to commonJS\nmodule.exports = JsBarcode;","import ApiHelper from './index';\r\n\r\nconst getLongRunningTasks = async (spinner = true, queryParams = {}) => {\r\n return await ApiHelper.get(\r\n 'generic/long_running_task/',\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nconst createLongRunningTasks = async (payload, spinner = false) => {\r\n return await ApiHelper.post('generic/long_running_task/', payload, spinner);\r\n};\r\n\r\nconst getLongRunningTaskById = async (id, spinner = true, queryParams = {}) => {\r\n return await ApiHelper.get(\r\n `generic/long_running_task/${id}/`,\r\n spinner,\r\n queryParams\r\n );\r\n};\r\n\r\nexport default {\r\n getLongRunningTasks,\r\n createLongRunningTasks,\r\n getLongRunningTaskById,\r\n};\r\n","/**\n * Diff Match and Patch\n * Copyright 2018 The diff-match-patch Authors.\n * https://github.com/google/diff-match-patch\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\n/**\n * @fileoverview Computes the difference between two texts to create a patch.\n * Applies the patch onto another text, allowing for errors.\n * @author fraser@google.com (Neil Fraser)\n */\n\n/**\n * Class containing the diff, match and patch methods.\n * @constructor\n */\nvar diff_match_patch = function() {\n\n // Defaults.\n // Redefine these in your program to override the defaults.\n\n // Number of seconds to map a diff before giving up (0 for infinity).\n this.Diff_Timeout = 1.0;\n // Cost of an empty edit operation in terms of edit characters.\n this.Diff_EditCost = 4;\n // At what point is no match declared (0.0 = perfection, 1.0 = very loose).\n this.Match_Threshold = 0.5;\n // How far to search for a match (0 = exact location, 1000+ = broad match).\n // A match this many characters away from the expected location will add\n // 1.0 to the score (0.0 is a perfect match).\n this.Match_Distance = 1000;\n // When deleting a large block of text (over ~64 characters), how close do\n // the contents have to be to match the expected contents. (0.0 = perfection,\n // 1.0 = very loose). Note that Match_Threshold controls how closely the\n // end points of a delete need to match.\n this.Patch_DeleteThreshold = 0.5;\n // Chunk size for context length.\n this.Patch_Margin = 4;\n\n // The number of bits in an int.\n this.Match_MaxBits = 32;\n};\n\n\n// DIFF FUNCTIONS\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n/**\n * Class representing one diff tuple.\n * ~Attempts to look like a two-element array (which is what this used to be).~\n * Constructor returns an actual two-element array, to allow destructing @JackuB\n * See https://github.com/JackuB/diff-match-patch/issues/14 for details\n * @param {number} op Operation, one of: DIFF_DELETE, DIFF_INSERT, DIFF_EQUAL.\n * @param {string} text Text to be deleted, inserted, or retained.\n * @constructor\n */\ndiff_match_patch.Diff = function(op, text) {\n return [op, text];\n};\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {boolean=} opt_checklines Optional speedup flag. If present and false,\n * then don't run a line-level diff first to identify the changed areas.\n * Defaults to true, which does a faster, slightly less optimal diff.\n * @param {number=} opt_deadline Optional time when the diff should be complete\n * by. Used internally for recursive calls. Users should set DiffTimeout\n * instead.\n * @return {!Array.} Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines,\n opt_deadline) {\n // Set a deadline by which time the diff must be complete.\n if (typeof opt_deadline == 'undefined') {\n if (this.Diff_Timeout <= 0) {\n opt_deadline = Number.MAX_VALUE;\n } else {\n opt_deadline = (new Date).getTime() + this.Diff_Timeout * 1000;\n }\n }\n var deadline = opt_deadline;\n\n // Check for null inputs.\n if (text1 == null || text2 == null) {\n throw new Error('Null input. (diff_main)');\n }\n\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [new diff_match_patch.Diff(DIFF_EQUAL, text1)];\n }\n return [];\n }\n\n if (typeof opt_checklines == 'undefined') {\n opt_checklines = true;\n }\n var checklines = opt_checklines;\n\n // Trim off common prefix (speedup).\n var commonlength = this.diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = this.diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = this.diff_compute_(text1, text2, checklines, deadline);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, commonprefix));\n }\n if (commonsuffix) {\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, commonsuffix));\n }\n this.diff_cleanupMerge(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {boolean} checklines Speedup flag. If false, then don't run a\n * line-level diff first to identify the changed areas.\n * If true, then run a faster, slightly less optimal diff.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines,\n deadline) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [new diff_match_patch.Diff(DIFF_INSERT, text2)];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [new diff_match_patch.Diff(DIFF_DELETE, text1)];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [new diff_match_patch.Diff(DIFF_INSERT, longtext.substring(0, i)),\n new diff_match_patch.Diff(DIFF_EQUAL, shorttext),\n new diff_match_patch.Diff(DIFF_INSERT,\n longtext.substring(i + shorttext.length))];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [new diff_match_patch.Diff(DIFF_DELETE, text1),\n new diff_match_patch.Diff(DIFF_INSERT, text2)];\n }\n\n // Check to see if the problem can be split in two.\n var hm = this.diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = this.diff_main(text1_a, text2_a, checklines, deadline);\n var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline);\n // Merge the results.\n return diffs_a.concat([new diff_match_patch.Diff(DIFF_EQUAL, mid_common)],\n diffs_b);\n }\n\n if (checklines && text1.length > 100 && text2.length > 100) {\n return this.diff_lineMode_(text1, text2, deadline);\n }\n\n return this.diff_bisect_(text1, text2, deadline);\n};\n\n\n/**\n * Do a quick line-level diff on both strings, then rediff the parts for\n * greater accuracy.\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) {\n // Scan the text on a line-by-line basis first.\n var a = this.diff_linesToChars_(text1, text2);\n text1 = a.chars1;\n text2 = a.chars2;\n var linearray = a.lineArray;\n\n var diffs = this.diff_main(text1, text2, false, deadline);\n\n // Convert the diff back to original text.\n this.diff_charsToLines_(diffs, linearray);\n // Eliminate freak matches (e.g. blank lines)\n this.diff_cleanupSemantic(diffs);\n\n // Rediff any replacement blocks, this time character-by-character.\n // Add a dummy entry at the end.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, ''));\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete >= 1 && count_insert >= 1) {\n // Delete the offending records and add the merged ones.\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert);\n pointer = pointer - count_delete - count_insert;\n var subDiff =\n this.diff_main(text_delete, text_insert, false, deadline);\n for (var j = subDiff.length - 1; j >= 0; j--) {\n diffs.splice(pointer, 0, subDiff[j]);\n }\n pointer = pointer + subDiff.length;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n pointer++;\n }\n diffs.pop(); // Remove the dummy entry at the end.\n\n return diffs;\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Bail out if deadline is reached.\n if ((new Date()).getTime() > deadline) {\n break;\n }\n\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [new diff_match_patch.Diff(DIFF_DELETE, text1),\n new diff_match_patch.Diff(DIFF_INSERT, text2)];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y,\n deadline) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = this.diff_main(text1a, text2a, false, deadline);\n var diffsb = this.diff_main(text1b, text2b, false, deadline);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Split two texts into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {{chars1: string, chars2: string, lineArray: !Array.}}\n * An object containing the encoded text1, the encoded text2 and\n * the array of unique strings.\n * The zeroth element of the array of unique strings is intentionally blank.\n * @private\n */\ndiff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) {\n var lineArray = []; // e.g. lineArray[4] == 'Hello\\n'\n var lineHash = {}; // e.g. lineHash['Hello\\n'] == 4\n\n // '\\x00' is a valid character, but various debuggers don't like it.\n // So we'll insert a junk entry to avoid generating a null character.\n lineArray[0] = '';\n\n /**\n * Split a text into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * Modifies linearray and linehash through being a closure.\n * @param {string} text String to encode.\n * @return {string} Encoded string.\n * @private\n */\n function diff_linesToCharsMunge_(text) {\n var chars = '';\n // Walk the text, pulling out a substring for each line.\n // text.split('\\n') would would temporarily double our memory footprint.\n // Modifying text would create many large strings to garbage collect.\n var lineStart = 0;\n var lineEnd = -1;\n // Keeping our own length variable is faster than looking it up.\n var lineArrayLength = lineArray.length;\n while (lineEnd < text.length - 1) {\n lineEnd = text.indexOf('\\n', lineStart);\n if (lineEnd == -1) {\n lineEnd = text.length - 1;\n }\n var line = text.substring(lineStart, lineEnd + 1);\n\n if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :\n (lineHash[line] !== undefined)) {\n chars += String.fromCharCode(lineHash[line]);\n } else {\n if (lineArrayLength == maxLines) {\n // Bail out at 65535 because\n // String.fromCharCode(65536) == String.fromCharCode(0)\n line = text.substring(lineStart);\n lineEnd = text.length;\n }\n chars += String.fromCharCode(lineArrayLength);\n lineHash[line] = lineArrayLength;\n lineArray[lineArrayLength++] = line;\n }\n lineStart = lineEnd + 1;\n }\n return chars;\n }\n // Allocate 2/3rds of the space for text1, the rest for text2.\n var maxLines = 40000;\n var chars1 = diff_linesToCharsMunge_(text1);\n maxLines = 65535;\n var chars2 = diff_linesToCharsMunge_(text2);\n return {chars1: chars1, chars2: chars2, lineArray: lineArray};\n};\n\n\n/**\n * Rehydrate the text in a diff from a string of line hashes to real lines of\n * text.\n * @param {!Array.} diffs Array of diff tuples.\n * @param {!Array.} lineArray Array of unique strings.\n * @private\n */\ndiff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) {\n for (var i = 0; i < diffs.length; i++) {\n var chars = diffs[i][1];\n var text = [];\n for (var j = 0; j < chars.length; j++) {\n text[j] = lineArray[chars.charCodeAt(j)];\n }\n diffs[i][1] = text.join('');\n }\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\ndiff_match_patch.prototype.diff_commonPrefix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: https://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\ndiff_match_patch.prototype.diff_commonSuffix = function(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: https://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine if the suffix of one string is the prefix of another.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of the first\n * string and the start of the second string.\n * @private\n */\ndiff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n // Eliminate the null case.\n if (text1_length == 0 || text2_length == 0) {\n return 0;\n }\n // Truncate the longer string.\n if (text1_length > text2_length) {\n text1 = text1.substring(text1_length - text2_length);\n } else if (text1_length < text2_length) {\n text2 = text2.substring(0, text1_length);\n }\n var text_length = Math.min(text1_length, text2_length);\n // Quick check for the worst case.\n if (text1 == text2) {\n return text_length;\n }\n\n // Start by looking for a single character match\n // and increase length until no match is found.\n // Performance analysis: https://neil.fraser.name/news/2010/11/04/\n var best = 0;\n var length = 1;\n while (true) {\n var pattern = text1.substring(text_length - length);\n var found = text2.indexOf(pattern);\n if (found == -1) {\n return best;\n }\n length += found;\n if (found == 0 || text1.substring(text_length - length) ==\n text2.substring(0, length)) {\n best = length;\n length++;\n }\n }\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n * @private\n */\ndiff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) {\n if (this.Diff_Timeout <= 0) {\n // Don't risk returning a non-optimal diff if we have unlimited time.\n return null;\n }\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = dmp.diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = dmp.diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reduce the number of edits by eliminating semantically trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemantic = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastEquality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Number of characters that changed prior to the equality.\n var length_insertions1 = 0;\n var length_deletions1 = 0;\n // Number of characters that changed after the equality.\n var length_insertions2 = 0;\n var length_deletions2 = 0;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n equalities[equalitiesLength++] = pointer;\n length_insertions1 = length_insertions2;\n length_deletions1 = length_deletions2;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastEquality = diffs[pointer][1];\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_INSERT) {\n length_insertions2 += diffs[pointer][1].length;\n } else {\n length_deletions2 += diffs[pointer][1].length;\n }\n // Eliminate an equality that is smaller or equal to the edits on both\n // sides of it.\n if (lastEquality && (lastEquality.length <=\n Math.max(length_insertions1, length_deletions1)) &&\n (lastEquality.length <= Math.max(length_insertions2,\n length_deletions2))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n new diff_match_patch.Diff(DIFF_DELETE, lastEquality));\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n // Throw away the equality we just deleted.\n equalitiesLength--;\n // Throw away the previous equality (it needs to be reevaluated).\n equalitiesLength--;\n pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;\n length_insertions1 = 0; // Reset the counters.\n length_deletions1 = 0;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastEquality = null;\n changes = true;\n }\n }\n pointer++;\n }\n\n // Normalize the diff.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n this.diff_cleanupSemanticLossless(diffs);\n\n // Find any overlaps between deletions and insertions.\n // e.g: abcxxxxxxdef\n // -> abcxxxdef\n // e.g: xxxabcdefxxx\n // -> defxxxabc\n // Only extract an overlap if it is as big as the edit ahead or behind it.\n pointer = 1;\n while (pointer < diffs.length) {\n if (diffs[pointer - 1][0] == DIFF_DELETE &&\n diffs[pointer][0] == DIFF_INSERT) {\n var deletion = diffs[pointer - 1][1];\n var insertion = diffs[pointer][1];\n var overlap_length1 = this.diff_commonOverlap_(deletion, insertion);\n var overlap_length2 = this.diff_commonOverlap_(insertion, deletion);\n if (overlap_length1 >= overlap_length2) {\n if (overlap_length1 >= deletion.length / 2 ||\n overlap_length1 >= insertion.length / 2) {\n // Overlap found. Insert an equality and trim the surrounding edits.\n diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL,\n insertion.substring(0, overlap_length1)));\n diffs[pointer - 1][1] =\n deletion.substring(0, deletion.length - overlap_length1);\n diffs[pointer + 1][1] = insertion.substring(overlap_length1);\n pointer++;\n }\n } else {\n if (overlap_length2 >= deletion.length / 2 ||\n overlap_length2 >= insertion.length / 2) {\n // Reverse overlap found.\n // Insert an equality and swap and trim the surrounding edits.\n diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL,\n deletion.substring(0, overlap_length2)));\n diffs[pointer - 1][0] = DIFF_INSERT;\n diffs[pointer - 1][1] =\n insertion.substring(0, insertion.length - overlap_length2);\n diffs[pointer + 1][0] = DIFF_DELETE;\n diffs[pointer + 1][1] =\n deletion.substring(overlap_length2);\n pointer++;\n }\n }\n pointer++;\n }\n pointer++;\n }\n};\n\n\n/**\n * Look for single edits surrounded on both sides by equalities\n * which can be shifted sideways to align the edit to a word boundary.\n * e.g: The cat came. -> The cat came.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) {\n /**\n * Given two strings, compute a score representing whether the internal\n * boundary falls on logical boundaries.\n * Scores range from 6 (best) to 0 (worst).\n * Closure, but does not reference any external variables.\n * @param {string} one First string.\n * @param {string} two Second string.\n * @return {number} The score.\n * @private\n */\n function diff_cleanupSemanticScore_(one, two) {\n if (!one || !two) {\n // Edges are the best.\n return 6;\n }\n\n // Each port of this function behaves slightly differently due to\n // subtle differences in each language's definition of things like\n // 'whitespace'. Since this function's purpose is largely cosmetic,\n // the choice has been made to use each language's native features\n // rather than force total conformity.\n var char1 = one.charAt(one.length - 1);\n var char2 = two.charAt(0);\n var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_);\n var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_);\n var whitespace1 = nonAlphaNumeric1 &&\n char1.match(diff_match_patch.whitespaceRegex_);\n var whitespace2 = nonAlphaNumeric2 &&\n char2.match(diff_match_patch.whitespaceRegex_);\n var lineBreak1 = whitespace1 &&\n char1.match(diff_match_patch.linebreakRegex_);\n var lineBreak2 = whitespace2 &&\n char2.match(diff_match_patch.linebreakRegex_);\n var blankLine1 = lineBreak1 &&\n one.match(diff_match_patch.blanklineEndRegex_);\n var blankLine2 = lineBreak2 &&\n two.match(diff_match_patch.blanklineStartRegex_);\n\n if (blankLine1 || blankLine2) {\n // Five points for blank lines.\n return 5;\n } else if (lineBreak1 || lineBreak2) {\n // Four points for line breaks.\n return 4;\n } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {\n // Three points for end of sentences.\n return 3;\n } else if (whitespace1 || whitespace2) {\n // Two points for whitespace.\n return 2;\n } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {\n // One point for non-alphanumeric.\n return 1;\n }\n return 0;\n }\n\n var pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n var equality1 = diffs[pointer - 1][1];\n var edit = diffs[pointer][1];\n var equality2 = diffs[pointer + 1][1];\n\n // First, shift the edit as far left as possible.\n var commonOffset = this.diff_commonSuffix(equality1, edit);\n if (commonOffset) {\n var commonString = edit.substring(edit.length - commonOffset);\n equality1 = equality1.substring(0, equality1.length - commonOffset);\n edit = commonString + edit.substring(0, edit.length - commonOffset);\n equality2 = commonString + equality2;\n }\n\n // Second, step character by character right, looking for the best fit.\n var bestEquality1 = equality1;\n var bestEdit = edit;\n var bestEquality2 = equality2;\n var bestScore = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n while (edit.charAt(0) === equality2.charAt(0)) {\n equality1 += edit.charAt(0);\n edit = edit.substring(1) + equality2.charAt(0);\n equality2 = equality2.substring(1);\n var score = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n // The >= encourages trailing rather than leading whitespace on edits.\n if (score >= bestScore) {\n bestScore = score;\n bestEquality1 = equality1;\n bestEdit = edit;\n bestEquality2 = equality2;\n }\n }\n\n if (diffs[pointer - 1][1] != bestEquality1) {\n // We have an improvement, save it back to the diff.\n if (bestEquality1) {\n diffs[pointer - 1][1] = bestEquality1;\n } else {\n diffs.splice(pointer - 1, 1);\n pointer--;\n }\n diffs[pointer][1] = bestEdit;\n if (bestEquality2) {\n diffs[pointer + 1][1] = bestEquality2;\n } else {\n diffs.splice(pointer + 1, 1);\n pointer--;\n }\n }\n }\n pointer++;\n }\n};\n\n// Define some regex patterns for matching boundaries.\ndiff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;\ndiff_match_patch.whitespaceRegex_ = /\\s/;\ndiff_match_patch.linebreakRegex_ = /[\\r\\n]/;\ndiff_match_patch.blanklineEndRegex_ = /\\n\\r?\\n$/;\ndiff_match_patch.blanklineStartRegex_ = /^\\r?\\n\\r?\\n/;\n\n/**\n * Reduce the number of edits by eliminating operationally trivial equalities.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastEquality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Is there an insertion operation before the last equality.\n var pre_ins = false;\n // Is there a deletion operation before the last equality.\n var pre_del = false;\n // Is there an insertion operation after the last equality.\n var post_ins = false;\n // Is there a deletion operation after the last equality.\n var post_del = false;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n if (diffs[pointer][1].length < this.Diff_EditCost &&\n (post_ins || post_del)) {\n // Candidate found.\n equalities[equalitiesLength++] = pointer;\n pre_ins = post_ins;\n pre_del = post_del;\n lastEquality = diffs[pointer][1];\n } else {\n // Not a candidate, and can never become one.\n equalitiesLength = 0;\n lastEquality = null;\n }\n post_ins = post_del = false;\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_DELETE) {\n post_del = true;\n } else {\n post_ins = true;\n }\n /*\n * Five types to be split:\n * ABXYCD\n * AXCD\n * ABXC\n * AXCD\n * ABXC\n */\n if (lastEquality && ((pre_ins && pre_del && post_ins && post_del) ||\n ((lastEquality.length < this.Diff_EditCost / 2) &&\n (pre_ins + pre_del + post_ins + post_del) == 3))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n new diff_match_patch.Diff(DIFF_DELETE, lastEquality));\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n equalitiesLength--; // Throw away the equality we just deleted;\n lastEquality = null;\n if (pre_ins && pre_del) {\n // No changes made which could affect previous entry, keep going.\n post_ins = post_del = true;\n equalitiesLength = 0;\n } else {\n equalitiesLength--; // Throw away the previous equality.\n pointer = equalitiesLength > 0 ?\n equalities[equalitiesLength - 1] : -1;\n post_ins = post_del = false;\n }\n changes = true;\n }\n }\n pointer++;\n }\n\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {!Array.} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupMerge = function(diffs) {\n // Add a dummy entry at the end.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, ''));\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = this.diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, new diff_match_patch.Diff(DIFF_EQUAL,\n text_insert.substring(0, commonlength)));\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = this.diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n pointer -= count_delete + count_insert;\n diffs.splice(pointer, count_delete + count_insert);\n if (text_delete.length) {\n diffs.splice(pointer, 0,\n new diff_match_patch.Diff(DIFF_DELETE, text_delete));\n pointer++;\n }\n if (text_insert.length) {\n diffs.splice(pointer, 0,\n new diff_match_patch.Diff(DIFF_INSERT, text_insert));\n pointer++;\n }\n pointer++;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * loc is a location in text1, compute and return the equivalent location in\n * text2.\n * e.g. 'The cat' vs 'The big cat', 1->1, 5->8\n * @param {!Array.} diffs Array of diff tuples.\n * @param {number} loc Location within text1.\n * @return {number} Location within text2.\n */\ndiff_match_patch.prototype.diff_xIndex = function(diffs, loc) {\n var chars1 = 0;\n var chars2 = 0;\n var last_chars1 = 0;\n var last_chars2 = 0;\n var x;\n for (x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) { // Equality or deletion.\n chars1 += diffs[x][1].length;\n }\n if (diffs[x][0] !== DIFF_DELETE) { // Equality or insertion.\n chars2 += diffs[x][1].length;\n }\n if (chars1 > loc) { // Overshot the location.\n break;\n }\n last_chars1 = chars1;\n last_chars2 = chars2;\n }\n // Was the location was deleted?\n if (diffs.length != x && diffs[x][0] === DIFF_DELETE) {\n return last_chars2;\n }\n // Add the remaining character length.\n return last_chars2 + (loc - last_chars1);\n};\n\n\n/**\n * Convert a diff array into a pretty HTML report.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} HTML representation.\n */\ndiff_match_patch.prototype.diff_prettyHtml = function(diffs) {\n var html = [];\n var pattern_amp = /&/g;\n var pattern_lt = //g;\n var pattern_para = /\\n/g;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0]; // Operation (insert, delete, equal)\n var data = diffs[x][1]; // Text of change.\n var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')\n .replace(pattern_gt, '>').replace(pattern_para, '¶
');\n switch (op) {\n case DIFF_INSERT:\n html[x] = '' + text + '';\n break;\n case DIFF_DELETE:\n html[x] = '' + text + '';\n break;\n case DIFF_EQUAL:\n html[x] = '' + text + '';\n break;\n }\n }\n return html.join('');\n};\n\n\n/**\n * Compute and return the source text (all equalities and deletions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Source text.\n */\ndiff_match_patch.prototype.diff_text1 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute and return the destination text (all equalities and insertions).\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Destination text.\n */\ndiff_match_patch.prototype.diff_text2 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_DELETE) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute the Levenshtein distance; the number of inserted, deleted or\n * substituted characters.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {number} Number of changes.\n */\ndiff_match_patch.prototype.diff_levenshtein = function(diffs) {\n var levenshtein = 0;\n var insertions = 0;\n var deletions = 0;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0];\n var data = diffs[x][1];\n switch (op) {\n case DIFF_INSERT:\n insertions += data.length;\n break;\n case DIFF_DELETE:\n deletions += data.length;\n break;\n case DIFF_EQUAL:\n // A deletion and an insertion is one substitution.\n levenshtein += Math.max(insertions, deletions);\n insertions = 0;\n deletions = 0;\n break;\n }\n }\n levenshtein += Math.max(insertions, deletions);\n return levenshtein;\n};\n\n\n/**\n * Crush the diff into an encoded string which describes the operations\n * required to transform text1 into text2.\n * E.g. =3\\t-2\\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'.\n * Operations are tab-separated. Inserted text is escaped using %xx notation.\n * @param {!Array.} diffs Array of diff tuples.\n * @return {string} Delta text.\n */\ndiff_match_patch.prototype.diff_toDelta = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n switch (diffs[x][0]) {\n case DIFF_INSERT:\n text[x] = '+' + encodeURI(diffs[x][1]);\n break;\n case DIFF_DELETE:\n text[x] = '-' + diffs[x][1].length;\n break;\n case DIFF_EQUAL:\n text[x] = '=' + diffs[x][1].length;\n break;\n }\n }\n return text.join('\\t').replace(/%20/g, ' ');\n};\n\n\n/**\n * Given the original text1, and an encoded string which describes the\n * operations required to transform text1 into text2, compute the full diff.\n * @param {string} text1 Source string for the diff.\n * @param {string} delta Delta text.\n * @return {!Array.} Array of diff tuples.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.diff_fromDelta = function(text1, delta) {\n var diffs = [];\n var diffsLength = 0; // Keeping our own length var is faster in JS.\n var pointer = 0; // Cursor in text1\n var tokens = delta.split(/\\t/g);\n for (var x = 0; x < tokens.length; x++) {\n // Each token begins with a one character parameter which specifies the\n // operation of this token (delete, insert, equality).\n var param = tokens[x].substring(1);\n switch (tokens[x].charAt(0)) {\n case '+':\n try {\n diffs[diffsLength++] =\n new diff_match_patch.Diff(DIFF_INSERT, decodeURI(param));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in diff_fromDelta: ' + param);\n }\n break;\n case '-':\n // Fall through.\n case '=':\n var n = parseInt(param, 10);\n if (isNaN(n) || n < 0) {\n throw new Error('Invalid number in diff_fromDelta: ' + param);\n }\n var text = text1.substring(pointer, pointer += n);\n if (tokens[x].charAt(0) == '=') {\n diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_EQUAL, text);\n } else {\n diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_DELETE, text);\n }\n break;\n default:\n // Blank tokens are ok (from a trailing \\t).\n // Anything else is an error.\n if (tokens[x]) {\n throw new Error('Invalid diff operation in diff_fromDelta: ' +\n tokens[x]);\n }\n }\n }\n if (pointer != text1.length) {\n throw new Error('Delta length (' + pointer +\n ') does not equal source text length (' + text1.length + ').');\n }\n return diffs;\n};\n\n\n// MATCH FUNCTIONS\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc'.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n */\ndiff_match_patch.prototype.match_main = function(text, pattern, loc) {\n // Check for null inputs.\n if (text == null || pattern == null || loc == null) {\n throw new Error('Null input. (match_main)');\n }\n\n loc = Math.max(0, Math.min(loc, text.length));\n if (text == pattern) {\n // Shortcut (potentially not guaranteed by the algorithm)\n return 0;\n } else if (!text.length) {\n // Nothing to match.\n return -1;\n } else if (text.substring(loc, loc + pattern.length) == pattern) {\n // Perfect match at the perfect spot! (Includes case of null pattern)\n return loc;\n } else {\n // Do a fuzzy compare.\n return this.match_bitap_(text, pattern, loc);\n }\n};\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc' using the\n * Bitap algorithm.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n * @private\n */\ndiff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) {\n if (pattern.length > this.Match_MaxBits) {\n throw new Error('Pattern too long for this browser.');\n }\n\n // Initialise the alphabet.\n var s = this.match_alphabet_(pattern);\n\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Compute and return the score for a match with e errors and x location.\n * Accesses loc and pattern through being a closure.\n * @param {number} e Number of errors in match.\n * @param {number} x Location of match.\n * @return {number} Overall score for match (0.0 = good, 1.0 = bad).\n * @private\n */\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length;\n var proximity = Math.abs(loc - x);\n if (!dmp.Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n return accuracy + (proximity / dmp.Match_Distance);\n }\n\n // Highest score beyond which we give up.\n var score_threshold = this.Match_Threshold;\n // Is there a nearby exact match? (speedup)\n var best_loc = text.indexOf(pattern, loc);\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length);\n if (best_loc != -1) {\n score_threshold =\n Math.min(match_bitapScore_(0, best_loc), score_threshold);\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1);\n best_loc = -1;\n\n var bin_min, bin_mid;\n var bin_max = pattern.length + text.length;\n var last_rd;\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0;\n bin_mid = bin_max;\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid;\n } else {\n bin_max = bin_mid;\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid;\n var start = Math.max(1, loc - bin_mid + 1);\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length;\n\n var rd = Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)];\n if (d === 0) { // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\n } else { // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |\n (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |\n last_rd[j + 1];\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1);\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score;\n best_loc = j - 1;\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc);\n } else {\n // Already passed loc, downhill from here on in.\n break;\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break;\n }\n last_rd = rd;\n }\n return best_loc;\n};\n\n\n/**\n * Initialise the alphabet for the Bitap algorithm.\n * @param {string} pattern The text to encode.\n * @return {!Object} Hash of character locations.\n * @private\n */\ndiff_match_patch.prototype.match_alphabet_ = function(pattern) {\n var s = {};\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] = 0;\n }\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);\n }\n return s;\n};\n\n\n// PATCH FUNCTIONS\n\n\n/**\n * Increase the context until it is unique,\n * but don't let the pattern expand beyond Match_MaxBits.\n * @param {!diff_match_patch.patch_obj} patch The patch to grow.\n * @param {string} text Source text.\n * @private\n */\ndiff_match_patch.prototype.patch_addContext_ = function(patch, text) {\n if (text.length == 0) {\n return;\n }\n if (patch.start2 === null) {\n throw Error('patch not initialized');\n }\n var pattern = text.substring(patch.start2, patch.start2 + patch.length1);\n var padding = 0;\n\n // Look for the first and last matches of pattern in text. If two different\n // matches are found, increase the pattern length.\n while (text.indexOf(pattern) != text.lastIndexOf(pattern) &&\n pattern.length < this.Match_MaxBits - this.Patch_Margin -\n this.Patch_Margin) {\n padding += this.Patch_Margin;\n pattern = text.substring(patch.start2 - padding,\n patch.start2 + patch.length1 + padding);\n }\n // Add one chunk for good luck.\n padding += this.Patch_Margin;\n\n // Add the prefix.\n var prefix = text.substring(patch.start2 - padding, patch.start2);\n if (prefix) {\n patch.diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, prefix));\n }\n // Add the suffix.\n var suffix = text.substring(patch.start2 + patch.length1,\n patch.start2 + patch.length1 + padding);\n if (suffix) {\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, suffix));\n }\n\n // Roll back the start points.\n patch.start1 -= prefix.length;\n patch.start2 -= prefix.length;\n // Extend the lengths.\n patch.length1 += prefix.length + suffix.length;\n patch.length2 += prefix.length + suffix.length;\n};\n\n\n/**\n * Compute a list of patches to turn text1 into text2.\n * Use diffs if provided, otherwise compute it ourselves.\n * There are four ways to call this function, depending on what data is\n * available to the caller:\n * Method 1:\n * a = text1, b = text2\n * Method 2:\n * a = diffs\n * Method 3 (optimal):\n * a = text1, b = diffs\n * Method 4 (deprecated, use method 3):\n * a = text1, b = text2, c = diffs\n *\n * @param {string|!Array.} a text1 (methods 1,3,4) or\n * Array of diff tuples for text1 to text2 (method 2).\n * @param {string|!Array.=} opt_b text2 (methods 1,4) or\n * Array of diff tuples for text1 to text2 (method 3) or undefined (method 2).\n * @param {string|!Array.=} opt_c Array of diff tuples\n * for text1 to text2 (method 4) or undefined (methods 1,2,3).\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) {\n var text1, diffs;\n if (typeof a == 'string' && typeof opt_b == 'string' &&\n typeof opt_c == 'undefined') {\n // Method 1: text1, text2\n // Compute diffs from text1 and text2.\n text1 = /** @type {string} */(a);\n diffs = this.diff_main(text1, /** @type {string} */(opt_b), true);\n if (diffs.length > 2) {\n this.diff_cleanupSemantic(diffs);\n this.diff_cleanupEfficiency(diffs);\n }\n } else if (a && typeof a == 'object' && typeof opt_b == 'undefined' &&\n typeof opt_c == 'undefined') {\n // Method 2: diffs\n // Compute text1 from diffs.\n diffs = /** @type {!Array.} */(a);\n text1 = this.diff_text1(diffs);\n } else if (typeof a == 'string' && opt_b && typeof opt_b == 'object' &&\n typeof opt_c == 'undefined') {\n // Method 3: text1, diffs\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_b);\n } else if (typeof a == 'string' && typeof opt_b == 'string' &&\n opt_c && typeof opt_c == 'object') {\n // Method 4: text1, text2, diffs\n // text2 is not used.\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.} */(opt_c);\n } else {\n throw new Error('Unknown call format to patch_make.');\n }\n\n if (diffs.length === 0) {\n return []; // Get rid of the null case.\n }\n var patches = [];\n var patch = new diff_match_patch.patch_obj();\n var patchDiffLength = 0; // Keeping our own length var is faster in JS.\n var char_count1 = 0; // Number of characters into the text1 string.\n var char_count2 = 0; // Number of characters into the text2 string.\n // Start with text1 (prepatch_text) and apply the diffs until we arrive at\n // text2 (postpatch_text). We recreate the patches one by one to determine\n // context info.\n var prepatch_text = text1;\n var postpatch_text = text1;\n for (var x = 0; x < diffs.length; x++) {\n var diff_type = diffs[x][0];\n var diff_text = diffs[x][1];\n\n if (!patchDiffLength && diff_type !== DIFF_EQUAL) {\n // A new patch starts here.\n patch.start1 = char_count1;\n patch.start2 = char_count2;\n }\n\n switch (diff_type) {\n case DIFF_INSERT:\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length2 += diff_text.length;\n postpatch_text = postpatch_text.substring(0, char_count2) + diff_text +\n postpatch_text.substring(char_count2);\n break;\n case DIFF_DELETE:\n patch.length1 += diff_text.length;\n patch.diffs[patchDiffLength++] = diffs[x];\n postpatch_text = postpatch_text.substring(0, char_count2) +\n postpatch_text.substring(char_count2 +\n diff_text.length);\n break;\n case DIFF_EQUAL:\n if (diff_text.length <= 2 * this.Patch_Margin &&\n patchDiffLength && diffs.length != x + 1) {\n // Small equality inside a patch.\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length1 += diff_text.length;\n patch.length2 += diff_text.length;\n } else if (diff_text.length >= 2 * this.Patch_Margin) {\n // Time for a new patch.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n patch = new diff_match_patch.patch_obj();\n patchDiffLength = 0;\n // Unlike Unidiff, our patch lists have a rolling context.\n // https://github.com/google/diff-match-patch/wiki/Unidiff\n // Update prepatch text & pos to reflect the application of the\n // just completed patch.\n prepatch_text = postpatch_text;\n char_count1 = char_count2;\n }\n }\n break;\n }\n\n // Update the current character count.\n if (diff_type !== DIFF_INSERT) {\n char_count1 += diff_text.length;\n }\n if (diff_type !== DIFF_DELETE) {\n char_count2 += diff_text.length;\n }\n }\n // Pick up the leftover patch if not empty.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n }\n\n return patches;\n};\n\n\n/**\n * Given an array of patches, return another array that is identical.\n * @param {!Array.} patches Array of Patch objects.\n * @return {!Array.} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_deepCopy = function(patches) {\n // Making deep copies is hard in JavaScript.\n var patchesCopy = [];\n for (var x = 0; x < patches.length; x++) {\n var patch = patches[x];\n var patchCopy = new diff_match_patch.patch_obj();\n patchCopy.diffs = [];\n for (var y = 0; y < patch.diffs.length; y++) {\n patchCopy.diffs[y] =\n new diff_match_patch.Diff(patch.diffs[y][0], patch.diffs[y][1]);\n }\n patchCopy.start1 = patch.start1;\n patchCopy.start2 = patch.start2;\n patchCopy.length1 = patch.length1;\n patchCopy.length2 = patch.length2;\n patchesCopy[x] = patchCopy;\n }\n return patchesCopy;\n};\n\n\n/**\n * Merge a set of patches onto the text. Return a patched text, as well\n * as a list of true/false values indicating which patches were applied.\n * @param {!Array.} patches Array of Patch objects.\n * @param {string} text Old text.\n * @return {!Array.>} Two element Array, containing the\n * new text and an array of boolean values.\n */\ndiff_match_patch.prototype.patch_apply = function(patches, text) {\n if (patches.length == 0) {\n return [text, []];\n }\n\n // Deep copy the patches so that no changes are made to originals.\n patches = this.patch_deepCopy(patches);\n\n var nullPadding = this.patch_addPadding(patches);\n text = nullPadding + text + nullPadding;\n\n this.patch_splitMax(patches);\n // delta keeps track of the offset between the expected and actual location\n // of the previous patch. If there are patches expected at positions 10 and\n // 20, but the first patch was found at 12, delta is 2 and the second patch\n // has an effective expected position of 22.\n var delta = 0;\n var results = [];\n for (var x = 0; x < patches.length; x++) {\n var expected_loc = patches[x].start2 + delta;\n var text1 = this.diff_text1(patches[x].diffs);\n var start_loc;\n var end_loc = -1;\n if (text1.length > this.Match_MaxBits) {\n // patch_splitMax will only provide an oversized pattern in the case of\n // a monster delete.\n start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits),\n expected_loc);\n if (start_loc != -1) {\n end_loc = this.match_main(text,\n text1.substring(text1.length - this.Match_MaxBits),\n expected_loc + text1.length - this.Match_MaxBits);\n if (end_loc == -1 || start_loc >= end_loc) {\n // Can't find valid trailing context. Drop this patch.\n start_loc = -1;\n }\n }\n } else {\n start_loc = this.match_main(text, text1, expected_loc);\n }\n if (start_loc == -1) {\n // No match found. :(\n results[x] = false;\n // Subtract the delta for this failed patch from subsequent patches.\n delta -= patches[x].length2 - patches[x].length1;\n } else {\n // Found a match. :)\n results[x] = true;\n delta = start_loc - expected_loc;\n var text2;\n if (end_loc == -1) {\n text2 = text.substring(start_loc, start_loc + text1.length);\n } else {\n text2 = text.substring(start_loc, end_loc + this.Match_MaxBits);\n }\n if (text1 == text2) {\n // Perfect match, just shove the replacement text in.\n text = text.substring(0, start_loc) +\n this.diff_text2(patches[x].diffs) +\n text.substring(start_loc + text1.length);\n } else {\n // Imperfect match. Run a diff to get a framework of equivalent\n // indices.\n var diffs = this.diff_main(text1, text2, false);\n if (text1.length > this.Match_MaxBits &&\n this.diff_levenshtein(diffs) / text1.length >\n this.Patch_DeleteThreshold) {\n // The end points match, but the content is unacceptably bad.\n results[x] = false;\n } else {\n this.diff_cleanupSemanticLossless(diffs);\n var index1 = 0;\n var index2;\n for (var y = 0; y < patches[x].diffs.length; y++) {\n var mod = patches[x].diffs[y];\n if (mod[0] !== DIFF_EQUAL) {\n index2 = this.diff_xIndex(diffs, index1);\n }\n if (mod[0] === DIFF_INSERT) { // Insertion\n text = text.substring(0, start_loc + index2) + mod[1] +\n text.substring(start_loc + index2);\n } else if (mod[0] === DIFF_DELETE) { // Deletion\n text = text.substring(0, start_loc + index2) +\n text.substring(start_loc + this.diff_xIndex(diffs,\n index1 + mod[1].length));\n }\n if (mod[0] !== DIFF_DELETE) {\n index1 += mod[1].length;\n }\n }\n }\n }\n }\n }\n // Strip the padding off.\n text = text.substring(nullPadding.length, text.length - nullPadding.length);\n return [text, results];\n};\n\n\n/**\n * Add some padding on text start and end so that edges can match something.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} The padding string added to each side.\n */\ndiff_match_patch.prototype.patch_addPadding = function(patches) {\n var paddingLength = this.Patch_Margin;\n var nullPadding = '';\n for (var x = 1; x <= paddingLength; x++) {\n nullPadding += String.fromCharCode(x);\n }\n\n // Bump all the patches forward.\n for (var x = 0; x < patches.length; x++) {\n patches[x].start1 += paddingLength;\n patches[x].start2 += paddingLength;\n }\n\n // Add some padding on start of first diff.\n var patch = patches[0];\n var diffs = patch.diffs;\n if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding));\n patch.start1 -= paddingLength; // Should be 0.\n patch.start2 -= paddingLength; // Should be 0.\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[0][1].length) {\n // Grow first equality.\n var extraLength = paddingLength - diffs[0][1].length;\n diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1];\n patch.start1 -= extraLength;\n patch.start2 -= extraLength;\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n // Add some padding on end of last diff.\n patch = patches[patches.length - 1];\n diffs = patch.diffs;\n if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding));\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[diffs.length - 1][1].length) {\n // Grow last equality.\n var extraLength = paddingLength - diffs[diffs.length - 1][1].length;\n diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength);\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n return nullPadding;\n};\n\n\n/**\n * Look through the patches and break up any which are longer than the maximum\n * limit of the match algorithm.\n * Intended to be called only from within patch_apply.\n * @param {!Array.} patches Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_splitMax = function(patches) {\n var patch_size = this.Match_MaxBits;\n for (var x = 0; x < patches.length; x++) {\n if (patches[x].length1 <= patch_size) {\n continue;\n }\n var bigpatch = patches[x];\n // Remove the big old patch.\n patches.splice(x--, 1);\n var start1 = bigpatch.start1;\n var start2 = bigpatch.start2;\n var precontext = '';\n while (bigpatch.diffs.length !== 0) {\n // Create one of several smaller patches.\n var patch = new diff_match_patch.patch_obj();\n var empty = true;\n patch.start1 = start1 - precontext.length;\n patch.start2 = start2 - precontext.length;\n if (precontext !== '') {\n patch.length1 = patch.length2 = precontext.length;\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, precontext));\n }\n while (bigpatch.diffs.length !== 0 &&\n patch.length1 < patch_size - this.Patch_Margin) {\n var diff_type = bigpatch.diffs[0][0];\n var diff_text = bigpatch.diffs[0][1];\n if (diff_type === DIFF_INSERT) {\n // Insertions are harmless.\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n patch.diffs.push(bigpatch.diffs.shift());\n empty = false;\n } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 &&\n patch.diffs[0][0] == DIFF_EQUAL &&\n diff_text.length > 2 * patch_size) {\n // This is a large deletion. Let it pass in one chunk.\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n empty = false;\n patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text));\n bigpatch.diffs.shift();\n } else {\n // Deletion or equality. Only take as much as we can stomach.\n diff_text = diff_text.substring(0,\n patch_size - patch.length1 - this.Patch_Margin);\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n if (diff_type === DIFF_EQUAL) {\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n } else {\n empty = false;\n }\n patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text));\n if (diff_text == bigpatch.diffs[0][1]) {\n bigpatch.diffs.shift();\n } else {\n bigpatch.diffs[0][1] =\n bigpatch.diffs[0][1].substring(diff_text.length);\n }\n }\n }\n // Compute the head context for the next patch.\n precontext = this.diff_text2(patch.diffs);\n precontext =\n precontext.substring(precontext.length - this.Patch_Margin);\n // Append the end context for this patch.\n var postcontext = this.diff_text1(bigpatch.diffs)\n .substring(0, this.Patch_Margin);\n if (postcontext !== '') {\n patch.length1 += postcontext.length;\n patch.length2 += postcontext.length;\n if (patch.diffs.length !== 0 &&\n patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) {\n patch.diffs[patch.diffs.length - 1][1] += postcontext;\n } else {\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, postcontext));\n }\n }\n if (!empty) {\n patches.splice(++x, 0, patch);\n }\n }\n }\n};\n\n\n/**\n * Take a list of patches and return a textual representation.\n * @param {!Array.} patches Array of Patch objects.\n * @return {string} Text representation of patches.\n */\ndiff_match_patch.prototype.patch_toText = function(patches) {\n var text = [];\n for (var x = 0; x < patches.length; x++) {\n text[x] = patches[x];\n }\n return text.join('');\n};\n\n\n/**\n * Parse a textual representation of patches and return a list of Patch objects.\n * @param {string} textline Text representation of patches.\n * @return {!Array.} Array of Patch objects.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.patch_fromText = function(textline) {\n var patches = [];\n if (!textline) {\n return patches;\n }\n var text = textline.split('\\n');\n var textPointer = 0;\n var patchHeader = /^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;\n while (textPointer < text.length) {\n var m = text[textPointer].match(patchHeader);\n if (!m) {\n throw new Error('Invalid patch string: ' + text[textPointer]);\n }\n var patch = new diff_match_patch.patch_obj();\n patches.push(patch);\n patch.start1 = parseInt(m[1], 10);\n if (m[2] === '') {\n patch.start1--;\n patch.length1 = 1;\n } else if (m[2] == '0') {\n patch.length1 = 0;\n } else {\n patch.start1--;\n patch.length1 = parseInt(m[2], 10);\n }\n\n patch.start2 = parseInt(m[3], 10);\n if (m[4] === '') {\n patch.start2--;\n patch.length2 = 1;\n } else if (m[4] == '0') {\n patch.length2 = 0;\n } else {\n patch.start2--;\n patch.length2 = parseInt(m[4], 10);\n }\n textPointer++;\n\n while (textPointer < text.length) {\n var sign = text[textPointer].charAt(0);\n try {\n var line = decodeURI(text[textPointer].substring(1));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in patch_fromText: ' + line);\n }\n if (sign == '-') {\n // Deletion.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_DELETE, line));\n } else if (sign == '+') {\n // Insertion.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_INSERT, line));\n } else if (sign == ' ') {\n // Minor equality.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, line));\n } else if (sign == '@') {\n // Start of next patch.\n break;\n } else if (sign === '') {\n // Blank line? Whatever.\n } else {\n // WTF?\n throw new Error('Invalid patch mode \"' + sign + '\" in: ' + line);\n }\n textPointer++;\n }\n }\n return patches;\n};\n\n\n/**\n * Class representing one patch operation.\n * @constructor\n */\ndiff_match_patch.patch_obj = function() {\n /** @type {!Array.} */\n this.diffs = [];\n /** @type {?number} */\n this.start1 = null;\n /** @type {?number} */\n this.start2 = null;\n /** @type {number} */\n this.length1 = 0;\n /** @type {number} */\n this.length2 = 0;\n};\n\n\n/**\n * Emulate GNU diff's format.\n * Header: @@ -382,8 +481,9 @@\n * Indices are printed as 1-based, not 0-based.\n * @return {string} The GNU diff string.\n */\ndiff_match_patch.patch_obj.prototype.toString = function() {\n var coords1, coords2;\n if (this.length1 === 0) {\n coords1 = this.start1 + ',0';\n } else if (this.length1 == 1) {\n coords1 = this.start1 + 1;\n } else {\n coords1 = (this.start1 + 1) + ',' + this.length1;\n }\n if (this.length2 === 0) {\n coords2 = this.start2 + ',0';\n } else if (this.length2 == 1) {\n coords2 = this.start2 + 1;\n } else {\n coords2 = (this.start2 + 1) + ',' + this.length2;\n }\n var text = ['@@ -' + coords1 + ' +' + coords2 + ' @@\\n'];\n var op;\n // Escape the body of the patch with %xx notation.\n for (var x = 0; x < this.diffs.length; x++) {\n switch (this.diffs[x][0]) {\n case DIFF_INSERT:\n op = '+';\n break;\n case DIFF_DELETE:\n op = '-';\n break;\n case DIFF_EQUAL:\n op = ' ';\n break;\n }\n text[x + 1] = op + encodeURI(this.diffs[x][1]) + '\\n';\n }\n return text.join('').replace(/%20/g, ' ');\n};\n\n\n// The following export code was added by @ForbesLindesay\nmodule.exports = diff_match_patch;\nmodule.exports['diff_match_patch'] = diff_match_patch;\nmodule.exports['DIFF_DELETE'] = DIFF_DELETE;\nmodule.exports['DIFF_INSERT'] = DIFF_INSERT;\nmodule.exports['DIFF_EQUAL'] = DIFF_EQUAL;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ModelVersions.vue?vue&type=style&index=0&id=3923c670&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NegativeStepCard.vue?vue&type=style&index=0&id=528d93a2&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FileList.vue?vue&type=style&index=0&id=1caaf713&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LabelStaticRegions.vue?vue&type=style&index=0&id=98f8dc14&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SubstepTranslation.vue?vue&type=style&index=0&id=98da7406&scoped=true&lang=css\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.mod10 = mod10;\nexports.mod11 = mod11;\nfunction mod10(number) {\n\tvar sum = 0;\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[i]);\n\t\tif ((i + number.length) % 2 === 0) {\n\t\t\tsum += n;\n\t\t} else {\n\t\t\tsum += n * 2 % 10 + Math.floor(n * 2 / 10);\n\t\t}\n\t}\n\treturn (10 - sum % 10) % 10;\n}\n\nfunction mod11(number) {\n\tvar sum = 0;\n\tvar weights = [2, 3, 4, 5, 6, 7];\n\tfor (var i = 0; i < number.length; i++) {\n\t\tvar n = parseInt(number[number.length - 1 - i]);\n\t\tsum += weights[i % weights.length] * n;\n\t}\n\treturn (11 - sum % 11) % 11;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _CODE2 = require('./CODE128');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _auto = require('./auto');\n\nvar _auto2 = _interopRequireDefault(_auto);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128AUTO = function (_CODE) {\n\t_inherits(CODE128AUTO, _CODE);\n\n\tfunction CODE128AUTO(data, options) {\n\t\t_classCallCheck(this, CODE128AUTO);\n\n\t\t// ASCII value ranges 0-127, 200-211\n\t\tif (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(data)) {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options));\n\t\t} else {\n\t\t\tvar _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options));\n\t\t}\n\t\treturn _possibleConstructorReturn(_this);\n\t}\n\n\treturn CODE128AUTO;\n}(_CODE3.default);\n\nexports.default = CODE128AUTO;","export default [\r\n {\r\n value: 'Model A',\r\n label: 'Model A',\r\n },\r\n {\r\n value: 'Model C',\r\n label: 'Model C',\r\n },\r\n {\r\n value: 'Model D',\r\n label: 'Model D',\r\n },\r\n {\r\n value: 'Model AL',\r\n label: 'Model AL',\r\n },\r\n {\r\n value: 'Model CL',\r\n label: 'Model CL',\r\n },\r\n {\r\n value: 'Model O',\r\n label: 'Model O',\r\n },\r\n {\r\n value: 'Model AD',\r\n label: 'Model AD',\r\n },\r\n {\r\n value: 'Model A4LT',\r\n label: 'Model A4LT',\r\n },\r\n {\r\n value: 'Model A4LT-L',\r\n label: 'Model A4LT-L',\r\n },\r\n {\r\n value: 'Model ADF',\r\n label: 'Model ADF',\r\n },\r\n];\r\n\r\nexport const models_to_avoid = ['Model C', 'Model AL', 'Model CL', 'Model A4LT', 'Model A4LT-L']","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _CODE2 = require('./CODE128.js');\n\nvar _CODE3 = _interopRequireDefault(_CODE2);\n\nvar _constants = require('./constants');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CODE128B = function (_CODE) {\n\t_inherits(CODE128B, _CODE);\n\n\tfunction CODE128B(string, options) {\n\t\t_classCallCheck(this, CODE128B);\n\n\t\treturn _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options));\n\t}\n\n\t_createClass(CODE128B, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn new RegExp('^' + _constants.B_CHARS + '+$').test(this.data);\n\t\t}\n\t}]);\n\n\treturn CODE128B;\n}(_CODE3.default);\n\nexports.default = CODE128B;","import LRTService from 'src/services/longRunningTask';\r\nimport { actions, statuses } from 'src/config/long-running-task-config.js';\r\nimport { notification } from 'ant-design-vue';\r\nimport { showNotification } from 'src/components/shared/Helpers/showNotification';\r\nimport { InfoCircleOutlined } from '@ant-design/icons-vue';\r\n\r\nexport default {\r\n data: () => ({\r\n longRunningTaskInterval: null,\r\n taskUpdateNotification: false,\r\n isTaskBeingUpdated: false,\r\n }),\r\n\r\n components: { InfoCircleOutlined },\r\n\r\n beforeUnmount() {\r\n this.clearLRTInterval();\r\n this.removeListener?.();\r\n },\r\n\r\n methods: {\r\n setLongRunningTaskInterval() {\r\n this.fetchLongRunningTasks(this.selectedTask);\r\n this.longRunningTaskInterval = setInterval(\r\n this.fetchLongRunningTasks,\r\n 2000,\r\n this.selectedTask\r\n );\r\n },\r\n\r\n async fetchLongRunningTasks(taskId) {\r\n const [error, data] = await LRTService.getLongRunningTasks(false, {\r\n name: actions.updateTask,\r\n status: statuses.started,\r\n task: taskId,\r\n });\r\n\r\n if (error) {\r\n console.log({ error });\r\n this.clearLRTInterval();\r\n return;\r\n }\r\n\r\n if (data.length) {\r\n this.isTaskBeingUpdated = true;\r\n this.showTaskUpdateNotification();\r\n } else {\r\n this.clearLRTInterval();\r\n }\r\n },\r\n\r\n showTaskUpdateNotification() {\r\n if (this.taskUpdateNotification) return;\r\n this.taskUpdateNotification = true;\r\n showNotification(\r\n 'Updating Task & Meta Files',\r\n 'We are updating your task & meta files, This will take few seconds.',\r\n InfoCircleOutlined,\r\n '#108ee9',\r\n 0\r\n );\r\n },\r\n\r\n clearLRTInterval() {\r\n clearInterval(this.longRunningTaskInterval);\r\n this.taskUpdateNotification = false;\r\n this.isTaskBeingUpdated = false;\r\n notification.destroy();\r\n },\r\n },\r\n};\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CanvasRenderer = function () {\n\tfunction CanvasRenderer(canvas, encodings, options) {\n\t\t_classCallCheck(this, CanvasRenderer);\n\n\t\tthis.canvas = canvas;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t}\n\n\t_createClass(CanvasRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\t// Abort if the browser does not support HTML5 canvas\n\t\t\tif (!this.canvas.getContext) {\n\t\t\t\tthrow new Error('The browser does not support canvas.');\n\t\t\t}\n\n\t\t\tthis.prepareCanvas();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options);\n\n\t\t\t\tthis.drawCanvasBarcode(encodingOptions, this.encodings[i]);\n\t\t\t\tthis.drawCanvasText(encodingOptions, this.encodings[i]);\n\n\t\t\t\tthis.moveCanvasDrawing(this.encodings[i]);\n\t\t\t}\n\n\t\t\tthis.restoreCanvas();\n\t\t}\n\t}, {\n\t\tkey: \"prepareCanvas\",\n\t\tvalue: function prepareCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.save();\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tthis.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\n\t\t\tthis.canvas.height = maxHeight;\n\n\t\t\t// Paint the canvas\n\t\t\tctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\tif (this.options.background) {\n\t\t\t\tctx.fillStyle = this.options.background;\n\t\t\t\tctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n\t\t\t}\n\n\t\t\tctx.translate(this.options.marginLeft, 0);\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasBarcode\",\n\t\tvalue: function drawCanvasBarcode(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.marginTop + options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = options.marginTop;\n\t\t\t}\n\n\t\t\tctx.fillStyle = options.lineColor;\n\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tvar x = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height);\n\t\t\t\t} else if (binary[b]) {\n\t\t\t\t\tctx.fillRect(x, yFrom, options.width, options.height * binary[b]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawCanvasText\",\n\t\tvalue: function drawCanvasText(options, encoding) {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tvar font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.marginTop + options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.marginTop + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\tctx.font = font;\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\tctx.textAlign = 'left';\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\tctx.textAlign = 'right';\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t}\n\n\t\t\t\tctx.fillText(encoding.text, x, y);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"moveCanvasDrawing\",\n\t\tvalue: function moveCanvasDrawing(encoding) {\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.translate(encoding.width, 0);\n\t\t}\n\t}, {\n\t\tkey: \"restoreCanvas\",\n\t\tvalue: function restoreCanvas() {\n\t\t\t// Get the canvas context\n\t\t\tvar ctx = this.canvas.getContext(\"2d\");\n\n\t\t\tctx.restore();\n\t\t}\n\t}]);\n\n\treturn CanvasRenderer;\n}();\n\nexports.default = CanvasRenderer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _canvas = require('./canvas.js');\n\nvar _canvas2 = _interopRequireDefault(_canvas);\n\nvar _svg = require('./svg.js');\n\nvar _svg2 = _interopRequireDefault(_svg);\n\nvar _object = require('./object.js');\n\nvar _object2 = _interopRequireDefault(_object);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = { CanvasRenderer: _canvas2.default, SVGRenderer: _svg2.default, ObjectRenderer: _object2.default };","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode = function(name, states) {\n CodeMirror.defineMode(name, function(config) {\n return CodeMirror.simpleMode(config, states);\n });\n };\n\n CodeMirror.simpleMode = function(config, states) {\n ensureState(states, \"start\");\n var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n var list = states_[state] = [], orig = states[state];\n for (var i = 0; i < orig.length; i++) {\n var data = orig[i];\n list.push(new Rule(data, states));\n if (data.indent || data.dedent) hasIndentation = true;\n }\n }\n var mode = {\n startState: function() {\n return {state: \"start\", pending: null,\n local: null, localState: null,\n indent: hasIndentation ? [] : null};\n },\n copyState: function(state) {\n var s = {state: state.state, pending: state.pending,\n local: state.local, localState: null,\n indent: state.indent && state.indent.slice(0)};\n if (state.localState)\n s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n if (state.stack)\n s.stack = state.stack.slice(0);\n for (var pers = state.persistentStates; pers; pers = pers.next)\n s.persistentStates = {mode: pers.mode,\n spec: pers.spec,\n state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n next: s.persistentStates};\n return s;\n },\n token: tokenFunction(states_, config),\n innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n indent: indentFunction(states_, meta)\n };\n if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n mode[prop] = meta[prop];\n return mode;\n };\n\n function ensureState(states, name) {\n if (!states.hasOwnProperty(name))\n throw new Error(\"Undefined state \" + name + \" in simple mode\");\n }\n\n function toRegex(val, caret) {\n if (!val) return /(?:)/;\n var flags = \"\";\n if (val instanceof RegExp) {\n if (val.ignoreCase) flags = \"i\";\n if (val.unicode) flags += \"u\"\n val = val.source;\n } else {\n val = String(val);\n }\n return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n }\n\n function asToken(val) {\n if (!val) return null;\n if (val.apply) return val\n if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n var result = [];\n for (var i = 0; i < val.length; i++)\n result.push(val[i] && val[i].replace(/\\./g, \" \"));\n return result;\n }\n\n function Rule(data, states) {\n if (data.next || data.push) ensureState(states, data.next || data.push);\n this.regex = toRegex(data.regex);\n this.token = asToken(data.token);\n this.data = data;\n }\n\n function tokenFunction(states, config) {\n return function(stream, state) {\n if (state.pending) {\n var pend = state.pending.shift();\n if (state.pending.length == 0) state.pending = null;\n stream.pos += pend.text.length;\n return pend.token;\n }\n\n if (state.local) {\n if (state.local.end && stream.match(state.local.end)) {\n var tok = state.local.endToken || null;\n state.local = state.localState = null;\n return tok;\n } else {\n var tok = state.local.mode.token(stream, state.localState), m;\n if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n stream.pos = stream.start + m.index;\n return tok;\n }\n }\n\n var curState = states[state.state];\n for (var i = 0; i < curState.length; i++) {\n var rule = curState[i];\n var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n if (matches) {\n if (rule.data.next) {\n state.state = rule.data.next;\n } else if (rule.data.push) {\n (state.stack || (state.stack = [])).push(state.state);\n state.state = rule.data.push;\n } else if (rule.data.pop && state.stack && state.stack.length) {\n state.state = state.stack.pop();\n }\n\n if (rule.data.mode)\n enterLocalMode(config, state, rule.data.mode, rule.token);\n if (rule.data.indent)\n state.indent.push(stream.indentation() + config.indentUnit);\n if (rule.data.dedent)\n state.indent.pop();\n var token = rule.token\n if (token && token.apply) token = token(matches)\n if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n }\n\n function cmp(a, b) {\n if (a === b) return true;\n if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n var props = 0;\n for (var prop in a) if (a.hasOwnProperty(prop)) {\n if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n props++;\n }\n for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n return props == 0;\n }\n\n function enterLocalMode(config, state, spec, token) {\n var pers;\n if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n var lState = pers ? pers.state : CodeMirror.startState(mode);\n if (spec.persistent && !pers)\n state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n state.localState = lState;\n state.local = {mode: mode,\n end: spec.end && toRegex(spec.end),\n endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n endToken: token && token.join ? token[token.length - 1] : token};\n }\n\n function indexOf(val, arr) {\n for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n }\n\n function indentFunction(states, meta) {\n return function(state, textAfter, line) {\n if (state.local && state.local.mode.indent)\n return state.local.mode.indent(state.localState, textAfter, line);\n if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n return CodeMirror.Pass;\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n }\n});\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ModelVersionTable.vue?vue&type=style&index=0&id=0f8d3680&lang=css\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = fixOptions;\n\n\nfunction fixOptions(options) {\n\t// Fix the margins\n\toptions.marginTop = options.marginTop || options.margin;\n\toptions.marginBottom = options.marginBottom || options.margin;\n\toptions.marginRight = options.marginRight || options.margin;\n\toptions.marginLeft = options.marginLeft || options.margin;\n\n\treturn options;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.pharmacode = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Barcode2 = require(\"../Barcode.js\");\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation\n// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf\n\nvar pharmacode = function (_Barcode) {\n\t_inherits(pharmacode, _Barcode);\n\n\tfunction pharmacode(data, options) {\n\t\t_classCallCheck(this, pharmacode);\n\n\t\tvar _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options));\n\n\t\t_this.number = parseInt(data, 10);\n\t\treturn _this;\n\t}\n\n\t_createClass(pharmacode, [{\n\t\tkey: \"encode\",\n\t\tvalue: function encode() {\n\t\t\tvar z = this.number;\n\t\t\tvar result = \"\";\n\n\t\t\t// http://i.imgur.com/RMm4UDJ.png\n\t\t\t// (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34)\n\t\t\twhile (!isNaN(z) && z != 0) {\n\t\t\t\tif (z % 2 === 0) {\n\t\t\t\t\t// Even\n\t\t\t\t\tresult = \"11100\" + result;\n\t\t\t\t\tz = (z - 2) / 2;\n\t\t\t\t} else {\n\t\t\t\t\t// Odd\n\t\t\t\t\tresult = \"100\" + result;\n\t\t\t\t\tz = (z - 1) / 2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the two last zeroes\n\t\t\tresult = result.slice(0, -2);\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: \"valid\",\n\t\tvalue: function valid() {\n\t\t\treturn this.number >= 3 && this.number <= 131070;\n\t\t}\n\t}]);\n\n\treturn pharmacode;\n}(_Barcode3.default);\n\nexports.pharmacode = pharmacode;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI1110 = function (_MSI) {\n\t_inherits(MSI1110, _MSI);\n\n\tfunction MSI1110(data, options) {\n\t\t_classCallCheck(this, MSI1110);\n\n\t\tdata += (0, _checksums.mod11)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options));\n\t}\n\n\treturn MSI1110;\n}(_MSI3.default);\n\nexports.default = MSI1110;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DrawObjects.vue?vue&type=style&index=0&id=3b67d70b&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Barcode.vue?vue&type=style&index=0&id=2645007a&scoped=true&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StepTranslation.vue?vue&type=style&index=0&id=6005f2f0&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _MSI2 = require('./MSI.js');\n\nvar _MSI3 = _interopRequireDefault(_MSI2);\n\nvar _checksums = require('./checksums.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MSI1010 = function (_MSI) {\n\t_inherits(MSI1010, _MSI);\n\n\tfunction MSI1010(data, options) {\n\t\t_classCallCheck(this, MSI1010);\n\n\t\tdata += (0, _checksums.mod10)(data);\n\t\tdata += (0, _checksums.mod10)(data);\n\t\treturn _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options));\n\t}\n\n\treturn MSI1010;\n}(_MSI3.default);\n\nexports.default = MSI1010;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _constants = require('./constants');\n\nvar _EAN2 = require('./EAN');\n\nvar _EAN3 = _interopRequireDefault(_EAN2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode\n\n// Calculate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\nvar checksum = function checksum(number) {\n\tvar res = number.substr(0, 12).split('').map(function (n) {\n\t\treturn +n;\n\t}).reduce(function (sum, a, idx) {\n\t\treturn idx % 2 ? sum + a * 3 : sum + a;\n\t}, 0);\n\n\treturn (10 - res % 10) % 10;\n};\n\nvar EAN13 = function (_EAN) {\n\t_inherits(EAN13, _EAN);\n\n\tfunction EAN13(data, options) {\n\t\t_classCallCheck(this, EAN13);\n\n\t\t// Add checksum if it does not exist\n\t\tif (data.search(/^[0-9]{12}$/) !== -1) {\n\t\t\tdata += checksum(data);\n\t\t}\n\n\t\t// Adds a last character to the end of the barcode\n\t\tvar _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options));\n\n\t\t_this.lastChar = options.lastChar;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN13, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data);\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode() {\n\t\t\tvar data = this.data.substr(1, 6);\n\t\t\tvar structure = _constants.EAN13_STRUCTURE[this.data[0]];\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText() {\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode() {\n\t\t\tvar data = this.data.substr(7, 6);\n\t\t\treturn _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR');\n\t\t}\n\n\t\t// The \"standard\" way of printing EAN13 barcodes with guard bars\n\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this);\n\n\t\t\t// Extend data with left digit & last character\n\t\t\tif (this.options.displayValue) {\n\t\t\t\tdata.unshift({\n\t\t\t\t\tdata: '000000000000',\n\t\t\t\t\ttext: this.text.substr(0, 1),\n\t\t\t\t\toptions: { textAlign: 'left', fontSize: this.fontSize }\n\t\t\t\t});\n\n\t\t\t\tif (this.options.lastChar) {\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00'\n\t\t\t\t\t});\n\t\t\t\t\tdata.push({\n\t\t\t\t\t\tdata: '00000',\n\t\t\t\t\t\ttext: this.options.lastChar,\n\t\t\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t}]);\n\n\treturn EAN13;\n}(_EAN3.default);\n\nexports.default = EAN13;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined;\n\nvar _MSI = require('./MSI.js');\n\nvar _MSI2 = _interopRequireDefault(_MSI);\n\nvar _MSI3 = require('./MSI10.js');\n\nvar _MSI4 = _interopRequireDefault(_MSI3);\n\nvar _MSI5 = require('./MSI11.js');\n\nvar _MSI6 = _interopRequireDefault(_MSI5);\n\nvar _MSI7 = require('./MSI1010.js');\n\nvar _MSI8 = _interopRequireDefault(_MSI7);\n\nvar _MSI9 = require('./MSI1110.js');\n\nvar _MSI10 = _interopRequireDefault(_MSI9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.MSI = _MSI2.default;\nexports.MSI10 = _MSI4.default;\nexports.MSI11 = _MSI6.default;\nexports.MSI1010 = _MSI8.default;\nexports.MSI1110 = _MSI10.default;","// This icon file is generated automatically.\nvar LaptopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z\" } }] }, \"name\": \"laptop\", \"theme\": \"outlined\" };\nexport default LaptopOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LaptopOutlinedSvg from \"@ant-design/icons-svg/es/asn/LaptopOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LaptopOutlined = function LaptopOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LaptopOutlinedSvg\n }), null);\n};\n\nLaptopOutlined.displayName = 'LaptopOutlined';\nLaptopOutlined.inheritAttrs = false;\nexport default LaptopOutlined;","// This icon file is generated automatically.\nvar FileImageOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file-image\", \"theme\": \"outlined\" };\nexport default FileImageOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FileImageOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileImageOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FileImageOutlined = function FileImageOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FileImageOutlinedSvg\n }), null);\n};\n\nFileImageOutlined.displayName = 'FileImageOutlined';\nFileImageOutlined.inheritAttrs = false;\nexport default FileImageOutlined;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","import { v1, v3, v4, v5 } from 'uuid';\n\n/**\n * @typedef {Object} UUID\n * @property {typeof v1} v1\n * @property {typeof v3} v3\n * @property {typeof v4} v4\n * @property {typeof v5} v5\n */\n\n/**\n * An object with uuid's v1, v3, v4 and v5 functions.\n * @type {UUID}\n */\n\nvar uuid = {\n v1: v1,\n v3: v3,\n v4: v4,\n v5: v5\n};\n/**\n * Installs UUID on Vue instance. It creates a property on Vue instance to\n * expose an object with uuid's v1, v3, v4 and v5 functions.\n * @example ```js\n * import Vue from 'vue';\n * import VueUUID from 'vue-uuid';\n *\n * Vue.use(VueUUID);\n *\n * new Vue({\n * mounted () {\n * console.log(this.$uuid.v1());\n * }\n * });\n * ```\n * @param {import('vue').default} Vue Vue constructor.\n */\n\nfunction install(Vue) {\n Vue.prototype.$uuid = uuid;\n}\n\nexport { install as default, uuid };\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UpdateTagModal.vue?vue&type=style&index=0&id=0e0a614f&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TaskList.vue?vue&type=style&index=0&id=aad773a4&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StepTime.vue?vue&type=style&index=0&id=643ded40&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ITF14 = exports.ITF = undefined;\n\nvar _ITF = require('./ITF');\n\nvar _ITF2 = _interopRequireDefault(_ITF);\n\nvar _ITF3 = require('./ITF14');\n\nvar _ITF4 = _interopRequireDefault(_ITF3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.ITF = _ITF2.default;\nexports.ITF14 = _ITF4.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = linearizeEncodings;\n\n// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\nfunction linearizeEncodings(encodings) {\n\tvar linearEncodings = [];\n\tfunction nextLevel(encoded) {\n\t\tif (Array.isArray(encoded)) {\n\t\t\tfor (var i = 0; i < encoded.length; i++) {\n\t\t\t\tnextLevel(encoded[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tencoded.text = encoded.text || \"\";\n\t\t\tencoded.data = encoded.data || \"\";\n\t\t\tlinearEncodings.push(encoded);\n\t\t}\n\t}\n\tnextLevel(encodings);\n\n\treturn linearEncodings;\n}","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UploadStepMedia.vue?vue&type=style&index=0&id=0ab19540&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StepCompletionCheck.vue?vue&type=style&index=0&id=bcd79262&scoped=true&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_2#Encoding\n\nvar EAN2 = function (_Barcode) {\n\t_inherits(EAN2, _Barcode);\n\n\tfunction EAN2(data, options) {\n\t\t_classCallCheck(this, EAN2);\n\n\t\treturn _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options));\n\t}\n\n\t_createClass(EAN2, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.data.search(/^[0-9]{2}$/) !== -1;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\t// Choose the structure based on the number mod 4\n\t\t\tvar structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4];\n\t\t\treturn {\n\t\t\t\t// Start bits + Encode the two digits with 01 in between\n\t\t\t\tdata: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN2;\n}(_Barcode3.default);\n\nexports.default = EAN2;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _optionsFromStrings = require(\"./optionsFromStrings.js\");\n\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\n\nvar _defaults = require(\"../options/defaults.js\");\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getOptionsFromElement(element) {\n\tvar options = {};\n\tfor (var property in _defaults2.default) {\n\t\tif (_defaults2.default.hasOwnProperty(property)) {\n\t\t\t// jsbarcode-*\n\t\t\tif (element.hasAttribute(\"jsbarcode-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"jsbarcode-\" + property.toLowerCase());\n\t\t\t}\n\n\t\t\t// data-*\n\t\t\tif (element.hasAttribute(\"data-\" + property.toLowerCase())) {\n\t\t\t\toptions[property] = element.getAttribute(\"data-\" + property.toLowerCase());\n\t\t\t}\n\t\t}\n\t}\n\n\toptions[\"value\"] = element.getAttribute(\"jsbarcode-value\") || element.getAttribute(\"data-value\");\n\n\t// Since all atributes are string they need to be converted to integers\n\toptions = (0, _optionsFromStrings2.default)(options);\n\n\treturn options;\n}\n\nexports.default = getOptionsFromElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined;\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getEncodingHeight(encoding, options) {\n\treturn options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom;\n}\n\nfunction getBarcodePadding(textWidth, barcodeWidth, options) {\n\tif (options.displayValue && barcodeWidth < textWidth) {\n\t\tif (options.textAlign == \"center\") {\n\t\t\treturn Math.floor((textWidth - barcodeWidth) / 2);\n\t\t} else if (options.textAlign == \"left\") {\n\t\t\treturn 0;\n\t\t} else if (options.textAlign == \"right\") {\n\t\t\treturn Math.floor(textWidth - barcodeWidth);\n\t\t}\n\t}\n\treturn 0;\n}\n\nfunction calculateEncodingAttributes(encodings, barcodeOptions, context) {\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tvar encoding = encodings[i];\n\t\tvar options = (0, _merge2.default)(barcodeOptions, encoding.options);\n\n\t\t// Calculate the width of the encoding\n\t\tvar textWidth;\n\t\tif (options.displayValue) {\n\t\t\ttextWidth = messureText(encoding.text, options, context);\n\t\t} else {\n\t\t\ttextWidth = 0;\n\t\t}\n\n\t\tvar barcodeWidth = encoding.data.length * options.width;\n\t\tencoding.width = Math.ceil(Math.max(textWidth, barcodeWidth));\n\n\t\tencoding.height = getEncodingHeight(encoding, options);\n\n\t\tencoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options);\n\t}\n}\n\nfunction getTotalWidthOfEncodings(encodings) {\n\tvar totalWidth = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\ttotalWidth += encodings[i].width;\n\t}\n\treturn totalWidth;\n}\n\nfunction getMaximumHeightOfEncodings(encodings) {\n\tvar maxHeight = 0;\n\tfor (var i = 0; i < encodings.length; i++) {\n\t\tif (encodings[i].height > maxHeight) {\n\t\t\tmaxHeight = encodings[i].height;\n\t\t}\n\t}\n\treturn maxHeight;\n}\n\nfunction messureText(string, options, context) {\n\tvar ctx;\n\n\tif (context) {\n\t\tctx = context;\n\t} else if (typeof document !== \"undefined\") {\n\t\tctx = document.createElement(\"canvas\").getContext(\"2d\");\n\t} else {\n\t\t// If the text cannot be messured we will return 0.\n\t\t// This will make some barcode with big text render incorrectly\n\t\treturn 0;\n\t}\n\tctx.font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n\t// Calculate the width of the encoding\n\tvar measureTextResult = ctx.measureText(string);\n\tif (!measureTextResult) {\n\t\t// Some implementations don't implement measureText and return undefined.\n\t\t// If the text cannot be measured we will return 0.\n\t\t// This will make some barcode with big text render incorrectly\n\t\treturn 0;\n\t}\n\tvar size = measureTextResult.width;\n\treturn size;\n}\n\nexports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings;\nexports.getEncodingHeight = getEncodingHeight;\nexports.getBarcodePadding = getBarcodePadding;\nexports.calculateEncodingAttributes = calculateEncodingAttributes;\nexports.getTotalWidthOfEncodings = getTotalWidthOfEncodings;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WebRtc.vue?vue&type=style&index=0&id=96bb8648&scoped=true&lang=css\"","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"printJS\"] = factory();\n\telse\n\t\troot[\"printJS\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sass/index.scss */ \"./src/sass/index.scss\");\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_sass_index_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _js_init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/init */ \"./src/js/init.js\");\n\n\nvar printJS = _js_init__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\nif (typeof window !== 'undefined') {\n window.printJS = printJS;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (printJS);\n\n/***/ }),\n\n/***/ \"./src/js/browser.js\":\n/*!***************************!*\\\n !*** ./src/js/browser.js ***!\n \\***************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar Browser = {\n // Firefox 1.0+\n isFirefox: function isFirefox() {\n return typeof InstallTrigger !== 'undefined';\n },\n // Internet Explorer 6-11\n isIE: function isIE() {\n return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode;\n },\n // Edge 20+\n isEdge: function isEdge() {\n return !Browser.isIE() && !!window.StyleMedia;\n },\n // Chrome 1+\n isChrome: function isChrome() {\n var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n return !!context.chrome;\n },\n // At least Safari 3+: \"[object HTMLElementConstructor]\"\n isSafari: function isSafari() {\n return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || navigator.userAgent.toLowerCase().indexOf('safari') !== -1;\n },\n // IOS Chrome\n isIOSChrome: function isIOSChrome() {\n return navigator.userAgent.toLowerCase().indexOf('crios') !== -1;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Browser);\n\n/***/ }),\n\n/***/ \"./src/js/functions.js\":\n/*!*****************************!*\\\n !*** ./src/js/functions.js ***!\n \\*****************************/\n/*! exports provided: addWrapper, capitalizePrint, collectStyles, addHeader, cleanUp, isRawHTML */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addWrapper\", function() { return addWrapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"capitalizePrint\", function() { return capitalizePrint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collectStyles\", function() { return collectStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addHeader\", function() { return addHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cleanUp\", function() { return cleanUp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRawHTML\", function() { return isRawHTML; });\n/* harmony import */ var _modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modal */ \"./src/js/modal.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\nfunction addWrapper(htmlData, params) {\n var bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;';\n return '
' + htmlData + '
';\n}\nfunction capitalizePrint(obj) {\n return obj.charAt(0).toUpperCase() + obj.slice(1);\n}\nfunction collectStyles(element, params) {\n var win = document.defaultView || window; // String variable to hold styling for each element\n\n var elementStyle = ''; // Loop over computed styles\n\n var styles = win.getComputedStyle(element, '');\n\n for (var key = 0; key < styles.length; key++) {\n // Check if style should be processed\n if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) {\n if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';';\n }\n } // Print friendly defaults (deprecated)\n\n\n elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;';\n return elementStyle;\n}\n\nfunction targetStylesMatch(styles, value) {\n for (var i = 0; i < styles.length; i++) {\n if (_typeof(value) === 'object' && value.indexOf(styles[i]) !== -1) return true;\n }\n\n return false;\n}\n\nfunction addHeader(printElement, params) {\n // Create the header container div\n var headerContainer = document.createElement('div'); // Check if the header is text or raw html\n\n if (isRawHTML(params.header)) {\n headerContainer.innerHTML = params.header;\n } else {\n // Create header element\n var headerElement = document.createElement('h1'); // Create header text node\n\n var headerNode = document.createTextNode(params.header); // Build and style\n\n headerElement.appendChild(headerNode);\n headerElement.setAttribute('style', params.headerStyle);\n headerContainer.appendChild(headerElement);\n }\n\n printElement.insertBefore(headerContainer, printElement.childNodes[0]);\n}\nfunction cleanUp(params) {\n // If we are showing a feedback message to user, remove it\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_0__[\"default\"].close(); // Check for a finished loading hook function\n\n if (params.onLoadingEnd) params.onLoadingEnd(); // If preloading pdf files, clean blob url\n\n if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable); // Run onPrintDialogClose callback\n\n var event = 'mouseover';\n\n if (_browser__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isChrome() || _browser__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFirefox()) {\n // Ps.: Firefox will require an extra click in the document to fire the focus event.\n event = 'focus';\n }\n\n var handler = function handler() {\n // Make sure the event only happens once.\n window.removeEventListener(event, handler);\n params.onPrintDialogClose(); // Remove iframe from the DOM\n\n var iframe = document.getElementById(params.frameId);\n\n if (iframe) {\n iframe.remove();\n }\n };\n\n window.addEventListener(event, handler);\n}\nfunction isRawHTML(raw) {\n var regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\\\b[^>]*>(.*?)');\n return regexHtml.test(raw);\n}\n\n/***/ }),\n\n/***/ \"./src/js/html.js\":\n/*!************************!*\\\n !*** ./src/js/html.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Get the DOM printable element\n var printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable); // Check if the element exists\n\n if (!printElement) {\n window.console.error('Invalid HTML element id: ' + params.printable);\n return;\n } // Clone the target element including its children (if available)\n\n\n params.printableElement = cloneElement(printElement, params); // Add header\n\n if (params.header) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params);\n } // Print html element contents\n\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\nfunction cloneElement(element, params) {\n // Clone the main node (if not already inside the recursion process)\n var clone = element.cloneNode(); // Loop over and process the children elements / nodes (including text nodes)\n\n var childNodesArray = Array.prototype.slice.call(element.childNodes);\n\n for (var i = 0; i < childNodesArray.length; i++) {\n // Check if we are skipping the current element\n if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) {\n continue;\n } // Clone the child element\n\n\n var clonedChild = cloneElement(childNodesArray[i], params); // Attach the cloned child to the cloned parent node\n\n clone.appendChild(clonedChild);\n } // Get all styling for print element (for nodes of type element only)\n\n\n if (params.scanStyles && element.nodeType === 1) {\n clone.setAttribute('style', Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"collectStyles\"])(element, params));\n } // Check if the element needs any state processing (copy user input data)\n\n\n switch (element.tagName) {\n case 'SELECT':\n // Copy the current selection value to its clone\n clone.value = element.value;\n break;\n\n case 'CANVAS':\n // Copy the canvas content to its clone\n clone.getContext('2d').drawImage(element, 0, 0);\n break;\n }\n\n return clone;\n}\n\nfunction isHtmlElement(printable) {\n // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe)\n return _typeof(printable) === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1);\n}\n\n/***/ }),\n\n/***/ \"./src/js/image.js\":\n/*!*************************!*\\\n !*** ./src/js/image.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we are printing one image or multiple images\n if (params.printable.constructor !== Array) {\n // Create array with one image\n params.printable = [params.printable];\n } // Create printable element (container)\n\n\n params.printableElement = document.createElement('div'); // Create all image elements and append them to the printable container\n\n params.printable.forEach(function (src) {\n // Create the image element\n var img = document.createElement('img');\n img.setAttribute('style', params.imageStyle); // Set image src with the file url\n\n img.src = src; // The following block is for Firefox, which for some reason requires the image's src to be fully qualified in\n // order to print it\n\n if (_browser__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isFirefox()) {\n var fullyQualifiedSrc = img.src;\n img.src = fullyQualifiedSrc;\n } // Create the image wrapper\n\n\n var imageWrapper = document.createElement('div'); // Append image to the wrapper element\n\n imageWrapper.appendChild(img); // Append wrapper to the printable element\n\n params.printableElement.appendChild(imageWrapper);\n }); // Check if we are adding a print header\n\n if (params.header) Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params); // Print image\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/js/init.js\":\n/*!************************!*\\\n !*** ./src/js/init.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n/* harmony import */ var _modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal */ \"./src/js/modal.js\");\n/* harmony import */ var _pdf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pdf */ \"./src/js/pdf.js\");\n/* harmony import */ var _html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./html */ \"./src/js/html.js\");\n/* harmony import */ var _raw_html__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./raw-html */ \"./src/js/raw-html.js\");\n/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./image */ \"./src/js/image.js\");\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./json */ \"./src/js/json.js\");\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\nvar printTypes = ['pdf', 'html', 'image', 'json', 'raw-html'];\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: function init() {\n var params = {\n printable: null,\n fallbackPrintable: null,\n type: 'pdf',\n header: null,\n headerStyle: 'font-weight: 300;',\n maxWidth: 800,\n properties: null,\n gridHeaderStyle: 'font-weight: bold; padding: 5px; border: 1px solid #dddddd;',\n gridStyle: 'border: 1px solid lightgray; margin-bottom: -1px;',\n showModal: false,\n onError: function onError(error) {\n throw error;\n },\n onLoadingStart: null,\n onLoadingEnd: null,\n onPrintDialogClose: function onPrintDialogClose() {},\n onIncompatibleBrowser: function onIncompatibleBrowser() {},\n modalMessage: 'Retrieving Document...',\n frameId: 'printJS',\n printableElement: null,\n documentTitle: 'Document',\n targetStyle: ['clear', 'display', 'width', 'min-width', 'height', 'min-height', 'max-height'],\n targetStyles: ['border', 'box', 'break', 'text-decoration'],\n ignoreElements: [],\n repeatTableHeader: true,\n css: null,\n style: null,\n scanStyles: true,\n base64: false,\n // Deprecated\n onPdfOpen: null,\n font: 'TimesNewRoman',\n font_size: '12pt',\n honorMarginPadding: true,\n honorColor: false,\n imageStyle: 'max-width: 100%;'\n }; // Check if a printable document or object was supplied\n\n var args = arguments[0];\n\n if (args === undefined) {\n throw new Error('printJS expects at least 1 attribute.');\n } // Process parameters\n\n\n switch (_typeof(args)) {\n case 'string':\n params.printable = encodeURI(args);\n params.fallbackPrintable = params.printable;\n params.type = arguments[1] || params.type;\n break;\n\n case 'object':\n params.printable = args.printable;\n params.fallbackPrintable = typeof args.fallbackPrintable !== 'undefined' ? args.fallbackPrintable : params.printable;\n params.fallbackPrintable = params.base64 ? \"data:application/pdf;base64,\".concat(params.fallbackPrintable) : params.fallbackPrintable;\n\n for (var k in params) {\n if (k === 'printable' || k === 'fallbackPrintable') continue;\n params[k] = typeof args[k] !== 'undefined' ? args[k] : params[k];\n }\n\n break;\n\n default:\n throw new Error('Unexpected argument type! Expected \"string\" or \"object\", got ' + _typeof(args));\n } // Validate printable\n\n\n if (!params.printable) throw new Error('Missing printable information.'); // Validate type\n\n if (!params.type || typeof params.type !== 'string' || printTypes.indexOf(params.type.toLowerCase()) === -1) {\n throw new Error('Invalid print type. Available types are: pdf, html, image and json.');\n } // Check if we are showing a feedback message to the user (useful for large files)\n\n\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__[\"default\"].show(params); // Check for a print start hook function\n\n if (params.onLoadingStart) params.onLoadingStart(); // To prevent duplication and issues, remove any used printFrame from the DOM\n\n var usedFrame = document.getElementById(params.frameId);\n if (usedFrame) usedFrame.parentNode.removeChild(usedFrame); // Create a new iframe for the print job\n\n var printFrame = document.createElement('iframe');\n\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n // Set the iframe to be is visible on the page (guaranteed by fixed position) but hidden using opacity 0, because\n // this works in Firefox. The height needs to be sufficient for some part of the document other than the PDF\n // viewer's toolbar to be visible in the page\n printFrame.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');\n } else {\n // Hide the iframe in other browsers\n printFrame.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');\n } // Set iframe element id\n\n\n printFrame.setAttribute('id', params.frameId); // For non pdf printing, pass an html document string to srcdoc (force onload callback)\n\n if (params.type !== 'pdf') {\n printFrame.srcdoc = '' + params.documentTitle + ''; // Attach css files\n\n if (params.css) {\n // Add support for single file\n if (!Array.isArray(params.css)) params.css = [params.css]; // Create link tags for each css file\n\n params.css.forEach(function (file) {\n printFrame.srcdoc += '';\n });\n }\n\n printFrame.srcdoc += '';\n } // Check printable type\n\n\n switch (params.type) {\n case 'pdf':\n // Check browser support for pdf and if not supported we will just open the pdf file instead\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIE()) {\n try {\n console.info('Print.js doesn\\'t support PDF printing in Internet Explorer.');\n var win = window.open(params.fallbackPrintable, '_blank');\n win.focus();\n params.onIncompatibleBrowser();\n } catch (error) {\n params.onError(error);\n } finally {\n // Make sure there is no loading modal opened\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__[\"default\"].close();\n if (params.onLoadingEnd) params.onLoadingEnd();\n }\n } else {\n _pdf__WEBPACK_IMPORTED_MODULE_2__[\"default\"].print(params, printFrame);\n }\n\n break;\n\n case 'image':\n _image__WEBPACK_IMPORTED_MODULE_5__[\"default\"].print(params, printFrame);\n break;\n\n case 'html':\n _html__WEBPACK_IMPORTED_MODULE_3__[\"default\"].print(params, printFrame);\n break;\n\n case 'raw-html':\n _raw_html__WEBPACK_IMPORTED_MODULE_4__[\"default\"].print(params, printFrame);\n break;\n\n case 'json':\n _json__WEBPACK_IMPORTED_MODULE_6__[\"default\"].print(params, printFrame);\n break;\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/js/json.js\":\n/*!************************!*\\\n !*** ./src/js/json.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we received proper data\n if (_typeof(params.printable) !== 'object') {\n throw new Error('Invalid javascript data object (JSON).');\n } // Validate repeatTableHeader\n\n\n if (typeof params.repeatTableHeader !== 'boolean') {\n throw new Error('Invalid value for repeatTableHeader attribute (JSON).');\n } // Validate properties\n\n\n if (!params.properties || !Array.isArray(params.properties)) {\n throw new Error('Invalid properties array for your JSON data.');\n } // We will format the property objects to keep the JSON api compatible with older releases\n\n\n params.properties = params.properties.map(function (property) {\n return {\n field: _typeof(property) === 'object' ? property.field : property,\n displayName: _typeof(property) === 'object' ? property.displayName : property,\n columnSize: _typeof(property) === 'object' && property.columnSize ? property.columnSize + ';' : 100 / params.properties.length + '%;'\n };\n }); // Create a print container element\n\n params.printableElement = document.createElement('div'); // Check if we are adding a print header\n\n if (params.header) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params);\n } // Build the printable html data\n\n\n params.printableElement.innerHTML += jsonToHTML(params); // Print the json data\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\nfunction jsonToHTML(params) {\n // Get the row and column data\n var data = params.printable;\n var properties = params.properties; // Create a html table\n\n var htmlData = ''; // Check if the header should be repeated\n\n if (params.repeatTableHeader) {\n htmlData += '';\n } // Add the table header row\n\n\n htmlData += ''; // Add the table header columns\n\n for (var a = 0; a < properties.length; a++) {\n htmlData += '';\n } // Add the closing tag for the table header row\n\n\n htmlData += ''; // If the table header is marked as repeated, add the closing tag\n\n if (params.repeatTableHeader) {\n htmlData += '';\n } // Create the table body\n\n\n htmlData += ''; // Add the table data rows\n\n for (var i = 0; i < data.length; i++) {\n // Add the row starting tag\n htmlData += ''; // Print selected properties only\n\n for (var n = 0; n < properties.length; n++) {\n var stringData = data[i]; // Support nested objects\n\n var property = properties[n].field.split('.');\n\n if (property.length > 1) {\n for (var p = 0; p < property.length; p++) {\n stringData = stringData[property[p]];\n }\n } else {\n stringData = stringData[properties[n].field];\n } // Add the row contents and styles\n\n\n htmlData += '';\n } // Add the row closing tag\n\n\n htmlData += '';\n } // Add the table and body closing tags\n\n\n htmlData += '
' + Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"capitalizePrint\"])(properties[a].displayName) + '
' + stringData + '
';\n return htmlData;\n}\n\n/***/ }),\n\n/***/ \"./src/js/modal.js\":\n/*!*************************!*\\\n !*** ./src/js/modal.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar Modal = {\n show: function show(params) {\n // Build modal\n var modalStyle = 'font-family:sans-serif; ' + 'display:table; ' + 'text-align:center; ' + 'font-weight:300; ' + 'font-size:30px; ' + 'left:0; top:0;' + 'position:fixed; ' + 'z-index: 9990;' + 'color: #0460B5; ' + 'width: 100%; ' + 'height: 100%; ' + 'background-color:rgba(255,255,255,.9);' + 'transition: opacity .3s ease;'; // Create wrapper\n\n var printModal = document.createElement('div');\n printModal.setAttribute('style', modalStyle);\n printModal.setAttribute('id', 'printJS-Modal'); // Create content div\n\n var contentDiv = document.createElement('div');\n contentDiv.setAttribute('style', 'display:table-cell; vertical-align:middle; padding-bottom:100px;'); // Add close button (requires print.css)\n\n var closeButton = document.createElement('div');\n closeButton.setAttribute('class', 'printClose');\n closeButton.setAttribute('id', 'printClose');\n contentDiv.appendChild(closeButton); // Add spinner (requires print.css)\n\n var spinner = document.createElement('span');\n spinner.setAttribute('class', 'printSpinner');\n contentDiv.appendChild(spinner); // Add message\n\n var messageNode = document.createTextNode(params.modalMessage);\n contentDiv.appendChild(messageNode); // Add contentDiv to printModal\n\n printModal.appendChild(contentDiv); // Append print modal element to document body\n\n document.getElementsByTagName('body')[0].appendChild(printModal); // Add event listener to close button\n\n document.getElementById('printClose').addEventListener('click', function () {\n Modal.close();\n });\n },\n close: function close() {\n var printModal = document.getElementById('printJS-Modal');\n\n if (printModal) {\n printModal.parentNode.removeChild(printModal);\n }\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Modal);\n\n/***/ }),\n\n/***/ \"./src/js/pdf.js\":\n/*!***********************!*\\\n !*** ./src/js/pdf.js ***!\n \\***********************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we have base64 data\n if (params.base64) {\n var bytesArray = Uint8Array.from(atob(params.printable), function (c) {\n return c.charCodeAt(0);\n });\n createBlobAndPrint(params, printFrame, bytesArray);\n return;\n } // Format pdf url\n\n\n params.printable = /^(blob|http|\\/\\/)/i.test(params.printable) ? params.printable : window.location.origin + (params.printable.charAt(0) !== '/' ? '/' + params.printable : params.printable); // Get the file through a http request (Preload)\n\n var req = new window.XMLHttpRequest();\n req.responseType = 'arraybuffer';\n req.addEventListener('error', function () {\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job\n });\n req.addEventListener('load', function () {\n // Check for errors\n if ([200, 201].indexOf(req.status) === -1) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job\n\n return;\n } // Print requested document\n\n\n createBlobAndPrint(params, printFrame, req.response);\n });\n req.open('GET', params.printable, true);\n req.send();\n }\n});\n\nfunction createBlobAndPrint(params, printFrame, data) {\n // Pass response or base64 data to a blob and create a local object url\n var localPdf = new window.Blob([data], {\n type: 'application/pdf'\n });\n localPdf = window.URL.createObjectURL(localPdf); // Set iframe src with pdf document url\n\n printFrame.setAttribute('src', localPdf);\n _print__WEBPACK_IMPORTED_MODULE_0__[\"default\"].send(params, printFrame);\n}\n\n/***/ }),\n\n/***/ \"./src/js/print.js\":\n/*!*************************!*\\\n !*** ./src/js/print.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n\n\nvar Print = {\n send: function send(params, printFrame) {\n // Append iframe element to document body\n document.getElementsByTagName('body')[0].appendChild(printFrame); // Get iframe element\n\n var iframeElement = document.getElementById(params.frameId); // Wait for iframe to load all content\n\n iframeElement.onload = function () {\n if (params.type === 'pdf') {\n // Add a delay for Firefox. In my tests, 1000ms was sufficient but 100ms was not\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n setTimeout(function () {\n return performPrint(iframeElement, params);\n }, 1000);\n } else {\n performPrint(iframeElement, params);\n }\n\n return;\n } // Get iframe element document\n\n\n var printDocument = iframeElement.contentWindow || iframeElement.contentDocument;\n if (printDocument.document) printDocument = printDocument.document; // Append printable element to the iframe body\n\n printDocument.body.appendChild(params.printableElement); // Add custom style\n\n if (params.type !== 'pdf' && params.style) {\n // Create style element\n var style = document.createElement('style');\n style.innerHTML = params.style; // Append style element to iframe's head\n\n printDocument.head.appendChild(style);\n } // If printing images, wait for them to load inside the iframe\n\n\n var images = printDocument.getElementsByTagName('img');\n\n if (images.length > 0) {\n loadIframeImages(Array.from(images)).then(function () {\n return performPrint(iframeElement, params);\n });\n } else {\n performPrint(iframeElement, params);\n }\n };\n }\n};\n\nfunction performPrint(iframeElement, params) {\n try {\n iframeElement.focus(); // If Edge or IE, try catch with execCommand\n\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isEdge() || _browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIE()) {\n try {\n iframeElement.contentWindow.document.execCommand('print', false, null);\n } catch (e) {\n iframeElement.contentWindow.print();\n }\n } else {\n // Other browsers\n iframeElement.contentWindow.print();\n }\n } catch (error) {\n params.onError(error);\n } finally {\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n // Move the iframe element off-screen and make it invisible\n iframeElement.style.visibility = 'hidden';\n iframeElement.style.left = '-1px';\n }\n\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n }\n}\n\nfunction loadIframeImages(images) {\n var promises = images.map(function (image) {\n if (image.src && image.src !== window.location.href) {\n return loadIframeImage(image);\n }\n });\n return Promise.all(promises);\n}\n\nfunction loadIframeImage(image) {\n return new Promise(function (resolve) {\n var pollImage = function pollImage() {\n !image || typeof image.naturalWidth === 'undefined' || image.naturalWidth === 0 || !image.complete ? setTimeout(pollImage, 500) : resolve();\n };\n\n pollImage();\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Print);\n\n/***/ }),\n\n/***/ \"./src/js/raw-html.js\":\n/*!****************************!*\\\n !*** ./src/js/raw-html.js ***!\n \\****************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Create printable element (container)\n params.printableElement = document.createElement('div');\n params.printableElement.setAttribute('style', 'width:100%'); // Set our raw html as the printable element inner html content\n\n params.printableElement.innerHTML = params.printable; // Print html contents\n\n _print__WEBPACK_IMPORTED_MODULE_0__[\"default\"].send(params, printFrame);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/sass/index.scss\":\n/*!*****************************!*\\\n !*** ./src/sass/index.scss ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 0:\n/*!****************************!*\\\n !*** multi ./src/index.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! ./src/index.js */\"./src/index.js\");\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=print.map","// This icon file is generated automatically.\nvar HighlightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M957.6 507.4L603.2 158.2a7.9 7.9 0 00-11.2 0L353.3 393.4a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z\" } }] }, \"name\": \"highlight\", \"theme\": \"outlined\" };\nexport default HighlightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport HighlightOutlinedSvg from \"@ant-design/icons-svg/es/asn/HighlightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar HighlightOutlined = function HighlightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": HighlightOutlinedSvg\n }), null);\n};\n\nHighlightOutlined.displayName = 'HighlightOutlined';\nHighlightOutlined.inheritAttrs = false;\nexport default HighlightOutlined;","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AddTranslation.vue?vue&type=style&index=0&id=63701e28&scoped=true&lang=css\"","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction bracketFolding(pairs) {\n return function(cm, start) {\n var line = start.line, lineText = cm.getLine(line);\n\n function findOpening(pair) {\n var tokenType;\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(pair[0], at - 1);\n if (found == -1) {\n if (pass == 1) break;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) break;\n tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n if (!/^(comment|string)/.test(tokenType)) return {ch: found + 1, tokenType: tokenType, pair: pair};\n at = found - 1;\n }\n }\n\n function findRange(found) {\n var count = 1, lastLine = cm.lastLine(), end, startCh = found.ch, endCh\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(found.pair[0], pos), nextClose = text.indexOf(found.pair[1], pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == found.tokenType) {\n if (pos == nextOpen) ++count;\n else if (!--count) { end = i; endCh = pos; break outer; }\n }\n ++pos;\n }\n }\n\n if (end == null || line == end) return null\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n }\n\n var found = []\n for (var i = 0; i < pairs.length; i++) {\n var open = findOpening(pairs[i])\n if (open) found.push(open)\n }\n found.sort(function(a, b) { return a.ch - b.ch })\n for (var i = 0; i < found.length; i++) {\n var range = findRange(found[i])\n if (range) return range\n }\n return null\n }\n}\n\nCodeMirror.registerHelper(\"fold\", \"brace\", bracketFolding([[\"{\", \"}\"], [\"[\", \"]\"]]));\n\nCodeMirror.registerHelper(\"fold\", \"brace-paren\", bracketFolding([[\"{\", \"}\"], [\"[\", \"]\"], [\"(\", \")\"]]));\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n function hasImport(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type != \"keyword\" || start.string != \"import\") return null;\n // Now find closing semicolon, return its position\n for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n var text = cm.getLine(i), semi = text.indexOf(\";\");\n if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n }\n }\n\n var startLine = start.line, has = hasImport(startLine), prev;\n if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))\n return null;\n for (var end = has.end;;) {\n var next = hasImport(end.line + 1);\n if (next == null) break;\n end = next.end;\n }\n return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n function hasInclude(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n }\n\n var startLine = start.line, has = hasInclude(startLine);\n if (has == null || hasInclude(startLine - 1) != null) return null;\n for (var end = startLine;;) {\n var next = hasInclude(end + 1);\n if (next == null) break;\n ++end;\n }\n return {from: CodeMirror.Pos(startLine, has + 1),\n to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TaskParametersTab.vue?vue&type=style&index=0&id=4052711d&lang=css\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TrainModel.vue?vue&type=style&index=0&id=711d0cd0&lang=css\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* global HTMLImageElement */\n/* global HTMLCanvasElement */\n/* global SVGElement */\n\nvar _getOptionsFromElement = require(\"./getOptionsFromElement.js\");\n\nvar _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement);\n\nvar _renderers = require(\"../renderers\");\n\nvar _renderers2 = _interopRequireDefault(_renderers);\n\nvar _exceptions = require(\"../exceptions/exceptions.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Takes an element and returns an object with information about how\n// it should be rendered\n// This could also return an array with these objects\n// {\n// element: The element that the renderer should draw on\n// renderer: The name of the renderer\n// afterRender (optional): If something has to done after the renderer\n// completed, calls afterRender (function)\n// options (optional): Options that can be defined in the element\n// }\n\nfunction getRenderProperties(element) {\n\t// If the element is a string, query select call again\n\tif (typeof element === \"string\") {\n\t\treturn querySelectedRenderProperties(element);\n\t}\n\t// If element is array. Recursivly call with every object in the array\n\telse if (Array.isArray(element)) {\n\t\t\tvar returnArray = [];\n\t\t\tfor (var i = 0; i < element.length; i++) {\n\t\t\t\treturnArray.push(getRenderProperties(element[i]));\n\t\t\t}\n\t\t\treturn returnArray;\n\t\t}\n\t\t// If element, render on canvas and set the uri as src\n\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) {\n\t\t\t\treturn newCanvasRenderProperties(element);\n\t\t\t}\n\t\t\t// If SVG\n\t\t\telse if (element && element.nodeName && element.nodeName.toLowerCase() === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\telement: element,\n\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\trenderer: _renderers2.default.SVGRenderer\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// If canvas (in browser)\n\t\t\t\telse if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\toptions: (0, _getOptionsFromElement2.default)(element),\n\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\t// If canvas (in node)\n\t\t\t\t\telse if (element && element.getContext) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.CanvasRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (element && (typeof element === \"undefined\" ? \"undefined\" : _typeof(element)) === 'object' && !element.nodeName) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\telement: element,\n\t\t\t\t\t\t\t\trenderer: _renderers2.default.ObjectRenderer\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow new _exceptions.InvalidElementException();\n\t\t\t\t\t\t}\n}\n\nfunction querySelectedRenderProperties(string) {\n\tvar selector = document.querySelectorAll(string);\n\tif (selector.length === 0) {\n\t\treturn undefined;\n\t} else {\n\t\tvar returnArray = [];\n\t\tfor (var i = 0; i < selector.length; i++) {\n\t\t\treturnArray.push(getRenderProperties(selector[i]));\n\t\t}\n\t\treturn returnArray;\n\t}\n}\n\nfunction newCanvasRenderProperties(imgElement) {\n\tvar canvas = document.createElement('canvas');\n\treturn {\n\t\telement: canvas,\n\t\toptions: (0, _getOptionsFromElement2.default)(imgElement),\n\t\trenderer: _renderers2.default.CanvasRenderer,\n\t\tafterRender: function afterRender() {\n\t\t\timgElement.setAttribute(\"src\", canvas.toDataURL());\n\t\t}\n\t};\n}\n\nexports.default = getRenderProperties;","\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n","import { render } from \"./ModelVersionTable.vue?vue&type=template&id=0f8d3680\"\nimport script from \"./ModelVersionTable.vue?vue&type=script&lang=js\"\nexport * from \"./ModelVersionTable.vue?vue&type=script&lang=js\"\n\nimport \"./ModelVersionTable.vue?vue&type=style&index=0&id=0f8d3680&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ModelVersions.vue?vue&type=template&id=3923c670\"\nimport script from \"./ModelVersions.vue?vue&type=script&lang=js\"\nexport * from \"./ModelVersions.vue?vue&type=script&lang=js\"\n\nimport \"./ModelVersions.vue?vue&type=style&index=0&id=3923c670&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","export default [\r\n {\r\n title: 'Device ID',\r\n dataIndex: 'deviceId',\r\n width: '10%',\r\n align: 'center',\r\n },\r\n // {\r\n // title: 'Shift',\r\n // dataIndex: 'shift',\r\n // width: '10%',\r\n // },\r\n {\r\n title: 'Activity',\r\n dataIndex: 'status',\r\n width: '30%',\r\n align: 'center',\r\n },\r\n {\r\n title: 'Action',\r\n dataIndex: 'action',\r\n width: '10%',\r\n align: 'center',\r\n },\r\n ];\r\n ","\r\n\r\n\r\n\r\n\r\n","import { uuid } from 'vue-uuid';\r\n\r\nexport const TYPES = {\r\n rectangle: 'Rectangle',\r\n arrow: 'Arrow',\r\n circle: 'Circle',\r\n image: 'Image',\r\n text: 'Text',\r\n gif: 'Gif',\r\n};\r\nexport class Rectangle {\r\n constructor({\r\n id = -1,\r\n x = 305,\r\n y = 215,\r\n width = 50,\r\n height = 50,\r\n displayName = 'New Region',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n } = {}) {\r\n this.id = id;\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n this.displayName = displayName;\r\n this.midx = 0;\r\n this.midy = 0;\r\n this.type = TYPES.rectangle;\r\n\r\n this.name = uuid.v4();\r\n this.rotation = 0;\r\n this.scaleX = 1;\r\n this.scaleY = 1;\r\n this.selected = false;\r\n\r\n this.calculateMidPoint();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n scale(screenWidth, screenHeight, direction) {\r\n if (!['up', 'down'].includes(direction.toLowerCase()))\r\n throw `Scale direction not specified. Direction can be \"up\" or \"down\"`;\r\n\r\n if (direction === 'down') {\r\n screenWidth = 1 / screenWidth;\r\n screenHeight = 1 / screenHeight;\r\n }\r\n this.x *= screenWidth;\r\n this.y *= screenHeight;\r\n this.width *= screenWidth;\r\n this.height *= screenHeight;\r\n }\r\n deepCopy(rectangle) {\r\n const {\r\n x,\r\n y,\r\n width,\r\n height,\r\n displayName,\r\n midx,\r\n midy,\r\n type,\r\n name,\r\n rotation,\r\n selected,\r\n } = rectangle;\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n this.displayName = displayName;\r\n this.midx = midx;\r\n this.midy = midy;\r\n this.type = type;\r\n this.name = name;\r\n this.rotation = rotation;\r\n this.selected = selected;\r\n }\r\n toJSON() {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height,\r\n displayName: this.displayName,\r\n midx: this.midx,\r\n midy: this.midy,\r\n type: this.type,\r\n name: this.name,\r\n rotation: this.rotation,\r\n selected: this.selected,\r\n };\r\n }\r\n}\r\n\r\nexport class Arrow {\r\n constructor({\r\n id = -1,\r\n x = 300,\r\n y = 200,\r\n displayName = 'New Arrow',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n points = [],\r\n } = {}) {\r\n this.id = id;\r\n this.x = x;\r\n this.y = y;\r\n this.displayName = displayName;\r\n this.type = TYPES.arrow;\r\n this.name = uuid.v4();\r\n this.rotation = 0;\r\n this.scaleX = 1;\r\n this.scaleY = 1;\r\n this.selected = false;\r\n this.lineLength = 40;\r\n this.points = points.length ? [...points] : this.linePoints();\r\n this.offset = {};\r\n this.calculateOffset();\r\n this.closed = true;\r\n\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n\r\n scale(screenWidth, screenHeight, direction) {\r\n if (!['up', 'down'].includes(direction.toLowerCase()))\r\n throw `Scale direction not specified. Direction can be \"up\" or \"down\"`;\r\n\r\n if (direction === 'down') {\r\n screenWidth = 1 / screenWidth;\r\n screenHeight = 1 / screenHeight;\r\n }\r\n this.offset.x *= screenWidth;\r\n this.offset.y *= screenHeight;\r\n\r\n this.x = this.offset.x;\r\n this.y = this.offset.y;\r\n\r\n this.points = this.points.map((value, index) =>\r\n index % 2 === 0 ? value * screenWidth : value * screenHeight\r\n );\r\n }\r\n\r\n calculateOffset() {\r\n const indexJump = 2;\r\n let lastPoints = this.points.slice(indexJump * 6);\r\n const [x1, y1] = [\r\n (lastPoints.at(0) + lastPoints.at(2)) / 2,\r\n (lastPoints.at(1) + lastPoints.at(3)) / 2,\r\n ];\r\n const [x2, y2] = this.points.slice(indexJump * 3, indexJump * 4);\r\n\r\n this.offset = {\r\n x: (x1 + x2) / 2,\r\n y: (y1 + y2) / 2,\r\n };\r\n this.x = this.offset.x;\r\n this.y = this.offset.y;\r\n }\r\n\r\n drawFirstLine() {\r\n return [this.x, this.y, this.x + this.lineLength, this.y]; //Draws a straight Line\r\n }\r\n\r\n arrowHead(startX, startY, lengthConstant) {\r\n const [ax, ay] = [startX, startY - lengthConstant * 0.5];\r\n const [bx, by] = [ax + lengthConstant, ay + lengthConstant * 0.75];\r\n const [cx, cy] = [bx - lengthConstant, by + lengthConstant * 0.75];\r\n const [dx, dy] = [cx, cy - lengthConstant * 0.5];\r\n return [ax, ay, bx, by, cx, cy, dx, dy];\r\n }\r\n\r\n linePoints() {\r\n const firstLine = this.drawFirstLine();\r\n const firstLineStart = firstLine.slice(0, 2);\r\n const firstLineEnd = firstLine.slice(2);\r\n const arrowHead = this.arrowHead(...firstLineEnd, this.lineLength * 0.5);\r\n const pathBack = [\r\n firstLineStart.at(0),\r\n arrowHead.at(-1),\r\n ...firstLineStart,\r\n ];\r\n\r\n return firstLine.concat(arrowHead).concat(pathBack);\r\n }\r\n toJSON() {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n displayName: this.displayName,\r\n type: this.type,\r\n name: this.name,\r\n selected: this.selected,\r\n points: [...this.points],\r\n stroke: 'red',\r\n fill: 'red',\r\n closed: true,\r\n offset: { ...this.offset },\r\n };\r\n }\r\n\r\n deepCopy(arrow) {\r\n const { x, y, displayName, type, name, selected, points, offset } = arrow;\r\n this.x = x;\r\n this.y = y;\r\n this.displayName = displayName;\r\n this.type = type;\r\n this.name = name;\r\n this.selected = selected;\r\n this.points = [...points];\r\n this.offset = { ...offset };\r\n this.stroke = 'red';\r\n this.fill = 'red';\r\n this.closed = true;\r\n }\r\n updatePoints(points) {\r\n this.points = [...points];\r\n this.calculateOffset();\r\n }\r\n}\r\n","import { TYPES } from '../components/user-panel/pages/devices/ProjectiorRegion/helper';\r\n\r\nexport default {\r\n methods: {\r\n handleTransform(e) {\r\n const node = e.target;\r\n const {\r\n [TYPES.rectangle]: rectangles,\r\n [TYPES.arrow]: arrows,\r\n } = this.groups;\r\n let objToUpdate = {};\r\n if (node.attrs.type === TYPES.rectangle) {\r\n objToUpdate = rectangles[this.selectedShapeName];\r\n objToUpdate.x = node.x();\r\n objToUpdate.y = node.y();\r\n objToUpdate.width = node.width();\r\n objToUpdate.height = node.height();\r\n objToUpdate.scaleX = node.scaleX();\r\n objToUpdate.scaleY = node.scaleY();\r\n objToUpdate.rotation = node.rotation();\r\n }\r\n },\r\n\r\n checkOutofBounds(position, action, node, value) {\r\n action === 'vertical' || action === 'up' || action === 'down'\r\n ? (position.y += value)\r\n : (position.x += value);\r\n const isOut =\r\n position.x <= 0 ||\r\n position.y <= 0 ||\r\n position.x + node.width() >= 640 * 1.1 ||\r\n position.y + node.height() >= 480 * 1.1;\r\n\r\n if (isOut) {\r\n return true;\r\n }\r\n },\r\n\r\n findNodeByName(name) {\r\n const stage = this.$refs.stage.getStage();\r\n return stage.findOne('.' + name);\r\n },\r\n\r\n checkOutofBoundsExpansion(position, action, node, value) {\r\n let isOut = 0;\r\n if (action === 'right') {\r\n position.x += value;\r\n isOut = position.x + node.width() >= 640;\r\n }\r\n if (action === 'left') {\r\n position.x -= value;\r\n isOut = position.x <= 0;\r\n }\r\n if (action === 'down') {\r\n position.y += value;\r\n isOut = position.y + node.height() >= 480;\r\n }\r\n if (action === 'up') {\r\n position.y -= value;\r\n isOut = position.y <= 0;\r\n }\r\n if (isOut) {\r\n return true;\r\n }\r\n },\r\n handleNodeButtonEvents(nodeName, action, value) {\r\n const node = this.findNodeByName(nodeName);\r\n const heightCheck = parseInt(node.height() + value);\r\n const widthCheck = parseInt(node.width() + value);\r\n if (heightCheck < 0) {\r\n return false;\r\n }\r\n if (widthCheck < 0) {\r\n return false;\r\n }\r\n const position = node.getAbsolutePosition();\r\n if (\r\n this.checkOutofBoundsExpansion(position, action, node, value) &&\r\n value > 0\r\n ) {\r\n return false;\r\n }\r\n if (action === 'right') {\r\n node.width(node.width() + value);\r\n } else if (action === 'down') {\r\n node.height(node.height() + value);\r\n } else if (action === 'up') {\r\n node.y(node.y() - value);\r\n node.height(node.height() + value);\r\n } else if (action === 'left') {\r\n node.x(node.x() - value);\r\n node.width(node.width() + value);\r\n }\r\n this.handleTransform({ target: node });\r\n return true;\r\n },\r\n handleNodeMoveButtonEvents(nodeName, action, value) {\r\n const { [this.selectedShapeType]: shapeGroup } = this.groups;\r\n const objToUpdate = shapeGroup[this.selectedShapeName];\r\n if (\r\n [TYPES.image, TYPES.gif, TYPES.circle].includes(this.selectedShapeType)\r\n ) {\r\n objToUpdate.move(value, action);\r\n return true;\r\n } else {\r\n const node = this.findNodeByName(nodeName);\r\n const position = node.getAbsolutePosition();\r\n if (this.checkOutofBounds(position, action, node, value)) return false;\r\n objToUpdate.move(value, action);\r\n return true;\r\n }\r\n },\r\n },\r\n};\r\n","export default {\r\n data: () => ({\r\n joystickButtons: [\r\n {\r\n dclass: 'top',\r\n name: 'a-button',\r\n action: (i) => (i >= 0 ? 'up' : 'down'),\r\n propsData: {\r\n class: 'top',\r\n size: 'small',\r\n id: 'up',\r\n },\r\n icon: 'UpOutlined',\r\n },\r\n {\r\n dclass: 'middle',\r\n name: 'a-button',\r\n action: (i) => (i >= 0 ? 'left' : 'right'),\r\n propsData: {\r\n class: 'left',\r\n size: 'small',\r\n id: 'left',\r\n },\r\n icon: 'LeftOutlined',\r\n },\r\n {\r\n dclass: 'middle',\r\n name: 'a-button',\r\n action: (i) => (i >= 0 ? 'right' : 'left'),\r\n propsData: {\r\n class: 'right',\r\n size: 'small',\r\n id: 'right',\r\n },\r\n icon: 'RightOutlined',\r\n },\r\n {\r\n dclass: 'bottom',\r\n name: 'a-button',\r\n action: (i) => (i >= 0 ? 'down' : 'up'),\r\n propsData: {\r\n class: 'bottom',\r\n size: 'small',\r\n id: 'down',\r\n },\r\n icon: 'DownOutlined',\r\n },\r\n ],\r\n arrowDirections: [\r\n {\r\n name: 'a-button',\r\n direction: true,\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'plus',\r\n },\r\n icon: 'PlusOutlined',\r\n },\r\n {\r\n name: 'a-button',\r\n direction: false,\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'minus',\r\n },\r\n icon: 'MinusOutlined',\r\n },\r\n ],\r\n movementButtons: [\r\n {\r\n dclass: 'top',\r\n name: 'a-button',\r\n direction: -1,\r\n action: 'vertical',\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'up-m',\r\n },\r\n icon: 'ArrowUpOutlined',\r\n text: 'U',\r\n },\r\n {\r\n dclass: 'middle',\r\n direction: -1,\r\n name: 'a-button',\r\n action: 'horizontal',\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'left-m',\r\n },\r\n icon: 'ArrowLeftOutlined',\r\n text: 'L',\r\n },\r\n {\r\n name: 'a-button',\r\n direction: 1,\r\n action: 'rotate',\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'rotate',\r\n },\r\n icon: 'ReloadOutlined',\r\n },\r\n {\r\n dclass: 'middle',\r\n direction: 1,\r\n name: 'a-button',\r\n action: 'horizontal',\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'right-m',\r\n },\r\n icon: 'ArrowRightOutlined',\r\n text: 'R',\r\n },\r\n {\r\n dclass: 'bottom',\r\n direction: 1,\r\n name: 'a-button',\r\n action: 'vertical',\r\n propsData: {\r\n class: '',\r\n size: 'small',\r\n id: 'down-m',\r\n },\r\n icon: 'ArrowDownOutlined',\r\n text: 'D',\r\n },\r\n ],\r\n }),\r\n methods: {},\r\n};\r\n","\r\n\r\n\r\n\r\n","// This icon file is generated automatically.\nvar MinusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"minus\", \"theme\": \"outlined\" };\nexport default MinusOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport MinusOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar MinusOutlined = function MinusOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": MinusOutlinedSvg\n }), null);\n};\n\nMinusOutlined.displayName = 'MinusOutlined';\nMinusOutlined.inheritAttrs = false;\nexport default MinusOutlined;","// This icon file is generated automatically.\nvar PoweroffOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M705.6 124.9a8 8 0 00-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0162.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0127.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 01-76.3 113.3 353.06 353.06 0 01-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 01-113.2-76.4A355.92 355.92 0 01184 650.4a355 355 0 01-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"poweroff\", \"theme\": \"outlined\" };\nexport default PoweroffOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PoweroffOutlinedSvg from \"@ant-design/icons-svg/es/asn/PoweroffOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PoweroffOutlined = function PoweroffOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PoweroffOutlinedSvg\n }), null);\n};\n\nPoweroffOutlined.displayName = 'PoweroffOutlined';\nPoweroffOutlined.inheritAttrs = false;\nexport default PoweroffOutlined;","import { render } from \"./joystickComponent.vue?vue&type=template&id=74d86cd9&scoped=true\"\nimport script from \"./joystickComponent.vue?vue&type=script&lang=js\"\nexport * from \"./joystickComponent.vue?vue&type=script&lang=js\"\n\nimport \"./joystickComponent.vue?vue&type=style&index=0&id=74d86cd9&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-74d86cd9\"]])\n\nexport default __exports__","import { uuid } from 'vue-uuid';\r\n\r\nexport const TYPES = {\r\n rectangle: 'Rectangle',\r\n arrow: 'Arrow',\r\n circle: 'Circle',\r\n image: 'Image',\r\n text: 'Text',\r\n gif: 'Gif',\r\n};\r\n\r\nexport class ShapeMethodExtensionsInterface {\r\n toJSONExt() {\r\n throw 'Must be implemented by child class';\r\n }\r\n deepCopyExt(shape) {\r\n throw 'Must be implemented by child class';\r\n }\r\n scaleExt(width, height) {\r\n throw 'Must be implemented by child class';\r\n }\r\n moveShape(units, direction) {\r\n throw 'Must be implemented by child class';\r\n }\r\n resizeShape(shapeClone) {\r\n throw 'Must be implemented by child class';\r\n }\r\n rotateShape(angle) {\r\n throw 'Must be implemented by child class';\r\n }\r\n}\r\n\r\nexport class Shape extends ShapeMethodExtensionsInterface {\r\n name = uuid.v4();\r\n scaleX = 1;\r\n scaleY = 1;\r\n rotation = 0;\r\n selected = false;\r\n scaleDirections = ['up', 'down'];\r\n movementDirections = {\r\n vertical: 'vertical',\r\n horizontal: 'horizontal',\r\n rotate: 'rotate',\r\n };\r\n color = '#FFFFFF';\r\n outline = false;\r\n constructor({\r\n id = -1,\r\n x = 305,\r\n y = 215,\r\n width = 50,\r\n height = 50,\r\n displayName = 'New Region',\r\n color = '#FFFFFF',\r\n rotation = 0,\r\n outline = false,\r\n } = {}) {\r\n super();\r\n this.id = id;\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n this.displayName = displayName;\r\n this.color = color;\r\n this.rotation = rotation;\r\n this.outline = outline;\r\n }\r\n scale(scaleWidth, scaleHeight, direction) {\r\n if (!this.scaleDirections.includes(direction.toLowerCase()))\r\n throw `Error. Scale directions must be either ${this.scaleDirections.join(\r\n ' or '\r\n )}`;\r\n\r\n if (direction == 'down') {\r\n scaleWidth = 1 / scaleWidth;\r\n scaleHeight = 1 / scaleHeight;\r\n }\r\n this.scaleExt(scaleWidth, scaleHeight);\r\n }\r\n\r\n deepCopy(shape) {\r\n const {\r\n x,\r\n y,\r\n width,\r\n height,\r\n displayName,\r\n type,\r\n name,\r\n selected,\r\n color,\r\n rotation,\r\n outline,\r\n } = shape;\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n this.displayName = displayName;\r\n this.type = type;\r\n this.name = name;\r\n this.selected = selected;\r\n this.color = color;\r\n this.rotation = rotation;\r\n this.outline = outline;\r\n this.deepCopyExt(shape);\r\n }\r\n\r\n toJSON() {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height,\r\n displayName: this.displayName,\r\n type: this.type,\r\n name: this.name,\r\n rotation: this.rotation,\r\n selected: this.selected,\r\n color: this.color,\r\n outline: this.outline,\r\n ...this.toJSONExt(),\r\n };\r\n }\r\n\r\n addColor(color) {\r\n this.color = color;\r\n }\r\n move(units, direction) {\r\n const directions = Object.values(this.movementDirections);\r\n const directionLower = direction.toLowerCase();\r\n if (!directions.includes(directionLower))\r\n throw `Shape movement options are ${directions.join(' or ')}`;\r\n\r\n if (direction === this.movementDirections.rotate) this.rotateShape(units);\r\n else this.moveShape(units, directionLower);\r\n }\r\n setOutline(outline) {\r\n this.outline = outline;\r\n }\r\n}\r\n","import { Shape, TYPES } from './shapes';\r\n\r\nexport class Rectangle extends Shape {\r\n type = TYPES.rectangle;\r\n midx = 0;\r\n midy = 0;\r\n constructor({\r\n id = -1,\r\n x = 305,\r\n y = 215,\r\n width = 50,\r\n height = 50,\r\n displayName = 'New Region',\r\n color = '#FFFFFF',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n rotation = 0,\r\n outline = false,\r\n } = {}) {\r\n super({ id, x, y, width, height, displayName, color, rotation, outline });\r\n this.calculateMidPoint();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.x *= scaleWidth;\r\n this.y *= scaleHeight;\r\n\r\n this.width *= scaleWidth;\r\n this.height *= scaleHeight;\r\n\r\n this.midx *= scaleWidth;\r\n this.midy *= scaleHeight;\r\n }\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n deepCopyExt(shape) {\r\n const { midx, midy } = shape;\r\n this.midx = midx;\r\n this.midy = midy;\r\n }\r\n toJSONExt() {\r\n return {\r\n midx: this.midx,\r\n midy: this.midy,\r\n };\r\n }\r\n moveShape(units, direction) {\r\n if (direction === this.movementDirections.vertical) this.y += units;\r\n else if (direction === this.movementDirections.horizontal) this.x += units;\r\n this.calculateMidPoint();\r\n }\r\n rotateShape(angle) {\r\n this.calculateMidPoint();\r\n this.rotation += angle;\r\n }\r\n}\r\n","import { Shape, TYPES } from './shapes';\r\n\r\nexport class Arrow extends Shape {\r\n lineLength = 40;\r\n offset = {\r\n x: 0,\r\n y: 0,\r\n };\r\n type = TYPES.arrow;\r\n scaleShape = 1;\r\n maxAnimationValue = 75;\r\n play = true;\r\n constructor({\r\n id = -1,\r\n x = 300,\r\n y = 200,\r\n displayName = 'New Arrow',\r\n color = '#FFFFFF',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n points = [],\r\n rotation = 0,\r\n scaleShape = 1,\r\n maxAnimationValue = 75,\r\n play = true,\r\n outline = false,\r\n } = {}) {\r\n super({ id, x, y, displayName, color, rotation, outline });\r\n this.points = points.length ? [...points] : this.linePoints();\r\n this.scaleShape = scaleShape;\r\n this.maxAnimationValue = maxAnimationValue;\r\n this.play = play;\r\n this.calculateOffset();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n drawFirstLine() {\r\n return [this.x, this.y, this.x + this.lineLength, this.y]; //Draws a straight Line\r\n }\r\n\r\n arrowHead(startX, startY, lengthConstant) {\r\n const [ax, ay] = [startX, startY - lengthConstant * 0.5];\r\n const [bx, by] = [ax + lengthConstant, ay + lengthConstant * 0.75];\r\n const [cx, cy] = [bx - lengthConstant, by + lengthConstant * 0.75];\r\n const [dx, dy] = [cx, cy - lengthConstant * 0.5];\r\n return [ax, ay, bx, by, cx, cy, dx, dy];\r\n }\r\n\r\n calculateOffset() {\r\n const indexJump = 2;\r\n let lastPoints = this.points.slice(indexJump * 6);\r\n const [x1, y1] = [\r\n (lastPoints.at(0) + lastPoints.at(2)) / 2,\r\n (lastPoints.at(1) + lastPoints.at(3)) / 2,\r\n ];\r\n const [x2, y2] = this.points.slice(indexJump * 3, indexJump * 4);\r\n\r\n this.offset = {\r\n x: (x1 + x2) / 2,\r\n y: (y1 + y2) / 2,\r\n };\r\n this.x = this.offset.x;\r\n this.y = this.offset.y;\r\n }\r\n\r\n linePoints() {\r\n const firstLine = this.drawFirstLine();\r\n const firstLineStart = firstLine.slice(0, 2);\r\n const firstLineEnd = firstLine.slice(2);\r\n const arrowHead = this.arrowHead(\r\n firstLineEnd.at(0),\r\n firstLineEnd.at(1),\r\n this.lineLength * 0.5\r\n );\r\n const pathBack = [\r\n firstLineStart.at(0),\r\n arrowHead.at(-1),\r\n ...firstLineStart,\r\n ];\r\n\r\n return firstLine.concat(arrowHead).concat(pathBack);\r\n }\r\n\r\n updatePoints(points) {\r\n this.points = [...points];\r\n this.calculateOffset();\r\n }\r\n\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.offset.x *= scaleWidth;\r\n this.offset.y *= scaleHeight;\r\n this.maxAnimationValue *= scaleWidth;\r\n this.x = this.offset.x;\r\n this.y = this.offset.y;\r\n\r\n this.points = this.points.map((value, index) =>\r\n index % 2 === 0 ? value * scaleWidth : value * scaleHeight\r\n );\r\n }\r\n toJSONExt() {\r\n return {\r\n offset: { ...this.offset },\r\n points: [...this.points],\r\n scaleShape: this.scaleShape,\r\n maxAnimationValue: this.maxAnimationValue,\r\n play: this.play,\r\n };\r\n }\r\n deepCopyExt(shape) {\r\n const { offset, points, scaleShape, maxAnimationValue, play } = shape;\r\n this.offset = { ...offset };\r\n this.points = [...points];\r\n this.scaleShape = scaleShape;\r\n this.maxAnimationValue = maxAnimationValue;\r\n this.play = play;\r\n }\r\n\r\n moveShape(units, direction) {\r\n let newPoints = [...this.points];\r\n if (direction === this.movementDirections.vertical)\r\n newPoints = newPoints.map((point, index) =>\r\n index % 2 === 1 ? point + units : point\r\n );\r\n else if (direction === this.movementDirections.horizontal)\r\n newPoints = newPoints.map((point, index) =>\r\n index % 2 === 0 ? point + units : point\r\n );\r\n\r\n this.updatePoints(newPoints);\r\n }\r\n\r\n updateScale(value) {\r\n if (Number((this.scaleShape + value).toFixed(2)) < 0.1) return;\r\n this.scaleShape = Number((this.scaleShape + value).toFixed(2));\r\n console.log(this.scaleShape);\r\n }\r\n\r\n rotateShape(angle) {\r\n this.rotation += angle;\r\n }\r\n\r\n togglePlay(play) {\r\n this.play = play;\r\n }\r\n}\r\n","import { Shape, TYPES } from './shapes';\r\n\r\nexport class Circle extends Shape {\r\n type = TYPES.circle;\r\n radius = 50;\r\n constructor({\r\n id = -1,\r\n x = 305,\r\n y = 215,\r\n width = 50,\r\n height = 50,\r\n displayName = 'New Circle',\r\n color = '#FFFFFF',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n rotation = 0,\r\n radius = 50,\r\n outline = false,\r\n } = {}) {\r\n super({ id, x, y, width, height, displayName, color, rotation, outline });\r\n this.calculateMidPoint();\r\n this.radius = radius;\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.x *= scaleWidth;\r\n this.y *= scaleHeight;\r\n\r\n this.width *= scaleWidth;\r\n this.height *= scaleHeight;\r\n\r\n this.midx *= scaleWidth;\r\n this.midy *= scaleHeight;\r\n }\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n deepCopyExt(shape) {\r\n const { midx, midy, radius } = shape;\r\n this.midx = midx;\r\n this.midy = midy;\r\n this.radius = radius;\r\n }\r\n toJSONExt() {\r\n return {\r\n midx: this.midx,\r\n midy: this.midy,\r\n radius: this.radius,\r\n };\r\n }\r\n moveShape(units, direction) {\r\n if (direction === this.movementDirections.vertical) this.y += units;\r\n else if (direction === this.movementDirections.horizontal) this.x += units;\r\n this.calculateMidPoint();\r\n }\r\n rotateShape(angle) {\r\n this.calculateMidPoint();\r\n this.rotation += angle;\r\n }\r\n updateScale(value) {\r\n if (this.radius + value < 2) return;\r\n this.radius = this.radius + value;\r\n }\r\n}\r\n","import { Shape, TYPES } from './shapes';\r\n\r\nexport class Image extends Shape {\r\n type = TYPES.image;\r\n midx = 0;\r\n midy = 0;\r\n scaleShape = 1;\r\n progress = null;\r\n constructor({\r\n id = -1,\r\n x = 0,\r\n y = 0,\r\n displayName = 'New Image',\r\n size = 0,\r\n s3Key = '',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n rotation = 0,\r\n scaleShape = 1,\r\n outline = false,\r\n } = {}) {\r\n super({ id, x, y, displayName, rotation, outline });\r\n this.size = size;\r\n this.s3Key = s3Key;\r\n this.scaleShape = scaleShape;\r\n this.calculateMidPoint();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.x *= scaleWidth;\r\n this.y *= scaleHeight;\r\n\r\n this.width *= scaleWidth;\r\n this.height *= scaleHeight;\r\n\r\n this.midx *= scaleWidth;\r\n this.midy *= scaleHeight;\r\n }\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n deepCopyExt(shape) {\r\n const { size, s3Key, midx, midy, scaleShape } = shape;\r\n this.size = size;\r\n this.s3Key = s3Key;\r\n this.midx = midx;\r\n this.midy = midy;\r\n this.scaleShape = scaleShape;\r\n }\r\n toJSONExt() {\r\n return {\r\n size: this.size,\r\n s3Key: this.s3Key,\r\n midx: this.midx,\r\n midy: this.midy,\r\n scaleShape: this.scaleShape,\r\n };\r\n }\r\n\r\n updateScale(value) {\r\n if (Number((this.scaleShape + value).toFixed(2)) < 0.1) return;\r\n this.scaleShape = Number((this.scaleShape + value).toFixed(2));\r\n }\r\n\r\n moveShape(units, direction) {\r\n if (direction === this.movementDirections.vertical) this.y += units;\r\n else if (direction === this.movementDirections.horizontal) this.x += units;\r\n }\r\n\r\n rotateShape(angle) {\r\n this.rotation += angle;\r\n }\r\n}\r\n","import { TYPES } from './shapes';\r\nimport { Shape } from './shapes';\r\n\r\nexport class Text extends Shape {\r\n type = TYPES.text;\r\n midx = 0;\r\n midy = 0;\r\n fontFamily = 'Calibri';\r\n text = '';\r\n fontSize = 48;\r\n constructor({\r\n id = -1,\r\n x = 305,\r\n y = 215,\r\n width = 50,\r\n height = 50,\r\n displayName = 'New Text',\r\n color = '#FFFFFF',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n rotation = 0,\r\n fontSize = 48,\r\n } = {}) {\r\n super({ id, x, y, width, height, displayName, color, rotation });\r\n this.fontSize = fontSize;\r\n this.calculateMidPoint();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n this.text = displayName;\r\n }\r\n\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.x *= scaleWidth;\r\n this.y *= scaleHeight;\r\n\r\n this.width *= scaleWidth;\r\n this.height *= scaleHeight;\r\n\r\n this.midx *= scaleWidth;\r\n this.midy *= scaleHeight;\r\n }\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n deepCopyExt(shape) {\r\n const { midx, midy, text, fontSize, fontFamily } = shape;\r\n this.midx = midx;\r\n this.midy = midy;\r\n this.fontSize = fontSize;\r\n this.fontFamily = fontFamily;\r\n }\r\n toJSONExt() {\r\n return {\r\n midx: this.midx,\r\n midy: this.midy,\r\n fontFamily: this.fontFamily,\r\n fontSize: this.fontSize,\r\n };\r\n }\r\n moveShape(units, direction) {\r\n if (direction === this.movementDirections.vertical) this.y += units;\r\n else if (direction === this.movementDirections.horizontal) this.x += units;\r\n }\r\n updateScale(value) {\r\n if (this.fontSize + value < 2) return;\r\n this.fontSize = this.fontSize + value;\r\n }\r\n rotateShape(angle) {\r\n this.rotation += angle;\r\n }\r\n}\r\n","import { Shape, TYPES } from './shapes';\r\n\r\nexport class Gif extends Shape {\r\n type = TYPES.gif;\r\n midx = 0;\r\n midy = 0;\r\n scaleShape = 1;\r\n play = true;\r\n maxAnimationValue = 0;\r\n progress = null;\r\n constructor({\r\n id = -1,\r\n x = 0,\r\n y = 0,\r\n displayName = 'New Gif',\r\n size = 0,\r\n s3Key = '',\r\n screenWidth = 640,\r\n screenHeight = 480,\r\n scaleDirection = null,\r\n rotation = 0,\r\n scaleShape = 1,\r\n play = true,\r\n maxAnimationValue = 0,\r\n outline = false,\r\n } = {}) {\r\n super({ id, x, y, displayName, rotation, outline });\r\n this.size = size;\r\n this.s3Key = s3Key;\r\n this.scaleShape = scaleShape;\r\n this.play = play;\r\n this.maxAnimationValue = 0;\r\n this.calculateMidPoint();\r\n if (scaleDirection) this.scale(screenWidth, screenHeight, scaleDirection);\r\n }\r\n scaleExt(scaleWidth, scaleHeight) {\r\n this.x *= scaleWidth;\r\n this.y *= scaleHeight;\r\n\r\n this.width *= scaleWidth;\r\n this.height *= scaleHeight;\r\n\r\n this.midx *= scaleWidth;\r\n this.midy *= scaleHeight;\r\n }\r\n calculateMidPoint() {\r\n this.midx = (this.x + this.x + this.width) / 2;\r\n this.midy = (this.y + this.y + this.height) / 2;\r\n }\r\n deepCopyExt(shape) {\r\n const { size, s3Key, midx, midy, scaleShape, play, maxAnimationValue } =\r\n shape;\r\n this.size = size;\r\n this.s3Key = s3Key;\r\n this.midx = midx;\r\n this.midy = midy;\r\n this.scaleShape = scaleShape;\r\n this.play = play;\r\n this.maxAnimationValue = maxAnimationValue;\r\n }\r\n toJSONExt() {\r\n return {\r\n size: this.size,\r\n s3Key: this.s3Key,\r\n midx: this.midx,\r\n midy: this.midy,\r\n scaleShape: this.scaleShape,\r\n play: this.play,\r\n maxAnimationValue: this.maxAnimationValue,\r\n };\r\n }\r\n\r\n updateScale(value) {\r\n if (Number((this.scaleShape + value).toFixed(2)) < 0.1) return;\r\n this.scaleShape = Number((this.scaleShape + value).toFixed(2));\r\n }\r\n\r\n moveShape(units, direction) {\r\n if (direction === this.movementDirections.vertical) this.y += units;\r\n else if (direction === this.movementDirections.horizontal) this.x += units;\r\n }\r\n\r\n rotateShape(angle) {\r\n this.rotation += angle;\r\n }\r\n\r\n togglePlay(play) {\r\n this.play = play;\r\n }\r\n}\r\n","import { Rectangle } from './Shapes/region';\r\nimport { Arrow } from './Shapes/arrow';\r\nimport { Circle } from './Shapes/circle'\r\nimport { Image } from './Shapes/image';\r\nimport { Text } from './Shapes/text';\r\nimport { Gif } from './Shapes/gif';\r\n\r\nexport const TYPES = {\r\n rectangle: 'Rectangle',\r\n arrow: 'Arrow',\r\n circle: 'Circle',\r\n image: 'Image',\r\n text: 'Text',\r\n gif: 'Gif',\r\n};\r\n\r\nexport class ShapeFactory {\r\n static shapeReferences = {\r\n [TYPES.rectangle]: Rectangle,\r\n [TYPES.arrow]: Arrow,\r\n [TYPES.circle]: Circle,\r\n [TYPES.text]: Text,\r\n [TYPES.image]: Image,\r\n [TYPES.gif]: Gif,\r\n };\r\n constructor() {\r\n throw 'Cannot instantiate Factory method';\r\n }\r\n\r\n static createShape(type, args) {\r\n if (!ShapeFactory.shapeReferences.hasOwnProperty(type)) {\r\n throw `Error. ShapeFactory does not have shapes of type \"${type}\". \r\n Available types are ${Object.keys(ShapeFactory.shapeReferences)}`;\r\n }\r\n return new ShapeFactory.shapeReferences[type](args);\r\n }\r\n}\r\n","// This icon file is generated automatically.\nvar BgColorsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"bg-colors\", \"theme\": \"outlined\" };\nexport default BgColorsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BgColorsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BgColorsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BgColorsOutlined = function BgColorsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BgColorsOutlinedSvg\n }), null);\n};\n\nBgColorsOutlined.displayName = 'BgColorsOutlined';\nBgColorsOutlined.inheritAttrs = false;\nexport default BgColorsOutlined;","// This icon file is generated automatically.\nvar FontColorsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 006-12.4L573.6 118.6a9.9 9.9 0 00-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z\" } }] }, \"name\": \"font-colors\", \"theme\": \"outlined\" };\nexport default FontColorsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FontColorsOutlinedSvg from \"@ant-design/icons-svg/es/asn/FontColorsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FontColorsOutlined = function FontColorsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FontColorsOutlinedSvg\n }), null);\n};\n\nFontColorsOutlined.displayName = 'FontColorsOutlined';\nFontColorsOutlined.inheritAttrs = false;\nexport default FontColorsOutlined;","// This icon file is generated automatically.\nvar SnippetsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z\" } }] }, \"name\": \"snippets\", \"theme\": \"outlined\" };\nexport default SnippetsOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SnippetsOutlinedSvg from \"@ant-design/icons-svg/es/asn/SnippetsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SnippetsOutlined = function SnippetsOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SnippetsOutlinedSvg\n }), null);\n};\n\nSnippetsOutlined.displayName = 'SnippetsOutlined';\nSnippetsOutlined.inheritAttrs = false;\nexport default SnippetsOutlined;","// This icon file is generated automatically.\nvar FileGifOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M551.5 490.5H521c-4.6 0-8.4 3.7-8.4 8.4V720c0 4.6 3.7 8.4 8.4 8.4h30.5c4.6 0 8.4-3.7 8.4-8.4V498.9c-.1-4.6-3.8-8.4-8.4-8.4zM477.3 600h-88.1c-4.6 0-8.4 3.7-8.4 8.4v23.8c0 4.6 3.7 8.4 8.4 8.4h47.6v.7c-.6 29.9-23 49.8-56.5 49.8-39.2 0-63.6-30.7-63.6-81.4 0-50.1 23.9-80.6 62.3-80.6 28.1 0 47.5 13.5 55.4 38.3l.9 2.8h49.2l-.7-4.6C475.9 515.9 434.7 484 379 484c-68.8 0-113 49.4-113 125.9 0 77.5 43.7 126.1 113.6 126.1 64.4 0 106-40.3 106-102.9v-24.8c0-4.6-3.7-8.3-8.3-8.3z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M608.2 727.8h32.3c4.6 0 8.4-3.7 8.4-8.4v-84.8h87.8c4.6 0 8.4-3.7 8.4-8.4v-25.5c0-4.6-3.7-8.4-8.4-8.4h-87.8v-58.9h96.8c4.6 0 8.4-3.7 8.4-8.4v-26.8c0-4.6-3.7-8.4-8.4-8.4H608.2c-4.6 0-8.4 3.7-8.4 8.4v221.1c0 4.8 3.8 8.5 8.4 8.5z\" } }] }, \"name\": \"file-gif\", \"theme\": \"outlined\" };\nexport default FileGifOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FileGifOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileGifOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FileGifOutlined = function FileGifOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FileGifOutlinedSvg\n }), null);\n};\n\nFileGifOutlined.displayName = 'FileGifOutlined';\nFileGifOutlined.inheritAttrs = false;\nexport default FileGifOutlined;","// This icon file is generated automatically.\nvar PlayCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z\" } }] }, \"name\": \"play-circle\", \"theme\": \"outlined\" };\nexport default PlayCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PlayCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlayCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PlayCircleOutlined = function PlayCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PlayCircleOutlinedSvg\n }), null);\n};\n\nPlayCircleOutlined.displayName = 'PlayCircleOutlined';\nPlayCircleOutlined.inheritAttrs = false;\nexport default PlayCircleOutlined;","// This icon file is generated automatically.\nvar PauseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"pause-circle\", \"theme\": \"outlined\" };\nexport default PauseCircleOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport PauseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/PauseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar PauseCircleOutlined = function PauseCircleOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": PauseCircleOutlinedSvg\n }), null);\n};\n\nPauseCircleOutlined.displayName = 'PauseCircleOutlined';\nPauseCircleOutlined.inheritAttrs = false;\nexport default PauseCircleOutlined;","import { render } from \"./WebRtc.vue?vue&type=template&id=96bb8648&scoped=true\"\nimport script from \"./WebRtc.vue?vue&type=script&lang=js\"\nexport * from \"./WebRtc.vue?vue&type=script&lang=js\"\n\nimport \"./WebRtc.vue?vue&type=style&index=0&id=96bb8648&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-96bb8648\"]])\n\nexport default __exports__","import { render } from \"./ProjectorTab.vue?vue&type=template&id=154dff5b\"\nimport script from \"./ProjectorTab.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectorTab.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./SignalTower.vue?vue&type=template&id=5371b6ed\"\nimport script from \"./SignalTower.vue?vue&type=script&lang=js\"\nexport * from \"./SignalTower.vue?vue&type=script&lang=js\"\n\nimport \"./SignalTower.vue?vue&type=style&index=0&id=5371b6ed&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./SignalTowerTab.vue?vue&type=template&id=31f736a4\"\nimport script from \"./SignalTowerTab.vue?vue&type=script&lang=js\"\nexport * from \"./SignalTowerTab.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","export function isHandAndFaceObj(objName, modelChoice) {\r\n if (!objName) return false;\r\n const name = objName.toLowerCase();\r\n if (modelChoice === 'Model ADF') {\r\n return name === 'faces' || name === 'face';\r\n } else {\r\n return (\r\n name === 'hands' || name === 'hand' || name === 'faces' || name === 'face'\r\n );\r\n }\r\n}\r\n\r\nexport const colorsConfig = [\r\n '#48E5C2', // turquoise,\r\n '#004e98', //blue\r\n '#a846a0', //purpureus\r\n '#cf5c36', //flame\r\n '#053225', //dark green\r\n '#3b1f2b', //dark purple\r\n '#383961', //delft blue\r\n '#F3FFB6', //mindaro\r\n '#392f5a', //space cadet\r\n '#4c8577', //viridian\r\n '#2C5530', //cal poly green\r\n '#56351e', // cafenoir\r\n '#04471C', // pakistan green\r\n '#a44a3f', //chestnut\r\n '#5f0f40', //tyrian purple\r\n '#fcdc4d', //mustard\r\n '#9a031e', //carmine\r\n '#4c3b4d', // Eng violet\r\n '#0081a7', //Cerulean\r\n '#2c3d55', //purssian blue\r\n '#183a37', //dark slate gray\r\n '#FFEBC6', // dutch white\r\n '#C287E8' //lavendar\r\n];\r\n","import { render } from \"./DefineObjectsAndStaticRegion.vue?vue&type=template&id=747109a9\"\nimport script from \"./DefineObjectsAndStaticRegion.vue?vue&type=script&lang=js\"\nexport * from \"./DefineObjectsAndStaticRegion.vue?vue&type=script&lang=js\"\n\nimport \"./DefineObjectsAndStaticRegion.vue?vue&type=style&index=0&id=747109a9&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","// This icon file is generated automatically.\nvar AppstoreOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z\" } }] }, \"name\": \"appstore\", \"theme\": \"outlined\" };\nexport default AppstoreOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport AppstoreOutlinedSvg from \"@ant-design/icons-svg/es/asn/AppstoreOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar AppstoreOutlined = function AppstoreOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": AppstoreOutlinedSvg\n }), null);\n};\n\nAppstoreOutlined.displayName = 'AppstoreOutlined';\nAppstoreOutlined.inheritAttrs = false;\nexport default AppstoreOutlined;","// This icon file is generated automatically.\nvar BarChartOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"bar-chart\", \"theme\": \"outlined\" };\nexport default BarChartOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BarChartOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarChartOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BarChartOutlined = function BarChartOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BarChartOutlinedSvg\n }), null);\n};\n\nBarChartOutlined.displayName = 'BarChartOutlined';\nBarChartOutlined.inheritAttrs = false;\nexport default BarChartOutlined;","// This icon file is generated automatically.\nvar FolderViewOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M309.1 554.3a42.92 42.92 0 000 36.4C353.3 684 421.6 732 512.5 732s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.3l-.1-.1-.1-.1C671.7 461 603.4 413 512.5 413s-159.2 48.1-203.4 141.3zM512.5 477c62.1 0 107.4 30 141.1 95.5C620 638 574.6 668 512.5 668s-107.4-30-141.1-95.5c33.7-65.5 79-95.5 141.1-95.5z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M457 573a56 56 0 10112 0 56 56 0 10-112 0z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder-view\", \"theme\": \"outlined\" };\nexport default FolderViewOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FolderViewOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderViewOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FolderViewOutlined = function FolderViewOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FolderViewOutlinedSvg\n }), null);\n};\n\nFolderViewOutlined.displayName = 'FolderViewOutlined';\nFolderViewOutlined.inheritAttrs = false;\nexport default FolderViewOutlined;","\r\n\r\n\r\n\r\n","// This icon file is generated automatically.\nvar FontSizeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z\" } }] }, \"name\": \"font-size\", \"theme\": \"outlined\" };\nexport default FontSizeOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FontSizeOutlinedSvg from \"@ant-design/icons-svg/es/asn/FontSizeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FontSizeOutlined = function FontSizeOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FontSizeOutlinedSvg\n }), null);\n};\n\nFontSizeOutlined.displayName = 'FontSizeOutlined';\nFontSizeOutlined.inheritAttrs = false;\nexport default FontSizeOutlined;","// This icon file is generated automatically.\nvar BorderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"border\", \"theme\": \"outlined\" };\nexport default BorderOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport BorderOutlinedSvg from \"@ant-design/icons-svg/es/asn/BorderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar BorderOutlined = function BorderOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": BorderOutlinedSvg\n }), null);\n};\n\nBorderOutlined.displayName = 'BorderOutlined';\nBorderOutlined.inheritAttrs = false;\nexport default BorderOutlined;","// This icon file is generated automatically.\nvar SelectOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 00-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z\" } }] }, \"name\": \"select\", \"theme\": \"outlined\" };\nexport default SelectOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SelectOutlinedSvg from \"@ant-design/icons-svg/es/asn/SelectOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SelectOutlined = function SelectOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SelectOutlinedSvg\n }), null);\n};\n\nSelectOutlined.displayName = 'SelectOutlined';\nSelectOutlined.inheritAttrs = false;\nexport default SelectOutlined;","// This icon file is generated automatically.\nvar FullscreenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M290 236.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0013.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 000 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 00-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z\" } }] }, \"name\": \"fullscreen\", \"theme\": \"outlined\" };\nexport default FullscreenOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport FullscreenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FullscreenOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar FullscreenOutlined = function FullscreenOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": FullscreenOutlinedSvg\n }), null);\n};\n\nFullscreenOutlined.displayName = 'FullscreenOutlined';\nFullscreenOutlined.inheritAttrs = false;\nexport default FullscreenOutlined;","// This icon file is generated automatically.\nvar SaveOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\" } }] }, \"name\": \"save\", \"theme\": \"outlined\" };\nexport default SaveOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SaveOutlinedSvg from \"@ant-design/icons-svg/es/asn/SaveOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SaveOutlined = function SaveOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SaveOutlinedSvg\n }), null);\n};\n\nSaveOutlined.displayName = 'SaveOutlined';\nSaveOutlined.inheritAttrs = false;\nexport default SaveOutlined;","import apiHelper from './index';\r\n\r\nconst updateImageAnnotation = (payload, id, spinner = true) => {\r\n return apiHelper.patch(\r\n `organization/task/annotation_image/${id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateObjectsCount = async (payload, spinner = true) => {\r\n return await apiHelper.post(\r\n `organization/task/task_object/update_counts/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst updateObjectsCoordinates = async (payload, spinner = true) => {\r\n return await apiHelper.put(\r\n `organization/task/task_object/update_delete`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst uploadObjectFile = (annotation_id, payload, spinner = true) => {\r\n return apiHelper.post(\r\n `/organization/task/file_upload/${annotation_id}/`,\r\n payload,\r\n spinner\r\n );\r\n};\r\n\r\nconst getImageAnnotation = (objectId, spinner = false) => {\r\n return apiHelper.get(\r\n `organization/task/annotation_image/${objectId}/`,\r\n spinner\r\n );\r\n};\r\n\r\nexport default {\r\n updateImageAnnotation,\r\n updateObjectsCount,\r\n updateObjectsCoordinates,\r\n uploadObjectFile,\r\n getImageAnnotation\r\n};\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./FileList.vue?vue&type=template&id=1caaf713&scoped=true\"\nimport script from \"./FileList.vue?vue&type=script&lang=js\"\nexport * from \"./FileList.vue?vue&type=script&lang=js\"\n\nimport \"./FileList.vue?vue&type=style&index=0&id=1caaf713&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1caaf713\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","// const requireModule = require.context('.', false, /\\.vue$/); // Get svg files inside modules folder\r\n\r\nexport const steps = [\r\n {\r\n title: 'Define Objects and Static Regions',\r\n component: 'DefineObjectsAndStaticRegion',\r\n nextButton: { text: 'Label Objects', icon: 'ArrowRightOutlined' },\r\n },\r\n {\r\n title: 'Label Objects',\r\n component: 'LabelObjects',\r\n key: 'label_objects',\r\n nextButton: {\r\n text: 'Label Static Regions',\r\n icon: 'ArrowRightOutlined',\r\n },\r\n prevButton: {\r\n text: 'Define Objects and Static Regions',\r\n icon: 'ArrowLeftOutlined',\r\n },\r\n },\r\n {\r\n title: 'Label Static Regions',\r\n component: 'LabelStaticRegions',\r\n key: 'label_static_regions',\r\n nextButton: {\r\n text: 'Label Plane Regions',\r\n icon: 'ArrowRightOutlined',\r\n },\r\n prevButton: { text: 'Label Objects', icon: 'ArrowLeftOutlined' },\r\n },\r\n {\r\n title: 'Label Plane Regions',\r\n component: 'LabelPlaneRegions',\r\n key: 'label_plane_regions',\r\n nextButton: {\r\n text: 'Associate Steps',\r\n icon: 'ArrowRightOutlined',\r\n },\r\n prevButton: { text: 'Label Static Regions', icon: 'ArrowLeftOutlined' },\r\n },\r\n {\r\n title: 'Associate Steps',\r\n component: 'AssociateSteps',\r\n key: 'associate_steps',\r\n nextButton: {\r\n text: 'Train Model',\r\n icon: 'ArrowRightOutlined',\r\n },\r\n prevButton: { text: 'Label Plane Regions', icon: 'ArrowLeftOutlined' },\r\n },\r\n {\r\n title: 'Train Model',\r\n component: 'TrainModel',\r\n key: 'train_model',\r\n nextButton: {\r\n text: 'Done',\r\n icon: 'CheckOutlined',\r\n },\r\n prevButton: { text: 'Associate Steps', icon: 'ArrowLeftOutlined' },\r\n },\r\n // {\r\n // title: 'Associate Relation',\r\n // component: 'RelationSteps',\r\n // key: 'relation_steps',\r\n // nextButton: {\r\n // text: 'Done',\r\n // icon: 'CheckOutlined',\r\n // },\r\n // prevButton: { text: 'Associate Steps', icon: 'ArrowLeftOutlined' },\r\n // },\r\n];\r\n\r\nexport const columns = [\r\n {\r\n title: 'Thumbnail',\r\n dataIndex: 'thumbnail_path',\r\n key: 'thumbnail_path',\r\n },\r\n {\r\n title: 'Filename',\r\n dataIndex: 'fileName',\r\n key: 'fileName',\r\n },\r\n {\r\n title: 'Duration',\r\n dataIndex: 'duration',\r\n key: 'duration',\r\n },\r\n {\r\n title: 'Actions',\r\n dataIndex: 'actions',\r\n key: 'actions',\r\n },\r\n];\r\n\r\nexport const getTaskODSteps = (is3D) => {\r\n if (is3D) return steps;\r\n return steps\r\n .filter((s) => s.key !== 'label_plane_regions')\r\n .map((s) =>\r\n s.key === 'label_static_regions'\r\n ? { ...s, nextButton: { ...s.nextButton, text: 'Associate Steps' } }\r\n : s.key === 'associate_steps'\r\n ? {\r\n ...s,\r\n prevButton: { ...s.prevButton, text: 'Label Static Regions' },\r\n }\r\n : s\r\n );\r\n};\r\n\r\n// export const getComponents = () => {\r\n// const components = {};\r\n\r\n// requireModule.keys().forEach((filePath) => {\r\n// if (filePath === './ObjectDetection.vue') return;\r\n\r\n// const fileName = filePath.replace('.vue', '').replace('./', '');\r\n\r\n// components[`${fileName}`] = requireModule(filePath).default['__file'];\r\n// });\r\n// return components;\r\n// };\r\n\r\nexport const shortcutKeys = {\r\n w: {\r\n handler: 'setNewObjectConfigToDraw',\r\n insensitiveKey: true,\r\n action: 'Draw Shape',\r\n },\r\n a: {\r\n ctrl: false,\r\n handler: 'handlePreviousImage',\r\n insensitiveKey: true,\r\n action: 'Go to previous image',\r\n },\r\n d: {\r\n handler: 'handleNextImage',\r\n insensitiveKey: true,\r\n action: 'Go to next image',\r\n },\r\n Delete: { handler: 'deleteObject', action: 'Delete Shape' },\r\n '+': {\r\n ctrl: true,\r\n alt: true,\r\n handler: 'handleLayerZoomIn',\r\n action: 'Zoom In',\r\n },\r\n '-': {\r\n ctrl: true,\r\n alt: true,\r\n handler: 'handleLayerZoomOut',\r\n action: 'Zoom Out',\r\n },\r\n f: {\r\n ctrl: true,\r\n handler: 'handleLayerFitWindow',\r\n insensitiveKey: true,\r\n action: 'Fit Window',\r\n },\r\n q: {\r\n ctrl: true,\r\n handler: 'handleSelectAll',\r\n insensitiveKey: true,\r\n action: 'Select All',\r\n },\r\n s: {\r\n ctrl: true,\r\n handler: 'saveCurrentImageAnnotation',\r\n insensitiveKey: true,\r\n action: 'Save annotation',\r\n },\r\n c: {\r\n ctrl: true,\r\n handler: 'copySelectedShapes',\r\n insensitiveKey: true,\r\n action: 'Copy Shapes',\r\n },\r\n v: {\r\n ctrl: true,\r\n handler: 'pasteShapes',\r\n insensitiveKey: true,\r\n action: 'Paste Shapes',\r\n },\r\n p: {\r\n ctrl: true,\r\n handler: 'renderLastExistingObjectList',\r\n insensitiveKey: true,\r\n action: 'Apply Previous Labels',\r\n },\r\n click: {\r\n ctrl: true,\r\n hold: true,\r\n action: 'Multi Select',\r\n },\r\n ArrowUp: { handler: 'moveSelectedNodesup', action: 'Move up' }, // Define ArrowUp key\r\n ArrowDown: { handler: 'moveSelectedNodesdown', action: 'Move down' }, // Define ArrowUp key\r\n ArrowLeft: { handler: 'moveSelectedNodesleft', action: 'Move left' }, // Define ArrowUp key\r\n ArrowRight: { handler: 'moveSelectedNodesright', action: 'Move right' }, // Define ArrowUp key\r\n};\r\n\r\nexport const shortcutKeysData = () => {\r\n let data = [];\r\n for (const [\r\n key,\r\n { ctrl, alt, insensitiveKey, action, hold },\r\n ] of Object.entries(shortcutKeys)) {\r\n let command = '';\r\n if (hold) command += 'Press and hold ';\r\n if (ctrl) command += 'Ctrl + ';\r\n if (alt) command += 'Alt + ';\r\n if (insensitiveKey) command += `${key.toUpperCase()}`;\r\n else command += key;\r\n data.push({ keys: command, action: action });\r\n }\r\n return data;\r\n};\r\n\r\nexport const TransformerConfig = {\r\n keepRatio: false,\r\n ignoreStroke: true,\r\n rotateEnabled: false,\r\n flipEnabled: false,\r\n enabledAnchors: [\r\n 'top-left',\r\n 'top-right',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'middle-left',\r\n 'middle-right',\r\n 'top-center',\r\n 'bottom-center',\r\n ],\r\n};\r\n\r\nexport const ObjectSettingsConfig = [\r\n 'labelColor',\r\n 'labelSize',\r\n 'annotationObject',\r\n 'staticFrame',\r\n];\r\n","import { render } from \"./ObjectSettings.vue?vue&type=template&id=1cb79578&scoped=true\"\nimport script from \"./ObjectSettings.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectSettings.vue?vue&type=script&lang=js\"\n\nimport \"./ObjectSettings.vue?vue&type=style&index=0&id=1cb79578&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1cb79578\"]])\n\nexport default __exports__","\r\n \r\n \r\n","import { render } from \"./ShortcutKeysModal.vue?vue&type=template&id=28898800\"\nimport script from \"./ShortcutKeysModal.vue?vue&type=script&lang=js\"\nexport * from \"./ShortcutKeysModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./DrawObjects.vue?vue&type=template&id=3b67d70b&scoped=true\"\nimport script from \"./DrawObjects.vue?vue&type=script&lang=js\"\nexport * from \"./DrawObjects.vue?vue&type=script&lang=js\"\n\nimport \"./DrawObjects.vue?vue&type=style&index=0&id=3b67d70b&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3b67d70b\"]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./PreviewImageCard.vue?vue&type=template&id=249e11ba\"\nimport script from \"./PreviewImageCard.vue?vue&type=script&lang=js\"\nexport * from \"./PreviewImageCard.vue?vue&type=script&lang=js\"\n\nimport \"./PreviewImageCard.vue?vue&type=style&index=0&id=249e11ba&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import S3Service from 'src/services/s3';\r\n\r\nexport default {\r\n createAWSFormData(file, data) {\r\n let awsformData = new FormData();\r\n Object.keys(data.fields).forEach((key) => {\r\n awsformData.append(key, data.fields[key]);\r\n });\r\n awsformData.append('file', file);\r\n return awsformData;\r\n },\r\n\r\n async getProjectorFileUploadURL(s3Key) {\r\n let payload = {\r\n bucket: `${localStorage.getItem('organization')}-training`,\r\n key: s3Key,\r\n };\r\n const [error, data] = await S3Service.getPresignedPostURL(payload, false);\r\n return error ? error : data;\r\n },\r\n\r\n handleRemoveImage(file, fileList) {\r\n const index = fileList.indexOf(file);\r\n const newFileList = fileList.slice();\r\n newFileList.splice(index, 1);\r\n fileList = newFileList;\r\n return fileList;\r\n },\r\n};\r\n","import { render } from \"./LabelObjects.vue?vue&type=template&id=3cc7daba&scoped=true\"\nimport script from \"./LabelObjects.vue?vue&type=script&lang=js\"\nexport * from \"./LabelObjects.vue?vue&type=script&lang=js\"\n\nimport \"./LabelObjects.vue?vue&type=style&index=0&id=3cc7daba&scoped=true&lang=css\"\nimport \"./LabelObjects.vue?vue&type=style&index=1&id=3cc7daba&scoped=true&lang=css\"\nimport \"./LabelObjects.vue?vue&type=style&index=2&id=3cc7daba&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3cc7daba\"]])\n\nexport default __exports__","\r\n\r\n\r\n","// This icon file is generated automatically.\nvar SortAscendingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0012.6 0l112-141.9c4.1-5.2.4-13-6.3-13z\" } }] }, \"name\": \"sort-ascending\", \"theme\": \"outlined\" };\nexport default SortAscendingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SortAscendingOutlinedSvg from \"@ant-design/icons-svg/es/asn/SortAscendingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SortAscendingOutlined = function SortAscendingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SortAscendingOutlinedSvg\n }), null);\n};\n\nSortAscendingOutlined.displayName = 'SortAscendingOutlined';\nSortAscendingOutlined.inheritAttrs = false;\nexport default SortAscendingOutlined;","// This icon file is generated automatically.\nvar SortDescendingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM310.3 167.1a8 8 0 00-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z\" } }] }, \"name\": \"sort-descending\", \"theme\": \"outlined\" };\nexport default SortDescendingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport SortDescendingOutlinedSvg from \"@ant-design/icons-svg/es/asn/SortDescendingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar SortDescendingOutlined = function SortDescendingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": SortDescendingOutlinedSvg\n }), null);\n};\n\nSortDescendingOutlined.displayName = 'SortDescendingOutlined';\nSortDescendingOutlined.inheritAttrs = false;\nexport default SortDescendingOutlined;","import { render } from \"./LabelStaticRegions.vue?vue&type=template&id=98f8dc14\"\nimport script from \"./LabelStaticRegions.vue?vue&type=script&lang=js\"\nexport * from \"./LabelStaticRegions.vue?vue&type=script&lang=js\"\n\nimport \"./LabelStaticRegions.vue?vue&type=style&index=0&id=98f8dc14&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","// This icon file is generated automatically.\nvar RiseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 000 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0013.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z\" } }] }, \"name\": \"rise\", \"theme\": \"outlined\" };\nexport default RiseOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport RiseOutlinedSvg from \"@ant-design/icons-svg/es/asn/RiseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RiseOutlined = function RiseOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": RiseOutlinedSvg\n }), null);\n};\n\nRiseOutlined.displayName = 'RiseOutlined';\nRiseOutlined.inheritAttrs = false;\nexport default RiseOutlined;","// This icon file is generated automatically.\nvar ExclamationOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M448 804a64 64 0 10128 0 64 64 0 10-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation\", \"theme\": \"outlined\" };\nexport default ExclamationOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport ExclamationOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationOutlined = function ExclamationOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": ExclamationOutlinedSvg\n }), null);\n};\n\nExclamationOutlined.displayName = 'ExclamationOutlined';\nExclamationOutlined.inheritAttrs = false;\nexport default ExclamationOutlined;","// This icon file is generated automatically.\nvar CalculatorOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 00-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z\" } }] }, \"name\": \"calculator\", \"theme\": \"outlined\" };\nexport default CalculatorOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CalculatorOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalculatorOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CalculatorOutlined = function CalculatorOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CalculatorOutlinedSvg\n }), null);\n};\n\nCalculatorOutlined.displayName = 'CalculatorOutlined';\nCalculatorOutlined.inheritAttrs = false;\nexport default CalculatorOutlined;","import { render } from \"./LabelPlaneRegions.vue?vue&type=template&id=32021527\"\nimport script from \"./LabelPlaneRegions.vue?vue&type=script&lang=js\"\nexport * from \"./LabelPlaneRegions.vue?vue&type=script&lang=js\"\n\nimport \"./LabelPlaneRegions.vue?vue&type=style&index=0&id=32021527&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ option.label }}\r\n 3D\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n AND \r\n OR \r\n NOT \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./StepObjects.vue?vue&type=template&id=574ab5bf&scoped=true\"\nimport script from \"./StepObjects.vue?vue&type=script&lang=js\"\nexport * from \"./StepObjects.vue?vue&type=script&lang=js\"\n\nimport \"./StepObjects.vue?vue&type=style&index=0&id=574ab5bf&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-574ab5bf\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n\r\n","import { defineComponent as E, ref as k, onMounted as N, markRaw as T, watch as _, unref as y, openBlock as C, createElementBlock as O, computed as I, nextTick as K, shallowRef as Q, getCurrentInstance as X, onBeforeUnmount as Y, normalizeClass as ee, normalizeStyle as te, createBlock as ne, resolveDynamicComponent as re, mergeProps as oe } from \"vue\";\nimport \"codemirror/lib/codemirror.css\";\nimport \"codemirror/addon/fold/foldgutter.css\";\nimport \"codemirror/addon/fold/foldcode.js\";\nimport \"codemirror/addon/fold/foldgutter.js\";\nimport \"codemirror/addon/fold/brace-fold.js\";\nimport \"codemirror/addon/selection/active-line.js\";\nimport B from \"codemirror\";\nimport \"codemirror/addon/merge/merge.css\";\nimport \"codemirror/addon/merge/merge.js\";\nimport se from \"diff-match-patch\";\nimport \"codemirror/addon/mode/simple.js\";\n!window.CodeMirror && (window.CodeMirror = B);\nconst b = window.CodeMirror || B, ae = E({\n name: \"DefaultMode\",\n props: {\n name: {\n type: String,\n default: `cm-textarea-${+/* @__PURE__ */ new Date()}`\n },\n value: {\n type: String,\n default: \"\"\n },\n content: {\n type: String,\n default: \"\"\n },\n options: {\n type: Object,\n default: () => ({})\n },\n cminstance: {\n type: Object,\n default: () => null\n },\n placeholder: {\n type: String,\n default: \"\"\n }\n },\n emits: {\n ready: (e) => e,\n \"update:cminstance\": (e) => e\n },\n setup(e, { emit: n }) {\n const o = k(), t = k(null), r = () => {\n t.value = T(b.fromTextArea(o.value, e.options)), n(\"update:cminstance\", t.value);\n const s = _(\n () => e.cminstance,\n (l) => {\n var g;\n l && ((g = e.cminstance) == null || g.setValue(e.value || e.content)), n(\"ready\", y(t)), s == null || s();\n },\n { deep: !0 }\n );\n };\n return N(() => {\n r();\n }), {\n textarea: o,\n initialize: r\n };\n }\n}), A = (e, n) => {\n const o = e.__vccOpts || e;\n for (const [t, r] of n)\n o[t] = r;\n return o;\n}, le = [\"name\", \"placeholder\"];\nfunction ie(e, n, o, t, r, s) {\n return C(), O(\"textarea\", {\n ref: \"textarea\",\n name: e.$props.name,\n placeholder: e.$props.placeholder\n }, null, 8, le);\n}\nconst H = /* @__PURE__ */ A(ae, [[\"render\", ie]]);\nwindow.diff_match_patch = se;\nwindow.DIFF_DELETE = -1;\nwindow.DIFF_INSERT = 1;\nwindow.DIFF_EQUAL = 0;\nconst ce = E({\n name: \"MergeMode\",\n props: {\n options: {\n type: Object,\n default: () => ({})\n },\n cminstance: {\n type: Object,\n default: () => ({})\n }\n },\n emits: [\"update:cminstance\", \"ready\"],\n setup(e, { emit: n }) {\n const o = k(), t = k(), r = () => {\n o.value = T(b.MergeView(t.value, e.options)), n(\"update:cminstance\", o.value), n(\"ready\", o);\n };\n return N(() => {\n r();\n }), {\n mergeView: t,\n initialize: r\n };\n }\n}), ue = { ref: \"mergeView\" };\nfunction de(e, n, o, t, r, s) {\n return C(), O(\"div\", ue, null, 512);\n}\nconst pe = /* @__PURE__ */ A(ce, [[\"render\", de]]);\nvar me = /* @__PURE__ */ ((e) => (e.info = \"info\", e.warning = \"warning\", e.error = \"error\", e))(me || {});\nfunction ge() {\n const e = /* @__PURE__ */ new Date(), n = e.getHours() < 10 ? `0${e.getHours()}` : e.getHours(), o = e.getMinutes() < 10 ? `0${e.getMinutes()}` : e.getMinutes(), t = e.getSeconds() < 10 ? `0${e.getSeconds()}` : e.getSeconds();\n return `${n}:${o}:${t}`;\n}\nfunction ze(e) {\n return `#link#${JSON.stringify(e)}#link#`;\n}\nfunction fe(e) {\n const n = /#link#(.+)#link#/g, o = [];\n let t;\n for (t = n.exec(e); t; ) {\n const r = document.createElement(\"a\"), s = JSON.parse(t[1]), l = Object.entries(s);\n for (const [g, d] of l)\n r.setAttribute(g, d);\n r.className = \"editor_custom_link\", r.innerHTML = \"logDownload\", o.push({\n start: t.index,\n end: t.index + t[0].length,\n node: r\n }), t = n.exec(e);\n }\n return o;\n}\nfunction He(e = \"\", n = \"info\") {\n return `#log<${n}>log#${e}#log<${n}>log#`;\n}\nfunction he(e) {\n const n = [];\n function o() {\n const t = /#log<(\\w*)>log#((.|\\r\\n|\\n)*?)#log<(\\w*)>log#/g;\n let r;\n for (r = t.exec(e); r; ) {\n const l = r[0].replace(/\\r\\n/g, `\n`).split(`\n`), d = r[2].replace(/\\r\\n/g, `\n`).split(`\n`), p = document.createElement(\"span\"), i = r[1];\n p.className = `c-editor--log__${i}`;\n let u = 0;\n for (let $ = 0; $ < l.length; $++) {\n const a = l[$], m = d[$], v = p.cloneNode(!1);\n v.innerText = m, n.push({\n start: r.index + u,\n end: r.index + u + a.length,\n node: v\n }), u = u + a.length + 1;\n }\n r = t.exec(e);\n }\n }\n return o(), n;\n}\nfunction Re(e, n) {\n return `[${ge()}] <${n}> ${e}`;\n}\nfunction Be(e, n, o) {\n const r = new Array(Math.max(n || 15, 5)).join(o || \"=\");\n return `${r}${e}${r}`;\n}\nconst S = [\n {\n regex: /(\\[.*?\\])([ \\t]*)([ \\t])(.+)/,\n token: [\"tag\", \"\", \"error.strong\", \"error.strong\"],\n sol: !0\n // next: \"error\",\n },\n {\n regex: /(\\[.*?\\])([ \\t]*)()(.+)(.?)/,\n token: [\"tag\", \"\", \"bracket\", \"bracket\", \"hr\"],\n sol: !0\n // next: \"info\",\n },\n {\n regex: /(\\[.*?\\])([ \\t]*)()(.+)(.?)/,\n token: [\"tag\", \"\", \"comment\", \"comment\", \"hr\"],\n sol: !0\n // next: \"warning\",\n }\n];\nb.defineSimpleMode(\"fclog\", {\n start: [\n ...S,\n {\n regex: /.*/,\n token: \"hr\"\n }\n ],\n error: [\n ...S,\n {\n regex: /.*/,\n token: \"error.strong\"\n }\n ],\n info: [\n ...S,\n {\n regex: /.*/,\n token: \"bracket\"\n }\n ],\n warning: [\n ...S,\n {\n regex: /.*\\[/,\n token: \"comment\"\n }\n ]\n});\nb.defineSimpleMode(\"log\", {\n start: [\n {\n regex: /^[=]+[^=]*[=]+/,\n token: \"strong\"\n },\n {\n regex: /([^\\w])([A-Z][\\w]*)/,\n token: [\"\", \"string\"]\n },\n {\n regex: /(^[A-Z][\\w]*)/,\n token: \"string\"\n }\n // {\n // regex: /([^\\d])([0-9]+)/,\n // token: [null, 'comment']\n // },\n // {\n // regex: /(^[0-9]+)/,\n // token: 'comment'\n // }\n ]\n});\nconst ve = E({\n name: \"CodemirrorFclog\",\n props: {\n value: {\n type: String,\n default: \"\"\n },\n name: {\n type: String,\n default: `cm-textarea-${+/* @__PURE__ */ new Date()}`\n },\n options: {\n type: Object,\n default: () => ({})\n },\n cminstance: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:cminstance\", \"ready\"],\n setup(e, { emit: n }) {\n const o = k(), t = k(null), r = (l = e.cminstance) => {\n l.getAllMarks().forEach((i) => i.clear());\n const d = l.getValue(), p = [].concat(fe(d)).concat(he(d));\n for (let i = 0; i < p.length; i++) {\n const u = p[i];\n l.markText(l.posFromIndex(u.start), l.posFromIndex(u.end), {\n replacedWith: u.node\n });\n }\n }, s = () => {\n var l;\n t.value = T(b.fromTextArea(o.value, e.options)), n(\"update:cminstance\", y(t)), (l = t.value) == null || l.on(\"change\", r);\n };\n return _(\n () => e.cminstance,\n (l) => {\n var g;\n l && (r(e.cminstance), (g = e.cminstance) == null || g.setValue(e.value), n(\"ready\", t));\n },\n { deep: !0, immediate: !0 }\n ), N(() => {\n s();\n }), {\n initialize: s,\n textarea: o\n };\n }\n}), ye = [\"name\", \"placeholder\"];\nfunction ke(e, n, o, t, r, s) {\n return C(), O(\"textarea\", {\n ref: \"textarea\",\n name: e.$props.name,\n placeholder: e.$props.placeholder\n }, null, 8, ye);\n}\nconst we = /* @__PURE__ */ A(ve, [[\"render\", ke]]), P = {\n \"update:value\": () => !0,\n change: (e, n) => ({ value: e, cm: n }),\n input: () => !0,\n ready: (e) => e\n}, xe = [\n \"changes\",\n \"scroll\",\n \"beforeChange\",\n \"cursorActivity\",\n \"keyHandled\",\n \"inputRead\",\n \"electricInput\",\n \"beforeSelectionChange\",\n \"viewportChange\",\n \"swapDoc\",\n \"gutterClick\",\n \"gutterContextMenu\",\n \"focus\",\n \"blur\",\n \"refresh\",\n \"optionChange\",\n \"scrollCursorIntoView\",\n \"update\"\n], $e = () => {\n const e = {};\n return xe.forEach((n) => {\n e[n] = (...o) => o;\n }), e;\n}, _e = { ...P, ...$e() }, j = {\n mode: \"text\",\n // Language mode\n theme: \"default\",\n // Theme\n lineNumbers: !0,\n // Display line number\n smartIndent: !0,\n // Intelligent indentation\n indentUnit: 2,\n styleActiveLine: !0\n};\nfunction be(e) {\n Promise.resolve().then(() => {\n const n = e.getScrollInfo();\n e.scrollTo(n.left, n.height);\n });\n}\nconst Ce = ({\n props: e,\n cminstance: n,\n emit: o,\n internalInstance: t,\n content: r\n}) => {\n const s = I(\n () => {\n var d;\n return e.merge ? (d = y(n)) == null ? void 0 : d.editor() : y(n);\n }\n ), l = () => {\n const d = [];\n return Object.keys(t == null ? void 0 : t.vnode.props).forEach((p) => {\n if (p.startsWith(\"on\")) {\n const i = p.replace(p[2], p[2].toLowerCase()).slice(2);\n !P[i] && d.push(i);\n }\n }), d;\n };\n return {\n listenerEvents: () => {\n s.value.on(\"change\", (i) => {\n const u = i.getValue();\n u === r.value && u !== \"\" || (r.value = u, o(\"update:value\", r.value || \"\"), o(\"input\", r.value || \" \"), Promise.resolve().then(() => {\n o(\"change\", r.value, i);\n }), e.keepCursorInEnd && be(i));\n });\n const d = {};\n l().filter((i) => !d[i] && (d[i] = !0)).forEach((i) => {\n s.value.on(i, (...u) => {\n o(i, ...u);\n });\n });\n }\n };\n};\nfunction Me({ props: e, cminstance: n, presetRef: o }) {\n const t = k(\"100%\"), r = k(\"100%\"), s = I(\n () => {\n var a;\n return e.merge ? (a = y(n)) == null ? void 0 : a.editor() : y(n);\n }\n ), l = () => {\n K(() => {\n var a;\n (a = s.value) == null || a.refresh();\n });\n }, g = (a) => !(a && isNaN(+a)), d = (a = e.width, m = e.height) => {\n var M;\n let v = \"100%\", x = \"100%\";\n g(a) ? v = `${String(a)}px` : a && (v = a), g(m) ? x = `${String(m)}px` : m && (x = m), t.value = v, r.value = x, console.log(\"resize\", v, x), (M = s.value) == null || M.setSize(\"100%\", \"100%\");\n }, p = () => {\n var m;\n const a = (m = s.value) == null ? void 0 : m.getWrapperElement();\n a == null || a.remove();\n }, i = () => {\n var m, v, x;\n const a = (m = s.value) == null ? void 0 : m.getDoc().getHistory();\n (v = o.value) == null || v.initialize(), p(), (x = s.value) == null || x.getDoc().setHistory(a);\n }, u = () => {\n const a = document.querySelector(\".CodeMirror-gutters\");\n return (a == null ? void 0 : a.style.left.replace(\"px\", \"\")) !== \"0\";\n };\n return {\n reload: i,\n refresh: l,\n resize: d,\n destroy: p,\n containerWidth: t,\n containerHeight: r,\n reviseStyle: () => {\n if (l(), !u())\n return;\n const a = setInterval(() => {\n u() ? l() : clearInterval(a);\n }, 60), m = setTimeout(() => {\n clearInterval(a), clearTimeout(m);\n }, 400);\n }\n };\n}\nconst R = /* @__PURE__ */ E({\n __name: \"index\",\n props: {\n value: {\n type: String,\n default: \"\"\n },\n options: {\n type: Object,\n default: () => j\n },\n globalOptions: {\n type: Object,\n default: () => j\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n border: {\n type: Boolean,\n default: !1\n },\n width: {\n type: [String, Number],\n default: null\n },\n height: {\n type: [String, Number],\n default: null\n },\n originalStyle: {\n type: Boolean,\n default: !1\n },\n keepCursorInEnd: {\n type: Boolean,\n default: !1\n },\n merge: {\n type: Boolean,\n default: !1\n },\n name: {\n type: String,\n default: \"\"\n },\n marker: {\n type: Function,\n default: () => null\n },\n unseenLines: {\n type: Array,\n default: () => []\n }\n },\n emits: _e,\n setup(e, { expose: n, emit: o }) {\n var V, F, z;\n typeof Object.assign != \"function\" && Object.defineProperty(Object, \"assign\", {\n value(c) {\n if (c == null)\n throw new TypeError(\"Cannot convert undefined or null to object\");\n const f = Object(c);\n for (let h = 1; h < arguments.length; h++) {\n const w = arguments[h];\n if (w != null)\n for (const L in w)\n Object.prototype.hasOwnProperty.call(w, L) && (f[L] = w[L]);\n }\n return f;\n },\n writable: !0,\n configurable: !0\n });\n const t = e, r = o, s = k(null), l = k(\"\"), g = Q(H), d = k({\n foldGutter: !0,\n ...j,\n ...t.globalOptions,\n ...t.options,\n gutters: [.../* @__PURE__ */ new Set([\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\", ...((V = t.options) == null ? void 0 : V.gutters) || []])]\n }), p = X(), i = t.name || ((z = (F = p == null ? void 0 : p.parent) == null ? void 0 : F.type) == null ? void 0 : z.name) || void 0, u = k(null), $ = I(() => {\n var c;\n return t.merge ? (c = y(s)) == null ? void 0 : c.editor() : y(s);\n }), { refresh: a, resize: m, destroy: v, containerHeight: x, containerWidth: M, reviseStyle: W } = Me({\n props: t,\n cminstance: s,\n presetRef: u\n }), { listenerEvents: G } = Ce({\n props: t,\n cminstance: s,\n emit: r,\n internalInstance: p,\n content: l\n }), D = () => {\n t.unseenLines !== void 0 && t.marker !== void 0 && t.unseenLines.forEach((c) => {\n var h, w;\n const f = (h = s.value) == null ? void 0 : h.lineInfo(c);\n (w = s.value) == null || w.setGutterMarker(c, \"breakpoints\", f != null && f.gutterMarkers ? null : t.marker());\n });\n }, J = (c) => {\n var h, w;\n const f = (h = s.value) == null ? void 0 : h.getValue();\n c !== f && ((w = s.value) == null || w.setValue(c), l.value = c, W()), D();\n }, Z = () => {\n G(), D(), m(t.width, t.height), r(\"ready\", s.value), _(\n [() => t.width, () => t.height],\n ([c, f]) => {\n m(c, f);\n },\n { deep: !0 }\n );\n }, q = () => {\n if (t.options.mode === \"fclog\" || t.options.mode === \"log\") {\n g.value = we;\n return;\n }\n if (t.merge) {\n g.value = pe;\n return;\n }\n g.value = H;\n };\n return _(\n () => t.options,\n (c) => {\n var f;\n for (const h in t.options)\n (f = $.value) == null || f.setOption(h, y(c[h]));\n },\n { deep: !0 }\n ), _(\n () => t.value,\n (c) => {\n J(c);\n }\n ), _(() => t.merge, q, { immediate: !0 }), Y(() => {\n v();\n }), n({\n cminstance: s,\n resize: m,\n refresh: a,\n destroy: v\n }), (c, f) => (C(), O(\"div\", {\n class: ee([\"codemirror-container\", {\n merge: c.$props.merge,\n bordered: c.$props.border || c.$props.merge && !t.originalStyle,\n \"original-style\": t.originalStyle\n }]),\n style: te({\n height: y(x),\n width: y(M)\n })\n }, [\n (C(), ne(re(g.value), oe({\n ref_key: \"presetRef\",\n ref: u,\n cminstance: s.value,\n \"onUpdate:cminstance\": f[0] || (f[0] = (h) => s.value = h),\n style: { height: \"100%\" }\n }, {\n ...c.$props,\n ...c.$attrs,\n options: d.value,\n name: y(i),\n content: l.value\n }, { onReady: Z }), null, 16, [\"cminstance\"]))\n ], 6));\n }\n}), U = (e, n) => (n && n.options && (R.props.globalOptions.default = () => n.options), e.component((n == null ? void 0 : n.componentName) || \"Codemirror\", R), e), Pe = window.CodeMirror || b, Ue = U, We = U;\nfunction styleInject(css,ref){if(ref===void 0){ref={}}var insertAt=ref.insertAt;if(!css||typeof document===\"undefined\"){return}var head=document.head||document.getElementsByTagName(\"head\")[0];var style=document.createElement(\"style\");style.type=\"text/css\";if(insertAt===\"top\"){if(head.firstChild){head.insertBefore(style,head.firstChild)}else{head.appendChild(style)}}else{head.appendChild(style)}if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(document.createTextNode(css))}};styleInject(`.codemirror-container {\n position: relative;\n display: inline-block;\n height: 100%;\n width: fit-content;\n font-size: 13px;\n overflow: hidden;\n}\n.codemirror-container.bordered {\n border: 1px solid #aaaaaa;\n}\n\n.codemirror-container .editor_custom_link {\n cursor: pointer;\n color: #1474f1;\n text-decoration: underline;\n}\n.codemirror-container .editor_custom_link:hover {\n color: #04b4fa;\n}\n.codemirror-container:not(.original-style) .CodeMirror-lines .CodeMirror-placeholder.CodeMirror-line-like {\n color: #666;\n}\n.codemirror-container:not(.original-style) .CodeMirror,\n.codemirror-container:not(.original-style) .CodeMirror-merge-pane {\n height: 100%;\n font-family: consolas !important;\n}\n.codemirror-container:not(.original-style) .CodeMirror-merge,\n.codemirror-container:not(.original-style) .CodeMirror-merge-right .CodeMirror {\n height: 100%;\n border: none !important;\n}\n.codemirror-container:not(.original-style) .c-editor--log__error {\n color: #bb0606;\n font-weight: bold;\n}\n.codemirror-container:not(.original-style) .c-editor--log__info {\n color: #333333;\n font-weight: bold;\n}\n.codemirror-container:not(.original-style) .c-editor--log__warning {\n color: #ee9900;\n}\n.codemirror-container:not(.original-style) .c-editor--log__success {\n color: #669600;\n}\n.codemirror-container:not(.original-style) .cm-header,\n.codemirror-container:not(.original-style) .cm-strong {\n font-weight: bold;\n}\n`);\nexport {\n Pe as CodeMirror,\n Ue as GlobalCmComponent,\n We as InstallCodemirro,\n R as VueCodemirror,\n ze as createLinkMark,\n Re as createLog,\n He as createLogMark,\n Be as createTitle,\n R as default,\n fe as getLinkMarks,\n ge as getLocalTime,\n he as getLogMark,\n me as logErrorType\n};\n","import { render } from \"./CodeEditor.vue?vue&type=template&id=1d533835&scoped=true\"\nimport script from \"./CodeEditor.vue?vue&type=script&lang=js\"\nexport * from \"./CodeEditor.vue?vue&type=script&lang=js\"\n\nimport \"./CodeEditor.vue?vue&type=style&index=0&id=1d533835&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d533835\"]])\n\nexport default __exports__","import { render } from \"./AssociateSteps.vue?vue&type=template&id=3fa7d797&scoped=true\"\nimport script from \"./AssociateSteps.vue?vue&type=script&lang=js\"\nexport * from \"./AssociateSteps.vue?vue&type=script&lang=js\"\n\nimport \"./AssociateSteps.vue?vue&type=style&index=0&id=3fa7d797&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3fa7d797\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./RelationSteps.vue?vue&type=template&id=585ee376&scoped=true\"\nimport script from \"./RelationSteps.vue?vue&type=script&lang=js\"\nexport * from \"./RelationSteps.vue?vue&type=script&lang=js\"\n\nimport \"./RelationSteps.vue?vue&type=style&index=0&id=585ee376&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-585ee376\"]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n","import { render } from \"./StepCompletionCheck.vue?vue&type=template&id=bcd79262&scoped=true\"\nimport script from \"./StepCompletionCheck.vue?vue&type=script&lang=js\"\nexport * from \"./StepCompletionCheck.vue?vue&type=script&lang=js\"\n\nimport \"./StepCompletionCheck.vue?vue&type=style&index=0&id=bcd79262&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-bcd79262\"]])\n\nexport default __exports__","import { render } from \"./ObjectDetection.vue?vue&type=template&id=4a494220\"\nimport script from \"./ObjectDetection.vue?vue&type=script&lang=js\"\nexport * from \"./ObjectDetection.vue?vue&type=script&lang=js\"\n\nimport \"./ObjectDetection.vue?vue&type=style&index=0&id=4a494220&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./TaskList.vue?vue&type=template&id=aad773a4\"\nimport script from \"./TaskList.vue?vue&type=script&lang=js\"\nexport * from \"./TaskList.vue?vue&type=script&lang=js\"\n\nimport \"./TaskList.vue?vue&type=style&index=0&id=aad773a4&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export const telemetryParams = {\r\n requiredStepsForCycle: [\r\n {\r\n paramType: 'telemetryParams',\r\n key: 'required_steps_for_start',\r\n title: 'Required Step for Cycle Start'\r\n },\r\n {\r\n paramType: 'telemetryParams',\r\n key: 'required_steps_for_end',\r\n title: 'Required Step for Cycle End'\r\n }\r\n ],\r\n\r\n cycleParams: [\r\n {\r\n paramType: 'telemetryParams',\r\n key: 'min_percentage_of_steps_required_to_end_cycle',\r\n title: 'Minimum Percentage Steps required for Cycle End (%)'\r\n },\r\n {\r\n paramType: 'telemetryParams',\r\n key: 'minimum_cycle_time',\r\n title: 'Minimum Cycle Time (s)'\r\n },\r\n {\r\n paramType: 'telemetryParams',\r\n key: 'maximum_cycle_time',\r\n title: 'Maximum Cycle Time (s)'\r\n }\r\n ]\r\n};\r\n\r\nexport const trainingParams = [\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'augmentations',\r\n // title: 'Augmentations',\r\n // type: 'select',\r\n // },\r\n {\r\n paramType: 'trainingParams',\r\n key: 'model_choice',\r\n // key: 'model_type',\r\n title: 'Model Choice',\r\n type: 'select'\r\n },\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'threshold',\r\n // title: 'Background Frame Threshold',\r\n // type: 'input',\r\n // min: 1,\r\n // max: 100,\r\n // },\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'spatial_model_iterations',\r\n // title: 'Spatial Model Iteration',\r\n // type: 'input',\r\n // min: 5000,\r\n // max: 20000,\r\n // },\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'spatial_model_batch_size',\r\n // title: 'Spatial Model Batch Size',\r\n // type: 'input',\r\n // min: 4,\r\n // max: 32,\r\n // },\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'contextual_model_iterations',\r\n // title: 'Contextual Model Iteration',\r\n // type: 'input',\r\n // min: 20,\r\n // max: 100,\r\n // },\r\n // {\r\n // paramType: 'trainingParams',\r\n // key: 'contextual_model_batch_size',\r\n // title: 'Contextual Model Batch Size',\r\n // type: 'input',\r\n // min: 4,\r\n // max: 32,\r\n // },\r\n {\r\n paramType: 'trainingParams',\r\n key: 'verify_threshold',\r\n title: 'Verify Threshold',\r\n type: 'input',\r\n min: 1,\r\n max: Number.MAX_SAFE_INTEGER\r\n }\r\n];\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./SubStepTimes.vue?vue&type=template&id=16145714&scoped=true\"\nimport script from \"./SubStepTimes.vue?vue&type=script&lang=js\"\nexport * from \"./SubStepTimes.vue?vue&type=script&lang=js\"\n\nimport \"./SubStepTimes.vue?vue&type=style&index=0&id=16145714&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16145714\"]])\n\nexport default __exports__","import { render } from \"./TelemetryParameters.vue?vue&type=template&id=41c6baf0\"\nimport script from \"./TelemetryParameters.vue?vue&type=script&lang=js\"\nexport * from \"./TelemetryParameters.vue?vue&type=script&lang=js\"\n\nimport \"./TelemetryParameters.vue?vue&type=style&index=0&id=41c6baf0&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","export default [\r\n {\r\n value: 'crop',\r\n label: 'crop',\r\n },\r\n {\r\n value: 'color',\r\n label: 'color',\r\n },\r\n {\r\n value: 'blackout',\r\n label: 'blackout',\r\n },\r\n {\r\n value: 'affine',\r\n label: 'affine',\r\n },\r\n];\r\n","import { render } from \"./TrainingParameters.vue?vue&type=template&id=ffb548fc\"\nimport script from \"./TrainingParameters.vue?vue&type=script&lang=js\"\nexport * from \"./TrainingParameters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./NegativeStepCard.vue?vue&type=template&id=528d93a2&scoped=true\"\nimport script from \"./NegativeStepCard.vue?vue&type=script&lang=js\"\nexport * from \"./NegativeStepCard.vue?vue&type=script&lang=js\"\n\nimport \"./NegativeStepCard.vue?vue&type=style&index=0&id=528d93a2&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-528d93a2\"]])\n\nexport default __exports__","import { render } from \"./NegativeSteps.vue?vue&type=template&id=b6d80a8a\"\nimport script from \"./NegativeSteps.vue?vue&type=script&lang=js\"\nexport * from \"./NegativeSteps.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./TaskParameters.vue?vue&type=template&id=2bffface\"\nimport script from \"./TaskParameters.vue?vue&type=script&lang=js\"\nexport * from \"./TaskParameters.vue?vue&type=script&lang=js\"\n\nimport \"./TaskParameters.vue?vue&type=style&index=0&id=2bffface&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","import { render } from \"./SubstepTranslation.vue?vue&type=template&id=98da7406&scoped=true\"\nimport script from \"./SubstepTranslation.vue?vue&type=script&lang=js\"\nexport * from \"./SubstepTranslation.vue?vue&type=script&lang=js\"\n\nimport \"./SubstepTranslation.vue?vue&type=style&index=0&id=98da7406&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-98da7406\"]])\n\nexport default __exports__","import { render } from \"./StepTranslation.vue?vue&type=template&id=6005f2f0&scoped=true\"\nimport script from \"./StepTranslation.vue?vue&type=script&lang=js\"\nexport * from \"./StepTranslation.vue?vue&type=script&lang=js\"\n\nimport \"./StepTranslation.vue?vue&type=style&index=0&id=6005f2f0&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6005f2f0\"]])\n\nexport default __exports__","import { render } from \"./ProcessTranslation.vue?vue&type=template&id=46e15ef8&scoped=true\"\nimport script from \"./ProcessTranslation.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessTranslation.vue?vue&type=script&lang=js\"\n\nimport \"./ProcessTranslation.vue?vue&type=style&index=0&id=46e15ef8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-46e15ef8\"]])\n\nexport default __exports__","import { render } from \"./AddTranslation.vue?vue&type=template&id=63701e28&scoped=true\"\nimport script from \"./AddTranslation.vue?vue&type=script&lang=js\"\nexport * from \"./AddTranslation.vue?vue&type=script&lang=js\"\n\nimport \"./AddTranslation.vue?vue&type=style&index=0&id=63701e28&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-63701e28\"]])\n\nexport default __exports__","\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n","import { render } from \"./PreviewStepMedia.vue?vue&type=template&id=ae8e9aae\"\nimport script from \"./PreviewStepMedia.vue?vue&type=script&lang=js\"\nexport * from \"./PreviewStepMedia.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ProcessStepTable.vue?vue&type=template&id=4c8358f9\"\nimport script from \"./ProcessStepTable.vue?vue&type=script&lang=js\"\nexport * from \"./ProcessStepTable.vue?vue&type=script&lang=js\"\n\nimport \"./ProcessStepTable.vue?vue&type=style&index=0&id=4c8358f9&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./UploadStepMedia.vue?vue&type=template&id=0ab19540\"\nimport script from \"./UploadStepMedia.vue?vue&type=script&lang=js\"\nexport * from \"./UploadStepMedia.vue?vue&type=script&lang=js\"\n\nimport \"./UploadStepMedia.vue?vue&type=style&index=0&id=0ab19540&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./MainProcess.vue?vue&type=template&id=04d81e34\"\nimport script from \"./MainProcess.vue?vue&type=script&lang=js\"\nexport * from \"./MainProcess.vue?vue&type=script&lang=js\"\n\nimport \"./MainProcess.vue?vue&type=style&index=0&id=04d81e34&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=c7c4cfb2\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\mahal\\\\OneDrive\\\\Documents\\\\Retrocausal\\\\portal_frontend\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LabelObjects.vue?vue&type=style&index=2&id=3cc7daba&lang=css\"","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _constants = require('./constants');\n\n// Match Set functions\nvar matchSetALength = function matchSetALength(string) {\n\treturn string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length;\n};\nvar matchSetBLength = function matchSetBLength(string) {\n\treturn string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length;\n};\nvar matchSetC = function matchSetC(string) {\n\treturn string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0];\n};\n\n// CODE128A or CODE128B\nfunction autoSelectFromAB(string, isA) {\n\tvar ranges = isA ? _constants.A_CHARS : _constants.B_CHARS;\n\tvar untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)'));\n\n\tif (untilC) {\n\t\treturn untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));\n\t}\n\n\tvar chars = string.match(new RegExp('^' + ranges + '+'))[0];\n\n\tif (chars.length === string.length) {\n\t\treturn string;\n\t}\n\n\treturn chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA);\n}\n\n// CODE128C\nfunction autoSelectFromC(string) {\n\tvar cMatch = matchSetC(string);\n\tvar length = cMatch.length;\n\n\tif (length === string.length) {\n\t\treturn string;\n\t}\n\n\tstring = string.substring(length);\n\n\t// Select A/B depending on the longest match\n\tvar isA = matchSetALength(string) >= matchSetBLength(string);\n\treturn cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA);\n}\n\n// Detect Code Set (A, B or C) and format the string\n\nexports.default = function (string) {\n\tvar newString = void 0;\n\tvar cLength = matchSetC(string).length;\n\n\t// Select 128C if the string start with enough digits\n\tif (cLength >= 2) {\n\t\tnewString = _constants.C_START_CHAR + autoSelectFromC(string);\n\t} else {\n\t\t// Select A/B depending on the longest match\n\t\tvar isA = matchSetALength(string) > matchSetBLength(string);\n\t\tnewString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA);\n\t}\n\n\treturn newString.replace(/[\\xCD\\xCE]([^])[\\xCD\\xCE]/, // Any sequence between 205 and 206 characters\n\tfunction (match, char) {\n\t\treturn String.fromCharCode(203) + char;\n\t});\n};","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AssociateSteps.vue?vue&type=style&index=0&id=3fa7d797&scoped=true&lang=css\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*eslint no-console: 0 */\n\nvar ErrorHandler = function () {\n\tfunction ErrorHandler(api) {\n\t\t_classCallCheck(this, ErrorHandler);\n\n\t\tthis.api = api;\n\t}\n\n\t_createClass(ErrorHandler, [{\n\t\tkey: \"handleCatch\",\n\t\tvalue: function handleCatch(e) {\n\t\t\t// If babel supported extending of Error in a correct way instanceof would be used here\n\t\t\tif (e.name === \"InvalidInputException\") {\n\t\t\t\tif (this.api._options.valid !== this.api._defaults.valid) {\n\t\t\t\t\tthis.api._options.valid(false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow e.message;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\tthis.api.render = function () {};\n\t\t}\n\t}, {\n\t\tkey: \"wrapBarcodeCall\",\n\t\tvalue: function wrapBarcodeCall(func) {\n\t\t\ttry {\n\t\t\t\tvar result = func.apply(undefined, arguments);\n\t\t\t\tthis.api._options.valid(true);\n\t\t\t\treturn result;\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleCatch(e);\n\n\t\t\t\treturn this.api;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn ErrorHandler;\n}();\n\nexports.default = ErrorHandler;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = require('./constants');\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Base class for EAN8 & EAN13\nvar EAN = function (_Barcode) {\n\t_inherits(EAN, _Barcode);\n\n\tfunction EAN(data, options) {\n\t\t_classCallCheck(this, EAN);\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tvar _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options));\n\n\t\t_this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize;\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(EAN, [{\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\treturn this.options.flat ? this.encodeFlat() : this.encodeGuarded();\n\t\t}\n\t}, {\n\t\tkey: 'leftText',\n\t\tvalue: function leftText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'leftEncode',\n\t\tvalue: function leftEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'rightText',\n\t\tvalue: function rightText(from, to) {\n\t\t\treturn this.text.substr(from, to);\n\t\t}\n\t}, {\n\t\tkey: 'rightEncode',\n\t\tvalue: function rightEncode(data, structure) {\n\t\t\treturn (0, _encoder2.default)(data, structure);\n\t\t}\n\t}, {\n\t\tkey: 'encodeGuarded',\n\t\tvalue: function encodeGuarded() {\n\t\t\tvar textOptions = { fontSize: this.fontSize };\n\t\t\tvar guardOptions = { height: this.guardHeight };\n\n\t\t\treturn [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }];\n\t\t}\n\t}, {\n\t\tkey: 'encodeFlat',\n\t\tvalue: function encodeFlat() {\n\t\t\tvar data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN];\n\n\t\t\treturn {\n\t\t\t\tdata: data.join(''),\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}]);\n\n\treturn EAN;\n}(_Barcode3.default);\n\nexports.default = EAN;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _merge = require(\"../help/merge.js\");\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = require(\"./shared.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar svgns = \"http://www.w3.org/2000/svg\";\n\nvar SVGRenderer = function () {\n\tfunction SVGRenderer(svg, encodings, options) {\n\t\t_classCallCheck(this, SVGRenderer);\n\n\t\tthis.svg = svg;\n\t\tthis.encodings = encodings;\n\t\tthis.options = options;\n\t\tthis.document = options.xmlDocument || document;\n\t}\n\n\t_createClass(SVGRenderer, [{\n\t\tkey: \"render\",\n\t\tvalue: function render() {\n\t\t\tvar currentX = this.options.marginLeft;\n\n\t\t\tthis.prepareSVG();\n\t\t\tfor (var i = 0; i < this.encodings.length; i++) {\n\t\t\t\tvar encoding = this.encodings[i];\n\t\t\t\tvar encodingOptions = (0, _merge2.default)(this.options, encoding.options);\n\n\t\t\t\tvar group = this.createGroup(currentX, encodingOptions.marginTop, this.svg);\n\n\t\t\t\tthis.setGroupOptions(group, encodingOptions);\n\n\t\t\t\tthis.drawSvgBarcode(group, encodingOptions, encoding);\n\t\t\t\tthis.drawSVGText(group, encodingOptions, encoding);\n\n\t\t\t\tcurrentX += encoding.width;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"prepareSVG\",\n\t\tvalue: function prepareSVG() {\n\t\t\t// Clear the SVG\n\t\t\twhile (this.svg.firstChild) {\n\t\t\t\tthis.svg.removeChild(this.svg.firstChild);\n\t\t\t}\n\n\t\t\t(0, _shared.calculateEncodingAttributes)(this.encodings, this.options);\n\t\t\tvar totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n\t\t\tvar maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n\n\t\t\tvar width = totalWidth + this.options.marginLeft + this.options.marginRight;\n\t\t\tthis.setSvgAttributes(width, maxHeight);\n\n\t\t\tif (this.options.background) {\n\t\t\t\tthis.drawRect(0, 0, width, maxHeight, this.svg).setAttribute(\"style\", \"fill:\" + this.options.background + \";\");\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSvgBarcode\",\n\t\tvalue: function drawSvgBarcode(parent, options, encoding) {\n\t\t\tvar binary = encoding.data;\n\n\t\t\t// Creates the barcode out of the encoded binary\n\t\t\tvar yFrom;\n\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\tyFrom = options.fontSize + options.textMargin;\n\t\t\t} else {\n\t\t\t\tyFrom = 0;\n\t\t\t}\n\n\t\t\tvar barWidth = 0;\n\t\t\tvar x = 0;\n\t\t\tfor (var b = 0; b < binary.length; b++) {\n\t\t\t\tx = b * options.width + encoding.barcodePadding;\n\n\t\t\t\tif (binary[b] === \"1\") {\n\t\t\t\t\tbarWidth++;\n\t\t\t\t} else if (barWidth > 0) {\n\t\t\t\t\tthis.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent);\n\t\t\t\t\tbarWidth = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Last draw is needed since the barcode ends with 1\n\t\t\tif (barWidth > 0) {\n\t\t\t\tthis.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"drawSVGText\",\n\t\tvalue: function drawSVGText(parent, options, encoding) {\n\t\t\tvar textElem = this.document.createElementNS(svgns, 'text');\n\n\t\t\t// Draw the text if displayValue is set\n\t\t\tif (options.displayValue) {\n\t\t\t\tvar x, y;\n\n\t\t\t\ttextElem.setAttribute(\"style\", \"font:\" + options.fontOptions + \" \" + options.fontSize + \"px \" + options.font);\n\n\t\t\t\tif (options.textPosition == \"top\") {\n\t\t\t\t\ty = options.fontSize - options.textMargin;\n\t\t\t\t} else {\n\t\t\t\t\ty = options.height + options.textMargin + options.fontSize;\n\t\t\t\t}\n\n\t\t\t\t// Draw the text in the correct X depending on the textAlign option\n\t\t\t\tif (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"start\");\n\t\t\t\t} else if (options.textAlign == \"right\") {\n\t\t\t\t\tx = encoding.width - 1;\n\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"end\");\n\t\t\t\t}\n\t\t\t\t// In all other cases, center the text\n\t\t\t\telse {\n\t\t\t\t\t\tx = encoding.width / 2;\n\t\t\t\t\t\ttextElem.setAttribute(\"text-anchor\", \"middle\");\n\t\t\t\t\t}\n\n\t\t\t\ttextElem.setAttribute(\"x\", x);\n\t\t\t\ttextElem.setAttribute(\"y\", y);\n\n\t\t\t\ttextElem.appendChild(this.document.createTextNode(encoding.text));\n\n\t\t\t\tparent.appendChild(textElem);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: \"setSvgAttributes\",\n\t\tvalue: function setSvgAttributes(width, height) {\n\t\t\tvar svg = this.svg;\n\t\t\tsvg.setAttribute(\"width\", width + \"px\");\n\t\t\tsvg.setAttribute(\"height\", height + \"px\");\n\t\t\tsvg.setAttribute(\"x\", \"0px\");\n\t\t\tsvg.setAttribute(\"y\", \"0px\");\n\t\t\tsvg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n\n\t\t\tsvg.setAttribute(\"xmlns\", svgns);\n\t\t\tsvg.setAttribute(\"version\", \"1.1\");\n\n\t\t\tsvg.setAttribute(\"style\", \"transform: translate(0,0)\");\n\t\t}\n\t}, {\n\t\tkey: \"createGroup\",\n\t\tvalue: function createGroup(x, y, parent) {\n\t\t\tvar group = this.document.createElementNS(svgns, 'g');\n\t\t\tgroup.setAttribute(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n\n\t\t\tparent.appendChild(group);\n\n\t\t\treturn group;\n\t\t}\n\t}, {\n\t\tkey: \"setGroupOptions\",\n\t\tvalue: function setGroupOptions(group, options) {\n\t\t\tgroup.setAttribute(\"style\", \"fill:\" + options.lineColor + \";\");\n\t\t}\n\t}, {\n\t\tkey: \"drawRect\",\n\t\tvalue: function drawRect(x, y, width, height, parent) {\n\t\t\tvar rect = this.document.createElementNS(svgns, 'rect');\n\n\t\t\trect.setAttribute(\"x\", x);\n\t\t\trect.setAttribute(\"y\", y);\n\t\t\trect.setAttribute(\"width\", width);\n\t\t\trect.setAttribute(\"height\", height);\n\n\t\t\tparent.appendChild(rect);\n\n\t\t\treturn rect;\n\t\t}\n\t}]);\n\n\treturn SVGRenderer;\n}();\n\nexports.default = SVGRenderer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _encoder = require('./encoder');\n\nvar _encoder2 = _interopRequireDefault(_encoder);\n\nvar _Barcode2 = require('../Barcode.js');\n\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\n\nvar _UPC = require('./UPC.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n//\n// UPC-E documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E\n\nvar EXPANSIONS = [\"XX00000XXX\", \"XX10000XXX\", \"XX20000XXX\", \"XXX00000XX\", \"XXXX00000X\", \"XXXXX00005\", \"XXXXX00006\", \"XXXXX00007\", \"XXXXX00008\", \"XXXXX00009\"];\n\nvar PARITIES = [[\"EEEOOO\", \"OOOEEE\"], [\"EEOEOO\", \"OOEOEE\"], [\"EEOOEO\", \"OOEEOE\"], [\"EEOOOE\", \"OOEEEO\"], [\"EOEEOO\", \"OEOOEE\"], [\"EOOEEO\", \"OEEOOE\"], [\"EOOOEE\", \"OEEEOO\"], [\"EOEOEO\", \"OEOEOE\"], [\"EOEOOE\", \"OEOEEO\"], [\"EOOEOE\", \"OEEOEO\"]];\n\nvar UPCE = function (_Barcode) {\n\t_inherits(UPCE, _Barcode);\n\n\tfunction UPCE(data, options) {\n\t\t_classCallCheck(this, UPCE);\n\n\t\tvar _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options));\n\t\t// Code may be 6 or 8 digits;\n\t\t// A 7 digit code is ambiguous as to whether the extra digit\n\t\t// is a UPC-A check or number system digit.\n\n\n\t\t_this.isValid = false;\n\t\tif (data.search(/^[0-9]{6}$/) !== -1) {\n\t\t\t_this.middleDigits = data;\n\t\t\t_this.upcA = expandToUPCA(data, \"0\");\n\t\t\t_this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1];\n\t\t\t_this.isValid = true;\n\t\t} else if (data.search(/^[01][0-9]{7}$/) !== -1) {\n\t\t\t_this.middleDigits = data.substring(1, data.length - 1);\n\t\t\t_this.upcA = expandToUPCA(_this.middleDigits, data[0]);\n\n\t\t\tif (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) {\n\t\t\t\t_this.isValid = true;\n\t\t\t} else {\n\t\t\t\t// checksum mismatch\n\t\t\t\treturn _possibleConstructorReturn(_this);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _possibleConstructorReturn(_this);\n\t\t}\n\n\t\t_this.displayValue = options.displayValue;\n\n\t\t// Make sure the font is not bigger than the space between the guard bars\n\t\tif (options.fontSize > options.width * 10) {\n\t\t\t_this.fontSize = options.width * 10;\n\t\t} else {\n\t\t\t_this.fontSize = options.fontSize;\n\t\t}\n\n\t\t// Make the guard bars go down half the way of the text\n\t\t_this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n\t\treturn _this;\n\t}\n\n\t_createClass(UPCE, [{\n\t\tkey: 'valid',\n\t\tvalue: function valid() {\n\t\t\treturn this.isValid;\n\t\t}\n\t}, {\n\t\tkey: 'encode',\n\t\tvalue: function encode() {\n\t\t\tif (this.options.flat) {\n\t\t\t\treturn this.flatEncoding();\n\t\t\t} else {\n\t\t\t\treturn this.guardedEncoding();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'flatEncoding',\n\t\tvalue: function flatEncoding() {\n\t\t\tvar result = \"\";\n\n\t\t\tresult += \"101\";\n\t\t\tresult += this.encodeMiddleDigits();\n\t\t\tresult += \"010101\";\n\n\t\t\treturn {\n\t\t\t\tdata: result,\n\t\t\t\ttext: this.text\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'guardedEncoding',\n\t\tvalue: function guardedEncoding() {\n\t\t\tvar result = [];\n\n\t\t\t// Add the UPC-A number system digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[0],\n\t\t\t\t\toptions: { textAlign: \"left\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add the guard bars\n\t\t\tresult.push({\n\t\t\t\tdata: \"101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the 6 UPC-E digits\n\t\t\tresult.push({\n\t\t\t\tdata: this.encodeMiddleDigits(),\n\t\t\t\ttext: this.text.substring(1, 7),\n\t\t\t\toptions: { fontSize: this.fontSize }\n\t\t\t});\n\n\t\t\t// Add the end bits\n\t\t\tresult.push({\n\t\t\t\tdata: \"010101\",\n\t\t\t\toptions: { height: this.guardHeight }\n\t\t\t});\n\n\t\t\t// Add the UPC-A check digit beneath the quiet zone\n\t\t\tif (this.displayValue) {\n\t\t\t\tresult.push({\n\t\t\t\t\tdata: \"00000000\",\n\t\t\t\t\ttext: this.text[7],\n\t\t\t\t\toptions: { textAlign: \"right\", fontSize: this.fontSize }\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'encodeMiddleDigits',\n\t\tvalue: function encodeMiddleDigits() {\n\t\t\tvar numberSystem = this.upcA[0];\n\t\t\tvar checkDigit = this.upcA[this.upcA.length - 1];\n\t\t\tvar parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)];\n\t\t\treturn (0, _encoder2.default)(this.middleDigits, parity);\n\t\t}\n\t}]);\n\n\treturn UPCE;\n}(_Barcode3.default);\n\nfunction expandToUPCA(middleDigits, numberSystem) {\n\tvar lastUpcE = parseInt(middleDigits[middleDigits.length - 1]);\n\tvar expansion = EXPANSIONS[lastUpcE];\n\n\tvar result = \"\";\n\tvar digitIndex = 0;\n\tfor (var i = 0; i < expansion.length; i++) {\n\t\tvar c = expansion[i];\n\t\tif (c === 'X') {\n\t\t\tresult += middleDigits[digitIndex++];\n\t\t} else {\n\t\t\tresult += c;\n\t\t}\n\t}\n\n\tresult = '' + numberSystem + result;\n\treturn '' + result + (0, _UPC.checksum)(result);\n}\n\nexports.default = UPCE;","/*!\n * html2canvas 1.4.1 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[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 buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\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 UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$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>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\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 UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 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>>UTRIE2_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.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\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.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\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 // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[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 buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\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 UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\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>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_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 UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_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>>UTRIE2_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.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\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.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\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 // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\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 'Բ',\n 'Ա'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\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 'ג',\n 'ב',\n 'א'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\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 'გ',\n 'ბ',\n 'ა'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마이너스';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? '、' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return '◦' + spaceSuffix;\n case 2 /* SQUARE */:\n return '◾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline