Compare commits

...
47 Commits
Author SHA1 Message Date
rmbgame 0f730aac10 没有启用加速也可开启加速单独启用脚本 2021-05-03 21:47:42 +08:00
Mossimo c51e85f52b fix post 2021-05-03 21:35:37 +08:00
Aigio Liu a5e6411afe 改进 当 hosts 文件不存在时自动创建空文件 2021-05-03 20:20:31 +08:00
rmbgame 94b602be26 修复脚本启用状态保存问题 2021-05-03 20:05:57 +08:00
Aigio Liu 572bca08fd Steam 快速登录 80%
即将发布 2.0.0.8
2021-05-03 19:50:09 +08:00
rmbgame 64531c40a1 ui 2021-05-03 16:18:16 +08:00
rmbgame f4c06016c9 ui 2021-05-03 15:57:26 +08:00
rmbgame 19073d111a ready 2021-05-03 15:57:26 +08:00
rmbgame 4a5cacb654 update window 2021-05-03 15:57:26 +08:00
rmbgame 9221e8d0b8 window Size and Position save 2021-05-03 03:27:15 +08:00
Aigio Liu c191ba851f fix warn 2021-05-03 00:56:54 +08:00
Aigio Liu ebc38453e4 DelAcc 2021-05-03 00:56:53 +08:00
Aigio Liu cd3783b864 进行中:Steam 快速登录 2 2021-05-02 23:13:35 +08:00
Mossimo 74fdd9f016 fix js build 2021-05-02 23:04:35 +08:00
Mossimo 731449a46e save 2021-05-02 21:00:10 +08:00
Mossimo 52485b5054 fix jsquery 2021-05-02 21:00:10 +08:00
rmbgame 9fd359c2cf fix 195 2021-05-02 20:33:33 +08:00
rmbgame 8fb9b12f3d fix account offine bug 2021-05-02 20:33:33 +08:00
Aigio Liu fb5aa30287 优化 WebView3 Loading 2021-05-02 19:04:43 +08:00
rmbgame ba1886758b fix proxy bug 2021-05-02 17:31:47 +08:00
rmbgame 5a9e264dda update image2 2021-05-02 17:10:30 +08:00
Aigio Liu dcc8fc04b2 进行中:Steam 快速登录 2021-05-02 14:51:50 +08:00
Aigio Liu 25aa1951e3 新增 WebView3 拦截 Rsp
修复 更新进度条值不正确
版本更变 2.0.0.8
2021-05-02 11:50:16 +08:00
rmbgame 84490ef9b6 fix windows proxy port check 2021-05-02 09:03:25 +08:00
rmbgame 92c358d81b 更改文件夹结构 2021-05-02 08:27:41 +08:00
Aigio Liu 42ae1038f1 fix droid test 2021-05-02 08:11:51 +08:00
Aigio Liu 37918501ab fix CI Build by Linux 2021-05-02 07:12:42 +08:00
Aigio L 0688e7d9a1 Update dotnet.yml 2021-05-02 07:03:56 +08:00
Aigio Liu efcc843557 fix Res by macOS 2021-05-02 06:58:35 +08:00
Aigio Liu 4a41ed7b9c res restore 2021-05-02 06:53:07 +08:00
Aigio Liu 2e7172e1c0 fix Res 2021-05-02 06:43:16 +08:00
Aigio L 7fa92ef55d Update dotnet.yml 2021-05-02 06:39:30 +08:00
Aigio Liu 6555d23e78 fix res 2021-05-02 06:33:54 +08:00
Aigio L a95403c958 Update dotnet.yml 2021-05-02 06:22:11 +08:00
Aigio Liu 8a60b0f91d add Linux.sln 2021-05-02 06:20:05 +08:00
Aigio L 70d33296ca Update dotnet.yml 2021-05-02 06:14:26 +08:00
Aigio L 73f80b6f0f Update dotnet.yml 2021-05-02 06:01:02 +08:00
Aigio L b1169a149e Update dotnet.yml 2021-05-02 05:53:42 +08:00
Aigio L 790dd18bb8 Update dotnet.yml 2021-05-02 05:48:37 +08:00
Aigio L 86ac7ad386 Update dotnet.yml 2021-05-02 05:44:07 +08:00
Aigio L 5310b5e1a5 Update dotnet.yml 2021-05-02 05:35:39 +08:00
Aigio L 6a4af4ab73 Update dotnet.yml 2021-05-02 05:32:17 +08:00
Aigio Liu 1846854759 2.0.0.7-beta
修复 主题跟随系统内嵌网页主题不正确
目标框架TFM 升级至 6.0 解决 Win7 上存在的一些兼容性问题
2021-05-01 19:47:02 +08:00
Aigio Liu b4158be5e8 修复 Hosts 文件操作 2021-05-01 16:22:39 +08:00
Aigio Liu 9a6e5bb323 add note 2021-05-01 15:27:37 +08:00
Aigio Liu 363fc9a440 修复 Hosts 文件服务
添加 打开桌面图标设置
2021-05-01 15:27:36 +08:00
Aigio Liu b19b5cf88f 改进 Hosts 操作重复项忽略
修复 Hosts 操作错误时不提示
改进 ServerApi 添加 Polly
改进 获取加速项目Api 使用 Polly
2021-05-01 14:05:32 +08:00
119 changed files with 3036 additions and 1157 deletions
+27 -10
View File
@@ -2,22 +2,27 @@ name: .NET
on:
push:
branches: [ master,develop ]
branches: [ master, develop ]
pull_request:
branches: [ master,develop ]
branches: [ master, develop ]
jobs:
build:
runs-on: windows-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-latest, macOS-latest, ubuntu-latest ]
steps:
- uses: actions/checkout@v2
- name: Setup .NET
- name: Setup .NET 5
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.100-preview.3.21202.5
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout submodules
@@ -25,15 +30,27 @@ jobs:
- name: dotnet info
run: dotnet --info
- name: dotnet restore
- name: dotnet restore SteamToolsV2+.sln
if: matrix.os == 'windows-latest'
run: dotnet restore ./SteamToolsV2+.sln
- name: dotnet restore SteamTools.Desktop.Linux.sln
if: matrix.os == 'ubuntu-latest'
run: dotnet restore ./SteamTools.Desktop.Linux.sln
- name: dotnet restore SteamTools.Desktop.Mac.sln
if: matrix.os == 'macOS-latest'
run: dotnet restore ./SteamTools.Desktop.Mac.sln
- name: dotnet AvaloniaApp build
run: dotnet build ./src/ST.Client.Desktop.Avalonia.App/ST.Client.Desktop.Avalonia.App.csproj
- name: dotnet CommonUnit build
run: dotnet build ./tests/Common.UnitTest/Common.UnitTest.csproj
- name: dotnet CommonUnit test
run: dotnet test ./tests/Common.UnitTest/Common.UnitTest.csproj
- name: dotnet ST.Client.UnitTest build
run: dotnet build ./tests/ST.Client.UnitTest/ST.Client.UnitTest.csproj
- name: dotnet CommonUnit test
run: dotnet test ./tests/Common.UnitTest/Common.UnitTest.csproj
- name: dotnet ST.Client.UnitTest test
run: dotnet test ./tests/ST.Client.UnitTest/ST.Client.UnitTest.csproj
+1
View File
@@ -19,6 +19,7 @@
[![Official WebSite](https://img.shields.io/badge/website@official-Ant%20Design%20of%20React-blue.svg?style=flat-square&color=61dafb)](https://github.com/ant-design/ant-design)
[![BackManage WebSite](https://img.shields.io/badge/website@back_manage-Ant%20Design%20of%20Blazor-purple.svg?style=flat-square&color=512bd4)](https://github.com/ant-design-blazor/ant-design-blazor)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FSteamTools-Team%2FSteamTools%2Fbadge%3Fref%3Ddevelop&style=flat-square)](https://actions-badge.atrox.dev/SteamTools-Team/SteamTools/goto?ref=develop)
[![GitHub Star](https://img.shields.io/github/stars/rmbadmin/SteamTools.svg?style=social)](https://github.com/SteamTools-Team/SteamTools)
[![Gitee Star](https://gitee.com/rmbgame/SteamTools/badge/star.svg)](https://gitee.com/rmbgame/SteamTools)
</div>
+2 -1
View File
@@ -19,9 +19,10 @@
[![Official WebSite](https://img.shields.io/badge/website@official-Ant%20Design%20of%20React-blue.svg?style=flat-square&color=61dafb)](https://github.com/ant-design/ant-design)
[![BackManage WebSite](https://img.shields.io/badge/website@back_manage-Ant%20Design%20of%20Blazor-purple.svg?style=flat-square&color=512bd4)](https://github.com/ant-design-blazor/ant-design-blazor)
[![](https://img.shields.io/badge/QQ群-479036439-blue.svg?style=flat-square&color=12b7f5)](https://jq.qq.com/?_wv=1027&k=MWH729dD)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FSteamTools-Team%2FSteamTools%2Fbadge%3Fref%3Ddevelop&style=flat-square)](https://actions-badge.atrox.dev/SteamTools-Team/SteamTools/goto?ref=develop)
[![GitHub Star](https://img.shields.io/github/stars/rmbadmin/SteamTools.svg?style=social)](https://github.com/SteamTools-Team/SteamTools)
[![Gitee Star](https://gitee.com/rmbgame/SteamTools/badge/star.svg)](https://gitee.com/rmbgame/SteamTools)
[![](https://img.shields.io/badge/QQ群-479036439-blue.svg?style=flat-square&color=12b7f5)](https://jq.qq.com/?_wv=1027&k=MWH729dD)
</div>
<div align="center"><img src="./resources/screenshots.jpg" /></div>
+807
View File
@@ -0,0 +1,807 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31005.135
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Repositories.sqlite-net-pcl", "src\Repositories.sqlite-net-pcl\Repositories.sqlite-net-pcl.csproj", "{512B0511-41AB-444D-BAD8-E19B7D3B52CB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.ClientLib", "src\Common.ClientLib\Common.ClientLib.csproj", "{8B9F2E93-B31B-4BA7-920D-732695A473E6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.CoreLib", "src\Common.CoreLib\Common.CoreLib.csproj", "{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.ClientLib.Droid", "src\Common.ClientLib.Droid\Common.ClientLib.Droid.csproj", "{7C8D906E-426B-49AB-9072-178555370F62}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.ClientLib.iOS", "src\Common.ClientLib.iOS\Common.ClientLib.iOS.csproj", "{F8F6973C-5831-43D1-89C2-1AD543CE7408}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0_Common", "0_Common", "{2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3_SteamTools_Libs", "3_SteamTools_Libs", "{B43459A1-709B-4623-9677-AAC2FEE4FBA3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Services.CloudService.Models", "src\ST.Services.CloudService.Models\ST.Services.CloudService.Models.csproj", "{6CD71E14-5036-4A16-8084-4AD108D34FF7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Services.CloudService", "src\ST.Services.CloudService\ST.Services.CloudService.csproj", "{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2_Test", "2_Test", "{EBC9DD0C-F7D0-4A00-B263-E69CF4E194F1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.UnitTest", "tests\Common.UnitTest\Common.UnitTest.csproj", "{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.UnitTest.Droid", "tests\Common.UnitTest.Droid\Common.UnitTest.Droid.csproj", "{0073A08E-6336-4C09-99F9-2E808889D715}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.UnitTest.Droid.App", "tests\Common.UnitTest.Droid.App\Common.UnitTest.Droid.App.csproj", "{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST", "src\ST\ST.csproj", "{66B7BFD6-6D4D-421B-BA5B-915348E53708}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client", "src\ST.Client\ST.Client.csproj", "{0A624994-B0A9-4F1F-B7D0-97FE2929936B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop", "src\ST.Client.Desktop\ST.Client.Desktop.csproj", "{D1F15D97-802E-4AA3-A4A5-B890ABE32897}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Avalonia.App", "src\ST.Client.Desktop.Avalonia.App\ST.Client.Desktop.Avalonia.App.csproj", "{2FFA5BCE-B3C3-46EA-8830-838C938BF814}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Root", "_Root", "{B4B548C1-9AFE-4EBB-96E4-990B57C0A953}"
ProjectSection(SolutionItems) = preProject
.gitignore = .gitignore
Directory.Build.props = Directory.Build.props
global.json = global.json
nuget.config = nuget.config
README.en.md = README.en.md
README.md = README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Avalonia", "src\ST.Client.Desktop.Avalonia\ST.Client.Desktop.Avalonia.csproj", "{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Linux", "src\ST.Client.Desktop.Linux\ST.Client.Desktop.Linux.csproj", "{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Mac", "src\ST.Client.Desktop.Mac\ST.Client.Desktop.Mac.csproj", "{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Windows", "src\ST.Client.Desktop.Windows\ST.Client.Desktop.Windows.csproj", "{141532E1-540E-4E50-8723-96936C191281}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1_Reference", "1_Reference", "{8EB91F53-1062-4E9B-8E4A-096F35EA688D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Authenticator", "references\WinAuth\Authenticator\Authenticator.csproj", "{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SAM.API", "references\SteamAchievementManager\SAM.API\SAM.API.csproj", "{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steam4NET", "references\Steam4NET\Steam4NET\Steam4NET.csproj", "{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Titanium.Web.Proxy", "references\Titanium-Web-Proxy\src\Titanium.Web.Proxy\Titanium.Web.Proxy.csproj", "{35D60129-6652-4B6E-A04A-9766C3CF1869}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.OpenSourceLibraryList", "src\ST.Tools.OpenSourceLibraryList\ST.Tools.OpenSourceLibraryList.csproj", "{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.UnitTest", "tests\ST.Client.UnitTest\ST.Client.UnitTest.csproj", "{8EDF4429-251A-416D-BB68-93F227191BCF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.Translate", "src\ST.Tools.Translate\ST.Tools.Translate.csproj", "{ABAF70E5-A582-4916-B217-6A660BB31D52}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "4_SteamTools_Tools", "4_SteamTools_Tools", "{5A7A506C-4DFF-4941-A9A6-B1182C7D5825}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Desktop.Avalonia.Demo.App", "src\ST.Client.Desktop.Avalonia.Demo.App\ST.Client.Desktop.Avalonia.Demo.App.csproj", "{39C26BF0-E5FE-42B1-B011-B7300847DED6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Mobile", "src\ST.Client.Mobile\ST.Client.Mobile.csproj", "{64F63608-1390-41D1-8568-F4E05AE35E75}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Mobile.iOS", "src\ST.Client.Mobile.iOS\ST.Client.Mobile.iOS.csproj", "{A040865C-FA5F-486A-9CC9-96CF34859FBD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Mobile.Droid", "src\ST.Client.Mobile.Droid\ST.Client.Mobile.Droid.csproj", "{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ST.Client.Mobile.Droid.App", "src\ST.Client.Mobile.Droid.App\ST.Client.Mobile.Droid.App.csproj", "{B355E372-27D2-4217-A129-D3355573681F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ST.Client.Mobile.iOS.App", "src\ST.Client.Mobile.iOS.App\ST.Client.Mobile.iOS.App.csproj", "{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.Packager.InstallerSetup", "src\ST.Tools.Packager.InstallerSetup\ST.Tools.Packager.InstallerSetup.csproj", "{981AB416-A954-4A68-9521-BC71C5AEE058}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Services.CloudService.ViewModels", "src\ST.Services.CloudService.ViewModels\ST.Services.CloudService.ViewModels.csproj", "{90E4B24A-8A7E-4163-837B-BEC7419A7A97}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Depressurizer.Core", "references\Depressurizer\src\Depressurizer.Core\Depressurizer.Core.csproj", "{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.AreaLib", "src\Common.AreaLib\Common.AreaLib.csproj", "{314F0805-EB94-4685-B0EF-BF9418D19003}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.AreaImport", "src\ST.Tools.AreaImport\ST.Tools.AreaImport.csproj", "{6E3D25E9-544E-498A-8F23-BC4E767FF01B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaGif", "references\AvaloniaGif\AvaloniaGif\AvaloniaGif.csproj", "{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibAPNG", "references\AvaloniaGif\LibAPNG\LibAPNG.csproj", "{09591D9E-2186-42F1-B6C6-375326E2CF2E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CefNet.Avalonia", "references\CefNet\CefNet.Avalonia\CefNet.Avalonia.csproj", "{38A8EE9F-81A8-4B11-A6E9-864A12C43089}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.MinifyStaticSites", "src\ST.Tools.MinifyStaticSites\ST.Tools.MinifyStaticSites.csproj", "{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|iPhone.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|x86.ActiveCfg = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|x86.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|Any CPU.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|iPhone.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|iPhone.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|x86.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|x86.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|iPhone.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|x86.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|Any CPU.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|iPhone.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|iPhone.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|x86.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|x86.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|iPhone.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|x86.ActiveCfg = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|x86.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|Any CPU.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|iPhone.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|iPhone.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|x86.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|x86.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|iPhone.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|x86.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|Any CPU.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|iPhone.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|iPhone.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|x86.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|x86.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|iPhone.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|x86.ActiveCfg = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|x86.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|Any CPU.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|iPhone.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|iPhone.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|x86.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|x86.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|iPhone.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|x86.ActiveCfg = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|x86.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|Any CPU.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|iPhone.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|iPhone.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|x86.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|x86.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|iPhone.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|x86.ActiveCfg = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|x86.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|Any CPU.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|iPhone.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|iPhone.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|x86.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|x86.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|iPhone.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|x86.ActiveCfg = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|x86.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|Any CPU.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|iPhone.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|iPhone.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|x86.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|x86.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|iPhone.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|x86.ActiveCfg = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|x86.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|Any CPU.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|iPhone.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|iPhone.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|x86.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|x86.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhone.Build.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhone.Deploy.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.ActiveCfg = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.Build.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.Deploy.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhone.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhone.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhone.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|x86.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|x86.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|x86.Deploy.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|iPhone.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|x86.ActiveCfg = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|x86.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|Any CPU.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|iPhone.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|iPhone.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|x86.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|x86.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|iPhone.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|x86.ActiveCfg = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|x86.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|Any CPU.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|iPhone.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|iPhone.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|x86.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|x86.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|iPhone.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|x86.ActiveCfg = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|x86.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|Any CPU.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|iPhone.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|iPhone.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|x86.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|x86.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|iPhone.Build.0 = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|x86.ActiveCfg = Debug|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|x86.Build.0 = Debug|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|Any CPU.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|iPhone.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|iPhone.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|x86.ActiveCfg = Release|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|x86.Build.0 = Release|x86
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|iPhone.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|x86.ActiveCfg = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|x86.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|Any CPU.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|iPhone.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|iPhone.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|x86.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|x86.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|iPhone.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|x86.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|Any CPU.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|iPhone.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|iPhone.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|x86.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|x86.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|iPhone.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|x86.ActiveCfg = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|x86.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|Any CPU.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|iPhone.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|iPhone.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|x86.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|x86.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|Any CPU.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|iPhone.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|x86.ActiveCfg = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|x86.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|Any CPU.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|Any CPU.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|iPhone.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|iPhone.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|x86.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|x86.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|iPhone.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|x86.ActiveCfg = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|x86.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|Any CPU.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|iPhone.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|iPhone.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|x86.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|x86.Build.0 = Release|Any CPU
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|Any CPU.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|Any CPU.Build.0 = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|iPhone.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|x86.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|x86.Build.0 = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|Any CPU.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|Any CPU.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|iPhone.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|iPhoneSimulator.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|x86.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|x86.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|Any CPU.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|Any CPU.Build.0 = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|iPhone.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|x86.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|x86.Build.0 = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|Any CPU.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|Any CPU.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|iPhone.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|iPhoneSimulator.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|x86.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|x86.Build.0 = Release|x86
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|iPhone.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|x86.ActiveCfg = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|x86.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|Any CPU.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|iPhone.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|iPhone.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|x86.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|x86.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|iPhone.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|x86.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|Any CPU.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|iPhone.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|iPhone.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|x86.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|x86.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|iPhone.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x86.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x86.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|iPhone.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|iPhone.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x86.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|x86.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|iPhone.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|x86.ActiveCfg = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|x86.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|Any CPU.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|iPhone.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|iPhone.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|x86.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|x86.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|iPhone.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|x86.ActiveCfg = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|x86.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|Any CPU.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|iPhone.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|iPhone.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|x86.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|x86.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|iPhone.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|x86.ActiveCfg = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|x86.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|Any CPU.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|iPhone.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|iPhone.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|x86.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|x86.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|iPhone.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|x86.ActiveCfg = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|x86.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|Any CPU.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|iPhone.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|iPhone.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|x86.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|x86.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|iPhone.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|x86.ActiveCfg = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|x86.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|Any CPU.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|iPhone.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|iPhone.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|x86.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|x86.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhone.Build.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhone.Deploy.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.ActiveCfg = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.Build.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.Deploy.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhone.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhone.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhone.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|x86.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|x86.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|x86.Deploy.0 = Release|Any CPU
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhone.ActiveCfg = Debug|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhone.Build.0 = Debug|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhone.ActiveCfg = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhone.Build.0 = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|x86.ActiveCfg = Release|iPhoneSimulator
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|Any CPU.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|iPhone.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|x86.ActiveCfg = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|x86.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|Any CPU.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|Any CPU.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|iPhone.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|iPhone.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|x86.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|x86.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|iPhone.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|x86.ActiveCfg = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|x86.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|Any CPU.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|iPhone.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|iPhone.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|x86.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|x86.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|iPhone.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|x86.ActiveCfg = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|x86.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|Any CPU.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|iPhone.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|iPhone.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|x86.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|x86.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|Any CPU.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|iPhone.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|x86.ActiveCfg = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|x86.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|Any CPU.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|Any CPU.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|iPhone.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|iPhone.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|x86.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|x86.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|iPhone.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|x86.ActiveCfg = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|x86.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|Any CPU.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|iPhone.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|iPhone.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|x86.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|x86.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|iPhone.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|x86.ActiveCfg = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|x86.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|Any CPU.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|iPhone.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|iPhone.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|x86.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|x86.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|iPhone.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|x86.ActiveCfg = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|x86.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|Any CPU.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|iPhone.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|iPhone.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|x86.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|x86.Build.0 = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|iPhone.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|x86.ActiveCfg = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|x86.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|Any CPU.Build.0 = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|iPhone.ActiveCfg = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|iPhone.Build.0 = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|x86.ActiveCfg = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|x86.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|iPhone.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|x86.ActiveCfg = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|x86.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|Any CPU.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|iPhone.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|iPhone.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|x86.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{512B0511-41AB-444D-BAD8-E19B7D3B52CB} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{8B9F2E93-B31B-4BA7-920D-732695A473E6} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{7C8D906E-426B-49AB-9072-178555370F62} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{F8F6973C-5831-43D1-89C2-1AD543CE7408} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{6CD71E14-5036-4A16-8084-4AD108D34FF7} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B} = {EBC9DD0C-F7D0-4A00-B263-E69CF4E194F1}
{0073A08E-6336-4C09-99F9-2E808889D715} = {EBC9DD0C-F7D0-4A00-B263-E69CF4E194F1}
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA} = {EBC9DD0C-F7D0-4A00-B263-E69CF4E194F1}
{66B7BFD6-6D4D-421B-BA5B-915348E53708} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{0A624994-B0A9-4F1F-B7D0-97FE2929936B} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{D1F15D97-802E-4AA3-A4A5-B890ABE32897} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{141532E1-540E-4E50-8723-96936C191281} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{35D60129-6652-4B6E-A04A-9766C3CF1869} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8} = {5A7A506C-4DFF-4941-A9A6-B1182C7D5825}
{8EDF4429-251A-416D-BB68-93F227191BCF} = {EBC9DD0C-F7D0-4A00-B263-E69CF4E194F1}
{ABAF70E5-A582-4916-B217-6A660BB31D52} = {5A7A506C-4DFF-4941-A9A6-B1182C7D5825}
{64F63608-1390-41D1-8568-F4E05AE35E75} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{A040865C-FA5F-486A-9CC9-96CF34859FBD} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{981AB416-A954-4A68-9521-BC71C5AEE058} = {5A7A506C-4DFF-4941-A9A6-B1182C7D5825}
{90E4B24A-8A7E-4163-837B-BEC7419A7A97} = {B43459A1-709B-4623-9677-AAC2FEE4FBA3}
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{314F0805-EB94-4685-B0EF-BF9418D19003} = {2D44BDCF-B70C-4C02-BDC8-4F1DD5066A75}
{6E3D25E9-544E-498A-8F23-BC4E767FF01B} = {5A7A506C-4DFF-4941-A9A6-B1182C7D5825}
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{09591D9E-2186-42F1-B6C6-375326E2CF2E} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{38A8EE9F-81A8-4B11-A6E9-864A12C43089} = {8EB91F53-1062-4E9B-8E4A-096F35EA688D}
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1} = {5A7A506C-4DFF-4941-A9A6-B1182C7D5825}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3833E7C5-69BC-4CB3-92CE-A8854AA35D8A}
EndGlobalSection
EndGlobal
-348
View File
@@ -113,10 +113,6 @@ Global
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Debug|x86 = Debug|x86
Nuget_Release|Any CPU = Nuget_Release|Any CPU
Nuget_Release|iPhone = Nuget_Release|iPhone
Nuget_Release|iPhoneSimulator = Nuget_Release|iPhoneSimulator
Nuget_Release|x86 = Nuget_Release|x86
Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
@@ -131,14 +127,6 @@ Global
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|x86.ActiveCfg = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Debug|x86.Build.0 = Debug|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Nuget_Release|x86.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|Any CPU.Build.0 = Release|Any CPU
{512B0511-41AB-444D-BAD8-E19B7D3B52CB}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -155,14 +143,6 @@ Global
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Debug|x86.Build.0 = Debug|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Nuget_Release|x86.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|Any CPU.Build.0 = Release|Any CPU
{8B9F2E93-B31B-4BA7-920D-732695A473E6}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -179,14 +159,6 @@ Global
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|x86.ActiveCfg = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Debug|x86.Build.0 = Debug|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Nuget_Release|x86.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|Any CPU.Build.0 = Release|Any CPU
{E7468FDD-75F7-4B08-BA47-B715BBCFCC11}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -203,14 +175,6 @@ Global
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Debug|x86.Build.0 = Debug|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Nuget_Release|x86.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|Any CPU.Build.0 = Release|Any CPU
{7C8D906E-426B-49AB-9072-178555370F62}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -227,14 +191,6 @@ Global
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|x86.ActiveCfg = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Debug|x86.Build.0 = Debug|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Nuget_Release|x86.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|Any CPU.Build.0 = Release|Any CPU
{F8F6973C-5831-43D1-89C2-1AD543CE7408}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -251,14 +207,6 @@ Global
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|x86.ActiveCfg = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Debug|x86.Build.0 = Debug|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Nuget_Release|x86.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|Any CPU.Build.0 = Release|Any CPU
{6CD71E14-5036-4A16-8084-4AD108D34FF7}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -275,14 +223,6 @@ Global
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|x86.ActiveCfg = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Debug|x86.Build.0 = Debug|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Nuget_Release|x86.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|Any CPU.Build.0 = Release|Any CPU
{65DE552F-5E62-4E4F-ADCB-F19AD3DB3F78}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -299,14 +239,6 @@ Global
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|x86.ActiveCfg = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Debug|x86.Build.0 = Debug|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Nuget_Release|x86.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|Any CPU.Build.0 = Release|Any CPU
{B9D4C8C7-BF96-417B-A7F8-9A67AE75A38B}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -323,14 +255,6 @@ Global
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|x86.ActiveCfg = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Debug|x86.Build.0 = Debug|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Nuget_Release|x86.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|Any CPU.Build.0 = Release|Any CPU
{0073A08E-6336-4C09-99F9-2E808889D715}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -351,18 +275,6 @@ Global
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.ActiveCfg = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.Build.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Debug|x86.Deploy.0 = Debug|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|Any CPU.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhone.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|x86.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Nuget_Release|x86.Deploy.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.Build.0 = Release|Any CPU
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA}.Release|Any CPU.Deploy.0 = Release|Any CPU
@@ -383,14 +295,6 @@ Global
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|x86.ActiveCfg = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Debug|x86.Build.0 = Debug|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Nuget_Release|x86.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|Any CPU.Build.0 = Release|Any CPU
{66B7BFD6-6D4D-421B-BA5B-915348E53708}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -407,14 +311,6 @@ Global
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|x86.ActiveCfg = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Debug|x86.Build.0 = Debug|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Nuget_Release|x86.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|Any CPU.Build.0 = Release|Any CPU
{0A624994-B0A9-4F1F-B7D0-97FE2929936B}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -431,14 +327,6 @@ Global
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|x86.ActiveCfg = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Debug|x86.Build.0 = Debug|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Nuget_Release|x86.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|Any CPU.Build.0 = Release|Any CPU
{D1F15D97-802E-4AA3-A4A5-B890ABE32897}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -455,14 +343,6 @@ Global
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|x86.ActiveCfg = Debug|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Debug|x86.Build.0 = Debug|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|x86.ActiveCfg = Release|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Nuget_Release|x86.Build.0 = Release|x86
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|Any CPU.Build.0 = Release|Any CPU
{2FFA5BCE-B3C3-46EA-8830-838C938BF814}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -479,14 +359,6 @@ Global
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|x86.ActiveCfg = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Debug|x86.Build.0 = Debug|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Nuget_Release|x86.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|Any CPU.Build.0 = Release|Any CPU
{4F09B6D1-3F83-45A0-AEC8-0F243E7CD263}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -503,14 +375,6 @@ Global
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Debug|x86.Build.0 = Debug|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Nuget_Release|x86.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|Any CPU.Build.0 = Release|Any CPU
{D4CF08F5-8EAB-48FB-AAA3-1A221F7B2A82}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -527,14 +391,6 @@ Global
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|x86.ActiveCfg = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Debug|x86.Build.0 = Debug|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Nuget_Release|x86.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|Any CPU.Build.0 = Release|Any CPU
{948C1EA8-12DB-4F8A-A190-8615DFBD9FE4}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -551,14 +407,6 @@ Global
{141532E1-540E-4E50-8723-96936C191281}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|x86.ActiveCfg = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Debug|x86.Build.0 = Debug|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Nuget_Release|x86.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|Any CPU.ActiveCfg = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|Any CPU.Build.0 = Release|Any CPU
{141532E1-540E-4E50-8723-96936C191281}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -575,14 +423,6 @@ Global
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Debug|x86.ActiveCfg = Debug|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Debug|x86.Build.0 = Debug|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Nuget_Release|x86.Build.0 = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Release|Any CPU.Build.0 = Release|Any CPU
{60530AF8-4790-4A85-BCE2-C5673E9C601B}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -599,14 +439,6 @@ Global
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Debug|x86.ActiveCfg = Debug|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Debug|x86.Build.0 = Debug|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Nuget_Release|x86.Build.0 = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Release|Any CPU.Build.0 = Release|Any CPU
{5A539932-2EB9-40F6-A4C1-94E5ECAB3B34}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -623,14 +455,6 @@ Global
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|x86.ActiveCfg = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Debug|x86.Build.0 = Debug|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Nuget_Release|x86.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|Any CPU.Build.0 = Release|Any CPU
{D018C980-17FD-49BB-A95D-EDE3C18BBE0A}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -645,14 +469,6 @@ Global
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|x86.ActiveCfg = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Debug|x86.Build.0 = Debug|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|Any CPU.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|Any CPU.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|iPhone.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|iPhone.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|iPhoneSimulator.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|x86.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Nuget_Release|x86.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|Any CPU.ActiveCfg = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|Any CPU.Build.0 = Release|x86
{6DD9644F-F005-4C19-8ADF-70C303EC5BB8}.Release|iPhone.ActiveCfg = Release|x86
@@ -665,14 +481,6 @@ Global
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|x86.ActiveCfg = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Debug|x86.Build.0 = Debug|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|Any CPU.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|Any CPU.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|iPhone.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|iPhone.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|iPhoneSimulator.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|x86.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Nuget_Release|x86.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|Any CPU.ActiveCfg = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|Any CPU.Build.0 = Release|x86
{3C05CED6-7712-40F0-AF17-8DD3F4C0A224}.Release|iPhone.ActiveCfg = Release|x86
@@ -687,14 +495,6 @@ Global
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|x86.ActiveCfg = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Debug|x86.Build.0 = Debug|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Nuget_Release|x86.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|Any CPU.Build.0 = Release|Any CPU
{35D60129-6652-4B6E-A04A-9766C3CF1869}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -711,14 +511,6 @@ Global
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Debug|x86.Build.0 = Debug|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Nuget_Release|x86.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|Any CPU.Build.0 = Release|Any CPU
{CF7C2B80-D393-45EA-A67D-DF46FF17B0F8}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -735,14 +527,6 @@ Global
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x86.ActiveCfg = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Debug|x86.Build.0 = Debug|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Nuget_Release|x86.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|Any CPU.Build.0 = Release|Any CPU
{8EDF4429-251A-416D-BB68-93F227191BCF}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -759,14 +543,6 @@ Global
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|x86.ActiveCfg = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Debug|x86.Build.0 = Debug|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Nuget_Release|x86.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|Any CPU.Build.0 = Release|Any CPU
{ABAF70E5-A582-4916-B217-6A660BB31D52}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -783,14 +559,6 @@ Global
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|x86.ActiveCfg = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Debug|x86.Build.0 = Debug|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Nuget_Release|x86.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|Any CPU.Build.0 = Release|Any CPU
{39C26BF0-E5FE-42B1-B011-B7300847DED6}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -807,14 +575,6 @@ Global
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|x86.ActiveCfg = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Debug|x86.Build.0 = Debug|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Nuget_Release|x86.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|Any CPU.Build.0 = Release|Any CPU
{64F63608-1390-41D1-8568-F4E05AE35E75}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -831,14 +591,6 @@ Global
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|x86.ActiveCfg = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Debug|x86.Build.0 = Debug|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Nuget_Release|x86.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|Any CPU.Build.0 = Release|Any CPU
{A040865C-FA5F-486A-9CC9-96CF34859FBD}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -855,14 +607,6 @@ Global
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|x86.ActiveCfg = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Debug|x86.Build.0 = Debug|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Nuget_Release|x86.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|Any CPU.Build.0 = Release|Any CPU
{1B8B3C1D-8095-44F2-8106-46A69D5ECF94}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -883,18 +627,6 @@ Global
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.ActiveCfg = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.Build.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Debug|x86.Deploy.0 = Debug|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|Any CPU.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhone.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|x86.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Nuget_Release|x86.Deploy.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.Build.0 = Release|Any CPU
{B355E372-27D2-4217-A129-D3355573681F}.Release|Any CPU.Deploy.0 = Release|Any CPU
@@ -913,14 +645,6 @@ Global
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|Any CPU.ActiveCfg = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|Any CPU.Build.0 = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|iPhone.ActiveCfg = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|iPhone.Build.0 = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|x86.ActiveCfg = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Nuget_Release|x86.Build.0 = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhone.ActiveCfg = Release|iPhone
{AFC828ED-21EE-4FD4-A40D-FEFED5EED4EA}.Release|iPhone.Build.0 = Release|iPhone
@@ -935,14 +659,6 @@ Global
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|x86.ActiveCfg = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Debug|x86.Build.0 = Debug|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Nuget_Release|x86.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|Any CPU.ActiveCfg = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|Any CPU.Build.0 = Release|Any CPU
{981AB416-A954-4A68-9521-BC71C5AEE058}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -959,14 +675,6 @@ Global
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|x86.ActiveCfg = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Debug|x86.Build.0 = Debug|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Nuget_Release|x86.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|Any CPU.Build.0 = Release|Any CPU
{90E4B24A-8A7E-4163-837B-BEC7419A7A97}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -983,14 +691,6 @@ Global
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|x86.ActiveCfg = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Debug|x86.Build.0 = Debug|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Nuget_Release|x86.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|Any CPU.Build.0 = Release|Any CPU
{B626F392-53EF-4894-B7AD-E6AFBFA68E8C}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1007,14 +707,6 @@ Global
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|x86.ActiveCfg = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Debug|x86.Build.0 = Debug|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Nuget_Release|x86.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|Any CPU.ActiveCfg = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|Any CPU.Build.0 = Release|Any CPU
{314F0805-EB94-4685-B0EF-BF9418D19003}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1031,14 +723,6 @@ Global
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|x86.ActiveCfg = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Debug|x86.Build.0 = Debug|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Nuget_Release|x86.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|Any CPU.Build.0 = Release|Any CPU
{6E3D25E9-544E-498A-8F23-BC4E767FF01B}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1055,14 +739,6 @@ Global
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|x86.ActiveCfg = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Debug|x86.Build.0 = Debug|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Nuget_Release|x86.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|Any CPU.Build.0 = Release|Any CPU
{71F3F25A-47A7-4F3D-97A7-50394E7EE21B}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1079,14 +755,6 @@ Global
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|x86.ActiveCfg = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Debug|x86.Build.0 = Debug|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Nuget_Release|x86.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|Any CPU.Build.0 = Release|Any CPU
{09591D9E-2186-42F1-B6C6-375326E2CF2E}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1103,14 +771,6 @@ Global
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|x86.ActiveCfg = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Debug|x86.Build.0 = Debug|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|Any CPU.ActiveCfg = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|Any CPU.Build.0 = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|iPhone.ActiveCfg = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|iPhone.Build.0 = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|iPhoneSimulator.ActiveCfg = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|iPhoneSimulator.Build.0 = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|x86.ActiveCfg = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Nuget_Release|x86.Build.0 = Nuget_Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|Any CPU.Build.0 = Release|Any CPU
{38A8EE9F-81A8-4B11-A6E9-864A12C43089}.Release|iPhone.ActiveCfg = Release|Any CPU
@@ -1127,14 +787,6 @@ Global
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|x86.ActiveCfg = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Debug|x86.Build.0 = Debug|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|Any CPU.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|Any CPU.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|iPhone.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|iPhone.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|x86.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Nuget_Release|x86.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|Any CPU.Build.0 = Release|Any CPU
{5E8F54E8-02A6-45D9-A7F9-7C9B43705BE1}.Release|iPhone.ActiveCfg = Release|Any CPU
+14 -19
View File
@@ -1,35 +1,30 @@
# 前言
Steam++项目创建于2018年5月8日,不过并不是耗时两年才做出来,之前一直由于工作原因,并没有多少空闲时间,直到今年中旬辞职了,才开始猛肝。
本来是想一直做到完全体了,才考虑发布,不过现在感慨一下,果然是没法这么快就整完的,所以还是一版一版更新做到完全体吧。
Steam++只在keylol论坛与github发布,为了账号安全,请不要到其它不明地方下载。
Steam++项目创建于2018年5月8日,不过并不是耗时三年才做出来,之前一直由于软软(软件原作者)的工作原因,并没有多少空闲时间,直到去年中旬软软辞职了,才开始猛肝。
去年年底发布了Steam++的第一个版本,受到了其乐广大用户的喜爱,并有了高达数百位网友的赞助支持。在此动力下,一直一个人更新维护到今年2月份。之后又找来几位朋友一起全职合作开发,并创立了我们自己的公司来进行运营这一产品。
在每人每天近16小时的高强度爆肝下,我们使用了最新的技术、最新的框架,将Steam++原先的代码全部重写,重新制作了UI。于是乎,Steam++2.0崭新出炉了。
Steam++目前处于一个完全开源的状态,所以对于软件报毒可以不用担心安全问题。我们也制作了自己的产品官网https://www.steampp.net,大家可以去官网下载到我们的工具。
# Steam++工具箱
## 已知的未修复问题
* 部分用户无法加载游戏列表,原因可能是因为第一次加载游戏列表时未加载完成程序停止运行了,导致生成了错误的缓存文件apps.json,如果遇到此问题可尝试手动删除程序目录下的apps.json然后重启程序。
## 更新内容
### 1.1.4
### 2.0.0.6
```
更新内容
     修复成就图标加载失败
     优化反代速度
     修复steam图片反代启动时创意工坊图片显示不了的问题
     修复uplay更新反代启动时更新失败的问题
     添加windows系统代理方式(该方式进行代理将不需要修改hosts文件以及不用占用443端口)
添加steam更新代理服务以此解决部分用户无法更新Steam的问题
```
## 工具介绍
`Steam++`是一个包含多种Steam工具功能的工具箱,开源发布于[Github](https://github.com/rmbadmin/SteamTools),如果您对发布的二进制文件不放心,可以自行下载源码编译运行。
此工具的大部分功能都是需要您下载安装Steam才能使用。
工具预计将整合进大部分常用的Steam相关工具,并且尽力做到比原工具更好用,在各种整合添加功能的同时,也会注意体积尽量的控制到最小。
「Steam++」是一个包含多种Steam工具功能的工具箱,所有功能完全免费,开源发布于Github,如果您对发布的二进制文件不放心,可以自行下载源码编译运行。
此工具的大部分功能都是需要您下载安装Steam才能使用。
工具预计将整合进大部分常用的Steam相关工具,并且尽力做到比原工具更好用。
软件截图
[hide]
@@ -1,4 +1,4 @@
using MessagePack;
using MessagePack;
using System.Application.Entities;
using System.Linq;
using System.Properties;
@@ -14,7 +14,7 @@ namespace System.Application.Services.Implementation
if (areas == null)
{
var lz4Options = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);
areas = MessagePackSerializer.Deserialize<TArea[]>(SR.AMap_adcode_citycode_20210406_xlsx_mpo, lz4Options);
areas = MessagePackSerializer.Deserialize<TArea[]>(SR.AMap_adcode_citycode_20210406_xlsx, lz4Options);
}
return areas;
}
+1 -1
View File
@@ -17,7 +17,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj"/>
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj" />
</ItemGroup>
<ItemGroup>
+2 -2
View File
@@ -63,9 +63,9 @@ namespace System.Properties {
/// <summary>
/// 查找 System.Byte[] 类型的本地化资源。
/// </summary>
internal static byte[] AMap_adcode_citycode_20210406_xlsx_mpo {
internal static byte[] AMap_adcode_citycode_20210406_xlsx {
get {
object obj = ResourceManager.GetObject("AMap_adcode_citycode_20210406.xlsx.mpo", resourceCulture);
object obj = ResourceManager.GetObject("AMap_adcode_citycode_20210406_xlsx", resourceCulture);
return ((byte[])(obj));
}
}
+3 -3
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="AMap_adcode_citycode_20210406.xlsx.mpo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\..\..\Resources\Areas\AMap_adcode_citycode_20210406.xlsx.mpo;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<data name="AMap_adcode_citycode_20210406_xlsx" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AMap_adcode_citycode_20210406.xlsx.mpo;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>
@@ -1,4 +1,4 @@
using System.Linq;
using System.Linq;
using System.Security.Cryptography;
using System.Threading.Tasks;
using static System.Application.Services.ILocalDataProtectionProvider;
@@ -45,6 +45,8 @@ namespace System.Application.Services.Implementation
_aes = new Lazy<Aes>(() =>
{
(byte[] key, byte[] iv) = MachineSecretKey;
// https://github.com/dotnet/runtime/issues/42214#issuecomment-698495584
// AES CFB in Windows 7 catch Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Unknown error (0xc10000bb)
var r = AESUtils.Create(key, iv, CipherMode.CFB, PaddingMode.PKCS7);
return r;
});
@@ -1,4 +1,4 @@
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging;
namespace System.Net.Http
{
@@ -39,7 +39,7 @@ namespace System.Net.Http
public static int DefaultTimeoutTotalMilliseconds => mDefaultTimeoutTotalMilliseconds.Value;
/// <inheritdoc cref="DefaultTimeout"/>
protected virtual TimeSpan Timeout { get; } = DefaultTimeout;
protected /*virtual*/ TimeSpan Timeout { get; } = DefaultTimeout;
protected virtual HttpClient CreateClient(string? clientName = null)
{
@@ -2,7 +2,7 @@ namespace System.Properties
{
public static class ThisAssembly
{
public const string Version = "2.0.0.6";
public const string Version = "2.0.0.8";
public const string InfoVersion = Version + "-beta";
@@ -1,4 +1,4 @@
using Polly;
using Polly;
using SQLite;
using System.Application.Entities;
using System.Collections.Generic;
@@ -120,6 +120,7 @@ namespace System.Application.UI
try
{
DI.Get<IHttpProxyService>().StopProxy();
IHostsFileService.OnExitRestoreHosts();
}
catch (Exception ex_restore_hosts)
@@ -3,7 +3,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<!--<DefineConstants>StartupTrace;$(DefineConstants)</DefineConstants>-->
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<SignAssembly>false</SignAssembly>
<!--(SignAssembly)对此程序集进行签名会导致编译失败(CompileAvaloniaXamlTask)-->
<RootNamespace>System.Application.UI</RootNamespace>
@@ -64,37 +64,37 @@
</PropertyGroup>
<!--<ItemGroup>
<TrimmerRootAssembly Include="CefNet" />
<TrimmerRootAssembly Include="CefNet.Avalonia" />
<TrimmerRootAssembly Include="CefNet"/>
<TrimmerRootAssembly Include="CefNet.Avalonia"/>
</ItemGroup>-->
<ItemGroup>
<Compile Include="..\Startup2.cs" />
<Compile Include="..\Startup2.cs"/>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ST.Client.Desktop.Avalonia\ST.Client.Desktop.Avalonia.csproj" />
<ProjectReference Include="..\ST.Client.Desktop\ST.Client.Desktop.csproj" />
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj" />
<ProjectReference Include="..\ST.Client.Desktop.Avalonia\ST.Client.Desktop.Avalonia.csproj"/>
<ProjectReference Include="..\ST.Client.Desktop\ST.Client.Desktop.csproj"/>
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj"/>
</ItemGroup>
<ItemGroup Condition=" $(RuntimeIdentifier.Contains(`win`)) Or ('$(OS)' == 'Windows_NT' And !$(DefineConstants.Contains(`PUBLISH`))) ">
<ProjectReference Include="..\ST.Client.Desktop.Windows\ST.Client.Desktop.Windows.csproj" />
<ProjectReference Include="..\ST.Client.Desktop.Windows\ST.Client.Desktop.Windows.csproj"/>
</ItemGroup>
<!--<ItemGroup Condition=" $(RuntimeIdentifier.Contains(`win`)) And $(DefineConstants.Contains(`PUBLISH`)) ">
<PackageReference Include="System.Reactive" Version="5.0.0.1-exclude-winforms" />
<PackageReference Include="System.Reactive" Version="5.0.0.1-exclude-winforms"/>
</ItemGroup>-->
<ItemGroup Condition=" $(RuntimeIdentifier.Contains(`osx`)) Or ('$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true' And !$(DefineConstants.Contains(`PUBLISH`))) ">
<ProjectReference Include="..\ST.Client.Desktop.Mac\ST.Client.Desktop.Mac.csproj" />
<ProjectReference Include="..\ST.Client.Desktop.Mac\ST.Client.Desktop.Mac.csproj"/>
</ItemGroup>
<ItemGroup Condition=" $(RuntimeIdentifier.Contains(`linux`)) Or ('$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true' And !$(DefineConstants.Contains(`PUBLISH`))) ">
<ProjectReference Include="..\ST.Client.Desktop.Linux\ST.Client.Desktop.Linux.csproj" />
<ProjectReference Include="..\ST.Client.Desktop.Linux\ST.Client.Desktop.Linux.csproj"/>
</ItemGroup>
<!--<ItemGroup Condition=" '$(OS)' == 'Windows_NT' And $(RuntimeIdentifier.Contains(`osx`)) And $(DefineConstants.Contains(`PUBLISH`)) ">
@@ -118,7 +118,7 @@
<AvaloniaResource Include="**\*.xaml">
<SubType>Designer</SubType>
</AvaloniaResource>
<AvaloniaResource Include="Assets\**" />
<AvaloniaResource Include="Assets\**"/>
</ItemGroup>
<ItemGroup Condition=" $(RuntimeIdentifier.Contains(`win`)) Or ('$(OS)' == 'Windows_NT' And !$(DefineConstants.Contains(`PUBLISH`))) ">
@@ -138,22 +138,22 @@
</ItemGroup>
<ItemGroup Condition="Exists('$(MSBuildProjectDirectory)\..\..\aes-key.pfx')">
<EmbeddedResource Include="..\..\aes-key.pfx" Link="Resources\3A613E8D" />
<EmbeddedResource Include="..\..\aes-key.pfx" Link="Resources\3A613E8D"/>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug' And Exists('$(MSBuildProjectDirectory)\..\..\app-id-debug.pfx')">
<EmbeddedResource Include="..\..\app-id-debug.pfx" Link="Resources\0093BF84" />
<EmbeddedResource Include="..\..\app-id-debug.pfx" Link="Resources\0093BF84"/>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug' And Exists('$(MSBuildProjectDirectory)\..\..\rsa-public-key-debug.pfx')">
<EmbeddedResource Include="..\..\rsa-public-key-debug.pfx" Link="Resources\6D72ED26" />
<EmbeddedResource Include="..\..\rsa-public-key-debug.pfx" Link="Resources\6D72ED26"/>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Release' And Exists('$(MSBuildProjectDirectory)\..\..\app-id-release.pfx')">
<EmbeddedResource Include="..\..\app-id-release.pfx" Link="Resources\F1D827AB" />
<EmbeddedResource Include="..\..\app-id-release.pfx" Link="Resources\F1D827AB"/>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Release' And Exists('$(MSBuildProjectDirectory)\..\..\rsa-public-key-release.pfx')">
<EmbeddedResource Include="..\..\rsa-public-key-release.pfx" Link="Resources\E88CA4F9" />
<EmbeddedResource Include="..\..\rsa-public-key-release.pfx" Link="Resources\E88CA4F9"/>
</ItemGroup>
</Project>
@@ -7,7 +7,7 @@ namespace System.Application.UI.Views
{
public class MainWindow : FluentWindow
{
public MainWindow()
public MainWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -1,4 +1,4 @@
using Avalonia.Threading;
using Avalonia.Threading;
using CefNet;
using System.Application.Models;
using System.Globalization;
@@ -205,9 +205,26 @@ navigator.__proto__ = newProto;
var theme = AppHelper.Current.Theme;
return theme switch
{
AppTheme.FollowingSystem => "auto",
AppTheme.FollowingSystem => GetThemeStringByFollowingSystem(),
_ => theme.ToString(),
};
static string GetThemeStringByFollowingSystem()
{
if (DI.Platform == Platform.Windows)
{
var major = Environment.OSVersion.Version.Major;
if (major < 10 || major == 10 && Environment.OSVersion.Version.Build < 18282)
{
goto dark;
}
}
else if (DI.Platform == Platform.Linux)
{
goto dark;
}
return "auto";
dark: return AppTheme.Dark.ToString();
}
}
}
@@ -5,6 +5,10 @@ using CefNet.Internal;
using System.Application.Services.CloudService;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net.Http.Headers;
using System.Security.Cryptography;
using static System.Application.Services.CloudService.Constants;
// ReSharper disable once CheckNamespace
@@ -43,7 +47,29 @@ namespace System.Application.UI.Views.Controls
RaiseEvent(e);
}
/// <summary>
/// 在浏览器中打开新窗口,所有新页面打开的Url会在浏览器中打开
/// </summary>
public bool OpenInBrowser { get; set; } = true;
/// <summary>
/// 是否固定单页,为 <see langword="true"/> 时所有跳转都将在浏览器中打开
/// </summary>
public bool FixedSinglePage { get; set; } = false;
/// <summary>
/// 需要拦截响应流的Url
/// </summary>
public string[]? StreamResponseFilterUrls { get; set; }
/// <summary>
/// 拦截响应流的处理
/// </summary>
public Action<string, byte[]>? OnStreamResponseFilterResourceLoadComplete { get; set; }
public bool IsSecurity { get; set; }
public Aes? Aes { get; internal set; }
}
public class FullscreenModeChangeEventArgs : RoutedEventArgs
@@ -155,6 +181,11 @@ namespace System.Application.UI.Views.Controls
protected override bool OnBeforePopup(CefBrowser browser, CefFrame frame, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref CefDictionaryValue extraInfo, ref int noJavascriptAccess)
{
if (webView.FixedSinglePage)
{
BrowserOpen(targetUrl);
return true;
}
switch (targetDisposition)
{
case CefWindowOpenDisposition.NewForegroundTab:
@@ -168,7 +199,10 @@ namespace System.Application.UI.Views.Controls
else
{
// 禁止创建新窗口,仅在当前窗口跳转
browser.MainFrame.LoadUrl(targetUrl);
if (IsHttpUrl(targetUrl))
{
browser.MainFrame.LoadUrl(targetUrl);
}
}
return true;
}
@@ -181,6 +215,15 @@ namespace System.Application.UI.Views.Controls
if (request.Url.StartsWith(sc.ApiBaseUrl, StringComparison.OrdinalIgnoreCase))
{
request.SetHeaderByName(Headers.Request.AppVersion, sc.Settings.AppVersionStr, true);
if (webView.IsSecurity)
{
webView.Aes?.Dispose();
webView.Aes = AESUtils.Create();
var skey_bytes = webView.Aes.ToParamsByteArray();
var conn_helper = DI.Get<IApiConnectionPlatformHelper>();
var skey_str = conn_helper.RSA.EncryptToString(skey_bytes);
request.SetHeaderByName(Headers.Request.SecurityKey, skey_str, true);
}
}
var returnValue = base.OnBeforeResourceLoad(browser, frame, request, callback);
return returnValue;
@@ -217,5 +260,140 @@ namespace System.Application.UI.Views.Controls
// var returnValue = base.OnBeforeResourceLoad(browser, frame, request, callback);
// return returnValue;
//}
protected override void OnResourceLoadComplete(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response, CefUrlRequestStatus status, long receivedContentLength)
{
base.OnResourceLoadComplete(browser, frame, request, response, status, receivedContentLength);
if (responseDictionary.TryGetValue(request.Identifier, out var filter))
{
webView.OnStreamResponseFilterResourceLoadComplete?.Invoke(request.Url, filter.Data);
}
}
readonly Dictionary<ulong, StreamResponseFilter> responseDictionary = new();
protected override CefResponseFilter GetResourceResponseFilter(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response)
{
if (webView.StreamResponseFilterUrls != null && webView.StreamResponseFilterUrls.Contains(request.Url, StringComparer.OrdinalIgnoreCase))
{
var rspIsCiphertext = false;
if (webView.IsSecurity)
{
var contentType = response.GetHeaderByName("Content-Type");
if (!string.IsNullOrWhiteSpace(contentType) && MediaTypeHeaderValue.TryParse(contentType, out var contentType_))
{
var mime = contentType_.MediaType;
if (mime == MediaTypeNames.Security)
{
rspIsCiphertext = true;
}
}
}
var dataFilter = new StreamResponseFilter(webView, rspIsCiphertext);
responseDictionary.Add(request.Identifier, dataFilter);
return dataFilter;
}
return base.GetResourceResponseFilter(browser, frame, request, response);
}
/// <summary>
/// https://stackoverflow.com/questions/45816851/using-cefsharp-to-capture-resource-response-data-body
/// </summary>
unsafe class StreamResponseFilter : CefResponseFilter
{
readonly WebView3 webView;
readonly bool rspIsCiphertext;
MemoryStream? memoryStream;
public StreamResponseFilter(WebView3 webView, bool rspIsCiphertext)
{
this.webView = webView;
}
protected override bool InitFilter()
{
memoryStream = new();
return true;
}
protected override CefResponseFilterStatus Filter(IntPtr dataIn, long dataInSize, ref long dataInRead, IntPtr dataOut, long dataOutSize, ref long dataOutWritten)
{
Stream? dataInStream;
if (dataIn == default)
{
dataInStream = default;
}
else
{
var dataInBytePtr = (byte*)dataIn.ToPointer();
dataInStream = new UnmanagedMemoryStream(dataInBytePtr, dataInSize, dataInSize, FileAccess.Read);
}
var dataOutBytePtr = (byte*)dataOut.ToPointer();
UnmanagedMemoryStream dataOutStream = new(dataOutBytePtr, dataOutSize, dataOutSize, FileAccess.Write);
return Filter(dataInStream, dataInSize, ref dataInRead, dataOutStream, dataOutSize, ref dataOutWritten);
}
protected virtual CefResponseFilterStatus Filter(Stream? dataIn, long dataInSize, ref long dataInRead, Stream dataOut, long dataOutSize, ref long dataOutWritten)
{
if (dataIn == null)
{
dataInRead = 0;
dataOutWritten = 0;
return CefResponseFilterStatus.Done;
}
dataInRead = dataIn.Length;
dataOutWritten = Math.Min(dataInRead, dataOut.Length);
//Important we copy dataIn to dataOut
dataIn.CopyTo(dataOut);
//Copy data to stream
dataIn.Position = 0;
dataIn.CopyTo(memoryStream!);
return CefResponseFilterStatus.Done;
}
protected override void Dispose(bool disposing)
{
if (!disposing)
{
if (disposing)
{
if (memoryStream != null)
{
memoryStream.Dispose();
memoryStream = null;
}
}
}
base.Dispose(disposing);
}
byte[]? data;
public byte[] Data
{
get
{
if (data == null) data = GetData();
return data;
}
}
byte[] GetData()
{
var value = memoryStream!.ToArray();
if (rspIsCiphertext && webView.Aes != null)
{
value = webView.Aes.Decrypt(value);
}
return value;
}
}
}
}
@@ -120,13 +120,13 @@
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
CommandParameter="ChangeBindPhoneNumber"></Button>
</ListBoxItem>
<ListBoxItem>
<!--<ListBoxItem>
<Button
Classes="CodeButton"
Content="{ReflectionBinding Path=Res.DelAccount,Mode=OneWay,Source={x:Static resx:R.Current}}"
Command="{ReflectionBinding Path=ShowWindow,Source={x:Static service:UserService.Current}}"
CommandParameter="ChangeBindPhoneNumber"></Button>
</ListBoxItem>
</ListBoxItem>-->
<ListBoxItem>
<Button
Classes="CodeButton"
@@ -5,5 +5,8 @@
xmlns:controls="clr-namespace:System.Application.UI.Views.Controls;assembly=System.Application.SteamTools.Client.Desktop.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="System.Application.UI.Views.Pages.About_FAQPage">
<controls:WebView3 x:Name="webViewQA" Background="Transparent" />
<Panel>
<controls:WebView3 x:Name="webViewQA" Background="Transparent" />
<controls:ProgressRing x:Name="webViewQALoading" IsIndeterminate="True" HorizontalAlignment="Stretch" Height="100" Width="100" />
</Panel>
</UserControl>
@@ -2,6 +2,7 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml;
using CefNet;
using System.Application.UI.Resx;
using System.Application.UI.Views.Controls;
@@ -10,19 +11,32 @@ namespace System.Application.UI.Views.Pages
public class About_FAQPage : UserControl, IDisposable
{
readonly WebView3 webViewQA;
readonly ProgressRing webViewQALoading;
bool disposedValue;
public About_FAQPage()
{
InitializeComponent();
webViewQALoading = this.FindControl<ProgressRing>(nameof(webViewQALoading));
webViewQA = this.FindControl<WebView3>(nameof(webViewQA));
webViewQA.Opacity = 0;
webViewQA.LoadingStateChange += WebView_LoadingStateChange;
webViewQA.InitialUrl = string.Format(
"https://steampp.net/faqbox?theme={0}&language={1}",
CefNetApp.GetTheme(),
R.Language);
}
private void WebView_LoadingStateChange(object? sender, LoadingStateChangeEventArgs e)
{
if (!e.Busy)
{
if (webViewQA.Opacity != 1) webViewQA.Opacity = 1;
if (webViewQALoading.IsVisible) webViewQALoading.IsVisible = false;
}
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
@@ -34,12 +48,6 @@ namespace System.Application.UI.Views.Pages
Dispose();
}
protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
{
base.OnDetachedFromVisualTree(e);
Dispose();
}
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
@@ -49,6 +57,7 @@ namespace System.Application.UI.Views.Pages
// TODO: 释放托管状态(托管对象)
if (webViewQA != null)
{
webViewQA.LoadingStateChange -= WebView_LoadingStateChange;
((IDisposable)webViewQA).Dispose();
}
}
@@ -76,7 +76,9 @@
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
</UserControl.Styles>
<Border Padding="{StaticResource PageMargin2}">
<ScrollViewer HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"
Padding="{StaticResource PageMargin2}">
<DockPanel>
<StackPanel Spacing="10" DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal">
@@ -201,5 +203,5 @@
<Panel Height="150" />
</DockPanel>
</DockPanel>
</Border>
</ScrollViewer>
</UserControl>
@@ -228,7 +228,7 @@
</MenuItem.Icon>
</MenuItem>
<!--<MenuItem
Header="{ReflectionBinding Path=Res.Edit,Mode=OneWay,Source={x:Static resx:R.Current}}"
Header="{ReflectionBinding Path=Res.GameList_EditAppInfo,Mode=OneWay,Source={x:Static resx:R.Current}}"
Command="{ReflectionBinding #u.DataContext.OfflineModeButton_Click}"
CommandParameter="{Binding}" />-->
<MenuItem
@@ -40,7 +40,7 @@
</Button>
<Button Background="Transparent" Cursor="Hand"
Command="{Binding ScriptStoreCommand}"
ToolTip.Tip="{ReflectionBinding Path=Res.Script_Shop,Mode=OneWay,Source={x:Static resx:R.Current}}">
ToolTip.Tip="{ReflectionBinding Path=Res.ScriptStore,Mode=OneWay,Source={x:Static resx:R.Current}}">
<PathIcon Width="16" Data="{StaticResource JavaScriptDrawing}" />
</Button>
</StackPanel>
@@ -1,3 +1,4 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System.Application.Services;
@@ -7,37 +8,48 @@ using System.Properties;
namespace System.Application.UI.Views.Pages
{
public class ProxyScriptManagePage : UserControl
{
public ProxyScriptManagePage()
{
InitializeComponent();
}
public class ProxyScriptManagePage : UserControl
{
public ProxyScriptManagePage()
{
InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
private void AddNewScriptButton_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
var fileDialog = new OpenFileDialog
{
Filters = new List<FileDialogFilter> {
new FileDialogFilter { Name = "JavaScript Files", Extensions = new List<string> { "js" } },
new FileDialogFilter { Name = "Text Files", Extensions = new List<string> { "txt" } },
new FileDialogFilter { Name = "All Files", Extensions = new List<string> { "*" } },
},
Title = ThisAssembly.AssemblyTrademark,
AllowMultiple = false,
};
fileDialog.ShowAsync(IDesktopAvaloniaAppService.Instance.MainWindow).ContinueWith(async (s) =>
{
if (s != null && s.Result.Length > 0)
{
await ProxyService.Current.AddNewScript(s.Result[0]);
}
});
}
}
var th = this.FindControl<UserControl>("u");
//var item = this.FindControl<Border>("item");
//th.GetObservable(UserControl.WidthProperty).Subscribe(v =>
//{
// if (v < 800)
// item.Width = 800;
// else
// item.Width = 450;
//});
}
private void AddNewScriptButton_Click(object sender, Avalonia.Interactivity.RoutedEventArgs e)
{
var fileDialog = new OpenFileDialog
{
Filters = new List<FileDialogFilter> {
new FileDialogFilter { Name = "JavaScript Files", Extensions = new List<string> { "js" } },
new FileDialogFilter { Name = "Text Files", Extensions = new List<string> { "txt" } },
new FileDialogFilter { Name = "All Files", Extensions = new List<string> { "*" } },
},
Title = ThisAssembly.AssemblyTrademark,
AllowMultiple = false,
};
fileDialog.ShowAsync(IDesktopAvaloniaAppService.Instance.MainWindow).ContinueWith(async (s) =>
{
if (s != null && s.Result.Length > 0)
{
await ProxyService.Current.AddNewScript(s.Result[0]);
}
});
}
}
}
@@ -29,8 +29,11 @@
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate>
<Panel x:Name="panel" MinWidth="224">
<Panel.ContextMenu>
<Border x:Name="card"
Classes="paper"
Background="{DynamicResource ThemeBrushKey}">
<Border.ContextMenu>
<ContextMenu>
<MenuItem
Header="{ReflectionBinding Path=Res.UserChange_BtnText,Mode=OneWay,Source={x:Static resx:R.Current}}"
@@ -45,27 +48,24 @@
Command="{ReflectionBinding #u.DataContext.DeleteUserButton_Click}"
CommandParameter="{Binding}" />
</ContextMenu>
</Panel.ContextMenu>
<Border x:Name="card"
Classes="paper"
Background="{DynamicResource ThemeBrushKey}">
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="PointerEnter" SourceObject="{ReflectionBinding #card}">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #delete_btn}" PropertyName="IsVisible" Value="True"/>
</ia:EventTriggerBehavior>
<ia:EventTriggerBehavior EventName="PointerLeave" SourceObject="{ReflectionBinding #card}">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #delete_btn}" PropertyName="IsVisible" Value="False"/>
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
<Grid Width="{ReflectionBinding #panel.Width}" Height="184"
ColumnDefinitions="Auto,Auto,*,Auto">
<Panel>
<gif:Image2 x:Name="avatar"
Width="184"
AutoStart="true"
Stretch="Uniform"
Source="{Binding AvatarStream^}">
<!--<i:Interaction.Behaviors>
</Border.ContextMenu>
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="PointerEnter" SourceObject="{ReflectionBinding #card}">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #delete_btn}" PropertyName="IsVisible" Value="True"/>
</ia:EventTriggerBehavior>
<ia:EventTriggerBehavior EventName="PointerLeave" SourceObject="{ReflectionBinding #card}">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #delete_btn}" PropertyName="IsVisible" Value="False"/>
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
<Grid Width="{ReflectionBinding #card.Width}" Height="184"
ColumnDefinitions="Auto,Auto,*,Auto">
<Panel>
<gif:Image2 x:Name="avatar"
Width="184"
AutoStart="true"
Stretch="Uniform"
Source="{Binding AvatarStream^}">
<!--<i:Interaction.Behaviors>
<ia:DataTriggerBehavior Binding="{Binding AvatarStream,Converter={StaticResource IsNullConverter},ConverterParameter=invert}" ComparisonCondition="Equal" Value="True">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #avatar}" PropertyName="Source" Value="{Binding AvatarStream}"/>
</ia:DataTriggerBehavior>
@@ -73,107 +73,106 @@
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #avatar}" PropertyName="Source" Value="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Assets/AppResources/avater.jpg"/>
</ia:DataTriggerBehavior>
</i:Interaction.Behaviors>-->
</gif:Image2>
<Image Width="184" Stretch="Uniform" IsVisible="{Binding AvatarStream^,Converter={StaticResource IsNullConverter}}"
Source="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Assets/AppResources/avater.jpg">
</Image>
<!--<gif:Image2 Width="184" Height="184"
</gif:Image2>
<Image Width="184" Stretch="Uniform" IsVisible="{Binding AvatarStream^,Converter={StaticResource IsNullConverter}}"
Source="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Assets/AppResources/avater.jpg">
</Image>
<!--<gif:Image2 Width="184" Height="184"
AutoStart="true"
Source="{Binding MiniProfile.AvatarFrameStream^}"
Stretch="Uniform"
IsVisible="{Binding MiniProfile.AvatarFrameStream^,Converter={StaticResource IsNullConverter},ConverterParameter=invert}"/>-->
</Panel>
<Panel Grid.Column="1" Margin="10 5">
<StackPanel>
<DockPanel LastChildFill="True">
<Ellipse VerticalAlignment="Center"
HorizontalAlignment="Center" x:Name="circle" Margin="5 0 12 0" Height="10" Width="10" StrokeThickness="0" ToolTip.Tip="{Binding OnlineState}">
<i:Interaction.Behaviors>
<ia:DataTriggerBehavior Binding="{Binding OnlineState}" ComparisonCondition="Equal" Value="online">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #circle}" PropertyName="Fill" Value="#08D969"/>
</ia:DataTriggerBehavior>
<ia:DataTriggerBehavior Binding="{Binding OnlineState}" ComparisonCondition="Equal" Value="offline">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #circle}" PropertyName="Fill" Value="#adadad"/>
</ia:DataTriggerBehavior>
</i:Interaction.Behaviors>
</Ellipse>
<controls:ScrollingTextBlock x:Name="nickname" Text="{Binding SteamNickName}" FontSize="24" Foreground="{DynamicResource HighlightForegroundBrushKey}" Cursor="Hand" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_OpenUserUrl,Mode=OneWay,Source={x:Static resx:R.Current}}">
<!--OpenUserProfileUrl-->
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="Tapped" SourceObject="{ReflectionBinding #nickname}">
<ia:InvokeCommandAction Command="{ReflectionBinding #u.DataContext.OpenUserProfileUrl}" CommandParameter="{Binding}"/>
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</controls:ScrollingTextBlock>
<!--<WrapPanel VerticalAlignment="Center" IsVisible="{Binding Remark,Converter={StaticResource IsNullConverter},ConverterParameter=invert}">-->
<WrapPanel VerticalAlignment="Center">
<!--<TextBlock Text="("></TextBlock>-->
<!--<controls:ScrollingTextBlock Text="{Binding Remark}">
</Panel>
<Panel Grid.Column="1" Margin="10 5">
<StackPanel>
<DockPanel LastChildFill="True">
<Ellipse VerticalAlignment="Center"
HorizontalAlignment="Center" x:Name="circle" Margin="5 0 12 0" Height="10" Width="10" StrokeThickness="0" ToolTip.Tip="{Binding OnlineState}">
<i:Interaction.Behaviors>
<ia:DataTriggerBehavior Binding="{Binding OnlineState}" ComparisonCondition="Equal" Value="online">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #circle}" PropertyName="Fill" Value="#08D969"/>
</ia:DataTriggerBehavior>
<ia:DataTriggerBehavior Binding="{Binding OnlineState}" ComparisonCondition="Equal" Value="offline">
<ia:ChangePropertyAction TargetObject="{ReflectionBinding #circle}" PropertyName="Fill" Value="#adadad"/>
</ia:DataTriggerBehavior>
</i:Interaction.Behaviors>
</Ellipse>
<controls:ScrollingTextBlock x:Name="nickname" Text="{Binding SteamNickName}" FontSize="24" Foreground="{DynamicResource HighlightForegroundBrushKey}" Cursor="Hand" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_OpenUserUrl,Mode=OneWay,Source={x:Static resx:R.Current}}">
<!--OpenUserProfileUrl-->
<i:Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="Tapped" SourceObject="{ReflectionBinding #nickname}">
<ia:InvokeCommandAction Command="{ReflectionBinding #u.DataContext.OpenUserProfileUrl}" CommandParameter="{Binding}"/>
</ia:EventTriggerBehavior>
</i:Interaction.Behaviors>
</controls:ScrollingTextBlock>
<!--<WrapPanel VerticalAlignment="Center" IsVisible="{Binding Remark,Converter={StaticResource IsNullConverter},ConverterParameter=invert}">-->
<WrapPanel VerticalAlignment="Center">
<!--<TextBlock Text="("></TextBlock>-->
<!--<controls:ScrollingTextBlock Text="{Binding Remark}">
</controls:ScrollingTextBlock>-->
<!--<TextBlock Text=")"></TextBlock>-->
<!--<PathIcon Data="{StaticResource EditDrawing}" Width="10" Height="10"></PathIcon>-->
<TextBox VerticalAlignment="Center"
VerticalContentAlignment="Center"
Watermark="{ReflectionBinding Path=Res.UserChange_EditRemark,Mode=OneWay,Source={x:Static resx:R.Current}}"
ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_EditRemark,Mode=OneWay,Source={x:Static resx:R.Current}}"
Text="{Binding Remark,Mode=TwoWay}"
Classes="readonlybox"
Foreground="{DynamicResource InactiveForegroundBrushKey}">
<TextBox.InnerRightContent>
<PathIcon Data="{StaticResource EditDrawing}"
Width="10" Height="10"
Opacity="0.8"
VerticalAlignment="Center" HorizontalAlignment="Left"
Margin="0"
IsVisible="{Binding Remark,Converter={StaticResource IsNullConverter}}"/>
</TextBox.InnerRightContent>
</TextBox>
</WrapPanel>
</DockPanel>
<WrapPanel Orientation="Horizontal">
<TextBlock Text="{Binding AccountName}" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
<TextBlock Text="(" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
<TextBox Text="{Binding SteamId64,Mode=OneWay}" FontSize="14" Classes="readonlybox" Padding="0" Foreground="{DynamicResource InactiveForegroundBrushKey}" IsReadOnly="True"></TextBox>
<TextBlock Text=")" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
<!--<TextBlock Text=")"></TextBlock>-->
<!--<PathIcon Data="{StaticResource EditDrawing}" Width="10" Height="10"></PathIcon>-->
<TextBox VerticalAlignment="Center"
VerticalContentAlignment="Center"
Watermark="{ReflectionBinding Path=Res.UserChange_EditRemark,Mode=OneWay,Source={x:Static resx:R.Current}}"
ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_EditRemark,Mode=OneWay,Source={x:Static resx:R.Current}}"
Text="{Binding Remark,Mode=TwoWay}"
Classes="readonlybox"
Foreground="{DynamicResource InactiveForegroundBrushKey}">
<TextBox.InnerRightContent>
<PathIcon Data="{StaticResource EditDrawing}"
Width="10" Height="10"
Opacity="0.8"
VerticalAlignment="Center" HorizontalAlignment="Left"
Margin="0"
IsVisible="{Binding Remark,Converter={StaticResource IsNullConverter}}"/>
</TextBox.InnerRightContent>
</TextBox>
</WrapPanel>
</StackPanel>
<WrapPanel VerticalAlignment="Bottom" Orientation="Horizontal">
<PathIcon Data="{StaticResource ClockDrawing}" Width="16" VerticalAlignment="Center" Margin="5 0" Foreground="{DynamicResource InactiveForegroundBrushKey}">
</DockPanel>
<WrapPanel Orientation="Horizontal">
<TextBlock Text="{Binding AccountName}" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
<TextBlock Text="(" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
<TextBox Text="{Binding SteamId64,Mode=OneWay}" FontSize="14" Classes="readonlybox" Padding="0" Foreground="{DynamicResource InactiveForegroundBrushKey}" IsReadOnly="True"></TextBox>
<TextBlock Text=")" FontSize="16" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
</WrapPanel>
</StackPanel>
<WrapPanel VerticalAlignment="Bottom" Orientation="Horizontal">
<PathIcon Data="{StaticResource ClockDrawing}" Width="16" VerticalAlignment="Center" Margin="5 0" Foreground="{DynamicResource InactiveForegroundBrushKey}">
</PathIcon>
<TextBlock Text="{Binding LastLoginTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="16" VerticalAlignment="Center" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
</WrapPanel>
</Panel>
<Grid Grid.Column="3" RowDefinitions="*,Auto">
<Panel>
<Button Classes="flatbutton" IsVisible="False" x:Name="delete_btn" Background="{DynamicResource ThemeBrushKey}" Cursor="Hand" HorizontalAlignment="Right" Margin="0,0,0,121" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_DeleteUser,Mode=OneWay,Source={x:Static resx:R.Current}}" Command="{ReflectionBinding #u.DataContext.DeleteUserButton_Click}" CommandParameter="{Binding}">
<PathIcon Width="12" Data="{DynamicResource CloseDrawing}">
</PathIcon>
<TextBlock Text="{Binding LastLoginTime,StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" FontSize="16" VerticalAlignment="Center" Foreground="{DynamicResource InactiveForegroundBrushKey}"/>
</Button>
<WrapPanel HorizontalAlignment="Right" Orientation="Vertical" Margin="0 30 5 0">
<CheckBox Content="{ReflectionBinding Path=Res.UserChange_RecentLogin,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding MostRecent}" IsEnabled="False"></CheckBox>
<CheckBox Content="{ReflectionBinding Path=Res.UserChange_RememberMe,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding RememberPassword}" IsEnabled="False"></CheckBox>
</WrapPanel>
</Panel>
<Grid Grid.Column="3" RowDefinitions="*,Auto">
<Panel>
<Button Classes="flatbutton" IsVisible="False" x:Name="delete_btn" Background="{DynamicResource ThemeBrushKey}" Cursor="Hand" HorizontalAlignment="Right" Margin="0,0,0,121" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_DeleteUser,Mode=OneWay,Source={x:Static resx:R.Current}}" Command="{ReflectionBinding #u.DataContext.DeleteUserButton_Click}" CommandParameter="{Binding}">
<PathIcon Width="12" Data="{DynamicResource CloseDrawing}">
</PathIcon>
<WrapPanel Grid.Row="1" Orientation="Horizontal">
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness=".66 .66 .66 0" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}">
<Button Classes="flatbutton" Cursor="Hand" HorizontalAlignment="Stretch" MaxWidth="200" Background="{DynamicResource ThemeBrushKey}" Command="{ReflectionBinding #u.DataContext.OfflineModeButton_Click}" CommandParameter="{Binding}">
<controls:ScrollingTextBlock Text="{ReflectionBinding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
</Button>
<WrapPanel HorizontalAlignment="Right" Orientation="Vertical" Margin="0 30 5 0">
<CheckBox Content="{ReflectionBinding Path=Res.UserChange_RecentLogin,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding MostRecent}" IsEnabled="False"></CheckBox>
<CheckBox Content="{ReflectionBinding Path=Res.UserChange_RememberMe,Mode=OneWay,Source={x:Static resx:R.Current}}" IsChecked="{Binding RememberPassword}" IsEnabled="False"></CheckBox>
</WrapPanel>
</Panel>
<WrapPanel Grid.Row="1" Orientation="Horizontal">
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness=".66 .66 .66 0" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}">
<Button Classes="flatbutton" Cursor="Hand" HorizontalAlignment="Stretch" MaxWidth="200" Background="{DynamicResource ThemeBrushKey}" Command="{ReflectionBinding #u.DataContext.OfflineModeButton_Click}" CommandParameter="{Binding}">
<controls:ScrollingTextBlock Text="{ReflectionBinding Path=Res.UserChange_OfflineBtn,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
</Button>
</Border>
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness="0 .66 0 0" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_BtnTootlip,Mode=OneWay,Source={x:Static resx:R.Current}}">
<Button Classes="flatbutton" Cursor="Hand" MaxWidth="250" Background="{DynamicResource ThemeBrushKey}" HorizontalAlignment="Stretch" Command="{ReflectionBinding #u.DataContext.SteamId_Click}" CommandParameter="{Binding}">
<controls:ScrollingTextBlock Text="{ReflectionBinding Path=Res.UserChange_BtnText,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
</Button>
</Border>
</WrapPanel>
</Grid>
</Border>
<Border BorderBrush="{DynamicResource SemiactiveBackgroundBrushKey}" BorderThickness="0 .66 0 0" ToolTip.Tip="{ReflectionBinding Path=Res.UserChange_BtnTootlip,Mode=OneWay,Source={x:Static resx:R.Current}}">
<Button Classes="flatbutton" Cursor="Hand" MaxWidth="250" Background="{DynamicResource ThemeBrushKey}" HorizontalAlignment="Stretch" Command="{ReflectionBinding #u.DataContext.SteamId_Click}" CommandParameter="{Binding}">
<controls:ScrollingTextBlock Text="{ReflectionBinding Path=Res.UserChange_BtnText,Mode=OneWay,Source={x:Static resx:R.Current}}"></controls:ScrollingTextBlock>
</Button>
</Border>
</WrapPanel>
</Grid>
</Border>
</Panel>
</Grid>
</Border>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
@@ -15,7 +15,7 @@ namespace System.Application.UI.Views.Windows
readonly TextBox TbSmsCodeValidation;
readonly TextBox TbSmsCodeNew;
public ChangeBindPhoneNumberWindow()
public ChangeBindPhoneNumberWindow() : base()
{
InitializeComponent();
TbSmsCodeValidation = this.FindControl<TextBox>(nameof(TbSmsCodeValidation));
@@ -28,7 +28,7 @@ namespace System.Application.UI.Views.Windows
TbPhoneNumber.Focus();
}
};
void Submit(object _, KeyEventArgs e)
void Submit(object? _, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
@@ -65,7 +65,7 @@ namespace System.Application.UI.Views.Windows
{
if (DataContext is ChangeBindPhoneNumberWindowViewModel vm && vm.CurrentStepIsNew && !vm.IsComplete)
{
// 进入第二步时,如果关闭窗口,则需二次确认
// 进入第二步时,如果关闭窗口,则需二次确认
e.Cancel = true;
var r = await MessageBoxCompat.ShowAsync(AppResources.UnsavedEditingWillBeDiscarded, AppResources.Warning, MessageBoxButtonCompat.OKCancel);
if (r == MessageBoxResultCompat.OK)
@@ -3,6 +3,7 @@ using Avalonia.Platform;
using Avalonia.Styling;
using System;
using System.Application.UI.Resx;
using System.Application.UI.ViewModels;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows;
@@ -17,6 +18,8 @@ namespace Avalonia.Controls
public FluentWindow()
{
Constructor();
this.Opened += FluentWindow_Opened;
this.PositionChanged += FluentWindow_PositionChanged;
}
public FluentWindow(IWindowImpl impl) : base(impl)
@@ -24,6 +27,44 @@ namespace Avalonia.Controls
Constructor();
}
private void FluentWindow_PositionChanged(object? sender, PixelPointEventArgs e)
{
if (_isOpenWindow == false)
return;
if (this.DataContext is WindowViewModel vm)
{
vm.SizePosition.X = e.Point.X;
vm.SizePosition.Y = e.Point.Y;
}
}
bool _isOpenWindow;
private void FluentWindow_Opened(object? sender, EventArgs e)
{
_isOpenWindow = true;
if (this.DataContext is WindowViewModel vm)
{
if (vm.SizePosition.X > 0 && vm.SizePosition.Y > 0)
this.Position = new PixelPoint(vm.SizePosition.X, vm.SizePosition.Y);
if (vm.SizePosition.Width > 0)
this.Width = vm.SizePosition.Width;
if (vm.SizePosition.Height > 0)
this.Height = vm.SizePosition.Height;
HandleResized(new Size(this.Width, this.Height));
this.GetObservable(WidthProperty).Subscribe(v =>
{
vm.SizePosition.Width = v;
});
this.GetObservable(HeightProperty).Subscribe(v =>
{
vm.SizePosition.Height = v;
});
}
}
void Constructor()
{
ExtendClientAreaToDecorationsHint = true;
@@ -6,7 +6,7 @@ namespace System.Application.UI.Views.Windows
{
public class AchievementWindow : FluentWindow
{
public AchievementWindow()
public AchievementWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -0,0 +1,28 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
Width="600" Height="450"
x:Class="System.Application.UI.Views.Windows.EditAppInfoWindow"
xmlns:resx="clr-namespace:System.Application.UI.Resx;assembly=System.Application.SteamTools.Client.Desktop"
xmlns:vm="clr-namespace:System.Application.UI.ViewModels;assembly=System.Application.SteamTools.Client.Desktop"
xmlns:controls="clr-namespace:System.Application.UI.Views.Controls"
xmlns:ms="clr-namespace:System.Application.Models.Settings;assembly=System.Application.SteamTools.Client.Desktop"
FontFamily="{Binding Source={x:Static ms:UISettings.FontName},Path=Value, Mode=OneWay,Converter={StaticResource NameToFontFamilyConverter}}"
Background="Transparent"
ExtendClientAreaToDecorationsHint="True"
ExtendClientAreaChromeHints="NoChrome"
ExtendClientAreaTitleBarHeightHint="30"
Title="{Binding Title}"
x:DataType="vm:EditAppInfoWindowViewModel"
x:CompileBindings="True">
<DockPanel>
<controls:TitleBar DockPanel.Dock="Top"></controls:TitleBar>
<StackPanel>
<Border Classes="paper" Background="{DynamicResource ThemeBrushKey}">
<TextBox></TextBox>
</Border>
</StackPanel>
</DockPanel>
</Window>
@@ -0,0 +1,22 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace System.Application.UI.Views.Windows
{
public class EditAppInfoWindow : FluentWindow
{
public EditAppInfoWindow() : base()
{
InitializeComponent();
#if DEBUG
this.AttachDevTools();
#endif
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}
}
@@ -10,7 +10,7 @@ namespace System.Application.UI.Views.Windows
{
public class AddAuthWindow : FluentWindow
{
public AddAuthWindow()
public AddAuthWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -6,7 +6,7 @@ namespace System.Application.UI.Views.Windows
{
public class AuthTradeWindow : FluentWindow
{
public AuthTradeWindow()
public AuthTradeWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -6,7 +6,7 @@ namespace System.Application.UI.Views.Windows
{
public class ShowAuthWindow : FluentWindow
{
public ShowAuthWindow()
public ShowAuthWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -11,7 +11,7 @@ namespace System.Application.UI.Views.Windows
readonly TextBox TbPhoneNumber;
readonly TextBox TbSmsCode;
public LoginOrRegisterWindow()
public LoginOrRegisterWindow() : base()
{
InitializeComponent();
TbPhoneNumber = this.FindControl<TextBox>(nameof(TbPhoneNumber));
@@ -8,7 +8,7 @@ namespace System.Application.UI.Views.Windows
{
public class MessageBoxWindow : FluentWindow
{
public MessageBoxWindow()
public MessageBoxWindow() : base()
{
//if (PlatformImpl is Win32WindowImpl win)
//{
@@ -8,7 +8,7 @@ namespace System.Application.UI.Views.Windows
{
public Button BtnCancel { get; }
public NewVersionWindow()
public NewVersionWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -6,7 +6,7 @@ namespace System.Application.UI.Views.Windows
{
public class ScriptStoreWindow : FluentWindow
{
public ScriptStoreWindow()
public ScriptStoreWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -10,7 +10,7 @@ namespace System.Application.UI.Views.Windows
{
public class UserProfileWindow : FluentWindow
{
public UserProfileWindow()
public UserProfileWindow() : base()
{
InitializeComponent();
#if DEBUG
@@ -36,7 +36,7 @@ namespace System.Application.UI.Views.Windows
{
if (DataContext is UserProfileWindowViewModel vm && vm.IsModify && !vm.IsComplete)
{
// 有修改时,如果关闭窗口,则需二次确认
// 有修改时,如果关闭窗口,则需二次确认
e.Cancel = true;
var r = await MessageBoxCompat.ShowAsync(AppResources.UnsavedEditingWillBeDiscarded, AppResources.Warning, MessageBoxButtonCompat.OKCancel);
if (r == MessageBoxResultCompat.OK)
@@ -29,6 +29,7 @@
</ExperimentalAcrylicBorder.Material>
</ExperimentalAcrylicBorder>
<controls:WebView3 x:Name="webView"/>
<controls:ProgressRing IsIndeterminate="True" HorizontalAlignment="Stretch" Height="100" Width="100" IsVisible="{Binding IsLoading}" />
</Panel>
</DockPanel>
</Window>
@@ -2,11 +2,13 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using CefNet;
using CefNet.Avalonia;
using ReactiveUI;
using System.Application.UI.Resx;
using System.Application.UI.ViewModels;
using System.Application.UI.Views.Controls;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using static System.Application.Services.CloudService.Constants;
namespace System.Application.UI.Views.Windows
@@ -16,7 +18,7 @@ namespace System.Application.UI.Views.Windows
readonly WebView3 webView;
bool disposedValue;
public WebView3Window()
public WebView3Window() : base()
{
InitializeComponent();
#if DEBUG
@@ -26,6 +28,62 @@ namespace System.Application.UI.Views.Windows
webView.InitialUrl = WebView3WindowViewModel.AboutBlank;
webView.Opacity = 0;
webView.DocumentTitleChanged += WebView_DocumentTitleChanged;
webView.LoadingStateChange += WebView_LoadingStateChange;
}
CancellationTokenSource? cts;
/// <summary>
/// 第一次 WebView 加载超时检查
/// </summary>
/// <param name="vm"></param>
async void FirstWebViewLoadingTimeoutInspect(WebView3WindowViewModel vm)
{
if (cts == null)
{
cts = new();
var isDelayed = false;
try
{
await Task.Delay(vm.Timeout, cts.Token);
isDelayed = true;
}
catch (OperationCanceledException)
{
}
if (isDelayed && vm.IsLoading)
{
webView.Stop();
Hide();
await MessageBoxCompat.ShowAsync(
vm.TimeoutErrorMessage!,
vm.Title,
MessageBoxButtonCompat.OKCancel);
Close();
}
}
}
bool isFirstWebViewLoading;
private void WebView_LoadingStateChange(object? sender, LoadingStateChangeEventArgs e)
{
if (!isFirstWebViewLoading)
{
isFirstWebViewLoading = true;
if (DataContext is WebView3WindowViewModel vm && !string.IsNullOrWhiteSpace(vm.TimeoutErrorMessage))
{
FirstWebViewLoadingTimeoutInspect(vm);
}
}
if (!e.Busy)
{
if (webView.Opacity != 1) webView.Opacity = 1;
if (DataContext is WebView3WindowViewModel vm && vm.IsLoading)
{
vm.IsLoading = false;
}
}
}
protected override void OnDataContextChanged(EventArgs e)
@@ -33,6 +91,8 @@ namespace System.Application.UI.Views.Windows
base.OnDataContextChanged(e);
if (DataContext is WebView3WindowViewModel vm)
{
vm.Close = Close;
if (!string.IsNullOrWhiteSpace(vm.Title)) webView.DocumentTitleChanged -= WebView_DocumentTitleChanged;
vm.WhenAnyValue(x => x.Url).WhereNotNull().Subscribe(x =>
{
if (x == WebView3WindowViewModel.AboutBlank)
@@ -46,7 +106,7 @@ namespace System.Application.UI.Views.Windows
x + "?theme={0}&language={1}",
CefNetApp.GetTheme(),
R.Language);
if (webView.Opacity != 1) webView.Opacity = 1;
//if (webView.Opacity != 1) webView.Opacity = 1;
if (webView.BrowserObject == null)
{
webView.InitialUrl = x;
@@ -57,6 +117,10 @@ namespace System.Application.UI.Views.Windows
}
}
}).AddTo(vm);
vm.WhenAnyValue(x => x.StreamResponseFilterUrls).Subscribe(x => webView.StreamResponseFilterUrls = x).AddTo(vm);
vm.WhenAnyValue(x => x.FixedSinglePage).Subscribe(x => webView.FixedSinglePage = x).AddTo(vm);
vm.WhenAnyValue(x => x.IsSecurity).Subscribe(x => webView.IsSecurity = x).AddTo(vm);
webView.OnStreamResponseFilterResourceLoadComplete += vm.OnStreamResponseFilterResourceLoadComplete;
}
}
@@ -92,6 +156,13 @@ namespace System.Application.UI.Views.Windows
// TODO: 释放托管状态(托管对象)
if (webView != null)
{
cts?.Cancel();
webView.DocumentTitleChanged -= WebView_DocumentTitleChanged;
webView.LoadingStateChange -= WebView_LoadingStateChange;
if (DataContext is WebView3WindowViewModel vm)
{
webView.OnStreamResponseFilterResourceLoadComplete -= vm.OnStreamResponseFilterResourceLoadComplete;
}
((IDisposable)webView).Dispose();
}
if (DataContext is IDisposable d)
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@@ -6,6 +6,7 @@
<SignAssembly>false</SignAssembly>
<!--(SignAssembly)对此程序集进行签名会导致编译失败(CompileAvaloniaXamlTask)-->
<AssemblyName>System.Application.SteamTools.Client.Desktop.Avalonia</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
@@ -60,5 +61,8 @@
<Compile Update="Application\UI\Views\Pages\Settings\Settings_General.axaml.cs">
<DependentUpon>Settings_General.axaml</DependentUpon>
</Compile>
<Compile Update="Application\UI\Views\Windows\GameListPage\EditAppInfoWindow.axaml.cs">
<DependentUpon>EditAppInfoWindow.axaml</DependentUpon>
</Compile>
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
namespace System.Application.Services.Implementation
{
partial class LinuxDesktopPlatformServiceImpl
{
public void OpenDesktopIconsSettings()
{
}
}
}
@@ -1,10 +1,10 @@
using System.Application.Models;
using System.Application.Models;
using System.Diagnostics;
using System.IO;
namespace System.Application.Services.Implementation
{
internal sealed class LinuxDesktopPlatformServiceImpl : IDesktopPlatformService
internal sealed partial class LinuxDesktopPlatformServiceImpl : IDesktopPlatformService
{
public void SetResizeMode(IntPtr hWnd, int value)
{
@@ -15,6 +15,10 @@ namespace System.Application.Services.Implementation
return string.Empty;
}
public void OpenFolder(string dirPath)
{
}
public const string kate = "kate";
public const string vi = "vi";
@@ -58,7 +62,6 @@ namespace System.Application.Services.Implementation
public void SetLightOrDarkThemeFollowingSystem(bool enable)
{
}
}
}
@@ -0,0 +1,9 @@
namespace System.Application.Services.Implementation
{
partial class MacDesktopPlatformServiceImpl
{
public void OpenDesktopIconsSettings()
{
}
}
}
@@ -1,4 +1,4 @@
#if MONO_MAC
#if MONO_MAC
using MonoMac.Foundation;
#elif XAMARIN_MAC
using Foundation;
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
namespace System.Application.Services.Implementation
{
internal sealed class MacDesktopPlatformServiceImpl : IDesktopPlatformService
internal sealed partial class MacDesktopPlatformServiceImpl : IDesktopPlatformService
{
public void SetResizeMode(IntPtr hWnd, int value)
{
@@ -31,6 +31,11 @@ namespace System.Application.Services.Implementation
p?.Close();
}
public void OpenFolder(string dirPath)
{
}
public string? GetFileName(TextReaderProvider provider)
{
switch (provider)
@@ -1,4 +1,4 @@
using Microsoft.Win32;
using Microsoft.Win32;
using System.Application.Models;
using System.Application.UI;
using System.Management;
@@ -42,9 +42,8 @@ namespace System.Application.Services.Implementation
public void SetLightOrDarkThemeFollowingSystem(bool enable)
{
if (Environment.OSVersion.Version.Major < 10) return;
if (Environment.OSVersion.Version.Major == 10 &&
Environment.OSVersion.Version.Build < 18282) return;
var major = Environment.OSVersion.Version.Major;
if (major < 10 || major == 10 && Environment.OSVersion.Version.Build < 18282) return;
var currentUser = WindowsIdentity.GetCurrent()?.User;
if (currentUser == null) return;
@@ -0,0 +1,22 @@
using System.Diagnostics;
namespace System.Application.Services.Implementation
{
partial class WindowsDesktopPlatformServiceImpl
{
#region rundll32 command list
public const string OpenDesktopIconsSettingsCommandArguments = "shell32.dll,Control_RunDLL desk.cpl,,0";
public const string OpenGameControllersCommandArguments = "shell32.dll,Control_RunDLL joy.cpl";
#endregion
public void OpenDesktopIconsSettings()
{
Process.Start(new ProcessStartInfo
{
FileName = "rundll32.exe",
Arguments = OpenDesktopIconsSettingsCommandArguments,
UseShellExecute = true,
});
}
}
}
+119 -119
View File
@@ -1,125 +1,125 @@
using System.Application.Services;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Security;
using System.Threading.Tasks;
using System.Windows;
using static System.Application.KeyConstants;
//using System.Application.Services;
//using System.Collections.Generic;
//using System.Diagnostics;
//using System.IO;
//using System.Linq;
//using System.Security;
//using System.Threading.Tasks;
//using System.Windows;
//using static System.Application.KeyConstants;
namespace System.Application
{
/// <summary>
/// 迁移
/// </summary>
public static class Migrations
{
/// <summary>
/// 获取正在运行的V1版本进程
/// </summary>
/// <returns></returns>
public static IEnumerable<Process> GetRunningV1Processes()
{
var query = from p in Process.GetProcesses()
where p.ProcessName == "Steam++"
let filePath = p.MainModule?.FileName
where !string.IsNullOrWhiteSpace(filePath)
let fileVersionInfo = FileVersionInfo.GetVersionInfo(filePath).FileVersion.TryParseVersion()
where fileVersionInfo != null && fileVersionInfo.Major == 1
select p;
return query;
}
//namespace System.Application
//{
// /// <summary>
// /// 迁移
// /// </summary>
// public static class Migrations
// {
// /// <summary>
// /// 获取正在运行的V1版本进程
// /// </summary>
// /// <returns></returns>
// public static IEnumerable<Process> GetRunningV1Processes()
// {
// var query = from p in Process.GetProcesses()
// where p.ProcessName == "Steam++"
// let filePath = p.MainModule?.FileName
// where !string.IsNullOrWhiteSpace(filePath)
// let fileVersionInfo = FileVersionInfo.GetVersionInfo(filePath).FileVersion.TryParseVersion()
// where fileVersionInfo != null && fileVersionInfo.Major == 1
// select p;
// return query;
// }
/// <summary>
/// 当前正在运行V1版本
/// </summary>
public static bool IsRunningV1 => GetRunningV1Processes().Any();
// /// <summary>
// /// 当前正在运行V1版本
// /// </summary>
// public static bool IsRunningV1 => GetRunningV1Processes().Any();
/// <summary>
/// 检测是否需要从 V1 版本迁移
/// </summary>
/// <returns></returns>
public static (bool needMigrate, Action delete) CheckV1()
{
var paths = new HashSet<string>
{
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
}.AsEnumerable();
paths = paths.Select(x => Path.Combine(x, "rmbgame.net"));
var needMigrate = paths.Any(x => Directory.Exists(x));
void Delete()
{
var processes = GetRunningV1Processes();
if (processes.Any())
{
foreach (var p in processes)
{
p.Kill();
}
IHostsFileService.Instance.RemoveHostsByTag();
}
foreach (var path in paths)
{
if (Directory.Exists(path))
{
Directory.Delete(path, true);
}
}
}
return (needMigrate, Delete);
}
// /// <summary>
// /// 检测是否需要从 V1 版本迁移
// /// </summary>
// /// <returns></returns>
// public static (bool needMigrate, Action delete) CheckV1()
// {
// var paths = new HashSet<string>
// {
// Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
// Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
// }.AsEnumerable();
// paths = paths.Select(x => Path.Combine(x, "rmbgame.net"));
// var needMigrate = paths.Any(x => Directory.Exists(x));
// void Delete()
// {
// var processes = GetRunningV1Processes();
// if (processes.Any())
// {
// foreach (var p in processes)
// {
// p.Kill();
// }
// IHostsFileService.Instance.RemoveHostsByTag();
// }
// foreach (var path in paths)
// {
// if (Directory.Exists(path))
// {
// Directory.Delete(path, true);
// }
// }
// }
// return (needMigrate, Delete);
// }
/// <summary>
/// 删除 V1 版本的配置
/// </summary>
public static void DeleteV1()
{
(var needMigrate, var delete) = CheckV1();
if (needMigrate) delete();
}
// /// <summary>
// /// 删除 V1 版本的配置
// /// </summary>
// public static void DeleteV1()
// {
// (var needMigrate, var delete) = CheckV1();
// if (needMigrate) delete();
// }
/// <summary>
/// 启动时检测从 V1 版本 迁移配置文件等信息
/// </summary>
public static void OnStartFromV1()
{
return; // 当 2.0 Ready 时取消此行
Task.Run(async () =>
{
try
{
var s = IStorage.Instance;
var examined = await s.GetAsync<bool>(EXAMINED_MIGRATE_FROM_V1);
if (!examined)
{
(var needMigrate, var delete) = CheckV1();
if (needMigrate)
{
var r = await MessageBoxCompat.ShowAsync(
"检测到 V1 版本配置文件," +
"如果包含令牌数据,请先手动迁移令牌," +
"如果不存在令牌数据则可直接删除,是否直接删除?",
"警告",
MessageBoxButtonCompat.OKCancel,
MessageBoxImageCompat.Warning);
if (r == MessageBoxResultCompat.OK)
{
delete();
// /// <summary>
// /// 启动时检测从 V1 版本 迁移配置文件等信息
// /// </summary>
// public static void OnStartFromV1()
// {
// return; // 当 2.0 Ready 时取消此行
// Task.Run(async () =>
// {
// try
// {
// var s = IStorage.Instance;
// var examined = await s.GetAsync<bool>(EXAMINED_MIGRATE_FROM_V1);
// if (!examined)
// {
// (var needMigrate, var delete) = CheckV1();
// if (needMigrate)
// {
// var r = await MessageBoxCompat.ShowAsync(
// "检测到 V1 版本配置文件," +
// "如果包含令牌数据,请先手动迁移令牌," +
// "如果不存在令牌数据则可直接删除,是否直接删除?",
// "警告",
// MessageBoxButtonCompat.OKCancel,
// MessageBoxImageCompat.Warning);
// if (r == MessageBoxResultCompat.OK)
// {
// delete();
// 执行迁移成功后,在AppData下写入文件或写入键值对中的一个标记
// 下次启动检查标记,跳过迁移
await s.SetAsync(EXAMINED_MIGRATE_FROM_V1, true);
}
}
}
}
catch (Exception e)
{
Log.Error(nameof(Migrations), e, nameof(OnStartFromV1));
}
});
}
}
}
// // 执行迁移成功后,在AppData下写入文件或写入键值对中的一个标记
// // 下次启动检查标记,跳过迁移
// await s.SetAsync(EXAMINED_MIGRATE_FROM_V1, true);
// }
// }
// }
// }
// catch (Exception e)
// {
// Log.Error(nameof(Migrations), e, nameof(OnStartFromV1));
// }
// });
// }
// }
//}
@@ -11,7 +11,7 @@ namespace System.Application.Models.Settings
public static class SteamAccountSettings
{
/// <summary>
/// SteamÕ˺ű¸×¢×Öµä
/// Steam账号备注字典
/// </summary>
public static SerializableProperty<IReadOnlyDictionary<long, string?>?> AccountRemarks { get; }
= new SerializableProperty<IReadOnlyDictionary<long, string?>?>(GetKey(), Providers.Local, null);
@@ -1,6 +1,7 @@
using System;
using System.Application.Serialization;
using System.Application.UI;
using System.Application.UI.ViewModels;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
@@ -28,41 +29,47 @@ namespace System.Application.Models.Settings
}
/// <summary>
/// 主题
/// 主题
/// </summary>
public static SerializableProperty<short> Theme { get; }
= new SerializableProperty<short>(GetKey(), Providers.Local, 0) { AutoSave = true };
/// <summary>
/// 语言
/// 语言
/// </summary>
public static SerializableProperty<string> Language { get; }
= new SerializableProperty<string>(GetKey(), Providers.Local, "") { AutoSave = true };
/// <summary>
/// 字体
/// 字体
/// </summary>
public static SerializableProperty<string> FontName { get; }
= new SerializableProperty<string>(GetKey(), Providers.Local, "Default") { AutoSave = true };
/// <summary>
/// 背景图片路径
/// 背景图片路径
/// </summary>
public static SerializableProperty<string> BackgroundImagePath { get; }
= new SerializableProperty<string>(GetKey(), Providers.Local, "") { AutoSave = true };
/// <summary>
/// 主题选择
/// 主题选择
/// </summary>
public static SerializableProperty<int> ThemeAccent { get; }
= new SerializableProperty<int>(GetKey(), Providers.Local, 0) { AutoSave = true };
/// <summary>
/// 库存游戏封面大小
/// 库存游戏封面大小
/// </summary>
public static SerializableProperty<int> AppGridSize { get; }
= new SerializableProperty<int>(GetKey(), Providers.Local, 200) { AutoSave = true };
/// <summary>
/// 所有窗口位置记忆集合
/// </summary>
public static SerializableProperty<Dictionary<string, WindowSizePosition>> WindowSizePositions { get; }
= new SerializableProperty<Dictionary<string, WindowSizePosition>>(GetKey(), Providers.Local, new Dictionary<string, WindowSizePosition>()) { AutoSave = true };
private static string GetKey([CallerMemberName] string propertyName = "")
{
return nameof(UISettings) + "." + propertyName;
@@ -176,6 +176,7 @@ namespace System.Application.Models
set => this.RaiseAndSetIfChanged(ref _Remark, value);
}
public SteamMiniProfile? MiniProfile { get; set; }
/// <summary>
+9
View File
@@ -60,6 +60,15 @@ namespace System.Application.Properties {
}
}
/// <summary>
/// 查找类似 操作 hosts 错误 {0} 的本地化字符串。
/// </summary>
internal static string OperationHostsError_ {
get {
return ResourceManager.GetString("OperationHostsError_", resourceCulture);
}
}
/// <summary>
/// 查找类似 echo &quot;{4}&quot;
///taskkill /f /im &quot;{0}&quot;
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>Operation hosts error {0}</value>
</data>
<data name="ProgramUpdateEcho" xml:space="preserve">
<value>Steam++ is upgrading...</value>
</data>
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>操作 hosts エラー{0}</value>
</data>
<data name="ProgramUpdateEcho" xml:space="preserve">
<value>Steam++ は交換およびアップグレードされています...</value>
</data>
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>hosts 오류 {0}</value>
</data>
<data name="ProgramUpdateEcho" xml:space="preserve">
<value>Steam++ 가 교체 및 업그레이드 중입니다 ...</value>
</data>
+3
View File
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>操作 hosts 错误 {0}</value>
</data>
<data name="ProgramUpdateCmd_" xml:space="preserve">
<value>echo "{4}"
taskkill /f /im "{0}"
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>Ошибка операции hosts {0}</value>
</data>
<data name="ProgramUpdateEcho" xml:space="preserve">
<value>Steam++ заменяется и обновляется ...</value>
</data>
@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OperationHostsError_" xml:space="preserve">
<value>操作 hosts 錯誤 {0}</value>
</data>
<data name="ProgramUpdateEcho" xml:space="preserve">
<value>Steam++ 替換升級中...</value>
</data>
+11 -12
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
@@ -16,20 +16,20 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="DnsClient" Version="1.4.0" />
<PackageReference Include="Gameloop.Vdf" Version="0.6.1" />
<PackageReference Include="NLog" Version="4.7.9" />
<PackageReference Include="NLog.Extensions.Logging" Version="1.7.2" />
<PackageReference Include="SharpZipLib" Version="1.3.1" />
<PackageReference Include="StatefulModel.Standard" Version="0.1.0" />
<PackageReference Include="DnsClient" Version="1.4.0"/>
<PackageReference Include="Gameloop.Vdf" Version="0.6.1"/>
<PackageReference Include="NLog" Version="4.7.9"/>
<PackageReference Include="NLog.Extensions.Logging" Version="1.7.2"/>
<PackageReference Include="SharpZipLib" Version="1.3.1"/>
<PackageReference Include="StatefulModel.Standard" Version="0.1.0"/>
<!--<PackageReference Include="Titanium.Web.Proxy" Version="3.1.1344" />-->
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20574.7" />
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0" />
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20574.7"/>
<PackageReference Include="System.Drawing.Common" Version="5.0.2"/>
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ST.Client\ST.Client.csproj" />
<ProjectReference Include="..\ST.Client\ST.Client.csproj"/>
</ItemGroup>
<ItemGroup>
@@ -55,5 +55,4 @@
<LastGenOutput>AppResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>
@@ -84,7 +84,6 @@ namespace System.Application.Serialization
{
stream.Position = 0;
}
var source = Serializable.DMP<IDictionary<string, object?>>(stream);
//var source = XamlServices.Load(stream) as IDictionary<string, object>;
_settings = source == null
@@ -60,6 +60,13 @@ namespace System.Application.Serialization
}
}
public virtual void RaiseValueChanged()
{
Provider.SetValue(Key, _value);
OnValueChanged(_value, _value);
if (AutoSave) Provider.Save();
}
protected SerializablePropertyBase(string key, ISerializationProvider provider) : this(key, provider, default)
{
}
@@ -177,5 +177,10 @@ namespace System.Application.Services
/// </summary>
/// <param name="enable"></param>
void SetLightOrDarkThemeFollowingSystem(bool enable);
/// <summary>
/// 打开桌面图标设置
/// </summary>
void OpenDesktopIconsSettings();
}
}
@@ -1,4 +1,4 @@
using System.Application.UI.Resx;
using System.Application.UI.Resx;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
@@ -84,12 +84,23 @@ namespace System.Application.Services.Implementation
bool checkReadOnly = false,
bool checkMaxLength = true)
{
message = null;
removeReadOnly = false;
fileInfo = new FileInfo(s.HostsFilePath);
if (!fileInfo.Exists)
{
message = "hosts file was not found";
return false;
//message = "hosts file was not found";
//return false;
try
{
fileInfo.Create().Dispose();
return true;
}
catch (Exception ex)
{
message = ex.GetAllMessage();
return false;
}
}
if (checkMaxLength)
{
@@ -108,7 +119,6 @@ namespace System.Application.Services.Implementation
removeReadOnly = true;
}
}
message = null;
return true;
}
@@ -140,6 +150,50 @@ namespace System.Application.Services.Implementation
internal static bool IsV1Format(string[] line_split_array) => line_split_array.Length == 3 && line_split_array[2] == "#Steam++";
enum HandleLineResult
{
/// <summary>
/// 当前行格式不正确,不处理直接写入
/// </summary>
IncorrectFormatNoneHandleWrite_W_False,
/// <summary>
/// 当前行格式正确,开始处理
/// </summary>
CorrectFormatStartHandle,
/// <summary>
/// 当前行格式不正确,不处理也不写入
/// </summary>
IncorrectFormatNoneHandleNoWrite_Null,
/// <summary>
/// 重复项
/// </summary>
Duplicate,
}
static bool? Convert(HandleLineResult handleLineResult)
{
switch (handleLineResult)
{
case HandleLineResult.IncorrectFormatNoneHandleWrite_W_False:
return false;
case HandleLineResult.CorrectFormatStartHandle:
return true;
case HandleLineResult.IncorrectFormatNoneHandleNoWrite_Null:
return null;
default:
throw new ArgumentOutOfRangeException(nameof(handleLineResult), handleLineResult, null); ;
}
}
static HandleLineResult HandleLineV2(int line_num, HashSet<string> domains, string line_value, out string[] line_split_array, Func<string[], bool?>? func = null)
{
static bool Contains(HashSet<string> hs, string value) => !hs.Add(value);
return HandleLineV2(Contains, line_num, domains, line_value, out line_split_array, func);
}
/// <summary>
/// 处理一行数据
/// <para><see langword="false"/> 当前行格式不正确,不处理直接写入</para>
@@ -152,22 +206,21 @@ namespace System.Application.Services.Implementation
/// <param name="line_split_array"></param>
/// <param name="action"></param>
/// <returns></returns>
static bool? HandleLine(int line_num, HashSet<string> domains, string line_value, out string[] line_split_array, Func<string[], bool?>? func = null)
static HandleLineResult HandleLineV2<T>(Func<T, string, bool> contains, int line_num, T domains, string line_value, out string[] line_split_array, Func<string[], bool?>? func = null)
{
line_split_array = GetLineSplitArray(line_value);
if (func != null)
{
var r = func.Invoke(line_split_array);
if (!r.HasValue) return null;
if (!r.Value) return false;
if (!r.HasValue) return HandleLineResult.IncorrectFormatNoneHandleNoWrite_Null;
if (!r.Value) return HandleLineResult.IncorrectFormatNoneHandleWrite_W_False;
}
if (line_split_array.Length < 2) return false;
if (line_split_array[0].StartsWith('#')) return false;
if (line_split_array.Length > 2 && !line_split_array[2].StartsWith('#')) return false;
if (IsV1Format(line_split_array)) return null; // Compat V1
if (!domains.Add(line_split_array[1]))
throw new Exception($"hosts file line {line_num} duplicate");
return true;
if (line_split_array.Length < 2) return HandleLineResult.IncorrectFormatNoneHandleWrite_W_False;
if (line_split_array[0].StartsWith('#')) return HandleLineResult.IncorrectFormatNoneHandleWrite_W_False;
if (line_split_array.Length > 2 && !line_split_array[2].StartsWith('#')) return HandleLineResult.IncorrectFormatNoneHandleWrite_W_False;
if (IsV1Format(line_split_array)) return HandleLineResult.IncorrectFormatNoneHandleNoWrite_Null; // Compat V1
if (contains != null && contains(domains, line_split_array[1])) return HandleLineResult.Duplicate;
return HandleLineResult.CorrectFormatStartHandle;
}
OperationResult HandleHosts(bool isUpdateOrRemove, IReadOnlyDictionary<string, string>? hosts = null)
@@ -203,7 +256,7 @@ namespace System.Application.Services.Implementation
if (line_value == null) break;
var not_append = false;
var is_effective_value = HandleLine(line_num, domains, line_value, out var line_split_array, line_split_array =>
var is_effective_value_v2 = HandleLineV2(line_num, domains, line_value, out var line_split_array, line_split_array =>
{
if (markLength.Contains(BackupMarkStart) && !markLength.Contains(BackupMarkEnd))
{
@@ -230,26 +283,30 @@ namespace System.Application.Services.Implementation
if (!markLength.Add(mark)) throw new Exception($"hosts file mark duplicate, value: {mark}");
return null;
});
if (!is_effective_value.HasValue) goto skip;
if (!is_effective_value.Value) goto append; // 当前行是无效值,直接写入
if (is_effective_value_v2 != HandleLineResult.Duplicate)
{
var is_effective_value = Convert(is_effective_value_v2);
if (!is_effective_value.HasValue) goto skip;
if (!is_effective_value.Value) goto append; // 当前行是无效值,直接写入
}
string ip, domain;
ip = line_split_array[0];
domain = line_split_array[1];
var match_domain = has_hosts && hosts.ContainsKey(domain); // 与要修改的项匹配
var match_domain = has_hosts && hosts!.ContainsKey(domain); // 与要修改的项匹配
if (markLength.Contains(MarkStart) && !markLength.Contains(MarkEnd)) // 在标记区域内
{
if (match_domain)
{
if (isUpdateOrRemove) // 更新值
{
ip = hosts[domain];
ip = hosts![domain];
}
else // 删除值
{
goto skip;
}
}
insert_mark_datas.TryAdd(domain, ip);
insert_mark_datas[domain] = ip;
goto skip;
}
else // 在标记区域外
@@ -258,9 +315,9 @@ namespace System.Application.Services.Implementation
{
if (isUpdateOrRemove) // 更新值
{
insert_mark_datas.TryAdd(domain, ip);
insert_mark_datas[domain] = ip;
}
backup_insert_mark_datas.TryAdd(domain, (line_num, line_value));
backup_insert_mark_datas[domain] = (line_num, line_value);
goto skip;
}
}
@@ -281,9 +338,9 @@ namespace System.Application.Services.Implementation
if (isUpdateOrRemove)
{
foreach (var item in hosts)
foreach (var item in hosts!)
{
insert_mark_datas.TryAdd(item.Key, item.Value);
insert_mark_datas[item.Key] = item.Value;
}
}
@@ -367,7 +424,7 @@ namespace System.Application.Services.Implementation
Log.Error(TAG, ex, "UpdateHosts catch.");
result.ResultType = OperationResultType.Error;
result.AppendData = ex;
result.Message = ex.Message;
result.Message = ex.GetAllMessage();
return result;
}
@@ -379,22 +436,38 @@ namespace System.Application.Services.Implementation
public void OpenFile() => s.OpenFileByTextReader(s.HostsFilePath);
static Dictionary<string, string> ReadHostsAllLines(StreamReader fileReader)
{
int index = 0;
Dictionary<string, string> dict = new();
static bool Contains(Dictionary<string, string> d, string v) => d.ContainsKey(v);
while (true)
{
index++;
var line = fileReader.ReadLine();
if (line == null) break;
if (string.IsNullOrWhiteSpace(line)) continue;
var is_effective_value_v2 = HandleLineV2(Contains, index, dict, line, out var array);
if (is_effective_value_v2 == HandleLineResult.Duplicate)
{
dict[array[1]] = array[0];
}
else
{
var is_effective_value = Convert(is_effective_value_v2);
if (!is_effective_value.HasValue || !is_effective_value.Value) continue;
dict.Add(array[1], array[0]);
}
}
return dict;
}
public OperationResult<List<(string ip, string domain)>> ReadHostsAllLines()
{
static IEnumerable<(string ip, string domain)> ReadHostsAllLines(StreamReader fileReader)
static IEnumerable<(string ip, string domain)> ReadHostsAllLines_(StreamReader fileReader)
{
int index = 0;
HashSet<string> list = new();
while (true)
{
index++;
var line = fileReader.ReadLine();
if (line == null) break;
if (string.IsNullOrWhiteSpace(line)) continue;
var is_effective_value = HandleLine(index, list, line, out var array);
if (!is_effective_value.HasValue || !is_effective_value.Value) continue;
yield return (array[0], array[1]);
}
var value = ReadHostsAllLines(fileReader);
return value.Select(x => (x.Value, x.Key));
}
var result = new OperationResult<List<(string ip, string domain)>>(OperationResultType.Error, AppResources.Hosts_ReadError);
if (!TryOperation(out var errmsg, out var fileInfo, out var _))
@@ -405,7 +478,7 @@ namespace System.Application.Services.Implementation
try
{
using var fileReader = fileInfo.OpenText();
result.AppendData.AddRange(ReadHostsAllLines(fileReader));
result.AppendData.AddRange(ReadHostsAllLines_(fileReader));
result.ResultType = OperationResultType.Success;
result.Message = AppResources.Hosts_ReadSuccess;
}
@@ -413,7 +486,33 @@ namespace System.Application.Services.Implementation
{
Log.Error(TAG, ex, "ReadHostsAllLines catch.");
result.ResultType = OperationResultType.Error;
result.Message = ex.Message;
result.Message = ex.GetAllMessage();
}
return result;
}
public OperationResult<Dictionary<string, string>> ReadHostsAllLinesV2()
{
OperationResult<Dictionary<string, string>> result;
if (!TryOperation(out var errmsg, out var fileInfo, out var _))
{
result = new OperationResult<Dictionary<string, string>>(OperationResultType.Error, errmsg);
return result;
}
try
{
using var fileReader = fileInfo.OpenText();
result = new OperationResult<Dictionary<string, string>>()
{
AppendData = ReadHostsAllLines(fileReader),
ResultType = OperationResultType.Success,
Message = AppResources.Hosts_ReadSuccess
};
}
catch (Exception ex)
{
Log.Error(TAG, ex, "ReadHostsAllLines catch.");
result = new OperationResult<Dictionary<string, string>>(OperationResultType.Error, ex.GetAllMessage());
}
return result;
}
@@ -1,19 +1,20 @@
using ReactiveUI;
using DynamicData;
using DynamicData.Binding;
using ReactiveUI;
using System.Application.Models;
using System.Application.Models.Settings;
using System.Application.Properties;
using System.Application.UI.Resx;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Properties;
using System.Reactive.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.IO;
using System.Properties;
namespace System.Application.Services
{
@@ -25,7 +26,7 @@ namespace System.Application.Services
public ProxyService()
{
ProxyScripts = new SourceList<ScriptDTO>();
httpProxyService.CertificateEngine = Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastleFast;
httpProxyService.CertificateEngine = Titanium.Web.Proxy.Network.CertificateEngine.BouncyCastle;
}
private ReadOnlyObservableCollection<AccelerateProjectGroupDTO>? _ProxyDomains;
@@ -131,44 +132,59 @@ namespace System.Application.Services
{
if (value)
{
if (!EnableProxyDomains.Any_Nullable())
if (EnableProxyDomains.Any_Nullable())
{
Toast.Show(AppResources.CommunityFix_NoSelectAcceleration);
return;
//Toast.Show(AppResources.CommunityFix_NoSelectAcceleration);
//return;
httpProxyService.ProxyDomains = EnableProxyDomains;
this.RaisePropertyChanged(nameof(EnableProxyDomains));
}
httpProxyService.ProxyDomains = EnableProxyDomains;
httpProxyService.Scripts = EnableProxyScripts;
httpProxyService.IsEnableScript = ProxySettings.IsEnableScript.Value;
httpProxyService.IsOnlyWorkSteamBrowser = ProxySettings.IsOnlyWorkSteamBrowser.Value;
this.RaisePropertyChanged(nameof(EnableProxyDomains));
this.RaisePropertyChanged(nameof(EnableProxyScripts));
var hosts = httpProxyService.ProxyDomains.SelectMany(s =>
if (!ProxySettings.EnableWindowsProxy.Value)
{
return s?.HostsArray.Select(host =>
if (httpProxyService.PortInUse(443))
{
if (host.Contains(" "))
{
var h = host.Split(' ');
return (h[0], h[1]);
}
return (IPAddress.Loopback.ToString(), host);
});
}).Where(w => !string.IsNullOrEmpty(w.Item1));
if (httpProxyService.PortInUse(443))
{
Toast.Show(AppResources.CommunityFix_StartProxyFaild443);
return;
Toast.Show(AppResources.CommunityFix_StartProxyFaild443);
return;
}
}
var isRun = httpProxyService.StartProxy(ProxySettings.EnableWindowsProxy.Value, ProxySettings.IsProxyGOG.Value);
if (isRun)
{
if (!ProxySettings.EnableWindowsProxy.Value)
{
if (httpProxyService.ProxyDomains.Any_Nullable())
{
var hosts = httpProxyService.ProxyDomains.SelectMany(s =>
{
return s?.HostsArray.Select(host =>
{
if (host.Contains(" "))
{
var h = host.Split(' ');
return (h[0], h[1]);
}
return (IPAddress.Loopback.ToString(), host);
});
}).Where(w => !string.IsNullOrEmpty(w.Item1));
var r = IHostsFileService.Instance.UpdateHosts(hosts);
if (r.ResultType != OperationResultType.Success)
{
Toast.Show(SR.OperationHostsError_.Format(r.Message));
httpProxyService.StopProxy();
return;
}
}
}
StartTiming();
if (ProxySettings.EnableWindowsProxy.Value == false)
IHostsFileService.Instance.UpdateHosts(hosts);
Toast.Show(AppResources.CommunityFix_StartProxySuccess);
}
else
@@ -179,7 +195,12 @@ namespace System.Application.Services
else
{
httpProxyService.StopProxy();
IHostsFileService.Instance.RemoveHostsByTag();
var r = IHostsFileService.Instance.RemoveHostsByTag();
if (r.ResultType != OperationResultType.Success)
{
Toast.Show(SR.OperationHostsError_.Format(r.Message));
//return;
}
//Toast.Show(SteamTools.Properties.Resources.ProxyStop);
}
this.RaisePropertyChanged();
@@ -226,8 +247,6 @@ namespace System.Application.Services
SelectGroup = ProxyDomains.FirstOrDefault();
this.WhenAnyValue(v => v.ProxyDomains)
.Subscribe(domain => domain?
.ToObservableChangeSet()
@@ -262,12 +281,10 @@ namespace System.Application.Services
{
item.IsBasics = item.Id == basicsId;
}
ProxyScripts.AddRange(scriptList);
BasicsInfo();
httpProxyService.IsEnableScript = IsEnableScript;
if (ProxySettings.ScriptsStatus.Value.Any_Nullable() && ProxyScripts.Items.Any())
if (ProxySettings.ScriptsStatus.Value.Any_Nullable() && scriptList.Any())
{
foreach (var item in ProxyScripts.Items)
foreach (var item in scriptList)
{
if (item.LocalId > 0 && ProxySettings.ScriptsStatus.Value.Contains(item.LocalId))
{
@@ -275,6 +292,11 @@ namespace System.Application.Services
}
}
}
ProxyScripts.AddRange(scriptList);
BasicsInfo();
httpProxyService.IsEnableScript = IsEnableScript;
this.WhenAnyValue(v => v.ProxyScripts)
.Subscribe(script => script?
.Connect()
@@ -283,6 +305,8 @@ namespace System.Application.Services
.Subscribe(_ =>
{
ProxySettings.ScriptsStatus.Value = EnableProxyScripts.Where(w => w?.LocalId > 0).Select(k => k.LocalId).ToList();
httpProxyService.Scripts = EnableProxyScripts;
this.RaisePropertyChanged(nameof(EnableProxyScripts));
}));
#endregion
}
@@ -338,6 +362,7 @@ namespace System.Application.Services
public void StartTiming()
{
AccelerateTime = new();
Task.Run(() =>
{
Thread.CurrentThread.IsBackground = true;
@@ -352,6 +377,7 @@ namespace System.Application.Services
public void Dispose()
{
IHostsFileService.OnExitRestoreHosts();
httpProxyService.StopProxy();
httpProxyService.Dispose();
}
@@ -464,7 +490,7 @@ namespace System.Application.Services
}
public async void CheckUpdate()
{
var items = Current.ProxyScripts.Items.Where(x => x.Id.HasValue).Select(x => x.Id.Value).ToList();
var items = Current.ProxyScripts.Items.Where(x => x.Id.HasValue).Select(x => x.Id!.Value).ToList();
var client = ICloudServiceClient.Instance.Script;
var response = await client.ScriptUpdateInfo(items, AppResources.Script_UpdateError);
if (response.Code == ApiResponseCode.OK && response.Content != null)
@@ -479,9 +505,8 @@ namespace System.Application.Services
item.IsUpdate = true;
Current.ProxyScripts.Replace(item, item);
}
}
}
}
}
}
}
@@ -1,4 +1,4 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.CodeAnalysis;
namespace System.Application.Services
{
@@ -84,12 +84,12 @@ namespace System.Application.Services
/// <summary>
/// 获取或设置 操作返回信息
/// </summary>
public string? Message { get; set; }
public string Message { get; set; } = string.Empty;
/// <summary>
/// 获取或设置 操作返回的日志消息,用于记录日志
/// </summary>
public string? LogMessage { get; set; }
public string LogMessage { get; set; } = string.Empty;
/// <summary>
/// 获取或设置 操作结果附加信息
+19 -10
View File
@@ -818,6 +818,15 @@ namespace System.Application.UI.Resx {
}
}
/// <summary>
/// 查找类似 编辑游戏信息 的本地化字符串。
/// </summary>
public static string GameList_EditAppInfo {
get {
return ResourceManager.GetString("GameList_EditAppInfo", resourceCulture);
}
}
/// <summary>
/// 查找类似 隐藏此游戏 的本地化字符串。
/// </summary>
@@ -1863,15 +1872,6 @@ namespace System.Application.UI.Resx {
}
}
/// <summary>
/// 查找类似 脚本市场 的本地化字符串。
/// </summary>
public static string Script_Shop {
get {
return ResourceManager.GetString("Script_Shop", resourceCulture);
}
}
/// <summary>
/// 查找类似 更新脚本 的本地化字符串。
/// </summary>
@@ -2612,7 +2612,7 @@ namespace System.Application.UI.Resx {
}
/// <summary>
/// 查找类似 Steam快速登录 的本地化字符串。
/// 查找类似 Steam 快速登录 的本地化字符串。
/// </summary>
public static string User_SteamFastLogin {
get {
@@ -2620,6 +2620,15 @@ namespace System.Application.UI.Resx {
}
}
/// <summary>
/// 查找类似 连接到 Steam 社区超时,请检查是否开启社区加速。 的本地化字符串。
/// </summary>
public static string User_SteamFastLoginTimeoutErrorMessage {
get {
return ResourceManager.GetString("User_SteamFastLoginTimeoutErrorMessage", resourceCulture);
}
}
/// <summary>
/// 查找类似 一键登录Steam 的本地化字符串。
/// </summary>
@@ -765,9 +765,6 @@
<data name="Script_Refresh" xml:space="preserve">
<value>Refresh the cache</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>Script market</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>Update the script</value>
</data>
@@ -978,4 +975,4 @@
<data name="ScriptShop_NoDelete_Basics" xml:space="preserve">
<value>GM is the basic framework and cannot be deleted</value>
</data>
</root>
</root>
@@ -757,9 +757,6 @@
<data name="Script_Refresh" xml:space="preserve">
<value>キャッシュをフラッシュします</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>スクリプト市場</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>スクリプトを更新します</value>
</data>
@@ -973,4 +970,4 @@
<data name="ScriptShop_NoDelete_Basics" xml:space="preserve">
<value>GM は基本フレームであり、削除は許可されていません</value>
</data>
</root>
</root>
@@ -756,9 +756,6 @@
<data name="Script_Refresh" xml:space="preserve">
<value>캐시를 새로 고칩니다</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>스크립트 마켓</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>스크립트를 업데이트합니다</value>
</data>
@@ -972,4 +969,4 @@
<data name="ScriptShop_NoDelete_Basics" xml:space="preserve">
<value>GM 은 기본 프레임 인 데 삭제 가 안 돼 요</value>
</data>
</root>
</root>
@@ -372,6 +372,9 @@
<data name="GameList" xml:space="preserve">
<value>库存游戏</value>
</data>
<data name="GameList_EditAppInfo" xml:space="preserve">
<value>编辑游戏信息</value>
</data>
<data name="GameList_HideTheGame" xml:space="preserve">
<value>隐藏此游戏</value>
</data>
@@ -741,9 +744,6 @@
<data name="Script_ReplaceTips" xml:space="preserve">
<value>已安装此脚本确定替换已安装的版本?</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>脚本市场</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>更新脚本</value>
</data>
@@ -1027,7 +1027,10 @@
<value>请先获取验证码</value>
</data>
<data name="User_SteamFastLogin" xml:space="preserve">
<value>Steam快速登录</value>
<value>Steam 快速登录</value>
</data>
<data name="User_SteamFastLoginTimeoutErrorMessage" xml:space="preserve">
<value>连接到 Steam 社区超时,请检查是否开启社区加速。</value>
</data>
<data name="Warning" xml:space="preserve">
<value>警告</value>
@@ -1035,4 +1038,4 @@
<data name="Welcome" xml:space="preserve">
<value>起始页</value>
</data>
</root>
</root>
@@ -756,9 +756,6 @@
<data name="Script_Refresh" xml:space="preserve">
<value>Обновите кэш</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>Рынок скриптов</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>Обновите сценарий</value>
</data>
@@ -972,4 +969,4 @@
<data name="ScriptShop_NoDelete_Basics" xml:space="preserve">
<value>GM базовый шаблон не позволяет удалять</value>
</data>
</root>
</root>
@@ -762,9 +762,6 @@
<data name="Script_Refresh" xml:space="preserve">
<value>刷新緩存</value>
</data>
<data name="Script_Shop" xml:space="preserve">
<value>腳本市場</value>
</data>
<data name="Script_Update" xml:space="preserve">
<value>更新腳本</value>
</data>
@@ -978,4 +975,4 @@
<data name="ScriptShop_NoDelete_Basics" xml:space="preserve">
<value>GM 是基礎框架不允許删除</value>
</data>
</root>
</root>
@@ -1,16 +1,90 @@
using ReactiveUI;
using DynamicData.Binding;
using System.Application.Models.Settings;
using System.Runtime.Serialization;
using MPKey = MessagePack.KeyAttribute;
using MPObj = MessagePack.MessagePackObjectAttribute;
namespace System.Application.UI.ViewModels
{
[MPObj]
public class WindowSizePosition : ReactiveObject
{
int _X;
[MPKey(0)]
public int X
{
get => _X;
set => this.RaiseAndSetIfChanged(ref _X, value);
}
int _Y;
[MPKey(1)]
public int Y
{
get => _Y;
set => this.RaiseAndSetIfChanged(ref _Y, value);
}
double _Height;
[MPKey(2)]
public double Height
{
get => _Height;
set => this.RaiseAndSetIfChanged(ref _Height, value);
}
double _Width;
[MPKey(3)]
public double Width
{
get => _Width;
set => this.RaiseAndSetIfChanged(ref _Width, value);
}
}
//[DataContract]
public class WindowViewModel : ViewModelBase
{
string title = string.Empty;
[IgnoreDataMember]
public string Title
{
get => title;
set => this.RaiseAndSetIfChanged(ref title, value);
}
//[DataMember]
WindowSizePosition _SizePosition = new();
public WindowSizePosition SizePosition
{
get => _SizePosition;
set => this.RaiseAndSetIfChanged(ref _SizePosition, value);
}
public WindowViewModel()
{
var name = this.GetType().Name;
if (UISettings.WindowSizePositions.Value!.ContainsKey(name))
{
_SizePosition = UISettings.WindowSizePositions.Value[name];
}
this.WhenAnyValue(x => x.SizePosition.X, c => c.SizePosition.Y, v => v.SizePosition.Width, b => b.SizePosition.Height)
.Subscribe(x =>
{
if (x.Item1 == 0 && x.Item2 == 0 && x.Item3 == 0 && x.Item4 == 0)
return;
if (UISettings.WindowSizePositions.Value!.ContainsKey(name))
UISettings.WindowSizePositions.Value[name] = _SizePosition;
else
UISettings.WindowSizePositions.Value.Add(name, _SizePosition);
UISettings.WindowSizePositions.RaiseValueChanged();
});
}
[IgnoreDataMember]
public bool IsInitialized { get; protected set; }
protected void InvokeOnUIDispatcher(Action action)
@@ -1,4 +1,4 @@
using Microsoft.Extensions.Options;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
@@ -13,11 +13,9 @@ using System.Diagnostics.CodeAnalysis;
using System.Drawing.Text;
using System.Globalization;
using System.Linq;
using System.Net.NetworkInformation;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using static Newtonsoft.Json.JsonConvert;
namespace System.Application.UI.ViewModels
@@ -213,11 +211,17 @@ namespace System.Application.UI.ViewModels
public async void ShowDialogButton_Click()
{
ToastService.Current.Notify("中文测试繁體測試🎉🧨🎇🎆🎄🖼🖼🖼🖼");
DebugString += ToastService.Current.Message + Environment.NewLine;
DebugString += ToastService.Current.IsVisible + Environment.NewLine;
#if DEBUG
await LoginOrRegisterWindowViewModel.FastLoginOrRegisterAsync();
#endif
await IShowWindowService.Instance.Show(typeof(object), CustomWindow.NewVersion);
//DI.Get<IDesktopPlatformService>().OpenDesktopIconsSettings();
//ToastService.Current.Notify("中文测试繁體測試🎉🧨🎇🎆🎄🖼🖼🖼🖼");
//DebugString += ToastService.Current.Message + Environment.NewLine;
//DebugString += ToastService.Current.IsVisible + Environment.NewLine;
//await IShowWindowService.Instance.Show(typeof(object), CustomWindow.NewVersion);
// var r = await MessageBoxCompat.ShowAsync(@"Steam++ v1.1.2 2021-01-29
//更新内容
@@ -297,41 +301,47 @@ namespace System.Application.UI.ViewModels
}
}
public async void TestServerApiButton_Click()
public /*async*/ void TestServerApiButton_Click()
{
DebugString = string.Empty;
var client = ICloudServiceClient.Instance;
#if DEBUG
//DebugString = string.Empty;
//var client = ICloudServiceClient.Instance;
var req1 = new SendSmsRequest
{
PhoneNumber = "18611112222",
Type = SmsCodeType.LoginOrRegister,
};
//var req1 = new SendSmsRequest
//{
// PhoneNumber = "00011112222",
// Type = SmsCodeType.LoginOrRegister,
//};
var rsp1 = await client.AuthMessage.SendSms(req1);
//var rsp1 = await client.AuthMessage.SendSms(req1);
if (!rsp1.IsSuccess)
{
DebugString = $"SendSms: Fail({rsp1.Code}).";
return;
}
//if (!rsp1.IsSuccess)
//{
// DebugString = $"SendSms: Fail({rsp1.Code}).";
// return;
//}
var req2 = new LoginOrRegisterRequest
{
PhoneNumber = req1.PhoneNumber,
SmsCode = "666666",
};
var rsp2 = await ICloudServiceClient.Instance.Account.LoginOrRegister(req2);
//var req2 = new LoginOrRegisterRequest
//{
// PhoneNumber = req1.PhoneNumber,
// SmsCode = "666666",
//};
//var rsp2 = await ICloudServiceClient.Instance.Account.LoginOrRegister(req2);
if (!rsp2.IsSuccess)
{
DebugString = $"LoginOrRegister: Fail({rsp2.Code}).";
return;
}
//if (!rsp2.IsSuccess)
//{
// DebugString = $"LoginOrRegister: Fail({rsp2.Code}).";
// return;
//}
var jsonStr = Serializable2.S(rsp2.Content);
//var jsonStr = Serializable2.S(rsp2.Content);
DebugString = $"JSON: {jsonStr}";
//DebugString = $"JSON: {jsonStr}";
#else
//await Task.Delay(300);
//DebugString = nameof(TestServerApiButton_Click);
#endif
}
/// <summary>
@@ -149,12 +149,12 @@ namespace System.Application.UI.ViewModels
{
if (s.Result == MessageBoxResultCompat.OK)
{
var item = await DI.Get<IScriptManagerService>().AddScriptAsync(url, script);
var item = await DI.Get<IScriptManagerService>().AddScriptAsync(url, script,build: script.IsBuild,order:script.Order);
if (item.state)
{
if (ProxyService.Current.ProxyScripts.Items.Any() && item.model != null)
{
ProxyService.Current.ProxyScripts.Replace(script, item.model);
ProxyService.Current.ProxyScripts.Replace(script, item.model) ;
}
}
}
@@ -170,7 +170,7 @@ namespace System.Application.UI.ViewModels
{
if (script?.FilePath != null)
{
var item = await DI.Get<IScriptManagerService>().AddScriptAsync(script.FilePath, build: script.IsBuild);
var item = await DI.Get<IScriptManagerService>().AddScriptAsync(Path.Combine(IOPath.AppDataDirectory, script.FilePath), build: script.IsBuild);
if (item.state)
if (item.model != null)
{
@@ -88,11 +88,12 @@ namespace System.Application.UI.ViewModels
}
_SteamUsersSourceList.AddOrUpdate(list);
var accountRemarks = Serializable.Clone<IReadOnlyDictionary<long, string?>?>(SteamAccountSettings.AccountRemarks.Value);
foreach (var user in _SteamUsersSourceList.Items)
{
string? remark = null;
SteamAccountSettings.AccountRemarks.Value?.TryGetValue(user.SteamId64, out remark);
accountRemarks?.TryGetValue(user.SteamId64, out remark);
var temp = await webApiService.GetUserInfo(user.SteamId64);
user.Remark = remark;
user.SteamID = temp.SteamID;
@@ -124,14 +125,14 @@ namespace System.Application.UI.ViewModels
_SteamUsersSourceList.Refresh();
this.WhenAnyValue(x => x.SteamUsers)
.Subscribe(items => items?
.ToObservableChangeSet()
.AutoRefresh(x => x.Remark)
.WhenValueChanged(x => x.Remark, false)
.Subscribe(_ =>
{
SteamAccountSettings.AccountRemarks.Value = items?.Where(x => !string.IsNullOrEmpty(x.Remark)).ToDictionary(k => k.SteamId64, v => v.Remark);
}));
.Subscribe(items => items?
.ToObservableChangeSet()
.AutoRefresh(x => x.Remark)
.WhenValueChanged(x => x.Remark, false)
.Subscribe(_ =>
{
SteamAccountSettings.AccountRemarks.Value = items?.Where(x => !string.IsNullOrEmpty(x.Remark)).ToDictionary(k => k.SteamId64, v => v.Remark);
}));
}
public void SteamId_Click(SteamUser user)
@@ -140,9 +141,7 @@ namespace System.Application.UI.ViewModels
{
UserModeChange(user, false);
}
steamService.SetCurrentUser(user.AccountName ?? string.Empty);
steamService.TryKillSteamProcess();
steamService.StartSteam(SteamSettings.SteamStratParameter.Value);
ReStartSteamByUser(user);
}
public void OfflineModeButton_Click(SteamUser user)
@@ -151,7 +150,14 @@ namespace System.Application.UI.ViewModels
{
UserModeChange(user, true);
}
SteamId_Click(user);
ReStartSteamByUser(user);
}
private void ReStartSteamByUser(SteamUser user)
{
steamService.SetCurrentUser(user.AccountName ?? string.Empty);
steamService.TryKillSteamProcess();
steamService.StartSteam(SteamSettings.SteamStratParameter.Value);
}
private void UserModeChange(SteamUser user, bool OfflineMode)
@@ -0,0 +1,26 @@
using Newtonsoft.Json.Linq;
using System.Application.Models;
using System.Application.UI.Resx;
using System.Properties;
namespace System.Application.UI.ViewModels
{
public class EditAppInfoWindowViewModel : WindowViewModel
{
private readonly SteamApp? _App;
public EditAppInfoWindowViewModel()
{
Title = ThisAssembly.AssemblyTrademark + " | " + AppResources.GameList_EditAppInfo;
}
public EditAppInfoWindowViewModel(SteamApp app) : this()
{
_App = app;
}
}
}
@@ -13,13 +13,12 @@ namespace System.Application.UI.ViewModels
{
Title = ThisAssembly.AssemblyTrademark + " | " + AppResources.LocalAuth_AuthData;
}
public ShowAuthWindowViewModel(MyAuthenticator auth)
public ShowAuthWindowViewModel(MyAuthenticator auth) : this()
{
if (auth.AuthenticatorData.Value is GAPAuthenticatorValueDTO.SteamAuthenticator authenticator)
{
_Authenticator = authenticator;
}
Title = ThisAssembly.AssemblyTrademark + " | " + AppResources.LocalAuth_AuthData;
}
public string? RecoveryCode => _Authenticator?.RecoveryCode;
@@ -1,9 +1,11 @@
using ReactiveUI;
using System.Application.Models;
using System.Application.Services;
using System.Application.Services.CloudService;
using System.Application.UI.Resx;
using System.Properties;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using static System.Application.Services.CloudService.Constants;
@@ -77,16 +79,64 @@ namespace System.Application.UI.ViewModels
if (response.IsSuccess)
{
await UserService.Current.RefreshUserAsync();
var msg = AppResources.Success_.Format((response.Content?.IsLoginOrRegister ?? false) ? AppResources.User_Login : AppResources.User_Register);
Toast.Show(msg);
Close?.Invoke();
await SuccessAsync(response.Content!, Close);
return;
}
IsLoading = false;
}
static async Task SuccessAsync(LoginOrRegisterResponse rsp, Action? close)
{
await UserService.Current.RefreshUserAsync();
var msg = AppResources.Success_.Format((rsp?.IsLoginOrRegister ?? false) ? AppResources.User_Login : AppResources.User_Register);
Toast.Show(msg);
close?.Invoke();
}
internal static async Task FastLoginOrRegisterAsync()
{
var apiBaseUrl = ICloudServiceClient.Instance.ApiBaseUrl;
var urlExternalLoginCallback = apiBaseUrl + "/ExternalLoginCallback";
WebView3WindowViewModel? vm = null;
vm = new WebView3WindowViewModel
{
Url = apiBaseUrl + "/ExternalLogin",
StreamResponseFilterUrls = new[]
{
urlExternalLoginCallback,
},
OnStreamResponseFilterResourceLoadComplete = _OnStreamResponseFilterResourceLoadComplete,
FixedSinglePage = true,
Title = AppResources.User_SteamFastLogin,
TimeoutErrorMessage = AppResources.User_SteamFastLoginTimeoutErrorMessage,
IsSecurity = true,
};
async void _OnStreamResponseFilterResourceLoadComplete(string url, byte[] data)
{
if (url.StartsWith(urlExternalLoginCallback, StringComparison.OrdinalIgnoreCase))
{
var response = ApiResponse.Deserialize<LoginOrRegisterResponse>(data);
if (response.IsSuccess && response.Content == null)
{
response.Code = ApiResponseCode.NoResponseContent;
}
var conn_helper = DI.Get<IApiConnectionPlatformHelper>();
if (response.IsSuccess)
{
await conn_helper.OnLoginedAsync(null, response.Content!);
await SuccessAsync(response.Content!, vm?.Close);
}
else
{
conn_helper.ShowResponseErrorMessage(response);
vm?.Close?.Invoke();
}
}
}
await IShowWindowService.Instance.Show(CustomWindow.WebView3, vm, resizeMode: ResizeModeCompat.NoResize);
}
public Action? Close { private get; set; }
public Action? TbPhoneNumberFocus { get; set; }
@@ -99,7 +149,6 @@ namespace System.Application.UI.ViewModels
{
if (this.TimeStart())
{
var request = new SendSmsRequest
{
PhoneNumber = PhoneNumber,
@@ -1,4 +1,5 @@
using ReactiveUI;
using System.Net.Http;
namespace System.Application.UI.ViewModels
{
@@ -12,5 +13,37 @@ namespace System.Application.UI.ViewModels
get => _Url;
set => this.RaiseAndSetIfChanged(ref _Url, value);
}
string[]? _StreamResponseFilterUrls;
public string[]? StreamResponseFilterUrls
{
get => _StreamResponseFilterUrls;
set => this.RaiseAndSetIfChanged(ref _StreamResponseFilterUrls, value);
}
public Action<string, byte[]>? OnStreamResponseFilterResourceLoadComplete { get; set; }
public bool FixedSinglePage { get; set; }
bool _IsLoading = true;
public bool IsLoading
{
get => _IsLoading;
set => this.RaiseAndSetIfChanged(ref _IsLoading, value);
}
/// <summary>
/// 设置网页加载超时时间
/// </summary>
public TimeSpan Timeout { get; set; } = GeneralHttpClientFactory.DefaultTimeout;
/// <summary>
/// 网页加载超时时提示文本
/// </summary>
public string? TimeoutErrorMessage { get; set; }
public bool IsSecurity { get; set; }
public Action? Close { get; set; }
}
}
+2 -2
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -165,7 +165,7 @@
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="OpenSourceLibraryList" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\..\..\Resources\OpenSourceLibraryList.mpo;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>..\Resources\OpenSourceLibraryList.mpo;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="Script_BuildDownloadError" xml:space="preserve">
<value>脚本依赖下载出错:[{0}]_{1}</value>
+1 -5
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
@@ -7,10 +7,6 @@
<AssemblyName>System.Application.SteamTools.Client</AssemblyName>
</PropertyGroup>
<ItemGroup>
<None Remove="Services\Implementation\HttpProxyServiceImpl.cs~RF49d5c0a.TMP" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
@@ -315,7 +315,7 @@ namespace System.Application.Services.Implementation
break;
}
i++;
OnReportDownloading3_(i / (float)incrementalUpdate.Count);
OnReportDownloading3_(i / (float)incrementalUpdate.Count * MaxProgressValue);
}
OnReport(MaxProgressValue);
@@ -6,11 +6,14 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Properties;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Titanium.Web.Proxy;
using Titanium.Web.Proxy.EventArguments;
@@ -41,7 +44,6 @@ namespace System.Application.Services.Implementation
public bool ProxyRunning => proxyServer.ProxyRunning;
public IList<HttpHeader> JsHeader => new List<HttpHeader>() { new HttpHeader("Content-Type", "text/javascript;charset=UTF-8") };
public HttpProxyServiceImpl()
{
//if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@@ -60,7 +62,36 @@ namespace System.Application.Services.Implementation
proxyServer.CertificateManager.RootCertificate = proxyServer.CertificateManager.LoadRootCertificate();
}
public async Task HttpRequest(SessionEventArgs e)
{
//IHttpService.Instance.SendAsync<object>();
var url = Web.HttpUtility.UrlDecode(e.HttpClient.Request.RequestUri.Query.Replace("?request=", ""));
var cookie = e.HttpClient.Request.Headers.GetFirstHeader("cookie-steamTool")?.Value?? e.HttpClient.Request.Headers.GetFirstHeader("Cookie")?.Value;
var headrs = new List<HttpHeader>() { new HttpHeader("Access-Control-Allow-Origin", e.HttpClient.Request.Headers.GetFirstHeader("Origin")?.Value ?? "*"), new HttpHeader("Access-Control-Allow-Headers", "*"), new HttpHeader("Access-Control-Allow-Methods", "*"), new HttpHeader("Access-Control-Allow-Credentials", "true")};
//if (cookie != null)
// headrs.Add(new HttpHeader("Cookie", cookie));
switch (e.HttpClient.Request.Method.ToUpperInvariant())
{
case "GET":
var body =await IHttpService.Instance.GetAsync<string>(url,cookie:cookie);
e.Ok(body??"500", headrs);
return;
case "POST":
var requestStream = new StreamWriter(new MemoryStream());
requestStream.Write(e.HttpClient.Request.BodyString);
var send = new HttpRequestMessage
{
Method = HttpMethod.Post,
Content = new StreamContent(requestStream.BaseStream),
};
send.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(e.HttpClient.Request.ContentType);
send.Content.Headers.ContentLength = e.HttpClient.Request.BodyString.Length;
var conext = await IHttpService.Instance.SendAsync<string>(url, send,null,false,new CancellationToken());
e.Ok(conext ?? "500", headrs);
return;
}
//e.Ok(respone, new List<HttpHeader>() { new HttpHeader("Access-Control-Allow-Origin", e.HttpClient.Request.Headers.GetFirstHeader("Origin")?.Value ?? "*") });
}
public async Task OnRequest(object sender, SessionEventArgs e)
{
#if DEBUG
@@ -73,8 +104,25 @@ namespace System.Application.Services.Implementation
}
if (e.HttpClient.Request.Host == "local.steampp.net")
{
e.Ok(Scripts.FirstOrDefault(x => x.JsPathUrl == e.HttpClient.Request.RequestUri.LocalPath)?.Content ?? "404", JsHeader);
return;
if (e.HttpClient.Request.Method.ToUpperInvariant() == "OPTIONS") {
e.Ok("", new List<HttpHeader>() {
new HttpHeader("Access-Control-Allow-Origin", e.HttpClient.Request.Headers.GetFirstHeader("Origin")?.Value ?? "*"),
new HttpHeader("Access-Control-Allow-Headers", "*"),
new HttpHeader("Access-Control-Allow-Methods", "*"),
new HttpHeader("Access-Control-Allow-Credentials", "true") });
return;
}
var type = e.HttpClient.Request.Headers.GetFirstHeader("requestType")?.Value;
switch (type)
{
case "xhr":
await HttpRequest(e);
return;
default:
e.Ok(Scripts.FirstOrDefault(x => x.JsPathUrl == e.HttpClient.Request.RequestUri.LocalPath)?.Content ?? "404", JsHeader);
return;
}
}
foreach (var item in ProxyDomains)
{
@@ -337,13 +385,7 @@ namespace System.Application.Services.Implementation
//proxyServer.ServerCertificateValidationCallback += OnCertificateValidation;
//proxyServer.ClientCertificateSelectionCallback += OnCertificateSelection;
//var explicitEndPoint = new ExplicitProxyEndPoint(IPAddress.Any, 8888, true)
//{
// // 在所有https请求上使用自颁发的通用证书
// // 当代理客户端不需要证书信任时非常有用
// //GenericCertificate = new X509Certificate2(Path.Combine(AppContext.BaseDirectory, "genericcert.pfx"), "password")
//};
var explicitProxyEndPoint = new ExplicitProxyEndPoint(IPAddress.Any, ProxyPort, true)
var explicitProxyEndPoint = new ExplicitProxyEndPoint(IPAddress.Loopback, ProxyPort, true)
{
// 通过不启用为每个http的域创建证书来优化性能
//GenericCertificate = proxyServer.CertificateManager.RootCertificate
@@ -360,12 +402,14 @@ namespace System.Application.Services.Implementation
// return false;
//}
proxyServer.AddEndPoint(new TransparentProxyEndPoint(IPAddress.Any, 443, true)
proxyServer.AddEndPoint(new TransparentProxyEndPoint(IPAddress.Loopback, 443, true)
{
// 通过不启用为每个http的域创建证书来优化性能
//GenericCertificate = proxyServer.CertificateManager.RootCertificate
});
proxyServer.AddEndPoint(new TransparentProxyEndPoint(IPAddress.Any, 80, false));
if (PortInUse(80) == false)
proxyServer.AddEndPoint(new TransparentProxyEndPoint(IPAddress.Loopback, 80, false));
}
proxyServer.ExceptionFunc = ((Exception exception) =>
@@ -387,8 +431,6 @@ namespace System.Application.Services.Implementation
{
proxyServer.SetAsSystemHttpProxy(explicitProxyEndPoint);
proxyServer.SetAsSystemHttpsProxy(explicitProxyEndPoint);
//proxyServer.UpStreamHttpProxy = new ExternalProxy() { HostName = "localhost", Port = 26501 };
//proxyServer.UpStreamHttpsProxy = new ExternalProxy() { HostName = "localhost", Port = 26501 };
}
#endregion
#if DEBUG
@@ -408,10 +450,10 @@ namespace System.Application.Services.Implementation
proxyServer.BeforeResponse -= OnResponse;
proxyServer.ServerCertificateValidationCallback -= OnCertificateValidation;
proxyServer.ClientCertificateSelectionCallback -= OnCertificateSelection;
proxyServer.DisableSystemHttpProxy();
proxyServer.DisableSystemHttpsProxy();
proxyServer.Stop();
}
proxyServer.DisableSystemHttpProxy();
proxyServer.DisableSystemHttpsProxy();
}
public bool WirtePemCertificateToGoGSteamPlugins()
@@ -166,10 +166,14 @@ namespace System.Application.Services.Implementation
public Task<T?> GetAsync<T>(
string requestUri,
string accept,
CancellationToken cancellationToken) where T : notnull
CancellationToken cancellationToken,
string? cookie = null) where T : notnull
{
if (!IsHttpUrl(requestUri)) return Task.FromResult(default(T?));
var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
if (cookie != null) {
request.Headers.Add("Cooike", cookie);
}
request.Headers.Accept.ParseAdd(accept);
request.Headers.UserAgent.ParseAdd(http_helper.UserAgent);
return SendAsync<T>(isCheckHttpUrl: true, requestUri, request, accept, true, cancellationToken);

Some files were not shown because too many files have changed in this diff Show More