Full Code of microsoft/calculator for AI

main ffd051967601 cached
541 files
18.3 MB
4.0M tokens
670 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,921K chars total). Download the full file to get everything.
Repository: microsoft/calculator
Branch: main
Commit: ffd051967601
Files: 541
Total size: 18.3 MB

Directory structure:
gitextract_b4wf3xca/

├── .clang-format
├── .config/
│   └── 1espt/
│       └── PipelineAutobaseliningConfig.yml
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── localization_suggestion.md
│   ├── policies/
│   │   └── resourceManagement.yml
│   ├── pull_request_template.md
│   └── workflows/
│       └── action-ci.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── NOTICE.txt
├── README.md
├── SECURITY.md
├── Tools/
│   ├── PGO/
│   │   ├── Microsoft.WindowsCalculator.PGO.nuspec
│   │   └── build/
│   │       └── native/
│   │           ├── Microsoft.WindowsCalculator.PGO.props
│   │           └── Microsoft.WindowsCalculator.PGO.targets
│   ├── Scripts/
│   │   └── clang-format/
│   │       ├── clang-format-all.ps1
│   │       └── clang-format-all.sh
│   └── ThreatModels/
│       └── Calculator.tm7
├── build/
│   ├── config/
│   │   └── PoliCheckExclusions.xml
│   ├── pipelines/
│   │   ├── azure-pipelines.ci-internal.yaml
│   │   ├── azure-pipelines.loc.yaml
│   │   ├── azure-pipelines.release.yaml
│   │   └── templates/
│   │       ├── build-single-architecture.yaml
│   │       ├── package-msixbundle.yaml
│   │       ├── release-store.yaml
│   │       ├── release-vpack.yaml
│   │       ├── run-ui-tests.yaml
│   │       └── run-unit-tests.yaml
│   └── scripts/
│       ├── CreateMsixBundleMapping.ps1
│       ├── SignTestApp.ps1
│       ├── TurnOffAnimationEffects.ps1
│       └── UpdateAppxManifestVersion.ps1
├── docs/
│   ├── ApplicationArchitecture.md
│   ├── ManualTests.md
│   ├── NewFeatureProcess.md
│   └── Roadmap.md
├── nuget.config
└── src/
    ├── CalcManager/
    │   ├── CEngine/
    │   │   ├── CalcInput.cpp
    │   │   ├── CalcUtils.cpp
    │   │   ├── History.cpp
    │   │   ├── Number.cpp
    │   │   ├── Rational.cpp
    │   │   ├── RationalMath.cpp
    │   │   ├── calc.cpp
    │   │   ├── scicomm.cpp
    │   │   ├── scidisp.cpp
    │   │   ├── scifunc.cpp
    │   │   ├── scioper.cpp
    │   │   └── sciset.cpp
    │   ├── CalcManager.vcxproj
    │   ├── CalcManager.vcxproj.filters
    │   ├── CalculatorHistory.cpp
    │   ├── CalculatorHistory.h
    │   ├── CalculatorManager.cpp
    │   ├── CalculatorManager.h
    │   ├── CalculatorResource.h
    │   ├── CalculatorVector.h
    │   ├── Command.h
    │   ├── ExpressionCommand.cpp
    │   ├── ExpressionCommand.h
    │   ├── ExpressionCommandInterface.h
    │   ├── Header Files/
    │   │   ├── CCommand.h
    │   │   ├── CalcEngine.h
    │   │   ├── CalcInput.h
    │   │   ├── CalcUtils.h
    │   │   ├── EngineStrings.h
    │   │   ├── History.h
    │   │   ├── ICalcDisplay.h
    │   │   ├── IHistoryDisplay.h
    │   │   ├── Number.h
    │   │   ├── RadixType.h
    │   │   ├── Rational.h
    │   │   └── RationalMath.h
    │   ├── NumberFormattingUtils.cpp
    │   ├── NumberFormattingUtils.h
    │   ├── Ratpack/
    │   │   ├── CalcErr.h
    │   │   ├── basex.cpp
    │   │   ├── conv.cpp
    │   │   ├── exp.cpp
    │   │   ├── fact.cpp
    │   │   ├── itrans.cpp
    │   │   ├── itransh.cpp
    │   │   ├── logic.cpp
    │   │   ├── num.cpp
    │   │   ├── rat.cpp
    │   │   ├── ratconst.h
    │   │   ├── ratpak.h
    │   │   ├── support.cpp
    │   │   ├── trans.cpp
    │   │   └── transh.cpp
    │   ├── UnitConverter.cpp
    │   ├── UnitConverter.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   ├── ratpak.natvis
    │   ├── sal_cross_platform.h
    │   └── winerror_cross_platform.h
    ├── CalcViewModel/
    │   ├── CalcViewModel.rc
    │   ├── CalcViewModel.vcxproj
    │   ├── CalcViewModel.vcxproj.filters
    │   ├── Common/
    │   │   ├── AlwaysSelectedCollectionView.h
    │   │   ├── AppResourceProvider.cpp
    │   │   ├── AppResourceProvider.h
    │   │   ├── Automation/
    │   │   │   ├── INarratorAnnouncementHost.h
    │   │   │   ├── LiveRegionHost.cpp
    │   │   │   ├── LiveRegionHost.h
    │   │   │   ├── NarratorAnnouncement.cpp
    │   │   │   ├── NarratorAnnouncement.h
    │   │   │   ├── NarratorAnnouncementHostFactory.cpp
    │   │   │   ├── NarratorAnnouncementHostFactory.h
    │   │   │   ├── NarratorNotifier.cpp
    │   │   │   ├── NarratorNotifier.h
    │   │   │   ├── NotificationHost.cpp
    │   │   │   └── NotificationHost.h
    │   │   ├── BitLength.h
    │   │   ├── CalculatorButtonPressedEventArgs.cpp
    │   │   ├── CalculatorButtonPressedEventArgs.h
    │   │   ├── CalculatorButtonUser.h
    │   │   ├── CalculatorDisplay.cpp
    │   │   ├── CalculatorDisplay.h
    │   │   ├── CopyPasteManager.cpp
    │   │   ├── CopyPasteManager.h
    │   │   ├── DateCalculator.cpp
    │   │   ├── DateCalculator.h
    │   │   ├── DelegateCommand.h
    │   │   ├── DisplayExpressionToken.h
    │   │   ├── EngineResourceProvider.cpp
    │   │   ├── EngineResourceProvider.h
    │   │   ├── ExpressionCommandDeserializer.cpp
    │   │   ├── ExpressionCommandDeserializer.h
    │   │   ├── ExpressionCommandSerializer.cpp
    │   │   ├── ExpressionCommandSerializer.h
    │   │   ├── LocalizationService.cpp
    │   │   ├── LocalizationService.h
    │   │   ├── LocalizationSettings.h
    │   │   ├── LocalizationStringUtil.h
    │   │   ├── MyVirtualKey.h
    │   │   ├── NavCategory.cpp
    │   │   ├── NavCategory.h
    │   │   ├── NetworkManager.cpp
    │   │   ├── NetworkManager.h
    │   │   ├── NumberBase.h
    │   │   ├── RadixType.cpp
    │   │   ├── RadixType.h
    │   │   ├── TraceLogger.cpp
    │   │   ├── TraceLogger.h
    │   │   ├── Utils.cpp
    │   │   └── Utils.h
    │   ├── DataLoaders/
    │   │   ├── CurrencyDataLoader.cpp
    │   │   ├── CurrencyDataLoader.h
    │   │   ├── CurrencyHttpClient.cpp
    │   │   ├── CurrencyHttpClient.h
    │   │   ├── DefaultFromToCurrency.json
    │   │   ├── UnitConverterDataConstants.h
    │   │   ├── UnitConverterDataLoader.cpp
    │   │   └── UnitConverterDataLoader.h
    │   ├── DateCalculatorViewModel.cpp
    │   ├── DateCalculatorViewModel.h
    │   ├── GraphingCalculator/
    │   │   ├── EquationViewModel.cpp
    │   │   ├── EquationViewModel.h
    │   │   ├── GraphingCalculatorViewModel.cpp
    │   │   ├── GraphingCalculatorViewModel.h
    │   │   ├── GraphingSettingsViewModel.cpp
    │   │   ├── GraphingSettingsViewModel.h
    │   │   └── VariableViewModel.h
    │   ├── GraphingCalculatorEnums.h
    │   ├── HistoryItemViewModel.cpp
    │   ├── HistoryItemViewModel.h
    │   ├── HistoryViewModel.cpp
    │   ├── HistoryViewModel.h
    │   ├── MemoryItemViewModel.cpp
    │   ├── MemoryItemViewModel.h
    │   ├── Snapshots.cpp
    │   ├── Snapshots.h
    │   ├── StandardCalculatorViewModel.cpp
    │   ├── StandardCalculatorViewModel.h
    │   ├── UnitConverterViewModel.cpp
    │   ├── UnitConverterViewModel.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── targetver.h
    ├── CalcViewModelCopyForUT/
    │   ├── CalcViewModelCopyForUT.vcxproj
    │   ├── CalcViewModelCopyForUT.vcxproj.filters
    │   └── DataLoaders/
    │       └── CurrencyHttpClient.cpp
    ├── Calculator/
    │   ├── App.xaml
    │   ├── App.xaml.cs
    │   ├── Calculator.csproj
    │   ├── Common/
    │   │   ├── AlwaysSelectedCollectionView.cs
    │   │   ├── AppLifecycleLogger.cs
    │   │   ├── KeyboardShortcutManager.cs
    │   │   ├── LaunchArguments.cs
    │   │   └── ValidatingConverters.cs
    │   ├── Controls/
    │   │   ├── CalculationResult.cs
    │   │   ├── CalculationResultAutomationPeer.cs
    │   │   ├── CalculatorButton.cs
    │   │   ├── EquationTextBox.cs
    │   │   ├── FlipButtons.cs
    │   │   ├── HorizontalNoOverflowStackPanel.cs
    │   │   ├── MathRichEditBox.cs
    │   │   ├── OperatorPanelButton.cs
    │   │   ├── OperatorPanelListView.cs
    │   │   ├── OverflowTextBlock.cs
    │   │   ├── OverflowTextBlockAutomationPeer.cs
    │   │   ├── RadixButton.cs
    │   │   └── SupplementaryItemsControl.cs
    │   ├── Converters/
    │   │   ├── BooleanNegationConverter.cs
    │   │   ├── BooleanToVisibilityConverter.cs
    │   │   ├── ExpressionItemTemplateSelector.cs
    │   │   ├── ItemSizeToVisibilityConverter.cs
    │   │   ├── RadixToStringConverter.cs
    │   │   └── VisibilityNegationConverter.cs
    │   ├── DesignData/
    │   │   ├── DesignAppViewModel.cpp
    │   │   ├── DesignAppViewModel.h
    │   │   ├── DesignStandardCalculatorViewModel.cpp
    │   │   ├── DesignStandardCalculatorViewModel.h
    │   │   ├── DesignUnitConverterViewModel.cpp
    │   │   └── DesignUnitConverterViewModel.h
    │   ├── Package.Release.appxmanifest
    │   ├── Package.appxmanifest
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── Default.rd.xml
    │   ├── Resources/
    │   │   ├── af-ZA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── am-ET/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ar-SA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── az-Latn-AZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── bg-BG/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ca-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── cs-CZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── da-DK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── de-DE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── el-GR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── en-GB/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── en-US/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── es-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── es-MX/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── et-EE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── eu-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fa-IR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fi-FI/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fil-PH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fr-CA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fr-FR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── gl-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── he-IL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hi-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hr-HR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hu-HU/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── id-ID/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── is-IS/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── it-IT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ja-JP/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── kk-KZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── km-KH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── kn-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ko-KR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lo-LA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lt-LT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lv-LV/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── mk-MK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ml-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ms-MY/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── nb-NO/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── nl-NL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pl-PL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pt-BR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pt-PT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ro-RO/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ru-RU/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sk-SK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sl-SI/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sq-AL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sr-Latn-RS/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sv-SE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ta-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── te-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── th-TH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── tr-TR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── uk-UA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── vi-VN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── zh-CN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   └── zh-TW/
    │   │       ├── CEngineStrings.resw
    │   │       └── Resources.resw
    │   ├── Selectors/
    │   │   ├── KeyGraphFeaturesTemplateSelector.cs
    │   │   └── NavViewMenuItemTemplateSelector.cs
    │   ├── Utils/
    │   │   ├── DeflateUtils.cs
    │   │   ├── DelegateCommandUtils.cs
    │   │   ├── DispatcherTimerDelayer.cs
    │   │   ├── JsonUtils.cs
    │   │   ├── ResourceString.cs
    │   │   ├── ResourceVirtualKey.cs
    │   │   ├── ThemeHelper.cs
    │   │   └── VisualTree.cs
    │   └── Views/
    │       ├── Calculator.xaml
    │       ├── Calculator.xaml.cs
    │       ├── CalculatorProgrammerBitFlipPanel.xaml
    │       ├── CalculatorProgrammerBitFlipPanel.xaml.cs
    │       ├── CalculatorProgrammerDisplayPanel.xaml
    │       ├── CalculatorProgrammerDisplayPanel.xaml.cs
    │       ├── CalculatorProgrammerOperators.xaml
    │       ├── CalculatorProgrammerOperators.xaml.cs
    │       ├── CalculatorProgrammerRadixOperators.xaml
    │       ├── CalculatorProgrammerRadixOperators.xaml.cs
    │       ├── CalculatorScientificAngleButtons.xaml
    │       ├── CalculatorScientificAngleButtons.xaml.cs
    │       ├── CalculatorScientificOperators.xaml
    │       ├── CalculatorScientificOperators.xaml.cs
    │       ├── CalculatorStandardOperators.xaml
    │       ├── CalculatorStandardOperators.xaml.cs
    │       ├── DateCalculator.xaml
    │       ├── DateCalculator.xaml.cs
    │       ├── DelighterUnitStyles.xaml
    │       ├── GraphingCalculator/
    │       │   ├── EquationInputArea.xaml
    │       │   ├── EquationInputArea.xaml.cs
    │       │   ├── EquationStylePanelControl.xaml
    │       │   ├── EquationStylePanelControl.xaml.cs
    │       │   ├── GraphingCalculator.xaml
    │       │   ├── GraphingCalculator.xaml.cs
    │       │   ├── GraphingNumPad.xaml
    │       │   ├── GraphingNumPad.xaml.cs
    │       │   ├── GraphingSettings.xaml
    │       │   ├── GraphingSettings.xaml.cs
    │       │   ├── KeyGraphFeaturesPanel.xaml
    │       │   └── KeyGraphFeaturesPanel.xaml.cs
    │       ├── HistoryList.xaml
    │       ├── HistoryList.xaml.cs
    │       ├── MainPage.xaml
    │       ├── MainPage.xaml.cs
    │       ├── Memory.xaml
    │       ├── Memory.xaml.cs
    │       ├── MemoryListItem.xaml
    │       ├── MemoryListItem.xaml.cs
    │       ├── NumberPad.xaml
    │       ├── NumberPad.xaml.cs
    │       ├── OperatorsPanel.xaml
    │       ├── OperatorsPanel.xaml.cs
    │       ├── Settings.xaml
    │       ├── Settings.xaml.cs
    │       ├── StateTriggers/
    │       │   ├── AspectRatioTrigger.cs
    │       │   └── ControlSizeTrigger.cs
    │       ├── SupplementaryResults.xaml
    │       ├── SupplementaryResults.xaml.cs
    │       ├── TitleBar.xaml
    │       ├── TitleBar.xaml.cs
    │       ├── UnitConverter.xaml
    │       └── UnitConverter.xaml.cs
    ├── Calculator.ManagedViewModels/
    │   ├── ApplicationViewModel.cs
    │   ├── Calculator.ManagedViewModels.csproj
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── Calculator.ManagedViewModels.rd.xml
    │   └── RelayCommand.cs
    ├── Calculator.sln
    ├── CalculatorUITestFramework/
    │   ├── CalculatorApp.cs
    │   ├── CalculatorDriver.cs
    │   ├── CalculatorResults.cs
    │   ├── CalculatorUITestFramework.csproj
    │   ├── HistoryItem.cs
    │   ├── HistoryPanel.cs
    │   ├── MemoryItem.cs
    │   ├── MemoryPanel.cs
    │   ├── NavigationMenu.cs
    │   ├── NumberPad.cs
    │   ├── ProgrammerCalculatorPage.cs
    │   ├── ProgrammerOperatorsPanel.cs
    │   ├── ScientificCalculatorPage.cs
    │   ├── ScientificOperatorsPanel.cs
    │   ├── StandardAoTCalculatorPage.cs
    │   ├── StandardCalculatorPage.cs
    │   ├── StandardOperatorsPanel.cs
    │   ├── UnitConverterOperatorsPanel.cs
    │   ├── UnitConverterPage.cs
    │   ├── UnitConverterResults.cs
    │   ├── WinAppDriverLocalServer.cs
    │   ├── WindowsDriverExtensions.cs
    │   └── WindowsElementExtensions.cs
    ├── CalculatorUITests/
    │   ├── CalculatorUITests.ci-internal.runsettings
    │   ├── CalculatorUITests.ci.runsettings
    │   ├── CalculatorUITests.csproj
    │   ├── CalculatorUITests.release.runsettings
    │   ├── CurrencyConverterFunctionalTests.cs
    │   ├── HistoryFunctionalTests.cs
    │   ├── MemoryFunctionalTests.cs
    │   ├── ProgrammerModeFunctionalTests.cs
    │   ├── ScientificModeFunctionalTests.cs
    │   └── StandardModeFunctionalTests.cs
    ├── CalculatorUnitTests/
    │   ├── AsyncHelper.cpp
    │   ├── AsyncHelper.h
    │   ├── CalcEngineTests.cpp
    │   ├── CalcInputTest.cpp
    │   ├── CalculatorManagerTest.cpp
    │   ├── CalculatorUnitTests.rc
    │   ├── CalculatorUnitTests.vcxproj
    │   ├── CalculatorUnitTests.vcxproj.filters
    │   ├── CopyPasteManagerTest.cpp
    │   ├── CurrencyConverterUnitTests.cpp
    │   ├── DateCalculatorUnitTests.cpp
    │   ├── DateUtils.h
    │   ├── Helpers.h
    │   ├── HistoryTests.cpp
    │   ├── LocalizationServiceUnitTests.cpp
    │   ├── LocalizationSettingsUnitTests.cpp
    │   ├── Module.cpp
    │   ├── MultiWindowUnitTests.cpp
    │   ├── NarratorAnnouncementUnitTests.cpp
    │   ├── NavCategoryUnitTests.cpp
    │   ├── Package.appxmanifest
    │   ├── RationalTest.cpp
    │   ├── StandardViewModelUnitTests.cpp
    │   ├── Test.resw
    │   ├── UnitConverterTest.cpp
    │   ├── UnitConverterViewModelUnitTests.cpp
    │   ├── UnitConverterViewModelUnitTests.h
    │   ├── UnitTestApp.rd.xml
    │   ├── UnitTestApp.xaml
    │   ├── UnitTestApp.xaml.cpp
    │   ├── UnitTestApp.xaml.h
    │   ├── UtilsTests.cpp
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── resource.h
    ├── GraphControl/
    │   ├── Control/
    │   │   ├── Grapher.cpp
    │   │   └── Grapher.h
    │   ├── DirectX/
    │   │   ├── DeviceResources.cpp
    │   │   ├── DeviceResources.h
    │   │   ├── DirectXHelper.h
    │   │   ├── NearestPointRenderer.cpp
    │   │   ├── NearestPointRenderer.h
    │   │   ├── RenderMain.cpp
    │   │   └── RenderMain.h
    │   ├── GraphControl.rc
    │   ├── GraphControl.vcxproj
    │   ├── GraphControl.vcxproj.filters
    │   ├── Logger/
    │   │   ├── TraceLogger.cpp
    │   │   └── TraceLogger.h
    │   ├── Models/
    │   │   ├── Equation.cpp
    │   │   ├── Equation.h
    │   │   ├── EquationCollection.h
    │   │   ├── KeyGraphFeaturesInfo.cpp
    │   │   ├── KeyGraphFeaturesInfo.h
    │   │   └── Variable.h
    │   ├── Themes/
    │   │   └── generic.xaml
    │   ├── Utils.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── winrtHeaders.h
    ├── GraphingImpl/
    │   ├── GraphingImpl.rc
    │   ├── GraphingImpl.vcxproj
    │   ├── GraphingImpl.vcxproj.filters
    │   ├── Mocks/
    │   │   ├── Bitmap.h
    │   │   ├── Graph.h
    │   │   ├── GraphRenderer.h
    │   │   ├── GraphingOptions.h
    │   │   ├── MathSolver.cpp
    │   │   └── MathSolver.h
    │   ├── dllmain.cpp
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── targetver.h
    ├── GraphingInterfaces/
    │   ├── Common.h
    │   ├── GraphingEnums.h
    │   ├── IBitmap.h
    │   ├── IEquation.h
    │   ├── IEquationOptions.h
    │   ├── IGraph.h
    │   ├── IGraphAnalyzer.h
    │   ├── IGraphRenderer.h
    │   ├── IGraphingOptions.h
    │   └── IMathSolver.h
    ├── Settings.XamlStyler
    ├── TraceLogging/
    │   ├── TraceLogging.rc
    │   ├── TraceLogging.vcxproj
    │   ├── TraceLogging.vcxproj.filters
    │   ├── TraceLoggingCommon.cpp
    │   ├── TraceLoggingCommon.h
    │   ├── pch.cpp
    │   └── pch.h
    └── build/
        ├── Calculator.StampAssemblyInfo.targets
        └── appversion.rc

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Allman
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: true
BreakStringLiterals: true
ColumnLimit: 160
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: true
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: false
IncludeBlocks: Preserve
IncludeCategories: 
  - Regex:           '^<ext/.*\.h>'
    Priority:        2
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: false
IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Single
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Never
#...
# unsupported rules
#BreakInheritanceList: AfterColon
#Language: None
#ObjCBinPackProtocolList: Auto
#PenaltyBreakTemplateDeclaration: 10
#SpaceBeforeCpp11BracedList: false
#SpaceBeforeCtorInitializerColon: true
#SpaceBeforeInheritanceColon: true
#SpaceBeforeRangeBasedForLoopColon: true



================================================
FILE: .config/1espt/PipelineAutobaseliningConfig.yml
================================================
## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details.

pipelines:
  141517:
    retail:
      source:
        credscan:
          lastModifiedDate: 2024-09-24
        eslint:
          lastModifiedDate: 2024-09-24
        armory:
          lastModifiedDate: 2024-09-24
      binary:
        credscan:
          lastModifiedDate: 2024-09-24
        binskim:
          lastModifiedDate: 2025-02-13
  36523:
    retail:
      source:
        credscan:
          lastModifiedDate: 2024-12-02
        eslint:
          lastModifiedDate: 2024-12-02
        psscriptanalyzer:
          lastModifiedDate: 2024-12-02
        armory:
          lastModifiedDate: 2024-12-02
      binary:
        credscan:
          lastModifiedDate: 2024-12-02
        binskim:
          lastModifiedDate: 2024-12-02
        spotbugs:
          lastModifiedDate: 2024-12-02


================================================
FILE: .editorconfig
================================================
## IDE-independent coding style via EditorConfig: https://editorconfig.org/

root = true

[*]
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true


================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
*.cs     diff=csharp

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
*.jpg   binary
*.png   binary
*.gif   binary

###############################################################################
# diff behavior for common document formats
# 
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the 
# entries below.
###############################################################################
*.doc   diff=astextplain
*.DOC   diff=astextplain
*.docx  diff=astextplain
*.DOCX  diff=astextplain
*.dot   diff=astextplain
*.DOT   diff=astextplain
*.pdf   diff=astextplain
*.PDF   diff=astextplain
*.rtf   diff=astextplain
*.RTF   diff=astextplain


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Report a problem with Calculator
title: ''
labels: ''
assignees: ''

---
<!--
Before filing a bug
- Ensure the bug reproduces on the latest version of the app.
- Search existing issues and make sure this issue is not already filed.
-->

**Describe the bug**
<!-- A clear and concise description of what the bug is. -->

**Steps To Reproduce**
<!--
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
-->

**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->

**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->

**Device and Application Information**
 - OS Build:
 - Architecture:
 - Application Version:
 - Region:
 - Dev Version Installed:

<!--
Run the following commands in Powershell and copy/paste the output.
" - OS Build: $([Environment]::OSVersion.Version)"
" - Architecture: $((Get-AppxPackage -Name Microsoft.WindowsCalculator).Architecture)"
" - Application Version: $((Get-AppxPackage -Name Microsoft.WindowsCalculator).Version)"
" - Region: $((Get-Culture).Name)"
" - Dev Version Installed: $($null -ne (Get-AppxPackage -Name Microsoft.WindowsCalculator.Dev))"
-->

