diff --git a/Directory.build.props b/Directory.build.props
new file mode 100644
index 000000000..5c32e9e62
--- /dev/null
+++ b/Directory.build.props
@@ -0,0 +1,70 @@
+
+
+ Copyright (c) Daniel Luberda
+ MIT
+ https://github.com/luberda-molinet/FFImageLoading
+ https://raw.githubusercontent.com/luberda-molinet/FFImageLoading/master/icon.png
+ Daniel Luberda, Fabien Molinet
+ Daniel Luberda, Fabien Molinet
+ xamarin, android, ios, mac, windows, image, cache, caching, memory, bitmap, lru, load, loading, save, effects, photo
+ https://github.com/luberda-molinet/FFImageLoading/releases
+ false
+
+ https://github.com/luberda-molinet/FFImageLoading
+ git
+ $(AssemblyName) ($(TargetFramework))
+ en
+ 2.5.0
+ AnyCPU
+
+ 7.3
+ $(NoWarn);1591;1701;1702;1705;VSX1000;NU1603
+
+ $(MSBuildProjectName.Contains('UnitTest'))
+ true
+
+
+
+ false
+ true
+ true
+ portable
+ true
+
+
+
+ full
+ true
+
+
+
+
+
+ true
+ true
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+
+
+
+
+
+
+
+
+
+
+
+
+ All
+
+
+
+
+
+
+
+ All
+
+
+
\ No newline at end of file
diff --git a/Directory.build.targets b/Directory.build.targets
new file mode 100644
index 000000000..c46e85457
--- /dev/null
+++ b/Directory.build.targets
@@ -0,0 +1,39 @@
+
+
+ $(DefineConstants);NETSTANDARD;PORTABLE
+
+
+ $(DefineConstants);NET;WPF;XAML
+
+
+ $(DefineConstants);NETFX_CORE;XAML;WINDOWS;WINDOWS_UWP
+ 10.0.16299.0
+ 10.0.16299.0
+
+
+ $(DefineConstants);MONO;UIKIT;COCOA;IOS
+
+
+ $(DefineConstants);MONO;COCOA;MAC
+
+
+ $(DefineConstants);MONO;COCOA;TVOS
+
+
+ $(DefineConstants);MONO;COCOA;WATCHOS
+
+
+ $(DefineConstants);MONO;ANDROID
+ Resources
+ Resource
+ Resources\Resource.designer.cs
+
+
+ $(DefineConstants);NETCOREAPP
+
+
+ $(DefineConstants);TIZEN
+ Tizen
+ v4.0
+
+
\ No newline at end of file
diff --git a/FFImageLoading.Forms/FFImageLoading.Forms.csproj b/FFImageLoading.Forms/FFImageLoading.Forms.csproj
new file mode 100644
index 000000000..0b012776e
--- /dev/null
+++ b/FFImageLoading.Forms/FFImageLoading.Forms.csproj
@@ -0,0 +1,117 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading.Forms
+ FFImageLoading.Forms
+ Xamarin.FFImageLoading.Forms
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FFImageLoading.Forms/readme.txt b/FFImageLoading.Forms/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading.Forms/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/FFImageLoading.MvvmCross/FFImageLoading.MvvmCross.csproj b/FFImageLoading.MvvmCross/FFImageLoading.MvvmCross.csproj
new file mode 100644
index 000000000..c7b2afb9e
--- /dev/null
+++ b/FFImageLoading.MvvmCross/FFImageLoading.MvvmCross.csproj
@@ -0,0 +1,118 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading.MvvmCross
+ FFImageLoading.MvvmCross
+ Xamarin.FFImageLoading.MvvmCross
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Cross/MvxCachedImageView.cs b/FFImageLoading.MvvmCross/MvxCachedImageView.cs
similarity index 100%
rename from source/FFImageLoading.Cross/MvxCachedImageView.cs
rename to FFImageLoading.MvvmCross/MvxCachedImageView.cs
diff --git a/source/FFImageLoading.Cross.Svg/MvxSvgCachedImageView.cs b/FFImageLoading.MvvmCross/MvxSvgCachedImageView.cs
similarity index 100%
rename from source/FFImageLoading.Cross.Svg/MvxSvgCachedImageView.cs
rename to FFImageLoading.MvvmCross/MvxSvgCachedImageView.cs
diff --git a/FFImageLoading.MvvmCross/readme.txt b/FFImageLoading.MvvmCross/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading.MvvmCross/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj b/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj
new file mode 100644
index 000000000..686d41321
--- /dev/null
+++ b/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj
@@ -0,0 +1,115 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms
+ Xamarin.FFImageLoading.Svg.Forms
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FFImageLoading.Svg.Forms/readme.txt b/FFImageLoading.Svg.Forms/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading.Svg.Forms/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/FFImageLoading.Svg/FFImageLoading.Svg.csproj b/FFImageLoading.Svg/FFImageLoading.Svg.csproj
new file mode 100644
index 000000000..45245aaf2
--- /dev/null
+++ b/FFImageLoading.Svg/FFImageLoading.Svg.csproj
@@ -0,0 +1,117 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading.Svg
+ FFImageLoading.Svg
+ Xamarin.FFImageLoading.Svg
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FFImageLoading.Svg/readme.txt b/FFImageLoading.Svg/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading.Svg/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj b/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj
new file mode 100644
index 000000000..b070284e4
--- /dev/null
+++ b/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj
@@ -0,0 +1,113 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading.Transformations
+ FFImageLoading.Transformations
+ Xamarin.FFImageLoading.Transformations
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FFImageLoading.Transformations/readme.txt b/FFImageLoading.Transformations/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading.Transformations/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/FFImageLoading.sln b/FFImageLoading.sln
index 38646eb5e..55a92e3aa 100644
--- a/FFImageLoading.sln
+++ b/FFImageLoading.sln
@@ -1,1321 +1,642 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27004.2002
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading", "source\FFImageLoading.Common\FFImageLoading.csproj", "{51CA3BE2-DF00-4F49-8054-E5C776992B61}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Shared", "source\FFImageLoading.Shared\FFImageLoading.Shared.shproj", "{E72AC4ED-03A8-465C-95A2-38B0544B37DB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Droid", "source\FFImageLoading.Droid\FFImageLoading.Droid.csproj", "{74BF9402-3E13-4003-8923-BC20A1294CE2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Touch", "source\FFImageLoading.Touch\FFImageLoading.Touch.csproj", "{1597F7D4-432C-4F26-B508-0F6FAF0B9711}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{B48F3C95-B33F-4EF5-B223-06356D749A80}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Android.Sample", "samples\ImageLoading.Sample\Simple.Android.Sample.csproj", "{F898A684-E9C1-4154-9F80-6037287233F5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Droid", "samples\ImageLoading.Forms.Sample\Droid\FFImageLoading.Forms.Sample.Droid.csproj", "{9F816002-DBA1-4175-A0CA-0DFD9E086786}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.iOS", "samples\ImageLoading.Forms.Sample\iOS\FFImageLoading.Forms.Sample.iOS.csproj", "{626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample", "samples\ImageLoading.Forms.Sample\Shared\FFImageLoading.Forms.Sample.csproj", "{3A682234-5918-4F58-B02B-598A59C6A7BD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Universal.Sample", "samples\Simple.WinUniversal.Sample\Simple.Universal.Sample.csproj", "{4B964916-47F4-4876-8A6B-9048B8A0D148}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.iOS.Sample", "samples\Simple.iOS.Sample\Simple.iOS.Sample.csproj", "{B67D0516-5951-4DE9-B07F-AD3407D8CA90}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Windows", "source\FFImageLoading.Windows\FFImageLoading.Windows.csproj", "{610543A5-D06F-4BCA-9443-E6ADDFF06C71}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Forms", "Forms", "{F7C14B24-556B-413B-B418-4CD194766A26}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms", "source\FFImageLoading.Forms\FFImageLoading.Forms.csproj", "{3D6C1F12-68D7-44C2-A7DE-8E7942627A01}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Droid", "source\FFImageLoading.Forms.Droid\FFImageLoading.Forms.Droid.csproj", "{7014FEB6-0338-4A47-B600-4A1B48127C5C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Touch", "source\FFImageLoading.Forms.Touch\FFImageLoading.Forms.Touch.csproj", "{1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.WinUWP", "source\FFImageLoading.Forms.WinUWP\FFImageLoading.Forms.WinUWP.csproj", "{B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Transformations", "Transformations", "{8F977FC5-CA16-4EEF-9222-2C77F88A7125}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations", "source\FFImageLoading.Transformations\FFImageLoading.Transformations.csproj", "{E68FD3BB-5851-45CC-9B33-DE6AB28B9984}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations.Droid", "source\FFImageLoading.Transformations.Droid\FFImageLoading.Transformations.Droid.csproj", "{BD3CEB96-93D6-47BD-9474-01DFCD320897}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations.Touch", "source\FFImageLoading.Transformations.Touch\FFImageLoading.Transformations.Touch.csproj", "{A19942AA-BE22-4CF5-9173-4A78D6B0EB06}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MvvmCross", "MvvmCross", "{1AFB4004-0EB7-4518-9B65-F1008B7962FC}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Cross", "source\FFImageLoading.Cross\FFImageLoading.Cross.shproj", "{3C58B37D-EDB7-4778-AA48-F3AD9A571059}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Svg", "Svg", "{EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Touch", "source\FFImageLoading.Svg.Touch\FFImageLoading.Svg.Touch.csproj", "{AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Droid", "source\FFImageLoading.Svg.Droid\FFImageLoading.Svg.Droid.csproj", "{0BF13419-BA9C-4004-812C-EB22E41927D9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms", "source\FFImageLoading.Svg.Forms\FFImageLoading.Svg.Forms.csproj", "{DE555E87-187D-4768-8053-B2D3195B6792}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Svg.Shared", "source\FFImageLoading.Svg.Shared\FFImageLoading.Svg.Shared.shproj", "{488664FA-5BC5-4868-9FC4-44DB7294EC5A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms.Touch", "source\FFImageLoading.Svg.Forms.Touch\FFImageLoading.Svg.Forms.Touch.csproj", "{A73A1EA8-E709-474D-9102-DCB2482950AB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms.Droid", "source\FFImageLoading.Svg.Forms.Droid\FFImageLoading.Svg.Forms.Droid.csproj", "{CCA629E9-55E3-414A-91AF-79A0CB845CD5}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Svg.Forms.Shared", "source\FFImageLoading.Svg.Forms.Shared\FFImageLoading.Svg.Forms.Shared.shproj", "{3F817BAD-EDFB-44E3-A9EF-1FDED55ED787}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg", "source\FFImageLoading.Svg\FFImageLoading.Svg.csproj", "{E5C8FBB7-595D-43FE-B900-46027D0D4F69}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Windows", "source\FFImageLoading.Svg.Windows\FFImageLoading.Svg.Windows.csproj", "{5140739D-209C-41A7-9503-5D5733F4C091}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms.Windows", "source\FFImageLoading.Svg.Forms.Windows\FFImageLoading.Svg.Forms.Windows.csproj", "{6D4F9DFA-012E-4966-A6E8-01C3464B537E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{A420B061-9AF1-40EC-A728-60536C59031E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.Core", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.Core\FFImageLoading.MvvmCross.Sample.Core.csproj", "{087DE224-30F0-4FEF-A960-F93F04182BA6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.Droid", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.Droid\FFImageLoading.MvvmCross.Sample.Droid.csproj", "{A3760566-B91D-435F-94A6-31ADF4C7812F}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Cross.Svg", "source\FFImageLoading.Cross.Svg\FFImageLoading.Cross.Svg.shproj", "{60678181-1544-4276-9B2A-6239C1046EA5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.iOS", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.iOS\FFImageLoading.MvvmCross.Sample.iOS.csproj", "{8701A65C-0F63-4BE7-B3F7-D2365BB6366E}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "FFImageLoading.Shared.IosMac", "source\FFImageLoading.Shared.IosMac\FFImageLoading.Shared.IosMac.shproj", "{26F4DB3B-EC7F-46DE-8D51-2CB4BA187A16}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Mac", "source\FFImageLoading.Forms.Mac\FFImageLoading.Forms.Mac.csproj", "{EC240D61-70B0-4561-BB43-F8FB8FD11BF2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Mac", "samples\ImageLoading.Forms.Sample\Mac\FFImageLoading.Forms.Sample.Mac.csproj", "{75D24499-446D-47DD-9C9A-295E40010CF1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Tests", "source\Tests\FFImageLoading.Tests\FFImageLoading.Tests.csproj", "{844EF512-7E52-4515-AC00-5FF50800F2B5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Mock", "source\FFImageLoading.Mock\FFImageLoading.Mock.csproj", "{32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Mac", "source\FFImageLoading.Mac\FFImageLoading.Mac.csproj", "{91825F9F-8F2D-4848-8375-68FCAA8C0DC6}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Nuspec", "Nuspec", "{5C360F03-BA00-4697-B698-73682B8F510F}"
- ProjectSection(SolutionItems) = preProject
- nuget\Xamarin.FFImageLoading.Forms.nuspec = nuget\Xamarin.FFImageLoading.Forms.nuspec
- nuget\Xamarin.FFImageLoading.nuspec = nuget\Xamarin.FFImageLoading.nuspec
- nuget\Xamarin.FFImageLoading.Svg.Forms.nuspec = nuget\Xamarin.FFImageLoading.Svg.Forms.nuspec
- nuget\Xamarin.FFImageLoading.Svg.nuspec = nuget\Xamarin.FFImageLoading.Svg.nuspec
- nuget\Xamarin.FFImageLoading.Transformations.nuspec = nuget\Xamarin.FFImageLoading.Transformations.nuspec
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations.Mac", "source\FFImageLoading.Transformations.Mac\FFImageLoading.Transformations.Mac.csproj", "{CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Tizen", "source\FFImageLoading.Forms.Tizen\FFImageLoading.Forms.Tizen.csproj", "{FF334AE1-1B61-4979-8C8E-FD486B246859}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations.Tizen", "source\FFImageLoading.Transformations.Tizen\FFImageLoading.Transformations.Tizen.csproj", "{CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Tizen", "source\FFImageLoading.Svg.Tizen\FFImageLoading.Svg.Tizen.csproj", "{B27E52FA-74DC-42C7-ACBC-5A893271AFFE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms.Tizen", "source\FFImageLoading.Svg.Forms.Tizen\FFImageLoading.Svg.Forms.Tizen.csproj", "{CB1F7760-C8A6-40A3-9B90-F05628B62C2D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Tizen", "source\FFImageLoading.Tizen\FFImageLoading.Tizen.csproj", "{DCC22B65-C384-4101-B61B-1A8515D68F06}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Mac", "source\FFImageLoading.Svg.Mac\FFImageLoading.Svg.Mac.csproj", "{EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Svg.Forms.Mac", "source\FFImageLoading.Svg.Forms.Mac\FFImageLoading.Svg.Forms.Mac.csproj", "{411B82F4-4F6B-49A0-8E28-260FB65B386F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Mock", "source\FFImageLoading.Forms.Mock\FFImageLoading.Forms.Mock.csproj", "{957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Transformations.Windows", "source\FFImageLoading.Transformations.Windows\FFImageLoading.Transformations.Windows.csproj", "{399E7E28-5A3D-471F-B6FC-D5770EBB6762}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Tizen", "samples\ImageLoading.Forms.Sample\Tizen\FFImageLoading.Forms.Sample.Tizen.csproj", "{26980B5F-05B3-4070-A2A7-28749166E44C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.TizenForms.Sample", "samples\Simple.TizenForms.Sample\Simple.TizenForms.Sample.csproj", "{01B928BA-5E3B-46C6-B172-624A60ECC534}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Mac.Sample", "samples\FFImageLoading.Mac.Sample\FFImageLoading.Mac.Sample.csproj", "{8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.WinUWP", "samples\ImageLoading.Forms.Sample\WinUWP\FFImageLoading.Forms.Sample.WinUWP.csproj", "{8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}"
-EndProject
-Global
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- source\FFImageLoading.Cross\FFImageLoading.Cross.projitems*{1597f7d4-432c-4f26-b508-0f6faf0b9711}*SharedItemsImports = 4
- source\FFImageLoading.Shared\FFImageLoading.Shared.projitems*{1597f7d4-432c-4f26-b508-0f6faf0b9711}*SharedItemsImports = 4
- source\FFImageLoading.Shared.IosMac\FFImageLoading.Shared.IosMac.projitems*{26f4db3b-ec7f-46de-8d51-2cb4ba187a16}*SharedItemsImports = 13
- source\FFImageLoading.Cross\FFImageLoading.Cross.projitems*{3c58b37d-edb7-4778-aa48-f3ad9a571059}*SharedItemsImports = 13
- source\FFImageLoading.Svg.Forms.Shared\FFImageLoading.Svg.Forms.Shared.projitems*{3f817bad-edfb-44e3-a9ef-1fded55ed787}*SharedItemsImports = 13
- source\FFImageLoading.Svg.Shared\FFImageLoading.Svg.Shared.projitems*{488664fa-5bc5-4868-9fc4-44db7294ec5a}*SharedItemsImports = 13
- source\FFImageLoading.Svg.Shared\FFImageLoading.Svg.Shared.projitems*{5140739d-209c-41a7-9503-5d5733f4c091}*SharedItemsImports = 4
- source\FFImageLoading.Cross.Svg\FFImageLoading.Cross.Svg.projitems*{60678181-1544-4276-9b2a-6239c1046ea5}*SharedItemsImports = 13
- source\FFImageLoading.Svg.Forms.Shared\FFImageLoading.Svg.Forms.Shared.projitems*{6d4f9dfa-012e-4966-a6e8-01c3464b537e}*SharedItemsImports = 4
- source\FFImageLoading.Cross\FFImageLoading.Cross.projitems*{74bf9402-3e13-4003-8923-bc20a1294ce2}*SharedItemsImports = 4
- source\FFImageLoading.Shared\FFImageLoading.Shared.projitems*{74bf9402-3e13-4003-8923-bc20a1294ce2}*SharedItemsImports = 4
- source\FFImageLoading.Shared\FFImageLoading.Shared.projitems*{e72ac4ed-03a8-465c-95a2-38b0544b37db}*SharedItemsImports = 13
- EndGlobalSection
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|ARM = Debug|ARM
- Debug|iPhone = Debug|iPhone
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|ARM = Release|ARM
- Release|iPhone = Release|iPhone
- Release|iPhoneSimulator = Release|iPhoneSimulator
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|ARM.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|iPhone.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|x64.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|x64.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|x86.ActiveCfg = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Debug|x86.Build.0 = Debug|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|Any CPU.Build.0 = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|ARM.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|ARM.Build.0 = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|iPhone.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|iPhone.Build.0 = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|x64.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|x64.Build.0 = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|x86.ActiveCfg = Release|Any CPU
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}.Release|x86.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|ARM.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|iPhone.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|x64.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Debug|x86.Build.0 = Debug|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|Any CPU.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|ARM.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|ARM.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|iPhone.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|iPhone.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|x64.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|x64.Build.0 = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|x86.ActiveCfg = Release|Any CPU
- {74BF9402-3E13-4003-8923-BC20A1294CE2}.Release|x86.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|ARM.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|iPhone.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|x64.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Debug|x86.Build.0 = Debug|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|Any CPU.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|ARM.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|ARM.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|iPhone.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|iPhone.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|x64.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|x64.Build.0 = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|x86.ActiveCfg = Release|Any CPU
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}.Release|x86.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.Build.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.Deploy.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.Build.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.Deploy.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.Build.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.Deploy.0 = Debug|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|Any CPU.Deploy.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.Deploy.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhone.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.Deploy.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.ActiveCfg = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.Build.0 = Release|Any CPU
- {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.Deploy.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.Deploy.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhone.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.Deploy.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.Build.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.Deploy.0 = Debug|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.Build.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.Deploy.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhone.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhone.Build.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.Build.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.Deploy.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.ActiveCfg = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.Build.0 = Release|Any CPU
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.Deploy.0 = Release|Any CPU
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhone.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhone.Build.0 = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhone.ActiveCfg = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhone.Build.0 = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|x64.ActiveCfg = Release|iPhoneSimulator
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|x86.ActiveCfg = Release|iPhoneSimulator
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|ARM.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhone.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x64.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x86.Build.0 = Debug|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|ARM.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|ARM.Build.0 = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhone.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhone.Build.0 = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x64.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x64.Build.0 = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x86.ActiveCfg = Release|Any CPU
- {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x86.Build.0 = Release|Any CPU
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|Any CPU.ActiveCfg = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|Any CPU.Deploy.0 = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.ActiveCfg = Debug|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.Build.0 = Debug|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.Deploy.0 = Debug|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|iPhone.ActiveCfg = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.ActiveCfg = Debug|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.Build.0 = Debug|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.Deploy.0 = Debug|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.ActiveCfg = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.Build.0 = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.Deploy.0 = Debug|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|Any CPU.ActiveCfg = Release|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.ActiveCfg = Release|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.Build.0 = Release|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.Deploy.0 = Release|ARM
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|iPhone.ActiveCfg = Release|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|iPhoneSimulator.ActiveCfg = Release|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.ActiveCfg = Release|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.Build.0 = Release|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.Deploy.0 = Release|x64
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.ActiveCfg = Release|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.Build.0 = Release|x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.Deploy.0 = Release|x86
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|ARM.Build.0 = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhone.ActiveCfg = Debug|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhone.Build.0 = Debug|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x64.Build.0 = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x86.Build.0 = Debug|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|Any CPU.ActiveCfg = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|ARM.ActiveCfg = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|ARM.Build.0 = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhone.ActiveCfg = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhone.Build.0 = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x64.ActiveCfg = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x64.Build.0 = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x86.ActiveCfg = Release|iPhone
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x86.Build.0 = Release|iPhone
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|x64.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Debug|x86.ActiveCfg = Debug|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|Any CPU.Build.0 = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|ARM.ActiveCfg = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|iPhone.ActiveCfg = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|x64.ActiveCfg = Release|Any CPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}.Release|x86.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|ARM.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|iPhone.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|x64.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Debug|x86.Build.0 = Debug|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|Any CPU.Build.0 = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|ARM.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|ARM.Build.0 = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|iPhone.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|iPhone.Build.0 = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|x64.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|x64.Build.0 = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|x86.ActiveCfg = Release|Any CPU
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}.Release|x86.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|ARM.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|x64.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Debug|x86.Build.0 = Debug|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|Any CPU.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|ARM.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|ARM.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|iPhone.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|x64.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|x64.Build.0 = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|x86.ActiveCfg = Release|Any CPU
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}.Release|x86.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|ARM.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|iPhone.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|x64.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Debug|x86.Build.0 = Debug|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|Any CPU.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|ARM.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|ARM.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|iPhone.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|iPhone.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|x64.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|x64.Build.0 = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|x86.ActiveCfg = Release|Any CPU
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}.Release|x86.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|ARM.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|iPhone.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|x64.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Debug|x86.Build.0 = Debug|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|Any CPU.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|ARM.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|ARM.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|iPhone.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|iPhone.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|x64.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|x64.Build.0 = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|x86.ActiveCfg = Release|Any CPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}.Release|x86.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|ARM.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|x64.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Debug|x86.Build.0 = Debug|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|Any CPU.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|ARM.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|ARM.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|iPhone.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|x64.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|x64.Build.0 = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|x86.ActiveCfg = Release|Any CPU
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}.Release|x86.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|ARM.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|iPhone.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|x64.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|x64.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Debug|x86.Build.0 = Debug|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|ARM.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|ARM.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|iPhone.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|iPhone.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|x64.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|x64.Build.0 = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|x86.ActiveCfg = Release|Any CPU
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}.Release|x86.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|ARM.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|iPhone.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|x64.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Debug|x86.Build.0 = Debug|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|Any CPU.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|ARM.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|ARM.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|iPhone.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|iPhone.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|x64.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|x64.Build.0 = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|x86.ActiveCfg = Release|Any CPU
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}.Release|x86.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|ARM.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|x64.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|x64.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|x86.ActiveCfg = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Debug|x86.Build.0 = Debug|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|Any CPU.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|ARM.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|ARM.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|iPhone.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|x64.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|x64.Build.0 = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|x86.ActiveCfg = Release|Any CPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}.Release|x86.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|ARM.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|iPhone.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|x64.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Debug|x86.Build.0 = Debug|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|ARM.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|ARM.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|iPhone.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|iPhone.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|x64.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|x64.Build.0 = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|x86.ActiveCfg = Release|Any CPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}.Release|x86.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|ARM.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|iPhone.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|x64.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|x64.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Debug|x86.Build.0 = Debug|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|Any CPU.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|ARM.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|ARM.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|iPhone.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|iPhone.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|x64.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|x64.Build.0 = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|x86.ActiveCfg = Release|Any CPU
- {DE555E87-187D-4768-8053-B2D3195B6792}.Release|x86.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|ARM.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|iPhone.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|x64.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Debug|x86.Build.0 = Debug|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|ARM.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|ARM.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|iPhone.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|iPhone.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|x64.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|x64.Build.0 = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|x86.ActiveCfg = Release|Any CPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}.Release|x86.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|ARM.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|iPhone.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|x64.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Debug|x86.Build.0 = Debug|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|Any CPU.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|ARM.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|ARM.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|iPhone.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|iPhone.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|x64.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|x64.Build.0 = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|x86.ActiveCfg = Release|Any CPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}.Release|x86.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|ARM.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|x64.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Debug|x86.Build.0 = Debug|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|Any CPU.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|ARM.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|ARM.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|iPhone.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|x64.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|x64.Build.0 = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|x86.ActiveCfg = Release|Any CPU
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69}.Release|x86.Build.0 = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|iPhone.Build.0 = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|x64.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|Any CPU.Build.0 = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|ARM.ActiveCfg = Release|ARM
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|ARM.Build.0 = Release|ARM
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|iPhone.ActiveCfg = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|iPhone.Build.0 = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|x64.ActiveCfg = Release|x64
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|x64.Build.0 = Release|x64
- {5140739D-209C-41A7-9503-5D5733F4C091}.Release|x86.ActiveCfg = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|iPhone.Build.0 = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|x64.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|Any CPU.Build.0 = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|ARM.ActiveCfg = Release|ARM
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|ARM.Build.0 = Release|ARM
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|iPhone.ActiveCfg = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|iPhone.Build.0 = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|x64.ActiveCfg = Release|x64
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|x64.Build.0 = Release|x64
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|x86.ActiveCfg = Release|Any CPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}.Release|x86.Build.0 = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|ARM.Build.0 = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhone.Build.0 = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x64.Build.0 = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x86.Build.0 = Debug|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|ARM.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|ARM.Build.0 = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhone.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhone.Build.0 = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x64.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x64.Build.0 = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x86.ActiveCfg = Release|Any CPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x86.Build.0 = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|ARM.Build.0 = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x64.Build.0 = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x86.Build.0 = Debug|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|ARM.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|ARM.Build.0 = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhone.Build.0 = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x64.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x64.Build.0 = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x86.ActiveCfg = Release|Any CPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x86.Build.0 = Release|Any CPU
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|ARM.Build.0 = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhone.ActiveCfg = Debug|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhone.Build.0 = Debug|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x64.Build.0 = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x86.Build.0 = Debug|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|Any CPU.ActiveCfg = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|ARM.ActiveCfg = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|ARM.Build.0 = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhone.ActiveCfg = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhone.Build.0 = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x64.ActiveCfg = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x64.Build.0 = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x86.ActiveCfg = Release|iPhone
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x86.Build.0 = Release|iPhone
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|ARM.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|x64.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Debug|x86.Build.0 = Debug|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|ARM.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|ARM.Build.0 = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|iPhone.Build.0 = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|x64.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|x64.Build.0 = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|x86.ActiveCfg = Release|Any CPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}.Release|x86.Build.0 = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|ARM.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhone.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x64.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x86.Build.0 = Debug|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|ARM.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|ARM.Build.0 = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhone.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhone.Build.0 = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x64.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x64.Build.0 = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x86.ActiveCfg = Release|Any CPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x86.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|ARM.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhone.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x64.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x86.Build.0 = Debug|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|Any CPU.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|ARM.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|ARM.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhone.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhone.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x64.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x64.Build.0 = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x86.ActiveCfg = Release|Any CPU
- {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x86.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|ARM.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|iPhone.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|x64.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|x64.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|x86.ActiveCfg = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Debug|x86.Build.0 = Debug|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|Any CPU.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|ARM.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|ARM.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|iPhone.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|iPhone.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|x64.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|x64.Build.0 = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|x86.ActiveCfg = Release|Any CPU
- {32BFDBC6-F42B-4D67-BF53-E19BB7D3A799}.Release|x86.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|ARM.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|iPhone.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|x64.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Debug|x86.Build.0 = Debug|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|Any CPU.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|ARM.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|ARM.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|iPhone.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|iPhone.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|x64.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|x64.Build.0 = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|x86.ActiveCfg = Release|Any CPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}.Release|x86.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|ARM.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|x64.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Debug|x86.Build.0 = Debug|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|Any CPU.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|ARM.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|ARM.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|iPhone.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|x64.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|x64.Build.0 = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|x86.ActiveCfg = Release|Any CPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}.Release|x86.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|ARM.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|iPhone.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|x64.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Debug|x86.Build.0 = Debug|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|ARM.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|ARM.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|iPhone.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|x64.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|x64.Build.0 = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|x86.ActiveCfg = Release|Any CPU
- {FF334AE1-1B61-4979-8C8E-FD486B246859}.Release|x86.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|ARM.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|iPhone.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|x64.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Debug|x86.Build.0 = Debug|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|Any CPU.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|ARM.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|ARM.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|iPhone.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|iPhone.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|x64.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|x64.Build.0 = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|x86.ActiveCfg = Release|Any CPU
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9}.Release|x86.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|ARM.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|iPhone.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|x64.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Debug|x86.Build.0 = Debug|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|Any CPU.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|ARM.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|ARM.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|iPhone.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|iPhone.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|x64.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|x64.Build.0 = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|x86.ActiveCfg = Release|Any CPU
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE}.Release|x86.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|ARM.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|x64.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|x64.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Debug|x86.Build.0 = Debug|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|Any CPU.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|ARM.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|ARM.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|iPhone.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|x64.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|x64.Build.0 = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|x86.ActiveCfg = Release|Any CPU
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D}.Release|x86.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|ARM.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|iPhone.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|x64.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|x64.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Debug|x86.Build.0 = Debug|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|Any CPU.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|ARM.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|ARM.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|iPhone.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|iPhone.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|x64.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|x64.Build.0 = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|x86.ActiveCfg = Release|Any CPU
- {DCC22B65-C384-4101-B61B-1A8515D68F06}.Release|x86.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|ARM.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|x64.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Debug|x86.Build.0 = Debug|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|Any CPU.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|ARM.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|ARM.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|iPhone.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|x64.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|x64.Build.0 = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|x86.ActiveCfg = Release|Any CPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}.Release|x86.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|ARM.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|x64.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Debug|x86.Build.0 = Debug|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|Any CPU.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|ARM.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|ARM.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|iPhone.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|x64.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|x64.Build.0 = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|x86.ActiveCfg = Release|Any CPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}.Release|x86.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|ARM.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|iPhone.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|x64.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|x64.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|x86.ActiveCfg = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Debug|x86.Build.0 = Debug|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|Any CPU.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|ARM.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|ARM.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|iPhone.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|iPhone.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|x64.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|x64.Build.0 = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|x86.ActiveCfg = Release|Any CPU
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4}.Release|x86.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|ARM.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|iPhone.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|x64.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|x64.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|x86.ActiveCfg = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Debug|x86.Build.0 = Debug|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|Any CPU.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|ARM.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|ARM.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|iPhone.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|iPhone.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|x64.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|x64.Build.0 = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|x86.ActiveCfg = Release|Any CPU
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762}.Release|x86.Build.0 = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|ARM.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x64.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x86.Build.0 = Debug|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|ARM.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|ARM.Build.0 = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhone.Build.0 = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x64.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x64.Build.0 = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x86.ActiveCfg = Release|Any CPU
- {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x86.Build.0 = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|ARM.Build.0 = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhone.Build.0 = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x64.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x64.Build.0 = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x86.ActiveCfg = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x86.Build.0 = Debug|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|ARM.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|ARM.Build.0 = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhone.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhone.Build.0 = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x64.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x64.Build.0 = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x86.ActiveCfg = Release|Any CPU
- {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x86.Build.0 = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|ARM.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhone.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x64.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x86.Build.0 = Debug|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|ARM.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|ARM.Build.0 = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhone.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhone.Build.0 = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x64.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x64.Build.0 = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x86.ActiveCfg = Release|Any CPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x86.Build.0 = Release|Any CPU
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.ActiveCfg = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.Build.0 = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.Deploy.0 = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.ActiveCfg = Debug|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.Build.0 = Debug|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.Deploy.0 = Debug|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|iPhone.ActiveCfg = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.ActiveCfg = Debug|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.Build.0 = Debug|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.Deploy.0 = Debug|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.ActiveCfg = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.Build.0 = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.Deploy.0 = Debug|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|Any CPU.ActiveCfg = Release|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.ActiveCfg = Release|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.Build.0 = Release|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.Deploy.0 = Release|ARM
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|iPhone.ActiveCfg = Release|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|iPhoneSimulator.ActiveCfg = Release|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.ActiveCfg = Release|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.Build.0 = Release|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.Deploy.0 = Release|x64
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.ActiveCfg = Release|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.Build.0 = Release|x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.Deploy.0 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {F898A684-E9C1-4154-9F80-6037287233F5} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {9F816002-DBA1-4175-A0CA-0DFD9E086786} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {3A682234-5918-4F58-B02B-598A59C6A7BD} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {4B964916-47F4-4876-8A6B-9048B8A0D148} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {7014FEB6-0338-4A47-B600-4A1B48127C5C} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {BD3CEB96-93D6-47BD-9474-01DFCD320897} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {3C58B37D-EDB7-4778-AA48-F3AD9A571059} = {1AFB4004-0EB7-4518-9B65-F1008B7962FC}
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {0BF13419-BA9C-4004-812C-EB22E41927D9} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {DE555E87-187D-4768-8053-B2D3195B6792} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {488664FA-5BC5-4868-9FC4-44DB7294EC5A} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {A73A1EA8-E709-474D-9102-DCB2482950AB} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {3F817BAD-EDFB-44E3-A9EF-1FDED55ED787} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {E5C8FBB7-595D-43FE-B900-46027D0D4F69} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {5140739D-209C-41A7-9503-5D5733F4C091} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {087DE224-30F0-4FEF-A960-F93F04182BA6} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {A3760566-B91D-435F-94A6-31ADF4C7812F} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {60678181-1544-4276-9B2A-6239C1046EA5} = {1AFB4004-0EB7-4518-9B65-F1008B7962FC}
- {8701A65C-0F63-4BE7-B3F7-D2365BB6366E} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {75D24499-446D-47DD-9C9A-295E40010CF1} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {844EF512-7E52-4515-AC00-5FF50800F2B5} = {A420B061-9AF1-40EC-A728-60536C59031E}
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {FF334AE1-1B61-4979-8C8E-FD486B246859} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {CA4E6EF4-36C8-4347-A8A9-A1540C837AB9} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {B27E52FA-74DC-42C7-ACBC-5A893271AFFE} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {CB1F7760-C8A6-40A3-9B90-F05628B62C2D} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {411B82F4-4F6B-49A0-8E28-260FB65B386F} = {EDE40129-FB1D-40C5-A0C2-B344A1ED3D2D}
- {957F1B47-0ADC-4BFE-AB87-8D0FBFB59BC4} = {F7C14B24-556B-413B-B418-4CD194766A26}
- {399E7E28-5A3D-471F-B6FC-D5770EBB6762} = {8F977FC5-CA16-4EEF-9222-2C77F88A7125}
- {26980B5F-05B3-4070-A2A7-28749166E44C} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {01B928BA-5E3B-46C6-B172-624A60ECC534} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {4BF56189-8DC5-41A9-9440-3C7B9F57E151}
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29318.209
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{B48F3C95-B33F-4EF5-B223-06356D749A80}"
+ ProjectSection(SolutionItems) = preProject
+ samples\Directory.build.props = samples\Directory.build.props
+ samples\Directory.build.targets = samples\Directory.build.targets
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Android.Sample", "samples\ImageLoading.Sample\Simple.Android.Sample.csproj", "{F898A684-E9C1-4154-9F80-6037287233F5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Droid", "samples\ImageLoading.Forms.Sample\Droid\FFImageLoading.Forms.Sample.Droid.csproj", "{9F816002-DBA1-4175-A0CA-0DFD9E086786}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.iOS", "samples\ImageLoading.Forms.Sample\iOS\FFImageLoading.Forms.Sample.iOS.csproj", "{626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Forms.Sample", "samples\ImageLoading.Forms.Sample\Shared\FFImageLoading.Forms.Sample.csproj", "{3A682234-5918-4F58-B02B-598A59C6A7BD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.Universal.Sample", "samples\Simple.WinUniversal.Sample\Simple.Universal.Sample.csproj", "{4B964916-47F4-4876-8A6B-9048B8A0D148}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Simple.iOS.Sample", "samples\Simple.iOS.Sample\Simple.iOS.Sample.csproj", "{B67D0516-5951-4DE9-B07F-AD3407D8CA90}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.Core", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.Core\FFImageLoading.MvvmCross.Sample.Core.csproj", "{087DE224-30F0-4FEF-A960-F93F04182BA6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.Droid", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.Droid\FFImageLoading.MvvmCross.Sample.Droid.csproj", "{A3760566-B91D-435F-94A6-31ADF4C7812F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.MvvmCross.Sample.iOS", "samples\ImageLoading.MvvmCross.Sample\FFImageLoading.MvvmCross.Sample.iOS\FFImageLoading.MvvmCross.Sample.iOS.csproj", "{8701A65C-0F63-4BE7-B3F7-D2365BB6366E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Mac", "samples\ImageLoading.Forms.Sample\Mac\FFImageLoading.Forms.Sample.Mac.csproj", "{75D24499-446D-47DD-9C9A-295E40010CF1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Tests", "source\Tests\FFImageLoading.Tests\FFImageLoading.Tests.csproj", "{844EF512-7E52-4515-AC00-5FF50800F2B5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Nuspec", "Nuspec", "{5C360F03-BA00-4697-B698-73682B8F510F}"
+ ProjectSection(SolutionItems) = preProject
+ nuget\Xamarin.FFImageLoading.Forms.nuspec = nuget\Xamarin.FFImageLoading.Forms.nuspec
+ nuget\Xamarin.FFImageLoading.nuspec = nuget\Xamarin.FFImageLoading.nuspec
+ nuget\Xamarin.FFImageLoading.Svg.Forms.nuspec = nuget\Xamarin.FFImageLoading.Svg.Forms.nuspec
+ nuget\Xamarin.FFImageLoading.Svg.nuspec = nuget\Xamarin.FFImageLoading.Svg.nuspec
+ nuget\Xamarin.FFImageLoading.Transformations.nuspec = nuget\Xamarin.FFImageLoading.Transformations.nuspec
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Forms.Sample.Tizen", "samples\ImageLoading.Forms.Sample\Tizen\FFImageLoading.Forms.Sample.Tizen.csproj", "{26980B5F-05B3-4070-A2A7-28749166E44C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Simple.TizenForms.Sample", "samples\Simple.TizenForms.Sample\Simple.TizenForms.Sample.csproj", "{01B928BA-5E3B-46C6-B172-624A60ECC534}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Mac.Sample", "samples\FFImageLoading.Mac.Sample\FFImageLoading.Mac.Sample.csproj", "{8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.WinUWP", "samples\ImageLoading.Forms.Sample\WinUWP\FFImageLoading.Forms.Sample.WinUWP.csproj", "{8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFImageLoading.Forms.Sample.Wpf", "samples\ImageLoading.Forms.Sample\Wpf\FFImageLoading.Forms.Sample.Wpf.csproj", "{9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{D3951530-EEDE-4F9C-BACC-0DEF2BDB879D}"
+ ProjectSection(SolutionItems) = preProject
+ build.cake = build.cake
+ Directory.build.props = Directory.build.props
+ Directory.build.targets = Directory.build.targets
+ global.json = global.json
+ README.md = README.md
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading", "FFImageLoading\FFImageLoading.csproj", "{1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Forms", "FFImageLoading.Forms\FFImageLoading.Forms.csproj", "{31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.MvvmCross", "FFImageLoading.MvvmCross\FFImageLoading.MvvmCross.csproj", "{E4083182-0C9F-49AC-BB91-238FCF9766AC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Svg", "FFImageLoading.Svg\FFImageLoading.Svg.csproj", "{F34D2449-A570-40CA-97E9-AE0653451C2C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Svg.Forms", "FFImageLoading.Svg.Forms\FFImageLoading.Svg.Forms.csproj", "{7308034E-C291-47B2-B34A-083B80C1F5E1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FFImageLoading.Transformations", "FFImageLoading.Transformations\FFImageLoading.Transformations.csproj", "{0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.Build.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.Build.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|ARM.Deploy.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhone.Build.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.Build.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x64.Deploy.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.ActiveCfg = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.Build.0 = Release|Any CPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}.Release|x86.Deploy.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.Build.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.Build.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|ARM.Deploy.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhone.Build.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.Build.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x64.Deploy.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.ActiveCfg = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.Build.0 = Release|Any CPU
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}.Release|x86.Deploy.0 = Release|Any CPU
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhone.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhone.Build.0 = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhone.ActiveCfg = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhone.Build.0 = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|x64.ActiveCfg = Release|iPhoneSimulator
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}.Release|x86.ActiveCfg = Release|iPhoneSimulator
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|ARM.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x64.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Debug|x86.Build.0 = Debug|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|ARM.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|ARM.Build.0 = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhone.Build.0 = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x64.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x64.Build.0 = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x86.ActiveCfg = Release|Any CPU
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}.Release|x86.Build.0 = Release|Any CPU
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|Any CPU.Build.0 = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|Any CPU.Deploy.0 = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.ActiveCfg = Debug|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.Build.0 = Debug|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|ARM.Deploy.0 = Debug|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|iPhone.ActiveCfg = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.ActiveCfg = Debug|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.Build.0 = Debug|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x64.Deploy.0 = Debug|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.ActiveCfg = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.Build.0 = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Debug|x86.Deploy.0 = Debug|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|Any CPU.ActiveCfg = Release|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.ActiveCfg = Release|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.Build.0 = Release|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|ARM.Deploy.0 = Release|ARM
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|iPhone.ActiveCfg = Release|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|iPhoneSimulator.ActiveCfg = Release|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.ActiveCfg = Release|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.Build.0 = Release|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x64.Deploy.0 = Release|x64
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.ActiveCfg = Release|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.Build.0 = Release|x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}.Release|x86.Deploy.0 = Release|x86
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|ARM.Build.0 = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhone.ActiveCfg = Debug|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhone.Build.0 = Debug|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x64.Build.0 = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Debug|x86.Build.0 = Debug|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|Any CPU.ActiveCfg = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|ARM.ActiveCfg = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|ARM.Build.0 = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhone.ActiveCfg = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhone.Build.0 = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x64.ActiveCfg = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x64.Build.0 = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x86.ActiveCfg = Release|iPhone
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}.Release|x86.Build.0 = Release|iPhone
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|ARM.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x64.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Debug|x86.Build.0 = Debug|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|ARM.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|ARM.Build.0 = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhone.Build.0 = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x64.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x64.Build.0 = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x86.ActiveCfg = Release|Any CPU
+ {087DE224-30F0-4FEF-A960-F93F04182BA6}.Release|x86.Build.0 = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x64.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Debug|x86.Build.0 = Debug|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|ARM.Build.0 = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhone.Build.0 = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x64.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x64.Build.0 = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x86.ActiveCfg = Release|Any CPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}.Release|x86.Build.0 = Release|Any CPU
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|ARM.Build.0 = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhone.ActiveCfg = Debug|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhone.Build.0 = Debug|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x64.Build.0 = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Debug|x86.Build.0 = Debug|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|Any CPU.ActiveCfg = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|ARM.ActiveCfg = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|ARM.Build.0 = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhone.ActiveCfg = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhone.Build.0 = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x64.ActiveCfg = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x64.Build.0 = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x86.ActiveCfg = Release|iPhone
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E}.Release|x86.Build.0 = Release|iPhone
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|ARM.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x64.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Debug|x86.Build.0 = Debug|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|ARM.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|ARM.Build.0 = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhone.Build.0 = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x64.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x64.Build.0 = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x86.ActiveCfg = Release|Any CPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}.Release|x86.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x64.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Debug|x86.Build.0 = Debug|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|ARM.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhone.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x64.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x64.Build.0 = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x86.ActiveCfg = Release|Any CPU
+ {844EF512-7E52-4515-AC00-5FF50800F2B5}.Release|x86.Build.0 = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x64.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Debug|x86.Build.0 = Debug|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|ARM.Build.0 = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhone.Build.0 = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x64.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x64.Build.0 = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x86.ActiveCfg = Release|Any CPU
+ {26980B5F-05B3-4070-A2A7-28749166E44C}.Release|x86.Build.0 = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|ARM.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x64.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Debug|x86.Build.0 = Debug|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|ARM.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|ARM.Build.0 = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhone.Build.0 = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x64.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x64.Build.0 = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x86.ActiveCfg = Release|Any CPU
+ {01B928BA-5E3B-46C6-B172-624A60ECC534}.Release|x86.Build.0 = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x64.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Debug|x86.Build.0 = Debug|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|ARM.Build.0 = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhone.Build.0 = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x64.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x64.Build.0 = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x86.ActiveCfg = Release|Any CPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}.Release|x86.Build.0 = Release|Any CPU
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.Build.0 = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|Any CPU.Deploy.0 = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.Build.0 = Debug|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|ARM.Deploy.0 = Debug|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|iPhone.ActiveCfg = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.ActiveCfg = Debug|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.Build.0 = Debug|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x64.Deploy.0 = Debug|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.ActiveCfg = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.Build.0 = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Debug|x86.Deploy.0 = Debug|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|Any CPU.ActiveCfg = Release|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.ActiveCfg = Release|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.Build.0 = Release|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|ARM.Deploy.0 = Release|ARM
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|iPhone.ActiveCfg = Release|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|iPhoneSimulator.ActiveCfg = Release|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.ActiveCfg = Release|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.Build.0 = Release|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x64.Deploy.0 = Release|x64
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.ActiveCfg = Release|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.Build.0 = Release|x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}.Release|x86.Deploy.0 = Release|x86
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|x64.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Debug|x86.Build.0 = Debug|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|ARM.Build.0 = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|iPhone.Build.0 = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|x64.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|x64.Build.0 = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|x86.ActiveCfg = Release|Any CPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}.Release|x86.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|ARM.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|x64.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Debug|x86.Build.0 = Debug|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|ARM.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|ARM.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|iPhone.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|x64.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|x64.Build.0 = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|x86.ActiveCfg = Release|Any CPU
+ {1C7FC7B7-C0A1-4E70-B9D4-F07E1DC61FDB}.Release|x86.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|ARM.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|x64.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Debug|x86.Build.0 = Debug|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|ARM.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|ARM.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|iPhone.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|x64.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|x64.Build.0 = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|x86.ActiveCfg = Release|Any CPU
+ {31606F36-CAF6-4F2B-B5D6-4AC6872BFD78}.Release|x86.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|x64.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Debug|x86.Build.0 = Debug|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|ARM.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|iPhone.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|x64.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|x64.Build.0 = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|x86.ActiveCfg = Release|Any CPU
+ {E4083182-0C9F-49AC-BB91-238FCF9766AC}.Release|x86.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|x64.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Debug|x86.Build.0 = Debug|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|ARM.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|iPhone.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|x64.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|x64.Build.0 = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|x86.ActiveCfg = Release|Any CPU
+ {F34D2449-A570-40CA-97E9-AE0653451C2C}.Release|x86.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|ARM.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|x64.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Debug|x86.Build.0 = Debug|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|ARM.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|ARM.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|iPhone.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|x64.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|x64.Build.0 = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|x86.ActiveCfg = Release|Any CPU
+ {7308034E-C291-47B2-B34A-083B80C1F5E1}.Release|x86.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|x64.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Debug|x86.Build.0 = Debug|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|ARM.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|iPhone.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|x64.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|x64.Build.0 = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|x86.ActiveCfg = Release|Any CPU
+ {0B539B18-5FE8-4FB5-9CFC-9BC6C024EC1C}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {F898A684-E9C1-4154-9F80-6037287233F5} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {3A682234-5918-4F58-B02B-598A59C6A7BD} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {4B964916-47F4-4876-8A6B-9048B8A0D148} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {087DE224-30F0-4FEF-A960-F93F04182BA6} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {A3760566-B91D-435F-94A6-31ADF4C7812F} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {8701A65C-0F63-4BE7-B3F7-D2365BB6366E} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {75D24499-446D-47DD-9C9A-295E40010CF1} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {26980B5F-05B3-4070-A2A7-28749166E44C} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {01B928BA-5E3B-46C6-B172-624A60ECC534} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F} = {B48F3C95-B33F-4EF5-B223-06356D749A80}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {4BF56189-8DC5-41A9-9440-3C7B9F57E151}
+ EndGlobalSection
+EndGlobal
diff --git a/FFImageLoading/FFImageLoading.csproj b/FFImageLoading/FFImageLoading.csproj
new file mode 100644
index 000000000..b7b60e794
--- /dev/null
+++ b/FFImageLoading/FFImageLoading.csproj
@@ -0,0 +1,109 @@
+
+
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10;xamarin.watchos10;monoandroid90;tizen40;uap10.0.16299;net472
+ uap10.0.16299;$(TargetFrameworks)
+
+
+
+ netstandard2.0;monoandroid90;
+ netstandard2.0;uap10.0.16299
+ netstandard2.0;xamarin.ios10
+ netstandard2.0;xamarin.ios10;xamarin.mac20;xamarin.tvos10
+
+
+
+ FFImageLoading
+ FFImageLoading
+ Xamarin.FFImageLoading
+ Xamarin library to load images quickly and easily on Xamarin.iOS / Xamarin.Android / Xamarin.Mac / Windows
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FFImageLoading/readme.txt b/FFImageLoading/readme.txt
new file mode 100644
index 000000000..4fbcf6a53
--- /dev/null
+++ b/FFImageLoading/readme.txt
@@ -0,0 +1,10 @@
+---------------------------------
+FFImageLoading
+---------------------------------
+
+TODO: getting started here
+
+
+---------------------------------
+Star on Github if this project helps you: https://github.com/luberda-molinet/FFImageLoading
+---------------------------------
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
index a749837bd..fa04eb5c1 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015 Daniel Luberda & Fabien Molinet
+Copyright (c) 2019 Daniel Luberda & Fabien Molinet
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/README.md b/README.md
index dbf9cca20..e62ea5685 100644
--- a/README.md
+++ b/README.md
@@ -1,88 +1,88 @@
# FFImageLoading - Fast & Furious Image Loading
-[![AppVeyor][ci-img]][ci-link]
-
-Library to load images quickly & easily on Xamarin.iOS, Xamarin.Android, Xamarin.Forms, Xamarin.Mac / Xamarin.Tizen and Windows (UWP, WinRT).
-
-*Authors: Daniel Luberda, Fabien Molinet. If you would like to help maintaining the project, just let us know!*
-
-| iOS / Android / Mac / Windows / Tizen | Xamarin.Forms |
-|:--------------------------------:|:-------------:|
-| [![NuGet][ffil-img]][ffil-link] [![NuGet][preffil-img]][preffil-link] | [![NuGet][forms-img]][forms-link] [![NuGet][preforms-img]][preforms-link] |
-| [![][demo-droid-img]][demo-droid-src] [![][demo-win-img]][demo-win-src] [![][demo-mvvmcross-img]][demo-mvvmcross-src] | [![][demo-forms-img]][demo-forms-src] |
-
-| Addon | iOS / Android / Mac / Tizen / Windows | Xamarin.Forms |
-|:-----:|:-----------------------:|:-------------:|
-| Transformations | [![NuGet][trans-img]][trans-link] [![NuGet][pretrans-img]][pretrans-link] | [![NuGet][trans-img]][trans-link] [![NuGet][pretrans-img]][pretrans-link] |
-| SVG support | [![NuGet][svg-img]][svg-link] [![NuGet][presvg-img]][presvg-link] | [![NuGet][svgforms-img]][svgforms-link] [![NuGet][presvgforms-img]][presvgforms-link] |
-
-[![NuGet][ffimageloading]][ffimageloading_large]
-
-## Features
-
-- Xamarin.iOS, Xamarin.Android, Xamarin.Forms, Xamarin.Mac, Xamarin.Tizen and Windows (WinRT, UWP) support
-- Configurable disk and memory caching
-- Multiple image views using the same image source (url, path, resource) will use only one bitmap which is cached in memory (less memory usage)
-- Deduplication of similar download/load requests. *(If 100 similar requests arrive at same time then one real loading will be performed while 99 others will wait).*
-- Error and loading placeholders support
-- Images can be automatically downsampled to specified size (less memory usage)
-- Fluent API which is inspired by Picasso naming
-- SVG / WebP / GIF support
-- Image loading Fade-In animations support
-- Can retry image downloads (RetryCount, RetryDelay)
-- Android bitmap optimization. Saves 50% of memory by trying not to use transparency channel when possible.
-- Transformations support
- - BlurredTransformation
- - CircleTransformation, RoundedTransformation, CornersTransformation, CropTransformation
- - ColorSpaceTransformation, GrayscaleTransformation, SepiaTransformation, TintTransformation
- - FlipTransformation, RotateTransformation
- - Supports custom transformations (native platform `ITransformation` implementations)
-
-## Documentation
-
-https://github.com/luberda-molinet/FFImageLoading/wiki
-
-[what-is-this]: various_images_and_image_links
-
-[ci-img]: https://img.shields.io/appveyor/ci/daniel-luberda/ffimageloading.svg
-[ci-link]: https://ci.appveyor.com/project/daniel-luberda/ffimageloading
-
-[donate-img]: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
-[donate-link]: https://www.buymeacoffee.com/AU3KQCy6N
-
-[ffil-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.svg
-[ffil-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading
-[forms-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Forms.svg
-[forms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms
-[trans-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Transformations.svg
-[trans-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Transformations
-[svg-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Svg.svg
-[svg-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg
-[svgforms-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Svg.Forms.svg
-[svgforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg.Forms
-
-[preffil-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.svg
-[preffil-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading
-[preforms-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Forms.svg
-[preforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms
-[pretrans-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Transformations.svg
-[pretrans-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Transformations
-[presvg-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Svg.svg
-[presvg-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg
-[presvgforms-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Svg.Forms.svg
-[presvgforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg.Forms
-
-[ffimageloading_large]: https://raw.githubusercontent.com/luberda-molinet/FFImageLoading/master/samples/Screenshots/ffimageloading_large.png
-[ffimageloading]: https://raw.githubusercontent.com/luberda-molinet/FFImageLoading/master/samples/Screenshots/ffimageloading.png
-
-[demo-forms-img]: https://img.shields.io/badge/demo-xamarin.forms-orange.svg
-[demo-forms-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.Forms.Sample
-[demo-droid-img]: https://img.shields.io/badge/demo-android-orange.svg
-[demo-droid-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.MvvmCross.Sample
-[demo-mvvmcross-img]: https://img.shields.io/badge/demo-mvvmcross-orange.svg
-[demo-mvvmcross-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.Sample
-[demo-win-img]: https://img.shields.io/badge/demo-win-orange.svg
-[demo-win-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/Simple.WinPhone.Sample
-[dev-nugets-img]: https://img.shields.io/badge/nugets-dev-yellow.svg
-[dev-nugets]: https://github.com/luberda-molinet/FFImageLoading/wiki/Dev-NuGet-packages
-
+[![AppVeyor][ci-img]][ci-link]
+
+Library to load images quickly & easily on Xamarin.iOS, Xamarin.Android, Xamarin.Forms, Xamarin.Mac / Xamarin.Tizen and Windows (UWP, WinRT).
+
+*Authors: Daniel Luberda, Fabien Molinet. If you would like to help maintaining the project, just let us know!*
+
+| iOS / Android / Mac / Windows / Tizen | Xamarin.Forms |
+|:--------------------------------:|:-------------:|
+| [![NuGet][ffil-img]][ffil-link] [![NuGet][preffil-img]][preffil-link] | [![NuGet][forms-img]][forms-link] [![NuGet][preforms-img]][preforms-link] |
+| [![][demo-droid-img]][demo-droid-src] [![][demo-win-img]][demo-win-src] [![][demo-mvvmcross-img]][demo-mvvmcross-src] | [![][demo-forms-img]][demo-forms-src] |
+
+| Addon | iOS / Android / Mac / Tizen / Windows | Xamarin.Forms |
+|:-----:|:-----------------------:|:-------------:|
+| Transformations | [![NuGet][trans-img]][trans-link] [![NuGet][pretrans-img]][pretrans-link] | [![NuGet][trans-img]][trans-link] [![NuGet][pretrans-img]][pretrans-link] |
+| SVG support | [![NuGet][svg-img]][svg-link] [![NuGet][presvg-img]][presvg-link] | [![NuGet][svgforms-img]][svgforms-link] [![NuGet][presvgforms-img]][presvgforms-link] |
+
+[![NuGet][ffimageloading]][ffimageloading_large]
+
+## Features
+
+- Xamarin.iOS, Xamarin.Android, Xamarin.Forms, Xamarin.Mac, Xamarin.Tizen and Windows (WinRT, UWP) support
+- Configurable disk and memory caching
+- Multiple image views using the same image source (url, path, resource) will use only one bitmap which is cached in memory (less memory usage)
+- Deduplication of similar download/load requests. *(If 100 similar requests arrive at same time then one real loading will be performed while 99 others will wait).*
+- Error and loading placeholders support
+- Images can be automatically downsampled to specified size (less memory usage)
+- Fluent API which is inspired by Picasso naming
+- SVG / WebP / GIF support
+- Image loading Fade-In animations support
+- Can retry image downloads (RetryCount, RetryDelay)
+- Android bitmap optimization. Saves 50% of memory by trying not to use transparency channel when possible.
+- Transformations support
+ - BlurredTransformation
+ - CircleTransformation, RoundedTransformation, CornersTransformation, CropTransformation
+ - ColorSpaceTransformation, GrayscaleTransformation, SepiaTransformation, TintTransformation
+ - FlipTransformation, RotateTransformation
+ - Supports custom transformations (native platform `ITransformation` implementations)
+
+## Documentation
+
+https://github.com/luberda-molinet/FFImageLoading/wiki
+
+[what-is-this]: various_images_and_image_links
+
+[ci-img]: https://img.shields.io/appveyor/ci/daniel-luberda/ffimageloading.svg
+[ci-link]: https://ci.appveyor.com/project/daniel-luberda/ffimageloading
+
+[donate-img]: https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png
+[donate-link]: https://www.buymeacoffee.com/AU3KQCy6N
+
+[ffil-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.svg
+[ffil-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading
+[forms-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Forms.svg
+[forms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms
+[trans-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Transformations.svg
+[trans-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Transformations
+[svg-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Svg.svg
+[svg-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg
+[svgforms-img]: https://img.shields.io/nuget/v/Xamarin.FFImageLoading.Svg.Forms.svg
+[svgforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg.Forms
+
+[preffil-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.svg
+[preffil-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading
+[preforms-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Forms.svg
+[preforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms
+[pretrans-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Transformations.svg
+[pretrans-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Transformations
+[presvg-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Svg.svg
+[presvg-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg
+[presvgforms-img]: https://img.shields.io/nuget/vpre/Xamarin.FFImageLoading.Svg.Forms.svg
+[presvgforms-link]: https://www.nuget.org/packages/Xamarin.FFImageLoading.Svg.Forms
+
+[ffimageloading_large]: https://raw.githubusercontent.com/luberda-molinet/FFImageLoading/master/samples/Screenshots/ffimageloading_large.png
+[ffimageloading]: https://raw.githubusercontent.com/luberda-molinet/FFImageLoading/master/samples/Screenshots/ffimageloading.png
+
+[demo-forms-img]: https://img.shields.io/badge/demo-xamarin.forms-orange.svg
+[demo-forms-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.Forms.Sample
+[demo-droid-img]: https://img.shields.io/badge/demo-android-orange.svg
+[demo-droid-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.MvvmCross.Sample
+[demo-mvvmcross-img]: https://img.shields.io/badge/demo-mvvmcross-orange.svg
+[demo-mvvmcross-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/ImageLoading.Sample
+[demo-win-img]: https://img.shields.io/badge/demo-win-orange.svg
+[demo-win-src]: https://github.com/luberda-molinet/FFImageLoading/tree/master/samples/Simple.WinPhone.Sample
+[dev-nugets-img]: https://img.shields.io/badge/nugets-dev-yellow.svg
+[dev-nugets]: https://github.com/luberda-molinet/FFImageLoading/wiki/Dev-NuGet-packages
+
diff --git a/global.json b/global.json
new file mode 100644
index 000000000..6c7a82eea
--- /dev/null
+++ b/global.json
@@ -0,0 +1,5 @@
+{
+ "msbuild-sdks": {
+ "MSBuild.Sdk.Extras": "2.0.46"
+ }
+}
\ No newline at end of file
diff --git a/icon.png b/icon.png
new file mode 100644
index 000000000..7a8dc1428
Binary files /dev/null and b/icon.png differ
diff --git a/samples/Directory.build.props b/samples/Directory.build.props
new file mode 100644
index 000000000..2b17a3247
--- /dev/null
+++ b/samples/Directory.build.props
@@ -0,0 +1,18 @@
+
+
+ Copyright (c) Daniel Luberda
+ Daniel Luberda, Fabien Molinet
+ Daniel Luberda, Fabien Molinet
+ $(AssemblyName) ($(TargetFramework))
+ en
+ 1.0.0
+
+ latest
+ $(NoWarn);1591;1701;1702;1705;VSX1000;NU1603
+
+ AnyCPU
+ full
+
+ $(MSBuildProjectName.Contains('.Forms'))
+
+
\ No newline at end of file
diff --git a/samples/Directory.build.targets b/samples/Directory.build.targets
new file mode 100644
index 000000000..4dd262a5a
--- /dev/null
+++ b/samples/Directory.build.targets
@@ -0,0 +1,39 @@
+
+
+ $(DefineConstants);NETSTANDARD;PORTABLE
+
+
+ $(DefineConstants);NET;WPF;XAML
+
+
+ $(DefineConstants);NETFX_CORE;XAML;WINDOWS;WINDOWS_UWP
+ 10.0.16299.0
+ 10.0.16299.0
+
+
+ $(DefineConstants);MONO;UIKIT;COCOA;IOS
+
+
+ $(DefineConstants);MONO;COCOA;MAC
+
+
+ $(DefineConstants);MONO;COCOA;TVOS
+
+
+ $(DefineConstants);MONO;COCOA;WATCHOS
+
+
+ $(DefineConstants);MONO;ANDROID
+ Resources
+ Resource
+ Resources\Resource.designer.cs
+
+
+ $(DefineConstants);NETCOREAPP
+
+
+ $(DefineConstants);TIZEN
+ Tizen
+ v4.0
+
+
\ No newline at end of file
diff --git a/samples/FFImageLoading.Mac.Sample/FFImageLoading.Mac.Sample.csproj b/samples/FFImageLoading.Mac.Sample/FFImageLoading.Mac.Sample.csproj
index e19c816d6..67e8b649e 100644
--- a/samples/FFImageLoading.Mac.Sample/FFImageLoading.Mac.Sample.csproj
+++ b/samples/FFImageLoading.Mac.Sample/FFImageLoading.Mac.Sample.csproj
@@ -1,101 +1,94 @@
-
-
-
- Debug
- AnyCPU
- {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Exe
- FFImageLoading.Mac.Sample
- FFImageLoading.Mac.Sample
- v2.0
- Xamarin.Mac
- Resources
-
-
- true
- full
- false
- bin\Debug
- DEBUG;
- prompt
- 4
- false
- Mac Developer
- false
- false
- false
- true
- true
- HttpClientHandler
- None
-
- None
-
-
- pdbonly
- true
- bin\Release
-
- prompt
- 4
- false
- true
- false
- true
- true
- true
- SdkOnly
- HttpClientHandler
-
- None
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ViewController.cs
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {8A21BBDD-F3BA-4966-8E5F-A65D4EAE7F2B}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Exe
+ FFImageLoading.Mac.Sample
+ FFImageLoading.Mac.Sample
+ v2.0
+ Xamarin.Mac
+ Resources
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ false
+ Mac Developer
+ false
+ false
+ false
+ true
+ true
+ HttpClientHandler
+ None
+
+
+ None
+
+
+ pdbonly
+ true
+ bin\Release
+
+
+ prompt
+ 4
+ false
+ true
+ false
+ true
+ true
+ true
+ SdkOnly
+ HttpClientHandler
+
+
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ViewController.cs
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Droid/FFImageLoading.Forms.Sample.Droid.csproj b/samples/ImageLoading.Forms.Sample/Droid/FFImageLoading.Forms.Sample.Droid.csproj
index 9e69cbe8d..c92bca50b 100644
--- a/samples/ImageLoading.Forms.Sample/Droid/FFImageLoading.Forms.Sample.Droid.csproj
+++ b/samples/ImageLoading.Forms.Sample/Droid/FFImageLoading.Forms.Sample.Droid.csproj
@@ -1,314 +1,102 @@
-
-
-
-
- Debug
- AnyCPU
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {9F816002-DBA1-4175-A0CA-0DFD9E086786}
- Library
- FFImageLoading.Forms.Sample.Droid
- Assets
- Resources
- Resource
- Resources\Resource.designer.cs
- True
- FFImageLoading.Forms.Sample.Droid
- Properties\AndroidManifest.xml
- v9.0
- 1G
-
-
-
- true
- full
- false
- bin\Debug
- DEBUG;
- prompt
- 4
- None
- false
- 1G
- armeabi-v7a;x86;x86_64
- Xamarin.Android.Net.AndroidClientHandler
- btls
- true
-
-
- full
- true
- bin\Release
- prompt
- 4
- false
- false
- 1G
- Xamarin.Android.Net.AndroidClientHandler
- btls
- true
-
-
-
-
-
-
-
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Compat.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Exif.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Exif.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Fragment.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Media.Compat.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Transition.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Transition.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v4.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.CardView.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.Palette.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Vector.Drawable.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Animated.Vector.Drawable.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.AppCompat.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Design.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Design.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.MediaRouter.dll
-
-
- ..\..\..\packages\SkiaSharp.1.68.0\lib\MonoAndroid\SkiaSharp.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Core.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Forms.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\FormsViewGroup.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Core.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.Android.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Xaml.dll
-
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Collections.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Collections.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Interpolator.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Print.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Print.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CustomView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Loader.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Loader.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.ViewPager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomTabs.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {3A682234-5918-4F58-B02B-598A59C6A7BD}
- FFImageLoading.Forms.Sample
-
-
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}
- FFImageLoading.Forms.Droid
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}
- FFImageLoading.Transformations.Droid
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
- {0BF13419-BA9C-4004-812C-EB22E41927D9}
- FFImageLoading.Svg.Droid
-
-
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}
- FFImageLoading.Svg.Forms.Droid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {9F816002-DBA1-4175-A0CA-0DFD9E086786}
+ Library
+ FFImageLoading.Forms.Sample.Droid
+ Assets
+ Resources
+ Resource
+ Resources\Resource.designer.cs
+ True
+ FFImageLoading.Forms.Sample.Droid
+ Properties\AndroidManifest.xml
+ v9.0
+ 1G
+
+
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ None
+ false
+ 1G
+ armeabi-v7a;x86;x86_64
+ Xamarin.Android.Net.AndroidClientHandler
+ btls
+ true
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+
+
+ full
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ false
+ 1G
+ Xamarin.Android.Net.AndroidClientHandler
+ btls
+ true
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Droid/Properties/AndroidManifest.xml b/samples/ImageLoading.Forms.Sample/Droid/Properties/AndroidManifest.xml
index 164d65108..7800fa862 100644
--- a/samples/ImageLoading.Forms.Sample/Droid/Properties/AndroidManifest.xml
+++ b/samples/ImageLoading.Forms.Sample/Droid/Properties/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Droid/app.config b/samples/ImageLoading.Forms.Sample/Droid/app.config
deleted file mode 100644
index 86de0f2b6..000000000
--- a/samples/ImageLoading.Forms.Sample/Droid/app.config
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Droid/packages.config b/samples/ImageLoading.Forms.Sample/Droid/packages.config
deleted file mode 100644
index 58a1600e9..000000000
--- a/samples/ImageLoading.Forms.Sample/Droid/packages.config
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Mac/FFImageLoading.Forms.Sample.Mac.csproj b/samples/ImageLoading.Forms.Sample/Mac/FFImageLoading.Forms.Sample.Mac.csproj
index 1b5f38b00..5729d0f24 100644
--- a/samples/ImageLoading.Forms.Sample/Mac/FFImageLoading.Forms.Sample.Mac.csproj
+++ b/samples/ImageLoading.Forms.Sample/Mac/FFImageLoading.Forms.Sample.Mac.csproj
@@ -1,162 +1,111 @@
-
-
-
-
- Debug
- AnyCPU
- {75D24499-446D-47DD-9C9A-295E40010CF1}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Exe
- FFImageLoading.Forms.Sample.Mac
- FFImageLoading.Forms.Sample.Mac
- v2.0
- Xamarin.Mac
- Resources
-
-
- true
- full
- false
- bin\Debug
- DEBUG;
- prompt
- 4
- false
- Mac Developer
- false
- false
- false
- true
- true
-
-
-
- 3rd Party Mac Developer Installer
- None
-
-
- pdbonly
- true
- bin\Release
-
- prompt
- 4
- false
- true
- false
- true
- true
- true
- SdkOnly
-
-
- None
-
-
-
-
-
-
- ..\..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.Mac20\WebP.Mac.dll
-
-
- ..\..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.Mac20\SkiaSharp.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Core.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Forms.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ViewController.cs
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}
- FFImageLoading.Forms.Mac
-
-
- {3A682234-5918-4F58-B02B-598A59C6A7BD}
- FFImageLoading.Forms.Sample
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}
- FFImageLoading.Transformations.Mac
-
-
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}
- FFImageLoading.Svg.Forms.Mac
-
-
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}
- FFImageLoading.Svg.Mac
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {75D24499-446D-47DD-9C9A-295E40010CF1}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Exe
+ FFImageLoading.Forms.Sample.Mac
+ FFImageLoading.Forms.Sample.Mac
+ v2.0
+ Xamarin.Mac
+ Resources
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ false
+ Mac Developer
+ false
+ false
+ false
+ true
+ true
+
+
+
+
+
+
+ 3rd Party Mac Developer Installer
+ None
+
+
+ pdbonly
+ true
+ bin\Release
+
+
+ prompt
+ 4
+ false
+ true
+ false
+ true
+ true
+ true
+ SdkOnly
+
+
+
+
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ViewController.cs
+
+
+
+
+
+
+
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}
+ FFImageLoading.Forms.Sample
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Mac/packages.config b/samples/ImageLoading.Forms.Sample/Mac/packages.config
deleted file mode 100644
index 190d02600..000000000
--- a/samples/ImageLoading.Forms.Sample/Mac/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Shared/FFImageLoading.Forms.Sample.csproj b/samples/ImageLoading.Forms.Sample/Shared/FFImageLoading.Forms.Sample.csproj
index a829e9662..c0d21de71 100644
--- a/samples/ImageLoading.Forms.Sample/Shared/FFImageLoading.Forms.Sample.csproj
+++ b/samples/ImageLoading.Forms.Sample/Shared/FFImageLoading.Forms.Sample.csproj
@@ -1,52 +1,30 @@
-
+
-
- netstandard2.0
- Shared
- Shared
- false
- false
- false
- false
- false
- false
- false
- false
- false
- 2.0.2
-
+
+
+ netstandard2.0
+ true
+
+
+
+ pdbonly
+ true
+
+
-
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
tenor.gif
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Shared/Properties/AssemblyInfo.cs b/samples/ImageLoading.Forms.Sample/Shared/Properties/AssemblyInfo.cs
deleted file mode 100644
index 54a34c1e2..000000000
--- a/samples/ImageLoading.Forms.Sample/Shared/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("Shared")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("Daniel Luberda")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("1.0.0")]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
-
diff --git a/samples/ImageLoading.Forms.Sample/Tizen/FFImageLoading.Forms.Sample.Tizen.csproj b/samples/ImageLoading.Forms.Sample/Tizen/FFImageLoading.Forms.Sample.Tizen.csproj
index fe5a05051..0cefe1dec 100644
--- a/samples/ImageLoading.Forms.Sample/Tizen/FFImageLoading.Forms.Sample.Tizen.csproj
+++ b/samples/ImageLoading.Forms.Sample/Tizen/FFImageLoading.Forms.Sample.Tizen.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -10,18 +10,10 @@
Runtime
-
-
-
-
-
-
-
-
diff --git a/samples/ImageLoading.Forms.Sample/WinUWP/FFImageLoading.Forms.Sample.WinUWP.csproj b/samples/ImageLoading.Forms.Sample/WinUWP/FFImageLoading.Forms.Sample.WinUWP.csproj
index d6f3a2074..3fa0e10c9 100644
--- a/samples/ImageLoading.Forms.Sample/WinUWP/FFImageLoading.Forms.Sample.WinUWP.csproj
+++ b/samples/ImageLoading.Forms.Sample/WinUWP/FFImageLoading.Forms.Sample.WinUWP.csproj
@@ -1,195 +1,167 @@
-
-
-
-
- Debug
- x86
- {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}
- AppContainerExe
- Properties
- WinUWP
- WinUWP
- en-US
- UAP
- 10.0.17134.0
- 10.0.17134.0
- 14
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- true
- WinUWP_TemporaryKey.pfx
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x86
- false
- prompt
- true
-
-
- bin\x86\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x86
- false
- prompt
- true
- true
-
-
- true
- bin\ARM\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- ARM
- false
- prompt
- true
-
-
- bin\ARM\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- ARM
- false
- prompt
- true
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x64
- false
- prompt
- true
-
-
- bin\x64\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x64
- false
- prompt
- true
- true
-
-
- PackageReference
-
-
-
- App.xaml
-
-
- MainPage.xaml
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
-
-
- 6.1.5
-
-
- 1.68.0
-
-
- 3.6.0.344457
-
-
- 1.0.5
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
- {b8be9fe7-2d07-40b5-8dae-ba52f944c659}
- FFImageLoading.Forms.WinUWP
-
-
- {3d6c1f12-68d7-44c2-a7de-8e7942627a01}
- FFImageLoading.Forms
-
-
- {6d4f9dfa-012e-4966-a6e8-01c3464b537e}
- FFImageLoading.Svg.Forms.Windows
-
-
- {5140739d-209c-41a7-9503-5d5733f4c091}
- FFImageLoading.Svg.Windows
-
-
- {399e7e28-5a3d-471f-b6fc-d5770ebb6762}
- FFImageLoading.Transformations.Windows
-
-
- {610543a5-d06f-4bca-9443-e6addff06c71}
- FFImageLoading.Windows
-
-
- {3a682234-5918-4f58-b02b-598a59c6a7bd}
- FFImageLoading.Forms.Sample
-
-
-
- 14.0
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ x86
+ {8E16617A-EA87-4E8D-8CD1-AD5E6D73188F}
+ AppContainerExe
+ Properties
+ WinUWP
+ WinUWP
+ en-US
+ UAP
+ 10.0.17134.0
+ 10.0.17134.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ true
+ WinUWP_TemporaryKey.pfx
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+ PackageReference
+
+
+
+ App.xaml
+
+
+ MainPage.xaml
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+ 6.2.9
+
+
+ 1.68.0
+
+
+ 4.0.0.709238
+
+
+ 1.0.5
+
+
+
+
+ {3a682234-5918-4f58-b02b-598a59c6a7bd}
+ FFImageLoading.Forms.Sample
+
+
+
+ 14.0
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/WinUWP/Properties/Default.rd.xml b/samples/ImageLoading.Forms.Sample/WinUWP/Properties/Default.rd.xml
index 74b03e3f8..af00722cd 100644
--- a/samples/ImageLoading.Forms.Sample/WinUWP/Properties/Default.rd.xml
+++ b/samples/ImageLoading.Forms.Sample/WinUWP/Properties/Default.rd.xml
@@ -1,31 +1,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/App.config b/samples/ImageLoading.Forms.Sample/Wpf/App.config
new file mode 100644
index 000000000..787dcbecc
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/App.xaml b/samples/ImageLoading.Forms.Sample/Wpf/App.xaml
new file mode 100644
index 000000000..fd0965690
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/App.xaml.cs b/samples/ImageLoading.Forms.Sample/Wpf/App.xaml.cs
new file mode 100644
index 000000000..703fcfe00
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/App.xaml.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Wpf
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ protected override void OnStartup(StartupEventArgs e)
+ {
+ base.OnStartup(e);
+ FFImageLoading.Forms.Platform.CachedImageRenderer.Init();
+
+ var config = new FFImageLoading.Config.Configuration()
+ {
+ VerboseLogging = true,
+ VerbosePerformanceLogging = true,
+ VerboseMemoryCacheLogging = true,
+ VerboseLoadingCancelledLogging = true,
+ };
+ FFImageLoading.ImageService.Instance.Initialize(config);
+ List assembliesToInclude = new List();
+ assembliesToInclude.Add(typeof(FFImageLoading.Forms.Platform.CachedImageRenderer).GetTypeInfo().Assembly);
+ Xamarin.Forms.Forms.Init(assembliesToInclude);
+ }
+ }
+}
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Assets/error.png b/samples/ImageLoading.Forms.Sample/Wpf/Assets/error.png
new file mode 100644
index 000000000..b791d4392
Binary files /dev/null and b/samples/ImageLoading.Forms.Sample/Wpf/Assets/error.png differ
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Assets/loading.png b/samples/ImageLoading.Forms.Sample/Wpf/Assets/loading.png
new file mode 100644
index 000000000..3f9cde526
Binary files /dev/null and b/samples/ImageLoading.Forms.Sample/Wpf/Assets/loading.png differ
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Assets/sample.svg b/samples/ImageLoading.Forms.Sample/Wpf/Assets/sample.svg
new file mode 100644
index 000000000..4ab9b8eea
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Assets/sample.svg
@@ -0,0 +1,201 @@
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/FFImageLoading.Forms.Sample.Wpf.csproj b/samples/ImageLoading.Forms.Sample/Wpf/FFImageLoading.Forms.Sample.Wpf.csproj
new file mode 100644
index 000000000..2db7048eb
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/FFImageLoading.Forms.Sample.Wpf.csproj
@@ -0,0 +1,117 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9DA44ABC-686C-4AE5-AB3F-19C01BAC279F}
+ WinExe
+ Wpf
+ Wpf
+ v4.7.1
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+ 4.0.0.709238
+
+
+ 4.0.0.709238
+
+
+
+
+ {3a682234-5918-4f58-b02b-598a59c6a7bd}
+ FFImageLoading.Forms.Sample
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml b/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml
new file mode 100644
index 000000000..aa0b1c3c2
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml.cs b/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml.cs
new file mode 100644
index 000000000..aa9dbb184
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/MainWindow.xaml.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using Xamarin.Forms.Platform.WPF;
+
+namespace Wpf
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : FormsApplicationPage
+ {
+ public MainWindow()
+ {
+ MinWidth = 1000;
+ MinHeight = 450;
+ InitializeComponent();
+ LoadApplication(new FFImageLoading.Forms.Sample.App());
+ }
+ }
+}
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Properties/AssemblyInfo.cs b/samples/ImageLoading.Forms.Sample/Wpf/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..56a1c5331
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Wpf")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Wpf")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.Designer.cs b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..66bdd5844
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Wpf.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Wpf.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.resx b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.resx
new file mode 100644
index 000000000..af7dbebba
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.Designer.cs b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..12a08fa37
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Wpf.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.settings b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.settings
new file mode 100644
index 000000000..033d7a5e9
--- /dev/null
+++ b/samples/ImageLoading.Forms.Sample/Wpf/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/iOS/FFImageLoading.Forms.Sample.iOS.csproj b/samples/ImageLoading.Forms.Sample/iOS/FFImageLoading.Forms.Sample.iOS.csproj
index 94d3a9d7c..2d2e46906 100644
--- a/samples/ImageLoading.Forms.Sample/iOS/FFImageLoading.Forms.Sample.iOS.csproj
+++ b/samples/ImageLoading.Forms.Sample/iOS/FFImageLoading.Forms.Sample.iOS.csproj
@@ -1,172 +1,122 @@
-
-
-
-
- Debug
- iPhoneSimulator
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}
- Exe
- FFImageLoading.Forms.Sample.iOS
- Resources
- FFImageLoadingFormsSampleiOS
-
-
- true
- full
- false
- bin\iPhoneSimulator\Debug
- DEBUG;ENABLE_TEST_CLOUD;
- prompt
- 4
- false
- i386, x86_64
- None
- true
- iPhone Developer
- true
- true
- NSUrlSessionHandler
-
-
- full
- true
- bin\iPhone\Release
- prompt
- 4
- false
- ARMv7, ARM64
- Entitlements.plist
- true
- iPhone Developer
-
-
- full
- true
- bin\iPhoneSimulator\Release
- prompt
- 4
- false
- i386
- None
- iPhone Developer
- true
- NSUrlSessionHandler
-
-
- true
- full
- false
- bin\iPhone\Debug
- DEBUG;ENABLE_TEST_CLOUD;
- prompt
- 4
- false
- ARMv7, ARM64
- Entitlements.plist
- true
- true
- true
- iPhone Developer
- NSUrlSessionHandler
-
-
-
-
-
-
-
-
- ..\..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
-
-
- ..\..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.iOS\SkiaSharp.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Core.dll
-
-
- ..\..\..\packages\Xamvvm.Forms.1.0.5\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+netstandard1.0\Xamvvm.Forms.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
-
-
- ..\..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
-
-
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {3A682234-5918-4F58-B02B-598A59C6A7BD}
- FFImageLoading.Forms.Sample
-
-
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}
- FFImageLoading.Forms.Touch
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}
- FFImageLoading.Transformations.Touch
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
- FFImageLoading.Svg.Touch
-
-
- {A73A1EA8-E709-474D-9102-DCB2482950AB}
- FFImageLoading.Svg.Forms.Touch
-
-
-
-
-
-
-
+
+
+
+ Debug
+ iPhoneSimulator
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {626BF52A-2C8A-4E1E-AFE5-2EA3903FFBDF}
+ Exe
+ FFImageLoading.Forms.Sample.iOS
+ Resources
+ FFImageLoadingFormsSampleiOS
+
+
+ true
+ full
+ false
+ bin\iPhoneSimulator\Debug
+ DEBUG;ENABLE_TEST_CLOUD;
+ prompt
+ 4
+ false
+ i386, x86_64
+ None
+ true
+ iPhone Developer
+ true
+ true
+ NSUrlSessionHandler
+ true
+ true
+
+
+ full
+ true
+ bin\iPhone\Release
+ prompt
+ 4
+ false
+ ARMv7, ARM64
+ Entitlements.plist
+ true
+ iPhone Developer
+
+
+ full
+ true
+ bin\iPhoneSimulator\Release
+ prompt
+ 4
+ false
+ i386
+ SdkOnly
+ iPhone Developer
+ true
+ NSUrlSessionHandler
+
+
+ true
+ full
+ false
+ bin\iPhone\Debug
+ DEBUG;ENABLE_TEST_CLOUD;
+ prompt
+ 4
+ false
+ ARMv7, ARM64
+ Entitlements.plist
+ true
+ true
+ true
+ iPhone Developer
+ NSUrlSessionHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {3A682234-5918-4F58-B02B-598A59C6A7BD}
+ FFImageLoading.Forms.Sample
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/iOS/app.config b/samples/ImageLoading.Forms.Sample/iOS/app.config
deleted file mode 100644
index 86de0f2b6..000000000
--- a/samples/ImageLoading.Forms.Sample/iOS/app.config
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.Forms.Sample/iOS/packages.config b/samples/ImageLoading.Forms.Sample/iOS/packages.config
deleted file mode 100644
index 9d0818851..000000000
--- a/samples/ImageLoading.Forms.Sample/iOS/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/FFImageLoading.MvvmCross.Sample.Core.csproj b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/FFImageLoading.MvvmCross.Sample.Core.csproj
index 3cf21893c..c6e7a9752 100644
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/FFImageLoading.MvvmCross.Sample.Core.csproj
+++ b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/FFImageLoading.MvvmCross.Sample.Core.csproj
@@ -1,68 +1,14 @@
-
-
-
- Debug
- AnyCPU
- {087DE224-30F0-4FEF-A960-F93F04182BA6}
- {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- true
- Library
- FFImageLoading.MvvmCross.Sample.Core
- FFImageLoading.MvvmCross.Sample.Core
- v4.5
- Profile111
-
-
- true
- full
- false
- bin\Debug
- DEBUG;
- prompt
- 4
-
-
- true
- bin\Release
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {E68FD3BB-5851-45CC-9B33-DE6AB28B9984}
- FFImageLoading.Transformations
-
-
-
-
- ..\..\..\packages\MvvmCross.Platform.5.6.3\lib\portable-net45+win+wpa81+wp80\MvvmCross.Platform.dll
-
-
- ..\..\..\packages\MvvmCross.Core.5.6.3\lib\portable-net45+win+wpa81+wp80\MvvmCross.Core.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\portable-net45+win+wpa81+wp80\MvvmCross.Binding.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\portable-net45+win+wpa81+wp80\MvvmCross.Localization.dll
-
-
-
-
-
-
+
+
+
+
+ netstandard2.0
+ true
+
+
+
+ pdbonly
+ true
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/Properties/AssemblyInfo.cs b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/Properties/AssemblyInfo.cs
deleted file mode 100644
index 16ceb5839..000000000
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("FFImageLoading.MvvmCross.Sample.Core")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("(c) Daniel Luberda")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("1.0.0")]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/packages.config b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/packages.config
deleted file mode 100644
index 798da64af..000000000
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Core/packages.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/FFImageLoading.MvvmCross.Sample.Droid.csproj b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/FFImageLoading.MvvmCross.Sample.Droid.csproj
index fcc68c4f0..036e26837 100644
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/FFImageLoading.MvvmCross.Sample.Droid.csproj
+++ b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/FFImageLoading.MvvmCross.Sample.Droid.csproj
@@ -1,229 +1,93 @@
-
-
-
- Debug
- AnyCPU
- {A3760566-B91D-435F-94A6-31ADF4C7812F}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.MvvmCross.Sample.Droid
- FFImageLoading.MvvmCross.Sample.Droid
- v9.0
- True
- Resources\Resource.designer.cs
- Resource
- Properties\AndroidManifest.xml
- Resources
- Assets
-
-
- true
- full
- false
- bin\Debug
- DEBUG;
- prompt
- 4
- None
- arm64-v8a;armeabi;armeabi-v7a;x86
-
-
- true
- pdbonly
- true
- bin\Release
- prompt
- 4
- true
- false
-
-
-
-
-
-
-
-
- ..\..\..\packages\MvvmCross.Platform.5.6.3\lib\MonoAndroid\MvvmCross.Platform.dll
-
-
- ..\..\..\packages\MvvmCross.Platform.5.6.3\lib\MonoAndroid\MvvmCross.Platform.Droid.dll
-
-
- ..\..\..\packages\MvvmCross.Core.5.6.3\lib\MonoAndroid\MvvmCross.Core.dll
-
-
- ..\..\..\packages\MvvmCross.Core.5.6.3\lib\MonoAndroid\MvvmCross.Droid.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\MonoAndroid\MvvmCross.Binding.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\MonoAndroid\MvvmCross.Binding.Droid.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\MonoAndroid\MvvmCross.Localization.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Compat.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll
-
-
- ..\..\..\packages\MvvmCross.Droid.Support.V7.RecyclerView.5.6.3\lib\MonoAndroid70\MvvmCross.Droid.Support.V7.RecyclerView.dll
-
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll
-
-
- ..\..\..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Collections.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Collections.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Interpolator.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Print.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Print.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CustomView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Loader.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Loader.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.ViewPager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {087DE224-30F0-4FEF-A960-F93F04182BA6}
- FFImageLoading.MvvmCross.Sample.Core
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}
- FFImageLoading.Transformations.Droid
-
-
- {0BF13419-BA9C-4004-812C-EB22E41927D9}
- FFImageLoading.Svg.Droid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {A3760566-B91D-435F-94A6-31ADF4C7812F}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.MvvmCross.Sample.Droid
+ FFImageLoading.MvvmCross.Sample.Droid
+ v9.0
+ True
+ Resources\Resource.designer.cs
+ Resource
+ Properties\AndroidManifest.xml
+ Resources
+ Assets
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ None
+ arm64-v8a;armeabi;armeabi-v7a;x86
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+ true
+ 1G
+
+
+ false
+ pdbonly
+ true
+ bin\Release
+ prompt
+ 4
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+ true
+ 1G
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/Properties/AndroidManifest.xml b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/Properties/AndroidManifest.xml
index 887b52661..80b2fd47b 100644
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/Properties/AndroidManifest.xml
+++ b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/packages.config b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/packages.config
deleted file mode 100644
index 50b117505..000000000
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.Droid/packages.config
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/FFImageLoading.MvvmCross.Sample.iOS.csproj b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/FFImageLoading.MvvmCross.Sample.iOS.csproj
index f957e877f..f4ccf7ff0 100644
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/FFImageLoading.MvvmCross.Sample.iOS.csproj
+++ b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/FFImageLoading.MvvmCross.Sample.iOS.csproj
@@ -1,4 +1,4 @@
-
+
Debug
@@ -26,28 +26,32 @@
32830
None
i386, x86_64
- HttpClientHandler
+ NSUrlSessionHandler
+ true
pdbonly
true
bin\iPhone\Release
-
+
+
prompt
4
iPhone Developer
- true
- true
+ false
+ false
Entitlements.plist
SdkOnly
ARMv7, ARM64
HttpClientHandler
+ true
pdbonly
true
bin\iPhoneSimulator\Release
-
+
+
prompt
4
iPhone Developer
@@ -82,38 +86,16 @@
-
- ..\..\..\packages\MvvmCross.Platform.5.6.3\lib\Xamarin.iOS10\MvvmCross.Platform.dll
-
-
- ..\..\..\packages\MvvmCross.Platform.5.6.3\lib\Xamarin.iOS10\MvvmCross.Platform.iOS.dll
-
-
- ..\..\..\packages\MvvmCross.Core.5.6.3\lib\Xamarin.iOS10\MvvmCross.Core.dll
-
-
- ..\..\..\packages\MvvmCross.Core.5.6.3\lib\Xamarin.iOS10\MvvmCross.iOS.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\Xamarin.iOS10\MvvmCross.Binding.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\Xamarin.iOS10\MvvmCross.Binding.iOS.dll
-
-
- ..\..\..\packages\MvvmCross.Binding.5.6.3\lib\Xamarin.iOS10\MvvmCross.Localization.dll
-
-
- ..\..\..\packages\Cirrious.FluentLayout.2.9.0\lib\Xamarin.iOS10\Cirrious.FluentLayouts.Touch.dll
-
-
-
-
-
-
+
+ false
+
+
+ false
+
+
@@ -121,7 +103,6 @@
-
@@ -139,27 +120,5 @@
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {087DE224-30F0-4FEF-A960-F93F04182BA6}
- FFImageLoading.MvvmCross.Sample.Core
-
-
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
- FFImageLoading.Svg.Touch
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}
- FFImageLoading.Transformations.Touch
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/packages.config b/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/packages.config
deleted file mode 100644
index aec2e2f5c..000000000
--- a/samples/ImageLoading.MvvmCross.Sample/FFImageLoading.MvvmCross.Sample.iOS/packages.config
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ImageLoading.Sample/Properties/AndroidManifest.xml b/samples/ImageLoading.Sample/Properties/AndroidManifest.xml
index 2c503bea9..baafca9db 100644
--- a/samples/ImageLoading.Sample/Properties/AndroidManifest.xml
+++ b/samples/ImageLoading.Sample/Properties/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Sample/Simple.Android.Sample.csproj b/samples/ImageLoading.Sample/Simple.Android.Sample.csproj
index 9e52fb88f..17b4e0c31 100644
--- a/samples/ImageLoading.Sample/Simple.Android.Sample.csproj
+++ b/samples/ImageLoading.Sample/Simple.Android.Sample.csproj
@@ -1,247 +1,107 @@
-
-
-
- Debug
- AnyCPU
- {F898A684-E9C1-4154-9F80-6037287233F5}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- Properties
- ImageLoading.Sample
- ImageLoading.Sample
- 512
- true
- Resources\Resource.Designer.cs
- Off
- True
- Properties\AndroidManifest.xml
- v9.0
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- None
-
-
- full
- true
- bin\Release\
- TRACE
- prompt
- 4
- False
-
-
-
-
-
-
-
-
-
- ..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Fragment.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Media.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v4.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.CardView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Animated.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.AppCompat.dll
-
-
-
- ..\..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Collections.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Collections.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll
-
-
- ..\..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Interpolator.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll
-
-
- ..\..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Print.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Print.dll
-
-
- ..\..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CustomView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Loader.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Loader.dll
-
-
- ..\..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.ViewPager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AndroidResource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}
- FFImageLoading.Transformations.Droid
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {F898A684-E9C1-4154-9F80-6037287233F5}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Properties
+ ImageLoading.Sample
+ ImageLoading.Sample
+ 512
+ true
+ Resources\Resource.Designer.cs
+ Off
+ True
+ Properties\AndroidManifest.xml
+ v9.0
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ None
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+ true
+ 1G
+
+
+
+ full
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ False
+ false
+ false
+ false
+ false
+ true
+ d8
+ r8
+ true
+ 1G
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AndroidResource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ImageLoading.Sample/packages.config b/samples/ImageLoading.Sample/packages.config
deleted file mode 100644
index 9553b45f5..000000000
--- a/samples/ImageLoading.Sample/packages.config
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/Simple.TizenForms.Sample/Simple.TizenForms.Sample.csproj b/samples/Simple.TizenForms.Sample/Simple.TizenForms.Sample.csproj
index 4a523686a..8f1a06681 100644
--- a/samples/Simple.TizenForms.Sample/Simple.TizenForms.Sample.csproj
+++ b/samples/Simple.TizenForms.Sample/Simple.TizenForms.Sample.csproj
@@ -10,15 +10,5 @@
Runtime
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/Simple.WinUniversal.Sample/Properties/Default.rd.xml b/samples/Simple.WinUniversal.Sample/Properties/Default.rd.xml
index 461bc4c13..80a960ce3 100644
--- a/samples/Simple.WinUniversal.Sample/Properties/Default.rd.xml
+++ b/samples/Simple.WinUniversal.Sample/Properties/Default.rd.xml
@@ -1,31 +1,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/Simple.WinUniversal.Sample/Simple.Universal.Sample.csproj b/samples/Simple.WinUniversal.Sample/Simple.Universal.Sample.csproj
index 270134d09..4096ee27a 100644
--- a/samples/Simple.WinUniversal.Sample/Simple.Universal.Sample.csproj
+++ b/samples/Simple.WinUniversal.Sample/Simple.Universal.Sample.csproj
@@ -1,159 +1,145 @@
-
-
-
-
- Debug
- x86
- x86
- {4B964916-47F4-4876-8A6B-9048B8A0D148}
- AppContainerExe
- Properties
- Simple.Universal.Sample
- Simple.Universal.Sample
- en-US
- UAP
- 10.0.17134.0
- 10.0.17134.0
- 14
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Simple.Universal.Sample_TemporaryKey.pfx
- win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x86
- false
- prompt
- true
-
-
- bin\x86\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x86
- false
- prompt
- true
- true
-
-
- true
- bin\ARM\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- ARM
- false
- prompt
- true
-
-
- bin\ARM\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- ARM
- false
- prompt
- true
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
- ;2008
- full
- x64
- false
- prompt
- true
-
-
- bin\x64\Release\
- TRACE;NETFX_CORE;WINDOWS_UWP
- true
- ;2008
- pdbonly
- x64
- false
- prompt
- true
- true
-
-
-
- App.xaml
-
-
- MainPage.xaml
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
- {1602a3cb-80c2-42bb-b21a-6beb87ed6ee2}
- FFImageLoading.Transformations.Windows
-
-
- {610543a5-d06f-4bca-9443-e6addff06c71}
- FFImageLoading.Windows
-
-
-
-
- 6.1.5
-
-
-
- 14.0
-
-
-
+
+
+
+
+ Debug
+ x86
+ x86
+ {4B964916-47F4-4876-8A6B-9048B8A0D148}
+ AppContainerExe
+ Properties
+ Simple.Universal.Sample
+ Simple.Universal.Sample
+ en-US
+ UAP
+ 10.0.17134.0
+ 10.0.17134.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Simple.Universal.Sample_TemporaryKey.pfx
+ win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+ true
+
+
+
+ App.xaml
+
+
+ MainPage.xaml
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+ 6.2.9
+
+
+
+ 14.0
+
+
+
\ No newline at end of file
diff --git a/samples/Simple.iOS.Sample/Simple.iOS.Sample.csproj b/samples/Simple.iOS.Sample/Simple.iOS.Sample.csproj
index 3f96fd97b..3cdee9ff4 100644
--- a/samples/Simple.iOS.Sample/Simple.iOS.Sample.csproj
+++ b/samples/Simple.iOS.Sample/Simple.iOS.Sample.csproj
@@ -1,154 +1,140 @@
-
-
-
- Debug
- iPhoneSimulator
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {B67D0516-5951-4DE9-B07F-AD3407D8CA90}
- Exe
- Simple.iOS.Sample
- Resources
- SimpleiOSSample
-
-
- true
- full
- false
- bin\iPhoneSimulator\Debug
- DEBUG;ENABLE_TEST_CLOUD;
- prompt
- 4
- false
- x86_64
- None
- true
- true
- iPhone Developer
-
-
- full
- true
- bin\iPhone\Release
- prompt
- 4
- false
- ARMv7, ARM64
- Entitlements.plist
- true
- iPhone Developer
-
-
- full
- true
- bin\iPhoneSimulator\Release
- prompt
- 4
- false
- i386
- None
- iPhone Developer
-
-
- true
- full
- false
- bin\iPhone\Debug
- DEBUG;ENABLE_TEST_CLOUD;
- prompt
- 4
- false
- ARMv7, ARM64
- Entitlements.plist
- true
- iPhone Developer
- true
- true
- true
-
-
-
-
-
-
-
-
- ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
-
-
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ImagesViewController.cs
-
-
-
- ImageViewCell.cs
-
-
-
- ImageDetailsViewController.cs
-
-
-
-
-
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}
- FFImageLoading.Transformations.Touch
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
-
-
-
-
-
+
+
+
+ Debug
+ iPhoneSimulator
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {B67D0516-5951-4DE9-B07F-AD3407D8CA90}
+ Exe
+ Simple.iOS.Sample
+ Resources
+ SimpleiOSSample
+
+
+ true
+ full
+ false
+ bin\iPhoneSimulator\Debug
+ DEBUG;ENABLE_TEST_CLOUD;
+ prompt
+ 4
+ false
+ x86_64
+ None
+ true
+ true
+ iPhone Developer
+ true
+ true
+ true
+
+
+ full
+ true
+ bin\iPhone\Release
+ prompt
+ 4
+ false
+ ARMv7, ARM64
+ Entitlements.plist
+ false
+ iPhone Developer
+ true
+
+
+ full
+ true
+ bin\iPhoneSimulator\Release
+ prompt
+ 4
+ false
+ i386
+ None
+ iPhone Developer
+
+
+ true
+ full
+ false
+ bin\iPhone\Debug
+ DEBUG;ENABLE_TEST_CLOUD;
+ prompt
+ 4
+ false
+ ARMv7, ARM64
+ Entitlements.plist
+ true
+ iPhone Developer
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ImagesViewController.cs
+
+
+
+ ImageViewCell.cs
+
+
+
+ ImageDetailsViewController.cs
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/Simple.iOS.Sample/packages.config b/samples/Simple.iOS.Sample/packages.config
deleted file mode 100644
index 2fb8a33e6..000000000
--- a/samples/Simple.iOS.Sample/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Common/Helpers/PreserveAttribute.cs b/source/FFImageLoading.Common/Helpers/PreserveAttribute.cs
index d22f347fe..c33f8eb3a 100644
--- a/source/FFImageLoading.Common/Helpers/PreserveAttribute.cs
+++ b/source/FFImageLoading.Common/Helpers/PreserveAttribute.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("FFImageLoading.Transformations"), InternalsVisibleTo("FFImageLoading.Svg.Forms")]
diff --git a/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.projitems b/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.projitems
deleted file mode 100644
index 90129e828..000000000
--- a/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.projitems
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- {60678181-1544-4276-9B2A-6239C1046EA5}
-
-
- FFImageLoading.Cross.Svg
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.shproj b/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.shproj
deleted file mode 100644
index 5628d04c8..000000000
--- a/source/FFImageLoading.Cross.Svg/FFImageLoading.Cross.Svg.shproj
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- {60678181-1544-4276-9B2A-6239C1046EA5}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Cross/FFImageLoading.Cross.projitems b/source/FFImageLoading.Cross/FFImageLoading.Cross.projitems
deleted file mode 100644
index 30092adcf..000000000
--- a/source/FFImageLoading.Cross/FFImageLoading.Cross.projitems
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- {3C58B37D-EDB7-4778-AA48-F3AD9A571059}
-
-
- FFImageLoading.Cross
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Cross/FFImageLoading.Cross.shproj b/source/FFImageLoading.Cross/FFImageLoading.Cross.shproj
deleted file mode 100644
index 27c8ffd96..000000000
--- a/source/FFImageLoading.Cross/FFImageLoading.Cross.shproj
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- {3C58B37D-EDB7-4778-AA48-F3AD9A571059}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Droid/FFImageLoading.Droid.csproj b/source/FFImageLoading.Droid/FFImageLoading.Droid.csproj
index e30735d13..597059088 100644
--- a/source/FFImageLoading.Droid/FFImageLoading.Droid.csproj
+++ b/source/FFImageLoading.Droid/FFImageLoading.Droid.csproj
@@ -1,121 +1,121 @@
-
-
-
- Debug
- AnyCPU
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- Library
- FFImageLoading
- Assets
- Resources
- Resource
- FFImageLoading.Platform
- v8.1
- 1701;1702;1705;1591;1587;NU1605;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;ANDROID;__ANDROID__
- prompt
- 4
- None
- false
- DEBUG;ANDROID;__ANDROID__
- Latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- false
- false
- bin\Release\FFImageLoading.Platform.xml
- ANDROID;__ANDROID__
- Latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Extensions\TaskParameterExtensions.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {74BF9402-3E13-4003-8923-BC20A1294CE2}
+ Library
+ FFImageLoading
+ Assets
+ Resources
+ Resource
+ FFImageLoading.Platform
+ v8.1
+ 1701;1702;1705;1591;1587;NU1605;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;ANDROID;__ANDROID__
+ prompt
+ 4
+ None
+ false
+ DEBUG;ANDROID;__ANDROID__
+ Latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ false
+ bin\Release\FFImageLoading.Platform.xml
+ ANDROID;__ANDROID__
+ Latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extensions\TaskParameterExtensions.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {51CA3BE2-DF00-4F49-8054-E5C776992B61}
+ FFImageLoading
+
+
+
+
+
+
diff --git a/source/FFImageLoading.Forms.Droid/FFImageLoading.Forms.Droid.csproj b/source/FFImageLoading.Forms.Droid/FFImageLoading.Forms.Droid.csproj
index c32a72ef9..77785c726 100644
--- a/source/FFImageLoading.Forms.Droid/FFImageLoading.Forms.Droid.csproj
+++ b/source/FFImageLoading.Forms.Droid/FFImageLoading.Forms.Droid.csproj
@@ -1,183 +1,174 @@
-
-
-
-
- Debug
- AnyCPU
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}
- Library
- FFImageLoading.Forms.Platform
- Assets
- Resources
- Resource
- FFImageLoading.Forms.Platform
- v8.1
-
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;ANDROID;__ANDROID__
- prompt
- 4
- None
- false
- latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- false
- false
- bin\Release\FFImageLoading.Forms.Platform.xml
- ANDROID;__ANDROID__
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
- ..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Core.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Lifecycle.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Lifecycle.Runtime.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Annotations.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Core.UI.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Core.Utils.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Fragment.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Media.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Transition.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Transition.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v4.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.CardView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.Palette.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.RecyclerView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Animated.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.AppCompat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Design.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Design.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.MediaRouter.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\FormsViewGroup.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Platform.Android.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Xaml.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.CustomTabs.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {7014FEB6-0338-4A47-B600-4A1B48127C5C}
+ Library
+ FFImageLoading.Forms.Platform
+ Assets
+ Resources
+ Resource
+ FFImageLoading.Forms.Platform
+ v8.1
+
+
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;ANDROID;__ANDROID__
+ prompt
+ 4
+ None
+ false
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ false
+ bin\Release\FFImageLoading.Forms.Platform.xml
+ ANDROID;__ANDROID__
+ latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Core.Common.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Lifecycle.Common.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid81\Xamarin.Android.Arch.Lifecycle.Runtime.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Annotations.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Compat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Core.UI.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Core.Utils.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Fragment.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Media.Compat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Transition.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Transition.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v4.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.CardView.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.Palette.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.RecyclerView.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Vector.Drawable.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Animated.Vector.Drawable.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.AppCompat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Design.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.Design.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.v7.MediaRouter.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\FormsViewGroup.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Platform.Android.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid81\Xamarin.Forms.Xaml.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.1\lib\monoandroid81\Xamarin.Android.Support.CustomTabs.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
+ FFImageLoading.Forms
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Droid/app.config b/source/FFImageLoading.Forms.Droid/app.config
index 86de0f2b6..4dd3b43c8 100644
--- a/source/FFImageLoading.Forms.Droid/app.config
+++ b/source/FFImageLoading.Forms.Droid/app.config
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Mac/FFImageLoading.Forms.Mac.csproj b/source/FFImageLoading.Forms.Mac/FFImageLoading.Forms.Mac.csproj
index 280611d8c..23b0991d4 100644
--- a/source/FFImageLoading.Forms.Mac/FFImageLoading.Forms.Mac.csproj
+++ b/source/FFImageLoading.Forms.Mac/FFImageLoading.Forms.Mac.csproj
@@ -1,105 +1,99 @@
-
-
-
-
- Debug
- AnyCPU
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Forms.Platform
- FFImageLoading.Forms.Platform
- v2.0
- Xamarin.Mac
- Resources
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__MACOS__;
- prompt
- 4
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- latest
-
-
- true
- portable
- true
- bin\Release
- __MACOS__;
- prompt
- 4
- bin\Release\FFImageLoading.Forms.Platform.xml
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- latest
-
-
-
-
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
-
-
-
-
-
- CachedImageRenderer.cs
-
-
- ImageSourceBinding.cs
-
-
- FFImageLoadingImageSourceHandler.cs
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Forms.Platform
+ FFImageLoading.Forms.Platform
+ v2.0
+ Xamarin.Mac
+ Resources
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__MACOS__;
+ prompt
+ 4
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __MACOS__;
+ prompt
+ 4
+ bin\Release\FFImageLoading.Forms.Platform.xml
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ latest
+
+
+
+
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
+
+
+
+
+
+ CachedImageRenderer.cs
+
+
+ ImageSourceBinding.cs
+
+
+ FFImageLoadingImageSourceHandler.cs
+
+
+
+
+ {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
+ FFImageLoading.Forms
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Tizen/FFImageLoading.Forms.Tizen.csproj b/source/FFImageLoading.Forms.Tizen/FFImageLoading.Forms.Tizen.csproj
index fd319e9fc..1f9e621b5 100644
--- a/source/FFImageLoading.Forms.Tizen/FFImageLoading.Forms.Tizen.csproj
+++ b/source/FFImageLoading.Forms.Tizen/FFImageLoading.Forms.Tizen.csproj
@@ -38,6 +38,5 @@
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Touch/FFImageLoading.Forms.Touch.csproj b/source/FFImageLoading.Forms.Touch/FFImageLoading.Forms.Touch.csproj
index c461d154e..f994be346 100644
--- a/source/FFImageLoading.Forms.Touch/FFImageLoading.Forms.Touch.csproj
+++ b/source/FFImageLoading.Forms.Touch/FFImageLoading.Forms.Touch.csproj
@@ -1,85 +1,77 @@
-
-
-
-
- Debug
- AnyCPU
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}
- Library
- FFImageLoading.Forms.Platform
- Resources
- FFImageLoading.Forms.Platform
- 1591
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
- prompt
- 4
- false
- latest
-
-
- true
- portable
- true
- bin\Release
- __UNIFIED__;__MOBILE__;__IOS__;
- prompt
- 4
- false
- bin\Release\FFImageLoading.Forms.Platform.xml
- latest
-
-
-
-
-
-
-
- ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}
+ Library
+ FFImageLoading.Forms.Platform
+ Resources
+ FFImageLoading.Forms.Platform
+ 1591
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
+ prompt
+ 4
+ false
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __UNIFIED__;__MOBILE__;__IOS__;
+ prompt
+ 4
+ false
+ bin\Release\FFImageLoading.Forms.Platform.xml
+ latest
+
+
+
+
+
+
+
+ ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
+ FFImageLoading.Forms
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Touch/app.config b/source/FFImageLoading.Forms.Touch/app.config
index 86de0f2b6..4dd3b43c8 100644
--- a/source/FFImageLoading.Forms.Touch/app.config
+++ b/source/FFImageLoading.Forms.Touch/app.config
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.WinUWP/FFImageLoading.Forms.WinUWP.csproj b/source/FFImageLoading.Forms.WinUWP/FFImageLoading.Forms.WinUWP.csproj
index 4cb1d5e66..0ea23d49e 100644
--- a/source/FFImageLoading.Forms.WinUWP/FFImageLoading.Forms.WinUWP.csproj
+++ b/source/FFImageLoading.Forms.WinUWP/FFImageLoading.Forms.WinUWP.csproj
@@ -1,155 +1,147 @@
-
-
-
-
- Debug
- AnyCPU
- {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}
- Library
- PackageReference
- Properties
- FFImageLoading.Forms.Platform
- FFImageLoading.Forms.Platform
- FFImageLoading.Forms.Platform.UWP
- en-US
- UAP
- 10.0.17134.0
- 10.0.16299.0
- 14
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
- 1701;1702;1705;1591;1587;NU1605
-
-
- AnyCPU
- true
- portable
- false
- bin\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- prompt
- 4
- Latest
-
-
- AnyCPU
- true
- portable
- true
- bin\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- prompt
- 4
- bin\Release\FFImageLoading.Forms.Platform.xml
- Latest
-
-
- AnyCPU
- true
- portable
- bin\ARM\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- AnyCPU
- false
- prompt
- Latest
-
-
- ARM
- bin\ARM\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- ARM
- false
- prompt
- bin\ARM\Release\FFImageLoading.Forms.Platform.xml
- Latest
-
-
- AnyCPU
- bin\x64\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- portable
- AnyCPU
- false
- prompt
- Latest
-
-
- x64
- bin\x64\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- x64
- bin\x64\Release\FFImageLoading.Forms.Platform.xml
- false
- prompt
- Latest
-
-
- AnyCPU
- bin\x86\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- portable
- AnyCPU
- false
- prompt
- true
- Latest
-
-
- x86
- bin\x86\Release
- bin\x86\Release\FFImageLoading.Forms.Platform.xml
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- x86
- false
- prompt
- true
- Latest
-
-
-
-
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
- {3d6c1f12-68d7-44c2-a7de-8e7942627a01}
- FFImageLoading.Forms
-
-
- {610543a5-d06f-4bca-9443-e6addff06c71}
- FFImageLoading.Windows
-
-
-
-
-
-
-
- 14.0
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {B8BE9FE7-2D07-40B5-8DAE-BA52F944C659}
+ Library
+ PackageReference
+ Properties
+ FFImageLoading.Forms.Platform
+ FFImageLoading.Forms.Platform
+ FFImageLoading.Forms.Platform.UWP
+ en-US
+ UAP
+ 10.0.17134.0
+ 10.0.16299.0
+ 14
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ AnyCPU
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ prompt
+ 4
+ Latest
+
+
+ AnyCPU
+ true
+ portable
+ true
+ bin\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Forms.Platform.xml
+ Latest
+
+
+ AnyCPU
+ true
+ portable
+ bin\ARM\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ AnyCPU
+ false
+ prompt
+ Latest
+
+
+ ARM
+ bin\ARM\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ ARM
+ false
+ prompt
+ bin\ARM\Release\FFImageLoading.Forms.Platform.xml
+ Latest
+
+
+ AnyCPU
+ bin\x64\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ portable
+ AnyCPU
+ false
+ prompt
+ Latest
+
+
+ x64
+ bin\x64\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ x64
+ bin\x64\Release\FFImageLoading.Forms.Platform.xml
+ false
+ prompt
+ Latest
+
+
+ AnyCPU
+ bin\x86\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ portable
+ AnyCPU
+ false
+ prompt
+ true
+ Latest
+
+
+ x86
+ bin\x86\Release
+ bin\x86\Release\FFImageLoading.Forms.Platform.xml
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ x86
+ false
+ prompt
+ true
+ Latest
+
+
+
+
+
+
+
+
+ {3d6c1f12-68d7-44c2-a7de-8e7942627a01}
+ FFImageLoading.Forms
+
+
+
+
+
+
+
+ 14.0
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Wpf/CachedImageRenderer.cs b/source/FFImageLoading.Forms.Wpf/CachedImageRenderer.cs
new file mode 100644
index 000000000..0c3e66f37
--- /dev/null
+++ b/source/FFImageLoading.Forms.Wpf/CachedImageRenderer.cs
@@ -0,0 +1,350 @@
+using FFImageLoading.Extensions;
+using FFImageLoading.Forms.Args;
+using FFImageLoading.Helpers;
+using FFImageLoading.Work;
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.WPF;
+using Image = System.Windows.Controls.Image;
+using Size = Xamarin.Forms.Size;
+
+namespace FFImageLoading.Forms.Platform
+{
+ ///
+ /// CachedImage Implementation
+ ///
+ [Preserve(AllMembers = true)]
+ public class CachedImageRenderer : ViewRenderer
+ {
+ [RenderWith(typeof(CachedImageRenderer))]
+ internal class _CachedImageRenderer
+ {
+ }
+
+ bool _isSizeSet;
+ private bool _measured;
+ private IScheduledWork _currentTask;
+ private ImageSourceBinding _lastImageSource;
+ private bool _isDisposed = false;
+
+ ///
+ /// Used for registration with dependency service
+ ///
+ public static void Init()
+ {
+ CachedImage.IsRendererInitialized = true;
+#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
+ ScaleHelper.InitAsync();
+#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
+ }
+
+ public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint)
+ {
+ var bitmapSource = Control.Source as BitmapSource;
+
+ if (bitmapSource == null)
+ return new SizeRequest();
+
+ _measured = true;
+
+ return new SizeRequest(new Size()
+ {
+ Width = bitmapSource.PixelWidth,
+ Height = bitmapSource.PixelHeight
+ });
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ base.OnElementChanged(e);
+
+ if (Control == null && Element != null && !_isDisposed)
+ {
+ var control = new Image()
+ {
+ Stretch = GetStretch(Aspect.AspectFill),
+ };
+ control.Loaded += OnImageOpened;
+ SetNativeControl(control);
+
+ Control.HorizontalAlignment = HorizontalAlignment.Center;
+ Control.VerticalAlignment = VerticalAlignment.Center;
+ }
+
+ if (e.OldElement != null)
+ {
+ e.OldElement.InternalReloadImage = null;
+ e.OldElement.InternalCancel = null;
+ e.OldElement.InternalGetImageAsJPG = null;
+ e.OldElement.InternalGetImageAsPNG = null;
+ }
+
+ if (e.NewElement != null)
+ {
+ _isSizeSet = false;
+ e.NewElement.InternalReloadImage = new Action(ReloadImage);
+ e.NewElement.InternalCancel = new Action(CancelIfNeeded);
+ e.NewElement.InternalGetImageAsJPG = new Func>(GetImageAsJpgAsync);
+ e.NewElement.InternalGetImageAsPNG = new Func>(GetImageAsPngAsync);
+
+ UpdateAspect();
+ UpdateImage(Control, Element, e.OldElement);
+ }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (!_isDisposed)
+ {
+ _isDisposed = true;
+ if (Control != null)
+ {
+ Control.Loaded -= OnImageOpened;
+ }
+ CancelIfNeeded();
+ }
+
+ base.Dispose(disposing);
+ }
+
+ protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ base.OnElementPropertyChanged(sender, e);
+
+ if (e.PropertyName == CachedImage.SourceProperty.PropertyName)
+ {
+ UpdateImage(Control, Element, null);
+ }
+ else if (e.PropertyName == CachedImage.AspectProperty.PropertyName)
+ {
+ UpdateAspect();
+ }
+ }
+
+ void OnImageOpened(object sender, RoutedEventArgs routedEventArgs)
+ {
+ if (_measured)
+ {
+ ((IVisualElementController)Element)?.InvalidateMeasure(Xamarin.Forms.Internals.InvalidationTrigger.RendererReady);
+ }
+ }
+
+ async void UpdateImage(Image imageView, CachedImage image, CachedImage previousImage)
+ {
+ CancelIfNeeded();
+
+ if (image == null || imageView == null || _isDisposed)
+ return;
+
+ var ffSource = await ImageSourceBinding.GetImageSourceBinding(image.Source, image).ConfigureAwait(false);
+ if (ffSource == null)
+ {
+ if (_lastImageSource == null)
+ return;
+
+ _lastImageSource = null;
+ imageView.Source = null;
+ return;
+ }
+
+ if (previousImage != null && !ffSource.Equals(_lastImageSource))
+ {
+ _lastImageSource = null;
+ imageView.Source = null;
+ }
+
+ image.SetIsLoading(true);
+
+ var placeholderSource = await ImageSourceBinding.GetImageSourceBinding(image.LoadingPlaceholder, image).ConfigureAwait(false);
+ var errorPlaceholderSource = await ImageSourceBinding.GetImageSourceBinding(image.ErrorPlaceholder, image).ConfigureAwait(false);
+ TaskParameter imageLoader;
+ image.SetupOnBeforeImageLoading(out imageLoader, ffSource, placeholderSource, errorPlaceholderSource);
+
+ if (imageLoader != null)
+ {
+ var finishAction = imageLoader.OnFinish;
+ var sucessAction = imageLoader.OnSuccess;
+
+ imageLoader.Finish((work) =>
+ {
+ finishAction?.Invoke(work);
+ ImageLoadingSizeChanged(image, false);
+ });
+
+ imageLoader.Success((imageInformation, loadingResult) =>
+ {
+ sucessAction?.Invoke(imageInformation, loadingResult);
+ _lastImageSource = ffSource;
+ });
+
+ imageLoader.LoadingPlaceholderSet(() => ImageLoadingSizeChanged(image, true));
+
+ if (!_isDisposed)
+ _currentTask = imageLoader.Into(imageView);
+ }
+ }
+
+ void UpdateAspect()
+ {
+ if (Control == null || Element == null || _isDisposed)
+ return;
+ Control.Stretch = GetStretch(Element.Aspect);
+ }
+
+ static Stretch GetStretch(Aspect aspect)
+ {
+ switch (aspect)
+ {
+ case Aspect.AspectFill:
+ return Stretch.UniformToFill;
+ case Aspect.Fill:
+ return Stretch.Fill;
+ default:
+ return Stretch.Uniform;
+ }
+ }
+
+ async void ImageLoadingSizeChanged(CachedImage element, bool isLoading)
+ {
+ if (element != null && !_isDisposed)
+ {
+ await ImageService.Instance.Config.MainThreadDispatcher.PostAsync(() =>
+ {
+ if (!isLoading || !_isSizeSet)
+ {
+ ((IVisualElementController)element)?.InvalidateMeasure(Xamarin.Forms.Internals.InvalidationTrigger.RendererReady);
+ _isSizeSet = true;
+ }
+
+ if (!isLoading)
+ element.SetIsLoading(isLoading);
+ });
+ }
+ }
+
+ void ReloadImage()
+ {
+ UpdateImage(Control, Element, null);
+ }
+
+ void CancelIfNeeded()
+ {
+ try
+ {
+ _currentTask?.Cancel();
+ }
+ catch (Exception) { }
+ }
+
+ Task GetImageAsJpgAsync(GetImageAsJpgArgs args)
+ {
+ return GetImageAsByteAsync(new JpegBitmapEncoder(), args.Quality, args.DesiredWidth, args.DesiredHeight);
+ }
+
+ Task GetImageAsPngAsync(GetImageAsPngArgs args)
+ {
+ return GetImageAsByteAsync(new PngBitmapEncoder(), 90, args.DesiredWidth, args.DesiredHeight);
+ }
+
+ async Task GetImageAsByteAsync(BitmapEncoder encoder, int quality, int desiredWidth, int desiredHeight)
+ {
+ if (Control?.Source == null)
+ return null;
+
+ var bitmap = Control.Source as WriteableBitmap;
+
+ if (bitmap == null)
+ return null;
+
+ //byte[] pixels = null;
+ //uint pixelsWidth = (uint)bitmap.PixelWidth;
+ //uint pixelsHeight = (uint)bitmap.PixelHeight;
+
+ WriteableBitmap source;
+ if (desiredWidth != 0 || desiredHeight != 0)
+ {
+ double widthRatio = (double)desiredWidth / (double)bitmap.PixelWidth;
+ double heightRatio = (double)desiredHeight / (double)bitmap.PixelHeight;
+
+ double scaleRatio = Math.Min(widthRatio, heightRatio);
+
+ if (desiredWidth == 0)
+ scaleRatio = heightRatio;
+
+ if (desiredHeight == 0)
+ scaleRatio = widthRatio;
+
+ var tr = new TransformedBitmap(bitmap, new ScaleTransform(scaleRatio, scaleRatio));
+
+ var bmp = new MemoryStream();
+ BitmapEncoder enc = new BmpBitmapEncoder();
+ enc.Frames.Add(BitmapFrame.Create(tr));
+ enc.Save(bmp);
+ bmp.Seek(0, SeekOrigin.Begin);
+ //pixels = new byte[bmp.Length];
+ source = await bmp.ToWriteableBitmap();
+ //await bmp.ReadAsync(pixels, 0, (int)bmp.Length);
+ }
+ else
+ {
+ //pixels = await GetBytesFromBitmapAsync(bitmap);
+ source = bitmap;
+ }
+
+ using (var stream = new MemoryStream())
+ {
+ if (encoder is JpegBitmapEncoder enc)
+ {
+ //var propertySet = new BitmapPropertySet();
+ //var qualityValue = new BitmapTypedValue((double)quality / 100d, Windows.Foundation.PropertyType.Single);
+ //propertySet.Add("ImageQuality", qualityValue);
+
+ //encoder = await BitmapEncoder.CreateAsync(format, stream, propertySet);
+ enc.QualityLevel = quality;
+ }
+ //else
+ //{
+ // encoder = await BitmapEncoder.CreateAsync(format, stream);
+ //}
+
+ encoder.Frames.Add(BitmapFrame.Create(source));
+ encoder.Save(stream);
+ //encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied,
+ // pixelsWidth, pixelsHeight, 96, 96, pixels);
+ //await encoder.FlushAsync();
+ stream.Seek(0,SeekOrigin.Begin);
+
+ var bytes = new byte[stream.Length];
+ await stream.ReadAsync(bytes, 0,bytes.Length);
+
+ return bytes;
+ }
+ }
+
+ async Task GetBytesFromBitmapAsync(WriteableBitmap bitmap)
+ {
+ var width = bitmap.PixelWidth;
+ var height = bitmap.PixelHeight;
+ var stride = width * ((bitmap.Format.BitsPerPixel + 7) / 8);
+
+ var bitmapData = new byte[height * stride];
+
+ bitmap.CopyPixels(bitmapData, stride, 0);
+ return bitmapData;
+ //byte[] tempPixels;
+ //using (var sourceStream = bitmap.PixelBuffer.AsStream())
+ //{
+ // tempPixels = new byte[sourceStream.Length];
+ // await sourceStream.ReadAsync(tempPixels, 0, tempPixels.Length).ConfigureAwait(false);
+ //}
+
+ //return tempPixels;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Forms.Wpf/FFImageLoading.Forms.Wpf.csproj b/source/FFImageLoading.Forms.Wpf/FFImageLoading.Forms.Wpf.csproj
new file mode 100644
index 000000000..4e93e1ada
--- /dev/null
+++ b/source/FFImageLoading.Forms.Wpf/FFImageLoading.Forms.Wpf.csproj
@@ -0,0 +1,67 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {0AA5A427-ADC8-4685-AA8C-FEA26EBD31F5}
+ Library
+ Properties
+ FFImageLoading.Forms.Platform
+ FFImageLoading.Forms.Platform
+ v4.7.1
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0e77b5d3-dba5-46d3-af16-7c209c952bd0}
+ FFImageLoading.Forms
+
+
+
+
+ 3.6.0.22065
+
+
+ 3.6.0.22065
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Wpf/ImageSourceBinding.cs b/source/FFImageLoading.Forms.Wpf/ImageSourceBinding.cs
new file mode 100644
index 000000000..1474281e4
--- /dev/null
+++ b/source/FFImageLoading.Forms.Wpf/ImageSourceBinding.cs
@@ -0,0 +1,150 @@
+using System;
+using Xamarin.Forms;
+using System.Threading.Tasks;
+using System.IO;
+using System.Threading;
+
+namespace FFImageLoading.Forms.Platform
+{
+ public class ImageSourceBinding : IImageSourceBinding
+ {
+ public ImageSourceBinding(FFImageLoading.Work.ImageSource imageSource, string path)
+ {
+ ImageSource = imageSource;
+ Path = path;
+ }
+
+ public ImageSourceBinding(Func> stream)
+ {
+ ImageSource = FFImageLoading.Work.ImageSource.Stream;
+ Stream = stream;
+ }
+
+ public FFImageLoading.Work.ImageSource ImageSource { get; private set; }
+
+ public string Path { get; private set; }
+
+ public Func> Stream { get; private set; }
+
+ internal static async Task GetImageSourceBinding(ImageSource source, CachedImage element)
+ {
+ if (source == null)
+ {
+ return null;
+ }
+
+ var uriImageSource = source as UriImageSource;
+ if (uriImageSource != null)
+ {
+ var uri = uriImageSource.Uri?.OriginalString;
+ if (string.IsNullOrWhiteSpace(uri))
+ return null;
+
+ return new ImageSourceBinding(Work.ImageSource.Url, uri);
+ }
+
+ var fileImageSource = source as FileImageSource;
+ if (fileImageSource != null)
+ {
+ if (string.IsNullOrWhiteSpace(fileImageSource.File))
+ return null;
+
+ if (!string.IsNullOrWhiteSpace(System.IO.Path.GetDirectoryName(fileImageSource.File)) && File.Exists(fileImageSource.File))
+ return new ImageSourceBinding(FFImageLoading.Work.ImageSource.Filepath, fileImageSource.File);
+
+ return new ImageSourceBinding(FFImageLoading.Work.ImageSource.ApplicationBundle, fileImageSource.File);
+ }
+
+ var streamImageSource = source as StreamImageSource;
+ if (streamImageSource != null)
+ {
+ return new ImageSourceBinding(streamImageSource.Stream);
+ }
+
+ var embeddedResoureSource = source as EmbeddedResourceImageSource;
+ if (embeddedResoureSource != null)
+ {
+ var uri = embeddedResoureSource.Uri?.OriginalString;
+ if (string.IsNullOrWhiteSpace(uri))
+ return null;
+
+ return new ImageSourceBinding(FFImageLoading.Work.ImageSource.EmbeddedResource, uri);
+ }
+
+ var dataUrlSource = source as DataUrlImageSource;
+ if (dataUrlSource != null)
+ {
+ if (string.IsNullOrWhiteSpace(dataUrlSource.DataUrl))
+ return null;
+
+ return new ImageSourceBinding(FFImageLoading.Work.ImageSource.Url, dataUrlSource.DataUrl);
+ }
+
+ var vectorSource = source as IVectorImageSource;
+ if (vectorSource != null)
+ {
+ if (vectorSource.VectorHeight == 0 && vectorSource.VectorHeight == 0)
+ {
+ if (element.Height > 0d && !double.IsInfinity(element.Height))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorHeight = (int)element.Height;
+ }
+ else if (element.Width > 0d && !double.IsInfinity(element.Width))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorWidth = (int)element.Width;
+ }
+ else if (element.HeightRequest > 0d && !double.IsInfinity(element.HeightRequest))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorHeight = (int)element.HeightRequest;
+ }
+ else if (element.WidthRequest > 0d && !double.IsInfinity(element.WidthRequest))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorWidth = (int)element.WidthRequest;
+ }
+ else if (element.MinimumHeightRequest > 0d && !double.IsInfinity(element.MinimumHeightRequest))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorHeight = (int)element.MinimumHeightRequest;
+ }
+ else if (element.MinimumWidthRequest > 0d && !double.IsInfinity(element.MinimumWidthRequest))
+ {
+ vectorSource.UseDipUnits = true;
+ vectorSource.VectorWidth = (int)element.MinimumWidthRequest;
+ }
+ }
+
+ return await GetImageSourceBinding(vectorSource.ImageSource, element).ConfigureAwait(false);
+ }
+
+ throw new NotImplementedException("ImageSource type not supported");
+ }
+
+ public override bool Equals(object obj)
+ {
+ var item = obj as ImageSourceBinding;
+
+ if (item == null)
+ {
+ return false;
+ }
+
+ return this.ImageSource == item.ImageSource && this.Path == item.Path && this.Stream == item.Stream;
+ }
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ int hash = 17;
+ hash = hash * 23 + this.ImageSource.GetHashCode();
+ hash = hash * 23 + Path.GetHashCode();
+ hash = hash * 23 + Stream.GetHashCode();
+ return hash;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/FFImageLoading.Forms.Wpf/Properties/AssemblyInfo.cs b/source/FFImageLoading.Forms.Wpf/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..daf5ac6f9
--- /dev/null
+++ b/source/FFImageLoading.Forms.Wpf/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("FFImageLoading.Forms.Wpf")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("FFImageLoading.Forms.Wpf")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0aa5a427-adc8-4685-aa8c-fea26ebd31f5")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/source/FFImageLoading.Forms/FFImageLoading.Forms.csproj b/source/FFImageLoading.Forms/FFImageLoading.Forms.csproj
index 371ccc11a..f91b19d4e 100644
--- a/source/FFImageLoading.Forms/FFImageLoading.Forms.csproj
+++ b/source/FFImageLoading.Forms/FFImageLoading.Forms.csproj
@@ -38,9 +38,7 @@
-
-
diff --git a/source/FFImageLoading.Mac/FFImageLoading.Mac.csproj b/source/FFImageLoading.Mac/FFImageLoading.Mac.csproj
index ca1a19ddf..97dd9ec11 100644
--- a/source/FFImageLoading.Mac/FFImageLoading.Mac.csproj
+++ b/source/FFImageLoading.Mac/FFImageLoading.Mac.csproj
@@ -1,97 +1,90 @@
-
-
-
- Debug
- AnyCPU
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading
- FFImageLoading.Platform
- v2.0
- Xamarin.Mac
- Resources
- 1591
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__MACOS__
- prompt
- 4
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- Latest
-
-
- true
- portable
- true
- bin\Release
- __MACOS__
- prompt
- 4
- bin\Release\FFImageLoading.Platform.xml
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- __MACOS__
- Latest
-
-
-
-
-
-
-
-
- ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.Mac20\WebP.Mac.dll
-
-
-
-
-
-
- Extensions\TaskParameterExtensions.cs
-
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading
+ FFImageLoading.Platform
+ v2.0
+ Xamarin.Mac
+ Resources
+ 1591
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__MACOS__
+ prompt
+ 4
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ Latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __MACOS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Platform.xml
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ __MACOS__
+ Latest
+
+
+
+
+
+
+
+
+ ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.Mac20\WebP.Mac.dll
+
+
+
+
+
+
+ Extensions\TaskParameterExtensions.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Mock/FFImageLoading.Mock.csproj b/source/FFImageLoading.Mock/FFImageLoading.Mock.csproj
index d10558063..3588e248c 100644
--- a/source/FFImageLoading.Mock/FFImageLoading.Mock.csproj
+++ b/source/FFImageLoading.Mock/FFImageLoading.Mock.csproj
@@ -33,8 +33,4 @@
-
-
-
-
diff --git a/source/FFImageLoading.Svg.Droid/FFImageLoading.Svg.Droid.csproj b/source/FFImageLoading.Svg.Droid/FFImageLoading.Svg.Droid.csproj
index ae8b2efbd..a7456ad58 100644
--- a/source/FFImageLoading.Svg.Droid/FFImageLoading.Svg.Droid.csproj
+++ b/source/FFImageLoading.Svg.Droid/FFImageLoading.Svg.Droid.csproj
@@ -1,74 +1,64 @@
-
-
-
- Debug
- AnyCPU
- {0BF13419-BA9C-4004-812C-EB22E41927D9}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg.Platform
- FFImageLoading.Svg.Platform
- v9.0
- Resources\Resource.designer.cs
- Resource
- Resources
- Assets
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Release
- DEBUG;ANDROID;__ANDROID__
- prompt
- 4
- None
- DEBUG;ANDROID;__ANDROID__
- latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Platform.xml
- true
- false
- ANDROID;__ANDROID__
- latest
-
-
-
-
-
-
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\MonoAndroid\SkiaSharp.dll
-
-
-
-
-
- MvxSvgCachedImageView.cs
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {0BF13419-BA9C-4004-812C-EB22E41927D9}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg.Platform
+ FFImageLoading.Svg.Platform
+ v9.0
+ Resources\Resource.designer.cs
+ Resource
+ Resources
+ Assets
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Release
+ DEBUG;ANDROID;__ANDROID__
+ prompt
+ 4
+ None
+ DEBUG;ANDROID;__ANDROID__
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Platform.xml
+ true
+ false
+ ANDROID;__ANDROID__
+ latest
+
+
+
+
+
+
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\MonoAndroid\SkiaSharp.dll
+
+
+
+
+
+ MvxSvgCachedImageView.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Forms.Droid/FFImageLoading.Svg.Forms.Droid.csproj b/source/FFImageLoading.Svg.Forms.Droid/FFImageLoading.Svg.Forms.Droid.csproj
index d64fd3b37..fd2c998ed 100644
--- a/source/FFImageLoading.Svg.Forms.Droid/FFImageLoading.Svg.Forms.Droid.csproj
+++ b/source/FFImageLoading.Svg.Forms.Droid/FFImageLoading.Svg.Forms.Droid.csproj
@@ -1,255 +1,239 @@
-
-
-
-
- Debug
- AnyCPU
- {CCA629E9-55E3-414A-91AF-79A0CB845CD5}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg.Forms
- FFImageLoading.Svg.Forms
- v9.0
- Resources\Resource.designer.cs
- Resource
- Resources
- Assets
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Release
- DEBUG;
- prompt
- 4
- None
- latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Forms.xml
- true
- false
- latest
-
-
-
-
-
-
-
-
- ..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Fragment.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Media.Compat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Transition.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Transition.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v4.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.CardView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.Palette.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Animated.Vector.Drawable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.AppCompat.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Design.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Design.dll
-
-
- ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.MediaRouter.dll
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\MonoAndroid\SkiaSharp.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\FormsViewGroup.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.Android.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Xaml.dll
-
-
-
- ..\..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll
-
-
- ..\..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Collections.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Collections.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll
-
-
- ..\..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Interpolator.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll
-
-
- ..\..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Print.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Print.dll
-
-
- ..\..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll
-
-
- ..\..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CustomView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.Loader.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Loader.dll
-
-
- ..\..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll
-
-
- ..\..\packages\Xamarin.Android.Support.ViewPager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll
-
-
- ..\..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomTabs.dll
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
- {7014FEB6-0338-4A47-B600-4A1B48127C5C}
- FFImageLoading.Forms.Droid
-
-
- {0BF13419-BA9C-4004-812C-EB22E41927D9}
- FFImageLoading.Svg.Droid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {CCA629E9-55E3-414A-91AF-79A0CB845CD5}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms
+ v9.0
+ Resources\Resource.designer.cs
+ Resource
+ Resources
+ Assets
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Release
+ DEBUG;
+ prompt
+ 4
+ None
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Forms.xml
+ true
+ false
+ latest
+
+
+
+
+
+
+
+
+ ..\..\packages\Xamarin.Android.Arch.Core.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Common.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Annotations.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Annotations.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.Common.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Common.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.Runtime.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Compat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Core.UI.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.UI.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Core.Utils.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Core.Utils.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Fragment.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Fragment.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Media.Compat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Media.Compat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Transition.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Transition.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v4.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v4.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.CardView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.CardView.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.Palette.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.Palette.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.RecyclerView.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Vector.Drawable.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Animated.Vector.Drawable.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.AppCompat.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.AppCompat.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Design.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Design.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.v7.MediaRouter.dll
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\MonoAndroid\SkiaSharp.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\FormsViewGroup.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.Android.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\MonoAndroid90\Xamarin.Forms.Xaml.dll
+
+
+
+ ..\..\packages\Xamarin.Android.Arch.Core.Runtime.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Core.Runtime.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.Core.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.Core.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.LiveData.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.LiveData.dll
+
+
+ ..\..\packages\Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.1\lib\monoandroid90\Xamarin.Android.Arch.Lifecycle.ViewModel.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Collections.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Collections.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.CursorAdapter.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CursorAdapter.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.DocumentFile.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DocumentFile.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Interpolator.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Interpolator.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.LocalBroadcastManager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.LocalBroadcastManager.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Print.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Print.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.VersionedParcelable.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.VersionedParcelable.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.AsyncLayoutInflater.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.AsyncLayoutInflater.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.CustomView.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomView.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.CoordinaterLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CoordinaterLayout.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.DrawerLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.DrawerLayout.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.Loader.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.Loader.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.SlidingPaneLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SlidingPaneLayout.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.SwipeRefreshLayout.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.SwipeRefreshLayout.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.ViewPager.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.ViewPager.dll
+
+
+ ..\..\packages\Xamarin.Android.Support.CustomTabs.28.0.0.1\lib\monoandroid90\Xamarin.Android.Support.CustomTabs.dll
+
+
+
+
+
+
+
+ {0BF13419-BA9C-4004-812C-EB22E41927D9}
+ FFImageLoading.Svg.Droid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Forms.Mac/FFImageLoading.Svg.Forms.Mac.csproj b/source/FFImageLoading.Svg.Forms.Mac/FFImageLoading.Svg.Forms.Mac.csproj
index b0645aee9..57bb92193 100644
--- a/source/FFImageLoading.Svg.Forms.Mac/FFImageLoading.Svg.Forms.Mac.csproj
+++ b/source/FFImageLoading.Svg.Forms.Mac/FFImageLoading.Svg.Forms.Mac.csproj
@@ -1,109 +1,95 @@
-
-
-
-
-
- Debug
- AnyCPU
- {411B82F4-4F6B-49A0-8E28-260FB65B386F}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg.Forms
- FFImageLoading.Svg.Forms
- v2.0
- Xamarin.Mac
- Resources
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__MACOS__
- prompt
- 4
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- latest
-
-
- true
- portable
- true
- bin\Release
- __MACOS__
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Forms.xml
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- __MACOS__
- latest
-
-
-
-
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.Mac20\SkiaSharp.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {EC240D61-70B0-4561-BB43-F8FB8FD11BF2}
- FFImageLoading.Forms.Mac
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}
- FFImageLoading.Svg.Mac
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Debug
+ AnyCPU
+ {411B82F4-4F6B-49A0-8E28-260FB65B386F}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms
+ v2.0
+ Xamarin.Mac
+ Resources
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__MACOS__
+ prompt
+ 4
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __MACOS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Forms.xml
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ __MACOS__
+ latest
+
+
+
+
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.Mac20\SkiaSharp.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
+
+
+
+
+
+
+
+ {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}
+ FFImageLoading.Svg.Mac
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Forms.Tizen/FFImageLoading.Svg.Forms.Tizen.csproj b/source/FFImageLoading.Svg.Forms.Tizen/FFImageLoading.Svg.Forms.Tizen.csproj
index f3de5cf01..e38635679 100644
--- a/source/FFImageLoading.Svg.Forms.Tizen/FFImageLoading.Svg.Forms.Tizen.csproj
+++ b/source/FFImageLoading.Svg.Forms.Tizen/FFImageLoading.Svg.Forms.Tizen.csproj
@@ -32,9 +32,6 @@
-
-
-
diff --git a/source/FFImageLoading.Svg.Forms.Touch/FFImageLoading.Svg.Forms.Touch.csproj b/source/FFImageLoading.Svg.Forms.Touch/FFImageLoading.Svg.Forms.Touch.csproj
index 61a639e19..02fa4c64a 100644
--- a/source/FFImageLoading.Svg.Forms.Touch/FFImageLoading.Svg.Forms.Touch.csproj
+++ b/source/FFImageLoading.Svg.Forms.Touch/FFImageLoading.Svg.Forms.Touch.csproj
@@ -1,97 +1,83 @@
-
-
-
- Debug
- AnyCPU
- {A73A1EA8-E709-474D-9102-DCB2482950AB}
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg.Forms
- FFImageLoading.Svg.Forms
- Resources
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- prompt
- 4
- SdkOnly
- HttpClientHandler
- Default
- DEBUG;__UNIFIED__;__MOBILE__;__IOS__
- latest
-
-
- true
- portable
- true
- bin\Release
- __UNIFIED__;__MOBILE__;__IOS__
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Forms.xml
- SdkOnly
- HttpClientHandler
- Default
- __UNIFIED__;__MOBILE__;__IOS__
- latest
-
-
-
-
-
-
-
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.iOS\SkiaSharp.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
-
-
- ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
- FFImageLoading.Svg.Touch
-
-
- {1E70A5AF-AAFA-4247-8AFE-39CDA73EBCEC}
- FFImageLoading.Forms.Touch
-
-
- {3D6C1F12-68D7-44C2-A7DE-8E7942627A01}
- FFImageLoading.Forms
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {A73A1EA8-E709-474D-9102-DCB2482950AB}
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms
+ Resources
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ prompt
+ 4
+ SdkOnly
+ HttpClientHandler
+ Default
+ DEBUG;__UNIFIED__;__MOBILE__;__IOS__
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __UNIFIED__;__MOBILE__;__IOS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Forms.xml
+ SdkOnly
+ HttpClientHandler
+ Default
+ __UNIFIED__;__MOBILE__;__IOS__
+ latest
+
+
+
+
+
+
+
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.iOS\SkiaSharp.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
+
+
+ ..\..\packages\Xamarin.Forms.3.6.0.344457\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
+
+
+
+
+
+
+
+ {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
+ FFImageLoading.Svg.Touch
+ false
+ false
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Forms.Windows/FFImageLoading.Svg.Forms.Windows.csproj b/source/FFImageLoading.Svg.Forms.Windows/FFImageLoading.Svg.Forms.Windows.csproj
index b51b4dd7f..bb956b44b 100644
--- a/source/FFImageLoading.Svg.Forms.Windows/FFImageLoading.Svg.Forms.Windows.csproj
+++ b/source/FFImageLoading.Svg.Forms.Windows/FFImageLoading.Svg.Forms.Windows.csproj
@@ -1,159 +1,147 @@
-
-
-
-
- Debug
- AnyCPU
- {6D4F9DFA-012E-4966-A6E8-01C3464B537E}
- Library
- Properties
- FFImageLoading.Svg.Forms
- FFImageLoading.Svg.Forms
- FFImageLoading.Svg.Forms.Windows
- en-US
- PackageReference
- UAP
- 10.0.17134.0
- 10.0.16299.0
- 14
- latest
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
-
-
- AnyCPU
- true
- portable
- false
- bin\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- prompt
- 4
-
-
- AnyCPU
- true
- portable
- true
- bin\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Forms.xml
-
-
- x86
- true
- portable
- bin\x86\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- ;2008
- x86
- false
- prompt
-
-
- x86
- bin\x86\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- ;2008
- true
- portable
- x86
- false
- prompt
-
-
- ARM
- true
- portable
- bin\ARM\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- ;2008
- ARM
- false
- prompt
-
-
- ARM
- bin\ARM\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- ;2008
- true
- portable
- ARM
- false
- prompt
-
-
- AnyCPU
- true
- portable
- bin\x64\Debug
- DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- ;2008
- AnyCPU
- false
- prompt
-
-
- AnyCPU
- bin\x64\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- ;2008
- true
- portable
- AnyCPU
- false
- prompt
-
-
-
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
- {3d6c1f12-68d7-44c2-a7de-8e7942627a01}
- FFImageLoading.Forms
-
-
- {5140739d-209c-41a7-9503-5d5733f4c091}
- FFImageLoading.Svg.Windows
-
-
- {610543a5-d06f-4bca-9443-e6addff06c71}
- FFImageLoading.Windows
-
-
-
-
- 6.1.5
-
-
- 1.68.0
-
-
- 3.6.0.344457
-
-
-
-
- 14.0
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {6D4F9DFA-012E-4966-A6E8-01C3464B537E}
+ Library
+ Properties
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms
+ FFImageLoading.Svg.Forms.Windows
+ en-US
+ PackageReference
+ UAP
+ 10.0.17134.0
+ 10.0.16299.0
+ 14
+ latest
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
+
+
+ AnyCPU
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ prompt
+ 4
+
+
+ AnyCPU
+ true
+ portable
+ true
+ bin\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Forms.xml
+
+
+ x86
+ true
+ portable
+ bin\x86\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ ;2008
+ x86
+ false
+ prompt
+
+
+ x86
+ bin\x86\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ ;2008
+ true
+ portable
+ x86
+ false
+ prompt
+
+
+ ARM
+ true
+ portable
+ bin\ARM\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ ;2008
+ ARM
+ false
+ prompt
+
+
+ ARM
+ bin\ARM\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ ;2008
+ true
+ portable
+ ARM
+ false
+ prompt
+
+
+ AnyCPU
+ true
+ portable
+ bin\x64\Debug
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ ;2008
+ AnyCPU
+ false
+ prompt
+
+
+ AnyCPU
+ bin\x64\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ ;2008
+ true
+ portable
+ AnyCPU
+ false
+ prompt
+
+
+
+
+
+
+
+ {5140739d-209c-41a7-9503-5d5733f4c091}
+ FFImageLoading.Svg.Windows
+
+
+
+
+ 6.1.5
+
+
+ 1.68.0
+
+
+ 3.6.0.344457
+
+
+
+
+ 14.0
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Forms.Windows/Properties/FFImageLoading.Svg.Forms.Windows.rd.xml b/source/FFImageLoading.Svg.Forms.Windows/Properties/FFImageLoading.Svg.Forms.Windows.rd.xml
index e00028317..f5a1a8202 100644
--- a/source/FFImageLoading.Svg.Forms.Windows/Properties/FFImageLoading.Svg.Forms.Windows.rd.xml
+++ b/source/FFImageLoading.Svg.Forms.Windows/Properties/FFImageLoading.Svg.Forms.Windows.rd.xml
@@ -1,33 +1,33 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/source/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj b/source/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj
index d077040b7..0f5be02be 100644
--- a/source/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj
+++ b/source/FFImageLoading.Svg.Forms/FFImageLoading.Svg.Forms.csproj
@@ -38,11 +38,7 @@
-
-
-
-
diff --git a/source/FFImageLoading.Svg.Mac/FFImageLoading.Svg.Mac.csproj b/source/FFImageLoading.Svg.Mac/FFImageLoading.Svg.Mac.csproj
index 5d9311a09..32c315ad5 100644
--- a/source/FFImageLoading.Svg.Mac/FFImageLoading.Svg.Mac.csproj
+++ b/source/FFImageLoading.Svg.Mac/FFImageLoading.Svg.Mac.csproj
@@ -1,85 +1,77 @@
-
-
-
- Debug
- AnyCPU
- {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg
- FFImageLoading.Svg.Platform
- v2.0
- Xamarin.Mac
- Resources
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__MACOS__
- prompt
- 4
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- latest
-
-
- true
- portable
- true
- bin\Release
- __MACOS__
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Platform.xml
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- __MACOS__
- latest
-
-
-
-
-
-
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.Mac20\SkiaSharp.dll
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {EAEFDF02-E6BB-4ACD-925A-F8BCCD479DA3}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg
+ FFImageLoading.Svg.Platform
+ v2.0
+ Xamarin.Mac
+ Resources
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__MACOS__
+ prompt
+ 4
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __MACOS__
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Platform.xml
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ __MACOS__
+ latest
+
+
+
+
+
+
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.Mac20\SkiaSharp.dll
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Tizen/FFImageLoading.Svg.Tizen.csproj b/source/FFImageLoading.Svg.Tizen/FFImageLoading.Svg.Tizen.csproj
index 78aeca7fd..bfb88e5ed 100644
--- a/source/FFImageLoading.Svg.Tizen/FFImageLoading.Svg.Tizen.csproj
+++ b/source/FFImageLoading.Svg.Tizen/FFImageLoading.Svg.Tizen.csproj
@@ -31,11 +31,6 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Touch/FFImageLoading.Svg.Touch.csproj b/source/FFImageLoading.Svg.Touch/FFImageLoading.Svg.Touch.csproj
index c058bd7d1..75932c852 100644
--- a/source/FFImageLoading.Svg.Touch/FFImageLoading.Svg.Touch.csproj
+++ b/source/FFImageLoading.Svg.Touch/FFImageLoading.Svg.Touch.csproj
@@ -1,74 +1,70 @@
-
-
-
- Debug
- AnyCPU
- {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Svg.Platform
- FFImageLoading.Svg.Platform
- Resources
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Release
- prompt
- 4
-
-
-
- DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
- latest
-
-
- true
- portable
- true
- bin\Release
- __UNIFIED__;__MOBILE__;__IOS__;
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Platform.xml
-
-
-
- __UNIFIED__;__MOBILE__;__IOS__;
- latest
-
-
-
-
-
-
-
-
-
- ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.iOS\SkiaSharp.dll
-
-
-
-
-
- MvxSvgCachedImageView.cs
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {AA5B8D71-77C6-4341-BFBA-EBB7B8FAF5AC}
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Svg.Platform
+ FFImageLoading.Svg.Platform
+ Resources
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Release
+ prompt
+ 4
+
+
+
+
+
+
+ DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __UNIFIED__;__MOBILE__;__IOS__;
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Platform.xml
+
+
+
+
+
+
+ __UNIFIED__;__MOBILE__;__IOS__;
+ latest
+
+
+
+
+
+
+
+
+
+ ..\..\packages\SkiaSharp.1.68.0\lib\Xamarin.iOS\SkiaSharp.dll
+
+
+
+
+
+ MvxSvgCachedImageView.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Windows/FFImageLoading.Svg.Windows.csproj b/source/FFImageLoading.Svg.Windows/FFImageLoading.Svg.Windows.csproj
index 0f874654f..9468a0387 100644
--- a/source/FFImageLoading.Svg.Windows/FFImageLoading.Svg.Windows.csproj
+++ b/source/FFImageLoading.Svg.Windows/FFImageLoading.Svg.Windows.csproj
@@ -1,146 +1,136 @@
-
-
-
-
- Debug
- AnyCPU
- {5140739D-209C-41A7-9503-5D5733F4C091}
- Library
- Properties
- FFImageLoading.Svg.Platform
- FFImageLoading.Svg.Platform
- FFImageLoading.Svg.Platform.Windows
- en-US
- UAP
- 10.0.17134.0
- 10.0.16299.0
- 14
- PackageReference
- latest
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
- 1701;1702;1705;1591;1587;NU1605
-
-
- AnyCPU
- true
- portable
- false
- bin\Debug
- TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
- prompt
- 4
-
-
- AnyCPU
- true
- portable
- true
- bin\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
- prompt
- 4
- bin\Release\FFImageLoading.Svg.Platform.xml
-
-
- x86
- true
- portable
- bin\x86\Debug
- TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
- x86
- false
- prompt
-
-
- x86
- bin\x86\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- x86
- false
- prompt
-
-
- ARM
- true
- portable
- bin\ARM\Debug
- TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
- ARM
- false
- prompt
-
-
- ARM
- bin\ARM\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- ARM
- false
- prompt
-
-
- AnyCPU
- true
- portable
- bin\x64\Debug
- TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
- AnyCPU
- false
- prompt
-
-
- AnyCPU
- bin\x64\Release
- TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
- true
- true
- portable
- AnyCPU
- false
- prompt
-
-
-
- MvxSvgCachedImageView.cs
-
-
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
- {610543a5-d06f-4bca-9443-e6addff06c71}
- FFImageLoading.Windows
-
-
-
-
- 6.1.5
-
-
- 1.68.0
-
-
-
-
- 14.0
-
-
-
+
+
+
+
+ Debug
+ AnyCPU
+ {5140739D-209C-41A7-9503-5D5733F4C091}
+ Library
+ Properties
+ FFImageLoading.Svg.Platform
+ FFImageLoading.Svg.Platform
+ FFImageLoading.Svg.Platform.Windows
+ en-US
+ UAP
+ 10.0.17134.0
+ 10.0.16299.0
+ 14
+ PackageReference
+ latest
+ 512
+ {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ AnyCPU
+ true
+ portable
+ false
+ bin\Debug
+ TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
+ prompt
+ 4
+
+
+ AnyCPU
+ true
+ portable
+ true
+ bin\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
+ prompt
+ 4
+ bin\Release\FFImageLoading.Svg.Platform.xml
+
+
+ x86
+ true
+ portable
+ bin\x86\Debug
+ TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
+ x86
+ false
+ prompt
+
+
+ x86
+ bin\x86\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ x86
+ false
+ prompt
+
+
+ ARM
+ true
+ portable
+ bin\ARM\Debug
+ TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
+ ARM
+ false
+ prompt
+
+
+ ARM
+ bin\ARM\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ ARM
+ false
+ prompt
+
+
+ AnyCPU
+ true
+ portable
+ bin\x64\Debug
+ TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;__WINDOWS__;
+ AnyCPU
+ false
+ prompt
+
+
+ AnyCPU
+ bin\x64\Release
+ TRACE;NETFX_CORE;WINDOWS_UWP;__WINDOWS__
+ true
+ true
+ portable
+ AnyCPU
+ false
+ prompt
+
+
+
+ MvxSvgCachedImageView.cs
+
+
+
+
+
+
+ 6.1.5
+
+
+ 1.68.0
+
+
+
+
+ 14.0
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Svg.Windows/Properties/FFImageLoading.Svg.Windows.rd.xml b/source/FFImageLoading.Svg.Windows/Properties/FFImageLoading.Svg.Windows.rd.xml
index a1e5c44cc..dfcef96a4 100644
--- a/source/FFImageLoading.Svg.Windows/Properties/FFImageLoading.Svg.Windows.rd.xml
+++ b/source/FFImageLoading.Svg.Windows/Properties/FFImageLoading.Svg.Windows.rd.xml
@@ -1,33 +1,33 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/source/FFImageLoading.Svg/FFImageLoading.Svg.csproj b/source/FFImageLoading.Svg/FFImageLoading.Svg.csproj
index a3f35fddd..b0d6d9648 100644
--- a/source/FFImageLoading.Svg/FFImageLoading.Svg.csproj
+++ b/source/FFImageLoading.Svg/FFImageLoading.Svg.csproj
@@ -34,8 +34,4 @@
-
-
-
-
diff --git a/source/FFImageLoading.Tizen/FFImageLoading.Tizen.csproj b/source/FFImageLoading.Tizen/FFImageLoading.Tizen.csproj
index 1b1678e47..06c362214 100644
--- a/source/FFImageLoading.Tizen/FFImageLoading.Tizen.csproj
+++ b/source/FFImageLoading.Tizen/FFImageLoading.Tizen.csproj
@@ -29,10 +29,6 @@
-
-
-
-
diff --git a/source/FFImageLoading.Touch/FFImageLoading.Touch.csproj b/source/FFImageLoading.Touch/FFImageLoading.Touch.csproj
index 98603feb7..eeb0a3969 100644
--- a/source/FFImageLoading.Touch/FFImageLoading.Touch.csproj
+++ b/source/FFImageLoading.Touch/FFImageLoading.Touch.csproj
@@ -1,88 +1,78 @@
-
-
-
- Debug
- AnyCPU
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- Library
- FFImageLoading
- Resources
- FFImageLoading.Platform
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__UNIFIED__;__MOBILE__;__IOS__
- prompt
- 4
- false
- Latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- false
- bin\Release\FFImageLoading.Platform.xml
- __UNIFIED__;__MOBILE__;__IOS__
- Latest
-
-
-
-
-
-
-
-
- ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
- Extensions\TaskParameterExtensions.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
+ Library
+ FFImageLoading
+ Resources
+ FFImageLoading.Platform
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__UNIFIED__;__MOBILE__;__IOS__
+ prompt
+ 4
+ false
+ Latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ bin\Release\FFImageLoading.Platform.xml
+ __UNIFIED__;__MOBILE__;__IOS__
+ Latest
+
+
+
+
+
+
+
+
+ ..\..\packages\WebP.Touch.1.0.8\lib\Xamarin.iOS10\WebP.Touch.dll
+
+
+
+
+
+
+
+
+
+
+
+ Extensions\TaskParameterExtensions.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Droid/FFImageLoading.Transformations.Droid.csproj b/source/FFImageLoading.Transformations.Droid/FFImageLoading.Transformations.Droid.csproj
index e9dcbc7f2..2669f8ac1 100644
--- a/source/FFImageLoading.Transformations.Droid/FFImageLoading.Transformations.Droid.csproj
+++ b/source/FFImageLoading.Transformations.Droid/FFImageLoading.Transformations.Droid.csproj
@@ -1,81 +1,71 @@
-
-
-
- Debug
- AnyCPU
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {BD3CEB96-93D6-47BD-9474-01DFCD320897}
- Library
- FFImageLoading.Transformations
- Assets
- Resources
- Resource
- FFImageLoading.Transformations
- v9.0
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- ANDROID;__ANDROID__;
- prompt
- 4
- None
- false
- ANDROID;__ANDROID__;
- latest
-
-
- true
- portable
- true
- bin\Release
- ANDROID;__ANDROID__;
- prompt
- 4
- false
- false
- bin\Release\FFImageLoading.Transformations.xml
- ANDROID;__ANDROID__;
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FlipType.cs
-
-
-
-
- CornerTransformType.cs
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {74BF9402-3E13-4003-8923-BC20A1294CE2}
- FFImageLoading.Droid
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {BD3CEB96-93D6-47BD-9474-01DFCD320897}
+ Library
+ FFImageLoading.Transformations
+ Assets
+ Resources
+ Resource
+ FFImageLoading.Transformations
+ v9.0
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ ANDROID;__ANDROID__;
+ prompt
+ 4
+ None
+ false
+ ANDROID;__ANDROID__;
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ ANDROID;__ANDROID__;
+ prompt
+ 4
+ false
+ false
+ bin\Release\FFImageLoading.Transformations.xml
+ ANDROID;__ANDROID__;
+ latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FlipType.cs
+
+
+
+
+ CornerTransformType.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Mac/FFImageLoading.Transformations.Mac.csproj b/source/FFImageLoading.Transformations.Mac/FFImageLoading.Transformations.Mac.csproj
index 56a4b7e9d..b4fd8e582 100644
--- a/source/FFImageLoading.Transformations.Mac/FFImageLoading.Transformations.Mac.csproj
+++ b/source/FFImageLoading.Transformations.Mac/FFImageLoading.Transformations.Mac.csproj
@@ -1,103 +1,93 @@
-
-
-
- Debug
- AnyCPU
- {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}
- {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- FFImageLoading.Transformations
- FFImageLoading.Transformations
- v2.0
- Xamarin.Mac
- Resources
- 1591
-
-
- true
- portable
- false
- bin\Debug
- DEBUG;__MACOS__
- prompt
- 4
- false
- false
- false
- false
- false
- HttpClientHandler
- None
- None
- None
-
- false
- latest
-
-
- true
- portable
- true
- bin\Release
- __MACOS__
- prompt
- 4
- false
- bin\Release\FFImageLoading.Transformations.xml
- false
- false
- false
- false
- false
- HttpClientHandler
- None
-
- None
- __MACOS__
- false
- anycpu
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CornerTransformType.cs
-
-
- FlipType.cs
-
-
-
-
-
-
- {91825F9F-8F2D-4848-8375-68FCAA8C0DC6}
- FFImageLoading.Mac
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
-
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ {CFDF882F-588F-4CE4-BFBF-9D4E3A991BB0}
+ {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ FFImageLoading.Transformations
+ FFImageLoading.Transformations
+ v2.0
+ Xamarin.Mac
+ Resources
+ 1591
+
+
+ true
+ portable
+ false
+ bin\Debug
+ DEBUG;__MACOS__
+ prompt
+ 4
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+ None
+ None
+
+
+ false
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ __MACOS__
+ prompt
+ 4
+ false
+ bin\Release\FFImageLoading.Transformations.xml
+ false
+ false
+ false
+ false
+ false
+ HttpClientHandler
+ None
+
+
+ None
+ __MACOS__
+ false
+ anycpu
+ latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CornerTransformType.cs
+
+
+ FlipType.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Tizen/FFImageLoading.Transformations.Tizen.csproj b/source/FFImageLoading.Transformations.Tizen/FFImageLoading.Transformations.Tizen.csproj
index 6b47cf6dc..cd062c901 100644
--- a/source/FFImageLoading.Transformations.Tizen/FFImageLoading.Transformations.Tizen.csproj
+++ b/source/FFImageLoading.Transformations.Tizen/FFImageLoading.Transformations.Tizen.csproj
@@ -20,9 +20,4 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Touch/FFImageLoading.Transformations.Touch.csproj b/source/FFImageLoading.Transformations.Touch/FFImageLoading.Transformations.Touch.csproj
index 2c64e2aa4..81ebd2fa3 100644
--- a/source/FFImageLoading.Transformations.Touch/FFImageLoading.Transformations.Touch.csproj
+++ b/source/FFImageLoading.Transformations.Touch/FFImageLoading.Transformations.Touch.csproj
@@ -1,78 +1,68 @@
-
-
-
- Debug
- AnyCPU
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}
- Library
- FFImageLoading.Transformations
- Resources
- FFImageLoading.Transformations
- 1591
-
-
- true
- portable
- false
- bin\Debug
- prompt
- 4
- false
- DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
- latest
-
-
- true
- portable
- true
- bin\Release
- prompt
- 4
- false
- bin\Release\FFImageLoading.Transformations.xml
- __UNIFIED__;__MOBILE__;__IOS__;
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FlipType.cs
-
-
-
- CornerTransformType.cs
-
-
-
-
-
-
-
-
-
- {51CA3BE2-DF00-4F49-8054-E5C776992B61}
- FFImageLoading
-
-
- {1597F7D4-432C-4F26-B508-0F6FAF0B9711}
- FFImageLoading.Touch
-
-
+
+
+
+ Debug
+ AnyCPU
+ {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {A19942AA-BE22-4CF5-9173-4A78D6B0EB06}
+ Library
+ FFImageLoading.Transformations
+ Resources
+ FFImageLoading.Transformations
+ 1591
+
+
+ true
+ portable
+ false
+ bin\Debug
+ prompt
+ 4
+ false
+ DEBUG;__UNIFIED__;__MOBILE__;__IOS__;
+ latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ prompt
+ 4
+ false
+ bin\Release\FFImageLoading.Transformations.xml
+ __UNIFIED__;__MOBILE__;__IOS__;
+ latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FlipType.cs
+
+
+
+ CornerTransformType.cs
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Windows/FFImageLoading.Transformations.Windows.csproj b/source/FFImageLoading.Transformations.Windows/FFImageLoading.Transformations.Windows.csproj
index 0f76693ba..612d02789 100644
--- a/source/FFImageLoading.Transformations.Windows/FFImageLoading.Transformations.Windows.csproj
+++ b/source/FFImageLoading.Transformations.Windows/FFImageLoading.Transformations.Windows.csproj
@@ -36,11 +36,6 @@
-
-
-
-
-
CornerTransformType.cs
diff --git a/source/FFImageLoading.Transformations.Wpf/BlurredTransformation.cs b/source/FFImageLoading.Transformations.Wpf/BlurredTransformation.cs
new file mode 100644
index 000000000..f957186e3
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/BlurredTransformation.cs
@@ -0,0 +1,126 @@
+using System;
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class BlurredTransformation : TransformationBase
+ {
+ public BlurredTransformation()
+ {
+ Radius = 20d;
+ }
+
+ public BlurredTransformation(double radius)
+ {
+ Radius = radius;
+ }
+
+ public double Radius { get; set; }
+
+ public override string Key
+ {
+ get { return string.Format("BlurredTransformation,radius={0}", Radius); }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, ImageSource source, bool isPlaceholder, string key)
+ {
+
+ ToLegacyBlurred(bitmapSource, (int)Radius);
+
+ return bitmapSource;
+ }
+
+ // Source: http://incubator.quasimondo.com/processing/superfast_blur.php
+ public static void ToLegacyBlurred(BitmapHolder source, int radius)
+ {
+ int w = source.Width;
+ int h = source.Height;
+ int wm = w - 1;
+ int hm = h - 1;
+ int wh = w * h;
+ int div = radius + radius + 1;
+ int[] r = new int[wh];
+ int[] g = new int[wh];
+ int[] b = new int[wh];
+ int rsum, gsum, bsum, x, y, i, yp, yi, yw;
+ int[] vmin = new int[Math.Max(w, h)];
+ int[] vmax = new int[Math.Max(w, h)];
+
+ int[] dv = new int[256 * div];
+ for (i = 0; i < 256 * div; i++)
+ {
+ dv[i] = (i / div);
+ }
+
+ yw = yi = 0;
+
+ for (y = 0; y < h; y++)
+ {
+ rsum = gsum = bsum = 0;
+ for (i = -radius; i <= radius; i++)
+ {
+ var p = source.GetPixel(yi + Math.Min(wm, Math.Max(i, 0)));
+ rsum += p.R;
+ gsum += p.G;
+ bsum += p.B;
+ }
+ for (x = 0; x < w; x++)
+ {
+
+ r[yi] = dv[rsum];
+ g[yi] = dv[gsum];
+ b[yi] = dv[bsum];
+
+ if (y == 0)
+ {
+ vmin[x] = Math.Min(x + radius + 1, wm);
+ vmax[x] = Math.Max(x - radius, 0);
+ }
+ var p1 = source.GetPixel(yw + vmin[x]);
+ var p2 = source.GetPixel(yw + vmax[x]);
+
+ rsum += p1.R - p2.R;
+ gsum += p1.G - p2.G;
+ bsum += p1.B - p2.B;
+ yi++;
+ }
+ yw += w;
+ }
+
+ for (x = 0; x < w; x++)
+ {
+ rsum = gsum = bsum = 0;
+ yp = -radius * w;
+ for (i = -radius; i <= radius; i++)
+ {
+ yi = Math.Max(0, yp) + x;
+ rsum += r[yi];
+ gsum += g[yi];
+ bsum += b[yi];
+ yp += w;
+ }
+ yi = x;
+ for (y = 0; y < h; y++)
+ {
+ // Preserve alpha channel: ( 0xff000000 & pix[yi] )
+ var oldColor = source.GetPixel(yi);
+ var newColor = new ColorHolder(oldColor.A, dv[rsum], dv[gsum], dv[bsum]);
+ source.SetPixel(yi, newColor);
+ if (x == 0)
+ {
+ vmin[y] = Math.Min(y + radius + 1, hm) * w;
+ vmax[y] = Math.Max(y - radius, 0) * w;
+ }
+ var p1 = x + vmin[y];
+ var p2 = x + vmax[y];
+
+ rsum += r[p1] - r[p2];
+ gsum += g[p1] - g[p2];
+ bsum += b[p1] - b[p2];
+
+ yi += w;
+ }
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/CircleTransformation.cs b/source/FFImageLoading.Transformations.Wpf/CircleTransformation.cs
new file mode 100644
index 000000000..e5e2a68e7
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/CircleTransformation.cs
@@ -0,0 +1,31 @@
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class CircleTransformation : TransformationBase
+ {
+ public CircleTransformation() : this(0d, null)
+ {
+ }
+
+ public CircleTransformation(double borderSize, string borderHexColor)
+ {
+ BorderSize = borderSize;
+ BorderHexColor = borderHexColor;
+ }
+
+ public double BorderSize { get; set; }
+ public string BorderHexColor { get; set; }
+
+
+ public override string Key
+ {
+ get { return string.Format("CircleTransformation,borderSize={0},borderHexColor={1}", BorderSize, BorderHexColor); }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return RoundedTransformation.ToRounded(bitmapSource, 0, 1f, 1f, BorderSize, BorderHexColor);
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/ColorFillTransformation.cs b/source/FFImageLoading.Transformations.Wpf/ColorFillTransformation.cs
new file mode 100644
index 000000000..d82eb2295
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/ColorFillTransformation.cs
@@ -0,0 +1,47 @@
+using System;
+using FFImageLoading.Work;
+using FFImageLoading.Extensions;
+
+namespace FFImageLoading.Transformations
+{
+ public class ColorFillTransformation : TransformationBase
+ {
+ public ColorFillTransformation() : this("#000000")
+ {
+ }
+
+ public ColorFillTransformation(string hexColor)
+ {
+ HexColor = hexColor;
+ }
+
+ public string HexColor { get; set; }
+
+ public override string Key => string.Format("ColorFillTransformation,hexColor={0}", HexColor);
+
+ public static ColorHolder BlendColor(ColorHolder color, ColorHolder backColor)
+ {
+ float amount = (float)color.A / 255;
+
+ byte r = (byte)((color.R * amount) + backColor.R * (1 - amount));
+ byte g = (byte)((color.G * amount) + backColor.G * (1 - amount));
+ byte b = (byte)((color.B * amount) + backColor.B * (1 - amount));
+
+ return new ColorHolder(r, g, b);
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, ImageSource source, bool isPlaceholder, string key)
+ {
+ var len = bitmapSource.PixelCount;
+ var backColor = HexColor.ToColorFromHex();
+
+ for (var i = 0; i < len; i++)
+ {
+ var color = bitmapSource.GetPixel(i);
+ bitmapSource.SetPixel(i, BlendColor(color, backColor));
+ }
+
+ return bitmapSource;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/ColorSpaceTransformation.cs b/source/FFImageLoading.Transformations.Wpf/ColorSpaceTransformation.cs
new file mode 100644
index 000000000..772dd8c23
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/ColorSpaceTransformation.cs
@@ -0,0 +1,103 @@
+using FFImageLoading.Work;
+using System;
+using System.Linq;
+
+namespace FFImageLoading.Transformations
+{
+ public class ColorSpaceTransformation : TransformationBase
+ {
+ float[][] _rgbawMatrix;
+
+ public ColorSpaceTransformation() : this(FFColorMatrix.InvertColorMatrix)
+ {
+ }
+
+ public ColorSpaceTransformation(float[][] rgbawMatrix)
+ {
+ if (rgbawMatrix.Length != 5 || rgbawMatrix.Any(v => v.Length != 5))
+ throw new ArgumentException("Wrong size of RGBAW color matrix");
+
+ RGBAWMatrix = rgbawMatrix;
+ }
+
+ public float[][] RGBAWMatrix
+ {
+ get
+ {
+ return _rgbawMatrix;
+ }
+
+ set
+ {
+ if (value.Length != 5 || value.Any(v => v.Length != 5))
+ throw new ArgumentException("Wrong size of RGBAW color matrix");
+
+ _rgbawMatrix = value;
+ }
+ }
+
+ public override string Key
+ {
+ get
+ {
+ return string.Format("ColorSpaceTransformation,rgbawMatrix={0}",
+ string.Join(",", _rgbawMatrix.Select(x => string.Join(",", x)).ToArray()));
+ }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ ToColorSpace(bitmapSource, _rgbawMatrix);
+
+ return bitmapSource;
+ }
+
+ public static void ToColorSpace(BitmapHolder bmp, float[][] rgbawMatrix)
+ {
+ var r0 = rgbawMatrix[0][0];
+ var r1 = rgbawMatrix[0][1];
+ var r2 = rgbawMatrix[0][2];
+ var r3 = rgbawMatrix[0][3];
+
+ var g0 = rgbawMatrix[1][0];
+ var g1 = rgbawMatrix[1][1];
+ var g2 = rgbawMatrix[1][2];
+ var g3 = rgbawMatrix[1][3];
+
+ var b0 = rgbawMatrix[2][0];
+ var b1 = rgbawMatrix[2][1];
+ var b2 = rgbawMatrix[2][2];
+ var b3 = rgbawMatrix[2][3];
+
+ var a0 = rgbawMatrix[3][0];
+ var a1 = rgbawMatrix[3][1];
+ var a2 = rgbawMatrix[3][2];
+ var a3 = rgbawMatrix[3][3];
+
+ var rOffset = rgbawMatrix[4][0];
+ var gOffset = rgbawMatrix[4][1];
+ var bOffset = rgbawMatrix[4][2];
+ var aOffset = rgbawMatrix[4][3];
+
+ var nWidth = bmp.Width;
+ var nHeight = bmp.Height;
+ var len = bmp.PixelCount;
+
+ for (var i = 0; i < len; i++)
+ {
+ var color = bmp.GetPixel(i);
+ var a = color.A;
+ var r = color.R;
+ var g = color.G;
+ var b = color.B;
+
+ var rNew = (int)(r * r0 + g * g0 + b * b0 + a * a0 + rOffset);
+ var gNew = (int)(r * r1 + g * g1 + b * b1 + a * a1 + gOffset);
+ var bNew = (int)(r * r2 + g * g2 + b * b2 + a * a2 + bOffset);
+ var aNew = (int)(r * r3 + g * g3 + b * b3 + a * a3 + aOffset);
+
+ bmp.SetPixel(i, new ColorHolder(aNew, rNew, gNew, bNew));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/CornerTransformType.cs b/source/FFImageLoading.Transformations.Wpf/CornerTransformType.cs
new file mode 100644
index 000000000..8abfcdaa4
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/CornerTransformType.cs
@@ -0,0 +1,31 @@
+using System;
+
+namespace FFImageLoading.Transformations
+{
+ [Flags]
+ public enum CornerTransformType
+ {
+ TopLeftCut = 0x1,
+ TopRightCut = 0x2,
+ BottomLeftCut = 0x4,
+ BottomRightCut = 0x8,
+
+ TopLeftRounded = 0x10,
+ TopRightRounded = 0x20,
+ BottomLeftRounded = 0x40,
+ BottomRightRounded = 0x80,
+
+ AllCut = TopLeftCut | TopRightCut | BottomLeftCut | BottomRightCut,
+ LeftCut = TopLeftCut | BottomLeftCut,
+ RightCut = TopRightCut | BottomRightCut,
+ TopCut = TopLeftCut | TopRightCut,
+ BottomCut = BottomLeftCut | BottomRightCut,
+
+ AllRounded = TopLeftRounded | TopRightRounded | BottomLeftRounded | BottomRightRounded,
+ LeftRounded = TopLeftRounded | BottomLeftRounded,
+ RightRounded = TopRightRounded | BottomRightRounded,
+ TopRounded = TopLeftRounded | TopRightRounded,
+ BottomRounded = BottomLeftRounded | BottomRightRounded,
+ }
+}
+
diff --git a/source/FFImageLoading.Transformations.Wpf/CornersTransformation.cs b/source/FFImageLoading.Transformations.Wpf/CornersTransformation.cs
new file mode 100644
index 000000000..21adcb2f3
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/CornersTransformation.cs
@@ -0,0 +1,251 @@
+using FFImageLoading.Extensions;
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class CornersTransformation : TransformationBase
+ {
+ public CornersTransformation() : this(20d, CornerTransformType.TopRightRounded)
+ {
+ }
+
+ public CornersTransformation(double cornersSize, CornerTransformType cornersTransformType)
+ : this(cornersSize, cornersSize, cornersSize, cornersSize, cornersTransformType, 1d, 1d)
+ {
+ }
+
+ public CornersTransformation(double topLeftCornerSize, double topRightCornerSize, double bottomLeftCornerSize, double bottomRightCornerSize,
+ CornerTransformType cornersTransformType)
+ : this(topLeftCornerSize, topRightCornerSize, bottomLeftCornerSize, bottomRightCornerSize, cornersTransformType, 1d, 1d)
+ {
+ }
+
+ public CornersTransformation(double cornersSize, CornerTransformType cornersTransformType, double cropWidthRatio, double cropHeightRatio)
+ : this(cornersSize, cornersSize, cornersSize, cornersSize, cornersTransformType, cropWidthRatio, cropHeightRatio)
+ {
+ }
+
+ public CornersTransformation(double topLeftCornerSize, double topRightCornerSize, double bottomLeftCornerSize, double bottomRightCornerSize,
+ CornerTransformType cornersTransformType, double cropWidthRatio, double cropHeightRatio)
+ {
+ TopLeftCornerSize = topLeftCornerSize;
+ TopRightCornerSize = topRightCornerSize;
+ BottomLeftCornerSize = bottomLeftCornerSize;
+ BottomRightCornerSize = bottomRightCornerSize;
+ CornersTransformType = cornersTransformType;
+ CropWidthRatio = cropWidthRatio;
+ CropHeightRatio = cropHeightRatio;
+ }
+
+ public double TopLeftCornerSize { get; set; }
+ public double TopRightCornerSize { get; set; }
+ public double BottomLeftCornerSize { get; set; }
+ public double BottomRightCornerSize { get; set; }
+ public double CropWidthRatio { get; set; }
+ public double CropHeightRatio { get; set; }
+ public CornerTransformType CornersTransformType { get; set; }
+
+ public override string Key
+ {
+ get
+ {
+ return string.Format("CornersTransformation,cornersSizes={0},{1},{2},{3},cornersTransformType={4},cropWidthRatio={5},cropHeightRatio={6},",
+ TopLeftCornerSize, TopRightCornerSize, BottomRightCornerSize, BottomLeftCornerSize, CornersTransformType, CropWidthRatio, CropHeightRatio);
+ }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return ToTransformedCorners(bitmapSource, TopLeftCornerSize, TopRightCornerSize, BottomLeftCornerSize, BottomRightCornerSize,
+ CornersTransformType, CropWidthRatio, CropHeightRatio);
+ }
+
+ public static BitmapHolder ToTransformedCorners(BitmapHolder source, double topLeftCornerSize, double topRightCornerSize, double bottomLeftCornerSize, double bottomRightCornerSize,
+ CornerTransformType cornersTransformType, double cropWidthRatio, double cropHeightRatio)
+ {
+ double sourceWidth = source.Width;
+ double sourceHeight = source.Height;
+
+ double desiredWidth = sourceWidth;
+ double desiredHeight = sourceHeight;
+
+ double desiredRatio = cropWidthRatio / cropHeightRatio;
+ double currentRatio = sourceWidth / sourceHeight;
+
+ if (currentRatio > desiredRatio)
+ desiredWidth = (cropWidthRatio * sourceHeight / cropHeightRatio);
+ else if (currentRatio < desiredRatio)
+ desiredHeight = (cropHeightRatio * sourceWidth / cropWidthRatio);
+
+ double cropX = ((sourceWidth - desiredWidth) / 2);
+ double cropY = ((sourceHeight - desiredHeight) / 2);
+
+ BitmapHolder bitmap = null;
+
+ if (cropX != 0 || cropY != 0)
+ {
+ bitmap = CropTransformation.ToCropped(source, (int)cropX, (int)cropY, (int)(desiredWidth), (int)(desiredHeight));
+ }
+ else
+ {
+ bitmap = new BitmapHolder(source.PixelData, source.Width, source.Height);
+ }
+
+ topLeftCornerSize = topLeftCornerSize * (desiredWidth + desiredHeight) / 2 / 100;
+ topRightCornerSize = topRightCornerSize * (desiredWidth + desiredHeight) / 2 / 100;
+ bottomLeftCornerSize = bottomLeftCornerSize * (desiredWidth + desiredHeight) / 2 / 100;
+ bottomRightCornerSize = bottomRightCornerSize * (desiredWidth + desiredHeight) / 2 / 100;
+
+ int topLeftSize = (int)topLeftCornerSize;
+ int topRightSize = (int)topRightCornerSize;
+ int bottomLeftSize = (int)bottomLeftCornerSize;
+ int bottomRightSize = (int)bottomRightCornerSize;
+
+ int w = bitmap.Width;
+ int h = bitmap.Height;
+
+ var transparentColor = ColorHolder.Transparent;
+
+ for (int y = 0; y < h; y++)
+ {
+ for (int x = 0; x < w; x++)
+ {
+ if (x <= topLeftSize && y <= topLeftSize)
+ { //top left corner
+ if (!CheckCorner(topLeftSize, topLeftSize, topLeftSize, cornersTransformType, Corner.TopLeftCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x >= w - topRightSize && y <= topRightSize && topRightSize > 0)
+ { // top right corner
+ if (!CheckCorner(w - topRightSize, topRightSize, topRightSize, cornersTransformType, Corner.TopRightCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x >= w - bottomRightSize && y >= h - bottomRightSize && bottomRightSize > 0)
+ { // bottom right corner
+ if (!CheckCorner(w - bottomRightSize, h - bottomRightSize, bottomRightSize, cornersTransformType, Corner.BottomRightCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x <= bottomLeftSize && y >= h - bottomLeftSize && bottomLeftSize > 0)
+ { // bottom left corner
+ if (!CheckCorner(bottomLeftSize, h - bottomLeftSize, bottomLeftSize, cornersTransformType, Corner.BottomLeftCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ }
+ }
+
+ return bitmap;
+ }
+
+ private enum Corner
+ {
+ TopLeftCorner,
+ TopRightCorner,
+ BottomRightCorner,
+ BottomLeftCorner,
+ }
+
+ private static bool HasFlag(CornerTransformType flags, CornerTransformType flag)
+ {
+ return (flags & flag) != 0;
+ }
+
+ private static bool CheckCorner(int w, int h, int size, CornerTransformType flags, Corner which, int xC, int yC)
+ {
+ if ((HasFlag(flags, CornerTransformType.TopLeftCut) && which == Corner.TopLeftCorner)
+ || (HasFlag(flags, CornerTransformType.TopRightCut) && which == Corner.TopRightCorner)
+ || (HasFlag(flags, CornerTransformType.BottomRightCut) && which == Corner.BottomRightCorner)
+ || (HasFlag(flags, CornerTransformType.BottomLeftCut) && which == Corner.BottomLeftCorner))
+ return CheckCutCorner(w, h, size, which, xC, yC);
+
+ if ((HasFlag(flags, CornerTransformType.TopLeftRounded) && which == Corner.TopLeftCorner)
+ || (HasFlag(flags, CornerTransformType.TopRightRounded) && which == Corner.TopRightCorner)
+ || (HasFlag(flags, CornerTransformType.BottomRightRounded) && which == Corner.BottomRightCorner)
+ || (HasFlag(flags, CornerTransformType.BottomLeftRounded) && which == Corner.BottomLeftCorner))
+ return CheckRoundedCorner(w, h, size, which, xC, yC);
+
+ return true;
+ }
+
+ private static bool CheckCutCorner(int w, int h, int size, Corner which, int xC, int yC)
+ {
+ switch (which)
+ {
+ case Corner.TopLeftCorner:
+ { //Testing if its outside the top left corner
+ return Slope(size, 0, xC-1, yC) < Slope(size, 0, 0, size);
+ }
+ case Corner.TopRightCorner:
+ { //Testing if its outside the top right corner
+ return Slope(w, 0, xC, yC) > Slope(w, 0, w+size, size);
+ }
+ case Corner.BottomRightCorner:
+ { //Testing if its outside the bottom right corner
+ return Slope(h+size, h, xC, yC) > Slope(h+size, h, w, h+size);
+ }
+ case Corner.BottomLeftCorner:
+ { //Testing if its outside the bottom left corner
+ return Slope(0, h, xC, yC) < Slope(0, h, size, h+size);
+ }
+ }
+
+ return true;
+ }
+
+ private static double Slope(double x1, double y1, double x2, double y2)
+ {
+ return (y2 - y1) / (x2 - x1);
+ }
+
+ private static bool CheckRoundedCorner(int h, int k, int r, Corner which, int xC, int yC)
+ {
+ int x = 0;
+ int y = r;
+ int p = (3 - (2 * r));
+
+ do
+ {
+ switch (which)
+ {
+ case Corner.TopLeftCorner:
+ { //Testing if its outside the top left corner
+ if (xC <= h - x && yC <= k - y) return false;
+ else if (xC <= h - y && yC <= k - x) return false;
+ break;
+ }
+ case Corner.TopRightCorner:
+ { //Testing if its outside the top right corner
+ if (xC >= h + y && yC <= k - x) return false;
+ else if (xC >= h + x && yC <= k - y) return false;
+ break;
+ }
+ case Corner.BottomRightCorner:
+ { //Testing if its outside the bottom right corner
+ if (xC >= h + x && yC >= k + y) return false;
+ else if (xC >= h + y && yC >= k + x) return false;
+ break;
+ }
+ case Corner.BottomLeftCorner:
+ { //Testing if its outside the bottom left corner
+ if (xC <= h - y && yC >= k + x) return false;
+ else if (xC <= h - x && yC >= k + y) return false;
+ break;
+ }
+ }
+
+ x++;
+
+ if (p < 0)
+ {
+ p += ((4 * x) + 6);
+ }
+ else
+ {
+ y--;
+ p += ((4 * (x - y)) + 10);
+ }
+ } while (x <= y);
+
+ return true;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/CropTransformation.cs b/source/FFImageLoading.Transformations.Wpf/CropTransformation.cs
new file mode 100644
index 000000000..8d6a7af5d
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/CropTransformation.cs
@@ -0,0 +1,125 @@
+using FFImageLoading.Extensions;
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class CropTransformation : TransformationBase
+ {
+ public CropTransformation() : this(1d, 0d, 0d)
+ {
+ }
+
+ public CropTransformation(double zoomFactor, double xOffset, double yOffset) : this(zoomFactor, xOffset, yOffset, 1f, 1f)
+ {
+ }
+
+ public CropTransformation(double zoomFactor, double xOffset, double yOffset, double cropWidthRatio, double cropHeightRatio)
+ {
+ ZoomFactor = zoomFactor;
+ XOffset = xOffset;
+ YOffset = yOffset;
+ CropWidthRatio = cropWidthRatio;
+ CropHeightRatio = cropHeightRatio;
+
+ if (ZoomFactor < 1f)
+ ZoomFactor = 1f;
+ }
+
+ public double ZoomFactor { get; set; }
+ public double XOffset { get; set; }
+ public double YOffset { get; set; }
+ public double CropWidthRatio { get; set; }
+ public double CropHeightRatio { get; set; }
+
+ public override string Key
+ {
+ get
+ {
+ return string.Format("CropTransformation,zoomFactor={0},xOffset={1},yOffset={2},cropWidthRatio={3},cropHeightRatio={4}",
+ ZoomFactor, XOffset, YOffset, CropWidthRatio, CropHeightRatio);
+ }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return ToCropped(bitmapSource, ZoomFactor, XOffset, YOffset, CropWidthRatio, CropHeightRatio);
+ }
+
+ public static BitmapHolder ToCropped(BitmapHolder source, double zoomFactor, double xOffset, double yOffset, double cropWidthRatio, double cropHeightRatio)
+ {
+ double sourceWidth = source.Width;
+ double sourceHeight = source.Height;
+
+ double desiredWidth = sourceWidth;
+ double desiredHeight = sourceHeight;
+
+ double desiredRatio = cropWidthRatio / cropHeightRatio;
+ double currentRatio = sourceWidth / sourceHeight;
+
+ if (currentRatio > desiredRatio)
+ desiredWidth = (cropWidthRatio * sourceHeight / cropHeightRatio);
+ else if (currentRatio < desiredRatio)
+ desiredHeight = (cropHeightRatio * sourceWidth / cropWidthRatio);
+
+ xOffset = xOffset * desiredWidth;
+ yOffset = yOffset * desiredHeight;
+
+ desiredWidth = desiredWidth / zoomFactor;
+ desiredHeight = desiredHeight / zoomFactor;
+
+ float cropX = (float)(((sourceWidth - desiredWidth) / 2) + xOffset);
+ float cropY = (float)(((sourceHeight - desiredHeight) / 2) + yOffset);
+
+ if (cropX < 0)
+ cropX = 0;
+
+ if (cropY < 0)
+ cropY = 0;
+
+ if (cropX + desiredWidth > sourceWidth)
+ cropX = (float)(sourceWidth - desiredWidth);
+
+ if (cropY + desiredHeight > sourceHeight)
+ cropY = (float)(sourceHeight - desiredHeight);
+
+ int width = (int)desiredWidth;
+ int height = (int)desiredHeight;
+
+ // Copy the pixels line by line using fast BlockCopy
+ var result = new byte[width * height * 4];
+
+ for (var line = 0; line < height; line++)
+ {
+ var srcOff = (((int)cropY + line) * source.Width + (int)cropX) * ColorExtensions.SizeOfArgb;
+ var dstOff = line * width * ColorExtensions.SizeOfArgb;
+ Helpers.BlockCopy(source.PixelData, srcOff, result, dstOff, width * ColorExtensions.SizeOfArgb);
+ }
+
+ return new BitmapHolder(result, width, height);
+ }
+
+ public static BitmapHolder ToCropped(BitmapHolder source, int x, int y, int width, int height)
+ {
+ var srcWidth = source.Width;
+ var srcHeight = source.Height;
+
+ // Clamp to boundaries
+ if (x < 0) x = 0;
+ if (x + width > srcWidth) width = srcWidth - x;
+ if (y < 0) y = 0;
+ if (y + height > srcHeight) height = srcHeight - y;
+
+ // Copy the pixels line by line using fast BlockCopy
+ var result = new byte[width * height * 4];
+
+ for (var line = 0; line < height; line++)
+ {
+ var srcOff = ((y + line) * srcWidth + x) * ColorExtensions.SizeOfArgb;
+ var dstOff = line * width * ColorExtensions.SizeOfArgb;
+ Helpers.BlockCopy(source.PixelData, srcOff, result, dstOff, width * ColorExtensions.SizeOfArgb);
+ }
+
+ return new BitmapHolder(result, width, height);
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/FFImageLoading.Transformations.Wpf.csproj b/source/FFImageLoading.Transformations.Wpf/FFImageLoading.Transformations.Wpf.csproj
new file mode 100644
index 000000000..b218db96a
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/FFImageLoading.Transformations.Wpf.csproj
@@ -0,0 +1,62 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A63B1175-5FB5-4A9C-BCC5-8AC091876D04}
+ Library
+ Properties
+ FFImageLoading.Transformations
+ FFImageLoading.Transformations
+ v4.7.1
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Transformations.Wpf/FlipTransformation.cs b/source/FFImageLoading.Transformations.Wpf/FlipTransformation.cs
new file mode 100644
index 000000000..dfb1bfa63
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/FlipTransformation.cs
@@ -0,0 +1,66 @@
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class FlipTransformation : TransformationBase
+ {
+ public FlipTransformation() : this(FlipType.Horizontal)
+ {
+ }
+
+ public FlipTransformation(FlipType flipType)
+ {
+ FlipType = flipType;
+ }
+
+ public override string Key
+ {
+ get { return string.Format("FlipTransformation,Type={0}", FlipType); }
+ }
+
+ public FlipType FlipType { get; set; }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return ToFlipped(bitmapSource, FlipType);
+ }
+
+ public static BitmapHolder ToFlipped(BitmapHolder bmp, FlipType flipMode)
+ {
+ // Use refs for faster access (really important!) speeds up a lot!
+ var w = bmp.Width;
+ var h = bmp.Height;
+ var i = 0;
+ BitmapHolder result = new BitmapHolder(new byte[bmp.PixelData.Length], w, h);
+
+ if (flipMode == FlipType.Vertical)
+ {
+ var rp = result.PixelData;
+ for (var y = h - 1; y >= 0; y--)
+ {
+ for (var x = 0; x < w; x++)
+ {
+ var srcInd = y * w + x;
+ result.SetPixel(i, bmp.GetPixel(srcInd));
+ i++;
+ }
+ }
+ }
+ else
+ {
+ var rp = result.PixelData;
+ for (var y = 0; y < h; y++)
+ {
+ for (var x = w - 1; x >= 0; x--)
+ {
+ var srcInd = y * w + x;
+ result.SetPixel(i, bmp.GetPixel(srcInd));
+ i++;
+ }
+ }
+ }
+
+ return result;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/FlipType.cs b/source/FFImageLoading.Transformations.Wpf/FlipType.cs
new file mode 100644
index 000000000..755541ae5
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/FlipType.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace FFImageLoading.Transformations
+{
+ public enum FlipType
+ {
+ Horizontal,
+ Vertical
+ }
+}
+
diff --git a/source/FFImageLoading.Transformations.Wpf/GrayscaleTransformation.cs b/source/FFImageLoading.Transformations.Wpf/GrayscaleTransformation.cs
new file mode 100644
index 000000000..9210a253c
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/GrayscaleTransformation.cs
@@ -0,0 +1,46 @@
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class GrayscaleTransformation : TransformationBase
+ {
+ public GrayscaleTransformation()
+ {
+ }
+
+ public override string Key
+ {
+ get { return "GrayscaleTransformation"; }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ ToGrayscale(bitmapSource);
+
+ return bitmapSource;
+ }
+
+ public static void ToGrayscale(BitmapHolder bmp)
+ {
+ var nWidth = bmp.Width;
+ var nHeight = bmp.Height;
+
+ var len = bmp.PixelCount;
+
+ for (var i = 0; i < len; i++)
+ {
+ var color = bmp.GetPixel(i);
+ int a = color.A;
+ int r = color.R;
+ int g = color.G;
+ int b = color.B;
+
+ // Convert to gray with constant factors 0.2126, 0.7152, 0.0722
+ var gray = (r * 6966 + g * 23436 + b * 2366) >> 15;
+ r = g = b = gray;
+
+ bmp.SetPixel(i, new ColorHolder(a, r, g, b));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/Helpers/Helpers.cs b/source/FFImageLoading.Transformations.Wpf/Helpers/Helpers.cs
new file mode 100644
index 000000000..195a69193
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/Helpers/Helpers.cs
@@ -0,0 +1,12 @@
+using System;
+
+namespace FFImageLoading.Transformations
+{
+ public static class Helpers
+ {
+ public static void BlockCopy(Array src, int srcOffset, Array dest, int destOffset, int count)
+ {
+ Buffer.BlockCopy(src, srcOffset, dest, destOffset, count);
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/Properties/AssemblyInfo.cs b/source/FFImageLoading.Transformations.Wpf/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..57fd649e1
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("FFImageLoading.Wpf")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("FFImageLoading.Wpf")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a63b1175-5fb5-4a9c-bcc5-8ac091876d04")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/source/FFImageLoading.Transformations.Wpf/RotateTransformation.cs b/source/FFImageLoading.Transformations.Wpf/RotateTransformation.cs
new file mode 100644
index 000000000..84a8d4867
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/RotateTransformation.cs
@@ -0,0 +1,193 @@
+using System;
+using FFImageLoading.Work;
+using FFImageLoading.Helpers;
+
+namespace FFImageLoading.Transformations
+{
+ public class RotateTransformation : TransformationBase
+ {
+ public RotateTransformation() : this(30d)
+ {
+ }
+
+ public RotateTransformation(double degrees) : this(degrees, false, false)
+ {
+ }
+
+ public RotateTransformation(double degrees, bool ccw) : this(degrees, ccw, false)
+ {
+ }
+
+ public RotateTransformation(double degrees, bool ccw, bool resize)
+ {
+ Degrees = degrees;
+ CCW = ccw;
+ Resize = resize;
+ }
+
+ public double Degrees { get; set; }
+ public bool CCW { get; set; }
+ public bool Resize { get; set; }
+
+ public override string Key
+ {
+ get { return string.Format("RotateTransformation,degrees={0},ccw={1},resize={2}", Degrees, CCW, Resize); }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return ToRotated(bitmapSource, Degrees, CCW, Resize);
+ }
+
+ public static BitmapHolder ToRotated(BitmapHolder source, double degrees, bool ccw, bool resize)
+ {
+ if (degrees == 0 || degrees % 360 == 0)
+ return source;
+
+ if (ccw)
+ degrees = 360d - degrees;
+
+ // rotating clockwise, so it's negative relative to Cartesian quadrants
+ double cnAngle = -1.0 * (Math.PI / 180) * degrees;
+
+ // general iterators
+ int i, j;
+ // calculated indices in Cartesian coordinates
+ int x, y;
+ double fDistance, fPolarAngle;
+ // for use in neighboring indices in Cartesian coordinates
+ int iFloorX, iCeilingX, iFloorY, iCeilingY;
+ // calculated indices in Cartesian coordinates with trailing decimals
+ double fTrueX, fTrueY;
+ // for interpolation
+ double fDeltaX, fDeltaY;
+
+ // interpolated "top" pixels
+ double fTopRed, fTopGreen, fTopBlue, fTopAlpha;
+
+ // interpolated "bottom" pixels
+ double fBottomRed, fBottomGreen, fBottomBlue, fBottomAlpha;
+
+ // final interpolated color components
+ int iRed, iGreen, iBlue, iAlpha;
+
+ int iCentreX, iCentreY;
+ int iDestCentreX, iDestCentreY;
+ int iWidth, iHeight, newWidth, newHeight;
+
+ iWidth = source.Width;
+ iHeight = source.Height;
+
+ if (!resize || (degrees % 180 == 0))
+ {
+ newWidth = iWidth;
+ newHeight = iHeight;
+ }
+ else
+ {
+ var rad = degrees / (180 / Math.PI);
+ newWidth = (int)Math.Ceiling(Math.Abs(Math.Sin(rad) * iHeight) + Math.Abs(Math.Cos(rad) * iWidth));
+ newHeight = (int)Math.Ceiling(Math.Abs(Math.Sin(rad) * iWidth) + Math.Abs(Math.Cos(rad) * iHeight));
+ }
+
+
+ iCentreX = iWidth / 2;
+ iCentreY = iHeight / 2;
+
+ iDestCentreX = newWidth / 2;
+ iDestCentreY = newHeight / 2;
+
+ var newSource = new BitmapHolder(new byte[newWidth * newHeight * 4], newWidth, newHeight);
+ var oldw = source.Width;
+
+ // assigning pixels of destination image from source image
+ // with bilinear interpolation
+ for (i = 0; i < newHeight; ++i)
+ {
+ for (j = 0; j < newWidth; ++j)
+ {
+ // convert raster to Cartesian
+ x = j - iDestCentreX;
+ y = iDestCentreY - i;
+
+ // convert Cartesian to polar
+ fDistance = Math.Sqrt(x * x + y * y);
+ if (x == 0)
+ {
+ if (y == 0)
+ {
+ // center of image, no rotation needed
+ newSource.SetPixel(i * newWidth + j, source.GetPixel(iCentreY * oldw + iCentreX));
+ continue;
+ }
+ if (y < 0)
+ {
+ fPolarAngle = 1.5 * Math.PI;
+ }
+ else
+ {
+ fPolarAngle = 0.5 * Math.PI;
+ }
+ }
+ else
+ {
+ fPolarAngle = Math.Atan2(y, x);
+ }
+
+ // the crucial rotation part
+ // "reverse" rotate, so minus instead of plus
+ fPolarAngle -= cnAngle;
+
+ // convert polar to Cartesian
+ fTrueX = fDistance * Math.Cos(fPolarAngle);
+ fTrueY = fDistance * Math.Sin(fPolarAngle);
+
+ // convert Cartesian to raster
+ fTrueX = fTrueX + iCentreX;
+ fTrueY = iCentreY - fTrueY;
+
+ iFloorX = (int)(Math.Floor(fTrueX));
+ iFloorY = (int)(Math.Floor(fTrueY));
+ iCeilingX = (int)(Math.Ceiling(fTrueX));
+ iCeilingY = (int)(Math.Ceiling(fTrueY));
+
+ // check bounds
+ if (iFloorX < 0 || iCeilingX < 0 || iFloorX >= iWidth || iCeilingX >= iWidth || iFloorY < 0 ||
+ iCeilingY < 0 || iFloorY >= iHeight || iCeilingY >= iHeight)
+ continue;
+
+ fDeltaX = fTrueX - iFloorX;
+ fDeltaY = fTrueY - iFloorY;
+
+ var clrTopLeft = source.GetPixel(iFloorY * oldw + iFloorX);
+ var clrTopRight = source.GetPixel(iFloorY * oldw + iCeilingX);
+ var clrBottomLeft = source.GetPixel(iCeilingY * oldw + iFloorX);
+ var clrBottomRight = source.GetPixel(iCeilingY * oldw + iCeilingX);
+
+ fTopAlpha = (1 - fDeltaX) * (clrTopLeft.A) + fDeltaX * (clrTopRight.A);
+ fTopRed = (1 - fDeltaX) * (clrTopLeft.R) + fDeltaX * (clrTopRight.R);
+ fTopGreen = (1 - fDeltaX) * (clrTopLeft.G) + fDeltaX * (clrTopRight.G);
+ fTopBlue = (1 - fDeltaX) * (clrTopLeft.B) + fDeltaX * (clrTopRight.B);
+
+ // linearly interpolate horizontally between bottom neighbors
+ fBottomAlpha = (1 - fDeltaX) * (clrBottomLeft.A) + fDeltaX * (clrBottomRight.A);
+ fBottomRed = (1 - fDeltaX) * (clrBottomLeft.R) + fDeltaX * (clrBottomRight.R);
+ fBottomGreen = (1 - fDeltaX) * (clrBottomLeft.G) + fDeltaX * (clrBottomRight.G);
+ fBottomBlue = (1 - fDeltaX) * (clrBottomLeft.B) + fDeltaX * (clrBottomRight.B);
+
+ // linearly interpolate vertically between top and bottom interpolated results
+ iRed = (int)(Math.Round((1 - fDeltaY) * fTopRed + fDeltaY * fBottomRed));
+ iGreen = (int)(Math.Round((1 - fDeltaY) * fTopGreen + fDeltaY * fBottomGreen));
+ iBlue = (int)(Math.Round((1 - fDeltaY) * fTopBlue + fDeltaY * fBottomBlue));
+ iAlpha = (int)(Math.Round((1 - fDeltaY) * fTopAlpha + fDeltaY * fBottomAlpha));
+
+ var a = iAlpha + 1;
+
+ newSource.SetPixel(i * newWidth + j, new ColorHolder(iAlpha, iRed, iGreen, iBlue));
+ }
+ }
+
+ return newSource;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/RoundedTransformation.cs b/source/FFImageLoading.Transformations.Wpf/RoundedTransformation.cs
new file mode 100644
index 000000000..1e688a01f
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/RoundedTransformation.cs
@@ -0,0 +1,259 @@
+using FFImageLoading.Extensions;
+using FFImageLoading.Helpers;
+using FFImageLoading.Work;
+using System;
+
+namespace FFImageLoading.Transformations
+{
+ public class RoundedTransformation : TransformationBase
+ {
+ public RoundedTransformation() : this(30d)
+ {
+ }
+
+ public RoundedTransformation(double radius) : this(radius, 1d, 1d)
+ {
+ }
+
+ public RoundedTransformation(double radius, double cropWidthRatio, double cropHeightRatio) : this(radius, cropWidthRatio, cropHeightRatio, 0d, null)
+ {
+ }
+
+ public RoundedTransformation(double radius, double cropWidthRatio, double cropHeightRatio, double borderSize, string borderHexColor)
+ {
+ Radius = radius;
+ CropWidthRatio = cropWidthRatio;
+ CropHeightRatio = cropHeightRatio;
+ BorderSize = borderSize;
+ BorderHexColor = borderHexColor;
+ }
+
+ public double Radius { get; set; }
+ public double CropWidthRatio { get; set; }
+ public double CropHeightRatio { get; set; }
+ public double BorderSize { get; set; }
+ public string BorderHexColor { get; set; }
+
+ public override string Key
+ {
+ get
+ {
+ return string.Format("RoundedTransformation,radius={0},cropWidthRatio={1},cropHeightRatio={2},borderSize={3},borderHexColor={4}",
+ Radius, CropWidthRatio, CropHeightRatio, BorderSize, BorderHexColor);
+ }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ return ToRounded(bitmapSource, (int)Radius, CropWidthRatio, CropHeightRatio, BorderSize, BorderHexColor);
+ }
+
+ public static BitmapHolder ToRounded(BitmapHolder source, int rad, double cropWidthRatio, double cropHeightRatio, double borderSize, string borderHexColor)
+ {
+ double sourceWidth = source.Width;
+ double sourceHeight = source.Height;
+
+ double desiredWidth = sourceWidth;
+ double desiredHeight = sourceHeight;
+
+ double desiredRatio = cropWidthRatio / cropHeightRatio;
+ double currentRatio = sourceWidth / sourceHeight;
+
+ if (currentRatio > desiredRatio)
+ desiredWidth = (cropWidthRatio * sourceHeight / cropHeightRatio);
+ else if (currentRatio < desiredRatio)
+ desiredHeight = (cropHeightRatio * sourceWidth / cropWidthRatio);
+
+ double cropX = ((sourceWidth - desiredWidth) / 2);
+ double cropY = ((sourceHeight - desiredHeight) / 2);
+
+ BitmapHolder bitmap = null;
+
+ if (cropX != 0 || cropY != 0)
+ {
+ bitmap = CropTransformation.ToCropped(source, (int)cropX, (int)cropY, (int)(desiredWidth), (int)(desiredHeight));
+ }
+ else
+ {
+ bitmap = new BitmapHolder(source.PixelData, source.Width, source.Height);
+ }
+
+ if (rad == 0)
+ rad = (int)(Math.Min(desiredWidth, desiredHeight) / 2);
+ else rad = (int)(rad * (desiredWidth + desiredHeight) / 2 / 500);
+
+ int w = (int)desiredWidth;
+ int h = (int)desiredHeight;
+
+ var transparentColor = ColorHolder.Transparent;
+
+ for (int y = 0; y < h; y++)
+ {
+ for (int x = 0; x < w; x++)
+ {
+ if (x <= rad && y <= rad)
+ { //top left corner
+ if (!CheckRoundedCorner(rad, rad, rad, Corner.TopLeftCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x >= w - rad && y <= rad)
+ { // top right corner
+ if (!CheckRoundedCorner(w - rad, rad, rad, Corner.TopRightCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x >= w - rad && y >= h - rad)
+ { // bottom right corner
+ if (!CheckRoundedCorner(w - rad, h - rad, rad, Corner.BottomRightCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ else if (x <= rad && y >= h - rad)
+ { // bottom left corner
+ if (!CheckRoundedCorner(rad, h - rad, rad, Corner.BottomLeftCorner, x, y))
+ bitmap.SetPixel(y * w + x, transparentColor);
+ }
+ }
+ }
+
+ //TODO draws a border - we should optimize that and add some anti-aliasing
+ //if (borderSize > 0d)
+ //{
+ // borderSize = (borderSize * (desiredWidth + desiredHeight) / 2d / 500d);
+ // var borderColor = ColorHolder.Transparent;
+
+ // try
+ // {
+ // borderColor = borderHexColor.ToColorFromHex();
+ // }
+ // catch (Exception)
+ // {
+ // }
+
+ // int intBorderSize = (int)Math.Ceiling(borderSize);
+
+ // for (int i = 0; i < intBorderSize; i++)
+ // {
+ // CircleAA(bitmap, i, borderColor);
+ // }
+ //}
+
+ return bitmap;
+ }
+
+ private enum Corner
+ {
+ TopLeftCorner,
+ TopRightCorner,
+ BottomRightCorner,
+ BottomLeftCorner,
+ }
+
+ private static bool CheckRoundedCorner(int h, int k, int r, Corner which, int xC, int yC)
+ {
+ int x = 0;
+ int y = r;
+ int p = (3 - (2 * r));
+
+ do
+ {
+ switch (which)
+ {
+ case Corner.TopLeftCorner:
+ { //Testing if its outside the top left corner
+ if (xC <= h - x && yC <= k - y) return false;
+ else if (xC <= h - y && yC <= k - x) return false;
+ break;
+ }
+ case Corner.TopRightCorner:
+ { //Testing if its outside the top right corner
+ if (xC >= h + y && yC <= k - x) return false;
+ else if (xC >= h + x && yC <= k - y) return false;
+ break;
+ }
+ case Corner.BottomRightCorner:
+ { //Testing if its outside the bottom right corner
+ if (xC >= h + x && yC >= k + y) return false;
+ else if (xC >= h + y && yC >= k + x) return false;
+ break;
+ }
+ case Corner.BottomLeftCorner:
+ { //Testing if its outside the bottom left corner
+ if (xC <= h - y && yC >= k + x) return false;
+ else if (xC <= h - x && yC >= k + y) return false;
+ break;
+ }
+ }
+
+ x++;
+
+ if (p < 0)
+ {
+ p += ((4 * x) + 6);
+ }
+ else
+ {
+ y--;
+ p += ((4 * (x - y)) + 10);
+ }
+ } while (x <= y);
+
+ return true;
+ }
+
+ // helper function, draws pixel and mirrors it
+ static void SetPixel4(BitmapHolder bitmap, int centerX, int centerY, int deltaX, int deltaY, ColorHolder color)
+ {
+ if (centerX + deltaX < bitmap.Width && centerY + deltaY < bitmap.Height)
+ bitmap.SetPixel(centerX + deltaX, centerY + deltaY, color);
+
+ if (centerX - deltaX >= 0 && centerY + deltaY < bitmap.Height)
+ bitmap.SetPixel(centerX - deltaX, centerY + deltaY, color);
+
+ if (centerX + deltaX < bitmap.Width && centerY - deltaY >= 0)
+ bitmap.SetPixel(centerX + deltaX, centerY - deltaY, color);
+
+ if (centerX - deltaX >= 0 && centerY - deltaY >= 0)
+ bitmap.SetPixel(centerX - deltaX, centerY - deltaY, color);
+ }
+
+ static void CircleAA(BitmapHolder bitmap, int size, ColorHolder color)
+ {
+ //if (size % 2 != 0)
+ // size++;
+
+ int centerX = bitmap.Width / 2;
+ double radiusX = (bitmap.Width - size) / 2;
+ int centerY = bitmap.Height / 2;
+ double radiusY = (bitmap.Height - size) / 2;
+
+ const int maxTransparency = 255; // default: 127
+ double radiusX2 = radiusX * radiusX;
+ double radiusY2 = radiusY * radiusY;
+
+ // upper and lower halves
+ int quarter = (int)Math.Round(radiusX2 / Math.Sqrt(radiusX2 + radiusY2));
+
+ for (int x = 0; x <= quarter; x++)
+ {
+ double y = Math.Floor(radiusY * Math.Sqrt(1 - x * x / radiusX2));
+ double error = y - Math.Floor(y);
+ int transparency = (int)Math.Round(error * maxTransparency);
+
+ //SetPixel4(bitmap, centerX, centerY, x, (int)Math.Floor(y), color);
+ SetPixel4(bitmap, centerX, centerY, x, (int)Math.Floor(y), new ColorHolder(transparency, color.R, color.G, color.B));
+ SetPixel4(bitmap, centerX, centerY, x, (int)Math.Floor(y) + 1, new ColorHolder(maxTransparency - transparency, color.R, color.G, color.B));
+ }
+
+ // right and left halves
+ quarter = (int)Math.Round(radiusY2 / Math.Sqrt(radiusX2 + radiusY2));
+
+ for (int y = 0; y <= quarter; y++)
+ {
+ double x = Math.Floor(radiusX * Math.Sqrt(1 - y * y / radiusY2));
+ double error = x - Math.Floor(x);
+ int transparency = (int)Math.Round(error * maxTransparency);
+ SetPixel4(bitmap, centerX, centerY, (int)Math.Floor(x), y, new ColorHolder(transparency, color.R, color.G, color.B));
+ SetPixel4(bitmap, centerX, centerY, (int)Math.Floor(x) + 1, y, new ColorHolder(maxTransparency - transparency, color.R, color.G, color.B));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/SepiaTransformation.cs b/source/FFImageLoading.Transformations.Wpf/SepiaTransformation.cs
new file mode 100644
index 000000000..844bef4a2
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/SepiaTransformation.cs
@@ -0,0 +1,55 @@
+using System;
+using FFImageLoading.Work;
+
+namespace FFImageLoading.Transformations
+{
+ public class SepiaTransformation : TransformationBase
+ {
+ public SepiaTransformation()
+ {
+ }
+
+ public override string Key
+ {
+ get { return "SepiaTransformation"; }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ ToSepia(bitmapSource);
+
+ return bitmapSource;
+ }
+
+ public static void ToSepia(BitmapHolder bmp)
+ {
+ var nWidth = bmp.Width;
+ var nHeight = bmp.Height;
+ var len = bmp.PixelCount;
+
+ for (var i = 0; i < len; i++)
+ {
+ var color = bmp.GetPixel(i);
+ int a = color.A;
+ int r = color.R;
+ int g = color.G;
+ int b = color.B;
+
+ var rNew = (int)Math.Min((.393 * r) + (.769 * g) + (.189 * (b)), 255.0);
+ var gNew = (int)Math.Min((.349 * r) + (.686 * g) + (.168 * (b)), 255.0);
+ var bNew = (int)Math.Min((.272 * r) + (.534 * g) + (.131 * (b)), 255.0);
+
+ if (rNew > 255)
+ rNew = 255;
+
+ if (gNew > 255)
+ gNew = 255;
+
+ if (bNew > 255)
+ bNew = 255;
+
+ bmp.SetPixel(i, new ColorHolder(a, rNew, gNew, bNew));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations.Wpf/TintTransformation.cs b/source/FFImageLoading.Transformations.Wpf/TintTransformation.cs
new file mode 100644
index 000000000..eea8c8ff5
--- /dev/null
+++ b/source/FFImageLoading.Transformations.Wpf/TintTransformation.cs
@@ -0,0 +1,109 @@
+using FFImageLoading.Extensions;
+using FFImageLoading.Work;
+using System;
+
+namespace FFImageLoading.Transformations
+{
+ public class TintTransformation : ColorSpaceTransformation
+ {
+ public TintTransformation() : this(0, 165, 0, 128)
+ {
+ }
+
+ public TintTransformation(int r, int g, int b, int a)
+ {
+ R = r;
+ G = g;
+ B = b;
+ A = a;
+ }
+
+ public TintTransformation(string hexColor)
+ {
+ HexColor = hexColor;
+ }
+
+ string _hexColor;
+ public string HexColor
+ {
+ get
+ {
+ return _hexColor;
+ }
+
+ set
+ {
+ _hexColor = value;
+ var color = value.ToColorFromHex();
+ A = color.A;
+ R = color.R;
+ G = color.G;
+ B = color.B;
+ }
+ }
+
+ public bool EnableSolidColor { get; set; }
+
+ public int R { get; set; }
+
+ public int G { get; set; }
+
+ public int B { get; set; }
+
+ public int A { get; set; }
+
+ public override string Key
+ {
+ get
+ {
+ return string.Format("TintTransformation,R={0},G={1},B={2},A={3},HexColor={4},EnableSolidColor={5}",
+ R, G, B, A, HexColor, EnableSolidColor);
+ }
+ }
+
+ protected override BitmapHolder Transform(BitmapHolder bitmapSource, string path, Work.ImageSource source, bool isPlaceholder, string key)
+ {
+ if (EnableSolidColor)
+ {
+ ToReplacedColor(bitmapSource, R, G, B, A);
+ return bitmapSource;
+ }
+
+ RGBAWMatrix = FFColorMatrix.ColorToTintMatrix(R, G, B, A);
+
+ return base.Transform(bitmapSource, path, source, isPlaceholder, key);
+ }
+
+ public static void ToReplacedColor(BitmapHolder bmp, int r, int g, int b, int a)
+ {
+ var nWidth = bmp.Width;
+ var nHeight = bmp.Height;
+ var len = bmp.PixelCount;
+ float percentage = (float)a / 255;
+ float left = 1 - percentage;
+ int rMin = (int)(r - (r * left));
+ int gMin = (int)(g - (g * left));
+ int bMin = (int)(b - (b * left));
+ int rMax = (int)(r + (r * left));
+ int gMax = (int)(g + (g * left));
+ int bMax = (int)(b + (b * left));
+
+ for (var i = 0; i < len; i++)
+ {
+ var color = bmp.GetPixel(i);
+ int currentAlpha = color.A;
+ var curR = color.R;
+ var curG = color.G;
+ var curB = color.B;
+ int rNew = (int)(curR + (255 - curR) * (percentage * r / 255));
+ int gNew = (int)(curG + (255 - curG) * (percentage * g / 255));
+ int bNew = (int)(curB + (255 - curB) * (percentage * b / 255));
+ rNew = Math.Min(Math.Max(rMin, rNew), rMax);
+ gNew = Math.Min(Math.Max(gMin, gNew), gMax);
+ bNew = Math.Min(Math.Max(bMin, bNew), bMax);
+
+ bmp.SetPixel(i, new ColorHolder(color.A, rNew, gNew, bNew));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj b/source/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj
index ae390b2a7..65e178751 100644
--- a/source/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj
+++ b/source/FFImageLoading.Transformations/FFImageLoading.Transformations.csproj
@@ -35,9 +35,4 @@
-
-
-
-
-
diff --git a/source/FFImageLoading.Windows/Decoders/BaseDecoder.cs b/source/FFImageLoading.Windows/Decoders/BaseDecoder.cs
index e85070307..dc64467a0 100644
--- a/source/FFImageLoading.Windows/Decoders/BaseDecoder.cs
+++ b/source/FFImageLoading.Windows/Decoders/BaseDecoder.cs
@@ -1,39 +1,39 @@
-using FFImageLoading.Config;
-using FFImageLoading.Extensions;
-using FFImageLoading.Helpers;
-using FFImageLoading.Work;
+using FFImageLoading.Config;
+using FFImageLoading.Extensions;
+using FFImageLoading.Helpers;
+using FFImageLoading.Work;
using System;
-using System.IO;
-using System.Threading.Tasks;
-
+using System.IO;
+using System.Threading.Tasks;
+
namespace FFImageLoading.Decoders
{
public class BaseDecoder : IDecoder
- {
- public async Task> DecodeAsync(Stream imageData, string path, ImageSource source, ImageInformation imageInformation, TaskParameter parameters)
- {
- BitmapHolder imageIn = null;
-
- if (imageData == null)
- throw new ArgumentNullException(nameof(imageData));
-
- bool allowUpscale = parameters.AllowUpscale ?? Configuration.AllowUpscale;
-
- if (parameters.Transformations == null || parameters.Transformations.Count == 0)
- {
- var bitmap = await imageData.ToBitmapImageAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
- imageIn = new BitmapHolder(bitmap);
- }
- else
- {
- imageIn = await imageData.ToBitmapHolderAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
- }
-
- return new DecodedImage() { Image = imageIn };
- }
-
- public Configuration Configuration => ImageService.Instance.Config;
-
- public IMiniLogger Logger => ImageService.Instance.Config.Logger;
+ {
+ public async Task> DecodeAsync(Stream imageData, string path, ImageSource source, ImageInformation imageInformation, TaskParameter parameters)
+ {
+ BitmapHolder imageIn = null;
+
+ if (imageData == null)
+ throw new ArgumentNullException(nameof(imageData));
+
+ bool allowUpscale = parameters.AllowUpscale ?? Configuration.AllowUpscale;
+
+ if (parameters.Transformations == null || parameters.Transformations.Count == 0)
+ {
+ var bitmap = await imageData.ToBitmapImageAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
+ imageIn = new BitmapHolder(bitmap);
+ }
+ else
+ {
+ imageIn = await imageData.ToBitmapHolderAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
+ }
+
+ return new DecodedImage() { Image = imageIn };
+ }
+
+ public Configuration Configuration => ImageService.Instance.Config;
+
+ public IMiniLogger Logger => ImageService.Instance.Config.Logger;
}
}
diff --git a/source/FFImageLoading.Windows/FFImageLoading.Windows.csproj b/source/FFImageLoading.Windows/FFImageLoading.Windows.csproj
index c4048a742..fed76f517 100644
--- a/source/FFImageLoading.Windows/FFImageLoading.Windows.csproj
+++ b/source/FFImageLoading.Windows/FFImageLoading.Windows.csproj
@@ -1,107 +1,99 @@
-
-
-
-
- 12.0
- Debug
- AnyCPU
- {610543A5-D06F-4BCA-9443-E6ADDFF06C71}
- Library
- Properties
- FFImageLoading
- FFImageLoading.Platform
- FFImageLoading.Platform.Windows
- en-US
- 512
- {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
-
-
- Profile32
- v4.6
- 1701;1702;1705;1591;1587;NU1605
-
-
- true
- portable
- false
- bin\Debug
- TRACE;DEBUG;WINDOWS;__WINDOWS__;
- prompt
- 4
- true
- Latest
-
-
- true
- portable
- true
- bin\Release
- TRACE;WINDOWS;__WINDOWS__;
- prompt
- 4
- bin\Release\FFImageLoading.Platform.xml
- true
- Latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Extensions\TaskParameterExtensions.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {51ca3be2-df00-4f49-8054-e5c776992b61}
- FFImageLoading
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 12.0
+ Debug
+ AnyCPU
+ {610543A5-D06F-4BCA-9443-E6ADDFF06C71}
+ Library
+ Properties
+ FFImageLoading
+ FFImageLoading.Platform
+ FFImageLoading.Platform.Windows
+ en-US
+ 512
+ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ Profile32
+ v4.6
+ 1701;1702;1705;1591;1587;NU1605
+
+
+ true
+ portable
+ false
+ bin\Debug
+ TRACE;DEBUG;WINDOWS;__WINDOWS__;
+ prompt
+ 4
+ true
+ Latest
+
+
+ true
+ portable
+ true
+ bin\Release
+ TRACE;WINDOWS;__WINDOWS__;
+ prompt
+ 4
+ bin\Release\FFImageLoading.Platform.xml
+ true
+ Latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extensions\TaskParameterExtensions.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Windows/Work/BitmapHolder.cs b/source/FFImageLoading.Windows/Work/BitmapHolder.cs
index 9033f3b74..196240239 100644
--- a/source/FFImageLoading.Windows/Work/BitmapHolder.cs
+++ b/source/FFImageLoading.Windows/Work/BitmapHolder.cs
@@ -2,15 +2,15 @@
using FFImageLoading.Helpers;
using System;
using Windows.UI;
-using Windows.UI.Xaml.Media.Imaging;
-
+using Windows.UI.Xaml.Media.Imaging;
+
namespace FFImageLoading.Work
{
public class BitmapHolder : IBitmap
{
- public BitmapHolder(WriteableBitmap bitmap)
- {
- WriteableBitmap = bitmap;
+ public BitmapHolder(WriteableBitmap bitmap)
+ {
+ WriteableBitmap = bitmap;
}
public BitmapHolder(byte[] pixels, int width, int height)
diff --git a/source/FFImageLoading.Windows/Work/PlatformImageLoaderTask.cs b/source/FFImageLoading.Windows/Work/PlatformImageLoaderTask.cs
index bc2044928..e137419a2 100644
--- a/source/FFImageLoading.Windows/Work/PlatformImageLoaderTask.cs
+++ b/source/FFImageLoading.Windows/Work/PlatformImageLoaderTask.cs
@@ -8,9 +8,9 @@
using System.Threading;
using System.Threading.Tasks;
using Windows.UI.Xaml.Media.Imaging;
-using FFImageLoading.Decoders;
-using System.Collections.Generic;
-
+using FFImageLoading.Decoders;
+using System.Collections.Generic;
+
namespace FFImageLoading.Work
{
public class PlatformImageLoaderTask : ImageLoaderTask where TImageView : class
@@ -40,82 +40,82 @@ await MainThreadDispatcher.PostAsync(() =>
protected override int DpiToPixels(int size)
{
return size.DpToPixels();
- }
-
- protected override IDecoder ResolveDecoder(ImageInformation.ImageType type)
- {
- switch (type)
- {
- case ImageInformation.ImageType.GIF:
- case ImageInformation.ImageType.WEBP:
- throw new NotImplementedException();
- default:
- return new BaseDecoder();
- }
- }
-
- protected override async Task TransformAsync(BitmapHolder bitmap, IList transformations, string path, ImageSource source, bool isPlaceholder)
- {
- await StaticLocks.DecodingLock.WaitAsync(CancellationTokenSource.Token).ConfigureAwait(false); // Applying transformations is both CPU and memory intensive
- ThrowIfCancellationRequested();
-
- try
- {
- foreach (var transformation in transformations)
- {
- ThrowIfCancellationRequested();
-
- var old = bitmap;
-
- try
- {
- IBitmap bitmapHolder = transformation.Transform(bitmap, path, source, isPlaceholder, Key);
- bitmap = bitmapHolder.ToNative();
- }
- catch (Exception ex)
- {
- Logger.Error(string.Format("Transformation failed: {0}", transformation.Key), ex);
- throw;
- }
- finally
- {
- if (old != null && old != bitmap && old.PixelData != bitmap.PixelData)
- {
- old.FreePixels();
- old = null;
- }
- }
- }
- }
- finally
+ }
+
+ protected override IDecoder ResolveDecoder(ImageInformation.ImageType type)
+ {
+ switch (type)
+ {
+ case ImageInformation.ImageType.GIF:
+ case ImageInformation.ImageType.WEBP:
+ throw new NotImplementedException();
+ default:
+ return new BaseDecoder();
+ }
+ }
+
+ protected override async Task TransformAsync(BitmapHolder bitmap, IList transformations, string path, ImageSource source, bool isPlaceholder)
+ {
+ await StaticLocks.DecodingLock.WaitAsync(CancellationTokenSource.Token).ConfigureAwait(false); // Applying transformations is both CPU and memory intensive
+ ThrowIfCancellationRequested();
+
+ try
+ {
+ foreach (var transformation in transformations)
+ {
+ ThrowIfCancellationRequested();
+
+ var old = bitmap;
+
+ try
+ {
+ IBitmap bitmapHolder = transformation.Transform(bitmap, path, source, isPlaceholder, Key);
+ bitmap = bitmapHolder.ToNative();
+ }
+ catch (Exception ex)
+ {
+ Logger.Error(string.Format("Transformation failed: {0}", transformation.Key), ex);
+ throw;
+ }
+ finally
+ {
+ if (old != null && old != bitmap && old.PixelData != bitmap.PixelData)
+ {
+ old.FreePixels();
+ old = null;
+ }
+ }
+ }
+ }
+ finally
+ {
+ StaticLocks.DecodingLock.Release();
+ }
+
+ return bitmap;
+ }
+
+ protected override async Task GenerateImageFromDecoderContainerAsync(IDecodedImage decoded, ImageInformation imageInformation, bool isPlaceholder)
+ {
+ if (decoded.IsAnimated)
+ {
+ throw new NotImplementedException();
+ }
+ else
{
- StaticLocks.DecodingLock.Release();
- }
-
- return bitmap;
- }
-
- protected override async Task GenerateImageFromDecoderContainerAsync(IDecodedImage decoded, ImageInformation imageInformation, bool isPlaceholder)
- {
- if (decoded.IsAnimated)
- {
- throw new NotImplementedException();
- }
- else
- {
- try
- {
- if (decoded.Image.HasWriteableBitmap)
- return decoded.Image.WriteableBitmap;
-
- return await decoded.Image.ToBitmapImageAsync().ConfigureAwait(false);
- }
- finally
- {
- decoded.Image.FreePixels();
- decoded.Image = null;
- }
- }
- }
+ try
+ {
+ if (decoded.Image.HasWriteableBitmap)
+ return decoded.Image.WriteableBitmap;
+
+ return await decoded.Image.ToBitmapImageAsync().ConfigureAwait(false);
+ }
+ finally
+ {
+ decoded.Image.FreePixels();
+ decoded.Image = null;
+ }
+ }
+ }
}
}
diff --git a/source/FFImageLoading.Windows/app.config b/source/FFImageLoading.Windows/app.config
index e52c6fa43..f3ed3d893 100644
--- a/source/FFImageLoading.Windows/app.config
+++ b/source/FFImageLoading.Windows/app.config
@@ -1,5 +1,5 @@
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Wpf/Cache/IImageCache.cs b/source/FFImageLoading.Wpf/Cache/IImageCache.cs
new file mode 100644
index 000000000..530aac8d9
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Cache/IImageCache.cs
@@ -0,0 +1,8 @@
+using System.Windows.Media.Imaging;
+
+namespace FFImageLoading.Cache
+{
+ interface IImageCache : IMemoryCache
+ {
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Cache/ImageCache.cs b/source/FFImageLoading.Wpf/Cache/ImageCache.cs
new file mode 100644
index 000000000..a7fc212f7
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Cache/ImageCache.cs
@@ -0,0 +1,106 @@
+using System;
+using FFImageLoading.Work;
+using FFImageLoading.Helpers;
+using System.Linq;
+using System.Windows.Media.Imaging;
+
+namespace FFImageLoading.Cache
+{
+ class ImageCache : IImageCache
+ {
+ private static IImageCache _instance;
+ private readonly WriteableBitmapLRUCache _reusableBitmaps;
+ private readonly IMiniLogger _logger;
+
+ private ImageCache(int maxCacheSize, IMiniLogger logger)
+ {
+ _logger = logger;
+
+ if (maxCacheSize == 0)
+ {
+ //TODO Does anyone know how we could get available app ram from WinRT API?
+ //EasClientDeviceInformation deviceInfo = new EasClientDeviceInformation();
+ //if (deviceInfo.OperatingSystem.ToLowerInvariant().Contains("phone"))
+ // maxCacheSize = 1000000 * 64; //64MB
+ //else
+ maxCacheSize = 1000000 * 256; //256MB
+
+ _logger?.Debug($"Memory cache size: {maxCacheSize} bytes");
+ }
+
+ _reusableBitmaps = new WriteableBitmapLRUCache(maxCacheSize);
+ }
+
+ public static IImageCache Instance
+ {
+ get
+ {
+ return _instance ?? (_instance = new ImageCache(ImageService.Instance.Config.MaxMemoryCacheSize, ImageService.Instance.Config.Logger));
+ }
+ }
+
+ public void Add(string key, ImageInformation imageInformation, BitmapSource bitmap)
+ {
+ if (string.IsNullOrWhiteSpace(key) || bitmap == null)
+ return;
+
+ _reusableBitmaps.TryAdd(key, new Tuple(bitmap, imageInformation));
+ }
+
+ public ImageInformation GetInfo(string key)
+ {
+ Tuple cacheEntry;
+ if (_reusableBitmaps.TryGetValue (key, out cacheEntry))
+ {
+ return cacheEntry.Item2;
+ }
+
+ return null;
+ }
+
+ public Tuple Get(string key)
+ {
+ if (string.IsNullOrWhiteSpace(key))
+ return null;
+
+ Tuple cacheEntry;
+
+ if (_reusableBitmaps.TryGetValue(key, out cacheEntry) && cacheEntry.Item1 != null)
+ {
+ return new Tuple(cacheEntry.Item1, cacheEntry.Item2);
+ }
+
+ return null;
+ }
+
+ public void Clear()
+ {
+ _reusableBitmaps.Clear();
+
+ GC.Collect();
+ }
+
+ public void Remove(string key)
+ {
+ if (string.IsNullOrWhiteSpace(key))
+ return;
+
+ _logger.Debug (string.Format ("Called remove from memory cache for '{0}'", key));
+ _reusableBitmaps.Remove(key);
+ }
+
+ public void RemoveSimilar(string baseKey)
+ {
+ if (string.IsNullOrWhiteSpace(baseKey))
+ return;
+
+ var pattern = baseKey + ";";
+
+ var keysToRemove = _reusableBitmaps.Keys.Where(i => i.StartsWith(pattern, StringComparison.OrdinalIgnoreCase)).ToList();
+ foreach (var key in keysToRemove)
+ {
+ Remove(key);
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Cache/LRUCache.cs b/source/FFImageLoading.Wpf/Cache/LRUCache.cs
new file mode 100644
index 000000000..48120b75a
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Cache/LRUCache.cs
@@ -0,0 +1,182 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FFImageLoading.Cache
+{
+ public abstract class LRUCache where TKey : class where TValue : class
+ {
+ private readonly object _lockObj = new object();
+ private int _currentSize;
+ private Dictionary>> _cacheMap = new Dictionary>>();
+ protected LinkedList> _lruList = new LinkedList>();
+
+ protected int _capacity;
+
+ public LRUCache(int capacity)
+ {
+ _capacity = capacity;
+ }
+
+ public abstract int GetValueSize(TValue value);
+
+ public bool ContainsKey(TKey key)
+ {
+ TValue dummy;
+ return TryGetValue(key, out dummy);
+ }
+
+ public TValue Get(TKey key)
+ {
+ lock (_lockObj)
+ {
+ LinkedListNode> node;
+ if (_cacheMap.TryGetValue(key, out node))
+ {
+ TValue value = node.Value.Value;
+ _lruList.Remove(node);
+ _lruList.AddLast(node);
+ return value;
+ }
+ return default(TValue);
+ }
+ }
+
+ public bool TryAdd(TKey key, TValue value)
+ {
+ lock (_lockObj)
+ {
+ CleanAbandonedItems();
+
+ if (_cacheMap.ContainsKey(key))
+ {
+ return false;
+ }
+ this.CheckSize(key, value);
+ LRUCacheItem cacheItem = new LRUCacheItem(key, value);
+ LinkedListNode> node =
+ new LinkedListNode>(cacheItem);
+ _lruList.AddLast(node);
+ _cacheMap.Add(key, node);
+
+ return true;
+ }
+ }
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ lock (_lockObj)
+ {
+ LinkedListNode> node;
+ if (_cacheMap.TryGetValue(key, out node))
+ {
+ value = node.Value.Value;
+
+ if (value == null)
+ {
+ Remove(key);
+ return false;
+ }
+
+ _lruList.Remove(node);
+ _lruList.AddLast(node);
+ return true;
+ }
+ value = default(TValue);
+ return false;
+ }
+ }
+
+ public void Clear()
+ {
+ lock (_lockObj)
+ {
+ _cacheMap.Clear();
+ _lruList.Clear();
+ }
+ }
+
+ public IList Keys
+ {
+ get
+ {
+ lock (_lockObj)
+ {
+ return _cacheMap.Keys.ToList();
+ }
+ }
+ }
+
+ public IList Values
+ {
+ get
+ {
+ lock (_lockObj)
+ {
+ return _cacheMap.Values.Select(v => v.Value.Value).ToList();
+ }
+ }
+ }
+
+ void CleanAbandonedItems()
+ {
+ //TODO?
+ }
+
+ protected virtual bool CheckSize(TKey key, TValue value)
+ {
+ var size = GetValueSize(value);
+ _currentSize += size;
+
+ while (_currentSize > _capacity && _lruList.Count > 0)
+ {
+ this.RemoveFirst();
+ }
+
+ return true;
+ }
+
+ public void Remove(TKey key)
+ {
+ LinkedListNode> node;
+ if (_cacheMap.TryGetValue(key, out node))
+ {
+ _lruList.Remove(node);
+ }
+ }
+
+ protected virtual void RemoveNode(LinkedListNode> node)
+ {
+ _lruList.Remove(node);
+ _cacheMap.Remove(node.Value.Key);
+ _currentSize -= GetValueSize(node.Value.Value);
+ }
+
+ protected void RemoveFirst()
+ {
+ LinkedListNode> node = _lruList.First;
+ this.RemoveNode(node);
+ }
+
+ protected class LRUCacheItem
+ {
+ public LRUCacheItem(K k, V v)
+ {
+ Key = k;
+ Value = v;
+ }
+ public K Key
+ {
+ get;
+ private set;
+ }
+ public V Value
+ {
+ get;
+ private set;
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Cache/WriteableBitmapLRUCache.cs b/source/FFImageLoading.Wpf/Cache/WriteableBitmapLRUCache.cs
new file mode 100644
index 000000000..57b44e738
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Cache/WriteableBitmapLRUCache.cs
@@ -0,0 +1,24 @@
+using FFImageLoading.Work;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+namespace FFImageLoading.Cache
+{
+ public class WriteableBitmapLRUCache : LRUCache>
+ {
+ public WriteableBitmapLRUCache(int capacity) : base(capacity)
+ {
+ }
+
+ public override int GetValueSize(Tuple value)
+ {
+ if (value?.Item2 == null)
+ return 0;
+
+ return value.Item2.CurrentHeight * value.Item2.CurrentWidth * 4;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/DataResolvers/DataResolverFactory.cs b/source/FFImageLoading.Wpf/DataResolvers/DataResolverFactory.cs
new file mode 100644
index 000000000..f25d70575
--- /dev/null
+++ b/source/FFImageLoading.Wpf/DataResolvers/DataResolverFactory.cs
@@ -0,0 +1,32 @@
+using FFImageLoading.Cache;
+using FFImageLoading.Config;
+using FFImageLoading.Work;
+using System;
+
+namespace FFImageLoading.DataResolvers
+{
+ public class DataResolverFactory : IDataResolverFactory
+ {
+ public virtual IDataResolver GetResolver(string identifier, ImageSource source, TaskParameter parameters, Configuration configuration)
+ {
+ switch (source)
+ {
+ case ImageSource.ApplicationBundle:
+ case ImageSource.CompiledResource:
+ return new ResourceDataResolver();
+ case ImageSource.Filepath:
+ return new FileDataResolver();
+ case ImageSource.Url:
+ if (!string.IsNullOrWhiteSpace(identifier) && identifier.IsDataUrl())
+ return new DataUrlResolver();
+ return new UrlDataResolver(configuration);
+ case ImageSource.Stream:
+ return new StreamDataResolver();
+ case ImageSource.EmbeddedResource:
+ return new EmbeddedResourceResolver();
+ default:
+ throw new NotSupportedException("Unknown type of ImageSource");
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/DataResolvers/FileDataResolver.cs b/source/FFImageLoading.Wpf/DataResolvers/FileDataResolver.cs
new file mode 100644
index 000000000..d0d554a00
--- /dev/null
+++ b/source/FFImageLoading.Wpf/DataResolvers/FileDataResolver.cs
@@ -0,0 +1,30 @@
+using FFImageLoading.Work;
+using System;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+using FFImageLoading.IO;
+
+namespace FFImageLoading.DataResolvers
+{
+ public class FileDataResolver : IDataResolver
+ {
+ public virtual Task Resolve(string identifier, TaskParameter parameters, CancellationToken token)
+ {
+ if (!FileStore.Exists(identifier))
+ {
+ throw new FileNotFoundException(identifier);
+ }
+
+ token.ThrowIfCancellationRequested();
+
+ var stream = FileStore.GetInputStream(identifier, true);
+
+ var imageInformation = new ImageInformation();
+ imageInformation.SetPath(identifier);
+ imageInformation.SetFilePath(identifier);
+
+ return Task.FromResult(new DataResolverResult(stream, LoadingResult.Disk, imageInformation));
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/DataResolvers/ResourceDataResolver.cs b/source/FFImageLoading.Wpf/DataResolvers/ResourceDataResolver.cs
new file mode 100644
index 000000000..a06cee8a9
--- /dev/null
+++ b/source/FFImageLoading.Wpf/DataResolvers/ResourceDataResolver.cs
@@ -0,0 +1,90 @@
+using FFImageLoading.Work;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+using System.IO;
+using System.Collections.Generic;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using System.Windows.Resources;
+using FFImageLoading.Extensions;
+
+namespace FFImageLoading.DataResolvers
+{
+ public class ResourceDataResolver : IDataResolver
+ {
+ private static readonly SemaphoreSlim _cacheLock = new SemaphoreSlim(1, 1);
+ private static Dictionary _cache = new Dictionary(128);
+
+ public async virtual Task Resolve(string identifier, TaskParameter parameters, CancellationToken token)
+ {
+ StreamResourceInfo image = null;
+ await _cacheLock.WaitAsync(token).ConfigureAwait(false);
+ token.ThrowIfCancellationRequested();
+ Uri imgUri=null;
+ try
+ {
+ string resPath = identifier.TrimStart('\\', '/');
+
+ if (!resPath.StartsWith(@"Assets\", StringComparison.OrdinalIgnoreCase) && !resPath.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase))
+ {
+ resPath = @"Assets\" + resPath;
+ }
+
+ imgUri = new Uri($"pack://application:,,,/{resPath}");
+ var key = imgUri.ToString();
+ if (!_cache.TryGetValue(key, out image))
+ {
+ image = Application.GetResourceStream(imgUri);
+
+ //image = new BitmapImage(imgUri);
+
+ if (_cache.Count >= 128)
+ _cache.Clear();
+
+ _cache[key] = image;
+ }
+ }
+ catch (Exception)
+ {
+ try
+ {
+ imgUri = new Uri($"pack://application:,,,/{identifier}");
+ //imgUri = new Uri(identifier, UriKind.RelativeOrAbsolute);
+ var key = imgUri.ToString();
+ if (!_cache.TryGetValue(key, out image))
+ {
+ image = Application.GetResourceStream(imgUri);
+
+ if (_cache.Count >= 128)
+ _cache.Clear();
+
+ _cache[key] = image;
+ }
+ }
+ catch (Exception)
+ {
+ }
+ }
+ finally
+ {
+ _cacheLock.Release();
+ }
+
+ if (image != null)
+ {
+ var imageInformation = new ImageInformation();
+ imageInformation.SetPath(identifier);
+ imageInformation.SetFilePath(imgUri.ToString());
+
+ token.ThrowIfCancellationRequested();
+
+ var s = await image.Stream.AsRandomAccessStream();
+ s.Seek(0, SeekOrigin.Begin);
+ return new DataResolverResult(s, LoadingResult.CompiledResource, imageInformation);
+ }
+
+ throw new FileNotFoundException(identifier);
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Decoders/BaseDecoder.cs b/source/FFImageLoading.Wpf/Decoders/BaseDecoder.cs
new file mode 100644
index 000000000..dc64467a0
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Decoders/BaseDecoder.cs
@@ -0,0 +1,39 @@
+using FFImageLoading.Config;
+using FFImageLoading.Extensions;
+using FFImageLoading.Helpers;
+using FFImageLoading.Work;
+using System;
+using System.IO;
+using System.Threading.Tasks;
+
+namespace FFImageLoading.Decoders
+{
+ public class BaseDecoder : IDecoder
+ {
+ public async Task> DecodeAsync(Stream imageData, string path, ImageSource source, ImageInformation imageInformation, TaskParameter parameters)
+ {
+ BitmapHolder imageIn = null;
+
+ if (imageData == null)
+ throw new ArgumentNullException(nameof(imageData));
+
+ bool allowUpscale = parameters.AllowUpscale ?? Configuration.AllowUpscale;
+
+ if (parameters.Transformations == null || parameters.Transformations.Count == 0)
+ {
+ var bitmap = await imageData.ToBitmapImageAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
+ imageIn = new BitmapHolder(bitmap);
+ }
+ else
+ {
+ imageIn = await imageData.ToBitmapHolderAsync(parameters.DownSampleSize, parameters.DownSampleUseDipUnits, parameters.DownSampleInterpolationMode, allowUpscale, imageInformation).ConfigureAwait(false);
+ }
+
+ return new DecodedImage() { Image = imageIn };
+ }
+
+ public Configuration Configuration => ImageService.Instance.Config;
+
+ public IMiniLogger Logger => ImageService.Instance.Config.Logger;
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Extensions/ColorExtensions.cs b/source/FFImageLoading.Wpf/Extensions/ColorExtensions.cs
new file mode 100644
index 000000000..4453a4b06
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Extensions/ColorExtensions.cs
@@ -0,0 +1,86 @@
+using FFImageLoading.Helpers;
+using System;
+
+namespace FFImageLoading.Extensions
+{
+ public static class ColorExtensions
+ {
+ public const int SizeOfArgb = 4;
+
+ //public static int ToInt(this ColorHolder color)
+ //{
+ // var col = 0;
+
+ // if (color.A != 0)
+ // {
+ // var a = color.A + 1;
+ // col = (color.A << 24)
+ // | ((byte)((color.R * a) >> 8) << 16)
+ // | ((byte)((color.G * a) >> 8) << 8)
+ // | ((byte)((color.B * a) >> 8));
+ // }
+
+ // return col;
+ //}
+
+ public static ColorHolder ToColorFromHex(this string hexColor)
+ {
+ if (string.IsNullOrWhiteSpace(hexColor))
+ throw new ArgumentException("Invalid color string.", nameof(hexColor));
+
+ if (!hexColor.StartsWith("#", StringComparison.Ordinal))
+ hexColor.Insert(0, "#");
+
+ switch (hexColor.Length)
+ {
+ case 9:
+ {
+ var cuint = Convert.ToUInt32(hexColor.Substring(1), 16);
+ var a = (byte)(cuint >> 24);
+ var r = (byte)((cuint >> 16) & 0xff);
+ var g = (byte)((cuint >> 8) & 0xff);
+ var b = (byte)(cuint & 0xff);
+
+ return new ColorHolder(a, r, g, b);
+ }
+ case 7:
+ {
+ var cuint = Convert.ToUInt32(hexColor.Substring(1), 16);
+ var r = (byte)((cuint >> 16) & 0xff);
+ var g = (byte)((cuint >> 8) & 0xff);
+ var b = (byte)(cuint & 0xff);
+
+ return new ColorHolder(255, r, g, b);
+ }
+ case 5:
+ {
+ var cuint = Convert.ToUInt16(hexColor.Substring(1), 16);
+ var a = (byte)(cuint >> 12);
+ var r = (byte)((cuint >> 8) & 0xf);
+ var g = (byte)((cuint >> 4) & 0xf);
+ var b = (byte)(cuint & 0xf);
+ a = (byte)(a << 4 | a);
+ r = (byte)(r << 4 | r);
+ g = (byte)(g << 4 | g);
+ b = (byte)(b << 4 | b);
+
+ return new ColorHolder(a, r, g, b);
+ }
+ case 4:
+ {
+ var cuint = Convert.ToUInt16(hexColor.Substring(1), 16);
+ var r = (byte)((cuint >> 8) & 0xf);
+ var g = (byte)((cuint >> 4) & 0xf);
+ var b = (byte)(cuint & 0xf);
+ r = (byte)(r << 4 | r);
+ g = (byte)(g << 4 | g);
+ b = (byte)(b << 4 | b);
+
+ return new ColorHolder(255, r, g, b);
+ }
+ default:
+ throw new FormatException(string.Format("The {0} string is not a recognized HexColor format.", hexColor));
+ }
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Extensions/ImageExtensions.cs b/source/FFImageLoading.Wpf/Extensions/ImageExtensions.cs
new file mode 100644
index 000000000..e7a9bb239
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Extensions/ImageExtensions.cs
@@ -0,0 +1,173 @@
+using FFImageLoading.Work;
+using System;
+using System.IO;
+using System.Threading.Tasks;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+
+namespace FFImageLoading.Extensions
+{
+ public static class ImageExtensions
+ {
+ public static async Task AsRandomAccessStream(this Stream from)
+ {
+ var ms = new MemoryStream();
+ from.Seek(0, SeekOrigin.Begin);
+ await from.CopyToAsync(ms);
+ ms.Seek(0, SeekOrigin.Begin);
+ return ms;
+ }
+ public static async Task ToBitmapImageAsync(this BitmapHolder holder)
+ {
+ if (holder?.PixelData == null)
+ return null;
+
+ WriteableBitmap writeableBitmap = null;
+
+ await ImageService.Instance.Config.MainThreadDispatcher.PostAsync(async () =>
+ {
+ writeableBitmap = await holder.ToWriteableBitmap();
+ });
+
+ return writeableBitmap;
+ }
+
+ private static Task ToWriteableBitmap(this BitmapHolder holder)
+ {
+ var wb = new WriteableBitmap(
+ holder.Width,
+ holder.Height,
+ 96,
+ 96,
+ PixelFormats.Bgra32,
+ null);
+ return Task.FromResult(wb.FromByteArray(holder.PixelData));
+
+ }
+ public static Task ToWriteableBitmap(this Stream holder)
+ {
+ try
+ {
+ holder.Seek(0, SeekOrigin.Begin);
+ return Task.FromResult(BitmapFactory.FromStream(holder));
+ }
+ catch (Exception ex)
+ {
+ throw;
+ }
+ }
+
+ public async static Task ToBitmapImageAsync(this Stream imageStream, Tuple downscale, bool downscaleDipUnits, InterpolationMode mode, bool allowUpscale, ImageInformation imageInformation = null)
+ {
+ if (imageStream == null)
+ return null;
+
+ using (var image = await imageStream.AsRandomAccessStream())
+ {
+ if (downscale != null && (downscale.Item1 > 0 || downscale.Item2 > 0))
+ {
+ using (var downscaledImage = await image.ResizeImage(downscale.Item1, downscale.Item2, mode, downscaleDipUnits, allowUpscale, imageInformation).ConfigureAwait(false))
+ {
+ downscaledImage.Seek(0, SeekOrigin.Begin);
+ WriteableBitmap resizedBitmap = null;
+
+ await ImageService.Instance.Config.MainThreadDispatcher.PostAsync(async () =>
+ {
+ resizedBitmap = await downscaledImage.ToWriteableBitmap();
+ });
+
+ return resizedBitmap;
+ }
+ }
+ else
+ {
+ WriteableBitmap bitmap = null;
+
+ await ImageService.Instance.Config.MainThreadDispatcher.PostAsync(async () =>
+ {
+ bitmap = await imageStream.ToWriteableBitmap();
+ if (imageInformation != null)
+ {
+ imageInformation.SetCurrentSize(bitmap.PixelWidth, bitmap.PixelHeight);
+ imageInformation.SetOriginalSize(bitmap.PixelWidth, bitmap.PixelHeight);
+ }
+ });
+
+ return bitmap;
+ }
+ }
+ }
+
+ public async static Task ToBitmapHolderAsync(this Stream imageStream, Tuple downscale, bool downscaleDipUnits, InterpolationMode mode, bool allowUpscale, ImageInformation imageInformation = null)
+ {
+ if (imageStream == null)
+ return null;
+
+
+ Stream src;
+ using (var image = await imageStream.AsRandomAccessStream())
+ {
+ if (downscale != null && (downscale.Item1 > 0 || downscale.Item2 > 0))
+ {
+ var downscaledImage = await image.ResizeImage(downscale.Item1, downscale.Item2, mode,
+ downscaleDipUnits, allowUpscale, imageInformation).ConfigureAwait(false);
+ {
+ src = downscaledImage;
+ }
+ }
+ else
+ {
+ src = image;
+ }
+ src.Seek(0, SeekOrigin.Begin);
+ var wb = BitmapFactory.FromStream(src);
+
+
+ if (imageInformation != null)
+ {
+ imageInformation.SetCurrentSize(wb.PixelWidth, wb.PixelHeight);
+ imageInformation.SetOriginalSize(wb.PixelWidth, wb.PixelHeight);
+ }
+
+ return new BitmapHolder(BitmapFactory.ConvertToPbgra32Format(wb).ToByteArray(), wb.PixelWidth, wb.PixelHeight);
+ }
+ }
+
+ public static async Task ResizeImage(this MemoryStream imageStream, int width, int height, InterpolationMode interpolationMode, bool useDipUnits, bool allowUpscale, ImageInformation imageInformation = null)
+ {
+ if (useDipUnits)
+ {
+ width = width.DpToPixels();
+ height = height.DpToPixels();
+ }
+
+ var wb = await imageStream.ToWriteableBitmap();
+ var widthRatio = (double)width / wb.PixelWidth;
+ var heightRatio = (double)height / wb.PixelHeight;
+ var scaleRatio = Math.Min(widthRatio, heightRatio);
+ if (width == 0)
+ scaleRatio = heightRatio;
+
+ if (height == 0)
+ scaleRatio = widthRatio;
+
+ var bitmap = new TransformedBitmap(wb, new ScaleTransform(scaleRatio,scaleRatio));
+
+ var bmp = new MemoryStream();
+ BitmapEncoder enc = new BmpBitmapEncoder();
+ enc.Frames.Add(BitmapFrame.Create(bitmap));
+ enc.Save(bmp);
+
+ if (imageInformation != null)
+ {
+ var aspectHeight = (int)Math.Floor(wb.PixelHeight * scaleRatio);
+ var aspectWidth = (int)Math.Floor(wb.PixelWidth * scaleRatio);
+
+ imageInformation.SetOriginalSize(wb.PixelWidth, wb.PixelHeight);
+ imageInformation.SetCurrentSize(aspectWidth, aspectHeight);
+ }
+ bmp.Seek(0,SeekOrigin.Begin);
+ return bmp;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Extensions/TaskParameterPlatformExtensions.cs b/source/FFImageLoading.Wpf/Extensions/TaskParameterPlatformExtensions.cs
new file mode 100644
index 000000000..b9629c458
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Extensions/TaskParameterPlatformExtensions.cs
@@ -0,0 +1,160 @@
+using System;
+using System.Threading.Tasks;
+using FFImageLoading.Work;
+using System.IO;
+using System.Windows.Controls;
+using System.Windows.Media.Imaging;
+using FFImageLoading.Targets;
+using FFImageLoading.Extensions;
+using ImageSource = FFImageLoading.Work.ImageSource;
+
+namespace FFImageLoading
+{
+ ///
+ /// TaskParameterPlatformExtensions
+ ///
+ public static class TaskParameterPlatformExtensions
+ {
+ ///
+ /// Loads the image into PNG Stream
+ ///
+ /// The PNG Stream async.
+ /// Parameters.
+ public static async Task AsPNGStreamAsync(this TaskParameter parameters)
+ {
+ var result = await AsWriteableBitmapAsync(parameters);
+ var stream = await result.AsPngStreamAsync();
+
+ return stream;
+ }
+
+ ///
+ /// Loads the image into JPG Stream
+ ///
+ /// The JPG Stream async.
+ /// Parameters.
+ public static async Task AsJPGStreamAsync(this TaskParameter parameters, int quality = 80)
+ {
+ var result = await AsWriteableBitmapAsync(parameters);
+ var stream = await result.AsJpegStreamAsync(quality);
+
+ return stream;
+ }
+
+ ///
+ /// Loads and gets WriteableBitmap using defined parameters.
+ /// IMPORTANT: It throws image loading exceptions - you should handle them
+ ///
+ /// The WriteableBitmap.
+ /// Parameters.
+ public static Task AsWriteableBitmapAsync(this TaskParameter parameters)
+ {
+ var target = new BitmapTarget();
+ var userErrorCallback = parameters.OnError;
+ var finishCallback = parameters.OnFinish;
+ var tcs = new TaskCompletionSource();
+
+ parameters
+ .Error(ex =>
+ {
+ tcs.TrySetException(ex);
+ userErrorCallback?.Invoke(ex);
+ })
+ .Finish(scheduledWork =>
+ {
+ finishCallback?.Invoke(scheduledWork);
+ tcs.TrySetResult(target.BitmapSource as WriteableBitmap);
+ });
+
+ if (parameters.Source != Work.ImageSource.Stream && string.IsNullOrWhiteSpace(parameters.Path))
+ {
+ target.SetAsEmpty(null);
+ parameters.TryDispose();
+ return null;
+ }
+
+ var task = ImageService.CreateTask(parameters, target);
+ ImageService.Instance.LoadImage(task);
+
+ return tcs.Task;
+ }
+
+ ///
+ /// Loads the image into given Image using defined parameters.
+ ///
+ /// Parameters for loading the image.
+ /// Image view that should receive the image.
+ public static IScheduledWork Into(this TaskParameter parameters, Image imageView)
+ {
+ var target = new ImageTarget(imageView);
+ return parameters.Into(target);
+ }
+
+ ///
+ /// Loads the image into given Image using defined parameters.
+ /// IMPORTANT: It throws image loading exceptions - you should handle them
+ ///
+ /// An awaitable Task.
+ /// Parameters for loading the image.
+ /// Image view that should receive the image.
+ public static Task IntoAsync(this TaskParameter parameters, Image imageView)
+ {
+ return parameters.IntoAsync(param => param.Into(imageView));
+ }
+
+ ///
+ /// Loads the image into given target using defined parameters.
+ ///
+ /// The into.
+ /// Parameters.
+ /// Target.
+ /// The 1st type parameter.
+ public static IScheduledWork Into(this TaskParameter parameters, ITarget target) where TImageView : class
+ {
+ if (parameters.Source != ImageSource.Stream && string.IsNullOrWhiteSpace(parameters.Path))
+ {
+ target.SetAsEmpty(null);
+ parameters.TryDispose();
+ return null;
+ }
+
+ var task = ImageService.CreateTask(parameters, target);
+ ImageService.Instance.LoadImage(task);
+ return task;
+ }
+
+ ///
+ /// Loads the image into given target using defined parameters.
+ /// IMPORTANT: It throws image loading exceptions - you should handle them
+ ///
+ /// The async.
+ /// Parameters.
+ /// Target.
+ /// The 1st type parameter.
+ public static Task IntoAsync(this TaskParameter parameters, ITarget target) where TImageView : class
+ {
+ return parameters.IntoAsync(param => param.Into(target));
+ }
+
+ private static Task IntoAsync(this TaskParameter parameters, Action into)
+ {
+ var userErrorCallback = parameters.OnError;
+ var finishCallback = parameters.OnFinish;
+ var tcs = new TaskCompletionSource();
+
+ parameters
+ .Error(ex => {
+ tcs.TrySetException(ex);
+ userErrorCallback?.Invoke(ex);
+ })
+ .Finish(scheduledWork => {
+ finishCallback?.Invoke(scheduledWork);
+ tcs.TrySetResult(scheduledWork);
+ });
+
+ into(parameters);
+
+ return tcs.Task;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Extensions/UnitsExtensions.cs b/source/FFImageLoading.Wpf/Extensions/UnitsExtensions.cs
new file mode 100644
index 000000000..ed3b8b447
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Extensions/UnitsExtensions.cs
@@ -0,0 +1,15 @@
+using System;
+
+namespace FFImageLoading.Extensions
+{
+ public static class UnitsExtensions
+ {
+ public static int DpToPixels(this int dp) => ImageService.Instance.DpToPixels(dp);
+
+ public static int DpToPixels(this double dp) => ImageService.Instance.DpToPixels(dp);
+
+ public static double PixelsToDp(this int px) => ImageService.Instance.PixelsToDp(px);
+
+ public static double PixelsToDp(this double px) => ImageService.Instance.PixelsToDp(px);
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Extensions/WriteableBitmapExtensions.cs b/source/FFImageLoading.Wpf/Extensions/WriteableBitmapExtensions.cs
new file mode 100644
index 000000000..548333585
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Extensions/WriteableBitmapExtensions.cs
@@ -0,0 +1,47 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices.WindowsRuntime;
+using System.Threading.Tasks;
+using System.Windows.Media.Imaging;
+
+namespace FFImageLoading.Extensions
+{
+ public static class WriteableBitmapExtensions
+ {
+ public static async Task AsPngStreamAsync(this WriteableBitmap bitmap)
+ {
+ Stream bmp = new MemoryStream();
+
+ BitmapEncoder enc = new PngBitmapEncoder();
+ enc.Frames.Add(BitmapFrame.Create(bitmap));
+ enc.Save(bmp);
+
+ return bmp;
+ //using (var stream = bitmap.PixelBuffer.AsStream())
+ //{
+ // pixels = new byte[(uint)stream.Length];
+ // await stream.ReadAsync(pixels, 0, pixels.Length);
+ //}
+
+ //var raStream = new InMemoryRandomAccessStream();
+ //// Encode pixels into stream
+ //var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, raStream);
+ //encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96, 96, pixels);
+ //await encoder.FlushAsync();
+
+ //return raStream.AsStreamForRead();
+ }
+
+ public static async Task AsJpegStreamAsync(this WriteableBitmap bitmap, int quality = 90)
+ {
+ Stream bmp = new MemoryStream();
+
+ var enc = new JpegBitmapEncoder();
+ enc.QualityLevel = quality;
+ enc.Frames.Add(BitmapFrame.Create(bitmap));
+ enc.Save(bmp);
+
+ return bmp;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/FFImageLoading.Wpf.csproj b/source/FFImageLoading.Wpf/FFImageLoading.Wpf.csproj
new file mode 100644
index 000000000..0fbf8c22a
--- /dev/null
+++ b/source/FFImageLoading.Wpf/FFImageLoading.Wpf.csproj
@@ -0,0 +1,89 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {DC06C582-6C7E-4018-A752-FEB528C65F7E}
+ Library
+ Properties
+ FFImageLoading
+ FFImageLoading.Platform
+ v4.7.1
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ Latest
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ true
+ Latest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extensions\TaskParameterExtensions.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.6.2
+
+
+
+
\ No newline at end of file
diff --git a/source/FFImageLoading.Wpf/Helpers/ColorHolder.cs b/source/FFImageLoading.Wpf/Helpers/ColorHolder.cs
new file mode 100644
index 000000000..8ac36432f
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/ColorHolder.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FFImageLoading
+{
+ public struct ColorHolder
+ {
+ public ColorHolder(int a, int r, int g, int b)
+ {
+ A = Convert.ToByte(Math.Min(Math.Max(0, a), 255));
+
+ if (a > 0)
+ {
+ R = Convert.ToByte(Math.Min(Math.Max(0, r), 255));
+ G = Convert.ToByte(Math.Min(Math.Max(0, g), 255));
+ B = Convert.ToByte(Math.Min(Math.Max(0, b), 255));
+ }
+ else
+ {
+ R = 0;
+ G = 0;
+ B = 0;
+ }
+ }
+
+ public ColorHolder(int r, int g, int b)
+ {
+ A = 255;
+ R = Convert.ToByte(Math.Min(Math.Max(0, r), 255));
+ G = Convert.ToByte(Math.Min(Math.Max(0, g), 255));
+ B = Convert.ToByte(Math.Min(Math.Max(0, b), 255));
+ }
+
+ public readonly byte A;
+
+ public readonly byte R;
+
+ public readonly byte G;
+
+ public readonly byte B;
+
+ public static readonly ColorHolder Transparent = new ColorHolder(0, 0, 0, 0);
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Helpers/MD5Helper.cs b/source/FFImageLoading.Wpf/Helpers/MD5Helper.cs
new file mode 100644
index 000000000..356e9161c
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/MD5Helper.cs
@@ -0,0 +1,50 @@
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace FFImageLoading.Helpers
+{
+ public class MD5Helper : IMD5Helper
+ {
+ public string MD5(Stream input)
+ {
+ using (var hashProvider = new MD5CryptoServiceProvider())
+ {
+ var bytes = hashProvider.ComputeHash(input);
+ return BitConverter.ToString(bytes)?.ToSanitizedKey();
+ }
+ }
+
+ public string MD5(string input)
+ {
+ using (var hashProvider = new MD5CryptoServiceProvider())
+ {
+ var bytes = hashProvider.ComputeHash(Encoding.UTF8.GetBytes(input));
+ return BitConverter.ToString(bytes)?.ToSanitizedKey();
+ }
+
+ }
+ //public static byte[] StreamToByteArray(Stream stream)
+ //{
+ // if (stream is MemoryStream)
+ // {
+ // return ((MemoryStream)stream).ToArray();
+ // }
+ // else
+ // {
+ // return ReadFully(stream);
+ // }
+ //}
+
+ //public static byte[] ReadFully(Stream input)
+ //{
+ // using (MemoryStream ms = new MemoryStream())
+ // {
+ // input.CopyTo(ms);
+ // return ms.ToArray();
+ // }
+ //}
+ }
+}
+
diff --git a/source/FFImageLoading.Wpf/Helpers/MainThreadDispatcher.cs b/source/FFImageLoading.Wpf/Helpers/MainThreadDispatcher.cs
new file mode 100644
index 000000000..226c05c48
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/MainThreadDispatcher.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Threading.Tasks;
+using System.Windows.Threading;
+
+namespace FFImageLoading.Helpers
+{
+ public class MainThreadDispatcher : IMainThreadDispatcher
+ {
+ private Dispatcher _dispatcher;
+
+ public async void Post(Action action)
+ {
+ if (action == null)
+ return;
+
+ if(_dispatcher == null)
+ {
+ _dispatcher = System.Windows.Application.Current.Dispatcher;
+ }
+
+ // already in UI thread:
+ if (_dispatcher.CheckAccess())
+ {
+ action();
+ }
+ // not in UI thread, ensuring UI thread:
+ else
+ {
+ //var tcs = new TaskCompletionSource();
+ //Post(() =>
+ //{
+ // try
+ // {
+ // action?.Invoke();
+ // tcs.SetResult(true);
+ // }
+ // catch (Exception ex)
+ // {
+ // tcs.SetException(ex);
+ // }
+ //});
+
+ //await tcs.Task;
+ await _dispatcher.InvokeAsync(() => action());
+ //await CoreApplication.GetCurrentView().Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => action());
+ }
+ }
+
+ public Task PostAsync(Action action)
+ {
+ var tcs = new TaskCompletionSource();
+ Post(() =>
+ {
+ try
+ {
+ action?.Invoke();
+ tcs.SetResult(true);
+ }
+ catch (Exception ex)
+ {
+ tcs.SetException(ex);
+ }
+ });
+
+ return tcs.Task;
+ }
+
+ public Task PostAsync(Func action)
+ {
+ var tcs = new TaskCompletionSource();
+ Post(async () =>
+ {
+ try
+ {
+ await action?.Invoke();
+ tcs.SetResult(true);
+ }
+ catch (Exception ex)
+ {
+ tcs.SetException(ex);
+ }
+ });
+
+ return tcs.Task;
+ }
+ }
+}
diff --git a/source/FFImageLoading.Wpf/Helpers/MiniLogger.cs b/source/FFImageLoading.Wpf/Helpers/MiniLogger.cs
new file mode 100644
index 000000000..94d25efe3
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/MiniLogger.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Diagnostics;
+
+namespace FFImageLoading.Helpers
+{
+ internal class MiniLogger : IMiniLogger
+ {
+ public void Debug(string message)
+ {
+ DebugInternal(message);
+ }
+
+ public void Error(string errorMessage)
+ {
+ System.Diagnostics.Debug.WriteLine(errorMessage);
+ }
+
+ public void Error(string errorMessage, Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine(errorMessage + Environment.NewLine + ex.ToString());
+ }
+
+ [Conditional("DEBUG")]
+ private void DebugInternal(string message)
+ {
+ System.Diagnostics.Debug.WriteLine(message);
+ }
+ }
+}
+
diff --git a/source/FFImageLoading.Wpf/Helpers/PlatformPerformance.cs b/source/FFImageLoading.Wpf/Helpers/PlatformPerformance.cs
new file mode 100644
index 000000000..9e57392be
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/PlatformPerformance.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace FFImageLoading
+{
+ public class PlatformPerformance : IPlatformPerformance
+ {
+ public PlatformPerformance()
+ {
+ }
+
+ public int GetCurrentManagedThreadId()
+ {
+ return 0;
+ }
+
+ public int GetCurrentSystemThreadId()
+ {
+ return 0;
+ }
+
+ public string GetMemoryInfo()
+ {
+ return "[PERFORMANCE] Memory - not implemented";
+ }
+ }
+}
+
diff --git a/source/FFImageLoading.Wpf/Helpers/ScaleHelper.cs b/source/FFImageLoading.Wpf/Helpers/ScaleHelper.cs
new file mode 100644
index 000000000..1ad83e647
--- /dev/null
+++ b/source/FFImageLoading.Wpf/Helpers/ScaleHelper.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Reflection;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace FFImageLoading.Helpers
+{
+ public static class ScaleHelper
+ {
+ static double? _scale;
+ public static double Scale
+ {
+ get
+ {
+ if (!_scale.HasValue)
+ {
+ InitAsync().ConfigureAwait(false).GetAwaiter().GetResult();
+ }
+
+ return _scale.Value;
+ }
+ }
+
+ public static async Task InitAsync()
+ {
+ if (_scale.HasValue)
+ return;
+
+ var dispatcher = ImageService.Instance.Config.MainThreadDispatcher;
+
+ await dispatcher.PostAsync(() =>
+ {
+ //var displayInfo = DisplayInformation.GetForCurrentView();
+ object found = null;
+
+ //todo
+ //try
+ //{
+ // found = displayInfo.GetType().GetRuntimeProperty("RawPixelsPerViewPixel")?.GetValue(displayInfo);
+ //}
+ //catch (Exception)
+ //{
+ //}
+
+ _scale = found == null ? 1d : (double)found;
+ }).ConfigureAwait(false);
+ }
+ }
+}
+
diff --git a/source/FFImageLoading.Wpf/ImageService.cs b/source/FFImageLoading.Wpf/ImageService.cs
new file mode 100644
index 000000000..39725f50d
--- /dev/null
+++ b/source/FFImageLoading.Wpf/ImageService.cs
@@ -0,0 +1,147 @@
+using System;
+using System.IO;
+using FFImageLoading.Config;
+using FFImageLoading.Cache;
+using FFImageLoading.Helpers;
+using FFImageLoading.Work;
+using FFImageLoading.DataResolvers;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Windows.Controls;
+using System.Windows.Media.Imaging;
+
+namespace FFImageLoading
+{
+ ///
+ /// FFImageLoading by Daniel Luberda
+ ///
+ //[Preserve(AllMembers = true)]
+ public class ImageService : ImageServiceBase
+ {
+ static ConditionalWeakTable