@mchp-mcc/clock-16bit-driver 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +6 -0
- package/Readme.md +6 -0
- package/output/creator.js +2 -2
- package/output/processor.js +41 -3
- package/output/processor.js.map +1 -1
- package/output/reducer.js +40 -2
- package/output/reducer.js.map +1 -1
- package/package.json +2 -2
- package/src/DerivedData.tsx +29 -0
package/output/processor.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["webpack://processor/webpack/bootstrap","webpack://processor/./generated_module/src/App/AppModel.ts","webpack://processor/./generated_module/src/Utils.ts","webpack://processor/./generated_module/src/autoModule sync","webpack://processor/./generated_module/src/autoModule/AutoModuleAppModel.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleHardware.ts","webpack://processor/./generated_module/src/autoModule/AutoModuleHelpers.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleTemplates.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleView.tsx","webpack://processor/./generated_module/src/autoModule/ContextualHelp.ts","webpack://processor/./generated_module/src/autoModule/RegisterFilterMode.ts","webpack://processor/./generated_module/src/autoModule/getConfigData.ts","webpack://processor/./generated_module/src/interfaces/exports.tsx","webpack://processor/./generated_module/src/interfaces/imports.tsx","webpack://processor/./generated_module/src/interrupts/InterruptActions.ts","webpack://processor/./generated_module/src/pins/PCPHelper.ts","webpack://processor/./generated_module/src/pins/PCPStateActionBuilder.ts","webpack://processor/./generated_module/src/processor.tsx","webpack://processor/./generated_module/src/tables/UidMapBuilder.ts","webpack://processor/./generated_module/src/tables/tables.ts","webpack://processor/./node_modules/@microchip/canfd-clock-interface/lib/src/canfd-clock-interface.js","webpack://processor/./node_modules/@microchip/canfd-clock-interface/lib/src/index.js","webpack://processor/./node_modules/@microchip/pin-standard/lib/index.js","webpack://processor/./node_modules/@microchip/pin-standard/lib/pin-standard.js","webpack://processor/./node_modules/@microchip/scf-common/lib/Processor.js","webpack://processor/./node_modules/@microchip/scf-device/lib/CalculateRegisterValue.js","webpack://processor/./node_modules/@microchip/scf-device/lib/Register.js","webpack://processor/./node_modules/@microchip/scf-device/lib/Setting.js","webpack://processor/./node_modules/@microchip/scf-device/lib/util/Arrays.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/c-function-types.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/helpers.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/index.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/CreateRegisterView.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/Model.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/ViewSchemaBuilder.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/CalculateRegisterValue.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/Register.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/Setting.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/util/Arrays.js","webpack://processor/./node_modules/core-js/es/map/index.js","webpack://processor/./node_modules/core-js/es/set/index.js","webpack://processor/./node_modules/core-js/internals/a-callable.js","webpack://processor/./node_modules/core-js/internals/a-possible-prototype.js","webpack://processor/./node_modules/core-js/internals/add-to-unscopables.js","webpack://processor/./node_modules/core-js/internals/an-instance.js","webpack://processor/./node_modules/core-js/internals/an-object.js","webpack://processor/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://processor/./node_modules/core-js/internals/array-includes.js","webpack://processor/./node_modules/core-js/internals/array-slice.js","webpack://processor/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://processor/./node_modules/core-js/internals/classof-raw.js","webpack://processor/./node_modules/core-js/internals/classof.js","webpack://processor/./node_modules/core-js/internals/collection-strong.js","webpack://processor/./node_modules/core-js/internals/collection.js","webpack://processor/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://processor/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://processor/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://processor/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://processor/./node_modules/core-js/internals/create-property-descriptor.js","webpack://processor/./node_modules/core-js/internals/define-iterator.js","webpack://processor/./node_modules/core-js/internals/descriptors.js","webpack://processor/./node_modules/core-js/internals/document-create-element.js","webpack://processor/./node_modules/core-js/internals/engine-user-agent.js","webpack://processor/./node_modules/core-js/internals/engine-v8-version.js","webpack://processor/./node_modules/core-js/internals/enum-bug-keys.js","webpack://processor/./node_modules/core-js/internals/export.js","webpack://processor/./node_modules/core-js/internals/fails.js","webpack://processor/./node_modules/core-js/internals/freezing.js","webpack://processor/./node_modules/core-js/internals/function-bind-context.js","webpack://processor/./node_modules/core-js/internals/function-call.js","webpack://processor/./node_modules/core-js/internals/function-name.js","webpack://processor/./node_modules/core-js/internals/function-uncurry-this.js","webpack://processor/./node_modules/core-js/internals/get-built-in.js","webpack://processor/./node_modules/core-js/internals/get-iterator-method.js","webpack://processor/./node_modules/core-js/internals/get-iterator.js","webpack://processor/./node_modules/core-js/internals/get-method.js","webpack://processor/./node_modules/core-js/internals/global.js","webpack://processor/./node_modules/core-js/internals/has-own-property.js","webpack://processor/./node_modules/core-js/internals/hidden-keys.js","webpack://processor/./node_modules/core-js/internals/html.js","webpack://processor/./node_modules/core-js/internals/ie8-dom-define.js","webpack://processor/./node_modules/core-js/internals/indexed-object.js","webpack://processor/./node_modules/core-js/internals/inherit-if-required.js","webpack://processor/./node_modules/core-js/internals/inspect-source.js","webpack://processor/./node_modules/core-js/internals/internal-metadata.js","webpack://processor/./node_modules/core-js/internals/internal-state.js","webpack://processor/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://processor/./node_modules/core-js/internals/is-callable.js","webpack://processor/./node_modules/core-js/internals/is-forced.js","webpack://processor/./node_modules/core-js/internals/is-object.js","webpack://processor/./node_modules/core-js/internals/is-pure.js","webpack://processor/./node_modules/core-js/internals/is-symbol.js","webpack://processor/./node_modules/core-js/internals/iterate.js","webpack://processor/./node_modules/core-js/internals/iterator-close.js","webpack://processor/./node_modules/core-js/internals/iterators-core.js","webpack://processor/./node_modules/core-js/internals/iterators.js","webpack://processor/./node_modules/core-js/internals/length-of-array-like.js","webpack://processor/./node_modules/core-js/internals/native-symbol.js","webpack://processor/./node_modules/core-js/internals/native-weak-map.js","webpack://processor/./node_modules/core-js/internals/object-create.js","webpack://processor/./node_modules/core-js/internals/object-define-properties.js","webpack://processor/./node_modules/core-js/internals/object-define-property.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://processor/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-is-extensible.js","webpack://processor/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-keys-internal.js","webpack://processor/./node_modules/core-js/internals/object-keys.js","webpack://processor/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://processor/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-to-string.js","webpack://processor/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://processor/./node_modules/core-js/internals/own-keys.js","webpack://processor/./node_modules/core-js/internals/path.js","webpack://processor/./node_modules/core-js/internals/redefine-all.js","webpack://processor/./node_modules/core-js/internals/redefine.js","webpack://processor/./node_modules/core-js/internals/require-object-coercible.js","webpack://processor/./node_modules/core-js/internals/set-global.js","webpack://processor/./node_modules/core-js/internals/set-species.js","webpack://processor/./node_modules/core-js/internals/set-to-string-tag.js","webpack://processor/./node_modules/core-js/internals/shared-key.js","webpack://processor/./node_modules/core-js/internals/shared-store.js","webpack://processor/./node_modules/core-js/internals/shared.js","webpack://processor/./node_modules/core-js/internals/string-multibyte.js","webpack://processor/./node_modules/core-js/internals/to-absolute-index.js","webpack://processor/./node_modules/core-js/internals/to-indexed-object.js","webpack://processor/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://processor/./node_modules/core-js/internals/to-length.js","webpack://processor/./node_modules/core-js/internals/to-object.js","webpack://processor/./node_modules/core-js/internals/to-primitive.js","webpack://processor/./node_modules/core-js/internals/to-property-key.js","webpack://processor/./node_modules/core-js/internals/to-string-tag-support.js","webpack://processor/./node_modules/core-js/internals/to-string.js","webpack://processor/./node_modules/core-js/internals/try-to-string.js","webpack://processor/./node_modules/core-js/internals/uid.js","webpack://processor/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://processor/./node_modules/core-js/internals/well-known-symbol.js","webpack://processor/./node_modules/core-js/modules/es.array.iterator.js","webpack://processor/./node_modules/core-js/modules/es.map.js","webpack://processor/./node_modules/core-js/modules/es.object.to-string.js","webpack://processor/./node_modules/core-js/modules/es.set.js","webpack://processor/./node_modules/core-js/modules/es.string.iterator.js","webpack://processor/./node_modules/lodash.find/index.js","webpack://processor/./node_modules/path-browserify/index.js","webpack://processor/./node_modules/process/browser.js","webpack://processor/(webpack)/buildin/global.js","webpack://processor/(webpack)/buildin/module.js","webpack://processor/./src/DerivedData.tsx","webpack://processor/./src/Util.ts"],"names":["getPinsLogic","require","ex","getCompletePinData","appModel","getRowData","rowData","getModel","prototype","getDerivedData","AppModel","getDerivedDataFunction","derivedData","exportInterfaces","importInterfaces","autoModuleAppModel","registerValues","interrupts","properties","registers","pcpHelper","defaultHardware","getState","state","getPayload","payload","getImports","imports","getExports","exports","getName","getAutoModuleAppModel","getModuleName","getActiveName","getDerivedFunctions","getGlobalNames","createAutoModuleAppModel","getPrototypeModule","getRegisterValues","interfaceName","config","getInterrupts","getHardware","getPeripheral","getProperties","getRegisters","getFriendlyInterfaceId","peripheral","undefined","name","instanceNumber","Number","instance","replace","group","peripheralName","getConfigData","peripherals","interfaceId","getPeripheralDescription","getMyFunctions","getDerivedFunction","functionName","args","getExportInterfaces","createExportInterfaces","getImportInterfaces","createImportInterfaces","isControlledByInterface","componentName","getAssignedImport","importName","Processor","getImportValue","filterImportBySetting","populatedImports","importKey","optionFilter","filteredImports","option","isComponentValue","value","getComponentValue","getComponent","getPCPHelper","PCPHelper","setCallbacks","getKeys","obj","Object","getOwnPropertyNames","values","map","key","forEach","action","mapper","assertNotNull","val","msg","Error","toDictionary","arr","keyMapper","valueMapper","result","entry","model","MyAutoModuleAppModel","hardware","componentList","moduleName","createComponentList","components","getComponentList","componentsWithDynamicDependencySelectors","getDefaultDependencySelectors","component","getAllComponents","softwareData","push","registerName","setting","hardwareRegister","settings","type","getDynamicComponents","getActions","actions","getDefaultComponentAction","tabId","path","getSoftwareComponentValue","tab","overriddenValue","processedArg","getProcessedArgValue","AutoModuleHelper","overrideDefaultValues","getHardwareComponentValue","overriddenCompValue","overrideDefaultValue","getDefaultValue","displayOptionSetting","mode","operation","options","masterComponent","indexOf","getHardwareComponentBooleanValue","booleanValues","getDependencyComponentValue","dependencySelector","imp","importId","handle","createOptionLabel","optionType","defaultValue","getOptionByName","dynamicDependencySelectors","defaultTab","defaultGroup","length","tabs","importedNames","keys","dependencySelectors","filter","category","description","componentValue","createPrototypeImport","isFullyAssigned","interfaces","getHardwareInterfaces","i","isAssigned","castComponent","getComboOptions","overrideOptions","hasConfigBits","regName","registerValue","reg","comment","valueAsHex","alias","registerVal","CalculateRegisterValue","comments","set","getSettingBits","deviceType","withNumberValue","getOptionValueByName","asNumber","toString","toUpperCase","sortComments","register","sort","a","b","settingA","split","settingB","mask","join","setValNumber","getOptionByAlias","settingValue","valueAsDescription","bitName","getRegisterFromComponent","toLowerCase","modifiedRegName","getSettingFromComponent","desc","porDefault","optionName","optionValue","getSettingDefaultIfPresent","getOverrideDefaultValue","getSettingOptionsIfPresent","masterComponentValue","filteredOptions","filterModeOptions","find","optionModes","match","getProcessedHandle","label","providerId","exportId","DependencySelector","noneSelection","createOptionEntry","dropdownOptions","thisImport","shouldAllowUnselectDependency","names","generateDropdownOptions","isUnassignable","getModuleDefaultDescription","packageJson","scf","getTemplates","templates","template","newTemplate","dest","templateName","src","shouldGenerate","generateWithHardware","isGeneratableProperty","getTemplatePayload","templatePayload","uppercase","lowercase","filename","source","header","getComponentPayload","getTemplateSettings","getConfigBits","configModule","templateConfigBits","configName","configBits","configBit","createAutoViewPayloads","payloads","main","createSimpleFormPayloadRegister","schema","createSchema","uiSchema","createUiSchema","formData","createFormData","scfUiSchema","createScfUiSchema","table","shouldPopulateView","expandGroupsByDefault","UIGroupCollapse","populateView","getModuleDescription","title","schemaBuilder","overrideGroupTitle","UIGroups","overrideGroupDescription","getComponentSchema","UIOrder","isGroupHidden","tabIndex","isComponentGroupHidden","isHidden","uiBehavior","tableCols","columns","colNames","defaultColumnWidth","calculateColumnWidth","isColEditable","readonly","dataField","editable","columnWidth","width","dataSort","isSortable","headerAlign","dataAlign","tdStyle","getCellStyle","headerText","getTableUiSchema","getUiBehavior","getUiSchemaExportArg","getTableFormData","getDependencySelectorActions","transformErrors","deviceMeta","hasSdlSupport","sdlHelp","url","getAutoSdlHelp","tooltip","tableState","uids","createTableUids","cellValidationInfo","getCellValidationInfo","canRemoveRows","canInsertRows","canAddRows","canMoveRowDown","canMoveRowUp","getTableActions","depSelector","dependencySelectorActions","dropdownOption","JSON","stringify","displayViewOnImportAssigned","shouldPopulateViewAtStartup","impKey","isVisible","isVisibleProperty","isModeActive","getSoftwareComponentSchema","getHardwareComponentSchema","getDependencyComponentSchema","getTableComponentSchema","validation","overrideTitle","format","isUrl","urlDescription","isImage","imageDescription","getDropdownOptionNames","assignedImport","createProcessedImports","NONE","assignedName","localeCompare","item","matchRegEx","expArg","overriddenBehavior","isEnabled","registerViewPayloads","hardwarePeripheral","registerFilter","registerView","CreateRegisterView","foundRegister","withRegisterValue","interruptsKey","interrupt","interruptComponent","interruptCompVal","withInterruptValue","withInterruptOptions","create","dataModel","helpUrl","deviceName","dosid","comp","registerAlias","deviceRegister","processRegisterModes","hasModes","modifiedHardwarePeripheral","delFlag","targetStr","RegExp","test","settingObj","flag","configPath","newConfig","ConfigBuilder","withDynamicConfigData","withDynamicComponents","build","getConfigFile","dynamicComponents","dynamicComponentMap","fromNew","fromPath","__dirname","MyExportInterfaces","createProcessedExports","exportPayload","exp","int","processedInterface","getInterface","getInterfaceArgs","interfaceKey","getInterfaceResults","results","processedArgValue","interfaceData","getInterfaceData","argValues","arg","module","isInterface","idA","idB","MyImportInterfaces","stage","processedImports","filterImports","getResults","getProcessedImportOptions","modifiedOptions","index","importResults","initResults","initializer","getData","isHighPriority","filterInterrupt","filterInterrupts","interruptComponentName","getInterruptComponentName","isrCallback","handlerName","headerFile","generateISR","isEnableActions","getInterruptActions","concat","getDefaultInterruptActions","isEnableAction","interruptList","interruptActions","apiPrefixResults","apiPrefix","interruptName","InterruptActionsBuilder","curComponent","curComponentName","tableRowId","tableRowCol","tableCellPath","createActionFor","buildActions","addActionIfEnabled","actionValue","isActionValueAcceptable","rowId","validFor","addActionIfDisabled","setPathToTableCell","rowIndex","colName","some","createActionBuilder","getPinJsonObj","rows","pinjsonobj","pinCallbacks","getAllFilteredRows","allRows","validRows","eachRow","userRowData","isRowValid","direction","behaviour","eachrowret","getAllRows","pinRows","userdata","retData","callbacks","pinRow","PCPStateActionBuilder","rowName","actionDataArr","pinRegEx","pinstate","pin_state","LOCKED","actiontype","SETACTION","attribs","formAttribs","ATTRIBACTION","UNLOCK","attribarray","actionArr","eachData","process","initialModule","myDerivedData","processedOutput","help","overrideModuleLevelHelp","customTemplateData","templateData","view","auto","customView","getCustomView","alerts","globalNames","UidMapBuilder","uidMap","row","rowCount","uid","incrementUidAndShift","dynamicallyRemoved","count","sortedUids","getUidKeys","uidKey","RowPrefix","overrideTableDefaultsWithChanges","rowChanged","initialFormData","Array","isArray","changedRow","changedUid","rowChangeNum","isTableInState","tabState","getInitialTableFormData","columnNames","tableFormData","columnName","overrideTableDefaultValues","createInitialRows","rowDataCols","createRowUid","Default","initialRows","defaultRowNum","createDefaultTableAction","column","overrideCellValue","tableData","cell","modifiedTableData","addRowsToTable","newRow","numberOfRows","addRowToTable","Dynamic","newRowCols","newRowId","filteredTableTemp","tableFirstHalf","slice","tableSecondHalf","currentRowId","updateActionsRowId","removeRowFromTable","tableRemoved","currentActions","modifiedActions","getValueBasedOnState","modelState","tableUids","overrideDefaultsAndFilterRows","modifiedForData","filteredModifed","dynamicTableData","rowNum","r","addDefaultRows","addDynamicRows","removeRows","sortByValue","colInfo","colData","info","minValue","maxValue","errMessage","errTitle","cValidation","cValidationErrTitle","cValidationErrMessage","rowFormData","tableActions","uidsKey","defaultAction","ind","filtered","overrideTableOptions","cellAction","uidKeys","tableUi","search","striped","bordered","rightActions","getTableRightActions","leftActions","getTableLeftActions","getTableMoveRowActions","className","tableColumns","columnsKey","rjsfType","colBox","items","tableName","dynamicOptions","displayName","isReadonly","overflow","textOverflow","prefix","postfix","ARGUMENT_MAIN_CLK","ARGUMENT_AUX_CLK","ARGUMENT_REF_CLK","CLOCK_16BIT_CONFIG_INTERFACE","DIGITS_AFTER_DECIMAL_POINT","COMPONENT_AUX_CLOCK_SOURCE","COMPONENT_MAIN_CLOCK_SOURCE","COMPONENT_AUX_CLOCK_INPUT_FREQUENCY","COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY","COMPONENT_REF_CLOCK_SOURCE","COMPONENT_CANFD_CLOCK_SOURCE","COMPONENT_REQUESTED_SYSTEM_FREQUENCY","COMPONENT_FVCO_DIVIDER","COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY","COMPONENT_AFVCO_DIVIDER","COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY","COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY","COMPONENT_USB_CLOCK_FREQUENCY","PRIMARY","PLL","POSTSCALER","EXTERNAL","MEGA_HERTZ","KILO_HERTZ","getMyDerivedData","MyDerivedData","EmptyDerivedData","getMyTemplateData","getMyAlerts","calculatedFunction","canfdClkSrcFreq","getCanfdClockSrcFreqInMhz","clock_16bit_config_interface_args","getClockConfigInterfaceArgs","calculatedSystemFrequency_Hz","getActualSystemFrequency","instructionClockFrequency_Hz","getInstructionClockFrequency","usbClockFrequency_Hz","getUSBFrequency","getCalcCanfdFreqPayload","fpllo","getFpllo","fvco","getFvco","fvcoDiv","getFvcoDiv","apllo","getAfpllo","afvco","getAfvco","afvcoDiv","getAfvcoDiv","calculatedRefOutputFrequency_Hz","getCalculatedRefOutputFrequency_Hz","calculatedCanfdOutputFrequency_Hz","getCalculatedCanfdOutputFrequency","isComponentVisible","requestedCanfdClockOutputFrequency_Hz","getRequestedCanfdClockOutputFrequency_Hz","mainClockInputFrequency_HzValidator","auxClockInputFrequency_HzValidator","requestedAuxClockOutputFrequency_HzValidator","requestedSystemFrequency_HzValidator","requestedRefClockOutputFrequency_HzValidator","getCustomUiErrors","getClockApplicationInterfacePayload","customErrors","message","minimum","getMinClockFrequency","maximum","getMaxClockFrequency","getMaxSystemClockFrequency","minClockFrequency","mainClockPayload","mainClockInputMinFrequency","maxClockFrequency","mainClockInputMaxFrequency","maxSystemClockFrequency","getFrequencyInMHz","getRequestedCanfdClockFreq","clockList","canfdInterfaceRequests","getCanfdClockRequestList","scriptId","requestedFreq","isNaN","requestedCanSpeed_Hz","getSelectedCanfdFreq","canfd_clock_interface","getInterfaceId","isAuxClockInputFrequencyVisible","visible","auxClockSource","isMainClockInputFrequencyVisible","mainClockSource","isRequestedSystemFrequencyVisible","isRequestedAuxClockOutputFrequencyVisible","isFplloVisible","isUSBSupported","isAuxClockSupported","isRefClockSupported","isCanfdClockSupported","canfdClockSource","calculatedCanFdClockSrcFreq","canClkFreqVal","getCalculatedCanfdOutputFrequency_Hz","text","Hint","getCanfdClockSrcFreq","MAX_CANFD_CLK_SRC_FREQ","Warning","isStdCanfdFrequency","startsWith","systemFrequency","componentFrequenciesPayload","fosc_Hz","toFixed","systemFrequencyInStr","hasUSB","hasAuxClock","hasRefClock","hasCanfdClock","instructionClockFrequency","foscBy2_Hz","usbFrequency","usbClock_Hz","fpllo_Hz","fvco_Hz","fvcoDiv_Hz","afpllo","afpllo_Hz","afvco_Hz","afvcoDiv_Hz","refClockOutputFrequency","refo_Hz","calculatedCanSpeed_Hz","canfdClockOutputFrequency","canfdClockPayload","getMainClockSources","clockSources","mainClockSourceOptions","getFvcoDividerOptions","fvcoDivOptions","temp","fvcoDividerOptions","getAfvcoDividerOptions","afvcoDivOptions","auxClockPayload","afvcoDividerOptions","getAuxClockSources","auxClockSourceOptions","getRefClockSources","refClockPayload","refClockSourceOptions","getCanfdClockSources","canfdClockSourceOptions","canClock","getDefaultCanClock","getMainClockSource","getMainClockInputFrequencyInHz","getRequestedSystemFrequencyInHz","getFvcoDivider","getAuxClockSource","getAuxClockInputFrequencyInHz","getRequestedAuxClockOutputFrequencyInHz","getAfvcoDivider","getRefClockSource","getRequestedRefClockOutputFrequencyInHz","clockOptionList","isElementPresent","mainClockArg","auxClockArg","refClockArg","canfdClockArg","mainClockInputFrequency_Hz","requestedSystemFrequency_Hz","fvcoDivider","auxClockInputFrequency_Hz","requestedAuxClockOutputFrequency_Hz","afvcoDivider","refClockSource","requestedRefClockOutputFrequency_Hz","canfdClock","canClkSrc","canClkFreq","getCanfdClockFrequency","getCanClkDivFreq","getExportArg","exportData","_find","String","getCanfdClockSource","getClock16bitUxInterfaceId","version","clockApplicationInterfacePayloads","clockApplicationInterfaceRequests","hasSecondaryOscillator","isSecondaryOscillatorEnabled","freqList","freq","arrayList","arrayEntry","isPresent","getClockNameForCanClockSource","clkSrc","clockName","clkFrequency","clkSrcfreq"],"mappings":"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ACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;;;;;;;;;;;;AC9Ca;AACb,8CAA8C,cAAc;AAC5D,8BAA8B,mBAAO,CAAC,iHAAyB;AAC/D;AACA,iC;;;;;;;;;;;;ACJa;AACb,8CAA8C,cAAc;AAC5D,qBAAqB,mBAAO,CAAC,kFAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACXa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wFAAwF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,wC;;;;;;;;;;;;ACxPa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB,wDAAwD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C,kCAAkC,WAAW,oBAAoB,kBAAkB,8BAA8B,GAAG;AACpH,aAAa,GAAG;AAChB;AACA;AACA;AACA;;;;;;;;;;;;;AC9Ea;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,sEAAW;AACnC,iBAAiB,mBAAO,CAAC,wEAAY;AACrC,eAAe,mBAAO,CAAC,8EAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,gGAAgG,0BAA0B,EAAE;AAC5H,4IAA4I,uDAAuD,EAAE;AACrM;AACA;AACA,wCAAwC,8DAA8D;AACtG;AACA,2CAA2C,iEAAiE;AAC5G;AACA,4CAA4C,kEAAkE;AAC9G;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6CAA6C;AACzF,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kD;;;;;;;;;;;;AClNa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;;ACNa;AACb,8CAA8C,cAAc;AAC5D;AACA,eAAe,mBAAO,CAAC,8EAAe;AACtC;AACA;AACA,wGAAwG,8BAA8B,EAAE;AACxI;AACA;AACA;AACA,wGAAwG,4BAA4B,EAAE;AACtI;AACA;AACA;AACA,wGAAwG,0CAA0C,EAAE;AACpJ;AACA;AACA;AACA,uGAAuG,oBAAoB,EAAE;AAC7H;AACA;AACA;AACA,uGAAuG,2BAA2B,EAAE;AACpI;AACA,mC;;;;;;;;;;;;ACxBa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB,EAAE;AACvE;AACA,kC;;;;;;;;;;;;ACzCa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC,EAAE;AAC5E;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;AACb,8CAA8C,cAAc;AAC5D,yBAAyB,mBAAO,CAAC,2FAAoB;AACrD;AACA,gBAAgB,mBAAO,CAAC,yEAAW;AACnC;AACA;;;;;;;;;;;;;ACNa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+CAA+C,mBAAO,CAAC,6KAAkD;AACzG,eAAe,mBAAO,CAAC,uJAAuC;AAC9D,0BAA0B,mBAAO,CAAC,wGAAqB;AACvD,cAAc,mBAAO,CAAC,gFAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ,gRAAgR;AACrV,+DAA+D,QAAQ,uRAAuR;AAC9V,qEAAqE,QAAQ,4SAA4S;AACzX;AACA;AACA,iEAAiE,uCAAuC,EAAE;AAC1G;AACA;AACA;AACA,kEAAkE,wCAAwC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,aAAa;AACb,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,aAAa;AACb,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAA2C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8C;;;;;;;;;;;;ACvMa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+CAA+C,mBAAO,CAAC,6KAAkD;AACzG,eAAe,mBAAO,CAAC,uJAAuC;AAC9D;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA,uCAAuC,sBAAsB;AAC7D,0CAA0C,yBAAyB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,gEAAgE,sCAAsC,EAAE;AACxG;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,oCAAoC,4BAA4B;AAChE,2CAA2C,4BAA4B;AACvE,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA,0CAA0C,yBAAyB;AACnE,uCAAuC,sBAAsB;AAC7D,oCAAoC,2BAA2B;AAC/D,2CAA2C,kCAAkC;AAC7E,0CAA0C,yCAAyC;AACnF,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA,oFAAoF,oBAAoB,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACrJa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB,iCAAiC,mCAAmC,sCAAsC;AACrK,4CAA4C,0BAA0B;AACtE,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,6C;;;;;;;;;;;;AC5Ha;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,uHAAW;AACnC,iBAAiB,mBAAO,CAAC,yHAAY;AACrC,eAAe,mBAAO,CAAC,+HAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,gGAAgG,0BAA0B,EAAE;AAC5H,4IAA4I,uDAAuD,EAAE;AACrM;AACA;AACA,wCAAwC,8DAA8D;AACtG;AACA,2CAA2C,iEAAiE;AAC5G;AACA,4CAA4C,kEAAkE;AAC9G;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,SAAS,WAAW,YAAY,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC,cAAc;AACd,KAAK;;AAEL,SAAS,WAAW;AACpB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3Ma;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,6BAA6B,mBAAO,CAAC,6FAAgC;AACrE,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,wBAAwB,mBAAO,CAAC,iGAAkC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA;AACA,4EAA4E,iCAAiC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,mEAAmE,iCAAiC;AACpG;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK,yDAAyD;;AAE9D;;AAEA;;AAEA;AACA;;;;;;;;;;;;ACxGA,aAAa,mBAAO,CAAC,2FAA+B;AACpD,cAAc,mBAAO,CAAC,2EAAuB;AAC7C,qCAAqC,mBAAO,CAAC,+HAAiD;AAC9F,2BAA2B,mBAAO,CAAC,uGAAqC;;AAExE;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;;;;;;;;;;;ACbA,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA,gBAAgB;AAChB;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACPY;AACb,wBAAwB,mBAAO,CAAC,uFAA6B;AAC7D,aAAa,mBAAO,CAAC,qFAA4B;AACjD,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,gBAAgB,mBAAO,CAAC,6EAAwB;;AAEhD,8BAA8B,aAAa;;AAE3C;AACA;AACA,6DAA6D,0CAA0C;AACvG;AACA;AACA;AACA;;;;;;;;;;;;ACfA,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,2BAA2B,mBAAO,CAAC,uGAAqC;AACxE,+BAA+B,mBAAO,CAAC,+GAAyC;;AAEhF;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,gCAAgC,mBAAO,CAAC,iHAA0C;AAClF,qBAAqB,mBAAO,CAAC,yGAAsC;AACnE,qBAAqB,mBAAO,CAAC,yGAAsC;AACnE,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,oBAAoB,mBAAO,CAAC,uFAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,4CAA4C;AACrF,6CAA6C,4CAA4C;AACzF,+CAA+C,4CAA4C;AAC3F,KAAK,qBAAqB,sCAAsC;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA,2CAA2C,mCAAmC;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,qFAAqF;AACnG;;AAEA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;;AAEA;AACA;;;;;;;;;;;;AClGA,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA,iCAAiC,MAAM,mBAAmB,UAAU,EAAE,EAAE;AACxE,CAAC;;;;;;;;;;;;ACND,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,mFAA2B;;AAEpD;;;;;;;;;;;;ACFA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,6FAAgC;;AAExD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,+BAA+B,mBAAO,CAAC,+HAAiD;AACxF,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,gCAAgC,mBAAO,CAAC,iHAA0C;AAClF,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD;AACnD,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtDA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACNA,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA,wDAAwD;AACxD,CAAC;;;;;;;;;;;;ACLD,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA;;AAEA;AACA;AACA;;;;;;;;;;;;ACJA,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,aAAa,mBAAO,CAAC,2FAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,cAAc;AAC5D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;;;;;;;;;;;ACXA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACTA,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,kBAAkB,mBAAO,CAAC,qFAA4B;AACtD,wBAAwB,mBAAO,CAAC,iGAAkC;;AAElE;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa,EAAE;;;;;;;;;;;;;ACb/B,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA;;;;;;;;;;;;ACAA,iBAAiB,mBAAO,CAAC,mFAA2B;;AAEpD;;;;;;;;;;;;ACFA,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,oBAAoB,mBAAO,CAAC,yGAAsC;;AAElE;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,GAAG;AACH,CAAC;;;;;;;;;;;;ACVD,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,YAAY,mBAAO,CAAC,qEAAoB;AACxC,cAAc,mBAAO,CAAC,iFAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;ACfD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,qBAAqB,mBAAO,CAAC,yGAAsC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjBA,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,YAAY,mBAAO,CAAC,mFAA2B;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,aAAa,mBAAO,CAAC,2FAA+B;AACpD,qBAAqB,mBAAO,CAAC,uGAAqC;AAClE,gCAAgC,mBAAO,CAAC,qHAA4C;AACpF,wCAAwC,mBAAO,CAAC,uIAAqD;AACrG,mBAAmB,mBAAO,CAAC,mGAAmC;AAC9D,UAAU,mBAAO,CAAC,iEAAkB;AACpC,eAAe,mBAAO,CAAC,2EAAuB;;AAE9C;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,gBAAgB;AAChB,GAAG,EAAE;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,OAAO,6CAA6C;AACpD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxFA,sBAAsB,mBAAO,CAAC,yFAA8B;AAC5D,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,aAAa,mBAAO,CAAC,2FAA+B;AACpD,aAAa,mBAAO,CAAC,mFAA2B;AAChD,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpEA,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,gBAAgB,mBAAO,CAAC,6EAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA,YAAY,mBAAO,CAAC,qEAAoB;AACxC,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;AACA;AACA;;;;;;;;;;;;ACJA;;;;;;;;;;;;ACAA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,uGAAqC;AACjE,wBAAwB,mBAAO,CAAC,6FAAgC;;AAEhE;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;;;;;ACbA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qGAAoC;AACvD,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,kBAAkB,mBAAO,CAAC,qFAA4B;AACtD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,wBAAwB,mBAAO,CAAC,mGAAmC;AACnE,oBAAoB,mBAAO,CAAC,uGAAqC;AACjE,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,wBAAwB,mBAAO,CAAC,iGAAkC;AAClE,oBAAoB,mBAAO,CAAC,uFAA6B;;AAEzD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACjEA,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBa;AACb,YAAY,mBAAO,CAAC,qEAAoB;AACxC,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,aAAa,mBAAO,CAAC,qFAA4B;AACjD,qBAAqB,mBAAO,CAAC,yGAAsC;AACnE,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC/CA;;;;;;;;;;;;ACAA,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA,iBAAiB,mBAAO,CAAC,6FAAgC;AACzD,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACZD,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,uFAA6B;;AAEzD;;AAEA;;;;;;;;;;;;ACNA;AACA,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,uBAAuB,mBAAO,CAAC,2GAAuC;AACtE,kBAAkB,mBAAO,CAAC,qFAA4B;AACtD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,WAAW,mBAAO,CAAC,mEAAmB;AACtC,4BAA4B,mBAAO,CAAC,yGAAsC;AAC1E,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACjFA,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,2BAA2B,mBAAO,CAAC,uGAAqC;AACxE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClBA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,qBAAqB,mBAAO,CAAC,uFAA6B;AAC1D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,oBAAoB,mBAAO,CAAC,yFAA8B;;AAE1D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;;;;;;;;;;;;ACtBA,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,iCAAiC,mBAAO,CAAC,qHAA4C;AACrF,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,aAAa,mBAAO,CAAC,2FAA+B;AACpD,qBAAqB,mBAAO,CAAC,uFAA6B;;AAE1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;;;;;;;;;;;;ACrBA;AACA,cAAc,mBAAO,CAAC,iFAA0B;AAChD,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,2BAA2B,mBAAO,CAAC,qHAA4C;AAC/E,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtBA,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,kBAAkB,mBAAO,CAAC,qFAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVA;AACA;;;;;;;;;;;;ACDA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,aAAa,mBAAO,CAAC,2FAA+B;AACpD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,+BAA+B,mBAAO,CAAC,2GAAuC;;AAE9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACpBA,YAAY,mBAAO,CAAC,qEAAoB;AACxC,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,cAAc,mBAAO,CAAC,iFAA0B;AAChD,kCAAkC,mBAAO,CAAC,iHAA0C;;AAEpF;AACA;AACA,6CAA6C,kBAAkB,EAAE;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACfD,kBAAkB,mBAAO,CAAC,qGAAoC;;AAE9D,+BAA+B;;;;;;;;;;;;ACF/B,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,aAAa,mBAAO,CAAC,2FAA+B;AACpD,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,cAAc,mBAAO,CAAC,uFAA6B;AACnD,iBAAiB,mBAAO,CAAC,iFAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,kBAAkB,mBAAO,CAAC,qFAA4B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACRa;AACb,8BAA8B;AAC9B;AACA;;AAEA;AACA,2EAA2E,OAAO;;AAElF;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACbD;AACA,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,yBAAyB,mBAAO,CAAC,mGAAmC;;AAEpE;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1BY;AACb,4BAA4B,mBAAO,CAAC,qGAAoC;AACxE,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;AACA;AACA,2CAA2C;AAC3C;AACA;;;;;;;;;;;;ACRA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,gCAAgC,mBAAO,CAAC,qHAA4C;AACpF,kCAAkC,mBAAO,CAAC,yHAA8C;AACxF,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACbA,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;;;;;;;;;;;ACFA,eAAe,mBAAO,CAAC,2EAAuB;;AAE9C;AACA;AACA;AACA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,aAAa,mBAAO,CAAC,2FAA+B;AACpD,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,iCAAiC,mBAAO,CAAC,qFAA4B;;AAErE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;AC7CD,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;AACA;;AAEA;AACA;AACA,iCAAiC,mDAAmD;AACpF,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;ACXa;AACb,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,2BAA2B,mBAAO,CAAC,uGAAqC;AACxE,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;;;;;;;;;;;;AClBA,qBAAqB,mBAAO,CAAC,uGAAqC;AAClE,aAAa,mBAAO,CAAC,2FAA+B;AACpD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA;;;;;;;;;;;;ACVA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,UAAU,mBAAO,CAAC,iEAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;;;;ACPA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA,kDAAkD;;AAElD;;;;;;;;;;;;ACNA,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,YAAY,mBAAO,CAAC,mFAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTD,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,0BAA0B,mBAAO,CAAC,uGAAqC;AACvE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCA,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;;;;;;;;;;;;ACNA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;AACA;AACA,iFAAiF;AACjF;;;;;;;;;;;;ACRA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,0BAA0B,mBAAO,CAAC,qGAAoC;AACtE,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzBA,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACRA,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACPA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACRA,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACVA,kBAAkB,mBAAO,CAAC,qGAAoC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACRA;AACA,oBAAoB,mBAAO,CAAC,qFAA4B;;AAExD;AACA;AACA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,aAAa,mBAAO,CAAC,2FAA+B;AACpD,UAAU,mBAAO,CAAC,iEAAkB;AACpC,oBAAoB,mBAAO,CAAC,qFAA4B;AACxD,wBAAwB,mBAAO,CAAC,6FAAgC;;AAEhE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACvBa;AACb,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,uBAAuB,mBAAO,CAAC,+FAAiC;AAChE,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,qBAAqB,mBAAO,CAAC,yFAA8B;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8BAA8B;AAC9B,gCAAgC;AAChC,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACpDa;AACb,iBAAiB,mBAAO,CAAC,+EAAyB;AAClD,uBAAuB,mBAAO,CAAC,6FAAgC;;AAE/D;AACA;AACA;AACA,yBAAyB,gEAAgE;AACzF,CAAC;;;;;;;;;;;;ACRD,4BAA4B,mBAAO,CAAC,qGAAoC;AACxE,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,eAAe,mBAAO,CAAC,2FAA+B;;AAEtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;;;;;;;;;;;;;ACRa;AACb,iBAAiB,mBAAO,CAAC,+EAAyB;AAClD,uBAAuB,mBAAO,CAAC,6FAAgC;;AAE/D;AACA;AACA;AACA,yBAAyB,gEAAgE;AACzF,CAAC;;;;;;;;;;;;;ACRY;AACb,aAAa,mBAAO,CAAC,2FAA+B;AACpD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,qBAAqB,mBAAO,CAAC,yFAA8B;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV,CAAC;;;;;;;;;;;;AC7BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACp5EA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;;AAEA;AACA;AACA;AACA,CAAC;;AAE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","file":"processor.js","sourcesContent":[" \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","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { MyExportInterfaces, createExportInterfaces } from \"../interfaces/exports\";\nimport { MyImportInterfaces, createImportInterfaces } from \"../interfaces/imports\";\nimport * as Types from \"../types\";\nimport { pin_row } from \"@microchip/pin-standard\";\nimport * as AutoModuleTypes from \"../types/AutoModuleTypes\";\nimport {\n MyAutoModuleAppModel,\n createAutoModuleAppModel,\n} from \"../autoModule/AutoModuleAppModel\";\nimport {\n getFriendlyInterfaceId,\n getRegisterValues,\n} from \"../autoModule/AutoModuleHelpers\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { PCPHelper } from \"../pins/PCPHelper\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\n\ninterface PinsLogic {\n getCompletePinData(appModel: AppModel): any;\n getRowData(appModel: AppModel, rowData: pin_row): pin_row;\n}\n\nconst getPinsLogic = (): PinsLogic => {\n try {\n return require(\"../../../src/PinsLogic.ts\");\n } catch (ex) {\n const getCompletePinData = (appModel: AppModel): any => {\n return {};\n };\n const getRowData = (appModel: AppModel, rowData: pin_row): pin_row => {\n return rowData;\n };\n return {\n getCompletePinData: getCompletePinData,\n getRowData: getRowData,\n };\n }\n};\n\nexport const getModel = (\n prototype: AutoModuleTypes.MyModule,\n getDerivedData: (appModel: AutoModuleTypes.AppModel) => AutoModuleTypes.DerivedData,\n): AutoModuleTypes.AppModel | undefined => {\n return new AppModel(prototype, getDerivedData);\n};\n\nclass AppModel implements AutoModuleTypes.AppModel {\n private prototype: AutoModuleTypes.MyModule;\n private getDerivedDataFunction: (\n appModel: AutoModuleTypes.AppModel,\n ) => AutoModuleTypes.DerivedData;\n private derivedData: AutoModuleTypes.DerivedData;\n private exportInterfaces: MyExportInterfaces;\n private importInterfaces: MyImportInterfaces;\n private autoModuleAppModel: MyAutoModuleAppModel;\n private registerValues: AutoModuleTypes.MyRegisterValues | undefined;\n private interrupts: Types.Interrupts | undefined;\n private properties: Types.Properties | undefined;\n private registers: Types.Registers | undefined;\n private pcpHelper: PCPHelper;\n private defaultHardware: AutoModuleTypes.MyHardware;\n\n constructor(\n prototype: AutoModuleTypes.MyModule,\n getDerivedData: (\n appModel: AutoModuleTypes.AppModel,\n ) => AutoModuleTypes.DerivedData,\n ) {\n this.prototype = prototype;\n this.getDerivedDataFunction = getDerivedData;\n this.pcpHelper = new PCPHelper();\n this.pcpHelper.setCallbacks({\n getCompletePinData: () => getPinsLogic().getCompletePinData(this),\n getRowData: (rowData) => getPinsLogic().getRowData(this, rowData),\n });\n }\n\n public getState = (): AutoModuleTypes.MyState | undefined => this.prototype.state;\n\n public getPayload = (): AutoModuleTypes.MyPayload => this.prototype.payload;\n\n public getImports = (): Types.MyImports => this.prototype.imports;\n\n public getExports = (): Types.MyExports => this.prototype.exports;\n\n public getName = (): string => {\n return this.getAutoModuleAppModel().getModuleName();\n };\n\n public getActiveName = (): string => {\n return this.getDerivedFunctions().getActiveName?.() ?? this.getName();\n };\n\n public getGlobalNames = (): string[] => {\n return this.getDerivedFunctions().getGlobalNames?.() ?? [];\n };\n\n public getAutoModuleAppModel = (): MyAutoModuleAppModel => {\n if (this.autoModuleAppModel) return this.autoModuleAppModel;\n this.autoModuleAppModel = createAutoModuleAppModel(this);\n return this.autoModuleAppModel;\n };\n\n public getPrototypeModule = (): AutoModuleTypes.MyModule => {\n return this.prototype;\n };\n\n public getRegisterValues = (\n interfaceName?: string,\n config?: ModuleConfig,\n ): AutoModuleTypes.MyRegisterValues | undefined => {\n if (this.registerValues) return this.registerValues;\n this.registerValues = getRegisterValues(this, interfaceName, config);\n return this.registerValues;\n };\n\n public getInterrupts = (): Types.Interrupts | undefined => {\n if (this.interrupts) return this.interrupts;\n this.interrupts = this.getHardware()?.getPeripheral()?.interrupts;\n return this.interrupts;\n };\n\n public getProperties = (): Types.Properties | undefined => {\n if (this.properties) return this.properties;\n this.properties = this.getHardware()?.getPeripheral()?.properties;\n return this.properties;\n };\n\n public getRegisters = (): Types.Registers | undefined => {\n if (this.registers) return this.registers;\n this.registers = this.getHardware()?.getPeripheral()?.registers;\n return this.registers;\n };\n\n public getHardware = (\n interfaceName?: string,\n config?: ModuleConfig,\n ): AutoModuleTypes.MyHardware | undefined => {\n interfaceName = getFriendlyInterfaceId(interfaceName);\n if (interfaceName) {\n const peripheral = this.getPrototypeModule()?.imports?.[interfaceName]\n ?.payload as Types.MyPeripheral;\n if (!peripheral) return undefined;\n return {\n getPeripheral: (): Types.MyPeripheral => peripheral,\n getName: (): string => peripheral.name,\n instanceNumber: Number(\n peripheral.instance ?? peripheral.name.replace(peripheral.group, \"\"),\n ),\n };\n }\n if (!this.defaultHardware) {\n const peripheralName: string | undefined = getFriendlyInterfaceId(\n getConfigData(this, config)?.peripherals?.[0]?.interfaceId.name,\n );\n const peripheral = this.getPrototypeModule()?.imports?.[peripheralName ?? \"\"]\n ?.payload;\n if (peripheral) {\n this.defaultHardware = {\n getPeripheral: (): Types.MyPeripheral =>\n peripheral as Types.MyPeripheral,\n getName: (): string => peripheral.name,\n instanceNumber: Number(\n peripheral.instance ??\n peripheral.name.replace(peripheral.group, \"\"),\n ),\n };\n }\n }\n return this.defaultHardware;\n };\n\n public getPeripheralDescription = (): Types.MyPeripheral | undefined => {\n return this.getHardware()?.getPeripheral();\n };\n\n public getDerivedData = (): AutoModuleTypes.DerivedData => {\n if (this.derivedData) return this.derivedData;\n this.derivedData = this.getDerivedDataFunction(this);\n return this.derivedData;\n };\n\n public getDerivedFunctions = (): AutoModuleTypes.DerivedFunctions => {\n return this.getDerivedData().getMyFunctions();\n };\n\n public getDerivedFunction = (\n functionName: AutoModuleTypes.DerivedFunctionNames,\n ...args: any[]\n ): any | undefined => {\n return this.getDerivedFunctions()?.[functionName]?.(...args);\n };\n\n public getExportInterfaces = (): MyExportInterfaces => {\n if (this.exportInterfaces) return this.exportInterfaces;\n this.exportInterfaces = createExportInterfaces(this.prototype.exports, this);\n return this.exportInterfaces;\n };\n\n public getImportInterfaces = (): MyImportInterfaces => {\n if (this.importInterfaces) return this.importInterfaces;\n this.importInterfaces = createImportInterfaces(this.prototype.imports, this);\n return this.importInterfaces;\n };\n\n public isControlledByInterface = (componentName: Types.MyComponentNames): boolean => {\n return this.getExportInterfaces()?.isControlledByInterface(componentName) == true;\n };\n\n public getAssignedImport = <T extends Types.MyImportNames>(\n importName: T,\n ): Types.MyImports[T] | undefined => {\n if (\n this.prototype.imports?.[importName] &&\n Processor.isAssigned(this.prototype.imports[importName])\n ) {\n return this.prototype.imports[importName];\n }\n return undefined;\n };\n\n public getImportValue = <T extends Types.MyImportNames>(\n importName: T,\n ): Types.MyImports[T][\"payload\"] => {\n return this.getAssignedImport(importName)?.payload;\n };\n\n public filterImportBySetting = <T extends Types.MyImportNames = Types.MyImportNames>(\n populatedImports: Types.MyImports,\n importKey: T,\n optionFilter: (\n option: Processor.Option<Types.MyImports[T][\"payload\"]>,\n ) => boolean,\n ): Types.MyImports => {\n let filteredImports: Types.MyImports = {\n ...populatedImports,\n };\n if (populatedImports[importKey]) {\n filteredImports = {\n ...filteredImports,\n [importKey]: Processor.filterOptions(\n populatedImports[importKey],\n (option) => {\n return optionFilter(option);\n },\n ),\n };\n }\n return filteredImports;\n };\n\n public getComponentValue(componentName: string): any | undefined {\n return this.getAutoModuleAppModel().getComponentValue(componentName);\n }\n\n public isComponentValue = (componentName: Types.MyComponentNames): boolean => {\n const value = this.getComponentValue(componentName);\n return value === true || value === \"enabled\";\n };\n\n public getComponent = (\n componentName: Types.MyComponentNames,\n ): AutoModuleTypes.MyComponent | undefined => {\n return this.getAutoModuleAppModel().getComponent(componentName);\n };\n\n public getPCPHelper = (): PCPHelper => {\n return this.pcpHelper;\n };\n}\n","export type Dictionary<T> = Record<string, T>;\n\n/** @returns the non-prototype keys of the given object */\nexport const getKeys = (obj: object): string[] => {\n /* eslint-disable-line */\n return Object.getOwnPropertyNames(obj);\n};\n\nexport const values = <T = any>(obj: { [key: string]: T }): T[] => {\n return getKeys(obj).map((key: string): T => obj[key]);\n};\n\nexport const forEach = <T>(\n obj: Dictionary<T>,\n action: (key: string, value: T) => void,\n): void => {\n getKeys(obj).forEach((key: string): void => action(key, obj[key]));\n};\n\nexport const map = <T, R>(\n obj: Dictionary<T>,\n mapper: (key: string, value: T) => R,\n): R[] => {\n return getKeys(obj).map((key: string): R => mapper(key, obj[key]));\n};\n\ntype NonNullAssertion = <T>(val: T, msg?: string) => asserts val is NonNullable<T>;\n\nexport const assertNotNull: NonNullAssertion = <T>(\n val: T,\n msg?: string,\n): asserts val is NonNullable<T> => {\n if (val == null) {\n throw new Error(msg);\n }\n};\n\nexport const toDictionary = <T, V>(\n arr: T[],\n keyMapper: (input: T) => string,\n valueMapper: (input: T) => V,\n): Dictionary<V> => {\n const result: Dictionary<V> = {};\n arr.forEach((entry) => {\n result[keyMapper(entry)] = valueMapper(entry);\n });\n return result;\n};\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./generated_module/src/autoModule sync recursive\";","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n ModuleConfig as MyModuleConfig,\n MyComponent,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { getOptionByName } from \"@microchip/scf-device/lib/Setting\";\nimport { getConfigData } from \"./getConfigData\";\nimport { values } from \"../Utils\";\nimport { AppModel, MyHardware, MyState } from \"../types/AutoModuleTypes\";\nimport { getKeys } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { AutoModuleAppModel } from \"@microchip/scf-automodule-interface/lib/src/types\";\nimport { MyComponentNames } from \"../types\";\n\nexport const createAutoModuleAppModel = (\n model: AppModel,\n config?: MyModuleConfig,\n): MyAutoModuleAppModel => {\n return new MyAutoModuleAppModel(model, config);\n};\n\nexport class MyAutoModuleAppModel implements AutoModuleAppModel<MyComponentNames> {\n private model: AppModel;\n private state: MyState | undefined;\n private hardware: MyHardware | undefined;\n private config: MyModuleConfig;\n private componentList: any;\n private moduleName: string;\n\n constructor(model: AppModel, config?: MyModuleConfig) {\n this.model = model;\n this.state = this.model.getState();\n this.hardware = this.model.getHardware();\n this.config = getConfigData(model, config);\n this.componentList = this.createComponentList();\n }\n\n public getModuleName = (): string => {\n if (this.moduleName) return this.moduleName;\n\n this.moduleName =\n this.model.getDerivedFunctions().moduleName?.() ??\n (this.model.getComponentValue(\"componentName\") as string) ??\n this.model.getHardware()?.getName() ??\n this.config?.moduleName ??\n \"Module\";\n return this.moduleName;\n };\n\n private createComponentList = (): MyComponentValueList => {\n const componentList = {};\n\n const components: ModuleConfig.Component<\n MyComponentNames | string\n >[] = this.getComponentList(this.config);\n\n const componentsWithDynamicDependencySelectors = [\n ...components,\n ...this.getDefaultDependencySelectors(components),\n ];\n\n if (componentsWithDynamicDependencySelectors) {\n componentsWithDynamicDependencySelectors.forEach((component) => {\n componentList[component.name] = {\n component: component,\n };\n });\n }\n\n return componentList as MyComponentValueList;\n };\n\n private getDefaultDependencySelectors(\n components: ModuleConfig.Component<MyComponentNames | string>[],\n ): ModuleConfig.Component<MyComponentNames | string>[] {\n const dynamicDependencySelectors: ModuleConfig.Component<\n MyComponentNames | string\n >[] = [];\n\n let defaultTab = \"main\";\n let defaultGroup = \"software\";\n if (components.length > 0) {\n defaultTab = components[0].tabs[0];\n defaultGroup = components[0].group;\n }\n const imports = this.model.getImports();\n if (imports) {\n const importedNames = Object.keys(imports);\n\n importedNames.forEach((name) => {\n const dependencySelectors = components.filter(\n (component) =>\n component[\"importId\"] && component[\"importId\"] === name,\n );\n if (dependencySelectors.length === 0) {\n dynamicDependencySelectors.push({\n name: name + \" dependency selector\",\n importId: name,\n category: \"import\",\n type: \"ComboBox\",\n description: name + \" dependency selector\",\n group: defaultGroup,\n tabs: [defaultTab],\n });\n }\n });\n }\n\n return dynamicDependencySelectors;\n }\n\n public getAllComponents = (): MyComponentValueList => this.componentList;\n\n private getComponentList = (\n config?: MyModuleConfig,\n ): ModuleConfig.Component<MyComponentNames>[] => {\n const components: ModuleConfig.Component<MyComponentNames>[] = [];\n config = getConfigData(this.model, config);\n if (!config) return components;\n\n //Software Components\n values(config.softwareData ?? {})?.forEach((entry) => {\n components.push(entry);\n });\n\n //Hardware Components\n config.peripherals?.forEach((peripheral) => {\n if (peripheral.registers) {\n getKeys(peripheral.registers)?.forEach((registerName) => {\n peripheral.registers?.[registerName]?.forEach((setting) => {\n //Only add hardware components that exist at runtime\n const hardwareRegister = this.model.getHardware()?.getPeripheral()\n .registers?.[registerName];\n if (\n !hardwareRegister?.settings ||\n hardwareRegister.settings[setting.setting] ||\n hardwareRegister.type === \"register\"\n ) {\n components.push(setting);\n }\n });\n });\n }\n });\n\n //Custom Dynamic Components\n this.model\n .getDerivedFunctions()\n .getDynamicComponents?.()\n .forEach((component) => {\n components.push(component as ModuleConfig.Component<MyComponentNames>);\n });\n return components;\n };\n\n public isComponent(componentName: MyComponentNames): boolean | undefined;\n public isComponent(componentName: string): boolean | undefined;\n public isComponent(componentName: string): boolean | undefined {\n const component: ModuleConfig.Component<MyComponentNames> = this.componentList[\n componentName\n ]?.component;\n const componentValue = this.getComponentValue(componentName);\n if (component.category === \"software\") {\n if (component.type === \"boolean\") {\n return this.getComponentValue(componentName) as boolean;\n }\n return componentValue !== undefined;\n } else if (component.category === \"hardware\") {\n return componentValue === this.config.booleanValues.true;\n }\n return undefined;\n }\n\n public getComponentValue<T extends MyComponentNames = MyComponentNames>(\n componentName: T,\n ): MyComponent<T>[\"value\"] | undefined;\n public getComponentValue(\n componentName: string,\n ): MyComponent<any>[\"value\"] | undefined;\n public getComponentValue(\n componentName: string,\n ): MyComponent<any>[\"value\"] | undefined {\n return this.getComponent(componentName)?.value;\n }\n\n public getComponent<T extends MyComponentNames = MyComponentNames>(\n componentName: T,\n ): MyComponent<T> | undefined;\n public getComponent(componentName: string): MyComponent<any> | undefined;\n public getComponent(componentName: string): MyComponent<any> | undefined {\n if (this.componentList[componentName]?.value != undefined)\n return this.componentList[componentName];\n\n const component: ModuleConfig.Component<any> = this.componentList[componentName]\n ?.component;\n component?.tabs.forEach((tab) => {\n if (component) {\n if (component.category === \"software\") {\n this.componentList[\n componentName\n ].value = this.getSoftwareComponentValue(tab, component);\n } else if (component.category === \"hardware\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n this.model,\n component,\n );\n if (component.type === \"boolean\") {\n this.componentList[\n componentName\n ].value = this.getHardwareComponentBooleanValue(\n tab,\n component,\n setting,\n );\n } else {\n this.componentList[\n componentName\n ].value = this.getHardwareComponentValue(tab, component, setting);\n }\n } else if (component.category === \"import\") {\n this.componentList[\n componentName\n ].value = this.getDependencyComponentValue(component);\n }\n this.componentList[componentName].component.actions = this.getActions(\n component,\n );\n }\n });\n\n return this.componentList[componentName];\n }\n\n private getActions = (\n component: ModuleConfig.Component<MyComponentNames>,\n ): ModuleConfig.AutoAction | undefined => {\n return (\n this.model.getDerivedFunctions().getActions?.(component.name) ??\n component.actions\n );\n };\n\n public getDefaultComponentAction = (\n componentName: MyComponentNames,\n ): ModuleConfig.AutoAction => {\n const component = this.getComponent(componentName)?.component;\n return {\n type: \"[FORM] SUBMIT\",\n payload: {\n tabId: \"main\",\n path: `${component?.group}.${component?.name}`,\n value: \"%v\",\n },\n };\n };\n\n private getSoftwareComponentValue = (\n tab: string,\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n ): any => {\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n return (\n this.state?.[tab]?.[component.group]?.[component.name] ??\n AutoModuleHelper.getDefaultValue(\n this.model.getDerivedFunctions().overrideDefaultValues,\n component,\n )\n );\n };\n\n public getHardwareComponentValue = (\n tab: string,\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n setting: Setting | undefined,\n ): string | undefined => {\n if (!this.hardware) return undefined;\n\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n const overriddenCompValue = AutoModuleHelper.getOverrideDefaultValue(\n component,\n this.model,\n );\n\n let value: any; // value based on priority\n if (this.state?.[tab]?.[component.group]?.[component.name] != null) {\n value = this.state[tab][component.group][component.name];\n } else if (overriddenCompValue !== undefined) {\n value = overriddenCompValue;\n } else {\n value =\n setting !== undefined\n ? component.overrideDefaultValue\n ? component.overrideDefaultValue\n : this.getDefaultValue(component.displayOptionSetting, setting)\n : component.overrideDefaultValue ?? undefined;\n }\n\n //if filtered mode -> get options\n if (value != undefined && component.mode?.operation === \"filterOptions\") {\n const options = AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n this.model.getComponent(component.mode?.masterComponent)?.value,\n );\n if (options.indexOf(value) == -1) {\n value = options[0];\n }\n }\n return value;\n };\n\n public getHardwareComponentBooleanValue = (\n tab: string,\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n setting: Setting | undefined,\n ): string | undefined => {\n if (!this.hardware) return undefined;\n\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n\n const overriddenCompValue = AutoModuleHelper.getOverrideDefaultValue(\n component,\n this.model,\n );\n\n return this.state?.[tab]?.[component.group]?.[component.name] != null\n ? this.state[tab][component.group][component.name]\n ? this.config.booleanValues.true\n : this.config.booleanValues.false\n : overriddenCompValue !== undefined\n ? overriddenCompValue\n : setting !== undefined\n ? component.overrideDefaultValue\n ? component.overrideDefaultValue\n : this.getDefaultValue(component.displayOptionSetting, setting)\n : undefined;\n };\n\n public getDependencyComponentValue = (\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): string | undefined => {\n const dependencySelector: AutoModuleHelper.DependencySelector = new AutoModuleHelper.DependencySelector(\n this.model,\n component,\n );\n const imp = this.model.getImports()[component.importId];\n if (imp?.handle) {\n return dependencySelector.createOptionLabel(imp.handle, imp.payload);\n }\n return \"None\";\n };\n\n private getDefaultValue = (\n optionType: string | undefined,\n setting: Setting,\n ): string | undefined => {\n if (optionType == undefined) return setting.defaultValue;\n if (setting.defaultValue) {\n return getOptionByName(setting.defaultValue, setting)?.[optionType];\n }\n return undefined;\n };\n}\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport * as Creator from \"@microchip/scf-common/lib/Creator\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { isAssigned } from \"@microchip/scf-common/lib/Processor\";\nimport { getConfigData } from \"./getConfigData\";\nimport { map } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { Peripheral } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { getFriendlyInterfaceId } from \"./AutoModuleHelpers\";\n\nexport const createPrototypeImport = (\n interfaceName: string,\n config?: ModuleConfig,\n): Creator.Interface | undefined => {\n config = getConfigData(undefined, config);\n return config?.imports?.[interfaceName]?.import;\n};\n\nexport const isFullyAssigned = <T extends Processor.Imports = Processor.Imports>(\n imports: T,\n config?: ModuleConfig,\n): boolean => {\n config = getConfigData(undefined, config);\n\n //get peripheral interfaces.\n const interfaces = getHardwareInterfaces(config?.peripherals ?? []);\n\n for (let i = 0; i < interfaces.length; i++) {\n const imp = imports[interfaces[i]];\n if (!imp || !isAssigned(imp)) {\n return false;\n }\n }\n return true;\n};\n\n//Assumes hardware import keys are the same as the interface IDs\nconst getHardwareInterfaces = (peripherals: Peripheral[]): string[] => {\n const interfaces: string[] = map(peripherals, (peripheral) => {\n return getFriendlyInterfaceId(peripheral.interfaceId.name) ?? \"\";\n });\n return interfaces;\n};\n","/* eslint @typescript-eslint/no-var-requires: \"off\" */\nimport { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as Device from \"@microchip/scf-device\";\nimport { find, filter, map } from \"@microchip/scf-device/lib/util/Arrays\";\nimport CalculateRegisterValue from \"@microchip/scf-device/lib/CalculateRegisterValue\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { getOptionByAlias, getOptionByName } from \"@microchip/scf-device/lib/Setting\";\nimport { getConfigData } from \"./getConfigData\";\nimport { getKeys } from \"../Utils\";\nimport { MyComponentNames, MyPeripheral, Register } from \"../types\";\nimport {\n AppModel,\n ModuleConfig as MyModuleConfig,\n MyRegisterValues,\n} from \"../types/AutoModuleTypes\";\nimport {\n RegisterValue,\n SettingValue,\n} from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { SoftwareComboBoxComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\nimport { Import, Option } from \"@microchip/scf-common/lib/Processor\";\nimport { Handle } from \"@microchip/scf-common\";\n\nexport const castComponent = (\n component: ModuleConfig.Component<MyComponentNames>,\n): ModuleConfig.Component<MyComponentNames> => {\n switch (component.category) {\n case \"software\":\n return component;\n case \"import\":\n return component;\n case \"hardware\":\n return component;\n default:\n throw Error(\"Unsupported Component Type\");\n }\n};\n\nexport const getDefaultValue = (\n overrideDefaultValues: ((componentName: MyComponentNames) => any) | undefined,\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n): ModuleConfig.SoftwareComponent[\"defaultValue\"] => {\n return (\n overrideDefaultValues?.(component.name) ??\n (component.type === \"ComboBox\"\n ? component.defaultValue.value\n : component.defaultValue)\n );\n};\n\nexport const getComboOptions = (\n overrideOptions: ((componentName: MyComponentNames) => string[]) | undefined,\n component: SoftwareComboBoxComponent<MyComponentNames>,\n): any[] => {\n return overrideOptions?.(component.name) ?? component?.defaultValue?.[\"options\"];\n};\n\nexport const hasConfigBits = (interfaceName: string): boolean => {\n return getFriendlyInterfaceId(interfaceName)?.indexOf(\"configuration_bits\") != -1;\n};\n\nexport const getRegisterValues = (\n model: AppModel,\n interfaceName?: string,\n config?: MyModuleConfig,\n): MyRegisterValues => {\n const registers: MyRegisterValues = {} as MyRegisterValues;\n config = getConfigData(model, config);\n interfaceName = getFriendlyInterfaceId(interfaceName);\n\n config?.peripherals?.forEach((peripheral) => {\n const peripheralName = getFriendlyInterfaceId(peripheral.interfaceId.name) ?? \"\";\n if (hasConfigBits(peripheralName)) return;\n if (\n (interfaceName != undefined && peripheralName !== interfaceName) ||\n !peripheral.registers\n )\n return;\n getKeys(peripheral.registers ?? {})?.forEach((regName) => {\n let registerValue: RegisterValue<string>;\n const reg = model.getHardware(peripheralName)?.getPeripheral().registers?.[\n regName\n ];\n if (reg) {\n registerValue = {\n comment: \"\",\n value: 0,\n valueAsHex: \"0x00\",\n name: reg?.name,\n alias: reg?.alias ?? reg?.name,\n settings: {},\n };\n } else {\n return;\n }\n\n const registerVal = CalculateRegisterValue.for(reg as Device.Register);\n const comments: string[] = [];\n peripheral.registers?.[regName].forEach((set) => {\n const setting: Device.Setting | undefined = reg.settings?.[set.setting];\n if (setting) {\n if (setting.type !== \"R\") {\n //Add Comments\n comments.push(\n `${set.setting} ${model.getComponentValue(set.name)}; `,\n );\n }\n if (registerValue?.settings) {\n registerValue.settings[setting.alias] = getSettingBits(\n reg,\n setting,\n model.getComponent(set.name)?.value as string,\n config?.deviceType ?? \"PIC\",\n );\n }\n switch (set.type) {\n case \"ComboBox\":\n case \"boolean\":\n registerVal.withNumberValue(\n setting,\n getOptionValueByName(\n setting,\n model.getComponent(set.name)?.value as string,\n ) ?? 0,\n );\n break;\n case \"number\":\n registerVal.withNumberValue(\n setting,\n model.getComponentValue(set.name as string) as number,\n );\n break;\n case \"register\":\n case \"string\":\n registerVal.withNumberValue(\n setting,\n Number(model.getComponentValue(set.name)),\n );\n break;\n default:\n break;\n }\n }\n });\n if (reg.settings) {\n registerValue.value = registerVal.asNumber();\n } else {\n registerValue.value = Number(\n model.getComponentValue(\n peripheral.registers?.[regName]?.[0]?.name ?? \"\",\n ) ?? 0,\n );\n comments.push(`${registerValue.name} ${registerValue.value}; `);\n }\n registerValue.valueAsHex =\n \"0x\" + registerValue.value.toString(16).toUpperCase();\n registerValue.comment = sortComments(comments, reg);\n\n registers[reg?.alias ?? reg.name] = registerValue;\n });\n });\n\n return registers;\n};\n\nconst sortComments = (comments: string[], register: Register): string => {\n comments.sort((a, b): number => {\n const settingA = register.settings?.[a.split[\" \"]?.[0]];\n const settingB = register.settings?.[b.split(\" \")?.[0]];\n return Number(settingB?.mask) - Number(settingA?.mask);\n });\n\n return comments.join(\"\");\n};\n\nexport const getSettingBits = (\n register: Register,\n setting: Device.Setting,\n value: string,\n deviceType: string,\n): SettingValue => {\n const setValNumber = Number(getOptionByAlias(value, setting)?.value ?? 0);\n const settingValue: SettingValue = {\n alias: setting.alias,\n name: setting.name,\n value: setValNumber ?? 0,\n valueAsHex: \"0x\" + setValNumber.toString(16).toUpperCase(),\n valueAsDescription: value,\n bitName:\n deviceType === \"PIC\"\n ? `${register.name}bits.${setting.name}`\n : `${register.name}.${setting.name}`,\n };\n return settingValue;\n};\n\nconst getRegisterFromComponent = (\n hardware: MyPeripheral | undefined,\n component: ModuleConfig.HardwareComponent,\n): Register | undefined => {\n const registerName = component.name\n .replace(component.setting.toLowerCase(), \"\")\n ?.toUpperCase();\n const register = hardware?.registers?.[registerName];\n\n if (register) {\n return register;\n } else {\n const regName = component.name\n .replace(component.setting.toLowerCase(), \"\")\n ?.toUpperCase();\n let registers: string[] | undefined = getKeys(hardware?.registers ?? {});\n for (let reg of registers ?? []) {\n const modifiedRegName = reg.replace(/\\_/g, \"\");\n if (regName === modifiedRegName) {\n return hardware?.registers?.[reg];\n }\n }\n }\n};\n\nexport const getSettingFromComponent = (\n model: AppModel,\n component: ModuleConfig.HardwareComponent,\n config?: MyModuleConfig,\n): Device.Setting | undefined => {\n config = getConfigData(model, config);\n let setting: Device.Setting | undefined;\n\n if (model) {\n config?.peripherals?.forEach((peripheral) => {\n if (setting) return;\n const peripheralName = getFriendlyInterfaceId(peripheral.interfaceId.name);\n const hardware = model.getHardware(peripheralName, config)?.getPeripheral();\n const register = getRegisterFromComponent(hardware, component);\n if (register && !register.settings) {\n //No settings for this particular register. Create one\n setting = {\n alias: register.alias ?? register.name,\n name: register.name,\n defaultValue: register.defaultValue,\n type: register.type,\n description: register.desc,\n porDefault: register.defaultValue,\n };\n } else {\n setting = register?.settings?.[component.setting];\n }\n });\n }\n\n return setting;\n};\n\nexport const getOptionValueByName = (\n setting: Device.Setting,\n optionName: string,\n): number | undefined => {\n if (!setting) return undefined;\n\n let optionValue: string | undefined = setting.porDefault;\n if (setting.options) {\n setting.options.forEach((option) => {\n if (option.name === optionName || option.description === optionName) {\n optionValue = option.value;\n }\n });\n }\n return Number(optionValue);\n};\n\nexport const getSettingDefaultIfPresent = (\n component: ModuleConfig.HardwareComponent,\n setting: Setting | undefined,\n overrideDefaultValue: any | undefined,\n): string | undefined => {\n let defaultValue: string | undefined;\n if (overrideDefaultValue !== undefined) {\n return overrideDefaultValue;\n }\n if (component.overrideDefaultValue) {\n return component.overrideDefaultValue;\n }\n\n if (setting?.defaultValue) {\n const option = getOptionByName(setting.defaultValue, setting);\n defaultValue =\n option?.[component.displayOptionSetting ?? \"alias\"] ?? setting.defaultValue;\n }\n return defaultValue;\n};\nexport const getOverrideDefaultValue = (\n component: ModuleConfig.HardwareComponent,\n model: AppModel,\n): string | undefined => {\n return model.getDerivedFunctions().overrideDefaultValues?.(component.name);\n};\n\nexport const getSettingOptionsIfPresent = (\n component: ModuleConfig.HardwareComponent,\n setting: Device.Setting | undefined,\n masterComponentValue?: string,\n): string[] => {\n let options = [\"\"];\n\n if (setting) {\n const filteredOptions = component.mode\n ? filterModeOptions(setting.options ?? [], component, masterComponentValue)\n : setting.options;\n options = map(\n filteredOptions ?? [],\n (option) => option[component.displayOptionSetting ?? \"alias\"] ?? option.alias,\n );\n }\n return options;\n};\n\nconst filterModeOptions = (\n options: Device.Option[],\n component: ModuleConfig.Component,\n masterComponentValue?: string,\n): Device.Option[] => {\n if (component.mode?.operation != \"filterOptions\" || masterComponentValue == undefined)\n return options;\n //Determine mode\n const mode: string = find(\n getKeys(component.mode?.optionModes ?? {}) ?? [],\n (mode) => {\n const match = component.mode?.optionModes?.[mode];\n if (match) {\n return (masterComponentValue?.match(match)?.length ?? -1) > 0;\n }\n return false;\n },\n );\n const filteredOptions = filter(options ?? [], (option) => {\n if (option.mode) {\n const match = component.mode?.optionModes?.[mode];\n if (match) {\n return (option.mode.match(match)?.length ?? -1) > 0;\n }\n }\n return true;\n });\n return filteredOptions;\n};\n\nexport const getProcessedHandle = (\n handle: Handle | undefined,\n payload: Import[\"payload\"] | undefined,\n): Handle | undefined => {\n if (handle) {\n handle = {\n ...handle,\n label:\n payload?.moduleName ??\n payload?.name ??\n handle.label ??\n handle.providerId + \" : \" + handle.exportId,\n };\n }\n\n return handle;\n};\n\nexport interface DependencyDropdownOption {\n label: string;\n value?: Option<any, any>;\n}\nexport class DependencySelector {\n private noneSelection: DependencyDropdownOption = { label: \"None\" };\n private model: AppModel;\n private component: ModuleConfig.DependencyComponent<MyComponentNames>;\n\n constructor(\n model: AppModel,\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ) {\n this.model = model;\n this.component = component;\n }\n\n generateDropdownOptions(): DependencyDropdownOption[] {\n const dropdownOptions: DependencyDropdownOption[] = [];\n const thisImport: Import | undefined = this.model.getImports()[\n this.component.importId\n ];\n const options: Option<any, any>[] | undefined = thisImport?.options;\n\n if (this.shouldAllowUnselectDependency(thisImport, options)) {\n dropdownOptions.push(this.noneSelection);\n }\n if (options) {\n for (const option in options) {\n dropdownOptions.push(this.createOptionEntry(options[option]));\n }\n }\n\n return dropdownOptions;\n }\n\n getDropdownOptionNames(): string[] {\n const names: string[] = [];\n this.generateDropdownOptions().forEach((option) => names.push(option.label));\n return names;\n }\n\n private createOptionEntry = (option: Option): DependencyDropdownOption => {\n return {\n label: this.createOptionLabel(option.handle, option.payload),\n value: option,\n };\n };\n\n createOptionLabel = (handle: Handle, payload: Import[\"payload\"]): string => {\n return getProcessedHandle(handle, payload)?.label ?? \"\";\n };\n\n private shouldAllowUnselectDependency(\n thisImport: Import | undefined,\n options: Option<any, any>[] | undefined,\n ): boolean {\n return (\n thisImport != undefined &&\n thisImport.isUnassignable != false &&\n options !== undefined\n );\n }\n}\n\nexport function getModuleDefaultDescription(): string | undefined {\n const packageJson = require(\"../../../package.json\");\n let desc: string | undefined;\n if (packageJson) {\n desc = packageJson.scf?.description;\n } else {\n desc = undefined;\n }\n return desc;\n}\n\nexport const getFriendlyInterfaceId = (\n interfaceName: string | undefined,\n): string | undefined => {\n interfaceName = interfaceName?.replace(/ /g, \"\").replace(/-/g, \"_\");\n\n return interfaceName;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport {\n AppModel,\n TemplateSettings,\n ModuleConfig as MyModuleConfig,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport { ConfigValues } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { getConfigData } from \"./getConfigData\";\nimport { values, getKeys } from \"../Utils\";\nimport { isFullyAssigned } from \"./AutoModuleHardware\";\nimport { getComboOptions } from \"./AutoModuleHelpers\";\nimport { MyComponentNames } from \"../types\";\nimport { ComponentValueTypes } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { ComboBox } from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { SoftwareComboBoxComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\n\nexport const getTemplates = (\n model: AppModel | undefined,\n config?: MyModuleConfig,\n): Processor.Template[] => {\n config = getConfigData(model, config);\n\n const templates: Processor.Template[] = [];\n config?.templates?.forEach((template) => {\n const newTemplate: ModuleConfig.AutoTemplate = {\n ...template,\n };\n if (!model) return;\n\n newTemplate.dest =\n model.getDerivedFunctions().templateName?.(newTemplate.src) ??\n newTemplate.dest;\n\n newTemplate.dest = newTemplate.dest.replace(\n \"${sourceFileName}\",\n model.getName().toLowerCase() + \".c\",\n );\n newTemplate.dest = newTemplate.dest.replace(\n \"${headerFileName}\",\n model.getName().toLowerCase() + \".h\",\n );\n\n if (shouldGenerate(newTemplate, model)) {\n templates.push(newTemplate);\n }\n });\n\n return templates;\n};\n\nconst shouldGenerate = (\n template: ModuleConfig.AutoTemplate,\n model: AppModel,\n): boolean => {\n let shouldGenerate = true;\n if (!model) return shouldGenerate;\n if (\n shouldGenerate &&\n template.generateWithHardware == true &&\n !isFullyAssigned(model.getPrototypeModule().imports)\n ) {\n shouldGenerate = false;\n }\n if (\n shouldGenerate &&\n template.isGeneratableProperty &&\n model.getDerivedFunction(template.isGeneratableProperty) != true\n ) {\n shouldGenerate = false;\n }\n return shouldGenerate;\n};\n\nexport const getTemplatePayload = (\n model: AppModel | undefined,\n config?: MyModuleConfig,\n): any => {\n if (!model) return undefined;\n config = getConfigData(model, config);\n const moduleName = model.getName();\n\n let templatePayload = {\n name: {\n uppercase: moduleName.toUpperCase(),\n lowercase: moduleName.toLowerCase(),\n instance: moduleName,\n },\n filename: {\n source: `${moduleName.toLowerCase()}.c`,\n header: `${moduleName.toLowerCase()}.h`,\n },\n };\n\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n values(components)?.forEach((entry) => {\n templatePayload[entry.component.name] = getComponentPayload(\n entry.component,\n model,\n );\n });\n\n templatePayload = {\n ...templatePayload,\n ...getTemplateSettings(model, config),\n };\n\n return templatePayload;\n};\n\nexport const getTemplateSettings = (\n model: AppModel,\n config?: MyModuleConfig,\n): TemplateSettings | undefined => {\n if (!model?.getHardware()) return undefined;\n\n return {\n registers: model.getRegisterValues(undefined, config),\n interrupts: model.getHardware()?.getPeripheral().interrupts,\n properties: model.getHardware()?.getPeripheral().properties,\n };\n};\n\nexport const getConfigBits = (model: AppModel, config?: MyModuleConfig): ConfigValues => {\n config = getConfigData(model, config);\n const configModule: ModuleConfig.Peripheral<MyComponentNames> = find(\n config?.peripherals ?? [],\n (peripheral) => {\n return AutoModuleHelper.hasConfigBits(peripheral.interfaceId.name);\n },\n );\n if (configModule) {\n const interfaceName = AutoModuleHelper.getFriendlyInterfaceId(\n configModule.interfaceId.name,\n );\n let templateConfigBits: ConfigValues = {};\n const registers = model.getHardware(interfaceName)?.getPeripheral().registers;\n getKeys(registers ?? [])?.forEach((configName) => {\n const configBits = configModule.registers?.[configName];\n templateConfigBits = {\n ...templateConfigBits,\n [configName]: {},\n };\n configBits?.forEach((configBit) => {\n const register = registers?.[configName];\n let value: string;\n if (register && !register.settings) {\n //missing settings for register\n value = model.getComponent(configBit.name)?.value ?? \"\";\n } else {\n const setting: Setting | undefined =\n registers?.[configName]?.settings?.[configBit.setting];\n value = find(\n setting?.options ?? [],\n (option) =>\n option.description ===\n model.getComponent(configBit.name)?.value ||\n option.alias === model.getComponent(configBit.name)?.value ||\n option.name === model.getComponent(configBit.name)?.value,\n )?.name;\n }\n\n templateConfigBits[configName][configBit.setting] = {\n name: configBit.setting,\n value: value,\n description: configBit.description,\n valueAsDescription: model.getComponent(configBit.name)\n ?.value as string,\n };\n });\n });\n return templateConfigBits;\n } else {\n return {};\n }\n};\n\nconst getComponentPayload = (\n component: ModuleConfig.Component<MyComponentNames>,\n model: AppModel,\n): ComponentValueTypes | ComboBox => {\n const componentValue = model.getComponentValue(component.name);\n switch (component.type) {\n case \"ComboBox\":\n if (component.category === \"hardware\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n model,\n component,\n );\n return {\n value: componentValue,\n options: AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n model.getComponentValue(\n component.mode?.masterComponent ?? \"\",\n ) as string,\n ),\n };\n } else if (component.category === \"software\") {\n return {\n value: componentValue,\n options: getComboOptions(\n model.getDerivedFunctions().overrideOptions,\n component as SoftwareComboBoxComponent<MyComponentNames>,\n ),\n };\n }\n break;\n case \"boolean\":\n return model.isComponentValue(component.name);\n case \"number\":\n case \"string\":\n case \"register\":\n default:\n return componentValue;\n }\n};\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport {\n DependencyDropdownOption,\n DependencySelector,\n getModuleDefaultDescription,\n} from \"./AutoModuleHelpers\";\nimport { Setting } from \"@microchip/scf-device/lib/Setting\";\nimport {\n ActionsObject,\n CustomUiPropertiesWrapper,\n Error,\n SimpleFormPayload,\n SimpleFormPayloads,\n TableColumn,\n} from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { CreateRegisterView } from \"@microchip/scf-register-view-helper\";\nimport { isFullyAssigned } from \"./AutoModuleHardware\";\nimport { getConfigData } from \"./getConfigData\";\nimport { getKeys, values } from \"../Utils\";\nimport { Interrupt, Module, Register } from \"@microchip/scf-device\";\nimport {\n AppModel,\n ModuleConfig as MyModuleConfig,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport { MyComponentNames, MyImportNames } from \"../types\";\nimport { ExportArg } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { TableComponent } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { Handle, InterfaceId } from \"@microchip/scf-common\";\nimport {\n createTableUids,\n getCellValidationInfo,\n getCellStyle,\n calculateColumnWidth,\n getTableActions,\n getTableComponentSchema,\n getTableFormData,\n getTableUiSchema,\n} from \"../tables/tables\";\nimport { ComponentValue } from \"@microchip/scf-automodule-interface/lib/src/types\";\nimport { getAutoSdlHelp } from \"./ContextualHelp\";\nimport * as registerFilter from \"./RegisterFilterMode\";\nimport { DefaultPeripheral } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { SoftwareStringComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\nimport { Meta } from \"@microchip/scf-device/lib/Meta\";\n\nexport const createAutoViewPayloads = (\n model: AppModel,\n config?: MyModuleConfig,\n): SimpleFormPayloads<any> => {\n config = getConfigData(model, config);\n const payloads: SimpleFormPayloads<any> = {\n main: {},\n };\n if (config?.tabs) {\n Object.keys(config.tabs).forEach((tab) => {\n if (tab === \"register\") {\n payloads[tab] = createSimpleFormPayloadRegister();\n } else {\n payloads[tab] = {\n schema: createSchema(tab),\n uiSchema: createUiSchema(tab),\n formData: createFormData(tab),\n scfUiSchema: createScfUiSchema(tab),\n name: config?.tabs[tab],\n table: shouldPopulateView()\n ? model?.getDerivedFunction(\"getTableData\")\n : undefined,\n expandGroupsByDefault: config?.UIGroupCollapse\n ? config.UIGroupCollapse\n : true,\n };\n }\n });\n }\n return payloads;\n\n function createSchema(tab: string): any {\n let schema: any = {};\n if (config) {\n const populateView = shouldPopulateView();\n schema = {\n description:\n model?.getDerivedFunctions()?.getModuleDescription?.() ??\n getModuleDefaultDescription(),\n title: config.moduleName,\n type: \"object\",\n properties: {},\n };\n\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n const schemaBuilder = {\n properties: {},\n };\n values(components ?? {})?.forEach((entry) => {\n const component = entry.component;\n\n if (!populateView && component.category != \"import\") return; //always display imports\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (!schemaBuilder[component.group]) {\n schemaBuilder[component.group] = {\n title:\n model\n .getDerivedFunctions()\n .overrideGroupTitle?.(component.group) ??\n config?.UIGroups[component.group],\n description: model\n .getDerivedFunctions()\n .overrideGroupDescription?.(component.group),\n type: \"object\",\n properties: {},\n };\n }\n schemaBuilder[component.group].properties = {\n ...schemaBuilder[component.group].properties,\n ...getComponentSchema(component, tab),\n };\n });\n\n //Sort groups based on order of UIGroups and remove groups with no components\n getKeys(config.UIGroups ?? {})?.forEach((group) => {\n if ((getKeys(schemaBuilder[group]?.properties ?? {})?.length ?? -1) > 0) {\n schema.properties[group] = schemaBuilder[group];\n }\n });\n }\n return schema;\n }\n\n function createUiSchema(tab: string): any {\n const uiSchema = {};\n if (config) {\n if (config.UIOrder) {\n getKeys(config.UIOrder ?? {})?.forEach((group) => {\n uiSchema[group] = {\n \"ui:order\": config?.UIOrder?.[group],\n };\n });\n }\n //components\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n const isGroupHidden: Record<string, boolean> = {};\n\n values(components ?? {})?.forEach((entry) => {\n const component = entry.component;\n\n const tabIndex = component.tabs?.indexOf(tab) ?? -1;\n if (tabIndex === -1) return;\n\n const isComponentGroupHidden =\n isGroupHidden[component.group] === undefined ||\n isGroupHidden[component.group] === true;\n\n if (isComponentGroupHidden) {\n const isHidden: boolean =\n component.uiBehavior?.[\"ui:widget\"] === \"hidden\" ?? false;\n\n isGroupHidden[component.group] = isHidden;\n }\n\n if (component.category === \"table\") {\n const table: TableComponent = component;\n const tableCols = table.columns;\n const colNames: string[] = Object.keys(tableCols);\n const columns: TableColumn[] = [];\n const defaultColumnWidth: string = calculateColumnWidth(tableCols);\n colNames.forEach((name) => {\n const isColEditable = !tableCols[name].readonly;\n columns.push({\n dataField: name,\n editable: isColEditable ? undefined : false,\n columnWidth: tableCols[name].columnWidth\n ? tableCols[name].columnWidth + \"%\"\n : defaultColumnWidth,\n width: tableCols[name].width\n ? tableCols[name].width + \"%\"\n : defaultColumnWidth,\n dataSort: tableCols[name].isSortable,\n headerAlign:\n tableCols[name].headerAlign ??\n tableCols[name].dataAlign ??\n \"left\",\n dataAlign:\n tableCols[name].dataAlign ??\n tableCols[name].headerAlign ??\n \"left\",\n tdStyle: getCellStyle(tableCols[name].readonly),\n headerText: tableCols[name]?.[\"columnTip\"],\n });\n });\n uiSchema[table.group] = {\n ...uiSchema[table.group],\n [table.name]: getTableUiSchema(table, columns),\n };\n } else {\n uiSchema[component.group] = {\n ...uiSchema[component.group],\n [component.name]: {\n ...getUiBehavior(component),\n ...getUiSchemaExportArg(component.name),\n },\n };\n }\n });\n\n for (const group in isGroupHidden) {\n if (isGroupHidden[group]) {\n uiSchema[group] = {\n ...uiSchema[group],\n [\"ui:widget\"]: \"hidden\",\n };\n }\n }\n }\n return uiSchema;\n }\n\n function createFormData(tab: string): any {\n const formData: any = {};\n if (config) {\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n values(components)?.forEach((entry) => {\n if (!config) return;\n const component = entry.component;\n let value: any = model.getComponentValue(component.name);\n\n if (\n component.type === \"boolean\" &&\n (value === config.booleanValues.true ||\n value === config.booleanValues.false)\n ) {\n value = value === config.booleanValues.true;\n }\n\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (component.category === \"table\") {\n value = getTableFormData(model, component, tab);\n }\n formData[component.group] = {\n ...formData[component.group],\n [component.name]: value,\n };\n });\n }\n return formData;\n }\n\n function createScfUiSchema(tab: string): any {\n const scfUiSchema: CustomUiPropertiesWrapper = {};\n if (config) {\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n values(components)?.forEach((entry) => {\n const component = entry.component;\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (!scfUiSchema[component.group]) {\n scfUiSchema[component.group] = {};\n }\n if (!scfUiSchema[component.group][component.name]) {\n scfUiSchema[component.group][component.name] = {};\n }\n\n let actions: ActionsObject | ActionsObject[] | undefined =\n component.category === \"import\"\n ? getDependencySelectorActions(component)\n : getActions(component);\n\n const transformErrors: Error[] | undefined = model.getDerivedFunction(\n \"getCustomUiErrors\",\n component.name,\n );\n if (model.getImports()) {\n const deviceMeta: Meta = model.getImportValue(\"device_meta\");\n const hasSdlSupport: boolean = deviceMeta?.hasSdlSupport ?? false;\n if (component.sdlHelp && hasSdlSupport) {\n scfUiSchema[component.group][component.name][\"helpKeyword\"] =\n model.getDerivedFunction(\n \"getHelpUrl\",\n component.name,\n component.sdlHelp.url,\n ) ??\n getAutoSdlHelp(model, component.name, component.sdlHelp.url);\n scfUiSchema[component.group][component.name][\"tooltip\"] =\n component.sdlHelp?.tooltip ?? \"Click for more information\";\n }\n }\n if (component.category === \"table\") {\n const tableState = model?.getState()?.[tab]?.[component.group]?.[\n component.name\n ];\n const uids = createTableUids(component, tab, model, tableState);\n const cellValidationInfo = getCellValidationInfo(component);\n scfUiSchema[component.group][component.name][\"table\"] = {\n canRemoveRows: component.canRemoveRows,\n canInsertRows: component.canInsertRows,\n canAddRows: component.canAddRows,\n canMoveRowDown: component.canMoveRowDown,\n canMoveRowUp: component.canMoveRowUp,\n uids: uids,\n cellValidationInfo: cellValidationInfo,\n };\n actions = getTableActions(component, tab, model, uids);\n }\n if (actions) {\n scfUiSchema[component.group][component.name][\"actions\"] = actions;\n }\n if (transformErrors) {\n scfUiSchema[component.group][component.name][\n \"transformErrors\"\n ] = transformErrors;\n }\n });\n }\n return scfUiSchema;\n }\n function getDependencySelectorActions(\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): ActionsObject {\n const depSelector: DependencySelector = new DependencySelector(model, component);\n const options: DependencyDropdownOption[] = depSelector.generateDropdownOptions();\n const dependencySelectorActions: ImportAction[] = [];\n options.forEach((dropdownOption) => {\n const option = dropdownOption.value;\n dependencySelectorActions.push({\n type: \"[Import] SET\",\n payload: {\n importId: component.importId,\n handle: option?.handle,\n interfaceId: option?.interfaceId,\n option: dropdownOption.label,\n },\n });\n });\n return JSON.stringify(dependencySelectorActions);\n }\n\n function getActions(component: ModuleConfig.Component): ActionsObject | undefined {\n const actions: ModuleConfig.AutoAction | undefined = model.getDerivedFunction(\n \"getActions\",\n component.name,\n component.actions,\n );\n return JSON.stringify(actions); //TODO: support map\n }\n\n function shouldPopulateView(): boolean {\n if (displayViewOnImportAssigned() === false) return false;\n\n if (\n model.getDerivedFunctions().shouldPopulateViewAtStartup?.() === true ||\n isFullyAssigned(model.getPrototypeModule().imports)\n ) {\n return true;\n }\n return false;\n }\n\n function displayViewOnImportAssigned(): boolean {\n let shouldPopulateView = true;\n if (config?.displayViewOnImportAssigned) {\n config.displayViewOnImportAssigned.forEach((impKey) => {\n if (model.getAssignedImport(impKey as MyImportNames) == undefined) {\n shouldPopulateView = false;\n }\n });\n }\n return shouldPopulateView;\n }\n\n function getComponentSchema(\n component: ModuleConfig.Component<MyComponentNames>,\n tab: string,\n ): any {\n let schema = {};\n\n if (component.tabs.indexOf(tab) == -1) return schema;\n //check isVisible - user override\n const isVisible: boolean = model.getDerivedFunction(\"isVisible\", component.name);\n if (isVisible === false) {\n return schema;\n }\n if (\n component.isVisibleProperty &&\n model?.getDerivedFunction(component.isVisibleProperty) == false\n ) {\n return schema;\n }\n //check for modes\n if (isModeActive(\"isVisible\", component) === false) {\n return schema;\n }\n if (component.category === \"software\") {\n //add software component\n schema = getSoftwareComponentSchema(component);\n } else if (component.category === \"hardware\") {\n //add hardware component\n schema = getHardwareComponentSchema(component);\n } else if (component.category === \"import\") {\n schema = getDependencyComponentSchema(component);\n } else if (component[\"category\"] === \"table\") {\n //add table component\n schema = getTableComponentSchema(component, model);\n }\n if (schema == undefined) return schema;\n\n //add validator if present\n if (\n component.validation &&\n model &&\n model.getDerivedFunctions()[component.name + \"Validator\"]\n ) {\n schema = {\n ...schema,\n ...model.getDerivedFunctions()[component.name + \"Validator\"](),\n };\n }\n\n schema = {\n [component.name]: {\n ...schema,\n },\n };\n return schema;\n }\n\n function getSoftwareComponentSchema(\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n ): any {\n let schema = {};\n if (component.type === \"ComboBox\") {\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n default: AutoModuleHelper.getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n component,\n ),\n enum: AutoModuleHelper.getComboOptions(\n model.getDerivedFunctions().overrideOptions,\n component,\n ),\n };\n } else if (component.type === \"hex\") {\n schema = {\n type: \"integer\",\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n format: \"hex\",\n default: AutoModuleHelper.getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n component,\n ),\n };\n } else {\n schema = {\n type: component.type,\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n };\n if (isUrl(component) && component.urlDescription) {\n schema = {\n ...schema,\n description: component.urlDescription,\n };\n }\n if (isImage(component) && component.imageDescription) {\n schema = {\n ...schema,\n description: component.imageDescription,\n };\n }\n }\n return schema;\n }\n\n function getDependencyComponentSchema(\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): any {\n let schema = {};\n\n if (component.type === \"ComboBox\") {\n const dependencySelector: AutoModuleHelper.DependencySelector = new AutoModuleHelper.DependencySelector(\n model,\n component,\n );\n if (dependencySelector.getDropdownOptionNames().length <= 0) {\n return schema;\n }\n\n let dropdownOptions = dependencySelector.getDropdownOptionNames();\n const assignedImport = model\n .getImportInterfaces()\n .createProcessedImports(\"views\")?.[component.importId];\n const NONE = \"None\";\n let assignedName = NONE;\n if (assignedImport?.handle) {\n assignedName = dependencySelector.createOptionLabel(\n assignedImport.handle,\n assignedImport.payload,\n );\n dropdownOptions.push(assignedName);\n }\n dropdownOptions = dropdownOptions.sort(function (a, b) {\n return a.localeCompare(b);\n });\n dropdownOptions = [NONE, ...dropdownOptions.filter((item) => item !== NONE)];\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n default: assignedName,\n enum: dropdownOptions,\n };\n }\n return schema;\n }\n\n function getHardwareComponentSchema(\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n ): any {\n let schema = {};\n if (\n model &&\n model.getComponentValue(component.name) !== undefined &&\n component.type !== \"register\"\n ) {\n if (component.type === \"ComboBox\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n model,\n component,\n );\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n default: AutoModuleHelper.getSettingDefaultIfPresent(\n component,\n setting,\n model\n .getDerivedFunctions()\n .overrideDefaultValues?.(component.name),\n ),\n enum: AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n model.getComponentValue(\n component.mode?.masterComponent ?? \"\",\n ) as string,\n ),\n };\n } else {\n schema = {\n type: component.type,\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n };\n }\n }\n return schema;\n }\n\n function isModeActive(\n mode: ModuleConfig.ModeOperation,\n component: ModuleConfig.Component<MyComponentNames>,\n ): boolean | undefined {\n if (component?.mode?.operation !== mode) return undefined; //No mode selected\n\n const masterComponent = model.getComponent(component.mode.masterComponent);\n if (component.mode?.matchRegEx) {\n const value =\n masterComponent?.value?.toString()?.match(component.mode.matchRegEx)\n ?.length ?? 0;\n return value > 0;\n }\n return undefined;\n }\n\n function getUiSchemaExportArg(name: MyComponentNames): any {\n let uiSchema = {};\n if (model.isControlledByInterface(name)) {\n const expArg:\n | ExportArg\n | undefined = model.getExportInterfaces().getProcessedArgValue(name);\n if (expArg) {\n uiSchema = {\n \"ui:readonly\": true,\n \"ui:help\": \"Controlled by \" + expArg.interface,\n };\n }\n }\n return uiSchema;\n }\n\n function getUiBehavior(component: ModuleConfig.Component<MyComponentNames>): any {\n let uiBehavior = {};\n if (component.uiBehavior) {\n getKeys(component.uiBehavior ?? {})?.forEach((key) => {\n switch (key) {\n case \"readonly\":\n uiBehavior[\"ui:readonly\"] = component.uiBehavior?.[key];\n break;\n default:\n uiBehavior[key] = component.uiBehavior?.[key];\n break;\n }\n });\n }\n if (isUrl(component)) {\n uiBehavior[\"ui:widget\"] = \"url\";\n } else if (isImage(component)) {\n uiBehavior[\"ui:widget\"] = \"image\";\n }\n let overriddenBehavior: any = {};\n if (model) {\n const overriddenValue = model.getDerivedFunction(\n \"getUiBehavior\",\n component.name,\n );\n if (overriddenValue != undefined) {\n overriddenBehavior = {\n ...overriddenBehavior,\n ...overriddenValue,\n };\n if (getKeys(overriddenBehavior ?? {})?.indexOf(\"readonly\") != -1) {\n overriddenBehavior[\"ui:readonly\"] = overriddenBehavior[\"readonly\"];\n delete overriddenBehavior[\"readonly\"];\n }\n }\n const isEnabled =\n model.getDerivedFunction(\"isEnabled\", component.name) ??\n isModeActive(\"isEnabled\", component);\n if (isEnabled != undefined) {\n overriddenBehavior = {\n ...overriddenBehavior,\n [\"ui:readonly\"]: !isEnabled,\n };\n }\n const isVisible = model.getDerivedFunction(\"isVisible\", component.name);\n if (isVisible != undefined) {\n if (!isVisible) {\n overriddenBehavior = {\n ...overriddenBehavior,\n [\"ui:widget\"]: \"hidden\",\n };\n }\n }\n }\n uiBehavior = {\n ...uiBehavior,\n ...overriddenBehavior,\n };\n return uiBehavior;\n }\n\n function createSimpleFormPayloadRegister(): SimpleFormPayload<any> {\n if (!config?.peripherals) return {};\n\n const registerViewPayloads: SimpleFormPayload[] = [];\n\n config.peripherals.forEach((peripheral) => {\n if (AutoModuleHelper.hasConfigBits(peripheral.interfaceId.name)) return;\n let hardwarePeripheral: DefaultPeripheral | undefined = model\n .getHardware(peripheral.interfaceId.name)\n ?.getPeripheral();\n if (!hardwarePeripheral?.registers) return;\n\n const registerValues = model.getRegisterValues(\n peripheral.interfaceId.name,\n config,\n );\n\n const interrupts:\n | Partial<Record<string, Interrupt>>\n | undefined = model.getInterrupts();\n\n hardwarePeripheral = registerFilter.processRegisterModes(\n peripheral,\n hardwarePeripheral,\n model,\n );\n\n //TODO: implement for all peripherals\n const registerView = CreateRegisterView.for(hardwarePeripheral as Module);\n if (registerValues) {\n getKeys(registerValues ?? {})?.forEach((registerName) => {\n const foundRegister: Register = hardwarePeripheral?.registers?.[\n registerName\n ] as Register;\n if (foundRegister) {\n registerView.withRegisterValue(\n foundRegister,\n registerValues[registerName].value,\n );\n }\n });\n }\n for (const interruptsKey in interrupts ?? {}) {\n const interrupt: Interrupt | undefined = interrupts?.[interruptsKey];\n if (interrupt) {\n const interruptComponent:\n | ComponentValue<any>\n | undefined = model.getComponent(interruptsKey.toLowerCase());\n\n const interruptCompVal: string =\n typeof interruptComponent?.value === \"boolean\"\n ? interruptComponent?.value\n ? \"enabled\"\n : \"disabled\"\n : interruptComponent?.value;\n\n registerView\n .withInterruptValue(\n interrupt,\n interruptCompVal ?? interrupt.defaultValue ?? \"disabled\",\n )\n .withInterruptOptions(\n interrupt,\n interruptComponent?.component?.[\"defaultValue\"]?.options ?? [\n \"enabled\",\n \"disabled\",\n ],\n );\n }\n }\n registerViewPayloads.push(registerView.create());\n });\n\n return registerViewPayloads[0];\n }\n\n function isUrl(\n component: ModuleConfig.Component<MyComponentNames>,\n ): component is SoftwareStringComponent<MyComponentNames> {\n return (\n component.category === \"software\" &&\n component.type === \"string\" &&\n component.format === \"url\"\n );\n }\n\n function isImage(\n component: ModuleConfig.Component<MyComponentNames>,\n ): component is SoftwareStringComponent<MyComponentNames> {\n return (\n component.category === \"software\" &&\n component.type === \"string\" &&\n component.format === \"image\"\n );\n }\n};\n\ninterface ImportAction {\n type: \"[Import] SET\";\n payload: {\n importId: string;\n handle: Handle | undefined;\n interfaceId: InterfaceId | undefined;\n option: string;\n };\n}\n","import { Meta } from \"@microchip/scf-device/lib/Meta\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n/**\n * Returns the valid link for each component of a module\n *\n * @param dataModel - AppModel for current module\n * @param componentName - Current component under the module\n * @param helpUrl - Generic url\n * @returns Valid link to microchip docs\n */\nexport const getAutoSdlHelp = (\n dataModel: AppModel,\n componentName: string,\n helpUrl: string,\n): string => {\n const deviceMeta: Meta = dataModel.getImportValue(\"device_meta\");\n const deviceName = deviceMeta?.deviceName ?? \"\";\n const moduleName = dataModel.getHardware()?.getPeripheral()?.group ?? \"\";\n const dosid = dataModel.getHardware()?.getPeripheral()?.dosid ?? \"\";\n const comp: any = dataModel.getComponent(componentName)?.component ?? \"\";\n const setting = comp?.setting?.toLowerCase() ?? \"\";\n const registerName = componentName.toLowerCase().replace(setting, \"\");\n const registerAlias = registerName?.toUpperCase() ?? \"\";\n const deviceRegister =\n dataModel.getPeripheralDescription()?.registers?.[registerAlias]?.name ?? \"\";\n const register = registerAlias == deviceRegister ? registerAlias : deviceRegister;\n const url = helpUrl\n .replace(\"${deviceName}\", deviceName ?? \"\")\n .replace(\"${registerName}\", register ?? \"\")\n .replace(\"${moduleName}\", moduleName ?? \"\")\n .replace(\"${dosId}\", dosid ?? \"\");\n return url;\n};\n","import { Peripheral } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { DefaultPeripheral } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { getKeys } from \"../Utils\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n\nexport const processRegisterModes = (\n peripheral: Peripheral,\n hardwarePeripheral: DefaultPeripheral,\n model: AppModel,\n): DefaultPeripheral => {\n if (!hasModes(peripheral)) {\n return hardwarePeripheral;\n }\n const modifiedHardwarePeripheral = {\n ...hardwarePeripheral,\n registers: {\n ...hardwarePeripheral.registers,\n },\n };\n getKeys(peripheral?.registers ?? {})?.forEach((registerName) => {\n const settings = peripheral?.registers?.[registerName];\n let delFlag = false;\n settings?.forEach((setting) => {\n /* const mode = find(setting.tabs, (mode => {\n return mode === \"registerFilter\"\n })) */ // TODO : Multiple modes support\n if (setting?.mode?.operation === \"registerFilter\") {\n const targetStr = model?.getComponent(setting?.mode?.masterComponent)\n ?.value;\n const matchRegEx = new RegExp(setting?.mode?.matchRegEx ?? \"\");\n if (!matchRegEx.test(targetStr)) {\n const settingObj =\n modifiedHardwarePeripheral?.registers?.[registerName]?.settings?.[\n setting.setting\n ];\n if (settingObj !== undefined) {\n delete modifiedHardwarePeripheral?.registers?.[registerName]\n ?.settings?.[setting.setting];\n } else {\n delete modifiedHardwarePeripheral?.registers?.[registerName];\n }\n delFlag = true;\n }\n }\n });\n if (\n delFlag &&\n getKeys(modifiedHardwarePeripheral?.registers?.[registerName]?.settings ?? [])\n .length <= 0\n ) {\n delete modifiedHardwarePeripheral?.registers?.[registerName]?.settings;\n delete modifiedHardwarePeripheral?.registers?.[registerName];\n }\n });\n return modifiedHardwarePeripheral as DefaultPeripheral;\n};\n\nexport const hasModes = (peripheral: Peripheral): boolean => {\n let flag = false;\n getKeys(peripheral?.registers ?? {})?.forEach((registerName) => {\n const settings = peripheral?.registers?.[registerName];\n for (const setting of settings ?? []) {\n if (setting?.mode !== undefined) {\n flag = true;\n }\n }\n });\n return flag;\n};\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport { ModuleConfig as MyModuleConfig } from \"../types/AutoModuleTypes\";\nimport { toDictionary } from \"../Utils\";\nimport * as path from \"path\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\nimport { SoftwareComponent } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { MyComponentNames } from \"../types\";\n\nconst configPath = \"../../../src/moduleConfig.json\";\nlet config: MyModuleConfig = require(\"../../../src/moduleConfig.json\");\n\nexport const getConfigData = (\n model?: AppModel,\n newConfig?: MyModuleConfig,\n): MyModuleConfig => {\n if (!config || newConfig) {\n config = ConfigBuilder.for(newConfig)\n .withDynamicConfigData(model)\n .withDynamicComponents(model)\n .build();\n }\n\n return config;\n};\n\nconst getConfigFile = (configPath: string): MyModuleConfig => {\n try {\n return require(configPath);\n } catch {\n throw Error(\"Cannot find moduleConfig.json at: \" + configPath);\n }\n};\n\nclass ConfigBuilder {\n private config: MyModuleConfig;\n\n constructor(config: MyModuleConfig) {\n this.config = config;\n }\n\n public static fromNew = (): ConfigBuilder =>\n ConfigBuilder.fromPath(path.resolve(__dirname, configPath));\n\n public static fromPath = (path: string): ConfigBuilder => {\n if (!config) {\n config = getConfigFile(path);\n }\n return new ConfigBuilder(config);\n };\n\n public static for = (config?: MyModuleConfig): ConfigBuilder => {\n if (!config) return ConfigBuilder.fromNew();\n\n return new ConfigBuilder(config);\n };\n\n public build = (): MyModuleConfig => {\n return this.config;\n };\n\n public withDynamicConfigData = (model?: AppModel): ConfigBuilder => {\n return new ConfigBuilder(\n model?.getDerivedFunction(\"getDynamicConfigData\", this.config) ?? this.config,\n );\n };\n\n public withDynamicComponents = (model?: AppModel): ConfigBuilder => {\n const dynamicComponents = model?.getDerivedFunctions().getDynamicComponents?.();\n if (dynamicComponents) {\n const dynamicComponentMap = toDictionary(\n dynamicComponents,\n (component) => {\n this.config.UIGroups[component.group] =\n this.config.UIGroups[component.group] ?? component.group;\n return component.name;\n },\n (component) => component,\n );\n this.config.softwareData = {\n ...this.config.softwareData,\n ...(dynamicComponentMap as Record<\n string,\n SoftwareComponent<MyComponentNames>\n >),\n };\n }\n return new ConfigBuilder(this.config);\n };\n}\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { find, getKeys } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { InterfaceId } from \"@microchip/scf-common/lib/InterfaceId\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\nimport {\n ExportInterfaces,\n ExportArg,\n} from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { MyComponentNames, MyExportNames, MyExports, MyProcessedExports } from \"../types\";\nimport { AppModel, MyExportInterfaceTypes } from \"../types/AutoModuleTypes\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\n\nexport const createExportInterfaces = (\n exports: MyExports,\n model: AppModel,\n config?: ModuleConfig,\n): MyExportInterfaces => {\n return new MyExportInterfaces(exports, model, config);\n};\n\nexport class MyExportInterfaces\n implements ExportInterfaces<MyExports, MyExportNames, MyComponentNames> {\n private exports: MyExports;\n private model: AppModel;\n private config: ModuleConfig;\n private components: string[];\n\n constructor(exports: MyExports, model: AppModel, config?: ModuleConfig) {\n this.exports = exports;\n this.model = model;\n this.config = getConfigData(model, config);\n this.components = this.createComponentList();\n }\n\n public createProcessedExports = (): MyProcessedExports => {\n let exportPayload: MyProcessedExports = this.exports as MyProcessedExports;\n if (this.config && this.config.exports) {\n getKeys(this.config.exports ?? {})?.forEach((key) => {\n const exp = this.config.exports?.[key];\n exportPayload = {\n ...exportPayload,\n [key]: {\n ...this.config.exports?.[key],\n interfaces: [],\n name:\n this.model.getDerivedFunction(\"exportName\", key) ??\n exportPayload[key]?.name,\n },\n };\n exp?.interfaces.forEach((int) => {\n const processedInterface = this.getInterface(\n key as MyExportNames,\n int.interfaceId,\n );\n if (processedInterface) {\n exportPayload[key].interfaces.push({\n ...processedInterface,\n payload:\n this.model?.getDerivedFunction(\n int.interfaceId.name + \"_payload\",\n ) ?? {},\n payloads:\n this.model?.getDerivedFunction(\n int.interfaceId.name + \"_payloads\",\n ) ?? {},\n });\n }\n });\n });\n }\n return exportPayload;\n };\n\n public getInterface(\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes | undefined;\n public getInterface(\n interfaceKey: string,\n interfaceId: InterfaceId,\n ): Processor.Interface | undefined {\n if (!this.exports[interfaceKey]) return undefined;\n\n return find(\n this.exports[interfaceKey].interfaces ?? [],\n (i) => JSON.stringify(i.interfaceId) === JSON.stringify(interfaceId),\n );\n }\n\n public getInterfaceArgs = (\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes[\"args\"] | undefined => {\n return this.getInterface(interfaceKey, interfaceId)?.args;\n };\n\n public getInterfaceResults = (\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes[\"results\"] | undefined => {\n return this.getInterface(interfaceKey, interfaceId)?.results;\n };\n\n private createComponentList = (): string[] => {\n const componentList: string[] = [];\n const exports = this.config?.exports ?? {};\n getKeys(exports)?.forEach((key) => {\n const exp = exports[key];\n exp.interfaces.forEach((int) => {\n if (int.components) {\n componentList.push(...int.components);\n }\n });\n });\n\n return componentList;\n };\n\n public isControlledByInterface = (componentName: MyComponentNames): boolean => {\n return this.components.indexOf(componentName) != -1;\n };\n\n public getProcessedArgValue = (\n componentName: MyComponentNames,\n ): ExportArg | undefined => {\n let processedArgValue: ExportArg | undefined;\n const interfaceData: ExportArg[] | undefined = this.getInterfaceData();\n if (\n this.model &&\n this.model.getDerivedFunctions().getProcessedArgValue &&\n interfaceData != undefined\n ) {\n processedArgValue = this.model\n .getDerivedFunctions()\n ?.getProcessedArgValue?.(componentName, interfaceData);\n }\n return processedArgValue;\n };\n\n public getInterfaceData = (): ExportArg[] | undefined => {\n let argValues: ExportArg[] | undefined;\n const exports = this.config.exports ?? {};\n getKeys(exports)?.forEach((key: MyExportNames) => {\n const exp = exports[key];\n exp.interfaces.forEach((int) => {\n const args: Record<string, any> | undefined = this.getInterfaceArgs(\n key,\n int.interfaceId,\n );\n if (args) {\n getKeys(args)?.forEach((key) => {\n getKeys(args[key])?.forEach((arg) => {\n if (!argValues) argValues = [];\n argValues.push({\n interface: int.interfaceId.name,\n name: arg,\n value: args[key][arg],\n module: key,\n });\n });\n });\n }\n });\n });\n return argValues;\n };\n}\n\nexport const isInterface = (idA: InterfaceId, idB: InterfaceId): boolean => {\n return JSON.stringify(idA) === JSON.stringify(idB);\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\nimport { values, getKeys } from \"../Utils\";\nimport { MyComponentNames, MyImports } from \"../types\";\nimport {\n ImportInterfaces,\n ProcessorStages,\n} from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { AppModel, ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { getProcessedHandle } from \"../autoModule/AutoModuleHelpers\";\nimport { getDefaultInterruptActions } from \"../interrupts/InterruptActions\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\n\nexport const createImportInterfaces = (\n imports: MyImports,\n model: AppModel,\n config?: ModuleConfig,\n): MyImportInterfaces => {\n return new MyImportInterfaces(imports, model, config);\n};\n\nexport class MyImportInterfaces implements ImportInterfaces<MyImports> {\n private imports: MyImports;\n private model: AppModel;\n private config: ModuleConfig;\n\n constructor(imports: MyImports, model: AppModel, config?: ModuleConfig) {\n this.imports = imports;\n this.model = model;\n this.config = getConfigData(model, config);\n }\n\n public createProcessedImports = (stage: ProcessorStages): MyImports => {\n let processedImports = this.filterImports();\n getKeys(processedImports ?? {})?.forEach((key) => {\n processedImports = {\n ...processedImports,\n [key]: {\n ...processedImports[key],\n args:\n stage === \"arguments\"\n ? this.model?.getDerivedFunction(key + \"_args\")\n : processedImports[key]?.args,\n results:\n stage === \"results\"\n ? this.getResults(processedImports, key)\n : processedImports[key]?.results,\n name:\n this.model.getDerivedFunction(\"importName\", key) ??\n processedImports[key]?.name,\n handle: getProcessedHandle(\n processedImports[key].handle,\n processedImports[key].payload,\n ),\n options:\n this.getProcessedImportOptions(\n key,\n processedImports[key]?.options ?? [],\n ) ?? processedImports[key].options,\n },\n };\n });\n return processedImports;\n };\n\n public filterImports = (): MyImports => {\n const filteredImports: MyImports =\n this.model.getDerivedFunctions().filterImports?.(this.imports) ??\n this.imports;\n\n return filteredImports;\n };\n\n //Populates option labels with a custom module name if provided in export payload\n private getProcessedImportOptions = (\n importKey: string,\n options: Processor.Option[],\n ): Processor.Option[] => {\n const modifiedOptions: Processor.Option[] = [];\n options?.forEach((option, index) => {\n modifiedOptions[index] = {\n ...option,\n handle: {\n ...option.handle,\n label:\n this.model.getDerivedFunction(\n \"importOptionLabel\",\n importKey,\n option,\n ) ?? option.payload?.moduleName,\n },\n };\n });\n return modifiedOptions;\n };\n\n private getResults = (imports: MyImports, key: string): any | undefined => {\n const importResults = this.model?.getDerivedFunction(key + \"_results\");\n if (importResults) return importResults;\n const imp = imports[key];\n if (imp.interfaceId.name === \"initializer-system\") {\n const initResults = {\n initializer: {\n name: this.model.getName() + \"_Initialize\",\n header: this.model?.getDerivedFunction(\"headerFile\") ?? {\n name: this.model.getName().toLowerCase() + \".h\",\n path: \"include/\",\n },\n },\n };\n return initResults;\n } else if (imp.interfaceId.name === \"pin-standard\") {\n return this.model.getPCPHelper?.().getData();\n } else if (imp.interfaceId.name === \"interrupt-standard\") {\n const interrupts: any[] = [];\n let actions = {};\n const isHighPriority =\n this.model?.getImportValue(\"interrupt_standard\")?.isHighPriority ?? {};\n\n values(this.model.getHardware()?.getPeripheral().interrupts ?? {})?.forEach(\n (interrupt) => {\n if (!interrupt) return;\n const filterInterrupt: boolean =\n this.model\n .getDerivedFunctions()\n .filterInterrupts?.(interrupt.name) ?? true;\n\n if (filterInterrupt) {\n const interruptComponentName =\n this.getInterruptComponentName(interrupt.name) ??\n interrupt.name.toLowerCase() ??\n \"\";\n const isEnabled =\n this.model.isComponentValue(interruptComponentName ?? \"\") ??\n false;\n\n interrupts.push({\n //Standard\n name: interrupt.name ?? \"\",\n module:\n this.model.getHardware()?.getName() ??\n this.model.getName() ??\n \"\",\n isEnabled: isEnabled,\n\n //Callback Extension\n isrCallback: this.model\n ?.getDerivedFunctions()\n .isrCallback?.(interrupt.name) ?? {\n name: this.model.getName() + interrupt.handlerName,\n header: this.model\n ?.getDerivedFunctions()\n .headerFile?.() ?? {\n name: this.model.getName().toLowerCase() + \".h\",\n path: \"include/\",\n },\n },\n generateISR: isEnabled,\n\n //Priority Extension\n isHighPriority: isHighPriority[interrupt.name] ?? true,\n });\n\n const isEnableActions = (\n this.model\n .getDerivedFunctions()\n .getInterruptActions?.(interrupt.name, \"isEnabled\") ?? []\n ).concat(\n ...getDefaultInterruptActions(\n this.model,\n interruptComponentName as MyComponentNames | undefined,\n ),\n );\n const isEnableAction = find(\n isEnableActions,\n (action: any) => action[\"validFor\"] !== isEnabled,\n );\n\n actions = {\n ...actions,\n [interrupt.name]: {\n ...actions?.[interrupt.name],\n isEnabled: isEnableAction ? [isEnableAction] : [],\n },\n };\n }\n },\n );\n return {\n interruptList: interrupts,\n interruptActions: actions,\n moduleName: this.model.getName() ?? \"\",\n };\n } else if (imp.interfaceId.name === \"api-prefix-registration\") {\n const apiPrefixResults = {\n apiPrefix:\n this.model?.getDerivedFunctions()?.apiPrefix ??\n this.model?.getComponentValue(\"componentName\"),\n moduleName: this.model?.getName(),\n };\n return apiPrefixResults;\n }\n };\n\n private getInterruptComponentName = (\n interruptName: string,\n ): MyComponentNames | undefined => {\n return this.model.getDerivedFunctions()?.interruptComponentName?.(interruptName);\n };\n}\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n InterruptActions,\n InterruptActionsBuilderInterface,\n} from \"@microchip/scf-automodule-interface/lib/src/InterruptTypes\";\nimport { getSettingFromComponent } from \"../autoModule/AutoModuleHelpers\";\nimport { MyComponentNames } from \"../types\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n\nexport class InterruptActionsBuilder\n implements InterruptActionsBuilderInterface<MyComponentNames> {\n private actions: InterruptActions = [];\n private curComponent: ModuleConfig.Component | undefined;\n private curComponentName: MyComponentNames | undefined;\n private model: AppModel;\n private tableRowId: number | undefined;\n private tableRowCol: string | undefined;\n private tableCellPath: string | undefined;\n\n private constructor(model: AppModel) {\n this.model = model;\n }\n\n public static createActionBuilder = (model: AppModel): InterruptActionsBuilder =>\n new InterruptActionsBuilder(model);\n\n public createActionFor = (\n componentName: MyComponentNames | undefined,\n ): InterruptActionsBuilder => {\n this.actions = this.buildActions();\n\n this.curComponent = componentName\n ? this.model.getComponent(componentName)?.component\n : undefined;\n this.curComponentName = componentName;\n this.tableRowId = undefined;\n this.tableRowCol = undefined;\n this.tableCellPath = undefined;\n\n return this;\n };\n\n addActionIfEnabled = (\n actionValue: boolean | number | string | undefined,\n ): InterruptActionsBuilder => {\n if (!this.curComponentName || !this.curComponent) return this;\n\n if (!this.isActionValueAcceptable(this.curComponent, actionValue)) return this;\n\n let payload: any = {\n tabId: this.curComponent.tabs[0],\n value: actionValue,\n };\n\n if (this.curComponent.category === \"table\") {\n if (!this.tableCellPath) return this;\n\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}.${this.tableCellPath}`,\n rowId: this.tableRowId,\n };\n } else {\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}`,\n };\n }\n\n this.actions.push({\n validFor: true,\n action: {\n type: \"[FORM] SUBMIT\",\n payload: payload,\n },\n });\n\n return this;\n };\n\n addActionIfDisabled = (\n actionValue: boolean | number | string | undefined,\n ): InterruptActionsBuilder => {\n if (!this.curComponentName || !this.curComponent) return this;\n\n if (!this.isActionValueAcceptable(this.curComponent, actionValue)) return this;\n\n let payload: any = {\n tabId: this.curComponent.tabs[0],\n value: actionValue,\n };\n\n if (this.curComponent.category === \"table\") {\n if (!this.tableCellPath) return this;\n\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}.${this.tableCellPath}`,\n rowId: this.tableRowId,\n };\n } else {\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}`,\n };\n }\n\n this.actions.push({\n validFor: false,\n action: {\n type: \"[FORM] SUBMIT\",\n payload: payload,\n },\n });\n\n return this;\n };\n\n setPathToTableCell = (rowIndex: number, colName: string): InterruptActionsBuilder => {\n if (this.curComponent?.category !== \"table\") return this;\n\n this.tableRowId = rowIndex;\n this.tableRowCol = colName;\n this.tableCellPath = `${rowIndex}.${colName}`;\n\n return this;\n };\n\n private isActionValueAcceptable = (\n component: ModuleConfig.Component,\n actionValue: string | number | boolean | undefined,\n ): boolean => {\n if (component.category === \"hardware\") {\n if (component.type === \"ComboBox\") {\n const options = getSettingFromComponent(this.model, component)?.options;\n\n if (\n !options?.some(\n (option) =>\n option[component[\"displayOptionSetting\"] ?? \"alias\"] ===\n actionValue,\n )\n ) {\n return false;\n }\n } else if (component.type === \"boolean\") {\n // if (actionValue !== \"enabled\" && actionValue !== \"disabled\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n } else if (component.category === \"software\") {\n if (component.type === \"ComboBox\") {\n const options = component[\"options\"];\n\n if (!options?.some((option) => option === actionValue)) {\n return false;\n }\n } else if (component.type === \"boolean\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n } else if (component.category === \"table\") {\n if (!this.tableRowCol) return false;\n if (component.columns?.[this.tableRowCol]?.type === \"ComboBox\") {\n const options =\n component.columns?.[this.tableRowCol]?.defaultValue?.[\"options\"];\n\n if (!options?.some((option) => option === actionValue)) {\n return false;\n }\n } else if (component.columns?.[this.tableRowCol]?.type === \"boolean\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n buildActions = (): InterruptActions => {\n return this.actions;\n };\n}\n\nexport function getDefaultInterruptActions(\n model: AppModel,\n componentName: MyComponentNames | undefined,\n): InterruptActions {\n if (!componentName) return [];\n\n return (\n InterruptActionsBuilder.createActionBuilder(model)\n .createActionFor(componentName)\n .addActionIfEnabled(true)\n .addActionIfDisabled(false)\n // .addActionIfEnabled(\"enabled\")\n // .addActionIfDisabled(\"disabled\")\n .buildActions()\n );\n}\n","import { pin_row, intf_data } from \"@microchip/pin-standard\";\nimport {\n PCPHelper as PCPHelperInterface,\n PinCallbacks,\n} from \"@microchip/scf-automodule-interface/lib/src/pins\";\nimport { PCPStateActionBuilder } from \"./PCPStateActionBuilder\";\n\nconst getPinJsonObj = (): any => {\n try {\n return require(\"../../../src/pinsdata.json\");\n } catch (ex) {\n return { rows: [] };\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pinjsonobj = getPinJsonObj();\n\nexport class PCPHelper implements PCPHelperInterface {\n pinCallbacks: PinCallbacks | undefined = undefined;\n\n //TODO: Figure out if this needs to be in the interface\n public static stateActionBuilder(pinRow: pin_row): PCPStateActionBuilder {\n return new PCPStateActionBuilder(pinRow);\n }\n\n public setCallbacks(callbacks: PinCallbacks): void {\n this.pinCallbacks = callbacks;\n }\n\n private getAllFilteredRows = (allRows: pin_row[]): pin_row[] => {\n const validRows: pin_row[] = [];\n allRows.forEach((eachRow) => {\n const userRowData = this.userRowData(eachRow);\n // check the validity of user provided data\n if (userRowData && this.isRowValid(userRowData)) {\n validRows.push(userRowData);\n }\n });\n return validRows;\n };\n\n private isRowValid = (eachRow: pin_row): boolean => {\n if (\n eachRow?.name &&\n eachRow?.module &&\n eachRow?.function &&\n eachRow?.direction &&\n eachRow?.behaviour\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n private userRowData = (eachRow: pin_row): pin_row | undefined => {\n let eachrowret: pin_row | undefined = eachRow;\n if (this.pinCallbacks?.getRowData) {\n eachrowret = this.pinCallbacks.getRowData({ ...eachRow });\n }\n return eachrowret;\n };\n\n private getAllRows = (): pin_row[] => {\n let pinRows: pin_row[] = pinjsonobj?.rows;\n let userdata: any = {};\n if (this.pinCallbacks?.getCompletePinData) {\n userdata = this.pinCallbacks.getCompletePinData();\n if (userdata && userdata?.rows) {\n pinRows = userdata.rows;\n }\n }\n return pinRows;\n };\n\n public getData = (): intf_data => {\n const retData = {\n rows: this.getAllFilteredRows(this.getAllRows()),\n };\n return retData;\n };\n}\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n pin_state,\n pin_row,\n pin_attribs_enum,\n actiontype,\n} from \"@microchip/pin-standard\";\nimport { PCPStateActionBuilder as PCPStateActionBuilderInterface } from \"@microchip/scf-automodule-interface/lib/src/pins\";\n\ntype ActionData = {\n pinstate: pin_state;\n validFor: string;\n value: any;\n actiontype?: actiontype;\n};\n\ntype PinAttributes = {\n attribs: pin_attribs_enum[];\n};\n\nexport class PCPStateActionBuilder implements PCPStateActionBuilderInterface {\n component: ModuleConfig.Component;\n rowName: string;\n pinRow: pin_row;\n tabId: string;\n actionDataArr: ActionData[] = [];\n\n constructor(pinRow: pin_row) {\n this.pinRow = pinRow;\n this.tabId = \"main\";\n }\n\n rowWithName(rowName: string): PCPStateActionBuilder {\n this.rowName = rowName;\n return this;\n }\n\n /**\n *\n * @param tabId - default tabId is \"main\", please change this as per your needs.\n * @returns PCPStateActionBuilder\n */\n compWithTabId(tabId: string): PCPStateActionBuilder {\n this.tabId = tabId;\n return this;\n }\n\n addIfLockedSetValue(pinRegEx: string, value: any): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.LOCKED,\n validFor: pinRegEx,\n value: value,\n actiontype: actiontype.SETACTION,\n });\n return this;\n }\n\n addIfLockedProvideAttribs(\n pinRegEx: string,\n attribs: pin_attribs_enum[],\n ): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.LOCKED,\n validFor: pinRegEx,\n value: this.formAttribs(attribs),\n actiontype: actiontype.ATTRIBACTION,\n });\n return this;\n }\n\n addIfUnlockedProvideAttribs(\n pinRegEx: string,\n attribs: pin_attribs_enum[],\n ): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.UNLOCK,\n validFor: pinRegEx,\n value: this.formAttribs(attribs),\n actiontype: actiontype.ATTRIBACTION,\n });\n return this;\n }\n\n formAttribs(attribarray: pin_attribs_enum[]): PinAttributes {\n return {\n attribs: attribarray,\n };\n }\n\n addIfUnLockedSetValue(pinRegEx: string, value: any): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.UNLOCK,\n validFor: pinRegEx,\n value: value,\n actiontype: actiontype.SETACTION,\n });\n return this;\n }\n\n forComponent(component: ModuleConfig.Component): PCPStateActionBuilder {\n this.component = component;\n return this;\n }\n\n build(): any {\n const actionArr: any[] = [];\n\n if (this.pinRow.name === this.rowName) {\n this.actionDataArr.forEach((eachData: ActionData) => {\n actionArr.push({\n validFor: eachData.validFor,\n state: {\n [eachData.pinstate]: {\n type: \"[FORM] SUBMIT\",\n payload: {\n tabId: this.tabId,\n path: this.component.group + \".\" + this.component.name,\n value: eachData.value,\n },\n },\n },\n actiontype: eachData.actiontype ?? \"\",\n });\n });\n }\n\n return actionArr;\n }\n}\n/*\n PCPHelper\n .stateActionBuilder(rowData)\n .rowWithName(\"dacoutx\")\n .forComponent(dacOPEnCompo)\n .addIfLockedSetValue(\"DAC1OUT1\", \"DACOUT1 Enabled and DACOUT2 Disabled\")\n .addIfLockedSetValue(\"DAC1OUT2\", \"DACOUT2 Enabled and DACOUT1 Disabled\")\n .addIfUnLockedSetValue(\".*\", \"DACOUT1 and DACOUT2 are Disabled\")\n .build()\n*/\n","/* eslint-disable no-fallthrough */\n/*\n * @license:\n * © 2019 Microchip Technology Inc. and its subsidiaries.\n *\n * You may use this software and any derivatives exclusively with Microchip products.\n *\n * THIS SOFTWARE IS SUPPLIED BY MICROCHIP \"AS IS\". NO WARRANTIES, WHETHER EXPRESS,\n * IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF\n * NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS\n * INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE\n * IN ANY APPLICATION.\n *\n * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL\n * OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO\n * THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY\n * OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S\n * TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED\n * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.\n *\n * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE TERMS.\n */\nimport * as Types from \"./types\";\nimport * as AutoModuleTypes from \"./types/AutoModuleTypes\";\nimport { getModel } from \"./App/AppModel\";\nimport { getDerivedData as myDerivedData } from \"../../src/DerivedData\";\nimport { getConfigData } from \"./autoModule/getConfigData\";\nimport { createAutoViewPayloads } from \"./autoModule/AutoModuleView\";\nimport { getTemplates } from \"./autoModule/AutoModuleTemplates\";\nimport { ProcessorStages } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { getModuleDefaultDescription } from \"./autoModule/AutoModuleHelpers\";\n\n/**\n * Processor Stage Refactor\n * Step 1:\n * @param initialModule\n * @param stage\n */\nexport const process = (\n initialModule: AutoModuleTypes.MyModule,\n stage?: ProcessorStages,\n getDerivedData?: (dataModel: AutoModuleTypes.AppModel) => AutoModuleTypes.DerivedData,\n): AutoModuleTypes.MyProcessedModule => {\n // console.log(`Processor Stage: ${stage}`);\n // let time = Date.now();\n\n if (!getDerivedData) getDerivedData = myDerivedData;\n\n const model: AutoModuleTypes.AppModel | undefined = getModel(\n initialModule,\n getDerivedData,\n );\n if (!model) return initialModule as AutoModuleTypes.MyProcessedModule;\n\n let processedOutput: AutoModuleTypes.MyProcessedModule = {\n ...(initialModule as AutoModuleTypes.MyProcessedModule),\n };\n\n switch (stage) {\n case \"arguments\":\n processedOutput = {\n ...processedOutput,\n imports:\n (model\n .getImportInterfaces()\n .createProcessedImports(stage) as Types.MyImports) ??\n initialModule.imports,\n };\n break;\n case \"payloads\":\n processedOutput = {\n ...processedOutput,\n exports:\n (model\n .getExportInterfaces()\n .createProcessedExports() as Types.MyProcessedExports) ??\n initialModule.exports,\n name: model.getName(),\n help:\n model?.getDerivedFunctions()?.overrideModuleLevelHelp?.() ??\n getConfigData(model).help,\n };\n break;\n case \"results\":\n processedOutput = {\n ...processedOutput,\n imports:\n (model\n .getImportInterfaces()\n .createProcessedImports(stage) as Types.MyImports) ??\n initialModule.imports,\n };\n break;\n case \"views\":\n {\n const customTemplateData =\n model?.getDerivedFunctions().templateData?.() ?? {};\n const view = createAutoViewPayloads(model);\n processedOutput = {\n ...processedOutput,\n payload: {\n ...initialModule.payload,\n auto: view,\n customView: model\n ?.getDerivedFunctions()\n ?.getCustomView?.(initialModule),\n },\n templateData: customTemplateData,\n templates: getTemplates(model),\n alerts: model?.getDerivedFunctions().alerts?.(),\n name: model.getActiveName(),\n description:\n model?.getDerivedFunctions()?.getModuleDescription?.() ??\n getModuleDefaultDescription(),\n globalNames: model?.getDerivedFunctions()?.getGlobalNames?.() ?? [],\n };\n }\n break;\n default:\n return initialModule as AutoModuleTypes.MyProcessedModule;\n }\n // time = Date.now() - time;\n // console.log(`\\nProcessor Time: ${time}ms\\n`);\n return processedOutput;\n};\n","import { UidMap } from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { RowFormData } from \"./tables\";\n\nexport class UidMapBuilder {\n private uidMap: UidMap = {};\n\n public addDefaultRows(rowData: RowFormData[]): this {\n rowData.forEach((row, rowCount) => {\n this.uidMap[row.uid] = row.rowId ?? rowCount;\n });\n return this;\n }\n public addDynamicRows(tableState: RowFormData[]): this {\n tableState.forEach((row) => {\n const uid: string | undefined = row?.uid;\n if (uid && uid.indexOf(\"dynamicRow_\") > -1) {\n this.incrementUidAndShift(uid, row.rowId);\n }\n });\n return this;\n }\n\n public removeRows(tableState: RowFormData[]): this {\n tableState.forEach((row) => {\n const uid: string | undefined = row?.uid;\n if (uid && row?.dynamicallyRemoved) {\n this.uidMap[uid] = -1;\n }\n });\n return this;\n }\n public sortByValue(): this {\n let count = 0;\n let sortedUids: UidMap[] = [];\n\n this.getUidKeys().forEach((uid) => {\n sortedUids.push({ [uid]: this.uidMap[uid] });\n });\n sortedUids = sortedUids.sort(\n (a, b) => a[Object.keys(a)[0]] - b[Object.keys(b)[0]],\n );\n sortedUids.forEach((uid) => {\n const uidKey = Object.keys(uid)[0];\n if (this.uidMap[uidKey] > -1) {\n this.uidMap[uidKey] = count++;\n }\n });\n return this;\n }\n\n public create(): UidMap {\n return this.uidMap;\n }\n\n private incrementUidAndShift(uid: string, rowId: number): void {\n this.getUidKeys().forEach((uid) => {\n if (this.uidMap[uid] >= rowId) {\n this.uidMap[uid]++;\n }\n });\n this.uidMap[uid] = rowId;\n }\n\n private getUidKeys(): string[] {\n return Object.keys(this.uidMap);\n }\n}\n","import {\n ColumnBasic,\n ColumnComboBox,\n RowData,\n TableComponent,\n} from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport {\n ActionsObject,\n CellValidationInfo,\n TableAction,\n TableColumn,\n TableSchema,\n TableSchemaProperties,\n TableUiSchema,\n UidMap,\n} from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { AppModel, ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport { MyComponentNames } from \"../types\";\nimport { DerivedFunctions } from \"../types/AutoModuleTypes\";\nimport { UidMapBuilder } from \"./UidMapBuilder\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\n\nexport interface RowFormData {\n [key: string]: any;\n}\nexport interface Cell {\n rowId: number;\n columnName: string;\n value: any;\n}\nexport enum RowPrefix {\n Default = \"defaultRow_\",\n Dynamic = \"dynamicRow_\",\n}\nexport interface Columns {\n [key: string]: ColumnBasic | ColumnComboBox;\n}\n\nexport function overrideTableDefaultsWithChanges(\n rowChanged: RowFormData[],\n initialFormData: RowFormData[],\n uidMap: UidMap,\n): RowFormData[] {\n const value: RowFormData[] = [...initialFormData];\n\n if (Array.isArray(rowChanged)) {\n rowChanged.forEach((changedRow) => {\n const changedUid = changedRow.uid;\n const rowChangeNum = uidMap[changedUid];\n value[rowChangeNum] = { ...value[rowChangeNum], ...changedRow };\n });\n }\n return value;\n}\nexport function isTableInState(tabState: any, component: TableComponent): boolean {\n return (\n tabState && tabState[component.group] && tabState[component.group][component.name]\n );\n}\n\nexport function calculateColumnWidth(columns: Columns | undefined): string {\n return columns ? 100 / Object.keys(columns).length + \"%\" : \"auto\";\n}\n\nexport function getInitialTableFormData(\n table: TableComponent,\n columnNames: string[],\n model: AppModel,\n): RowFormData[] {\n let value: RowFormData[] = [];\n const tableFormData: RowFormData = {};\n columnNames.forEach((columnName) => {\n if (!tableFormData[columnName]) {\n tableFormData[columnName] = getDefaultValue(\n model.getDerivedFunctions().overrideTableDefaultValues,\n table.columns[columnName],\n columnName,\n table.name,\n );\n }\n });\n if (!table?.rowData) {\n value = createInitialRows(table, tableFormData);\n } else {\n let rowId = 0;\n table?.rowData.forEach((row) => {\n const rowDataCols: string[] = Object.keys(row);\n columnNames.forEach((colName) => {\n if (rowDataCols.indexOf(colName) === -1) {\n row = {\n ...row,\n [colName]: tableFormData[colName],\n uid: createRowUid(RowPrefix.Default, rowId),\n };\n }\n });\n\n value.push({\n ...row,\n rowId: rowId++,\n uid: createRowUid(RowPrefix.Default, rowId),\n });\n });\n }\n return value;\n}\nexport function createInitialRows(\n table: TableComponent,\n tableFormData: RowFormData = {},\n): RowData[] {\n const value: RowData[] = [];\n const initialRows = table?.defaultRowNum ?? 1;\n for (let i = 0; i < initialRows; i++) {\n value.push({\n ...tableFormData,\n rowId: i,\n uid: createRowUid(RowPrefix.Default, i),\n });\n }\n return value;\n}\nfunction createDefaultTableAction(\n component,\n row: number,\n column: string,\n tab: string,\n uid: string,\n): ModuleConfig.AutoAction {\n return {\n type: \"[Table] EDIT_CELL\",\n payload: {\n tabId: tab ?? \"main\",\n path: `${component?.group}.${component?.name}`,\n column: column,\n value: \"%v\",\n uid: uid,\n rowId: row,\n },\n };\n}\nexport function overrideCellValue(tableData: RowFormData[], cell: Cell): RowFormData[] {\n const modifiedTableData = [...tableData];\n modifiedTableData[cell.rowId][cell.columnName] = cell.value;\n return modifiedTableData;\n}\nexport function addRowsToTable(\n tableData: RowFormData[],\n columns: Columns,\n newRow: RowFormData,\n numberOfRows: number,\n): RowFormData[] {\n if (numberOfRows <= 0) {\n return tableData;\n }\n const value = addRowToTable(tableData, columns, {\n ...newRow,\n uid: RowPrefix.Dynamic + (numberOfRows - 1),\n });\n return addRowsToTable(value, columns, newRow, numberOfRows - 1);\n}\nexport function addRowToTable(\n tableData: RowFormData[],\n columns: Columns,\n newRow: RowFormData,\n): RowFormData[] {\n const columnNames: string[] = Object.keys(columns);\n const newRowCols: string[] = Object.keys(newRow);\n const newRowId: number = newRow.rowId;\n const defaultColumnWidth: string = calculateColumnWidth(columns);\n let filteredTableTemp: RowFormData[] = [];\n if (tableData.length === 0) {\n filteredTableTemp.push(newRow);\n return filteredTableTemp;\n }\n if (newRowId != null) {\n columnNames.forEach((colName) => {\n if (newRowCols.indexOf(colName) === -1) {\n newRow = {\n ...newRow,\n [colName]:\n columns[colName].defaultValue?.[\"value\"] ??\n columns[colName].defaultValue,\n columnWidth: columns[colName].columnWidth\n ? columns[colName].columnWidth + \"%\"\n : defaultColumnWidth,\n };\n }\n });\n const tableFirstHalf: RowFormData[] = tableData.slice(0, newRowId);\n const tableSecondHalf: RowFormData[] = tableData.slice(newRowId);\n for (let i = 0; i < tableSecondHalf.length; i++) {\n const currentRowId = tableSecondHalf[i].rowId;\n tableSecondHalf[i] = { ...tableSecondHalf[i], rowId: currentRowId + 1 };\n const actions: ModuleConfig.AutoAction = tableSecondHalf[i]?.actions;\n if (actions) {\n tableSecondHalf[i][\"actions\"] = updateActionsRowId(\n actions,\n currentRowId + 1,\n );\n }\n }\n tableFirstHalf.push(newRow);\n filteredTableTemp = [...tableFirstHalf, ...tableSecondHalf];\n return filteredTableTemp;\n }\n return tableData;\n}\n\nexport function removeRowFromTable(\n tableData: RowFormData[],\n rowId: number,\n): RowFormData[] {\n const tableRemoved = tableData.filter((row) => row.rowId !== rowId);\n for (let i = 0; i < tableRemoved.length; i++) {\n tableRemoved[i].rowId = i;\n const actions: ModuleConfig.AutoAction = tableRemoved[i]?.actions;\n if (actions) {\n tableRemoved[i][\"actions\"] = updateActionsRowId(actions, i);\n }\n }\n return tableRemoved;\n}\n\nfunction updateActionsRowId(\n currentActions: ModuleConfig.AutoAction,\n rowId: number,\n): ModuleConfig.AutoAction {\n const modifiedActions = { ...currentActions };\n const columnNames = Object.keys(currentActions);\n columnNames.forEach((columnName) => {\n const payload = modifiedActions[columnName]?.[\"payload\"];\n if (payload) {\n const path = payload[\"path\"].split(\".\");\n path[path.length - 2] = rowId;\n modifiedActions[columnName][\"payload\"][\"rowId\"] = rowId;\n modifiedActions[columnName][\"payload\"][\"path\"] = path.join(\".\");\n }\n });\n return modifiedActions;\n}\n\nexport function getTableFormData(\n model: AppModel,\n table: TableComponent,\n tab: string,\n): any {\n return (\n model.getDerivedFunction(table.name, table, model, tab) ??\n getValueBasedOnState(table, model, tab)\n );\n}\nexport function getValueBasedOnState(\n table: TableComponent,\n model: AppModel,\n tab: string,\n): RowFormData[] {\n const columnNames: string[] = Object.keys(table.columns);\n const modelState = model.getState();\n const tabState = modelState ? modelState[tab] : undefined;\n const initialFormData: RowFormData[] = getInitialTableFormData(\n table,\n columnNames,\n model,\n );\n if (!isTableInState(tabState, table)) {\n return initialFormData;\n } else {\n const rowChanged: RowFormData[] = tabState[table.group][table.name];\n const tableUids: UidMap = createTableUids(table, tab, model, rowChanged);\n return overrideDefaultsAndFilterRows(\n rowChanged,\n initialFormData,\n table.columns,\n tableUids,\n table,\n tab,\n );\n }\n}\n\nexport function overrideDefaultsAndFilterRows(\n rowChanged: RowFormData[],\n initialFormData: RowFormData[],\n columns: Columns,\n tableUids: any,\n component: TableComponent,\n tab: string,\n): RowFormData[] {\n const modifiedForData: RowFormData[] = [...initialFormData];\n\n const keys = Object.keys(tableUids);\n rowChanged = rowChanged.filter((row) => row != null);\n rowChanged.forEach((row) => {\n if (row.uid.indexOf(RowPrefix.Dynamic) > -1) {\n modifiedForData.push(row);\n }\n });\n let filteredModifed: RowFormData[] = [];\n keys.forEach((uid) => {\n modifiedForData.forEach((row) => {\n if (row.uid === uid) {\n filteredModifed[tableUids[uid]] = { ...initialFormData[0], ...row };\n }\n });\n });\n filteredModifed = filteredModifed.filter((row) => row);\n for (let i = 0; i < filteredModifed.length; i++) {\n if (filteredModifed[i].uid.indexOf(RowPrefix.Dynamic) > -1) continue;\n filteredModifed[i].rowId++;\n }\n for (let i = 0; i < modifiedForData.length; i++) {\n Object.keys(columns).forEach((columnName) => {\n modifiedForData[i].actions = updateActionsRowId(\n createDefaultTableAction(component, i, columnName, tab, tableUids),\n i,\n );\n });\n }\n return overrideTableDefaultsWithChanges(rowChanged, filteredModifed, tableUids);\n}\n\nexport function createTableUids(\n component: TableComponent,\n tab: string,\n model: AppModel | undefined,\n tableState: RowFormData[],\n): UidMap {\n const table: TableComponent = component;\n const dynamicTableData: RowData[] = model?.getDerivedFunction(\n component.name,\n component,\n model,\n tab,\n );\n\n if (dynamicTableData) {\n const uidMap: UidMap = {};\n let rowNum = 0;\n dynamicTableData.forEach((entry) => {\n const uid = entry?.uid;\n if (uid !== undefined) {\n uidMap[uid] = rowNum++;\n }\n });\n return uidMap;\n }\n\n let rowData: RowFormData[] | undefined = table[\"rowData\"];\n if (!dynamicTableData && rowData) {\n for (let i = 0; i < rowData.length; i++) {\n if (!rowData[i].uid) {\n rowData[i].uid = createRowUid(RowPrefix.Default, i);\n }\n rowData[i].rowId =\n find(tableState ?? [], (row) => row.uid === rowData?.[i].uid)?.rowId ??\n rowData[i].rowId;\n }\n } else {\n rowData =\n dynamicTableData ??\n createInitialRows(table).map((row) => {\n return {\n ...(row ?? {}),\n rowId:\n find(tableState ?? [], (r) => r.uid === row?.uid)?.rowId ??\n row.rowId,\n };\n });\n }\n return new UidMapBuilder()\n .addDefaultRows(rowData)\n .addDynamicRows(tableState ?? [])\n .removeRows(tableState ?? [])\n .sortByValue()\n .create();\n}\n\nexport function getCellValidationInfo(\n component: TableComponent,\n): Array<CellValidationInfo | undefined> {\n const table: TableComponent = component;\n const colInfo: Array<CellValidationInfo | undefined> = [];\n const columns = table.columns;\n\n for (const column in columns) {\n const colData: any = table.columns[column];\n let info: CellValidationInfo | undefined;\n if (colData[\"cellValidator\"]) {\n info = {\n type: colData[\"type\"],\n minValue: colData[\"cellValidator\"][\"minValue\"],\n maxValue: colData[\"cellValidator\"][\"maxValue\"],\n errMessage: colData[\"cellValidator\"][\"errorMessage\"],\n errTitle: colData[\"cellValidator\"][\"errorTitle\"],\n cValidation: colData[\"cellValidator\"][\"cValidation\"],\n cValidationErrTitle: colData[\"cellValidator\"][\"cValidationErrorTitle\"],\n cValidationErrMessage:\n colData[\"cellValidator\"][\"cValidationErrorMessage\"],\n };\n }\n colInfo.push(info);\n }\n\n return colInfo;\n}\n\nexport function getTableActions(\n component: TableComponent,\n tab: string,\n model: AppModel | undefined,\n uids: any,\n rowFormData?: RowFormData[],\n): ActionsObject {\n const table: TableComponent = component;\n let dynamicTableData: RowFormData[] | undefined;\n if (!rowFormData) {\n dynamicTableData = model?.getDerivedFunction(\n component.name,\n component,\n model,\n tab,\n );\n }\n\n const rowData =\n rowFormData ?? dynamicTableData ?? table[\"rowData\"] ?? createInitialRows(table);\n const columnNames: string[] = Object.keys(table.columns);\n const tableActions = { table: {} };\n let rowCount = 0;\n const tableState = model?.getState()?.[tab]?.[component.group]?.[component.name];\n\n rowData.forEach((row) => {\n columnNames.forEach((columnName) => {\n if (!tableActions[\"table\"][row.uid]) {\n tableActions[\"table\"][row.uid] = {};\n }\n let uid;\n for (const uidsKey in uids) {\n if (uids[uidsKey] === row.rowId) {\n uid = uidsKey;\n }\n }\n uid = uid ?? createRowUid(RowPrefix.Default, rowCount);\n let defaultAction: ModuleConfig.AutoAction = createDefaultTableAction(\n component,\n rowCount,\n columnName,\n tab,\n uid,\n );\n\n if (tableState) {\n let ind = -1;\n const filtered = tableState.filter(function (row, index) {\n ind = index;\n return row.uid === uid;\n });\n if (filtered.length) {\n defaultAction = createDefaultTableAction(\n component,\n ind,\n columnName,\n tab,\n uid ?? createRowUid(RowPrefix.Default, rowCount),\n );\n }\n }\n if (component.columns[columnName].type == \"ComboBox\") {\n defaultAction[\"payload\"] = {\n ...defaultAction[\"payload\"],\n options: getComboOptions(\n model?.getDerivedFunctions()?.overrideTableOptions,\n table.columns[columnName],\n columnName,\n component.name,\n ),\n };\n }\n const cellAction: ModuleConfig.AutoAction | undefined =\n row.actions?.[columnName] ?? defaultAction;\n\n tableActions[\"table\"][row.uid][columnName] =\n model?.getDerivedFunction(\"getActions\", table.name, cellAction) ??\n cellAction;\n });\n rowCount++;\n });\n const uidKeys = Object.keys(uids);\n uidKeys.forEach((uidKey) => {\n columnNames.forEach((columnName) => {\n if (uids[uidKey] > -1) {\n if (!tableActions[\"table\"][uidKey]) {\n tableActions[\"table\"][uidKey] = {};\n tableActions[\"table\"][uidKey][columnName] = createDefaultTableAction(\n table,\n uids[uidKey],\n columnName,\n tab,\n uidKey,\n );\n } else if (!tableActions[\"table\"][uidKey][columnName]) {\n tableActions[\"table\"][uidKey][columnName] = createDefaultTableAction(\n table,\n uids[uidKey],\n columnName,\n tab,\n uidKey,\n );\n }\n }\n });\n });\n return JSON.stringify(tableActions);\n}\nexport function getTableUiSchema(\n table: TableComponent,\n columns: TableColumn[],\n): TableUiSchema {\n let tableUi: any = {\n tableCols: columns,\n search: table[\"isSearchable\"],\n striped: true,\n bordered: false,\n };\n if (table[\"canRemoveRows\"]) {\n tableUi = {\n ...tableUi,\n rightActions: getTableRightActions(),\n };\n }\n if (table[\"canInsertRows\"]) {\n tableUi = {\n ...tableUi,\n leftActions: getTableLeftActions(),\n };\n }\n if (table.canMoveRowDown) {\n tableUi = {\n ...tableUi,\n leftActions: (tableUi.leftActions ?? []).concat(getTableMoveRowActions()[0]),\n };\n }\n if (table.canMoveRowUp) {\n tableUi = {\n ...tableUi,\n leftActions: (tableUi.leftActions ?? []).concat(getTableMoveRowActions()[1]),\n };\n }\n\n return {\n \"ui:field\": \"table\",\n className: \"col-md-12 individualComponent\",\n table: { ...tableUi },\n };\n}\nexport function getTableComponentSchema(\n component: TableComponent<MyComponentNames>,\n model: AppModel,\n): TableSchema {\n const tableColumns: TableSchemaProperties = {};\n for (const columnsKey in component.columns) {\n let rjsfType;\n if (component.columns[columnsKey].type === \"ComboBox\") {\n const colBox: ColumnComboBox = component.columns[\n columnsKey\n ] as ColumnComboBox;\n rjsfType = \"string\";\n tableColumns[columnsKey] = {\n type: rjsfType,\n title: colBox.title,\n default: getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n colBox,\n columnsKey,\n component.name,\n ),\n enum: getComboOptions(\n model.getDerivedFunctions().overrideTableOptions,\n colBox,\n columnsKey,\n component.name,\n ),\n };\n } else {\n rjsfType = component?.columns[columnsKey]?.type;\n tableColumns[columnsKey] = {\n type: rjsfType,\n title: component.columns[columnsKey].title,\n default: component.columns[columnsKey].defaultValue,\n };\n }\n }\n return {\n type: \"array\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n items: {\n type: \"object\",\n properties: {\n ...tableColumns,\n },\n },\n };\n}\n\nconst getDefaultValue = (\n overrideDefaultValues: DerivedFunctions[\"overrideTableDefaultValues\"],\n component: ColumnComboBox | ColumnBasic,\n componentName: string,\n tableName: string,\n): ModuleConfig.SoftwareComponent[\"defaultValue\"] => {\n return (\n overrideDefaultValues?.(tableName, componentName) ??\n (component.type === \"ComboBox\"\n ? component.defaultValue.value\n : component.defaultValue)\n );\n};\n\nconst getComboOptions = (\n overrideOptions: DerivedFunctions[\"overrideTableOptions\"],\n component: ColumnComboBox | ColumnBasic,\n componentName: string,\n tableName: string,\n): any[] => {\n const dynamicOptions: any[] | undefined = overrideOptions?.(tableName, componentName);\n return dynamicOptions && dynamicOptions.length > 0\n ? dynamicOptions\n : component?.defaultValue?.[\"options\"];\n};\n\nfunction getTableLeftActions(): TableAction[] {\n return [\n {\n dataField: \"insert-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nfunction getTableRightActions(): TableAction[] {\n return [\n {\n dataField: \"delete-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nfunction getTableMoveRowActions(): TableAction[] {\n return [\n {\n dataField: \"row-down-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n {\n dataField: \"row-up-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nexport function getCellStyle(isReadonly: boolean | undefined): CellStyles {\n const tdStyle = {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n };\n if (isReadonly) {\n tdStyle[\"backgroundColor\"] = \"#EEEEEE\";\n }\n return tdStyle;\n}\n\nexport function createRowUid(prefix: RowPrefix, postfix: number): string {\n return prefix + postfix;\n}\n\ninterface CellStyles {\n [styleAttribute: string]: string;\n}\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InterfaceTypes = __importStar(require(\"@microchip/scf-interface\"));\nvar pkgJson = __importStar(require(\"../package.json\"));\nexports.getInterfaceId = function () {\n return {\n name: InterfaceTypes.getInterfaceName(pkgJson),\n version: InterfaceTypes.getInterfaceVersion(pkgJson),\n };\n};\nvar createMock = function () {\n return {\n interfaceId: exports.getInterfaceId(),\n payload: {\n calculatedCanSpeed_Hz: 20000000,\n },\n args: {\n requestId: {\n requestedCanSpeed_Hz: 20000000,\n },\n },\n };\n};\nvar createPrototypeImport = function () {\n return {\n interfaceId: exports.getInterfaceId(),\n };\n};\nvar createPrototypeExport = function () {\n return {\n interfaces: [{ interfaceId: exports.getInterfaceId() }],\n };\n};\nexports.Interface = {\n createPrototypeExport: createPrototypeExport,\n createPrototypeImport: createPrototypeImport,\n getInterfaceId: exports.getInterfaceId,\n createMock: createMock,\n};\n//# sourceMappingURL=canfd-clock-interface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar canfd_clock_interface_1 = require(\"./canfd-clock-interface\");\nexports.Interface = canfd_clock_interface_1.Interface;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pin_standard_1 = require(\"./pin-standard\");\nexports.pin_standard = pin_standard_1.pin_standard;\nexports.pin_state = pin_standard_1.pin_state;\nexports.direction = pin_standard_1.direction;\nexports.behaviour = pin_standard_1.behaviour;\nexports.data_schema = pin_standard_1.data_schema;\nexports.pin_attribs_enum = pin_standard_1.pin_attribs_enum;\nexports.actiontype = pin_standard_1.actiontype;\nexports.QueryAdapterKey = pin_standard_1.QueryAdapterKey;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pin_standard = function () {\n return {\n interfaceId: {\n name: \"pin-standard\",\n version: \"0.1.0\",\n },\n };\n};\nvar QueryAdapterKey;\n(function (QueryAdapterKey) {\n QueryAdapterKey[\"ALLPINS\"] = \"allpins\";\n QueryAdapterKey[\"PPS\"] = \"pps\";\n QueryAdapterKey[\"PORTMUX\"] = \"portmux\";\n})(QueryAdapterKey = exports.QueryAdapterKey || (exports.QueryAdapterKey = {}));\nvar pin_state;\n(function (pin_state) {\n pin_state[\"EMPTY\"] = \"E\";\n pin_state[\"LOCKED\"] = \"L\";\n pin_state[\"UNLOCK\"] = \"UL\";\n pin_state[\"DiSABLE_LOCK\"] = \"DL\";\n pin_state[\"UNLOCKED_DISABLED\"] = \"DUL\";\n pin_state[\"LOCKED_LINK\"] = \"LL\";\n pin_state[\"UNLOCKED_MUX\"] = \"MUL\";\n pin_state[\"LOCKED_CONFLICT\"] = \"CL\";\n})(pin_state = exports.pin_state || (exports.pin_state = {}));\nvar pin_interrupts_enum;\n(function (pin_interrupts_enum) {\n pin_interrupts_enum[\"INTDIS_BUFFEN\"] = \"INTDIS_BUFFEN\";\n pin_interrupts_enum[\"BOTH_EDGES\"] = \"BOTH_EDGES\";\n pin_interrupts_enum[\"RISING_EDGE\"] = \"RISING_EDGE\";\n pin_interrupts_enum[\"FALLING_EDGE\"] = \"FALLING_EDGE\";\n pin_interrupts_enum[\"NONE\"] = \"NONE\";\n pin_interrupts_enum[\"LOW_LEVEL\"] = \"LOW_LEVEL\";\n})(pin_interrupts_enum = exports.pin_interrupts_enum || (exports.pin_interrupts_enum = {}));\nvar pin_attribs_enum;\n(function (pin_attribs_enum) {\n pin_attribs_enum[\"aliasReEx\"] = \"aliasReEx\";\n pin_attribs_enum[\"cname\"] = \"cname\";\n pin_attribs_enum[\"high\"] = \"high\";\n pin_attribs_enum[\"inv\"] = \"inv\";\n pin_attribs_enum[\"wpu\"] = \"wpu\";\n pin_attribs_enum[\"od\"] = \"od\";\n pin_attribs_enum[\"analog\"] = \"analog\";\n pin_attribs_enum[\"ioc\"] = \"ioc\";\n pin_attribs_enum[\"intcallback\"] = \"intcallback\";\n pin_attribs_enum[\"alias\"] = \"alias\";\n})(pin_attribs_enum = exports.pin_attribs_enum || (exports.pin_attribs_enum = {}));\nvar actiontype;\n(function (actiontype) {\n actiontype[\"SETACTION\"] = \"SETACTION\";\n actiontype[\"ATTRIBACTION\"] = \"ATTRIBACTION\";\n})(actiontype = exports.actiontype || (exports.actiontype = {}));\nvar direction;\n(function (direction) {\n direction[\"output\"] = \"output\";\n direction[\"input\"] = \"input\";\n direction[\"bidirectional\"] = \"bidirectional\";\n})(direction = exports.direction || (exports.direction = {}));\nvar behaviour;\n(function (behaviour) {\n behaviour[\"LOCK_UNLOCK\"] = \"LOCK_UNLOCK\";\n behaviour[\"ALWAYS_LOCKED\"] = \"ALWAYS_LOCKED\";\n behaviour[\"SINGLE_PIN_MUX\"] = \"SINGLE_PIN_MUX\";\n behaviour[\"OPTIONAL_PIN_MUX\"] = \"OPTIONAL_PIN_MUX\";\n behaviour[\"PPS\"] = \"PPS\";\n behaviour[\"PORTMUX\"] = \"PORTMUX\";\n behaviour[\"EXCLUSIVE_LOCK\"] = \"EXCLUSIVE_LOCK\";\n})(behaviour = exports.behaviour || (exports.behaviour = {}));\n//------------------------------------ schema ------------------------------------//\nexports.data_schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $ref: \"#/definitions/intf_data\",\n definitions: {\n intf_data: {\n type: \"object\",\n properties: {\n rows: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_row\",\n },\n },\n },\n required: [\"rows\"],\n additionalProperties: false,\n },\n pin_row: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n module: {\n type: \"string\",\n },\n function: {\n type: \"string\",\n },\n direction: {\n $ref: \"#/definitions/direction\",\n },\n filter: {\n $ref: \"#/definitions/filter\",\n },\n behaviour: {\n $ref: \"#/definitions/behaviour\",\n },\n behaviourMeta: {\n $ref: \"#/definitions/behaviourMeta\",\n },\n attribs: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_attribs\",\n },\n },\n groupsdata: {\n $ref: \"#/definitions/pingroups_data\",\n },\n actions: {},\n },\n required: [\"name\", \"module\", \"function\", \"direction\", \"filter\", \"behaviour\"],\n additionalProperties: false,\n },\n direction: {\n type: \"string\",\n enum: [\"output\", \"input\", \"bidirectional\"],\n },\n filter: {\n type: \"object\",\n properties: {\n module: {\n type: \"string\",\n },\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"module\", \"aliasReEx\"],\n additionalProperties: false,\n },\n behaviour: {\n type: \"string\",\n enum: [\n \"LOCK_UNLOCK\",\n \"ALWAYS_LOCKED\",\n \"SINGLE_PIN_MUX\",\n \"OPTIONAL_PIN_MUX\",\n \"PPS\",\n \"PORTMUX\",\n \"EXCLUSIVE_LOCK\",\n ],\n },\n behaviourMeta: {\n type: \"object\",\n properties: {\n lockPinRegEx: {\n type: \"string\",\n },\n },\n required: [\"lockPinRegEx\"],\n additionalProperties: false,\n },\n pin_attribs: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n cname: {\n type: \"string\",\n },\n high: {\n type: \"boolean\",\n },\n inv: {\n type: \"boolean\",\n },\n wpu: {\n type: \"boolean\",\n },\n od: {\n type: \"boolean\",\n },\n analog: {\n type: \"boolean\",\n },\n ioc: {\n $ref: \"#/definitions/pin_interrupts_enum\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n pin_interrupts_enum: {\n type: \"string\",\n enum: [\n \"INTDIS_BUFFEN\",\n \"BOTH_EDGES\",\n \"RISING_EDGE\",\n \"FALLING_EDGE\",\n \"NONE\",\n \"LOW_LEVEL\",\n ],\n },\n pingroups_data: {\n type: \"object\",\n properties: {\n groups: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pins_group\",\n },\n },\n },\n required: [\"groups\"],\n additionalProperties: false,\n },\n pins_group: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n filter: {\n $ref: \"#/definitions/grpfilter\",\n },\n datapath: {\n type: \"string\",\n },\n },\n required: [\"name\", \"filter\"],\n additionalProperties: false,\n },\n grpfilter: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n },\n};\n//# sourceMappingURL=pin-standard.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AlertTypes;\n(function (AlertTypes) {\n AlertTypes[\"Error\"] = \"error\";\n AlertTypes[\"Warning\"] = \"warning\";\n AlertTypes[\"Hint\"] = \"hint\";\n})(AlertTypes = exports.AlertTypes || (exports.AlertTypes = {}));\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction hasOptions(dep) {\n return dep.options !== undefined;\n}\nexports.hasOptions = hasOptions;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isAssigned(dep) {\n return typeof dep.handle !== \"undefined\";\n}\nexports.isAssigned = isAssigned;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isUnassigned(dep) {\n return typeof dep.handle === \"undefined\";\n}\nexports.isUnassigned = isUnassigned;\n/**\n * Type guard function for SingletonExport\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n * @param resource the export to check on being a singleton\n * @deprecated No longer used. Replaced with dynamic singleton identification\n * at runtime.\n */\nfunction isSingleton(resource) {\n return typeof resource.isSingleton !== \"undefined\" && resource.isSingleton;\n}\nexports.isSingleton = isSingleton;\n/**\n * Returns a copy of `populatedImport` with all options removed which\n * cause `optionFilter` to return false.\n */\nfunction filterOptions(populatedImport, optionFilter) {\n if (populatedImport.options) {\n return __assign({}, populatedImport, { options: populatedImport.options.filter(optionFilter) });\n }\n return populatedImport;\n}\nexports.filterOptions = filterOptions;\n/**\n * Returns a copy of `populatedImport` with the options' handle labels\n * mapped according to `labelFactory`.\n */\nfunction mapOptionLabels(populatedImport, labelFactory) {\n if (populatedImport.options) {\n return __assign({}, populatedImport, { options: populatedImport.options.map(function (option) {\n return __assign({}, option, { handle: __assign({}, option.handle, { label: labelFactory(option) }) });\n }) });\n }\n return populatedImport;\n}\nexports.mapOptionLabels = mapOptionLabels;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Setting_1 = require(\"./Setting\");\nvar Register_1 = require(\"./Register\");\nvar Arrays_1 = require(\"./util/Arrays\");\n/** Builder pattern */\nvar CalculateRegisterValue = /** @class */ (function () {\n function CalculateRegisterValue(register) {\n var _this = this;\n this.modifiedSettings = [];\n /** Assign a numerical value to the given `Setting`. */\n this.withNumberValue = function (setting, value) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign number value to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new NumberSettingValue(setting, value)\n ]);\n return _this;\n };\n /** Assign the given `Option` to the given `Setting`. */\n this.withOption = function (setting, option) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n if (!_this.getOption(setting, option)) {\n throw new Error(\"Option \" + option.name + \" is not present in Setting \" + setting.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new OptionSettingValue(setting, option)\n ]);\n return _this;\n };\n /** Assign the `Option` matching the given alias to the given `Setting`. */\n this.withOptionAlias = function (setting, optionAlias) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option alias to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByAlias(optionAlias, setting);\n if (option === undefined) {\n throw new Error(\"Option Alias: \\\"\" + optionAlias + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given name to the given `Setting`. */\n this.withOptionName = function (setting, optionName) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option name to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByName(optionName, setting);\n if (option === undefined) {\n throw new Error(\"Option Name: \\\"\" + optionName + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given description to the given `Setting`. */\n this.withOptionDescription = function (setting, optionDescription) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option description to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByDescription(optionDescription, setting);\n if (option === undefined) {\n throw new Error(\"Option Description: \\\"\" + optionDescription + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n this.getSetting = function (setting) {\n return Register_1.getSettingByAlias(setting.alias, _this.register);\n };\n this.getOption = function (setting, option) {\n return Setting_1.getOptionByName(option.name, setting);\n };\n this.calculate = function () {\n var registerValue = 0;\n _this.modifiedSettings.forEach(function (modifiedSetting) {\n registerValue = _this.setValue(modifiedSetting, registerValue);\n });\n var unmodifiedSettings = _this.getUnmodifiedSettings();\n unmodifiedSettings.forEach(function (unmodifiedSetting) {\n registerValue = _this.setValue(SettingValue.defaultValue(unmodifiedSetting), registerValue);\n });\n return Number(registerValue);\n };\n this.setValue = function (setting, registerValue) {\n var value = registerValue;\n value &= ~setting.getMask(); // Clear bits\n value |= setting.getShiftedValue(); // Set bits\n return value;\n };\n this.getUnmodifiedSettings = function () {\n var _a;\n var modifiedSettingNames = Arrays_1.map(_this.modifiedSettings, function (setting) { return setting.getName(); });\n return Arrays_1.filter((_a = Arrays_1.values(_this.register.settings)) !== null && _a !== void 0 ? _a : [], function (setting) { return modifiedSettingNames.indexOf(setting.name) < 0; });\n };\n /** Calculate and print the register's value as a hex string. */\n this.asHexString = function () { return CalculateRegisterValue.toHexString(_this.calculate()); };\n /** Calculate and print the register's value as a binary string. */\n this.asBinaryString = function () { return CalculateRegisterValue.toBinaryString(_this.calculate()); };\n /** Calculate and print the register's value as a decimal string. */\n this.asDecimalString = function () { return CalculateRegisterValue.toDecimalString(_this.calculate()); };\n /** Calculate and return the register's value as a number. */\n this.asNumber = function () { return _this.calculate(); };\n this.register = register;\n }\n /** Creates a register value calculation object for the given register. */\n CalculateRegisterValue.for = function (register) {\n return new CalculateRegisterValue(register);\n };\n /** Format the given number as a hex string value. */\n CalculateRegisterValue.toHexString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toHexString() illegal argument exception. Value must not be null.\");\n }\n return \"0x\" + value.toString(16);\n };\n /** Format the given number as a binary string value. */\n CalculateRegisterValue.toBinaryString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toBinaryString() illegal argument exception. Value must not be null.\");\n }\n return \"0b\" + value.toString(2);\n };\n /** Format the given number as a decimal string value. */\n CalculateRegisterValue.toDecimalString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toDecimalString() illegal argument exception. Value must not be null.\");\n }\n return value.toString();\n };\n return CalculateRegisterValue;\n}());\nexports.default = CalculateRegisterValue;\nvar SettingValue = /** @class */ (function () {\n function SettingValue(setting) {\n var _this = this;\n this.getMask = function () { return Number(_this.setting.mask); };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getShiftedValue = function () { return _this.getValue() << _this.getShift(); };\n this.getName = function () { return _this.setting.name; };\n this.setting = setting;\n }\n SettingValue.defaultValue = function (setting) {\n var value = Number(setting.porDefault);\n return new NumberSettingValue(setting, value);\n };\n return SettingValue;\n}());\nvar NumberSettingValue = /** @class */ (function (_super) {\n __extends(NumberSettingValue, _super);\n function NumberSettingValue(setting, value) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return _this.value; };\n _this.value = value;\n return _this;\n }\n return NumberSettingValue;\n}(SettingValue));\nvar OptionSettingValue = /** @class */ (function (_super) {\n __extends(OptionSettingValue, _super);\n function OptionSettingValue(setting, option) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return Number(_this.option.value); };\n _this.option = option;\n return _this;\n }\n OptionSettingValue.fromDefaultValue = function (setting, value) {\n var foundValueByName = Setting_1.getOptionByName(value, setting);\n if (foundValueByName)\n return new OptionSettingValue(setting, foundValueByName);\n var foundValueByAlias = Setting_1.getOptionByAlias(value, setting);\n if (foundValueByAlias)\n return new OptionSettingValue(setting, foundValueByAlias);\n throw new Error(\"Unable to create default value '\" + value + \"' for setting '\" + setting.name + \"'.\");\n };\n return OptionSettingValue;\n}(SettingValue));\n//# sourceMappingURL=CalculateRegisterValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSettingByAlias = void 0;\nexports.getSettingByAlias = function (alias, register) {\n return register.settings[alias];\n};\n//# sourceMappingURL=Register.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionDescriptions = exports.getOptionNames = exports.getOptionByDescription = exports.getOptionByName = exports.getOptionByAlias = void 0;\nvar Arrays_1 = require(\"./util/Arrays\");\nexports.getOptionByAlias = function (alias, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.alias == alias; });\n};\nexports.getOptionByName = function (name, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name == name; });\n};\nexports.getOptionByDescription = function (description, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description == description; });\n};\nexports.getOptionNames = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name; });\n};\nexports.getOptionDescriptions = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description; });\n};\n//# sourceMappingURL=Setting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.values = exports.getKeys = exports.find = exports.filter = exports.map = void 0;\nexports.map = function (arr, callback) {\n var result = [];\n arr.forEach(function (value, index) {\n result[index] = callback(value);\n });\n return result;\n};\nexports.filter = function (arr, callback) {\n var result = [];\n arr.forEach(function (value) {\n if (callback(value)) {\n result.push(value);\n }\n });\n return result;\n};\n/**\n * Iterates over elements of the array, returning the first element that the predicate returns truthy for.\n */\nexports.find = function (arr, callback) {\n for (var i = 0; i < arr.length; i++) {\n if (callback(arr[i])) {\n return arr[i];\n }\n }\n return undefined;\n};\n/** @returns the non-prototype keys of the given object */\nexports.getKeys = function (obj) {\n if (!obj)\n return undefined;\n return Object.getOwnPropertyNames(obj);\n};\nexports.values = function (obj) {\n if (!obj)\n return undefined;\n return exports.getKeys(obj).map(function (key) { return obj[key]; });\n};\n//# sourceMappingURL=Arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildSimpleApi = function (functions) {\n var api = {};\n for (var key in functions) {\n api[key] = buildFunction(functions[key]);\n }\n return api;\n};\nvar buildFunction = function (cFunction) {\n return cFunction.returns + \" \" + cFunction.name + \"(\" + buildArguments(cFunction.arguments) + \")\";\n};\nvar buildArguments = function (args) {\n if (args) {\n return args.map(function (arg) { return arg.type + \" \" + arg.name; }).join(\", \");\n }\n else {\n return \"void\";\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInterfaceName = function (pkgJson) {\n var strReplace = \"@microchip/\";\n var interfaceName;\n if (pkgJson) {\n interfaceName = pkgJson[\"name\"];\n if (interfaceName) {\n interfaceName = interfaceName.replace(strReplace, \"\");\n }\n }\n if (!interfaceName) {\n throw new Error(\"Invalid Interface Name...!\");\n }\n return interfaceName;\n};\nexports.getInterfaceVersion = function (pkgJson) {\n var versionRegex = new RegExp(\"\\\\d+.\\\\d+.\\\\d+\");\n var version;\n if (pkgJson) {\n version = pkgJson[\"version\"];\n }\n if (!version && !versionRegex.test(version)) {\n throw new Error(\"Invalid Interface Version...!\");\n }\n return version;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar c_function_types_1 = require(\"./c-function-types\");\nexports.buildSimpleApi = c_function_types_1.buildSimpleApi;\nvar helpers_1 = require(\"./helpers\");\nexports.getInterfaceName = helpers_1.getInterfaceName;\nexports.getInterfaceVersion = helpers_1.getInterfaceVersion;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateRegisterView = void 0;\nvar CalculateRegisterValue_1 = __importDefault(require(\"@microchip/scf-device/lib/CalculateRegisterValue\"));\nvar Arrays_1 = require(\"@microchip/scf-device/lib/util/Arrays\");\nvar ViewSchemaBuilder_1 = require(\"./ViewSchemaBuilder\");\nvar Model_1 = require(\"./Model\");\nvar throwError = function (message) {\n throw new Error(message);\n};\nvar CreateRegisterView = /** @class */ (function () {\n function CreateRegisterView(module) {\n var _this = this;\n this.registers = [];\n this.interrupts = [];\n /** Create a register view */\n this.create = function () {\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n title: \"Register Settings\",\n type: \"object\",\n })\n .withTabName(\"Register Initialization\")\n .withExpandedDefault(false);\n _this.registers.forEach(function (reg) {\n schemaBuilder.addChildComponent(reg.getRegister().name, _this.createRegisterView(reg));\n });\n schemaBuilder.addChildComponent(\"interrupts\", _this.createInterruptView());\n return schemaBuilder.build();\n };\n /** Assign a numerical value to the given register. */\n this.withRegisterValue = function (register, value) {\n _this.getSafeRegisterViewModel(register).setValue(value);\n return _this;\n };\n /** Assign a string value to the given interrupt. */\n this.withInterruptValue = function (interrupt, value) {\n _this.getSafeInterruptViewModel(interrupt).setValue(value);\n return _this;\n };\n /** Assign the interrupt combobox options. */\n this.withInterruptOptions = function (interrupt, options) {\n _this.getSafeInterruptViewModel(interrupt).setOptions(options);\n return _this;\n };\n /** Make all settings in all registers editable */\n this.withAllEditable = function () {\n _this.registers.forEach(function (register) {\n return _this.withEditableRegister(register.getRegister());\n });\n _this.interrupts.forEach(function (interrupt) {\n _this.withEditableInterrupt(interrupt.getInterrupt());\n });\n return _this;\n };\n /** Make all settings in the given register editable */\n this.withEditableRegister = function (register) {\n _this.getSafeRegisterViewModel(register).setReadonly(false);\n return _this;\n };\n /** Make a given setting in register editable */\n this.withEditableSetting = function (register, setting) {\n _this.getSafeSettingViewModel(register, setting).setReadonly(false);\n return _this;\n };\n /** Make a given interrupt editable */\n this.withEditableInterrupt = function (interrupt) {\n _this.getSafeInterruptViewModel(interrupt).setReadonly(false);\n return _this;\n };\n this.getSafeRegisterViewModel = function (register) { var _a; return (_a = _this.getRegisterViewModel(register !== null && register !== void 0 ? register : throwError(\"Invalid register parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get register view model for '\" + register.name + \"'. Not found in this module.\"); };\n this.getSafeInterruptViewModel = function (interrupt) { var _a; return (_a = _this.getInterruptViewModel(interrupt !== null && interrupt !== void 0 ? interrupt : throwError(\"Invalid interrupt parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get interrupt view model for '\" + interrupt.name + \"'. Not found in this module.\"); };\n this.getSafeSettingViewModel = function (register, setting) { var _a; return (_a = _this.getSafeRegisterViewModel(register).getSettingViewModel(setting !== null && setting !== void 0 ? setting : throwError(\"Invalid setting parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get setting view model for '\" + setting.name + \"'. Not found in this module.\"); };\n this.getRegisterViewModel = function (register) {\n var name = register.name;\n return Arrays_1.find(_this.registers, function (rv) { return rv.getRegister().name === name; });\n };\n this.getInterruptViewModel = function (interrupt) {\n var name = interrupt.name;\n return Arrays_1.find(_this.interrupts, function (rv) { return rv.getInterrupt().name === name; });\n };\n this.createRegisterView = function (register) {\n var registerValue = register.getValue() || 0;\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n type: \"object\",\n title: register.getName() +\n \" : \" +\n CalculateRegisterValue_1.default.toHexString(registerValue),\n description: register.getDescription(),\n properties: {},\n })\n .withUiSchema({})\n .withFormData({});\n register.forEachSetting(function (setting) {\n schemaBuilder.addChildComponent(setting.getName(), _this.createSettingView(setting));\n });\n return schemaBuilder.build();\n };\n this.createSettingView = function (setting) {\n return setting.hasOptions()\n ? _this.createHasOptionsViewSchema(setting)\n : _this.getNoOptionsViewSchema(setting);\n };\n this.createInterruptView = function () {\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n type: \"object\",\n title: \"Interrupts\",\n properties: {},\n })\n .withUiSchema({})\n .withFormData({});\n _this.interrupts.forEach(function (int) {\n schemaBuilder.addChildComponent(int.getInterrupt().name, _this.createInterruptViewSchema(int));\n });\n return schemaBuilder.build();\n };\n this.module = module;\n this.registers = this.createRegisterViewModelForEachRegister(module);\n this.interrupts = this.createInterruptViewModelForEachInterrupt(module);\n }\n CreateRegisterView.prototype.createRegisterViewModelForEachRegister = function (module) {\n var _a;\n var models = [];\n var registers = (_a = module.registers) !== null && _a !== void 0 ? _a : [];\n Object.keys(registers).forEach(function (registerKey) {\n models.push(new Model_1.RegisterViewModel(registers[registerKey]));\n });\n return models;\n };\n CreateRegisterView.prototype.createInterruptViewModelForEachInterrupt = function (module) {\n var _a;\n var models = [];\n var interrupts = (_a = module.interrupts) !== null && _a !== void 0 ? _a : [];\n Object.keys(interrupts).forEach(function (interruptKey) {\n models.push(new Model_1.InterruptViewModel(interrupts[interruptKey]));\n });\n return models;\n };\n CreateRegisterView.prototype.getNoOptionsViewSchema = function (setting) {\n return {\n schema: this.createSettingViewSchema(setting),\n uiSchema: setting.getMaxValue() > 1\n ? { \"ui:readonly\": setting.getIsReadonly() }\n : this.getBinarySettingUiSchema(setting),\n formData: setting.mapToOptionNameIfExists(setting.getValue()),\n };\n };\n CreateRegisterView.prototype.createHasOptionsViewSchema = function (setting) {\n var schemaBuilder = new ViewSchemaBuilder_1.SchemaBuilder(\"string\", setting.getName())\n .withEnum(setting.getOptionNames())\n .withDefault(setting.mapToOptionNameIfExists(setting.getValue()));\n return {\n schema: schemaBuilder.build(),\n uiSchema: { \"ui:readonly\": setting.getIsReadonly() },\n formData: setting.mapToOptionNameIfExists(setting.getValue()),\n };\n };\n CreateRegisterView.prototype.createSettingViewSchema = function (setting) {\n var schema = new ViewSchemaBuilder_1.SchemaBuilder(\"integer\", setting.getName()).withDefault(setting.mapToOptionNameIfExists(setting.getPORDefault()));\n setting.getMaxValue() > 1\n ? schema.withMaximum(setting.getMaxValue()).withMinimum(0)\n : schema.withEnum([0, 1]);\n return schema.build();\n };\n CreateRegisterView.prototype.createInterruptViewSchema = function (interrupt) {\n var schema = new ViewSchemaBuilder_1.SchemaBuilder(\"string\", interrupt.getInterrupt().name)\n .withEnum(interrupt.getOptions())\n .withDefault(interrupt.getValue());\n return {\n schema: schema.build(),\n uiSchema: { \"ui:readonly\": interrupt.getIsReadonly() },\n formData: interrupt.getValue(),\n };\n };\n CreateRegisterView.prototype.getBinarySettingUiSchema = function (setting) {\n return new ViewSchemaBuilder_1.UiSchemaBuilder()\n .withReadonlyValue(setting.getIsReadonly())\n .withWidget(\"radio\")\n .withOptions({ inline: true })\n .build();\n };\n /** Creates Register View Builder for the given module. */\n CreateRegisterView.for = function (moduleDescription) {\n if (!moduleDescription) {\n throwError(\"Creation failed. Invalid module parameter.\");\n }\n if (!moduleDescription.registers && !moduleDescription.interrupts) {\n throwError(\"Creation failed for \" + moduleDescription.name + \". Input module contains no registers or interrupts.\");\n }\n return new CreateRegisterView(moduleDescription);\n };\n return CreateRegisterView;\n}());\nexports.CreateRegisterView = CreateRegisterView;\n//# sourceMappingURL=CreateRegisterView.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SettingViewModel = exports.RegisterViewModel = exports.InterruptViewModel = void 0;\nvar CalculateRegisterValue_1 = __importDefault(require(\"@microchip/scf-device/lib/CalculateRegisterValue\"));\nvar Arrays_1 = require(\"@microchip/scf-device/lib/util/Arrays\");\nvar InterruptViewModel = /** @class */ (function () {\n function InterruptViewModel(interrupt) {\n var _this = this;\n this.isReadOnly = true;\n this.getInterrupt = function () { return _this.interrupt; };\n this.setValue = function (value) {\n _this.value = value;\n };\n this.getValue = function () { return _this.value; };\n this.setOptions = function (options) {\n _this.options = options;\n };\n this.getOptions = function () { return _this.options; };\n this.getIsReadonly = function () { return _this.isReadOnly; };\n this.setReadonly = function (isReadOnly) {\n _this.isReadOnly = isReadOnly;\n };\n if (!interrupt) {\n throw new Error(\"IllegalInputArgument for 'interrupt' in InterruptValue\");\n }\n this.interrupt = interrupt;\n }\n return InterruptViewModel;\n}());\nexports.InterruptViewModel = InterruptViewModel;\nvar RegisterViewModel = /** @class */ (function () {\n function RegisterViewModel(register) {\n var _this = this;\n this.settings = [];\n this.getSettings = function () { return _this.settings; };\n this.getSettingViewModel = function (setting) {\n var name = setting.name;\n return Arrays_1.find(_this.settings, function (rv) { return rv.getSetting().name === name; });\n };\n this.forEachSetting = function (doThis) {\n _this.settings.forEach(doThis);\n };\n this.getRegister = function () { return _this.register; };\n this.getName = function () { return _this.register.name; };\n this.getDescription = function () { return _this.register.desc; };\n this.getValue = function () { return _this.value; };\n this.setValue = function (value) {\n _this.value = value;\n };\n this.setReadonly = function (value) {\n if (value === void 0) { value = true; }\n _this.forEachSetting(function (setting) { return setting.setReadonly(value); });\n };\n this.getDefaultValue = function () {\n return CalculateRegisterValue_1.default.for(_this.register).asNumber();\n };\n this.getValueOrDefault = function () {\n var value = _this.getValue();\n return value !== null && value !== void 0 ? value : _this.getDefaultValue();\n };\n if (!register) {\n throw new Error(\"IllegalInputArgument for 'register' in RegisterValue\");\n }\n this.register = register;\n if (register.settings) {\n this.settings = this.createSettingViewModels(register);\n }\n }\n RegisterViewModel.prototype.createSettingViewModels = function (register) {\n var _this = this;\n var _a;\n var models = [];\n var settings = (_a = register.settings) !== null && _a !== void 0 ? _a : [];\n Object.keys(settings).forEach(function (settingKey) {\n models.push(new SettingViewModel(settings[settingKey], _this.getValueOrDefault));\n });\n return models;\n };\n return RegisterViewModel;\n}());\nexports.RegisterViewModel = RegisterViewModel;\nvar SettingViewModel = /** @class */ (function () {\n function SettingViewModel(setting, getRegisterValue) {\n var _this = this;\n this.isReadonly = true;\n this.setReadonly = function (value) {\n if (value === void 0) { value = true; }\n _this.isReadonly = value;\n };\n this.getIsReadonly = function () { return _this.isReadonly; };\n this.getSetting = function () { return _this.setting; };\n this.getName = function () { return _this.setting.name; };\n this.getDescription = function () { return _this.setting.description; };\n this.getPORDefault = function () { return Number(_this.setting.porDefault); };\n this.getMask = function () { return Number(_this.setting.mask); };\n this.hasOptions = function () {\n return !!_this.setting.options;\n };\n this.getOptionNames = function () {\n return Arrays_1.map(nullSafe(_this.setting.options), function (option) { return option.name; });\n };\n this.mapToOptionNameIfExists = function (value) {\n var option = _this.getOptionForValue(value);\n return option != null ? option.name : value;\n };\n this.getOptionForValue = function (value) {\n return Arrays_1.find(nullSafe(_this.setting.options), function (option) {\n var optionValue = option.value;\n return optionValue != undefined\n ? parseInt(optionValue) === value\n : false;\n });\n };\n this.getValue = function () {\n var value = _this.getRegisterValue();\n value &= _this.getMask();\n return value >> _this.getShift();\n };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getMaxValue = function () {\n var mask = _this.getMask();\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n }\n return mask;\n };\n if (!setting) {\n throw new Error(\"SettingViewModel: Invalid input argument\");\n }\n this.setting = setting;\n this.getRegisterValue = getRegisterValue;\n }\n return SettingViewModel;\n}());\nexports.SettingViewModel = SettingViewModel;\nvar nullSafe = function (array) {\n return array ? array : [];\n};\n//# sourceMappingURL=Model.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UiSchemaBuilder = exports.SchemaBuilder = exports.ViewSchemaBuilder = void 0;\nvar ViewSchemaBuilder = /** @class */ (function () {\n function ViewSchemaBuilder() {\n this.schema = {};\n this.uiSchema = {};\n this.formData = {};\n this.tabName = \"main\";\n this.expandGroupsByDefault = true;\n }\n ViewSchemaBuilder.prototype.withSchema = function (schema) {\n this.schema = schema;\n return this;\n };\n ViewSchemaBuilder.prototype.withUiSchema = function (uiSchema) {\n this.uiSchema = uiSchema;\n return this;\n };\n ViewSchemaBuilder.prototype.withFormData = function (formData) {\n this.formData = formData;\n return this;\n };\n ViewSchemaBuilder.prototype.withTabName = function (name) {\n this.tabName = name;\n return this;\n };\n ViewSchemaBuilder.prototype.withExpandedDefault = function (expandGroupsByDefault) {\n this.expandGroupsByDefault = expandGroupsByDefault;\n return this;\n };\n ViewSchemaBuilder.prototype.addChildComponent = function (childName, child) {\n var _a, _b, _c;\n this.schema = __assign(__assign({}, this.schema), { properties: __assign(__assign({}, this.schema.properties), (_a = {}, _a[childName] = child.schema, _a)) });\n this.uiSchema = __assign(__assign({}, this.uiSchema), (_b = {}, _b[childName] = child.uiSchema, _b));\n this.formData = __assign(__assign({}, this.formData), (_c = {}, _c[childName] = child.formData, _c));\n };\n ViewSchemaBuilder.prototype.build = function () {\n return {\n schema: this.schema,\n uiSchema: this.uiSchema,\n formData: this.formData,\n name: this.tabName,\n expandGroupsByDefault: this.expandGroupsByDefault,\n };\n };\n return ViewSchemaBuilder;\n}());\nexports.ViewSchemaBuilder = ViewSchemaBuilder;\nvar SchemaBuilder = /** @class */ (function () {\n function SchemaBuilder(type, title) {\n this.title = title;\n this.type = type;\n }\n SchemaBuilder.prototype.withProperties = function (properties) {\n this.properties = properties;\n return this;\n };\n SchemaBuilder.prototype.withDefault = function (defaultValue) {\n this.default = defaultValue;\n return this;\n };\n SchemaBuilder.prototype.withMaximum = function (maximum) {\n this.maximum = maximum;\n return this;\n };\n SchemaBuilder.prototype.withMinimum = function (minimum) {\n this.minimum = minimum;\n return this;\n };\n SchemaBuilder.prototype.withEnum = function (vals) {\n this.enum = vals;\n return this;\n };\n SchemaBuilder.prototype.build = function () {\n return {\n type: this.type,\n title: this.title,\n properties: this.properties,\n default: this.default,\n maximum: this.maximum,\n minimum: this.minimum,\n enum: this.enum,\n };\n };\n return SchemaBuilder;\n}());\nexports.SchemaBuilder = SchemaBuilder;\nvar UiSchemaBuilder = /** @class */ (function () {\n function UiSchemaBuilder() {\n }\n UiSchemaBuilder.prototype.withReadonlyValue = function (isReadonly) {\n this.isReadOnly = isReadonly;\n return this;\n };\n UiSchemaBuilder.prototype.withWidget = function (widgetName) {\n this.widget = widgetName;\n return this;\n };\n UiSchemaBuilder.prototype.withOptions = function (options) {\n this.options = options;\n return this;\n };\n UiSchemaBuilder.prototype.build = function () {\n return {\n \"ui:readonly\": this.isReadOnly,\n \"ui:widget\": this.widget,\n \"ui:options\": this.options,\n };\n };\n return UiSchemaBuilder;\n}());\nexports.UiSchemaBuilder = UiSchemaBuilder;\n//# sourceMappingURL=ViewSchemaBuilder.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Setting_1 = require(\"./Setting\");\nvar Register_1 = require(\"./Register\");\nvar Arrays_1 = require(\"./util/Arrays\");\n/** Builder pattern */\nvar CalculateRegisterValue = /** @class */ (function () {\n function CalculateRegisterValue(register) {\n var _this = this;\n this.modifiedSettings = [];\n /** Assign a numerical value to the given `Setting`. */\n this.withNumberValue = function (setting, value) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign number value to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new NumberSettingValue(setting, value)\n ]);\n return _this;\n };\n /** Assign the given `Option` to the given `Setting`. */\n this.withOption = function (setting, option) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n if (!_this.getOption(setting, option)) {\n throw new Error(\"Option \" + option.name + \" is not present in Setting \" + setting.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new OptionSettingValue(setting, option)\n ]);\n return _this;\n };\n /** Assign the `Option` matching the given alias to the given `Setting`. */\n this.withOptionAlias = function (setting, optionAlias) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option alias to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByAlias(optionAlias, setting);\n if (option === undefined) {\n throw new Error(\"Option Alias: \\\"\" + optionAlias + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given name to the given `Setting`. */\n this.withOptionName = function (setting, optionName) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option name to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByName(optionName, setting);\n if (option === undefined) {\n throw new Error(\"Option Name: \\\"\" + optionName + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given description to the given `Setting`. */\n this.withOptionDescription = function (setting, optionDescription) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option description to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByDescription(optionDescription, setting);\n if (option === undefined) {\n throw new Error(\"Option Description: \\\"\" + optionDescription + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n this.getSetting = function (setting) {\n return Register_1.getSettingByAlias(setting.alias, _this.register);\n };\n this.getOption = function (setting, option) {\n return Setting_1.getOptionByName(option.name, setting);\n };\n this.calculate = function () {\n var registerValue = 0;\n _this.modifiedSettings.forEach(function (modifiedSetting) {\n registerValue = _this.setValue(modifiedSetting, registerValue);\n });\n var unmodifiedSettings = _this.getUnmodifiedSettings();\n unmodifiedSettings.forEach(function (unmodifiedSetting) {\n registerValue = _this.setValue(SettingValue.defaultValue(unmodifiedSetting), registerValue);\n });\n return Number(registerValue);\n };\n this.setValue = function (setting, registerValue) {\n var value = registerValue;\n value &= ~setting.getMask(); // Clear bits\n value |= setting.getShiftedValue(); // Set bits\n return value;\n };\n this.getUnmodifiedSettings = function () {\n var _a;\n var modifiedSettingNames = Arrays_1.map(_this.modifiedSettings, function (setting) { return setting.getName(); });\n return Arrays_1.filter((_a = Arrays_1.values(_this.register.settings)) !== null && _a !== void 0 ? _a : [], function (setting) { return modifiedSettingNames.indexOf(setting.name) < 0; });\n };\n /** Calculate and print the register's value as a hex string. */\n this.asHexString = function () { return CalculateRegisterValue.toHexString(_this.calculate()); };\n /** Calculate and print the register's value as a binary string. */\n this.asBinaryString = function () { return CalculateRegisterValue.toBinaryString(_this.calculate()); };\n /** Calculate and print the register's value as a decimal string. */\n this.asDecimalString = function () { return CalculateRegisterValue.toDecimalString(_this.calculate()); };\n /** Calculate and return the register's value as a number. */\n this.asNumber = function () { return _this.calculate(); };\n this.register = register;\n }\n /** Creates a register value calculation object for the given register. */\n CalculateRegisterValue.for = function (register) {\n return new CalculateRegisterValue(register);\n };\n /** Format the given number as a hex string value. */\n CalculateRegisterValue.toHexString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toHexString() illegal argument exception. Value must not be null.\");\n }\n return \"0x\" + value.toString(16);\n };\n /** Format the given number as a binary string value. */\n CalculateRegisterValue.toBinaryString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toBinaryString() illegal argument exception. Value must not be null.\");\n }\n return \"0b\" + value.toString(2);\n };\n /** Format the given number as a decimal string value. */\n CalculateRegisterValue.toDecimalString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toDecimalString() illegal argument exception. Value must not be null.\");\n }\n return value.toString();\n };\n return CalculateRegisterValue;\n}());\nexports.default = CalculateRegisterValue;\nvar SettingValue = /** @class */ (function () {\n function SettingValue(setting) {\n var _this = this;\n this.getMask = function () { return Number(_this.setting.mask); };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getShiftedValue = function () { return _this.getValue() << _this.getShift(); };\n this.getName = function () { return _this.setting.name; };\n this.setting = setting;\n }\n SettingValue.defaultValue = function (setting) {\n var value = Number(setting.porDefault);\n return new NumberSettingValue(setting, value);\n };\n return SettingValue;\n}());\nvar NumberSettingValue = /** @class */ (function (_super) {\n __extends(NumberSettingValue, _super);\n function NumberSettingValue(setting, value) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return _this.value; };\n _this.value = value;\n return _this;\n }\n return NumberSettingValue;\n}(SettingValue));\nvar OptionSettingValue = /** @class */ (function (_super) {\n __extends(OptionSettingValue, _super);\n function OptionSettingValue(setting, option) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return Number(_this.option.value); };\n _this.option = option;\n return _this;\n }\n OptionSettingValue.fromDefaultValue = function (setting, value) {\n var foundValueByName = Setting_1.getOptionByName(value, setting);\n if (foundValueByName)\n return new OptionSettingValue(setting, foundValueByName);\n var foundValueByAlias = Setting_1.getOptionByAlias(value, setting);\n if (foundValueByAlias)\n return new OptionSettingValue(setting, foundValueByAlias);\n throw new Error(\"Unable to create default value '\" + value + \"' for setting '\" + setting.name + \"'.\");\n };\n return OptionSettingValue;\n}(SettingValue));\n//# sourceMappingURL=CalculateRegisterValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSettingByAlias = void 0;\nexports.getSettingByAlias = function (alias, register) {\n return register.settings[alias];\n};\n//# sourceMappingURL=Register.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionDescriptions = exports.getOptionNames = exports.getOptionByDescription = exports.getOptionByName = exports.getOptionByAlias = void 0;\nvar Arrays_1 = require(\"./util/Arrays\");\nexports.getOptionByAlias = function (alias, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.alias == alias; });\n};\nexports.getOptionByName = function (name, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name == name; });\n};\nexports.getOptionByDescription = function (description, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description == description; });\n};\nexports.getOptionNames = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name; });\n};\nexports.getOptionDescriptions = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description; });\n};\n//# sourceMappingURL=Setting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.values = exports.getKeys = exports.find = exports.filter = exports.map = void 0;\nexports.map = function (arr, callback) {\n var result = [];\n arr.forEach(function (value, index) {\n result[index] = callback(value);\n });\n return result;\n};\nexports.filter = function (arr, callback) {\n var result = [];\n arr.forEach(function (value) {\n if (callback(value)) {\n result.push(value);\n }\n });\n return result;\n};\n/**\n * Iterates over elements of the array, returning the first element that the predicate returns truthy for.\n */\nexports.find = function (arr, callback) {\n for (var i = 0; i < arr.length; i++) {\n if (callback(arr[i])) {\n return arr[i];\n }\n }\n return undefined;\n};\n/** @returns the non-prototype keys of the given object */\nexports.getKeys = function (obj) {\n if (!obj)\n return undefined;\n return Object.getOwnPropertyNames(obj);\n};\nexports.values = function (obj) {\n if (!obj)\n return undefined;\n return exports.getKeys(obj).map(function (key) { return obj[key]; });\n};\n//# sourceMappingURL=Arrays.js.map","require('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array ? array.length : 0;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = find;\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport * as clock_16bit_config_interface from \"@microchip/clock-16bit-config-interface\";\nimport * as canfd_clock_interface from \"@microchip/canfd-clock-interface\";\nimport {\n AppModel,\n DerivedData,\n DerivedFunctions,\n} from \"../generated_module/src/types/AutoModuleTypes\";\nimport { forEach, getKeys } from \"../generated_module/src/Utils\";\nimport { getCanClkDivFreq, getCanfdClockFrequency, MAX_CANFD_CLK_SRC_FREQ } from \"./Util\";\nimport * as clock_16bit_ux_interface from \"@microchip/clock-16bit-interface\";\nimport { ExportArg } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport _find from \"lodash.find\";\nimport { InterfaceId } from \"@microchip/scf-common\";\n\nexport const ARGUMENT_MAIN_CLK = \"mainClockArg\";\nconst ARGUMENT_AUX_CLK = \"auxClockArg\";\nconst ARGUMENT_REF_CLK = \"refClockArg\";\nconst CLOCK_16BIT_CONFIG_INTERFACE = \"clock_16bit_config_interface\";\nconst DIGITS_AFTER_DECIMAL_POINT = 2;\nconst COMPONENT_AUX_CLOCK_SOURCE = \"auxClockSource\";\nconst COMPONENT_MAIN_CLOCK_SOURCE = \"mainClockSource\";\nexport const COMPONENT_AUX_CLOCK_INPUT_FREQUENCY = \"auxClockInputFrequency_Hz\";\nexport const COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY = \"mainClockInputFrequency_Hz\";\nconst COMPONENT_REF_CLOCK_SOURCE = \"refClockSource\";\nconst COMPONENT_CANFD_CLOCK_SOURCE = \"canfdClockSource\";\nexport const COMPONENT_REQUESTED_SYSTEM_FREQUENCY = \"requestedSystemFrequency_Hz\";\nconst COMPONENT_FVCO_DIVIDER = \"fvcoDivider\";\nexport const COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY =\n \"requestedAuxClockOutputFrequency_Hz\";\nconst COMPONENT_AFVCO_DIVIDER = \"afvcoDivider\";\nexport const COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY =\n \"requestedRefClockOutputFrequency_Hz\";\nconst COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY =\n \"requestedCanfdClockOutputFrequency_Hz\";\nconst COMPONENT_USB_CLOCK_FREQUENCY = \"usbClockFrequency_Hz\";\nconst PRIMARY = \"Primary\";\nconst PLL = \"PLL\";\nconst POSTSCALER = \"Postscaler\";\nconst EXTERNAL = \"External\";\n\nconst MEGA_HERTZ = 1000000;\nconst KILO_HERTZ = 1000;\n\nexport const getMyDerivedData = (dataModel: AppModel): MyDerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return dataModel;\n};\n\nexport const getDerivedData = (dataModel: AppModel): DerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return new EmptyDerivedData();\n};\n\n//This data will be used at the creator stage and relies on only the state\nclass EmptyDerivedData implements DerivedData {\n getMyFunctions = (): DerivedFunctions => {\n return {};\n };\n getModel = (): AppModel | undefined => {\n return undefined;\n };\n}\n\n//This data will be used at the processor stage\nclass MyDerivedData implements DerivedData {\n private dataModel: AppModel;\n\n constructor(dataModel: AppModel) {\n this.dataModel = dataModel;\n }\n\n getMyFunctions = (): DerivedFunctions => {\n return {\n templateData: this.getMyTemplateData,\n alerts: this.getMyAlerts,\n calculatedFunction: this.calculatedFunction,\n overrideOptions: this.overrideOptions,\n overrideDefaultValues: this.overrideDefaultValues,\n canfdClkSrcFreq: this.getCanfdClockSrcFreqInMhz,\n clock_16bit_config_interface_args: this.getClockConfigInterfaceArgs,\n calculatedSystemFrequency_Hz: this.getActualSystemFrequency,\n instructionClockFrequency_Hz: this.getInstructionClockFrequency,\n usbClockFrequency_Hz: this.getUSBFrequency,\n \"canfd-clock-interface_payload\": this.getCalcCanfdFreqPayload,\n fpllo: this.getFpllo,\n fvco: this.getFvco,\n fvcoDiv: this.getFvcoDiv,\n apllo: this.getAfpllo,\n afvco: this.getAfvco,\n afvcoDiv: this.getAfvcoDiv,\n calculatedRefOutputFrequency_Hz: this.getCalculatedRefOutputFrequency_Hz,\n calculatedCanfdOutputFrequency_Hz: this.getCalculatedCanfdOutputFrequency,\n\n isVisible: this.isComponentVisible,\n requestedCanfdClockOutputFrequency_Hz: this\n .getRequestedCanfdClockOutputFrequency_Hz,\n getUiBehavior: this.getUiBehavior,\n mainClockInputFrequency_HzValidator: this.mainClockInputFrequency_HzValidator,\n auxClockInputFrequency_HzValidator: this.auxClockInputFrequency_HzValidator,\n requestedAuxClockOutputFrequency_HzValidator: this\n .requestedAuxClockOutputFrequency_HzValidator,\n requestedSystemFrequency_HzValidator: this\n .requestedSystemFrequency_HzValidator,\n requestedRefClockOutputFrequency_HzValidator: this\n .requestedRefClockOutputFrequency_HzValidator,\n getCustomUiErrors: this.getCustomUiErrors,\n \"clock-16bit-ux-interface_payloads\": this.getClockApplicationInterfacePayload,\n };\n };\n\n private getCustomUiErrors = (componentName: string): Error[] | undefined => {\n let customErrors: Error[];\n switch (componentName) {\n case COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY:\n customErrors = [\n {\n name: \"pattern\",\n message:\n \"Main clock input frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_AUX_CLOCK_INPUT_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Auxiliary clock input frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_REQUESTED_SYSTEM_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Requested system frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Requested auxiliary clock output frequency should be a positive number.\",\n },\n ];\n break;\n default:\n return undefined;\n }\n return customErrors;\n };\n\n private mainClockInputFrequency_HzValidator = (): any => {\n return {\n minimum: this.getMinClockFrequency(),\n maximum: this.getMaxClockFrequency(),\n };\n };\n\n private auxClockInputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private requestedAuxClockOutputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private requestedSystemFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n maximum: this.getMaxSystemClockFrequency(),\n };\n };\n\n private requestedRefClockOutputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private getMinClockFrequency = (): number => {\n let minClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n minClockFrequency =\n interfaceData?.mainClockPayload?.mainClockInputMinFrequency ?? 0;\n }\n return minClockFrequency;\n };\n\n private getMaxClockFrequency = (): number => {\n let maxClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n maxClockFrequency =\n interfaceData?.mainClockPayload?.mainClockInputMaxFrequency ?? 0;\n }\n return maxClockFrequency;\n };\n\n private getMaxSystemClockFrequency = (): number => {\n let maxSystemClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n maxSystemClockFrequency =\n interfaceData?.mainClockPayload?.maxSystemClockFrequency ?? 0;\n }\n return maxSystemClockFrequency;\n };\n\n private getUiBehavior = (component: string): any => {\n let uiBehavior = {};\n switch (component) {\n case \"requestedCanfdClockOutputFrequency_Hz\":\n uiBehavior = {\n [\"ui:help\"]:\n \"Requested FCAN frequency can be configured from CAN 2.0/CAN-FD modules in Drivers category\",\n };\n break;\n case \"canfdClkSrcFreq\":\n uiBehavior = {\n [\"ui:help\"]:\n \"CAN FD clock source frequency should be less than or equal to 640 MHz\",\n };\n break;\n default:\n break;\n }\n return uiBehavior;\n };\n\n private getRequestedCanfdClockOutputFrequency_Hz = (): string => {\n return this.getFrequencyInMHz(this.getRequestedCanfdClockFreq() ?? 0);\n };\n\n private getRequestedCanfdClockFreq = (): number | undefined => {\n const clockList: number[] = [];\n const canfdInterfaceRequests = this.getCanfdClockRequestList();\n if (canfdInterfaceRequests != undefined) {\n forEach(canfdInterfaceRequests, (scriptId, requestedFreq) => {\n if (!isNaN(requestedFreq?.requestedCanSpeed_Hz)) {\n clockList.push(requestedFreq.requestedCanSpeed_Hz);\n }\n });\n\n return getSelectedCanfdFreq(clockList);\n }\n return undefined;\n };\n\n private getCanfdClockRequestList = (): Processor.Dictionary<any> | undefined => {\n const canfdInterfaceRequests:\n | Processor.Dictionary<any>\n | undefined = this.dataModel\n .getExportInterfaces()\n .getInterface(\"canfd_clock\", canfd_clock_interface.Interface.getInterfaceId())\n ?.args;\n return canfdInterfaceRequests;\n };\n\n private isAuxClockInputFrequencyVisible = (): boolean => {\n let visible = false;\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n if (auxClockSource != undefined) {\n if (auxClockSource?.indexOf(PRIMARY) >= 0) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isMainClockInputFrequencyVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (\n mainClockSource?.indexOf(PRIMARY) >= 0 ||\n mainClockSource?.indexOf(EXTERNAL) >= 0\n ) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isRequestedSystemFrequencyVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (\n mainClockSource?.indexOf(PLL) >= 0 ||\n mainClockSource.indexOf(POSTSCALER) >= 0\n ) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isRequestedAuxClockOutputFrequencyVisible = (): boolean => {\n let visible = true;\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n if (auxClockSource != undefined) {\n if (auxClockSource?.indexOf(PLL) >= 0) {\n visible = true;\n } else {\n visible = false;\n }\n }\n return visible;\n };\n\n private isFplloVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (mainClockSource?.indexOf(PLL) >= 0) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isComponentVisible = (componentName: string): boolean => {\n if (componentName === COMPONENT_USB_CLOCK_FREQUENCY) {\n return this.isUSBSupported();\n } else if (componentName === COMPONENT_REQUESTED_SYSTEM_FREQUENCY) {\n return this.isRequestedSystemFrequencyVisible();\n } else if (componentName === COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY) {\n return this.isMainClockInputFrequencyVisible();\n } else if (\n componentName === COMPONENT_AUX_CLOCK_SOURCE ||\n componentName === \"apllo\"\n ) {\n return this.isAuxClockSupported();\n } else if (\n componentName === COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY ||\n componentName === COMPONENT_AFVCO_DIVIDER ||\n componentName === \"afvco\" ||\n componentName === \"afvcoDiv\"\n ) {\n let visible = false;\n if (this.isAuxClockSupported()) {\n visible = this.isRequestedAuxClockOutputFrequencyVisible();\n }\n return visible;\n } else if (componentName === COMPONENT_AUX_CLOCK_INPUT_FREQUENCY) {\n let visible = false;\n if (this.isAuxClockSupported()) {\n visible = this.isAuxClockInputFrequencyVisible();\n }\n return visible;\n } else if (\n componentName === COMPONENT_REF_CLOCK_SOURCE ||\n componentName === COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY ||\n componentName === \"calculatedRefOutputFrequency_Hz\"\n ) {\n return this.isRefClockSupported();\n } else if (\n componentName === COMPONENT_CANFD_CLOCK_SOURCE ||\n componentName === COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY ||\n componentName === \"calculatedCanfdOutputFrequency_Hz\" ||\n componentName === \"canfdClkSrcFreq\"\n ) {\n return this.isCanfdClockSupported();\n }\n return true;\n };\n\n public getModel = (): AppModel => {\n return this.dataModel;\n };\n\n private getMyTemplateData = (): any => {\n return {};\n };\n\n private getMyAlerts = (): Processor.Alert[] => {\n const alerts: Processor.Alert[] = [];\n if (this.isCanfdClockSupported() && this.getCanfdClockRequestList()) {\n const canfdClockSource = this.dataModel.getComponentValue(\n COMPONENT_CANFD_CLOCK_SOURCE,\n );\n const calculatedCanFdClockSrcFreq = this.dataModel?.getComponentValue(\n \"calculatedCanfdOutputFrequency_Hz\",\n );\n if (\n calculatedCanFdClockSrcFreq &&\n calculatedCanFdClockSrcFreq != \"0.00 kHz\"\n ) {\n const canClkFreqVal = this.getCalculatedCanfdOutputFrequency_Hz();\n let text = \"CAN FD clock source can be configured in Clock Module.\";\n let type = Processor.AlertTypes.Hint;\n if (this.getCanfdClockSrcFreq() > MAX_CANFD_CLK_SRC_FREQ) {\n text =\n \"CAN FD clock source frequency should be less than or equal to 640 MHz. The same can be configured in Clock module.\";\n type = Processor.AlertTypes.Warning;\n } else if (!isStdCanfdFrequency(canClkFreqVal)) {\n text =\n \"The Calculated FCAN frequency is \" +\n calculatedCanFdClockSrcFreq +\n \". The recommended FCAN frequencies are 10 MHz, 20 MHz, 40 MHz or 80 MHz. \" +\n text;\n }\n alerts.push({\n type: type,\n text: text,\n });\n } else if (canfdClockSource && canfdClockSource.startsWith(\"AFVCO\")) {\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n\n if (auxClockSource?.indexOf(PLL) == -1) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"For using \" +\n canfdClockSource +\n \" as CAN FD Clock , select Auxiliary Clock Source option with PLL . CAN FD clock source can be configured in Clock Module.\",\n });\n }\n } else if (\n calculatedCanFdClockSrcFreq &&\n calculatedCanFdClockSrcFreq == \"0.00 kHz\"\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"Please select a valid clock source for CAN FD . The same can be configured in Clock Module.\",\n });\n }\n }\n\n return alerts;\n };\n\n private calculatedFunction = (): any => {\n return;\n };\n\n private getActualSystemFrequency = (): string => {\n let systemFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n systemFrequency = interfaceData.componentFrequenciesPayload?.fosc_Hz;\n if (systemFrequency != undefined) {\n systemFrequency = Number(\n systemFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (systemFrequency == undefined) {\n systemFrequency = 0;\n }\n\n return this.getFrequencyInMHz(systemFrequency);\n };\n\n private getFrequencyInMHz = (systemFrequency: number): string => {\n let systemFrequencyInStr = \"\";\n\n if (systemFrequency >= MEGA_HERTZ) {\n systemFrequency = systemFrequency / MEGA_HERTZ;\n systemFrequencyInStr =\n systemFrequency.toFixed(DIGITS_AFTER_DECIMAL_POINT) + \" MHz\";\n } else {\n systemFrequency = systemFrequency / KILO_HERTZ;\n systemFrequencyInStr =\n systemFrequency.toFixed(DIGITS_AFTER_DECIMAL_POINT) + \" kHz\";\n }\n\n return systemFrequencyInStr;\n };\n\n private isUSBSupported = (): boolean => {\n let isUSBSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isUSBSupported = interfaceData?.hasUSB;\n }\n return isUSBSupported;\n };\n\n private isAuxClockSupported = (): boolean => {\n let isAuxClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isAuxClockSupported = interfaceData?.hasAuxClock;\n }\n return isAuxClockSupported;\n };\n\n private isRefClockSupported = (): boolean => {\n let isRefClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isRefClockSupported = interfaceData?.hasRefClock;\n }\n return isRefClockSupported;\n };\n\n private isCanfdClockSupported = (): boolean => {\n let isCanfdClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isCanfdClockSupported = interfaceData?.hasCanfdClock;\n }\n return isCanfdClockSupported;\n };\n\n private getInstructionClockFrequency = (): string => {\n let instructionClockFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n instructionClockFrequency =\n interfaceData.componentFrequenciesPayload?.foscBy2_Hz;\n if (instructionClockFrequency != undefined) {\n instructionClockFrequency = Number(\n instructionClockFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (instructionClockFrequency == undefined) {\n instructionClockFrequency = 0;\n }\n return this.getFrequencyInMHz(instructionClockFrequency);\n };\n\n private getUSBFrequency = (): string => {\n let usbFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n usbFrequency = interfaceData.componentFrequenciesPayload?.usbClock_Hz;\n if (usbFrequency != undefined) {\n usbFrequency = Number(usbFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (usbFrequency == undefined) {\n usbFrequency = 0;\n }\n return this.getFrequencyInMHz(usbFrequency);\n };\n\n private getFpllo = (): string => {\n let fpllo: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fpllo = interfaceData.componentFrequenciesPayload?.fpllo_Hz;\n if (fpllo != undefined) {\n fpllo = Number(fpllo?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fpllo == undefined) {\n fpllo = 0;\n }\n return this.getFrequencyInMHz(fpllo);\n };\n\n private getFvco = (): string => {\n let fvco: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fvco = interfaceData.componentFrequenciesPayload?.fvco_Hz;\n if (fvco != undefined) {\n fvco = Number(fvco?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fvco == undefined) {\n fvco = 0;\n }\n return this.getFrequencyInMHz(fvco);\n };\n\n private getFvcoDiv = (): string => {\n let fvcoDiv: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fvcoDiv = interfaceData.componentFrequenciesPayload?.fvcoDiv_Hz;\n if (fvcoDiv != undefined) {\n fvcoDiv = Number(fvcoDiv?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fvcoDiv == undefined) {\n fvcoDiv = 0;\n }\n return this.getFrequencyInMHz(fvcoDiv);\n };\n\n private getAfpllo = (): string => {\n let afpllo: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afpllo = interfaceData.componentFrequenciesPayload?.afpllo_Hz;\n if (afpllo != undefined) {\n afpllo = Number(afpllo?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afpllo == undefined) {\n afpllo = 0;\n }\n return this.getFrequencyInMHz(afpllo);\n };\n\n private getAfvco = (): string => {\n let afvco: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afvco = interfaceData.componentFrequenciesPayload?.afvco_Hz;\n if (afvco != undefined) {\n afvco = Number(afvco?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afvco == undefined) {\n afvco = 0;\n }\n return this.getFrequencyInMHz(afvco);\n };\n\n private getAfvcoDiv = (): string => {\n let afvcoDiv: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afvcoDiv = interfaceData.componentFrequenciesPayload?.afvcoDiv_Hz;\n if (afvcoDiv != undefined) {\n afvcoDiv = Number(afvcoDiv?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afvcoDiv == undefined) {\n afvcoDiv = 0;\n }\n return this.getFrequencyInMHz(afvcoDiv);\n };\n\n private getCalculatedRefOutputFrequency_Hz = (): string => {\n let refClockOutputFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n refClockOutputFrequency = interfaceData.componentFrequenciesPayload?.refo_Hz;\n if (refClockOutputFrequency != undefined) {\n refClockOutputFrequency = Number(\n refClockOutputFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (refClockOutputFrequency == undefined) {\n refClockOutputFrequency = 0;\n }\n return this.getFrequencyInMHz(refClockOutputFrequency);\n };\n\n private getCalcCanfdFreqPayload = (): canfd_clock_interface.ProcessedPayload => {\n return {\n calculatedCanSpeed_Hz: this.getCalculatedCanfdOutputFrequency_Hz(),\n };\n };\n\n private getCalculatedCanfdOutputFrequency = (): string => {\n return this.getFrequencyInMHz(this.getCalculatedCanfdOutputFrequency_Hz());\n };\n\n private getCalculatedCanfdOutputFrequency_Hz = (): number => {\n let canfdClockOutputFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n canfdClockOutputFrequency =\n interfaceData?.canfdClockPayload?.calculatedCanfdOutputFrequency_Hz;\n if (canfdClockOutputFrequency != undefined) {\n canfdClockOutputFrequency = Number(\n canfdClockOutputFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (canfdClockOutputFrequency == undefined) {\n canfdClockOutputFrequency = 0;\n }\n return canfdClockOutputFrequency;\n };\n\n private getMainClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n clockSources = interfaceData?.mainClockPayload?.mainClockSourceOptions;\n }\n return clockSources;\n };\n\n private getFvcoDividerOptions = (): string[] => {\n let fvcoDivOptions: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.mainClockPayload?.fvcoDividerOptions;\n if (temp != undefined) {\n fvcoDivOptions = temp.join().split(\",\");\n }\n }\n return fvcoDivOptions;\n };\n\n private getAfvcoDividerOptions = (): string[] => {\n let afvcoDivOptions: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData.auxClockPayload?.afvcoDividerOptions;\n if (temp != undefined) {\n afvcoDivOptions = temp.join().split(\",\");\n }\n }\n return afvcoDivOptions;\n };\n\n private getAuxClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData.auxClockPayload?.auxClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private getRefClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.refClockPayload?.refClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private getCanfdClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.canfdClockPayload?.canfdClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private overrideOptions = (componentName: string): any[] => {\n const defaultValue = [];\n switch (componentName) {\n case COMPONENT_MAIN_CLOCK_SOURCE:\n return this.getMainClockSources();\n case COMPONENT_AUX_CLOCK_SOURCE:\n return this.getAuxClockSources();\n case COMPONENT_REF_CLOCK_SOURCE:\n return this.getRefClockSources();\n case COMPONENT_FVCO_DIVIDER:\n return this.getFvcoDividerOptions();\n case COMPONENT_AFVCO_DIVIDER:\n return this.getAfvcoDividerOptions();\n case COMPONENT_CANFD_CLOCK_SOURCE:\n return this.getCanfdClockSources();\n default:\n return defaultValue;\n }\n };\n\n private overrideDefaultValues = (componentName: string): any => {\n switch (componentName) {\n case \"canfdClockSource\":\n {\n const canClock = this.getDefaultCanClock();\n if (canClock) {\n return canClock;\n }\n }\n break;\n case COMPONENT_MAIN_CLOCK_SOURCE:\n return this.getMainClockSource();\n case COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY:\n return this.getMainClockInputFrequencyInHz();\n case COMPONENT_REQUESTED_SYSTEM_FREQUENCY:\n return this.getRequestedSystemFrequencyInHz();\n case COMPONENT_FVCO_DIVIDER:\n return this.getFvcoDivider();\n case COMPONENT_AUX_CLOCK_SOURCE:\n return this.getAuxClockSource();\n case COMPONENT_AUX_CLOCK_INPUT_FREQUENCY:\n return this.getAuxClockInputFrequencyInHz();\n case COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY:\n return this.getRequestedAuxClockOutputFrequencyInHz();\n case COMPONENT_AFVCO_DIVIDER:\n return this.getAfvcoDivider();\n case COMPONENT_REF_CLOCK_SOURCE:\n return this.getRefClockSource();\n case COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY:\n return this.getRequestedRefClockOutputFrequencyInHz();\n default:\n break;\n }\n };\n\n private getDefaultCanClock = (): string | undefined => {\n if (this.isCanfdClockSupported() && this.getRequestedCanfdClockFreq()) {\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const clockOptionList =\n interfaceData?.canfdClockPayload?.canfdClockSourceOptions ?? [];\n if (isElementPresent(clockOptionList, \"FVCO/4\")) {\n return \"FVCO/4\";\n }\n }\n }\n return undefined;\n };\n\n private getClockConfigInterfaceArgs = (): clock_16bit_config_interface.Arguments => {\n return {\n mainClockArg: this.mainClockArg(),\n auxClockArg: this.auxClockArg(),\n refClockArg: this.refClockArg(),\n canfdClockArg: this.canfdClockArg(),\n };\n };\n\n private mainClockArg = (): any => {\n return {\n mainClockSource: this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n ),\n mainClockInputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY,\n ),\n requestedSystemFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_SYSTEM_FREQUENCY,\n ),\n fvcoDivider: Number(this.dataModel.getComponentValue(COMPONENT_FVCO_DIVIDER)),\n };\n };\n\n private auxClockArg = (): any => {\n return {\n auxClockSource: this.dataModel.getComponentValue(COMPONENT_AUX_CLOCK_SOURCE),\n auxClockInputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_INPUT_FREQUENCY,\n ),\n requestedAuxClockOutputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY,\n ),\n afvcoDivider: Number(\n this.dataModel.getComponentValue(COMPONENT_AFVCO_DIVIDER),\n ),\n };\n };\n\n private refClockArg = (): any => {\n return {\n refClockSource: this.dataModel.getComponentValue(COMPONENT_REF_CLOCK_SOURCE),\n requestedRefClockOutputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY,\n ),\n };\n };\n\n private canfdClockArg = (): any => {\n const canClock =\n this.dataModel?.getState()?.main?.canfdClock?.canfdClockSource ?? \"FVCO/4\";\n return {\n canfdClockSource: canClock,\n requestedCanfdClockOutputFrequency_Hz: this.getRequestedCanfdClockFreq(),\n };\n };\n\n private getCanfdClockSrcFreqInMhz = (): string => {\n return this.getFrequencyInMHz(this.getCanfdClockSrcFreq());\n };\n\n private getCanfdClockSrcFreq = (): number => {\n const interfaceData = this.dataModel?.getImportValue(\n \"clock_16bit_config_interface\",\n )?.componentFrequenciesPayload;\n const canClkSrc =\n this.dataModel?.getComponentValue(\"canfdClockSource\") ?? \"FVCO/4\";\n const canClkFreq = getCanfdClockFrequency(canClkSrc, interfaceData);\n\n return getCanClkDivFreq(canClkSrc, canClkFreq);\n };\n\n public getExportArg = (componentName: string): ExportArg | undefined => {\n const exportData = this.dataModel.getExportInterfaces().getInterfaceData();\n if (exportData != undefined) {\n const expArg = _find(\n exportData,\n (i) =>\n i.interface === \"clock-16bit-ux-interface\" &&\n i.name === componentName,\n );\n return expArg;\n }\n };\n\n private getMainClockSource = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.mainClockSource;\n }\n };\n\n private getMainClockInputFrequencyInHz = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.mainClockInputFrequency_Hz;\n }\n };\n\n private getRequestedSystemFrequencyInHz = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.requestedSystemFrequency_Hz;\n }\n };\n\n private getFvcoDivider = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return String(mainClockArg.fvcoDivider);\n }\n };\n\n private getAuxClockSource = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.auxClockSource;\n }\n };\n\n private getAuxClockInputFrequencyInHz = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.auxClockInputFrequency_Hz;\n }\n };\n\n private getRequestedAuxClockOutputFrequencyInHz = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.requestedAuxClockOutputFrequency_Hz;\n }\n };\n\n private getAfvcoDivider = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.afvcoDivider;\n }\n };\n\n private getRefClockSource = (): any => {\n const refClockArg = this.getExportArg(ARGUMENT_REF_CLK)?.value;\n if (refClockArg != undefined) {\n return refClockArg.refClockSource;\n }\n };\n\n private getRequestedRefClockOutputFrequencyInHz = (): any => {\n const refClockArg = this.getExportArg(ARGUMENT_REF_CLK)?.value;\n if (refClockArg != undefined) {\n return refClockArg.requestedRefClockOutputFrequency_Hz;\n }\n };\n\n private getCanfdClockSource = (): any => {\n const refClockArg = this.getExportArg(\"canfdClockArg\")?.value;\n if (refClockArg != undefined) {\n return refClockArg.canfdClockSource;\n }\n };\n\n private getClock16bitUxInterfaceId = (): InterfaceId => {\n return {\n name: \"clock-16bit-ux-interface\",\n version: \"0.1.0\",\n };\n };\n\n private getClockApplicationInterfacePayload = ():\n | Processor.Dictionary<clock_16bit_config_interface.ProcessedPayload>\n | undefined => {\n const clockApplicationInterfacePayloads: Processor.Dictionary<clock_16bit_ux_interface.ProcessedPayload> = {};\n const clockApplicationInterfaceRequests:\n | Processor.Dictionary<clock_16bit_ux_interface.Arguments>\n | undefined = this.dataModel\n .getExportInterfaces()\n .getInterface(\"clock_16bit_ux_interface\", this.getClock16bitUxInterfaceId())\n ?.args;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (\n clockApplicationInterfaceRequests != undefined &&\n interfaceData != undefined\n ) {\n getKeys(clockApplicationInterfaceRequests)?.forEach((module) => {\n clockApplicationInterfacePayloads[module] = {\n ...clockApplicationInterfacePayloads[module],\n mainClockPayload: interfaceData.mainClockPayload,\n hasUSB: interfaceData.hasUSB,\n hasAuxClock: interfaceData.hasAuxClock,\n hasRefClock: interfaceData.hasRefClock,\n hasCanfdClock: interfaceData.hasCanfdClock,\n hasSecondaryOscillator: interfaceData.hasSecondaryOscillator,\n isSecondaryOscillatorEnabled:\n interfaceData.isSecondaryOscillatorEnabled,\n auxClockPayload: interfaceData.auxClockPayload,\n refClockPayload: interfaceData.refClockPayload,\n canfdClockPayload: interfaceData.canfdClockPayload,\n };\n });\n }\n return clockApplicationInterfacePayloads;\n };\n}\n\nexport const getSelectedCanfdFreq = (freqList: number[]): number => {\n if (freqList.length == 0) {\n return 0;\n }\n if (freqList.length == 1) {\n return freqList[0];\n }\n let freq = freqList[0];\n for (let i = 1; i < freqList.length; i++) {\n if (isStdCanfdFrequency(freqList[i])) {\n if (!isStdCanfdFrequency(freq)) {\n freq = freqList[i];\n } else if (freqList[i] < freq) {\n freq = freqList[i];\n }\n } else if (!isStdCanfdFrequency(freq) && freqList[i] < freq && freqList[i] > 0) {\n freq = freqList[i];\n }\n }\n return freq;\n};\n\nconst isStdCanfdFrequency = (freqList: number): boolean => {\n if (freqList === 20000000 || freqList === 40000000 || freqList === 80000000) {\n return true;\n }\n return false;\n};\n\nexport const isElementPresent = (arrayList: string[], arrayEntry: string): boolean => {\n let isPresent = false;\n if (arrayList != undefined && arrayEntry != undefined) {\n arrayList?.forEach((item) => {\n if (item === arrayEntry) {\n return (isPresent = item === arrayEntry);\n }\n });\n }\n return isPresent;\n};\n","export const MAX_CANFD_CLK_SRC_FREQ = 640000000;\n\nexport const getClockNameForCanClockSource = (clkSrc: string): string => {\n let clockName = \"\";\n if (clkSrc) {\n if (clkSrc.search(\"AFVCO\") != -1) {\n clockName = \"afvco_Hz\";\n } else if (clkSrc.search(\"FVCO\") != -1) {\n clockName = \"fvco_Hz\";\n } else if (clkSrc === \"AFPLLO\") {\n clockName = \"afpllo_Hz\";\n } else if (clkSrc === \"FPLLO\") {\n clockName = \"fpllo_Hz\";\n }\n }\n return clockName;\n};\n\nexport const getCanfdClockFrequency = (\n clkSrc: string,\n componentFrequenciesPayload: { [key: string]: number },\n): number => {\n let clkFrequency = 0;\n const clockName = getClockNameForCanClockSource(clkSrc);\n clkFrequency = componentFrequenciesPayload?.[clockName] ?? 0;\n return clkFrequency;\n};\n\nexport const getCanClkDivFreq = (\n canfdClockSource: string,\n clkSrcfreq: number,\n): number => {\n let canClkFreq = clkSrcfreq;\n if (canfdClockSource.startsWith(\"AFVCO\")) {\n let afvcoDiv = 1;\n if (canfdClockSource != \"AFVCO\") {\n afvcoDiv = Number(canfdClockSource.replace(\"AFVCO/\", \"\"));\n }\n canClkFreq = canClkFreq / afvcoDiv;\n } else if (canfdClockSource.startsWith(\"FVCO\")) {\n let fvcoDiv = 1;\n if (canfdClockSource != \"FVCO\") {\n fvcoDiv = Number(canfdClockSource.replace(\"FVCO/\", \"\"));\n }\n canClkFreq = canClkFreq / fvcoDiv;\n }\n return canClkFreq;\n};\n"],"sourceRoot":""}
|
1
|
+
{"version":3,"sources":["webpack://processor/webpack/bootstrap","webpack://processor/./generated_module/src/App/AppModel.ts","webpack://processor/./generated_module/src/Utils.ts","webpack://processor/./generated_module/src/autoModule sync","webpack://processor/./generated_module/src/autoModule/AutoModuleAppModel.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleHardware.ts","webpack://processor/./generated_module/src/autoModule/AutoModuleHelpers.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleTemplates.tsx","webpack://processor/./generated_module/src/autoModule/AutoModuleView.tsx","webpack://processor/./generated_module/src/autoModule/ContextualHelp.ts","webpack://processor/./generated_module/src/autoModule/RegisterFilterMode.ts","webpack://processor/./generated_module/src/autoModule/getConfigData.ts","webpack://processor/./generated_module/src/interfaces/exports.tsx","webpack://processor/./generated_module/src/interfaces/imports.tsx","webpack://processor/./generated_module/src/interrupts/InterruptActions.ts","webpack://processor/./generated_module/src/pins/PCPHelper.ts","webpack://processor/./generated_module/src/pins/PCPStateActionBuilder.ts","webpack://processor/./generated_module/src/processor.tsx","webpack://processor/./generated_module/src/tables/UidMapBuilder.ts","webpack://processor/./generated_module/src/tables/tables.ts","webpack://processor/./node_modules/@microchip/canfd-clock-interface/lib/src/canfd-clock-interface.js","webpack://processor/./node_modules/@microchip/canfd-clock-interface/lib/src/index.js","webpack://processor/./node_modules/@microchip/pin-standard/lib/index.js","webpack://processor/./node_modules/@microchip/pin-standard/lib/pin-standard.js","webpack://processor/./node_modules/@microchip/scf-common/lib/Processor.js","webpack://processor/./node_modules/@microchip/scf-device/lib/CalculateRegisterValue.js","webpack://processor/./node_modules/@microchip/scf-device/lib/Register.js","webpack://processor/./node_modules/@microchip/scf-device/lib/Setting.js","webpack://processor/./node_modules/@microchip/scf-device/lib/util/Arrays.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/c-function-types.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/helpers.js","webpack://processor/./node_modules/@microchip/scf-interface/lib/index.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/CreateRegisterView.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/Model.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/lib/ViewSchemaBuilder.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/CalculateRegisterValue.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/Register.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/Setting.js","webpack://processor/./node_modules/@microchip/scf-register-view-helper/node_modules/@microchip/scf-device/lib/util/Arrays.js","webpack://processor/./node_modules/core-js/es/map/index.js","webpack://processor/./node_modules/core-js/es/set/index.js","webpack://processor/./node_modules/core-js/internals/a-callable.js","webpack://processor/./node_modules/core-js/internals/a-possible-prototype.js","webpack://processor/./node_modules/core-js/internals/add-to-unscopables.js","webpack://processor/./node_modules/core-js/internals/an-instance.js","webpack://processor/./node_modules/core-js/internals/an-object.js","webpack://processor/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://processor/./node_modules/core-js/internals/array-includes.js","webpack://processor/./node_modules/core-js/internals/array-slice.js","webpack://processor/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://processor/./node_modules/core-js/internals/classof-raw.js","webpack://processor/./node_modules/core-js/internals/classof.js","webpack://processor/./node_modules/core-js/internals/collection-strong.js","webpack://processor/./node_modules/core-js/internals/collection.js","webpack://processor/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://processor/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://processor/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://processor/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://processor/./node_modules/core-js/internals/create-property-descriptor.js","webpack://processor/./node_modules/core-js/internals/define-iterator.js","webpack://processor/./node_modules/core-js/internals/descriptors.js","webpack://processor/./node_modules/core-js/internals/document-create-element.js","webpack://processor/./node_modules/core-js/internals/engine-user-agent.js","webpack://processor/./node_modules/core-js/internals/engine-v8-version.js","webpack://processor/./node_modules/core-js/internals/enum-bug-keys.js","webpack://processor/./node_modules/core-js/internals/export.js","webpack://processor/./node_modules/core-js/internals/fails.js","webpack://processor/./node_modules/core-js/internals/freezing.js","webpack://processor/./node_modules/core-js/internals/function-bind-context.js","webpack://processor/./node_modules/core-js/internals/function-call.js","webpack://processor/./node_modules/core-js/internals/function-name.js","webpack://processor/./node_modules/core-js/internals/function-uncurry-this.js","webpack://processor/./node_modules/core-js/internals/get-built-in.js","webpack://processor/./node_modules/core-js/internals/get-iterator-method.js","webpack://processor/./node_modules/core-js/internals/get-iterator.js","webpack://processor/./node_modules/core-js/internals/get-method.js","webpack://processor/./node_modules/core-js/internals/global.js","webpack://processor/./node_modules/core-js/internals/has-own-property.js","webpack://processor/./node_modules/core-js/internals/hidden-keys.js","webpack://processor/./node_modules/core-js/internals/html.js","webpack://processor/./node_modules/core-js/internals/ie8-dom-define.js","webpack://processor/./node_modules/core-js/internals/indexed-object.js","webpack://processor/./node_modules/core-js/internals/inherit-if-required.js","webpack://processor/./node_modules/core-js/internals/inspect-source.js","webpack://processor/./node_modules/core-js/internals/internal-metadata.js","webpack://processor/./node_modules/core-js/internals/internal-state.js","webpack://processor/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://processor/./node_modules/core-js/internals/is-callable.js","webpack://processor/./node_modules/core-js/internals/is-forced.js","webpack://processor/./node_modules/core-js/internals/is-object.js","webpack://processor/./node_modules/core-js/internals/is-pure.js","webpack://processor/./node_modules/core-js/internals/is-symbol.js","webpack://processor/./node_modules/core-js/internals/iterate.js","webpack://processor/./node_modules/core-js/internals/iterator-close.js","webpack://processor/./node_modules/core-js/internals/iterators-core.js","webpack://processor/./node_modules/core-js/internals/iterators.js","webpack://processor/./node_modules/core-js/internals/length-of-array-like.js","webpack://processor/./node_modules/core-js/internals/native-symbol.js","webpack://processor/./node_modules/core-js/internals/native-weak-map.js","webpack://processor/./node_modules/core-js/internals/object-create.js","webpack://processor/./node_modules/core-js/internals/object-define-properties.js","webpack://processor/./node_modules/core-js/internals/object-define-property.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://processor/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://processor/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-is-extensible.js","webpack://processor/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-keys-internal.js","webpack://processor/./node_modules/core-js/internals/object-keys.js","webpack://processor/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://processor/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://processor/./node_modules/core-js/internals/object-to-string.js","webpack://processor/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://processor/./node_modules/core-js/internals/own-keys.js","webpack://processor/./node_modules/core-js/internals/path.js","webpack://processor/./node_modules/core-js/internals/redefine-all.js","webpack://processor/./node_modules/core-js/internals/redefine.js","webpack://processor/./node_modules/core-js/internals/require-object-coercible.js","webpack://processor/./node_modules/core-js/internals/set-global.js","webpack://processor/./node_modules/core-js/internals/set-species.js","webpack://processor/./node_modules/core-js/internals/set-to-string-tag.js","webpack://processor/./node_modules/core-js/internals/shared-key.js","webpack://processor/./node_modules/core-js/internals/shared-store.js","webpack://processor/./node_modules/core-js/internals/shared.js","webpack://processor/./node_modules/core-js/internals/string-multibyte.js","webpack://processor/./node_modules/core-js/internals/to-absolute-index.js","webpack://processor/./node_modules/core-js/internals/to-indexed-object.js","webpack://processor/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://processor/./node_modules/core-js/internals/to-length.js","webpack://processor/./node_modules/core-js/internals/to-object.js","webpack://processor/./node_modules/core-js/internals/to-primitive.js","webpack://processor/./node_modules/core-js/internals/to-property-key.js","webpack://processor/./node_modules/core-js/internals/to-string-tag-support.js","webpack://processor/./node_modules/core-js/internals/to-string.js","webpack://processor/./node_modules/core-js/internals/try-to-string.js","webpack://processor/./node_modules/core-js/internals/uid.js","webpack://processor/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://processor/./node_modules/core-js/internals/well-known-symbol.js","webpack://processor/./node_modules/core-js/modules/es.array.iterator.js","webpack://processor/./node_modules/core-js/modules/es.map.js","webpack://processor/./node_modules/core-js/modules/es.object.to-string.js","webpack://processor/./node_modules/core-js/modules/es.set.js","webpack://processor/./node_modules/core-js/modules/es.string.iterator.js","webpack://processor/./node_modules/lodash.find/index.js","webpack://processor/./node_modules/path-browserify/index.js","webpack://processor/./node_modules/process/browser.js","webpack://processor/(webpack)/buildin/global.js","webpack://processor/(webpack)/buildin/module.js","webpack://processor/./src/DerivedData.tsx","webpack://processor/./src/Util.ts"],"names":["getPinsLogic","require","ex","getCompletePinData","appModel","getRowData","rowData","getModel","prototype","getDerivedData","AppModel","getDerivedDataFunction","derivedData","exportInterfaces","importInterfaces","autoModuleAppModel","registerValues","interrupts","properties","registers","pcpHelper","defaultHardware","getState","state","getPayload","payload","getImports","imports","getExports","exports","getName","getAutoModuleAppModel","getModuleName","getActiveName","getDerivedFunctions","getGlobalNames","createAutoModuleAppModel","getPrototypeModule","getRegisterValues","interfaceName","config","getInterrupts","getHardware","getPeripheral","getProperties","getRegisters","getFriendlyInterfaceId","peripheral","undefined","name","instanceNumber","Number","instance","replace","group","peripheralName","getConfigData","peripherals","interfaceId","getPeripheralDescription","getMyFunctions","getDerivedFunction","functionName","args","getExportInterfaces","createExportInterfaces","getImportInterfaces","createImportInterfaces","isControlledByInterface","componentName","getAssignedImport","importName","Processor","getImportValue","filterImportBySetting","populatedImports","importKey","optionFilter","filteredImports","option","isComponentValue","value","getComponentValue","getComponent","getPCPHelper","PCPHelper","setCallbacks","getKeys","obj","Object","getOwnPropertyNames","values","map","key","forEach","action","mapper","assertNotNull","val","msg","Error","toDictionary","arr","keyMapper","valueMapper","result","entry","model","MyAutoModuleAppModel","hardware","componentList","moduleName","createComponentList","components","getComponentList","componentsWithDynamicDependencySelectors","getDefaultDependencySelectors","component","getAllComponents","softwareData","push","registerName","setting","hardwareRegister","settings","type","getDynamicComponents","getActions","actions","getDefaultComponentAction","tabId","path","getSoftwareComponentValue","tab","overriddenValue","processedArg","getProcessedArgValue","AutoModuleHelper","overrideDefaultValues","getHardwareComponentValue","overriddenCompValue","overrideDefaultValue","getDefaultValue","displayOptionSetting","mode","operation","options","masterComponent","indexOf","getHardwareComponentBooleanValue","booleanValues","getDependencyComponentValue","dependencySelector","imp","importId","handle","createOptionLabel","optionType","defaultValue","getOptionByName","dynamicDependencySelectors","defaultTab","defaultGroup","length","tabs","importedNames","keys","dependencySelectors","filter","category","description","componentValue","createPrototypeImport","isFullyAssigned","interfaces","getHardwareInterfaces","i","isAssigned","castComponent","getComboOptions","overrideOptions","hasConfigBits","regName","registerValue","reg","comment","valueAsHex","alias","registerVal","CalculateRegisterValue","comments","set","getSettingBits","deviceType","withNumberValue","getOptionValueByName","asNumber","toString","toUpperCase","sortComments","register","sort","a","b","settingA","split","settingB","mask","join","setValNumber","getOptionByAlias","settingValue","valueAsDescription","bitName","getRegisterFromComponent","toLowerCase","modifiedRegName","getSettingFromComponent","desc","porDefault","optionName","optionValue","getSettingDefaultIfPresent","getOverrideDefaultValue","getSettingOptionsIfPresent","masterComponentValue","filteredOptions","filterModeOptions","find","optionModes","match","getProcessedHandle","label","providerId","exportId","DependencySelector","noneSelection","createOptionEntry","dropdownOptions","thisImport","shouldAllowUnselectDependency","names","generateDropdownOptions","isUnassignable","getModuleDefaultDescription","packageJson","scf","getTemplates","templates","template","newTemplate","dest","templateName","src","shouldGenerate","generateWithHardware","isGeneratableProperty","getTemplatePayload","templatePayload","uppercase","lowercase","filename","source","header","getComponentPayload","getTemplateSettings","getConfigBits","configModule","templateConfigBits","configName","configBits","configBit","createAutoViewPayloads","payloads","main","createSimpleFormPayloadRegister","schema","createSchema","uiSchema","createUiSchema","formData","createFormData","scfUiSchema","createScfUiSchema","table","shouldPopulateView","expandGroupsByDefault","UIGroupCollapse","populateView","getModuleDescription","title","schemaBuilder","overrideGroupTitle","UIGroups","overrideGroupDescription","getComponentSchema","UIOrder","isGroupHidden","tabIndex","isComponentGroupHidden","isHidden","uiBehavior","tableCols","columns","colNames","defaultColumnWidth","calculateColumnWidth","isColEditable","readonly","dataField","editable","columnWidth","width","dataSort","isSortable","headerAlign","dataAlign","tdStyle","getCellStyle","headerText","getTableUiSchema","getUiBehavior","getUiSchemaExportArg","getTableFormData","getDependencySelectorActions","transformErrors","deviceMeta","hasSdlSupport","sdlHelp","url","getAutoSdlHelp","tooltip","tableState","uids","createTableUids","cellValidationInfo","getCellValidationInfo","canRemoveRows","canInsertRows","canAddRows","canMoveRowDown","canMoveRowUp","getTableActions","depSelector","dependencySelectorActions","dropdownOption","JSON","stringify","displayViewOnImportAssigned","shouldPopulateViewAtStartup","impKey","isVisible","isVisibleProperty","isModeActive","getSoftwareComponentSchema","getHardwareComponentSchema","getDependencyComponentSchema","getTableComponentSchema","validation","overrideTitle","format","isUrl","urlDescription","isImage","imageDescription","getDropdownOptionNames","assignedImport","createProcessedImports","NONE","assignedName","localeCompare","item","matchRegEx","expArg","overriddenBehavior","isEnabled","registerViewPayloads","hardwarePeripheral","registerFilter","registerView","CreateRegisterView","foundRegister","withRegisterValue","interruptsKey","interrupt","interruptComponent","interruptCompVal","withInterruptValue","withInterruptOptions","create","dataModel","helpUrl","deviceName","dosid","comp","registerAlias","deviceRegister","processRegisterModes","hasModes","modifiedHardwarePeripheral","delFlag","targetStr","RegExp","test","settingObj","flag","configPath","newConfig","ConfigBuilder","withDynamicConfigData","withDynamicComponents","build","getConfigFile","dynamicComponents","dynamicComponentMap","fromNew","fromPath","__dirname","MyExportInterfaces","createProcessedExports","exportPayload","exp","int","processedInterface","getInterface","getInterfaceArgs","interfaceKey","getInterfaceResults","results","processedArgValue","interfaceData","getInterfaceData","argValues","arg","module","isInterface","idA","idB","MyImportInterfaces","stage","processedImports","filterImports","getResults","getProcessedImportOptions","modifiedOptions","index","importResults","initResults","initializer","getData","isHighPriority","filterInterrupt","filterInterrupts","interruptComponentName","getInterruptComponentName","isrCallback","handlerName","headerFile","generateISR","isEnableActions","getInterruptActions","concat","getDefaultInterruptActions","isEnableAction","interruptList","interruptActions","apiPrefixResults","apiPrefix","interruptName","InterruptActionsBuilder","curComponent","curComponentName","tableRowId","tableRowCol","tableCellPath","createActionFor","buildActions","addActionIfEnabled","actionValue","isActionValueAcceptable","rowId","validFor","addActionIfDisabled","setPathToTableCell","rowIndex","colName","some","createActionBuilder","getPinJsonObj","rows","pinjsonobj","pinCallbacks","getAllFilteredRows","allRows","validRows","eachRow","userRowData","isRowValid","direction","behaviour","eachrowret","getAllRows","pinRows","userdata","retData","callbacks","pinRow","PCPStateActionBuilder","rowName","actionDataArr","pinRegEx","pinstate","pin_state","LOCKED","actiontype","SETACTION","attribs","formAttribs","ATTRIBACTION","UNLOCK","attribarray","actionArr","eachData","process","initialModule","myDerivedData","processedOutput","help","overrideModuleLevelHelp","customTemplateData","templateData","view","auto","customView","getCustomView","alerts","globalNames","UidMapBuilder","uidMap","row","rowCount","uid","incrementUidAndShift","dynamicallyRemoved","count","sortedUids","getUidKeys","uidKey","RowPrefix","overrideTableDefaultsWithChanges","rowChanged","initialFormData","Array","isArray","changedRow","changedUid","rowChangeNum","isTableInState","tabState","getInitialTableFormData","columnNames","tableFormData","columnName","overrideTableDefaultValues","createInitialRows","rowDataCols","createRowUid","Default","initialRows","defaultRowNum","createDefaultTableAction","column","overrideCellValue","tableData","cell","modifiedTableData","addRowsToTable","newRow","numberOfRows","addRowToTable","Dynamic","newRowCols","newRowId","filteredTableTemp","tableFirstHalf","slice","tableSecondHalf","currentRowId","updateActionsRowId","removeRowFromTable","tableRemoved","currentActions","modifiedActions","getValueBasedOnState","modelState","tableUids","overrideDefaultsAndFilterRows","modifiedForData","filteredModifed","dynamicTableData","rowNum","r","addDefaultRows","addDynamicRows","removeRows","sortByValue","colInfo","colData","info","minValue","maxValue","errMessage","errTitle","cValidation","cValidationErrTitle","cValidationErrMessage","rowFormData","tableActions","uidsKey","defaultAction","ind","filtered","overrideTableOptions","cellAction","uidKeys","tableUi","search","striped","bordered","rightActions","getTableRightActions","leftActions","getTableLeftActions","getTableMoveRowActions","className","tableColumns","columnsKey","rjsfType","colBox","items","tableName","dynamicOptions","displayName","isReadonly","overflow","textOverflow","prefix","postfix","ARGUMENT_MAIN_CLK","ARGUMENT_AUX_CLK","ARGUMENT_REF_CLK","CLOCK_16BIT_CONFIG_INTERFACE","DIGITS_AFTER_DECIMAL_POINT","COMPONENT_AUX_CLOCK_SOURCE","COMPONENT_MAIN_CLOCK_SOURCE","COMPONENT_AUX_CLOCK_INPUT_FREQUENCY","COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY","COMPONENT_REF_CLOCK_SOURCE","COMPONENT_CANFD_CLOCK_SOURCE","COMPONENT_REQUESTED_SYSTEM_FREQUENCY","COMPONENT_FVCO_DIVIDER","COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY","COMPONENT_AFVCO_DIVIDER","COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY","COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY","COMPONENT_USB_CLOCK_FREQUENCY","PRIMARY","PLL","POSTSCALER","EXTERNAL","MEGA_HERTZ","KILO_HERTZ","getMyDerivedData","MyDerivedData","EmptyDerivedData","getMyTemplateData","getMyAlerts","calculatedFunction","canfdClkSrcFreq","getCanfdClockSrcFreqInMhz","clock_16bit_config_interface_args","getClockConfigInterfaceArgs","calculatedSystemFrequency_Hz","getActualSystemFrequency","instructionClockFrequency_Hz","getInstructionClockFrequency","usbClockFrequency_Hz","getUSBFrequency","getCalcCanfdFreqPayload","fpllo","getFpllo","fvco","getFvco","fvcoDiv","getFvcoDiv","apllo","getAfpllo","afvco","getAfvco","afvcoDiv","getAfvcoDiv","calculatedRefOutputFrequency_Hz","getCalculatedRefOutputFrequency_Hz","calculatedCanfdOutputFrequency_Hz","getCalculatedCanfdOutputFrequency","isComponentVisible","requestedCanfdClockOutputFrequency_Hz","getRequestedCanfdClockOutputFrequency_Hz","mainClockInputFrequency_HzValidator","auxClockInputFrequency_HzValidator","requestedAuxClockOutputFrequency_HzValidator","requestedSystemFrequency_HzValidator","requestedRefClockOutputFrequency_HzValidator","getCustomUiErrors","getClockApplicationInterfacePayload","friendlyImportName","exportName","friendlyExportName","customErrors","message","minimum","getMinClockFrequency","maximum","getMaxClockFrequency","getMaxSystemClockFrequency","minClockFrequency","mainClockPayload","mainClockInputMinFrequency","maxClockFrequency","mainClockInputMaxFrequency","maxSystemClockFrequency","getFrequencyInMHz","getRequestedCanfdClockFreq","clockList","canfdInterfaceRequests","getCanfdClockRequestList","scriptId","requestedFreq","isNaN","requestedCanSpeed_Hz","getSelectedCanfdFreq","canfd_clock_interface","getInterfaceId","isAuxClockInputFrequencyVisible","visible","auxClockSource","isMainClockInputFrequencyVisible","mainClockSource","isRequestedSystemFrequencyVisible","isRequestedAuxClockOutputFrequencyVisible","isFplloVisible","isUSBSupported","isAuxClockSupported","isRefClockSupported","isCanfdClockSupported","canfdClockSource","calculatedCanFdClockSrcFreq","canClkFreqVal","getCalculatedCanfdOutputFrequency_Hz","text","Hint","getCanfdClockSrcFreq","MAX_CANFD_CLK_SRC_FREQ","Warning","isStdCanfdFrequency","startsWith","systemFrequency","componentFrequenciesPayload","fosc_Hz","toFixed","systemFrequencyInStr","hasUSB","hasAuxClock","hasRefClock","hasCanfdClock","instructionClockFrequency","foscBy2_Hz","usbFrequency","usbClock_Hz","fpllo_Hz","fvco_Hz","fvcoDiv_Hz","afpllo","afpllo_Hz","afvco_Hz","afvcoDiv_Hz","refClockOutputFrequency","refo_Hz","calculatedCanSpeed_Hz","canfdClockOutputFrequency","canfdClockPayload","getMainClockSources","clockSources","mainClockSourceOptions","getFvcoDividerOptions","fvcoDivOptions","temp","fvcoDividerOptions","getAfvcoDividerOptions","afvcoDivOptions","auxClockPayload","afvcoDividerOptions","getAuxClockSources","auxClockSourceOptions","getRefClockSources","refClockPayload","refClockSourceOptions","getCanfdClockSources","canfdClockSourceOptions","canClock","getDefaultCanClock","getMainClockSource","getMainClockInputFrequencyInHz","getRequestedSystemFrequencyInHz","getFvcoDivider","getAuxClockSource","getAuxClockInputFrequencyInHz","getRequestedAuxClockOutputFrequencyInHz","getAfvcoDivider","getRefClockSource","getRequestedRefClockOutputFrequencyInHz","clockOptionList","isElementPresent","mainClockArg","auxClockArg","refClockArg","canfdClockArg","mainClockInputFrequency_Hz","requestedSystemFrequency_Hz","fvcoDivider","auxClockInputFrequency_Hz","requestedAuxClockOutputFrequency_Hz","afvcoDivider","refClockSource","requestedRefClockOutputFrequency_Hz","canfdClock","canClkSrc","canClkFreq","getCanfdClockFrequency","getCanClkDivFreq","getExportArg","exportData","_find","String","getCanfdClockSource","getClock16bitUxInterfaceId","version","clockApplicationInterfacePayloads","clockApplicationInterfaceRequests","hasSecondaryOscillator","isSecondaryOscillatorEnabled","exportKey","freqList","freq","arrayList","arrayEntry","isPresent","getClockNameForCanClockSource","clkSrc","clockName","clkFrequency","clkSrcfreq"],"mappings":"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ACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;;;;;;;;;;;;AC9Ca;AACb,8CAA8C,cAAc;AAC5D,8BAA8B,mBAAO,CAAC,iHAAyB;AAC/D;AACA,iC;;;;;;;;;;;;ACJa;AACb,8CAA8C,cAAc;AAC5D,qBAAqB,mBAAO,CAAC,kFAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACXa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wFAAwF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,wC;;;;;;;;;;;;ACxPa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB,wDAAwD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C,kCAAkC,WAAW,oBAAoB,kBAAkB,8BAA8B,GAAG;AACpH,aAAa,GAAG;AAChB;AACA;AACA;AACA;;;;;;;;;;;;;AC9Ea;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,sEAAW;AACnC,iBAAiB,mBAAO,CAAC,wEAAY;AACrC,eAAe,mBAAO,CAAC,8EAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,gGAAgG,0BAA0B,EAAE;AAC5H,4IAA4I,uDAAuD,EAAE;AACrM;AACA;AACA,wCAAwC,8DAA8D;AACtG;AACA,2CAA2C,iEAAiE;AAC5G;AACA,4CAA4C,kEAAkE;AAC9G;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6CAA6C;AACzF,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kD;;;;;;;;;;;;AClNa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;;ACNa;AACb,8CAA8C,cAAc;AAC5D;AACA,eAAe,mBAAO,CAAC,8EAAe;AACtC;AACA;AACA,wGAAwG,8BAA8B,EAAE;AACxI;AACA;AACA;AACA,wGAAwG,4BAA4B,EAAE;AACtI;AACA;AACA;AACA,wGAAwG,0CAA0C,EAAE;AACpJ;AACA;AACA;AACA,uGAAuG,oBAAoB,EAAE;AAC7H;AACA;AACA;AACA,uGAAuG,2BAA2B,EAAE;AACpI;AACA,mC;;;;;;;;;;;;ACxBa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB,EAAE;AACvE;AACA,kC;;;;;;;;;;;;ACzCa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC,EAAE;AAC5E;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;AACb,8CAA8C,cAAc;AAC5D,yBAAyB,mBAAO,CAAC,2FAAoB;AACrD;AACA,gBAAgB,mBAAO,CAAC,yEAAW;AACnC;AACA;;;;;;;;;;;;;ACNa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+CAA+C,mBAAO,CAAC,6KAAkD;AACzG,eAAe,mBAAO,CAAC,uJAAuC;AAC9D,0BAA0B,mBAAO,CAAC,wGAAqB;AACvD,cAAc,mBAAO,CAAC,gFAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ,gRAAgR;AACrV,+DAA+D,QAAQ,uRAAuR;AAC9V,qEAAqE,QAAQ,4SAA4S;AACzX;AACA;AACA,iEAAiE,uCAAuC,EAAE;AAC1G;AACA;AACA;AACA,kEAAkE,wCAAwC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,aAAa;AACb,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,aAAa;AACb,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAA2C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8C;;;;;;;;;;;;ACvMa;AACb;AACA,4CAA4C;AAC5C;AACA,8CAA8C,cAAc;AAC5D;AACA,+CAA+C,mBAAO,CAAC,6KAAkD;AACzG,eAAe,mBAAO,CAAC,uJAAuC;AAC9D;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA,uCAAuC,sBAAsB;AAC7D,0CAA0C,yBAAyB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,gEAAgE,sCAAsC,EAAE;AACxG;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,oCAAoC,4BAA4B;AAChE,2CAA2C,4BAA4B;AACvE,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA,0CAA0C,yBAAyB;AACnE,uCAAuC,sBAAsB;AAC7D,oCAAoC,2BAA2B;AAC/D,2CAA2C,kCAAkC;AAC7E,0CAA0C,yCAAyC;AACnF,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA,oFAAoF,oBAAoB,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;ACrJa;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB,iCAAiC,mCAAmC,sCAAsC;AACrK,4CAA4C,0BAA0B;AACtE,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,6C;;;;;;;;;;;;AC5Ha;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,uHAAW;AACnC,iBAAiB,mBAAO,CAAC,yHAAY;AACrC,eAAe,mBAAO,CAAC,+HAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,gGAAgG,0BAA0B,EAAE;AAC5H,4IAA4I,uDAAuD,EAAE;AACrM;AACA;AACA,wCAAwC,8DAA8D;AACtG;AACA,2CAA2C,iEAAiE;AAC5G;AACA,4CAA4C,kEAAkE;AAC9G;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,SAAS,WAAW,YAAY,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC,cAAc;AACd,KAAK;;AAEL,SAAS,WAAW;AACpB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3Ma;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,6BAA6B,mBAAO,CAAC,6FAAgC;AACrE,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,qBAAqB,mBAAO,CAAC,6FAAgC;AA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A;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8BAA8B;AAC9B,gCAAgC;AAChC,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACpDa;AACb,iBAAiB,mBAAO,CAAC,+EAAyB;AAClD,uBAAuB,mBAAO,CAAC,6FAAgC;;AAE/D;AACA;AACA;AACA,yBAAyB,gEAAgE;AACzF,CAAC;;;;;;;;;;;;ACRD,4BAA4B,mBAAO,CAAC,qGAAoC;AACxE,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,eAAe,mBAAO,CAAC,2FAA+B;;AAEtD;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;;;;;;;;;;;;;ACRa;AACb,iBAAiB,mBAAO,CAAC,+EAAyB;AAClD,uBAAuB,mBAAO,CAAC,6FAAgC;;AAE/D;AACA;AACA;AACA,yBAAyB,gEAAgE;AACzF,CAAC;;;;;;;;;;;;;ACRY;AACb,aAAa,mBAAO,CAAC,2FAA+B;AACpD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,qBAAqB,mBAAO,CAAC,yFAA8B;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV,CAAC;;;;;;;;;;;;AC7BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACp5EA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;;AAEA;AACA;AACA;AACA,CAAC;;AAE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","file":"processor.js","sourcesContent":[" \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","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { MyExportInterfaces, createExportInterfaces } from \"../interfaces/exports\";\nimport { MyImportInterfaces, createImportInterfaces } from \"../interfaces/imports\";\nimport * as Types from \"../types\";\nimport { pin_row } from \"@microchip/pin-standard\";\nimport * as AutoModuleTypes from \"../types/AutoModuleTypes\";\nimport {\n MyAutoModuleAppModel,\n createAutoModuleAppModel,\n} from \"../autoModule/AutoModuleAppModel\";\nimport {\n getFriendlyInterfaceId,\n getRegisterValues,\n} from \"../autoModule/AutoModuleHelpers\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { PCPHelper } from \"../pins/PCPHelper\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\n\ninterface PinsLogic {\n getCompletePinData(appModel: AppModel): any;\n getRowData(appModel: AppModel, rowData: pin_row): pin_row;\n}\n\nconst getPinsLogic = (): PinsLogic => {\n try {\n return require(\"../../../src/PinsLogic.ts\");\n } catch (ex) {\n const getCompletePinData = (appModel: AppModel): any => {\n return {};\n };\n const getRowData = (appModel: AppModel, rowData: pin_row): pin_row => {\n return rowData;\n };\n return {\n getCompletePinData: getCompletePinData,\n getRowData: getRowData,\n };\n }\n};\n\nexport const getModel = (\n prototype: AutoModuleTypes.MyModule,\n getDerivedData: (appModel: AutoModuleTypes.AppModel) => AutoModuleTypes.DerivedData,\n): AutoModuleTypes.AppModel | undefined => {\n return new AppModel(prototype, getDerivedData);\n};\n\nclass AppModel implements AutoModuleTypes.AppModel {\n private prototype: AutoModuleTypes.MyModule;\n private getDerivedDataFunction: (\n appModel: AutoModuleTypes.AppModel,\n ) => AutoModuleTypes.DerivedData;\n private derivedData: AutoModuleTypes.DerivedData;\n private exportInterfaces: MyExportInterfaces;\n private importInterfaces: MyImportInterfaces;\n private autoModuleAppModel: MyAutoModuleAppModel;\n private registerValues: AutoModuleTypes.MyRegisterValues | undefined;\n private interrupts: Types.Interrupts | undefined;\n private properties: Types.Properties | undefined;\n private registers: Types.Registers | undefined;\n private pcpHelper: PCPHelper;\n private defaultHardware: AutoModuleTypes.MyHardware;\n\n constructor(\n prototype: AutoModuleTypes.MyModule,\n getDerivedData: (\n appModel: AutoModuleTypes.AppModel,\n ) => AutoModuleTypes.DerivedData,\n ) {\n this.prototype = prototype;\n this.getDerivedDataFunction = getDerivedData;\n this.pcpHelper = new PCPHelper();\n this.pcpHelper.setCallbacks({\n getCompletePinData: () => getPinsLogic().getCompletePinData(this),\n getRowData: (rowData) => getPinsLogic().getRowData(this, rowData),\n });\n }\n\n public getState = (): AutoModuleTypes.MyState | undefined => this.prototype.state;\n\n public getPayload = (): AutoModuleTypes.MyPayload => this.prototype.payload;\n\n public getImports = (): Types.MyImports => this.prototype.imports;\n\n public getExports = (): Types.MyExports => this.prototype.exports;\n\n public getName = (): string => {\n return this.getAutoModuleAppModel().getModuleName();\n };\n\n public getActiveName = (): string => {\n return this.getDerivedFunctions().getActiveName?.() ?? this.getName();\n };\n\n public getGlobalNames = (): string[] => {\n return this.getDerivedFunctions().getGlobalNames?.() ?? [];\n };\n\n public getAutoModuleAppModel = (): MyAutoModuleAppModel => {\n if (this.autoModuleAppModel) return this.autoModuleAppModel;\n this.autoModuleAppModel = createAutoModuleAppModel(this);\n return this.autoModuleAppModel;\n };\n\n public getPrototypeModule = (): AutoModuleTypes.MyModule => {\n return this.prototype;\n };\n\n public getRegisterValues = (\n interfaceName?: string,\n config?: ModuleConfig,\n ): AutoModuleTypes.MyRegisterValues | undefined => {\n if (this.registerValues) return this.registerValues;\n this.registerValues = getRegisterValues(this, interfaceName, config);\n return this.registerValues;\n };\n\n public getInterrupts = (): Types.Interrupts | undefined => {\n if (this.interrupts) return this.interrupts;\n this.interrupts = this.getHardware()?.getPeripheral()?.interrupts;\n return this.interrupts;\n };\n\n public getProperties = (): Types.Properties | undefined => {\n if (this.properties) return this.properties;\n this.properties = this.getHardware()?.getPeripheral()?.properties;\n return this.properties;\n };\n\n public getRegisters = (): Types.Registers | undefined => {\n if (this.registers) return this.registers;\n this.registers = this.getHardware()?.getPeripheral()?.registers;\n return this.registers;\n };\n\n public getHardware = (\n interfaceName?: string,\n config?: ModuleConfig,\n ): AutoModuleTypes.MyHardware | undefined => {\n interfaceName = getFriendlyInterfaceId(interfaceName);\n if (interfaceName) {\n const peripheral = this.getPrototypeModule()?.imports?.[interfaceName]\n ?.payload as Types.MyPeripheral;\n if (!peripheral) return undefined;\n return {\n getPeripheral: (): Types.MyPeripheral => peripheral,\n getName: (): string => peripheral.name,\n instanceNumber: Number(\n peripheral.instance ?? peripheral.name.replace(peripheral.group, \"\"),\n ),\n };\n }\n if (!this.defaultHardware) {\n const peripheralName: string | undefined = getFriendlyInterfaceId(\n getConfigData(this, config)?.peripherals?.[0]?.interfaceId.name,\n );\n const peripheral = this.getPrototypeModule()?.imports?.[peripheralName ?? \"\"]\n ?.payload;\n if (peripheral) {\n this.defaultHardware = {\n getPeripheral: (): Types.MyPeripheral =>\n peripheral as Types.MyPeripheral,\n getName: (): string => peripheral.name,\n instanceNumber: Number(\n peripheral.instance ??\n peripheral.name.replace(peripheral.group, \"\"),\n ),\n };\n }\n }\n return this.defaultHardware;\n };\n\n public getPeripheralDescription = (): Types.MyPeripheral | undefined => {\n return this.getHardware()?.getPeripheral();\n };\n\n public getDerivedData = (): AutoModuleTypes.DerivedData => {\n if (this.derivedData) return this.derivedData;\n this.derivedData = this.getDerivedDataFunction(this);\n return this.derivedData;\n };\n\n public getDerivedFunctions = (): AutoModuleTypes.DerivedFunctions => {\n return this.getDerivedData().getMyFunctions();\n };\n\n public getDerivedFunction = (\n functionName: AutoModuleTypes.DerivedFunctionNames,\n ...args: any[]\n ): any | undefined => {\n return this.getDerivedFunctions()?.[functionName]?.(...args);\n };\n\n public getExportInterfaces = (): MyExportInterfaces => {\n if (this.exportInterfaces) return this.exportInterfaces;\n this.exportInterfaces = createExportInterfaces(this.prototype.exports, this);\n return this.exportInterfaces;\n };\n\n public getImportInterfaces = (): MyImportInterfaces => {\n if (this.importInterfaces) return this.importInterfaces;\n this.importInterfaces = createImportInterfaces(this.prototype.imports, this);\n return this.importInterfaces;\n };\n\n public isControlledByInterface = (componentName: Types.MyComponentNames): boolean => {\n return this.getExportInterfaces()?.isControlledByInterface(componentName) == true;\n };\n\n public getAssignedImport = <T extends Types.MyImportNames>(\n importName: T,\n ): Types.MyImports[T] | undefined => {\n if (\n this.prototype.imports?.[importName] &&\n Processor.isAssigned(this.prototype.imports[importName])\n ) {\n return this.prototype.imports[importName];\n }\n return undefined;\n };\n\n public getImportValue = <T extends Types.MyImportNames>(\n importName: T,\n ): Types.MyImports[T][\"payload\"] => {\n return this.getAssignedImport(importName)?.payload;\n };\n\n public filterImportBySetting = <T extends Types.MyImportNames = Types.MyImportNames>(\n populatedImports: Types.MyImports,\n importKey: T,\n optionFilter: (\n option: Processor.Option<Types.MyImports[T][\"payload\"]>,\n ) => boolean,\n ): Types.MyImports => {\n let filteredImports: Types.MyImports = {\n ...populatedImports,\n };\n if (populatedImports[importKey]) {\n filteredImports = {\n ...filteredImports,\n [importKey]: Processor.filterOptions(\n populatedImports[importKey],\n (option) => {\n return optionFilter(option);\n },\n ),\n };\n }\n return filteredImports;\n };\n\n public getComponentValue(componentName: string): any | undefined {\n return this.getAutoModuleAppModel().getComponentValue(componentName);\n }\n\n public isComponentValue = (componentName: Types.MyComponentNames): boolean => {\n const value = this.getComponentValue(componentName);\n return value === true || value === \"enabled\";\n };\n\n public getComponent = (\n componentName: Types.MyComponentNames,\n ): AutoModuleTypes.MyComponent | undefined => {\n return this.getAutoModuleAppModel().getComponent(componentName);\n };\n\n public getPCPHelper = (): PCPHelper => {\n return this.pcpHelper;\n };\n}\n","export type Dictionary<T> = Record<string, T>;\n\n/** @returns the non-prototype keys of the given object */\nexport const getKeys = (obj: object): string[] => {\n /* eslint-disable-line */\n return Object.getOwnPropertyNames(obj);\n};\n\nexport const values = <T = any>(obj: { [key: string]: T }): T[] => {\n return getKeys(obj).map((key: string): T => obj[key]);\n};\n\nexport const forEach = <T>(\n obj: Dictionary<T>,\n action: (key: string, value: T) => void,\n): void => {\n getKeys(obj).forEach((key: string): void => action(key, obj[key]));\n};\n\nexport const map = <T, R>(\n obj: Dictionary<T>,\n mapper: (key: string, value: T) => R,\n): R[] => {\n return getKeys(obj).map((key: string): R => mapper(key, obj[key]));\n};\n\ntype NonNullAssertion = <T>(val: T, msg?: string) => asserts val is NonNullable<T>;\n\nexport const assertNotNull: NonNullAssertion = <T>(\n val: T,\n msg?: string,\n): asserts val is NonNullable<T> => {\n if (val == null) {\n throw new Error(msg);\n }\n};\n\nexport const toDictionary = <T, V>(\n arr: T[],\n keyMapper: (input: T) => string,\n valueMapper: (input: T) => V,\n): Dictionary<V> => {\n const result: Dictionary<V> = {};\n arr.forEach((entry) => {\n result[keyMapper(entry)] = valueMapper(entry);\n });\n return result;\n};\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./generated_module/src/autoModule sync recursive\";","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n ModuleConfig as MyModuleConfig,\n MyComponent,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { getOptionByName } from \"@microchip/scf-device/lib/Setting\";\nimport { getConfigData } from \"./getConfigData\";\nimport { values } from \"../Utils\";\nimport { AppModel, MyHardware, MyState } from \"../types/AutoModuleTypes\";\nimport { getKeys } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { AutoModuleAppModel } from \"@microchip/scf-automodule-interface/lib/src/types\";\nimport { MyComponentNames } from \"../types\";\n\nexport const createAutoModuleAppModel = (\n model: AppModel,\n config?: MyModuleConfig,\n): MyAutoModuleAppModel => {\n return new MyAutoModuleAppModel(model, config);\n};\n\nexport class MyAutoModuleAppModel implements AutoModuleAppModel<MyComponentNames> {\n private model: AppModel;\n private state: MyState | undefined;\n private hardware: MyHardware | undefined;\n private config: MyModuleConfig;\n private componentList: any;\n private moduleName: string;\n\n constructor(model: AppModel, config?: MyModuleConfig) {\n this.model = model;\n this.state = this.model.getState();\n this.hardware = this.model.getHardware();\n this.config = getConfigData(model, config);\n this.componentList = this.createComponentList();\n }\n\n public getModuleName = (): string => {\n if (this.moduleName) return this.moduleName;\n\n this.moduleName =\n this.model.getDerivedFunctions().moduleName?.() ??\n (this.model.getComponentValue(\"componentName\") as string) ??\n this.model.getHardware()?.getName() ??\n this.config?.moduleName ??\n \"Module\";\n return this.moduleName;\n };\n\n private createComponentList = (): MyComponentValueList => {\n const componentList = {};\n\n const components: ModuleConfig.Component<\n MyComponentNames | string\n >[] = this.getComponentList(this.config);\n\n const componentsWithDynamicDependencySelectors = [\n ...components,\n ...this.getDefaultDependencySelectors(components),\n ];\n\n if (componentsWithDynamicDependencySelectors) {\n componentsWithDynamicDependencySelectors.forEach((component) => {\n componentList[component.name] = {\n component: component,\n };\n });\n }\n\n return componentList as MyComponentValueList;\n };\n\n private getDefaultDependencySelectors(\n components: ModuleConfig.Component<MyComponentNames | string>[],\n ): ModuleConfig.Component<MyComponentNames | string>[] {\n const dynamicDependencySelectors: ModuleConfig.Component<\n MyComponentNames | string\n >[] = [];\n\n let defaultTab = \"main\";\n let defaultGroup = \"software\";\n if (components.length > 0) {\n defaultTab = components[0].tabs[0];\n defaultGroup = components[0].group;\n }\n const imports = this.model.getImports();\n if (imports) {\n const importedNames = Object.keys(imports);\n\n importedNames.forEach((name) => {\n const dependencySelectors = components.filter(\n (component) =>\n component[\"importId\"] && component[\"importId\"] === name,\n );\n if (dependencySelectors.length === 0) {\n dynamicDependencySelectors.push({\n name: name + \" dependency selector\",\n importId: name,\n category: \"import\",\n type: \"ComboBox\",\n description: name + \" dependency selector\",\n group: defaultGroup,\n tabs: [defaultTab],\n });\n }\n });\n }\n\n return dynamicDependencySelectors;\n }\n\n public getAllComponents = (): MyComponentValueList => this.componentList;\n\n private getComponentList = (\n config?: MyModuleConfig,\n ): ModuleConfig.Component<MyComponentNames>[] => {\n const components: ModuleConfig.Component<MyComponentNames>[] = [];\n config = getConfigData(this.model, config);\n if (!config) return components;\n\n //Software Components\n values(config.softwareData ?? {})?.forEach((entry) => {\n components.push(entry);\n });\n\n //Hardware Components\n config.peripherals?.forEach((peripheral) => {\n if (peripheral.registers) {\n getKeys(peripheral.registers)?.forEach((registerName) => {\n peripheral.registers?.[registerName]?.forEach((setting) => {\n //Only add hardware components that exist at runtime\n const hardwareRegister = this.model.getHardware()?.getPeripheral()\n .registers?.[registerName];\n if (\n !hardwareRegister?.settings ||\n hardwareRegister.settings[setting.setting] ||\n hardwareRegister.type === \"register\"\n ) {\n components.push(setting);\n }\n });\n });\n }\n });\n\n //Custom Dynamic Components\n this.model\n .getDerivedFunctions()\n .getDynamicComponents?.()\n .forEach((component) => {\n components.push(component as ModuleConfig.Component<MyComponentNames>);\n });\n return components;\n };\n\n public isComponent(componentName: MyComponentNames): boolean | undefined;\n public isComponent(componentName: string): boolean | undefined;\n public isComponent(componentName: string): boolean | undefined {\n const component: ModuleConfig.Component<MyComponentNames> = this.componentList[\n componentName\n ]?.component;\n const componentValue = this.getComponentValue(componentName);\n if (component.category === \"software\") {\n if (component.type === \"boolean\") {\n return this.getComponentValue(componentName) as boolean;\n }\n return componentValue !== undefined;\n } else if (component.category === \"hardware\") {\n return componentValue === this.config.booleanValues.true;\n }\n return undefined;\n }\n\n public getComponentValue<T extends MyComponentNames = MyComponentNames>(\n componentName: T,\n ): MyComponent<T>[\"value\"] | undefined;\n public getComponentValue(\n componentName: string,\n ): MyComponent<any>[\"value\"] | undefined;\n public getComponentValue(\n componentName: string,\n ): MyComponent<any>[\"value\"] | undefined {\n return this.getComponent(componentName)?.value;\n }\n\n public getComponent<T extends MyComponentNames = MyComponentNames>(\n componentName: T,\n ): MyComponent<T> | undefined;\n public getComponent(componentName: string): MyComponent<any> | undefined;\n public getComponent(componentName: string): MyComponent<any> | undefined {\n if (this.componentList[componentName]?.value != undefined)\n return this.componentList[componentName];\n\n const component: ModuleConfig.Component<any> = this.componentList[componentName]\n ?.component;\n component?.tabs.forEach((tab) => {\n if (component) {\n if (component.category === \"software\") {\n this.componentList[\n componentName\n ].value = this.getSoftwareComponentValue(tab, component);\n } else if (component.category === \"hardware\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n this.model,\n component,\n );\n if (component.type === \"boolean\") {\n this.componentList[\n componentName\n ].value = this.getHardwareComponentBooleanValue(\n tab,\n component,\n setting,\n );\n } else {\n this.componentList[\n componentName\n ].value = this.getHardwareComponentValue(tab, component, setting);\n }\n } else if (component.category === \"import\") {\n this.componentList[\n componentName\n ].value = this.getDependencyComponentValue(component);\n }\n this.componentList[componentName].component.actions = this.getActions(\n component,\n );\n }\n });\n\n return this.componentList[componentName];\n }\n\n private getActions = (\n component: ModuleConfig.Component<MyComponentNames>,\n ): ModuleConfig.AutoAction | undefined => {\n return (\n this.model.getDerivedFunctions().getActions?.(component.name) ??\n component.actions\n );\n };\n\n public getDefaultComponentAction = (\n componentName: MyComponentNames,\n ): ModuleConfig.AutoAction => {\n const component = this.getComponent(componentName)?.component;\n return {\n type: \"[FORM] SUBMIT\",\n payload: {\n tabId: \"main\",\n path: `${component?.group}.${component?.name}`,\n value: \"%v\",\n },\n };\n };\n\n private getSoftwareComponentValue = (\n tab: string,\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n ): any => {\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n return (\n this.state?.[tab]?.[component.group]?.[component.name] ??\n AutoModuleHelper.getDefaultValue(\n this.model.getDerivedFunctions().overrideDefaultValues,\n component,\n )\n );\n };\n\n public getHardwareComponentValue = (\n tab: string,\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n setting: Setting | undefined,\n ): string | undefined => {\n if (!this.hardware) return undefined;\n\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n const overriddenCompValue = AutoModuleHelper.getOverrideDefaultValue(\n component,\n this.model,\n );\n\n let value: any; // value based on priority\n if (this.state?.[tab]?.[component.group]?.[component.name] != null) {\n value = this.state[tab][component.group][component.name];\n } else if (overriddenCompValue !== undefined) {\n value = overriddenCompValue;\n } else {\n value =\n setting !== undefined\n ? component.overrideDefaultValue\n ? component.overrideDefaultValue\n : this.getDefaultValue(component.displayOptionSetting, setting)\n : component.overrideDefaultValue ?? undefined;\n }\n\n //if filtered mode -> get options\n if (value != undefined && component.mode?.operation === \"filterOptions\") {\n const options = AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n this.model.getComponent(component.mode?.masterComponent)?.value,\n );\n if (options.indexOf(value) == -1) {\n value = options[0];\n }\n }\n return value;\n };\n\n public getHardwareComponentBooleanValue = (\n tab: string,\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n setting: Setting | undefined,\n ): string | undefined => {\n if (!this.hardware) return undefined;\n\n const overriddenValue = this.model.getDerivedFunction(component.name);\n if (overriddenValue != undefined) {\n return overriddenValue;\n }\n\n if (this.model.isControlledByInterface(component.name)) {\n const processedArg = this.model\n .getExportInterfaces()\n .getProcessedArgValue(component.name);\n if (processedArg != undefined) {\n return processedArg.value;\n }\n }\n\n const overriddenCompValue = AutoModuleHelper.getOverrideDefaultValue(\n component,\n this.model,\n );\n\n return this.state?.[tab]?.[component.group]?.[component.name] != null\n ? this.state[tab][component.group][component.name]\n ? this.config.booleanValues.true\n : this.config.booleanValues.false\n : overriddenCompValue !== undefined\n ? overriddenCompValue\n : setting !== undefined\n ? component.overrideDefaultValue\n ? component.overrideDefaultValue\n : this.getDefaultValue(component.displayOptionSetting, setting)\n : undefined;\n };\n\n public getDependencyComponentValue = (\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): string | undefined => {\n const dependencySelector: AutoModuleHelper.DependencySelector = new AutoModuleHelper.DependencySelector(\n this.model,\n component,\n );\n const imp = this.model.getImports()[component.importId];\n if (imp?.handle) {\n return dependencySelector.createOptionLabel(imp.handle, imp.payload);\n }\n return \"None\";\n };\n\n private getDefaultValue = (\n optionType: string | undefined,\n setting: Setting,\n ): string | undefined => {\n if (optionType == undefined) return setting.defaultValue;\n if (setting.defaultValue) {\n return getOptionByName(setting.defaultValue, setting)?.[optionType];\n }\n return undefined;\n };\n}\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport * as Creator from \"@microchip/scf-common/lib/Creator\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { isAssigned } from \"@microchip/scf-common/lib/Processor\";\nimport { getConfigData } from \"./getConfigData\";\nimport { map } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { Peripheral } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { getFriendlyInterfaceId } from \"./AutoModuleHelpers\";\n\nexport const createPrototypeImport = (\n interfaceName: string,\n config?: ModuleConfig,\n): Creator.Interface | undefined => {\n config = getConfigData(undefined, config);\n return config?.imports?.[interfaceName]?.import;\n};\n\nexport const isFullyAssigned = <T extends Processor.Imports = Processor.Imports>(\n imports: T,\n config?: ModuleConfig,\n): boolean => {\n config = getConfigData(undefined, config);\n\n //get peripheral interfaces.\n const interfaces = getHardwareInterfaces(config?.peripherals ?? []);\n\n for (let i = 0; i < interfaces.length; i++) {\n const imp = imports[interfaces[i]];\n if (!imp || !isAssigned(imp)) {\n return false;\n }\n }\n return true;\n};\n\n//Assumes hardware import keys are the same as the interface IDs\nconst getHardwareInterfaces = (peripherals: Peripheral[]): string[] => {\n const interfaces: string[] = map(peripherals, (peripheral) => {\n return getFriendlyInterfaceId(peripheral.interfaceId.name) ?? \"\";\n });\n return interfaces;\n};\n","/* eslint @typescript-eslint/no-var-requires: \"off\" */\nimport { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as Device from \"@microchip/scf-device\";\nimport { find, filter, map } from \"@microchip/scf-device/lib/util/Arrays\";\nimport CalculateRegisterValue from \"@microchip/scf-device/lib/CalculateRegisterValue\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { getOptionByAlias, getOptionByName } from \"@microchip/scf-device/lib/Setting\";\nimport { getConfigData } from \"./getConfigData\";\nimport { getKeys } from \"../Utils\";\nimport { MyComponentNames, MyPeripheral, Register } from \"../types\";\nimport {\n AppModel,\n ModuleConfig as MyModuleConfig,\n MyRegisterValues,\n} from \"../types/AutoModuleTypes\";\nimport {\n RegisterValue,\n SettingValue,\n} from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { SoftwareComboBoxComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\nimport { Import, Option } from \"@microchip/scf-common/lib/Processor\";\nimport { Handle } from \"@microchip/scf-common\";\n\nexport const castComponent = (\n component: ModuleConfig.Component<MyComponentNames>,\n): ModuleConfig.Component<MyComponentNames> => {\n switch (component.category) {\n case \"software\":\n return component;\n case \"import\":\n return component;\n case \"hardware\":\n return component;\n default:\n throw Error(\"Unsupported Component Type\");\n }\n};\n\nexport const getDefaultValue = (\n overrideDefaultValues: ((componentName: MyComponentNames) => any) | undefined,\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n): ModuleConfig.SoftwareComponent[\"defaultValue\"] => {\n return (\n overrideDefaultValues?.(component.name) ??\n (component.type === \"ComboBox\"\n ? component.defaultValue.value\n : component.defaultValue)\n );\n};\n\nexport const getComboOptions = (\n overrideOptions: ((componentName: MyComponentNames) => string[]) | undefined,\n component: SoftwareComboBoxComponent<MyComponentNames>,\n): any[] => {\n return overrideOptions?.(component.name) ?? component?.defaultValue?.[\"options\"];\n};\n\nexport const hasConfigBits = (interfaceName: string): boolean => {\n return getFriendlyInterfaceId(interfaceName)?.indexOf(\"configuration_bits\") != -1;\n};\n\nexport const getRegisterValues = (\n model: AppModel,\n interfaceName?: string,\n config?: MyModuleConfig,\n): MyRegisterValues => {\n const registers: MyRegisterValues = {} as MyRegisterValues;\n config = getConfigData(model, config);\n interfaceName = getFriendlyInterfaceId(interfaceName);\n\n config?.peripherals?.forEach((peripheral) => {\n const peripheralName = getFriendlyInterfaceId(peripheral.interfaceId.name) ?? \"\";\n if (hasConfigBits(peripheralName)) return;\n if (\n (interfaceName != undefined && peripheralName !== interfaceName) ||\n !peripheral.registers\n )\n return;\n getKeys(peripheral.registers ?? {})?.forEach((regName) => {\n let registerValue: RegisterValue<string>;\n const reg = model.getHardware(peripheralName)?.getPeripheral().registers?.[\n regName\n ];\n if (reg) {\n registerValue = {\n comment: \"\",\n value: 0,\n valueAsHex: \"0x00\",\n name: reg?.name,\n alias: reg?.alias ?? reg?.name,\n settings: {},\n };\n } else {\n return;\n }\n\n const registerVal = CalculateRegisterValue.for(reg as Device.Register);\n const comments: string[] = [];\n peripheral.registers?.[regName].forEach((set) => {\n const setting: Device.Setting | undefined = reg.settings?.[set.setting];\n if (setting) {\n if (setting.type !== \"R\") {\n //Add Comments\n comments.push(\n `${set.setting} ${model.getComponentValue(set.name)}; `,\n );\n }\n if (registerValue?.settings) {\n registerValue.settings[setting.alias] = getSettingBits(\n reg,\n setting,\n model.getComponent(set.name)?.value as string,\n config?.deviceType ?? \"PIC\",\n );\n }\n switch (set.type) {\n case \"ComboBox\":\n case \"boolean\":\n registerVal.withNumberValue(\n setting,\n getOptionValueByName(\n setting,\n model.getComponent(set.name)?.value as string,\n ) ?? 0,\n );\n break;\n case \"number\":\n registerVal.withNumberValue(\n setting,\n model.getComponentValue(set.name as string) as number,\n );\n break;\n case \"register\":\n case \"string\":\n registerVal.withNumberValue(\n setting,\n Number(model.getComponentValue(set.name)),\n );\n break;\n default:\n break;\n }\n }\n });\n if (reg.settings) {\n registerValue.value = registerVal.asNumber();\n } else {\n registerValue.value = Number(\n model.getComponentValue(\n peripheral.registers?.[regName]?.[0]?.name ?? \"\",\n ) ?? 0,\n );\n comments.push(`${registerValue.name} ${registerValue.value}; `);\n }\n registerValue.valueAsHex =\n \"0x\" + registerValue.value.toString(16).toUpperCase();\n registerValue.comment = sortComments(comments, reg);\n\n registers[reg?.alias ?? reg.name] = registerValue;\n });\n });\n\n return registers;\n};\n\nconst sortComments = (comments: string[], register: Register): string => {\n comments.sort((a, b): number => {\n const settingA = register.settings?.[a.split[\" \"]?.[0]];\n const settingB = register.settings?.[b.split(\" \")?.[0]];\n return Number(settingB?.mask) - Number(settingA?.mask);\n });\n\n return comments.join(\"\");\n};\n\nexport const getSettingBits = (\n register: Register,\n setting: Device.Setting,\n value: string,\n deviceType: string,\n): SettingValue => {\n const setValNumber = Number(getOptionByAlias(value, setting)?.value ?? 0);\n const settingValue: SettingValue = {\n alias: setting.alias,\n name: setting.name,\n value: setValNumber ?? 0,\n valueAsHex: \"0x\" + setValNumber.toString(16).toUpperCase(),\n valueAsDescription: value,\n bitName:\n deviceType === \"PIC\"\n ? `${register.name}bits.${setting.name}`\n : `${register.name}.${setting.name}`,\n };\n return settingValue;\n};\n\nconst getRegisterFromComponent = (\n hardware: MyPeripheral | undefined,\n component: ModuleConfig.HardwareComponent,\n): Register | undefined => {\n const registerName = component.name\n .replace(component.setting.toLowerCase(), \"\")\n ?.toUpperCase();\n const register = hardware?.registers?.[registerName];\n\n if (register) {\n return register;\n } else {\n const regName = component.name\n .replace(component.setting.toLowerCase(), \"\")\n ?.toUpperCase();\n let registers: string[] | undefined = getKeys(hardware?.registers ?? {});\n for (let reg of registers ?? []) {\n const modifiedRegName = reg.replace(/\\_/g, \"\");\n if (regName === modifiedRegName) {\n return hardware?.registers?.[reg];\n }\n }\n }\n};\n\nexport const getSettingFromComponent = (\n model: AppModel,\n component: ModuleConfig.HardwareComponent,\n config?: MyModuleConfig,\n): Device.Setting | undefined => {\n config = getConfigData(model, config);\n let setting: Device.Setting | undefined;\n\n if (model) {\n config?.peripherals?.forEach((peripheral) => {\n if (setting) return;\n const peripheralName = getFriendlyInterfaceId(peripheral.interfaceId.name);\n const hardware = model.getHardware(peripheralName, config)?.getPeripheral();\n const register = getRegisterFromComponent(hardware, component);\n if (register && !register.settings) {\n //No settings for this particular register. Create one\n setting = {\n alias: register.alias ?? register.name,\n name: register.name,\n defaultValue: register.defaultValue,\n type: register.type,\n description: register.desc,\n porDefault: register.defaultValue,\n };\n } else {\n setting = register?.settings?.[component.setting];\n }\n });\n }\n\n return setting;\n};\n\nexport const getOptionValueByName = (\n setting: Device.Setting,\n optionName: string,\n): number | undefined => {\n if (!setting) return undefined;\n\n let optionValue: string | undefined = setting.porDefault;\n if (setting.options) {\n setting.options.forEach((option) => {\n if (option.name === optionName || option.description === optionName) {\n optionValue = option.value;\n }\n });\n }\n return Number(optionValue);\n};\n\nexport const getSettingDefaultIfPresent = (\n component: ModuleConfig.HardwareComponent,\n setting: Setting | undefined,\n overrideDefaultValue: any | undefined,\n): string | undefined => {\n let defaultValue: string | undefined;\n if (overrideDefaultValue !== undefined) {\n return overrideDefaultValue;\n }\n if (component.overrideDefaultValue) {\n return component.overrideDefaultValue;\n }\n\n if (setting?.defaultValue) {\n const option = getOptionByName(setting.defaultValue, setting);\n defaultValue =\n option?.[component.displayOptionSetting ?? \"alias\"] ?? setting.defaultValue;\n }\n return defaultValue;\n};\nexport const getOverrideDefaultValue = (\n component: ModuleConfig.HardwareComponent,\n model: AppModel,\n): string | undefined => {\n return model.getDerivedFunctions().overrideDefaultValues?.(component.name);\n};\n\nexport const getSettingOptionsIfPresent = (\n component: ModuleConfig.HardwareComponent,\n setting: Device.Setting | undefined,\n masterComponentValue?: string,\n): string[] => {\n let options = [\"\"];\n\n if (setting) {\n const filteredOptions = component.mode\n ? filterModeOptions(setting.options ?? [], component, masterComponentValue)\n : setting.options;\n options = map(\n filteredOptions ?? [],\n (option) => option[component.displayOptionSetting ?? \"alias\"] ?? option.alias,\n );\n }\n return options;\n};\n\nconst filterModeOptions = (\n options: Device.Option[],\n component: ModuleConfig.Component,\n masterComponentValue?: string,\n): Device.Option[] => {\n if (component.mode?.operation != \"filterOptions\" || masterComponentValue == undefined)\n return options;\n //Determine mode\n const mode: string = find(\n getKeys(component.mode?.optionModes ?? {}) ?? [],\n (mode) => {\n const match = component.mode?.optionModes?.[mode];\n if (match) {\n return (masterComponentValue?.match(match)?.length ?? -1) > 0;\n }\n return false;\n },\n );\n const filteredOptions = filter(options ?? [], (option) => {\n if (option.mode) {\n const match = component.mode?.optionModes?.[mode];\n if (match) {\n return (option.mode.match(match)?.length ?? -1) > 0;\n }\n }\n return true;\n });\n return filteredOptions;\n};\n\nexport const getProcessedHandle = (\n handle: Handle | undefined,\n payload: Import[\"payload\"] | undefined,\n): Handle | undefined => {\n if (handle) {\n handle = {\n ...handle,\n label:\n payload?.moduleName ??\n payload?.name ??\n handle.label ??\n handle.providerId + \" : \" + handle.exportId,\n };\n }\n\n return handle;\n};\n\nexport interface DependencyDropdownOption {\n label: string;\n value?: Option<any, any>;\n}\nexport class DependencySelector {\n private noneSelection: DependencyDropdownOption = { label: \"None\" };\n private model: AppModel;\n private component: ModuleConfig.DependencyComponent<MyComponentNames>;\n\n constructor(\n model: AppModel,\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ) {\n this.model = model;\n this.component = component;\n }\n\n generateDropdownOptions(): DependencyDropdownOption[] {\n const dropdownOptions: DependencyDropdownOption[] = [];\n const thisImport: Import | undefined = this.model.getImports()[\n this.component.importId\n ];\n const options: Option<any, any>[] | undefined = thisImport?.options;\n\n if (this.shouldAllowUnselectDependency(thisImport, options)) {\n dropdownOptions.push(this.noneSelection);\n }\n if (options) {\n for (const option in options) {\n dropdownOptions.push(this.createOptionEntry(options[option]));\n }\n }\n\n return dropdownOptions;\n }\n\n getDropdownOptionNames(): string[] {\n const names: string[] = [];\n this.generateDropdownOptions().forEach((option) => names.push(option.label));\n return names;\n }\n\n private createOptionEntry = (option: Option): DependencyDropdownOption => {\n return {\n label: this.createOptionLabel(option.handle, option.payload),\n value: option,\n };\n };\n\n createOptionLabel = (handle: Handle, payload: Import[\"payload\"]): string => {\n return getProcessedHandle(handle, payload)?.label ?? \"\";\n };\n\n private shouldAllowUnselectDependency(\n thisImport: Import | undefined,\n options: Option<any, any>[] | undefined,\n ): boolean {\n return (\n thisImport != undefined &&\n thisImport.isUnassignable != false &&\n options !== undefined\n );\n }\n}\n\nexport function getModuleDefaultDescription(): string | undefined {\n const packageJson = require(\"../../../package.json\");\n let desc: string | undefined;\n if (packageJson) {\n desc = packageJson.scf?.description;\n } else {\n desc = undefined;\n }\n return desc;\n}\n\nexport const getFriendlyInterfaceId = (\n interfaceName: string | undefined,\n): string | undefined => {\n interfaceName = interfaceName?.replace(/ /g, \"\").replace(/-/g, \"_\");\n\n return interfaceName;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport {\n AppModel,\n TemplateSettings,\n ModuleConfig as MyModuleConfig,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport { ConfigValues } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { Setting } from \"@microchip/scf-device\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { getConfigData } from \"./getConfigData\";\nimport { values, getKeys } from \"../Utils\";\nimport { isFullyAssigned } from \"./AutoModuleHardware\";\nimport { getComboOptions } from \"./AutoModuleHelpers\";\nimport { MyComponentNames } from \"../types\";\nimport { ComponentValueTypes } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { ComboBox } from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { SoftwareComboBoxComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\n\nexport const getTemplates = (\n model: AppModel | undefined,\n config?: MyModuleConfig,\n): Processor.Template[] => {\n config = getConfigData(model, config);\n\n const templates: Processor.Template[] = [];\n config?.templates?.forEach((template) => {\n const newTemplate: ModuleConfig.AutoTemplate = {\n ...template,\n };\n if (!model) return;\n\n newTemplate.dest =\n model.getDerivedFunctions().templateName?.(newTemplate.src) ??\n newTemplate.dest;\n\n newTemplate.dest = newTemplate.dest.replace(\n \"${sourceFileName}\",\n model.getName().toLowerCase() + \".c\",\n );\n newTemplate.dest = newTemplate.dest.replace(\n \"${headerFileName}\",\n model.getName().toLowerCase() + \".h\",\n );\n\n if (shouldGenerate(newTemplate, model)) {\n templates.push(newTemplate);\n }\n });\n\n return templates;\n};\n\nconst shouldGenerate = (\n template: ModuleConfig.AutoTemplate,\n model: AppModel,\n): boolean => {\n let shouldGenerate = true;\n if (!model) return shouldGenerate;\n if (\n shouldGenerate &&\n template.generateWithHardware == true &&\n !isFullyAssigned(model.getPrototypeModule().imports)\n ) {\n shouldGenerate = false;\n }\n if (\n shouldGenerate &&\n template.isGeneratableProperty &&\n model.getDerivedFunction(template.isGeneratableProperty) != true\n ) {\n shouldGenerate = false;\n }\n return shouldGenerate;\n};\n\nexport const getTemplatePayload = (\n model: AppModel | undefined,\n config?: MyModuleConfig,\n): any => {\n if (!model) return undefined;\n config = getConfigData(model, config);\n const moduleName = model.getName();\n\n let templatePayload = {\n name: {\n uppercase: moduleName.toUpperCase(),\n lowercase: moduleName.toLowerCase(),\n instance: moduleName,\n },\n filename: {\n source: `${moduleName.toLowerCase()}.c`,\n header: `${moduleName.toLowerCase()}.h`,\n },\n };\n\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n values(components)?.forEach((entry) => {\n templatePayload[entry.component.name] = getComponentPayload(\n entry.component,\n model,\n );\n });\n\n templatePayload = {\n ...templatePayload,\n ...getTemplateSettings(model, config),\n };\n\n return templatePayload;\n};\n\nexport const getTemplateSettings = (\n model: AppModel,\n config?: MyModuleConfig,\n): TemplateSettings | undefined => {\n if (!model?.getHardware()) return undefined;\n\n return {\n registers: model.getRegisterValues(undefined, config),\n interrupts: model.getHardware()?.getPeripheral().interrupts,\n properties: model.getHardware()?.getPeripheral().properties,\n };\n};\n\nexport const getConfigBits = (model: AppModel, config?: MyModuleConfig): ConfigValues => {\n config = getConfigData(model, config);\n const configModule: ModuleConfig.Peripheral<MyComponentNames> = find(\n config?.peripherals ?? [],\n (peripheral) => {\n return AutoModuleHelper.hasConfigBits(peripheral.interfaceId.name);\n },\n );\n if (configModule) {\n const interfaceName = AutoModuleHelper.getFriendlyInterfaceId(\n configModule.interfaceId.name,\n );\n let templateConfigBits: ConfigValues = {};\n const registers = model.getHardware(interfaceName)?.getPeripheral().registers;\n getKeys(registers ?? [])?.forEach((configName) => {\n const configBits = configModule.registers?.[configName];\n templateConfigBits = {\n ...templateConfigBits,\n [configName]: {},\n };\n configBits?.forEach((configBit) => {\n const register = registers?.[configName];\n let value: string;\n if (register && !register.settings) {\n //missing settings for register\n value = model.getComponent(configBit.name)?.value ?? \"\";\n } else {\n const setting: Setting | undefined =\n registers?.[configName]?.settings?.[configBit.setting];\n value = find(\n setting?.options ?? [],\n (option) =>\n option.description ===\n model.getComponent(configBit.name)?.value ||\n option.alias === model.getComponent(configBit.name)?.value ||\n option.name === model.getComponent(configBit.name)?.value,\n )?.name;\n }\n\n templateConfigBits[configName][configBit.setting] = {\n name: configBit.setting,\n value: value,\n description: configBit.description,\n valueAsDescription: model.getComponent(configBit.name)\n ?.value as string,\n };\n });\n });\n return templateConfigBits;\n } else {\n return {};\n }\n};\n\nconst getComponentPayload = (\n component: ModuleConfig.Component<MyComponentNames>,\n model: AppModel,\n): ComponentValueTypes | ComboBox => {\n const componentValue = model.getComponentValue(component.name);\n switch (component.type) {\n case \"ComboBox\":\n if (component.category === \"hardware\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n model,\n component,\n );\n return {\n value: componentValue,\n options: AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n model.getComponentValue(\n component.mode?.masterComponent ?? \"\",\n ) as string,\n ),\n };\n } else if (component.category === \"software\") {\n return {\n value: componentValue,\n options: getComboOptions(\n model.getDerivedFunctions().overrideOptions,\n component as SoftwareComboBoxComponent<MyComponentNames>,\n ),\n };\n }\n break;\n case \"boolean\":\n return model.isComponentValue(component.name);\n case \"number\":\n case \"string\":\n case \"register\":\n default:\n return componentValue;\n }\n};\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport * as AutoModuleHelper from \"./AutoModuleHelpers\";\nimport {\n DependencyDropdownOption,\n DependencySelector,\n getModuleDefaultDescription,\n} from \"./AutoModuleHelpers\";\nimport { Setting } from \"@microchip/scf-device/lib/Setting\";\nimport {\n ActionsObject,\n CustomUiPropertiesWrapper,\n Error,\n SimpleFormPayload,\n SimpleFormPayloads,\n TableColumn,\n} from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { CreateRegisterView } from \"@microchip/scf-register-view-helper\";\nimport { isFullyAssigned } from \"./AutoModuleHardware\";\nimport { getConfigData } from \"./getConfigData\";\nimport { getKeys, values } from \"../Utils\";\nimport { Interrupt, Module, Register } from \"@microchip/scf-device\";\nimport {\n AppModel,\n ModuleConfig as MyModuleConfig,\n MyComponentValueList,\n} from \"../types/AutoModuleTypes\";\nimport { MyComponentNames, MyImportNames } from \"../types\";\nimport { ExportArg } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { TableComponent } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { Handle, InterfaceId } from \"@microchip/scf-common\";\nimport {\n createTableUids,\n getCellValidationInfo,\n getCellStyle,\n calculateColumnWidth,\n getTableActions,\n getTableComponentSchema,\n getTableFormData,\n getTableUiSchema,\n} from \"../tables/tables\";\nimport { ComponentValue } from \"@microchip/scf-automodule-interface/lib/src/types\";\nimport { getAutoSdlHelp } from \"./ContextualHelp\";\nimport * as registerFilter from \"./RegisterFilterMode\";\nimport { DefaultPeripheral } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { SoftwareStringComponent } from \"@microchip/scf-automodule-interface/lib/src/SoftwareComponents\";\nimport { Meta } from \"@microchip/scf-device/lib/Meta\";\n\nexport const createAutoViewPayloads = (\n model: AppModel,\n config?: MyModuleConfig,\n): SimpleFormPayloads<any> => {\n config = getConfigData(model, config);\n const payloads: SimpleFormPayloads<any> = {\n main: {},\n };\n if (config?.tabs) {\n Object.keys(config.tabs).forEach((tab) => {\n if (tab === \"register\") {\n payloads[tab] = createSimpleFormPayloadRegister();\n } else {\n payloads[tab] = {\n schema: createSchema(tab),\n uiSchema: createUiSchema(tab),\n formData: createFormData(tab),\n scfUiSchema: createScfUiSchema(tab),\n name: config?.tabs[tab],\n table: shouldPopulateView()\n ? model?.getDerivedFunction(\"getTableData\")\n : undefined,\n expandGroupsByDefault: config?.UIGroupCollapse\n ? config.UIGroupCollapse\n : true,\n };\n }\n });\n }\n return payloads;\n\n function createSchema(tab: string): any {\n let schema: any = {};\n if (config) {\n const populateView = shouldPopulateView();\n schema = {\n description:\n model?.getDerivedFunctions()?.getModuleDescription?.() ??\n getModuleDefaultDescription(),\n title: config.moduleName,\n type: \"object\",\n properties: {},\n };\n\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n const schemaBuilder = {\n properties: {},\n };\n values(components ?? {})?.forEach((entry) => {\n const component = entry.component;\n\n if (!populateView && component.category != \"import\") return; //always display imports\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (!schemaBuilder[component.group]) {\n schemaBuilder[component.group] = {\n title:\n model\n .getDerivedFunctions()\n .overrideGroupTitle?.(component.group) ??\n config?.UIGroups[component.group],\n description: model\n .getDerivedFunctions()\n .overrideGroupDescription?.(component.group),\n type: \"object\",\n properties: {},\n };\n }\n schemaBuilder[component.group].properties = {\n ...schemaBuilder[component.group].properties,\n ...getComponentSchema(component, tab),\n };\n });\n\n //Sort groups based on order of UIGroups and remove groups with no components\n getKeys(config.UIGroups ?? {})?.forEach((group) => {\n if ((getKeys(schemaBuilder[group]?.properties ?? {})?.length ?? -1) > 0) {\n schema.properties[group] = schemaBuilder[group];\n }\n });\n }\n return schema;\n }\n\n function createUiSchema(tab: string): any {\n const uiSchema = {};\n if (config) {\n if (config.UIOrder) {\n getKeys(config.UIOrder ?? {})?.forEach((group) => {\n uiSchema[group] = {\n \"ui:order\": config?.UIOrder?.[group],\n };\n });\n }\n //components\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n const isGroupHidden: Record<string, boolean> = {};\n\n values(components ?? {})?.forEach((entry) => {\n const component = entry.component;\n\n const tabIndex = component.tabs?.indexOf(tab) ?? -1;\n if (tabIndex === -1) return;\n\n const isComponentGroupHidden =\n isGroupHidden[component.group] === undefined ||\n isGroupHidden[component.group] === true;\n\n if (isComponentGroupHidden) {\n const isHidden: boolean =\n component.uiBehavior?.[\"ui:widget\"] === \"hidden\" ?? false;\n\n isGroupHidden[component.group] = isHidden;\n }\n\n if (component.category === \"table\") {\n const table: TableComponent = component;\n const tableCols = table.columns;\n const colNames: string[] = Object.keys(tableCols);\n const columns: TableColumn[] = [];\n const defaultColumnWidth: string = calculateColumnWidth(tableCols);\n colNames.forEach((name) => {\n const isColEditable = !tableCols[name].readonly;\n columns.push({\n dataField: name,\n editable: isColEditable ? undefined : false,\n columnWidth: tableCols[name].columnWidth\n ? tableCols[name].columnWidth + \"%\"\n : defaultColumnWidth,\n width: tableCols[name].width\n ? tableCols[name].width + \"%\"\n : defaultColumnWidth,\n dataSort: tableCols[name].isSortable,\n headerAlign:\n tableCols[name].headerAlign ??\n tableCols[name].dataAlign ??\n \"left\",\n dataAlign:\n tableCols[name].dataAlign ??\n tableCols[name].headerAlign ??\n \"left\",\n tdStyle: getCellStyle(tableCols[name].readonly),\n headerText: tableCols[name]?.[\"columnTip\"],\n });\n });\n uiSchema[table.group] = {\n ...uiSchema[table.group],\n [table.name]: getTableUiSchema(table, columns),\n };\n } else {\n uiSchema[component.group] = {\n ...uiSchema[component.group],\n [component.name]: {\n ...getUiBehavior(component),\n ...getUiSchemaExportArg(component.name),\n },\n };\n }\n });\n\n for (const group in isGroupHidden) {\n if (isGroupHidden[group]) {\n uiSchema[group] = {\n ...uiSchema[group],\n [\"ui:widget\"]: \"hidden\",\n };\n }\n }\n }\n return uiSchema;\n }\n\n function createFormData(tab: string): any {\n const formData: any = {};\n if (config) {\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n\n values(components)?.forEach((entry) => {\n if (!config) return;\n const component = entry.component;\n let value: any = model.getComponentValue(component.name);\n\n if (\n component.type === \"boolean\" &&\n (value === config.booleanValues.true ||\n value === config.booleanValues.false)\n ) {\n value = value === config.booleanValues.true;\n }\n\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (component.category === \"table\") {\n value = getTableFormData(model, component, tab);\n }\n formData[component.group] = {\n ...formData[component.group],\n [component.name]: value,\n };\n });\n }\n return formData;\n }\n\n function createScfUiSchema(tab: string): any {\n const scfUiSchema: CustomUiPropertiesWrapper = {};\n if (config) {\n const components: MyComponentValueList = model\n .getAutoModuleAppModel()\n .getAllComponents();\n values(components)?.forEach((entry) => {\n const component = entry.component;\n if (component.tabs.indexOf(tab) == -1) return;\n\n if (!scfUiSchema[component.group]) {\n scfUiSchema[component.group] = {};\n }\n if (!scfUiSchema[component.group][component.name]) {\n scfUiSchema[component.group][component.name] = {};\n }\n\n let actions: ActionsObject | ActionsObject[] | undefined =\n component.category === \"import\"\n ? getDependencySelectorActions(component)\n : getActions(component);\n\n const transformErrors: Error[] | undefined = model.getDerivedFunction(\n \"getCustomUiErrors\",\n component.name,\n );\n if (model.getImports()) {\n const deviceMeta: Meta = model.getImportValue(\"device_meta\");\n const hasSdlSupport: boolean = deviceMeta?.hasSdlSupport ?? false;\n if (component.sdlHelp && hasSdlSupport) {\n scfUiSchema[component.group][component.name][\"helpKeyword\"] =\n model.getDerivedFunction(\n \"getHelpUrl\",\n component.name,\n component.sdlHelp.url,\n ) ??\n getAutoSdlHelp(model, component.name, component.sdlHelp.url);\n scfUiSchema[component.group][component.name][\"tooltip\"] =\n component.sdlHelp?.tooltip ?? \"Click for more information\";\n }\n }\n if (component.category === \"table\") {\n const tableState = model?.getState()?.[tab]?.[component.group]?.[\n component.name\n ];\n const uids = createTableUids(component, tab, model, tableState);\n const cellValidationInfo = getCellValidationInfo(component);\n scfUiSchema[component.group][component.name][\"table\"] = {\n canRemoveRows: component.canRemoveRows,\n canInsertRows: component.canInsertRows,\n canAddRows: component.canAddRows,\n canMoveRowDown: component.canMoveRowDown,\n canMoveRowUp: component.canMoveRowUp,\n uids: uids,\n cellValidationInfo: cellValidationInfo,\n };\n actions = getTableActions(component, tab, model, uids);\n }\n if (actions) {\n scfUiSchema[component.group][component.name][\"actions\"] = actions;\n }\n if (transformErrors) {\n scfUiSchema[component.group][component.name][\n \"transformErrors\"\n ] = transformErrors;\n }\n });\n }\n return scfUiSchema;\n }\n function getDependencySelectorActions(\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): ActionsObject {\n const depSelector: DependencySelector = new DependencySelector(model, component);\n const options: DependencyDropdownOption[] = depSelector.generateDropdownOptions();\n const dependencySelectorActions: ImportAction[] = [];\n options.forEach((dropdownOption) => {\n const option = dropdownOption.value;\n dependencySelectorActions.push({\n type: \"[Import] SET\",\n payload: {\n importId: component.importId,\n handle: option?.handle,\n interfaceId: option?.interfaceId,\n option: dropdownOption.label,\n },\n });\n });\n return JSON.stringify(dependencySelectorActions);\n }\n\n function getActions(component: ModuleConfig.Component): ActionsObject | undefined {\n const actions: ModuleConfig.AutoAction | undefined = model.getDerivedFunction(\n \"getActions\",\n component.name,\n component.actions,\n );\n return JSON.stringify(actions); //TODO: support map\n }\n\n function shouldPopulateView(): boolean {\n if (displayViewOnImportAssigned() === false) return false;\n\n if (\n model.getDerivedFunctions().shouldPopulateViewAtStartup?.() === true ||\n isFullyAssigned(model.getPrototypeModule().imports)\n ) {\n return true;\n }\n return false;\n }\n\n function displayViewOnImportAssigned(): boolean {\n let shouldPopulateView = true;\n if (config?.displayViewOnImportAssigned) {\n config.displayViewOnImportAssigned.forEach((impKey) => {\n if (model.getAssignedImport(impKey as MyImportNames) == undefined) {\n shouldPopulateView = false;\n }\n });\n }\n return shouldPopulateView;\n }\n\n function getComponentSchema(\n component: ModuleConfig.Component<MyComponentNames>,\n tab: string,\n ): any {\n let schema = {};\n\n if (component.tabs.indexOf(tab) == -1) return schema;\n //check isVisible - user override\n const isVisible: boolean = model.getDerivedFunction(\"isVisible\", component.name);\n if (isVisible === false) {\n return schema;\n }\n if (\n component.isVisibleProperty &&\n model?.getDerivedFunction(component.isVisibleProperty) == false\n ) {\n return schema;\n }\n //check for modes\n if (isModeActive(\"isVisible\", component) === false) {\n return schema;\n }\n if (component.category === \"software\") {\n //add software component\n schema = getSoftwareComponentSchema(component);\n } else if (component.category === \"hardware\") {\n //add hardware component\n schema = getHardwareComponentSchema(component);\n } else if (component.category === \"import\") {\n schema = getDependencyComponentSchema(component);\n } else if (component[\"category\"] === \"table\") {\n //add table component\n schema = getTableComponentSchema(component, model);\n }\n if (schema == undefined) return schema;\n\n //add validator if present\n if (\n component.validation &&\n model &&\n model.getDerivedFunctions()[component.name + \"Validator\"]\n ) {\n schema = {\n ...schema,\n ...model.getDerivedFunctions()[component.name + \"Validator\"](),\n };\n }\n\n schema = {\n [component.name]: {\n ...schema,\n },\n };\n return schema;\n }\n\n function getSoftwareComponentSchema(\n component: ModuleConfig.SoftwareComponent<MyComponentNames>,\n ): any {\n let schema = {};\n if (component.type === \"ComboBox\") {\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n default: AutoModuleHelper.getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n component,\n ),\n enum: AutoModuleHelper.getComboOptions(\n model.getDerivedFunctions().overrideOptions,\n component,\n ),\n };\n } else if (component.type === \"hex\") {\n schema = {\n type: \"integer\",\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n format: \"hex\",\n default: AutoModuleHelper.getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n component,\n ),\n };\n } else {\n schema = {\n type: component.type,\n title:\n model.getDerivedFunctions().overrideTitle?.(component.name) ??\n component.description,\n };\n if (isUrl(component) && component.urlDescription) {\n schema = {\n ...schema,\n description: component.urlDescription,\n };\n }\n if (isImage(component) && component.imageDescription) {\n schema = {\n ...schema,\n description: component.imageDescription,\n };\n }\n }\n return schema;\n }\n\n function getDependencyComponentSchema(\n component: ModuleConfig.DependencyComponent<MyComponentNames>,\n ): any {\n let schema = {};\n\n if (component.type === \"ComboBox\") {\n const dependencySelector: AutoModuleHelper.DependencySelector = new AutoModuleHelper.DependencySelector(\n model,\n component,\n );\n if (dependencySelector.getDropdownOptionNames().length <= 0) {\n return schema;\n }\n\n let dropdownOptions = dependencySelector.getDropdownOptionNames();\n const assignedImport = model\n .getImportInterfaces()\n .createProcessedImports(\"views\")?.[component.importId];\n const NONE = \"None\";\n let assignedName = NONE;\n if (assignedImport?.handle) {\n assignedName = dependencySelector.createOptionLabel(\n assignedImport.handle,\n assignedImport.payload,\n );\n dropdownOptions.push(assignedName);\n }\n dropdownOptions = dropdownOptions.sort(function (a, b) {\n return a.localeCompare(b);\n });\n dropdownOptions = [NONE, ...dropdownOptions.filter((item) => item !== NONE)];\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n default: assignedName,\n enum: dropdownOptions,\n };\n }\n return schema;\n }\n\n function getHardwareComponentSchema(\n component: ModuleConfig.HardwareComponent<MyComponentNames>,\n ): any {\n let schema = {};\n if (\n model &&\n model.getComponentValue(component.name) !== undefined &&\n component.type !== \"register\"\n ) {\n if (component.type === \"ComboBox\") {\n const setting:\n | Setting\n | undefined = AutoModuleHelper.getSettingFromComponent(\n model,\n component,\n );\n schema = {\n type: \"string\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n default: AutoModuleHelper.getSettingDefaultIfPresent(\n component,\n setting,\n model\n .getDerivedFunctions()\n .overrideDefaultValues?.(component.name),\n ),\n enum: AutoModuleHelper.getSettingOptionsIfPresent(\n component,\n setting,\n model.getComponentValue(\n component.mode?.masterComponent ?? \"\",\n ) as string,\n ),\n };\n } else {\n schema = {\n type: component.type,\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n };\n }\n }\n return schema;\n }\n\n function isModeActive(\n mode: ModuleConfig.ModeOperation,\n component: ModuleConfig.Component<MyComponentNames>,\n ): boolean | undefined {\n if (component?.mode?.operation !== mode) return undefined; //No mode selected\n\n const masterComponent = model.getComponent(component.mode.masterComponent);\n if (component.mode?.matchRegEx) {\n const value =\n masterComponent?.value?.toString()?.match(component.mode.matchRegEx)\n ?.length ?? 0;\n return value > 0;\n }\n return undefined;\n }\n\n function getUiSchemaExportArg(name: MyComponentNames): any {\n let uiSchema = {};\n if (model.isControlledByInterface(name)) {\n const expArg:\n | ExportArg\n | undefined = model.getExportInterfaces().getProcessedArgValue(name);\n if (expArg) {\n uiSchema = {\n \"ui:readonly\": true,\n \"ui:help\": \"Controlled by \" + expArg.interface,\n };\n }\n }\n return uiSchema;\n }\n\n function getUiBehavior(component: ModuleConfig.Component<MyComponentNames>): any {\n let uiBehavior = {};\n if (component.uiBehavior) {\n getKeys(component.uiBehavior ?? {})?.forEach((key) => {\n switch (key) {\n case \"readonly\":\n uiBehavior[\"ui:readonly\"] = component.uiBehavior?.[key];\n break;\n default:\n uiBehavior[key] = component.uiBehavior?.[key];\n break;\n }\n });\n }\n if (isUrl(component)) {\n uiBehavior[\"ui:widget\"] = \"url\";\n } else if (isImage(component)) {\n uiBehavior[\"ui:widget\"] = \"image\";\n }\n let overriddenBehavior: any = {};\n if (model) {\n const overriddenValue = model.getDerivedFunction(\n \"getUiBehavior\",\n component.name,\n );\n if (overriddenValue != undefined) {\n overriddenBehavior = {\n ...overriddenBehavior,\n ...overriddenValue,\n };\n if (getKeys(overriddenBehavior ?? {})?.indexOf(\"readonly\") != -1) {\n overriddenBehavior[\"ui:readonly\"] = overriddenBehavior[\"readonly\"];\n delete overriddenBehavior[\"readonly\"];\n }\n }\n const isEnabled =\n model.getDerivedFunction(\"isEnabled\", component.name) ??\n isModeActive(\"isEnabled\", component);\n if (isEnabled != undefined) {\n overriddenBehavior = {\n ...overriddenBehavior,\n [\"ui:readonly\"]: !isEnabled,\n };\n }\n const isVisible = model.getDerivedFunction(\"isVisible\", component.name);\n if (isVisible != undefined) {\n if (!isVisible) {\n overriddenBehavior = {\n ...overriddenBehavior,\n [\"ui:widget\"]: \"hidden\",\n };\n }\n }\n }\n uiBehavior = {\n ...uiBehavior,\n ...overriddenBehavior,\n };\n return uiBehavior;\n }\n\n function createSimpleFormPayloadRegister(): SimpleFormPayload<any> {\n if (!config?.peripherals) return {};\n\n const registerViewPayloads: SimpleFormPayload[] = [];\n\n config.peripherals.forEach((peripheral) => {\n if (AutoModuleHelper.hasConfigBits(peripheral.interfaceId.name)) return;\n let hardwarePeripheral: DefaultPeripheral | undefined = model\n .getHardware(peripheral.interfaceId.name)\n ?.getPeripheral();\n if (!hardwarePeripheral?.registers) return;\n\n const registerValues = model.getRegisterValues(\n peripheral.interfaceId.name,\n config,\n );\n\n const interrupts:\n | Partial<Record<string, Interrupt>>\n | undefined = model.getInterrupts();\n\n hardwarePeripheral = registerFilter.processRegisterModes(\n peripheral,\n hardwarePeripheral,\n model,\n );\n\n //TODO: implement for all peripherals\n const registerView = CreateRegisterView.for(hardwarePeripheral as Module);\n if (registerValues) {\n getKeys(registerValues ?? {})?.forEach((registerName) => {\n const foundRegister: Register = hardwarePeripheral?.registers?.[\n registerName\n ] as Register;\n if (foundRegister) {\n registerView.withRegisterValue(\n foundRegister,\n registerValues[registerName].value,\n );\n }\n });\n }\n for (const interruptsKey in interrupts ?? {}) {\n const interrupt: Interrupt | undefined = interrupts?.[interruptsKey];\n if (interrupt) {\n const interruptComponent:\n | ComponentValue<any>\n | undefined = model.getComponent(interruptsKey.toLowerCase());\n\n const interruptCompVal: string =\n typeof interruptComponent?.value === \"boolean\"\n ? interruptComponent?.value\n ? \"enabled\"\n : \"disabled\"\n : interruptComponent?.value;\n\n registerView\n .withInterruptValue(\n interrupt,\n interruptCompVal ?? interrupt.defaultValue ?? \"disabled\",\n )\n .withInterruptOptions(\n interrupt,\n interruptComponent?.component?.[\"defaultValue\"]?.options ?? [\n \"enabled\",\n \"disabled\",\n ],\n );\n }\n }\n registerViewPayloads.push(registerView.create());\n });\n\n return registerViewPayloads[0];\n }\n\n function isUrl(\n component: ModuleConfig.Component<MyComponentNames>,\n ): component is SoftwareStringComponent<MyComponentNames> {\n return (\n component.category === \"software\" &&\n component.type === \"string\" &&\n component.format === \"url\"\n );\n }\n\n function isImage(\n component: ModuleConfig.Component<MyComponentNames>,\n ): component is SoftwareStringComponent<MyComponentNames> {\n return (\n component.category === \"software\" &&\n component.type === \"string\" &&\n component.format === \"image\"\n );\n }\n};\n\ninterface ImportAction {\n type: \"[Import] SET\";\n payload: {\n importId: string;\n handle: Handle | undefined;\n interfaceId: InterfaceId | undefined;\n option: string;\n };\n}\n","import { Meta } from \"@microchip/scf-device/lib/Meta\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n/**\n * Returns the valid link for each component of a module\n *\n * @param dataModel - AppModel for current module\n * @param componentName - Current component under the module\n * @param helpUrl - Generic url\n * @returns Valid link to microchip docs\n */\nexport const getAutoSdlHelp = (\n dataModel: AppModel,\n componentName: string,\n helpUrl: string,\n): string => {\n const deviceMeta: Meta = dataModel.getImportValue(\"device_meta\");\n const deviceName = deviceMeta?.deviceName ?? \"\";\n const moduleName = dataModel.getHardware()?.getPeripheral()?.group ?? \"\";\n const dosid = dataModel.getHardware()?.getPeripheral()?.dosid ?? \"\";\n const comp: any = dataModel.getComponent(componentName)?.component ?? \"\";\n const setting = comp?.setting?.toLowerCase() ?? \"\";\n const registerName = componentName.toLowerCase().replace(setting, \"\");\n const registerAlias = registerName?.toUpperCase() ?? \"\";\n const deviceRegister =\n dataModel.getPeripheralDescription()?.registers?.[registerAlias]?.name ?? \"\";\n const register = registerAlias == deviceRegister ? registerAlias : deviceRegister;\n const url = helpUrl\n .replace(\"${deviceName}\", deviceName ?? \"\")\n .replace(\"${registerName}\", register ?? \"\")\n .replace(\"${moduleName}\", moduleName ?? \"\")\n .replace(\"${dosId}\", dosid ?? \"\");\n return url;\n};\n","import { Peripheral } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { DefaultPeripheral } from \"@microchip/scf-automodule-interface/lib/src/HardwareTypes\";\nimport { getKeys } from \"../Utils\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n\nexport const processRegisterModes = (\n peripheral: Peripheral,\n hardwarePeripheral: DefaultPeripheral,\n model: AppModel,\n): DefaultPeripheral => {\n if (!hasModes(peripheral)) {\n return hardwarePeripheral;\n }\n const modifiedHardwarePeripheral = {\n ...hardwarePeripheral,\n registers: {\n ...hardwarePeripheral.registers,\n },\n };\n getKeys(peripheral?.registers ?? {})?.forEach((registerName) => {\n const settings = peripheral?.registers?.[registerName];\n let delFlag = false;\n settings?.forEach((setting) => {\n /* const mode = find(setting.tabs, (mode => {\n return mode === \"registerFilter\"\n })) */ // TODO : Multiple modes support\n if (setting?.mode?.operation === \"registerFilter\") {\n const targetStr = model?.getComponent(setting?.mode?.masterComponent)\n ?.value;\n const matchRegEx = new RegExp(setting?.mode?.matchRegEx ?? \"\");\n if (!matchRegEx.test(targetStr)) {\n const settingObj =\n modifiedHardwarePeripheral?.registers?.[registerName]?.settings?.[\n setting.setting\n ];\n if (settingObj !== undefined) {\n delete modifiedHardwarePeripheral?.registers?.[registerName]\n ?.settings?.[setting.setting];\n } else {\n delete modifiedHardwarePeripheral?.registers?.[registerName];\n }\n delFlag = true;\n }\n }\n });\n if (\n delFlag &&\n getKeys(modifiedHardwarePeripheral?.registers?.[registerName]?.settings ?? [])\n .length <= 0\n ) {\n delete modifiedHardwarePeripheral?.registers?.[registerName]?.settings;\n delete modifiedHardwarePeripheral?.registers?.[registerName];\n }\n });\n return modifiedHardwarePeripheral as DefaultPeripheral;\n};\n\nexport const hasModes = (peripheral: Peripheral): boolean => {\n let flag = false;\n getKeys(peripheral?.registers ?? {})?.forEach((registerName) => {\n const settings = peripheral?.registers?.[registerName];\n for (const setting of settings ?? []) {\n if (setting?.mode !== undefined) {\n flag = true;\n }\n }\n });\n return flag;\n};\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport { ModuleConfig as MyModuleConfig } from \"../types/AutoModuleTypes\";\nimport { toDictionary } from \"../Utils\";\nimport * as path from \"path\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\nimport { SoftwareComponent } from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport { MyComponentNames } from \"../types\";\n\nconst configPath = \"../../../src/moduleConfig.json\";\nlet config: MyModuleConfig = require(\"../../../src/moduleConfig.json\");\n\nexport const getConfigData = (\n model?: AppModel,\n newConfig?: MyModuleConfig,\n): MyModuleConfig => {\n if (!config || newConfig) {\n config = ConfigBuilder.for(newConfig)\n .withDynamicConfigData(model)\n .withDynamicComponents(model)\n .build();\n }\n\n return config;\n};\n\nconst getConfigFile = (configPath: string): MyModuleConfig => {\n try {\n return require(configPath);\n } catch {\n throw Error(\"Cannot find moduleConfig.json at: \" + configPath);\n }\n};\n\nclass ConfigBuilder {\n private config: MyModuleConfig;\n\n constructor(config: MyModuleConfig) {\n this.config = config;\n }\n\n public static fromNew = (): ConfigBuilder =>\n ConfigBuilder.fromPath(path.resolve(__dirname, configPath));\n\n public static fromPath = (path: string): ConfigBuilder => {\n if (!config) {\n config = getConfigFile(path);\n }\n return new ConfigBuilder(config);\n };\n\n public static for = (config?: MyModuleConfig): ConfigBuilder => {\n if (!config) return ConfigBuilder.fromNew();\n\n return new ConfigBuilder(config);\n };\n\n public build = (): MyModuleConfig => {\n return this.config;\n };\n\n public withDynamicConfigData = (model?: AppModel): ConfigBuilder => {\n return new ConfigBuilder(\n model?.getDerivedFunction(\"getDynamicConfigData\", this.config) ?? this.config,\n );\n };\n\n public withDynamicComponents = (model?: AppModel): ConfigBuilder => {\n const dynamicComponents = model?.getDerivedFunctions().getDynamicComponents?.();\n if (dynamicComponents) {\n const dynamicComponentMap = toDictionary(\n dynamicComponents,\n (component) => {\n this.config.UIGroups[component.group] =\n this.config.UIGroups[component.group] ?? component.group;\n return component.name;\n },\n (component) => component,\n );\n this.config.softwareData = {\n ...this.config.softwareData,\n ...(dynamicComponentMap as Record<\n string,\n SoftwareComponent<MyComponentNames>\n >),\n };\n }\n return new ConfigBuilder(this.config);\n };\n}\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { find, getKeys } from \"@microchip/scf-device/lib/util/Arrays\";\nimport { InterfaceId } from \"@microchip/scf-common/lib/InterfaceId\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\nimport {\n ExportInterfaces,\n ExportArg,\n} from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { MyComponentNames, MyExportNames, MyExports, MyProcessedExports } from \"../types\";\nimport { AppModel, MyExportInterfaceTypes } from \"../types/AutoModuleTypes\";\nimport { ModuleConfig } from \"../types/AutoModuleTypes\";\n\nexport const createExportInterfaces = (\n exports: MyExports,\n model: AppModel,\n config?: ModuleConfig,\n): MyExportInterfaces => {\n return new MyExportInterfaces(exports, model, config);\n};\n\nexport class MyExportInterfaces\n implements ExportInterfaces<MyExports, MyExportNames, MyComponentNames> {\n private exports: MyExports;\n private model: AppModel;\n private config: ModuleConfig;\n private components: string[];\n\n constructor(exports: MyExports, model: AppModel, config?: ModuleConfig) {\n this.exports = exports;\n this.model = model;\n this.config = getConfigData(model, config);\n this.components = this.createComponentList();\n }\n\n public createProcessedExports = (): MyProcessedExports => {\n let exportPayload: MyProcessedExports = this.exports as MyProcessedExports;\n if (this.config && this.config.exports) {\n getKeys(this.config.exports ?? {})?.forEach((key) => {\n const exp = this.config.exports?.[key];\n exportPayload = {\n ...exportPayload,\n [key]: {\n ...this.config.exports?.[key],\n interfaces: [],\n name:\n this.model.getDerivedFunction(\"exportName\", key) ??\n exportPayload[key]?.name,\n },\n };\n exp?.interfaces.forEach((int) => {\n const processedInterface = this.getInterface(\n key as MyExportNames,\n int.interfaceId,\n );\n if (processedInterface) {\n exportPayload[key].interfaces.push({\n ...processedInterface,\n payload:\n this.model?.getDerivedFunction(\n int.interfaceId.name + \"_payload\",\n ) ?? {},\n payloads:\n this.model?.getDerivedFunction(\n int.interfaceId.name + \"_payloads\",\n ) ?? {},\n });\n }\n });\n });\n }\n return exportPayload;\n };\n\n public getInterface(\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes | undefined;\n public getInterface(\n interfaceKey: string,\n interfaceId: InterfaceId,\n ): Processor.Interface | undefined {\n if (!this.exports[interfaceKey]) return undefined;\n\n return find(\n this.exports[interfaceKey].interfaces ?? [],\n (i) => JSON.stringify(i.interfaceId) === JSON.stringify(interfaceId),\n );\n }\n\n public getInterfaceArgs = (\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes[\"args\"] | undefined => {\n return this.getInterface(interfaceKey, interfaceId)?.args;\n };\n\n public getInterfaceResults = (\n interfaceKey: MyExportNames,\n interfaceId: InterfaceId,\n ): MyExportInterfaceTypes[\"results\"] | undefined => {\n return this.getInterface(interfaceKey, interfaceId)?.results;\n };\n\n private createComponentList = (): string[] => {\n const componentList: string[] = [];\n const exports = this.config?.exports ?? {};\n getKeys(exports)?.forEach((key) => {\n const exp = exports[key];\n exp.interfaces.forEach((int) => {\n if (int.components) {\n componentList.push(...int.components);\n }\n });\n });\n\n return componentList;\n };\n\n public isControlledByInterface = (componentName: MyComponentNames): boolean => {\n return this.components.indexOf(componentName) != -1;\n };\n\n public getProcessedArgValue = (\n componentName: MyComponentNames,\n ): ExportArg | undefined => {\n let processedArgValue: ExportArg | undefined;\n const interfaceData: ExportArg[] | undefined = this.getInterfaceData();\n if (\n this.model &&\n this.model.getDerivedFunctions().getProcessedArgValue &&\n interfaceData != undefined\n ) {\n processedArgValue = this.model\n .getDerivedFunctions()\n ?.getProcessedArgValue?.(componentName, interfaceData);\n }\n return processedArgValue;\n };\n\n public getInterfaceData = (): ExportArg[] | undefined => {\n let argValues: ExportArg[] | undefined;\n const exports = this.config.exports ?? {};\n getKeys(exports)?.forEach((key: MyExportNames) => {\n const exp = exports[key];\n exp.interfaces.forEach((int) => {\n const args: Record<string, any> | undefined = this.getInterfaceArgs(\n key,\n int.interfaceId,\n );\n if (args) {\n getKeys(args)?.forEach((key) => {\n getKeys(args[key])?.forEach((arg) => {\n if (!argValues) argValues = [];\n argValues.push({\n interface: int.interfaceId.name,\n name: arg,\n value: args[key][arg],\n module: key,\n });\n });\n });\n }\n });\n });\n return argValues;\n };\n}\n\nexport const isInterface = (idA: InterfaceId, idB: InterfaceId): boolean => {\n return JSON.stringify(idA) === JSON.stringify(idB);\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport { getConfigData } from \"../autoModule/getConfigData\";\nimport { values, getKeys } from \"../Utils\";\nimport { MyComponentNames, MyImports } from \"../types\";\nimport {\n ImportInterfaces,\n ProcessorStages,\n} from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { AppModel, ModuleConfig } from \"../types/AutoModuleTypes\";\nimport { getProcessedHandle } from \"../autoModule/AutoModuleHelpers\";\nimport { getDefaultInterruptActions } from \"../interrupts/InterruptActions\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\n\nexport const createImportInterfaces = (\n imports: MyImports,\n model: AppModel,\n config?: ModuleConfig,\n): MyImportInterfaces => {\n return new MyImportInterfaces(imports, model, config);\n};\n\nexport class MyImportInterfaces implements ImportInterfaces<MyImports> {\n private imports: MyImports;\n private model: AppModel;\n private config: ModuleConfig;\n\n constructor(imports: MyImports, model: AppModel, config?: ModuleConfig) {\n this.imports = imports;\n this.model = model;\n this.config = getConfigData(model, config);\n }\n\n public createProcessedImports = (stage: ProcessorStages): MyImports => {\n let processedImports = this.filterImports();\n getKeys(processedImports ?? {})?.forEach((key) => {\n processedImports = {\n ...processedImports,\n [key]: {\n ...processedImports[key],\n args:\n stage === \"arguments\"\n ? this.model?.getDerivedFunction(key + \"_args\")\n : processedImports[key]?.args,\n results:\n stage === \"results\"\n ? this.getResults(processedImports, key)\n : processedImports[key]?.results,\n name:\n this.model.getDerivedFunction(\"importName\", key) ??\n processedImports[key]?.name,\n handle: getProcessedHandle(\n processedImports[key].handle,\n processedImports[key].payload,\n ),\n options:\n this.getProcessedImportOptions(\n key,\n processedImports[key]?.options ?? [],\n ) ?? processedImports[key].options,\n },\n };\n });\n return processedImports;\n };\n\n public filterImports = (): MyImports => {\n const filteredImports: MyImports =\n this.model.getDerivedFunctions().filterImports?.(this.imports) ??\n this.imports;\n\n return filteredImports;\n };\n\n //Populates option labels with a custom module name if provided in export payload\n private getProcessedImportOptions = (\n importKey: string,\n options: Processor.Option[],\n ): Processor.Option[] => {\n const modifiedOptions: Processor.Option[] = [];\n options?.forEach((option, index) => {\n modifiedOptions[index] = {\n ...option,\n handle: {\n ...option.handle,\n label:\n this.model.getDerivedFunction(\n \"importOptionLabel\",\n importKey,\n option,\n ) ?? option.payload?.moduleName,\n },\n };\n });\n return modifiedOptions;\n };\n\n private getResults = (imports: MyImports, key: string): any | undefined => {\n const importResults = this.model?.getDerivedFunction(key + \"_results\");\n if (importResults) return importResults;\n const imp = imports[key];\n if (imp.interfaceId.name === \"initializer-system\") {\n const initResults = {\n initializer: {\n name: this.model.getName() + \"_Initialize\",\n header: this.model?.getDerivedFunction(\"headerFile\") ?? {\n name: this.model.getName().toLowerCase() + \".h\",\n path: \"include/\",\n },\n },\n };\n return initResults;\n } else if (imp.interfaceId.name === \"pin-standard\") {\n return this.model.getPCPHelper?.().getData();\n } else if (imp.interfaceId.name === \"interrupt-standard\") {\n const interrupts: any[] = [];\n let actions = {};\n const isHighPriority =\n this.model?.getImportValue(\"interrupt_standard\")?.isHighPriority ?? {};\n\n values(this.model.getHardware()?.getPeripheral().interrupts ?? {})?.forEach(\n (interrupt) => {\n if (!interrupt) return;\n const filterInterrupt: boolean =\n this.model\n .getDerivedFunctions()\n .filterInterrupts?.(interrupt.name) ?? true;\n\n if (filterInterrupt) {\n const interruptComponentName =\n this.getInterruptComponentName(interrupt.name) ??\n interrupt.name.toLowerCase() ??\n \"\";\n const isEnabled =\n this.model.isComponentValue(interruptComponentName ?? \"\") ??\n false;\n\n interrupts.push({\n //Standard\n name: interrupt.name ?? \"\",\n module:\n this.model.getHardware()?.getName() ??\n this.model.getName() ??\n \"\",\n isEnabled: isEnabled,\n\n //Callback Extension\n isrCallback: this.model\n ?.getDerivedFunctions()\n .isrCallback?.(interrupt.name) ?? {\n name: this.model.getName() + interrupt.handlerName,\n header: this.model\n ?.getDerivedFunctions()\n .headerFile?.() ?? {\n name: this.model.getName().toLowerCase() + \".h\",\n path: \"include/\",\n },\n },\n generateISR: isEnabled,\n\n //Priority Extension\n isHighPriority: isHighPriority[interrupt.name] ?? true,\n });\n\n const isEnableActions = (\n this.model\n .getDerivedFunctions()\n .getInterruptActions?.(interrupt.name, \"isEnabled\") ?? []\n ).concat(\n ...getDefaultInterruptActions(\n this.model,\n interruptComponentName as MyComponentNames | undefined,\n ),\n );\n const isEnableAction = find(\n isEnableActions,\n (action: any) => action[\"validFor\"] !== isEnabled,\n );\n\n actions = {\n ...actions,\n [interrupt.name]: {\n ...actions?.[interrupt.name],\n isEnabled: isEnableAction ? [isEnableAction] : [],\n },\n };\n }\n },\n );\n return {\n interruptList: interrupts,\n interruptActions: actions,\n moduleName: this.model.getName() ?? \"\",\n };\n } else if (imp.interfaceId.name === \"api-prefix-registration\") {\n const apiPrefixResults = {\n apiPrefix:\n this.model?.getDerivedFunctions()?.apiPrefix ??\n this.model?.getComponentValue(\"componentName\"),\n moduleName: this.model?.getName(),\n };\n return apiPrefixResults;\n }\n };\n\n private getInterruptComponentName = (\n interruptName: string,\n ): MyComponentNames | undefined => {\n return this.model.getDerivedFunctions()?.interruptComponentName?.(interruptName);\n };\n}\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n InterruptActions,\n InterruptActionsBuilderInterface,\n} from \"@microchip/scf-automodule-interface/lib/src/InterruptTypes\";\nimport { getSettingFromComponent } from \"../autoModule/AutoModuleHelpers\";\nimport { MyComponentNames } from \"../types\";\nimport { AppModel } from \"../types/AutoModuleTypes\";\n\nexport class InterruptActionsBuilder\n implements InterruptActionsBuilderInterface<MyComponentNames> {\n private actions: InterruptActions = [];\n private curComponent: ModuleConfig.Component | undefined;\n private curComponentName: MyComponentNames | undefined;\n private model: AppModel;\n private tableRowId: number | undefined;\n private tableRowCol: string | undefined;\n private tableCellPath: string | undefined;\n\n private constructor(model: AppModel) {\n this.model = model;\n }\n\n public static createActionBuilder = (model: AppModel): InterruptActionsBuilder =>\n new InterruptActionsBuilder(model);\n\n public createActionFor = (\n componentName: MyComponentNames | undefined,\n ): InterruptActionsBuilder => {\n this.actions = this.buildActions();\n\n this.curComponent = componentName\n ? this.model.getComponent(componentName)?.component\n : undefined;\n this.curComponentName = componentName;\n this.tableRowId = undefined;\n this.tableRowCol = undefined;\n this.tableCellPath = undefined;\n\n return this;\n };\n\n addActionIfEnabled = (\n actionValue: boolean | number | string | undefined,\n ): InterruptActionsBuilder => {\n if (!this.curComponentName || !this.curComponent) return this;\n\n if (!this.isActionValueAcceptable(this.curComponent, actionValue)) return this;\n\n let payload: any = {\n tabId: this.curComponent.tabs[0],\n value: actionValue,\n };\n\n if (this.curComponent.category === \"table\") {\n if (!this.tableCellPath) return this;\n\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}.${this.tableCellPath}`,\n rowId: this.tableRowId,\n };\n } else {\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}`,\n };\n }\n\n this.actions.push({\n validFor: true,\n action: {\n type: \"[FORM] SUBMIT\",\n payload: payload,\n },\n });\n\n return this;\n };\n\n addActionIfDisabled = (\n actionValue: boolean | number | string | undefined,\n ): InterruptActionsBuilder => {\n if (!this.curComponentName || !this.curComponent) return this;\n\n if (!this.isActionValueAcceptable(this.curComponent, actionValue)) return this;\n\n let payload: any = {\n tabId: this.curComponent.tabs[0],\n value: actionValue,\n };\n\n if (this.curComponent.category === \"table\") {\n if (!this.tableCellPath) return this;\n\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}.${this.tableCellPath}`,\n rowId: this.tableRowId,\n };\n } else {\n payload = {\n ...payload,\n path: `${this.curComponent.group}.${this.curComponent.name}`,\n };\n }\n\n this.actions.push({\n validFor: false,\n action: {\n type: \"[FORM] SUBMIT\",\n payload: payload,\n },\n });\n\n return this;\n };\n\n setPathToTableCell = (rowIndex: number, colName: string): InterruptActionsBuilder => {\n if (this.curComponent?.category !== \"table\") return this;\n\n this.tableRowId = rowIndex;\n this.tableRowCol = colName;\n this.tableCellPath = `${rowIndex}.${colName}`;\n\n return this;\n };\n\n private isActionValueAcceptable = (\n component: ModuleConfig.Component,\n actionValue: string | number | boolean | undefined,\n ): boolean => {\n if (component.category === \"hardware\") {\n if (component.type === \"ComboBox\") {\n const options = getSettingFromComponent(this.model, component)?.options;\n\n if (\n !options?.some(\n (option) =>\n option[component[\"displayOptionSetting\"] ?? \"alias\"] ===\n actionValue,\n )\n ) {\n return false;\n }\n } else if (component.type === \"boolean\") {\n // if (actionValue !== \"enabled\" && actionValue !== \"disabled\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n } else if (component.category === \"software\") {\n if (component.type === \"ComboBox\") {\n const options = component[\"options\"];\n\n if (!options?.some((option) => option === actionValue)) {\n return false;\n }\n } else if (component.type === \"boolean\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n } else if (component.category === \"table\") {\n if (!this.tableRowCol) return false;\n if (component.columns?.[this.tableRowCol]?.type === \"ComboBox\") {\n const options =\n component.columns?.[this.tableRowCol]?.defaultValue?.[\"options\"];\n\n if (!options?.some((option) => option === actionValue)) {\n return false;\n }\n } else if (component.columns?.[this.tableRowCol]?.type === \"boolean\") {\n if (actionValue !== true && actionValue !== false) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n buildActions = (): InterruptActions => {\n return this.actions;\n };\n}\n\nexport function getDefaultInterruptActions(\n model: AppModel,\n componentName: MyComponentNames | undefined,\n): InterruptActions {\n if (!componentName) return [];\n\n return (\n InterruptActionsBuilder.createActionBuilder(model)\n .createActionFor(componentName)\n .addActionIfEnabled(true)\n .addActionIfDisabled(false)\n // .addActionIfEnabled(\"enabled\")\n // .addActionIfDisabled(\"disabled\")\n .buildActions()\n );\n}\n","import { pin_row, intf_data } from \"@microchip/pin-standard\";\nimport {\n PCPHelper as PCPHelperInterface,\n PinCallbacks,\n} from \"@microchip/scf-automodule-interface/lib/src/pins\";\nimport { PCPStateActionBuilder } from \"./PCPStateActionBuilder\";\n\nconst getPinJsonObj = (): any => {\n try {\n return require(\"../../../src/pinsdata.json\");\n } catch (ex) {\n return { rows: [] };\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pinjsonobj = getPinJsonObj();\n\nexport class PCPHelper implements PCPHelperInterface {\n pinCallbacks: PinCallbacks | undefined = undefined;\n\n //TODO: Figure out if this needs to be in the interface\n public static stateActionBuilder(pinRow: pin_row): PCPStateActionBuilder {\n return new PCPStateActionBuilder(pinRow);\n }\n\n public setCallbacks(callbacks: PinCallbacks): void {\n this.pinCallbacks = callbacks;\n }\n\n private getAllFilteredRows = (allRows: pin_row[]): pin_row[] => {\n const validRows: pin_row[] = [];\n allRows.forEach((eachRow) => {\n const userRowData = this.userRowData(eachRow);\n // check the validity of user provided data\n if (userRowData && this.isRowValid(userRowData)) {\n validRows.push(userRowData);\n }\n });\n return validRows;\n };\n\n private isRowValid = (eachRow: pin_row): boolean => {\n if (\n eachRow?.name &&\n eachRow?.module &&\n eachRow?.function &&\n eachRow?.direction &&\n eachRow?.behaviour\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n private userRowData = (eachRow: pin_row): pin_row | undefined => {\n let eachrowret: pin_row | undefined = eachRow;\n if (this.pinCallbacks?.getRowData) {\n eachrowret = this.pinCallbacks.getRowData({ ...eachRow });\n }\n return eachrowret;\n };\n\n private getAllRows = (): pin_row[] => {\n let pinRows: pin_row[] = pinjsonobj?.rows;\n let userdata: any = {};\n if (this.pinCallbacks?.getCompletePinData) {\n userdata = this.pinCallbacks.getCompletePinData();\n if (userdata && userdata?.rows) {\n pinRows = userdata.rows;\n }\n }\n return pinRows;\n };\n\n public getData = (): intf_data => {\n const retData = {\n rows: this.getAllFilteredRows(this.getAllRows()),\n };\n return retData;\n };\n}\n","import { ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport {\n pin_state,\n pin_row,\n pin_attribs_enum,\n actiontype,\n} from \"@microchip/pin-standard\";\nimport { PCPStateActionBuilder as PCPStateActionBuilderInterface } from \"@microchip/scf-automodule-interface/lib/src/pins\";\n\ntype ActionData = {\n pinstate: pin_state;\n validFor: string;\n value: any;\n actiontype?: actiontype;\n};\n\ntype PinAttributes = {\n attribs: pin_attribs_enum[];\n};\n\nexport class PCPStateActionBuilder implements PCPStateActionBuilderInterface {\n component: ModuleConfig.Component;\n rowName: string;\n pinRow: pin_row;\n tabId: string;\n actionDataArr: ActionData[] = [];\n\n constructor(pinRow: pin_row) {\n this.pinRow = pinRow;\n this.tabId = \"main\";\n }\n\n rowWithName(rowName: string): PCPStateActionBuilder {\n this.rowName = rowName;\n return this;\n }\n\n /**\n *\n * @param tabId - default tabId is \"main\", please change this as per your needs.\n * @returns PCPStateActionBuilder\n */\n compWithTabId(tabId: string): PCPStateActionBuilder {\n this.tabId = tabId;\n return this;\n }\n\n addIfLockedSetValue(pinRegEx: string, value: any): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.LOCKED,\n validFor: pinRegEx,\n value: value,\n actiontype: actiontype.SETACTION,\n });\n return this;\n }\n\n addIfLockedProvideAttribs(\n pinRegEx: string,\n attribs: pin_attribs_enum[],\n ): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.LOCKED,\n validFor: pinRegEx,\n value: this.formAttribs(attribs),\n actiontype: actiontype.ATTRIBACTION,\n });\n return this;\n }\n\n addIfUnlockedProvideAttribs(\n pinRegEx: string,\n attribs: pin_attribs_enum[],\n ): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.UNLOCK,\n validFor: pinRegEx,\n value: this.formAttribs(attribs),\n actiontype: actiontype.ATTRIBACTION,\n });\n return this;\n }\n\n formAttribs(attribarray: pin_attribs_enum[]): PinAttributes {\n return {\n attribs: attribarray,\n };\n }\n\n addIfUnLockedSetValue(pinRegEx: string, value: any): PCPStateActionBuilder {\n this.actionDataArr.push({\n pinstate: pin_state.UNLOCK,\n validFor: pinRegEx,\n value: value,\n actiontype: actiontype.SETACTION,\n });\n return this;\n }\n\n forComponent(component: ModuleConfig.Component): PCPStateActionBuilder {\n this.component = component;\n return this;\n }\n\n build(): any {\n const actionArr: any[] = [];\n\n if (this.pinRow.name === this.rowName) {\n this.actionDataArr.forEach((eachData: ActionData) => {\n actionArr.push({\n validFor: eachData.validFor,\n state: {\n [eachData.pinstate]: {\n type: \"[FORM] SUBMIT\",\n payload: {\n tabId: this.tabId,\n path: this.component.group + \".\" + this.component.name,\n value: eachData.value,\n },\n },\n },\n actiontype: eachData.actiontype ?? \"\",\n });\n });\n }\n\n return actionArr;\n }\n}\n/*\n PCPHelper\n .stateActionBuilder(rowData)\n .rowWithName(\"dacoutx\")\n .forComponent(dacOPEnCompo)\n .addIfLockedSetValue(\"DAC1OUT1\", \"DACOUT1 Enabled and DACOUT2 Disabled\")\n .addIfLockedSetValue(\"DAC1OUT2\", \"DACOUT2 Enabled and DACOUT1 Disabled\")\n .addIfUnLockedSetValue(\".*\", \"DACOUT1 and DACOUT2 are Disabled\")\n .build()\n*/\n","/* eslint-disable no-fallthrough */\n/*\n * @license:\n * © 2019 Microchip Technology Inc. and its subsidiaries.\n *\n * You may use this software and any derivatives exclusively with Microchip products.\n *\n * THIS SOFTWARE IS SUPPLIED BY MICROCHIP \"AS IS\". NO WARRANTIES, WHETHER EXPRESS,\n * IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF\n * NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS\n * INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE\n * IN ANY APPLICATION.\n *\n * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL\n * OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO\n * THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY\n * OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S\n * TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED\n * THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.\n *\n * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE TERMS.\n */\nimport * as Types from \"./types\";\nimport * as AutoModuleTypes from \"./types/AutoModuleTypes\";\nimport { getModel } from \"./App/AppModel\";\nimport { getDerivedData as myDerivedData } from \"../../src/DerivedData\";\nimport { getConfigData } from \"./autoModule/getConfigData\";\nimport { createAutoViewPayloads } from \"./autoModule/AutoModuleView\";\nimport { getTemplates } from \"./autoModule/AutoModuleTemplates\";\nimport { ProcessorStages } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport { getModuleDefaultDescription } from \"./autoModule/AutoModuleHelpers\";\n\n/**\n * Processor Stage Refactor\n * Step 1:\n * @param initialModule\n * @param stage\n */\nexport const process = (\n initialModule: AutoModuleTypes.MyModule,\n stage?: ProcessorStages,\n getDerivedData?: (dataModel: AutoModuleTypes.AppModel) => AutoModuleTypes.DerivedData,\n): AutoModuleTypes.MyProcessedModule => {\n // console.log(`Processor Stage: ${stage}`);\n // let time = Date.now();\n\n if (!getDerivedData) getDerivedData = myDerivedData;\n\n const model: AutoModuleTypes.AppModel | undefined = getModel(\n initialModule,\n getDerivedData,\n );\n if (!model) return initialModule as AutoModuleTypes.MyProcessedModule;\n\n let processedOutput: AutoModuleTypes.MyProcessedModule = {\n ...(initialModule as AutoModuleTypes.MyProcessedModule),\n };\n\n switch (stage) {\n case \"arguments\":\n processedOutput = {\n ...processedOutput,\n imports:\n (model\n .getImportInterfaces()\n .createProcessedImports(stage) as Types.MyImports) ??\n initialModule.imports,\n };\n break;\n case \"payloads\":\n processedOutput = {\n ...processedOutput,\n exports:\n (model\n .getExportInterfaces()\n .createProcessedExports() as Types.MyProcessedExports) ??\n initialModule.exports,\n name: model.getName(),\n help:\n model?.getDerivedFunctions()?.overrideModuleLevelHelp?.() ??\n getConfigData(model).help,\n };\n break;\n case \"results\":\n processedOutput = {\n ...processedOutput,\n imports:\n (model\n .getImportInterfaces()\n .createProcessedImports(stage) as Types.MyImports) ??\n initialModule.imports,\n };\n break;\n case \"views\":\n {\n const customTemplateData =\n model?.getDerivedFunctions().templateData?.() ?? {};\n const view = createAutoViewPayloads(model);\n processedOutput = {\n ...processedOutput,\n payload: {\n ...initialModule.payload,\n auto: view,\n customView: model\n ?.getDerivedFunctions()\n ?.getCustomView?.(initialModule),\n },\n templateData: customTemplateData,\n templates: getTemplates(model),\n alerts: model?.getDerivedFunctions().alerts?.(),\n name: model.getActiveName(),\n description:\n model?.getDerivedFunctions()?.getModuleDescription?.() ??\n getModuleDefaultDescription(),\n globalNames: model?.getDerivedFunctions()?.getGlobalNames?.() ?? [],\n };\n }\n break;\n default:\n return initialModule as AutoModuleTypes.MyProcessedModule;\n }\n // time = Date.now() - time;\n // console.log(`\\nProcessor Time: ${time}ms\\n`);\n return processedOutput;\n};\n","import { UidMap } from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { RowFormData } from \"./tables\";\n\nexport class UidMapBuilder {\n private uidMap: UidMap = {};\n\n public addDefaultRows(rowData: RowFormData[]): this {\n rowData.forEach((row, rowCount) => {\n this.uidMap[row.uid] = row.rowId ?? rowCount;\n });\n return this;\n }\n public addDynamicRows(tableState: RowFormData[]): this {\n tableState.forEach((row) => {\n const uid: string | undefined = row?.uid;\n if (uid && uid.indexOf(\"dynamicRow_\") > -1) {\n this.incrementUidAndShift(uid, row.rowId);\n }\n });\n return this;\n }\n\n public removeRows(tableState: RowFormData[]): this {\n tableState.forEach((row) => {\n const uid: string | undefined = row?.uid;\n if (uid && row?.dynamicallyRemoved) {\n this.uidMap[uid] = -1;\n }\n });\n return this;\n }\n public sortByValue(): this {\n let count = 0;\n let sortedUids: UidMap[] = [];\n\n this.getUidKeys().forEach((uid) => {\n sortedUids.push({ [uid]: this.uidMap[uid] });\n });\n sortedUids = sortedUids.sort(\n (a, b) => a[Object.keys(a)[0]] - b[Object.keys(b)[0]],\n );\n sortedUids.forEach((uid) => {\n const uidKey = Object.keys(uid)[0];\n if (this.uidMap[uidKey] > -1) {\n this.uidMap[uidKey] = count++;\n }\n });\n return this;\n }\n\n public create(): UidMap {\n return this.uidMap;\n }\n\n private incrementUidAndShift(uid: string, rowId: number): void {\n this.getUidKeys().forEach((uid) => {\n if (this.uidMap[uid] >= rowId) {\n this.uidMap[uid]++;\n }\n });\n this.uidMap[uid] = rowId;\n }\n\n private getUidKeys(): string[] {\n return Object.keys(this.uidMap);\n }\n}\n","import {\n ColumnBasic,\n ColumnComboBox,\n RowData,\n TableComponent,\n} from \"@microchip/scf-automodule-interface/lib/src/ModuleConfig\";\nimport {\n ActionsObject,\n CellValidationInfo,\n TableAction,\n TableColumn,\n TableSchema,\n TableSchemaProperties,\n TableUiSchema,\n UidMap,\n} from \"@microchip/scf-autoview/lib/simpleForm/simpleForm-types\";\nimport { AppModel, ModuleConfig } from \"@microchip/scf-automodule-interface\";\nimport { MyComponentNames } from \"../types\";\nimport { DerivedFunctions } from \"../types/AutoModuleTypes\";\nimport { UidMapBuilder } from \"./UidMapBuilder\";\nimport { find } from \"@microchip/scf-device/lib/util/Arrays\";\n\nexport interface RowFormData {\n [key: string]: any;\n}\nexport interface Cell {\n rowId: number;\n columnName: string;\n value: any;\n}\nexport enum RowPrefix {\n Default = \"defaultRow_\",\n Dynamic = \"dynamicRow_\",\n}\nexport interface Columns {\n [key: string]: ColumnBasic | ColumnComboBox;\n}\n\nexport function overrideTableDefaultsWithChanges(\n rowChanged: RowFormData[],\n initialFormData: RowFormData[],\n uidMap: UidMap,\n): RowFormData[] {\n const value: RowFormData[] = [...initialFormData];\n\n if (Array.isArray(rowChanged)) {\n rowChanged.forEach((changedRow) => {\n const changedUid = changedRow.uid;\n const rowChangeNum = uidMap[changedUid];\n value[rowChangeNum] = { ...value[rowChangeNum], ...changedRow };\n });\n }\n return value;\n}\nexport function isTableInState(tabState: any, component: TableComponent): boolean {\n return (\n tabState && tabState[component.group] && tabState[component.group][component.name]\n );\n}\n\nexport function calculateColumnWidth(columns: Columns | undefined): string {\n return columns ? 100 / Object.keys(columns).length + \"%\" : \"auto\";\n}\n\nexport function getInitialTableFormData(\n table: TableComponent,\n columnNames: string[],\n model: AppModel,\n): RowFormData[] {\n let value: RowFormData[] = [];\n const tableFormData: RowFormData = {};\n columnNames.forEach((columnName) => {\n if (!tableFormData[columnName]) {\n tableFormData[columnName] = getDefaultValue(\n model.getDerivedFunctions().overrideTableDefaultValues,\n table.columns[columnName],\n columnName,\n table.name,\n );\n }\n });\n if (!table?.rowData) {\n value = createInitialRows(table, tableFormData);\n } else {\n let rowId = 0;\n table?.rowData.forEach((row) => {\n const rowDataCols: string[] = Object.keys(row);\n columnNames.forEach((colName) => {\n if (rowDataCols.indexOf(colName) === -1) {\n row = {\n ...row,\n [colName]: tableFormData[colName],\n uid: createRowUid(RowPrefix.Default, rowId),\n };\n }\n });\n\n value.push({\n ...row,\n rowId: rowId++,\n uid: createRowUid(RowPrefix.Default, rowId),\n });\n });\n }\n return value;\n}\nexport function createInitialRows(\n table: TableComponent,\n tableFormData: RowFormData = {},\n): RowData[] {\n const value: RowData[] = [];\n const initialRows = table?.defaultRowNum ?? 1;\n for (let i = 0; i < initialRows; i++) {\n value.push({\n ...tableFormData,\n rowId: i,\n uid: createRowUid(RowPrefix.Default, i),\n });\n }\n return value;\n}\nfunction createDefaultTableAction(\n component,\n row: number,\n column: string,\n tab: string,\n uid: string,\n): ModuleConfig.AutoAction {\n return {\n type: \"[Table] EDIT_CELL\",\n payload: {\n tabId: tab ?? \"main\",\n path: `${component?.group}.${component?.name}`,\n column: column,\n value: \"%v\",\n uid: uid,\n rowId: row,\n },\n };\n}\nexport function overrideCellValue(tableData: RowFormData[], cell: Cell): RowFormData[] {\n const modifiedTableData = [...tableData];\n modifiedTableData[cell.rowId][cell.columnName] = cell.value;\n return modifiedTableData;\n}\nexport function addRowsToTable(\n tableData: RowFormData[],\n columns: Columns,\n newRow: RowFormData,\n numberOfRows: number,\n): RowFormData[] {\n if (numberOfRows <= 0) {\n return tableData;\n }\n const value = addRowToTable(tableData, columns, {\n ...newRow,\n uid: RowPrefix.Dynamic + (numberOfRows - 1),\n });\n return addRowsToTable(value, columns, newRow, numberOfRows - 1);\n}\nexport function addRowToTable(\n tableData: RowFormData[],\n columns: Columns,\n newRow: RowFormData,\n): RowFormData[] {\n const columnNames: string[] = Object.keys(columns);\n const newRowCols: string[] = Object.keys(newRow);\n const newRowId: number = newRow.rowId;\n const defaultColumnWidth: string = calculateColumnWidth(columns);\n let filteredTableTemp: RowFormData[] = [];\n if (tableData.length === 0) {\n filteredTableTemp.push(newRow);\n return filteredTableTemp;\n }\n if (newRowId != null) {\n columnNames.forEach((colName) => {\n if (newRowCols.indexOf(colName) === -1) {\n newRow = {\n ...newRow,\n [colName]:\n columns[colName].defaultValue?.[\"value\"] ??\n columns[colName].defaultValue,\n columnWidth: columns[colName].columnWidth\n ? columns[colName].columnWidth + \"%\"\n : defaultColumnWidth,\n };\n }\n });\n const tableFirstHalf: RowFormData[] = tableData.slice(0, newRowId);\n const tableSecondHalf: RowFormData[] = tableData.slice(newRowId);\n for (let i = 0; i < tableSecondHalf.length; i++) {\n const currentRowId = tableSecondHalf[i].rowId;\n tableSecondHalf[i] = { ...tableSecondHalf[i], rowId: currentRowId + 1 };\n const actions: ModuleConfig.AutoAction = tableSecondHalf[i]?.actions;\n if (actions) {\n tableSecondHalf[i][\"actions\"] = updateActionsRowId(\n actions,\n currentRowId + 1,\n );\n }\n }\n tableFirstHalf.push(newRow);\n filteredTableTemp = [...tableFirstHalf, ...tableSecondHalf];\n return filteredTableTemp;\n }\n return tableData;\n}\n\nexport function removeRowFromTable(\n tableData: RowFormData[],\n rowId: number,\n): RowFormData[] {\n const tableRemoved = tableData.filter((row) => row.rowId !== rowId);\n for (let i = 0; i < tableRemoved.length; i++) {\n tableRemoved[i].rowId = i;\n const actions: ModuleConfig.AutoAction = tableRemoved[i]?.actions;\n if (actions) {\n tableRemoved[i][\"actions\"] = updateActionsRowId(actions, i);\n }\n }\n return tableRemoved;\n}\n\nfunction updateActionsRowId(\n currentActions: ModuleConfig.AutoAction,\n rowId: number,\n): ModuleConfig.AutoAction {\n const modifiedActions = { ...currentActions };\n const columnNames = Object.keys(currentActions);\n columnNames.forEach((columnName) => {\n const payload = modifiedActions[columnName]?.[\"payload\"];\n if (payload) {\n const path = payload[\"path\"].split(\".\");\n path[path.length - 2] = rowId;\n modifiedActions[columnName][\"payload\"][\"rowId\"] = rowId;\n modifiedActions[columnName][\"payload\"][\"path\"] = path.join(\".\");\n }\n });\n return modifiedActions;\n}\n\nexport function getTableFormData(\n model: AppModel,\n table: TableComponent,\n tab: string,\n): any {\n return (\n model.getDerivedFunction(table.name, table, model, tab) ??\n getValueBasedOnState(table, model, tab)\n );\n}\nexport function getValueBasedOnState(\n table: TableComponent,\n model: AppModel,\n tab: string,\n): RowFormData[] {\n const columnNames: string[] = Object.keys(table.columns);\n const modelState = model.getState();\n const tabState = modelState ? modelState[tab] : undefined;\n const initialFormData: RowFormData[] = getInitialTableFormData(\n table,\n columnNames,\n model,\n );\n if (!isTableInState(tabState, table)) {\n return initialFormData;\n } else {\n const rowChanged: RowFormData[] = tabState[table.group][table.name];\n const tableUids: UidMap = createTableUids(table, tab, model, rowChanged);\n return overrideDefaultsAndFilterRows(\n rowChanged,\n initialFormData,\n table.columns,\n tableUids,\n table,\n tab,\n );\n }\n}\n\nexport function overrideDefaultsAndFilterRows(\n rowChanged: RowFormData[],\n initialFormData: RowFormData[],\n columns: Columns,\n tableUids: any,\n component: TableComponent,\n tab: string,\n): RowFormData[] {\n const modifiedForData: RowFormData[] = [...initialFormData];\n\n const keys = Object.keys(tableUids);\n rowChanged = rowChanged.filter((row) => row != null);\n rowChanged.forEach((row) => {\n if (row.uid.indexOf(RowPrefix.Dynamic) > -1) {\n modifiedForData.push(row);\n }\n });\n let filteredModifed: RowFormData[] = [];\n keys.forEach((uid) => {\n modifiedForData.forEach((row) => {\n if (row.uid === uid) {\n filteredModifed[tableUids[uid]] = { ...initialFormData[0], ...row };\n }\n });\n });\n filteredModifed = filteredModifed.filter((row) => row);\n for (let i = 0; i < filteredModifed.length; i++) {\n if (filteredModifed[i].uid.indexOf(RowPrefix.Dynamic) > -1) continue;\n filteredModifed[i].rowId++;\n }\n for (let i = 0; i < modifiedForData.length; i++) {\n Object.keys(columns).forEach((columnName) => {\n modifiedForData[i].actions = updateActionsRowId(\n createDefaultTableAction(component, i, columnName, tab, tableUids),\n i,\n );\n });\n }\n return overrideTableDefaultsWithChanges(rowChanged, filteredModifed, tableUids);\n}\n\nexport function createTableUids(\n component: TableComponent,\n tab: string,\n model: AppModel | undefined,\n tableState: RowFormData[],\n): UidMap {\n const table: TableComponent = component;\n const dynamicTableData: RowData[] = model?.getDerivedFunction(\n component.name,\n component,\n model,\n tab,\n );\n\n if (dynamicTableData) {\n const uidMap: UidMap = {};\n let rowNum = 0;\n dynamicTableData.forEach((entry) => {\n const uid = entry?.uid;\n if (uid !== undefined) {\n uidMap[uid] = rowNum++;\n }\n });\n return uidMap;\n }\n\n let rowData: RowFormData[] | undefined = table[\"rowData\"];\n if (!dynamicTableData && rowData) {\n for (let i = 0; i < rowData.length; i++) {\n if (!rowData[i].uid) {\n rowData[i].uid = createRowUid(RowPrefix.Default, i);\n }\n rowData[i].rowId =\n find(tableState ?? [], (row) => row.uid === rowData?.[i].uid)?.rowId ??\n rowData[i].rowId;\n }\n } else {\n rowData =\n dynamicTableData ??\n createInitialRows(table).map((row) => {\n return {\n ...(row ?? {}),\n rowId:\n find(tableState ?? [], (r) => r.uid === row?.uid)?.rowId ??\n row.rowId,\n };\n });\n }\n return new UidMapBuilder()\n .addDefaultRows(rowData)\n .addDynamicRows(tableState ?? [])\n .removeRows(tableState ?? [])\n .sortByValue()\n .create();\n}\n\nexport function getCellValidationInfo(\n component: TableComponent,\n): Array<CellValidationInfo | undefined> {\n const table: TableComponent = component;\n const colInfo: Array<CellValidationInfo | undefined> = [];\n const columns = table.columns;\n\n for (const column in columns) {\n const colData: any = table.columns[column];\n let info: CellValidationInfo | undefined;\n if (colData[\"cellValidator\"]) {\n info = {\n type: colData[\"type\"],\n minValue: colData[\"cellValidator\"][\"minValue\"],\n maxValue: colData[\"cellValidator\"][\"maxValue\"],\n errMessage: colData[\"cellValidator\"][\"errorMessage\"],\n errTitle: colData[\"cellValidator\"][\"errorTitle\"],\n cValidation: colData[\"cellValidator\"][\"cValidation\"],\n cValidationErrTitle: colData[\"cellValidator\"][\"cValidationErrorTitle\"],\n cValidationErrMessage:\n colData[\"cellValidator\"][\"cValidationErrorMessage\"],\n };\n }\n colInfo.push(info);\n }\n\n return colInfo;\n}\n\nexport function getTableActions(\n component: TableComponent,\n tab: string,\n model: AppModel | undefined,\n uids: any,\n rowFormData?: RowFormData[],\n): ActionsObject {\n const table: TableComponent = component;\n let dynamicTableData: RowFormData[] | undefined;\n if (!rowFormData) {\n dynamicTableData = model?.getDerivedFunction(\n component.name,\n component,\n model,\n tab,\n );\n }\n\n const rowData =\n rowFormData ?? dynamicTableData ?? table[\"rowData\"] ?? createInitialRows(table);\n const columnNames: string[] = Object.keys(table.columns);\n const tableActions = { table: {} };\n let rowCount = 0;\n const tableState = model?.getState()?.[tab]?.[component.group]?.[component.name];\n\n rowData.forEach((row) => {\n columnNames.forEach((columnName) => {\n if (!tableActions[\"table\"][row.uid]) {\n tableActions[\"table\"][row.uid] = {};\n }\n let uid;\n for (const uidsKey in uids) {\n if (uids[uidsKey] === row.rowId) {\n uid = uidsKey;\n }\n }\n uid = uid ?? createRowUid(RowPrefix.Default, rowCount);\n let defaultAction: ModuleConfig.AutoAction = createDefaultTableAction(\n component,\n rowCount,\n columnName,\n tab,\n uid,\n );\n\n if (tableState) {\n let ind = -1;\n const filtered = tableState.filter(function (row, index) {\n ind = index;\n return row.uid === uid;\n });\n if (filtered.length) {\n defaultAction = createDefaultTableAction(\n component,\n ind,\n columnName,\n tab,\n uid ?? createRowUid(RowPrefix.Default, rowCount),\n );\n }\n }\n if (component.columns[columnName].type == \"ComboBox\") {\n defaultAction[\"payload\"] = {\n ...defaultAction[\"payload\"],\n options: getComboOptions(\n model?.getDerivedFunctions()?.overrideTableOptions,\n table.columns[columnName],\n columnName,\n component.name,\n ),\n };\n }\n const cellAction: ModuleConfig.AutoAction | undefined =\n row.actions?.[columnName] ?? defaultAction;\n\n tableActions[\"table\"][row.uid][columnName] =\n model?.getDerivedFunction(\"getActions\", table.name, cellAction) ??\n cellAction;\n });\n rowCount++;\n });\n const uidKeys = Object.keys(uids);\n uidKeys.forEach((uidKey) => {\n columnNames.forEach((columnName) => {\n if (uids[uidKey] > -1) {\n if (!tableActions[\"table\"][uidKey]) {\n tableActions[\"table\"][uidKey] = {};\n tableActions[\"table\"][uidKey][columnName] = createDefaultTableAction(\n table,\n uids[uidKey],\n columnName,\n tab,\n uidKey,\n );\n } else if (!tableActions[\"table\"][uidKey][columnName]) {\n tableActions[\"table\"][uidKey][columnName] = createDefaultTableAction(\n table,\n uids[uidKey],\n columnName,\n tab,\n uidKey,\n );\n }\n }\n });\n });\n return JSON.stringify(tableActions);\n}\nexport function getTableUiSchema(\n table: TableComponent,\n columns: TableColumn[],\n): TableUiSchema {\n let tableUi: any = {\n tableCols: columns,\n search: table[\"isSearchable\"],\n striped: true,\n bordered: false,\n };\n if (table[\"canRemoveRows\"]) {\n tableUi = {\n ...tableUi,\n rightActions: getTableRightActions(),\n };\n }\n if (table[\"canInsertRows\"]) {\n tableUi = {\n ...tableUi,\n leftActions: getTableLeftActions(),\n };\n }\n if (table.canMoveRowDown) {\n tableUi = {\n ...tableUi,\n leftActions: (tableUi.leftActions ?? []).concat(getTableMoveRowActions()[0]),\n };\n }\n if (table.canMoveRowUp) {\n tableUi = {\n ...tableUi,\n leftActions: (tableUi.leftActions ?? []).concat(getTableMoveRowActions()[1]),\n };\n }\n\n return {\n \"ui:field\": \"table\",\n className: \"col-md-12 individualComponent\",\n table: { ...tableUi },\n };\n}\nexport function getTableComponentSchema(\n component: TableComponent<MyComponentNames>,\n model: AppModel,\n): TableSchema {\n const tableColumns: TableSchemaProperties = {};\n for (const columnsKey in component.columns) {\n let rjsfType;\n if (component.columns[columnsKey].type === \"ComboBox\") {\n const colBox: ColumnComboBox = component.columns[\n columnsKey\n ] as ColumnComboBox;\n rjsfType = \"string\";\n tableColumns[columnsKey] = {\n type: rjsfType,\n title: colBox.title,\n default: getDefaultValue(\n model.getDerivedFunctions().overrideDefaultValues,\n colBox,\n columnsKey,\n component.name,\n ),\n enum: getComboOptions(\n model.getDerivedFunctions().overrideTableOptions,\n colBox,\n columnsKey,\n component.name,\n ),\n };\n } else {\n rjsfType = component?.columns[columnsKey]?.type;\n tableColumns[columnsKey] = {\n type: rjsfType,\n title: component.columns[columnsKey].title,\n default: component.columns[columnsKey].defaultValue,\n };\n }\n }\n return {\n type: \"array\",\n title:\n model.getDerivedFunction(\"overrideTitle\", component.name) ??\n component.description,\n items: {\n type: \"object\",\n properties: {\n ...tableColumns,\n },\n },\n };\n}\n\nconst getDefaultValue = (\n overrideDefaultValues: DerivedFunctions[\"overrideTableDefaultValues\"],\n component: ColumnComboBox | ColumnBasic,\n componentName: string,\n tableName: string,\n): ModuleConfig.SoftwareComponent[\"defaultValue\"] => {\n return (\n overrideDefaultValues?.(tableName, componentName) ??\n (component.type === \"ComboBox\"\n ? component.defaultValue.value\n : component.defaultValue)\n );\n};\n\nconst getComboOptions = (\n overrideOptions: DerivedFunctions[\"overrideTableOptions\"],\n component: ColumnComboBox | ColumnBasic,\n componentName: string,\n tableName: string,\n): any[] => {\n const dynamicOptions: any[] | undefined = overrideOptions?.(tableName, componentName);\n return dynamicOptions && dynamicOptions.length > 0\n ? dynamicOptions\n : component?.defaultValue?.[\"options\"];\n};\n\nfunction getTableLeftActions(): TableAction[] {\n return [\n {\n dataField: \"insert-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nfunction getTableRightActions(): TableAction[] {\n return [\n {\n dataField: \"delete-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nfunction getTableMoveRowActions(): TableAction[] {\n return [\n {\n dataField: \"row-down-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n {\n dataField: \"row-up-button\",\n editable: false,\n displayName: \"\",\n columnWidth: \"6%\",\n width: \"6%\",\n },\n ];\n}\n\nexport function getCellStyle(isReadonly: boolean | undefined): CellStyles {\n const tdStyle = {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n };\n if (isReadonly) {\n tdStyle[\"backgroundColor\"] = \"#EEEEEE\";\n }\n return tdStyle;\n}\n\nexport function createRowUid(prefix: RowPrefix, postfix: number): string {\n return prefix + postfix;\n}\n\ninterface CellStyles {\n [styleAttribute: string]: string;\n}\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InterfaceTypes = __importStar(require(\"@microchip/scf-interface\"));\nvar pkgJson = __importStar(require(\"../package.json\"));\nexports.getInterfaceId = function () {\n return {\n name: InterfaceTypes.getInterfaceName(pkgJson),\n version: InterfaceTypes.getInterfaceVersion(pkgJson),\n };\n};\nvar createMock = function () {\n return {\n interfaceId: exports.getInterfaceId(),\n payload: {\n calculatedCanSpeed_Hz: 20000000,\n },\n args: {\n requestId: {\n requestedCanSpeed_Hz: 20000000,\n },\n },\n };\n};\nvar createPrototypeImport = function () {\n return {\n interfaceId: exports.getInterfaceId(),\n };\n};\nvar createPrototypeExport = function () {\n return {\n interfaces: [{ interfaceId: exports.getInterfaceId() }],\n };\n};\nexports.Interface = {\n createPrototypeExport: createPrototypeExport,\n createPrototypeImport: createPrototypeImport,\n getInterfaceId: exports.getInterfaceId,\n createMock: createMock,\n};\n//# sourceMappingURL=canfd-clock-interface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar canfd_clock_interface_1 = require(\"./canfd-clock-interface\");\nexports.Interface = canfd_clock_interface_1.Interface;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar pin_standard_1 = require(\"./pin-standard\");\nexports.pin_standard = pin_standard_1.pin_standard;\nexports.pin_state = pin_standard_1.pin_state;\nexports.direction = pin_standard_1.direction;\nexports.behaviour = pin_standard_1.behaviour;\nexports.data_schema = pin_standard_1.data_schema;\nexports.pin_attribs_enum = pin_standard_1.pin_attribs_enum;\nexports.actiontype = pin_standard_1.actiontype;\nexports.QueryAdapterKey = pin_standard_1.QueryAdapterKey;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pin_standard = function () {\n return {\n interfaceId: {\n name: \"pin-standard\",\n version: \"0.1.0\",\n },\n };\n};\nvar QueryAdapterKey;\n(function (QueryAdapterKey) {\n QueryAdapterKey[\"ALLPINS\"] = \"allpins\";\n QueryAdapterKey[\"PPS\"] = \"pps\";\n QueryAdapterKey[\"PORTMUX\"] = \"portmux\";\n})(QueryAdapterKey = exports.QueryAdapterKey || (exports.QueryAdapterKey = {}));\nvar pin_state;\n(function (pin_state) {\n pin_state[\"EMPTY\"] = \"E\";\n pin_state[\"LOCKED\"] = \"L\";\n pin_state[\"UNLOCK\"] = \"UL\";\n pin_state[\"DiSABLE_LOCK\"] = \"DL\";\n pin_state[\"UNLOCKED_DISABLED\"] = \"DUL\";\n pin_state[\"LOCKED_LINK\"] = \"LL\";\n pin_state[\"UNLOCKED_MUX\"] = \"MUL\";\n pin_state[\"LOCKED_CONFLICT\"] = \"CL\";\n})(pin_state = exports.pin_state || (exports.pin_state = {}));\nvar pin_interrupts_enum;\n(function (pin_interrupts_enum) {\n pin_interrupts_enum[\"INTDIS_BUFFEN\"] = \"INTDIS_BUFFEN\";\n pin_interrupts_enum[\"BOTH_EDGES\"] = \"BOTH_EDGES\";\n pin_interrupts_enum[\"RISING_EDGE\"] = \"RISING_EDGE\";\n pin_interrupts_enum[\"FALLING_EDGE\"] = \"FALLING_EDGE\";\n pin_interrupts_enum[\"NONE\"] = \"NONE\";\n pin_interrupts_enum[\"LOW_LEVEL\"] = \"LOW_LEVEL\";\n})(pin_interrupts_enum = exports.pin_interrupts_enum || (exports.pin_interrupts_enum = {}));\nvar pin_attribs_enum;\n(function (pin_attribs_enum) {\n pin_attribs_enum[\"aliasReEx\"] = \"aliasReEx\";\n pin_attribs_enum[\"cname\"] = \"cname\";\n pin_attribs_enum[\"high\"] = \"high\";\n pin_attribs_enum[\"inv\"] = \"inv\";\n pin_attribs_enum[\"wpu\"] = \"wpu\";\n pin_attribs_enum[\"od\"] = \"od\";\n pin_attribs_enum[\"analog\"] = \"analog\";\n pin_attribs_enum[\"ioc\"] = \"ioc\";\n pin_attribs_enum[\"intcallback\"] = \"intcallback\";\n pin_attribs_enum[\"alias\"] = \"alias\";\n})(pin_attribs_enum = exports.pin_attribs_enum || (exports.pin_attribs_enum = {}));\nvar actiontype;\n(function (actiontype) {\n actiontype[\"SETACTION\"] = \"SETACTION\";\n actiontype[\"ATTRIBACTION\"] = \"ATTRIBACTION\";\n})(actiontype = exports.actiontype || (exports.actiontype = {}));\nvar direction;\n(function (direction) {\n direction[\"output\"] = \"output\";\n direction[\"input\"] = \"input\";\n direction[\"bidirectional\"] = \"bidirectional\";\n})(direction = exports.direction || (exports.direction = {}));\nvar behaviour;\n(function (behaviour) {\n behaviour[\"LOCK_UNLOCK\"] = \"LOCK_UNLOCK\";\n behaviour[\"ALWAYS_LOCKED\"] = \"ALWAYS_LOCKED\";\n behaviour[\"SINGLE_PIN_MUX\"] = \"SINGLE_PIN_MUX\";\n behaviour[\"OPTIONAL_PIN_MUX\"] = \"OPTIONAL_PIN_MUX\";\n behaviour[\"PPS\"] = \"PPS\";\n behaviour[\"PORTMUX\"] = \"PORTMUX\";\n behaviour[\"EXCLUSIVE_LOCK\"] = \"EXCLUSIVE_LOCK\";\n})(behaviour = exports.behaviour || (exports.behaviour = {}));\n//------------------------------------ schema ------------------------------------//\nexports.data_schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n $ref: \"#/definitions/intf_data\",\n definitions: {\n intf_data: {\n type: \"object\",\n properties: {\n rows: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_row\",\n },\n },\n },\n required: [\"rows\"],\n additionalProperties: false,\n },\n pin_row: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n module: {\n type: \"string\",\n },\n function: {\n type: \"string\",\n },\n direction: {\n $ref: \"#/definitions/direction\",\n },\n filter: {\n $ref: \"#/definitions/filter\",\n },\n behaviour: {\n $ref: \"#/definitions/behaviour\",\n },\n behaviourMeta: {\n $ref: \"#/definitions/behaviourMeta\",\n },\n attribs: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pin_attribs\",\n },\n },\n groupsdata: {\n $ref: \"#/definitions/pingroups_data\",\n },\n actions: {},\n },\n required: [\"name\", \"module\", \"function\", \"direction\", \"filter\", \"behaviour\"],\n additionalProperties: false,\n },\n direction: {\n type: \"string\",\n enum: [\"output\", \"input\", \"bidirectional\"],\n },\n filter: {\n type: \"object\",\n properties: {\n module: {\n type: \"string\",\n },\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"module\", \"aliasReEx\"],\n additionalProperties: false,\n },\n behaviour: {\n type: \"string\",\n enum: [\n \"LOCK_UNLOCK\",\n \"ALWAYS_LOCKED\",\n \"SINGLE_PIN_MUX\",\n \"OPTIONAL_PIN_MUX\",\n \"PPS\",\n \"PORTMUX\",\n \"EXCLUSIVE_LOCK\",\n ],\n },\n behaviourMeta: {\n type: \"object\",\n properties: {\n lockPinRegEx: {\n type: \"string\",\n },\n },\n required: [\"lockPinRegEx\"],\n additionalProperties: false,\n },\n pin_attribs: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n cname: {\n type: \"string\",\n },\n high: {\n type: \"boolean\",\n },\n inv: {\n type: \"boolean\",\n },\n wpu: {\n type: \"boolean\",\n },\n od: {\n type: \"boolean\",\n },\n analog: {\n type: \"boolean\",\n },\n ioc: {\n $ref: \"#/definitions/pin_interrupts_enum\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n pin_interrupts_enum: {\n type: \"string\",\n enum: [\n \"INTDIS_BUFFEN\",\n \"BOTH_EDGES\",\n \"RISING_EDGE\",\n \"FALLING_EDGE\",\n \"NONE\",\n \"LOW_LEVEL\",\n ],\n },\n pingroups_data: {\n type: \"object\",\n properties: {\n groups: {\n type: \"array\",\n items: {\n $ref: \"#/definitions/pins_group\",\n },\n },\n },\n required: [\"groups\"],\n additionalProperties: false,\n },\n pins_group: {\n type: \"object\",\n properties: {\n name: {\n type: \"string\",\n },\n filter: {\n $ref: \"#/definitions/grpfilter\",\n },\n datapath: {\n type: \"string\",\n },\n },\n required: [\"name\", \"filter\"],\n additionalProperties: false,\n },\n grpfilter: {\n type: \"object\",\n properties: {\n aliasReEx: {\n type: \"string\",\n },\n },\n required: [\"aliasReEx\"],\n additionalProperties: false,\n },\n },\n};\n//# sourceMappingURL=pin-standard.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AlertTypes;\n(function (AlertTypes) {\n AlertTypes[\"Error\"] = \"error\";\n AlertTypes[\"Warning\"] = \"warning\";\n AlertTypes[\"Hint\"] = \"hint\";\n})(AlertTypes = exports.AlertTypes || (exports.AlertTypes = {}));\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction hasOptions(dep) {\n return dep.options !== undefined;\n}\nexports.hasOptions = hasOptions;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isAssigned(dep) {\n return typeof dep.handle !== \"undefined\";\n}\nexports.isAssigned = isAssigned;\n/**\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n */\nfunction isUnassigned(dep) {\n return typeof dep.handle === \"undefined\";\n}\nexports.isUnassigned = isUnassigned;\n/**\n * Type guard function for SingletonExport\n * See User-Defined Type Guards in the Typescript Handbook on Advanced Types\n * @see https://www.typescriptlang.org/docs/handbook/advanced-types.html\n * @param resource the export to check on being a singleton\n * @deprecated No longer used. Replaced with dynamic singleton identification\n * at runtime.\n */\nfunction isSingleton(resource) {\n return typeof resource.isSingleton !== \"undefined\" && resource.isSingleton;\n}\nexports.isSingleton = isSingleton;\n/**\n * Returns a copy of `populatedImport` with all options removed which\n * cause `optionFilter` to return false.\n */\nfunction filterOptions(populatedImport, optionFilter) {\n if (populatedImport.options) {\n return __assign({}, populatedImport, { options: populatedImport.options.filter(optionFilter) });\n }\n return populatedImport;\n}\nexports.filterOptions = filterOptions;\n/**\n * Returns a copy of `populatedImport` with the options' handle labels\n * mapped according to `labelFactory`.\n */\nfunction mapOptionLabels(populatedImport, labelFactory) {\n if (populatedImport.options) {\n return __assign({}, populatedImport, { options: populatedImport.options.map(function (option) {\n return __assign({}, option, { handle: __assign({}, option.handle, { label: labelFactory(option) }) });\n }) });\n }\n return populatedImport;\n}\nexports.mapOptionLabels = mapOptionLabels;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Setting_1 = require(\"./Setting\");\nvar Register_1 = require(\"./Register\");\nvar Arrays_1 = require(\"./util/Arrays\");\n/** Builder pattern */\nvar CalculateRegisterValue = /** @class */ (function () {\n function CalculateRegisterValue(register) {\n var _this = this;\n this.modifiedSettings = [];\n /** Assign a numerical value to the given `Setting`. */\n this.withNumberValue = function (setting, value) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign number value to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new NumberSettingValue(setting, value)\n ]);\n return _this;\n };\n /** Assign the given `Option` to the given `Setting`. */\n this.withOption = function (setting, option) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n if (!_this.getOption(setting, option)) {\n throw new Error(\"Option \" + option.name + \" is not present in Setting \" + setting.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new OptionSettingValue(setting, option)\n ]);\n return _this;\n };\n /** Assign the `Option` matching the given alias to the given `Setting`. */\n this.withOptionAlias = function (setting, optionAlias) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option alias to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByAlias(optionAlias, setting);\n if (option === undefined) {\n throw new Error(\"Option Alias: \\\"\" + optionAlias + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given name to the given `Setting`. */\n this.withOptionName = function (setting, optionName) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option name to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByName(optionName, setting);\n if (option === undefined) {\n throw new Error(\"Option Name: \\\"\" + optionName + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given description to the given `Setting`. */\n this.withOptionDescription = function (setting, optionDescription) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option description to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByDescription(optionDescription, setting);\n if (option === undefined) {\n throw new Error(\"Option Description: \\\"\" + optionDescription + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n this.getSetting = function (setting) {\n return Register_1.getSettingByAlias(setting.alias, _this.register);\n };\n this.getOption = function (setting, option) {\n return Setting_1.getOptionByName(option.name, setting);\n };\n this.calculate = function () {\n var registerValue = 0;\n _this.modifiedSettings.forEach(function (modifiedSetting) {\n registerValue = _this.setValue(modifiedSetting, registerValue);\n });\n var unmodifiedSettings = _this.getUnmodifiedSettings();\n unmodifiedSettings.forEach(function (unmodifiedSetting) {\n registerValue = _this.setValue(SettingValue.defaultValue(unmodifiedSetting), registerValue);\n });\n return Number(registerValue);\n };\n this.setValue = function (setting, registerValue) {\n var value = registerValue;\n value &= ~setting.getMask(); // Clear bits\n value |= setting.getShiftedValue(); // Set bits\n return value;\n };\n this.getUnmodifiedSettings = function () {\n var _a;\n var modifiedSettingNames = Arrays_1.map(_this.modifiedSettings, function (setting) { return setting.getName(); });\n return Arrays_1.filter((_a = Arrays_1.values(_this.register.settings)) !== null && _a !== void 0 ? _a : [], function (setting) { return modifiedSettingNames.indexOf(setting.name) < 0; });\n };\n /** Calculate and print the register's value as a hex string. */\n this.asHexString = function () { return CalculateRegisterValue.toHexString(_this.calculate()); };\n /** Calculate and print the register's value as a binary string. */\n this.asBinaryString = function () { return CalculateRegisterValue.toBinaryString(_this.calculate()); };\n /** Calculate and print the register's value as a decimal string. */\n this.asDecimalString = function () { return CalculateRegisterValue.toDecimalString(_this.calculate()); };\n /** Calculate and return the register's value as a number. */\n this.asNumber = function () { return _this.calculate(); };\n this.register = register;\n }\n /** Creates a register value calculation object for the given register. */\n CalculateRegisterValue.for = function (register) {\n return new CalculateRegisterValue(register);\n };\n /** Format the given number as a hex string value. */\n CalculateRegisterValue.toHexString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toHexString() illegal argument exception. Value must not be null.\");\n }\n return \"0x\" + value.toString(16);\n };\n /** Format the given number as a binary string value. */\n CalculateRegisterValue.toBinaryString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toBinaryString() illegal argument exception. Value must not be null.\");\n }\n return \"0b\" + value.toString(2);\n };\n /** Format the given number as a decimal string value. */\n CalculateRegisterValue.toDecimalString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toDecimalString() illegal argument exception. Value must not be null.\");\n }\n return value.toString();\n };\n return CalculateRegisterValue;\n}());\nexports.default = CalculateRegisterValue;\nvar SettingValue = /** @class */ (function () {\n function SettingValue(setting) {\n var _this = this;\n this.getMask = function () { return Number(_this.setting.mask); };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getShiftedValue = function () { return _this.getValue() << _this.getShift(); };\n this.getName = function () { return _this.setting.name; };\n this.setting = setting;\n }\n SettingValue.defaultValue = function (setting) {\n var value = Number(setting.porDefault);\n return new NumberSettingValue(setting, value);\n };\n return SettingValue;\n}());\nvar NumberSettingValue = /** @class */ (function (_super) {\n __extends(NumberSettingValue, _super);\n function NumberSettingValue(setting, value) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return _this.value; };\n _this.value = value;\n return _this;\n }\n return NumberSettingValue;\n}(SettingValue));\nvar OptionSettingValue = /** @class */ (function (_super) {\n __extends(OptionSettingValue, _super);\n function OptionSettingValue(setting, option) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return Number(_this.option.value); };\n _this.option = option;\n return _this;\n }\n OptionSettingValue.fromDefaultValue = function (setting, value) {\n var foundValueByName = Setting_1.getOptionByName(value, setting);\n if (foundValueByName)\n return new OptionSettingValue(setting, foundValueByName);\n var foundValueByAlias = Setting_1.getOptionByAlias(value, setting);\n if (foundValueByAlias)\n return new OptionSettingValue(setting, foundValueByAlias);\n throw new Error(\"Unable to create default value '\" + value + \"' for setting '\" + setting.name + \"'.\");\n };\n return OptionSettingValue;\n}(SettingValue));\n//# sourceMappingURL=CalculateRegisterValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSettingByAlias = void 0;\nexports.getSettingByAlias = function (alias, register) {\n return register.settings[alias];\n};\n//# sourceMappingURL=Register.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionDescriptions = exports.getOptionNames = exports.getOptionByDescription = exports.getOptionByName = exports.getOptionByAlias = void 0;\nvar Arrays_1 = require(\"./util/Arrays\");\nexports.getOptionByAlias = function (alias, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.alias == alias; });\n};\nexports.getOptionByName = function (name, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name == name; });\n};\nexports.getOptionByDescription = function (description, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description == description; });\n};\nexports.getOptionNames = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name; });\n};\nexports.getOptionDescriptions = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description; });\n};\n//# sourceMappingURL=Setting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.values = exports.getKeys = exports.find = exports.filter = exports.map = void 0;\nexports.map = function (arr, callback) {\n var result = [];\n arr.forEach(function (value, index) {\n result[index] = callback(value);\n });\n return result;\n};\nexports.filter = function (arr, callback) {\n var result = [];\n arr.forEach(function (value) {\n if (callback(value)) {\n result.push(value);\n }\n });\n return result;\n};\n/**\n * Iterates over elements of the array, returning the first element that the predicate returns truthy for.\n */\nexports.find = function (arr, callback) {\n for (var i = 0; i < arr.length; i++) {\n if (callback(arr[i])) {\n return arr[i];\n }\n }\n return undefined;\n};\n/** @returns the non-prototype keys of the given object */\nexports.getKeys = function (obj) {\n if (!obj)\n return undefined;\n return Object.getOwnPropertyNames(obj);\n};\nexports.values = function (obj) {\n if (!obj)\n return undefined;\n return exports.getKeys(obj).map(function (key) { return obj[key]; });\n};\n//# sourceMappingURL=Arrays.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildSimpleApi = function (functions) {\n var api = {};\n for (var key in functions) {\n api[key] = buildFunction(functions[key]);\n }\n return api;\n};\nvar buildFunction = function (cFunction) {\n return cFunction.returns + \" \" + cFunction.name + \"(\" + buildArguments(cFunction.arguments) + \")\";\n};\nvar buildArguments = function (args) {\n if (args) {\n return args.map(function (arg) { return arg.type + \" \" + arg.name; }).join(\", \");\n }\n else {\n return \"void\";\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInterfaceName = function (pkgJson) {\n var strReplace = \"@microchip/\";\n var interfaceName;\n if (pkgJson) {\n interfaceName = pkgJson[\"name\"];\n if (interfaceName) {\n interfaceName = interfaceName.replace(strReplace, \"\");\n }\n }\n if (!interfaceName) {\n throw new Error(\"Invalid Interface Name...!\");\n }\n return interfaceName;\n};\nexports.getInterfaceVersion = function (pkgJson) {\n var versionRegex = new RegExp(\"\\\\d+.\\\\d+.\\\\d+\");\n var version;\n if (pkgJson) {\n version = pkgJson[\"version\"];\n }\n if (!version && !versionRegex.test(version)) {\n throw new Error(\"Invalid Interface Version...!\");\n }\n return version;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar c_function_types_1 = require(\"./c-function-types\");\nexports.buildSimpleApi = c_function_types_1.buildSimpleApi;\nvar helpers_1 = require(\"./helpers\");\nexports.getInterfaceName = helpers_1.getInterfaceName;\nexports.getInterfaceVersion = helpers_1.getInterfaceVersion;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateRegisterView = void 0;\nvar CalculateRegisterValue_1 = __importDefault(require(\"@microchip/scf-device/lib/CalculateRegisterValue\"));\nvar Arrays_1 = require(\"@microchip/scf-device/lib/util/Arrays\");\nvar ViewSchemaBuilder_1 = require(\"./ViewSchemaBuilder\");\nvar Model_1 = require(\"./Model\");\nvar throwError = function (message) {\n throw new Error(message);\n};\nvar CreateRegisterView = /** @class */ (function () {\n function CreateRegisterView(module) {\n var _this = this;\n this.registers = [];\n this.interrupts = [];\n /** Create a register view */\n this.create = function () {\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n title: \"Register Settings\",\n type: \"object\",\n })\n .withTabName(\"Register Initialization\")\n .withExpandedDefault(false);\n _this.registers.forEach(function (reg) {\n schemaBuilder.addChildComponent(reg.getRegister().name, _this.createRegisterView(reg));\n });\n schemaBuilder.addChildComponent(\"interrupts\", _this.createInterruptView());\n return schemaBuilder.build();\n };\n /** Assign a numerical value to the given register. */\n this.withRegisterValue = function (register, value) {\n _this.getSafeRegisterViewModel(register).setValue(value);\n return _this;\n };\n /** Assign a string value to the given interrupt. */\n this.withInterruptValue = function (interrupt, value) {\n _this.getSafeInterruptViewModel(interrupt).setValue(value);\n return _this;\n };\n /** Assign the interrupt combobox options. */\n this.withInterruptOptions = function (interrupt, options) {\n _this.getSafeInterruptViewModel(interrupt).setOptions(options);\n return _this;\n };\n /** Make all settings in all registers editable */\n this.withAllEditable = function () {\n _this.registers.forEach(function (register) {\n return _this.withEditableRegister(register.getRegister());\n });\n _this.interrupts.forEach(function (interrupt) {\n _this.withEditableInterrupt(interrupt.getInterrupt());\n });\n return _this;\n };\n /** Make all settings in the given register editable */\n this.withEditableRegister = function (register) {\n _this.getSafeRegisterViewModel(register).setReadonly(false);\n return _this;\n };\n /** Make a given setting in register editable */\n this.withEditableSetting = function (register, setting) {\n _this.getSafeSettingViewModel(register, setting).setReadonly(false);\n return _this;\n };\n /** Make a given interrupt editable */\n this.withEditableInterrupt = function (interrupt) {\n _this.getSafeInterruptViewModel(interrupt).setReadonly(false);\n return _this;\n };\n this.getSafeRegisterViewModel = function (register) { var _a; return (_a = _this.getRegisterViewModel(register !== null && register !== void 0 ? register : throwError(\"Invalid register parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get register view model for '\" + register.name + \"'. Not found in this module.\"); };\n this.getSafeInterruptViewModel = function (interrupt) { var _a; return (_a = _this.getInterruptViewModel(interrupt !== null && interrupt !== void 0 ? interrupt : throwError(\"Invalid interrupt parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get interrupt view model for '\" + interrupt.name + \"'. Not found in this module.\"); };\n this.getSafeSettingViewModel = function (register, setting) { var _a; return (_a = _this.getSafeRegisterViewModel(register).getSettingViewModel(setting !== null && setting !== void 0 ? setting : throwError(\"Invalid setting parameter.\"))) !== null && _a !== void 0 ? _a : throwError(\"Cannot get setting view model for '\" + setting.name + \"'. Not found in this module.\"); };\n this.getRegisterViewModel = function (register) {\n var name = register.name;\n return Arrays_1.find(_this.registers, function (rv) { return rv.getRegister().name === name; });\n };\n this.getInterruptViewModel = function (interrupt) {\n var name = interrupt.name;\n return Arrays_1.find(_this.interrupts, function (rv) { return rv.getInterrupt().name === name; });\n };\n this.createRegisterView = function (register) {\n var registerValue = register.getValue() || 0;\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n type: \"object\",\n title: register.getName() +\n \" : \" +\n CalculateRegisterValue_1.default.toHexString(registerValue),\n description: register.getDescription(),\n properties: {},\n })\n .withUiSchema({})\n .withFormData({});\n register.forEachSetting(function (setting) {\n schemaBuilder.addChildComponent(setting.getName(), _this.createSettingView(setting));\n });\n return schemaBuilder.build();\n };\n this.createSettingView = function (setting) {\n return setting.hasOptions()\n ? _this.createHasOptionsViewSchema(setting)\n : _this.getNoOptionsViewSchema(setting);\n };\n this.createInterruptView = function () {\n var schemaBuilder = new ViewSchemaBuilder_1.ViewSchemaBuilder()\n .withSchema({\n type: \"object\",\n title: \"Interrupts\",\n properties: {},\n })\n .withUiSchema({})\n .withFormData({});\n _this.interrupts.forEach(function (int) {\n schemaBuilder.addChildComponent(int.getInterrupt().name, _this.createInterruptViewSchema(int));\n });\n return schemaBuilder.build();\n };\n this.module = module;\n this.registers = this.createRegisterViewModelForEachRegister(module);\n this.interrupts = this.createInterruptViewModelForEachInterrupt(module);\n }\n CreateRegisterView.prototype.createRegisterViewModelForEachRegister = function (module) {\n var _a;\n var models = [];\n var registers = (_a = module.registers) !== null && _a !== void 0 ? _a : [];\n Object.keys(registers).forEach(function (registerKey) {\n models.push(new Model_1.RegisterViewModel(registers[registerKey]));\n });\n return models;\n };\n CreateRegisterView.prototype.createInterruptViewModelForEachInterrupt = function (module) {\n var _a;\n var models = [];\n var interrupts = (_a = module.interrupts) !== null && _a !== void 0 ? _a : [];\n Object.keys(interrupts).forEach(function (interruptKey) {\n models.push(new Model_1.InterruptViewModel(interrupts[interruptKey]));\n });\n return models;\n };\n CreateRegisterView.prototype.getNoOptionsViewSchema = function (setting) {\n return {\n schema: this.createSettingViewSchema(setting),\n uiSchema: setting.getMaxValue() > 1\n ? { \"ui:readonly\": setting.getIsReadonly() }\n : this.getBinarySettingUiSchema(setting),\n formData: setting.mapToOptionNameIfExists(setting.getValue()),\n };\n };\n CreateRegisterView.prototype.createHasOptionsViewSchema = function (setting) {\n var schemaBuilder = new ViewSchemaBuilder_1.SchemaBuilder(\"string\", setting.getName())\n .withEnum(setting.getOptionNames())\n .withDefault(setting.mapToOptionNameIfExists(setting.getValue()));\n return {\n schema: schemaBuilder.build(),\n uiSchema: { \"ui:readonly\": setting.getIsReadonly() },\n formData: setting.mapToOptionNameIfExists(setting.getValue()),\n };\n };\n CreateRegisterView.prototype.createSettingViewSchema = function (setting) {\n var schema = new ViewSchemaBuilder_1.SchemaBuilder(\"integer\", setting.getName()).withDefault(setting.mapToOptionNameIfExists(setting.getPORDefault()));\n setting.getMaxValue() > 1\n ? schema.withMaximum(setting.getMaxValue()).withMinimum(0)\n : schema.withEnum([0, 1]);\n return schema.build();\n };\n CreateRegisterView.prototype.createInterruptViewSchema = function (interrupt) {\n var schema = new ViewSchemaBuilder_1.SchemaBuilder(\"string\", interrupt.getInterrupt().name)\n .withEnum(interrupt.getOptions())\n .withDefault(interrupt.getValue());\n return {\n schema: schema.build(),\n uiSchema: { \"ui:readonly\": interrupt.getIsReadonly() },\n formData: interrupt.getValue(),\n };\n };\n CreateRegisterView.prototype.getBinarySettingUiSchema = function (setting) {\n return new ViewSchemaBuilder_1.UiSchemaBuilder()\n .withReadonlyValue(setting.getIsReadonly())\n .withWidget(\"radio\")\n .withOptions({ inline: true })\n .build();\n };\n /** Creates Register View Builder for the given module. */\n CreateRegisterView.for = function (moduleDescription) {\n if (!moduleDescription) {\n throwError(\"Creation failed. Invalid module parameter.\");\n }\n if (!moduleDescription.registers && !moduleDescription.interrupts) {\n throwError(\"Creation failed for \" + moduleDescription.name + \". Input module contains no registers or interrupts.\");\n }\n return new CreateRegisterView(moduleDescription);\n };\n return CreateRegisterView;\n}());\nexports.CreateRegisterView = CreateRegisterView;\n//# sourceMappingURL=CreateRegisterView.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SettingViewModel = exports.RegisterViewModel = exports.InterruptViewModel = void 0;\nvar CalculateRegisterValue_1 = __importDefault(require(\"@microchip/scf-device/lib/CalculateRegisterValue\"));\nvar Arrays_1 = require(\"@microchip/scf-device/lib/util/Arrays\");\nvar InterruptViewModel = /** @class */ (function () {\n function InterruptViewModel(interrupt) {\n var _this = this;\n this.isReadOnly = true;\n this.getInterrupt = function () { return _this.interrupt; };\n this.setValue = function (value) {\n _this.value = value;\n };\n this.getValue = function () { return _this.value; };\n this.setOptions = function (options) {\n _this.options = options;\n };\n this.getOptions = function () { return _this.options; };\n this.getIsReadonly = function () { return _this.isReadOnly; };\n this.setReadonly = function (isReadOnly) {\n _this.isReadOnly = isReadOnly;\n };\n if (!interrupt) {\n throw new Error(\"IllegalInputArgument for 'interrupt' in InterruptValue\");\n }\n this.interrupt = interrupt;\n }\n return InterruptViewModel;\n}());\nexports.InterruptViewModel = InterruptViewModel;\nvar RegisterViewModel = /** @class */ (function () {\n function RegisterViewModel(register) {\n var _this = this;\n this.settings = [];\n this.getSettings = function () { return _this.settings; };\n this.getSettingViewModel = function (setting) {\n var name = setting.name;\n return Arrays_1.find(_this.settings, function (rv) { return rv.getSetting().name === name; });\n };\n this.forEachSetting = function (doThis) {\n _this.settings.forEach(doThis);\n };\n this.getRegister = function () { return _this.register; };\n this.getName = function () { return _this.register.name; };\n this.getDescription = function () { return _this.register.desc; };\n this.getValue = function () { return _this.value; };\n this.setValue = function (value) {\n _this.value = value;\n };\n this.setReadonly = function (value) {\n if (value === void 0) { value = true; }\n _this.forEachSetting(function (setting) { return setting.setReadonly(value); });\n };\n this.getDefaultValue = function () {\n return CalculateRegisterValue_1.default.for(_this.register).asNumber();\n };\n this.getValueOrDefault = function () {\n var value = _this.getValue();\n return value !== null && value !== void 0 ? value : _this.getDefaultValue();\n };\n if (!register) {\n throw new Error(\"IllegalInputArgument for 'register' in RegisterValue\");\n }\n this.register = register;\n if (register.settings) {\n this.settings = this.createSettingViewModels(register);\n }\n }\n RegisterViewModel.prototype.createSettingViewModels = function (register) {\n var _this = this;\n var _a;\n var models = [];\n var settings = (_a = register.settings) !== null && _a !== void 0 ? _a : [];\n Object.keys(settings).forEach(function (settingKey) {\n models.push(new SettingViewModel(settings[settingKey], _this.getValueOrDefault));\n });\n return models;\n };\n return RegisterViewModel;\n}());\nexports.RegisterViewModel = RegisterViewModel;\nvar SettingViewModel = /** @class */ (function () {\n function SettingViewModel(setting, getRegisterValue) {\n var _this = this;\n this.isReadonly = true;\n this.setReadonly = function (value) {\n if (value === void 0) { value = true; }\n _this.isReadonly = value;\n };\n this.getIsReadonly = function () { return _this.isReadonly; };\n this.getSetting = function () { return _this.setting; };\n this.getName = function () { return _this.setting.name; };\n this.getDescription = function () { return _this.setting.description; };\n this.getPORDefault = function () { return Number(_this.setting.porDefault); };\n this.getMask = function () { return Number(_this.setting.mask); };\n this.hasOptions = function () {\n return !!_this.setting.options;\n };\n this.getOptionNames = function () {\n return Arrays_1.map(nullSafe(_this.setting.options), function (option) { return option.name; });\n };\n this.mapToOptionNameIfExists = function (value) {\n var option = _this.getOptionForValue(value);\n return option != null ? option.name : value;\n };\n this.getOptionForValue = function (value) {\n return Arrays_1.find(nullSafe(_this.setting.options), function (option) {\n var optionValue = option.value;\n return optionValue != undefined\n ? parseInt(optionValue) === value\n : false;\n });\n };\n this.getValue = function () {\n var value = _this.getRegisterValue();\n value &= _this.getMask();\n return value >> _this.getShift();\n };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getMaxValue = function () {\n var mask = _this.getMask();\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n }\n return mask;\n };\n if (!setting) {\n throw new Error(\"SettingViewModel: Invalid input argument\");\n }\n this.setting = setting;\n this.getRegisterValue = getRegisterValue;\n }\n return SettingViewModel;\n}());\nexports.SettingViewModel = SettingViewModel;\nvar nullSafe = function (array) {\n return array ? array : [];\n};\n//# sourceMappingURL=Model.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UiSchemaBuilder = exports.SchemaBuilder = exports.ViewSchemaBuilder = void 0;\nvar ViewSchemaBuilder = /** @class */ (function () {\n function ViewSchemaBuilder() {\n this.schema = {};\n this.uiSchema = {};\n this.formData = {};\n this.tabName = \"main\";\n this.expandGroupsByDefault = true;\n }\n ViewSchemaBuilder.prototype.withSchema = function (schema) {\n this.schema = schema;\n return this;\n };\n ViewSchemaBuilder.prototype.withUiSchema = function (uiSchema) {\n this.uiSchema = uiSchema;\n return this;\n };\n ViewSchemaBuilder.prototype.withFormData = function (formData) {\n this.formData = formData;\n return this;\n };\n ViewSchemaBuilder.prototype.withTabName = function (name) {\n this.tabName = name;\n return this;\n };\n ViewSchemaBuilder.prototype.withExpandedDefault = function (expandGroupsByDefault) {\n this.expandGroupsByDefault = expandGroupsByDefault;\n return this;\n };\n ViewSchemaBuilder.prototype.addChildComponent = function (childName, child) {\n var _a, _b, _c;\n this.schema = __assign(__assign({}, this.schema), { properties: __assign(__assign({}, this.schema.properties), (_a = {}, _a[childName] = child.schema, _a)) });\n this.uiSchema = __assign(__assign({}, this.uiSchema), (_b = {}, _b[childName] = child.uiSchema, _b));\n this.formData = __assign(__assign({}, this.formData), (_c = {}, _c[childName] = child.formData, _c));\n };\n ViewSchemaBuilder.prototype.build = function () {\n return {\n schema: this.schema,\n uiSchema: this.uiSchema,\n formData: this.formData,\n name: this.tabName,\n expandGroupsByDefault: this.expandGroupsByDefault,\n };\n };\n return ViewSchemaBuilder;\n}());\nexports.ViewSchemaBuilder = ViewSchemaBuilder;\nvar SchemaBuilder = /** @class */ (function () {\n function SchemaBuilder(type, title) {\n this.title = title;\n this.type = type;\n }\n SchemaBuilder.prototype.withProperties = function (properties) {\n this.properties = properties;\n return this;\n };\n SchemaBuilder.prototype.withDefault = function (defaultValue) {\n this.default = defaultValue;\n return this;\n };\n SchemaBuilder.prototype.withMaximum = function (maximum) {\n this.maximum = maximum;\n return this;\n };\n SchemaBuilder.prototype.withMinimum = function (minimum) {\n this.minimum = minimum;\n return this;\n };\n SchemaBuilder.prototype.withEnum = function (vals) {\n this.enum = vals;\n return this;\n };\n SchemaBuilder.prototype.build = function () {\n return {\n type: this.type,\n title: this.title,\n properties: this.properties,\n default: this.default,\n maximum: this.maximum,\n minimum: this.minimum,\n enum: this.enum,\n };\n };\n return SchemaBuilder;\n}());\nexports.SchemaBuilder = SchemaBuilder;\nvar UiSchemaBuilder = /** @class */ (function () {\n function UiSchemaBuilder() {\n }\n UiSchemaBuilder.prototype.withReadonlyValue = function (isReadonly) {\n this.isReadOnly = isReadonly;\n return this;\n };\n UiSchemaBuilder.prototype.withWidget = function (widgetName) {\n this.widget = widgetName;\n return this;\n };\n UiSchemaBuilder.prototype.withOptions = function (options) {\n this.options = options;\n return this;\n };\n UiSchemaBuilder.prototype.build = function () {\n return {\n \"ui:readonly\": this.isReadOnly,\n \"ui:widget\": this.widget,\n \"ui:options\": this.options,\n };\n };\n return UiSchemaBuilder;\n}());\nexports.UiSchemaBuilder = UiSchemaBuilder;\n//# sourceMappingURL=ViewSchemaBuilder.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Setting_1 = require(\"./Setting\");\nvar Register_1 = require(\"./Register\");\nvar Arrays_1 = require(\"./util/Arrays\");\n/** Builder pattern */\nvar CalculateRegisterValue = /** @class */ (function () {\n function CalculateRegisterValue(register) {\n var _this = this;\n this.modifiedSettings = [];\n /** Assign a numerical value to the given `Setting`. */\n this.withNumberValue = function (setting, value) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign number value to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new NumberSettingValue(setting, value)\n ]);\n return _this;\n };\n /** Assign the given `Option` to the given `Setting`. */\n this.withOption = function (setting, option) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option to setting, setting is undefined.\");\n }\n if (!_this.getSetting(setting)) {\n throw new Error(\"Setting \" + setting.alias + \" is not present in Register \" + _this.register.name);\n }\n if (!_this.getOption(setting, option)) {\n throw new Error(\"Option \" + option.name + \" is not present in Setting \" + setting.name);\n }\n _this.modifiedSettings = __spreadArrays(_this.modifiedSettings, [\n new OptionSettingValue(setting, option)\n ]);\n return _this;\n };\n /** Assign the `Option` matching the given alias to the given `Setting`. */\n this.withOptionAlias = function (setting, optionAlias) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option alias to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByAlias(optionAlias, setting);\n if (option === undefined) {\n throw new Error(\"Option Alias: \\\"\" + optionAlias + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given name to the given `Setting`. */\n this.withOptionName = function (setting, optionName) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option name to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByName(optionName, setting);\n if (option === undefined) {\n throw new Error(\"Option Name: \\\"\" + optionName + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n /** Assign the `Option` matching the given description to the given `Setting`. */\n this.withOptionDescription = function (setting, optionDescription) {\n if (setting === undefined) {\n throw new Error(\"Cannot assign option description to setting, setting is undefined.\");\n }\n var option = Setting_1.getOptionByDescription(optionDescription, setting);\n if (option === undefined) {\n throw new Error(\"Option Description: \\\"\" + optionDescription + \"\\\" not present in Setting: \\\"\" + setting.name + \"\\\".\");\n }\n return _this.withOption(setting, option);\n };\n this.getSetting = function (setting) {\n return Register_1.getSettingByAlias(setting.alias, _this.register);\n };\n this.getOption = function (setting, option) {\n return Setting_1.getOptionByName(option.name, setting);\n };\n this.calculate = function () {\n var registerValue = 0;\n _this.modifiedSettings.forEach(function (modifiedSetting) {\n registerValue = _this.setValue(modifiedSetting, registerValue);\n });\n var unmodifiedSettings = _this.getUnmodifiedSettings();\n unmodifiedSettings.forEach(function (unmodifiedSetting) {\n registerValue = _this.setValue(SettingValue.defaultValue(unmodifiedSetting), registerValue);\n });\n return Number(registerValue);\n };\n this.setValue = function (setting, registerValue) {\n var value = registerValue;\n value &= ~setting.getMask(); // Clear bits\n value |= setting.getShiftedValue(); // Set bits\n return value;\n };\n this.getUnmodifiedSettings = function () {\n var _a;\n var modifiedSettingNames = Arrays_1.map(_this.modifiedSettings, function (setting) { return setting.getName(); });\n return Arrays_1.filter((_a = Arrays_1.values(_this.register.settings)) !== null && _a !== void 0 ? _a : [], function (setting) { return modifiedSettingNames.indexOf(setting.name) < 0; });\n };\n /** Calculate and print the register's value as a hex string. */\n this.asHexString = function () { return CalculateRegisterValue.toHexString(_this.calculate()); };\n /** Calculate and print the register's value as a binary string. */\n this.asBinaryString = function () { return CalculateRegisterValue.toBinaryString(_this.calculate()); };\n /** Calculate and print the register's value as a decimal string. */\n this.asDecimalString = function () { return CalculateRegisterValue.toDecimalString(_this.calculate()); };\n /** Calculate and return the register's value as a number. */\n this.asNumber = function () { return _this.calculate(); };\n this.register = register;\n }\n /** Creates a register value calculation object for the given register. */\n CalculateRegisterValue.for = function (register) {\n return new CalculateRegisterValue(register);\n };\n /** Format the given number as a hex string value. */\n CalculateRegisterValue.toHexString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toHexString() illegal argument exception. Value must not be null.\");\n }\n return \"0x\" + value.toString(16);\n };\n /** Format the given number as a binary string value. */\n CalculateRegisterValue.toBinaryString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toBinaryString() illegal argument exception. Value must not be null.\");\n }\n return \"0b\" + value.toString(2);\n };\n /** Format the given number as a decimal string value. */\n CalculateRegisterValue.toDecimalString = function (value) {\n if (value == null) {\n throw new Error(\"CalculateRegisterValue.toDecimalString() illegal argument exception. Value must not be null.\");\n }\n return value.toString();\n };\n return CalculateRegisterValue;\n}());\nexports.default = CalculateRegisterValue;\nvar SettingValue = /** @class */ (function () {\n function SettingValue(setting) {\n var _this = this;\n this.getMask = function () { return Number(_this.setting.mask); };\n this.getShift = function () {\n var mask = _this.getMask();\n var shiftIndex = 0;\n while (!(mask & 0x1)) {\n mask = mask >> 1;\n shiftIndex++;\n }\n return shiftIndex;\n };\n this.getShiftedValue = function () { return _this.getValue() << _this.getShift(); };\n this.getName = function () { return _this.setting.name; };\n this.setting = setting;\n }\n SettingValue.defaultValue = function (setting) {\n var value = Number(setting.porDefault);\n return new NumberSettingValue(setting, value);\n };\n return SettingValue;\n}());\nvar NumberSettingValue = /** @class */ (function (_super) {\n __extends(NumberSettingValue, _super);\n function NumberSettingValue(setting, value) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return _this.value; };\n _this.value = value;\n return _this;\n }\n return NumberSettingValue;\n}(SettingValue));\nvar OptionSettingValue = /** @class */ (function (_super) {\n __extends(OptionSettingValue, _super);\n function OptionSettingValue(setting, option) {\n var _this = _super.call(this, setting) || this;\n _this.getValue = function () { return Number(_this.option.value); };\n _this.option = option;\n return _this;\n }\n OptionSettingValue.fromDefaultValue = function (setting, value) {\n var foundValueByName = Setting_1.getOptionByName(value, setting);\n if (foundValueByName)\n return new OptionSettingValue(setting, foundValueByName);\n var foundValueByAlias = Setting_1.getOptionByAlias(value, setting);\n if (foundValueByAlias)\n return new OptionSettingValue(setting, foundValueByAlias);\n throw new Error(\"Unable to create default value '\" + value + \"' for setting '\" + setting.name + \"'.\");\n };\n return OptionSettingValue;\n}(SettingValue));\n//# sourceMappingURL=CalculateRegisterValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSettingByAlias = void 0;\nexports.getSettingByAlias = function (alias, register) {\n return register.settings[alias];\n};\n//# sourceMappingURL=Register.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionDescriptions = exports.getOptionNames = exports.getOptionByDescription = exports.getOptionByName = exports.getOptionByAlias = void 0;\nvar Arrays_1 = require(\"./util/Arrays\");\nexports.getOptionByAlias = function (alias, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.alias == alias; });\n};\nexports.getOptionByName = function (name, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name == name; });\n};\nexports.getOptionByDescription = function (description, setting) {\n var _a;\n return Arrays_1.find((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description == description; });\n};\nexports.getOptionNames = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.name; });\n};\nexports.getOptionDescriptions = function (setting) {\n var _a;\n return Arrays_1.map((_a = setting.options) !== null && _a !== void 0 ? _a : [], function (option) { return option.description; });\n};\n//# sourceMappingURL=Setting.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.values = exports.getKeys = exports.find = exports.filter = exports.map = void 0;\nexports.map = function (arr, callback) {\n var result = [];\n arr.forEach(function (value, index) {\n result[index] = callback(value);\n });\n return result;\n};\nexports.filter = function (arr, callback) {\n var result = [];\n arr.forEach(function (value) {\n if (callback(value)) {\n result.push(value);\n }\n });\n return result;\n};\n/**\n * Iterates over elements of the array, returning the first element that the predicate returns truthy for.\n */\nexports.find = function (arr, callback) {\n for (var i = 0; i < arr.length; i++) {\n if (callback(arr[i])) {\n return arr[i];\n }\n }\n return undefined;\n};\n/** @returns the non-prototype keys of the given object */\nexports.getKeys = function (obj) {\n if (!obj)\n return undefined;\n return Object.getOwnPropertyNames(obj);\n};\nexports.values = function (obj) {\n if (!obj)\n return undefined;\n return exports.getKeys(obj).map(function (key) { return obj[key]; });\n};\n//# sourceMappingURL=Arrays.js.map","require('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array ? array.length : 0;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = find;\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import * as Processor from \"@microchip/scf-common/lib/Processor\";\nimport * as clock_16bit_config_interface from \"@microchip/clock-16bit-config-interface\";\nimport * as canfd_clock_interface from \"@microchip/canfd-clock-interface\";\nimport {\n AppModel,\n DerivedData,\n DerivedFunctions,\n} from \"../generated_module/src/types/AutoModuleTypes\";\nimport { forEach, getKeys } from \"../generated_module/src/Utils\";\nimport { getCanClkDivFreq, getCanfdClockFrequency, MAX_CANFD_CLK_SRC_FREQ } from \"./Util\";\nimport * as clock_16bit_ux_interface from \"@microchip/clock-16bit-interface\";\nimport { ExportArg } from \"@microchip/scf-automodule-interface/lib/src/InterfaceTypes\";\nimport _find from \"lodash.find\";\nimport { InterfaceId } from \"@microchip/scf-common\";\n\nexport const ARGUMENT_MAIN_CLK = \"mainClockArg\";\nconst ARGUMENT_AUX_CLK = \"auxClockArg\";\nconst ARGUMENT_REF_CLK = \"refClockArg\";\nconst CLOCK_16BIT_CONFIG_INTERFACE = \"clock_16bit_config_interface\";\nconst DIGITS_AFTER_DECIMAL_POINT = 2;\nconst COMPONENT_AUX_CLOCK_SOURCE = \"auxClockSource\";\nconst COMPONENT_MAIN_CLOCK_SOURCE = \"mainClockSource\";\nexport const COMPONENT_AUX_CLOCK_INPUT_FREQUENCY = \"auxClockInputFrequency_Hz\";\nexport const COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY = \"mainClockInputFrequency_Hz\";\nconst COMPONENT_REF_CLOCK_SOURCE = \"refClockSource\";\nconst COMPONENT_CANFD_CLOCK_SOURCE = \"canfdClockSource\";\nexport const COMPONENT_REQUESTED_SYSTEM_FREQUENCY = \"requestedSystemFrequency_Hz\";\nconst COMPONENT_FVCO_DIVIDER = \"fvcoDivider\";\nexport const COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY =\n \"requestedAuxClockOutputFrequency_Hz\";\nconst COMPONENT_AFVCO_DIVIDER = \"afvcoDivider\";\nexport const COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY =\n \"requestedRefClockOutputFrequency_Hz\";\nconst COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY =\n \"requestedCanfdClockOutputFrequency_Hz\";\nconst COMPONENT_USB_CLOCK_FREQUENCY = \"usbClockFrequency_Hz\";\nconst PRIMARY = \"Primary\";\nconst PLL = \"PLL\";\nconst POSTSCALER = \"Postscaler\";\nconst EXTERNAL = \"External\";\n\nconst MEGA_HERTZ = 1000000;\nconst KILO_HERTZ = 1000;\n\nexport const getMyDerivedData = (dataModel: AppModel): MyDerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return dataModel;\n};\n\nexport const getDerivedData = (dataModel: AppModel): DerivedData => {\n if (dataModel) {\n return new MyDerivedData(dataModel);\n }\n return new EmptyDerivedData();\n};\n\n//This data will be used at the creator stage and relies on only the state\nclass EmptyDerivedData implements DerivedData {\n getMyFunctions = (): DerivedFunctions => {\n return {};\n };\n getModel = (): AppModel | undefined => {\n return undefined;\n };\n}\n\n//This data will be used at the processor stage\nclass MyDerivedData implements DerivedData {\n private dataModel: AppModel;\n\n constructor(dataModel: AppModel) {\n this.dataModel = dataModel;\n }\n\n getMyFunctions = (): DerivedFunctions => {\n return {\n templateData: this.getMyTemplateData,\n alerts: this.getMyAlerts,\n calculatedFunction: this.calculatedFunction,\n overrideOptions: this.overrideOptions,\n overrideDefaultValues: this.overrideDefaultValues,\n canfdClkSrcFreq: this.getCanfdClockSrcFreqInMhz,\n clock_16bit_config_interface_args: this.getClockConfigInterfaceArgs,\n calculatedSystemFrequency_Hz: this.getActualSystemFrequency,\n instructionClockFrequency_Hz: this.getInstructionClockFrequency,\n usbClockFrequency_Hz: this.getUSBFrequency,\n \"canfd-clock-interface_payload\": this.getCalcCanfdFreqPayload,\n fpllo: this.getFpllo,\n fvco: this.getFvco,\n fvcoDiv: this.getFvcoDiv,\n apllo: this.getAfpllo,\n afvco: this.getAfvco,\n afvcoDiv: this.getAfvcoDiv,\n calculatedRefOutputFrequency_Hz: this.getCalculatedRefOutputFrequency_Hz,\n calculatedCanfdOutputFrequency_Hz: this.getCalculatedCanfdOutputFrequency,\n\n isVisible: this.isComponentVisible,\n requestedCanfdClockOutputFrequency_Hz: this\n .getRequestedCanfdClockOutputFrequency_Hz,\n getUiBehavior: this.getUiBehavior,\n mainClockInputFrequency_HzValidator: this.mainClockInputFrequency_HzValidator,\n auxClockInputFrequency_HzValidator: this.auxClockInputFrequency_HzValidator,\n requestedAuxClockOutputFrequency_HzValidator: this\n .requestedAuxClockOutputFrequency_HzValidator,\n requestedSystemFrequency_HzValidator: this\n .requestedSystemFrequency_HzValidator,\n requestedRefClockOutputFrequency_HzValidator: this\n .requestedRefClockOutputFrequency_HzValidator,\n getCustomUiErrors: this.getCustomUiErrors,\n \"clock-16bit-ux-interface_payloads\": this.getClockApplicationInterfacePayload,\n importName: this.friendlyImportName,\n exportName: this.friendlyExportName,\n };\n };\n\n private getCustomUiErrors = (componentName: string): Error[] | undefined => {\n let customErrors: Error[];\n switch (componentName) {\n case COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY:\n customErrors = [\n {\n name: \"pattern\",\n message:\n \"Main clock input frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_AUX_CLOCK_INPUT_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Auxiliary clock input frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_REQUESTED_SYSTEM_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Requested system frequency should be a positive number.\",\n },\n ];\n break;\n case COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY:\n customErrors = [\n {\n name: \"minimum\",\n message:\n \"Requested auxiliary clock output frequency should be a positive number.\",\n },\n ];\n break;\n default:\n return undefined;\n }\n return customErrors;\n };\n\n private mainClockInputFrequency_HzValidator = (): any => {\n return {\n minimum: this.getMinClockFrequency(),\n maximum: this.getMaxClockFrequency(),\n };\n };\n\n private auxClockInputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private requestedAuxClockOutputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private requestedSystemFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n maximum: this.getMaxSystemClockFrequency(),\n };\n };\n\n private requestedRefClockOutputFrequency_HzValidator = (): any => {\n return {\n minimum: 1,\n };\n };\n\n private getMinClockFrequency = (): number => {\n let minClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n minClockFrequency =\n interfaceData?.mainClockPayload?.mainClockInputMinFrequency ?? 0;\n }\n return minClockFrequency;\n };\n\n private getMaxClockFrequency = (): number => {\n let maxClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n maxClockFrequency =\n interfaceData?.mainClockPayload?.mainClockInputMaxFrequency ?? 0;\n }\n return maxClockFrequency;\n };\n\n private getMaxSystemClockFrequency = (): number => {\n let maxSystemClockFrequency = 0;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n maxSystemClockFrequency =\n interfaceData?.mainClockPayload?.maxSystemClockFrequency ?? 0;\n }\n return maxSystemClockFrequency;\n };\n\n private getUiBehavior = (component: string): any => {\n let uiBehavior = {};\n switch (component) {\n case \"requestedCanfdClockOutputFrequency_Hz\":\n uiBehavior = {\n [\"ui:help\"]:\n \"Requested FCAN frequency can be configured from CAN 2.0/CAN-FD modules in Drivers category\",\n };\n break;\n case \"canfdClkSrcFreq\":\n uiBehavior = {\n [\"ui:help\"]:\n \"CAN FD clock source frequency should be less than or equal to 640 MHz\",\n };\n break;\n default:\n break;\n }\n return uiBehavior;\n };\n\n private getRequestedCanfdClockOutputFrequency_Hz = (): string => {\n return this.getFrequencyInMHz(this.getRequestedCanfdClockFreq() ?? 0);\n };\n\n private getRequestedCanfdClockFreq = (): number | undefined => {\n const clockList: number[] = [];\n const canfdInterfaceRequests = this.getCanfdClockRequestList();\n if (canfdInterfaceRequests != undefined) {\n forEach(canfdInterfaceRequests, (scriptId, requestedFreq) => {\n if (!isNaN(requestedFreq?.requestedCanSpeed_Hz)) {\n clockList.push(requestedFreq.requestedCanSpeed_Hz);\n }\n });\n\n return getSelectedCanfdFreq(clockList);\n }\n return undefined;\n };\n\n private getCanfdClockRequestList = (): Processor.Dictionary<any> | undefined => {\n const canfdInterfaceRequests:\n | Processor.Dictionary<any>\n | undefined = this.dataModel\n .getExportInterfaces()\n .getInterface(\"canfd_clock\", canfd_clock_interface.Interface.getInterfaceId())\n ?.args;\n return canfdInterfaceRequests;\n };\n\n private isAuxClockInputFrequencyVisible = (): boolean => {\n let visible = false;\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n if (auxClockSource != undefined) {\n if (auxClockSource?.indexOf(PRIMARY) >= 0) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isMainClockInputFrequencyVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (\n mainClockSource?.indexOf(PRIMARY) >= 0 ||\n mainClockSource?.indexOf(EXTERNAL) >= 0\n ) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isRequestedSystemFrequencyVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (\n mainClockSource?.indexOf(PLL) >= 0 ||\n mainClockSource.indexOf(POSTSCALER) >= 0\n ) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isRequestedAuxClockOutputFrequencyVisible = (): boolean => {\n let visible = true;\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n if (auxClockSource != undefined) {\n if (auxClockSource?.indexOf(PLL) >= 0) {\n visible = true;\n } else {\n visible = false;\n }\n }\n return visible;\n };\n\n private isFplloVisible = (): boolean => {\n let visible = false;\n const mainClockSource = this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n );\n if (mainClockSource != undefined) {\n if (mainClockSource?.indexOf(PLL) >= 0) {\n visible = true;\n }\n }\n return visible;\n };\n\n private isComponentVisible = (componentName: string): boolean => {\n if (componentName === COMPONENT_USB_CLOCK_FREQUENCY) {\n return this.isUSBSupported();\n } else if (componentName === COMPONENT_REQUESTED_SYSTEM_FREQUENCY) {\n return this.isRequestedSystemFrequencyVisible();\n } else if (componentName === COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY) {\n return this.isMainClockInputFrequencyVisible();\n } else if (\n componentName === COMPONENT_AUX_CLOCK_SOURCE ||\n componentName === \"apllo\"\n ) {\n return this.isAuxClockSupported();\n } else if (\n componentName === COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY ||\n componentName === COMPONENT_AFVCO_DIVIDER ||\n componentName === \"afvco\" ||\n componentName === \"afvcoDiv\"\n ) {\n let visible = false;\n if (this.isAuxClockSupported()) {\n visible = this.isRequestedAuxClockOutputFrequencyVisible();\n }\n return visible;\n } else if (componentName === COMPONENT_AUX_CLOCK_INPUT_FREQUENCY) {\n let visible = false;\n if (this.isAuxClockSupported()) {\n visible = this.isAuxClockInputFrequencyVisible();\n }\n return visible;\n } else if (\n componentName === COMPONENT_REF_CLOCK_SOURCE ||\n componentName === COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY ||\n componentName === \"calculatedRefOutputFrequency_Hz\"\n ) {\n return this.isRefClockSupported();\n } else if (\n componentName === COMPONENT_CANFD_CLOCK_SOURCE ||\n componentName === COMPONENT_REQUESTED_CANFD_CLOCK_OUTPUT_FREQUENCY ||\n componentName === \"calculatedCanfdOutputFrequency_Hz\" ||\n componentName === \"canfdClkSrcFreq\"\n ) {\n return this.isCanfdClockSupported();\n }\n return true;\n };\n\n public getModel = (): AppModel => {\n return this.dataModel;\n };\n\n private getMyTemplateData = (): any => {\n return {};\n };\n\n private getMyAlerts = (): Processor.Alert[] => {\n const alerts: Processor.Alert[] = [];\n if (this.isCanfdClockSupported() && this.getCanfdClockRequestList()) {\n const canfdClockSource = this.dataModel.getComponentValue(\n COMPONENT_CANFD_CLOCK_SOURCE,\n );\n const calculatedCanFdClockSrcFreq = this.dataModel?.getComponentValue(\n \"calculatedCanfdOutputFrequency_Hz\",\n );\n if (\n calculatedCanFdClockSrcFreq &&\n calculatedCanFdClockSrcFreq != \"0.00 kHz\"\n ) {\n const canClkFreqVal = this.getCalculatedCanfdOutputFrequency_Hz();\n let text = \"CAN FD clock source can be configured in Clock Module.\";\n let type = Processor.AlertTypes.Hint;\n if (this.getCanfdClockSrcFreq() > MAX_CANFD_CLK_SRC_FREQ) {\n text =\n \"CAN FD clock source frequency should be less than or equal to 640 MHz. The same can be configured in Clock module.\";\n type = Processor.AlertTypes.Warning;\n } else if (!isStdCanfdFrequency(canClkFreqVal)) {\n text =\n \"The Calculated FCAN frequency is \" +\n calculatedCanFdClockSrcFreq +\n \". The recommended FCAN frequencies are 10 MHz, 20 MHz, 40 MHz or 80 MHz. \" +\n text;\n }\n alerts.push({\n type: type,\n text: text,\n });\n } else if (canfdClockSource && canfdClockSource.startsWith(\"AFVCO\")) {\n const auxClockSource = this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_SOURCE,\n );\n\n if (auxClockSource?.indexOf(PLL) == -1) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"For using \" +\n canfdClockSource +\n \" as CAN FD Clock , select Auxiliary Clock Source option with PLL . CAN FD clock source can be configured in Clock Module.\",\n });\n }\n } else if (\n calculatedCanFdClockSrcFreq &&\n calculatedCanFdClockSrcFreq == \"0.00 kHz\"\n ) {\n alerts.push({\n type: Processor.AlertTypes.Warning,\n text:\n \"Please select a valid clock source for CAN FD . The same can be configured in Clock Module.\",\n });\n }\n }\n\n return alerts;\n };\n\n private calculatedFunction = (): any => {\n return;\n };\n\n private getActualSystemFrequency = (): string => {\n let systemFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n systemFrequency = interfaceData.componentFrequenciesPayload?.fosc_Hz;\n if (systemFrequency != undefined) {\n systemFrequency = Number(\n systemFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (systemFrequency == undefined) {\n systemFrequency = 0;\n }\n\n return this.getFrequencyInMHz(systemFrequency);\n };\n\n private getFrequencyInMHz = (systemFrequency: number): string => {\n let systemFrequencyInStr = \"\";\n\n if (systemFrequency >= MEGA_HERTZ) {\n systemFrequency = systemFrequency / MEGA_HERTZ;\n systemFrequencyInStr =\n systemFrequency.toFixed(DIGITS_AFTER_DECIMAL_POINT) + \" MHz\";\n } else {\n systemFrequency = systemFrequency / KILO_HERTZ;\n systemFrequencyInStr =\n systemFrequency.toFixed(DIGITS_AFTER_DECIMAL_POINT) + \" kHz\";\n }\n\n return systemFrequencyInStr;\n };\n\n private isUSBSupported = (): boolean => {\n let isUSBSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isUSBSupported = interfaceData?.hasUSB;\n }\n return isUSBSupported;\n };\n\n private isAuxClockSupported = (): boolean => {\n let isAuxClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isAuxClockSupported = interfaceData?.hasAuxClock;\n }\n return isAuxClockSupported;\n };\n\n private isRefClockSupported = (): boolean => {\n let isRefClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isRefClockSupported = interfaceData?.hasRefClock;\n }\n return isRefClockSupported;\n };\n\n private isCanfdClockSupported = (): boolean => {\n let isCanfdClockSupported = false;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n isCanfdClockSupported = interfaceData?.hasCanfdClock;\n }\n return isCanfdClockSupported;\n };\n\n private getInstructionClockFrequency = (): string => {\n let instructionClockFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n instructionClockFrequency =\n interfaceData.componentFrequenciesPayload?.foscBy2_Hz;\n if (instructionClockFrequency != undefined) {\n instructionClockFrequency = Number(\n instructionClockFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (instructionClockFrequency == undefined) {\n instructionClockFrequency = 0;\n }\n return this.getFrequencyInMHz(instructionClockFrequency);\n };\n\n private getUSBFrequency = (): string => {\n let usbFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n usbFrequency = interfaceData.componentFrequenciesPayload?.usbClock_Hz;\n if (usbFrequency != undefined) {\n usbFrequency = Number(usbFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (usbFrequency == undefined) {\n usbFrequency = 0;\n }\n return this.getFrequencyInMHz(usbFrequency);\n };\n\n private getFpllo = (): string => {\n let fpllo: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fpllo = interfaceData.componentFrequenciesPayload?.fpllo_Hz;\n if (fpllo != undefined) {\n fpllo = Number(fpllo?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fpllo == undefined) {\n fpllo = 0;\n }\n return this.getFrequencyInMHz(fpllo);\n };\n\n private getFvco = (): string => {\n let fvco: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fvco = interfaceData.componentFrequenciesPayload?.fvco_Hz;\n if (fvco != undefined) {\n fvco = Number(fvco?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fvco == undefined) {\n fvco = 0;\n }\n return this.getFrequencyInMHz(fvco);\n };\n\n private getFvcoDiv = (): string => {\n let fvcoDiv: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n fvcoDiv = interfaceData.componentFrequenciesPayload?.fvcoDiv_Hz;\n if (fvcoDiv != undefined) {\n fvcoDiv = Number(fvcoDiv?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (fvcoDiv == undefined) {\n fvcoDiv = 0;\n }\n return this.getFrequencyInMHz(fvcoDiv);\n };\n\n private getAfpllo = (): string => {\n let afpllo: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afpllo = interfaceData.componentFrequenciesPayload?.afpllo_Hz;\n if (afpllo != undefined) {\n afpllo = Number(afpllo?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afpllo == undefined) {\n afpllo = 0;\n }\n return this.getFrequencyInMHz(afpllo);\n };\n\n private getAfvco = (): string => {\n let afvco: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afvco = interfaceData.componentFrequenciesPayload?.afvco_Hz;\n if (afvco != undefined) {\n afvco = Number(afvco?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afvco == undefined) {\n afvco = 0;\n }\n return this.getFrequencyInMHz(afvco);\n };\n\n private getAfvcoDiv = (): string => {\n let afvcoDiv: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n afvcoDiv = interfaceData.componentFrequenciesPayload?.afvcoDiv_Hz;\n if (afvcoDiv != undefined) {\n afvcoDiv = Number(afvcoDiv?.toFixed(DIGITS_AFTER_DECIMAL_POINT));\n }\n }\n if (afvcoDiv == undefined) {\n afvcoDiv = 0;\n }\n return this.getFrequencyInMHz(afvcoDiv);\n };\n\n private getCalculatedRefOutputFrequency_Hz = (): string => {\n let refClockOutputFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n refClockOutputFrequency = interfaceData.componentFrequenciesPayload?.refo_Hz;\n if (refClockOutputFrequency != undefined) {\n refClockOutputFrequency = Number(\n refClockOutputFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (refClockOutputFrequency == undefined) {\n refClockOutputFrequency = 0;\n }\n return this.getFrequencyInMHz(refClockOutputFrequency);\n };\n\n private getCalcCanfdFreqPayload = (): canfd_clock_interface.ProcessedPayload => {\n return {\n calculatedCanSpeed_Hz: this.getCalculatedCanfdOutputFrequency_Hz(),\n };\n };\n\n private getCalculatedCanfdOutputFrequency = (): string => {\n return this.getFrequencyInMHz(this.getCalculatedCanfdOutputFrequency_Hz());\n };\n\n private getCalculatedCanfdOutputFrequency_Hz = (): number => {\n let canfdClockOutputFrequency: number | undefined;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n canfdClockOutputFrequency =\n interfaceData?.canfdClockPayload?.calculatedCanfdOutputFrequency_Hz;\n if (canfdClockOutputFrequency != undefined) {\n canfdClockOutputFrequency = Number(\n canfdClockOutputFrequency?.toFixed(DIGITS_AFTER_DECIMAL_POINT),\n );\n }\n }\n if (canfdClockOutputFrequency == undefined) {\n canfdClockOutputFrequency = 0;\n }\n return canfdClockOutputFrequency;\n };\n\n private getMainClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n clockSources = interfaceData?.mainClockPayload?.mainClockSourceOptions;\n }\n return clockSources;\n };\n\n private getFvcoDividerOptions = (): string[] => {\n let fvcoDivOptions: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.mainClockPayload?.fvcoDividerOptions;\n if (temp != undefined) {\n fvcoDivOptions = temp.join().split(\",\");\n }\n }\n return fvcoDivOptions;\n };\n\n private getAfvcoDividerOptions = (): string[] => {\n let afvcoDivOptions: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData.auxClockPayload?.afvcoDividerOptions;\n if (temp != undefined) {\n afvcoDivOptions = temp.join().split(\",\");\n }\n }\n return afvcoDivOptions;\n };\n\n private getAuxClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData.auxClockPayload?.auxClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private getRefClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.refClockPayload?.refClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private getCanfdClockSources = (): string[] => {\n let clockSources: string[] = [];\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const temp = interfaceData?.canfdClockPayload?.canfdClockSourceOptions;\n if (temp != undefined) {\n clockSources = temp;\n }\n }\n return clockSources;\n };\n\n private overrideOptions = (componentName: string): any[] => {\n const defaultValue = [];\n switch (componentName) {\n case COMPONENT_MAIN_CLOCK_SOURCE:\n return this.getMainClockSources();\n case COMPONENT_AUX_CLOCK_SOURCE:\n return this.getAuxClockSources();\n case COMPONENT_REF_CLOCK_SOURCE:\n return this.getRefClockSources();\n case COMPONENT_FVCO_DIVIDER:\n return this.getFvcoDividerOptions();\n case COMPONENT_AFVCO_DIVIDER:\n return this.getAfvcoDividerOptions();\n case COMPONENT_CANFD_CLOCK_SOURCE:\n return this.getCanfdClockSources();\n default:\n return defaultValue;\n }\n };\n\n private overrideDefaultValues = (componentName: string): any => {\n switch (componentName) {\n case \"canfdClockSource\":\n {\n const canClock = this.getDefaultCanClock();\n if (canClock) {\n return canClock;\n }\n }\n break;\n case COMPONENT_MAIN_CLOCK_SOURCE:\n return this.getMainClockSource();\n case COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY:\n return this.getMainClockInputFrequencyInHz();\n case COMPONENT_REQUESTED_SYSTEM_FREQUENCY:\n return this.getRequestedSystemFrequencyInHz();\n case COMPONENT_FVCO_DIVIDER:\n return this.getFvcoDivider();\n case COMPONENT_AUX_CLOCK_SOURCE:\n return this.getAuxClockSource();\n case COMPONENT_AUX_CLOCK_INPUT_FREQUENCY:\n return this.getAuxClockInputFrequencyInHz();\n case COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY:\n return this.getRequestedAuxClockOutputFrequencyInHz();\n case COMPONENT_AFVCO_DIVIDER:\n return this.getAfvcoDivider();\n case COMPONENT_REF_CLOCK_SOURCE:\n return this.getRefClockSource();\n case COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY:\n return this.getRequestedRefClockOutputFrequencyInHz();\n default:\n break;\n }\n };\n\n private getDefaultCanClock = (): string | undefined => {\n if (this.isCanfdClockSupported() && this.getRequestedCanfdClockFreq()) {\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (interfaceData != undefined) {\n const clockOptionList =\n interfaceData?.canfdClockPayload?.canfdClockSourceOptions ?? [];\n if (isElementPresent(clockOptionList, \"FVCO/4\")) {\n return \"FVCO/4\";\n }\n }\n }\n return undefined;\n };\n\n private getClockConfigInterfaceArgs = (): clock_16bit_config_interface.Arguments => {\n return {\n mainClockArg: this.mainClockArg(),\n auxClockArg: this.auxClockArg(),\n refClockArg: this.refClockArg(),\n canfdClockArg: this.canfdClockArg(),\n };\n };\n\n private mainClockArg = (): any => {\n return {\n mainClockSource: this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_SOURCE,\n ),\n mainClockInputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_MAIN_CLOCK_INPUT_FREQUENCY,\n ),\n requestedSystemFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_SYSTEM_FREQUENCY,\n ),\n fvcoDivider: Number(this.dataModel.getComponentValue(COMPONENT_FVCO_DIVIDER)),\n };\n };\n\n private auxClockArg = (): any => {\n return {\n auxClockSource: this.dataModel.getComponentValue(COMPONENT_AUX_CLOCK_SOURCE),\n auxClockInputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_AUX_CLOCK_INPUT_FREQUENCY,\n ),\n requestedAuxClockOutputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_AUX_CLOCK_OUTPUT_FREQUENCY,\n ),\n afvcoDivider: Number(\n this.dataModel.getComponentValue(COMPONENT_AFVCO_DIVIDER),\n ),\n };\n };\n\n private refClockArg = (): any => {\n return {\n refClockSource: this.dataModel.getComponentValue(COMPONENT_REF_CLOCK_SOURCE),\n requestedRefClockOutputFrequency_Hz: this.dataModel.getComponentValue(\n COMPONENT_REQUESTED_REF_CLOCK_OUTPUT_FREQUENCY,\n ),\n };\n };\n\n private canfdClockArg = (): any => {\n const canClock =\n this.dataModel?.getState()?.main?.canfdClock?.canfdClockSource ?? \"FVCO/4\";\n return {\n canfdClockSource: canClock,\n requestedCanfdClockOutputFrequency_Hz: this.getRequestedCanfdClockFreq(),\n };\n };\n\n private getCanfdClockSrcFreqInMhz = (): string => {\n return this.getFrequencyInMHz(this.getCanfdClockSrcFreq());\n };\n\n private getCanfdClockSrcFreq = (): number => {\n const interfaceData = this.dataModel?.getImportValue(\n \"clock_16bit_config_interface\",\n )?.componentFrequenciesPayload;\n const canClkSrc =\n this.dataModel?.getComponentValue(\"canfdClockSource\") ?? \"FVCO/4\";\n const canClkFreq = getCanfdClockFrequency(canClkSrc, interfaceData);\n\n return getCanClkDivFreq(canClkSrc, canClkFreq);\n };\n\n public getExportArg = (componentName: string): ExportArg | undefined => {\n const exportData = this.dataModel.getExportInterfaces().getInterfaceData();\n if (exportData != undefined) {\n const expArg = _find(\n exportData,\n (i) =>\n i.interface === \"clock-16bit-ux-interface\" &&\n i.name === componentName,\n );\n return expArg;\n }\n };\n\n private getMainClockSource = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.mainClockSource;\n }\n };\n\n private getMainClockInputFrequencyInHz = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.mainClockInputFrequency_Hz;\n }\n };\n\n private getRequestedSystemFrequencyInHz = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return mainClockArg?.requestedSystemFrequency_Hz;\n }\n };\n\n private getFvcoDivider = (): any => {\n const mainClockArg = this.getExportArg(ARGUMENT_MAIN_CLK)?.value;\n if (mainClockArg != undefined) {\n return String(mainClockArg.fvcoDivider);\n }\n };\n\n private getAuxClockSource = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.auxClockSource;\n }\n };\n\n private getAuxClockInputFrequencyInHz = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.auxClockInputFrequency_Hz;\n }\n };\n\n private getRequestedAuxClockOutputFrequencyInHz = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.requestedAuxClockOutputFrequency_Hz;\n }\n };\n\n private getAfvcoDivider = (): any => {\n const auxClockArg = this.getExportArg(ARGUMENT_AUX_CLK)?.value;\n if (auxClockArg != undefined) {\n return auxClockArg.afvcoDivider;\n }\n };\n\n private getRefClockSource = (): any => {\n const refClockArg = this.getExportArg(ARGUMENT_REF_CLK)?.value;\n if (refClockArg != undefined) {\n return refClockArg.refClockSource;\n }\n };\n\n private getRequestedRefClockOutputFrequencyInHz = (): any => {\n const refClockArg = this.getExportArg(ARGUMENT_REF_CLK)?.value;\n if (refClockArg != undefined) {\n return refClockArg.requestedRefClockOutputFrequency_Hz;\n }\n };\n\n private getCanfdClockSource = (): any => {\n const refClockArg = this.getExportArg(\"canfdClockArg\")?.value;\n if (refClockArg != undefined) {\n return refClockArg.canfdClockSource;\n }\n };\n\n private getClock16bitUxInterfaceId = (): InterfaceId => {\n return {\n name: \"clock-16bit-ux-interface\",\n version: \"0.1.0\",\n };\n };\n\n private getClockApplicationInterfacePayload = ():\n | Processor.Dictionary<clock_16bit_config_interface.ProcessedPayload>\n | undefined => {\n const clockApplicationInterfacePayloads: Processor.Dictionary<clock_16bit_ux_interface.ProcessedPayload> = {};\n const clockApplicationInterfaceRequests:\n | Processor.Dictionary<clock_16bit_ux_interface.Arguments>\n | undefined = this.dataModel\n .getExportInterfaces()\n .getInterface(\"clock_16bit_ux_interface\", this.getClock16bitUxInterfaceId())\n ?.args;\n const interfaceData: clock_16bit_config_interface.ProcessedPayload = this.dataModel.getImportValue(\n CLOCK_16BIT_CONFIG_INTERFACE,\n );\n if (\n clockApplicationInterfaceRequests != undefined &&\n interfaceData != undefined\n ) {\n getKeys(clockApplicationInterfaceRequests)?.forEach((module) => {\n clockApplicationInterfacePayloads[module] = {\n ...clockApplicationInterfacePayloads[module],\n mainClockPayload: interfaceData.mainClockPayload,\n hasUSB: interfaceData.hasUSB,\n hasAuxClock: interfaceData.hasAuxClock,\n hasRefClock: interfaceData.hasRefClock,\n hasCanfdClock: interfaceData.hasCanfdClock,\n hasSecondaryOscillator: interfaceData.hasSecondaryOscillator,\n isSecondaryOscillatorEnabled:\n interfaceData.isSecondaryOscillatorEnabled,\n auxClockPayload: interfaceData.auxClockPayload,\n refClockPayload: interfaceData.refClockPayload,\n canfdClockPayload: interfaceData.canfdClockPayload,\n };\n });\n }\n return clockApplicationInterfacePayloads;\n };\n private friendlyExportName = (exportKey: string): string => {\n let exportName: string;\n switch (exportKey) {\n case \"canfd_clock\":\n exportName = \"CAN FD Clock\";\n break;\n case \"clock_16bit_ux_interface\":\n exportName = \"Clock Drv Config\";\n break;\n default:\n exportName = exportKey;\n break;\n }\n return exportName;\n };\n private friendlyImportName = (importKey: string): string => {\n let importName: string;\n switch (importKey) {\n case \"clock_16bit_config_interface\":\n importName = \"Clock Configuration\";\n break;\n default:\n importName = importKey;\n break;\n }\n return importName;\n };\n}\n\nexport const getSelectedCanfdFreq = (freqList: number[]): number => {\n if (freqList.length == 0) {\n return 0;\n }\n if (freqList.length == 1) {\n return freqList[0];\n }\n let freq = freqList[0];\n for (let i = 1; i < freqList.length; i++) {\n if (isStdCanfdFrequency(freqList[i])) {\n if (!isStdCanfdFrequency(freq)) {\n freq = freqList[i];\n } else if (freqList[i] < freq) {\n freq = freqList[i];\n }\n } else if (!isStdCanfdFrequency(freq) && freqList[i] < freq && freqList[i] > 0) {\n freq = freqList[i];\n }\n }\n return freq;\n};\n\nconst isStdCanfdFrequency = (freqList: number): boolean => {\n if (freqList === 20000000 || freqList === 40000000 || freqList === 80000000) {\n return true;\n }\n return false;\n};\n\nexport const isElementPresent = (arrayList: string[], arrayEntry: string): boolean => {\n let isPresent = false;\n if (arrayList != undefined && arrayEntry != undefined) {\n arrayList?.forEach((item) => {\n if (item === arrayEntry) {\n return (isPresent = item === arrayEntry);\n }\n });\n }\n return isPresent;\n};\n","export const MAX_CANFD_CLK_SRC_FREQ = 640000000;\n\nexport const getClockNameForCanClockSource = (clkSrc: string): string => {\n let clockName = \"\";\n if (clkSrc) {\n if (clkSrc.search(\"AFVCO\") != -1) {\n clockName = \"afvco_Hz\";\n } else if (clkSrc.search(\"FVCO\") != -1) {\n clockName = \"fvco_Hz\";\n } else if (clkSrc === \"AFPLLO\") {\n clockName = \"afpllo_Hz\";\n } else if (clkSrc === \"FPLLO\") {\n clockName = \"fpllo_Hz\";\n }\n }\n return clockName;\n};\n\nexport const getCanfdClockFrequency = (\n clkSrc: string,\n componentFrequenciesPayload: { [key: string]: number },\n): number => {\n let clkFrequency = 0;\n const clockName = getClockNameForCanClockSource(clkSrc);\n clkFrequency = componentFrequenciesPayload?.[clockName] ?? 0;\n return clkFrequency;\n};\n\nexport const getCanClkDivFreq = (\n canfdClockSource: string,\n clkSrcfreq: number,\n): number => {\n let canClkFreq = clkSrcfreq;\n if (canfdClockSource.startsWith(\"AFVCO\")) {\n let afvcoDiv = 1;\n if (canfdClockSource != \"AFVCO\") {\n afvcoDiv = Number(canfdClockSource.replace(\"AFVCO/\", \"\"));\n }\n canClkFreq = canClkFreq / afvcoDiv;\n } else if (canfdClockSource.startsWith(\"FVCO\")) {\n let fvcoDiv = 1;\n if (canfdClockSource != \"FVCO\") {\n fvcoDiv = Number(canfdClockSource.replace(\"FVCO/\", \"\"));\n }\n canClkFreq = canClkFreq / fvcoDiv;\n }\n return canClkFreq;\n};\n"],"sourceRoot":""}
|