**Additional context**
<!-- Add any other context about the problem here. -->

**Requested Assignment**
<!--
Some people just want to report a bug and let someone else fix it.
Other people want to not only submit the bug report, but fix it as well.
Both scenarios are completely ok. We just want to know which one it is.
Please indicate which bucket you fall into by keeping one and removing the other.
-->
If possible, I would like to fix this.
I'm just reporting this problem.  I don't want to fix it.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Propose a new feature in the app
title: ''
labels: 'Enhancement'
assignees: ''

---

<!--
See https://github.com/Microsoft/calculator/blob/main/docs/NewFeatureProcess.md for suggestions on how to write a good feature pitch. Just want to submit an idea quickly? Try Feedback Hub instead: https://insider.windows.com/en-us/fb/?contextid=130
-->

**Problem Statement**
<!--
What problem are we trying to solve? Who’s the target audience? Is there a customer need or pain point we need to remedy? Is there a business goal or metric we are trying to improve? Do we have a hypothesis we want to prove or disprove?
-->

**Evidence or User Insights**
<!--
Why should we do this? Potential sources of data: Feedback Hub, other GitHub issues, other anecdotes from listening to customers in person or online, request from another team, telemetry data, user research, market or competitive research
-->

**Proposal**
<!--
How will the solution/feature help us solve the problem? How will it meet the target audience’s needs? If there are business goals or metrics, how does this improve them?
-->

**Goals**
<!--
What you want to accomplish with this feature. Typical examples include
"User Can *perform some task*"
-->

**Non-Goals**
<!--
Things we are explicitly not doing or supporting or that are out of scope, including reasons why.
-->

**Low-Fidelity Concept**
<!--
Show as much of the experience as needed to explain the idea. This can be as simple as a napkin drawing but can also be a code prototype, or a design comp. Keep it simple at this stage, as it can be refined later during the pre-production stage.
-->

**Requested Assignment**
<!--
Some people just want to suggest a feature and let someone else implement it.
Other people want to not only suggest a feature, but implement it as well.
Both scenarios are completely ok. We just want to know which one it is.
We are likely to prioritize the review of feature requests if they already have someone who can implement them.
Please indicate which bucket you fall into by keeping one and removing the other.
-->
If possible, I would like to implement this.
I'm just suggesting this idea.  I don't want to implement it.


================================================
FILE: .github/ISSUE_TEMPLATE/localization_suggestion.md
================================================
---
name: Localization Suggestion
about: Report a problem or suggested change to Calculator's localized content.
title: '[Localization] '
labels: 'Area: World-Readiness'
assignees: ''
---
<!--
PLEASE NOTE: 
We cannot _merge_ any suggested localization changes to our localized resources files. These files are automatically generated from an internal localization process.  Any suggestion submitted this way will be duplicated into our internal localization system, and then closed here.

Alternatively, you can launch feedback-hub://, click on the "Language Community" tab on the left-side of the app, and follow the steps to submit a localization suggestion that way.  (The "Language Community" tab currently will only be visible if your system is running a non-English language).

Before filing a bug
- Ensure the bug reproduces on the latest version of the app.
- Search existing issues and make sure this issue is not already filed.
-->

**Describe the bug**
<!-- A clear and concise description of what the bug is. -->

**Steps To Reproduce**
<!--
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
-->

**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->

**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->

**Device and Application Information**
 - OS Build:
 - Architecture:
 - Application Version:
 - Region: 
 - Dev Version Installed: 
 
<!--
Run the following commands in Powershell and copy/paste the output.
" - OS Build: $([Environment]::OSVersion.Version)"
" - Architecture: $((Get-AppxPackage -Name Microsoft.WindowsCalculator).Architecture)"
" - Application Version: $((Get-AppxPackage -Name Microsoft.WindowsCalculator).Version)"
" - Region: $((Get-Culture).Name)"
" - Dev Version Installed: $($null -ne (Get-AppxPackage -Name Microsoft.WindowsCalculator.Dev))"
-->

**Additional context**
<!-- Add any other context about the problem here. -->


================================================
FILE: .github/policies/resourceManagement.yml
================================================
id: 
name: GitOps.PullRequestIssueManagement
description: GitOps.PullRequestIssueManagement primitive
owner: 
resource: repository
disabled: false
where: 
configuration:
  resourceManagementConfiguration:
    scheduledSearches:
    - description: 
      frequencies:
      - hourly:
          hour: 3
      filters:
      - isPullRequest
      - isOpen
      - hasLabel:
          label: needs author feedback
      - noActivitySince:
          days: 7
      - isNotLabeledWith:
          label: no recent activity
      actions:
      - addLabel:
          label: no recent activity
      - addReply:
          reply: This pull request has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **7 days**. Thank you for your contributions to Windows Calculator!
    eventResponderTasks:
    - if:
      - payloadType: Issue_Comment
      - hasLabel:
          label: no recent activity
      then:
      - removeLabel:
          label: no recent activity
      description: 
    - if:
      - payloadType: Issues
      - isAction:
          action: Closed
      then:
      - removeLabel:
          label: needs pitch review
      - removeLabel:
          label: needs more info
      - removeLabel:
          label: needs spec
      - removeLabel:
          label: no recent activity
      - removeLabel:
          label: help wanted
      - removeLabel:
          label: needs spec review
      - removeLabel:
          label: needs spec
      description: 
      triggerOnOwnActions: true
    - if:
      - payloadType: Pull_Request_Review
      - isAction:
          action: Submitted
      - isReviewState:
          reviewState: Changes_requested
      then:
      - addLabel:
          label: needs author feedback
      description: 
    - if:
      - payloadType: Pull_Request
      - isActivitySender:
          issueAuthor: True
      - not:
          isAction:
            action: Closed
      - hasLabel:
          label: needs author feedback
      then:
      - removeLabel:
          label: needs author feedback
      description: 
    - if:
      - payloadType: Issue_Comment
      - isActivitySender:
          issueAuthor: True
      - hasLabel:
          label: needs author feedback
      then:
      - removeLabel:
          label: needs author feedback
      description: 
    - if:
      - payloadType: Pull_Request_Review
      - isActivitySender:
          issueAuthor: True
      - hasLabel:
          label: needs author feedback
      then:
      - removeLabel:
          label: needs author feedback
      description: 
    - if:
      - payloadType: Pull_Request
      - not:
          isAction:
            action: Closed
      - hasLabel:
          label: no recent activity
      then:
      - removeLabel:
          label: no recent activity
      description: 
    - if:
      - payloadType: Issue_Comment
      - hasLabel:
          label: no recent activity
      then:
      - removeLabel:
          label: no recent activity
      description: 
    - if:
      - payloadType: Pull_Request_Review
      - hasLabel:
          label: no recent activity
      then:
      - removeLabel:
          label: no recent activity
      description: 
    - if:
      - payloadType: Issue_Comment
      then:
      - cleanEmailReply
      description: 
onFailure: 
onSuccess: 


================================================
FILE: .github/pull_request_template.md
================================================
## Fixes #.


### Description of the changes:
-
-
-

### How changes were validated:
<!--Review https://github.com/Microsoft/calculator/blob/main/CONTRIBUTING.md and ensure all contributing requirements are met.

Specify how you tested your changes (i.e. manual/ad-hoc testing, automated testing, new automated tests added)-->
-
-
-



================================================
FILE: .github/workflows/action-ci.yml
================================================
name: Windows Calculator Continuous Integration Pipeline
run-name: WinCalc-CI-0.${{ github.run_number }}
on:
  push:
    branches: [main, release/**, feature/**]
  pull_request:
    branches: [main, release/**, feature/**]
  workflow_dispatch:
jobs:
  defineBuilds:
    name: Define builds
    runs-on: windows-latest 
    env:
      isPR: ${{ github.event_name == 'pull_request' }}
    outputs:
      version: ${{ steps.version.outputs.version }}
      platformList: ${{ steps.platformList.outputs.platformList }}
      unitTestPlatformList: ${{ steps.unitTestPlatformList.outputs.unitTestPlatformList }}
    steps:
      - name: Generate version number
        id: version
        run: |
          $version = "0.${{ github.run_number }}.${{ github.run_attempt }}.0"
          "version=`"$version`"" | Out-File $env:GITHUB_OUTPUT -Append
        shell: pwsh
      - name: Choose platforms to build
        id: platformList
        run: |
          if ($env:isPR -eq $false) {
            'platformList=["x64", "x86", "ARM64"]' | Out-File $env:GITHUB_OUTPUT -Append
            echo 'Build all platforms.'
          }
          else {
            'platformList=["x64"]' | Out-File $env:GITHUB_OUTPUT -Append
            echo 'Build x64 only.'
          }
        shell: pwsh
      - name: Choose platforms for unit test
        id: unitTestPlatformList
        run: |
          if ($env:isPR -eq $false){
            'unitTestPlatformList=["x64", "x86"]' | Out-File $env:GITHUB_OUTPUT -Append
            echo 'Test x64, x86'
          }
          else{
            'unitTestPlatformList=["x64"]' | Out-File $env:GITHUB_OUTPUT -Append
            echo 'Test x64'
          }
        shell: pwsh

  build:
    needs: defineBuilds
    name: Build
    runs-on: windows-latest
    strategy:
      matrix:
        platform: ${{ fromJSON(needs.defineBuilds.outputs.platformList) }}
    env:
      buildVersion: ${{ fromJSON(needs.defineBuilds.outputs.version) }}
    steps:
    - uses: actions/checkout@v4
    - uses: microsoft/setup-msbuild@v2
      name: Setup msbuild
    - uses: nuget/setup-nuget@v2
      name: Use nuget 6.x
      with:
        nuget-version: '6.x'
    - run: nuget restore ./src/Calculator.sln
      name: Restore nuget dependencies
    - run: |
        ./build/scripts/UpdateAppxManifestVersion.ps1 `
          -AppxManifest ./src/Calculator/Package.appxmanifest `
          -Version ${{ env.buildVersion }}
      shell: pwsh
      name: Set version number in AppxManifest
    - run: |
        msbuild ./src/Calculator.sln `
          -bl:${{ github.workspace }}/output/Calculator.binlog `
          -p:OutDir=${{ github.workspace }}\output\ `
          -p:Platform=${{ matrix.platform }} `
          -p:Configuration=Release `
          -p:GenerateProjectSpecificOutputFolder=true `
          -p:Version=${{ env.buildVersion }} `
          -maxCpuCount `
          -t:Publish `
          -p:PublishDir=${{ github.workspace }}\output\publish\
      shell: pwsh
      name: Build calculator.sln
    - uses: actions/upload-artifact@v4
      name: Upload build outputs
      with:
        name: Build-${{ matrix.platform }}
        path: ${{ github.workspace }}/output
    - uses: actions/upload-artifact@v4
      with:
        name: Tools-${{ matrix.platform }}
        path: ${{ github.workspace }}/build/scripts/SignTestApp.ps1

  unitTests:
    needs: [defineBuilds, build]
    runs-on: windows-latest
    name: Run unit tests
    strategy:
      matrix:
        platform: ${{ fromJSON(needs.defineBuilds.outputs.unitTestPlatformList) }}
    env:
      testDir: ${{ github.workspace }}/download/CalculatorUnitTests/AppPackages/CalculatorUnitTests_Test
    steps:
    - uses: actions/download-artifact@v4
      name: Download build outputs
      with:
        name: Build-${{ matrix.platform }}
        path: ${{ github.workspace }}/download
    - uses: actions/download-artifact@v4
      name: Download tools
      with:
        name: Tools-${{ matrix.platform }}
        path: ${{ github.workspace }}/download/tools
    - run: |
        ${{ github.workspace }}/download/tools/SignTestApp.ps1 -AppToSign ${{ env.testDir }}/CalculatorUnitTests.msix
      shell: pwsh
      name: Install test certificate
    - uses: ilammy/msvc-dev-cmd@v1  # this is a workaround because microsoft/vstest-action is broken.
      name: Setup dev tools
    - run: vstest.console.exe ${{ env.testDir }}/CalculatorUnitTests.msix /Platform:${{ matrix.platform }}
      name: Run unit tests
        
  uiTests:
    needs: build
    runs-on: windows-latest
    name: Run UI tests (x64)
    env:
      appDir: ${{ github.workspace }}/download/Calculator/AppPackages/Calculator*_Test
      pubDir: ${{ github.workspace }}/download/publish
    steps:
    - uses: actions/download-artifact@v4
      name: Download build outputs
      with:
        name: Build-x64
        path: ${{ github.workspace }}/download
    - uses: actions/download-artifact@v4
      name: Download tools
      with:
        name: Tools-x64
        path: ${{ github.workspace }}/download/tools
    - run: |
        Set-DisplayResolution -Width 1920 -Height 1080 -Force
      shell: pwsh
      name: Set screen resolution
    - run: |
        ${{ github.workspace }}/download/tools/SignTestApp.ps1 -AppToSign '${{ env.appDir }}/Calculator_*.msixbundle'
        ${{ env.appDir }}/Add-AppDevPackage.ps1 -Force
      shell: powershell
      name: Install app
    - run: |
        Invoke-WebRequest 'https://github.com/microsoft/WinAppDriver/releases/download/v1.2.1/WindowsApplicationDriver_1.2.1.msi' `
          -OutFile (New-Item -Path '${{ github.workspace }}/download2/wad.msi' -Force)
        cd ${{ github.workspace }}/download2
        msiexec.exe /i wad.msi /quiet /passive
      shell: powershell
      name: Install WindowsApplicationDriver
    - uses: ilammy/msvc-dev-cmd@v1  # this is a workaround because microsoft/vstest-action is broken.
      name: Setup dev tools
    - run: |
        vstest.console.exe ${{ github.workspace }}\download\publish\CalculatorUITests.dll `
          /Platform:x64 `
          /Settings:${{ github.workspace }}\download\publish\CalculatorUITests.ci.runsettings
      shell: pwsh
      name: Run UI tests


================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Code
.vscode/

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.publishsettings
orleans.codegen.cs

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Typescript v1 declaration files
typings/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# Calculator specific
Generated Files/
src/GraphControl/GraphingImplOverrides.props
src/CalcViewModel/DataLoaders/DataLoaderConstants.h
!src/x64
!src/x86
!src/out

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or
comments.

================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Calculator
The Calculator team encourages community feedback and contributions. Thank you for your interest in
making Calculator better! There are several ways you can get involved.

## Reporting issues and suggesting new features
If Calculator is not working properly, please file a report in the 
[Feedback Hub](https://insider.windows.com/en-us/fb/?contextid=130&newFeedback=True).
Feedback Hub reports automatically include diagnostic data, such as the version of Calculator
you're using.

We are happy to hear your ideas for the future of Calculator. Check the
[Feedback Hub](https://insider.windows.com/en-us/fb/?contextid=130) and see if others have
submitted similar feedback. You can upvote existing feedback or submit a new suggestion.

We always look at upvoted items in Feedback Hub when we decide what to work on next. We read the
comments in both Feedback Hub and GitHub, and we look forward to hearing your input. Remember that
all community interactions must abide by the [Code of Conduct](CODE_OF_CONDUCT.md).

## Finding issues you can help with
Looking for something to work on?
Issues marked [``good first issue``](https://github.com/Microsoft/calculator/labels/good%20first%20issue)
are a good place to start.

You can also check the [``help wanted``](https://github.com/Microsoft/calculator/labels/help%20wanted) tag to find 
other issues to help with. If you're interested in working on a fix, leave a comment to let everyone know and to help
avoid duplicated effort from others.

## Contributions we accept
We welcome your contributions to the Calculator project, especially to fix bugs and to make
improvements which address the top issues reported by Calculator users. Some general guidelines:

* **DO** create one pull request per Issue, and ensure that the Issue is linked in the pull request.
* **DO** follow our [Coding and Style](#style-guidelines) guidelines, and keep code changes as small as possible.
* **DO** include corresponding tests whenever possible.
* **DO** check for additional occurrences of the same problem in other parts of the codebase before submitting your PR.
* **DO** [link the issue](https://github.com/blog/957-introducing-issue-mentions) you are addressing in the 
   pull request.
* **DO** write a good description for your pull request. More detail is better. Describe *why* the change is being 
   made and *why* you have chosen a particular solution. Describe any manual testing you performed to validate your change.
* **DO NOT** submit a PR unless it is linked to an Issue marked 
   [`triage approved`](https://github.com/Microsoft/calculator/issues?q=is%3Aissue+is%3Aopen+label%3A%22Triage%3A+Approved%22). 
   This enables us to have a discussion on the idea before anyone invests time in an implementation.
* **DO NOT** merge multiple changes into one PR unless they have the same root cause.
* **DO NOT** submit pure formatting/typo changes to code that has not been modified otherwise.

We follow a [user-centered process for developing features](docs/NewFeatureProcess.md). New features
need sponsorship from the Calculator team, but we welcome community contributions at many stages of
the process.

> Submitting a pull request for an approved Issue is not a guarantee it will be approved.
> The change must meet our high bar for code quality, architecture, and performance, as well as
> [other requirements](#docs/NewFeatureProcess.md#technical-review).

## Making changes to the code

### Preparing your development environment
To learn how to build the code and run tests, follow the instructions in the [README](README.md).

### Style guidelines
The code in this project uses several different coding styles, depending on the age and history of
the code. Please attempt to match the style of surrounding code as much as possible. In new
components, prefer the patterns described in the 
[C++ core guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
and the [modern C++/WinRT language projections](https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/).

### Testing
Your change should include tests to verify new functionality wherever possible. Code should be
structured so that it can be unit tested independently of the UI. [Manual test cases](docs/ManualTests.md)
should be used where automated testing is not feasible.

### Git workflow
Calculator uses the [GitHub flow](https://guides.github.com/introduction/flow/) where most
development happens directly on the `main` branch. The `main` branch should always be in a
healthy state which is ready for release.

If your change is complex, please clean up the branch history before submitting a pull request.
You can use [git rebase](https://docs.microsoft.com/en-us/azure/devops/repos/git/rebase#squash-local-commits)
to group your changes into a small number of commits which we can review one at a time.

When completing a pull request, we will generally squash your changes into a single commit. Please
let us know if your pull request needs to be merged as separate commits.

## Review Process
After submitting a pull request, members of the calculator team will review your code. We will
assign the request to an appropriate reviewer. Any member of the community may
participate in the review, but at least one member of the Calculator team will ultimately approve
the request.

Often, multiple iterations will be needed to responding to feedback from reviewers. Try looking at
[past pull requests](https://github.com/Microsoft/calculator/pulls?q=is%3Apr+is%3Aclosed) to see
what the experience might be like.

## Contributor License Agreement
Before we can review and accept a pull request from you, you'll need to sign a Contributor License
Agreement (CLA). The CLA ensures that the community is free to use your contributions. More
information about the agreement is available on the [Microsoft web site](https://cla.opensource.microsoft.com/).
Signing the CLA is an automated process, and you only need to do it once for Microsoft projects on
GitHub.

You don't need to sign a CLA until you're ready to create a pull request. When your pull request is
created, it is classified by a bot. If the change is trivial (i.e. you just fixed a typo) then the
bot will label the PR `cla-not-required`. Otherwise, it's classified as `cla-required`. In that
case, the system will also tell you how you can sign the CLA. Once you have signed a CLA, the
current and all future pull requests will be labeled as `cla-signed`.


================================================
FILE: LICENSE
================================================
Copyright (c) Microsoft Corporation. All rights reserved.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: NOTICE.txt
================================================
THIRD PARTY SOFTWARE NOTICES AND INFORMATION
Do Not Translate or Localize

This software incorporates material from third parties. Microsoft makes certain 
open source code available at https://3rdpartysource.microsoft.com, or you may 
send a check or money order for US $5.00, including the product name, the open 
source component name, and version number, to:

Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA

Notwithstanding any other terms, you may reverse engineer this software to the 
extent required to debug changes to any libraries licensed under the GNU Lesser 
General Public License.

---

Hebrew OpenType Layout logic

The MIT License (MIT)
Copyright (c) 2003, 2007 Ralph Hancock & John Hudson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# Calculator
The Windows Calculator app is a modern Windows app written in C++ and C# that ships pre-installed with Windows.
The app provides standard, scientific, and programmer calculator functionality, as well as a set of converters between various units of measurement and currencies.

Calculator ships regularly with new features and bug fixes. You can get the latest version of Calculator in the [Microsoft Store](https://www.microsoft.com/store/apps/9WZDNCRFHVN5).

[![Continuous Integration](https://github.com/microsoft/calculator/actions/workflows/action-ci.yml/badge.svg)](https://github.com/microsoft/calculator/actions/workflows/action-ci.yml)

<img src="docs/Images/CalculatorScreenshot.png" alt="Calculator Screenshot" width="450px" />

## Features
- Standard Calculator functionality which offers basic operations and evaluates commands immediately as they are entered.
- Scientific Calculator functionality which offers expanded operations and evaluates commands using order of operations.
- Programmer Calculator functionality which offers common mathematical operations for developers including conversion between common bases.
- Date Calculation functionality which offers the difference between two dates, as well as the ability to add/subtract years, months and/or days to/from a given input date.
- Calculation history and memory capabilities.
- Conversion between many units of measurement.
- Currency conversion based on data retrieved from [Bing](https://www.bing.com).
- [Infinite precision](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) for basic
  arithmetic operations (addition, subtraction, multiplication, division) so that calculations
  never lose precision.

## Getting started
Prerequisites:
- Your computer must be running Windows 11, build 22000 or newer.
- Install the latest version of [Visual Studio](https://developer.microsoft.com/en-us/windows/downloads) (the free community edition is sufficient).
  - Install the "Universal Windows Platform Development" workload.
  - Install the optional "C++ Universal Windows Platform tools" component.
  - Install the latest Windows 11 SDK.

  ![Visual Studio Installation Screenshot](docs/Images/VSInstallationScreenshot.png)
- Install the [XAML Styler](https://marketplace.visualstudio.com/items?itemName=TeamXavalon.XAMLStyler) Visual Studio extension.

- Get the code:
    ```
    git clone https://github.com/Microsoft/calculator.git
    ```

- Open [src\Calculator.sln](/src/Calculator.sln) in Visual Studio to build and run the Calculator app.
- For a general description of the Calculator project architecture see [ApplicationArchitecture.md](docs/ApplicationArchitecture.md).
- To run the UI Tests, you need to make sure that
  [Windows Application Driver (WinAppDriver)](https://github.com/microsoft/WinAppDriver/releases/latest)
  is installed.

## Contributing
Want to contribute? The team encourages community feedback and contributions. Please follow our [contributing guidelines](CONTRIBUTING.md).

If Calculator is not working properly, please file a report in the [Feedback Hub](https://insider.windows.com/en-us/fb/?contextid=130).
We also welcome [issues submitted on GitHub](https://github.com/Microsoft/calculator/issues).

## Roadmap
For information regarding Windows Calculator plans and release schedule, please see the [Windows Calculator Roadmap](docs/Roadmap.md).

### Graphing Mode
Adding graphing calculator functionality [is on the project roadmap](https://github.com/Microsoft/calculator/issues/338) and we hope that this project can create a great end-user experience around graphing. To that end, the UI from the official in-box Windows Calculator is currently part of this repository, although the proprietary Microsoft-built graphing engine, which also drives graphing in Microsoft Mathematics and OneNote, is not. Community members can still be involved in the creation of the UI, however developer builds will not have graphing functionality due to the use of a [mock implementation of the engine](/src/GraphingImpl/Mocks) built on top of a
[common graphing API](/src/GraphingInterfaces).

## Diagnostic Data
This project collects usage data and sends it to Microsoft to help improve our products and services.
Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
Diagnostic data is disabled in development builds by default, and can be enabled with the `SEND_DIAGNOSTICS`
build flag.

## Currency Converter
Windows Calculator includes a currency converter feature that uses mock data in developer builds. The data that
Microsoft uses for the currency converter feature (e.g., in the retail version of the application) is not licensed
for your use. The mock data will be clearly identifiable as it references planets instead of countries,
and remains static regardless of selected inputs.

## Reporting Security Issues
Please refer to [SECURITY.md](./SECURITY.md).

## License
Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the [MIT License](./LICENSE).


================================================
FILE: SECURITY.md
================================================
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.1 BLOCK -->

## Security

Microsoft takes the security of our software products and services seriously, which includes all
source code repositories managed through our GitHub organizations, which include
[Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure),
[DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet),
[Xamarin](https://github.com/xamarin), and [many more](https://opensource.microsoft.com/).

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets
Microsoft's [definition](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10))
of a security vulnerability, please report it to us as described below.

## Reporting Security Issues

**Please do not report security vulnerabilities through public GitHub issues.** Instead, please
report them to the Microsoft Security Response Center at [secure@microsoft.com](mailto:secure@microsoft.com).
If possible, encrypt your message with our PGP key; please download it from the
[Microsoft Security Response Center PGP Key page](https://technet.microsoft.com/en-us/security/dn606155).

You should receive a response within 24 hours. If for some reason you do not, please follow up via
email to ensure we received your original message. Additional information can be found at
[microsoft.com/msrc](https://www.microsoft.com/msrc).

Please include the requested information listed below (as much as you can provide) to help us better
understand the nature and scope of the possible issue:

  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
  * Full paths of source file(s) related to the manifestation of the issue
  * The location of the affected source code (tag/branch/commit or direct URL)
  * Any special configuration required to reproduce the issue
  * Step-by-step instructions to reproduce the issue
  * Proof-of-concept or exploit code (if possible)
  * Impact of the issue, including how an attacker might exploit the issue

This information will help us triage your report more quickly.

## Preferred Languages

We prefer all communications to be in English.

## Policy

Microsoft follows the principle of
[Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).

<!-- END MICROSOFT SECURITY.MD BLOCK -->


================================================
FILE: Tools/PGO/Microsoft.WindowsCalculator.PGO.nuspec
================================================
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
    <metadata>
        <id>Microsoft.WindowsCalculator.PGO</id>
        <version>$version$</version>
        <authors>Microsoft</authors>
        <owners>sourceapps</owners>
        <projectUrl>https://microsoft.visualstudio.com/Apps/_git/calculator.app</projectUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>A package containing the required files for Profile Guided Optimization for Calculator.</description>
        <copyright>Microsoft Corporation. All rights reserved.</copyright>
        <tags>pgo</tags>
        <language>en-US</language>
    </metadata>
</package>

================================================
FILE: Tools/PGO/build/native/Microsoft.WindowsCalculator.PGO.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <PropertyGroup>
        <PGOBuildMode Condition="'$(PGOBuildMode)'==''">Optimize</PGOBuildMode>
    </PropertyGroup>
  
</Project>

================================================
FILE: Tools/PGO/build/native/Microsoft.WindowsCalculator.PGO.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <PropertyGroup>
        <VC_PGO_RunTime_Dir>$(VCToolsInstallDir)bin\Host$(PlatformShortName)\$(PlatformShortName)</VC_PGO_RunTime_Dir>
        <VC_PGO_RunTime_Dir Condition="'$(Platform)'=='ARM64'">$(VCToolsInstallDir)bin\$(PlatformShortName)</VC_PGO_RunTime_Dir>
        <ProfileGuidedDatabaseFileName>$(MSBuildThisFileDirectory)..\..\tools\$(PlatformShortName)\Calculator.pgd</ProfileGuidedDatabaseFileName>
    </PropertyGroup>

    <!-- Enable PGO optimization only for Release builds. -->
    <ItemDefinitionGroup Condition="'$(Configuration)' == 'Release' and '$(PGOBuildMode)' == 'Instrument'">
        <Link>
            <LinkTimeCodeGeneration>PGInstrument</LinkTimeCodeGeneration>
            <AdditionalDependencies Condition="'$(Platform)'=='ARM64'">$(VC_ReferencesPath_VC_ARM64)\pgort.lib;%(AdditionalDependencies)</AdditionalDependencies>
            <AdditionalDependencies Condition="'$(Platform)'=='Win32'">$(VC_ReferencesPath_VC_x86)\pgort.lib;%(AdditionalDependencies)</AdditionalDependencies>
            <AdditionalDependencies Condition="'$(Platform)'=='x64'">$(VC_ReferencesPath_VC_x64)\pgort.lib;%(AdditionalDependencies)</AdditionalDependencies>
        </Link>
    </ItemDefinitionGroup>

    <!-- Include pgort140.dll in the app package -->
    <ItemGroup Condition="'$(Configuration)' == 'Release' and '$(PGOBuildMode)' == 'Instrument'">
        <None Include="$(VC_PGO_RunTime_Dir)\pgort140.dll">
            <Link>%(Filename)%(Extension)</Link>
            <DeploymentContent>true</DeploymentContent>
            <Visible>false</Visible>
            <InProject>false</InProject>
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>

    <!-- Enable PGO optimization only for if the pgds file exists. -->
    <ItemDefinitionGroup Condition="'$(Configuration)' == 'Release' and '$(PGOBuildMode)' == 'Optimize' and Exists('$(ProfileGuidedDatabaseFileName)')">
        <Link>
            <LinkTimeCodeGeneration>PGUpdate</LinkTimeCodeGeneration>
            <ProfileGuidedDatabase>$(ProfileGuidedDatabaseFileName)</ProfileGuidedDatabase>
        </Link>
    </ItemDefinitionGroup>

</Project>

================================================
FILE: Tools/Scripts/clang-format/clang-format-all.ps1
================================================
<#
    .DESCRIPTION
        Helper script to format all header and source files in the repository.

        By default, the script will recursively search under the repo root for
        files to format.  Users can give explicit parameters indicating how the
        search should include and exclude filetypes.

        If users don't want the search functionality, they can instead provide
        an explicit list of files to format.

    .PARAMETER RepoRoot
        Full path to the root of the repository which is the target of the search.
        Will default to the root of the current working directory.

    .PARAMETER Include
        Array of filetype extensions to target for formatting.
        By default, targets standard extensions for header and source files.
        Follows the same rules as the -Include parameter for Get-ChildItem.

    .PARAMETER Exclude
        Array of filetype extensions to exclude from formatting.
        By default, excludes generated XAML files.
        Follows the same rules as the -Exclude paramter for Get-ChildItem.

    .PARAMETER Files
        Array of files to format. The script will exit if one of the provided
        filepaths does not exist.

    .EXAMPLE
        .\clang-format-all.ps1

        Formats all header and source files under the repository root.

    .EXAMPLE
        .\clang-format-all.ps1 -RepoRoot 'S:\repos\calculator' -Include '*.h', '*.cpp' -Exclude '*.g.*'

        Formats all *.h and *.cpp files under 'S:\repos\calculator', excluding files with an extension
        like *.g.*

    .EXAMPLE
        .\clang-format-all.ps1 -File 'S:\repos\calculator\src\CalcViewModel\UnitConverterViewModel.h', 'S:\repos\calculator\src\CalcViewModel\MemoryItemViewModel.cpp'

        Formats the specified files.
#>
[CmdletBinding( DefaultParameterSetName = 'Search' )]
param(
    [Parameter( ParameterSetName = 'Search' )]
    [ValidateScript({ Test-Path -PathType Container -Path $_ })]
    [string] $RepoRoot = "$( git rev-parse --show-toplevel )",

    [Parameter( ParameterSetName = 'Search' )]
    [string[]] $Include = ( '*.h', '*.hh', '*.hpp', '*.c', '*.cc', '*.cpp' ),

    [Parameter( ParameterSetName = 'Search' )]
    [string[]] $Exclude = '*.g.*',

    [Parameter(
        ParameterSetName = 'Explicit',
        Mandatory)]
    [ValidateScript({
        $_ | Where-Object { -not (Test-Path -PathType Leaf -Path $_) } |
             ForEach-Object { throw "Could not find file: [$_]" }

        return $true
    })]
    [string[]] $Files
)

if ($PSCmdlet.ParameterSetName -eq 'Explicit')
{
    # Use the file paths we were given.
    $targetFiles = @($Files)
}
else
{
    # Gather the files to be formatted.
    $targetFiles = @(
        Get-ChildItem -Recurse -Path $RepoRoot -Include $Include -Exclude $Exclude |
            Select-Object -ExpandProperty FullName
    )
}

# Format the files.
$formatParams = @(
    '-i'          # In-place
    '-style=file' # Search for a .clang-format file in the parent directory of the source file.
    '-verbose'
)

clang-format $formatParams $targetFiles

================================================
FILE: Tools/Scripts/clang-format/clang-format-all.sh
================================================
#!/bin/bash

function usage {
    echo "Usage: $0 DIR..."
    exit 1
}

# Variable that will hold the name of the clang-format command
FMT=""

# Some distros just call it clang-format. Others (e.g. Ubuntu) are insistent
# that the version number be part of the command. We prefer clang-format if
# that's present, otherwise we work backwards from highest version to lowest
# version.
for clangfmt in clang-format{,-{4,3}.{9,8,7,6,5,4,3,2,1,0}}; do
    if which "$clangfmt" &>/dev/null; then
        FMT="$clangfmt"
        break
    fi
done

# Check if we found a working clang-format
if [ -z "$FMT" ]; then
    echo "failed to find clang-format"
    exit 1
fi

SRC_PATH="$@"
if [ -z "$SRC_PATH" ]; then
    SRC_PATH="../../../src"
fi

# Check all of the arguments first to make sure they're all directories
for dir in "$SRC_PATH"; do
    if [ ! -d "${dir}" ]; then
        echo "${dir} is not a directory"
        usage
    fi
done

# Run clang-format -i on all of the things
for dir in "$SRC_PATH"; do
    pushd "${dir}" &>/dev/null
    find . \
         \( -name '*.c' \
         -o -name '*.cc' \
         -o -name '*.cpp' \
         -o -name '*.h' \
         -o -name '*.hh' \
         -o -name '*.hpp' \) \
         -exec "${FMT}" -style=file -i '{}' \;
    popd &>/dev/null
done


================================================
FILE: Tools/ThreatModels/Calculator.tm7
================================================
<ThreatModel xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><DrawingSurfaceList><DrawingSurfaceModel z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">DRAWINGSURFACE</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">d3f963ff-0a03-476e-ad6a-20239a956929</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts" xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Diagram</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name>Name</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Restore from snapshot URI</b:Value></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">DRAWINGSURFACE</TypeId><Borders xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:KeyValueOfguidanyType><a:Key>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</a:Key><a:Value z:Id="i2" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.EI</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Generic External Interactor</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Generic External Interactor</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Authenticates Itself</b:DisplayName><b:Name>authenticatesItself</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Applicable</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Type</b:DisplayName><b:Name>type</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Code</a:string><a:string>Human</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Microsoft</b:DisplayName><b:Name>MS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.EI</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">148</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">92</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value z:Id="i3" i:type="StencilEllipse"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.P</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">87092820-fe38-4bf8-a928-e8a471acc7b0</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Managed Application</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Calculator App - UWP Application (Dotnet Native)</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Predefined Static Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Code Type</b:DisplayName><b:Name>codeType</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Managed</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Process</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Running As</b:DisplayName><b:Name>runningAs</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Kernel</a:string><a:string>System</a:string><a:string>Network Service</a:string><a:string>Local Service</a:string><a:string>Administrator</a:string><a:string>Standard User With Elevation</a:string><a:string>Standard User Without Elevation</a:string><a:string>Windows Store App</a:string></b:Value><b:SelectedIndex>8</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Isolation Level</b:DisplayName><b:Name>Isolation</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>AppContainer</a:string><a:string>Low Integrity Level</a:string><a:string>Microsoft Office Isolated Conversion Environment (MOICE)</a:string><a:string>Sandbox</a:string></b:Value><b:SelectedIndex>1</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Accepts Input From</b:DisplayName><b:Name>acceptsInputFrom</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Any Remote User or Entity</a:string><a:string>Kernel, System, or Local Admin</a:string><a:string>Local or Network Service</a:string><a:string>Local Standard User With Elevation</a:string><a:string>Local Standard User Without Elevation</a:string><a:string>Windows Store Apps or App Container Processes</a:string><a:string>Nothing</a:string><a:string>Other</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses an Authentication Mechanism</b:DisplayName><b:Name>implementsAuthenticationScheme</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses an Authorization Mechanism</b:DisplayName><b:Name>implementsCustomAuthorizationMechanism</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses a Communication Protocol</b:DisplayName><b:Name>implementsCommunicationProtocol</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>1</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Sanitizes Input</b:DisplayName><b:Name>hasInputSanitizers</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Sanitizes Output</b:DisplayName><b:Name>hasOutputSanitizers</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.P.TMCore.NetApp</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">127</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">510</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">329</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">140</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>64fd5280-0f1c-4410-b6b5-75781fe344d4</a:Key><a:Value z:Id="i4" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.EI</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">64fd5280-0f1c-4410-b6b5-75781fe344d4</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Windows RT Runtime</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Windows RT Runtime (User Activity)</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Predefined Static Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Authenticates Itself</b:DisplayName><b:Name>authenticatesItself</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Applicable</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Type</b:DisplayName><b:Name>type</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Code</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic External Interactor</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Microsoft</b:DisplayName><b:Name>MS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.EI.TMCore.WinRT</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1098</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">277</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>55675d76-019e-4f8a-8add-e31f7e4aa3a2</a:Key><a:Value z:Id="i5" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.A</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">55675d76-019e-4f8a-8add-e31f7e4aa3a2</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Free Text Annotation</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Calculator App:&#xD;
Calculator is a UWP application written with C# and C++/CX and compiled with the Dotnet Native tech.&#xD;
&#xD;
Privilege level of Calculator:&#xD;
Current user privilege. UWP application does not support "Run as".&#xD;
&#xD;
Windows RT Runtime (User Activity):&#xD;
Calculator stores its snapshot data into a user activity.&#xD;
User Activity APIs are provide by Windows SDK for UWP under Windows.Foundation.UniversalApiContract.&#xD;
A UserActivity is created by an app during its execution to notify the system of a user work stream that can be continued on another device, or at another time on the same device. It provides information about a task the user is engaged in.&#xD;
&#xD;
</b:Value></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.A</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">355</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">373</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">510</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">395</Width></a:Value></a:KeyValueOfguidanyType></Borders><Header>Restore from snapshot URI</Header><Lines xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:KeyValueOfguidanyType><a:Key>3bf1dba0-2532-43cf-8711-b68d3e3413e8</a:Key><a:Value z:Id="i6" i:type="LineBoundary"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.TB.L</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">3bf1dba0-2532-43cf-8711-b68d3e3413e8</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>AppContainer Boundary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Calculator Application Trust Boundary</b:Value></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Trust Line Boundary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.TB.L.TMCore.AppContainer</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">493</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">93</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">None</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">None</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">00000000-0000-0000-0000-000000000000</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">931</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">54</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">00000000-0000-0000-0000-000000000000</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">10</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">516</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>77b3182a-0ea6-4be1-b696-921aa98477ec</a:Key><a:Value z:Id="i7" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">77b3182a-0ea6-4be1-b696-921aa98477ec</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">1) User/Program launches Calculator via URI activation. &#xD;
Calculator verifies and parses out an activity ID from the input URI.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>1</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Custom Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:CustomStringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Custom property</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Comment: The link to the document about URI Activation: https://learn.microsoft.com/en-us/windows/uwp/launch-resume/handle-uri-activation</b:Value></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">410</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">252</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">East</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">NorthWest</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">243</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">142</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">87092820-fe38-4bf8-a928-e8a471acc7b0</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">534</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">351</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>4fc41911-3d22-45c1-8818-de3700f34d82</a:Key><a:Value z:Id="i8" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">4fc41911-3d22-45c1-8818-de3700f34d82</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">2) Calculator uses the activity ID to try&#xD;
retrieving the User Activity stored before.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">852</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">243</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">NorthEast</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">West</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">87092820-fe38-4bf8-a928-e8a471acc7b0</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">625</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">351</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">64fd5280-0f1c-4410-b6b5-75781fe344d4</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1103</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">327</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13</a:Key><a:Value z:Id="i9" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">3) Calculator verifies the User Activity and then&#xD;
restore its state from the data saved in the User Activity.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">839</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">415</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">West</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SouthEast</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">64fd5280-0f1c-4410-b6b5-75781fe344d4</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1103</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">327</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">87092820-fe38-4bf8-a928-e8a471acc7b0</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">625</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">433</TargetY></a:Value></a:KeyValueOfguidanyType></Lines><Zoom>1</Zoom></DrawingSurfaceModel><DrawingSurfaceModel z:Id="i10" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">DRAWINGSURFACE</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">95b5de49-2481-4962-86f8-f44ca0ffa799</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts" xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Diagram</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name>Name</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Save snapshot on demand</b:Value></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">DRAWINGSURFACE</TypeId><Borders xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:KeyValueOfguidanyType><a:Key>c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value z:Id="i11" i:type="StencilEllipse"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.P</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">c2f44e2e-18f9-4f0a-9620-fd613d85f360</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Managed Application</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Calculator App - UWP Application (Dotnet Native)</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Predefined Static Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Code Type</b:DisplayName><b:Name>codeType</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Managed</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Process</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Running As</b:DisplayName><b:Name>runningAs</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Kernel</a:string><a:string>System</a:string><a:string>Network Service</a:string><a:string>Local Service</a:string><a:string>Administrator</a:string><a:string>Standard User With Elevation</a:string><a:string>Standard User Without Elevation</a:string><a:string>Windows Store App</a:string></b:Value><b:SelectedIndex>8</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Isolation Level</b:DisplayName><b:Name>Isolation</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>AppContainer</a:string><a:string>Low Integrity Level</a:string><a:string>Microsoft Office Isolated Conversion Environment (MOICE)</a:string><a:string>Sandbox</a:string></b:Value><b:SelectedIndex>1</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Accepts Input From</b:DisplayName><b:Name>acceptsInputFrom</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Any Remote User or Entity</a:string><a:string>Kernel, System, or Local Admin</a:string><a:string>Local or Network Service</a:string><a:string>Local Standard User With Elevation</a:string><a:string>Local Standard User Without Elevation</a:string><a:string>Windows Store Apps or App Container Processes</a:string><a:string>Nothing</a:string><a:string>Other</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses an Authentication Mechanism</b:DisplayName><b:Name>implementsAuthenticationScheme</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses an Authorization Mechanism</b:DisplayName><b:Name>implementsCustomAuthorizationMechanism</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Implements or Uses a Communication Protocol</b:DisplayName><b:Name>implementsCommunicationProtocol</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>1</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Sanitizes Input</b:DisplayName><b:Name>hasInputSanitizers</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Sanitizes Output</b:DisplayName><b:Name>hasOutputSanitizers</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.P.TMCore.NetApp</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">127</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">563</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">295</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">140</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>8ce2142b-8646-4daf-afdf-6c6867d68489</a:Key><a:Value z:Id="i12" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.EI</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">8ce2142b-8646-4daf-afdf-6c6867d68489</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Windows Runtime</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Recall App</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Predefined Static Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Authenticates Itself</b:DisplayName><b:Name>authenticatesItself</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Applicable</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Type</b:DisplayName><b:Name>type</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Code</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic External Interactor</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Microsoft</b:DisplayName><b:Name>MS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.EI.TMCore.CRT</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">94</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">24</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>d8fb8b09-1f09-4658-a865-8cba8069ef5f</a:Key><a:Value z:Id="i13" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.EI</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">d8fb8b09-1f09-4658-a865-8cba8069ef5f</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Windows RT Runtime</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Windows RT Runtime (User Activity)</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Predefined Static Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Authenticates Itself</b:DisplayName><b:Name>authenticatesItself</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Applicable</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:StaticListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Type</b:DisplayName><b:Name>type</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Code</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic External Interactor</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Microsoft</b:DisplayName><b:Name>MS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.EI.TMCore.WinRT</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1140</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">296</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">100</Width></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>eb9e4ef1-e917-40d0-a2bb-bd51c1815695</a:Key><a:Value z:Id="i14" i:type="StencilRectangle"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.A</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">eb9e4ef1-e917-40d0-a2bb-bd51c1815695</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Free Text Annotation</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Recall App:&#xD;
Recall is a new System Application that stores and restores the state of the apps running in foreground.&#xD;
&#xD;
Calculator App:&#xD;
Calculator is a UWP application written with C# and C++/CX and compiled with the Dotnet Native tech.&#xD;
&#xD;
Privilege level of Calculator:&#xD;
Current user privilege. UWP application does not support "Run as".&#xD;
&#xD;
Privilege level of Recall:&#xD;
Current user privilege or higher.&#xD;
&#xD;
Windows RT Runtime (User Activity):&#xD;
Calculator stores its snapshot data into a user activity.&#xD;
User Activity APIs are provide by Windows SDK for UWP under Windows.Foundation.UniversalApiContract.&#xD;
A UserActivity is created by an app during its execution to notify the system of a user work stream that can be continued on another device, or at another time on the same device. It provides information about a task the user is engaged in.&#xD;
&#xD;
</b:Value></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.A</TypeId><Height xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">432</Height><Left xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">319</Left><StrokeDashArray i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"/><StrokeThickness xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0</StrokeThickness><Top xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">506</Top><Width xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">395</Width></a:Value></a:KeyValueOfguidanyType></Borders><Header>Save snapshot on demand</Header><Lines xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:KeyValueOfguidanyType><a:Key>4fbf0c1c-170d-4f0c-9b6d-371d634fc07d</a:Key><a:Value z:Id="i15" i:type="LineBoundary"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.TB.L</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">4fbf0c1c-170d-4f0c-9b6d-371d634fc07d</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>AppContainer Boundary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Calculator Application Trust Boundary</b:Value></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Trust Line Boundary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.TB.L.TMCore.AppContainer</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">440</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">114</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">None</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">None</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">00000000-0000-0000-0000-000000000000</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">963</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">51</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">00000000-0000-0000-0000-000000000000</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">41</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">503</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>3777792c-2421-448c-85b1-49fbf31d23d5</a:Key><a:Value z:Id="i16" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">3777792c-2421-448c-85b1-49fbf31d23d5</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">1) Recall app initiates a request to Calculator asking for taking a snapshot and&#xD;
storing it into a User Activity.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">426</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">214</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">East</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">NorthWest</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">8ce2142b-8646-4daf-afdf-6c6867d68489</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">189</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">74</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">c2f44e2e-18f9-4f0a-9620-fd613d85f360</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">587</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">317</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>3e95f648-6267-4b07-80eb-223b572e9ad4</a:Key><a:Value z:Id="i17" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">3e95f648-6267-4b07-80eb-223b572e9ad4</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">2) Calculator retrieves a new User Activity using a newly generated GUID.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">915</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">300</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">NorthEast</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">NorthWest</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">c2f44e2e-18f9-4f0a-9620-fd613d85f360</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">678</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">317</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">d8fb8b09-1f09-4658-a865-8cba8069ef5f</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1145</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">301</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>46755abb-a146-4c93-8874-0a78670a9bad</a:Key><a:Value z:Id="i18" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">46755abb-a146-4c93-8874-0a78670a9bad</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">3) Calculator stores its serialized current state into the User Activity.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">957</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">416</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SouthWest</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SouthEast</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">d8fb8b09-1f09-4658-a865-8cba8069ef5f</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">1145</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">391</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">c2f44e2e-18f9-4f0a-9620-fd613d85f360</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">678</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">399</TargetY></a:Value></a:KeyValueOfguidanyType><a:KeyValueOfguidanyType><a:Key>0ef7348c-9dd9-4781-b8c8-f44e13b8066f</a:Key><a:Value z:Id="i19" i:type="Connector"><GenericTypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">GE.DF</GenericTypeId><Guid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">0ef7348c-9dd9-4781-b8c8-f44e13b8066f</Guid><Properties xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts"><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Binary</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Name</b:DisplayName><b:Name/><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">4) Calculator returns the cooked User Activity back to&#xD;
the Recall app via its snapshot request.</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Dataflow Order</b:DisplayName><b:Name>15ccd509-98eb-49ad-b9c2-b4a2926d1780</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">0</b:Value></a:anyType><a:anyType i:type="b:BooleanDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Out Of Scope</b:DisplayName><b:Name>71f3d9aa-b8ef-4e54-8126-607a1d903103</b:Name><b:Value i:type="c:boolean" xmlns:c="http://www.w3.org/2001/XMLSchema">false</b:Value></a:anyType><a:anyType i:type="b:StringDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Reason For Out Of Scope</b:DisplayName><b:Name>752473b6-52d4-4776-9a24-202153f7d579</b:Name><b:Value i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Configurable Attributes</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:HeaderDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>As Generic Data Flow</b:DisplayName><b:Name/><b:Value i:nil="true"/></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Physical Network</b:DisplayName><b:Name>channel</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>Wire</a:string><a:string>Wi-Fi</a:string><a:string>Bluetooth</a:string><a:string>2G-4G</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Source Authenticated</b:DisplayName><b:Name>authenticatesSource</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Destination Authenticated</b:DisplayName><b:Name>authenticatesDestination</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Confidentiality</b:DisplayName><b:Name>providesConfidentiality</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Provides Integrity</b:DisplayName><b:Name>providesIntegrity</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Transmits XML</b:DisplayName><b:Name>XMLenc</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Contains Cookies</b:DisplayName><b:Name>Cookies</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Yes</a:string><a:string>No</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>SOAP Payload</b:DisplayName><b:Name>SOAP</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>REST Payload</b:DisplayName><b:Name>REST</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>RSS Payload</b:DisplayName><b:Name>RSS</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>JSON Payload</b:DisplayName><b:Name>JSON</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>No</a:string><a:string>Yes</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType><a:anyType i:type="b:ListDisplayAttribute" xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:DisplayName>Forgery Protection</b:DisplayName><b:Name>54851a3b-65da-4902-b4e0-94ef015be735</b:Name><b:Value i:type="a:ArrayOfstring"><a:string>Not Selected</a:string><a:string>ValidateAntiForgeryTokenAttribute</a:string><a:string>ViewStateUserKey</a:string><a:string>Nonce</a:string><a:string>Other dynamic canary</a:string><a:string>Static header not available to the browser</a:string><a:string>Other</a:string><a:string>None</a:string><a:string>Not applicable because the request does not change data</a:string></b:Value><b:SelectedIndex>0</b:SelectedIndex></a:anyType></Properties><TypeId xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SE.DF.TMCore.Binary</TypeId><HandleX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">364</HandleX><HandleY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">305</HandleY><PortSource xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">SouthWest</PortSource><PortTarget xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">South</PortTarget><SourceGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">c2f44e2e-18f9-4f0a-9620-fd613d85f360</SourceGuid><SourceX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">587</SourceX><SourceY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">399</SourceY><TargetGuid xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">8ce2142b-8646-4daf-afdf-6c6867d68489</TargetGuid><TargetX xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">144</TargetX><TargetY xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model.Abstracts">119</TargetY></a:Value></a:KeyValueOfguidanyType></Lines><Zoom>1</Zoom></DrawingSurfaceModel></DrawingSurfaceList><MetaInformation><Assumptions/><Contributors/><ExternalDependencies/><HighLevelSystemDescription/><Owner/><Reviewer/><ThreatModelName/></MetaInformation><Notes/><ThreatInstances xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>E774f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>19</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Elevation by Changing the Execution Flow in Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Elevation Of Privilege</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>A user subject gains increased capability or privilege by taking advantage of an implementation bug.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>An attacker may pass data into Calculator App - UWP Application (Dotnet Native) in order to change the flow of program execution within Calculator App - UWP Application (Dotnet Native) to the attacker's choosing.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>E7</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>E674f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>18</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) May be Subject to Elevation of Privilege Using Remote Code Execution</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Elevation Of Privilege</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>A user subject gains increased capability or privilege by taking advantage of an implementation bug.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Generic External Interactor may be able to remotely execute code for Calculator App - UWP Application (Dotnet Native).</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>E6</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>E574f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>17</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Elevation Using Impersonation</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Elevation Of Privilege</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>A user subject gains increased capability or privilege by taking advantage of an implementation bug.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) may be able to impersonate the context of Generic External Interactor in order to gain additional privilege.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>E5</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>D474f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>16</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Data Flow 1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI. Is Potentially Interrupted</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Denial Of Service</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>An external agent interrupts data flowing across a trust boundary in either direction.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>D4</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>D374f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>15</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Process Crash or Stop for Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Denial Of Service</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) crashes, halts, stops or runs slowly; in all cases violating an availability metric.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>D3</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>I674f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>14</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Data Flow Sniffing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Information Disclosure</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Information disclosure happens when the information can be read by an unauthorized party.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Data flowing across 1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI. may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>I6</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>R674f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>13</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Data Repudiation by Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Repudiation</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Repudiation threats involve an adversary denying that something happened.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>R6</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>T174f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>12</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Lack of Input Validation for Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Tampering</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Data flowing across 1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI. may be tampered with by an attacker. This may lead to a denial of service attack against Calculator App - UWP Application (Dotnet Native) or an elevation of privilege attack against Calculator App - UWP Application (Dotnet Native) or an information disclosure by Calculator App - UWP Application (Dotnet Native). Failure to verify that input is as expected is a root cause of a very large number of exploitable issues. Consider all paths and the way they handle data. Verify that all input is verified for correctness using an approved list input validation approach.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>T1</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>S374f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>21</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Spoofing the Generic External Interactor External Entity</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Spoofing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Generic External Interactor may be spoofed by an attacker and this may lead to unauthorized access to Calculator App - UWP Application (Dotnet Native). Consider using a standard authentication mechanism to identify the external entity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>S3</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>S274f11287-6ca1-4e2d-a6eb-d0b1b49c685177b3182a-0ea6-4be1-b696-921aa98477ec87092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>77b3182a-0ea6-4be1-b696-921aa98477ec</b:FlowGuid><b:Id>10</b:Id><b:InteractionKey>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851:77b3182a-0ea6-4be1-b696-921aa98477ec:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Spoofing the Calculator App - UWP Application (Dotnet Native) Process</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Spoofing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) may be spoofed by an attacker and this may lead to information disclosure by Generic External Interactor. Consider using a standard authentication mechanism to identify the destination process.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) User/Program launches Calculator via URI activation. Calculator verifies and parses out an activity ID from the input URI.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>74f11287-6ca1-4e2d-a6eb-d0b1b49c6851</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>S2</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>E58ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>39</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Elevation Using Impersonation</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Elevation Of Privilege</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>A user subject gains increased capability or privilege by taking advantage of an implementation bug.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) may be able to impersonate the context of Recall App in order to gain additional privilege.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>E5</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>S364fd5280-0f1c-4410-b6b5-75781fe344d42e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e1387092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13</b:FlowGuid><b:Id>23</b:Id><b:InteractionKey>64fd5280-0f1c-4410-b6b5-75781fe344d4:2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Spoofing the Windows RT Runtime (User Activity) External Entity</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Spoofing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Windows RT Runtime (User Activity) may be spoofed by an attacker and this may lead to unauthorized access to Calculator App - UWP Application (Dotnet Native). Consider using a standard authentication mechanism to identify the external entity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>3) Calculator verifies the User Activity and then restore its state from the data saved in the User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>64fd5280-0f1c-4410-b6b5-75781fe344d4</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>S3</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>D48ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>38</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Data Flow 1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity. Is Potentially Interrupted</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Denial Of Service</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>An external agent interrupts data flowing across a trust boundary in either direction.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>D4</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>D38ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>37</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Process Crash or Stop for Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Denial Of Service</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Denial of Service happens when the process or a datastore is not able to service incoming requests or perform up to spec.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) crashes, halts, stops or runs slowly; in all cases violating an availability metric.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>D3</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>I68ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>36</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Data Flow Sniffing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Information Disclosure</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Information disclosure happens when the information can be read by an unauthorized party.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Data flowing across 1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity. may be sniffed by an attacker. Depending on what type of data an attacker can read, it may be used to attack other parts of the system or simply be a disclosure of information leading to compliance violations. Consider encrypting the data flow.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>I6</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>R68ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>35</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Data Repudiation by Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Repudiation</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Repudiation threats involve an adversary denying that something happened.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) claims that it did not receive data from a source outside the trust boundary. Consider using logging or auditing to record the source, time, and summary of the received data.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>R6</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>T18ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>34</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Potential Lack of Input Validation for Calculator App - UWP Application (Dotnet Native)</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Tampering</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Tampering is the act of altering the bits. Tampering with a process involves changing bits in the running process. Similarly, Tampering with a data flow involves changing bits on the wire or between two running processes.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Data flowing across 1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity. may be tampered with by an attacker. This may lead to a denial of service attack against Calculator App - UWP Application (Dotnet Native) or an elevation of privilege attack against Calculator App - UWP Application (Dotnet Native) or an information disclosure by Calculator App - UWP Application (Dotnet Native). Failure to verify that input is as expected is a root cause of a very large number of exploitable issues. Consider all paths and the way they handle data. Verify that all input is verified for correctness using an approved list input validation approach.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>1) Recall app initiates a request to Calculator asking for taking a snapshot and storing it into a User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>8ce2142b-8646-4daf-afdf-6c6867d68489</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>T1</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>E564fd5280-0f1c-4410-b6b5-75781fe344d42e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e1387092820-fe38-4bf8-a928-e8a471acc7b0</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>d3f963ff-0a03-476e-ad6a-20239a956929</b:DrawingSurfaceGuid><b:FlowGuid>2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13</b:FlowGuid><b:Id>29</b:Id><b:InteractionKey>64fd5280-0f1c-4410-b6b5-75781fe344d4:2e73a97d-8ce5-4f8c-b2c6-bfb17c9d7e13:87092820-fe38-4bf8-a928-e8a471acc7b0</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Elevation Using Impersonation</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Elevation Of Privilege</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>A user subject gains increased capability or privilege by taking advantage of an implementation bug.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:Key><a:Value>Calculator App - UWP Application (Dotnet Native) may be able to impersonate the context of Windows RT Runtime (User Activity) in order to gain additional privilege.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>InteractionString</a:Key><a:Value>3) Calculator verifies the User Activity and then restore its state from the data saved in the User Activity.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>Priority</a:Key><a:Value>High</a:Value></a:KeyValueOfstringstring></b:Properties><b:SourceGuid>64fd5280-0f1c-4410-b6b5-75781fe344d4</b:SourceGuid><b:State>AutoGenerated</b:State><b:StateInformation i:nil="true"/><b:TargetGuid>87092820-fe38-4bf8-a928-e8a471acc7b0</b:TargetGuid><b:Title i:nil="true"/><b:TypeId>E5</b:TypeId><b:Upgraded>false</b:Upgraded><b:UserThreatCategory i:nil="true"/><b:UserThreatDescription i:nil="true"/><b:UserThreatShortDescription i:nil="true"/><b:Wide>false</b:Wide></a:Value></a:KeyValueOfstringThreatpc_P0_PhOB><a:KeyValueOfstringThreatpc_P0_PhOB><a:Key>S38ce2142b-8646-4daf-afdf-6c6867d684893777792c-2421-448c-85b1-49fbf31d23d5c2f44e2e-18f9-4f0a-9620-fd613d85f360</a:Key><a:Value xmlns:b="http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase"><b:ChangedBy i:nil="true"/><b:DrawingSurfaceGuid>95b5de49-2481-4962-86f8-f44ca0ffa799</b:DrawingSurfaceGuid><b:FlowGuid>3777792c-2421-448c-85b1-49fbf31d23d5</b:FlowGuid><b:Id>33</b:Id><b:InteractionKey>8ce2142b-8646-4daf-afdf-6c6867d68489:3777792c-2421-448c-85b1-49fbf31d23d5:c2f44e2e-18f9-4f0a-9620-fd613d85f360</b:InteractionKey><b:InteractionString i:nil="true"/><b:ModifiedAt>0001-01-01T00:00:00</b:ModifiedAt><b:Priority>High</b:Priority><b:Properties><a:KeyValueOfstringstring><a:Key>Title</a:Key><a:Value>Spoofing the Recall App External Entity</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatCategory</a:Key><a:Value>Spoofing</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatShortDescription</a:Key><a:Value>Spoofing is when a process or entity is something other than its claimed identity. Examples include substituting a process, a file, website or a network address.</a:Value></a:KeyValueOfstringstring><a:KeyValueOfstringstring><a:Key>UserThreatDescription</a:
Download .txt
gitextract_b4wf3xca/

├── .clang-format
├── .config/
│   └── 1espt/
│       └── PipelineAutobaseliningConfig.yml
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── localization_suggestion.md
│   ├── policies/
│   │   └── resourceManagement.yml
│   ├── pull_request_template.md
│   └── workflows/
│       └── action-ci.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── NOTICE.txt
├── README.md
├── SECURITY.md
├── Tools/
│   ├── PGO/
│   │   ├── Microsoft.WindowsCalculator.PGO.nuspec
│   │   └── build/
│   │       └── native/
│   │           ├── Microsoft.WindowsCalculator.PGO.props
│   │           └── Microsoft.WindowsCalculator.PGO.targets
│   ├── Scripts/
│   │   └── clang-format/
│   │       ├── clang-format-all.ps1
│   │       └── clang-format-all.sh
│   └── ThreatModels/
│       └── Calculator.tm7
├── build/
│   ├── config/
│   │   └── PoliCheckExclusions.xml
│   ├── pipelines/
│   │   ├── azure-pipelines.ci-internal.yaml
│   │   ├── azure-pipelines.loc.yaml
│   │   ├── azure-pipelines.release.yaml
│   │   └── templates/
│   │       ├── build-single-architecture.yaml
│   │       ├── package-msixbundle.yaml
│   │       ├── release-store.yaml
│   │       ├── release-vpack.yaml
│   │       ├── run-ui-tests.yaml
│   │       └── run-unit-tests.yaml
│   └── scripts/
│       ├── CreateMsixBundleMapping.ps1
│       ├── SignTestApp.ps1
│       ├── TurnOffAnimationEffects.ps1
│       └── UpdateAppxManifestVersion.ps1
├── docs/
│   ├── ApplicationArchitecture.md
│   ├── ManualTests.md
│   ├── NewFeatureProcess.md
│   └── Roadmap.md
├── nuget.config
└── src/
    ├── CalcManager/
    │   ├── CEngine/
    │   │   ├── CalcInput.cpp
    │   │   ├── CalcUtils.cpp
    │   │   ├── History.cpp
    │   │   ├── Number.cpp
    │   │   ├── Rational.cpp
    │   │   ├── RationalMath.cpp
    │   │   ├── calc.cpp
    │   │   ├── scicomm.cpp
    │   │   ├── scidisp.cpp
    │   │   ├── scifunc.cpp
    │   │   ├── scioper.cpp
    │   │   └── sciset.cpp
    │   ├── CalcManager.vcxproj
    │   ├── CalcManager.vcxproj.filters
    │   ├── CalculatorHistory.cpp
    │   ├── CalculatorHistory.h
    │   ├── CalculatorManager.cpp
    │   ├── CalculatorManager.h
    │   ├── CalculatorResource.h
    │   ├── CalculatorVector.h
    │   ├── Command.h
    │   ├── ExpressionCommand.cpp
    │   ├── ExpressionCommand.h
    │   ├── ExpressionCommandInterface.h
    │   ├── Header Files/
    │   │   ├── CCommand.h
    │   │   ├── CalcEngine.h
    │   │   ├── CalcInput.h
    │   │   ├── CalcUtils.h
    │   │   ├── EngineStrings.h
    │   │   ├── History.h
    │   │   ├── ICalcDisplay.h
    │   │   ├── IHistoryDisplay.h
    │   │   ├── Number.h
    │   │   ├── RadixType.h
    │   │   ├── Rational.h
    │   │   └── RationalMath.h
    │   ├── NumberFormattingUtils.cpp
    │   ├── NumberFormattingUtils.h
    │   ├── Ratpack/
    │   │   ├── CalcErr.h
    │   │   ├── basex.cpp
    │   │   ├── conv.cpp
    │   │   ├── exp.cpp
    │   │   ├── fact.cpp
    │   │   ├── itrans.cpp
    │   │   ├── itransh.cpp
    │   │   ├── logic.cpp
    │   │   ├── num.cpp
    │   │   ├── rat.cpp
    │   │   ├── ratconst.h
    │   │   ├── ratpak.h
    │   │   ├── support.cpp
    │   │   ├── trans.cpp
    │   │   └── transh.cpp
    │   ├── UnitConverter.cpp
    │   ├── UnitConverter.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   ├── ratpak.natvis
    │   ├── sal_cross_platform.h
    │   └── winerror_cross_platform.h
    ├── CalcViewModel/
    │   ├── CalcViewModel.rc
    │   ├── CalcViewModel.vcxproj
    │   ├── CalcViewModel.vcxproj.filters
    │   ├── Common/
    │   │   ├── AlwaysSelectedCollectionView.h
    │   │   ├── AppResourceProvider.cpp
    │   │   ├── AppResourceProvider.h
    │   │   ├── Automation/
    │   │   │   ├── INarratorAnnouncementHost.h
    │   │   │   ├── LiveRegionHost.cpp
    │   │   │   ├── LiveRegionHost.h
    │   │   │   ├── NarratorAnnouncement.cpp
    │   │   │   ├── NarratorAnnouncement.h
    │   │   │   ├── NarratorAnnouncementHostFactory.cpp
    │   │   │   ├── NarratorAnnouncementHostFactory.h
    │   │   │   ├── NarratorNotifier.cpp
    │   │   │   ├── NarratorNotifier.h
    │   │   │   ├── NotificationHost.cpp
    │   │   │   └── NotificationHost.h
    │   │   ├── BitLength.h
    │   │   ├── CalculatorButtonPressedEventArgs.cpp
    │   │   ├── CalculatorButtonPressedEventArgs.h
    │   │   ├── CalculatorButtonUser.h
    │   │   ├── CalculatorDisplay.cpp
    │   │   ├── CalculatorDisplay.h
    │   │   ├── CopyPasteManager.cpp
    │   │   ├── CopyPasteManager.h
    │   │   ├── DateCalculator.cpp
    │   │   ├── DateCalculator.h
    │   │   ├── DelegateCommand.h
    │   │   ├── DisplayExpressionToken.h
    │   │   ├── EngineResourceProvider.cpp
    │   │   ├── EngineResourceProvider.h
    │   │   ├── ExpressionCommandDeserializer.cpp
    │   │   ├── ExpressionCommandDeserializer.h
    │   │   ├── ExpressionCommandSerializer.cpp
    │   │   ├── ExpressionCommandSerializer.h
    │   │   ├── LocalizationService.cpp
    │   │   ├── LocalizationService.h
    │   │   ├── LocalizationSettings.h
    │   │   ├── LocalizationStringUtil.h
    │   │   ├── MyVirtualKey.h
    │   │   ├── NavCategory.cpp
    │   │   ├── NavCategory.h
    │   │   ├── NetworkManager.cpp
    │   │   ├── NetworkManager.h
    │   │   ├── NumberBase.h
    │   │   ├── RadixType.cpp
    │   │   ├── RadixType.h
    │   │   ├── TraceLogger.cpp
    │   │   ├── TraceLogger.h
    │   │   ├── Utils.cpp
    │   │   └── Utils.h
    │   ├── DataLoaders/
    │   │   ├── CurrencyDataLoader.cpp
    │   │   ├── CurrencyDataLoader.h
    │   │   ├── CurrencyHttpClient.cpp
    │   │   ├── CurrencyHttpClient.h
    │   │   ├── DefaultFromToCurrency.json
    │   │   ├── UnitConverterDataConstants.h
    │   │   ├── UnitConverterDataLoader.cpp
    │   │   └── UnitConverterDataLoader.h
    │   ├── DateCalculatorViewModel.cpp
    │   ├── DateCalculatorViewModel.h
    │   ├── GraphingCalculator/
    │   │   ├── EquationViewModel.cpp
    │   │   ├── EquationViewModel.h
    │   │   ├── GraphingCalculatorViewModel.cpp
    │   │   ├── GraphingCalculatorViewModel.h
    │   │   ├── GraphingSettingsViewModel.cpp
    │   │   ├── GraphingSettingsViewModel.h
    │   │   └── VariableViewModel.h
    │   ├── GraphingCalculatorEnums.h
    │   ├── HistoryItemViewModel.cpp
    │   ├── HistoryItemViewModel.h
    │   ├── HistoryViewModel.cpp
    │   ├── HistoryViewModel.h
    │   ├── MemoryItemViewModel.cpp
    │   ├── MemoryItemViewModel.h
    │   ├── Snapshots.cpp
    │   ├── Snapshots.h
    │   ├── StandardCalculatorViewModel.cpp
    │   ├── StandardCalculatorViewModel.h
    │   ├── UnitConverterViewModel.cpp
    │   ├── UnitConverterViewModel.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── targetver.h
    ├── CalcViewModelCopyForUT/
    │   ├── CalcViewModelCopyForUT.vcxproj
    │   ├── CalcViewModelCopyForUT.vcxproj.filters
    │   └── DataLoaders/
    │       └── CurrencyHttpClient.cpp
    ├── Calculator/
    │   ├── App.xaml
    │   ├── App.xaml.cs
    │   ├── Calculator.csproj
    │   ├── Common/
    │   │   ├── AlwaysSelectedCollectionView.cs
    │   │   ├── AppLifecycleLogger.cs
    │   │   ├── KeyboardShortcutManager.cs
    │   │   ├── LaunchArguments.cs
    │   │   └── ValidatingConverters.cs
    │   ├── Controls/
    │   │   ├── CalculationResult.cs
    │   │   ├── CalculationResultAutomationPeer.cs
    │   │   ├── CalculatorButton.cs
    │   │   ├── EquationTextBox.cs
    │   │   ├── FlipButtons.cs
    │   │   ├── HorizontalNoOverflowStackPanel.cs
    │   │   ├── MathRichEditBox.cs
    │   │   ├── OperatorPanelButton.cs
    │   │   ├── OperatorPanelListView.cs
    │   │   ├── OverflowTextBlock.cs
    │   │   ├── OverflowTextBlockAutomationPeer.cs
    │   │   ├── RadixButton.cs
    │   │   └── SupplementaryItemsControl.cs
    │   ├── Converters/
    │   │   ├── BooleanNegationConverter.cs
    │   │   ├── BooleanToVisibilityConverter.cs
    │   │   ├── ExpressionItemTemplateSelector.cs
    │   │   ├── ItemSizeToVisibilityConverter.cs
    │   │   ├── RadixToStringConverter.cs
    │   │   └── VisibilityNegationConverter.cs
    │   ├── DesignData/
    │   │   ├── DesignAppViewModel.cpp
    │   │   ├── DesignAppViewModel.h
    │   │   ├── DesignStandardCalculatorViewModel.cpp
    │   │   ├── DesignStandardCalculatorViewModel.h
    │   │   ├── DesignUnitConverterViewModel.cpp
    │   │   └── DesignUnitConverterViewModel.h
    │   ├── Package.Release.appxmanifest
    │   ├── Package.appxmanifest
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── Default.rd.xml
    │   ├── Resources/
    │   │   ├── af-ZA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── am-ET/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ar-SA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── az-Latn-AZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── bg-BG/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ca-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── cs-CZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── da-DK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── de-DE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── el-GR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── en-GB/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── en-US/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── es-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── es-MX/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── et-EE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── eu-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fa-IR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fi-FI/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fil-PH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fr-CA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── fr-FR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── gl-ES/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── he-IL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hi-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hr-HR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── hu-HU/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── id-ID/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── is-IS/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── it-IT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ja-JP/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── kk-KZ/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── km-KH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── kn-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ko-KR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lo-LA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lt-LT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── lv-LV/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── mk-MK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ml-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ms-MY/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── nb-NO/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── nl-NL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pl-PL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pt-BR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── pt-PT/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ro-RO/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ru-RU/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sk-SK/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sl-SI/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sq-AL/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sr-Latn-RS/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── sv-SE/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── ta-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── te-IN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── th-TH/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── tr-TR/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── uk-UA/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── vi-VN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   ├── zh-CN/
    │   │   │   ├── CEngineStrings.resw
    │   │   │   └── Resources.resw
    │   │   └── zh-TW/
    │   │       ├── CEngineStrings.resw
    │   │       └── Resources.resw
    │   ├── Selectors/
    │   │   ├── KeyGraphFeaturesTemplateSelector.cs
    │   │   └── NavViewMenuItemTemplateSelector.cs
    │   ├── Utils/
    │   │   ├── DeflateUtils.cs
    │   │   ├── DelegateCommandUtils.cs
    │   │   ├── DispatcherTimerDelayer.cs
    │   │   ├── JsonUtils.cs
    │   │   ├── ResourceString.cs
    │   │   ├── ResourceVirtualKey.cs
    │   │   ├── ThemeHelper.cs
    │   │   └── VisualTree.cs
    │   └── Views/
    │       ├── Calculator.xaml
    │       ├── Calculator.xaml.cs
    │       ├── CalculatorProgrammerBitFlipPanel.xaml
    │       ├── CalculatorProgrammerBitFlipPanel.xaml.cs
    │       ├── CalculatorProgrammerDisplayPanel.xaml
    │       ├── CalculatorProgrammerDisplayPanel.xaml.cs
    │       ├── CalculatorProgrammerOperators.xaml
    │       ├── CalculatorProgrammerOperators.xaml.cs
    │       ├── CalculatorProgrammerRadixOperators.xaml
    │       ├── CalculatorProgrammerRadixOperators.xaml.cs
    │       ├── CalculatorScientificAngleButtons.xaml
    │       ├── CalculatorScientificAngleButtons.xaml.cs
    │       ├── CalculatorScientificOperators.xaml
    │       ├── CalculatorScientificOperators.xaml.cs
    │       ├── CalculatorStandardOperators.xaml
    │       ├── CalculatorStandardOperators.xaml.cs
    │       ├── DateCalculator.xaml
    │       ├── DateCalculator.xaml.cs
    │       ├── DelighterUnitStyles.xaml
    │       ├── GraphingCalculator/
    │       │   ├── EquationInputArea.xaml
    │       │   ├── EquationInputArea.xaml.cs
    │       │   ├── EquationStylePanelControl.xaml
    │       │   ├── EquationStylePanelControl.xaml.cs
    │       │   ├── GraphingCalculator.xaml
    │       │   ├── GraphingCalculator.xaml.cs
    │       │   ├── GraphingNumPad.xaml
    │       │   ├── GraphingNumPad.xaml.cs
    │       │   ├── GraphingSettings.xaml
    │       │   ├── GraphingSettings.xaml.cs
    │       │   ├── KeyGraphFeaturesPanel.xaml
    │       │   └── KeyGraphFeaturesPanel.xaml.cs
    │       ├── HistoryList.xaml
    │       ├── HistoryList.xaml.cs
    │       ├── MainPage.xaml
    │       ├── MainPage.xaml.cs
    │       ├── Memory.xaml
    │       ├── Memory.xaml.cs
    │       ├── MemoryListItem.xaml
    │       ├── MemoryListItem.xaml.cs
    │       ├── NumberPad.xaml
    │       ├── NumberPad.xaml.cs
    │       ├── OperatorsPanel.xaml
    │       ├── OperatorsPanel.xaml.cs
    │       ├── Settings.xaml
    │       ├── Settings.xaml.cs
    │       ├── StateTriggers/
    │       │   ├── AspectRatioTrigger.cs
    │       │   └── ControlSizeTrigger.cs
    │       ├── SupplementaryResults.xaml
    │       ├── SupplementaryResults.xaml.cs
    │       ├── TitleBar.xaml
    │       ├── TitleBar.xaml.cs
    │       ├── UnitConverter.xaml
    │       └── UnitConverter.xaml.cs
    ├── Calculator.ManagedViewModels/
    │   ├── ApplicationViewModel.cs
    │   ├── Calculator.ManagedViewModels.csproj
    │   ├── Properties/
    │   │   ├── AssemblyInfo.cs
    │   │   └── Calculator.ManagedViewModels.rd.xml
    │   └── RelayCommand.cs
    ├── Calculator.sln
    ├── CalculatorUITestFramework/
    │   ├── CalculatorApp.cs
    │   ├── CalculatorDriver.cs
    │   ├── CalculatorResults.cs
    │   ├── CalculatorUITestFramework.csproj
    │   ├── HistoryItem.cs
    │   ├── HistoryPanel.cs
    │   ├── MemoryItem.cs
    │   ├── MemoryPanel.cs
    │   ├── NavigationMenu.cs
    │   ├── NumberPad.cs
    │   ├── ProgrammerCalculatorPage.cs
    │   ├── ProgrammerOperatorsPanel.cs
    │   ├── ScientificCalculatorPage.cs
    │   ├── ScientificOperatorsPanel.cs
    │   ├── StandardAoTCalculatorPage.cs
    │   ├── StandardCalculatorPage.cs
    │   ├── StandardOperatorsPanel.cs
    │   ├── UnitConverterOperatorsPanel.cs
    │   ├── UnitConverterPage.cs
    │   ├── UnitConverterResults.cs
    │   ├── WinAppDriverLocalServer.cs
    │   ├── WindowsDriverExtensions.cs
    │   └── WindowsElementExtensions.cs
    ├── CalculatorUITests/
    │   ├── CalculatorUITests.ci-internal.runsettings
    │   ├── CalculatorUITests.ci.runsettings
    │   ├── CalculatorUITests.csproj
    │   ├── CalculatorUITests.release.runsettings
    │   ├── CurrencyConverterFunctionalTests.cs
    │   ├── HistoryFunctionalTests.cs
    │   ├── MemoryFunctionalTests.cs
    │   ├── ProgrammerModeFunctionalTests.cs
    │   ├── ScientificModeFunctionalTests.cs
    │   └── StandardModeFunctionalTests.cs
    ├── CalculatorUnitTests/
    │   ├── AsyncHelper.cpp
    │   ├── AsyncHelper.h
    │   ├── CalcEngineTests.cpp
    │   ├── CalcInputTest.cpp
    │   ├── CalculatorManagerTest.cpp
    │   ├── CalculatorUnitTests.rc
    │   ├── CalculatorUnitTests.vcxproj
    │   ├── CalculatorUnitTests.vcxproj.filters
    │   ├── CopyPasteManagerTest.cpp
    │   ├── CurrencyConverterUnitTests.cpp
    │   ├── DateCalculatorUnitTests.cpp
    │   ├── DateUtils.h
    │   ├── Helpers.h
    │   ├── HistoryTests.cpp
    │   ├── LocalizationServiceUnitTests.cpp
    │   ├── LocalizationSettingsUnitTests.cpp
    │   ├── Module.cpp
    │   ├── MultiWindowUnitTests.cpp
    │   ├── NarratorAnnouncementUnitTests.cpp
    │   ├── NavCategoryUnitTests.cpp
    │   ├── Package.appxmanifest
    │   ├── RationalTest.cpp
    │   ├── StandardViewModelUnitTests.cpp
    │   ├── Test.resw
    │   ├── UnitConverterTest.cpp
    │   ├── UnitConverterViewModelUnitTests.cpp
    │   ├── UnitConverterViewModelUnitTests.h
    │   ├── UnitTestApp.rd.xml
    │   ├── UnitTestApp.xaml
    │   ├── UnitTestApp.xaml.cpp
    │   ├── UnitTestApp.xaml.h
    │   ├── UtilsTests.cpp
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── resource.h
    ├── GraphControl/
    │   ├── Control/
    │   │   ├── Grapher.cpp
    │   │   └── Grapher.h
    │   ├── DirectX/
    │   │   ├── DeviceResources.cpp
    │   │   ├── DeviceResources.h
    │   │   ├── DirectXHelper.h
    │   │   ├── NearestPointRenderer.cpp
    │   │   ├── NearestPointRenderer.h
    │   │   ├── RenderMain.cpp
    │   │   └── RenderMain.h
    │   ├── GraphControl.rc
    │   ├── GraphControl.vcxproj
    │   ├── GraphControl.vcxproj.filters
    │   ├── Logger/
    │   │   ├── TraceLogger.cpp
    │   │   └── TraceLogger.h
    │   ├── Models/
    │   │   ├── Equation.cpp
    │   │   ├── Equation.h
    │   │   ├── EquationCollection.h
    │   │   ├── KeyGraphFeaturesInfo.cpp
    │   │   ├── KeyGraphFeaturesInfo.h
    │   │   └── Variable.h
    │   ├── Themes/
    │   │   └── generic.xaml
    │   ├── Utils.h
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── winrtHeaders.h
    ├── GraphingImpl/
    │   ├── GraphingImpl.rc
    │   ├── GraphingImpl.vcxproj
    │   ├── GraphingImpl.vcxproj.filters
    │   ├── Mocks/
    │   │   ├── Bitmap.h
    │   │   ├── Graph.h
    │   │   ├── GraphRenderer.h
    │   │   ├── GraphingOptions.h
    │   │   ├── MathSolver.cpp
    │   │   └── MathSolver.h
    │   ├── dllmain.cpp
    │   ├── pch.cpp
    │   ├── pch.h
    │   └── targetver.h
    ├── GraphingInterfaces/
    │   ├── Common.h
    │   ├── GraphingEnums.h
    │   ├── IBitmap.h
    │   ├── IEquation.h
    │   ├── IEquationOptions.h
    │   ├── IGraph.h
    │   ├── IGraphAnalyzer.h
    │   ├── IGraphRenderer.h
    │   ├── IGraphingOptions.h
    │   └── IMathSolver.h
    ├── Settings.XamlStyler
    ├── TraceLogging/
    │   ├── TraceLogging.rc
    │   ├── TraceLogging.vcxproj
    │   ├── TraceLogging.vcxproj.filters
    │   ├── TraceLoggingCommon.cpp
    │   ├── TraceLoggingCommon.h
    │   ├── pch.cpp
    │   └── pch.h
    └── build/
        ├── Calculator.StampAssemblyInfo.targets
        └── appversion.rc
Download .txt
SYMBOL INDEX (670 symbols across 142 files)

FILE: src/CalcManager/CEngine/CalcInput.cpp
  function wstring (line 273) | wstring CalcInput::ToString(uint32_t radix)
  function Rational (line 327) | Rational CalcInput::ToRational(uint32_t radix, int32_t precision)

FILE: src/CalcManager/CEngine/CalcUtils.cpp
  function IsOpInRange (line 7) | bool IsOpInRange(OpCode op, uint32_t x, uint32_t y)
  function IsBinOpCode (line 12) | bool IsBinOpCode(OpCode opCode)
  function IsUnaryOpCode (line 19) | bool IsUnaryOpCode(OpCode opCode)
  function IsDigitOpCode (line 24) | bool IsDigitOpCode(OpCode opCode)
  function IsGuiSettingOpCode (line 34) | bool IsGuiSettingOpCode(OpCode opCode)

FILE: src/CalcManager/CEngine/History.cpp
  function Truncate (line 16) | static void Truncate(vector<T>& v, unsigned int index)

FILE: src/CalcManager/CEngine/Number.cpp
  type CalcEngine (line 8) | namespace CalcEngine
    function PNUMBER (line 30) | PNUMBER Number::ToPNUMBER() const

FILE: src/CalcManager/CEngine/Rational.cpp
  type CalcEngine (line 7) | namespace CalcEngine
    function PRAT (line 70) | PRAT Rational::ToPRAT() const
    function Number (line 80) | Number const& Rational::P() const
    function Number (line 85) | Number const& Rational::Q() const
    function Rational (line 90) | Rational Rational::operator-() const
    function Rational (line 95) | Rational& Rational::operator+=(Rational const& rhs)
    function Rational (line 118) | Rational& Rational::operator-=(Rational const& rhs)
    function Rational (line 141) | Rational& Rational::operator*=(Rational const& rhs)
    function Rational (line 164) | Rational& Rational::operator/=(Rational const& rhs)
    function Rational (line 194) | Rational& Rational::operator%=(Rational const& rhs)
    function Rational (line 217) | Rational& Rational::operator<<=(Rational const& rhs)
    function Rational (line 240) | Rational& Rational::operator>>=(Rational const& rhs)
    function Rational (line 263) | Rational& Rational::operator&=(Rational const& rhs)
    function Rational (line 286) | Rational& Rational::operator|=(Rational const& rhs)
    function Rational (line 308) | Rational& Rational::operator^=(Rational const& rhs)
    function Rational (line 330) | Rational operator+(Rational lhs, Rational const& rhs)
    function Rational (line 336) | Rational operator-(Rational lhs, Rational const& rhs)
    function Rational (line 342) | Rational operator*(Rational lhs, Rational const& rhs)
    function Rational (line 348) | Rational operator/(Rational lhs, Rational const& rhs)
    function Rational (line 361) | Rational operator%(Rational lhs, Rational const& rhs)
    function Rational (line 367) | Rational operator<<(Rational lhs, Rational const& rhs)
    function Rational (line 373) | Rational operator>>(Rational lhs, Rational const& rhs)
    function Rational (line 379) | Rational operator&(Rational lhs, Rational const& rhs)
    function Rational (line 385) | Rational operator|(Rational lhs, Rational const& rhs)
    function Rational (line 391) | Rational operator^(Rational lhs, Rational const& rhs)
    function wstring (line 463) | wstring Rational::ToString(uint32_t radix, NumberFormat fmt, int32_t p...

FILE: src/CalcManager/CEngine/RationalMath.cpp
  function Rational (line 9) | Rational RationalMath::Frac(Rational const& rat)
  function Rational (line 28) | Rational RationalMath::Integer(Rational const& rat)
  function Rational (line 47) | Rational RationalMath::Pow(Rational const& base, Rational const& pow)
  function Rational (line 70) | Rational RationalMath::Root(Rational const& base, Rational const& root)
  function Rational (line 75) | Rational RationalMath::Fact(Rational const& rat)
  function Rational (line 95) | Rational RationalMath::Exp(Rational const& rat)
  function Rational (line 115) | Rational RationalMath::Log(Rational const& rat)
  function Rational (line 135) | Rational RationalMath::Log10(Rational const& rat)
  function Rational (line 140) | Rational RationalMath::Invert(Rational const& rat)
  function Rational (line 145) | Rational RationalMath::Abs(Rational const& rat)
  function Rational (line 150) | Rational RationalMath::Sin(Rational const& rat, AngleType angletype)
  function Rational (line 170) | Rational RationalMath::Cos(Rational const& rat, AngleType angletype)
  function Rational (line 190) | Rational RationalMath::Tan(Rational const& rat, AngleType angletype)
  function Rational (line 210) | Rational RationalMath::ASin(Rational const& rat, AngleType angletype)
  function Rational (line 230) | Rational RationalMath::ACos(Rational const& rat, AngleType angletype)
  function Rational (line 250) | Rational RationalMath::ATan(Rational const& rat, AngleType angletype)
  function Rational (line 270) | Rational RationalMath::Sinh(Rational const& rat)
  function Rational (line 290) | Rational RationalMath::Cosh(Rational const& rat)
  function Rational (line 310) | Rational RationalMath::Tanh(Rational const& rat)
  function Rational (line 330) | Rational RationalMath::ASinh(Rational const& rat)
  function Rational (line 350) | Rational RationalMath::ACosh(Rational const& rat)
  function Rational (line 370) | Rational RationalMath::ATanh(Rational const& rat)
  function Rational (line 398) | Rational RationalMath::Mod(Rational const& a, Rational const& b)

FILE: src/CalcManager/CEngine/calc.cpp
  function wchar_t (line 201) | wchar_t CCalcEngine::DecimalSeparator() const

FILE: src/CalcManager/CEngine/scicomm.cpp
  function NPrecedenceOfOp (line 31) | int NPrecedenceOfOp(int nopCode)
  type FunctionNameElement (line 991) | struct FunctionNameElement
  function wstring_view (line 1049) | wstring_view CCalcEngine::OpCodeToUnaryString(int nOpCode, bool fInv, An...
  function wstring_view (line 1102) | wstring_view CCalcEngine::OpCodeToBinaryString(int nOpCode, bool isInteg...
  function wstring (line 1138) | wstring CCalcEngine::GetCurrentResultForRadix(uint32_t radix, int32_t pr...
  function wstring (line 1161) | wstring CCalcEngine::GetStringForDisplay(Rational const& rat, uint32_t r...

FILE: src/CalcManager/CEngine/scidisp.cpp
  function wstring (line 246) | wstring CCalcEngine::GroupDigitsPerRadix(wstring_view numberString, uint...
  function wstring (line 286) | wstring CCalcEngine::GroupDigits(wstring_view delimiter, vector<uint32_t...

FILE: src/CalcManager/CalculatorHistory.cpp
  function wstring (line 12) | static wstring GetGeneratedExpression(const vector<pair<wstring, int>>& ...

FILE: src/CalcManager/CalculatorHistory.h
  function namespace (line 8) | namespace CalculationManager

FILE: src/CalcManager/CalculatorManager.cpp
  type CalculationManager (line 18) | namespace CalculationManager
    function wstring (line 566) | wstring CalculatorManager::GetResultForRadix(uint32_t radix, int32_t p...
    function wchar_t (line 581) | wchar_t CalculatorManager::DecimalSeparator()

FILE: src/CalcManager/CalculatorManager.h
  type class (line 13) | enum class
  type HISTORYITEM (line 14) | struct HISTORYITEM
  type class (line 16) | enum class
  type class (line 22) | enum class
  function MemoryCommand (line 34) | enum class MemoryCommand

FILE: src/CalcManager/CalculatorResource.h
  function namespace (line 8) | namespace CalculationManager

FILE: src/CalcManager/CalculatorVector.h
  function ResultCode (line 30) | ResultCode GetSize(_Out_ unsigned int* size)
  function ResultCode (line 36) | ResultCode SetAt(_In_ unsigned int index, _In_opt_ TType item)
  function ResultCode (line 49) | ResultCode RemoveAt(_In_ unsigned int index)
  function ResultCode (line 62) | ResultCode InsertAt(_In_ unsigned int index, _In_ TType item)
  function ResultCode (line 76) | ResultCode Truncate(_In_ unsigned int index)
  function ResultCode (line 90) | ResultCode Append(_In_opt_ TType item)
  function ResultCode (line 103) | ResultCode RemoveAtEnd()
  function ResultCode (line 109) | ResultCode Clear()
  function ResultCode (line 115) | ResultCode GetString(_Out_ std::wstring* expression)
  function ResultCode (line 147) | ResultCode GetExpressionSuffix(_Out_ std::wstring* suffix)

FILE: src/CalcManager/Command.h
  function Command (line 8) | enum class Command
  function Command (line 31) | enum class Command
  type class (line 53) | enum class
  function Command (line 61) | enum class Command

FILE: src/CalcManager/ExpressionCommand.cpp
  function wstring (line 213) | const wstring& COpndCommand::GetToken(wchar_t decimalSymbol)
  function wstring (line 276) | wstring COpndCommand::GetString(uint32_t radix, int32_t precision)

FILE: src/CalcManager/ExpressionCommand.h
  function std (line 26) | const std::shared_ptr<std::vector<int>>& GetCommands() const override;
  function std (line 55) | const std::shared_ptr<std::vector<int>>& GetCommands() const override;

FILE: src/CalcManager/ExpressionCommandInterface.h
  function class (line 13) | class IExpressionCommand
  function class (line 20) | class IOperatorCommand : public IExpressionCommand
  function class (line 26) | class IUnaryCommand : public IOperatorCommand
  function class (line 33) | class IBinaryCommand : public IOperatorCommand
  function class (line 40) | class IOpndCommand : public IExpressionCommand

FILE: src/CalcManager/Header Files/CalcEngine.h
  function NUM_WIDTH (line 34) | enum class NUM_WIDTH

FILE: src/CalcManager/Header Files/CalcInput.h
  function namespace (line 11) | namespace CalcEngine

FILE: src/CalcManager/Header Files/History.h
  function class (line 20) | class CHistoryCollector

FILE: src/CalcManager/Header Files/ICalcDisplay.h
  function class (line 9) | class ICalcDisplay

FILE: src/CalcManager/Header Files/IHistoryDisplay.h
  function class (line 9) | class IHistoryDisplay

FILE: src/CalcManager/Header Files/Number.h
  function namespace (line 9) | namespace CalcEngine

FILE: src/CalcManager/Header Files/RadixType.h
  function RadixType (line 7) | enum class RadixType

FILE: src/CalcManager/Header Files/Rational.h
  function namespace (line 8) | namespace CalcEngine

FILE: src/CalcManager/Header Files/RationalMath.h
  function namespace (line 8) | namespace CalcEngine::RationalMath

FILE: src/CalcManager/NumberFormattingUtils.cpp
  type UnitConversionManager::NumberFormattingUtils (line 6) | namespace UnitConversionManager::NumberFormattingUtils
    function TrimTrailingZeros (line 12) | void TrimTrailingZeros(_Inout_ wstring& number)
    function GetNumberDigits (line 33) | unsigned int GetNumberDigits(wstring value)
    function GetNumberDigitsWholeNumberPart (line 51) | unsigned int GetNumberDigitsWholeNumberPart(double value)
    function wstring (line 61) | wstring RoundSignificantDigits(double num, unsigned int numSignificant)
    function wstring (line 74) | wstring ToScientificNumber(double number)

FILE: src/CalcManager/NumberFormattingUtils.h
  function namespace (line 9) | namespace UnitConversionManager::NumberFormattingUtils

FILE: src/CalcManager/Ratpack/basex.cpp
  function mulnumx (line 37) | void mulnumx(_Inout_ PNUMBER* pa, _In_ PNUMBER b)
  function _mulnumx (line 79) | void _mulnumx(PNUMBER* pa, PNUMBER b)
  function numpowi32x (line 175) | void numpowi32x(_Inout_ PNUMBER* proot, int32_t power)
  function divnumx (line 218) | void divnumx(_Inout_ PNUMBER* pa, _In_ PNUMBER b, int32_t precision)
  function _divnumx (line 257) | void _divnumx(PNUMBER* pa, PNUMBER b, int32_t precision)

FILE: src/CalcManager/Ratpack/conv.cpp
  function Calc_ULongAdd (line 67) | int32_t Calc_ULongAdd(_In_ uint32_t ulAugend, _In_ uint32_t ulAddend, _O...
  function Calc_ULongLongToULong (line 81) | int32_t Calc_ULongLongToULong(_In_ uint64_t ullOperand, _Out_ uint32_t* ...
  function Calc_ULongMult (line 95) | int32_t Calc_ULongMult(_In_ uint32_t ulMultiplicand, _In_ uint32_t ulMul...
  function SetDecimalSeparator (line 106) | void SetDecimalSeparator(wchar_t decimalSeparator)
  function _dupnum (line 131) | void _dupnum(_In_ PNUMBER dest, _In_ const NUMBER* const src)
  function _destroynum (line 148) | void _destroynum(_Frees_ptr_opt_ PNUMBER pnum)
  function _destroyrat (line 170) | void _destroyrat(_Frees_ptr_opt_ PRAT prat)
  function PNUMBER (line 193) | PNUMBER _createnum(_In_ uint32_t size)
  function PRAT (line 230) | PRAT _createrat(void)
  function PRAT (line 261) | PRAT numtorat(_In_ PNUMBER pin, uint32_t radix)
  function PNUMBER (line 303) | PNUMBER nRadixxtonum(_In_ PNUMBER a, uint32_t radix, int32_t precision)
  function PNUMBER (line 357) | PNUMBER numtonRadixx(_In_ PNUMBER a, uint32_t radix)
  function PRAT (line 411) | PRAT StringToRat(bool mantissaIsNegative, wstring_view mantissa, bool ex...
  function wchar_t (line 600) | wchar_t NormalizeCharDigit(wchar_t c, uint32_t radix)
  function PNUMBER (line 612) | PNUMBER StringToNumber(wstring_view numberString, uint32_t radix, int32_...
  function PRAT (line 758) | PRAT i32torat(int32_t ini32)
  function PRAT (line 782) | PRAT Ui32torat(uint32_t inui32)
  function PNUMBER (line 805) | PNUMBER i32tonum(int32_t ini32, uint32_t radix)
  function PNUMBER (line 849) | PNUMBER Ui32tonum(uint32_t ini32, uint32_t radix)
  function rattoi32 (line 884) | int32_t rattoi32(_In_ PRAT prat, uint32_t radix, int32_t precision)
  function rattoUi32 (line 919) | uint32_t rattoUi32(_In_ PRAT prat, uint32_t radix, int32_t precision)
  function rattoUi64 (line 956) | uint64_t rattoUi64(_In_ PRAT prat, uint32_t radix, int32_t precision)
  function numtoi32 (line 991) | int32_t numtoi32(_In_ PNUMBER pnum, uint32_t radix)
  function stripzeroesnum (line 1026) | bool stripzeroesnum(_Inout_ PNUMBER pnum, int32_t starting)
  function wstring (line 1076) | wstring NumberToString(_Inout_ PNUMBER& pnum, NumberFormat format, uint3...
  function wstring (line 1286) | wstring RatToString(_Inout_ PRAT& prat, NumberFormat format, uint32_t ra...
  function PNUMBER (line 1296) | PNUMBER RatToNumber(_In_ PRAT prat, uint32_t radix, int32_t precision)
  function flatrat (line 1321) | void flatrat(_Inout_ PRAT& prat, uint32_t radix, int32_t precision)
  function PNUMBER (line 1351) | PNUMBER gcd(_In_ PNUMBER a, _In_ PNUMBER b)
  function PNUMBER (line 1404) | PNUMBER i32factnum(int32_t ini32, uint32_t radix)
  function PNUMBER (line 1434) | PNUMBER i32prodnum(int32_t start, int32_t stop, uint32_t radix)
  function numpowi32 (line 1469) | void numpowi32(_Inout_ PNUMBER* proot, int32_t power, uint32_t radix, in...
  function ratpowi32 (line 1500) | void ratpowi32(_Inout_ PRAT* proot, int32_t power, int32_t precision)

FILE: src/CalcManager/Ratpack/exp.cpp
  function _exprat (line 42) | void _exprat(_Inout_ PRAT* px, int32_t precision)
  function exprat (line 61) | void exprat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function __lograt (line 128) | void __lograt(PRAT* px, int32_t precision)
  function _lograt (line 155) | void _lograt(_Inout_ PRAT* px, int32_t precision)
  function lograt (line 223) | void lograt(_Inout_ PRAT* px, int32_t precision)
  function log10rat (line 235) | void log10rat(_Inout_ PRAT* px, int32_t precision)
  function IsEven (line 245) | bool IsEven(PRAT x, uint32_t radix, int32_t precision)
  function powrat (line 278) | void powrat(_Inout_ PRAT* px, _In_ PRAT y, uint32_t radix, int32_t preci...
  function powratNumeratorDenominator (line 305) | void powratNumeratorDenominator(_Inout_ PRAT* px, _In_ PRAT y, uint32_t ...
  function powratcomp (line 414) | void powratcomp(_Inout_ PRAT* px, _In_ PRAT y, uint32_t radix, int32_t p...

FILE: src/CalcManager/Ratpack/fact.cpp
  function _gamma (line 56) | void _gamma(PRAT* pn, uint32_t radix, int32_t precision)
  function factrat (line 187) | void factrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)

FILE: src/CalcManager/Ratpack/itrans.cpp
  function ascalerat (line 20) | void ascalerat(_Inout_ PRAT* pa, AngleType angletype, int32_t precision)
  function _asinrat (line 64) | void _asinrat(PRAT* px, int32_t precision)
  function asinanglerat (line 79) | void asinanglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix,...
  function asinrat (line 86) | void asinrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function acosanglerat (line 167) | void acosanglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix,...
  function _acosrat (line 174) | void _acosrat(PRAT* px, int32_t precision)
  function acosrat (line 193) | void acosrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function atananglerat (line 252) | void atananglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix,...
  function _atanrat (line 259) | void _atanrat(PRAT* px, int32_t precision)
  function atanrat (line 279) | void atanrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)

FILE: src/CalcManager/Ratpack/itransh.cpp
  function asinhrat (line 50) | void asinhrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function acoshrat (line 104) | void acoshrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function atanhrat (line 141) | void atanhrat(_Inout_ PRAT* px, int32_t precision)

FILE: src/CalcManager/Ratpack/logic.cpp
  function lshrat (line 20) | void lshrat(_Inout_ PRAT* pa, _In_ PRAT b, uint32_t radix, int32_t preci...
  function rshrat (line 42) | void rshrat(_Inout_ PRAT* pa, _In_ PRAT b, uint32_t radix, int32_t preci...
  function andrat (line 74) | void andrat(_Inout_ PRAT* pa, _In_ PRAT b, uint32_t radix, int32_t preci...
  function orrat (line 80) | void orrat(_Inout_ PRAT* pa, _In_ PRAT b, uint32_t radix, int32_t precis...
  function xorrat (line 86) | void xorrat(_Inout_ PRAT* pa, _In_ PRAT b, uint32_t radix, int32_t preci...
  function boolrat (line 104) | void boolrat(PRAT* pa, PRAT b, int func, uint32_t radix, int32_t precision)
  function boolnum (line 130) | void boolnum(PNUMBER* pa, PNUMBER b, int func)
  function remrat (line 192) | void remrat(_Inout_ PRAT* pa, _In_ PRAT b)
  function modrat (line 229) | void modrat(_Inout_ PRAT* pa, _In_ PRAT b)

FILE: src/CalcManager/Ratpack/num.cpp
  function addnum (line 46) | void addnum(_Inout_ PNUMBER* pa, _In_ PNUMBER b, uint32_t radix)
  function _addnum (line 62) | void _addnum(PNUMBER* pa, PNUMBER b, uint32_t radix)
  function mulnum (line 188) | void mulnum(_Inout_ PNUMBER* pa, _In_ PNUMBER b, uint32_t radix)
  function _mulnum (line 210) | void _mulnum(PNUMBER* pa, PNUMBER b, uint32_t radix)
  function remnum (line 304) | void remnum(_Inout_ PNUMBER* pa, _In_ PNUMBER b, uint32_t radix)
  function divnum (line 367) | void divnum(_Inout_ PNUMBER* pa, _In_ PNUMBER b, uint32_t radix, int32_t...
  function _divnum (line 381) | void _divnum(PNUMBER* pa, PNUMBER b, uint32_t radix, int32_t precision)
  function equnum (line 491) | bool equnum(_In_ PNUMBER a, _In_ PNUMBER b)
  function lessnum (line 557) | bool lessnum(_In_ PNUMBER a, _In_ PNUMBER b)
  function zernum (line 602) | bool zernum(_In_ PNUMBER a)

FILE: src/CalcManager/Ratpack/rat.cpp
  function gcdrat (line 40) | void gcdrat(_Inout_ PRAT* pa, int32_t precision)
  function fracrat (line 73) | void fracrat(_Inout_ PRAT* pa, uint32_t radix, int32_t precision)
  function mulrat (line 101) | void mulrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function divrat (line 135) | void divrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function subrat (line 188) | void subrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function _subrat (line 200) | void _subrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function addrat (line 224) | void addrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function _addrat (line 235) | void _addrat(_Inout_ PRAT* pa, _In_ PRAT b, int32_t precision)
  function rootrat (line 286) | void rootrat(_Inout_ PRAT* py, _In_ PRAT n, uint32_t radix, int32_t prec...
  function zerrat (line 311) | bool zerrat(_In_ PRAT a)
  function _snaprat (line 346) | void _snaprat(_Inout_ PRAT* pr, _In_ PRAT a, _In_opt_ PRAT b, int32_t pr...

FILE: src/CalcManager/Ratpack/ratpak.h
  type MANTTYPE (line 31) | typedef uint32_t MANTTYPE;
  type TWO_MANTTYPE (line 32) | typedef uint64_t TWO_MANTTYPE;
  type class (line 34) | enum class
  type class (line 41) | enum class
  type NUMBER (line 56) | typedef struct _number
  type RAT (line 76) | typedef struct _rat

FILE: src/CalcManager/Ratpack/support.cpp
  function ChangeConstants (line 133) | void ChangeConstants(uint32_t radix, int32_t precision)
  function intrat (line 293) | void intrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function rat_equ (line 331) | bool rat_equ(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function rat_ge (line 354) | bool rat_ge(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function rat_gt (line 378) | bool rat_gt(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function rat_le (line 402) | bool rat_le(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function rat_lt (line 426) | bool rat_lt(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function rat_neq (line 450) | bool rat_neq(_In_ PRAT a, _In_ PRAT b, int32_t precision)
  function scale (line 473) | void scale(_Inout_ PRAT* px, _In_ PRAT scalefact, uint32_t radix, int32_...
  function scale2pi (line 506) | void scale2pi(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function inbetween (line 549) | void inbetween(_In_ PRAT* px, _In_ PRAT range, int32_t precision)
  function _dumprawrat (line 578) | void _dumprawrat(_In_ const wchar_t* varname, _In_ PRAT rat, wostream& out)
  function _dumprawnum (line 596) | void _dumprawnum(_In_ const wchar_t* varname, _In_ PNUMBER num, wostream...
  function _readconstants (line 613) | void _readconstants(void)
  function trimit (line 677) | void trimit(_Inout_ PRAT* px, int32_t precision)

FILE: src/CalcManager/Ratpack/trans.cpp
  function scalerat (line 19) | void scalerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix, int...
  function _sinrat (line 66) | void _sinrat(PRAT* px, int32_t precision)
  function sinrat (line 95) | void sinrat(PRAT* px, uint32_t radix, int32_t precision)
  function sinanglerat (line 101) | void sinanglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix, ...
  function _cosrat (line 158) | void _cosrat(PRAT* px, uint32_t radix, int32_t precision)
  function cosrat (line 190) | void cosrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function cosanglerat (line 196) | void cosanglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix, ...
  function _tanrat (line 242) | void _tanrat(PRAT* px, uint32_t radix, int32_t precision)
  function tanrat (line 260) | void tanrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function tananglerat (line 266) | void tananglerat(_Inout_ PRAT* pa, AngleType angletype, uint32_t radix, ...

FILE: src/CalcManager/Ratpack/transh.cpp
  function IsValidForHypFunc (line 19) | bool IsValidForHypFunc(PRAT px, int32_t precision)
  function _sinhrat (line 67) | void _sinhrat(PRAT* px, int32_t precision)
  function sinhrat (line 91) | void sinhrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function _coshrat (line 146) | void _coshrat(PRAT* px, uint32_t radix, int32_t precision)
  function coshrat (line 172) | void coshrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)
  function tanhrat (line 214) | void tanhrat(_Inout_ PRAT* px, uint32_t radix, int32_t precision)

FILE: src/CalcManager/UnitConverter.cpp
  function CategorySelectionInitializer (line 100) | CategorySelectionInitializer UnitConverter::SetCurrentCategory(const Cat...
  function Category (line 134) | Category UnitConverter::GetCurrentCategory()
  function wstring (line 204) | wstring UnitConverter::CategoryToString(const Category& c, wstring_view ...
  function wstring (line 232) | wstring UnitConverter::UnitToString(const Unit& u, wstring_view delimiter)
  function Unit (line 248) | Unit UnitConverter::StringToUnit(wstring_view w)
  function Category (line 263) | Category UnitConverter::StringToCategory(wstring_view w)
  function wstring (line 314) | wstring UnitConverter::SaveUserPreferences()
  function wstring (line 330) | wstring UnitConverter::Quote(wstring_view s)
  function wstring (line 354) | wstring UnitConverter::Unquote(wstring_view s)

FILE: src/CalcManager/UnitConverter.h
  type class (line 14) | enum class
  function operator (line 64) | bool operator!=(const Unit& that) const
  function operator (line 69) | bool operator==(const Unit& that) const
  type Category (line 82) | struct Category
  function class (line 110) | class UnitHash
  type SuggestedValueIntermediate (line 119) | struct SuggestedValueIntermediate
  type ConversionData (line 126) | struct ConversionData
  type CurrencyStaticData (line 143) | struct CurrencyStaticData
  type CurrencyRatio (line 152) | struct CurrencyRatio
  function class (line 166) | class IViewModelCurrencyCallback
  function class (line 177) | class IConverterDataLoader
  function class (line 188) | class ICurrencyConverterDataLoader
  function class (line 203) | class IUnitConverterVMCallback
  function class (line 212) | class IUnitConverter

FILE: src/CalcViewModel/Common/AlwaysSelectedCollectionView.h
  function namespace (line 6) | namespace CalculatorApp
  function property (line 103) | property Platform::Object^ CurrentItem
  function property (line 115) | property int CurrentPosition
  function property (line 123) | property bool IsCurrentAfterLast
  function property (line 131) | property bool IsCurrentBeforeFirst
  function event (line 139) | event WF::EventHandler<Platform::Object^>^ CurrentChanged
  function event (line 150) | event Windows::UI::Xaml::Data::CurrentChangingEventHandler^ CurrentChanging
  function Size (line 216) | property unsigned int Size
  function event (line 225) | event Windows::Foundation::Collections::VectorChangedEventHandler<Platfo...
  function OnSourceBindableVectorChanged (line 245) | void OnSourceBindableVectorChanged(Windows::UI::Xaml::Interop::IBindable...

FILE: src/CalcViewModel/Common/AppResourceProvider.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/Automation/INarratorAnnouncementHost.h
  function namespace (line 12) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/Automation/LiveRegionHost.h
  function namespace (line 12) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp
  type CalculatorApp::ViewModel::Common::Automation (line 11) | namespace CalculatorApp::ViewModel::Common::Automation
    type CalculatorActivityIds (line 13) | namespace CalculatorActivityIds
  function AutomationNotificationKind (line 59) | AutomationNotificationKind NarratorAnnouncement::Kind::get()
  function AutomationNotificationProcessing (line 64) | AutomationNotificationProcessing NarratorAnnouncement::Processing::get()

FILE: src/CalcViewModel/Common/Automation/NarratorAnnouncement.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/Automation/NarratorAnnouncementHostFactory.h
  function namespace (line 12) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/Automation/NarratorNotifier.h
  function namespace (line 9) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/Automation/NotificationHost.h
  function namespace (line 11) | namespace CalculatorApp::ViewModel::Common::Automation

FILE: src/CalcViewModel/Common/BitLength.h
  function namespace (line 3) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/CalculatorButtonPressedEventArgs.cpp
  function NumbersAndOperatorsEnum (line 12) | NumbersAndOperatorsEnum CalculatorButtonPressedEventArgs::GetOperationFr...

FILE: src/CalcViewModel/Common/CalculatorButtonPressedEventArgs.h
  function namespace (line 9) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/CalculatorButtonUser.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/CalculatorDisplay.cpp
  type CalculatorApp::ViewModel::Common (line 17) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/CalculatorDisplay.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/CopyPasteManager.cpp
  function CopyPasteMaxOperandLengthAndValue (line 356) | CopyPasteMaxOperandLengthAndValue

FILE: src/CalcViewModel/Common/CopyPasteManager.h
  function namespace (line 11) | namespace CalculatorUnitTests
  function namespace (line 16) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/DateCalculator.cpp
  function DateTime (line 329) | DateTime DateCalculationEngine::AdjustCalendarDate(Windows::Foundation::...

FILE: src/CalcViewModel/Common/DateCalculator.h
  function namespace (line 20) | namespace DateCalculation

FILE: src/CalcViewModel/Common/DelegateCommand.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel
  function new (line 56) | new DelegateCommandHandler([weakTarget, function=std::forward<TFuncPtr>(...

FILE: src/CalcViewModel/Common/DisplayExpressionToken.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/EngineResourceProvider.cpp
  type CalculatorApp (line 13) | namespace CalculatorApp
    function wstring (line 20) | wstring EngineResourceProvider::GetCEngineString(wstring_view id)

FILE: src/CalcViewModel/Common/EngineResourceProvider.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/ExpressionCommandDeserializer.cpp
  function COpndCommand (line 36) | COpndCommand CommandDeserializer::DeserializeOperand()
  function CParentheses (line 54) | CParentheses CommandDeserializer::DeserializeParentheses()
  function CUnaryCommand (line 60) | CUnaryCommand CommandDeserializer::DeserializeUnary()
  function CBinaryCommand (line 77) | CBinaryCommand CommandDeserializer::DeserializeBinary()

FILE: src/CalcViewModel/Common/ExpressionCommandDeserializer.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/ExpressionCommandSerializer.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/LocalizationService.cpp
  function FlowDirection (line 178) | FlowDirection LocalizationService::GetFlowDirection()
  function FontWeight (line 232) | FontWeight LocalizationService::GetFontWeightOverride()

FILE: src/CalcViewModel/Common/LocalizationService.h
  function namespace (line 12) | namespace LocalizationServiceProperties

FILE: src/CalcViewModel/Common/LocalizationSettings.h
  function namespace (line 9) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/LocalizationStringUtil.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/MyVirtualKey.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/NavCategory.cpp
  function IsGraphingModeEnabled (line 54) | bool IsGraphingModeEnabled()
  function CategoryGroupType (line 397) | CategoryGroupType NavCategoryStates::GetGroupType(ViewMode mode)
  function ViewMode (line 468) | ViewMode NavCategoryStates::GetViewModeForVirtualKey(MyVirtualKey virtua...

FILE: src/CalcViewModel/Common/NavCategory.h
  function class (line 28) | class ViewMode

FILE: src/CalcViewModel/Common/NetworkManager.cpp
  function NetworkAccessBehavior (line 24) | NetworkAccessBehavior NetworkManager::GetNetworkAccessBehavior()
  function NetworkAccessBehavior (line 47) | NetworkAccessBehavior NetworkManager::ConvertCostInfoToBehavior(_In_ Con...

FILE: src/CalcViewModel/Common/NetworkManager.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/NumberBase.h
  function namespace (line 5) | namespace CalculatorApp::ViewModel::Common

FILE: src/CalcViewModel/Common/RadixType.h
  function namespace (line 6) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/Common/TraceLogger.cpp
  type CalculatorApp (line 22) | namespace CalculatorApp

FILE: src/CalcViewModel/Common/TraceLogger.h
  type ButtonLog (line 13) | struct ButtonLog
  function class (line 54) | class LineStyleType

FILE: src/CalcViewModel/Common/Utils.cpp
  function DateTime (line 78) | DateTime Utils::GetUniversalSystemTime()

FILE: src/CalcViewModel/Common/Utils.h
  function namespace (line 209) | namespace Utils
  function namespace (line 696) | namespace CalculatorApp

FILE: src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp
  function ParseLanguageCode (line 76) | std::optional<std::wstring> ParseLanguageCode(const wchar_t* bcp47)
  type CalculatorApp (line 135) | namespace CalculatorApp
    type ViewModel::DataLoaders (line 137) | namespace ViewModel::DataLoaders
      type UnitConverterResourceKeys (line 139) | namespace UnitConverterResourceKeys
      type CurrencyDataLoaderConstants (line 145) | namespace CurrencyDataLoaderConstants
  function wstring (line 798) | wstring CurrencyDataLoader::GetCurrencyTimestamp()

FILE: src/CalcViewModel/DataLoaders/CurrencyDataLoader.h
  function namespace (line 10) | namespace CalculatorApp

FILE: src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp
  type CalculatorApp::ViewModel::DataLoaders (line 128) | namespace CalculatorApp::ViewModel::DataLoaders

FILE: src/CalcViewModel/DataLoaders/CurrencyHttpClient.h
  function namespace (line 8) | namespace CalculatorApp::ViewModel::DataLoaders

FILE: src/CalcViewModel/DataLoaders/UnitConverterDataConstants.h
  function namespace (line 4) | namespace CalculatorApp

FILE: src/CalcViewModel/DataLoaders/UnitConverterDataLoader.h
  function namespace (line 9) | namespace CalculatorApp

FILE: src/CalcViewModel/DateCalculatorViewModel.cpp
  function DateTime (line 390) | DateTime DateCalculatorViewModel::ClipTime(DateTime dateTime, bool adjus...

FILE: src/CalcViewModel/DateCalculatorViewModel.h
  function namespace (line 11) | namespace CalculatorApp

FILE: src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp
  type CalculatorApp::ViewModel (line 20) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/GraphingCalculator/EquationViewModel.h
  function namespace (line 8) | namespace GraphControl
  function namespace (line 14) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/GraphingCalculator/GraphingCalculatorViewModel.cpp
  type CalculatorApp::ViewModel (line 15) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/GraphingCalculator/GraphingCalculatorViewModel.h
  function namespace (line 10) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h
  function namespace (line 7) | namespace CalculatorApp::ViewModel

FILE: src/CalcViewModel/GraphingCalculator/VariableViewModel.h
  function sealed (line 16) | struct VariableChangedEventArgs sealed
  function property (line 36) | property double Min
  function property (line 58) | property double Step
  function property (line 74) | property double Max
  function property (line 98) | property double Value
  function property (line 126) | property Platform::String ^ VariableAutomationName

FILE: src/CalcViewModel/GraphingCalculatorEnums.h
  function namespace (line 3) | namespace CalculatorApp

FILE: src/CalcViewModel/HistoryItemViewModel.h
  function namespace (line 8) | namespace CalculatorApp

FILE: src/CalcViewModel/HistoryViewModel.cpp
  type HistoryResourceKeys (line 26) | namespace HistoryResourceKeys

FILE: src/CalcViewModel/HistoryViewModel.h
  function namespace (line 12) | namespace CalculatorApp

FILE: src/CalcViewModel/MemoryItemViewModel.h
  function namespace (line 8) | namespace CalculatorApp

FILE: src/CalcViewModel/Snapshots.cpp
  type CalculatorApp::ViewModel::Snapshot (line 12) | namespace CalculatorApp::ViewModel::Snapshot

FILE: src/CalcViewModel/Snapshots.h
  function namespace (line 10) | namespace CalculatorApp::ViewModel::Snapshot

FILE: src/CalcViewModel/StandardCalculatorViewModel.cpp
  function GetCommandsFromExpressionCommands (line 46) | std::vector<int> GetCommandsFromExpressionCommands(const std::vector<std...
  type CalculatorResourceKeys (line 98) | namespace CalculatorResourceKeys
  function RadixType (line 730) | RadixType StandardCalculatorViewModel::GetRadixTypeFromNumberBase(Number...
  function ButtonInfo (line 954) | ButtonInfo StandardCalculatorViewModel::MapCharacterToButtonId(char16 ch)
  function AngleType (line 1324) | AngleType GetAngleTypeFromCommand(Command command)
  function wstring (line 1553) | wstring StandardCalculatorViewModel::AddPadding(wstring binaryString)
  function ViewMode (line 1726) | ViewMode StandardCalculatorViewModel::GetCalculatorMode()

FILE: src/CalcViewModel/StandardCalculatorViewModel.h
  function namespace (line 17) | namespace CalculatorUnitTests
  function namespace (line 22) | namespace CalculatorApp

FILE: src/CalcViewModel/UnitConverterViewModel.cpp
  type CalculatorApp::ViewModel::DataLoaders::UnitConverterResourceKeys (line 79) | namespace CalculatorApp::ViewModel::DataLoaders::UnitConverterResourceKeys
  function TruncateFractionDigits (line 849) | std::wstring TruncateFractionDigits(const std::wstring& n, int digitCount)
  function NumbersAndOperatorsEnum (line 885) | NumbersAndOperatorsEnum UnitConverterViewModel::MapCharacterToButtonId(c...

FILE: src/CalcViewModel/UnitConverterViewModel.h
  function namespace (line 13) | namespace CalculatorApp

FILE: src/CalcViewModelCopyForUT/DataLoaders/CurrencyHttpClient.cpp
  type CalculatorApp::ViewModel::DataLoaders (line 15) | namespace CalculatorApp::ViewModel::DataLoaders

FILE: src/Calculator/App.xaml.cs
  class App (line 30) | public sealed partial class App
    method App (line 36) | public App()
    method OnLaunched (line 64) | protected override void OnLaunched(LaunchActivatedEventArgs args)
    method OnActivated (line 74) | protected override void OnActivated(IActivatedEventArgs args)
    method OnAppLaunch (line 91) | private void OnAppLaunch(IActivatedEventArgs args, object arguments, b...
    method OnSuspending (line 155) | private void OnSuspending(object sender, SuspendingEventArgs args)
    method SetupJumpListAsync (line 160) | private async Task SetupJumpListAsync()

FILE: src/Calculator/Common/AlwaysSelectedCollectionView.cs
  class AlwaysSelectedCollectionView (line 16) | internal sealed class AlwaysSelectedCollectionView : Windows.UI.Xaml.Dep...
    method AlwaysSelectedCollectionView (line 18) | internal AlwaysSelectedCollectionView(IList source)
    method MoveCurrentTo (line 29) | public bool MoveCurrentTo(object item)
    method MoveCurrentToPosition (line 55) | public bool MoveCurrentToPosition(int index)
    method MoveCurrentToFirst (line 69) | public bool MoveCurrentToFirst()
    method MoveCurrentToLast (line 74) | public bool MoveCurrentToLast()
    method MoveCurrentToNext (line 79) | public bool MoveCurrentToNext()
    method MoveCurrentToPrevious (line 84) | public bool MoveCurrentToPrevious()
    method LoadMoreItemsAsync (line 89) | public IAsyncOperation<LoadMoreItemsResult> LoadMoreItemsAsync(uint co...
    method Insert (line 94) | public void Insert(int index, object item)
    method RemoveAt (line 99) | public void RemoveAt(int index)
    method Add (line 104) | public void Add(object item)
    method Clear (line 109) | public void Clear()
    method Contains (line 114) | public bool Contains(object item)
    method CopyTo (line 119) | public void CopyTo(object[] array, int arrayIndex)
    method Remove (line 124) | public bool Remove(object item)
    method IndexOf (line 164) | public int IndexOf(object item)
    method GetEnumerator (line 169) | public IEnumerator<object> GetEnumerator()
    method GetEnumerator (line 174) | IEnumerator IEnumerable.GetEnumerator()
    method OnSourceBindableVectorChanged (line 180) | private void OnSourceBindableVectorChanged(Windows.UI.Xaml.Interop.IBi...
  class AlwaysSelectedCollectionViewConverter (line 197) | public sealed class AlwaysSelectedCollectionViewConverter : Windows.UI.X...
    method AlwaysSelectedCollectionViewConverter (line 199) | public AlwaysSelectedCollectionViewConverter()
    method Convert (line 203) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 212) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Common/AppLifecycleLogger.cs
  class Globals (line 15) | public static class Globals
  class AppLifecycleLogger (line 33) | internal class AppLifecycleLogger
    method GetInstance (line 35) | public static AppLifecycleLogger GetInstance()
    method GetTraceLoggingProviderEnabled (line 40) | public bool GetTraceLoggingProviderEnabled()
    method LaunchUIResponsive (line 45) | public void LaunchUIResponsive()
    method LaunchVisibleComplete (line 55) | public void LaunchVisibleComplete()
    method ResumeUIResponsive (line 65) | public void ResumeUIResponsive()
    method ResumeVisibleComplete (line 75) | public void ResumeVisibleComplete()
    method ResizeUIResponsive (line 85) | public void ResizeUIResponsive()
    method ResizeVisibleComplete (line 90) | public void ResizeVisibleComplete()
    method ResizeUIResponsive (line 95) | public void ResizeUIResponsive(int viewId)
    method ResizeVisibleComplete (line 106) | public void ResizeVisibleComplete(int viewId)
    method AppLifecycleLogger (line 118) | private AppLifecycleLogger()
    method LogAppLifecycleEvent (line 131) | private void LogAppLifecycleEvent(string eventName, LoggingFields fields)
    method PopulateAppInfo (line 137) | private void PopulateAppInfo(LoggingFields fields)

FILE: src/Calculator/Common/KeyboardShortcutManager.cs
  class KeyboardShortcutManagerLocals (line 23) | internal static class KeyboardShortcutManagerLocals
    method LightUpButtons (line 27) | public static void LightUpButtons(IEnumerable<WeakReference> buttons)
    method LightUpButton (line 38) | public static void LightUpButton(ButtonBase button)
    method RunFirstEnabledButtonCommand (line 78) | public static void RunFirstEnabledButtonCommand(IEnumerable<WeakRefere...
    method RunButtonCommand (line 90) | public static void RunButtonCommand(ButtonBase button)
  class KeyboardShortcutManager (line 116) | public sealed class KeyboardShortcutManager : DependencyObject
    method KeyboardShortcutManager (line 118) | public KeyboardShortcutManager()
    method GetCharacter (line 132) | public static string GetCharacter(DependencyObject target)
    method SetCharacter (line 137) | public static void SetCharacter(DependencyObject target, string value)
    method GetVirtualKey (line 152) | public static MyVirtualKey GetVirtualKey(DependencyObject target)
    method SetVirtualKey (line 157) | public static void SetVirtualKey(DependencyObject target, MyVirtualKey...
    method GetVirtualKeyControlChord (line 172) | public static MyVirtualKey GetVirtualKeyControlChord(DependencyObject ...
    method SetVirtualKeyControlChord (line 177) | public static void SetVirtualKeyControlChord(DependencyObject target, ...
    method GetVirtualKeyShiftChord (line 192) | public static MyVirtualKey GetVirtualKeyShiftChord(DependencyObject ta...
    method SetVirtualKeyShiftChord (line 197) | public static void SetVirtualKeyShiftChord(DependencyObject target, My...
    method GetVirtualKeyAltChord (line 212) | public static MyVirtualKey GetVirtualKeyAltChord(DependencyObject target)
    method SetVirtualKeyAltChord (line 217) | public static void SetVirtualKeyAltChord(DependencyObject target, MyVi...
    method GetVirtualKeyControlShiftChord (line 232) | public static MyVirtualKey GetVirtualKeyControlShiftChord(DependencyOb...
    method SetVirtualKeyControlShiftChord (line 237) | public static void SetVirtualKeyControlShiftChord(DependencyObject tar...
    method Initialize (line 242) | internal static void Initialize()
    method IgnoreEscape (line 258) | public static void IgnoreEscape(bool onlyOnce)
    method HonorEscape (line 277) | public static void HonorEscape()
    method HonorShortcuts (line 296) | public static void HonorShortcuts(bool allow)
    method DisableShortcuts (line 319) | public static void DisableShortcuts(bool disable)
    method UpdateDropDownState (line 337) | public static void UpdateDropDownState(bool isOpen)
    method RegisterNewAppViewId (line 347) | public static void RegisterNewAppViewId()
    method OnWindowClosed (line 393) | public static void OnWindowClosed(int viewId)
    method OnCharacterPropertyChanged (line 414) | private static void OnCharacterPropertyChanged(DependencyObject target...
    method OnVirtualKeyPropertyChanged (line 459) | private static void OnVirtualKeyPropertyChanged(DependencyObject targe...
    method OnVirtualKeyControlChordPropertyChanged (line 482) | private static void OnVirtualKeyControlChordPropertyChanged(Dependency...
    method OnVirtualKeyShiftChordPropertyChanged (line 506) | private static void OnVirtualKeyShiftChordPropertyChanged(DependencyOb...
    method OnVirtualKeyAltChordPropertyChanged (line 529) | private static void OnVirtualKeyAltChordPropertyChanged(DependencyObje...
    method OnVirtualKeyControlShiftChordPropertyChanged (line 552) | private static void OnVirtualKeyControlShiftChordPropertyChanged(Depen...
    method CanNavigateModeByShortcut (line 575) | private static bool CanNavigateModeByShortcut(MUXC.NavigationView navV...
    method NavigateModeByShortcut (line 588) | private static void NavigateModeByShortcut(bool controlKeyPressed, boo...
    method OnCharacterReceivedHandler (line 623) | private static void OnCharacterReceivedHandler(CoreWindow sender, Char...
    method OnKeyDownHandler (line 638) | private static void OnKeyDownHandler(CoreWindow sender, KeyEventArgs a...
    method OnKeyUpHandler (line 711) | private static void OnKeyUpHandler(CoreWindow sender, KeyEventArgs args)
    method OnAcceleratorKeyActivated (line 721) | private static void OnAcceleratorKeyActivated(CoreDispatcher dispatche...
    method GetCurrentKeyDictionary (line 746) | private static SortedDictionary<MyVirtualKey, List<WeakReference>> Get...
    method EqualRange (line 796) | private static IEnumerable<TValue> EqualRange<TKey, TValue>(SortedDict...
    method Insert (line 810) | private static void Insert<Tkey, TValue>(SortedDictionary<Tkey, List<T...

FILE: src/Calculator/Common/LaunchArguments.cs
  class SnapshotLaunchArguments (line 12) | internal class SnapshotLaunchArguments
  class LaunchExtensions (line 18) | internal static class LaunchExtensions
    method TryGetSnapshotProtocol (line 20) | public static bool TryGetSnapshotProtocol(this IActivatedEventArgs arg...
    method GetSnapshotLaunchArgs (line 36) | public static SnapshotLaunchArguments GetSnapshotLaunchArgs(this IProt...

FILE: src/Calculator/Common/ValidatingConverters.cs
  class ValidSelectedItemConverter (line 9) | public sealed class ValidSelectedItemConverter : Windows.UI.Xaml.Data.IV...
    method ValidSelectedItemConverter (line 11) | public ValidSelectedItemConverter()
    method Convert (line 14) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 20) | public object ConvertBack(object value, Type targetType, object parame...
  class ValidSelectedIndexConverter (line 32) | public sealed class ValidSelectedIndexConverter : Windows.UI.Xaml.Data.I...
    method ValidSelectedIndexConverter (line 34) | public ValidSelectedIndexConverter()
    method Convert (line 37) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 43) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Controls/CalculationResult.cs
  class CalculationResult (line 20) | public sealed class CalculationResult : Windows.UI.Xaml.Controls.Control
    method CalculationResult (line 22) | public CalculationResult()
    method ProgrammaticSelect (line 120) | public void ProgrammaticSelect()
    method UpdateTextState (line 125) | internal void UpdateTextState()
    method GetRawDisplayValue (line 184) | public string GetRawDisplayValue()
    method OnKeyDown (line 189) | protected override void OnKeyDown(KeyRoutedEventArgs e)
    method OnApplyTemplate (line 202) | protected override void OnApplyTemplate()
    method OnTapped (line 259) | protected override void OnTapped(TappedRoutedEventArgs e)
    method OnRightTapped (line 265) | protected override void OnRightTapped(RightTappedRoutedEventArgs e)
    method OnCreateAutomationPeer (line 279) | protected override AutomationPeer OnCreateAutomationPeer()
    method OnIsActivePropertyChanged (line 284) | private void OnIsActivePropertyChanged(bool oldValue, bool newValue)
    method OnDisplayValuePropertyChanged (line 289) | private void OnDisplayValuePropertyChanged(string oldValue, string new...
    method OnIsInErrorPropertyChanged (line 294) | private void OnIsInErrorPropertyChanged(bool oldValue, bool newValue)
    method OnMinFontSizePropertyChanged (line 320) | private void OnMinFontSizePropertyChanged(double oldValue, double newV...
    method OnMaxFontSizePropertyChanged (line 325) | private void OnMaxFontSizePropertyChanged(double oldValue, double newV...
    method OnTextContainerSizeChanged (line 330) | private void OnTextContainerSizeChanged(object sender, SizeChangedEven...
    method OnTextBlockSizeChanged (line 335) | private void OnTextBlockSizeChanged(object sender, SizeChangedEventArg...
    method OnTextContainerLayoutUpdated (line 340) | private void OnTextContainerLayoutUpdated(object sender, object e)
    method OnTextContainerOnViewChanged (line 348) | private void OnTextContainerOnViewChanged(object sender, ScrollViewerV...
    method UpdateVisualState (line 353) | private void UpdateVisualState()
    method OnScrollLeftClick (line 358) | private void OnScrollLeftClick(object sender, RoutedEventArgs e)
    method OnScrollRightClick (line 363) | private void OnScrollRightClick(object sender, RoutedEventArgs e)
    method ModifyFontAndMargin (line 368) | private void ModifyFontAndMargin(TextBlock textBox, double fontChange)
    method UpdateScrollButtons (line 382) | private void UpdateScrollButtons()
    method ScrollLeft (line 424) | private void ScrollLeft()
    method ScrollRight (line 437) | private void ScrollRight()
    method RaiseSelectedEvent (line 451) | private void RaiseSelectedEvent()

FILE: src/Calculator/Controls/CalculationResultAutomationPeer.cs
  class CalculationResultAutomationPeer (line 11) | public sealed class CalculationResultAutomationPeer : Windows.UI.Xaml.Au...
    method CalculationResultAutomationPeer (line 14) | public CalculationResultAutomationPeer(FrameworkElement owner) : base(...
    method GetAutomationControlTypeCore (line 18) | protected override AutomationControlType GetAutomationControlTypeCore()
    method GetPatternCore (line 23) | protected override object GetPatternCore(PatternInterface pattern)
    method Invoke (line 28) | public void Invoke()

FILE: src/Calculator/Controls/CalculatorButton.cs
  class CalculatorButton (line 15) | public sealed class CalculatorButton : Windows.UI.Xaml.Controls.Button
    method CalculatorButton (line 17) | public CalculatorButton()
    method OnKeyDown (line 116) | protected override void OnKeyDown(KeyRoutedEventArgs e)
    method OnKeyUp (line 127) | protected override void OnKeyUp(KeyRoutedEventArgs e)
    method OnButtonIdPropertyChanged (line 138) | private void OnButtonIdPropertyChanged(NumbersAndOperatorsEnum oldValu...
    method OnAuditoryFeedbackPropertyChanged (line 143) | private void OnAuditoryFeedbackPropertyChanged(string oldValue, string...

FILE: src/Calculator/Controls/EquationTextBox.cs
  class EquationTextBox (line 17) | public sealed class EquationTextBox : Windows.UI.Xaml.Controls.Control
    method EquationTextBox (line 19) | public EquationTextBox()
    method SetEquationText (line 133) | public void SetEquationText(string equationText)
    method FocusTextBox (line 141) | public void FocusTextBox()
    method OnApplyTemplate (line 149) | protected override void OnApplyTemplate()
    method OnPointerEntered (line 263) | protected override void OnPointerEntered(PointerRoutedEventArgs e)
    method OnPointerExited (line 269) | protected override void OnPointerExited(PointerRoutedEventArgs e)
    method OnPointerCanceled (line 275) | protected override void OnPointerCanceled(PointerRoutedEventArgs e)
    method OnPointerCaptureLost (line 281) | protected override void OnPointerCaptureLost(PointerRoutedEventArgs e)
    method OnIsAddEquationModePropertyChanged (line 287) | private void OnIsAddEquationModePropertyChanged(bool oldValue, bool ne...
    method UpdateCommonVisualState (line 293) | private void UpdateCommonVisualState()
    method UpdateButtonsVisualState (line 337) | private void UpdateButtonsVisualState()
    method RichEditHasContent (line 357) | private bool RichEditHasContent()
    method OnRichEditBoxGotFocus (line 364) | private void OnRichEditBoxGotFocus(object sender, RoutedEventArgs e)
    method OnRichEditBoxLostFocus (line 371) | private void OnRichEditBoxLostFocus(object sender, RoutedEventArgs e)
    method OnRichEditTextChanged (line 382) | private void OnRichEditTextChanged(object sender, RoutedEventArgs e)
    method OnDeleteButtonClicked (line 388) | private void OnDeleteButtonClicked(object sender, RoutedEventArgs e)
    method OnEquationButtonClicked (line 400) | private void OnEquationButtonClicked(object sender, RoutedEventArgs e)
    method OnRemoveButtonClicked (line 407) | private void OnRemoveButtonClicked(object sender, RoutedEventArgs e)
    method OnColorChooserButtonClicked (line 437) | private void OnColorChooserButtonClicked(object sender, RoutedEventArg...
    method OnFunctionButtonClicked (line 446) | private void OnFunctionButtonClicked(object sender, RoutedEventArgs e)
    method OnFunctionMenuButtonClicked (line 451) | private void OnFunctionMenuButtonClicked(object sender, RoutedEventArg...
    method OnRichEditMenuOpened (line 459) | private void OnRichEditMenuOpened(object sender, object args)
    method OnCutClicked (line 497) | private void OnCutClicked(object sender, RoutedEventArgs e)
    method OnCopyClicked (line 502) | private void OnCopyClicked(object sender, RoutedEventArgs e)
    method OnPasteClicked (line 507) | private void OnPasteClicked(object sender, RoutedEventArgs e)
    method OnUndoClicked (line 512) | private void OnUndoClicked(object sender, RoutedEventArgs e)
    method OnSelectAllClicked (line 517) | private void OnSelectAllClicked(object sender, RoutedEventArgs e)
    method OnColorFlyoutOpened (line 522) | private void OnColorFlyoutOpened(object sender, object e)
    method OnColorFlyoutClosed (line 528) | private void OnColorFlyoutClosed(object sender, object e)
    method OnHasErrorPropertyChanged (line 535) | private void OnHasErrorPropertyChanged(bool oldValue, bool newValue)
    method OnEquationButtonContentIndexPropertyChanged (line 540) | private void OnEquationButtonContentIndexPropertyChanged(string oldVal...
    method SetEquationButtonTooltipAndAutomationName (line 545) | private void SetEquationButtonTooltipAndAutomationName()
    method OnEquationSubmitted (line 582) | private void OnEquationSubmitted(object sender, MathRichEditBoxSubmiss...
    method OnEquationFormatRequested (line 595) | private void OnEquationFormatRequested(object sender, MathRichEditBoxF...

FILE: src/Calculator/Controls/FlipButtons.cs
  class FlipButtons (line 14) | public sealed class FlipButtons : Windows.UI.Xaml.Controls.Primitives.To...
    method OnKeyDown (line 66) | protected override void OnKeyDown(KeyRoutedEventArgs e)
    method OnKeyUp (line 77) | protected override void OnKeyUp(KeyRoutedEventArgs e)
    method OnButtonIdPropertyChanged (line 88) | private void OnButtonIdPropertyChanged(NumbersAndOperatorsEnum oldValu...

FILE: src/Calculator/Controls/HorizontalNoOverflowStackPanel.cs
  class HorizontalNoOverflowStackPanel (line 19) | public class HorizontalNoOverflowStackPanel : Windows.UI.Xaml.Controls.P...
    method HorizontalNoOverflowStackPanel (line 22) | internal HorizontalNoOverflowStackPanel()
    method MeasureOverride (line 25) | protected override Size MeasureOverride(Size availableSize)
    method ArrangeOverride (line 38) | protected override Size ArrangeOverride(Size finalSize)
    method ShouldPrioritizeLastItem (line 77) | protected virtual bool ShouldPrioritizeLastItem()

FILE: src/Calculator/Controls/MathRichEditBox.cs
  type RichEditMathMode (line 20) | public enum RichEditMathMode
  type ITextDocument4 (line 26) | [Guid("619c20f2-cb3b-4521-981f-2865b1b93f04")]
    method SetMath (line 29) | int SetMath(string value);
    method GetMath (line 30) | int GetMath(out string value);
    method SetMathMode (line 31) | int SetMathMode(RichEditMathMode mathMode);
  type EquationSubmissionSource (line 35) | public enum EquationSubmissionSource
  class MathRichEditBoxSubmission (line 42) | public sealed class MathRichEditBoxSubmission
    method MathRichEditBoxSubmission (line 48) | public MathRichEditBoxSubmission(bool hasTextChanged, EquationSubmissi...
  class MathRichEditBoxFormatRequest (line 56) | public sealed class MathRichEditBoxFormatRequest
    method MathRichEditBoxFormatRequest (line 62) | public MathRichEditBoxFormatRequest(string originalText)
  class MathRichEditBox (line 69) | public sealed class MathRichEditBox : Windows.UI.Xaml.Controls.RichEditBox
    method MathRichEditBox (line 71) | public MathRichEditBox()
    method OnMathTextPropertyChanged (line 112) | public void OnMathTextPropertyChanged(string oldValue, string newValue)
    method InsertText (line 120) | public void InsertText(string text, int cursorOffSet, int selectionLen...
    method SubmitEquation (line 141) | public void SubmitEquation(EquationSubmissionSource source)
    method BackSpace (line 172) | public void BackSpace()
    method OnKeyDown (line 200) | protected override void OnKeyDown(KeyRoutedEventArgs e)
    method GetMathTextProperty (line 210) | private string GetMathTextProperty()
    method SetMathTextProperty (line 216) | private void SetMathTextProperty(string newValue)
    method OnLosingFocus (line 226) | private void OnLosingFocus(UIElement sender, LosingFocusEventArgs args)
    method OnKeyUp (line 236) | private void OnKeyUp(object sender, KeyRoutedEventArgs e)

FILE: src/Calculator/Controls/OperatorPanelButton.cs
  class OperatorPanelButton (line 11) | public sealed class OperatorPanelButton : Windows.UI.Xaml.Controls.Primi...
    method OperatorPanelButton (line 13) | public OperatorPanelButton()
    method OnApplyTemplate (line 67) | protected override void OnApplyTemplate()
    method OnToggle (line 75) | protected override void OnToggle()
    method FlyoutClosed (line 85) | private void FlyoutClosed(object sender, object args)

FILE: src/Calculator/Controls/OperatorPanelListView.cs
  class OperatorPanelListView (line 13) | public sealed class OperatorPanelListView : Windows.UI.Xaml.Controls.Lis...
    method OperatorPanelListView (line 15) | public OperatorPanelListView()
    method OnApplyTemplate (line 19) | protected override void OnApplyTemplate()
    method OnScrollClick (line 49) | private void OnScrollClick(object sender, RoutedEventArgs e)
    method OnPointerEntered (line 62) | private void OnPointerEntered(object sender, PointerRoutedEventArgs e)
    method OnPointerExited (line 71) | private void OnPointerExited(object sender, PointerRoutedEventArgs e)
    method OnButtonPointerExited (line 78) | private void OnButtonPointerExited(object sender, PointerRoutedEventAr...
    method ScrollViewChanged (line 89) | private void ScrollViewChanged(object sender, ScrollViewerViewChangedE...
    method ShowHideScrollButtons (line 97) | private void ShowHideScrollButtons(Visibility vLeft, Visibility vRight)
    method UpdateScrollButtons (line 106) | private void UpdateScrollButtons()
    method ScrollLeft (line 134) | private void ScrollLeft()
    method ScrollRight (line 140) | private void ScrollRight()

FILE: src/Calculator/Controls/OverflowTextBlock.cs
  type OverflowButtonPlacement (line 14) | public enum OverflowButtonPlacement
  class OverflowTextBlock (line 20) | public sealed class OverflowTextBlock : Windows.UI.Xaml.Controls.Control
    method OverflowTextBlock (line 22) | public OverflowTextBlock()
    method OnTokensUpdatedPropertyChanged (line 100) | public void OnTokensUpdatedPropertyChanged(bool oldValue, bool newValue)
    method OnScrollButtonsPlacementPropertyChanged (line 116) | public void OnScrollButtonsPlacementPropertyChanged(OverflowButtonPlac...
    method UpdateScrollButtons (line 126) | public void UpdateScrollButtons()
    method UnregisterEventHandlers (line 183) | public void UnregisterEventHandlers()
    method OnApplyTemplate (line 202) | protected override void OnApplyTemplate()
    method OnCreateAutomationPeer (line 244) | protected override AutomationPeer OnCreateAutomationPeer()
    method OnScrollLeftClick (line 249) | private void OnScrollLeftClick(object sender, RoutedEventArgs e)
    method OnScrollRightClick (line 254) | private void OnScrollRightClick(object sender, RoutedEventArgs e)
    method OnViewChanged (line 259) | private void OnViewChanged(object sender, ScrollViewerViewChangedEvent...
    method UpdateVisualState (line 264) | private void UpdateVisualState()
    method UpdateAllState (line 269) | private void UpdateAllState()
    method ScrollLeft (line 274) | private void ScrollLeft()
    method ScrollRight (line 285) | private void ScrollRight()

FILE: src/Calculator/Controls/OverflowTextBlockAutomationPeer.cs
  class OverflowTextBlockAutomationPeer (line 12) | public sealed class OverflowTextBlockAutomationPeer : Windows.UI.Xaml.Au...
    method OverflowTextBlockAutomationPeer (line 14) | public OverflowTextBlockAutomationPeer(OverflowTextBlock owner) : base...
    method GetAutomationControlTypeCore (line 18) | protected override AutomationControlType GetAutomationControlTypeCore()
    method GetChildrenCore (line 23) | protected override IList<AutomationPeer> GetChildrenCore()

FILE: src/Calculator/Controls/RadixButton.cs
  class RadixButton (line 10) | public sealed class RadixButton : Windows.UI.Xaml.Controls.RadioButton
    method RadixButton (line 12) | public RadixButton()
    method GetRawDisplayValue (line 15) | internal string GetRawDisplayValue()

FILE: src/Calculator/Controls/SupplementaryItemsControl.cs
  class SupplementaryItemsControl (line 17) | public sealed class SupplementaryItemsControl : ItemsControl
    method SupplementaryItemsControl (line 19) | public SupplementaryItemsControl()
    method GetContainerForItemOverride (line 23) | protected override DependencyObject GetContainerForItemOverride()
    method PrepareContainerForItemOverride (line 28) | protected override void PrepareContainerForItemOverride(DependencyObje...
  class SupplementaryContentPresenter (line 39) | public sealed class SupplementaryContentPresenter : ContentPresenter
    method SupplementaryContentPresenter (line 41) | public SupplementaryContentPresenter()
    method OnCreateAutomationPeer (line 45) | protected override AutomationPeer OnCreateAutomationPeer()
  class SupplementaryContentPresenterAP (line 51) | internal sealed class SupplementaryContentPresenterAP : FrameworkElement...
    method GetAutomationControlTypeCore (line 53) | protected override AutomationControlType GetAutomationControlTypeCore()
    method GetChildrenCore (line 58) | protected override IList<AutomationPeer> GetChildrenCore()
    method SupplementaryContentPresenterAP (line 63) | internal SupplementaryContentPresenterAP(SupplementaryContentPresenter...

FILE: src/Calculator/Converters/BooleanNegationConverter.cs
  class BooleanNegationConverter (line 13) | [Windows.Foundation.Metadata.WebHostHidden]
    method Convert (line 16) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 22) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Converters/BooleanToVisibilityConverter.cs
  class BooleanToVisibilityConverter (line 16) | public sealed class BooleanToVisibilityConverter : Windows.UI.Xaml.Data....
    method Convert (line 18) | public static Windows.UI.Xaml.Visibility Convert(bool visibility)
    method Convert (line 23) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 29) | public object ConvertBack(object value, Type targetType, object parame...
  class BooleanToVisibilityNegationConverter (line 39) | public sealed class BooleanToVisibilityNegationConverter : Windows.UI.Xa...
    method Convert (line 41) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 47) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Converters/ExpressionItemTemplateSelector.cs
  class ExpressionItemTemplateSelector (line 14) | [Windows.UI.Xaml.Data.Bindable]
    method SelectTemplateCore (line 17) | protected override DataTemplate SelectTemplateCore(object item, Depend...

FILE: src/Calculator/Converters/ItemSizeToVisibilityConverter.cs
  class ItemSizeToVisibilityConverter (line 10) | [Windows.Foundation.Metadata.WebHostHidden]
    method Convert (line 13) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 19) | public object ConvertBack(object value, Type targetType, object parame...
  class ItemSizeToVisibilityNegationConverter (line 25) | public sealed class ItemSizeToVisibilityNegationConverter : Windows.UI.X...
    method Convert (line 27) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 33) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Converters/RadixToStringConverter.cs
  class RadixToStringConverter (line 15) | [Windows.Foundation.Metadata.WebHostHidden]
    method Convert (line 18) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 52) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/Converters/VisibilityNegationConverter.cs
  class VisibilityNegationConverter (line 15) | [Windows.Foundation.Metadata.WebHostHidden]
    method Convert (line 18) | public object Convert(object value, Type targetType, object parameter,...
    method ConvertBack (line 27) | public object ConvertBack(object value, Type targetType, object parame...

FILE: src/Calculator/DesignData/DesignAppViewModel.h
  function namespace (line 9) | namespace Numbers

FILE: src/Calculator/DesignData/DesignStandardCalculatorViewModel.h
  function namespace (line 6) | namespace Numbers

FILE: src/Calculator/DesignData/DesignUnitConverterViewModel.h
  function namespace (line 6) | namespace Numbers

FILE: src/Calculator/Selectors/KeyGraphFeaturesTemplateSelector.cs
  class KeyGraphFeaturesTemplateSelector (line 12) | public sealed class KeyGraphFeaturesTemplateSelector : Windows.UI.Xaml.C...
    method KeyGraphFeaturesTemplateSelector (line 14) | public KeyGraphFeaturesTemplateSelector()
    method SelectTemplateCore (line 22) | protected override DataTemplate SelectTemplateCore(object item)
    method SelectTemplateCore (line 41) | protected override DataTemplate SelectTemplateCore(object item, Depend...

FILE: src/Calculator/Selectors/NavViewMenuItemTemplateSelector.cs
  class NavViewMenuItemTemplateSelector (line 13) | internal sealed class NavViewMenuItemTemplateSelector : DataTemplateSele...
    method SelectTemplateCore (line 18) | protected override DataTemplate SelectTemplateCore(object item)
    method SelectTemplateCore (line 34) | protected override DataTemplate SelectTemplateCore(object item, Depend...
Copy disabled (too large) Download .json
Condensed preview — 541 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,410K chars).
[
  {
    "path": ".clang-format",
    "chars": 2942,
    "preview": "AccessModifierOffset: -4\nAlignAfterOpenBracket: AlwaysBreak\nAlignConsecutiveAssignments: false\nAlignConsecutiveDeclarati"
  },
  {
    "path": ".config/1espt/PipelineAutobaseliningConfig.yml",
    "chars": 955,
    "preview": "## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/"
  },
  {
    "path": ".editorconfig",
    "chars": 207,
    "preview": "## IDE-independent coding style via EditorConfig: https://editorconfig.org/\n\nroot = true\n\n[*]\nindent_style = space\ninden"
  },
  {
    "path": ".gitattributes",
    "chars": 1520,
    "preview": "###############################################################################\n# Set default behavior to automatically "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1741,
    "preview": "---\nname: Bug report\nabout: Report a problem with Calculator\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n<!--\nBefore filing "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 2205,
    "preview": "---\nname: Feature request\nabout: Propose a new feature in the app\ntitle: ''\nlabels: 'Enhancement'\nassignees: ''\n\n---\n\n<!"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/localization_suggestion.md",
    "chars": 1996,
    "preview": "---\nname: Localization Suggestion\nabout: Report a problem or suggested change to Calculator's localized content.\ntitle: "
  },
  {
    "path": ".github/policies/resourceManagement.yml",
    "chars": 3511,
    "preview": "id: \r\nname: GitOps.PullRequestIssueManagement\r\ndescription: GitOps.PullRequestIssueManagement primitive\r\nowner: \r\nresour"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 334,
    "preview": "## Fixes #.\n\n\n### Description of the changes:\n-\n-\n-\n\n### How changes were validated:\n<!--Review https://github.com/Micro"
  },
  {
    "path": ".github/workflows/action-ci.yml",
    "chars": 6210,
    "preview": "name: Windows Calculator Continuous Integration Pipeline\nrun-name: WinCalc-CI-0.${{ github.run_number }}\non:\n  push:\n   "
  },
  {
    "path": ".gitignore",
    "chars": 5021,
    "preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## "
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 351,
    "preview": "# Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 6500,
    "preview": "# Contributing to Calculator\nThe Calculator team encourages community feedback and contributions. Thank you for your int"
  },
  {
    "path": "LICENSE",
    "chars": 1095,
    "preview": "Copyright (c) Microsoft Corporation. All rights reserved.\n\nMIT License\n\nPermission is hereby granted, free of charge, to"
  },
  {
    "path": "NOTICE.txt",
    "chars": 1772,
    "preview": "THIRD PARTY SOFTWARE NOTICES AND INFORMATION\nDo Not Translate or Localize\n\nThis software incorporates material from thir"
  },
  {
    "path": "README.md",
    "chars": 5057,
    "preview": "# Calculator\nThe Windows Calculator app is a modern Windows app written in C++ and C# that ships pre-installed with Wind"
  },
  {
    "path": "SECURITY.md",
    "chars": 2380,
    "preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.1 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
  },
  {
    "path": "Tools/PGO/Microsoft.WindowsCalculator.PGO.nuspec",
    "chars": 716,
    "preview": "<?xml version=\"1.0\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd\">\n    <metadata>\n       "
  },
  {
    "path": "Tools/PGO/build/native/Microsoft.WindowsCalculator.PGO.props",
    "chars": 244,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n    <Prope"
  },
  {
    "path": "Tools/PGO/build/native/Microsoft.WindowsCalculator.PGO.targets",
    "chars": 2286,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n\n    <Prope"
  },
  {
    "path": "Tools/Scripts/clang-format/clang-format-all.ps1",
    "chars": 3073,
    "preview": "<#\n    .DESCRIPTION\n        Helper script to format all header and source files in the repository.\n\n        By default, "
  },
  {
    "path": "Tools/Scripts/clang-format/clang-format-all.sh",
    "chars": 1286,
    "preview": "#!/bin/bash\n\nfunction usage {\n    echo \"Usage: $0 DIR...\"\n    exit 1\n}\n\n# Variable that will hold the name of the clang-"
  },
  {
    "path": "Tools/ThreatModels/Calculator.tm7",
    "chars": 552017,
    "preview": "<ThreatModel xmlns=\"http://schemas.datacontract.org/2004/07/ThreatModeling.Model\" xmlns:i=\"http://www.w3.org/2001/XMLSch"
  },
  {
    "path": "build/config/PoliCheckExclusions.xml",
    "chars": 758,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<PoliCheckExclusions>\n    <!-- Skip app and PDP localization folders except the "
  },
  {
    "path": "build/pipelines/azure-pipelines.ci-internal.yaml",
    "chars": 2104,
    "preview": "#\n# Continuous Integration (CI) - Internal\n# This pipeline builds and validate the app for all supported architectures, "
  },
  {
    "path": "build/pipelines/azure-pipelines.loc.yaml",
    "chars": 1786,
    "preview": "#\n# Localization\n# This pipeline uploads English strings files to the localization service, downloads any translated\n# f"
  },
  {
    "path": "build/pipelines/azure-pipelines.release.yaml",
    "chars": 3457,
    "preview": "#\n# Release\n# This pipeline builds a version of the app in a production configuration to be released to the\n# Store and "
  },
  {
    "path": "build/pipelines/templates/build-single-architecture.yaml",
    "chars": 4549,
    "preview": "# This template contains a job to build the app for a single architecture.\n\nparameters:\n  isReleaseBuild: false\n  useRel"
  },
  {
    "path": "build/pipelines/templates/package-msixbundle.yaml",
    "chars": 8593,
    "preview": "# This template contains a job which takes .msix packages which were built separately for each\n# architecture (arm64, x8"
  },
  {
    "path": "build/pipelines/templates/release-store.yaml",
    "chars": 1409,
    "preview": "# This template contains jobs to release the app to the Store.\n\njobs:\n- job: ReleaseStore\n  dependsOn: Package\n  templat"
  },
  {
    "path": "build/pipelines/templates/release-vpack.yaml",
    "chars": 2441,
    "preview": "# This template contains a job to create a VPack. The VPack is used to preinstall the app in a\n# Windows OS build.\n\njobs"
  },
  {
    "path": "build/pipelines/templates/run-ui-tests.yaml",
    "chars": 1605,
    "preview": "# This template contains jobs to run UI tests using WinAppDriver.\n\nparameters:\n  platform: ''\n  runsettingsFileName: ''\n"
  },
  {
    "path": "build/pipelines/templates/run-unit-tests.yaml",
    "chars": 1040,
    "preview": "# This template contains jobs to run unit tests.\n\nparameters:\n  platform: ''\n  runsettingsFileName: ''\n\njobs:\n- job: Uni"
  },
  {
    "path": "build/scripts/CreateMsixBundleMapping.ps1",
    "chars": 3016,
    "preview": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\n<#\n.SYNOPSIS\n    Generate"
  },
  {
    "path": "build/scripts/SignTestApp.ps1",
    "chars": 1656,
    "preview": "#requires -RunAsAdministrator\nparam(\n    [Parameter(Position = 0, Mandatory = $true)][string]$AppToSign,\n    [string]$Si"
  },
  {
    "path": "build/scripts/TurnOffAnimationEffects.ps1",
    "chars": 1039,
    "preview": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\n<#\n.SYNOPSIS\n    Disables"
  },
  {
    "path": "build/scripts/UpdateAppxManifestVersion.ps1",
    "chars": 745,
    "preview": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\n<#\n.SYNOPSIS\n    Updates "
  },
  {
    "path": "docs/ApplicationArchitecture.md",
    "chars": 13254,
    "preview": "# Application Architecture\n\nWindows Calculator is a [C++/CX][C++/CX] application, built for the Universal Windows Platfo"
  },
  {
    "path": "docs/ManualTests.md",
    "chars": 22616,
    "preview": "# Calculator Manual Tests\nThese manual tests are run before every release of the Calculator app.\n\n## Smoke Tests\n\n### Ca"
  },
  {
    "path": "docs/NewFeatureProcess.md",
    "chars": 8039,
    "preview": "# New feature process\n\n## Where do I submit my idea for a new feature?\nThe easiest way to submit new feature requests is"
  },
  {
    "path": "docs/Roadmap.md",
    "chars": 1684,
    "preview": "# Windows Calculator Roadmap\n\nWindows Calculator is under active development by Microsoft.\n\n## Focus\n\nIn 2021, the Windo"
  },
  {
    "path": "nuget.config",
    "chars": 266,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <clear />\n    <add key=\"nuget.org\" value="
  },
  {
    "path": "src/CalcManager/CEngine/CalcInput.cpp",
    "chars": 9256,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <sstream>\n#inc"
  },
  {
    "path": "src/CalcManager/CEngine/CalcUtils.cpp",
    "chars": 1813,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"Header Files/"
  },
  {
    "path": "src/CalcManager/CEngine/History.cpp",
    "chars": 17581,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"Header Files/"
  },
  {
    "path": "src/CalcManager/CEngine/Number.cpp",
    "chars": 1443,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n\n#include <algorithm>\n#include \"Header Files/Number.h\"\n\nusi"
  },
  {
    "path": "src/CalcManager/CEngine/Rational.cpp",
    "chars": 10876,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n\n#include \"Header Files/Rational.h\"\n\nusing namespace std;\n\n"
  },
  {
    "path": "src/CalcManager/CEngine/RationalMath.cpp",
    "chars": 7494,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"Header Files/"
  },
  {
    "path": "src/CalcManager/CEngine/calc.cpp",
    "chars": 6991,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <cassert>\n#inc"
  },
  {
    "path": "src/CalcManager/CEngine/scicomm.cpp",
    "chars": 39670,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**********************"
  },
  {
    "path": "src/CalcManager/CEngine/scidisp.cpp",
    "chars": 12213,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**********************"
  },
  {
    "path": "src/CalcManager/CEngine/scifunc.cpp",
    "chars": 9454,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**********************"
  },
  {
    "path": "src/CalcManager/CEngine/scioper.cpp",
    "chars": 4574,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"Header Files/"
  },
  {
    "path": "src/CalcManager/CEngine/sciset.cpp",
    "chars": 5945,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"Header Files/"
  },
  {
    "path": "src/CalcManager/CalcManager.vcxproj",
    "chars": 15293,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "src/CalcManager/CalcManager.vcxproj.filters",
    "chars": 5719,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "src/CalcManager/CalculatorHistory.cpp",
    "chars": 2222,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <cassert>\n#inc"
  },
  {
    "path": "src/CalcManager/CalculatorHistory.h",
    "chars": 1495,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include \""
  },
  {
    "path": "src/CalcManager/CalculatorManager.cpp",
    "chars": 21708,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <climits> // f"
  },
  {
    "path": "src/CalcManager/CalculatorManager.h",
    "chars": 4884,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/CalculatorResource.h",
    "chars": 829,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/CalculatorVector.h",
    "chars": 3436,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Command.h",
    "chars": 6406,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespace"
  },
  {
    "path": "src/CalcManager/ExpressionCommand.cpp",
    "chars": 5939,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <string>\n#incl"
  },
  {
    "path": "src/CalcManager/ExpressionCommand.h",
    "chars": 2847,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include \""
  },
  {
    "path": "src/CalcManager/ExpressionCommandInterface.h",
    "chars": 1560,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/CCommand.h",
    "chars": 6240,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**********************"
  },
  {
    "path": "src/CalcManager/Header Files/CalcEngine.h",
    "chars": 9198,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n/*********"
  },
  {
    "path": "src/CalcManager/Header Files/CalcInput.h",
    "chars": 1897,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/CalcUtils.h",
    "chars": 489,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nusing OpC"
  },
  {
    "path": "src/CalcManager/Header Files/EngineStrings.h",
    "chars": 11494,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/**********************"
  },
  {
    "path": "src/CalcManager/Header Files/History.h",
    "chars": 3568,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/ICalcDisplay.h",
    "chars": 1148,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/IHistoryDisplay.h",
    "chars": 593,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/Number.h",
    "chars": 686,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/RadixType.h",
    "chars": 259,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n// This i"
  },
  {
    "path": "src/CalcManager/Header Files/Rational.h",
    "chars": 2738,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Header Files/RationalMath.h",
    "chars": 1287,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/NumberFormattingUtils.cpp",
    "chars": 2377,
    "preview": "#include \"pch.h\"\n#include \"NumberFormattingUtils.h\"\n\nusing namespace std;\n\nnamespace UnitConversionManager::NumberFormat"
  },
  {
    "path": "src/CalcManager/NumberFormattingUtils.h",
    "chars": 540,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Ratpack/CalcErr.h",
    "chars": 2669,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/Ratpack/basex.cpp",
    "chars": 10861,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/conv.cpp",
    "chars": 42623,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/exp.cpp",
    "chars": 15987,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/fact.cpp",
    "chars": 6765,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/itrans.cpp",
    "chars": 8485,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/itransh.cpp",
    "chars": 4023,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/logic.cpp",
    "chars": 6564,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/num.cpp",
    "chars": 17307,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/rat.cpp",
    "chars": 10084,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/ratconst.h",
    "chars": 27809,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n// Autog"
  },
  {
    "path": "src/CalcManager/Ratpack/ratpak.h",
    "chars": 31449,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n//-------"
  },
  {
    "path": "src/CalcManager/Ratpack/support.cpp",
    "chars": 22732,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/trans.cpp",
    "chars": 7389,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/Ratpack/transh.cpp",
    "chars": 5382,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//---------------------"
  },
  {
    "path": "src/CalcManager/UnitConverter.cpp",
    "chars": 30255,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include <cassert>\n#inc"
  },
  {
    "path": "src/CalcManager/UnitConverter.h",
    "chars": 11157,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcManager/pch.cpp",
    "chars": 312,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// Intentionally do not"
  },
  {
    "path": "src/CalcManager/pch.h",
    "chars": 766,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n// The Ca"
  },
  {
    "path": "src/CalcManager/ratpak.natvis",
    "chars": 470,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<AutoVisualizer xmlns=\"http://schemas.microsoft.com/vstudio/debugger/natvis/2010\""
  },
  {
    "path": "src/CalcManager/sal_cross_platform.h",
    "chars": 259,
    "preview": "#pragma once\n\n#if defined(_WIN32) && defined(_MSC_VER)\n\n#include <sal.h>\n\n#else\n\n// Empty macro definitions for source a"
  },
  {
    "path": "src/CalcManager/winerror_cross_platform.h",
    "chars": 505,
    "preview": "#pragma once\n\n#if defined(_WIN32) && defined(_MSC_VER)\n\n#include <winerror.h>\n\n#else\n\n#include \"Ratpack/CalcErr.h\"\n\n#def"
  },
  {
    "path": "src/CalcViewModel/CalcViewModel.rc",
    "chars": 374,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#define APP_FILE_NAME \""
  },
  {
    "path": "src/CalcViewModel/CalcViewModel.vcxproj",
    "chars": 19454,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "src/CalcViewModel/CalcViewModel.vcxproj.filters",
    "chars": 7702,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "src/CalcViewModel/Common/AlwaysSelectedCollectionView.h",
    "chars": 13224,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespace"
  },
  {
    "path": "src/CalcViewModel/Common/AppResourceProvider.cpp",
    "chars": 921,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/AppResourceProvider.h",
    "chars": 648,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespace"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/INarratorAnnouncementHost.h",
    "chars": 871,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/Automation/LiveRegionHost.cpp",
    "chars": 1109,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#incl"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/LiveRegionHost.h",
    "chars": 1085,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp",
    "chars": 8665,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorAnnouncement.h",
    "chars": 3721,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespace"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorAnnouncementHostFactory.cpp",
    "chars": 2157,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorAnnouncementHostFactory.h",
    "chars": 994,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorNotifier.cpp",
    "chars": 1942,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// Implementation of th"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NarratorNotifier.h",
    "chars": 1757,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// Declaration of the N"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NotificationHost.cpp",
    "chars": 3384,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#incl"
  },
  {
    "path": "src/CalcViewModel/Common/Automation/NotificationHost.h",
    "chars": 1165,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/BitLength.h",
    "chars": 317,
    "preview": "#pragma once\n\nnamespace CalculatorApp::ViewModel\n{\n    namespace Common\n    {\n    public\n        enum class BitLength : "
  },
  {
    "path": "src/CalcViewModel/Common/CalculatorButtonPressedEventArgs.cpp",
    "chars": 1037,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#incl"
  },
  {
    "path": "src/CalcViewModel/Common/CalculatorButtonPressedEventArgs.h",
    "chars": 1034,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/CalculatorButtonUser.h",
    "chars": 9517,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/CalculatorDisplay.cpp",
    "chars": 4779,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n// This class provides "
  },
  {
    "path": "src/CalcViewModel/Common/CalculatorDisplay.h",
    "chars": 1558,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/CopyPasteManager.cpp",
    "chars": 21943,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/CopyPasteManager.h",
    "chars": 5457,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/DateCalculator.cpp",
    "chars": 13777,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/DateCalculator.h",
    "chars": 2802,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nconst uin"
  },
  {
    "path": "src/CalcViewModel/Common/DelegateCommand.h",
    "chars": 2775,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespac"
  },
  {
    "path": "src/CalcViewModel/Common/DisplayExpressionToken.h",
    "chars": 1590,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/EngineResourceProvider.cpp",
    "chars": 1742,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/EngineResourceProvider.h",
    "chars": 510,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/ExpressionCommandDeserializer.cpp",
    "chars": 2435,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/ExpressionCommandDeserializer.h",
    "chars": 771,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/ExpressionCommandSerializer.cpp",
    "chars": 1501,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/ExpressionCommandSerializer.h",
    "chars": 729,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/LocalizationService.cpp",
    "chars": 27488,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/LocalizationService.h",
    "chars": 4706,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/LocalizationSettings.h",
    "chars": 13937,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include \""
  },
  {
    "path": "src/CalcViewModel/Common/LocalizationStringUtil.h",
    "chars": 3661,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/MyVirtualKey.h",
    "chars": 3448,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespac"
  },
  {
    "path": "src/CalcViewModel/Common/NavCategory.cpp",
    "chars": 16780,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/NavCategory.h",
    "chars": 6787,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n/* The NavCategory grou"
  },
  {
    "path": "src/CalcViewModel/Common/NetworkManager.cpp",
    "chars": 2081,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#incl"
  },
  {
    "path": "src/CalcViewModel/Common/NetworkManager.h",
    "chars": 938,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespac"
  },
  {
    "path": "src/CalcViewModel/Common/NumberBase.h",
    "chars": 309,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\nnamespace "
  },
  {
    "path": "src/CalcViewModel/Common/RadixType.cpp",
    "chars": 164,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/RadixType.h",
    "chars": 402,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\nnamespace"
  },
  {
    "path": "src/CalcViewModel/Common/TraceLogger.cpp",
    "chars": 16014,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/Common/TraceLogger.h",
    "chars": 4145,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Common/Utils.cpp",
    "chars": 7598,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//\n// Utils.cpp\n//\n\n#in"
  },
  {
    "path": "src/CalcViewModel/Common/Utils.h",
    "chars": 78679,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp",
    "chars": 30890,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/CurrencyDataLoader.h",
    "chars": 5812,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp",
    "chars": 3318,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/CurrencyHttpClient.h",
    "chars": 680,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include <"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/DefaultFromToCurrency.json",
    "chars": 2146,
    "preview": "{\n    \"default\": {\n        \"from\": \"USD\",\n        \"to\": \"EUR\"\n\t},\n    \"ar-AE\": {\n        \"from\": \"USD\",\n        \"to\": \"A"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/UnitConverterDataConstants.h",
    "chars": 7566,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nnamespace CalculatorApp"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/UnitConverterDataLoader.cpp",
    "chars": 73479,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/DataLoaders/UnitConverterDataLoader.h",
    "chars": 3809,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/DateCalculatorViewModel.cpp",
    "chars": 13498,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/DateCalculatorViewModel.h",
    "chars": 7202,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/EquationViewModel.cpp",
    "chars": 21174,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/EquationViewModel.h",
    "chars": 4397,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/GraphingCalculatorViewModel.cpp",
    "chars": 1526,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/GraphingCalculatorViewModel.h",
    "chars": 1297,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.cpp",
    "chars": 2876,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/GraphingSettingsViewModel.h",
    "chars": 8954,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"../Common/Uti"
  },
  {
    "path": "src/CalcViewModel/GraphingCalculator/VariableViewModel.h",
    "chars": 3944,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/GraphingCalculatorEnums.h",
    "chars": 575,
    "preview": "#pragma once\n\nnamespace CalculatorApp\n{\n    enum KeyGraphFeaturesFlag\n    {\n        Domain = 1,\n        Range = 2,\n     "
  },
  {
    "path": "src/CalcViewModel/HistoryItemViewModel.cpp",
    "chars": 1427,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/HistoryItemViewModel.h",
    "chars": 2212,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/HistoryViewModel.cpp",
    "chars": 6219,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/HistoryViewModel.h",
    "chars": 2695,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/MemoryItemViewModel.cpp",
    "chars": 886,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#incl"
  },
  {
    "path": "src/CalcViewModel/MemoryItemViewModel.h",
    "chars": 1021,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/Snapshots.cpp",
    "chars": 10017,
    "preview": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#include <cassert>\n#include"
  },
  {
    "path": "src/CalcViewModel/Snapshots.h",
    "chars": 5080,
    "preview": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n#pragma once\n#include <vector>\n#include <mem"
  },
  {
    "path": "src/CalcViewModel/StandardCalculatorViewModel.cpp",
    "chars": 68001,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/StandardCalculatorViewModel.h",
    "chars": 18305,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n#include \""
  },
  {
    "path": "src/CalcViewModel/UnitConverterViewModel.cpp",
    "chars": 39464,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#inclu"
  },
  {
    "path": "src/CalcViewModel/UnitConverterViewModel.h",
    "chars": 20686,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/pch.cpp",
    "chars": 115,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n"
  },
  {
    "path": "src/CalcViewModel/pch.h",
    "chars": 1019,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n#include "
  },
  {
    "path": "src/CalcViewModel/targetver.h",
    "chars": 404,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n#pragma once\n\n// Inclu"
  },
  {
    "path": "src/CalcViewModelCopyForUT/CalcViewModelCopyForUT.vcxproj",
    "chars": 19245,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "src/CalcViewModelCopyForUT/CalcViewModelCopyForUT.vcxproj.filters",
    "chars": 8751,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "src/CalcViewModelCopyForUT/DataLoaders/CurrencyHttpClient.cpp",
    "chars": 2010,
    "preview": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n#include \"pch.h\"\n#include \"DataLoaders/Curre"
  },
  {
    "path": "src/Calculator/App.xaml",
    "chars": 204958,
    "preview": "<Application x:Class=\"CalculatorApp.App\"\n             xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n"
  },
  {
    "path": "src/Calculator/App.xaml.cs",
    "chars": 7359,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\n//\n// App.xaml.h\n// Dec"
  },
  {
    "path": "src/Calculator/Calculator.csproj",
    "chars": 51924,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "src/Calculator/Common/AlwaysSelectedCollectionView.cs",
    "chars": 6837,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing System;\nusing Sy"
  },
  {
    "path": "src/Calculator/Common/AppLifecycleLogger.cs",
    "chars": 5987,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing CalculatorApp.Vie"
  },
  {
    "path": "src/Calculator/Common/KeyboardShortcutManager.cs",
    "chars": 38001,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing CalculatorApp.Man"
  },
  {
    "path": "src/Calculator/Common/LaunchArguments.cs",
    "chars": 1902,
    "preview": "using System;\nusing System.Linq;\nusing System.Text.Json;\nusing Windows.ApplicationModel.Activation;\n\nusing CalculatorApp"
  },
  {
    "path": "src/Calculator/Common/ValidatingConverters.cs",
    "chars": 2138,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nusing System;\n\nnamespac"
  },
  {
    "path": "src/Calculator/Controls/CalculationResult.cs",
    "chars": 20163,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing CalculatorApp.Vie"
  },
  {
    "path": "src/Calculator/Controls/CalculationResultAutomationPeer.cs",
    "chars": 1136,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing Windows.UI.Xaml;\n"
  },
  {
    "path": "src/Calculator/Controls/CalculatorButton.cs",
    "chars": 7466,
    "preview": "// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n\nusing CalculatorApp.Vie"
  }
]

// ... and 341 more files (download for full content)

About this extraction

This page contains the full source code of the microsoft/calculator GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 541 files (18.3 MB), approximately 4.0M tokens, and a symbol index with 670 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!